@retalia/pos-components 0.0.4 → 0.0.6

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 (49) hide show
  1. package/README.md +24 -1
  2. package/fesm2022/retalia-pos-components-services.mjs +171 -0
  3. package/fesm2022/retalia-pos-components-services.mjs.map +1 -0
  4. package/fesm2022/retalia-pos-components.mjs +1089 -0
  5. package/fesm2022/retalia-pos-components.mjs.map +1 -0
  6. package/package.json +43 -17
  7. package/types/retalia-pos-components-services.d.ts +168 -0
  8. package/types/retalia-pos-components.d.ts +300 -0
  9. package/eslint.config.js +0 -32
  10. package/ng-package.json +0 -14
  11. package/src/lib/basket/pos-basket.html +0 -124
  12. package/src/lib/basket/pos-basket.scss +0 -285
  13. package/src/lib/basket/pos-basket.spec.ts +0 -198
  14. package/src/lib/basket/pos-basket.stories.ts +0 -114
  15. package/src/lib/basket/pos-basket.ts +0 -142
  16. package/src/lib/item-entry/pos-item-entry.html +0 -41
  17. package/src/lib/item-entry/pos-item-entry.scss +0 -145
  18. package/src/lib/item-entry/pos-item-entry.spec.ts +0 -123
  19. package/src/lib/item-entry/pos-item-entry.stories.ts +0 -31
  20. package/src/lib/item-entry/pos-item-entry.ts +0 -81
  21. package/src/lib/login/pos-login.html +0 -82
  22. package/src/lib/login/pos-login.scss +0 -238
  23. package/src/lib/login/pos-login.spec.ts +0 -89
  24. package/src/lib/login/pos-login.stories.ts +0 -36
  25. package/src/lib/login/pos-login.ts +0 -150
  26. package/src/lib/receipt/pos-receipt.html +0 -116
  27. package/src/lib/receipt/pos-receipt.scss +0 -367
  28. package/src/lib/receipt/pos-receipt.spec.ts +0 -188
  29. package/src/lib/receipt/pos-receipt.stories.ts +0 -163
  30. package/src/lib/receipt/pos-receipt.ts +0 -129
  31. package/src/lib/tender/pos-tender.html +0 -79
  32. package/src/lib/tender/pos-tender.scss +0 -318
  33. package/src/lib/tender/pos-tender.spec.ts +0 -150
  34. package/src/lib/tender/pos-tender.stories.ts +0 -47
  35. package/src/lib/tender/pos-tender.ts +0 -154
  36. package/src/lib/tokens/pos-theme-css.spec.ts +0 -75
  37. package/src/lib/tokens/pos-theme-css.ts +0 -123
  38. package/src/lib/tokens/pos-token-catalog.ts +0 -514
  39. package/src/lib/tokens/pos-tokens.html +0 -351
  40. package/src/lib/tokens/pos-tokens.scss +0 -437
  41. package/src/lib/tokens/pos-tokens.spec.ts +0 -164
  42. package/src/lib/tokens/pos-tokens.stories.ts +0 -22
  43. package/src/lib/tokens/pos-tokens.ts +0 -208
  44. package/src/public-api.ts +0 -37
  45. package/tsconfig.lib.json +0 -14
  46. package/tsconfig.lib.prod.json +0 -11
  47. package/tsconfig.spec.json +0 -11
  48. /package/{src/styles → styles}/styles.css +0 -0
  49. /package/{src/styles → styles}/tokens.css +0 -0
@@ -1,351 +0,0 @@
1
- <article class="pos-tokens__page">
2
- <header class="pos-tokens__intro">
3
- <p class="pos-tokens__kicker">@retalia/pos-components</p>
4
- <h1 class="pos-tokens__title">Design tokens</h1>
5
- <p class="pos-tokens__lede">
6
- Click a sample or token to edit it. Changes are live overrides in this lab only —
7
- package defaults are never overwritten. Export a complete <code>:root</code> CSS
8
- file for the consuming POS, and import that file back later to resume editing.
9
- </p>
10
- <div class="pos-tokens__toolbar">
11
- <input
12
- #importFile
13
- class="pos-tokens__file"
14
- type="file"
15
- accept=".css,text/css"
16
- (change)="onImportFile($event)"
17
- />
18
- <button type="button" class="pos-tokens__tool pos-tokens__tool--primary" (click)="exportThemeFile()">
19
- Export CSS
20
- </button>
21
- <button type="button" class="pos-tokens__tool" (click)="importFile.click()">
22
- Import CSS
23
- </button>
24
- <button
25
- type="button"
26
- class="pos-tokens__tool"
27
- [disabled]="!hasOverrides()"
28
- (click)="resetTheme()"
29
- >
30
- Reset overrides
31
- </button>
32
- </div>
33
- <p class="pos-tokens__status" role="status" aria-live="polite">{{ statusMessage() }}</p>
34
- </header>
35
-
36
- <div class="pos-tokens__layout">
37
- <div class="pos-tokens__gallery">
38
- <section class="pos-tokens__section" aria-labelledby="pos-tokens-samples">
39
- <h2 id="pos-tokens-samples" class="pos-tokens__heading">In action</h2>
40
- <p class="pos-tokens__hint">Click a control to edit the tokens it uses.</p>
41
- <div class="pos-tokens__samples">
42
- <button
43
- type="button"
44
- class="pos-tokens__sample"
45
- [class.pos-tokens__sample--selected]="isSampleSelected('primary')"
46
- [attr.aria-pressed]="isSampleSelected('primary')"
47
- (click)="selectSample('primary')"
48
- >
49
- <span class="pos-tokens__btn pos-tokens__btn--primary">Primary</span>
50
- </button>
51
- <button
52
- type="button"
53
- class="pos-tokens__sample"
54
- [class.pos-tokens__sample--selected]="isSampleSelected('success')"
55
- [attr.aria-pressed]="isSampleSelected('success')"
56
- (click)="selectSample('success')"
57
- >
58
- <span class="pos-tokens__btn pos-tokens__btn--success">Success</span>
59
- </button>
60
- <button
61
- type="button"
62
- class="pos-tokens__sample"
63
- [class.pos-tokens__sample--selected]="isSampleSelected('danger')"
64
- [attr.aria-pressed]="isSampleSelected('danger')"
65
- (click)="selectSample('danger')"
66
- >
67
- <span class="pos-tokens__btn pos-tokens__btn--danger">Danger</span>
68
- </button>
69
- <button
70
- type="button"
71
- class="pos-tokens__sample"
72
- [class.pos-tokens__sample--selected]="isSampleSelected('disabled')"
73
- [attr.aria-pressed]="isSampleSelected('disabled')"
74
- (click)="selectSample('disabled')"
75
- >
76
- <span class="pos-tokens__btn pos-tokens__btn--disabled">Disabled</span>
77
- </button>
78
- <button
79
- type="button"
80
- class="pos-tokens__sample pos-tokens__sample--text"
81
- [class.pos-tokens__sample--selected]="isSampleSelected('text')"
82
- [attr.aria-pressed]="isSampleSelected('text')"
83
- (click)="selectSample('text')"
84
- >
85
- <span class="pos-tokens__sample-text">
86
- Body text · <span class="pos-tokens__sample-muted">muted</span>
87
- </span>
88
- </button>
89
- <button
90
- type="button"
91
- class="pos-tokens__sample pos-tokens__sample--text"
92
- [class.pos-tokens__sample--selected]="isSampleSelected('error')"
93
- [attr.aria-pressed]="isSampleSelected('error')"
94
- (click)="selectSample('error')"
95
- >
96
- <span class="pos-tokens__sample-danger">Danger / error message</span>
97
- </button>
98
- </div>
99
- </section>
100
-
101
- <section class="pos-tokens__section" aria-labelledby="pos-tokens-colors">
102
- <h2 id="pos-tokens-colors" class="pos-tokens__heading">Color</h2>
103
- <ul class="pos-tokens__swatch-grid">
104
- @for (token of colorTokens; track token.variable) {
105
- <li>
106
- <button
107
- type="button"
108
- class="pos-tokens__pick"
109
- [class.pos-tokens__pick--selected]="isTokenSelected(token.variable)"
110
- [class.pos-tokens__pick--modified]="isModified(token.variable)"
111
- [attr.aria-pressed]="isTokenSelected(token.variable)"
112
- (click)="selectToken(token)"
113
- >
114
- <span
115
- class="pos-tokens__chip"
116
- [style.background]="'var(' + token.variable + ')'"
117
- ></span>
118
- <span class="pos-tokens__swatch-meta">
119
- <span class="pos-tokens__swatch-name">
120
- {{ token.name }}
121
- @if (isModified(token.variable)) {
122
- <span class="pos-tokens__edited">Edited</span>
123
- }
124
- </span>
125
- <code class="pos-tokens__swatch-var">{{ token.variable }}</code>
126
- </span>
127
- </button>
128
- </li>
129
- }
130
- </ul>
131
- </section>
132
-
133
- <section class="pos-tokens__section" aria-labelledby="pos-tokens-radius">
134
- <h2 id="pos-tokens-radius" class="pos-tokens__heading">Radius</h2>
135
- <ul class="pos-tokens__radius-row">
136
- @for (token of radiusTokens; track token.variable) {
137
- <li>
138
- <button
139
- type="button"
140
- class="pos-tokens__pick"
141
- [class.pos-tokens__pick--selected]="isTokenSelected(token.variable)"
142
- [class.pos-tokens__pick--modified]="isModified(token.variable)"
143
- [attr.aria-pressed]="isTokenSelected(token.variable)"
144
- (click)="selectToken(token)"
145
- >
146
- <span
147
- class="pos-tokens__radius-box"
148
- [style.border-radius]="'var(' + token.variable + ')'"
149
- ></span>
150
- <span class="pos-tokens__swatch-name">
151
- {{ token.name }}
152
- @if (isModified(token.variable)) {
153
- <span class="pos-tokens__edited">Edited</span>
154
- }
155
- </span>
156
- <code class="pos-tokens__swatch-var">{{ token.variable }}</code>
157
- </button>
158
- </li>
159
- }
160
- </ul>
161
- </section>
162
-
163
- <section class="pos-tokens__section" aria-labelledby="pos-tokens-space">
164
- <h2 id="pos-tokens-space" class="pos-tokens__heading">Space</h2>
165
- <ul class="pos-tokens__space-list">
166
- @for (token of spaceTokens; track token.variable) {
167
- <li>
168
- <button
169
- type="button"
170
- class="pos-tokens__pick pos-tokens__pick--row"
171
- [class.pos-tokens__pick--selected]="isTokenSelected(token.variable)"
172
- [class.pos-tokens__pick--modified]="isModified(token.variable)"
173
- [attr.aria-pressed]="isTokenSelected(token.variable)"
174
- (click)="selectToken(token)"
175
- >
176
- <span
177
- class="pos-tokens__space-bar"
178
- [style.width]="'var(' + token.variable + ')'"
179
- ></span>
180
- <span class="pos-tokens__swatch-meta">
181
- <span class="pos-tokens__swatch-name">
182
- {{ token.name }}
183
- @if (isModified(token.variable)) {
184
- <span class="pos-tokens__edited">Edited</span>
185
- }
186
- </span>
187
- <code class="pos-tokens__swatch-var">{{ token.variable }}</code>
188
- </span>
189
- </button>
190
- </li>
191
- }
192
- </ul>
193
- </section>
194
-
195
- <section class="pos-tokens__section" aria-labelledby="pos-tokens-type">
196
- <h2 id="pos-tokens-type" class="pos-tokens__heading">Typography</h2>
197
- <ul class="pos-tokens__type-list">
198
- @for (token of typeTokens; track token.variable) {
199
- <li>
200
- <button
201
- type="button"
202
- class="pos-tokens__pick"
203
- [class.pos-tokens__pick--selected]="isTokenSelected(token.variable)"
204
- [class.pos-tokens__pick--modified]="isModified(token.variable)"
205
- [attr.aria-pressed]="isTokenSelected(token.variable)"
206
- (click)="selectToken(token)"
207
- >
208
- <span class="pos-tokens__swatch-name">
209
- {{ token.name }}
210
- @if (isModified(token.variable)) {
211
- <span class="pos-tokens__edited">Edited</span>
212
- }
213
- </span>
214
- <code class="pos-tokens__swatch-var">{{ token.variable }}</code>
215
- @switch (token.preview) {
216
- @case ('font-family') {
217
- <span
218
- class="pos-tokens__type-preview"
219
- [style.font-family]="'var(' + token.variable + ')'"
220
- >
221
- The quick brown fox
222
- </span>
223
- }
224
- @case ('font-size') {
225
- <span
226
- class="pos-tokens__type-preview"
227
- [style.font-size]="'var(' + token.variable + ')'"
228
- >
229
- The quick brown fox
230
- </span>
231
- }
232
- @case ('font-weight') {
233
- <span
234
- class="pos-tokens__type-preview"
235
- [style.font-weight]="'var(' + token.variable + ')'"
236
- >
237
- The quick brown fox
238
- </span>
239
- }
240
- @case ('letter-spacing') {
241
- <span
242
- class="pos-tokens__type-preview pos-tokens__type-preview--caps"
243
- [style.letter-spacing]="'var(' + token.variable + ')'"
244
- >
245
- Display
246
- </span>
247
- }
248
- }
249
- </button>
250
- </li>
251
- }
252
- </ul>
253
- </section>
254
-
255
- <section class="pos-tokens__section" aria-labelledby="pos-tokens-controls">
256
- <h2 id="pos-tokens-controls" class="pos-tokens__heading">Controls</h2>
257
- <ul class="pos-tokens__control-list">
258
- @for (token of controlTokens; track token.variable) {
259
- <li>
260
- <button
261
- type="button"
262
- class="pos-tokens__pick pos-tokens__pick--row"
263
- [class.pos-tokens__pick--selected]="isTokenSelected(token.variable)"
264
- [class.pos-tokens__pick--modified]="isModified(token.variable)"
265
- [attr.aria-pressed]="isTokenSelected(token.variable)"
266
- (click)="selectToken(token)"
267
- >
268
- <span
269
- class="pos-tokens__size-box"
270
- [style.width]="'var(' + token.variable + ')'"
271
- [style.height]="'var(' + token.variable + ')'"
272
- ></span>
273
- <span class="pos-tokens__swatch-meta">
274
- <span class="pos-tokens__swatch-name">
275
- {{ token.name }}
276
- @if (isModified(token.variable)) {
277
- <span class="pos-tokens__edited">Edited</span>
278
- }
279
- </span>
280
- <code class="pos-tokens__swatch-var">{{ token.variable }}</code>
281
- </span>
282
- </button>
283
- </li>
284
- }
285
- </ul>
286
- </section>
287
- </div>
288
-
289
- <aside class="pos-tokens__inspector" aria-labelledby="pos-tokens-inspector-title">
290
- <div class="pos-tokens__inspector-header">
291
- <h2 id="pos-tokens-inspector-title" class="pos-tokens__heading">
292
- {{ selection()?.title ?? 'Theme editor' }}
293
- </h2>
294
- @if (selection()) {
295
- <button type="button" class="pos-tokens__tool pos-tokens__tool--quiet" (click)="clearSelection()">
296
- Close
297
- </button>
298
- }
299
- </div>
300
-
301
- @if (!selection()) {
302
- <p class="pos-tokens__hint">
303
- Select a sample or token to change its values. Export writes a complete CSS
304
- file the host POS can load after the package stylesheet.
305
- </p>
306
- } @else {
307
- <ul class="pos-tokens__fields">
308
- @for (token of selectedTokens(); track token.variable) {
309
- <li class="pos-tokens__field">
310
- <label class="pos-tokens__field-label" [attr.for]="tokenFieldId(token.variable)">
311
- {{ token.name }}
312
- </label>
313
- <code class="pos-tokens__swatch-var">{{ token.variable }}</code>
314
- <div class="pos-tokens__field-controls">
315
- @if (token.kind === 'color') {
316
- @if (colorInputValue(token.variable); as hex) {
317
- <input
318
- class="pos-tokens__color"
319
- type="color"
320
- [value]="hex"
321
- [attr.aria-label]="token.name + ' color'"
322
- (input)="onTokenInput(token.variable, $event)"
323
- />
324
- }
325
- }
326
- <input
327
- class="pos-tokens__value"
328
- type="text"
329
- [id]="tokenFieldId(token.variable)"
330
- [value]="currentValue(token.variable)"
331
- spellcheck="false"
332
- autocomplete="off"
333
- (input)="onTokenInput(token.variable, $event)"
334
- />
335
- </div>
336
- <p class="pos-tokens__default">
337
- Default
338
- <code>{{ defaultValue(token.variable) }}</code>
339
- </p>
340
- @if (isModified(token.variable)) {
341
- <button type="button" class="pos-tokens__reset" (click)="resetToken(token.variable)">
342
- Reset to default
343
- </button>
344
- }
345
- </li>
346
- }
347
- </ul>
348
- }
349
- </aside>
350
- </div>
351
- </article>