@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.
- package/README.md +41 -0
- package/dist/cjs/ind-alarm.cjs.entry.js +35 -0
- package/dist/cjs/ind-alarm.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-app-header.cjs.entry.js +42 -0
- package/dist/cjs/ind-app-header.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-button.cjs.entry.js +79 -0
- package/dist/cjs/ind-button.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-checkbox.cjs.entry.js +49 -0
- package/dist/cjs/ind-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-dialog.cjs.entry.js +101 -0
- package/dist/cjs/ind-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-divider.cjs.entry.js +21 -0
- package/dist/cjs/ind-divider.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-ds.cjs.js +27 -0
- package/dist/cjs/ind-ds.cjs.js.map +1 -0
- package/dist/cjs/ind-fill-row.cjs.entry.js +34 -0
- package/dist/cjs/ind-fill-row.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-health-card.cjs.entry.js +38 -0
- package/dist/cjs/ind-health-card.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-input.cjs.entry.js +57 -0
- package/dist/cjs/ind-input.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-led.cjs.entry.js +29 -0
- package/dist/cjs/ind-led.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-mqtt-monitor.cjs.entry.js +75 -0
- package/dist/cjs/ind-mqtt-monitor.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-nav-item.cjs.entry.js +48 -0
- package/dist/cjs/ind-nav-item.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-progress.cjs.entry.js +48 -0
- package/dist/cjs/ind-progress.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-scara-canvas.cjs.entry.js +57 -0
- package/dist/cjs/ind-scara-canvas.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-select.cjs.entry.js +55 -0
- package/dist/cjs/ind-select.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-shelf-canvas.cjs.entry.js +88 -0
- package/dist/cjs/ind-shelf-canvas.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-sidebar-nav.cjs.entry.js +20 -0
- package/dist/cjs/ind-sidebar-nav.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-status-bar.cjs.entry.js +22 -0
- package/dist/cjs/ind-status-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-status-dot.cjs.entry.js +31 -0
- package/dist/cjs/ind-status-dot.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-textarea.cjs.entry.js +66 -0
- package/dist/cjs/ind-textarea.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-toolbar-action.cjs.entry.js +23 -0
- package/dist/cjs/ind-toolbar-action.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-value.cjs.entry.js +47 -0
- package/dist/cjs/ind-value.cjs.entry.js.map +1 -0
- package/dist/cjs/ind-valve.cjs.entry.js +31 -0
- package/dist/cjs/ind-valve.cjs.entry.js.map +1 -0
- package/dist/cjs/index-ph7ZTjuY.js +1638 -0
- package/dist/cjs/index-ph7ZTjuY.js.map +1 -0
- package/dist/cjs/index.cjs.js +5 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +15 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +35 -0
- package/dist/collection/components/atoms/alarm/alarm.css +87 -0
- package/dist/collection/components/atoms/alarm/alarm.js +122 -0
- package/dist/collection/components/atoms/alarm/alarm.js.map +1 -0
- package/dist/collection/components/atoms/button/button.css +110 -0
- package/dist/collection/components/atoms/button/button.js +215 -0
- package/dist/collection/components/atoms/button/button.js.map +1 -0
- package/dist/collection/components/atoms/checkbox/checkbox.css +92 -0
- package/dist/collection/components/atoms/checkbox/checkbox.js +214 -0
- package/dist/collection/components/atoms/checkbox/checkbox.js.map +1 -0
- package/dist/collection/components/atoms/dialog/dialog.css +85 -0
- package/dist/collection/components/atoms/dialog/dialog.js +265 -0
- package/dist/collection/components/atoms/dialog/dialog.js.map +1 -0
- package/dist/collection/components/atoms/divider/divider.css +16 -0
- package/dist/collection/components/atoms/divider/divider.js +50 -0
- package/dist/collection/components/atoms/divider/divider.js.map +1 -0
- package/dist/collection/components/atoms/input/input.css +92 -0
- package/dist/collection/components/atoms/input/input.js +427 -0
- package/dist/collection/components/atoms/input/input.js.map +1 -0
- package/dist/collection/components/atoms/led/led.css +91 -0
- package/dist/collection/components/atoms/led/led.js +123 -0
- package/dist/collection/components/atoms/led/led.js.map +1 -0
- package/dist/collection/components/atoms/progress/progress.css +69 -0
- package/dist/collection/components/atoms/progress/progress.js +221 -0
- package/dist/collection/components/atoms/progress/progress.js.map +1 -0
- package/dist/collection/components/atoms/scara-canvas/scara-canvas.css +100 -0
- package/dist/collection/components/atoms/scara-canvas/scara-canvas.js +138 -0
- package/dist/collection/components/atoms/scara-canvas/scara-canvas.js.map +1 -0
- package/dist/collection/components/atoms/select/select.css +88 -0
- package/dist/collection/components/atoms/select/select.js +244 -0
- package/dist/collection/components/atoms/select/select.js.map +1 -0
- package/dist/collection/components/atoms/shelf-canvas/shelf-canvas.css +67 -0
- package/dist/collection/components/atoms/shelf-canvas/shelf-canvas.js +184 -0
- package/dist/collection/components/atoms/shelf-canvas/shelf-canvas.js.map +1 -0
- package/dist/collection/components/atoms/status-dot/status-dot.css +69 -0
- package/dist/collection/components/atoms/status-dot/status-dot.js +125 -0
- package/dist/collection/components/atoms/status-dot/status-dot.js.map +1 -0
- package/dist/collection/components/atoms/textarea/textarea.css +74 -0
- package/dist/collection/components/atoms/textarea/textarea.js +331 -0
- package/dist/collection/components/atoms/textarea/textarea.js.map +1 -0
- package/dist/collection/components/atoms/value/value.css +115 -0
- package/dist/collection/components/atoms/value/value.js +223 -0
- package/dist/collection/components/atoms/value/value.js.map +1 -0
- package/dist/collection/components/atoms/valve/valve.css +101 -0
- package/dist/collection/components/atoms/valve/valve.js +150 -0
- package/dist/collection/components/atoms/valve/valve.js.map +1 -0
- package/dist/collection/components/molecules/fill-row/fill-row.css +70 -0
- package/dist/collection/components/molecules/fill-row/fill-row.js +181 -0
- package/dist/collection/components/molecules/fill-row/fill-row.js.map +1 -0
- package/dist/collection/components/molecules/health-card/health-card.css +53 -0
- package/dist/collection/components/molecules/health-card/health-card.js +124 -0
- package/dist/collection/components/molecules/health-card/health-card.js.map +1 -0
- package/dist/collection/components/molecules/nav-item/nav-item.css +82 -0
- package/dist/collection/components/molecules/nav-item/nav-item.js +165 -0
- package/dist/collection/components/molecules/nav-item/nav-item.js.map +1 -0
- package/dist/collection/components/molecules/toolbar-action/toolbar-action.css +36 -0
- package/dist/collection/components/molecules/toolbar-action/toolbar-action.js +45 -0
- package/dist/collection/components/molecules/toolbar-action/toolbar-action.js.map +1 -0
- package/dist/collection/components/organisms/app-header/app-header.css +127 -0
- package/dist/collection/components/organisms/app-header/app-header.js +256 -0
- package/dist/collection/components/organisms/app-header/app-header.js.map +1 -0
- package/dist/collection/components/organisms/mqtt-monitor/mqtt-monitor.css +96 -0
- package/dist/collection/components/organisms/mqtt-monitor/mqtt-monitor.js +205 -0
- package/dist/collection/components/organisms/mqtt-monitor/mqtt-monitor.js.map +1 -0
- package/dist/collection/components/organisms/sidebar-nav/sidebar-nav.css +39 -0
- package/dist/collection/components/organisms/sidebar-nav/sidebar-nav.js +26 -0
- package/dist/collection/components/organisms/sidebar-nav/sidebar-nav.js.map +1 -0
- package/dist/collection/components/organisms/status-bar/status-bar.css +34 -0
- package/dist/collection/components/organisms/status-bar/status-bar.js +76 -0
- package/dist/collection/components/organisms/status-bar/status-bar.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/components/ind-alarm.d.ts +11 -0
- package/dist/components/ind-alarm.js +2 -0
- package/dist/components/ind-alarm.js.map +1 -0
- package/dist/components/ind-app-header.d.ts +11 -0
- package/dist/components/ind-app-header.js +2 -0
- package/dist/components/ind-app-header.js.map +1 -0
- package/dist/components/ind-button.d.ts +11 -0
- package/dist/components/ind-button.js +2 -0
- package/dist/components/ind-button.js.map +1 -0
- package/dist/components/ind-checkbox.d.ts +11 -0
- package/dist/components/ind-checkbox.js +2 -0
- package/dist/components/ind-checkbox.js.map +1 -0
- package/dist/components/ind-dialog.d.ts +11 -0
- package/dist/components/ind-dialog.js +2 -0
- package/dist/components/ind-dialog.js.map +1 -0
- package/dist/components/ind-divider.d.ts +11 -0
- package/dist/components/ind-divider.js +2 -0
- package/dist/components/ind-divider.js.map +1 -0
- package/dist/components/ind-fill-row.d.ts +11 -0
- package/dist/components/ind-fill-row.js +2 -0
- package/dist/components/ind-fill-row.js.map +1 -0
- package/dist/components/ind-health-card.d.ts +11 -0
- package/dist/components/ind-health-card.js +2 -0
- package/dist/components/ind-health-card.js.map +1 -0
- package/dist/components/ind-input.d.ts +11 -0
- package/dist/components/ind-input.js +2 -0
- package/dist/components/ind-input.js.map +1 -0
- package/dist/components/ind-led.d.ts +11 -0
- package/dist/components/ind-led.js +2 -0
- package/dist/components/ind-led.js.map +1 -0
- package/dist/components/ind-mqtt-monitor.d.ts +11 -0
- package/dist/components/ind-mqtt-monitor.js +2 -0
- package/dist/components/ind-mqtt-monitor.js.map +1 -0
- package/dist/components/ind-nav-item.d.ts +11 -0
- package/dist/components/ind-nav-item.js +2 -0
- package/dist/components/ind-nav-item.js.map +1 -0
- package/dist/components/ind-progress.d.ts +11 -0
- package/dist/components/ind-progress.js +2 -0
- package/dist/components/ind-progress.js.map +1 -0
- package/dist/components/ind-scara-canvas.d.ts +11 -0
- package/dist/components/ind-scara-canvas.js +2 -0
- package/dist/components/ind-scara-canvas.js.map +1 -0
- package/dist/components/ind-select.d.ts +11 -0
- package/dist/components/ind-select.js +2 -0
- package/dist/components/ind-select.js.map +1 -0
- package/dist/components/ind-shelf-canvas.d.ts +11 -0
- package/dist/components/ind-shelf-canvas.js +2 -0
- package/dist/components/ind-shelf-canvas.js.map +1 -0
- package/dist/components/ind-sidebar-nav.d.ts +11 -0
- package/dist/components/ind-sidebar-nav.js +2 -0
- package/dist/components/ind-sidebar-nav.js.map +1 -0
- package/dist/components/ind-status-bar.d.ts +11 -0
- package/dist/components/ind-status-bar.js +2 -0
- package/dist/components/ind-status-bar.js.map +1 -0
- package/dist/components/ind-status-dot.d.ts +11 -0
- package/dist/components/ind-status-dot.js +2 -0
- package/dist/components/ind-status-dot.js.map +1 -0
- package/dist/components/ind-textarea.d.ts +11 -0
- package/dist/components/ind-textarea.js +2 -0
- package/dist/components/ind-textarea.js.map +1 -0
- package/dist/components/ind-toolbar-action.d.ts +11 -0
- package/dist/components/ind-toolbar-action.js +2 -0
- package/dist/components/ind-toolbar-action.js.map +1 -0
- package/dist/components/ind-value.d.ts +11 -0
- package/dist/components/ind-value.js +2 -0
- package/dist/components/ind-value.js.map +1 -0
- package/dist/components/ind-valve.d.ts +11 -0
- package/dist/components/ind-valve.js +2 -0
- package/dist/components/ind-valve.js.map +1 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/p-D-FsSjAC.js +2 -0
- package/dist/components/p-D-FsSjAC.js.map +1 -0
- package/dist/components/p-acsAzrRn.js +2 -0
- package/dist/components/p-acsAzrRn.js.map +1 -0
- package/dist/docs.d.ts +480 -0
- package/dist/docs.json +5360 -0
- package/dist/esm/ind-alarm.entry.js +33 -0
- package/dist/esm/ind-alarm.entry.js.map +1 -0
- package/dist/esm/ind-app-header.entry.js +40 -0
- package/dist/esm/ind-app-header.entry.js.map +1 -0
- package/dist/esm/ind-button.entry.js +77 -0
- package/dist/esm/ind-button.entry.js.map +1 -0
- package/dist/esm/ind-checkbox.entry.js +47 -0
- package/dist/esm/ind-checkbox.entry.js.map +1 -0
- package/dist/esm/ind-dialog.entry.js +99 -0
- package/dist/esm/ind-dialog.entry.js.map +1 -0
- package/dist/esm/ind-divider.entry.js +19 -0
- package/dist/esm/ind-divider.entry.js.map +1 -0
- package/dist/esm/ind-ds.js +23 -0
- package/dist/esm/ind-ds.js.map +1 -0
- package/dist/esm/ind-fill-row.entry.js +32 -0
- package/dist/esm/ind-fill-row.entry.js.map +1 -0
- package/dist/esm/ind-health-card.entry.js +36 -0
- package/dist/esm/ind-health-card.entry.js.map +1 -0
- package/dist/esm/ind-input.entry.js +55 -0
- package/dist/esm/ind-input.entry.js.map +1 -0
- package/dist/esm/ind-led.entry.js +27 -0
- package/dist/esm/ind-led.entry.js.map +1 -0
- package/dist/esm/ind-mqtt-monitor.entry.js +73 -0
- package/dist/esm/ind-mqtt-monitor.entry.js.map +1 -0
- package/dist/esm/ind-nav-item.entry.js +46 -0
- package/dist/esm/ind-nav-item.entry.js.map +1 -0
- package/dist/esm/ind-progress.entry.js +46 -0
- package/dist/esm/ind-progress.entry.js.map +1 -0
- package/dist/esm/ind-scara-canvas.entry.js +55 -0
- package/dist/esm/ind-scara-canvas.entry.js.map +1 -0
- package/dist/esm/ind-select.entry.js +53 -0
- package/dist/esm/ind-select.entry.js.map +1 -0
- package/dist/esm/ind-shelf-canvas.entry.js +86 -0
- package/dist/esm/ind-shelf-canvas.entry.js.map +1 -0
- package/dist/esm/ind-sidebar-nav.entry.js +18 -0
- package/dist/esm/ind-sidebar-nav.entry.js.map +1 -0
- package/dist/esm/ind-status-bar.entry.js +20 -0
- package/dist/esm/ind-status-bar.entry.js.map +1 -0
- package/dist/esm/ind-status-dot.entry.js +29 -0
- package/dist/esm/ind-status-dot.entry.js.map +1 -0
- package/dist/esm/ind-textarea.entry.js +64 -0
- package/dist/esm/ind-textarea.entry.js.map +1 -0
- package/dist/esm/ind-toolbar-action.entry.js +21 -0
- package/dist/esm/ind-toolbar-action.entry.js.map +1 -0
- package/dist/esm/ind-value.entry.js +45 -0
- package/dist/esm/ind-value.entry.js.map +1 -0
- package/dist/esm/ind-valve.entry.js +29 -0
- package/dist/esm/ind-valve.entry.js.map +1 -0
- package/dist/esm/index-D2yNiL0d.js +1628 -0
- package/dist/esm/index-D2yNiL0d.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +13 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/ind-ds/ind-ds.css +1 -0
- package/dist/ind-ds/ind-ds.esm.js +2 -0
- package/dist/ind-ds/ind-ds.esm.js.map +1 -0
- package/dist/ind-ds/index.esm.js +2 -0
- package/dist/ind-ds/index.esm.js.map +1 -0
- package/dist/ind-ds/p-0840007d.entry.js +2 -0
- package/dist/ind-ds/p-0840007d.entry.js.map +1 -0
- package/dist/ind-ds/p-1727b403.entry.js +2 -0
- package/dist/ind-ds/p-1727b403.entry.js.map +1 -0
- package/dist/ind-ds/p-1d871f3f.entry.js +2 -0
- package/dist/ind-ds/p-1d871f3f.entry.js.map +1 -0
- package/dist/ind-ds/p-296b0c55.entry.js +2 -0
- package/dist/ind-ds/p-296b0c55.entry.js.map +1 -0
- package/dist/ind-ds/p-459405b6.entry.js +2 -0
- package/dist/ind-ds/p-459405b6.entry.js.map +1 -0
- package/dist/ind-ds/p-4a4811ab.entry.js +2 -0
- package/dist/ind-ds/p-4a4811ab.entry.js.map +1 -0
- package/dist/ind-ds/p-52b18003.entry.js +2 -0
- package/dist/ind-ds/p-52b18003.entry.js.map +1 -0
- package/dist/ind-ds/p-5369d63a.entry.js +2 -0
- package/dist/ind-ds/p-5369d63a.entry.js.map +1 -0
- package/dist/ind-ds/p-595ccdce.entry.js +2 -0
- package/dist/ind-ds/p-595ccdce.entry.js.map +1 -0
- package/dist/ind-ds/p-6c5c8053.entry.js +2 -0
- package/dist/ind-ds/p-6c5c8053.entry.js.map +1 -0
- package/dist/ind-ds/p-6c8f4bbd.entry.js +2 -0
- package/dist/ind-ds/p-6c8f4bbd.entry.js.map +1 -0
- package/dist/ind-ds/p-781e21df.entry.js +2 -0
- package/dist/ind-ds/p-781e21df.entry.js.map +1 -0
- package/dist/ind-ds/p-8817625a.entry.js +2 -0
- package/dist/ind-ds/p-8817625a.entry.js.map +1 -0
- package/dist/ind-ds/p-99f55d2a.entry.js +2 -0
- package/dist/ind-ds/p-99f55d2a.entry.js.map +1 -0
- package/dist/ind-ds/p-9b93fb09.entry.js +2 -0
- package/dist/ind-ds/p-9b93fb09.entry.js.map +1 -0
- package/dist/ind-ds/p-D2yNiL0d.js +3 -0
- package/dist/ind-ds/p-D2yNiL0d.js.map +1 -0
- package/dist/ind-ds/p-c8de42e9.entry.js +2 -0
- package/dist/ind-ds/p-c8de42e9.entry.js.map +1 -0
- package/dist/ind-ds/p-c9f752e6.entry.js +2 -0
- package/dist/ind-ds/p-c9f752e6.entry.js.map +1 -0
- package/dist/ind-ds/p-cee8bf2b.entry.js +2 -0
- package/dist/ind-ds/p-cee8bf2b.entry.js.map +1 -0
- package/dist/ind-ds/p-cf07b580.entry.js +2 -0
- package/dist/ind-ds/p-cf07b580.entry.js.map +1 -0
- package/dist/ind-ds/p-d1edc052.entry.js +2 -0
- package/dist/ind-ds/p-d1edc052.entry.js.map +1 -0
- package/dist/ind-ds/p-ea24a59d.entry.js +2 -0
- package/dist/ind-ds/p-ea24a59d.entry.js.map +1 -0
- package/dist/ind-ds/p-ec0b3785.entry.js +2 -0
- package/dist/ind-ds/p-ec0b3785.entry.js.map +1 -0
- package/dist/ind-ds/p-ee453874.entry.js +2 -0
- package/dist/ind-ds/p-ee453874.entry.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/types/components/atoms/alarm/alarm.d.ts +13 -0
- package/dist/types/components/atoms/button/button.d.ts +31 -0
- package/dist/types/components/atoms/checkbox/checkbox.d.ts +18 -0
- package/dist/types/components/atoms/dialog/dialog.d.ts +29 -0
- package/dist/types/components/atoms/divider/divider.d.ts +6 -0
- package/dist/types/components/atoms/input/input.d.ts +34 -0
- package/dist/types/components/atoms/led/led.d.ts +14 -0
- package/dist/types/components/atoms/progress/progress.d.ts +24 -0
- package/dist/types/components/atoms/scara-canvas/scara-canvas.d.ts +21 -0
- package/dist/types/components/atoms/select/select.d.ts +27 -0
- package/dist/types/components/atoms/shelf-canvas/shelf-canvas.d.ts +29 -0
- package/dist/types/components/atoms/status-dot/status-dot.d.ts +14 -0
- package/dist/types/components/atoms/textarea/textarea.d.ts +28 -0
- package/dist/types/components/atoms/value/value.d.ts +24 -0
- package/dist/types/components/atoms/valve/valve.d.ts +17 -0
- package/dist/types/components/molecules/fill-row/fill-row.d.ts +19 -0
- package/dist/types/components/molecules/health-card/health-card.d.ts +13 -0
- package/dist/types/components/molecules/nav-item/nav-item.d.ts +17 -0
- package/dist/types/components/molecules/toolbar-action/toolbar-action.d.ts +6 -0
- package/dist/types/components/organisms/app-header/app-header.d.ts +26 -0
- package/dist/types/components/organisms/mqtt-monitor/mqtt-monitor.d.ts +23 -0
- package/dist/types/components/organisms/sidebar-nav/sidebar-nav.d.ts +11 -0
- package/dist/types/components/organisms/status-bar/status-bar.d.ts +13 -0
- package/dist/types/components.d.ts +1775 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/stencil-public-runtime.d.ts +1861 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +87 -0
- package/utilities.css +324 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
|
+
const DEFAULT_LABEL = {
|
|
3
|
+
running: 'OK',
|
|
4
|
+
stopped: 'Stopped',
|
|
5
|
+
fault: 'Fault',
|
|
6
|
+
warning: 'Warning',
|
|
7
|
+
maintenance: 'Maintenance',
|
|
8
|
+
unknown: '—',
|
|
9
|
+
};
|
|
10
|
+
export class IndHealthCard {
|
|
11
|
+
/** Subsystem name (e.g. "PLC", "Dispense robot", "Washer"). */
|
|
12
|
+
heading;
|
|
13
|
+
/** Process state — drives the dot color and the prominent text color. */
|
|
14
|
+
state = 'unknown';
|
|
15
|
+
/** Override the default label (e.g. show "RUN 24 h" instead of "OK"). */
|
|
16
|
+
stateLabel;
|
|
17
|
+
/** Optional sub-line for context (timestamp, last error, etc.). */
|
|
18
|
+
detail;
|
|
19
|
+
render() {
|
|
20
|
+
const label = this.stateLabel ?? DEFAULT_LABEL[this.state];
|
|
21
|
+
const dotState = this.state === 'unknown' ? 'neutral' : this.state;
|
|
22
|
+
return (h(Host, { key: '2bc1d2152325d8a40fb9399ec6c24b0134bde34a', role: "group", "aria-label": `${this.heading}: ${label}`, "aria-live": this.state === 'fault' ? 'assertive' : 'polite' }, h("div", { key: '7268095055dc03a742e97786a22dd4179f6e8ac3', class: "title", part: "title" }, this.heading), h("div", { key: '4069f5782516eb2b28bfafb4b0a59c3fe6133321', class: "status", part: "status" }, h("ind-status-dot", { key: '651976ae059c6b8faafd4bb4de7c1fa08fd6b86b', state: dotState, size: "md" }), h("span", { key: '18925ef8bb2c51789f315a2adf8cacc5a7ad4712', class: "state-label", part: "state-label" }, label)), this.detail && h("div", { key: '7f3c37bca74f5f5fb92633f9c7d85681c78bd677', class: "detail", part: "detail" }, this.detail)));
|
|
23
|
+
}
|
|
24
|
+
static get is() { return "ind-health-card"; }
|
|
25
|
+
static get encapsulation() { return "shadow"; }
|
|
26
|
+
static get originalStyleUrls() {
|
|
27
|
+
return {
|
|
28
|
+
"$": ["health-card.css"]
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
static get styleUrls() {
|
|
32
|
+
return {
|
|
33
|
+
"$": ["health-card.css"]
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
static get properties() {
|
|
37
|
+
return {
|
|
38
|
+
"heading": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"mutable": false,
|
|
41
|
+
"complexType": {
|
|
42
|
+
"original": "string",
|
|
43
|
+
"resolved": "string",
|
|
44
|
+
"references": {}
|
|
45
|
+
},
|
|
46
|
+
"required": true,
|
|
47
|
+
"optional": false,
|
|
48
|
+
"docs": {
|
|
49
|
+
"tags": [],
|
|
50
|
+
"text": "Subsystem name (e.g. \"PLC\", \"Dispense robot\", \"Washer\")."
|
|
51
|
+
},
|
|
52
|
+
"getter": false,
|
|
53
|
+
"setter": false,
|
|
54
|
+
"reflect": false,
|
|
55
|
+
"attribute": "heading"
|
|
56
|
+
},
|
|
57
|
+
"state": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"mutable": false,
|
|
60
|
+
"complexType": {
|
|
61
|
+
"original": "HealthState",
|
|
62
|
+
"resolved": "\"fault\" | \"maintenance\" | \"running\" | \"stopped\" | \"unknown\" | \"warning\"",
|
|
63
|
+
"references": {
|
|
64
|
+
"HealthState": {
|
|
65
|
+
"location": "local",
|
|
66
|
+
"path": "C:/www/ind-ds/packages/core/src/components/molecules/health-card/health-card.tsx",
|
|
67
|
+
"id": "src/components/molecules/health-card/health-card.tsx::HealthState"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"required": false,
|
|
72
|
+
"optional": false,
|
|
73
|
+
"docs": {
|
|
74
|
+
"tags": [],
|
|
75
|
+
"text": "Process state \u2014 drives the dot color and the prominent text color."
|
|
76
|
+
},
|
|
77
|
+
"getter": false,
|
|
78
|
+
"setter": false,
|
|
79
|
+
"reflect": true,
|
|
80
|
+
"attribute": "state",
|
|
81
|
+
"defaultValue": "'unknown'"
|
|
82
|
+
},
|
|
83
|
+
"stateLabel": {
|
|
84
|
+
"type": "string",
|
|
85
|
+
"mutable": false,
|
|
86
|
+
"complexType": {
|
|
87
|
+
"original": "string",
|
|
88
|
+
"resolved": "string | undefined",
|
|
89
|
+
"references": {}
|
|
90
|
+
},
|
|
91
|
+
"required": false,
|
|
92
|
+
"optional": true,
|
|
93
|
+
"docs": {
|
|
94
|
+
"tags": [],
|
|
95
|
+
"text": "Override the default label (e.g. show \"RUN 24 h\" instead of \"OK\")."
|
|
96
|
+
},
|
|
97
|
+
"getter": false,
|
|
98
|
+
"setter": false,
|
|
99
|
+
"reflect": false,
|
|
100
|
+
"attribute": "state-label"
|
|
101
|
+
},
|
|
102
|
+
"detail": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"mutable": false,
|
|
105
|
+
"complexType": {
|
|
106
|
+
"original": "string",
|
|
107
|
+
"resolved": "string | undefined",
|
|
108
|
+
"references": {}
|
|
109
|
+
},
|
|
110
|
+
"required": false,
|
|
111
|
+
"optional": true,
|
|
112
|
+
"docs": {
|
|
113
|
+
"tags": [],
|
|
114
|
+
"text": "Optional sub-line for context (timestamp, last error, etc.)."
|
|
115
|
+
},
|
|
116
|
+
"getter": false,
|
|
117
|
+
"setter": false,
|
|
118
|
+
"reflect": false,
|
|
119
|
+
"attribute": "detail"
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=health-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-card.js","sourceRoot":"","sources":["../../../../src/components/molecules/health-card/health-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUzD,MAAM,aAAa,GAAgC;IACjD,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,GAAG;CACb,CAAC;AAOF,MAAM,OAAO,aAAa;IACxB,+DAA+D;IACvD,OAAO,CAAU;IACzB,yEAAyE;IAChD,KAAK,GAAgB,SAAS,CAAC;IACxD,yEAAyE;IACjE,UAAU,CAAU;IAC5B,mEAAmE;IAC3D,MAAM,CAAU;IAExB,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACnE,OAAO,CACL,EAAC,IAAI,qDACH,IAAI,EAAC,OAAO,gBACA,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,eAC5B,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YAE1D,4DAAK,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,IAAE,IAAI,CAAC,OAAO,CAAO;YACpD,4DAAK,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ;gBAC/B,uEAAgB,KAAK,EAAE,QAAmF,EAAE,IAAI,EAAC,IAAI,GAAG;gBACxH,6DAAM,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,IAAE,KAAK,CAAQ,CACvD;YACL,IAAI,CAAC,MAAM,IAAI,4DAAK,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,IAAE,IAAI,CAAC,MAAM,CAAO,CAChE,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\n\nexport type HealthState =\n | 'running'\n | 'stopped'\n | 'fault'\n | 'warning'\n | 'maintenance'\n | 'unknown';\n\nconst DEFAULT_LABEL: Record<HealthState, string> = {\n running: 'OK',\n stopped: 'Stopped',\n fault: 'Fault',\n warning: 'Warning',\n maintenance: 'Maintenance',\n unknown: '—',\n};\n\n@Component({\n tag: 'ind-health-card',\n styleUrl: 'health-card.css',\n shadow: true,\n})\nexport class IndHealthCard {\n /** Subsystem name (e.g. \"PLC\", \"Dispense robot\", \"Washer\"). */\n @Prop() heading!: string;\n /** Process state — drives the dot color and the prominent text color. */\n @Prop({ reflect: true }) state: HealthState = 'unknown';\n /** Override the default label (e.g. show \"RUN 24 h\" instead of \"OK\"). */\n @Prop() stateLabel?: string;\n /** Optional sub-line for context (timestamp, last error, etc.). */\n @Prop() detail?: string;\n\n render() {\n const label = this.stateLabel ?? DEFAULT_LABEL[this.state];\n const dotState = this.state === 'unknown' ? 'neutral' : this.state;\n return (\n <Host\n role=\"group\"\n aria-label={`${this.heading}: ${label}`}\n aria-live={this.state === 'fault' ? 'assertive' : 'polite'}\n >\n <div class=\"title\" part=\"title\">{this.heading}</div>\n <div class=\"status\" part=\"status\">\n <ind-status-dot state={dotState as 'running' | 'stopped' | 'fault' | 'warning' | 'maintenance' | 'neutral'} size=\"md\" />\n <span class=\"state-label\" part=\"state-label\">{label}</span>\n </div>\n {this.detail && <div class=\"detail\" part=\"detail\">{this.detail}</div>}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
font-family: var(--ind-font-family-sans);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.item {
|
|
7
|
+
position: relative;
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
gap: var(--ind-spacing-3, 6px);
|
|
11
|
+
width: 100%;
|
|
12
|
+
height: var(--ind-nav-item-height, 38px);
|
|
13
|
+
padding: 0 var(--ind-spacing-5, 12px);
|
|
14
|
+
background: transparent;
|
|
15
|
+
border: none;
|
|
16
|
+
color: var(--ind-surface-text-secondary, light-dark(#2a3340, #aab5c2));
|
|
17
|
+
font: inherit;
|
|
18
|
+
font-size: var(--ind-font-size-base, 12px);
|
|
19
|
+
text-align: left;
|
|
20
|
+
text-decoration: none;
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
user-select: none;
|
|
23
|
+
box-sizing: border-box;
|
|
24
|
+
transition:
|
|
25
|
+
background-color var(--ind-motion-duration-fast, 120ms),
|
|
26
|
+
color var(--ind-motion-duration-fast, 120ms);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.indicator {
|
|
30
|
+
width: 10px;
|
|
31
|
+
font-size: 9px;
|
|
32
|
+
color: var(--ind-feedback-info-bg, #0891b2);
|
|
33
|
+
opacity: 0;
|
|
34
|
+
transition: opacity var(--ind-motion-duration-fast, 120ms);
|
|
35
|
+
text-align: center;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.content {
|
|
39
|
+
flex: 1;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
text-overflow: ellipsis;
|
|
42
|
+
white-space: nowrap;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.badge {
|
|
46
|
+
font-size: var(--ind-font-size-xs, 10px);
|
|
47
|
+
font-family: var(--ind-font-family-mono);
|
|
48
|
+
font-weight: var(--ind-font-weight-bold, 700);
|
|
49
|
+
font-feature-settings: var(--ind-font-feature-tabular, "tnum" 1);
|
|
50
|
+
padding: 1px var(--ind-spacing-2, 4px);
|
|
51
|
+
min-width: 16px;
|
|
52
|
+
text-align: center;
|
|
53
|
+
border-radius: var(--ind-radius-sm, 2px);
|
|
54
|
+
background: var(--ind-feedback-error-bg, #dc2626);
|
|
55
|
+
color: var(--ind-feedback-error-fg, #ffffff);
|
|
56
|
+
line-height: 1.2;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.item:hover:not(:disabled):not([aria-disabled="true"]) {
|
|
60
|
+
background: var(--ind-surface-raised);
|
|
61
|
+
color: var(--ind-surface-text-primary);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.item:focus-visible {
|
|
65
|
+
outline: 2px solid var(--ind-surface-focus-ring, #22d3ee);
|
|
66
|
+
outline-offset: -2px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:host([active]) .item {
|
|
70
|
+
background: var(--ind-surface-raised);
|
|
71
|
+
color: var(--ind-surface-text-primary);
|
|
72
|
+
font-weight: var(--ind-font-weight-semibold, 600);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
:host([active]) .indicator {
|
|
76
|
+
opacity: 1;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:host([disabled]) {
|
|
80
|
+
opacity: 0.4;
|
|
81
|
+
pointer-events: none;
|
|
82
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
|
+
export class IndNavItem {
|
|
3
|
+
/** Current page indicator — gets the ▶ prefix and active styling. */
|
|
4
|
+
active = false;
|
|
5
|
+
disabled = false;
|
|
6
|
+
/** Label text. Falls back to slotted content. */
|
|
7
|
+
label;
|
|
8
|
+
/** Optional href. When set, renders as `<a>` so middle-click / right-click open in new tab. */
|
|
9
|
+
href;
|
|
10
|
+
/** Optional badge — alarm count, unread messages, etc. */
|
|
11
|
+
badge;
|
|
12
|
+
/** Fires on click (or Enter / Space). Use this to drive client-side routers. */
|
|
13
|
+
indSelect;
|
|
14
|
+
onClick = (e) => {
|
|
15
|
+
if (this.disabled) {
|
|
16
|
+
e.preventDefault();
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (!this.href)
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
this.indSelect.emit();
|
|
22
|
+
};
|
|
23
|
+
render() {
|
|
24
|
+
const ariaCurrent = this.active ? 'page' : undefined;
|
|
25
|
+
const showBadge = this.badge !== undefined && this.badge !== '' && this.badge !== null;
|
|
26
|
+
const inner = [
|
|
27
|
+
h("span", { key: 'ad9e90d0aab88711ff9e5f5db2cd988a76520c3c', class: "indicator", part: "indicator", "aria-hidden": "true" }, "\u25B6"),
|
|
28
|
+
h("span", { key: '33fa94a1e111cfc992dbd20ec1c8cfc9a30b18c5', class: "content", part: "content" }, h("slot", { key: 'bfc5072816f07d0fc276d67621efa09d4ce421f4' }, this.label)),
|
|
29
|
+
showBadge ? h("span", { class: "badge", part: "badge" }, this.badge) : null,
|
|
30
|
+
];
|
|
31
|
+
return (h(Host, { key: '895afdd6a1a347adadb7213e4b42ece2d3e32c65' }, this.href ? (h("a", { class: "item", part: "item", href: this.href, "aria-current": ariaCurrent, "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.onClick }, inner)) : (h("button", { type: "button", class: "item", part: "item", disabled: this.disabled, "aria-current": ariaCurrent, onClick: this.onClick }, inner))));
|
|
32
|
+
}
|
|
33
|
+
static get is() { return "ind-nav-item"; }
|
|
34
|
+
static get encapsulation() { return "shadow"; }
|
|
35
|
+
static get originalStyleUrls() {
|
|
36
|
+
return {
|
|
37
|
+
"$": ["nav-item.css"]
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
static get styleUrls() {
|
|
41
|
+
return {
|
|
42
|
+
"$": ["nav-item.css"]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
static get properties() {
|
|
46
|
+
return {
|
|
47
|
+
"active": {
|
|
48
|
+
"type": "boolean",
|
|
49
|
+
"mutable": false,
|
|
50
|
+
"complexType": {
|
|
51
|
+
"original": "boolean",
|
|
52
|
+
"resolved": "boolean",
|
|
53
|
+
"references": {}
|
|
54
|
+
},
|
|
55
|
+
"required": false,
|
|
56
|
+
"optional": false,
|
|
57
|
+
"docs": {
|
|
58
|
+
"tags": [],
|
|
59
|
+
"text": "Current page indicator \u2014 gets the \u25B6 prefix and active styling."
|
|
60
|
+
},
|
|
61
|
+
"getter": false,
|
|
62
|
+
"setter": false,
|
|
63
|
+
"reflect": true,
|
|
64
|
+
"attribute": "active",
|
|
65
|
+
"defaultValue": "false"
|
|
66
|
+
},
|
|
67
|
+
"disabled": {
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"mutable": false,
|
|
70
|
+
"complexType": {
|
|
71
|
+
"original": "boolean",
|
|
72
|
+
"resolved": "boolean",
|
|
73
|
+
"references": {}
|
|
74
|
+
},
|
|
75
|
+
"required": false,
|
|
76
|
+
"optional": false,
|
|
77
|
+
"docs": {
|
|
78
|
+
"tags": [],
|
|
79
|
+
"text": ""
|
|
80
|
+
},
|
|
81
|
+
"getter": false,
|
|
82
|
+
"setter": false,
|
|
83
|
+
"reflect": true,
|
|
84
|
+
"attribute": "disabled",
|
|
85
|
+
"defaultValue": "false"
|
|
86
|
+
},
|
|
87
|
+
"label": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"mutable": false,
|
|
90
|
+
"complexType": {
|
|
91
|
+
"original": "string",
|
|
92
|
+
"resolved": "string | undefined",
|
|
93
|
+
"references": {}
|
|
94
|
+
},
|
|
95
|
+
"required": false,
|
|
96
|
+
"optional": true,
|
|
97
|
+
"docs": {
|
|
98
|
+
"tags": [],
|
|
99
|
+
"text": "Label text. Falls back to slotted content."
|
|
100
|
+
},
|
|
101
|
+
"getter": false,
|
|
102
|
+
"setter": false,
|
|
103
|
+
"reflect": false,
|
|
104
|
+
"attribute": "label"
|
|
105
|
+
},
|
|
106
|
+
"href": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"mutable": false,
|
|
109
|
+
"complexType": {
|
|
110
|
+
"original": "string",
|
|
111
|
+
"resolved": "string | undefined",
|
|
112
|
+
"references": {}
|
|
113
|
+
},
|
|
114
|
+
"required": false,
|
|
115
|
+
"optional": true,
|
|
116
|
+
"docs": {
|
|
117
|
+
"tags": [],
|
|
118
|
+
"text": "Optional href. When set, renders as `<a>` so middle-click / right-click open in new tab."
|
|
119
|
+
},
|
|
120
|
+
"getter": false,
|
|
121
|
+
"setter": false,
|
|
122
|
+
"reflect": false,
|
|
123
|
+
"attribute": "href"
|
|
124
|
+
},
|
|
125
|
+
"badge": {
|
|
126
|
+
"type": "any",
|
|
127
|
+
"mutable": false,
|
|
128
|
+
"complexType": {
|
|
129
|
+
"original": "string | number",
|
|
130
|
+
"resolved": "number | string | undefined",
|
|
131
|
+
"references": {}
|
|
132
|
+
},
|
|
133
|
+
"required": false,
|
|
134
|
+
"optional": true,
|
|
135
|
+
"docs": {
|
|
136
|
+
"tags": [],
|
|
137
|
+
"text": "Optional badge \u2014 alarm count, unread messages, etc."
|
|
138
|
+
},
|
|
139
|
+
"getter": false,
|
|
140
|
+
"setter": false,
|
|
141
|
+
"reflect": false,
|
|
142
|
+
"attribute": "badge"
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
static get events() {
|
|
147
|
+
return [{
|
|
148
|
+
"method": "indSelect",
|
|
149
|
+
"name": "indSelect",
|
|
150
|
+
"bubbles": true,
|
|
151
|
+
"cancelable": true,
|
|
152
|
+
"composed": true,
|
|
153
|
+
"docs": {
|
|
154
|
+
"tags": [],
|
|
155
|
+
"text": "Fires on click (or Enter / Space). Use this to drive client-side routers."
|
|
156
|
+
},
|
|
157
|
+
"complexType": {
|
|
158
|
+
"original": "void",
|
|
159
|
+
"resolved": "void",
|
|
160
|
+
"references": {}
|
|
161
|
+
}
|
|
162
|
+
}];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=nav-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-item.js","sourceRoot":"","sources":["../../../../src/components/molecules/nav-item/nav-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAO9E,MAAM,OAAO,UAAU;IACrB,qEAAqE;IAC5C,MAAM,GAAY,KAAK,CAAC;IACxB,QAAQ,GAAY,KAAK,CAAC;IACnD,iDAAiD;IACzC,KAAK,CAAU;IACvB,+FAA+F;IACvF,IAAI,CAAU;IACtB,0DAA0D;IAClD,KAAK,CAAmB;IAEhC,gFAAgF;IACvE,SAAS,CAAsB;IAEhC,OAAO,GAAG,CAAC,CAAa,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,CAAC,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;QAEvF,MAAM,KAAK,GAAG;YACZ,6DAAM,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,WAAW,iBAAa,MAAM,aAAS;YACpE,6DAAM,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS;gBAAC,+DAAO,IAAI,CAAC,KAAK,CAAQ,CAAO;YACrE,SAAS,CAAC,CAAC,CAAC,YAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAQ,CAAC,CAAC,CAAC,IAAI;SACxE,CAAC;QAEF,OAAO,CACL,EAAC,IAAI,uDACF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,SACE,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,kBACD,WAAW,mBACV,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACjD,OAAO,EAAE,IAAI,CAAC,OAAO,IAEpB,KAAK,CACJ,CACL,CAAC,CAAC,CAAC,CACF,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,kBACT,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAEpB,KAAK,CACC,CACV,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'ind-nav-item',\n styleUrl: 'nav-item.css',\n shadow: true,\n})\nexport class IndNavItem {\n /** Current page indicator — gets the ▶ prefix and active styling. */\n @Prop({ reflect: true }) active: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n /** Label text. Falls back to slotted content. */\n @Prop() label?: string;\n /** Optional href. When set, renders as `<a>` so middle-click / right-click open in new tab. */\n @Prop() href?: string;\n /** Optional badge — alarm count, unread messages, etc. */\n @Prop() badge?: string | number;\n\n /** Fires on click (or Enter / Space). Use this to drive client-side routers. */\n @Event() indSelect!: EventEmitter<void>;\n\n private onClick = (e: MouseEvent) => {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n if (!this.href) e.preventDefault();\n this.indSelect.emit();\n };\n\n render() {\n const ariaCurrent = this.active ? 'page' : undefined;\n const showBadge = this.badge !== undefined && this.badge !== '' && this.badge !== null;\n\n const inner = [\n <span class=\"indicator\" part=\"indicator\" aria-hidden=\"true\">▶</span>,\n <span class=\"content\" part=\"content\"><slot>{this.label}</slot></span>,\n showBadge ? <span class=\"badge\" part=\"badge\">{this.badge}</span> : null,\n ];\n\n return (\n <Host>\n {this.href ? (\n <a\n class=\"item\"\n part=\"item\"\n href={this.href}\n aria-current={ariaCurrent}\n aria-disabled={this.disabled ? 'true' : undefined}\n onClick={this.onClick}\n >\n {inner}\n </a>\n ) : (\n <button\n type=\"button\"\n class=\"item\"\n part=\"item\"\n disabled={this.disabled}\n aria-current={ariaCurrent}\n onClick={this.onClick}\n >\n {inner}\n </button>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: var(--ind-spacing-4, 8px);
|
|
5
|
+
padding: var(--ind-spacing-3, 6px) var(--ind-spacing-5, 12px);
|
|
6
|
+
background: var(--ind-surface-panel);
|
|
7
|
+
border-bottom: 1px solid var(--ind-surface-border-default);
|
|
8
|
+
font-family: var(--ind-font-family-sans);
|
|
9
|
+
color: var(--ind-surface-text-primary, light-dark(#11161c, #eef1f5));
|
|
10
|
+
flex-wrap: wrap;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.filter ::slotted(*) {
|
|
14
|
+
min-width: 200px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.flags {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: var(--ind-spacing-4, 8px);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.spacer { flex: 1; }
|
|
24
|
+
|
|
25
|
+
.counter {
|
|
26
|
+
font-family: var(--ind-font-family-mono);
|
|
27
|
+
font-feature-settings: var(--ind-font-feature-tabular, "tnum" 1);
|
|
28
|
+
color: var(--ind-surface-text-secondary, light-dark(#2a3340, #aab5c2));
|
|
29
|
+
font-size: var(--ind-font-size-sm, 11px);
|
|
30
|
+
white-space: nowrap;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.actions {
|
|
34
|
+
display: flex;
|
|
35
|
+
gap: var(--ind-spacing-3, 6px);
|
|
36
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
|
+
export class IndToolbarAction {
|
|
3
|
+
/** Counter rendered before the actions (e.g. "1 248 messages"). */
|
|
4
|
+
counter;
|
|
5
|
+
render() {
|
|
6
|
+
const hasCounter = this.counter !== undefined && this.counter !== '' && this.counter !== null;
|
|
7
|
+
return (h(Host, { key: '335b711876377ee50cfeaac4635c2794d5c038eb' }, h("span", { key: '69cf5e6ca388c2bef9004cddd515db9c1d34f2f9', class: "filter", part: "filter" }, h("slot", { key: '6a5d72136095b2531214ea2e28a39a795e8b7e2d', name: "filter" })), h("span", { key: '614f12f7432752c3deef9cca8174a503d7048878', class: "flags", part: "flags" }, h("slot", { key: 'db14ea5398c70574cb0b690db2e0578aafa6a545', name: "flags" })), h("span", { key: '07ff837c88d3228666b7bcd36ae52f9efa5b081d', class: "spacer" }), hasCounter && h("span", { key: 'ee9220383a9a4c9c471f4945da3c28f67dada3ee', class: "counter", part: "counter" }, this.counter), h("span", { key: '53bc247add97382c56d4447b30c9b73e663fbe96', class: "actions", part: "actions" }, h("slot", { key: 'da6c78e96a87a412f44d620356268ef1a746fc99', name: "actions" }))));
|
|
8
|
+
}
|
|
9
|
+
static get is() { return "ind-toolbar-action"; }
|
|
10
|
+
static get encapsulation() { return "shadow"; }
|
|
11
|
+
static get originalStyleUrls() {
|
|
12
|
+
return {
|
|
13
|
+
"$": ["toolbar-action.css"]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
static get styleUrls() {
|
|
17
|
+
return {
|
|
18
|
+
"$": ["toolbar-action.css"]
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
static get properties() {
|
|
22
|
+
return {
|
|
23
|
+
"counter": {
|
|
24
|
+
"type": "any",
|
|
25
|
+
"mutable": false,
|
|
26
|
+
"complexType": {
|
|
27
|
+
"original": "string | number",
|
|
28
|
+
"resolved": "number | string | undefined",
|
|
29
|
+
"references": {}
|
|
30
|
+
},
|
|
31
|
+
"required": false,
|
|
32
|
+
"optional": true,
|
|
33
|
+
"docs": {
|
|
34
|
+
"tags": [],
|
|
35
|
+
"text": "Counter rendered before the actions (e.g. \"1 248 messages\")."
|
|
36
|
+
},
|
|
37
|
+
"getter": false,
|
|
38
|
+
"setter": false,
|
|
39
|
+
"reflect": false,
|
|
40
|
+
"attribute": "counter"
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=toolbar-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar-action.js","sourceRoot":"","sources":["../../../../src/components/molecules/toolbar-action/toolbar-action.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,OAAO,gBAAgB;IAC3B,mEAAmE;IAC3D,OAAO,CAAmB;IAElC,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;QAC9F,OAAO,CACL,EAAC,IAAI;YACH,6DAAM,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ;gBAAC,6DAAM,IAAI,EAAC,QAAQ,GAAG,CAAO;YAChE,6DAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO;gBAAC,6DAAM,IAAI,EAAC,OAAO,GAAG,CAAO;YAC7D,6DAAM,KAAK,EAAC,QAAQ,GAAG;YACtB,UAAU,IAAI,6DAAM,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,IAAE,IAAI,CAAC,OAAO,CAAQ;YACzE,6DAAM,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS;gBAAC,6DAAM,IAAI,EAAC,SAAS,GAAG,CAAO,CAC9D,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'ind-toolbar-action',\n styleUrl: 'toolbar-action.css',\n shadow: true,\n})\nexport class IndToolbarAction {\n /** Counter rendered before the actions (e.g. \"1 248 messages\"). */\n @Prop() counter?: string | number;\n\n render() {\n const hasCounter = this.counter !== undefined && this.counter !== '' && this.counter !== null;\n return (\n <Host>\n <span class=\"filter\" part=\"filter\"><slot name=\"filter\" /></span>\n <span class=\"flags\" part=\"flags\"><slot name=\"flags\" /></span>\n <span class=\"spacer\" />\n {hasCounter && <span class=\"counter\" part=\"counter\">{this.counter}</span>}\n <span class=\"actions\" part=\"actions\"><slot name=\"actions\" /></span>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: var(--ind-spacing-6, 16px);
|
|
5
|
+
padding: var(--ind-spacing-3, 6px) var(--ind-spacing-6, 16px);
|
|
6
|
+
background: var(--ind-surface-panel);
|
|
7
|
+
border-bottom: 1px solid var(--ind-surface-border-default);
|
|
8
|
+
color: var(--ind-surface-text-primary, light-dark(#11161c, #eef1f5));
|
|
9
|
+
font-family: var(--ind-font-family-sans);
|
|
10
|
+
min-height: 56px;
|
|
11
|
+
font-feature-settings: var(--ind-font-feature-tabular, "tnum" 1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.brand {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
gap: var(--ind-spacing-3, 6px);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.brand-logo {
|
|
21
|
+
font-size: 26px;
|
|
22
|
+
line-height: 1;
|
|
23
|
+
color: var(--ind-button-primary-bg);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.brand-text {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
line-height: 1.1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.brand-name {
|
|
33
|
+
font-size: var(--ind-font-size-lg, 14px);
|
|
34
|
+
font-weight: var(--ind-font-weight-bold, 700);
|
|
35
|
+
letter-spacing: 0.05em;
|
|
36
|
+
text-transform: uppercase;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.brand-sub {
|
|
40
|
+
font-size: var(--ind-font-size-xs, 10px);
|
|
41
|
+
color: var(--ind-surface-text-muted, light-dark(#5a6776, #8390a0));
|
|
42
|
+
text-transform: uppercase;
|
|
43
|
+
letter-spacing: 0.08em;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.machine {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
line-height: 1.1;
|
|
50
|
+
padding-left: var(--ind-spacing-5, 12px);
|
|
51
|
+
border-left: 1px solid var(--ind-surface-border-subtle);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.machine-label {
|
|
55
|
+
font-size: var(--ind-font-size-xs, 10px);
|
|
56
|
+
color: var(--ind-surface-text-muted, light-dark(#5a6776, #8390a0));
|
|
57
|
+
text-transform: uppercase;
|
|
58
|
+
letter-spacing: 0.08em;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.machine-id {
|
|
62
|
+
font-family: var(--ind-font-family-mono);
|
|
63
|
+
font-size: var(--ind-font-size-md, 13px);
|
|
64
|
+
font-weight: var(--ind-font-weight-semibold, 600);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.mqtt {
|
|
68
|
+
display: flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
gap: var(--ind-spacing-3, 6px);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.mqtt-label {
|
|
74
|
+
font-size: var(--ind-font-size-sm, 11px);
|
|
75
|
+
color: var(--ind-surface-text-secondary, light-dark(#2a3340, #aab5c2));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.spacer { flex: 1; }
|
|
79
|
+
|
|
80
|
+
.meta {
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
gap: var(--ind-spacing-4, 8px);
|
|
84
|
+
font-size: var(--ind-font-size-sm, 11px);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.version {
|
|
88
|
+
font-family: var(--ind-font-family-mono);
|
|
89
|
+
color: var(--ind-surface-text-muted, light-dark(#5a6776, #8390a0));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.docs {
|
|
93
|
+
color: var(--ind-feedback-info-bg);
|
|
94
|
+
text-decoration: underline;
|
|
95
|
+
text-underline-offset: 2px;
|
|
96
|
+
}
|
|
97
|
+
.docs:hover { text-decoration-thickness: 2px; }
|
|
98
|
+
|
|
99
|
+
.actions {
|
|
100
|
+
display: flex;
|
|
101
|
+
gap: var(--ind-spacing-3, 6px);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.action {
|
|
105
|
+
height: var(--ind-size-button-sm, 26px);
|
|
106
|
+
padding: 0 var(--ind-spacing-4, 8px);
|
|
107
|
+
background: var(--ind-button-default-bg);
|
|
108
|
+
color: var(--ind-button-default-fg);
|
|
109
|
+
border: 1px solid var(--ind-button-default-border);
|
|
110
|
+
border-radius: var(--ind-radius-md, 3px);
|
|
111
|
+
font-family: inherit;
|
|
112
|
+
font-size: var(--ind-font-size-sm, 11px);
|
|
113
|
+
font-weight: var(--ind-font-weight-semibold, 600);
|
|
114
|
+
cursor: pointer;
|
|
115
|
+
transition: background var(--ind-motion-duration-fast, 120ms);
|
|
116
|
+
}
|
|
117
|
+
.action:hover { background: var(--ind-button-default-bg-hover); }
|
|
118
|
+
|
|
119
|
+
.action--danger {
|
|
120
|
+
background: transparent;
|
|
121
|
+
color: var(--ind-feedback-error-bg);
|
|
122
|
+
border-color: var(--ind-feedback-error-border);
|
|
123
|
+
}
|
|
124
|
+
.action--danger:hover {
|
|
125
|
+
background: var(--ind-feedback-error-bg);
|
|
126
|
+
color: var(--ind-feedback-error-fg);
|
|
127
|
+
}
|