@simai-studio/view 1.1.0 → 1.2.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 (70) hide show
  1. package/README.md +5 -5
  2. package/dist/package-receipt.json +310 -69
  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 +612 -0
  19. package/dist/smart/view-flow/component.json.gz +0 -0
  20. package/dist/smart/view-flow/css/view-flow.css +203 -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 +2 -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 +5858 -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 +638 -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 +478 -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 +1 -1
  57. package/dist/smart/view-properties/component.json.gz +0 -0
  58. package/dist/smart/view-properties/js/view-properties.js +59 -21
  59. package/dist/smart/view-properties/js/view-properties.js.gz +0 -0
  60. package/dist/smart/view-properties/js/view-properties.min.js +8 -6
  61. package/dist/smart/view-properties/js/view-properties.min.js.gz +0 -0
  62. package/dist/smart/view-properties/smart.manifest.json +6 -2
  63. package/dist/smart/view-properties/smart.manifest.json.gz +0 -0
  64. package/dist/smart/view-properties/template/default.js +1 -77
  65. package/dist/smart/view-properties/template/default.js.gz +0 -0
  66. package/dist/smart/view-table/js/view-table.js +2 -0
  67. package/dist/smart/view-table/js/view-table.js.gz +0 -0
  68. package/dist/smart/view-table/js/view-table.min.js +2 -0
  69. package/dist/smart/view-table/js/view-table.min.js.gz +0 -0
  70. 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.10.1",
6
6
  "kind": "leaf",
7
7
  "family": "record",
8
8
  "implements": [
@@ -2037,6 +2037,7 @@ function renderChoiceEdit(field, value, host) {
2037
2037
  name=${fieldName(field)}
2038
2038
  ?required=${Boolean(field.required)}
2039
2039
  value=${value ?? ''}
2040
+ placeholder=${field.placeholder || lit__WEBPACK_IMPORTED_MODULE_0__.nothing}
2040
2041
  aria-label=${field.label || field.key || ''}
2041
2042
  .options=${editOptions(field, value, false)}
2042
2043
  @change=${event => host.setFieldValue(field, event.detail?.value ?? null)}
@@ -2090,6 +2091,7 @@ function renderChoicesEdit(field, value, host) {
2090
2091
  search="false"
2091
2092
  name=${fieldName(field)}
2092
2093
  ?required=${Boolean(field.required)}
2094
+ placeholder=${field.placeholder || lit__WEBPACK_IMPORTED_MODULE_0__.nothing}
2093
2095
  aria-label=${field.label || field.key || ''}
2094
2096
  .options=${editOptions(field, value, true)}
2095
2097
  @change=${event => {
@@ -7581,28 +7583,35 @@ function fieldConditions(field, values) {
7581
7583
 
7582
7584
  /***/ },
7583
7585
 
7584
- /***/ "40b137e60526"
7586
+ /***/ "62c5c417c97d"
7585
7587
  (module, __webpack_exports__, __webpack_require__) {
7586
7588
 
7587
7589
  __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
7588
7590
  __webpack_require__.r(__webpack_exports__);
7589
7591
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7590
- /* harmony export */ renderPropertyViewTemplate: () => (/* binding */ renderPropertyViewTemplate)
7592
+ /* harmony export */ renderFieldValue: () => (/* binding */ renderFieldValue)
7591
7593
  /* harmony export */ });
7592
7594
  /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2a080a730149");
7593
- /* harmony import */ var _default_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9e9dad7bcc09");
7594
- /* harmony import */ var _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("e5483002f3ea");
7595
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([lit__WEBPACK_IMPORTED_MODULE_0__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__]);
7596
- ([lit__WEBPACK_IMPORTED_MODULE_0__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
7595
+ /* harmony import */ var _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("e5483002f3ea");
7596
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([lit__WEBPACK_IMPORTED_MODULE_0__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_1__]);
7597
+ ([lit__WEBPACK_IMPORTED_MODULE_0__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
7597
7598
  /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lit__WEBPACK_IMPORTED_MODULE_0__);
7598
7599
 
7599
-
7600
- // The arrangement, drawn in the component's own light DOM. Not in a shadow root:
7601
- // the field controls are Smart elements whose stylesheets are document-level, and
7602
- // a document stylesheet does not cross a shadow boundary. sf-view slots its
7603
- // children for exactly this reason and says so beside the slot; the first version
7604
- // of this composite built them inside a shadow root and every control came out
7605
- // with its markup and none of its CSS.
7600
+ // One field's value, shown or edited, drawn by the SIMAI Framework field
7601
+ // renderers. Moved out of the record component's template (sf-view-properties
7602
+ // 1.10.0) so that every view of the set that draws a field draws it the same
7603
+ // way: sf-view-properties and sf-view-flow import this, and neither
7604
+ // has field code of its own (reuse rule, naming decision 2026-11-02).
7605
+ //
7606
+ // `context` is what the caller's template reads:
7607
+ // component changeField(field, value), reportFieldError(field, message),
7608
+ // openReference(field, value); with the uploads and the
7609
+ // picker methods when canUploadFiles / canPickRecords
7610
+ // changed a Map of the values typed and not saved yet, by key
7611
+ // size '1' or '1/2', the renderers' size
7612
+ // viewHost the host the view renderers read (formatFieldValue)
7613
+ // emptyText what an empty value reads as
7614
+ // canUploadFiles, canPickRecords whether the host offers those
7606
7615
 
7607
7616
  function renderFieldValue(context, field, editing, {
7608
7617
  disabled = false
@@ -7631,14 +7640,14 @@ function renderFieldValue(context, field, editing, {
7631
7640
  // the time in a masked field -- which cut the day short in a half-width
7632
7641
  // field and held half-typed entries of its own.
7633
7642
 
7634
- const content = editing ? (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__.renderEditField)(field, context.changed.has(key) ? context.changed.get(key) : field.value, editHost, // A field its condition turns off is drawn disabled where the set
7643
+ const content = editing ? (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_1__.renderEditField)(field, context.changed.has(key) ? context.changed.get(key) : field.value, editHost, // A field its condition turns off is drawn disabled where the set
7635
7644
  // draws disabled apart from read-only (a choice as buttons).
7636
7645
  {
7637
7646
  size: context.size,
7638
7647
  ...(disabled ? {
7639
7648
  disabled: true
7640
7649
  } : {})
7641
- }) : (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__.renderViewField)(field, field.value, context.viewHost, {
7650
+ }) : (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_1__.renderViewField)(field, field.value, context.viewHost, {
7642
7651
  size: context.size
7643
7652
  });
7644
7653
  const reference = ['record', 'relation', 'user'].includes(field.propertyType || field.type) && field.value && typeof field.value === 'object';
@@ -7665,7 +7674,7 @@ function renderFieldValue(context, field, editing, {
7665
7674
 
7666
7675
 
7667
7676
  if (editing && (content === null || typeof content === 'undefined' || content === lit__WEBPACK_IMPORTED_MODULE_0__.nothing)) {
7668
- const shown = (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__.renderViewField)(field, field.value, context.viewHost, {
7677
+ const shown = (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_1__.renderViewField)(field, field.value, context.viewHost, {
7669
7678
  size: context.size
7670
7679
  });
7671
7680
 
@@ -7679,12 +7688,41 @@ function renderFieldValue(context, field, editing, {
7679
7688
  }
7680
7689
 
7681
7690
  return content;
7682
- } // While the view is being configured every entry is listed, hidden and rare ones
7691
+ }
7692
+ __webpack_async_result__();
7693
+ } catch(e) { __webpack_async_result__(e); } });
7694
+
7695
+ /***/ },
7696
+
7697
+ /***/ "40b137e60526"
7698
+ (module, __webpack_exports__, __webpack_require__) {
7699
+
7700
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
7701
+ __webpack_require__.r(__webpack_exports__);
7702
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7703
+ /* harmony export */ renderPropertyViewTemplate: () => (/* binding */ renderPropertyViewTemplate)
7704
+ /* harmony export */ });
7705
+ /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2a080a730149");
7706
+ /* harmony import */ var _default_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9e9dad7bcc09");
7707
+ /* harmony import */ var _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("e5483002f3ea");
7708
+ /* harmony import */ var _field_value_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("62c5c417c97d");
7709
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([lit__WEBPACK_IMPORTED_MODULE_0__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__, _field_value_js__WEBPACK_IMPORTED_MODULE_3__]);
7710
+ ([lit__WEBPACK_IMPORTED_MODULE_0__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_2__, _field_value_js__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
7711
+ /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lit__WEBPACK_IMPORTED_MODULE_0__);
7712
+
7713
+
7714
+
7715
+ // The arrangement, drawn in the component's own light DOM. Not in a shadow root:
7716
+ // the field controls are Smart elements whose stylesheets are document-level, and
7717
+ // a document stylesheet does not cross a shadow boundary. sf-view slots its
7718
+ // children for exactly this reason and says so beside the slot; the first version
7719
+ // of this composite built them inside a shadow root and every control came out
7720
+ // with its markup and none of its CSS.
7721
+ // While the view is being configured every entry is listed, hidden and rare ones
7683
7722
  // included: a hidden field a person cannot see is a field they cannot show again,
7684
7723
  // and «показать редкие поля» is a reading choice rather than part of the
7685
7724
  // arrangement being edited.
7686
7725
 
7687
-
7688
7726
  function listed(context, entries) {
7689
7727
  return context.configuring ? entries ?? [] : context.visible(entries);
7690
7728
  } // The chooser names the layers this person may write and nothing else. A layer
@@ -8038,7 +8076,7 @@ function renderField(context, field, editing, sectionKey = '', groupKey = '') {
8038
8076
  ${field.rare ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html)`<span class="sf-property-view-rare color-on-surface-variant">${context.rareText}</span>` : lit__WEBPACK_IMPORTED_MODULE_0__.nothing}
8039
8077
  ${field.inherited && !editing ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html)`<span class="sf-property-view-inherited color-on-surface-variant">${context.inheritedText}</span>` : lit__WEBPACK_IMPORTED_MODULE_0__.nothing}
8040
8078
  </div>
8041
- ${editing || context.configuring || field.readonly === true || !context.mayEdit || context.openAll ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html)`<div class="sf-property-view-field-value min-w-0 flex items-cross-center gap-2 flex-wrap">${renderFieldValue(context, field, editing, {
8079
+ ${editing || context.configuring || field.readonly === true || !context.mayEdit || context.openAll ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html)`<div class="sf-property-view-field-value min-w-0 flex items-cross-center gap-2 flex-wrap">${(0,_field_value_js__WEBPACK_IMPORTED_MODULE_3__.renderFieldValue)(context, field, editing, {
8042
8080
  disabled
8043
8081
  })}</div>` : (0,lit__WEBPACK_IMPORTED_MODULE_0__.html)`
8044
8082
  <button
@@ -8060,7 +8098,7 @@ function renderField(context, field, editing, sectionKey = '', groupKey = '') {
8060
8098
  context.component.editGroup(sectionKey, groupKey);
8061
8099
  }}
8062
8100
  >
8063
- ${renderFieldValue(context, field, editing)}
8101
+ ${(0,_field_value_js__WEBPACK_IMPORTED_MODULE_3__.renderFieldValue)(context, field, editing)}
8064
8102
  <i class="sf-icon sf-icon--size-1/2 sf-property-view-pen" aria-hidden="true">edit</i>
8065
8103
  </button>`}
8066
8104
  ${context.configuring ? renderFieldActions(context, field, key) : lit__WEBPACK_IMPORTED_MODULE_0__.nothing}
@@ -10358,7 +10396,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"$comment":"Dated aliases of sf-view-
10358
10396
  /***/ "3ea81f4c3c20"
10359
10397
  (module) {
10360
10398
 
10361
- module.exports = /*#__PURE__*/JSON.parse('{"id":"smart.view-properties","tag":"sf-view-properties","version":"1.10.0","kind":"leaf","implements":["record-view@1"],"settings":{"add-field-text":{"type":"string","default-from":"runtime.add-field-text"},"add-group-text":{"type":"string","default-from":"runtime.add-group-text"},"add-section-text":{"type":"string","default-from":"runtime.add-section-text"},"back-label":{"type":"string","default-from":"runtime.back-label"},"cancel-configuring-text":{"type":"string","default-from":"runtime.cancel-configuring-text"},"cancel-name-text":{"type":"string","default-from":"runtime.cancel-name-text"},"cancel-text":{"type":"string","default-from":"runtime.cancel-text"},"changed-text":{"type":"string","default-from":"runtime.changed-text"},"close-label":{"type":"string","default-from":"runtime.close-label"},"collection":{"type":"string","default":""},"collection-icon":{"type":"icon","default":""},"collection-label":{"type":"string","default":""},"configure-hint-narrow-text":{"type":"string","default-from":"runtime.configure-hint-narrow-text"},"configure-hint-text":{"type":"string","default-from":"runtime.configure-hint-text"},"configure-text":{"type":"string","default-from":"runtime.configure-text"},"conflict-text":{"type":"string","default-from":"runtime.conflict-text"},"copy-link-label":{"type":"string","default-from":"runtime.copy-link-label"},"delete-text":{"type":"string","default-from":"runtime.delete-text"},"done-configuring-text":{"type":"string","default-from":"runtime.done-configuring-text"},"edit-text":{"type":"string","default-from":"runtime.edit-text"},"empty-record-text":{"type":"string","default-from":"runtime.empty-record-text"},"empty-text":{"type":"string","default-from":"runtime.empty-text"},"errors-text":{"type":"string","default-from":"runtime.errors-text"},"favourite":{"type":"boolean","default":false},"favourite-label":{"type":"string","default-from":"runtime.favourite-label"},"field-label-text":{"type":"string","default-from":"runtime.field-label-text"},"field-settings-text":{"type":"string","default-from":"runtime.field-settings-text"},"hidden-text":{"type":"string","default-from":"runtime.hidden-text"},"hide-rare-text":{"type":"string","default-from":"runtime.hide-rare-text"},"hint-text":{"type":"string","default-from":"runtime.hint-text"},"in-this-group-text":{"type":"string","default-from":"runtime.in-this-group-text"},"inherited-text":{"type":"string","default-from":"runtime.inherited-text"},"link-copied-label":{"type":"string","default-from":"runtime.link-copied-label"},"menu-label":{"type":"string","default-from":"runtime.menu-label"},"move-down-text":{"type":"string","default-from":"runtime.move-down-text"},"move-up-text":{"type":"string","default-from":"runtime.move-up-text"},"new-group-title":{"type":"string","default-from":"runtime.new-group-title"},"new-section-title":{"type":"string","default-from":"runtime.new-section-title"},"no-match-text":{"type":"string","default-from":"runtime.no-match-text"},"open-full-label":{"type":"string","default-from":"runtime.open-full-label"},"panel":{"type":"boolean","default":false},"panel-label":{"type":"string","default":""},"panel-size":{"type":"enum","values":["1/2","1","2","full"],"default":"1"},"size":{"type":"enum","values":["1","1/2"],"default":"1"},"mode":{"type":"enum","values":["view","auto","edit","create"],"default":"auto"},"panel-width":{"type":"string","default":""},"personal-layer-text":{"type":"string","default-from":"runtime.personal-layer-text"},"rare-text":{"type":"string","default-from":"runtime.rare-text"},"record-id":{"type":"id","default":""},"remove-field-text":{"type":"string","default-from":"runtime.remove-field-text"},"remove-group-text":{"type":"string","default-from":"runtime.remove-group-text"},"remove-section-text":{"type":"string","default-from":"runtime.remove-section-text"},"rename-text":{"type":"string","default-from":"runtime.rename-text"},"reset-view-ask-text":{"type":"string","default-from":"runtime.reset-view-ask-text"},"reset-view-text":{"type":"string","default-from":"runtime.reset-view-text"},"save-name-text":{"type":"string","default-from":"runtime.save-name-text"},"save-text":{"type":"string","default-from":"runtime.save-text"},"section-icon-text":{"type":"string","default-from":"runtime.section-icon-text"},"section-icons":{"type":"string","default":""},"sections-as":{"type":"enum","values":["list","tabs"],"default":"list"},"sections-label":{"type":"string","default-from":"runtime.sections-label"},"shared-layer-text":{"type":"string","default-from":"runtime.shared-layer-text"},"show-rare":{"type":"boolean","default":false},"show-rare-text":{"type":"string","default-from":"runtime.show-rare-text"},"shown-text":{"type":"string","default-from":"runtime.shown-text"},"unplaced-hint-text":{"type":"string","default-from":"runtime.unplaced-hint-text"},"unplaced-title":{"type":"string","default-from":"runtime.unplaced-title"},"variant-text":{"type":"string","default-from":"runtime.variant-text"},"view-conflict-text":{"type":"string","default-from":"runtime.view-conflict-text"},"view-denied-text":{"type":"string","default-from":"runtime.view-denied-text"},"width-text":{"type":"string","default-from":"runtime.width-text"},"view-profile-label":{"type":"string","default-from":"runtime.view-profile-label"},"add-view-text":{"type":"string","default-from":"runtime.add-view-text"},"new-view-text":{"type":"string","default-from":"runtime.new-view-text"},"delete-view-text":{"type":"string","default-from":"runtime.delete-view-text"},"last-shared-view-text":{"type":"string","default-from":"runtime.last-shared-view-text"},"full":{"type":"boolean","default":false},"open":{"type":"boolean","default":true}},"values":{"revision":{"type":"string"},"section":{"type":"string"}},"events":{"close":{"carries":{"reason":{"type":"enum","values":["close","escape","cancelled","deleted","api"]},"record_id":{"type":"id","nullable":true},"unsaved_fields":{"type":"list"}},"cancelable":true},"open-full":{"carries":{"id":"id","address":"string","record_id":{"type":"id","nullable":true}}},"saved":{"carries":{"id":"id","revision":{"type":"string","optional":true}}},"failed":{"carries":{"reason":"string","message":{"type":"string","optional":true}}},"open":{"carries":{"field":"string","value":"object","answer":"string"}},"delete":{"carries":{"collection":"string","revision":"string","answer":"string","record_id":{"type":"id","nullable":true}}},"created":{"carries":{"collection":{"type":"string","nullable":true},"record_id":{"type":"id","nullable":true}}},"cancel":{"carries":{"mode":{"type":"enum","values":["auto","edit","create"]},"scope":{"type":"enum","values":["group"],"optional":true},"section":{"type":"string","optional":true},"group":{"type":"string","optional":true}}},"state":{"carries":{"state":"string","message":"string"},"own-verb":true},"address-copy":{"carries":{},"own-verb":true},"favourite":{"carries":{"collection":{"type":"string","nullable":true},"favourite":"boolean","record_id":{"type":"id","nullable":true}},"own-verb":true}},"actions":{"refresh":{},"load":{"with":{"reason":{"type":"string","optional":true}}},"edit-group":{"with":{"section":"string","group":"string"}},"cancel-edit":{},"save-group":{"with":{"options":{"type":"object","optional":true}},"concurrency":"drop"},"select-section":{"with":{"key":"string"}},"close-panel":{"with":{"reason":{"type":"string","optional":true}}},"copy-address":{},"open-full-page":{},"confirm-save":{},"cancel-confirmation":{}},"port":{"id":"simai.property-view-port","version":"1.17.0","contract":"src/core/contracts/ports/simai.property-view-port/1.17.0/port.json"},"presentation":{"skeleton":{"file":"skeleton.html","late":[]}},"css-variables":{"--sf-property-view--sections-width":{"type":"length","state":"default"},"--sf-property-view--title-size":{"type":"length","state":"default"},"--sf-property-view--label-size":{"type":"length","state":"default"},"--sf-property-view--value-size":{"type":"length","state":"default"},"--sf-property-view--group-size":{"type":"length","state":"default"},"--sf-property-view--edge-room":{"type":"length","state":"open"}},"host-states":{"data-state":"string","aria-busy":"string"}}');
10399
+ module.exports = /*#__PURE__*/JSON.parse('{"id":"smart.view-properties","tag":"sf-view-properties","version":"1.10.1","kind":"leaf","implements":["record-view@1"],"settings":{"add-field-text":{"type":"string","default-from":"runtime.add-field-text"},"add-group-text":{"type":"string","default-from":"runtime.add-group-text"},"add-section-text":{"type":"string","default-from":"runtime.add-section-text"},"back-label":{"type":"string","default-from":"runtime.back-label"},"cancel-configuring-text":{"type":"string","default-from":"runtime.cancel-configuring-text"},"cancel-name-text":{"type":"string","default-from":"runtime.cancel-name-text"},"cancel-text":{"type":"string","default-from":"runtime.cancel-text"},"changed-text":{"type":"string","default-from":"runtime.changed-text"},"close-label":{"type":"string","default-from":"runtime.close-label"},"collection":{"type":"string","default":""},"collection-icon":{"type":"icon","default":""},"collection-label":{"type":"string","default":""},"configure-hint-narrow-text":{"type":"string","default-from":"runtime.configure-hint-narrow-text"},"configure-hint-text":{"type":"string","default-from":"runtime.configure-hint-text"},"configure-text":{"type":"string","default-from":"runtime.configure-text"},"conflict-text":{"type":"string","default-from":"runtime.conflict-text"},"copy-link-label":{"type":"string","default-from":"runtime.copy-link-label"},"delete-text":{"type":"string","default-from":"runtime.delete-text"},"done-configuring-text":{"type":"string","default-from":"runtime.done-configuring-text"},"edit-text":{"type":"string","default-from":"runtime.edit-text"},"empty-record-text":{"type":"string","default-from":"runtime.empty-record-text"},"empty-text":{"type":"string","default-from":"runtime.empty-text"},"errors-text":{"type":"string","default-from":"runtime.errors-text"},"favourite":{"type":"boolean","default":false},"favourite-label":{"type":"string","default-from":"runtime.favourite-label"},"field-label-text":{"type":"string","default-from":"runtime.field-label-text"},"field-settings-text":{"type":"string","default-from":"runtime.field-settings-text"},"hidden-text":{"type":"string","default-from":"runtime.hidden-text"},"hide-rare-text":{"type":"string","default-from":"runtime.hide-rare-text"},"hint-text":{"type":"string","default-from":"runtime.hint-text"},"in-this-group-text":{"type":"string","default-from":"runtime.in-this-group-text"},"inherited-text":{"type":"string","default-from":"runtime.inherited-text"},"link-copied-label":{"type":"string","default-from":"runtime.link-copied-label"},"menu-label":{"type":"string","default-from":"runtime.menu-label"},"move-down-text":{"type":"string","default-from":"runtime.move-down-text"},"move-up-text":{"type":"string","default-from":"runtime.move-up-text"},"new-group-title":{"type":"string","default-from":"runtime.new-group-title"},"new-section-title":{"type":"string","default-from":"runtime.new-section-title"},"no-match-text":{"type":"string","default-from":"runtime.no-match-text"},"open-full-label":{"type":"string","default-from":"runtime.open-full-label"},"panel":{"type":"boolean","default":false},"panel-label":{"type":"string","default":""},"panel-size":{"type":"enum","values":["1/2","1","2","full"],"default":"1"},"size":{"type":"enum","values":["1","1/2"],"default":"1"},"mode":{"type":"enum","values":["view","auto","edit","create"],"default":"auto"},"panel-width":{"type":"string","default":""},"personal-layer-text":{"type":"string","default-from":"runtime.personal-layer-text"},"rare-text":{"type":"string","default-from":"runtime.rare-text"},"record-id":{"type":"id","default":""},"remove-field-text":{"type":"string","default-from":"runtime.remove-field-text"},"remove-group-text":{"type":"string","default-from":"runtime.remove-group-text"},"remove-section-text":{"type":"string","default-from":"runtime.remove-section-text"},"rename-text":{"type":"string","default-from":"runtime.rename-text"},"reset-view-ask-text":{"type":"string","default-from":"runtime.reset-view-ask-text"},"reset-view-text":{"type":"string","default-from":"runtime.reset-view-text"},"save-name-text":{"type":"string","default-from":"runtime.save-name-text"},"save-text":{"type":"string","default-from":"runtime.save-text"},"section-icon-text":{"type":"string","default-from":"runtime.section-icon-text"},"section-icons":{"type":"string","default":""},"sections-as":{"type":"enum","values":["list","tabs"],"default":"list"},"sections-label":{"type":"string","default-from":"runtime.sections-label"},"shared-layer-text":{"type":"string","default-from":"runtime.shared-layer-text"},"show-rare":{"type":"boolean","default":false},"show-rare-text":{"type":"string","default-from":"runtime.show-rare-text"},"shown-text":{"type":"string","default-from":"runtime.shown-text"},"unplaced-hint-text":{"type":"string","default-from":"runtime.unplaced-hint-text"},"unplaced-title":{"type":"string","default-from":"runtime.unplaced-title"},"variant-text":{"type":"string","default-from":"runtime.variant-text"},"view-conflict-text":{"type":"string","default-from":"runtime.view-conflict-text"},"view-denied-text":{"type":"string","default-from":"runtime.view-denied-text"},"width-text":{"type":"string","default-from":"runtime.width-text"},"view-profile-label":{"type":"string","default-from":"runtime.view-profile-label"},"add-view-text":{"type":"string","default-from":"runtime.add-view-text"},"new-view-text":{"type":"string","default-from":"runtime.new-view-text"},"delete-view-text":{"type":"string","default-from":"runtime.delete-view-text"},"last-shared-view-text":{"type":"string","default-from":"runtime.last-shared-view-text"},"full":{"type":"boolean","default":false},"open":{"type":"boolean","default":true}},"values":{"revision":{"type":"string"},"section":{"type":"string"}},"events":{"close":{"carries":{"reason":{"type":"enum","values":["close","escape","cancelled","deleted","api"]},"record_id":{"type":"id","nullable":true},"unsaved_fields":{"type":"list"}},"cancelable":true},"open-full":{"carries":{"id":"id","address":"string","record_id":{"type":"id","nullable":true}}},"saved":{"carries":{"id":"id","revision":{"type":"string","optional":true}}},"failed":{"carries":{"reason":"string","message":{"type":"string","optional":true}}},"open":{"carries":{"field":"string","value":"object","answer":"string"}},"delete":{"carries":{"collection":"string","revision":"string","answer":"string","record_id":{"type":"id","nullable":true}}},"created":{"carries":{"collection":{"type":"string","nullable":true},"record_id":{"type":"id","nullable":true}}},"cancel":{"carries":{"mode":{"type":"enum","values":["auto","edit","create"]},"scope":{"type":"enum","values":["group"],"optional":true},"section":{"type":"string","optional":true},"group":{"type":"string","optional":true}}},"state":{"carries":{"state":"string","message":"string"},"own-verb":true},"address-copy":{"carries":{},"own-verb":true},"favourite":{"carries":{"collection":{"type":"string","nullable":true},"favourite":"boolean","record_id":{"type":"id","nullable":true}},"own-verb":true}},"actions":{"refresh":{},"load":{"with":{"reason":{"type":"string","optional":true}}},"edit-group":{"with":{"section":"string","group":"string"}},"cancel-edit":{},"save-group":{"with":{"options":{"type":"object","optional":true}},"concurrency":"drop"},"select-section":{"with":{"key":"string"}},"close-panel":{"with":{"reason":{"type":"string","optional":true}}},"copy-address":{},"open-full-page":{},"confirm-save":{},"cancel-confirmation":{}},"port":{"id":"simai.property-view-port","version":"1.17.0","contract":"src/core/contracts/ports/simai.property-view-port/1.17.0/port.json"},"presentation":{"skeleton":{"file":"skeleton.html","late":[]}},"css-variables":{"--sf-property-view--sections-width":{"type":"length","state":"default"},"--sf-property-view--title-size":{"type":"length","state":"default"},"--sf-property-view--label-size":{"type":"length","state":"default"},"--sf-property-view--value-size":{"type":"length","state":"default"},"--sf-property-view--group-size":{"type":"length","state":"default"},"--sf-property-view--edge-room":{"type":"length","state":"open"}},"host-states":{"data-state":"string","aria-busy":"string"}}');
10362
10400
 
10363
10401
  /***/ },
10364
10402