@simai-studio/view 1.1.0 → 1.3.0

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 (74) hide show
  1. package/README.md +5 -5
  2. package/dist/package-receipt.json +322 -81
  3. package/dist/set.json +35 -2
  4. package/dist/smart/rule.js +94 -0
  5. package/dist/smart/rule.js.gz +0 -0
  6. package/dist/smart/view/component.json +1 -1
  7. package/dist/smart/view/component.json.gz +0 -0
  8. package/dist/smart/view/js/view.js +1 -1
  9. package/dist/smart/view/js/view.js.gz +0 -0
  10. package/dist/smart/view/js/view.min.js +1 -1
  11. package/dist/smart/view/js/view.min.js.gz +0 -0
  12. package/dist/smart/view/smart.manifest.json +1 -1
  13. package/dist/smart/view/smart.manifest.json.gz +0 -0
  14. package/dist/smart/view/static/default/open-record.html +1 -1
  15. package/dist/smart/view/static/default/open-record.html.gz +0 -0
  16. package/dist/smart/view/static/default/reference.html +1 -1
  17. package/dist/smart/view/static/default/reference.html.gz +0 -0
  18. package/dist/smart/view-flow/component.json +620 -0
  19. package/dist/smart/view-flow/component.json.gz +0 -0
  20. package/dist/smart/view-flow/css/view-flow.css +570 -0
  21. package/dist/smart/view-flow/css/view-flow.css.gz +0 -0
  22. package/dist/smart/view-flow/css/view-flow.min.css +3 -0
  23. package/dist/smart/view-flow/css/view-flow.min.css.gz +0 -0
  24. package/dist/smart/view-flow/examples.json +452 -0
  25. package/dist/smart/view-flow/examples.json.gz +0 -0
  26. package/dist/smart/view-flow/js/view-flow.js +7406 -0
  27. package/dist/smart/view-flow/js/view-flow.js.gz +0 -0
  28. package/dist/smart/view-flow/js/view-flow.min.js +749 -0
  29. package/dist/smart/view-flow/js/view-flow.min.js.gz +0 -0
  30. package/dist/smart/view-flow/lang/en.json +24 -0
  31. package/dist/smart/view-flow/lang/en.json.gz +0 -0
  32. package/dist/smart/view-flow/lang/ru.json +24 -0
  33. package/dist/smart/view-flow/lang/ru.json.gz +0 -0
  34. package/dist/smart/view-flow/probe.json +149 -0
  35. package/dist/smart/view-flow/probe.json.gz +0 -0
  36. package/dist/smart/view-flow/smart.manifest.json +486 -0
  37. package/dist/smart/view-flow/smart.manifest.json.gz +0 -0
  38. package/dist/smart/view-flow/static/default/answered.html +57 -0
  39. package/dist/smart/view-flow/static/default/answered.html.gz +0 -0
  40. package/dist/smart/view-flow/static/default/ask.html +146 -0
  41. package/dist/smart/view-flow/static/default/ask.html.gz +0 -0
  42. package/dist/smart/view-flow/static/default/expired.html +16 -0
  43. package/dist/smart/view-flow/static/default/expired.html.gz +0 -0
  44. package/dist/smart/view-flow/static/default/groups.html +44 -0
  45. package/dist/smart/view-flow/static/default/groups.html.gz +0 -0
  46. package/dist/smart/view-flow/static/default/reference.html +72 -0
  47. package/dist/smart/view-flow/static/default/reference.html.gz +0 -0
  48. package/dist/smart/view-flow/static/default/untitled.html +41 -0
  49. package/dist/smart/view-flow/static/default/untitled.html.gz +0 -0
  50. package/dist/smart/view-flow/static/sheets.json +443 -0
  51. package/dist/smart/view-flow/static/sheets.json.gz +0 -0
  52. package/dist/smart/view-flow/template/default.css +180 -0
  53. package/dist/smart/view-flow/template/default.css.gz +0 -0
  54. package/dist/smart/view-flow/template/default.js +136 -0
  55. package/dist/smart/view-flow/template/default.js.gz +0 -0
  56. package/dist/smart/view-properties/component.json +8 -1
  57. package/dist/smart/view-properties/component.json.gz +0 -0
  58. package/dist/smart/view-properties/css/view-properties.css +367 -0
  59. package/dist/smart/view-properties/css/view-properties.css.gz +0 -0
  60. package/dist/smart/view-properties/css/view-properties.min.css +1 -0
  61. package/dist/smart/view-properties/css/view-properties.min.css.gz +0 -0
  62. package/dist/smart/view-properties/js/view-properties.js +1755 -169
  63. package/dist/smart/view-properties/js/view-properties.js.gz +0 -0
  64. package/dist/smart/view-properties/js/view-properties.min.js +491 -378
  65. package/dist/smart/view-properties/js/view-properties.min.js.gz +0 -0
  66. package/dist/smart/view-properties/smart.manifest.json +38 -3
  67. package/dist/smart/view-properties/smart.manifest.json.gz +0 -0
  68. package/dist/smart/view-properties/template/default.js +1 -77
  69. package/dist/smart/view-properties/template/default.js.gz +0 -0
  70. package/dist/smart/view-table/js/view-table.js +2 -0
  71. package/dist/smart/view-table/js/view-table.js.gz +0 -0
  72. package/dist/smart/view-table/js/view-table.min.js +2 -0
  73. package/dist/smart/view-table/js/view-table.min.js.gz +0 -0
  74. package/package.json +1 -1
@@ -0,0 +1,570 @@
1
+ @layer sf.reset, sf.tokens, sf.base, sf.utilities, sf.components, sf.overrides, sf.states;
2
+ @layer sf.components {
3
+ /* sf-view-flow. The host is display: contents; .sf-view-flow
4
+ is the block the flow places, as wide as the flow. Every value is a
5
+ Framework token. The public variables (component.json css-variables) are
6
+ read here and never set, on the block or any ancestor (public-variables.v1):
7
+ --sf-view-flow-radius the block's corner
8
+ --sf-view-flow-inset its padding
9
+ --sf-view-flow-gap between its rows
10
+ --sf-view-flow-background-color its ground
11
+ --sf-view-flow-border-color its edge
12
+ The --sf-view-flow--* names are the internal layer they feed. */
13
+ .sf-view-flow {
14
+ --sf-view-flow--radius: var(--sf-view-flow-radius, var(--sf-radius-2));
15
+ --sf-view-flow--inset: var(--sf-view-flow-inset, var(--sf-space-1\/2) var(--sf-space-1));
16
+ --sf-view-flow--gap: var(--sf-view-flow-gap, var(--sf-space-1\/2));
17
+ --sf-view-flow--fill: var(--sf-view-flow-background-color, var(--sf-surface-0));
18
+ --sf-view-flow--edge: var(--sf-view-flow-border-color, var(--sf-outline-variant));
19
+ --sf-view-flow--label-size: var(--sf-label-medium--size);
20
+ --sf-view-flow--label-height: var(--sf-label-medium--height);
21
+ display: flex;
22
+ flex-direction: column;
23
+ gap: var(--sf-view-flow--gap);
24
+ box-sizing: border-box;
25
+ width: 100%;
26
+ inline-size: 100%;
27
+ min-width: 0;
28
+ min-inline-size: 0;
29
+ padding: var(--sf-view-flow--inset);
30
+ border: var(--sf-px) solid var(--sf-view-flow--edge);
31
+ border-radius: var(--sf-view-flow--radius);
32
+ background: var(--sf-view-flow--fill);
33
+ color: var(--sf-on-surface);
34
+ font-family: var(--sf-text--family);
35
+ font-size: var(--sf-text--size);
36
+ line-height: var(--sf-text--height);
37
+ }
38
+ .sf-view-flow--size-1-2 {
39
+ font-size: var(--sf-label-large--size);
40
+ line-height: var(--sf-label-large--height);
41
+ }
42
+ .sf-view-flow__heading {
43
+ margin: 0;
44
+ font-weight: var(--sf-font-weight-bold);
45
+ }
46
+ .sf-view-flow__description {
47
+ color: var(--sf-on-surface-variant);
48
+ font-size: var(--sf-label-large--size);
49
+ line-height: var(--sf-label-large--height);
50
+ }
51
+ .sf-view-flow__groups {
52
+ display: flex;
53
+ flex-direction: column;
54
+ gap: var(--sf-view-flow--gap);
55
+ min-width: 0;
56
+ min-inline-size: 0;
57
+ }
58
+ .sf-view-flow__group {
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: var(--sf-space-1\/3);
62
+ min-width: 0;
63
+ min-inline-size: 0;
64
+ }
65
+ .sf-view-flow__group-label {
66
+ margin: 0;
67
+ color: var(--sf-on-surface-variant);
68
+ font-size: var(--sf-view-flow--label-size);
69
+ line-height: var(--sf-view-flow--label-height);
70
+ font-weight: var(--sf-font-weight-medium);
71
+ }
72
+ /* A collapsible group's label is a plain button: the words and a chevron
73
+ that turns when the group is closed. */
74
+ .sf-view-flow__toggle {
75
+ align-self: flex-start;
76
+ padding: 0;
77
+ border: 0;
78
+ background: none;
79
+ font-family: inherit;
80
+ cursor: pointer;
81
+ }
82
+ .sf-view-flow__toggle sf-icon {
83
+ transition: -webkit-transform var(--sf-duration-normal);
84
+ transition: transform var(--sf-duration-normal);
85
+ transition: transform var(--sf-duration-normal), -webkit-transform var(--sf-duration-normal);
86
+ }
87
+ .sf-view-flow__group[data-collapsed] .sf-view-flow__toggle sf-icon {
88
+ -webkit-transform: rotate(-90deg);
89
+ transform: rotate(-90deg);
90
+ }
91
+ /* Two columns: a half-width field pairs up with the next, a full one takes
92
+ the row. */
93
+ .sf-view-flow__fields {
94
+ display: grid;
95
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
96
+ grid-gap: var(--sf-space-1\/2) var(--sf-space-1);
97
+ gap: var(--sf-space-1\/2) var(--sf-space-1);
98
+ }
99
+ .sf-view-flow__fields[hidden] {
100
+ display: none;
101
+ }
102
+ .sf-view-flow__field--full {
103
+ grid-column: 1/-1;
104
+ }
105
+ .sf-view-flow__label {
106
+ font-size: var(--sf-view-flow--label-size);
107
+ line-height: var(--sf-view-flow--label-height);
108
+ }
109
+ .sf-view-flow__value {
110
+ min-height: var(--sf-view-flow--label-height);
111
+ min-block-size: var(--sf-view-flow--label-height);
112
+ word-wrap: anywhere;
113
+ }
114
+ /* While the block takes an answer a value is one control, and it fills its
115
+ field: in a flex row a control keeps its intrinsic width, and a Smart
116
+ element is display: contents, so its painted root is a grandchild that
117
+ flex: 1 on the box's children never reaches (sf-view-properties found the
118
+ same for its full-width fields). As a block it fills. */
119
+ .sf-view-flow--editing .sf-view-flow__value {
120
+ display: block;
121
+ }
122
+ .sf-view-flow__error {
123
+ font-size: var(--sf-view-flow--label-size);
124
+ line-height: var(--sf-view-flow--label-height);
125
+ }
126
+ .sf-view-flow__footer {
127
+ display: flex;
128
+ flex-wrap: wrap;
129
+ align-items: center;
130
+ justify-content: space-between;
131
+ gap: var(--sf-space-1\/3);
132
+ }
133
+ .sf-view-flow__status {
134
+ display: inline-flex;
135
+ align-items: center;
136
+ gap: var(--sf-space-1\/4);
137
+ margin: 0;
138
+ color: var(--sf-on-surface-variant);
139
+ font-size: var(--sf-view-flow--label-size);
140
+ line-height: var(--sf-view-flow--label-height);
141
+ }
142
+ .sf-view-flow__status.focus-visible {
143
+ outline-offset: var(--sf-space-1\/4);
144
+ }
145
+ .sf-view-flow__status:focus-visible {
146
+ outline-offset: var(--sf-space-1\/4);
147
+ }
148
+ .sf-view-flow__status--error {
149
+ color: var(--sf-error);
150
+ }
151
+ .sf-view-flow--accepted .sf-view-flow__status {
152
+ color: var(--sf-on-success-container);
153
+ }
154
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-flow__actions {
155
+ margin-left: auto;
156
+ }
157
+ @supports not (margin-inline-start: initial) {
158
+ html:not([dir="rtl"]) .sf-view-flow__actions {
159
+ margin-left: auto;
160
+ }
161
+ }
162
+ .sf-view-flow__actions:where(:dir(ltr)) {
163
+ margin-left: auto;
164
+ }
165
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-flow__actions {
166
+ margin-right: auto;
167
+ }
168
+ @supports not (margin-inline-start: initial) {
169
+ [dir="rtl"] .sf-view-flow__actions {
170
+ margin-right: auto;
171
+ }
172
+ }
173
+ .sf-view-flow__actions:where(:dir(rtl)) {
174
+ margin-right: auto;
175
+ }
176
+ .sf-view-flow__actions {
177
+ display: flex;
178
+ gap: var(--sf-space-1\/3);
179
+ -webkit-margin-start: auto;
180
+ margin-inline-start: auto;
181
+ }
182
+ .sf-view-flow__actions[hidden] {
183
+ display: none;
184
+ }
185
+ /* A narrow screen: one column, and the answers share the width. A media
186
+ query and not a container query: containing the block's inline size would
187
+ make a block as wide as its content (in a message bubble) collapse. */
188
+ @media (max-width: 479px) {
189
+ .sf-view-flow__fields {
190
+ grid-template-columns: minmax(0, 1fr);
191
+ }
192
+ .sf-view-flow__field--half {
193
+ grid-column: 1/-1;
194
+ }
195
+ .sf-view-flow__actions {
196
+ display: grid;
197
+ grid-auto-columns: 1fr;
198
+ grid-auto-flow: column;
199
+ width: 100%;
200
+ inline-size: 100%;
201
+ }
202
+ }
203
+ }
204
+ @layer sf.components {
205
+ /* The property types the set draws itself (js/set-fields.js): money, percent,
206
+ rows (items) and the compound fields. Framework tokens only; the controls in
207
+ them are the Framework's own and keep their own geometry on the size ladder. */
208
+ /* An amount with a currency choice: the amount takes the room, the currency
209
+ the width of its code and sign. */
210
+ .sf-view-fields-money {
211
+ width: 100%;
212
+ inline-size: 100%;
213
+ align-items: flex-start;
214
+ }
215
+ /* sf-input and sf-dropdown hosts may draw no box of their own (display:
216
+ contents), so the rules reach the box they draw as well. */
217
+ .sf-view-fields-money > .sf-view-fields-decimal,
218
+ .sf-view-fields-money > .sf-view-fields-decimal > .sf-input {
219
+ flex: 1 1 8rem;
220
+ min-width: 0;
221
+ min-inline-size: 0;
222
+ }
223
+ .sf-view-fields-money > .sf-view-fields-currency,
224
+ .sf-view-fields-money > .sf-view-fields-currency > .sf-dropdown {
225
+ flex: 0 0 8.5rem;
226
+ min-width: 0;
227
+ min-inline-size: 0;
228
+ }
229
+ /* A control in a cell or a part fills its track: a native input's own
230
+ width (twenty characters) pushed a cell over its neighbour. */
231
+ .sf-view-items-cell .sf-input {
232
+ width: 100%;
233
+ inline-size: 100%;
234
+ min-width: 0;
235
+ min-inline-size: 0;
236
+ }
237
+ .sf-view-items-cell .sf-dropdown {
238
+ width: 100%;
239
+ inline-size: 100%;
240
+ min-width: 0;
241
+ min-inline-size: 0;
242
+ }
243
+ .sf-view-items-cell .sf-input-date {
244
+ width: 100%;
245
+ inline-size: 100%;
246
+ min-width: 0;
247
+ min-inline-size: 0;
248
+ }
249
+ .sf-view-fields-part .sf-input {
250
+ width: 100%;
251
+ inline-size: 100%;
252
+ min-width: 0;
253
+ min-inline-size: 0;
254
+ }
255
+ .sf-view-fields-part .sf-dropdown {
256
+ width: 100%;
257
+ inline-size: 100%;
258
+ min-width: 0;
259
+ min-inline-size: 0;
260
+ }
261
+ .sf-view-items-cell .sf-input-field input,
262
+ .sf-view-fields-part .sf-input-field input {
263
+ width: 100%;
264
+ inline-size: 100%;
265
+ }
266
+ /* A number reads right-aligned where numbers stand in a column (a row's
267
+ cells, totals); a lone amount in a field keeps the field's start. */
268
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input {
269
+ text-align: right;
270
+ }
271
+ @supports not (text-align: end) {
272
+ html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input {
273
+ text-align: right;
274
+ }
275
+ }
276
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(ltr)) {
277
+ text-align: right;
278
+ }
279
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items .sf-view-fields-decimal input {
280
+ text-align: left;
281
+ }
282
+ @supports not (text-align: end) {
283
+ [dir="rtl"] .sf-view-items .sf-view-fields-decimal input {
284
+ text-align: left;
285
+ }
286
+ }
287
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(rtl)) {
288
+ text-align: left;
289
+ }
290
+ .sf-view-items .sf-view-fields-decimal input {
291
+ text-align: end;
292
+ }
293
+ .sf-view-fields-amount,
294
+ .sf-view-items-numeric .sf-view-items-text {
295
+ -webkit-font-feature-settings: "tnum";
296
+ font-feature-settings: "tnum";
297
+ font-variant-numeric: tabular-nums;
298
+ }
299
+ /* --- A compound: its parts in a grid that wraps by the field's width --- */
300
+ .sf-view-fields-compound {
301
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
302
+ }
303
+ .sf-view-fields-part--wide {
304
+ grid-column: span 2;
305
+ }
306
+ .sf-view-fields-part-label {
307
+ font-size: var(--sf-text-size-1);
308
+ font-size: var(--sf-label-medium--size, var(--sf-text-size-1));
309
+ line-height: var(--sf-text-height-1);
310
+ line-height: var(--sf-label-medium--height, var(--sf-text-height-1));
311
+ }
312
+ @container (max-width: 24rem) {
313
+ .sf-view-fields-part--wide {
314
+ grid-column: auto;
315
+ }
316
+ }
317
+ /* --- Rows over columns --- */
318
+ /* A table of rows at any width the field has, and one card a row where it is
319
+ narrow (a phone, a half-width field): the field's own width decides, not the
320
+ window's, as the record's groups decide their columns. */
321
+ /* The box the rows ask for their width: a container query cannot restyle
322
+ the container itself, so the grid is inside it. */
323
+ .sf-view-items-box {
324
+ display: block;
325
+ container: sf-view-items/inline-size;
326
+ width: 100%;
327
+ inline-size: 100%;
328
+ min-width: 0;
329
+ min-inline-size: 0;
330
+ flex: 1 1 100%;
331
+ }
332
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items {
333
+ text-align: left;
334
+ }
335
+ @supports not (text-align: start) {
336
+ html:not([dir="rtl"]) .sf-view-items {
337
+ text-align: left;
338
+ }
339
+ }
340
+ .sf-view-items:where(:dir(ltr)) {
341
+ text-align: left;
342
+ }
343
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items {
344
+ text-align: right;
345
+ }
346
+ @supports not (text-align: start) {
347
+ [dir="rtl"] .sf-view-items {
348
+ text-align: right;
349
+ }
350
+ }
351
+ .sf-view-items:where(:dir(rtl)) {
352
+ text-align: right;
353
+ }
354
+ .sf-view-items {
355
+ display: grid;
356
+ width: 100%;
357
+ inline-size: 100%;
358
+ min-width: 0;
359
+ min-inline-size: 0;
360
+ grid-template-columns: 1fr;
361
+ grid-template-columns: var(--sf-view-items-columns, 1fr);
362
+ grid-column-gap: var(--sf-space-1);
363
+ -webkit-column-gap: var(--sf-space-1);
364
+ -moz-column-gap: var(--sf-space-1);
365
+ column-gap: var(--sf-space-1);
366
+ text-align: start;
367
+ }
368
+ .sf-view-items-head,
369
+ .sf-view-items-row {
370
+ display: grid;
371
+ grid-column: 1/-1;
372
+ grid-template-columns: subgrid;
373
+ align-items: center;
374
+ }
375
+ .sf-view-items-head {
376
+ padding-bottom: var(--sf-space-1);
377
+ -webkit-padding-after: var(--sf-space-1);
378
+ padding-block-end: var(--sf-space-1);
379
+ border-bottom: var(--sf-px) solid var(--sf-outline-variant);
380
+ -webkit-border-after: var(--sf-px) solid var(--sf-outline-variant);
381
+ border-block-end: var(--sf-px) solid var(--sf-outline-variant);
382
+ }
383
+ .sf-view-items-heading {
384
+ font-size: var(--sf-text-size-1);
385
+ font-size: var(--sf-label-medium--size, var(--sf-text-size-1));
386
+ line-height: var(--sf-text-height-1);
387
+ line-height: var(--sf-label-medium--height, var(--sf-text-height-1));
388
+ color: var(--sf-on-surface-variant);
389
+ min-width: 0;
390
+ min-inline-size: 0;
391
+ }
392
+ .sf-view-items-row {
393
+ padding-top: var(--sf-space-1);
394
+ padding-bottom: var(--sf-space-1);
395
+ padding-block: var(--sf-space-1);
396
+ border-bottom: var(--sf-px) solid var(--sf-outline-variant);
397
+ -webkit-border-after: var(--sf-px) solid var(--sf-outline-variant);
398
+ border-block-end: var(--sf-px) solid var(--sf-outline-variant);
399
+ }
400
+ .sf-view-items:not(.sf-view-items--edit) .sf-view-items-row {
401
+ padding-top: calc(var(--sf-space-1) / 2);
402
+ padding-bottom: calc(var(--sf-space-1) / 2);
403
+ padding-block: calc(var(--sf-space-1) / 2);
404
+ }
405
+ .sf-view-items-cell {
406
+ display: flex;
407
+ flex-direction: column;
408
+ min-width: 0;
409
+ min-inline-size: 0;
410
+ }
411
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-numeric {
412
+ text-align: right;
413
+ }
414
+ @supports not (text-align: end) {
415
+ html:not([dir="rtl"]) .sf-view-items-numeric {
416
+ text-align: right;
417
+ }
418
+ }
419
+ .sf-view-items-numeric:where(:dir(ltr)) {
420
+ text-align: right;
421
+ }
422
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items-numeric {
423
+ text-align: left;
424
+ }
425
+ @supports not (text-align: end) {
426
+ [dir="rtl"] .sf-view-items-numeric {
427
+ text-align: left;
428
+ }
429
+ }
430
+ .sf-view-items-numeric:where(:dir(rtl)) {
431
+ text-align: left;
432
+ }
433
+ .sf-view-items-numeric {
434
+ text-align: end;
435
+ align-items: flex-end;
436
+ }
437
+ .sf-view-items-cell > :not(.sf-view-items-cell-label) {
438
+ width: 100%;
439
+ inline-size: 100%;
440
+ min-width: 0;
441
+ min-inline-size: 0;
442
+ }
443
+ .sf-view-items-text {
444
+ word-wrap: anywhere;
445
+ }
446
+ .sf-view-items-cell-label {
447
+ display: none;
448
+ font-size: var(--sf-text-size-1);
449
+ font-size: var(--sf-label-medium--size, var(--sf-text-size-1));
450
+ line-height: var(--sf-text-height-1);
451
+ line-height: var(--sf-label-medium--height, var(--sf-text-height-1));
452
+ }
453
+ .sf-view-items-totals {
454
+ border-bottom: 0;
455
+ -webkit-border-after: 0;
456
+ border-block-end: 0;
457
+ font-weight: 600;
458
+ }
459
+ .sf-view-items-foot {
460
+ grid-column: 1/-1;
461
+ padding-top: var(--sf-space-1);
462
+ -webkit-padding-before: var(--sf-space-1);
463
+ padding-block-start: var(--sf-space-1);
464
+ }
465
+ @container sf-view-items (max-width: 36rem) {
466
+ .sf-view-items {
467
+ grid-template-columns: 1fr;
468
+ row-gap: var(--sf-space-1);
469
+ }
470
+ .sf-view-items-head {
471
+ display: none;
472
+ }
473
+ /* A card a row: each cell its label over its value, the row's actions at
474
+ the card's foot. */
475
+ .sf-view-items-row {
476
+ grid-template-columns: 1fr;
477
+ row-gap: var(--sf-space-1);
478
+ padding: var(--sf-space-1) var(--sf-space-2);
479
+ border: var(--sf-px) solid var(--sf-outline-variant);
480
+ border-radius: var(--sf-radius-1);
481
+ }
482
+ .sf-view-items:not(.sf-view-items--edit) .sf-view-items-row {
483
+ padding: var(--sf-space-1) var(--sf-space-2);
484
+ }
485
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-cell,html:not([dir="rtl"])
486
+ .sf-view-items-numeric {
487
+ text-align: left;
488
+ }
489
+ @supports not (text-align: start) {
490
+ html:not([dir="rtl"]) .sf-view-items-cell,html:not([dir="rtl"])
491
+ .sf-view-items-numeric {
492
+ text-align: left;
493
+ }
494
+ }
495
+ .sf-view-items-cell:where(:dir(ltr)),
496
+ .sf-view-items-numeric:where(:dir(ltr)) {
497
+ text-align: left;
498
+ }
499
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items-cell,[dir="rtl"]
500
+ .sf-view-items-numeric {
501
+ text-align: right;
502
+ }
503
+ @supports not (text-align: start) {
504
+ [dir="rtl"] .sf-view-items-cell,[dir="rtl"]
505
+ .sf-view-items-numeric {
506
+ text-align: right;
507
+ }
508
+ }
509
+ .sf-view-items-cell:where(:dir(rtl)),
510
+ .sf-view-items-numeric:where(:dir(rtl)) {
511
+ text-align: right;
512
+ }
513
+ .sf-view-items-cell,
514
+ .sf-view-items-numeric {
515
+ align-items: stretch;
516
+ text-align: start;
517
+ gap: calc(var(--sf-space-1) / 4);
518
+ }
519
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-numeric .sf-view-items-text,html:not([dir="rtl"])
520
+ .sf-view-items .sf-view-fields-decimal input {
521
+ text-align: left;
522
+ }
523
+ @supports not (text-align: start) {
524
+ html:not([dir="rtl"]) .sf-view-items-numeric .sf-view-items-text,html:not([dir="rtl"])
525
+ .sf-view-items .sf-view-fields-decimal input {
526
+ text-align: left;
527
+ }
528
+ }
529
+ .sf-view-items-numeric .sf-view-items-text:where(:dir(ltr)),
530
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(ltr)) {
531
+ text-align: left;
532
+ }
533
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items-numeric .sf-view-items-text,[dir="rtl"]
534
+ .sf-view-items .sf-view-fields-decimal input {
535
+ text-align: right;
536
+ }
537
+ @supports not (text-align: start) {
538
+ [dir="rtl"] .sf-view-items-numeric .sf-view-items-text,[dir="rtl"]
539
+ .sf-view-items .sf-view-fields-decimal input {
540
+ text-align: right;
541
+ }
542
+ }
543
+ .sf-view-items-numeric .sf-view-items-text:where(:dir(rtl)),
544
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(rtl)) {
545
+ text-align: right;
546
+ }
547
+ .sf-view-items-numeric .sf-view-items-text,
548
+ .sf-view-items .sf-view-fields-decimal input {
549
+ text-align: start;
550
+ }
551
+ .sf-view-items-cell-label {
552
+ display: block;
553
+ }
554
+ .sf-view-items-cell--blank {
555
+ display: none;
556
+ }
557
+ .sf-view-items-actions {
558
+ justify-content: flex-end;
559
+ }
560
+ .sf-view-items-totals {
561
+ border: 0;
562
+ padding-left: var(--sf-space-2);
563
+ padding-right: var(--sf-space-2);
564
+ padding-inline: var(--sf-space-2);
565
+ }
566
+ .sf-view-items-totals .sf-view-items-total-word {
567
+ display: none;
568
+ }
569
+ }
570
+ }
@@ -0,0 +1,3 @@
1
+ @layer sf.reset, sf.tokens, sf.base, sf.utilities, sf.components, sf.overrides, sf.states;
2
+ @layer sf.components{.sf-view-flow{--sf-view-flow--radius: var(--sf-view-flow-radius, var(--sf-radius-2));--sf-view-flow--inset: var(--sf-view-flow-inset, var(--sf-space-1\/2) var(--sf-space-1));--sf-view-flow--gap: var(--sf-view-flow-gap, var(--sf-space-1\/2));--sf-view-flow--fill: var(--sf-view-flow-background-color, var(--sf-surface-0));--sf-view-flow--edge: var(--sf-view-flow-border-color, var(--sf-outline-variant));--sf-view-flow--label-size: var(--sf-label-medium--size);--sf-view-flow--label-height: var(--sf-label-medium--height);display:flex;flex-direction:column;gap:var(--sf-view-flow--gap);box-sizing:border-box;width:100%;inline-size:100%;min-width:0;min-inline-size:0;padding:var(--sf-view-flow--inset);border:var(--sf-px) solid var(--sf-view-flow--edge);border-radius:var(--sf-view-flow--radius);background:var(--sf-view-flow--fill);color:var(--sf-on-surface);font-family:var(--sf-text--family);font-size:var(--sf-text--size);line-height:var(--sf-text--height)}.sf-view-flow--size-1-2{font-size:var(--sf-label-large--size);line-height:var(--sf-label-large--height)}.sf-view-flow__heading{margin:0;font-weight:var(--sf-font-weight-bold)}.sf-view-flow__description{color:var(--sf-on-surface-variant);font-size:var(--sf-label-large--size);line-height:var(--sf-label-large--height)}.sf-view-flow__groups{display:flex;flex-direction:column;gap:var(--sf-view-flow--gap);min-width:0;min-inline-size:0}.sf-view-flow__group{display:flex;flex-direction:column;gap:var(--sf-space-1\/3);min-width:0;min-inline-size:0}.sf-view-flow__group-label{margin:0;color:var(--sf-on-surface-variant);font-size:var(--sf-view-flow--label-size);line-height:var(--sf-view-flow--label-height);font-weight:var(--sf-font-weight-medium)}.sf-view-flow__toggle{align-self:flex-start;padding:0;border:0;background:none;font-family:inherit;cursor:pointer}.sf-view-flow__toggle sf-icon{transition:-webkit-transform var(--sf-duration-normal);transition:transform var(--sf-duration-normal);transition:transform var(--sf-duration-normal), -webkit-transform var(--sf-duration-normal)}.sf-view-flow__group[data-collapsed] .sf-view-flow__toggle sf-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.sf-view-flow__fields{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);grid-gap:var(--sf-space-1\/2) var(--sf-space-1);gap:var(--sf-space-1\/2) var(--sf-space-1)}.sf-view-flow__fields[hidden]{display:none}.sf-view-flow__field--full{grid-column:1/-1}.sf-view-flow__label{font-size:var(--sf-view-flow--label-size);line-height:var(--sf-view-flow--label-height)}.sf-view-flow__value{min-height:var(--sf-view-flow--label-height);min-block-size:var(--sf-view-flow--label-height);word-wrap:anywhere}.sf-view-flow--editing .sf-view-flow__value{display:block}.sf-view-flow__error{font-size:var(--sf-view-flow--label-size);line-height:var(--sf-view-flow--label-height)}.sf-view-flow__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sf-space-1\/3)}.sf-view-flow__status{display:inline-flex;align-items:center;gap:var(--sf-space-1\/4);margin:0;color:var(--sf-on-surface-variant);font-size:var(--sf-view-flow--label-size);line-height:var(--sf-view-flow--label-height)}.sf-view-flow__status.focus-visible{outline-offset:var(--sf-space-1\/4)}.sf-view-flow__status:focus-visible{outline-offset:var(--sf-space-1\/4)}.sf-view-flow__status--error{color:var(--sf-error)}.sf-view-flow--accepted .sf-view-flow__status{color:var(--sf-on-success-container)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-flow__actions{margin-left:auto}@supports not (margin-inline-start: initial){html:not([dir="rtl"]) .sf-view-flow__actions{margin-left:auto}}.sf-view-flow__actions:where(:dir(ltr)){margin-left:auto}_:-ms-input-placeholder, [dir="rtl"] .sf-view-flow__actions{margin-right:auto}@supports not (margin-inline-start: initial){[dir="rtl"] .sf-view-flow__actions{margin-right:auto}}.sf-view-flow__actions:where(:dir(rtl)){margin-right:auto}.sf-view-flow__actions{display:flex;gap:var(--sf-space-1\/3);-webkit-margin-start:auto;margin-inline-start:auto}.sf-view-flow__actions[hidden]{display:none}@media(max-width: 479px){.sf-view-flow__fields{grid-template-columns:minmax(0, 1fr)}.sf-view-flow__field--half{grid-column:1/-1}.sf-view-flow__actions{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;width:100%;inline-size:100%}}}
3
+ @layer sf.components{.sf-view-fields-money{width:100%;inline-size:100%;align-items:flex-start}.sf-view-fields-money>.sf-view-fields-decimal,.sf-view-fields-money>.sf-view-fields-decimal>.sf-input{flex:1 1 8rem;min-width:0;min-inline-size:0}.sf-view-fields-money>.sf-view-fields-currency,.sf-view-fields-money>.sf-view-fields-currency>.sf-dropdown{flex:0 0 8.5rem;min-width:0;min-inline-size:0}.sf-view-items-cell .sf-input{width:100%;inline-size:100%;min-width:0;min-inline-size:0}.sf-view-items-cell .sf-dropdown{width:100%;inline-size:100%;min-width:0;min-inline-size:0}.sf-view-items-cell .sf-input-date{width:100%;inline-size:100%;min-width:0;min-inline-size:0}.sf-view-fields-part .sf-input{width:100%;inline-size:100%;min-width:0;min-inline-size:0}.sf-view-fields-part .sf-dropdown{width:100%;inline-size:100%;min-width:0;min-inline-size:0}.sf-view-items-cell .sf-input-field input,.sf-view-fields-part .sf-input-field input{width:100%;inline-size:100%}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input{text-align:right}@supports not (text-align: end){html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input{text-align:right}}.sf-view-items .sf-view-fields-decimal input:where(:dir(ltr)){text-align:right}_:-ms-input-placeholder, [dir="rtl"] .sf-view-items .sf-view-fields-decimal input{text-align:left}@supports not (text-align: end){[dir="rtl"] .sf-view-items .sf-view-fields-decimal input{text-align:left}}.sf-view-items .sf-view-fields-decimal input:where(:dir(rtl)){text-align:left}.sf-view-items .sf-view-fields-decimal input{text-align:end}.sf-view-fields-amount,.sf-view-items-numeric .sf-view-items-text{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sf-view-fields-compound{grid-template-columns:repeat(auto-fill, minmax(min(100%, 11rem), 1fr))}.sf-view-fields-part--wide{grid-column:span 2}.sf-view-fields-part-label{font-size:var(--sf-text-size-1);font-size:var(--sf-label-medium--size, var(--sf-text-size-1));line-height:var(--sf-text-height-1);line-height:var(--sf-label-medium--height, var(--sf-text-height-1))}@container (max-width: 24rem){.sf-view-fields-part--wide{grid-column:auto}}.sf-view-items-box{display:block;container:sf-view-items/inline-size;width:100%;inline-size:100%;min-width:0;min-inline-size:0;flex:1 1 100%}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items{text-align:left}@supports not (text-align: start){html:not([dir="rtl"]) .sf-view-items{text-align:left}}.sf-view-items:where(:dir(ltr)){text-align:left}_:-ms-input-placeholder, [dir="rtl"] .sf-view-items{text-align:right}@supports not (text-align: start){[dir="rtl"] .sf-view-items{text-align:right}}.sf-view-items:where(:dir(rtl)){text-align:right}.sf-view-items{display:grid;width:100%;inline-size:100%;min-width:0;min-inline-size:0;grid-template-columns:1fr;grid-template-columns:var(--sf-view-items-columns, 1fr);grid-column-gap:var(--sf-space-1);-webkit-column-gap:var(--sf-space-1);-moz-column-gap:var(--sf-space-1);column-gap:var(--sf-space-1);text-align:start}.sf-view-items-head,.sf-view-items-row{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:center}.sf-view-items-head{padding-bottom:var(--sf-space-1);-webkit-padding-after:var(--sf-space-1);padding-block-end:var(--sf-space-1);border-bottom:var(--sf-px) solid var(--sf-outline-variant);-webkit-border-after:var(--sf-px) solid var(--sf-outline-variant);border-block-end:var(--sf-px) solid var(--sf-outline-variant)}.sf-view-items-heading{font-size:var(--sf-text-size-1);font-size:var(--sf-label-medium--size, var(--sf-text-size-1));line-height:var(--sf-text-height-1);line-height:var(--sf-label-medium--height, var(--sf-text-height-1));color:var(--sf-on-surface-variant);min-width:0;min-inline-size:0}.sf-view-items-row{padding-top:var(--sf-space-1);padding-bottom:var(--sf-space-1);padding-block:var(--sf-space-1);border-bottom:var(--sf-px) solid var(--sf-outline-variant);-webkit-border-after:var(--sf-px) solid var(--sf-outline-variant);border-block-end:var(--sf-px) solid var(--sf-outline-variant)}.sf-view-items:not(.sf-view-items--edit) .sf-view-items-row{padding-top:calc(var(--sf-space-1)/2);padding-bottom:calc(var(--sf-space-1)/2);padding-block:calc(var(--sf-space-1)/2)}.sf-view-items-cell{display:flex;flex-direction:column;min-width:0;min-inline-size:0}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-numeric{text-align:right}@supports not (text-align: end){html:not([dir="rtl"]) .sf-view-items-numeric{text-align:right}}.sf-view-items-numeric:where(:dir(ltr)){text-align:right}_:-ms-input-placeholder, [dir="rtl"] .sf-view-items-numeric{text-align:left}@supports not (text-align: end){[dir="rtl"] .sf-view-items-numeric{text-align:left}}.sf-view-items-numeric:where(:dir(rtl)){text-align:left}.sf-view-items-numeric{text-align:end;align-items:flex-end}.sf-view-items-cell>:not(.sf-view-items-cell-label){width:100%;inline-size:100%;min-width:0;min-inline-size:0}.sf-view-items-text{word-wrap:anywhere}.sf-view-items-cell-label{display:none;font-size:var(--sf-text-size-1);font-size:var(--sf-label-medium--size, var(--sf-text-size-1));line-height:var(--sf-text-height-1);line-height:var(--sf-label-medium--height, var(--sf-text-height-1))}.sf-view-items-totals{border-bottom:0;-webkit-border-after:0;border-block-end:0;font-weight:600}.sf-view-items-foot{grid-column:1/-1;padding-top:var(--sf-space-1);-webkit-padding-before:var(--sf-space-1);padding-block-start:var(--sf-space-1)}@container sf-view-items (max-width: 36rem){.sf-view-items{grid-template-columns:1fr;row-gap:var(--sf-space-1)}.sf-view-items-head{display:none}.sf-view-items-row{grid-template-columns:1fr;row-gap:var(--sf-space-1);padding:var(--sf-space-1) var(--sf-space-2);border:var(--sf-px) solid var(--sf-outline-variant);border-radius:var(--sf-radius-1)}.sf-view-items:not(.sf-view-items--edit) .sf-view-items-row{padding:var(--sf-space-1) var(--sf-space-2)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-cell,html:not([dir="rtl"]) .sf-view-items-numeric{text-align:left}@supports not (text-align: start){html:not([dir="rtl"]) .sf-view-items-cell,html:not([dir="rtl"]) .sf-view-items-numeric{text-align:left}}.sf-view-items-cell:where(:dir(ltr)),.sf-view-items-numeric:where(:dir(ltr)){text-align:left}_:-ms-input-placeholder, [dir="rtl"] .sf-view-items-cell,[dir="rtl"] .sf-view-items-numeric{text-align:right}@supports not (text-align: start){[dir="rtl"] .sf-view-items-cell,[dir="rtl"] .sf-view-items-numeric{text-align:right}}.sf-view-items-cell:where(:dir(rtl)),.sf-view-items-numeric:where(:dir(rtl)){text-align:right}.sf-view-items-cell,.sf-view-items-numeric{align-items:stretch;text-align:start;gap:calc(var(--sf-space-1)/4)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-numeric .sf-view-items-text,html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input{text-align:left}@supports not (text-align: start){html:not([dir="rtl"]) .sf-view-items-numeric .sf-view-items-text,html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input{text-align:left}}.sf-view-items-numeric .sf-view-items-text:where(:dir(ltr)),.sf-view-items .sf-view-fields-decimal input:where(:dir(ltr)){text-align:left}_:-ms-input-placeholder, [dir="rtl"] .sf-view-items-numeric .sf-view-items-text,[dir="rtl"] .sf-view-items .sf-view-fields-decimal input{text-align:right}@supports not (text-align: start){[dir="rtl"] .sf-view-items-numeric .sf-view-items-text,[dir="rtl"] .sf-view-items .sf-view-fields-decimal input{text-align:right}}.sf-view-items-numeric .sf-view-items-text:where(:dir(rtl)),.sf-view-items .sf-view-fields-decimal input:where(:dir(rtl)){text-align:right}.sf-view-items-numeric .sf-view-items-text,.sf-view-items .sf-view-fields-decimal input{text-align:start}.sf-view-items-cell-label{display:block}.sf-view-items-cell--blank{display:none}.sf-view-items-actions{justify-content:flex-end}.sf-view-items-totals{border:0;padding-left:var(--sf-space-2);padding-right:var(--sf-space-2);padding-inline:var(--sf-space-2)}.sf-view-items-totals .sf-view-items-total-word{display:none}}}