@ind-ds/core 0.2.0 → 0.2.1

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 (188) hide show
  1. package/dist/cjs/ind-ds.cjs.js +1 -1
  2. package/dist/cjs/ind-valve-control-panel.cjs.entry.js +7 -1
  3. package/dist/cjs/ind-valve-control-panel.cjs.entry.js.map +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/collection/components/atoms/_equipment/equipment.css +0 -74
  6. package/dist/collection/components/atoms/alarm/alarm.css +0 -87
  7. package/dist/collection/components/atoms/alarm/alarm.js +0 -122
  8. package/dist/collection/components/atoms/alarm-count/alarm-count.css +0 -44
  9. package/dist/collection/components/atoms/alarm-count/alarm-count.js +0 -171
  10. package/dist/collection/components/atoms/badge/badge.css +0 -42
  11. package/dist/collection/components/atoms/badge/badge.js +0 -101
  12. package/dist/collection/components/atoms/breadcrumb-item/breadcrumb-item.css +0 -42
  13. package/dist/collection/components/atoms/breadcrumb-item/breadcrumb-item.js +0 -116
  14. package/dist/collection/components/atoms/button/button.css +0 -110
  15. package/dist/collection/components/atoms/button/button.js +0 -215
  16. package/dist/collection/components/atoms/canvas-layer/canvas-layer.css +0 -8
  17. package/dist/collection/components/atoms/canvas-layer/canvas-layer.js +0 -161
  18. package/dist/collection/components/atoms/checkbox/checkbox.css +0 -92
  19. package/dist/collection/components/atoms/checkbox/checkbox.js +0 -214
  20. package/dist/collection/components/atoms/compressor/compressor.css +0 -7
  21. package/dist/collection/components/atoms/compressor/compressor.js +0 -124
  22. package/dist/collection/components/atoms/connection-indicator/connection-indicator.css +0 -42
  23. package/dist/collection/components/atoms/connection-indicator/connection-indicator.js +0 -107
  24. package/dist/collection/components/atoms/conveyor/conveyor.css +0 -18
  25. package/dist/collection/components/atoms/conveyor/conveyor.js +0 -152
  26. package/dist/collection/components/atoms/cooler/cooler.css +0 -15
  27. package/dist/collection/components/atoms/cooler/cooler.js +0 -124
  28. package/dist/collection/components/atoms/counter/counter.css +0 -45
  29. package/dist/collection/components/atoms/counter/counter.js +0 -171
  30. package/dist/collection/components/atoms/datetime-picker/datetime-picker.css +0 -46
  31. package/dist/collection/components/atoms/datetime-picker/datetime-picker.js +0 -275
  32. package/dist/collection/components/atoms/dialog/dialog.css +0 -85
  33. package/dist/collection/components/atoms/dialog/dialog.js +0 -265
  34. package/dist/collection/components/atoms/divider/divider.css +0 -16
  35. package/dist/collection/components/atoms/divider/divider.js +0 -50
  36. package/dist/collection/components/atoms/estop/estop.css +0 -69
  37. package/dist/collection/components/atoms/estop/estop.js +0 -166
  38. package/dist/collection/components/atoms/fan/fan.css +0 -11
  39. package/dist/collection/components/atoms/fan/fan.js +0 -124
  40. package/dist/collection/components/atoms/gauge/gauge.css +0 -70
  41. package/dist/collection/components/atoms/gauge/gauge.js +0 -237
  42. package/dist/collection/components/atoms/heartbeat/heartbeat.css +0 -58
  43. package/dist/collection/components/atoms/heartbeat/heartbeat.js +0 -116
  44. package/dist/collection/components/atoms/heater/heater.css +0 -20
  45. package/dist/collection/components/atoms/heater/heater.js +0 -124
  46. package/dist/collection/components/atoms/icon/icon.css +0 -30
  47. package/dist/collection/components/atoms/icon/icon.js +0 -119
  48. package/dist/collection/components/atoms/input/input.css +0 -92
  49. package/dist/collection/components/atoms/knob/knob.css +0 -71
  50. package/dist/collection/components/atoms/label/label.css +0 -29
  51. package/dist/collection/components/atoms/led/led.css +0 -91
  52. package/dist/collection/components/atoms/linear-gauge/linear-gauge.css +0 -65
  53. package/dist/collection/components/atoms/motor/motor.css +0 -24
  54. package/dist/collection/components/atoms/pipe/pipe.css +0 -57
  55. package/dist/collection/components/atoms/process-symbol/process-symbol.css +0 -44
  56. package/dist/collection/components/atoms/progress/progress.css +0 -69
  57. package/dist/collection/components/atoms/progress-ring/progress-ring.css +0 -59
  58. package/dist/collection/components/atoms/pump/pump.css +0 -7
  59. package/dist/collection/components/atoms/scara-canvas/scara-canvas.css +0 -100
  60. package/dist/collection/components/atoms/select/select.css +0 -88
  61. package/dist/collection/components/atoms/selector-switch/selector-switch.css +0 -53
  62. package/dist/collection/components/atoms/setpoint/setpoint.css +0 -79
  63. package/dist/collection/components/atoms/shelf-canvas/shelf-canvas.css +0 -67
  64. package/dist/collection/components/atoms/signal-quality/signal-quality.css +0 -41
  65. package/dist/collection/components/atoms/silo/silo.css +0 -12
  66. package/dist/collection/components/atoms/slider/slider.css +0 -87
  67. package/dist/collection/components/atoms/sparkline/sparkline.css +0 -37
  68. package/dist/collection/components/atoms/status-dot/status-dot.css +0 -69
  69. package/dist/collection/components/atoms/tab/tab.css +0 -39
  70. package/dist/collection/components/atoms/tag-name/tag-name.css +0 -25
  71. package/dist/collection/components/atoms/tank/tank.css +0 -12
  72. package/dist/collection/components/atoms/textarea/textarea.css +0 -74
  73. package/dist/collection/components/atoms/timestamp/timestamp.css +0 -15
  74. package/dist/collection/components/atoms/toggle/toggle.css +0 -78
  75. package/dist/collection/components/atoms/tree-node/tree-node.css +0 -65
  76. package/dist/collection/components/atoms/unit-label/unit-label.css +0 -16
  77. package/dist/collection/components/atoms/value/value.css +0 -115
  78. package/dist/collection/components/atoms/valve/valve.css +0 -101
  79. package/dist/collection/components/atoms/xy-point/xy-point.css +0 -49
  80. package/dist/collection/components/molecules/_shared/binding.css +0 -41
  81. package/dist/collection/components/molecules/_shared/card.css +0 -51
  82. package/dist/collection/components/molecules/_shared/equipment-card.css +0 -20
  83. package/dist/collection/components/molecules/_shared/row.css +0 -34
  84. package/dist/collection/components/molecules/alarm-badge-group/alarm-badge-group.css +0 -43
  85. package/dist/collection/components/molecules/alarm-badge-group/alarm-badge-group.js +0 -168
  86. package/dist/collection/components/molecules/alarm-row/alarm-row.css +0 -42
  87. package/dist/collection/components/molecules/alarm-row/alarm-row.js +0 -166
  88. package/dist/collection/components/molecules/audit-row/audit-row.css +0 -19
  89. package/dist/collection/components/molecules/audit-row/audit-row.js +0 -111
  90. package/dist/collection/components/molecules/batch-parameter-row/batch-parameter-row.css +0 -35
  91. package/dist/collection/components/molecules/batch-parameter-row/batch-parameter-row.js +0 -304
  92. package/dist/collection/components/molecules/command-group/command-group.css +0 -26
  93. package/dist/collection/components/molecules/command-group/command-group.js +0 -99
  94. package/dist/collection/components/molecules/device-connection-card/device-connection-card.css +0 -19
  95. package/dist/collection/components/molecules/device-connection-card/device-connection-card.js +0 -140
  96. package/dist/collection/components/molecules/device-info-card/device-info-card.css +0 -27
  97. package/dist/collection/components/molecules/device-info-card/device-info-card.js +0 -194
  98. package/dist/collection/components/molecules/energy-card/energy-card.css +0 -12
  99. package/dist/collection/components/molecules/energy-card/energy-card.js +0 -206
  100. package/dist/collection/components/molecules/equipment-status-card/equipment-status-card.css +0 -29
  101. package/dist/collection/components/molecules/equipment-status-card/equipment-status-card.js +0 -150
  102. package/dist/collection/components/molecules/event-row/event-row.css +0 -3
  103. package/dist/collection/components/molecules/event-row/event-row.js +0 -118
  104. package/dist/collection/components/molecules/fill-row/fill-row.css +0 -70
  105. package/dist/collection/components/molecules/fill-row/fill-row.js +0 -181
  106. package/dist/collection/components/molecules/health-card/health-card.css +0 -53
  107. package/dist/collection/components/molecules/health-card/health-card.js +0 -124
  108. package/dist/collection/components/molecules/historical-value-row/historical-value-row.css +0 -28
  109. package/dist/collection/components/molecules/historical-value-row/historical-value-row.js +0 -153
  110. package/dist/collection/components/molecules/kpi-card/kpi-card.css +0 -31
  111. package/dist/collection/components/molecules/mode-selector/mode-selector.css +0 -4
  112. package/dist/collection/components/molecules/motor-card/motor-card.css +0 -3
  113. package/dist/collection/components/molecules/mqtt-tag-binding/mqtt-tag-binding.css +0 -3
  114. package/dist/collection/components/molecules/nav-item/nav-item.css +0 -82
  115. package/dist/collection/components/molecules/network-status-card/network-status-card.css +0 -31
  116. package/dist/collection/components/molecules/opcua-tag-binding/opcua-tag-binding.css +0 -7
  117. package/dist/collection/components/molecules/pump-card/pump-card.css +0 -3
  118. package/dist/collection/components/molecules/recipe-selector/recipe-selector.css +0 -13
  119. package/dist/collection/components/molecules/setpoint-control/setpoint-control.css +0 -3
  120. package/dist/collection/components/molecules/sidebar-group/sidebar-group.css +0 -61
  121. package/dist/collection/components/molecules/speed-control/speed-control.css +0 -7
  122. package/dist/collection/components/molecules/start-stop-control/start-stop-control.css +0 -24
  123. package/dist/collection/components/molecules/tag-card/tag-card.css +0 -7
  124. package/dist/collection/components/molecules/tank-level-card/tank-level-card.css +0 -7
  125. package/dist/collection/components/molecules/temperature-control/temperature-control.css +0 -15
  126. package/dist/collection/components/molecules/toolbar-action/toolbar-action.css +0 -36
  127. package/dist/collection/components/molecules/trend-widget/trend-widget.css +0 -15
  128. package/dist/collection/components/molecules/valve-card/valve-card.css +0 -13
  129. package/dist/collection/components/organisms/_shared/control-panel.css +0 -15
  130. package/dist/collection/components/organisms/_shared/panel.css +0 -96
  131. package/dist/collection/components/organisms/alarm-panel/alarm-panel.css +0 -7
  132. package/dist/collection/components/organisms/alarm-panel/alarm-panel.js +0 -152
  133. package/dist/collection/components/organisms/alarm-summary/alarm-summary.css +0 -30
  134. package/dist/collection/components/organisms/alarm-summary/alarm-summary.js +0 -158
  135. package/dist/collection/components/organisms/app-header/app-header.css +0 -127
  136. package/dist/collection/components/organisms/app-header/app-header.js +0 -256
  137. package/dist/collection/components/organisms/asset-overview/asset-overview.css +0 -34
  138. package/dist/collection/components/organisms/asset-overview/asset-overview.js +0 -82
  139. package/dist/collection/components/organisms/batch-control-panel/batch-control-panel.css +0 -45
  140. package/dist/collection/components/organisms/batch-control-panel/batch-control-panel.js +0 -226
  141. package/dist/collection/components/organisms/command-center/command-center.css +0 -7
  142. package/dist/collection/components/organisms/command-center/command-center.js +0 -70
  143. package/dist/collection/components/organisms/context-toolbar/context-toolbar.css +0 -48
  144. package/dist/collection/components/organisms/context-toolbar/context-toolbar.js +0 -70
  145. package/dist/collection/components/organisms/device-diagnostics-panel/device-diagnostics-panel.css +0 -43
  146. package/dist/collection/components/organisms/device-diagnostics-panel/device-diagnostics-panel.js +0 -222
  147. package/dist/collection/components/organisms/energy-dashboard/energy-dashboard.css +0 -29
  148. package/dist/collection/components/organisms/energy-dashboard/energy-dashboard.js +0 -134
  149. package/dist/collection/components/organisms/equipment-dashboard/equipment-dashboard.css +0 -3
  150. package/dist/collection/components/organisms/equipment-dashboard/equipment-dashboard.js +0 -71
  151. package/dist/collection/components/organisms/event-journal/event-journal.css +0 -17
  152. package/dist/collection/components/organisms/event-journal/event-journal.js +0 -107
  153. package/dist/collection/components/organisms/firmware-update-panel/firmware-update-panel.css +0 -47
  154. package/dist/collection/components/organisms/firmware-update-panel/firmware-update-panel.js +0 -208
  155. package/dist/collection/components/organisms/historian-viewer/historian-viewer.css +0 -17
  156. package/dist/collection/components/organisms/historian-viewer/historian-viewer.js +0 -144
  157. package/dist/collection/components/organisms/machine-overview/machine-overview.css +0 -22
  158. package/dist/collection/components/organisms/maintenance-dashboard/maintenance-dashboard.css +0 -48
  159. package/dist/collection/components/organisms/motor-control-panel/motor-control-panel.css +0 -3
  160. package/dist/collection/components/organisms/mqtt-monitor/mqtt-monitor.css +0 -96
  161. package/dist/collection/components/organisms/oee-dashboard/oee-dashboard.css +0 -30
  162. package/dist/collection/components/organisms/process-control-panel/process-control-panel.css +0 -13
  163. package/dist/collection/components/organisms/production-cell/production-cell.css +0 -7
  164. package/dist/collection/components/organisms/production-dashboard/production-dashboard.css +0 -3
  165. package/dist/collection/components/organisms/production-line-overview/production-line-overview.css +0 -57
  166. package/dist/collection/components/organisms/pump-control-panel/pump-control-panel.css +0 -3
  167. package/dist/collection/components/organisms/recipe-management-panel/recipe-management-panel.css +0 -10
  168. package/dist/collection/components/organisms/sidebar-nav/sidebar-nav.css +0 -39
  169. package/dist/collection/components/organisms/status-bar/status-bar.css +0 -34
  170. package/dist/collection/components/organisms/trend-viewer/trend-viewer.css +0 -45
  171. package/dist/collection/components/organisms/valve-control-panel/valve-control-panel.css +0 -10
  172. package/dist/collection/components/organisms/valve-control-panel/valve-control-panel.js +67 -1
  173. package/dist/collection/components/organisms/valve-control-panel/valve-control-panel.js.map +1 -1
  174. package/dist/collection/components/organisms/workstation-monitor/workstation-monitor.css +0 -30
  175. package/dist/components/ind-valve-control-panel.js +1 -1
  176. package/dist/components/ind-valve-control-panel.js.map +1 -1
  177. package/dist/docs.json +88 -1
  178. package/dist/esm/ind-ds.js +1 -1
  179. package/dist/esm/ind-valve-control-panel.entry.js +7 -1
  180. package/dist/esm/ind-valve-control-panel.entry.js.map +1 -1
  181. package/dist/esm/loader.js +1 -1
  182. package/dist/ind-ds/ind-ds.esm.js +1 -1
  183. package/dist/ind-ds/{p-eac22c88.entry.js → p-69ac33af.entry.js} +2 -2
  184. package/dist/ind-ds/p-69ac33af.entry.js.map +1 -0
  185. package/dist/types/components/organisms/valve-control-panel/valve-control-panel.d.ts +6 -0
  186. package/dist/types/components.d.ts +33 -0
  187. package/package.json +2 -2
  188. package/dist/ind-ds/p-eac22c88.entry.js.map +0 -1
@@ -1,124 +0,0 @@
1
- import { h, Host } from "@stencil/core";
2
- export class IndFan {
3
- /** Process state. `running` spins the blades. */
4
- state = 'stopped';
5
- /** Visual size. */
6
- size = 'md';
7
- /** Equipment tag (e.g. "FN-301"). */
8
- tag;
9
- /** Human label. */
10
- label;
11
- render() {
12
- const name = this.label ?? this.tag ?? 'fan';
13
- return (h(Host, { key: '05348b06294a71319dbf2ac7bcde6357b1f2ddda', role: "img", "aria-label": `${name} — ${this.state}` }, h("svg", { key: '8cd4aa8242c8aa5581ec910accf1bd6743307cf6', class: "symbol", viewBox: "0 0 48 48", "aria-hidden": "true" }, h("circle", { key: '992d9e08891850d4d68580b6c5abc575738b2e14', class: "body", cx: "24", cy: "24", r: "16" }), h("g", { key: '31c5fe5dbbf268482987e8f672853f1fe7d84e02', class: "spin", style: { transformOrigin: '24px 24px' } }, h("path", { key: '0563126793186c4757fbb48c44305a2037392d7c', class: "accent", d: "M24 24 C30 14, 34 18, 24 24 Z" }), h("path", { key: 'cb14c0e5f38f73ec35a2294ba6ebd8f4344645e3', class: "accent", d: "M24 24 C34 30, 30 34, 24 24 Z" }), h("path", { key: '8cc12dc34bd9123cb543fdcb6e78688493dc5bf2', class: "accent", d: "M24 24 C18 34, 14 30, 24 24 Z" }), h("path", { key: '43c40edef2152d78fb88d32044fa78b08d85c44e', class: "accent", d: "M24 24 C14 18, 18 14, 24 24 Z" })), h("circle", { key: '47925754f8e411ac8f4210d4293ee03350391f9a', class: "hub", cx: "24", cy: "24", r: "2.5" })), (this.tag || this.label) && (h("div", { key: '2da1231dc992891380181bcddceb289eeb9de7cc', class: "caption" }, this.tag && h("span", { key: 'c8638a92c2c5fbdc9956cf2055f8663815b49f74', class: "tag" }, this.tag), this.label && h("span", { key: '12766db2ca33e5d180dd23b1962d1bd12f9bcefa', class: "label" }, this.label)))));
14
- }
15
- static get is() { return "ind-fan"; }
16
- static get encapsulation() { return "shadow"; }
17
- static get originalStyleUrls() {
18
- return {
19
- "$": ["../_equipment/equipment.css", "fan.css"]
20
- };
21
- }
22
- static get styleUrls() {
23
- return {
24
- "$": ["../_equipment/equipment.css", "fan.css"]
25
- };
26
- }
27
- static get properties() {
28
- return {
29
- "state": {
30
- "type": "string",
31
- "mutable": false,
32
- "complexType": {
33
- "original": "EquipmentState",
34
- "resolved": "\"fault\" | \"maintenance\" | \"running\" | \"stopped\" | \"warning\"",
35
- "references": {
36
- "EquipmentState": {
37
- "location": "import",
38
- "path": "../_equipment/types",
39
- "id": "src/components/atoms/_equipment/types.ts::EquipmentState",
40
- "referenceLocation": "EquipmentState"
41
- }
42
- }
43
- },
44
- "required": false,
45
- "optional": false,
46
- "docs": {
47
- "tags": [],
48
- "text": "Process state. `running` spins the blades."
49
- },
50
- "getter": false,
51
- "setter": false,
52
- "reflect": true,
53
- "attribute": "state",
54
- "defaultValue": "'stopped'"
55
- },
56
- "size": {
57
- "type": "string",
58
- "mutable": false,
59
- "complexType": {
60
- "original": "EquipmentSize",
61
- "resolved": "\"lg\" | \"md\" | \"sm\"",
62
- "references": {
63
- "EquipmentSize": {
64
- "location": "import",
65
- "path": "../_equipment/types",
66
- "id": "src/components/atoms/_equipment/types.ts::EquipmentSize",
67
- "referenceLocation": "EquipmentSize"
68
- }
69
- }
70
- },
71
- "required": false,
72
- "optional": false,
73
- "docs": {
74
- "tags": [],
75
- "text": "Visual size."
76
- },
77
- "getter": false,
78
- "setter": false,
79
- "reflect": true,
80
- "attribute": "size",
81
- "defaultValue": "'md'"
82
- },
83
- "tag": {
84
- "type": "string",
85
- "mutable": false,
86
- "complexType": {
87
- "original": "string",
88
- "resolved": "string | undefined",
89
- "references": {}
90
- },
91
- "required": false,
92
- "optional": true,
93
- "docs": {
94
- "tags": [],
95
- "text": "Equipment tag (e.g. \"FN-301\")."
96
- },
97
- "getter": false,
98
- "setter": false,
99
- "reflect": false,
100
- "attribute": "tag"
101
- },
102
- "label": {
103
- "type": "string",
104
- "mutable": false,
105
- "complexType": {
106
- "original": "string",
107
- "resolved": "string | undefined",
108
- "references": {}
109
- },
110
- "required": false,
111
- "optional": true,
112
- "docs": {
113
- "tags": [],
114
- "text": "Human label."
115
- },
116
- "getter": false,
117
- "setter": false,
118
- "reflect": false,
119
- "attribute": "label"
120
- }
121
- };
122
- }
123
- }
124
- //# sourceMappingURL=fan.js.map
@@ -1,70 +0,0 @@
1
- :host {
2
- display: inline-flex;
3
- flex-direction: column;
4
- align-items: center;
5
- font-family: var(--ind-font-family-sans, system-ui, sans-serif);
6
- color: var(--ind-surface-text-primary, light-dark(#11161c, #eef1f5));
7
- --_w: 120px;
8
- }
9
-
10
- :host([size="sm"]) { --_w: 84px; }
11
- :host([size="md"]) { --_w: 120px; }
12
- :host([size="lg"]) { --_w: 168px; }
13
-
14
- .gauge {
15
- width: var(--_w);
16
- height: var(--_w);
17
- display: block;
18
- }
19
-
20
- .track {
21
- fill: none;
22
- stroke: var(--ind-surface-border-default, #2a3340);
23
- stroke-width: 8;
24
- stroke-linecap: round;
25
- }
26
-
27
- .zone {
28
- fill: none;
29
- stroke-width: 8;
30
- stroke-linecap: butt;
31
- }
32
-
33
- .needle {
34
- stroke: var(--ind-surface-text-primary, light-dark(#11161c, #eef1f5));
35
- stroke-width: 2.5;
36
- stroke-linecap: round;
37
- transition: all var(--ind-motion-duration-base, 200ms) var(--ind-motion-easing-standard, ease);
38
- }
39
-
40
- .hub {
41
- fill: var(--ind-surface-text-primary, light-dark(#11161c, #eef1f5));
42
- }
43
-
44
- .readout {
45
- display: inline-flex;
46
- align-items: baseline;
47
- gap: 3px;
48
- margin-top: -28%;
49
- }
50
-
51
- .number {
52
- font-family: var(--ind-font-family-mono, ui-monospace, monospace);
53
- font-size: var(--ind-font-size-xl, 16px);
54
- font-weight: var(--ind-font-weight-semibold, 600);
55
- font-feature-settings: var(--ind-font-feature-tabular, "tnum" 1);
56
- }
57
-
58
- :host([size="lg"]) .number { font-size: var(--ind-font-size-2xl, 20px); }
59
-
60
- .unit { font-size: var(--ind-font-size-xs, 10px); color: var(--ind-surface-text-muted, #7a8694); }
61
-
62
- .label {
63
- margin-top: var(--ind-spacing-2, 4px);
64
- font-size: var(--ind-font-size-xs, 10px);
65
- color: var(--ind-surface-text-secondary, light-dark(#2a3340, #aab5c2));
66
- }
67
-
68
- @media (prefers-reduced-motion: reduce) {
69
- .needle { transition: none; }
70
- }
@@ -1,237 +0,0 @@
1
- import { h, Host } from "@stencil/core";
2
- export class IndGauge {
3
- /** Current value. */
4
- value = 0;
5
- /** Scale minimum. */
6
- min = 0;
7
- /** Scale maximum. */
8
- max = 100;
9
- /** Colored zones along the arc (e.g. green/amber/red bands). Pass as a property. */
10
- zones = [];
11
- /** Engineering unit. */
12
- unit;
13
- /** Label / tag rendered under the value. */
14
- label;
15
- /** Decimal places for the value. */
16
- precision;
17
- /** Size. */
18
- size = 'md';
19
- // 270° sweep from 135° (bottom-left) clockwise to 405°/45° (bottom-right).
20
- startAngle = 135;
21
- sweep = 270;
22
- cx = 50;
23
- cy = 50;
24
- r = 40;
25
- valueToAngle(v) {
26
- const span = this.max - this.min || 1;
27
- const ratio = Math.min(1, Math.max(0, (v - this.min) / span));
28
- return this.startAngle + ratio * this.sweep;
29
- }
30
- polar(angleDeg, radius = this.r) {
31
- const a = (angleDeg * Math.PI) / 180;
32
- return { x: this.cx + radius * Math.cos(a), y: this.cy + radius * Math.sin(a) };
33
- }
34
- arc(fromV, toV, radius = this.r) {
35
- const a0 = this.valueToAngle(fromV);
36
- const a1 = this.valueToAngle(toV);
37
- const p0 = this.polar(a0, radius);
38
- const p1 = this.polar(a1, radius);
39
- const large = a1 - a0 > 180 ? 1 : 0;
40
- return `M ${p0.x.toFixed(2)} ${p0.y.toFixed(2)} A ${radius} ${radius} 0 ${large} 1 ${p1.x.toFixed(2)} ${p1.y.toFixed(2)}`;
41
- }
42
- formatted() {
43
- if (!Number.isFinite(this.value))
44
- return '--';
45
- return this.precision !== undefined ? this.value.toFixed(this.precision) : String(this.value);
46
- }
47
- render() {
48
- const needleAngle = this.valueToAngle(this.value);
49
- const tip = this.polar(needleAngle, this.r - 6);
50
- const name = this.label ?? 'gauge';
51
- return (h(Host, { key: '1dcc7b4a14620e9e67f62b4bb839de1c73c9eb28', role: "meter", "aria-valuenow": this.value, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-label": `${name}: ${this.formatted()}${this.unit ? ' ' + this.unit : ''}` }, h("svg", { key: '835dadb8fe0ffcab0bd4f3dc62d7049a6a9d04dd', class: "gauge", part: "gauge", viewBox: "0 0 100 100", "aria-hidden": "true" }, h("path", { key: '440f32cf9718f31589b1c3320c3e5db538a5aaaf', class: "track", part: "track", d: this.arc(this.min, this.max) }), (this.zones ?? []).map((z) => (h("path", { class: "zone", d: this.arc(z.from, z.to), style: { stroke: z.color } }))), h("line", { key: 'd7d4f7fc4137c2763d3d51f2e33bd4f833e8f349', class: "needle", part: "needle", x1: this.cx, y1: this.cy, x2: tip.x, y2: tip.y }), h("circle", { key: 'f8e497fd70ab2f68f12d867efc41b45e8477ee7e', class: "hub", cx: this.cx, cy: this.cy, r: "3.5" })), h("div", { key: 'e71f4f120c4a8618c54a4287a47e292375a1acad', class: "readout", part: "readout" }, h("span", { key: '7cc72fe3205519521e18eb1cbc9d374101704d2d', class: "number", part: "number" }, this.formatted()), this.unit && h("span", { key: '2309b9b1c009a726af38381e8ad05aa8365f4109', class: "unit", part: "unit" }, this.unit)), this.label && h("span", { key: '2d7c584f453a5006f75d6b5f03af2d1e4a200a59', class: "label", part: "label" }, this.label)));
52
- }
53
- static get is() { return "ind-gauge"; }
54
- static get encapsulation() { return "shadow"; }
55
- static get originalStyleUrls() {
56
- return {
57
- "$": ["gauge.css"]
58
- };
59
- }
60
- static get styleUrls() {
61
- return {
62
- "$": ["gauge.css"]
63
- };
64
- }
65
- static get properties() {
66
- return {
67
- "value": {
68
- "type": "number",
69
- "mutable": false,
70
- "complexType": {
71
- "original": "number",
72
- "resolved": "number",
73
- "references": {}
74
- },
75
- "required": false,
76
- "optional": false,
77
- "docs": {
78
- "tags": [],
79
- "text": "Current value."
80
- },
81
- "getter": false,
82
- "setter": false,
83
- "reflect": false,
84
- "attribute": "value",
85
- "defaultValue": "0"
86
- },
87
- "min": {
88
- "type": "number",
89
- "mutable": false,
90
- "complexType": {
91
- "original": "number",
92
- "resolved": "number",
93
- "references": {}
94
- },
95
- "required": false,
96
- "optional": false,
97
- "docs": {
98
- "tags": [],
99
- "text": "Scale minimum."
100
- },
101
- "getter": false,
102
- "setter": false,
103
- "reflect": false,
104
- "attribute": "min",
105
- "defaultValue": "0"
106
- },
107
- "max": {
108
- "type": "number",
109
- "mutable": false,
110
- "complexType": {
111
- "original": "number",
112
- "resolved": "number",
113
- "references": {}
114
- },
115
- "required": false,
116
- "optional": false,
117
- "docs": {
118
- "tags": [],
119
- "text": "Scale maximum."
120
- },
121
- "getter": false,
122
- "setter": false,
123
- "reflect": false,
124
- "attribute": "max",
125
- "defaultValue": "100"
126
- },
127
- "zones": {
128
- "type": "unknown",
129
- "mutable": false,
130
- "complexType": {
131
- "original": "GaugeZone[]",
132
- "resolved": "GaugeZone[]",
133
- "references": {
134
- "GaugeZone": {
135
- "location": "local",
136
- "path": "/home/runner/work/ind-ds/ind-ds/packages/core/src/components/atoms/gauge/gauge.tsx",
137
- "id": "src/components/atoms/gauge/gauge.tsx::GaugeZone"
138
- }
139
- }
140
- },
141
- "required": false,
142
- "optional": false,
143
- "docs": {
144
- "tags": [],
145
- "text": "Colored zones along the arc (e.g. green/amber/red bands). Pass as a property."
146
- },
147
- "getter": false,
148
- "setter": false,
149
- "defaultValue": "[]"
150
- },
151
- "unit": {
152
- "type": "string",
153
- "mutable": false,
154
- "complexType": {
155
- "original": "string",
156
- "resolved": "string | undefined",
157
- "references": {}
158
- },
159
- "required": false,
160
- "optional": true,
161
- "docs": {
162
- "tags": [],
163
- "text": "Engineering unit."
164
- },
165
- "getter": false,
166
- "setter": false,
167
- "reflect": false,
168
- "attribute": "unit"
169
- },
170
- "label": {
171
- "type": "string",
172
- "mutable": false,
173
- "complexType": {
174
- "original": "string",
175
- "resolved": "string | undefined",
176
- "references": {}
177
- },
178
- "required": false,
179
- "optional": true,
180
- "docs": {
181
- "tags": [],
182
- "text": "Label / tag rendered under the value."
183
- },
184
- "getter": false,
185
- "setter": false,
186
- "reflect": false,
187
- "attribute": "label"
188
- },
189
- "precision": {
190
- "type": "number",
191
- "mutable": false,
192
- "complexType": {
193
- "original": "number",
194
- "resolved": "number | undefined",
195
- "references": {}
196
- },
197
- "required": false,
198
- "optional": true,
199
- "docs": {
200
- "tags": [],
201
- "text": "Decimal places for the value."
202
- },
203
- "getter": false,
204
- "setter": false,
205
- "reflect": false,
206
- "attribute": "precision"
207
- },
208
- "size": {
209
- "type": "string",
210
- "mutable": false,
211
- "complexType": {
212
- "original": "GaugeSize",
213
- "resolved": "\"lg\" | \"md\" | \"sm\"",
214
- "references": {
215
- "GaugeSize": {
216
- "location": "local",
217
- "path": "/home/runner/work/ind-ds/ind-ds/packages/core/src/components/atoms/gauge/gauge.tsx",
218
- "id": "src/components/atoms/gauge/gauge.tsx::GaugeSize"
219
- }
220
- }
221
- },
222
- "required": false,
223
- "optional": false,
224
- "docs": {
225
- "tags": [],
226
- "text": "Size."
227
- },
228
- "getter": false,
229
- "setter": false,
230
- "reflect": true,
231
- "attribute": "size",
232
- "defaultValue": "'md'"
233
- }
234
- };
235
- }
236
- }
237
- //# sourceMappingURL=gauge.js.map
@@ -1,58 +0,0 @@
1
- :host {
2
- display: inline-flex;
3
- align-items: center;
4
- gap: var(--ind-spacing-3, 6px);
5
- font-family: var(--ind-font-family-sans, system-ui, sans-serif);
6
- font-size: var(--ind-font-size-base, 12px);
7
- color: var(--ind-surface-text-primary, light-dark(#11161c, #eef1f5));
8
- --_size: 10px;
9
- --_color: var(--ind-state-running-bg, #16a34a);
10
- --_period: 1000ms;
11
- }
12
-
13
- :host([size="sm"]) { --_size: 8px; }
14
- :host([size="lg"]) { --_size: 14px; }
15
-
16
- :host(:not([alive])) { --_color: var(--ind-state-fault-bg, #dc2626); }
17
-
18
- .pulse {
19
- position: relative;
20
- display: inline-flex;
21
- width: var(--_size);
22
- height: var(--_size);
23
- flex: none;
24
- }
25
-
26
- .core {
27
- position: absolute;
28
- inset: 0;
29
- margin: auto;
30
- width: var(--_size);
31
- height: var(--_size);
32
- border-radius: 50%;
33
- background: var(--_color);
34
- }
35
-
36
- .ring {
37
- position: absolute;
38
- inset: 0;
39
- border-radius: 50%;
40
- background: var(--_color);
41
- opacity: 0;
42
- }
43
-
44
- :host([alive]) .ring {
45
- animation: ind-heartbeat var(--_period) ease-out infinite;
46
- }
47
-
48
- @keyframes ind-heartbeat {
49
- 0% { transform: scale(1); opacity: 0.6; }
50
- 70% { transform: scale(2.6); opacity: 0; }
51
- 100% { transform: scale(2.6); opacity: 0; }
52
- }
53
-
54
- .label { color: var(--ind-surface-text-secondary, light-dark(#2a3340, #aab5c2)); }
55
-
56
- @media (prefers-reduced-motion: reduce) {
57
- .ring { animation: none !important; }
58
- }
@@ -1,116 +0,0 @@
1
- import { h, Host } from "@stencil/core";
2
- export class IndHeartbeat {
3
- /** Whether the monitored source is alive. When false the pulse stops. */
4
- alive = true;
5
- /** Beat interval in milliseconds (drives the pulse animation period). */
6
- interval = 1000;
7
- /** Size. */
8
- size = 'md';
9
- /** Optional label rendered next to the pulse. */
10
- label;
11
- render() {
12
- return (h(Host, { key: '57635f480aa687475404cc5078e5f2ad1bef3522', role: "status", "aria-live": "polite", "aria-label": this.label ?? (this.alive ? 'Heartbeat active' : 'Heartbeat lost'), style: { '--_period': `${Math.max(200, this.interval)}ms` } }, h("span", { key: 'c1a84671caebe2949acb923a666cd9f2318e95a7', class: "pulse", part: "pulse", "aria-hidden": "true" }, h("span", { key: '720ef97105a86565d5aced3d77ada332b6c1ded2', class: "core", part: "core" }), h("span", { key: 'f865735ce0515440a8b1148dbe9a506bbc891cc9', class: "ring", part: "ring" })), this.label && h("span", { key: 'b15159d02b971495987871841848d27c9f21e94c', class: "label", part: "label" }, this.label)));
13
- }
14
- static get is() { return "ind-heartbeat"; }
15
- static get encapsulation() { return "shadow"; }
16
- static get originalStyleUrls() {
17
- return {
18
- "$": ["heartbeat.css"]
19
- };
20
- }
21
- static get styleUrls() {
22
- return {
23
- "$": ["heartbeat.css"]
24
- };
25
- }
26
- static get properties() {
27
- return {
28
- "alive": {
29
- "type": "boolean",
30
- "mutable": false,
31
- "complexType": {
32
- "original": "boolean",
33
- "resolved": "boolean",
34
- "references": {}
35
- },
36
- "required": false,
37
- "optional": false,
38
- "docs": {
39
- "tags": [],
40
- "text": "Whether the monitored source is alive. When false the pulse stops."
41
- },
42
- "getter": false,
43
- "setter": false,
44
- "reflect": true,
45
- "attribute": "alive",
46
- "defaultValue": "true"
47
- },
48
- "interval": {
49
- "type": "number",
50
- "mutable": false,
51
- "complexType": {
52
- "original": "number",
53
- "resolved": "number",
54
- "references": {}
55
- },
56
- "required": false,
57
- "optional": false,
58
- "docs": {
59
- "tags": [],
60
- "text": "Beat interval in milliseconds (drives the pulse animation period)."
61
- },
62
- "getter": false,
63
- "setter": false,
64
- "reflect": false,
65
- "attribute": "interval",
66
- "defaultValue": "1000"
67
- },
68
- "size": {
69
- "type": "string",
70
- "mutable": false,
71
- "complexType": {
72
- "original": "HeartbeatSize",
73
- "resolved": "\"lg\" | \"md\" | \"sm\"",
74
- "references": {
75
- "HeartbeatSize": {
76
- "location": "local",
77
- "path": "/home/runner/work/ind-ds/ind-ds/packages/core/src/components/atoms/heartbeat/heartbeat.tsx",
78
- "id": "src/components/atoms/heartbeat/heartbeat.tsx::HeartbeatSize"
79
- }
80
- }
81
- },
82
- "required": false,
83
- "optional": false,
84
- "docs": {
85
- "tags": [],
86
- "text": "Size."
87
- },
88
- "getter": false,
89
- "setter": false,
90
- "reflect": true,
91
- "attribute": "size",
92
- "defaultValue": "'md'"
93
- },
94
- "label": {
95
- "type": "string",
96
- "mutable": false,
97
- "complexType": {
98
- "original": "string",
99
- "resolved": "string | undefined",
100
- "references": {}
101
- },
102
- "required": false,
103
- "optional": true,
104
- "docs": {
105
- "tags": [],
106
- "text": "Optional label rendered next to the pulse."
107
- },
108
- "getter": false,
109
- "setter": false,
110
- "reflect": false,
111
- "attribute": "label"
112
- }
113
- };
114
- }
115
- }
116
- //# sourceMappingURL=heartbeat.js.map
@@ -1,20 +0,0 @@
1
- .coil {
2
- fill: none;
3
- stroke: var(--_stroke);
4
- stroke-width: 1.5;
5
- stroke-linecap: round;
6
- vector-effect: non-scaling-stroke;
7
- }
8
-
9
- :host([state="running"]) {
10
- --_stroke: var(--ind-state-warning-border, #fcd34d);
11
- --_fill: var(--ind-state-fault-bg, #dc2626);
12
- }
13
- :host([state="running"]) .coil {
14
- stroke: var(--ind-state-fault-bg, #ef4444);
15
- animation: ind-heater-glow 1.4s ease-in-out infinite;
16
- }
17
-
18
- @keyframes ind-heater-glow {
19
- 50% { stroke: var(--ind-state-warning-bg, #f59e0b); }
20
- }