@ind-ds/core 0.1.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 (347) hide show
  1. package/README.md +41 -0
  2. package/dist/cjs/ind-alarm.cjs.entry.js +35 -0
  3. package/dist/cjs/ind-alarm.cjs.entry.js.map +1 -0
  4. package/dist/cjs/ind-app-header.cjs.entry.js +42 -0
  5. package/dist/cjs/ind-app-header.cjs.entry.js.map +1 -0
  6. package/dist/cjs/ind-button.cjs.entry.js +79 -0
  7. package/dist/cjs/ind-button.cjs.entry.js.map +1 -0
  8. package/dist/cjs/ind-checkbox.cjs.entry.js +49 -0
  9. package/dist/cjs/ind-checkbox.cjs.entry.js.map +1 -0
  10. package/dist/cjs/ind-dialog.cjs.entry.js +101 -0
  11. package/dist/cjs/ind-dialog.cjs.entry.js.map +1 -0
  12. package/dist/cjs/ind-divider.cjs.entry.js +21 -0
  13. package/dist/cjs/ind-divider.cjs.entry.js.map +1 -0
  14. package/dist/cjs/ind-ds.cjs.js +27 -0
  15. package/dist/cjs/ind-ds.cjs.js.map +1 -0
  16. package/dist/cjs/ind-fill-row.cjs.entry.js +34 -0
  17. package/dist/cjs/ind-fill-row.cjs.entry.js.map +1 -0
  18. package/dist/cjs/ind-health-card.cjs.entry.js +38 -0
  19. package/dist/cjs/ind-health-card.cjs.entry.js.map +1 -0
  20. package/dist/cjs/ind-input.cjs.entry.js +57 -0
  21. package/dist/cjs/ind-input.cjs.entry.js.map +1 -0
  22. package/dist/cjs/ind-led.cjs.entry.js +29 -0
  23. package/dist/cjs/ind-led.cjs.entry.js.map +1 -0
  24. package/dist/cjs/ind-mqtt-monitor.cjs.entry.js +75 -0
  25. package/dist/cjs/ind-mqtt-monitor.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ind-nav-item.cjs.entry.js +48 -0
  27. package/dist/cjs/ind-nav-item.cjs.entry.js.map +1 -0
  28. package/dist/cjs/ind-progress.cjs.entry.js +48 -0
  29. package/dist/cjs/ind-progress.cjs.entry.js.map +1 -0
  30. package/dist/cjs/ind-scara-canvas.cjs.entry.js +57 -0
  31. package/dist/cjs/ind-scara-canvas.cjs.entry.js.map +1 -0
  32. package/dist/cjs/ind-select.cjs.entry.js +55 -0
  33. package/dist/cjs/ind-select.cjs.entry.js.map +1 -0
  34. package/dist/cjs/ind-shelf-canvas.cjs.entry.js +88 -0
  35. package/dist/cjs/ind-shelf-canvas.cjs.entry.js.map +1 -0
  36. package/dist/cjs/ind-sidebar-nav.cjs.entry.js +20 -0
  37. package/dist/cjs/ind-sidebar-nav.cjs.entry.js.map +1 -0
  38. package/dist/cjs/ind-status-bar.cjs.entry.js +22 -0
  39. package/dist/cjs/ind-status-bar.cjs.entry.js.map +1 -0
  40. package/dist/cjs/ind-status-dot.cjs.entry.js +31 -0
  41. package/dist/cjs/ind-status-dot.cjs.entry.js.map +1 -0
  42. package/dist/cjs/ind-textarea.cjs.entry.js +66 -0
  43. package/dist/cjs/ind-textarea.cjs.entry.js.map +1 -0
  44. package/dist/cjs/ind-toolbar-action.cjs.entry.js +23 -0
  45. package/dist/cjs/ind-toolbar-action.cjs.entry.js.map +1 -0
  46. package/dist/cjs/ind-value.cjs.entry.js +47 -0
  47. package/dist/cjs/ind-value.cjs.entry.js.map +1 -0
  48. package/dist/cjs/ind-valve.cjs.entry.js +31 -0
  49. package/dist/cjs/ind-valve.cjs.entry.js.map +1 -0
  50. package/dist/cjs/index-ph7ZTjuY.js +1638 -0
  51. package/dist/cjs/index-ph7ZTjuY.js.map +1 -0
  52. package/dist/cjs/index.cjs.js +5 -0
  53. package/dist/cjs/index.cjs.js.map +1 -0
  54. package/dist/cjs/loader.cjs.js +15 -0
  55. package/dist/cjs/loader.cjs.js.map +1 -0
  56. package/dist/collection/collection-manifest.json +35 -0
  57. package/dist/collection/components/atoms/alarm/alarm.css +87 -0
  58. package/dist/collection/components/atoms/alarm/alarm.js +122 -0
  59. package/dist/collection/components/atoms/alarm/alarm.js.map +1 -0
  60. package/dist/collection/components/atoms/button/button.css +110 -0
  61. package/dist/collection/components/atoms/button/button.js +215 -0
  62. package/dist/collection/components/atoms/button/button.js.map +1 -0
  63. package/dist/collection/components/atoms/checkbox/checkbox.css +92 -0
  64. package/dist/collection/components/atoms/checkbox/checkbox.js +214 -0
  65. package/dist/collection/components/atoms/checkbox/checkbox.js.map +1 -0
  66. package/dist/collection/components/atoms/dialog/dialog.css +85 -0
  67. package/dist/collection/components/atoms/dialog/dialog.js +265 -0
  68. package/dist/collection/components/atoms/dialog/dialog.js.map +1 -0
  69. package/dist/collection/components/atoms/divider/divider.css +16 -0
  70. package/dist/collection/components/atoms/divider/divider.js +50 -0
  71. package/dist/collection/components/atoms/divider/divider.js.map +1 -0
  72. package/dist/collection/components/atoms/input/input.css +92 -0
  73. package/dist/collection/components/atoms/input/input.js +427 -0
  74. package/dist/collection/components/atoms/input/input.js.map +1 -0
  75. package/dist/collection/components/atoms/led/led.css +91 -0
  76. package/dist/collection/components/atoms/led/led.js +123 -0
  77. package/dist/collection/components/atoms/led/led.js.map +1 -0
  78. package/dist/collection/components/atoms/progress/progress.css +69 -0
  79. package/dist/collection/components/atoms/progress/progress.js +221 -0
  80. package/dist/collection/components/atoms/progress/progress.js.map +1 -0
  81. package/dist/collection/components/atoms/scara-canvas/scara-canvas.css +100 -0
  82. package/dist/collection/components/atoms/scara-canvas/scara-canvas.js +138 -0
  83. package/dist/collection/components/atoms/scara-canvas/scara-canvas.js.map +1 -0
  84. package/dist/collection/components/atoms/select/select.css +88 -0
  85. package/dist/collection/components/atoms/select/select.js +244 -0
  86. package/dist/collection/components/atoms/select/select.js.map +1 -0
  87. package/dist/collection/components/atoms/shelf-canvas/shelf-canvas.css +67 -0
  88. package/dist/collection/components/atoms/shelf-canvas/shelf-canvas.js +184 -0
  89. package/dist/collection/components/atoms/shelf-canvas/shelf-canvas.js.map +1 -0
  90. package/dist/collection/components/atoms/status-dot/status-dot.css +69 -0
  91. package/dist/collection/components/atoms/status-dot/status-dot.js +125 -0
  92. package/dist/collection/components/atoms/status-dot/status-dot.js.map +1 -0
  93. package/dist/collection/components/atoms/textarea/textarea.css +74 -0
  94. package/dist/collection/components/atoms/textarea/textarea.js +331 -0
  95. package/dist/collection/components/atoms/textarea/textarea.js.map +1 -0
  96. package/dist/collection/components/atoms/value/value.css +115 -0
  97. package/dist/collection/components/atoms/value/value.js +223 -0
  98. package/dist/collection/components/atoms/value/value.js.map +1 -0
  99. package/dist/collection/components/atoms/valve/valve.css +101 -0
  100. package/dist/collection/components/atoms/valve/valve.js +150 -0
  101. package/dist/collection/components/atoms/valve/valve.js.map +1 -0
  102. package/dist/collection/components/molecules/fill-row/fill-row.css +70 -0
  103. package/dist/collection/components/molecules/fill-row/fill-row.js +181 -0
  104. package/dist/collection/components/molecules/fill-row/fill-row.js.map +1 -0
  105. package/dist/collection/components/molecules/health-card/health-card.css +53 -0
  106. package/dist/collection/components/molecules/health-card/health-card.js +124 -0
  107. package/dist/collection/components/molecules/health-card/health-card.js.map +1 -0
  108. package/dist/collection/components/molecules/nav-item/nav-item.css +82 -0
  109. package/dist/collection/components/molecules/nav-item/nav-item.js +165 -0
  110. package/dist/collection/components/molecules/nav-item/nav-item.js.map +1 -0
  111. package/dist/collection/components/molecules/toolbar-action/toolbar-action.css +36 -0
  112. package/dist/collection/components/molecules/toolbar-action/toolbar-action.js +45 -0
  113. package/dist/collection/components/molecules/toolbar-action/toolbar-action.js.map +1 -0
  114. package/dist/collection/components/organisms/app-header/app-header.css +127 -0
  115. package/dist/collection/components/organisms/app-header/app-header.js +256 -0
  116. package/dist/collection/components/organisms/app-header/app-header.js.map +1 -0
  117. package/dist/collection/components/organisms/mqtt-monitor/mqtt-monitor.css +96 -0
  118. package/dist/collection/components/organisms/mqtt-monitor/mqtt-monitor.js +205 -0
  119. package/dist/collection/components/organisms/mqtt-monitor/mqtt-monitor.js.map +1 -0
  120. package/dist/collection/components/organisms/sidebar-nav/sidebar-nav.css +39 -0
  121. package/dist/collection/components/organisms/sidebar-nav/sidebar-nav.js +26 -0
  122. package/dist/collection/components/organisms/sidebar-nav/sidebar-nav.js.map +1 -0
  123. package/dist/collection/components/organisms/status-bar/status-bar.css +34 -0
  124. package/dist/collection/components/organisms/status-bar/status-bar.js +76 -0
  125. package/dist/collection/components/organisms/status-bar/status-bar.js.map +1 -0
  126. package/dist/collection/index.js +2 -0
  127. package/dist/collection/index.js.map +1 -0
  128. package/dist/components/ind-alarm.d.ts +11 -0
  129. package/dist/components/ind-alarm.js +2 -0
  130. package/dist/components/ind-alarm.js.map +1 -0
  131. package/dist/components/ind-app-header.d.ts +11 -0
  132. package/dist/components/ind-app-header.js +2 -0
  133. package/dist/components/ind-app-header.js.map +1 -0
  134. package/dist/components/ind-button.d.ts +11 -0
  135. package/dist/components/ind-button.js +2 -0
  136. package/dist/components/ind-button.js.map +1 -0
  137. package/dist/components/ind-checkbox.d.ts +11 -0
  138. package/dist/components/ind-checkbox.js +2 -0
  139. package/dist/components/ind-checkbox.js.map +1 -0
  140. package/dist/components/ind-dialog.d.ts +11 -0
  141. package/dist/components/ind-dialog.js +2 -0
  142. package/dist/components/ind-dialog.js.map +1 -0
  143. package/dist/components/ind-divider.d.ts +11 -0
  144. package/dist/components/ind-divider.js +2 -0
  145. package/dist/components/ind-divider.js.map +1 -0
  146. package/dist/components/ind-fill-row.d.ts +11 -0
  147. package/dist/components/ind-fill-row.js +2 -0
  148. package/dist/components/ind-fill-row.js.map +1 -0
  149. package/dist/components/ind-health-card.d.ts +11 -0
  150. package/dist/components/ind-health-card.js +2 -0
  151. package/dist/components/ind-health-card.js.map +1 -0
  152. package/dist/components/ind-input.d.ts +11 -0
  153. package/dist/components/ind-input.js +2 -0
  154. package/dist/components/ind-input.js.map +1 -0
  155. package/dist/components/ind-led.d.ts +11 -0
  156. package/dist/components/ind-led.js +2 -0
  157. package/dist/components/ind-led.js.map +1 -0
  158. package/dist/components/ind-mqtt-monitor.d.ts +11 -0
  159. package/dist/components/ind-mqtt-monitor.js +2 -0
  160. package/dist/components/ind-mqtt-monitor.js.map +1 -0
  161. package/dist/components/ind-nav-item.d.ts +11 -0
  162. package/dist/components/ind-nav-item.js +2 -0
  163. package/dist/components/ind-nav-item.js.map +1 -0
  164. package/dist/components/ind-progress.d.ts +11 -0
  165. package/dist/components/ind-progress.js +2 -0
  166. package/dist/components/ind-progress.js.map +1 -0
  167. package/dist/components/ind-scara-canvas.d.ts +11 -0
  168. package/dist/components/ind-scara-canvas.js +2 -0
  169. package/dist/components/ind-scara-canvas.js.map +1 -0
  170. package/dist/components/ind-select.d.ts +11 -0
  171. package/dist/components/ind-select.js +2 -0
  172. package/dist/components/ind-select.js.map +1 -0
  173. package/dist/components/ind-shelf-canvas.d.ts +11 -0
  174. package/dist/components/ind-shelf-canvas.js +2 -0
  175. package/dist/components/ind-shelf-canvas.js.map +1 -0
  176. package/dist/components/ind-sidebar-nav.d.ts +11 -0
  177. package/dist/components/ind-sidebar-nav.js +2 -0
  178. package/dist/components/ind-sidebar-nav.js.map +1 -0
  179. package/dist/components/ind-status-bar.d.ts +11 -0
  180. package/dist/components/ind-status-bar.js +2 -0
  181. package/dist/components/ind-status-bar.js.map +1 -0
  182. package/dist/components/ind-status-dot.d.ts +11 -0
  183. package/dist/components/ind-status-dot.js +2 -0
  184. package/dist/components/ind-status-dot.js.map +1 -0
  185. package/dist/components/ind-textarea.d.ts +11 -0
  186. package/dist/components/ind-textarea.js +2 -0
  187. package/dist/components/ind-textarea.js.map +1 -0
  188. package/dist/components/ind-toolbar-action.d.ts +11 -0
  189. package/dist/components/ind-toolbar-action.js +2 -0
  190. package/dist/components/ind-toolbar-action.js.map +1 -0
  191. package/dist/components/ind-value.d.ts +11 -0
  192. package/dist/components/ind-value.js +2 -0
  193. package/dist/components/ind-value.js.map +1 -0
  194. package/dist/components/ind-valve.d.ts +11 -0
  195. package/dist/components/ind-valve.js +2 -0
  196. package/dist/components/ind-valve.js.map +1 -0
  197. package/dist/components/index.d.ts +35 -0
  198. package/dist/components/index.js +2 -0
  199. package/dist/components/index.js.map +1 -0
  200. package/dist/components/p-D-FsSjAC.js +2 -0
  201. package/dist/components/p-D-FsSjAC.js.map +1 -0
  202. package/dist/components/p-acsAzrRn.js +2 -0
  203. package/dist/components/p-acsAzrRn.js.map +1 -0
  204. package/dist/docs.d.ts +480 -0
  205. package/dist/docs.json +5360 -0
  206. package/dist/esm/ind-alarm.entry.js +33 -0
  207. package/dist/esm/ind-alarm.entry.js.map +1 -0
  208. package/dist/esm/ind-app-header.entry.js +40 -0
  209. package/dist/esm/ind-app-header.entry.js.map +1 -0
  210. package/dist/esm/ind-button.entry.js +77 -0
  211. package/dist/esm/ind-button.entry.js.map +1 -0
  212. package/dist/esm/ind-checkbox.entry.js +47 -0
  213. package/dist/esm/ind-checkbox.entry.js.map +1 -0
  214. package/dist/esm/ind-dialog.entry.js +99 -0
  215. package/dist/esm/ind-dialog.entry.js.map +1 -0
  216. package/dist/esm/ind-divider.entry.js +19 -0
  217. package/dist/esm/ind-divider.entry.js.map +1 -0
  218. package/dist/esm/ind-ds.js +23 -0
  219. package/dist/esm/ind-ds.js.map +1 -0
  220. package/dist/esm/ind-fill-row.entry.js +32 -0
  221. package/dist/esm/ind-fill-row.entry.js.map +1 -0
  222. package/dist/esm/ind-health-card.entry.js +36 -0
  223. package/dist/esm/ind-health-card.entry.js.map +1 -0
  224. package/dist/esm/ind-input.entry.js +55 -0
  225. package/dist/esm/ind-input.entry.js.map +1 -0
  226. package/dist/esm/ind-led.entry.js +27 -0
  227. package/dist/esm/ind-led.entry.js.map +1 -0
  228. package/dist/esm/ind-mqtt-monitor.entry.js +73 -0
  229. package/dist/esm/ind-mqtt-monitor.entry.js.map +1 -0
  230. package/dist/esm/ind-nav-item.entry.js +46 -0
  231. package/dist/esm/ind-nav-item.entry.js.map +1 -0
  232. package/dist/esm/ind-progress.entry.js +46 -0
  233. package/dist/esm/ind-progress.entry.js.map +1 -0
  234. package/dist/esm/ind-scara-canvas.entry.js +55 -0
  235. package/dist/esm/ind-scara-canvas.entry.js.map +1 -0
  236. package/dist/esm/ind-select.entry.js +53 -0
  237. package/dist/esm/ind-select.entry.js.map +1 -0
  238. package/dist/esm/ind-shelf-canvas.entry.js +86 -0
  239. package/dist/esm/ind-shelf-canvas.entry.js.map +1 -0
  240. package/dist/esm/ind-sidebar-nav.entry.js +18 -0
  241. package/dist/esm/ind-sidebar-nav.entry.js.map +1 -0
  242. package/dist/esm/ind-status-bar.entry.js +20 -0
  243. package/dist/esm/ind-status-bar.entry.js.map +1 -0
  244. package/dist/esm/ind-status-dot.entry.js +29 -0
  245. package/dist/esm/ind-status-dot.entry.js.map +1 -0
  246. package/dist/esm/ind-textarea.entry.js +64 -0
  247. package/dist/esm/ind-textarea.entry.js.map +1 -0
  248. package/dist/esm/ind-toolbar-action.entry.js +21 -0
  249. package/dist/esm/ind-toolbar-action.entry.js.map +1 -0
  250. package/dist/esm/ind-value.entry.js +45 -0
  251. package/dist/esm/ind-value.entry.js.map +1 -0
  252. package/dist/esm/ind-valve.entry.js +29 -0
  253. package/dist/esm/ind-valve.entry.js.map +1 -0
  254. package/dist/esm/index-D2yNiL0d.js +1628 -0
  255. package/dist/esm/index-D2yNiL0d.js.map +1 -0
  256. package/dist/esm/index.js +4 -0
  257. package/dist/esm/index.js.map +1 -0
  258. package/dist/esm/loader.js +13 -0
  259. package/dist/esm/loader.js.map +1 -0
  260. package/dist/ind-ds/ind-ds.css +1 -0
  261. package/dist/ind-ds/ind-ds.esm.js +2 -0
  262. package/dist/ind-ds/ind-ds.esm.js.map +1 -0
  263. package/dist/ind-ds/index.esm.js +2 -0
  264. package/dist/ind-ds/index.esm.js.map +1 -0
  265. package/dist/ind-ds/p-0840007d.entry.js +2 -0
  266. package/dist/ind-ds/p-0840007d.entry.js.map +1 -0
  267. package/dist/ind-ds/p-1727b403.entry.js +2 -0
  268. package/dist/ind-ds/p-1727b403.entry.js.map +1 -0
  269. package/dist/ind-ds/p-1d871f3f.entry.js +2 -0
  270. package/dist/ind-ds/p-1d871f3f.entry.js.map +1 -0
  271. package/dist/ind-ds/p-296b0c55.entry.js +2 -0
  272. package/dist/ind-ds/p-296b0c55.entry.js.map +1 -0
  273. package/dist/ind-ds/p-459405b6.entry.js +2 -0
  274. package/dist/ind-ds/p-459405b6.entry.js.map +1 -0
  275. package/dist/ind-ds/p-4a4811ab.entry.js +2 -0
  276. package/dist/ind-ds/p-4a4811ab.entry.js.map +1 -0
  277. package/dist/ind-ds/p-52b18003.entry.js +2 -0
  278. package/dist/ind-ds/p-52b18003.entry.js.map +1 -0
  279. package/dist/ind-ds/p-5369d63a.entry.js +2 -0
  280. package/dist/ind-ds/p-5369d63a.entry.js.map +1 -0
  281. package/dist/ind-ds/p-595ccdce.entry.js +2 -0
  282. package/dist/ind-ds/p-595ccdce.entry.js.map +1 -0
  283. package/dist/ind-ds/p-6c5c8053.entry.js +2 -0
  284. package/dist/ind-ds/p-6c5c8053.entry.js.map +1 -0
  285. package/dist/ind-ds/p-6c8f4bbd.entry.js +2 -0
  286. package/dist/ind-ds/p-6c8f4bbd.entry.js.map +1 -0
  287. package/dist/ind-ds/p-781e21df.entry.js +2 -0
  288. package/dist/ind-ds/p-781e21df.entry.js.map +1 -0
  289. package/dist/ind-ds/p-8817625a.entry.js +2 -0
  290. package/dist/ind-ds/p-8817625a.entry.js.map +1 -0
  291. package/dist/ind-ds/p-99f55d2a.entry.js +2 -0
  292. package/dist/ind-ds/p-99f55d2a.entry.js.map +1 -0
  293. package/dist/ind-ds/p-9b93fb09.entry.js +2 -0
  294. package/dist/ind-ds/p-9b93fb09.entry.js.map +1 -0
  295. package/dist/ind-ds/p-D2yNiL0d.js +3 -0
  296. package/dist/ind-ds/p-D2yNiL0d.js.map +1 -0
  297. package/dist/ind-ds/p-c8de42e9.entry.js +2 -0
  298. package/dist/ind-ds/p-c8de42e9.entry.js.map +1 -0
  299. package/dist/ind-ds/p-c9f752e6.entry.js +2 -0
  300. package/dist/ind-ds/p-c9f752e6.entry.js.map +1 -0
  301. package/dist/ind-ds/p-cee8bf2b.entry.js +2 -0
  302. package/dist/ind-ds/p-cee8bf2b.entry.js.map +1 -0
  303. package/dist/ind-ds/p-cf07b580.entry.js +2 -0
  304. package/dist/ind-ds/p-cf07b580.entry.js.map +1 -0
  305. package/dist/ind-ds/p-d1edc052.entry.js +2 -0
  306. package/dist/ind-ds/p-d1edc052.entry.js.map +1 -0
  307. package/dist/ind-ds/p-ea24a59d.entry.js +2 -0
  308. package/dist/ind-ds/p-ea24a59d.entry.js.map +1 -0
  309. package/dist/ind-ds/p-ec0b3785.entry.js +2 -0
  310. package/dist/ind-ds/p-ec0b3785.entry.js.map +1 -0
  311. package/dist/ind-ds/p-ee453874.entry.js +2 -0
  312. package/dist/ind-ds/p-ee453874.entry.js.map +1 -0
  313. package/dist/index.cjs.js +1 -0
  314. package/dist/index.js +1 -0
  315. package/dist/types/components/atoms/alarm/alarm.d.ts +13 -0
  316. package/dist/types/components/atoms/button/button.d.ts +31 -0
  317. package/dist/types/components/atoms/checkbox/checkbox.d.ts +18 -0
  318. package/dist/types/components/atoms/dialog/dialog.d.ts +29 -0
  319. package/dist/types/components/atoms/divider/divider.d.ts +6 -0
  320. package/dist/types/components/atoms/input/input.d.ts +34 -0
  321. package/dist/types/components/atoms/led/led.d.ts +14 -0
  322. package/dist/types/components/atoms/progress/progress.d.ts +24 -0
  323. package/dist/types/components/atoms/scara-canvas/scara-canvas.d.ts +21 -0
  324. package/dist/types/components/atoms/select/select.d.ts +27 -0
  325. package/dist/types/components/atoms/shelf-canvas/shelf-canvas.d.ts +29 -0
  326. package/dist/types/components/atoms/status-dot/status-dot.d.ts +14 -0
  327. package/dist/types/components/atoms/textarea/textarea.d.ts +28 -0
  328. package/dist/types/components/atoms/value/value.d.ts +24 -0
  329. package/dist/types/components/atoms/valve/valve.d.ts +17 -0
  330. package/dist/types/components/molecules/fill-row/fill-row.d.ts +19 -0
  331. package/dist/types/components/molecules/health-card/health-card.d.ts +13 -0
  332. package/dist/types/components/molecules/nav-item/nav-item.d.ts +17 -0
  333. package/dist/types/components/molecules/toolbar-action/toolbar-action.d.ts +6 -0
  334. package/dist/types/components/organisms/app-header/app-header.d.ts +26 -0
  335. package/dist/types/components/organisms/mqtt-monitor/mqtt-monitor.d.ts +23 -0
  336. package/dist/types/components/organisms/sidebar-nav/sidebar-nav.d.ts +11 -0
  337. package/dist/types/components/organisms/status-bar/status-bar.d.ts +13 -0
  338. package/dist/types/components.d.ts +1775 -0
  339. package/dist/types/index.d.ts +21 -0
  340. package/dist/types/stencil-public-runtime.d.ts +1861 -0
  341. package/loader/cdn.js +1 -0
  342. package/loader/index.cjs.js +1 -0
  343. package/loader/index.d.ts +24 -0
  344. package/loader/index.es2017.js +1 -0
  345. package/loader/index.js +2 -0
  346. package/package.json +87 -0
  347. package/utilities.css +324 -0
@@ -0,0 +1,1775 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /**
4
+ * This is an autogenerated file created by the Stencil compiler.
5
+ * It contains typing information for all components that exist in this project.
6
+ */
7
+ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { AlarmPriority } from "./components/atoms/alarm/alarm";
9
+ import { AppHeaderConnectionState } from "./components/organisms/app-header/app-header";
10
+ import { ButtonSize, ButtonVariant } from "./components/atoms/button/button";
11
+ import { CheckboxSize } from "./components/atoms/checkbox/checkbox";
12
+ import { DialogSize } from "./components/atoms/dialog/dialog";
13
+ import { DividerOrientation } from "./components/atoms/divider/divider";
14
+ import { FillRowVariant } from "./components/molecules/fill-row/fill-row";
15
+ import { HealthState } from "./components/molecules/health-card/health-card";
16
+ import { InputMode, InputSize, InputType } from "./components/atoms/input/input";
17
+ import { LedSize, LedState } from "./components/atoms/led/led";
18
+ import { ProgressSize, ProgressVariant } from "./components/atoms/progress/progress";
19
+ import { ScaraState } from "./components/atoms/scara-canvas/scara-canvas";
20
+ import { SelectOption, SelectSize } from "./components/atoms/select/select";
21
+ import { ShelfSlot } from "./components/atoms/shelf-canvas/shelf-canvas";
22
+ import { StatusBarState } from "./components/organisms/status-bar/status-bar";
23
+ import { StatusDotSize, StatusDotState } from "./components/atoms/status-dot/status-dot";
24
+ import { TextareaSize, TextareaVariant } from "./components/atoms/textarea/textarea";
25
+ import { ValueAlarm, ValueSize, ValueTrend } from "./components/atoms/value/value";
26
+ import { ValveOrientation, ValveSize, ValveState } from "./components/atoms/valve/valve";
27
+ export { AlarmPriority } from "./components/atoms/alarm/alarm";
28
+ export { AppHeaderConnectionState } from "./components/organisms/app-header/app-header";
29
+ export { ButtonSize, ButtonVariant } from "./components/atoms/button/button";
30
+ export { CheckboxSize } from "./components/atoms/checkbox/checkbox";
31
+ export { DialogSize } from "./components/atoms/dialog/dialog";
32
+ export { DividerOrientation } from "./components/atoms/divider/divider";
33
+ export { FillRowVariant } from "./components/molecules/fill-row/fill-row";
34
+ export { HealthState } from "./components/molecules/health-card/health-card";
35
+ export { InputMode, InputSize, InputType } from "./components/atoms/input/input";
36
+ export { LedSize, LedState } from "./components/atoms/led/led";
37
+ export { ProgressSize, ProgressVariant } from "./components/atoms/progress/progress";
38
+ export { ScaraState } from "./components/atoms/scara-canvas/scara-canvas";
39
+ export { SelectOption, SelectSize } from "./components/atoms/select/select";
40
+ export { ShelfSlot } from "./components/atoms/shelf-canvas/shelf-canvas";
41
+ export { StatusBarState } from "./components/organisms/status-bar/status-bar";
42
+ export { StatusDotSize, StatusDotState } from "./components/atoms/status-dot/status-dot";
43
+ export { TextareaSize, TextareaVariant } from "./components/atoms/textarea/textarea";
44
+ export { ValueAlarm, ValueSize, ValueTrend } from "./components/atoms/value/value";
45
+ export { ValveOrientation, ValveSize, ValveState } from "./components/atoms/valve/valve";
46
+ export namespace Components {
47
+ interface IndAlarm {
48
+ /**
49
+ * When false, the chip blinks (per ISA-18.2 unack convention).
50
+ * @default false
51
+ */
52
+ "acknowledged": boolean;
53
+ /**
54
+ * Required human description of the alarm.
55
+ */
56
+ "label": string;
57
+ /**
58
+ * ISA-18.2 alarm priority.
59
+ * @default 'high'
60
+ */
61
+ "priority": AlarmPriority;
62
+ /**
63
+ * Optional ISO-8601 timestamp. Rendered with `<time>`.
64
+ */
65
+ "timestamp"?: string;
66
+ }
67
+ interface IndAppHeader {
68
+ /**
69
+ * Brand name (uppercase by convention).
70
+ */
71
+ "brand": string;
72
+ /**
73
+ * Documentation URL.
74
+ */
75
+ "docsUrl"?: string;
76
+ /**
77
+ * Hide the built-in "Change machine" button.
78
+ * @default false
79
+ */
80
+ "hideChangeMachine": boolean;
81
+ /**
82
+ * Hide the built-in "Disconnect" button.
83
+ * @default false
84
+ */
85
+ "hideDisconnect": boolean;
86
+ /**
87
+ * Machine identifier shown next to the brand.
88
+ */
89
+ "machineId"?: string;
90
+ /**
91
+ * Label rendered next to the dot (e.g. "Connected").
92
+ */
93
+ "mqttLabel"?: string;
94
+ /**
95
+ * Broker / realtime connection state — drives the dot.
96
+ * @default 'neutral'
97
+ */
98
+ "mqttState": AppHeaderConnectionState;
99
+ /**
100
+ * Sub-brand line (e.g. "Maintenance Console").
101
+ */
102
+ "subBrand"?: string;
103
+ /**
104
+ * App version (e.g. "v1.4.2").
105
+ */
106
+ "version"?: string;
107
+ }
108
+ interface IndButton {
109
+ /**
110
+ * Disabled state.
111
+ * @default false
112
+ */
113
+ "disabled": boolean;
114
+ /**
115
+ * If > 0, the button must be held this many milliseconds before activating. Use for critical actions (Stop, Trip, Reset) to prevent accidental clicks — standard NAMUR / safety-instrumented operating practice.
116
+ * @default 0
117
+ */
118
+ "holdToConfirmMs": number;
119
+ /**
120
+ * Optional accessible label (falls back to slotted text).
121
+ */
122
+ "label"?: string;
123
+ /**
124
+ * Size.
125
+ * @default 'md'
126
+ */
127
+ "size": ButtonSize;
128
+ /**
129
+ * Visual variant. `danger` should be paired with `holdToConfirmMs` for critical actions.
130
+ * @default 'default'
131
+ */
132
+ "variant": ButtonVariant;
133
+ }
134
+ interface IndCheckbox {
135
+ /**
136
+ * @default false
137
+ */
138
+ "checked": boolean;
139
+ /**
140
+ * @default false
141
+ */
142
+ "disabled": boolean;
143
+ /**
144
+ * @default false
145
+ */
146
+ "indeterminate": boolean;
147
+ "label"?: string;
148
+ "name"?: string;
149
+ /**
150
+ * @default 'md'
151
+ */
152
+ "size": CheckboxSize;
153
+ "value"?: string;
154
+ }
155
+ interface IndDialog {
156
+ /**
157
+ * Programmatically close.
158
+ */
159
+ "close": () => Promise<void>;
160
+ /**
161
+ * Close when the operator clicks outside the dialog content.
162
+ * @default true
163
+ */
164
+ "closeOnBackdrop": boolean;
165
+ /**
166
+ * Heading rendered in the header bar. Becomes the accessible name.
167
+ */
168
+ "heading"?: string;
169
+ /**
170
+ * Open state. Two-way reflectable.
171
+ * @default false
172
+ */
173
+ "open": boolean;
174
+ /**
175
+ * Programmatically open.
176
+ */
177
+ "show": () => Promise<void>;
178
+ /**
179
+ * Size of the dialog content.
180
+ * @default 'md'
181
+ */
182
+ "size": DialogSize;
183
+ }
184
+ interface IndDivider {
185
+ /**
186
+ * @default 'horizontal'
187
+ */
188
+ "orientation": DividerOrientation;
189
+ }
190
+ interface IndFillRow {
191
+ /**
192
+ * Human description.
193
+ */
194
+ "label": string;
195
+ /**
196
+ * Max value. Default 100.
197
+ * @default 100
198
+ */
199
+ "max": number;
200
+ /**
201
+ * Render the severity glyph between the value and the actions.
202
+ * @default false
203
+ */
204
+ "severity": boolean;
205
+ /**
206
+ * Short ID rendered in mono (e.g. "F1", "TK-101").
207
+ */
208
+ "tag"?: string;
209
+ /**
210
+ * Unit suffix on the numeric value (default `%`).
211
+ * @default '%'
212
+ */
213
+ "unit": string;
214
+ /**
215
+ * Current level.
216
+ * @default 0
217
+ */
218
+ "value": number;
219
+ /**
220
+ * Drives the progress color and the severity glyph.
221
+ * @default 'default'
222
+ */
223
+ "variant": FillRowVariant;
224
+ }
225
+ interface IndHealthCard {
226
+ /**
227
+ * Optional sub-line for context (timestamp, last error, etc.).
228
+ */
229
+ "detail"?: string;
230
+ /**
231
+ * Subsystem name (e.g. "PLC", "Dispense robot", "Washer").
232
+ */
233
+ "heading": string;
234
+ /**
235
+ * Process state — drives the dot color and the prominent text color.
236
+ * @default 'unknown'
237
+ */
238
+ "state": HealthState;
239
+ /**
240
+ * Override the default label (e.g. show "RUN 24 h" instead of "OK").
241
+ */
242
+ "stateLabel"?: string;
243
+ }
244
+ interface IndInput {
245
+ "autocomplete"?: string;
246
+ /**
247
+ * @default false
248
+ */
249
+ "disabled": boolean;
250
+ /**
251
+ * @default false
252
+ */
253
+ "invalid": boolean;
254
+ "label"?: string;
255
+ "max"?: number | string;
256
+ "min"?: number | string;
257
+ /**
258
+ * Maps to the native `inputmode` attribute — named `mode` to avoid clashing with `HTMLElement.inputMode`.
259
+ */
260
+ "mode"?: InputMode;
261
+ "name"?: string;
262
+ "pattern"?: string;
263
+ "placeholder"?: string;
264
+ /**
265
+ * @default false
266
+ */
267
+ "readonly": boolean;
268
+ /**
269
+ * Programmatically focus the underlying input.
270
+ */
271
+ "setFocus": () => Promise<void>;
272
+ /**
273
+ * @default 'md'
274
+ */
275
+ "size": InputSize;
276
+ "step"?: number | string;
277
+ /**
278
+ * @default 'text'
279
+ */
280
+ "type": InputType;
281
+ /**
282
+ * @default ''
283
+ */
284
+ "value": string;
285
+ }
286
+ interface IndLed {
287
+ /**
288
+ * Blink. For SCADA, fast blink = unacknowledged condition. Stops respecting prefers-reduced-motion.
289
+ * @default false
290
+ */
291
+ "blinking": boolean;
292
+ /**
293
+ * Optional visible label rendered next to the LED. Always becomes the accessible name.
294
+ */
295
+ "label"?: string;
296
+ /**
297
+ * Visual size.
298
+ * @default 'md'
299
+ */
300
+ "size": LedSize;
301
+ /**
302
+ * Process state driving the LED color and ARIA live politeness.
303
+ * @default 'stopped'
304
+ */
305
+ "state": LedState;
306
+ }
307
+ interface IndMqttMonitor {
308
+ /**
309
+ * Active filter — substring match on each line, case-insensitive.
310
+ * @default ''
311
+ */
312
+ "filterValue": string;
313
+ /**
314
+ * Full log content. Newline-separated lines.
315
+ * @default ''
316
+ */
317
+ "log": string;
318
+ /**
319
+ * When true, the log doesn't auto-scroll on new content.
320
+ * @default false
321
+ */
322
+ "paused": boolean;
323
+ /**
324
+ * Visible rows of the log textarea.
325
+ * @default 18
326
+ */
327
+ "rows": number;
328
+ }
329
+ interface IndNavItem {
330
+ /**
331
+ * Current page indicator — gets the ▶ prefix and active styling.
332
+ * @default false
333
+ */
334
+ "active": boolean;
335
+ /**
336
+ * Optional badge — alarm count, unread messages, etc.
337
+ */
338
+ "badge"?: string | number;
339
+ /**
340
+ * @default false
341
+ */
342
+ "disabled": boolean;
343
+ /**
344
+ * Optional href. When set, renders as `<a>` so middle-click / right-click open in new tab.
345
+ */
346
+ "href"?: string;
347
+ /**
348
+ * Label text. Falls back to slotted content.
349
+ */
350
+ "label"?: string;
351
+ }
352
+ interface IndProgress {
353
+ /**
354
+ * Indeterminate (animated bar, no value).
355
+ * @default false
356
+ */
357
+ "indeterminate": boolean;
358
+ /**
359
+ * Optional label rendered above the bar.
360
+ */
361
+ "label"?: string;
362
+ /**
363
+ * Max value.
364
+ * @default 100
365
+ */
366
+ "max": number;
367
+ /**
368
+ * Show numeric value next to the label.
369
+ * @default false
370
+ */
371
+ "showValue": boolean;
372
+ /**
373
+ * Size.
374
+ * @default 'md'
375
+ */
376
+ "size": ProgressSize;
377
+ /**
378
+ * Unit suffix for the displayed value.
379
+ */
380
+ "unit"?: string;
381
+ /**
382
+ * Current value (0–`max`).
383
+ * @default 0
384
+ */
385
+ "value": number;
386
+ /**
387
+ * Visual variant. Use `warning` / `error` for low / critical fill levels.
388
+ * @default 'default'
389
+ */
390
+ "variant": ProgressVariant;
391
+ }
392
+ /**
393
+ * 2D top-down SCARA arm view. Pure presentational — pass joint angles and
394
+ * link lengths, the component computes forward kinematics in SVG space.
395
+ * <ind-scara-canvas .joints=${[30, 45, 0]} state="moving"></ind-scara-canvas>
396
+ * - `joints[0]` (J1) — shoulder rotation in degrees, 0 = +X axis
397
+ * - `joints[1]` (J2) — elbow rotation in degrees, relative to link 1
398
+ * - `joints[2]` (J3) — wrist (end effector) rotation, drives the small indicator
399
+ * Z translation isn't represented — it would require a separate side view.
400
+ */
401
+ interface IndScaraCanvas {
402
+ /**
403
+ * @default [0, 0, 0]
404
+ */
405
+ "joints": number[] | string;
406
+ /**
407
+ * @default [110, 90]
408
+ */
409
+ "linkLengths": number[] | string;
410
+ /**
411
+ * @default 'idle'
412
+ */
413
+ "state": ScaraState;
414
+ }
415
+ interface IndSelect {
416
+ /**
417
+ * @default false
418
+ */
419
+ "disabled": boolean;
420
+ /**
421
+ * @default false
422
+ */
423
+ "invalid": boolean;
424
+ "label"?: string;
425
+ "name"?: string;
426
+ /**
427
+ * Options. Pass an array via JS property (`.options = [...]`) OR a JSON-stringified array via the HTML `options` attribute. The native picker handles keyboard nav and mobile UI without us building a popover.
428
+ * @default []
429
+ */
430
+ "options": SelectOption[] | string;
431
+ "placeholder"?: string;
432
+ /**
433
+ * @default 'md'
434
+ */
435
+ "size": SelectSize;
436
+ /**
437
+ * @default ''
438
+ */
439
+ "value": string;
440
+ }
441
+ /**
442
+ * Grid of bottle/container slots showing their fill level. Generic — represents
443
+ * any rack of resupplyable containers (bottles, cartridges, kegs, etc.).
444
+ * <ind-shelf-canvas
445
+ * .slots=${[{id:'a', label:'A', level:78}, {id:'b', label:'B', level:12}]}
446
+ * cols="2"></ind-shelf-canvas>
447
+ */
448
+ interface IndShelfCanvas {
449
+ /**
450
+ * @default 4
451
+ */
452
+ "cols": number;
453
+ "heading"?: string;
454
+ /**
455
+ * @default 1
456
+ */
457
+ "rows": number;
458
+ /**
459
+ * @default []
460
+ */
461
+ "slots": ShelfSlot[] | string;
462
+ }
463
+ /**
464
+ * Sidebar shell: a brand area on top, a scrollable nav list, and a footer area.
465
+ * State management is left to the consumer — drive `active` on each <ind-nav-item>
466
+ * from your router. The component is intentionally thin so it works with any
467
+ * routing approach (React Router, Vue Router, hash-based, none).
468
+ */
469
+ interface IndSidebarNav {
470
+ }
471
+ /**
472
+ * Global footer bar: status dot + message on the left, slotted content on the right.
473
+ * Sized to be unobtrusive (~24 px). Drop additional `<span>` / `<ind-button size="sm">`
474
+ * children for right-aligned context (timestamps, server identifiers, action buttons).
475
+ */
476
+ interface IndStatusBar {
477
+ "message"?: string;
478
+ /**
479
+ * @default 'neutral'
480
+ */
481
+ "state": StatusBarState;
482
+ }
483
+ interface IndStatusDot {
484
+ /**
485
+ * @default false
486
+ */
487
+ "blinking": boolean;
488
+ /**
489
+ * Optional accessible name. Set when the dot stands alone; leave undefined when it's paired with adjacent text that already names the status.
490
+ */
491
+ "label"?: string;
492
+ /**
493
+ * @default 'md'
494
+ */
495
+ "size": StatusDotSize;
496
+ /**
497
+ * @default 'neutral'
498
+ */
499
+ "state": StatusDotState;
500
+ }
501
+ interface IndTextarea {
502
+ /**
503
+ * When true, auto-scrolls to bottom whenever `value` changes. Pair with `readonly` for log streams.
504
+ * @default false
505
+ */
506
+ "autoScroll": boolean;
507
+ /**
508
+ * @default false
509
+ */
510
+ "disabled": boolean;
511
+ /**
512
+ * @default false
513
+ */
514
+ "invalid": boolean;
515
+ "label"?: string;
516
+ "name"?: string;
517
+ "placeholder"?: string;
518
+ /**
519
+ * @default false
520
+ */
521
+ "readonly": boolean;
522
+ /**
523
+ * @default 4
524
+ */
525
+ "rows": number;
526
+ /**
527
+ * @default 'md'
528
+ */
529
+ "size": TextareaSize;
530
+ /**
531
+ * @default ''
532
+ */
533
+ "value": string;
534
+ /**
535
+ * `mono` swaps to JetBrains Mono and small font — for logs and MQTT streams.
536
+ * @default 'default'
537
+ */
538
+ "variant": TextareaVariant;
539
+ }
540
+ interface IndToolbarAction {
541
+ /**
542
+ * Counter rendered before the actions (e.g. "1 248 messages").
543
+ */
544
+ "counter"?: string | number;
545
+ }
546
+ interface IndValue {
547
+ /**
548
+ * Active alarm priority. Highlights the readout with the ISA-18.2 color.
549
+ * @default 'none'
550
+ */
551
+ "alarm": ValueAlarm;
552
+ /**
553
+ * Human label shown above the number (e.g. "Discharge pressure").
554
+ */
555
+ "label"?: string;
556
+ /**
557
+ * Decimal places when `value` is numeric. Default: as-is.
558
+ */
559
+ "precision"?: number;
560
+ /**
561
+ * Readout size — `lg` is appropriate for primary KPIs (uses the 3xl font).
562
+ * @default 'md'
563
+ */
564
+ "size": ValueSize;
565
+ /**
566
+ * Equipment tag shown above the number (e.g. "PT-101").
567
+ */
568
+ "tag"?: string;
569
+ /**
570
+ * Process trend direction. Renders a small arrow next to the unit.
571
+ * @default 'none'
572
+ */
573
+ "trend": ValueTrend;
574
+ /**
575
+ * Engineering unit shown after the number (e.g. "bar", "°C", "m³/h").
576
+ */
577
+ "unit"?: string;
578
+ /**
579
+ * Raw value to display. Numeric values are formatted with `precision`.
580
+ */
581
+ "value": number | string;
582
+ }
583
+ interface IndValve {
584
+ /**
585
+ * Human label rendered as caption (e.g. "Discharge valve").
586
+ */
587
+ "label"?: string;
588
+ /**
589
+ * Render the symbol along the flow direction.
590
+ * @default 'horizontal'
591
+ */
592
+ "orientation": ValveOrientation;
593
+ /**
594
+ * Visual size.
595
+ * @default 'md'
596
+ */
597
+ "size": ValveSize;
598
+ /**
599
+ * Valve state. `transit` is mid-stroke (transitioning between open and closed).
600
+ * @default 'closed'
601
+ */
602
+ "state": ValveState;
603
+ /**
604
+ * Equipment tag rendered as caption (e.g. "V-12").
605
+ */
606
+ "tag"?: string;
607
+ }
608
+ }
609
+ export interface IndAppHeaderCustomEvent<T> extends CustomEvent<T> {
610
+ detail: T;
611
+ target: HTMLIndAppHeaderElement;
612
+ }
613
+ export interface IndButtonCustomEvent<T> extends CustomEvent<T> {
614
+ detail: T;
615
+ target: HTMLIndButtonElement;
616
+ }
617
+ export interface IndCheckboxCustomEvent<T> extends CustomEvent<T> {
618
+ detail: T;
619
+ target: HTMLIndCheckboxElement;
620
+ }
621
+ export interface IndDialogCustomEvent<T> extends CustomEvent<T> {
622
+ detail: T;
623
+ target: HTMLIndDialogElement;
624
+ }
625
+ export interface IndInputCustomEvent<T> extends CustomEvent<T> {
626
+ detail: T;
627
+ target: HTMLIndInputElement;
628
+ }
629
+ export interface IndMqttMonitorCustomEvent<T> extends CustomEvent<T> {
630
+ detail: T;
631
+ target: HTMLIndMqttMonitorElement;
632
+ }
633
+ export interface IndNavItemCustomEvent<T> extends CustomEvent<T> {
634
+ detail: T;
635
+ target: HTMLIndNavItemElement;
636
+ }
637
+ export interface IndSelectCustomEvent<T> extends CustomEvent<T> {
638
+ detail: T;
639
+ target: HTMLIndSelectElement;
640
+ }
641
+ export interface IndTextareaCustomEvent<T> extends CustomEvent<T> {
642
+ detail: T;
643
+ target: HTMLIndTextareaElement;
644
+ }
645
+ declare global {
646
+ interface HTMLIndAlarmElement extends Components.IndAlarm, HTMLStencilElement {
647
+ }
648
+ var HTMLIndAlarmElement: {
649
+ prototype: HTMLIndAlarmElement;
650
+ new (): HTMLIndAlarmElement;
651
+ };
652
+ interface HTMLIndAppHeaderElementEventMap {
653
+ "indChangeMachine": void;
654
+ "indDisconnect": void;
655
+ }
656
+ interface HTMLIndAppHeaderElement extends Components.IndAppHeader, HTMLStencilElement {
657
+ addEventListener<K extends keyof HTMLIndAppHeaderElementEventMap>(type: K, listener: (this: HTMLIndAppHeaderElement, ev: IndAppHeaderCustomEvent<HTMLIndAppHeaderElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
658
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
659
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
660
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
661
+ removeEventListener<K extends keyof HTMLIndAppHeaderElementEventMap>(type: K, listener: (this: HTMLIndAppHeaderElement, ev: IndAppHeaderCustomEvent<HTMLIndAppHeaderElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
662
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
663
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
664
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
665
+ }
666
+ var HTMLIndAppHeaderElement: {
667
+ prototype: HTMLIndAppHeaderElement;
668
+ new (): HTMLIndAppHeaderElement;
669
+ };
670
+ interface HTMLIndButtonElementEventMap {
671
+ "indActivate": void;
672
+ }
673
+ interface HTMLIndButtonElement extends Components.IndButton, HTMLStencilElement {
674
+ addEventListener<K extends keyof HTMLIndButtonElementEventMap>(type: K, listener: (this: HTMLIndButtonElement, ev: IndButtonCustomEvent<HTMLIndButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
675
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
676
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
677
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
678
+ removeEventListener<K extends keyof HTMLIndButtonElementEventMap>(type: K, listener: (this: HTMLIndButtonElement, ev: IndButtonCustomEvent<HTMLIndButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
679
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
680
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
681
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
682
+ }
683
+ var HTMLIndButtonElement: {
684
+ prototype: HTMLIndButtonElement;
685
+ new (): HTMLIndButtonElement;
686
+ };
687
+ interface HTMLIndCheckboxElementEventMap {
688
+ "indChange": boolean;
689
+ }
690
+ interface HTMLIndCheckboxElement extends Components.IndCheckbox, HTMLStencilElement {
691
+ addEventListener<K extends keyof HTMLIndCheckboxElementEventMap>(type: K, listener: (this: HTMLIndCheckboxElement, ev: IndCheckboxCustomEvent<HTMLIndCheckboxElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
692
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
693
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
694
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
695
+ removeEventListener<K extends keyof HTMLIndCheckboxElementEventMap>(type: K, listener: (this: HTMLIndCheckboxElement, ev: IndCheckboxCustomEvent<HTMLIndCheckboxElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
696
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
697
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
698
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
699
+ }
700
+ var HTMLIndCheckboxElement: {
701
+ prototype: HTMLIndCheckboxElement;
702
+ new (): HTMLIndCheckboxElement;
703
+ };
704
+ interface HTMLIndDialogElementEventMap {
705
+ "indOpen": void;
706
+ "indClose": void;
707
+ }
708
+ interface HTMLIndDialogElement extends Components.IndDialog, HTMLStencilElement {
709
+ addEventListener<K extends keyof HTMLIndDialogElementEventMap>(type: K, listener: (this: HTMLIndDialogElement, ev: IndDialogCustomEvent<HTMLIndDialogElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
710
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
711
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
712
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
713
+ removeEventListener<K extends keyof HTMLIndDialogElementEventMap>(type: K, listener: (this: HTMLIndDialogElement, ev: IndDialogCustomEvent<HTMLIndDialogElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
714
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
715
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
716
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
717
+ }
718
+ var HTMLIndDialogElement: {
719
+ prototype: HTMLIndDialogElement;
720
+ new (): HTMLIndDialogElement;
721
+ };
722
+ interface HTMLIndDividerElement extends Components.IndDivider, HTMLStencilElement {
723
+ }
724
+ var HTMLIndDividerElement: {
725
+ prototype: HTMLIndDividerElement;
726
+ new (): HTMLIndDividerElement;
727
+ };
728
+ interface HTMLIndFillRowElement extends Components.IndFillRow, HTMLStencilElement {
729
+ }
730
+ var HTMLIndFillRowElement: {
731
+ prototype: HTMLIndFillRowElement;
732
+ new (): HTMLIndFillRowElement;
733
+ };
734
+ interface HTMLIndHealthCardElement extends Components.IndHealthCard, HTMLStencilElement {
735
+ }
736
+ var HTMLIndHealthCardElement: {
737
+ prototype: HTMLIndHealthCardElement;
738
+ new (): HTMLIndHealthCardElement;
739
+ };
740
+ interface HTMLIndInputElementEventMap {
741
+ "indInput": string;
742
+ "indChange": string;
743
+ }
744
+ interface HTMLIndInputElement extends Components.IndInput, HTMLStencilElement {
745
+ addEventListener<K extends keyof HTMLIndInputElementEventMap>(type: K, listener: (this: HTMLIndInputElement, ev: IndInputCustomEvent<HTMLIndInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
746
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
747
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
748
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
749
+ removeEventListener<K extends keyof HTMLIndInputElementEventMap>(type: K, listener: (this: HTMLIndInputElement, ev: IndInputCustomEvent<HTMLIndInputElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
750
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
751
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
752
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
753
+ }
754
+ var HTMLIndInputElement: {
755
+ prototype: HTMLIndInputElement;
756
+ new (): HTMLIndInputElement;
757
+ };
758
+ interface HTMLIndLedElement extends Components.IndLed, HTMLStencilElement {
759
+ }
760
+ var HTMLIndLedElement: {
761
+ prototype: HTMLIndLedElement;
762
+ new (): HTMLIndLedElement;
763
+ };
764
+ interface HTMLIndMqttMonitorElementEventMap {
765
+ "indFilterChange": string;
766
+ "indPauseChange": boolean;
767
+ "indClear": void;
768
+ }
769
+ interface HTMLIndMqttMonitorElement extends Components.IndMqttMonitor, HTMLStencilElement {
770
+ addEventListener<K extends keyof HTMLIndMqttMonitorElementEventMap>(type: K, listener: (this: HTMLIndMqttMonitorElement, ev: IndMqttMonitorCustomEvent<HTMLIndMqttMonitorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
771
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
772
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
773
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
774
+ removeEventListener<K extends keyof HTMLIndMqttMonitorElementEventMap>(type: K, listener: (this: HTMLIndMqttMonitorElement, ev: IndMqttMonitorCustomEvent<HTMLIndMqttMonitorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
775
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
776
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
777
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
778
+ }
779
+ var HTMLIndMqttMonitorElement: {
780
+ prototype: HTMLIndMqttMonitorElement;
781
+ new (): HTMLIndMqttMonitorElement;
782
+ };
783
+ interface HTMLIndNavItemElementEventMap {
784
+ "indSelect": void;
785
+ }
786
+ interface HTMLIndNavItemElement extends Components.IndNavItem, HTMLStencilElement {
787
+ addEventListener<K extends keyof HTMLIndNavItemElementEventMap>(type: K, listener: (this: HTMLIndNavItemElement, ev: IndNavItemCustomEvent<HTMLIndNavItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
788
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
789
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
790
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
791
+ removeEventListener<K extends keyof HTMLIndNavItemElementEventMap>(type: K, listener: (this: HTMLIndNavItemElement, ev: IndNavItemCustomEvent<HTMLIndNavItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
792
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
793
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
794
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
795
+ }
796
+ var HTMLIndNavItemElement: {
797
+ prototype: HTMLIndNavItemElement;
798
+ new (): HTMLIndNavItemElement;
799
+ };
800
+ interface HTMLIndProgressElement extends Components.IndProgress, HTMLStencilElement {
801
+ }
802
+ var HTMLIndProgressElement: {
803
+ prototype: HTMLIndProgressElement;
804
+ new (): HTMLIndProgressElement;
805
+ };
806
+ /**
807
+ * 2D top-down SCARA arm view. Pure presentational — pass joint angles and
808
+ * link lengths, the component computes forward kinematics in SVG space.
809
+ * <ind-scara-canvas .joints=${[30, 45, 0]} state="moving"></ind-scara-canvas>
810
+ * - `joints[0]` (J1) — shoulder rotation in degrees, 0 = +X axis
811
+ * - `joints[1]` (J2) — elbow rotation in degrees, relative to link 1
812
+ * - `joints[2]` (J3) — wrist (end effector) rotation, drives the small indicator
813
+ * Z translation isn't represented — it would require a separate side view.
814
+ */
815
+ interface HTMLIndScaraCanvasElement extends Components.IndScaraCanvas, HTMLStencilElement {
816
+ }
817
+ var HTMLIndScaraCanvasElement: {
818
+ prototype: HTMLIndScaraCanvasElement;
819
+ new (): HTMLIndScaraCanvasElement;
820
+ };
821
+ interface HTMLIndSelectElementEventMap {
822
+ "indChange": string;
823
+ }
824
+ interface HTMLIndSelectElement extends Components.IndSelect, HTMLStencilElement {
825
+ addEventListener<K extends keyof HTMLIndSelectElementEventMap>(type: K, listener: (this: HTMLIndSelectElement, ev: IndSelectCustomEvent<HTMLIndSelectElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
826
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
827
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
828
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
829
+ removeEventListener<K extends keyof HTMLIndSelectElementEventMap>(type: K, listener: (this: HTMLIndSelectElement, ev: IndSelectCustomEvent<HTMLIndSelectElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
830
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
831
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
832
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
833
+ }
834
+ var HTMLIndSelectElement: {
835
+ prototype: HTMLIndSelectElement;
836
+ new (): HTMLIndSelectElement;
837
+ };
838
+ /**
839
+ * Grid of bottle/container slots showing their fill level. Generic — represents
840
+ * any rack of resupplyable containers (bottles, cartridges, kegs, etc.).
841
+ * <ind-shelf-canvas
842
+ * .slots=${[{id:'a', label:'A', level:78}, {id:'b', label:'B', level:12}]}
843
+ * cols="2"></ind-shelf-canvas>
844
+ */
845
+ interface HTMLIndShelfCanvasElement extends Components.IndShelfCanvas, HTMLStencilElement {
846
+ }
847
+ var HTMLIndShelfCanvasElement: {
848
+ prototype: HTMLIndShelfCanvasElement;
849
+ new (): HTMLIndShelfCanvasElement;
850
+ };
851
+ /**
852
+ * Sidebar shell: a brand area on top, a scrollable nav list, and a footer area.
853
+ * State management is left to the consumer — drive `active` on each <ind-nav-item>
854
+ * from your router. The component is intentionally thin so it works with any
855
+ * routing approach (React Router, Vue Router, hash-based, none).
856
+ */
857
+ interface HTMLIndSidebarNavElement extends Components.IndSidebarNav, HTMLStencilElement {
858
+ }
859
+ var HTMLIndSidebarNavElement: {
860
+ prototype: HTMLIndSidebarNavElement;
861
+ new (): HTMLIndSidebarNavElement;
862
+ };
863
+ /**
864
+ * Global footer bar: status dot + message on the left, slotted content on the right.
865
+ * Sized to be unobtrusive (~24 px). Drop additional `<span>` / `<ind-button size="sm">`
866
+ * children for right-aligned context (timestamps, server identifiers, action buttons).
867
+ */
868
+ interface HTMLIndStatusBarElement extends Components.IndStatusBar, HTMLStencilElement {
869
+ }
870
+ var HTMLIndStatusBarElement: {
871
+ prototype: HTMLIndStatusBarElement;
872
+ new (): HTMLIndStatusBarElement;
873
+ };
874
+ interface HTMLIndStatusDotElement extends Components.IndStatusDot, HTMLStencilElement {
875
+ }
876
+ var HTMLIndStatusDotElement: {
877
+ prototype: HTMLIndStatusDotElement;
878
+ new (): HTMLIndStatusDotElement;
879
+ };
880
+ interface HTMLIndTextareaElementEventMap {
881
+ "indInput": string;
882
+ "indChange": string;
883
+ }
884
+ interface HTMLIndTextareaElement extends Components.IndTextarea, HTMLStencilElement {
885
+ addEventListener<K extends keyof HTMLIndTextareaElementEventMap>(type: K, listener: (this: HTMLIndTextareaElement, ev: IndTextareaCustomEvent<HTMLIndTextareaElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
886
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
887
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
888
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
889
+ removeEventListener<K extends keyof HTMLIndTextareaElementEventMap>(type: K, listener: (this: HTMLIndTextareaElement, ev: IndTextareaCustomEvent<HTMLIndTextareaElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
890
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
891
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
892
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
893
+ }
894
+ var HTMLIndTextareaElement: {
895
+ prototype: HTMLIndTextareaElement;
896
+ new (): HTMLIndTextareaElement;
897
+ };
898
+ interface HTMLIndToolbarActionElement extends Components.IndToolbarAction, HTMLStencilElement {
899
+ }
900
+ var HTMLIndToolbarActionElement: {
901
+ prototype: HTMLIndToolbarActionElement;
902
+ new (): HTMLIndToolbarActionElement;
903
+ };
904
+ interface HTMLIndValueElement extends Components.IndValue, HTMLStencilElement {
905
+ }
906
+ var HTMLIndValueElement: {
907
+ prototype: HTMLIndValueElement;
908
+ new (): HTMLIndValueElement;
909
+ };
910
+ interface HTMLIndValveElement extends Components.IndValve, HTMLStencilElement {
911
+ }
912
+ var HTMLIndValveElement: {
913
+ prototype: HTMLIndValveElement;
914
+ new (): HTMLIndValveElement;
915
+ };
916
+ interface HTMLElementTagNameMap {
917
+ "ind-alarm": HTMLIndAlarmElement;
918
+ "ind-app-header": HTMLIndAppHeaderElement;
919
+ "ind-button": HTMLIndButtonElement;
920
+ "ind-checkbox": HTMLIndCheckboxElement;
921
+ "ind-dialog": HTMLIndDialogElement;
922
+ "ind-divider": HTMLIndDividerElement;
923
+ "ind-fill-row": HTMLIndFillRowElement;
924
+ "ind-health-card": HTMLIndHealthCardElement;
925
+ "ind-input": HTMLIndInputElement;
926
+ "ind-led": HTMLIndLedElement;
927
+ "ind-mqtt-monitor": HTMLIndMqttMonitorElement;
928
+ "ind-nav-item": HTMLIndNavItemElement;
929
+ "ind-progress": HTMLIndProgressElement;
930
+ "ind-scara-canvas": HTMLIndScaraCanvasElement;
931
+ "ind-select": HTMLIndSelectElement;
932
+ "ind-shelf-canvas": HTMLIndShelfCanvasElement;
933
+ "ind-sidebar-nav": HTMLIndSidebarNavElement;
934
+ "ind-status-bar": HTMLIndStatusBarElement;
935
+ "ind-status-dot": HTMLIndStatusDotElement;
936
+ "ind-textarea": HTMLIndTextareaElement;
937
+ "ind-toolbar-action": HTMLIndToolbarActionElement;
938
+ "ind-value": HTMLIndValueElement;
939
+ "ind-valve": HTMLIndValveElement;
940
+ }
941
+ }
942
+ declare namespace LocalJSX {
943
+ type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}` | `prop:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K | `prop:${K}`]?: never } | { [P in `prop:${K}`]: PropT } & { [P in K | `attr:${K}`]?: never };
944
+
945
+ interface IndAlarm {
946
+ /**
947
+ * When false, the chip blinks (per ISA-18.2 unack convention).
948
+ * @default false
949
+ */
950
+ "acknowledged"?: boolean;
951
+ /**
952
+ * Required human description of the alarm.
953
+ */
954
+ "label": string;
955
+ /**
956
+ * ISA-18.2 alarm priority.
957
+ * @default 'high'
958
+ */
959
+ "priority"?: AlarmPriority;
960
+ /**
961
+ * Optional ISO-8601 timestamp. Rendered with `<time>`.
962
+ */
963
+ "timestamp"?: string;
964
+ }
965
+ interface IndAppHeader {
966
+ /**
967
+ * Brand name (uppercase by convention).
968
+ */
969
+ "brand": string;
970
+ /**
971
+ * Documentation URL.
972
+ */
973
+ "docsUrl"?: string;
974
+ /**
975
+ * Hide the built-in "Change machine" button.
976
+ * @default false
977
+ */
978
+ "hideChangeMachine"?: boolean;
979
+ /**
980
+ * Hide the built-in "Disconnect" button.
981
+ * @default false
982
+ */
983
+ "hideDisconnect"?: boolean;
984
+ /**
985
+ * Machine identifier shown next to the brand.
986
+ */
987
+ "machineId"?: string;
988
+ /**
989
+ * Label rendered next to the dot (e.g. "Connected").
990
+ */
991
+ "mqttLabel"?: string;
992
+ /**
993
+ * Broker / realtime connection state — drives the dot.
994
+ * @default 'neutral'
995
+ */
996
+ "mqttState"?: AppHeaderConnectionState;
997
+ "onIndChangeMachine"?: (event: IndAppHeaderCustomEvent<void>) => void;
998
+ "onIndDisconnect"?: (event: IndAppHeaderCustomEvent<void>) => void;
999
+ /**
1000
+ * Sub-brand line (e.g. "Maintenance Console").
1001
+ */
1002
+ "subBrand"?: string;
1003
+ /**
1004
+ * App version (e.g. "v1.4.2").
1005
+ */
1006
+ "version"?: string;
1007
+ }
1008
+ interface IndButton {
1009
+ /**
1010
+ * Disabled state.
1011
+ * @default false
1012
+ */
1013
+ "disabled"?: boolean;
1014
+ /**
1015
+ * If > 0, the button must be held this many milliseconds before activating. Use for critical actions (Stop, Trip, Reset) to prevent accidental clicks — standard NAMUR / safety-instrumented operating practice.
1016
+ * @default 0
1017
+ */
1018
+ "holdToConfirmMs"?: number;
1019
+ /**
1020
+ * Optional accessible label (falls back to slotted text).
1021
+ */
1022
+ "label"?: string;
1023
+ /**
1024
+ * Fired on click (or after hold completes if `holdToConfirmMs > 0`).
1025
+ */
1026
+ "onIndActivate"?: (event: IndButtonCustomEvent<void>) => void;
1027
+ /**
1028
+ * Size.
1029
+ * @default 'md'
1030
+ */
1031
+ "size"?: ButtonSize;
1032
+ /**
1033
+ * Visual variant. `danger` should be paired with `holdToConfirmMs` for critical actions.
1034
+ * @default 'default'
1035
+ */
1036
+ "variant"?: ButtonVariant;
1037
+ }
1038
+ interface IndCheckbox {
1039
+ /**
1040
+ * @default false
1041
+ */
1042
+ "checked"?: boolean;
1043
+ /**
1044
+ * @default false
1045
+ */
1046
+ "disabled"?: boolean;
1047
+ /**
1048
+ * @default false
1049
+ */
1050
+ "indeterminate"?: boolean;
1051
+ "label"?: string;
1052
+ "name"?: string;
1053
+ "onIndChange"?: (event: IndCheckboxCustomEvent<boolean>) => void;
1054
+ /**
1055
+ * @default 'md'
1056
+ */
1057
+ "size"?: CheckboxSize;
1058
+ "value"?: string;
1059
+ }
1060
+ interface IndDialog {
1061
+ /**
1062
+ * Close when the operator clicks outside the dialog content.
1063
+ * @default true
1064
+ */
1065
+ "closeOnBackdrop"?: boolean;
1066
+ /**
1067
+ * Heading rendered in the header bar. Becomes the accessible name.
1068
+ */
1069
+ "heading"?: string;
1070
+ /**
1071
+ * Fires when the dialog closes — for any reason (ESC, backdrop, close button, .close()).
1072
+ */
1073
+ "onIndClose"?: (event: IndDialogCustomEvent<void>) => void;
1074
+ "onIndOpen"?: (event: IndDialogCustomEvent<void>) => void;
1075
+ /**
1076
+ * Open state. Two-way reflectable.
1077
+ * @default false
1078
+ */
1079
+ "open"?: boolean;
1080
+ /**
1081
+ * Size of the dialog content.
1082
+ * @default 'md'
1083
+ */
1084
+ "size"?: DialogSize;
1085
+ }
1086
+ interface IndDivider {
1087
+ /**
1088
+ * @default 'horizontal'
1089
+ */
1090
+ "orientation"?: DividerOrientation;
1091
+ }
1092
+ interface IndFillRow {
1093
+ /**
1094
+ * Human description.
1095
+ */
1096
+ "label": string;
1097
+ /**
1098
+ * Max value. Default 100.
1099
+ * @default 100
1100
+ */
1101
+ "max"?: number;
1102
+ /**
1103
+ * Render the severity glyph between the value and the actions.
1104
+ * @default false
1105
+ */
1106
+ "severity"?: boolean;
1107
+ /**
1108
+ * Short ID rendered in mono (e.g. "F1", "TK-101").
1109
+ */
1110
+ "tag"?: string;
1111
+ /**
1112
+ * Unit suffix on the numeric value (default `%`).
1113
+ * @default '%'
1114
+ */
1115
+ "unit"?: string;
1116
+ /**
1117
+ * Current level.
1118
+ * @default 0
1119
+ */
1120
+ "value"?: number;
1121
+ /**
1122
+ * Drives the progress color and the severity glyph.
1123
+ * @default 'default'
1124
+ */
1125
+ "variant"?: FillRowVariant;
1126
+ }
1127
+ interface IndHealthCard {
1128
+ /**
1129
+ * Optional sub-line for context (timestamp, last error, etc.).
1130
+ */
1131
+ "detail"?: string;
1132
+ /**
1133
+ * Subsystem name (e.g. "PLC", "Dispense robot", "Washer").
1134
+ */
1135
+ "heading": string;
1136
+ /**
1137
+ * Process state — drives the dot color and the prominent text color.
1138
+ * @default 'unknown'
1139
+ */
1140
+ "state"?: HealthState;
1141
+ /**
1142
+ * Override the default label (e.g. show "RUN 24 h" instead of "OK").
1143
+ */
1144
+ "stateLabel"?: string;
1145
+ }
1146
+ interface IndInput {
1147
+ "autocomplete"?: string;
1148
+ /**
1149
+ * @default false
1150
+ */
1151
+ "disabled"?: boolean;
1152
+ /**
1153
+ * @default false
1154
+ */
1155
+ "invalid"?: boolean;
1156
+ "label"?: string;
1157
+ "max"?: number | string;
1158
+ "min"?: number | string;
1159
+ /**
1160
+ * Maps to the native `inputmode` attribute — named `mode` to avoid clashing with `HTMLElement.inputMode`.
1161
+ */
1162
+ "mode"?: InputMode;
1163
+ "name"?: string;
1164
+ /**
1165
+ * Fires on change (blur or Enter).
1166
+ */
1167
+ "onIndChange"?: (event: IndInputCustomEvent<string>) => void;
1168
+ /**
1169
+ * Fires on every keystroke.
1170
+ */
1171
+ "onIndInput"?: (event: IndInputCustomEvent<string>) => void;
1172
+ "pattern"?: string;
1173
+ "placeholder"?: string;
1174
+ /**
1175
+ * @default false
1176
+ */
1177
+ "readonly"?: boolean;
1178
+ /**
1179
+ * @default 'md'
1180
+ */
1181
+ "size"?: InputSize;
1182
+ "step"?: number | string;
1183
+ /**
1184
+ * @default 'text'
1185
+ */
1186
+ "type"?: InputType;
1187
+ /**
1188
+ * @default ''
1189
+ */
1190
+ "value"?: string;
1191
+ }
1192
+ interface IndLed {
1193
+ /**
1194
+ * Blink. For SCADA, fast blink = unacknowledged condition. Stops respecting prefers-reduced-motion.
1195
+ * @default false
1196
+ */
1197
+ "blinking"?: boolean;
1198
+ /**
1199
+ * Optional visible label rendered next to the LED. Always becomes the accessible name.
1200
+ */
1201
+ "label"?: string;
1202
+ /**
1203
+ * Visual size.
1204
+ * @default 'md'
1205
+ */
1206
+ "size"?: LedSize;
1207
+ /**
1208
+ * Process state driving the LED color and ARIA live politeness.
1209
+ * @default 'stopped'
1210
+ */
1211
+ "state"?: LedState;
1212
+ }
1213
+ interface IndMqttMonitor {
1214
+ /**
1215
+ * Active filter — substring match on each line, case-insensitive.
1216
+ * @default ''
1217
+ */
1218
+ "filterValue"?: string;
1219
+ /**
1220
+ * Full log content. Newline-separated lines.
1221
+ * @default ''
1222
+ */
1223
+ "log"?: string;
1224
+ "onIndClear"?: (event: IndMqttMonitorCustomEvent<void>) => void;
1225
+ "onIndFilterChange"?: (event: IndMqttMonitorCustomEvent<string>) => void;
1226
+ "onIndPauseChange"?: (event: IndMqttMonitorCustomEvent<boolean>) => void;
1227
+ /**
1228
+ * When true, the log doesn't auto-scroll on new content.
1229
+ * @default false
1230
+ */
1231
+ "paused"?: boolean;
1232
+ /**
1233
+ * Visible rows of the log textarea.
1234
+ * @default 18
1235
+ */
1236
+ "rows"?: number;
1237
+ }
1238
+ interface IndNavItem {
1239
+ /**
1240
+ * Current page indicator — gets the ▶ prefix and active styling.
1241
+ * @default false
1242
+ */
1243
+ "active"?: boolean;
1244
+ /**
1245
+ * Optional badge — alarm count, unread messages, etc.
1246
+ */
1247
+ "badge"?: string | number;
1248
+ /**
1249
+ * @default false
1250
+ */
1251
+ "disabled"?: boolean;
1252
+ /**
1253
+ * Optional href. When set, renders as `<a>` so middle-click / right-click open in new tab.
1254
+ */
1255
+ "href"?: string;
1256
+ /**
1257
+ * Label text. Falls back to slotted content.
1258
+ */
1259
+ "label"?: string;
1260
+ /**
1261
+ * Fires on click (or Enter / Space). Use this to drive client-side routers.
1262
+ */
1263
+ "onIndSelect"?: (event: IndNavItemCustomEvent<void>) => void;
1264
+ }
1265
+ interface IndProgress {
1266
+ /**
1267
+ * Indeterminate (animated bar, no value).
1268
+ * @default false
1269
+ */
1270
+ "indeterminate"?: boolean;
1271
+ /**
1272
+ * Optional label rendered above the bar.
1273
+ */
1274
+ "label"?: string;
1275
+ /**
1276
+ * Max value.
1277
+ * @default 100
1278
+ */
1279
+ "max"?: number;
1280
+ /**
1281
+ * Show numeric value next to the label.
1282
+ * @default false
1283
+ */
1284
+ "showValue"?: boolean;
1285
+ /**
1286
+ * Size.
1287
+ * @default 'md'
1288
+ */
1289
+ "size"?: ProgressSize;
1290
+ /**
1291
+ * Unit suffix for the displayed value.
1292
+ */
1293
+ "unit"?: string;
1294
+ /**
1295
+ * Current value (0–`max`).
1296
+ * @default 0
1297
+ */
1298
+ "value"?: number;
1299
+ /**
1300
+ * Visual variant. Use `warning` / `error` for low / critical fill levels.
1301
+ * @default 'default'
1302
+ */
1303
+ "variant"?: ProgressVariant;
1304
+ }
1305
+ /**
1306
+ * 2D top-down SCARA arm view. Pure presentational — pass joint angles and
1307
+ * link lengths, the component computes forward kinematics in SVG space.
1308
+ * <ind-scara-canvas .joints=${[30, 45, 0]} state="moving"></ind-scara-canvas>
1309
+ * - `joints[0]` (J1) — shoulder rotation in degrees, 0 = +X axis
1310
+ * - `joints[1]` (J2) — elbow rotation in degrees, relative to link 1
1311
+ * - `joints[2]` (J3) — wrist (end effector) rotation, drives the small indicator
1312
+ * Z translation isn't represented — it would require a separate side view.
1313
+ */
1314
+ interface IndScaraCanvas {
1315
+ /**
1316
+ * @default [0, 0, 0]
1317
+ */
1318
+ "joints"?: number[] | string;
1319
+ /**
1320
+ * @default [110, 90]
1321
+ */
1322
+ "linkLengths"?: number[] | string;
1323
+ /**
1324
+ * @default 'idle'
1325
+ */
1326
+ "state"?: ScaraState;
1327
+ }
1328
+ interface IndSelect {
1329
+ /**
1330
+ * @default false
1331
+ */
1332
+ "disabled"?: boolean;
1333
+ /**
1334
+ * @default false
1335
+ */
1336
+ "invalid"?: boolean;
1337
+ "label"?: string;
1338
+ "name"?: string;
1339
+ "onIndChange"?: (event: IndSelectCustomEvent<string>) => void;
1340
+ /**
1341
+ * Options. Pass an array via JS property (`.options = [...]`) OR a JSON-stringified array via the HTML `options` attribute. The native picker handles keyboard nav and mobile UI without us building a popover.
1342
+ * @default []
1343
+ */
1344
+ "options"?: SelectOption[] | string;
1345
+ "placeholder"?: string;
1346
+ /**
1347
+ * @default 'md'
1348
+ */
1349
+ "size"?: SelectSize;
1350
+ /**
1351
+ * @default ''
1352
+ */
1353
+ "value"?: string;
1354
+ }
1355
+ /**
1356
+ * Grid of bottle/container slots showing their fill level. Generic — represents
1357
+ * any rack of resupplyable containers (bottles, cartridges, kegs, etc.).
1358
+ * <ind-shelf-canvas
1359
+ * .slots=${[{id:'a', label:'A', level:78}, {id:'b', label:'B', level:12}]}
1360
+ * cols="2"></ind-shelf-canvas>
1361
+ */
1362
+ interface IndShelfCanvas {
1363
+ /**
1364
+ * @default 4
1365
+ */
1366
+ "cols"?: number;
1367
+ "heading"?: string;
1368
+ /**
1369
+ * @default 1
1370
+ */
1371
+ "rows"?: number;
1372
+ /**
1373
+ * @default []
1374
+ */
1375
+ "slots"?: ShelfSlot[] | string;
1376
+ }
1377
+ /**
1378
+ * Sidebar shell: a brand area on top, a scrollable nav list, and a footer area.
1379
+ * State management is left to the consumer — drive `active` on each <ind-nav-item>
1380
+ * from your router. The component is intentionally thin so it works with any
1381
+ * routing approach (React Router, Vue Router, hash-based, none).
1382
+ */
1383
+ interface IndSidebarNav {
1384
+ }
1385
+ /**
1386
+ * Global footer bar: status dot + message on the left, slotted content on the right.
1387
+ * Sized to be unobtrusive (~24 px). Drop additional `<span>` / `<ind-button size="sm">`
1388
+ * children for right-aligned context (timestamps, server identifiers, action buttons).
1389
+ */
1390
+ interface IndStatusBar {
1391
+ "message"?: string;
1392
+ /**
1393
+ * @default 'neutral'
1394
+ */
1395
+ "state"?: StatusBarState;
1396
+ }
1397
+ interface IndStatusDot {
1398
+ /**
1399
+ * @default false
1400
+ */
1401
+ "blinking"?: boolean;
1402
+ /**
1403
+ * Optional accessible name. Set when the dot stands alone; leave undefined when it's paired with adjacent text that already names the status.
1404
+ */
1405
+ "label"?: string;
1406
+ /**
1407
+ * @default 'md'
1408
+ */
1409
+ "size"?: StatusDotSize;
1410
+ /**
1411
+ * @default 'neutral'
1412
+ */
1413
+ "state"?: StatusDotState;
1414
+ }
1415
+ interface IndTextarea {
1416
+ /**
1417
+ * When true, auto-scrolls to bottom whenever `value` changes. Pair with `readonly` for log streams.
1418
+ * @default false
1419
+ */
1420
+ "autoScroll"?: boolean;
1421
+ /**
1422
+ * @default false
1423
+ */
1424
+ "disabled"?: boolean;
1425
+ /**
1426
+ * @default false
1427
+ */
1428
+ "invalid"?: boolean;
1429
+ "label"?: string;
1430
+ "name"?: string;
1431
+ "onIndChange"?: (event: IndTextareaCustomEvent<string>) => void;
1432
+ "onIndInput"?: (event: IndTextareaCustomEvent<string>) => void;
1433
+ "placeholder"?: string;
1434
+ /**
1435
+ * @default false
1436
+ */
1437
+ "readonly"?: boolean;
1438
+ /**
1439
+ * @default 4
1440
+ */
1441
+ "rows"?: number;
1442
+ /**
1443
+ * @default 'md'
1444
+ */
1445
+ "size"?: TextareaSize;
1446
+ /**
1447
+ * @default ''
1448
+ */
1449
+ "value"?: string;
1450
+ /**
1451
+ * `mono` swaps to JetBrains Mono and small font — for logs and MQTT streams.
1452
+ * @default 'default'
1453
+ */
1454
+ "variant"?: TextareaVariant;
1455
+ }
1456
+ interface IndToolbarAction {
1457
+ /**
1458
+ * Counter rendered before the actions (e.g. "1 248 messages").
1459
+ */
1460
+ "counter"?: string | number;
1461
+ }
1462
+ interface IndValue {
1463
+ /**
1464
+ * Active alarm priority. Highlights the readout with the ISA-18.2 color.
1465
+ * @default 'none'
1466
+ */
1467
+ "alarm"?: ValueAlarm;
1468
+ /**
1469
+ * Human label shown above the number (e.g. "Discharge pressure").
1470
+ */
1471
+ "label"?: string;
1472
+ /**
1473
+ * Decimal places when `value` is numeric. Default: as-is.
1474
+ */
1475
+ "precision"?: number;
1476
+ /**
1477
+ * Readout size — `lg` is appropriate for primary KPIs (uses the 3xl font).
1478
+ * @default 'md'
1479
+ */
1480
+ "size"?: ValueSize;
1481
+ /**
1482
+ * Equipment tag shown above the number (e.g. "PT-101").
1483
+ */
1484
+ "tag"?: string;
1485
+ /**
1486
+ * Process trend direction. Renders a small arrow next to the unit.
1487
+ * @default 'none'
1488
+ */
1489
+ "trend"?: ValueTrend;
1490
+ /**
1491
+ * Engineering unit shown after the number (e.g. "bar", "°C", "m³/h").
1492
+ */
1493
+ "unit"?: string;
1494
+ /**
1495
+ * Raw value to display. Numeric values are formatted with `precision`.
1496
+ */
1497
+ "value": number | string;
1498
+ }
1499
+ interface IndValve {
1500
+ /**
1501
+ * Human label rendered as caption (e.g. "Discharge valve").
1502
+ */
1503
+ "label"?: string;
1504
+ /**
1505
+ * Render the symbol along the flow direction.
1506
+ * @default 'horizontal'
1507
+ */
1508
+ "orientation"?: ValveOrientation;
1509
+ /**
1510
+ * Visual size.
1511
+ * @default 'md'
1512
+ */
1513
+ "size"?: ValveSize;
1514
+ /**
1515
+ * Valve state. `transit` is mid-stroke (transitioning between open and closed).
1516
+ * @default 'closed'
1517
+ */
1518
+ "state"?: ValveState;
1519
+ /**
1520
+ * Equipment tag rendered as caption (e.g. "V-12").
1521
+ */
1522
+ "tag"?: string;
1523
+ }
1524
+
1525
+ interface IndAlarmAttributes {
1526
+ "priority": AlarmPriority;
1527
+ "acknowledged": boolean;
1528
+ "label": string;
1529
+ "timestamp": string;
1530
+ }
1531
+ interface IndAppHeaderAttributes {
1532
+ "brand": string;
1533
+ "subBrand": string;
1534
+ "machineId": string;
1535
+ "mqttState": AppHeaderConnectionState;
1536
+ "mqttLabel": string;
1537
+ "version": string;
1538
+ "docsUrl": string;
1539
+ "hideChangeMachine": boolean;
1540
+ "hideDisconnect": boolean;
1541
+ }
1542
+ interface IndButtonAttributes {
1543
+ "variant": ButtonVariant;
1544
+ "size": ButtonSize;
1545
+ "disabled": boolean;
1546
+ "label": string;
1547
+ "holdToConfirmMs": number;
1548
+ }
1549
+ interface IndCheckboxAttributes {
1550
+ "checked": boolean;
1551
+ "indeterminate": boolean;
1552
+ "disabled": boolean;
1553
+ "size": CheckboxSize;
1554
+ "label": string;
1555
+ "name": string;
1556
+ "value": string;
1557
+ }
1558
+ interface IndDialogAttributes {
1559
+ "open": boolean;
1560
+ "heading": string;
1561
+ "size": DialogSize;
1562
+ "closeOnBackdrop": boolean;
1563
+ }
1564
+ interface IndDividerAttributes {
1565
+ "orientation": DividerOrientation;
1566
+ }
1567
+ interface IndFillRowAttributes {
1568
+ "tag": string;
1569
+ "label": string;
1570
+ "value": number;
1571
+ "max": number;
1572
+ "unit": string;
1573
+ "variant": FillRowVariant;
1574
+ "severity": boolean;
1575
+ }
1576
+ interface IndHealthCardAttributes {
1577
+ "heading": string;
1578
+ "state": HealthState;
1579
+ "stateLabel": string;
1580
+ "detail": string;
1581
+ }
1582
+ interface IndInputAttributes {
1583
+ "type": InputType;
1584
+ "size": InputSize;
1585
+ "value": string;
1586
+ "placeholder": string;
1587
+ "disabled": boolean;
1588
+ "readonly": boolean;
1589
+ "invalid": boolean;
1590
+ "label": string;
1591
+ "name": string;
1592
+ "min": string;
1593
+ "max": string;
1594
+ "step": string;
1595
+ "pattern": string;
1596
+ "autocomplete": string;
1597
+ "mode": InputMode;
1598
+ }
1599
+ interface IndLedAttributes {
1600
+ "state": LedState;
1601
+ "size": LedSize;
1602
+ "blinking": boolean;
1603
+ "label": string;
1604
+ }
1605
+ interface IndMqttMonitorAttributes {
1606
+ "log": string;
1607
+ "filterValue": string;
1608
+ "paused": boolean;
1609
+ "rows": number;
1610
+ }
1611
+ interface IndNavItemAttributes {
1612
+ "active": boolean;
1613
+ "disabled": boolean;
1614
+ "label": string;
1615
+ "href": string;
1616
+ "badge": string;
1617
+ }
1618
+ interface IndProgressAttributes {
1619
+ "value": number;
1620
+ "max": number;
1621
+ "variant": ProgressVariant;
1622
+ "size": ProgressSize;
1623
+ "label": string;
1624
+ "showValue": boolean;
1625
+ "unit": string;
1626
+ "indeterminate": boolean;
1627
+ }
1628
+ interface IndScaraCanvasAttributes {
1629
+ "joints": number[] | string;
1630
+ "linkLengths": number[] | string;
1631
+ "state": ScaraState;
1632
+ }
1633
+ interface IndSelectAttributes {
1634
+ "options": SelectOption[] | string;
1635
+ "value": string;
1636
+ "placeholder": string;
1637
+ "label": string;
1638
+ "name": string;
1639
+ "size": SelectSize;
1640
+ "disabled": boolean;
1641
+ "invalid": boolean;
1642
+ }
1643
+ interface IndShelfCanvasAttributes {
1644
+ "slots": ShelfSlot[] | string;
1645
+ "rows": number;
1646
+ "cols": number;
1647
+ "heading": string;
1648
+ }
1649
+ interface IndStatusBarAttributes {
1650
+ "state": StatusBarState;
1651
+ "message": string;
1652
+ }
1653
+ interface IndStatusDotAttributes {
1654
+ "state": StatusDotState;
1655
+ "size": StatusDotSize;
1656
+ "blinking": boolean;
1657
+ "label": string;
1658
+ }
1659
+ interface IndTextareaAttributes {
1660
+ "value": string;
1661
+ "placeholder": string;
1662
+ "label": string;
1663
+ "name": string;
1664
+ "rows": number;
1665
+ "size": TextareaSize;
1666
+ "variant": TextareaVariant;
1667
+ "disabled": boolean;
1668
+ "readonly": boolean;
1669
+ "invalid": boolean;
1670
+ "autoScroll": boolean;
1671
+ }
1672
+ interface IndToolbarActionAttributes {
1673
+ "counter": string;
1674
+ }
1675
+ interface IndValueAttributes {
1676
+ "value": string;
1677
+ "unit": string;
1678
+ "precision": number;
1679
+ "alarm": ValueAlarm;
1680
+ "trend": ValueTrend;
1681
+ "size": ValueSize;
1682
+ "label": string;
1683
+ "tag": string;
1684
+ }
1685
+ interface IndValveAttributes {
1686
+ "state": ValveState;
1687
+ "orientation": ValveOrientation;
1688
+ "size": ValveSize;
1689
+ "label": string;
1690
+ "tag": string;
1691
+ }
1692
+
1693
+ interface IntrinsicElements {
1694
+ "ind-alarm": Omit<IndAlarm, keyof IndAlarmAttributes> & { [K in keyof IndAlarm & keyof IndAlarmAttributes]?: IndAlarm[K] } & { [K in keyof IndAlarm & keyof IndAlarmAttributes as `attr:${K}`]?: IndAlarmAttributes[K] } & { [K in keyof IndAlarm & keyof IndAlarmAttributes as `prop:${K}`]?: IndAlarm[K] } & OneOf<"label", IndAlarm["label"], IndAlarmAttributes["label"]>;
1695
+ "ind-app-header": Omit<IndAppHeader, keyof IndAppHeaderAttributes> & { [K in keyof IndAppHeader & keyof IndAppHeaderAttributes]?: IndAppHeader[K] } & { [K in keyof IndAppHeader & keyof IndAppHeaderAttributes as `attr:${K}`]?: IndAppHeaderAttributes[K] } & { [K in keyof IndAppHeader & keyof IndAppHeaderAttributes as `prop:${K}`]?: IndAppHeader[K] } & OneOf<"brand", IndAppHeader["brand"], IndAppHeaderAttributes["brand"]>;
1696
+ "ind-button": Omit<IndButton, keyof IndButtonAttributes> & { [K in keyof IndButton & keyof IndButtonAttributes]?: IndButton[K] } & { [K in keyof IndButton & keyof IndButtonAttributes as `attr:${K}`]?: IndButtonAttributes[K] } & { [K in keyof IndButton & keyof IndButtonAttributes as `prop:${K}`]?: IndButton[K] };
1697
+ "ind-checkbox": Omit<IndCheckbox, keyof IndCheckboxAttributes> & { [K in keyof IndCheckbox & keyof IndCheckboxAttributes]?: IndCheckbox[K] } & { [K in keyof IndCheckbox & keyof IndCheckboxAttributes as `attr:${K}`]?: IndCheckboxAttributes[K] } & { [K in keyof IndCheckbox & keyof IndCheckboxAttributes as `prop:${K}`]?: IndCheckbox[K] };
1698
+ "ind-dialog": Omit<IndDialog, keyof IndDialogAttributes> & { [K in keyof IndDialog & keyof IndDialogAttributes]?: IndDialog[K] } & { [K in keyof IndDialog & keyof IndDialogAttributes as `attr:${K}`]?: IndDialogAttributes[K] } & { [K in keyof IndDialog & keyof IndDialogAttributes as `prop:${K}`]?: IndDialog[K] };
1699
+ "ind-divider": Omit<IndDivider, keyof IndDividerAttributes> & { [K in keyof IndDivider & keyof IndDividerAttributes]?: IndDivider[K] } & { [K in keyof IndDivider & keyof IndDividerAttributes as `attr:${K}`]?: IndDividerAttributes[K] } & { [K in keyof IndDivider & keyof IndDividerAttributes as `prop:${K}`]?: IndDivider[K] };
1700
+ "ind-fill-row": Omit<IndFillRow, keyof IndFillRowAttributes> & { [K in keyof IndFillRow & keyof IndFillRowAttributes]?: IndFillRow[K] } & { [K in keyof IndFillRow & keyof IndFillRowAttributes as `attr:${K}`]?: IndFillRowAttributes[K] } & { [K in keyof IndFillRow & keyof IndFillRowAttributes as `prop:${K}`]?: IndFillRow[K] } & OneOf<"label", IndFillRow["label"], IndFillRowAttributes["label"]>;
1701
+ "ind-health-card": Omit<IndHealthCard, keyof IndHealthCardAttributes> & { [K in keyof IndHealthCard & keyof IndHealthCardAttributes]?: IndHealthCard[K] } & { [K in keyof IndHealthCard & keyof IndHealthCardAttributes as `attr:${K}`]?: IndHealthCardAttributes[K] } & { [K in keyof IndHealthCard & keyof IndHealthCardAttributes as `prop:${K}`]?: IndHealthCard[K] } & OneOf<"heading", IndHealthCard["heading"], IndHealthCardAttributes["heading"]>;
1702
+ "ind-input": Omit<IndInput, keyof IndInputAttributes> & { [K in keyof IndInput & keyof IndInputAttributes]?: IndInput[K] } & { [K in keyof IndInput & keyof IndInputAttributes as `attr:${K}`]?: IndInputAttributes[K] } & { [K in keyof IndInput & keyof IndInputAttributes as `prop:${K}`]?: IndInput[K] };
1703
+ "ind-led": Omit<IndLed, keyof IndLedAttributes> & { [K in keyof IndLed & keyof IndLedAttributes]?: IndLed[K] } & { [K in keyof IndLed & keyof IndLedAttributes as `attr:${K}`]?: IndLedAttributes[K] } & { [K in keyof IndLed & keyof IndLedAttributes as `prop:${K}`]?: IndLed[K] };
1704
+ "ind-mqtt-monitor": Omit<IndMqttMonitor, keyof IndMqttMonitorAttributes> & { [K in keyof IndMqttMonitor & keyof IndMqttMonitorAttributes]?: IndMqttMonitor[K] } & { [K in keyof IndMqttMonitor & keyof IndMqttMonitorAttributes as `attr:${K}`]?: IndMqttMonitorAttributes[K] } & { [K in keyof IndMqttMonitor & keyof IndMqttMonitorAttributes as `prop:${K}`]?: IndMqttMonitor[K] };
1705
+ "ind-nav-item": Omit<IndNavItem, keyof IndNavItemAttributes> & { [K in keyof IndNavItem & keyof IndNavItemAttributes]?: IndNavItem[K] } & { [K in keyof IndNavItem & keyof IndNavItemAttributes as `attr:${K}`]?: IndNavItemAttributes[K] } & { [K in keyof IndNavItem & keyof IndNavItemAttributes as `prop:${K}`]?: IndNavItem[K] };
1706
+ "ind-progress": Omit<IndProgress, keyof IndProgressAttributes> & { [K in keyof IndProgress & keyof IndProgressAttributes]?: IndProgress[K] } & { [K in keyof IndProgress & keyof IndProgressAttributes as `attr:${K}`]?: IndProgressAttributes[K] } & { [K in keyof IndProgress & keyof IndProgressAttributes as `prop:${K}`]?: IndProgress[K] };
1707
+ "ind-scara-canvas": Omit<IndScaraCanvas, keyof IndScaraCanvasAttributes> & { [K in keyof IndScaraCanvas & keyof IndScaraCanvasAttributes]?: IndScaraCanvas[K] } & { [K in keyof IndScaraCanvas & keyof IndScaraCanvasAttributes as `attr:${K}`]?: IndScaraCanvasAttributes[K] } & { [K in keyof IndScaraCanvas & keyof IndScaraCanvasAttributes as `prop:${K}`]?: IndScaraCanvas[K] };
1708
+ "ind-select": Omit<IndSelect, keyof IndSelectAttributes> & { [K in keyof IndSelect & keyof IndSelectAttributes]?: IndSelect[K] } & { [K in keyof IndSelect & keyof IndSelectAttributes as `attr:${K}`]?: IndSelectAttributes[K] } & { [K in keyof IndSelect & keyof IndSelectAttributes as `prop:${K}`]?: IndSelect[K] };
1709
+ "ind-shelf-canvas": Omit<IndShelfCanvas, keyof IndShelfCanvasAttributes> & { [K in keyof IndShelfCanvas & keyof IndShelfCanvasAttributes]?: IndShelfCanvas[K] } & { [K in keyof IndShelfCanvas & keyof IndShelfCanvasAttributes as `attr:${K}`]?: IndShelfCanvasAttributes[K] } & { [K in keyof IndShelfCanvas & keyof IndShelfCanvasAttributes as `prop:${K}`]?: IndShelfCanvas[K] };
1710
+ "ind-sidebar-nav": IndSidebarNav;
1711
+ "ind-status-bar": Omit<IndStatusBar, keyof IndStatusBarAttributes> & { [K in keyof IndStatusBar & keyof IndStatusBarAttributes]?: IndStatusBar[K] } & { [K in keyof IndStatusBar & keyof IndStatusBarAttributes as `attr:${K}`]?: IndStatusBarAttributes[K] } & { [K in keyof IndStatusBar & keyof IndStatusBarAttributes as `prop:${K}`]?: IndStatusBar[K] };
1712
+ "ind-status-dot": Omit<IndStatusDot, keyof IndStatusDotAttributes> & { [K in keyof IndStatusDot & keyof IndStatusDotAttributes]?: IndStatusDot[K] } & { [K in keyof IndStatusDot & keyof IndStatusDotAttributes as `attr:${K}`]?: IndStatusDotAttributes[K] } & { [K in keyof IndStatusDot & keyof IndStatusDotAttributes as `prop:${K}`]?: IndStatusDot[K] };
1713
+ "ind-textarea": Omit<IndTextarea, keyof IndTextareaAttributes> & { [K in keyof IndTextarea & keyof IndTextareaAttributes]?: IndTextarea[K] } & { [K in keyof IndTextarea & keyof IndTextareaAttributes as `attr:${K}`]?: IndTextareaAttributes[K] } & { [K in keyof IndTextarea & keyof IndTextareaAttributes as `prop:${K}`]?: IndTextarea[K] };
1714
+ "ind-toolbar-action": Omit<IndToolbarAction, keyof IndToolbarActionAttributes> & { [K in keyof IndToolbarAction & keyof IndToolbarActionAttributes]?: IndToolbarAction[K] } & { [K in keyof IndToolbarAction & keyof IndToolbarActionAttributes as `attr:${K}`]?: IndToolbarActionAttributes[K] } & { [K in keyof IndToolbarAction & keyof IndToolbarActionAttributes as `prop:${K}`]?: IndToolbarAction[K] };
1715
+ "ind-value": Omit<IndValue, keyof IndValueAttributes> & { [K in keyof IndValue & keyof IndValueAttributes]?: IndValue[K] } & { [K in keyof IndValue & keyof IndValueAttributes as `attr:${K}`]?: IndValueAttributes[K] } & { [K in keyof IndValue & keyof IndValueAttributes as `prop:${K}`]?: IndValue[K] } & OneOf<"value", IndValue["value"], IndValueAttributes["value"]>;
1716
+ "ind-valve": Omit<IndValve, keyof IndValveAttributes> & { [K in keyof IndValve & keyof IndValveAttributes]?: IndValve[K] } & { [K in keyof IndValve & keyof IndValveAttributes as `attr:${K}`]?: IndValveAttributes[K] } & { [K in keyof IndValve & keyof IndValveAttributes as `prop:${K}`]?: IndValve[K] };
1717
+ }
1718
+ }
1719
+ export { LocalJSX as JSX };
1720
+ declare module "@stencil/core" {
1721
+ export namespace JSX {
1722
+ interface IntrinsicElements {
1723
+ "ind-alarm": LocalJSX.IntrinsicElements["ind-alarm"] & JSXBase.HTMLAttributes<HTMLIndAlarmElement>;
1724
+ "ind-app-header": LocalJSX.IntrinsicElements["ind-app-header"] & JSXBase.HTMLAttributes<HTMLIndAppHeaderElement>;
1725
+ "ind-button": LocalJSX.IntrinsicElements["ind-button"] & JSXBase.HTMLAttributes<HTMLIndButtonElement>;
1726
+ "ind-checkbox": LocalJSX.IntrinsicElements["ind-checkbox"] & JSXBase.HTMLAttributes<HTMLIndCheckboxElement>;
1727
+ "ind-dialog": LocalJSX.IntrinsicElements["ind-dialog"] & JSXBase.HTMLAttributes<HTMLIndDialogElement>;
1728
+ "ind-divider": LocalJSX.IntrinsicElements["ind-divider"] & JSXBase.HTMLAttributes<HTMLIndDividerElement>;
1729
+ "ind-fill-row": LocalJSX.IntrinsicElements["ind-fill-row"] & JSXBase.HTMLAttributes<HTMLIndFillRowElement>;
1730
+ "ind-health-card": LocalJSX.IntrinsicElements["ind-health-card"] & JSXBase.HTMLAttributes<HTMLIndHealthCardElement>;
1731
+ "ind-input": LocalJSX.IntrinsicElements["ind-input"] & JSXBase.HTMLAttributes<HTMLIndInputElement>;
1732
+ "ind-led": LocalJSX.IntrinsicElements["ind-led"] & JSXBase.HTMLAttributes<HTMLIndLedElement>;
1733
+ "ind-mqtt-monitor": LocalJSX.IntrinsicElements["ind-mqtt-monitor"] & JSXBase.HTMLAttributes<HTMLIndMqttMonitorElement>;
1734
+ "ind-nav-item": LocalJSX.IntrinsicElements["ind-nav-item"] & JSXBase.HTMLAttributes<HTMLIndNavItemElement>;
1735
+ "ind-progress": LocalJSX.IntrinsicElements["ind-progress"] & JSXBase.HTMLAttributes<HTMLIndProgressElement>;
1736
+ /**
1737
+ * 2D top-down SCARA arm view. Pure presentational — pass joint angles and
1738
+ * link lengths, the component computes forward kinematics in SVG space.
1739
+ * <ind-scara-canvas .joints=${[30, 45, 0]} state="moving"></ind-scara-canvas>
1740
+ * - `joints[0]` (J1) — shoulder rotation in degrees, 0 = +X axis
1741
+ * - `joints[1]` (J2) — elbow rotation in degrees, relative to link 1
1742
+ * - `joints[2]` (J3) — wrist (end effector) rotation, drives the small indicator
1743
+ * Z translation isn't represented — it would require a separate side view.
1744
+ */
1745
+ "ind-scara-canvas": LocalJSX.IntrinsicElements["ind-scara-canvas"] & JSXBase.HTMLAttributes<HTMLIndScaraCanvasElement>;
1746
+ "ind-select": LocalJSX.IntrinsicElements["ind-select"] & JSXBase.HTMLAttributes<HTMLIndSelectElement>;
1747
+ /**
1748
+ * Grid of bottle/container slots showing their fill level. Generic — represents
1749
+ * any rack of resupplyable containers (bottles, cartridges, kegs, etc.).
1750
+ * <ind-shelf-canvas
1751
+ * .slots=${[{id:'a', label:'A', level:78}, {id:'b', label:'B', level:12}]}
1752
+ * cols="2"></ind-shelf-canvas>
1753
+ */
1754
+ "ind-shelf-canvas": LocalJSX.IntrinsicElements["ind-shelf-canvas"] & JSXBase.HTMLAttributes<HTMLIndShelfCanvasElement>;
1755
+ /**
1756
+ * Sidebar shell: a brand area on top, a scrollable nav list, and a footer area.
1757
+ * State management is left to the consumer — drive `active` on each <ind-nav-item>
1758
+ * from your router. The component is intentionally thin so it works with any
1759
+ * routing approach (React Router, Vue Router, hash-based, none).
1760
+ */
1761
+ "ind-sidebar-nav": LocalJSX.IntrinsicElements["ind-sidebar-nav"] & JSXBase.HTMLAttributes<HTMLIndSidebarNavElement>;
1762
+ /**
1763
+ * Global footer bar: status dot + message on the left, slotted content on the right.
1764
+ * Sized to be unobtrusive (~24 px). Drop additional `<span>` / `<ind-button size="sm">`
1765
+ * children for right-aligned context (timestamps, server identifiers, action buttons).
1766
+ */
1767
+ "ind-status-bar": LocalJSX.IntrinsicElements["ind-status-bar"] & JSXBase.HTMLAttributes<HTMLIndStatusBarElement>;
1768
+ "ind-status-dot": LocalJSX.IntrinsicElements["ind-status-dot"] & JSXBase.HTMLAttributes<HTMLIndStatusDotElement>;
1769
+ "ind-textarea": LocalJSX.IntrinsicElements["ind-textarea"] & JSXBase.HTMLAttributes<HTMLIndTextareaElement>;
1770
+ "ind-toolbar-action": LocalJSX.IntrinsicElements["ind-toolbar-action"] & JSXBase.HTMLAttributes<HTMLIndToolbarActionElement>;
1771
+ "ind-value": LocalJSX.IntrinsicElements["ind-value"] & JSXBase.HTMLAttributes<HTMLIndValueElement>;
1772
+ "ind-valve": LocalJSX.IntrinsicElements["ind-valve"] & JSXBase.HTMLAttributes<HTMLIndValveElement>;
1773
+ }
1774
+ }
1775
+ }