@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,136 @@
1
+ import {html, nothing} from "lit";
2
+ import "./default.css";
3
+ import {renderFieldValue} from "../../../view-properties/js/field-value.js";
4
+ import {allFields, conditionedField, fieldDisabled, shownFields, valuesOnScreen} from "../answer.js";
5
+
6
+ // A few properties in a flow: the header line, the fields, the status line and
7
+ // the answers.
8
+ //
9
+ // The heading is a role="heading" with the level the host chooses, not a fixed
10
+ // <h2>: the block is placed inside a message, a feed entry or a page, and the
11
+ // level right in one is a skipped level in another.
12
+ //
13
+ // Every value is drawn by sf-view-properties' field value over the Framework
14
+ // field renderers (../../../view-properties/js/field-value.js): the block has
15
+ // no field code. A field is a label above its value, the record component's
16
+ // reading order; a half-width field pairs up with the next one.
17
+ //
18
+ // The status line is a polite live region that is always in the page, and the
19
+ // place focus goes when the answers go (the confirm surface). Send is filled and
20
+ // Cancel outlined: a form's answer is to send it, and cancelling is the way out,
21
+ // not a second equal choice.
22
+
23
+ function renderField(context, field) {
24
+ const key = String(field.key);
25
+ const values = context.values;
26
+ const editing = context.editing;
27
+ const disabled = editing && fieldDisabled(field, values);
28
+ const shown = editing ? conditionedField(field, values) : {...field, value: context.component.shownValue(field)};
29
+ // A message the control draws under itself (a mask not filled) is not drawn twice.
30
+ const error = context.controlErrors.has(key) ? null : context.errors.get(key);
31
+ const width = field.width === "full" ? "full" : "half";
32
+ return html`
33
+ <div class="sf-view-flow__field sf-view-flow__field--${width} flex flex-col gap-1/4 min-w-0"
34
+ data-field=${key}
35
+ data-invalid=${context.errors.has(key) ? "true" : nothing}>
36
+ <div class="sf-view-flow__label flex items-cross-center gap-1/3 color-on-surface-variant">
37
+ <span>${String(field.label ?? key)}</span>
38
+ ${shown.required && editing
39
+ ? html`<span class="sf-view-flow__required color-error" aria-hidden="true">*</span>`
40
+ : nothing}
41
+ ${field.hint
42
+ ? html`<sf-help-mark class="sf-view-flow__hint" label=${String(field.hint)} text=${String(field.hint)}></sf-help-mark>`
43
+ : nothing}
44
+ </div>
45
+ <div class="sf-view-flow__value min-w-0 flex items-cross-center gap-1 flex-wrap">${renderFieldValue(context, shown, editing, {disabled})}</div>
46
+ ${error ? html`<div class="sf-view-flow__error color-error" role="alert">${error}</div>` : nothing}
47
+ </div>`;
48
+ }
49
+
50
+ function renderGroup(context, group, index) {
51
+ const fields = shownFields(group.fields, context.values);
52
+ if (!fields.length) return nothing;
53
+ const component = context.component;
54
+ const collapsed = component.groupCollapsed(group);
55
+ const bodyId = `${context.headingId.replace(/--heading$/u, "")}--group-${index + 1}`;
56
+ const body = html`
57
+ <div class="sf-view-flow__fields" id=${bodyId} ?hidden=${collapsed}>
58
+ ${fields.map((field) => renderField(context, field))}
59
+ </div>`;
60
+ if (!group.label) return html`<div class="sf-view-flow__group" data-group=${group.key}>${body}</div>`;
61
+ return html`
62
+ <div class="sf-view-flow__group" data-group=${group.key} data-collapsed=${collapsed ? "true" : nothing}>
63
+ ${group.collapsible
64
+ ? html`<button type="button" class="sf-view-flow__group-label sf-view-flow__toggle flex items-cross-center gap-1/4"
65
+ aria-expanded=${collapsed ? "false" : "true"} aria-controls=${bodyId}
66
+ @click=${() => component.toggleGroup(group.key)}>
67
+ <sf-icon icon="expand_more" size="1/2" aria-hidden="true"></sf-icon>
68
+ <span>${group.label}</span>
69
+ </button>`
70
+ : html`<div class="sf-view-flow__group-label">${group.label}</div>`}
71
+ ${body}
72
+ </div>`;
73
+ }
74
+
75
+ function renderFoot(context) {
76
+ if (!context.footShown) return nothing;
77
+ const component = context.component;
78
+ const answering = context.open || context.pending;
79
+ return html`
80
+ <footer class="sf-view-flow__footer">
81
+ <!-- Always in the page, empty while there is nothing to say: a live
82
+ region that appears together with its words is not heard. -->
83
+ <p class="sf-view-flow__status${context.statusError ? " sf-view-flow__status--error" : ""}"
84
+ role="status" tabindex="-1">
85
+ ${context.statusText
86
+ ? html`<sf-icon icon=${context.statusIcon} size="1/2" aria-hidden="true"></sf-icon><span>${context.statusText}</span>`
87
+ : nothing}
88
+ </p>
89
+ <div class="sf-view-flow__actions" ?hidden=${!answering}>
90
+ ${context.cancelable
91
+ ? html`<sf-button appearance="outline" scheme="on-surface" size=${context.size}
92
+ text=${context.cancelText} data-action="cancel"
93
+ ?loading=${context.pressed === false}
94
+ ?disabled=${context.answersLocked && context.pressed !== false}
95
+ @click=${() => component.cancel()}></sf-button>`
96
+ : nothing}
97
+ <sf-button scheme="primary" size=${context.size}
98
+ text=${context.submitText} data-action="submit"
99
+ ?loading=${context.pressed === true}
100
+ ?disabled=${context.answersLocked && context.pressed !== true}
101
+ @click=${() => component.confirm()}></sf-button>
102
+ </div>
103
+ </footer>`;
104
+ }
105
+
106
+ export function renderViewFlowTemplate(context) {
107
+ // The values the conditions read: what is typed while the block takes an
108
+ // answer, else what it shows (the answer sent, or the host's values).
109
+ const values = context.editing
110
+ ? valuesOnScreen(context.groups, context.changed)
111
+ : new Map(allFields(context.groups).map((field) => [String(field.key), context.component.shownValue(field)]));
112
+ const scoped = {...context, values};
113
+ return html`
114
+ <section
115
+ class="sf-view-flow sf-view-flow--${context.mode}${context.editing ? " sf-view-flow--editing" : ""} sf-view-flow--${context.state} sf-view-flow--size-${context.size === "1" ? "1" : "1-2"}"
116
+ aria-labelledby=${context.heading ? context.headingId : nothing}
117
+ aria-label=${context.heading ? nothing : context.blockLabel}
118
+ aria-busy=${context.pending ? "true" : nothing}
119
+ data-state=${context.mode === "edit" ? context.state : nothing}
120
+ >
121
+ ${context.heading
122
+ ? html`<div class="sf-view-flow__heading" id=${context.headingId} role="heading"
123
+ aria-level=${context.headingLevel}>${context.heading}</div>`
124
+ : nothing}
125
+ ${context.hasDescription
126
+ ? html`<div class="sf-view-flow__description">${context.descriptionContent}</div>`
127
+ : nothing}
128
+ ${context.fieldsShown
129
+ ? html`<div class="sf-view-flow__groups" ?inert=${context.fieldsLocked}>
130
+ ${context.groups.map((group, index) => renderGroup(scoped, group, index))}
131
+ </div>`
132
+ : nothing}
133
+ ${renderFoot(context)}
134
+ </section>
135
+ `;
136
+ }
@@ -2,7 +2,7 @@
2
2
  "$comment": "sf-property-view from its component.json (standard simai.smart-component 1.3.8, vocabulary 1.1.5), migrated from ui-control control/smart-architecture/migration/out/property-view; every x-todo decided in x-decisions.",
3
3
  "id": "smart.view-properties",
4
4
  "tag": "sf-view-properties",
5
- "version": "1.10.0",
5
+ "version": "1.11.0",
6
6
  "kind": "leaf",
7
7
  "family": "record",
8
8
  "implements": [
@@ -1690,6 +1690,13 @@
1690
1690
  "changes": [
1691
1691
  "A datetime or time field is one sf-input-date (mode datetime or time) instead of a day and a masked time field; the value written is the same ISO 8601. Dates the host does not format read in the page's language. A colour palette wraps in a half-width field. A closed panel shows no close button or shadow over the page. An entry put back to the stored value is not written. Nothing to change for a host; a host that read the pair's names («<label>: дата», «<label>: время») finds one control named by the label."
1692
1692
  ]
1693
+ },
1694
+ {
1695
+ "from": "1.10.1",
1696
+ "to": "1.11.0",
1697
+ "changes": [
1698
+ "The set draws five property types itself, from Framework controls: money {amount, currency} (an amount with the currency's sign, or a currency choice; minor digits by ISO 4217), percent (a decimal with %), items (rows over the field's columns: typed cells, computed cells worked out live, totals, rows added, removed and moved, min and max rows, a card a row where the field is narrow), compound (a fixed set of parts, one value object) and ru.requisites (ИНН, КПП, ОГРН, БИК, accounts, checked part by part and together). Every number is a decimal string, never a float. An entry that is not a value yet holds both saves, as an incomplete masked string does. The settings they read (currency, columns, minRows, maxRows, parts) are due in simai.property-view-port 1.18.0. Nothing changes for a host that sends none of these types."
1699
+ ]
1693
1700
  }
1694
1701
  ]
1695
1702
  },
@@ -1156,3 +1156,370 @@
1156
1156
  white-space: pre;
1157
1157
  }
1158
1158
  }
1159
+ @layer sf.components {
1160
+ /* The property types the set draws itself (js/set-fields.js): money, percent,
1161
+ rows (items) and the compound fields. Framework tokens only; the controls in
1162
+ them are the Framework's own and keep their own geometry on the size ladder. */
1163
+ /* An amount with a currency choice: the amount takes the room, the currency
1164
+ the width of its code and sign. */
1165
+ .sf-view-fields-money {
1166
+ width: 100%;
1167
+ inline-size: 100%;
1168
+ align-items: flex-start;
1169
+ }
1170
+ /* sf-input and sf-dropdown hosts may draw no box of their own (display:
1171
+ contents), so the rules reach the box they draw as well. */
1172
+ .sf-view-fields-money > .sf-view-fields-decimal,
1173
+ .sf-view-fields-money > .sf-view-fields-decimal > .sf-input {
1174
+ flex: 1 1 8rem;
1175
+ min-width: 0;
1176
+ min-inline-size: 0;
1177
+ }
1178
+ .sf-view-fields-money > .sf-view-fields-currency,
1179
+ .sf-view-fields-money > .sf-view-fields-currency > .sf-dropdown {
1180
+ flex: 0 0 8.5rem;
1181
+ min-width: 0;
1182
+ min-inline-size: 0;
1183
+ }
1184
+ /* A control in a cell or a part fills its track: a native input's own
1185
+ width (twenty characters) pushed a cell over its neighbour. */
1186
+ .sf-view-items-cell .sf-input {
1187
+ width: 100%;
1188
+ inline-size: 100%;
1189
+ min-width: 0;
1190
+ min-inline-size: 0;
1191
+ }
1192
+ .sf-view-items-cell .sf-dropdown {
1193
+ width: 100%;
1194
+ inline-size: 100%;
1195
+ min-width: 0;
1196
+ min-inline-size: 0;
1197
+ }
1198
+ .sf-view-items-cell .sf-input-date {
1199
+ width: 100%;
1200
+ inline-size: 100%;
1201
+ min-width: 0;
1202
+ min-inline-size: 0;
1203
+ }
1204
+ .sf-view-fields-part .sf-input {
1205
+ width: 100%;
1206
+ inline-size: 100%;
1207
+ min-width: 0;
1208
+ min-inline-size: 0;
1209
+ }
1210
+ .sf-view-fields-part .sf-dropdown {
1211
+ width: 100%;
1212
+ inline-size: 100%;
1213
+ min-width: 0;
1214
+ min-inline-size: 0;
1215
+ }
1216
+ .sf-view-items-cell .sf-input-field input,
1217
+ .sf-view-fields-part .sf-input-field input {
1218
+ width: 100%;
1219
+ inline-size: 100%;
1220
+ }
1221
+ /* A number reads right-aligned where numbers stand in a column (a row's
1222
+ cells, totals); a lone amount in a field keeps the field's start. */
1223
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input {
1224
+ text-align: right;
1225
+ }
1226
+ @supports not (text-align: end) {
1227
+ html:not([dir="rtl"]) .sf-view-items .sf-view-fields-decimal input {
1228
+ text-align: right;
1229
+ }
1230
+ }
1231
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(ltr)) {
1232
+ text-align: right;
1233
+ }
1234
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items .sf-view-fields-decimal input {
1235
+ text-align: left;
1236
+ }
1237
+ @supports not (text-align: end) {
1238
+ [dir="rtl"] .sf-view-items .sf-view-fields-decimal input {
1239
+ text-align: left;
1240
+ }
1241
+ }
1242
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(rtl)) {
1243
+ text-align: left;
1244
+ }
1245
+ .sf-view-items .sf-view-fields-decimal input {
1246
+ text-align: end;
1247
+ }
1248
+ .sf-view-fields-amount,
1249
+ .sf-view-items-numeric .sf-view-items-text {
1250
+ -webkit-font-feature-settings: "tnum";
1251
+ font-feature-settings: "tnum";
1252
+ font-variant-numeric: tabular-nums;
1253
+ }
1254
+ /* --- A compound: its parts in a grid that wraps by the field's width --- */
1255
+ .sf-view-fields-compound {
1256
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
1257
+ }
1258
+ .sf-view-fields-part--wide {
1259
+ grid-column: span 2;
1260
+ }
1261
+ .sf-view-fields-part-label {
1262
+ font-size: var(--sf-text-size-1);
1263
+ font-size: var(--sf-label-medium--size, var(--sf-text-size-1));
1264
+ line-height: var(--sf-text-height-1);
1265
+ line-height: var(--sf-label-medium--height, var(--sf-text-height-1));
1266
+ }
1267
+ @container (max-width: 24rem) {
1268
+ .sf-view-fields-part--wide {
1269
+ grid-column: auto;
1270
+ }
1271
+ }
1272
+ /* --- Rows over columns --- */
1273
+ /* A table of rows at any width the field has, and one card a row where it is
1274
+ narrow (a phone, a half-width field): the field's own width decides, not the
1275
+ window's, as the record's groups decide their columns. */
1276
+ /* The box the rows ask for their width: a container query cannot restyle
1277
+ the container itself, so the grid is inside it. */
1278
+ .sf-view-items-box {
1279
+ display: block;
1280
+ container: sf-view-items/inline-size;
1281
+ width: 100%;
1282
+ inline-size: 100%;
1283
+ min-width: 0;
1284
+ min-inline-size: 0;
1285
+ flex: 1 1 100%;
1286
+ }
1287
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items {
1288
+ text-align: left;
1289
+ }
1290
+ @supports not (text-align: start) {
1291
+ html:not([dir="rtl"]) .sf-view-items {
1292
+ text-align: left;
1293
+ }
1294
+ }
1295
+ .sf-view-items:where(:dir(ltr)) {
1296
+ text-align: left;
1297
+ }
1298
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items {
1299
+ text-align: right;
1300
+ }
1301
+ @supports not (text-align: start) {
1302
+ [dir="rtl"] .sf-view-items {
1303
+ text-align: right;
1304
+ }
1305
+ }
1306
+ .sf-view-items:where(:dir(rtl)) {
1307
+ text-align: right;
1308
+ }
1309
+ .sf-view-items {
1310
+ display: grid;
1311
+ width: 100%;
1312
+ inline-size: 100%;
1313
+ min-width: 0;
1314
+ min-inline-size: 0;
1315
+ grid-template-columns: 1fr;
1316
+ grid-template-columns: var(--sf-view-items-columns, 1fr);
1317
+ grid-column-gap: var(--sf-space-1);
1318
+ -webkit-column-gap: var(--sf-space-1);
1319
+ -moz-column-gap: var(--sf-space-1);
1320
+ column-gap: var(--sf-space-1);
1321
+ text-align: start;
1322
+ }
1323
+ .sf-view-items-head,
1324
+ .sf-view-items-row {
1325
+ display: grid;
1326
+ grid-column: 1/-1;
1327
+ grid-template-columns: subgrid;
1328
+ align-items: center;
1329
+ }
1330
+ .sf-view-items-head {
1331
+ padding-bottom: var(--sf-space-1);
1332
+ -webkit-padding-after: var(--sf-space-1);
1333
+ padding-block-end: var(--sf-space-1);
1334
+ border-bottom: var(--sf-px) solid var(--sf-outline-variant);
1335
+ -webkit-border-after: var(--sf-px) solid var(--sf-outline-variant);
1336
+ border-block-end: var(--sf-px) solid var(--sf-outline-variant);
1337
+ }
1338
+ .sf-view-items-heading {
1339
+ font-size: var(--sf-text-size-1);
1340
+ font-size: var(--sf-label-medium--size, var(--sf-text-size-1));
1341
+ line-height: var(--sf-text-height-1);
1342
+ line-height: var(--sf-label-medium--height, var(--sf-text-height-1));
1343
+ color: var(--sf-on-surface-variant);
1344
+ min-width: 0;
1345
+ min-inline-size: 0;
1346
+ }
1347
+ .sf-view-items-row {
1348
+ padding-top: var(--sf-space-1);
1349
+ padding-bottom: var(--sf-space-1);
1350
+ padding-block: var(--sf-space-1);
1351
+ border-bottom: var(--sf-px) solid var(--sf-outline-variant);
1352
+ -webkit-border-after: var(--sf-px) solid var(--sf-outline-variant);
1353
+ border-block-end: var(--sf-px) solid var(--sf-outline-variant);
1354
+ }
1355
+ .sf-view-items:not(.sf-view-items--edit) .sf-view-items-row {
1356
+ padding-top: calc(var(--sf-space-1) / 2);
1357
+ padding-bottom: calc(var(--sf-space-1) / 2);
1358
+ padding-block: calc(var(--sf-space-1) / 2);
1359
+ }
1360
+ .sf-view-items-cell {
1361
+ display: flex;
1362
+ flex-direction: column;
1363
+ min-width: 0;
1364
+ min-inline-size: 0;
1365
+ }
1366
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-numeric {
1367
+ text-align: right;
1368
+ }
1369
+ @supports not (text-align: end) {
1370
+ html:not([dir="rtl"]) .sf-view-items-numeric {
1371
+ text-align: right;
1372
+ }
1373
+ }
1374
+ .sf-view-items-numeric:where(:dir(ltr)) {
1375
+ text-align: right;
1376
+ }
1377
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items-numeric {
1378
+ text-align: left;
1379
+ }
1380
+ @supports not (text-align: end) {
1381
+ [dir="rtl"] .sf-view-items-numeric {
1382
+ text-align: left;
1383
+ }
1384
+ }
1385
+ .sf-view-items-numeric:where(:dir(rtl)) {
1386
+ text-align: left;
1387
+ }
1388
+ .sf-view-items-numeric {
1389
+ text-align: end;
1390
+ align-items: flex-end;
1391
+ }
1392
+ .sf-view-items-cell > :not(.sf-view-items-cell-label) {
1393
+ width: 100%;
1394
+ inline-size: 100%;
1395
+ min-width: 0;
1396
+ min-inline-size: 0;
1397
+ }
1398
+ .sf-view-items-text {
1399
+ word-wrap: anywhere;
1400
+ }
1401
+ .sf-view-items-cell-label {
1402
+ display: none;
1403
+ font-size: var(--sf-text-size-1);
1404
+ font-size: var(--sf-label-medium--size, var(--sf-text-size-1));
1405
+ line-height: var(--sf-text-height-1);
1406
+ line-height: var(--sf-label-medium--height, var(--sf-text-height-1));
1407
+ }
1408
+ .sf-view-items-totals {
1409
+ border-bottom: 0;
1410
+ -webkit-border-after: 0;
1411
+ border-block-end: 0;
1412
+ font-weight: 600;
1413
+ }
1414
+ .sf-view-items-foot {
1415
+ grid-column: 1/-1;
1416
+ padding-top: var(--sf-space-1);
1417
+ -webkit-padding-before: var(--sf-space-1);
1418
+ padding-block-start: var(--sf-space-1);
1419
+ }
1420
+ @container sf-view-items (max-width: 36rem) {
1421
+ .sf-view-items {
1422
+ grid-template-columns: 1fr;
1423
+ row-gap: var(--sf-space-1);
1424
+ }
1425
+ .sf-view-items-head {
1426
+ display: none;
1427
+ }
1428
+ /* A card a row: each cell its label over its value, the row's actions at
1429
+ the card's foot. */
1430
+ .sf-view-items-row {
1431
+ grid-template-columns: 1fr;
1432
+ row-gap: var(--sf-space-1);
1433
+ padding: var(--sf-space-1) var(--sf-space-2);
1434
+ border: var(--sf-px) solid var(--sf-outline-variant);
1435
+ border-radius: var(--sf-radius-1);
1436
+ }
1437
+ .sf-view-items:not(.sf-view-items--edit) .sf-view-items-row {
1438
+ padding: var(--sf-space-1) var(--sf-space-2);
1439
+ }
1440
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-cell,html:not([dir="rtl"])
1441
+ .sf-view-items-numeric {
1442
+ text-align: left;
1443
+ }
1444
+ @supports not (text-align: start) {
1445
+ html:not([dir="rtl"]) .sf-view-items-cell,html:not([dir="rtl"])
1446
+ .sf-view-items-numeric {
1447
+ text-align: left;
1448
+ }
1449
+ }
1450
+ .sf-view-items-cell:where(:dir(ltr)),
1451
+ .sf-view-items-numeric:where(:dir(ltr)) {
1452
+ text-align: left;
1453
+ }
1454
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items-cell,[dir="rtl"]
1455
+ .sf-view-items-numeric {
1456
+ text-align: right;
1457
+ }
1458
+ @supports not (text-align: start) {
1459
+ [dir="rtl"] .sf-view-items-cell,[dir="rtl"]
1460
+ .sf-view-items-numeric {
1461
+ text-align: right;
1462
+ }
1463
+ }
1464
+ .sf-view-items-cell:where(:dir(rtl)),
1465
+ .sf-view-items-numeric:where(:dir(rtl)) {
1466
+ text-align: right;
1467
+ }
1468
+ .sf-view-items-cell,
1469
+ .sf-view-items-numeric {
1470
+ align-items: stretch;
1471
+ text-align: start;
1472
+ gap: calc(var(--sf-space-1) / 4);
1473
+ }
1474
+ _:-ms-input-placeholder, html:not([dir="rtl"]) .sf-view-items-numeric .sf-view-items-text,html:not([dir="rtl"])
1475
+ .sf-view-items .sf-view-fields-decimal input {
1476
+ text-align: left;
1477
+ }
1478
+ @supports not (text-align: start) {
1479
+ html:not([dir="rtl"]) .sf-view-items-numeric .sf-view-items-text,html:not([dir="rtl"])
1480
+ .sf-view-items .sf-view-fields-decimal input {
1481
+ text-align: left;
1482
+ }
1483
+ }
1484
+ .sf-view-items-numeric .sf-view-items-text:where(:dir(ltr)),
1485
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(ltr)) {
1486
+ text-align: left;
1487
+ }
1488
+ _:-ms-input-placeholder, [dir="rtl"] .sf-view-items-numeric .sf-view-items-text,[dir="rtl"]
1489
+ .sf-view-items .sf-view-fields-decimal input {
1490
+ text-align: right;
1491
+ }
1492
+ @supports not (text-align: start) {
1493
+ [dir="rtl"] .sf-view-items-numeric .sf-view-items-text,[dir="rtl"]
1494
+ .sf-view-items .sf-view-fields-decimal input {
1495
+ text-align: right;
1496
+ }
1497
+ }
1498
+ .sf-view-items-numeric .sf-view-items-text:where(:dir(rtl)),
1499
+ .sf-view-items .sf-view-fields-decimal input:where(:dir(rtl)) {
1500
+ text-align: right;
1501
+ }
1502
+ .sf-view-items-numeric .sf-view-items-text,
1503
+ .sf-view-items .sf-view-fields-decimal input {
1504
+ text-align: start;
1505
+ }
1506
+ .sf-view-items-cell-label {
1507
+ display: block;
1508
+ }
1509
+ .sf-view-items-cell--blank {
1510
+ display: none;
1511
+ }
1512
+ .sf-view-items-actions {
1513
+ justify-content: flex-end;
1514
+ }
1515
+ .sf-view-items-totals {
1516
+ border: 0;
1517
+ padding-left: var(--sf-space-2);
1518
+ padding-right: var(--sf-space-2);
1519
+ padding-inline: var(--sf-space-2);
1520
+ }
1521
+ .sf-view-items-totals .sf-view-items-total-word {
1522
+ display: none;
1523
+ }
1524
+ }
1525
+ }
@@ -1,2 +1,3 @@
1
1
  @layer sf.reset, sf.tokens, sf.base, sf.utilities, sf.components, sf.overrides, sf.states;
2
2
  @layer sf.components{sf-view-properties{display:block}sf-property-view{display:block}sf-view-properties:not([panel]){display:block !important;height:100%;block-size:100%;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}sf-property-view:not([panel]){display:block !important;height:100%;block-size:100%;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}sf-view-properties[full]{display:block !important;height:100%;block-size:100%;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}sf-property-view[full]{display:block !important;height:100%;block-size:100%;overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}.sf-property-view-panel[data-stacked=true]{opacity:.6;pointer-events:none}.sf-property-view-panel[data-stacked=true]::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;background-color:var(--sf-surface-0);opacity:.4;pointer-events:none}.sf-property-view-panel{gap:0;min-height:100%;min-block-size:100%;padding:0}.sf-property-view-panel{flex:1 1 auto;min-height:0;min-block-size:0;margin-top:calc(-1*var(--sf-property-view--panel-axis));margin-bottom:calc(-1*var(--sf-property-view--panel-axis));margin-block:calc(-1*var(--sf-property-view--panel-axis));overflow:visible}.sf-property-view-scroll{overflow-x:hidden;overflow-y:auto;overflow:hidden auto;scrollbar-gutter:stable both-edges;-ms-scroll-chaining:none;overscroll-behavior:contain;padding-top:var(--sf-space-1);padding-bottom:var(--sf-space-1);padding-block:var(--sf-space-1)}.sf-property-view-panel--railed .sf-property-view-scroll{overflow:hidden;align-items:stretch;gap:var(--sf-space-1);gap:var(--sf-drawer-gutter, var(--sf-space-1));scrollbar-gutter:auto}.sf-property-view-panel--railed .sf-property-view-scroll{padding-top:0;padding-bottom:0;padding-block:0}.sf-property-view-panel--railed .sf-property-view-sections,.sf-property-view-panel--railed .sf-property-view-frame{overflow-x:hidden;overflow-y:auto;overflow:hidden auto;min-height:0;min-block-size:0;padding-top:var(--sf-space-1);padding-bottom:var(--sf-space-1);padding-block:var(--sf-space-1);-ms-scroll-chaining:none;overscroll-behavior:contain}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-property-view-panel--railed .sf-property-view-frame{padding-right:0}@supports not (padding-inline-end: initial){html:not([dir="rtl"]) .sf-property-view-panel--railed .sf-property-view-frame{padding-right:0}}.sf-property-view-panel--railed .sf-property-view-frame:where(:dir(ltr)){padding-right:0}_:-ms-input-placeholder, [dir="rtl"] .sf-property-view-panel--railed .sf-property-view-frame{padding-left:0}@supports not (padding-inline-end: initial){[dir="rtl"] .sf-property-view-panel--railed .sf-property-view-frame{padding-left:0}}.sf-property-view-panel--railed .sf-property-view-frame:where(:dir(rtl)){padding-left:0}.sf-property-view-panel--railed .sf-property-view-frame{-webkit-padding-end:0;padding-inline-end:0;scrollbar-gutter:stable}.sf-property-view-panel--railed .sf-property-view-sections{position:static;align-self:stretch}.sf-property-view-panel>.sf-property-view-layout{flex:1 1 auto;min-height:0;min-block-size:0}.sf-property-view-layout{container-type:inline-size;container-name:sf-property-view}.sf-property-view-status[hidden]{display:none}sf-view-properties{--sf-property-view--panel-bleed: var(--sf-drawer-gutter, var(--sf-space-1));--sf-property-view--panel-axis: calc( var(--sf-property-view--panel-bleed) + var(--sf-scroll-bg-width, 0px) )}sf-property-view{--sf-property-view--panel-bleed: var(--sf-drawer-gutter, var(--sf-space-1));--sf-property-view--panel-axis: calc( var(--sf-property-view--panel-bleed) + var(--sf-scroll-bg-width, 0px) )}.sf-property-view-panel{--sf-property-view--panel-bleed: var(--sf-drawer-gutter, var(--sf-space-1));--sf-property-view--panel-axis: calc( var(--sf-property-view--panel-bleed) + var(--sf-scroll-bg-width, 0px) )}.sf-property-view-layout{display:flex;align-items:flex-start;gap:var(--sf-space-4)}.sf-property-view-sections{position:sticky;top:0;inset-block-start:0;gap:var(--sf-px);padding-left:var(--sf-space-1\/4);padding-right:var(--sf-space-1\/4);padding-inline:var(--sf-space-1\/4);--sf-tree--padding-inline-start: 0;--sf-tree--padding-inline-end: 0;--sf-tree--padding-top: 0;--sf-tree--padding-bottom: 0;--sf-tree--gap: var(--sf-px);--sf-tree-item--padding-inline: var(--sf-space-1\/3)}.sf-property-view-section-tabs{gap:var(--sf-px)}.sf-property-view-section-tab{width:100%;inline-size:100%;padding-top:var(--sf-space-1\/3);padding-bottom:var(--sf-space-1\/3);padding-block:var(--sf-space-1\/3);padding-left:var(--sf-space-1\/4);padding-right:var(--sf-space-1\/4);padding-inline:var(--sf-space-1\/4);border:0;background-color:rgba(0,0,0,0);color:inherit;font:inherit;transition:background-color var(--sf-duration-fast) var(--sf-animation)}.sf-property-view-section-tab:hover{background-color:var(--sf-surface-transparent-hover)}.sf-property-view-section-tab[aria-current=true]{background-color:var(--sf-primary-container);color:var(--sf-on-primary-container)}.sf-property-view-section-tab-label{word-wrap:anywhere}.sf-property-view-section-grip{cursor:-webkit-grab;cursor:grab}.sf-property-view-sections{flex:0 0 var(--sf-property-view--sections-width)}.sf-property-view-group{container-type:inline-size;container-name:sf-property-view-group;border:var(--sf-px) solid var(--sf-outline-variant);border-radius:var(--sf-radius--surface);padding:var(--sf-space-2)}.sf-property-view-group-header{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-property-view-tabs--skeleton:not([data-sections-as=tabs]){display:none}@media not all and (min-width: 48rem){.sf-property-view-tabs--skeleton{display:none}}.sf-property-view-group-title{margin:0;font-size:var(--sf-heading-6--size);font-size:var(--sf-property-view--group-size, var(--sf-heading-6--size));line-height:var(--sf-heading-6--height);line-height:var(--sf-property-view--group-height, var(--sf-heading-6--height));font-weight:600}.sf-property-view-field-label{font-size:var(--sf-label-large--size);font-size:var(--sf-property-view--label-size, var(--sf-label-large--size));line-height:var(--sf-label-large--height);line-height:var(--sf-property-view--label-height, var(--sf-label-large--height))}.sf-property-view-field-value{font-size:var(--sf-text-medium--size);font-size:var(--sf-property-view--value-size, var(--sf-text-medium--size));line-height:var(--sf-text-medium--height);line-height:var(--sf-property-view--value-height, var(--sf-text-medium--height));color:var(--sf-on-surface)}.sf-property-view-group-fields{display:grid;grid-gap:var(--sf-space-3) var(--sf-space-4);gap:var(--sf-space-3) var(--sf-space-4);grid-template-columns:1fr}.sf-property-view-group[data-columns="2"] .sf-property-view-group-fields{grid-template-columns:repeat(2, minmax(0, 1fr))}@container sf-property-view-group (max-width: 29rem){.sf-property-view-group[data-columns="2"] .sf-property-view-group-fields{grid-template-columns:1fr}}@container sf-property-view (max-width: 35rem){.sf-property-view-layout{display:block}.sf-property-view-sections{margin-bottom:var(--sf-space-3);-webkit-margin-after:var(--sf-space-3);margin-block-end:var(--sf-space-3)}}.sf-property-view-field--full{grid-column:1/-1}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-property-view-required{margin-left:var(--sf-space-1)}@supports not (margin-inline-start: initial){html:not([dir="rtl"]) .sf-property-view-required{margin-left:var(--sf-space-1)}}.sf-property-view-required:where(:dir(ltr)){margin-left:var(--sf-space-1)}_:-ms-input-placeholder, [dir="rtl"] .sf-property-view-required{margin-right:var(--sf-space-1)}@supports not (margin-inline-start: initial){[dir="rtl"] .sf-property-view-required{margin-right:var(--sf-space-1)}}.sf-property-view-required:where(:dir(rtl)){margin-right:var(--sf-space-1)}.sf-property-view-required{-webkit-margin-start:var(--sf-space-1);margin-inline-start:var(--sf-space-1)}.sf-property-view-field--full .sf-property-view-field-value{display:block}.sf-property-view-field-value{display:flex}.sf-property-view-field-value .sf-color{flex-wrap:wrap;max-width:100%;max-inline-size:100%;min-width:0;min-inline-size:0}.sf-property-view-field-value .sf-color-swatches{flex-wrap:wrap;min-width:0;min-inline-size:0}.sf-property-view-host-actions{margin-bottom:var(--sf-space-3);-webkit-margin-after:var(--sf-space-3);margin-block-end:var(--sf-space-3)}.sf-property-view-host-footer{margin-top:var(--sf-space-3);-webkit-margin-before:var(--sf-space-3);margin-block-start:var(--sf-space-3)}.sf-property-view-actions{flex:0 0 auto;z-index:1;margin-left:calc(-1*var(--sf-property-view--panel-bleed));margin-right:calc(-1*var(--sf-property-view--panel-bleed));margin-inline:calc(-1*var(--sf-property-view--panel-bleed));padding:var(--sf-space-1) var(--sf-property-view--panel-axis);background-color:var(--sf-surface-2);border-top:var(--sf-px) solid var(--sf-outline-variant)}.sf-property-view-group--editing{border-color:var(--sf-primary)}@media(max-width: 47.99rem){.sf-property-view-layout{display:block}.sf-property-view-sections{margin-bottom:var(--sf-space-3);-webkit-margin-after:var(--sf-space-3);margin-block-end:var(--sf-space-3)}}@media(forced-colors: active){.sf-property-view-group{border-color:CanvasText}.sf-property-view-actions{border-top-color:CanvasText}}.sf-property-view-grip{flex:0 0 auto;display:inline-flex;justify-content:center;font-size:var(--sf-space-2);font-size:var(--sf-text-height-1\/2, var(--sf-space-2));width:var(--sf-space-2);inline-size:var(--sf-space-2);height:var(--sf-space-2);block-size:var(--sf-space-2);cursor:-webkit-grab;cursor:grab;--sf-icon--color: var(--sf-on-surface-variant)}.sf-property-view-grip:hover{--sf-icon--color: var(--sf-on-surface)}[data-sf-sortable-dragging] .sf-property-view-grip,.sf-property-view-grip:active{cursor:-webkit-grabbing;cursor:grabbing}.sf-property-view-group--unplaced{border-style:dashed;background-color:rgba(0,0,0,0)}.sf-property-view-field--unplaced{grid-template-areas:"grip label actions"}.sf-property-view-unplaced{min-height:var(--sf-space-4);min-block-size:var(--sf-space-4)}.sf-property-view-field[data-hidden=true],.sf-property-view-group[data-hidden=true]{opacity:.55}.sf-property-view-field[data-arranging=true]{display:grid;grid-template-columns:auto minmax(0, 1fr) auto;grid-template-areas:"grip label actions" ". value value";align-items:center;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)}.sf-property-view-field[data-arranging=true]>.sf-property-view-grip{grid-area:grip}.sf-property-view-field[data-arranging=true]>.sf-property-view-field-label{grid-area:label}.sf-property-view-field[data-arranging=true]>.sf-property-view-field-value{grid-area:value}.sf-property-view-field-actions{grid-area:actions}.sf-property-view-rare{font-size:var(--sf-label-small--size);line-height:var(--sf-label-small--height);opacity:.75}.sf-property-view-section-bar{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-property-view-section-title{margin:0;font-size:var(--sf-title-small--size);line-height:var(--sf-title-small--height)}.sf-property-view-rename-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;margin:0;padding:0;background:none;color:inherit;font:inherit}.sf-property-view-rename-trigger:hover{text-decoration:underline}.sf-property-view-additions{padding-top:var(--sf-space-1);-webkit-padding-before:var(--sf-space-1);padding-block-start:var(--sf-space-1)}.sf-property-view-additions sf-button,.sf-property-view-additions .sf-button{width:100%;inline-size:100%}.sf-property-view-group--unplaced .sf-accordion-content{padding-top:0;-webkit-padding-before:0;padding-block-start:0}.sf-property-view-unplaced{gap:var(--sf-space-1\/3)}.sf-property-view-unplaced .sf-property-view-field--unplaced{padding-top:var(--sf-space-1\/4);padding-bottom:var(--sf-space-1\/4);padding-block:var(--sf-space-1\/4)}.sf-property-view-settings-row--stacked{align-items:stretch}.sf-property-view-settings-label{font-size:var(--sf-text-size-1\/3);line-height:var(--sf-text-height-1\/3)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-property-view-group-related{margin-left:calc(-1*0px);margin-left:calc(-1*var(--sf-table--row-text-inset, 0px))}@supports not (margin-inline-start: initial){html:not([dir="rtl"]) .sf-property-view-group-related{margin-left:calc(-1*0px);margin-left:calc(-1*var(--sf-table--row-text-inset, 0px))}}.sf-property-view-group-related:where(:dir(ltr)){margin-left:calc(-1*0px);margin-left:calc(-1*var(--sf-table--row-text-inset, 0px))}_:-ms-input-placeholder, [dir="rtl"] .sf-property-view-group-related{margin-right:calc(-1*0px);margin-right:calc(-1*var(--sf-table--row-text-inset, 0px))}@supports not (margin-inline-start: initial){[dir="rtl"] .sf-property-view-group-related{margin-right:calc(-1*0px);margin-right:calc(-1*var(--sf-table--row-text-inset, 0px))}}.sf-property-view-group-related:where(:dir(rtl)){margin-right:calc(-1*0px);margin-right:calc(-1*var(--sf-table--row-text-inset, 0px))}.sf-property-view-group-related{-webkit-margin-start:calc(-1*0px);margin-inline-start:calc(-1*0px);-webkit-margin-start:calc(-1*var(--sf-table--row-text-inset, 0px));margin-inline-start:calc(-1*var(--sf-table--row-text-inset, 0px))}.sf-property-view-empty-record{margin:0;padding:var(--sf-space-4) var(--sf-space-2);text-align:center}.sf-property-view-group-error{color:currentColor;color:var(--sf-color-danger-text, currentColor);padding-left:var(--sf-space-3);padding-right:var(--sf-space-3);padding-inline:var(--sf-space-3);padding-bottom:var(--sf-space-2);-webkit-padding-after:var(--sf-space-2);padding-block-end:var(--sf-space-2)}.sf-property-view-phone-section{min-height:var(--sf-ui-2--control-height);min-block-size:var(--sf-ui-2--control-height);padding-left:var(--sf-space-3);padding-right:var(--sf-space-3);padding-inline:var(--sf-space-3);border:0;background:none;color:inherit;font:inherit}.sf-property-view-phone-section+.sf-property-view-phone-section{border-top:var(--sf-px) solid var(--sf-outline-variant);-webkit-border-before:var(--sf-px) solid var(--sf-outline-variant);border-block-start:var(--sf-px) solid var(--sf-outline-variant)}.sf-property-view-phone-head{min-height:var(--sf-ui-2--control-height);min-block-size:var(--sf-ui-2--control-height)}.sf-property-view-phone-title{margin:0;font:inherit;font-weight:600}@media(max-width: 47.99rem){.sf-property-view-actions{background-color:var(--sf-surface-0)}}.sf-property-view-head{flex:0 0 auto;z-index:2;margin-left:calc(-1*var(--sf-property-view--panel-bleed));margin-right:calc(-1*var(--sf-property-view--panel-bleed));margin-inline:calc(-1*var(--sf-property-view--panel-bleed));padding:var(--sf-property-view--panel-bleed) var(--sf-property-view--panel-axis) var(--sf-space-1);background-color:var(--sf-surface-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-property-view-title{margin:0;font-size:var(--sf-heading-4--size);font-size:var(--sf-property-view--title-size, var(--sf-heading-4--size));line-height:var(--sf-heading-4--height);line-height:var(--sf-property-view--title-height, var(--sf-heading-4--height));font-weight:700;text-overflow:ellipsis;white-space:nowrap}.sf-property-view-edge sf-button-icon button{border-radius:50%}.sf-drawer:not(.is-open) .sf-drawer-edge:has(>.sf-property-view-edge){visibility:hidden}.sf-drawer:not(.is-open) .sf-drawer-panel:has(.sf-property-view-panel){visibility:hidden;transition:visibility 0s linear var(--sf-duration-normal),-webkit-transform var(--sf-duration-normal) var(--sf-ease-exit);transition:transform var(--sf-duration-normal) var(--sf-ease-exit),visibility 0s linear var(--sf-duration-normal);transition:transform var(--sf-duration-normal) var(--sf-ease-exit),visibility 0s linear var(--sf-duration-normal),-webkit-transform var(--sf-duration-normal) var(--sf-ease-exit)}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-property-view-panel--fills .sf-property-view-head{padding-left:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));padding-left:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2))}@supports not (padding-inline-start: initial){html:not([dir="rtl"]) .sf-property-view-panel--fills .sf-property-view-head{padding-left:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));padding-left:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2))}}.sf-property-view-panel--fills .sf-property-view-head:where(:dir(ltr)){padding-left:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));padding-left:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2))}_:-ms-input-placeholder, [dir="rtl"] .sf-property-view-panel--fills .sf-property-view-head{padding-right:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));padding-right:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2))}@supports not (padding-inline-start: initial){[dir="rtl"] .sf-property-view-panel--fills .sf-property-view-head{padding-right:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));padding-right:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2))}}.sf-property-view-panel--fills .sf-property-view-head:where(:dir(rtl)){padding-right:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));padding-right:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2))}_:-ms-input-placeholder, html:not([dir="rtl"]) .sf-property-view-panel--fills .sf-property-view-head{padding-left:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2))}@supports not (padding-inline-start: initial){html:not([dir="rtl"]) .sf-property-view-panel--fills .sf-property-view-head{padding-left:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2))}}.sf-property-view-panel--fills .sf-property-view-head:where(:dir(ltr)){padding-left:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2))}_:-ms-input-placeholder, [dir="rtl"] .sf-property-view-panel--fills .sf-property-view-head{padding-right:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2))}@supports not (padding-inline-start: initial){[dir="rtl"] .sf-property-view-panel--fills .sf-property-view-head{padding-right:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2))}}.sf-property-view-panel--fills .sf-property-view-head:where(:dir(rtl)){padding-right:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2))}.sf-property-view-panel--fills .sf-property-view-head{-webkit-padding-start:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));padding-inline-start:calc(var(--sf-space-1) + 0px + var(--sf-space-1\/2));-webkit-padding-start:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2));padding-inline-start:calc(var(--sf-space-1) + var(--sf-property-view--edge-room, 0px) + var(--sf-space-1\/2))}.sf-property-view-field-open{width:100%;inline-size:100%;padding:0;border:0;background:none;color:inherit;font:inherit}.sf-property-view-pen{opacity:0;--sf-icon--color: var(--sf-on-surface-variant)}.sf-property-view-field-open:hover .sf-property-view-pen,.sf-property-view-field-open.focus-visible .sf-property-view-pen{opacity:1}.sf-property-view-field-open:hover .sf-property-view-pen,.sf-property-view-field-open:focus-visible .sf-property-view-pen{opacity:1}.sf-property-view-field-open.focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-px);border-radius:var(--sf-radius-1)}.sf-property-view-field-open:focus-visible{outline:var(--sf-focus--width) var(--sf-focus--style) var(--sf-focus--color);outline-offset:var(--sf-px);border-radius:var(--sf-radius-1)}.sf-field-include{margin:0;max-height:calc(var(--sf-ui-2--control-height)*6);max-block-size:calc(var(--sf-ui-2--control-height)*6);overflow:auto;padding:var(--sf-space-2);border-radius:var(--sf-code--radius);background-color:var(--sf-code--background);color:var(--sf-code--color);font-family:var(--sf-code--font-family);white-space:pre}}
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}}}