@oicl/openbridge-webcomponents 2.0.0-next.82 → 2.0.0-next.84
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.
- package/bundle/openbridge-webcomponents.bundle.js +1147 -460
- package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
- package/custom-elements.json +591 -193
- package/dist/components/textbox/textbox.css.js +29 -5
- package/dist/components/textbox/textbox.css.js.map +1 -1
- package/dist/components/textbox/textbox.d.ts +5 -0
- package/dist/components/textbox/textbox.d.ts.map +1 -1
- package/dist/components/textbox/textbox.js +6 -1
- package/dist/components/textbox/textbox.js.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js +611 -230
- package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts +280 -61
- package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.js +529 -247
- package/dist/navigation-instruments/readout-list-item/readout-list-item.js.map +1 -1
- package/package.json +2 -2
|
@@ -34,6 +34,11 @@ const componentStyle = css`* {
|
|
|
34
34
|
justify-content: var(--alignment-justify, flex-end);
|
|
35
35
|
height: var(--height);
|
|
36
36
|
overflow: hidden;
|
|
37
|
+
/* Opt-in: animate a \`size\` change (height + font-size below). Defaults to 0s
|
|
38
|
+
(instant, current behavior) so existing usages and snapshots are unchanged;
|
|
39
|
+
a consumer sets \`--obc-textbox-size-transition\` (e.g. 300ms) to animate the
|
|
40
|
+
swap — used by readout-list-item's setpoint flip-flop. */
|
|
41
|
+
transition: height var(--obc-textbox-size-transition, 0s) ease;
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
/* The spacer must share the content's exact font metrics so the width it
|
|
@@ -45,6 +50,8 @@ const componentStyle = css`* {
|
|
|
45
50
|
font-size: calc(var(--height) - 2 * var(--padding));
|
|
46
51
|
font-size-adjust: cap-height 1;
|
|
47
52
|
white-space: nowrap;
|
|
53
|
+
/* Opt-in size animation — see \`.inner-wrapper\`. */
|
|
54
|
+
transition: font-size var(--obc-textbox-size-transition, 0s) ease;
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
.content {
|
|
@@ -52,23 +59,40 @@ const componentStyle = css`* {
|
|
|
52
59
|
text-box-edge: cap alphabetic;
|
|
53
60
|
}
|
|
54
61
|
|
|
55
|
-
|
|
62
|
+
/* Opt-in numeric mode: fixed-width lining numerals so values stay
|
|
63
|
+
column-aligned and width-stable. Applied to the spacer too so the reserved
|
|
64
|
+
width matches the rendered digits exactly. */
|
|
65
|
+
|
|
66
|
+
.wrapper.tabular-nums .content,
|
|
67
|
+
.wrapper.tabular-nums .length-spacer {
|
|
68
|
+
font-variant-numeric: tabular-nums lining-nums;
|
|
69
|
+
font-feature-settings:
|
|
70
|
+
"ss04" on,
|
|
71
|
+
"tnum" on,
|
|
72
|
+
"lnum" on;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Size override is set on \`.wrapper\` (not \`.inner-wrapper\`) so it reaches BOTH
|
|
76
|
+
the visible \`.content\` AND the sibling \`.length-spacer\`; otherwise the spacer
|
|
77
|
+
keeps the default (m) \`--height\` and reserves width at the wrong font size. */
|
|
78
|
+
|
|
79
|
+
.wrapper.size-xs {
|
|
56
80
|
--height: 16px;
|
|
57
81
|
}
|
|
58
82
|
|
|
59
|
-
.wrapper.size-s
|
|
83
|
+
.wrapper.size-s {
|
|
60
84
|
--height: 20px;
|
|
61
85
|
}
|
|
62
86
|
|
|
63
|
-
.wrapper.size-m
|
|
87
|
+
.wrapper.size-m {
|
|
64
88
|
--height: 24px;
|
|
65
89
|
}
|
|
66
90
|
|
|
67
|
-
.wrapper.size-l
|
|
91
|
+
.wrapper.size-l {
|
|
68
92
|
--height: 32px;
|
|
69
93
|
}
|
|
70
94
|
|
|
71
|
-
.wrapper.size-xl
|
|
95
|
+
.wrapper.size-xl {
|
|
72
96
|
--height: 40px;
|
|
73
97
|
}
|
|
74
98
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textbox.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"textbox.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -33,6 +33,10 @@ export declare enum ObcTextboxFontWeight {
|
|
|
33
33
|
* cap heights of 8 / 12 / 16 / 24 / 32 px so text aligns to a predictable
|
|
34
34
|
* grid.
|
|
35
35
|
* - **Font weight:** `regular` (default), `semibold`, `bold`.
|
|
36
|
+
* - **Tabular numbers:** `tabularNums` (default off) renders digits as
|
|
37
|
+
* fixed-width, lining numerals (`tabular-nums lining-nums` + the `ss04`/`tnum`/
|
|
38
|
+
* `lnum` features) so numeric values stay column-aligned and stable in width
|
|
39
|
+
* as they update – use it for readouts and other live numeric displays.
|
|
36
40
|
* - **Alignment:** `left`, `center`, `right` (default) – positions the text
|
|
37
41
|
* within the box's width when the box is wider than the content.
|
|
38
42
|
* - **Reserved width:** content placed in the `length` slot reserves a minimum
|
|
@@ -59,6 +63,7 @@ export declare class ObcTextbox extends LitElement {
|
|
|
59
63
|
alignment: ObcTextboxAlignment;
|
|
60
64
|
size: ObcTextboxSize;
|
|
61
65
|
fontWeight: ObcTextboxFontWeight;
|
|
66
|
+
tabularNums: boolean;
|
|
62
67
|
render(): import('lit-html').TemplateResult<1>;
|
|
63
68
|
static styles: import('lit').CSSResult;
|
|
64
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textbox.d.ts","sourceRoot":"","sources":["../../../src/components/textbox/textbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAkB,MAAM,KAAK,CAAC;AAMhD,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,cAAc;IACxB,EAAE,OAAO;IACT,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,EAAE,OAAO;CACV;AAED,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED
|
|
1
|
+
{"version":3,"file":"textbox.d.ts","sourceRoot":"","sources":["../../../src/components/textbox/textbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAkB,MAAM,KAAK,CAAC;AAMhD,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,cAAc;IACxB,EAAE,OAAO;IACT,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;IACP,EAAE,OAAO;CACV;AAED,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBACa,UAAW,SAAQ,UAAU;IACd,SAAS,EAAE,mBAAmB,CAC5B;IACF,IAAI,EAAE,cAAc,CAAoB;IACxC,UAAU,EAAE,oBAAoB,CAC3B;IACJ,WAAW,UAAS;IAEtC,MAAM;IAuBf,OAAgB,MAAM,0BAA6B;CACpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
|
|
@@ -39,6 +39,7 @@ let ObcTextbox = class extends LitElement {
|
|
|
39
39
|
this.alignment = "right";
|
|
40
40
|
this.size = "m";
|
|
41
41
|
this.fontWeight = "regular";
|
|
42
|
+
this.tabularNums = false;
|
|
42
43
|
}
|
|
43
44
|
render() {
|
|
44
45
|
return html`
|
|
@@ -47,7 +48,8 @@ let ObcTextbox = class extends LitElement {
|
|
|
47
48
|
wrapper: true,
|
|
48
49
|
[`alignment-${this.alignment}`]: true,
|
|
49
50
|
[`size-${this.size}`]: true,
|
|
50
|
-
[`font-weight-${this.fontWeight}`]: true
|
|
51
|
+
[`font-weight-${this.fontWeight}`]: true,
|
|
52
|
+
"tabular-nums": this.tabularNums
|
|
51
53
|
})}
|
|
52
54
|
>
|
|
53
55
|
<div class="inner-wrapper">
|
|
@@ -72,6 +74,9 @@ __decorateClass([
|
|
|
72
74
|
__decorateClass([
|
|
73
75
|
property({ type: String })
|
|
74
76
|
], ObcTextbox.prototype, "fontWeight", 2);
|
|
77
|
+
__decorateClass([
|
|
78
|
+
property({ type: Boolean })
|
|
79
|
+
], ObcTextbox.prototype, "tabularNums", 2);
|
|
75
80
|
ObcTextbox = __decorateClass([
|
|
76
81
|
customElement("obc-textbox")
|
|
77
82
|
], ObcTextbox);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textbox.js","sources":["../../../src/components/textbox/textbox.ts"],"sourcesContent":["import {LitElement, html, unsafeCSS} from 'lit';\nimport {customElement} from '../../decorator.js';\nimport componentStyle from './textbox.css?inline';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\nexport enum ObcTextboxAlignment {\n Left = 'left',\n Center = 'center',\n Right = 'right',\n}\n\nexport enum ObcTextboxSize {\n xs = 'xs',\n s = 's',\n m = 'm',\n l = 'l',\n xl = 'xl',\n}\n\nexport enum ObcTextboxFontWeight {\n regular = 'regular',\n semibold = 'semibold',\n bold = 'bold',\n}\n\n/**\n * `<obc-textbox>` – A text container that renders inline text at a\n * precise, cap-height-trimmed size with configurable alignment and reservable\n * width.\n *\n * Use it to present short, read-only strings – such as values, labels, or\n * units – where vertical metrics must line up exactly across rows and the\n * horizontal footprint should stay stable while the text changes (for example\n * a numeric value that updates frequently). Synonyms: text container, value\n * box, label box.\n *\n * ## Features / Variants\n * - **Size:** `xs`, `s`, `m` (default), `l`, `xl` – each maps to a fixed box\n * height (16 / 20 / 24 / 32 / 40 px) with 4px padding above and below, giving\n * cap heights of 8 / 12 / 16 / 24 / 32 px so text aligns to a predictable\n * grid.\n * - **Font weight:** `regular` (default), `semibold`, `bold`.\n * - **Alignment:** `left`, `center`, `right` (default) – positions the text\n * within the box's width when the box is wider than the content.\n * - **Reserved width:** content placed in the `length` slot reserves a minimum\n * width invisibly, so the box does not resize as the visible text changes.\n * The box always shows all content – it never crops.\n *\n * ## Usage Guidelines\n * - Pass the longest expected string to the `length` slot (e.g. `\"888.8\"` or\n * `\"Wind speed\"`) so the box reserves space and does not jump in width as the\n * visible value updates.\n * - This is a display primitive for static text – use an input component for\n * editable values.\n *\n * ## Slots\n * | Slot | Renders when… | Purpose |\n * |-----------|--------------------|------------------------------------------------------|\n * | (default) | Always | The visible text content. |\n * | `length` | Always (invisible) | Reserves a minimum width based on its content width. |\n *\n * @slot - The visible text content.\n * @slot length - Reserves a minimum width based on its content width.\n */\n@customElement('obc-textbox')\nexport class ObcTextbox extends LitElement {\n @property({type: String}) alignment: ObcTextboxAlignment =\n ObcTextboxAlignment.Right;\n @property({type: String}) size: ObcTextboxSize = ObcTextboxSize.m;\n @property({type: String}) fontWeight: ObcTextboxFontWeight =\n ObcTextboxFontWeight.regular;\n\n override render() {\n return html`\n <div\n class=${classMap({\n wrapper: true,\n [`alignment-${this.alignment}`]: true,\n [`size-${this.size}`]: true,\n [`font-weight-${this.fontWeight}`]: true,\n })}\n >\n <div class=\"inner-wrapper\">\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n <div class=\"length-spacer\" aria-hidden=\"true\">\n <slot name=\"length\"></slot>\n </div>\n </div>\n `;\n }\n\n static override styles = unsafeCSS(componentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-textbox': ObcTextbox;\n }\n}\n"],"names":["ObcTextboxAlignment","ObcTextboxSize","ObcTextboxFontWeight"],"mappings":";;;;;;;;;;;;;;;AAMO,IAAK,wCAAAA,yBAAL;AACLA,uBAAA,MAAA,IAAO;AACPA,uBAAA,QAAA,IAAS;AACTA,uBAAA,OAAA,IAAQ;AAHE,SAAAA;AAAA,GAAA,uBAAA,CAAA,CAAA;AAML,IAAK,mCAAAC,oBAAL;AACLA,kBAAA,IAAA,IAAK;AACLA,kBAAA,GAAA,IAAI;AACJA,kBAAA,GAAA,IAAI;AACJA,kBAAA,GAAA,IAAI;AACJA,kBAAA,IAAA,IAAK;AALK,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;AAQL,IAAK,yCAAAC,0BAAL;AACLA,wBAAA,SAAA,IAAU;AACVA,wBAAA,UAAA,IAAW;AACXA,wBAAA,MAAA,IAAO;AAHG,SAAAA;AAAA,GAAA,wBAAA,CAAA,CAAA;
|
|
1
|
+
{"version":3,"file":"textbox.js","sources":["../../../src/components/textbox/textbox.ts"],"sourcesContent":["import {LitElement, html, unsafeCSS} from 'lit';\nimport {customElement} from '../../decorator.js';\nimport componentStyle from './textbox.css?inline';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\nexport enum ObcTextboxAlignment {\n Left = 'left',\n Center = 'center',\n Right = 'right',\n}\n\nexport enum ObcTextboxSize {\n xs = 'xs',\n s = 's',\n m = 'm',\n l = 'l',\n xl = 'xl',\n}\n\nexport enum ObcTextboxFontWeight {\n regular = 'regular',\n semibold = 'semibold',\n bold = 'bold',\n}\n\n/**\n * `<obc-textbox>` – A text container that renders inline text at a\n * precise, cap-height-trimmed size with configurable alignment and reservable\n * width.\n *\n * Use it to present short, read-only strings – such as values, labels, or\n * units – where vertical metrics must line up exactly across rows and the\n * horizontal footprint should stay stable while the text changes (for example\n * a numeric value that updates frequently). Synonyms: text container, value\n * box, label box.\n *\n * ## Features / Variants\n * - **Size:** `xs`, `s`, `m` (default), `l`, `xl` – each maps to a fixed box\n * height (16 / 20 / 24 / 32 / 40 px) with 4px padding above and below, giving\n * cap heights of 8 / 12 / 16 / 24 / 32 px so text aligns to a predictable\n * grid.\n * - **Font weight:** `regular` (default), `semibold`, `bold`.\n * - **Tabular numbers:** `tabularNums` (default off) renders digits as\n * fixed-width, lining numerals (`tabular-nums lining-nums` + the `ss04`/`tnum`/\n * `lnum` features) so numeric values stay column-aligned and stable in width\n * as they update – use it for readouts and other live numeric displays.\n * - **Alignment:** `left`, `center`, `right` (default) – positions the text\n * within the box's width when the box is wider than the content.\n * - **Reserved width:** content placed in the `length` slot reserves a minimum\n * width invisibly, so the box does not resize as the visible text changes.\n * The box always shows all content – it never crops.\n *\n * ## Usage Guidelines\n * - Pass the longest expected string to the `length` slot (e.g. `\"888.8\"` or\n * `\"Wind speed\"`) so the box reserves space and does not jump in width as the\n * visible value updates.\n * - This is a display primitive for static text – use an input component for\n * editable values.\n *\n * ## Slots\n * | Slot | Renders when… | Purpose |\n * |-----------|--------------------|------------------------------------------------------|\n * | (default) | Always | The visible text content. |\n * | `length` | Always (invisible) | Reserves a minimum width based on its content width. |\n *\n * @slot - The visible text content.\n * @slot length - Reserves a minimum width based on its content width.\n */\n@customElement('obc-textbox')\nexport class ObcTextbox extends LitElement {\n @property({type: String}) alignment: ObcTextboxAlignment =\n ObcTextboxAlignment.Right;\n @property({type: String}) size: ObcTextboxSize = ObcTextboxSize.m;\n @property({type: String}) fontWeight: ObcTextboxFontWeight =\n ObcTextboxFontWeight.regular;\n @property({type: Boolean}) tabularNums = false;\n\n override render() {\n return html`\n <div\n class=${classMap({\n wrapper: true,\n [`alignment-${this.alignment}`]: true,\n [`size-${this.size}`]: true,\n [`font-weight-${this.fontWeight}`]: true,\n 'tabular-nums': this.tabularNums,\n })}\n >\n <div class=\"inner-wrapper\">\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n <div class=\"length-spacer\" aria-hidden=\"true\">\n <slot name=\"length\"></slot>\n </div>\n </div>\n `;\n }\n\n static override styles = unsafeCSS(componentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-textbox': ObcTextbox;\n }\n}\n"],"names":["ObcTextboxAlignment","ObcTextboxSize","ObcTextboxFontWeight"],"mappings":";;;;;;;;;;;;;;;AAMO,IAAK,wCAAAA,yBAAL;AACLA,uBAAA,MAAA,IAAO;AACPA,uBAAA,QAAA,IAAS;AACTA,uBAAA,OAAA,IAAQ;AAHE,SAAAA;AAAA,GAAA,uBAAA,CAAA,CAAA;AAML,IAAK,mCAAAC,oBAAL;AACLA,kBAAA,IAAA,IAAK;AACLA,kBAAA,GAAA,IAAI;AACJA,kBAAA,GAAA,IAAI;AACJA,kBAAA,GAAA,IAAI;AACJA,kBAAA,IAAA,IAAK;AALK,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;AAQL,IAAK,yCAAAC,0BAAL;AACLA,wBAAA,SAAA,IAAU;AACVA,wBAAA,UAAA,IAAW;AACXA,wBAAA,MAAA,IAAO;AAHG,SAAAA;AAAA,GAAA,wBAAA,CAAA,CAAA;AAkDL,IAAM,aAAN,cAAyB,WAAW;AAAA,EAApC,cAAA;AAAA,UAAA,GAAA,SAAA;AACqB,SAAA,YACxB;AACwB,SAAA,OAAuB;AACvB,SAAA,aACxB;AACyB,SAAA,cAAc;AAAA,EAAA;AAAA,EAEhC,SAAS;AAChB,WAAO;AAAA;AAAA,gBAEK,SAAS;AAAA,MACf,SAAS;AAAA,MACT,CAAC,aAAa,KAAK,SAAS,EAAE,GAAG;AAAA,MACjC,CAAC,QAAQ,KAAK,IAAI,EAAE,GAAG;AAAA,MACvB,CAAC,eAAe,KAAK,UAAU,EAAE,GAAG;AAAA,MACpC,gBAAgB,KAAK;AAAA,IAAA,CACtB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYR;AAGF;AAhCa,WA+BK,SAAS,UAAU,cAAc;AA9BvB,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GADb,WACe,WAAA,aAAA,CAAA;AAEA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAHb,WAGe,WAAA,QAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAA,CAAO;AAAA,GAJb,WAIe,WAAA,cAAA,CAAA;AAEC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,QAAA,CAAQ;AAAA,GANd,WAMgB,WAAA,eAAA,CAAA;AANhB,aAAN,gBAAA;AAAA,EADN,cAAc,aAAa;AAAA,GACf,UAAA;"}
|