@things-factory/shell 10.1.26 → 10.1.28

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.
@@ -78,10 +78,10 @@ body {
78
78
 
79
79
  /* ── 크기 ────────────────────────────────────────────────────────────── */
80
80
  /*
81
- * Assist chips draw page actions (the action overlay, board info), so they take the page action
82
- * height, --context-action-height (ADR-0060 decision 6). Mouse and finger use the same height.
81
+ * Assist chips draw page actions (the action overlay, board info). The platform keeps 36px; the
82
+ * operato products give them their page action height (ADR-0060 decision 6-1).
83
83
  */
84
- --md-assist-chip-container-height: var(--context-action-height);
84
+ --md-assist-chip-container-height: var(--suite-context-action-height, 36px);
85
85
  --md-assist-chip-container-shape: var(--ui-r-small, 6px);
86
86
  --md-assist-chip-leading-space: 14px;
87
87
  --md-assist-chip-trailing-space: 16px;
@@ -191,13 +191,13 @@ body {
191
191
  /*
192
192
  * Finger-driven devices (tablets, phones) opening office screens.
193
193
  *
194
- * The product targets WCAG 2.2 AA: SC 2.5.8 asks for a 24px target. Action buttons keep their token
195
- * height, the same as with a mouse, so an office screen has one control height on every device (user
196
- * decision 2026-09-17). Only the icon grows a little for thumbs. Shop-floor screens size themselves
197
- * with --ui-tap-glove / --ui-tap-station.
194
+ * The platform keeps a 44px chip (--ui-tap). The operato products use one height for mouse and
195
+ * finger (WCAG 2.2 AA, their suite value). The icon grows a little for thumbs either way. Shop-floor
196
+ * screens size themselves with --ui-tap-glove / --ui-tap-station.
198
197
  */
199
198
  @media (pointer: coarse) {
200
199
  body {
200
+ --md-assist-chip-container-height: var(--suite-context-action-height, var(--ui-tap, 44px));
201
201
  --md-assist-chip-icon-size: 20px;
202
202
  }
203
203
  }
@@ -22,9 +22,9 @@ body {
22
22
  --md-elevated-button-container-shape: var(--md-sys-shape-corner-small);
23
23
 
24
24
  /*
25
- * Material buttons are 40px by default. Office screens use the form height instead, set once here
26
- * rather than on every screen (ADR-0060 decision 6). The page action bar and the popup action row
27
- * point the same variables back at their own tokens inside their scope.
25
+ * Material buttons follow the form height, set once here rather than on every screen (ADR-0060
26
+ * decision 6). On the platform that is Material's own 40px; the operato products are compact. The
27
+ * page action bar and the popup action row point the same variables at their own heights.
28
28
  */
29
29
  --md-filled-button-container-height: var(--form-action-height);
30
30
  --md-outlined-button-container-height: var(--form-action-height);
@@ -33,48 +33,8 @@ body {
33
33
  --md-filled-tonal-button-container-height: var(--form-action-height);
34
34
 
35
35
  /*
36
- * Material text fields and selects are 56px by default. Outlined ones take the medium input height
37
- * and filled ones the large, because a filled field carries its label inside the box and 32px has
38
- * no room for it. Height = top space + one 20px line + bottom space; the text is 14px, like the
39
- * rest of an office form. The filled label sits above the value at 11px on a 14px line.
40
- *
41
- * [measured 2026-09-17, @material/web 2.5.0, headless Chrome] outlined text field and select 32px,
42
- * filled text field and select 40px; resting labels centred, floating labels clear of the value.
36
+ * Material text fields and selects keep their own size (56px). Their label sits inside the box
37
+ * and floats above the value as you type, and that needs the room (user decision 2026-09-17).
38
+ * The compact input heights (--form-element-height-*) are for our own inputs and filter bars.
43
39
  */
44
- --md-outlined-text-field-input-text-size: 14px;
45
- --md-outlined-text-field-input-text-line-height: 20px;
46
- --md-outlined-text-field-label-text-size: 14px;
47
- --md-outlined-text-field-label-text-line-height: 20px;
48
- --md-outlined-text-field-top-space: calc((var(--form-element-height-medium) - 20px) / 2);
49
- --md-outlined-text-field-bottom-space: calc((var(--form-element-height-medium) - 20px) / 2);
50
- --md-outlined-select-text-field-input-text-size: 14px;
51
- --md-outlined-select-text-field-input-text-line-height: 20px;
52
- --md-outlined-select-text-field-label-text-size: 14px;
53
- --md-outlined-select-text-field-label-text-line-height: 20px;
54
- --md-outlined-field-top-space: calc((var(--form-element-height-medium) - 20px) / 2);
55
- --md-outlined-field-bottom-space: calc((var(--form-element-height-medium) - 20px) / 2);
56
-
57
- --md-filled-text-field-input-text-size: 14px;
58
- --md-filled-text-field-input-text-line-height: 20px;
59
- --md-filled-text-field-label-text-size: 14px;
60
- --md-filled-text-field-label-text-line-height: 20px;
61
- --md-filled-text-field-label-text-populated-size: 11px;
62
- --md-filled-text-field-label-text-populated-line-height: 14px;
63
- --md-filled-text-field-top-space: calc((var(--form-element-height-large) - 20px) / 2);
64
- --md-filled-text-field-bottom-space: calc((var(--form-element-height-large) - 20px) / 2);
65
- --md-filled-text-field-with-label-top-space: calc((var(--form-element-height-large) - 34px) / 2);
66
- --md-filled-text-field-with-label-bottom-space: calc((var(--form-element-height-large) - 34px) / 2);
67
- --md-filled-select-text-field-input-text-size: 14px;
68
- --md-filled-select-text-field-input-text-line-height: 20px;
69
- --md-filled-select-text-field-label-text-size: 14px;
70
- --md-filled-select-text-field-label-text-line-height: 20px;
71
- --md-filled-select-text-field-label-text-populated-size: 11px;
72
- --md-filled-select-text-field-label-text-populated-line-height: 14px;
73
- --md-filled-field-top-space: calc((var(--form-element-height-large) - 20px) / 2);
74
- --md-filled-field-bottom-space: calc((var(--form-element-height-large) - 20px) / 2);
75
- --md-filled-field-with-label-top-space: calc((var(--form-element-height-large) - 34px) / 2);
76
- --md-filled-field-with-label-bottom-space: calc((var(--form-element-height-large) - 34px) / 2);
77
-
78
- /* Filter chips are small controls. */
79
- --md-filter-chip-container-height: var(--form-element-height-small);
80
40
  }
@@ -15,16 +15,18 @@
15
15
  --icon-size-huge: 48px;
16
16
 
17
17
  /*
18
- * Input heights: small, medium, large. Compact, because the screens handle a lot of data, and on
19
- * the button scale so a field and a button on one row line up (small = --cell-action-height,
20
- * medium = the action buttons). @operato/styles declares the same numbers
21
- * (FORM_ELEMENT_HEIGHT_TOKENS); tests/control-height-tokens.test.ts checks they agree.
18
+ * Input heights: small, medium, large (ADR-0060 decisions 6 and 6-1). The fallbacks are the platform
19
+ * defaults, the heights before the operato standardization; operato-suite fills the --suite-* slot
20
+ * with the compact scale that lines up with its buttons (26/32/40). @operato/styles declares the
21
+ * same platform numbers (FORM_ELEMENT_HEIGHT_TOKENS); tests/control-height-tokens.test.ts checks.
22
22
  *
23
- * small grid filter bars, in-cell editors, chips, dense option buttons
23
+ * small grid filter bars, in-cell editors, dense option buttons
24
24
  * medium forms, popups, search fields - the default
25
- * large sign-in and other single-form entry screens, filled Material fields
25
+ * large roomier single forms
26
+ *
27
+ * Material text fields and selects are not on this scale: they keep their own 56px.
26
28
  */
27
- --form-element-height-small: 26px;
28
- --form-element-height-medium: 32px;
29
- --form-element-height-large: 40px;
29
+ --form-element-height-small: var(--suite-form-element-height-small, 24px);
30
+ --form-element-height-medium: var(--suite-form-element-height-medium, 30px);
31
+ --form-element-height-large: var(--suite-form-element-height-large, 40px);
30
32
  }
@@ -159,7 +159,7 @@ body {
159
159
  /**
160
160
  * Finger minimum on shop-floor screens: 44px (WCAG 2.2 SC 2.5.5, AAA).
161
161
  * Office screens do not use this token. The product targets WCAG AA (SC 2.5.8, 24px minimum), and
162
- * office buttons use the action heights below for mouse and finger alike (user decision 2026-09-17).
162
+ * the operato products' office buttons use the action heights below for mouse and finger alike.
163
163
  * A shop-floor screen raises an action height with it: `--popup-action-height: var(--ui-tap-glove)`.
164
164
  */
165
165
  --ui-tap: 44px;
@@ -168,21 +168,22 @@ body {
168
168
  /** 서서 보는 작업대. 팔을 뻗어 누르므로 조준이 거칠다. */
169
169
  --ui-tap-station: 96px;
170
170
 
171
- /* ── 단추 높이 (관리 화면) ───────────────────────────────────────────── */
171
+ /* ── 단추 높이 ──────────────────────────────────────────────────────── */
172
172
  /*
173
- * One token per use (ADR-0060 decision 6). The screens handle a lot of data, so buttons are compact.
174
- * These names are the variables the components read; @operato/styles declares them with the same
175
- * defaults (ACTION_HEIGHT_TOKENS) and tests/control-height-tokens.test.ts checks the two agree.
176
- * An app or tenant theme overrides a use here, and every component of that use follows.
173
+ * One token per use (ADR-0060 decisions 6 and 6-1). The fallbacks are the platform defaults - the
174
+ * heights every application had before the operato standardization, so dssp, fmsim and the rest do
175
+ * not change when they upgrade. The operato products are compact: operato-suite fills the
176
+ * --suite-* slot. @operato/styles declares the same platform numbers (ACTION_HEIGHT_TOKENS);
177
+ * tests/control-height-tokens.test.ts checks they agree.
177
178
  */
178
179
  /** Page action bar: publish, save, export. */
179
- --context-action-height: 32px;
180
- /** Popup action row: cancel, confirm - both <ox-popup-actions> and the older .footer. */
181
- --popup-action-height: 32px;
182
- /** Form and settings screens. Every Material button follows it unless its bar says otherwise. */
183
- --form-action-height: 32px;
180
+ --context-action-height: var(--suite-context-action-height, 32px);
181
+ /** Popup action row: cancel, confirm - <ox-popup-actions>, OxPrompt and the older .footer. */
182
+ --popup-action-height: var(--suite-popup-action-height, 30px);
183
+ /** Form and settings screens. Every Material button follows it (Material's own 40px by default). */
184
+ --form-action-height: var(--suite-form-action-height, 40px);
184
185
  /** A button inside a grid cell; icon-only cell buttons use it for their width too. */
185
- --cell-action-height: 26px;
186
+ --cell-action-height: var(--suite-cell-action-height, 26px);
186
187
 
187
188
  /* ── 모서리 ──────────────────────────────────────────────────────────── */
188
189
  /** 카드·표. */