@nice2dev/ui-iot 1.0.10 → 1.0.12

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/dist/style.css CHANGED
@@ -1 +1 @@
1
- .nice-iot-dashboard{display:flex;flex-direction:column;height:100%;font-family:system-ui,-apple-system,sans-serif;background:var(--nice-bg, #f4f5f7);color:var(--nice-text, #1a1a1a)}.nice-iot-dashboard__header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__header h1{margin:0;font-size:1.25rem;font-weight:600}.nice-iot-dashboard__stats{display:flex;gap:1rem;margin-left:1rem}.nice-iot-dashboard__stat{display:flex;align-items:center;gap:.25rem;font-size:.875rem}.nice-iot-dashboard__stat--alarms{color:#dc3545;font-weight:500}.nice-iot-dashboard__nav{display:flex;gap:.25rem;margin-left:auto}.nice-iot-dashboard__nav button{padding:.5rem 1rem;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:.875rem}.nice-iot-dashboard__nav button:hover{background:var(--nice-hover, #e9ecef)}.nice-iot-dashboard__nav button.active{background:var(--nice-primary, #0066cc);color:#fff}.nice-iot-dashboard__actions button{padding:.5rem 1rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:4px;cursor:pointer}.nice-iot-dashboard__main{display:flex;flex:1;overflow:hidden}.nice-iot-dashboard__palette{width:200px;padding:.5rem;background:#fff;border-right:1px solid var(--nice-border, #ddd);overflow-y:auto}.nice-iot-dashboard__palette h4{margin:.5rem 0;font-size:.75rem;color:var(--nice-text-muted, #6c757d);text-transform:uppercase}.nice-iot-dashboard__palette-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:4px;cursor:pointer;font-size:.875rem;margin-bottom:.25rem}.nice-iot-dashboard__palette-item:hover{background:var(--nice-hover, #e9ecef)}.nice-iot-dashboard__grid{flex:1;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:60px;gap:.5rem;padding:1rem;overflow:auto}.nice-iot-dashboard__empty{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;color:var(--nice-text-muted, #6c757d);min-height:200px}.nice-iot-dashboard__widget{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;overflow:hidden}.nice-iot-dashboard__widget-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--nice-border, #eee);background:var(--nice-bg-secondary, #f8f9fa)}.nice-iot-dashboard__widget-icon{font-size:.875rem}.nice-iot-dashboard__widget-title{flex:1;font-size:.8125rem;font-weight:500}.nice-iot-dashboard__widget-delete{padding:0;width:20px;height:20px;border:none;background:transparent;cursor:pointer;color:#dc3545}.nice-iot-dashboard__widget-content{flex:1;padding:.75rem;overflow:auto}.nice-iot-dashboard__device-list-item{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;border-bottom:1px solid #eee;font-size:.8125rem}.nice-iot-dashboard__device-status{width:8px;height:8px;border-radius:50%}.nice-iot-dashboard__device-type{margin-left:auto;font-size:.75rem;color:var(--nice-text-muted, #6c757d)}.nice-iot-dashboard__status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.nice-iot-dashboard__status-card{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--nice-bg-secondary, #f8f9fa);border-radius:4px}.nice-iot-dashboard__status-indicator{width:12px;height:12px;border-radius:50%}.nice-iot-dashboard__status-count{font-size:1.5rem;font-weight:700}.nice-iot-dashboard__status-label{font-size:.75rem;color:var(--nice-text-muted, #6c757d);text-transform:capitalize}.nice-iot-dashboard__gauge svg{width:100%;height:100%}.nice-iot-dashboard__chart-placeholder,.nice-iot-dashboard__map-placeholder,.nice-iot-dashboard__control-placeholder,.nice-iot-dashboard__widget-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:var(--nice-text-muted, #6c757d);height:100%}.nice-iot-dashboard__kpi{text-align:center}.nice-iot-dashboard__kpi-value{font-size:2.5rem;font-weight:700;color:var(--nice-primary, #0066cc)}.nice-iot-dashboard__kpi-label{font-size:.875rem;color:var(--nice-text-muted, #6c757d)}.nice-iot-dashboard__alarm-list{display:flex;flex-direction:column;gap:.5rem}.nice-iot-dashboard__alarm-empty{text-align:center;color:var(--nice-text-muted, #6c757d);padding:1rem}.nice-iot-dashboard__alarm-item{display:flex;gap:.5rem;padding:.5rem;border-radius:4px;font-size:.8125rem}.nice-iot-dashboard__alarm-item--critical,.nice-iot-dashboard__alarm-item--high{background:#f8d7da}.nice-iot-dashboard__alarm-item--medium{background:#fff3cd}.nice-iot-dashboard__alarm-severity{text-transform:uppercase;font-size:.625rem;font-weight:600}.nice-iot-dashboard__devices{display:flex;flex:1;overflow:hidden}.nice-iot-dashboard__devices-toolbar{padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__devices-toolbar input{padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:4px;width:300px}.nice-iot-dashboard__device-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:1rem;overflow:auto}.nice-iot-dashboard__device-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:box-shadow .2s}.nice-iot-dashboard__device-card:hover{box-shadow:0 2px 8px #00000026}.nice-iot-dashboard__device-card--selected{box-shadow:0 0 0 2px var(--nice-primary, #0066cc)}.nice-iot-dashboard__device-card-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid #eee}.nice-iot-dashboard__device-name{font-weight:500}.nice-iot-dashboard__device-card-body{padding:.75rem 1rem}.nice-iot-dashboard__device-info{display:flex;gap:1rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-iot-dashboard__device-lastseen{font-size:.75rem;color:var(--nice-text-muted, #6c757d);margin-top:.5rem}.nice-iot-dashboard__device-capabilities{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.nice-iot-dashboard__capability-badge{padding:.125rem .375rem;background:var(--nice-bg-secondary, #e9ecef);border-radius:4px;font-size:.75rem}.nice-iot-dashboard__device-detail{width:350px;background:#fff;border-left:1px solid var(--nice-border, #ddd);display:flex;flex-direction:column}.nice-iot-dashboard__device-detail-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__device-detail-header h3{margin:0;font-size:1rem}.nice-iot-dashboard__device-detail-content{flex:1;overflow-y:auto;padding:1rem}.nice-iot-dashboard__device-detail-content section{margin-bottom:1.5rem}.nice-iot-dashboard__device-detail-content h4{margin:0 0 .5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d);text-transform:uppercase}.nice-iot-dashboard__detail-row{display:flex;justify-content:space-between;padding:.375rem 0;font-size:.875rem;border-bottom:1px solid #eee}.nice-iot-dashboard__status-badge{padding:.125rem .5rem;border-radius:4px;color:#fff;font-size:.75rem}.nice-iot-dashboard__capabilities-list{display:flex;flex-direction:column;gap:.25rem}.nice-iot-dashboard__capability-item{display:flex;align-items:center;gap:.5rem;padding:.375rem;background:var(--nice-bg-secondary, #f8f9fa);border-radius:4px;font-size:.8125rem}.nice-iot-dashboard__capability-name{flex:1}.nice-iot-dashboard__capability-type{color:var(--nice-text-muted, #6c757d);font-size:.75rem}.nice-iot-dashboard__capability-control{padding:.25rem .5rem;border:1px solid var(--nice-primary, #0066cc);background:transparent;color:var(--nice-primary, #0066cc);border-radius:4px;cursor:pointer;font-size:.75rem}.nice-iot-dashboard__alarms{flex:1;padding:1rem;overflow:auto}.nice-iot-dashboard__alarm-table{width:100%;background:#fff;border-collapse:collapse;border-radius:8px;overflow:hidden}.nice-iot-dashboard__alarm-table th,.nice-iot-dashboard__alarm-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__alarm-table th{background:var(--nice-bg-secondary, #f8f9fa);font-weight:500;font-size:.875rem}.nice-iot-dashboard__alarm-row--critical,.nice-iot-dashboard__alarm-row--high{background:#fff5f5}.nice-iot-dashboard__severity{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;text-transform:uppercase}.nice-iot-dashboard__severity--critical{background:#dc3545;color:#fff}.nice-iot-dashboard__severity--high{background:#fd7e14;color:#fff}.nice-iot-dashboard__severity--medium{background:#ffc107;color:#212529}.nice-iot-dashboard__severity--low{background:#28a745;color:#fff}.nice-iot-dashboard__no-alarms{text-align:center;color:var(--nice-text-muted, #6c757d);padding:2rem}.nice-edge-manager{display:flex;flex-direction:column;height:100%;font-family:system-ui,-apple-system,sans-serif;background:var(--nice-bg, #f4f5f7)}.nice-edge-manager__header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--nice-border, #ddd)}.nice-edge-manager__header h1{margin:0;font-size:1.25rem}.nice-edge-manager__nav{display:flex;gap:.25rem;margin-left:auto}.nice-edge-manager__nav button{padding:.5rem 1rem;border:none;background:transparent;border-radius:4px;cursor:pointer}.nice-edge-manager__nav button.active{background:var(--nice-primary, #0066cc);color:#fff}.nice-edge-manager__main{display:flex;flex:1;overflow:hidden}.nice-edge-manager__nodes,.nice-edge-manager__modules{flex:1;padding:1rem;overflow:auto}.nice-edge-manager__modules-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.nice-edge-manager__modules-header h3{margin:0}.nice-edge-manager__deploy-btn{padding:.5rem 1rem;background:var(--nice-primary, #0066cc);color:#fff;border:none;border-radius:4px;cursor:pointer}.nice-edge-manager__node-grid,.nice-edge-manager__module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.nice-edge-manager__empty,.nice-edge-manager__no-selection{text-align:center;color:var(--nice-text-muted, #6c757d);padding:2rem}.nice-edge-manager__node-card,.nice-edge-manager__module-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;cursor:pointer}.nice-edge-manager__node-card--selected{box-shadow:0 0 0 2px var(--nice-primary, #0066cc)}.nice-edge-manager__node-header,.nice-edge-manager__module-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid #eee}.nice-edge-manager__node-status,.nice-edge-manager__module-status{width:10px;height:10px;border-radius:50%}.nice-edge-manager__node-name,.nice-edge-manager__module-name{flex:1;font-weight:500}.nice-edge-manager__node-type,.nice-edge-manager__module-version{font-size:.75rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__node-body,.nice-edge-manager__module-body{padding:.75rem 1rem}.nice-edge-manager__node-info{display:flex;gap:1rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__node-metrics{margin-top:.75rem}.nice-edge-manager__metric{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem;font-size:.8125rem}.nice-edge-manager__metric-label{width:40px;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__metric-bar,.nice-edge-manager__resource-bar{flex:1;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden}.nice-edge-manager__metric-fill,.nice-edge-manager__resource-fill{height:100%;background:var(--nice-primary, #0066cc)}.nice-edge-manager__metric-value{width:40px;text-align:right;font-size:.75rem}.nice-edge-manager__node-modules{margin-top:.5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__module-image{font-size:.8125rem;color:var(--nice-text-muted, #6c757d);font-family:monospace}.nice-edge-manager__module-resources,.nice-edge-manager__module-ports{font-size:.75rem;color:var(--nice-text-muted, #6c757d);margin-top:.25rem}.nice-edge-manager__module-actions{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid #eee}.nice-edge-manager__module-actions button{padding:.375rem .75rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:4px;cursor:pointer;font-size:.8125rem}.nice-edge-manager__module-remove{color:#dc3545}.nice-edge-manager__detail{width:350px;background:#fff;border-left:1px solid var(--nice-border, #ddd);display:flex;flex-direction:column}.nice-edge-manager__detail-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-edge-manager__detail-header h3{margin:0;font-size:1rem}.nice-edge-manager__detail-actions{display:flex;gap:.5rem}.nice-edge-manager__detail-actions button{padding:.25rem .5rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:4px;cursor:pointer}.nice-edge-manager__detail-content{flex:1;overflow-y:auto;padding:1rem}.nice-edge-manager__detail-content section{margin-bottom:1.5rem}.nice-edge-manager__detail-content h4{margin:0 0 .5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d);text-transform:uppercase}.nice-edge-manager__detail-row{display:flex;justify-content:space-between;padding:.375rem 0;font-size:.875rem;border-bottom:1px solid #eee}.nice-edge-manager__status-badge{padding:.125rem .5rem;border-radius:4px;color:#fff;font-size:.75rem}.nice-edge-manager__resource-chart{display:flex;flex-direction:column;gap:.5rem}.nice-edge-manager__resource-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.nice-edge-manager__resource-item span:first-child{width:50px}.nice-edge-manager__network-stats{display:flex;gap:1rem;margin-top:.5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.nice-edge-manager__dialog{background:#fff;border-radius:8px;width:400px;max-width:90vw;box-shadow:0 4px 20px #0003}.nice-edge-manager__dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-edge-manager__dialog-header h3{margin:0}.nice-edge-manager__dialog-content{padding:1rem}.nice-edge-manager__dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid var(--nice-border, #ddd)}.nice-edge-manager__dialog-footer button{padding:.5rem 1rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:4px;cursor:pointer}.nice-edge-manager__deploy-confirm{background:var(--nice-primary, #0066cc)!important;color:#fff;border-color:var(--nice-primary, #0066cc)!important}.nice-edge-manager__field{margin-bottom:1rem}.nice-edge-manager__field label{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500}.nice-edge-manager__field input,.nice-edge-manager__field select{width:100%;padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:4px;font-size:.875rem}.nice-protocol-config{display:flex;flex-direction:column;height:100%;font-family:system-ui,-apple-system,sans-serif;background:var(--nice-bg, #fff)}.nice-protocol-config__header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-protocol-config__header h2{margin:0;font-size:1.25rem}.nice-protocol-config__protocol-selector{display:flex;align-items:center;gap:.5rem}.nice-protocol-config__protocol-selector select{padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:4px}.nice-protocol-config__content{flex:1;overflow-y:auto;padding:1rem}.nice-protocol-config__section h3{margin:0 0 1rem;font-size:1rem}.nice-protocol-config__section h4{margin:1.5rem 0 .5rem;font-size:.9375rem}.nice-protocol-config__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.nice-protocol-config__field{display:flex;flex-direction:column}.nice-protocol-config__field--full{grid-column:1 / -1}.nice-protocol-config__field label{margin-bottom:.25rem;font-size:.875rem;font-weight:500}.nice-protocol-config__field input,.nice-protocol-config__field select{padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:4px;font-size:.875rem}.nice-protocol-config__field input[type=checkbox]{width:auto;margin-right:.5rem}.nice-protocol-config__topics,.nice-protocol-config__resources,.nice-protocol-config__nodes{display:flex;flex-direction:column;gap:.5rem}.nice-protocol-config__topic-row,.nice-protocol-config__resource-row,.nice-protocol-config__node-row{display:flex;gap:.5rem}.nice-protocol-config__topic-row input,.nice-protocol-config__resource-row input,.nice-protocol-config__node-row input{flex:1;padding:.375rem .5rem;border:1px solid var(--nice-border, #ddd);border-radius:4px}.nice-protocol-config__topic-row select{padding:.375rem .5rem;border:1px solid var(--nice-border, #ddd);border-radius:4px}.nice-protocol-config__topic-row button,.nice-protocol-config__resource-row button,.nice-protocol-config__node-row button{padding:.375rem .5rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:4px;cursor:pointer}.nice-protocol-config__topics>button,.nice-protocol-config__resources>button,.nice-protocol-config__nodes>button{align-self:flex-start;padding:.5rem 1rem;border:1px dashed var(--nice-border, #ddd);background:transparent;border-radius:4px;cursor:pointer}.nice-protocol-config__registers-table{width:100%;border-collapse:collapse;margin-bottom:.5rem}.nice-protocol-config__registers-table th,.nice-protocol-config__registers-table td{padding:.5rem;border:1px solid var(--nice-border, #ddd);text-align:left}.nice-protocol-config__registers-table th{background:var(--nice-bg-secondary, #f8f9fa);font-weight:500;font-size:.8125rem}.nice-protocol-config__registers-table input,.nice-protocol-config__registers-table select{width:100%;padding:.25rem;border:1px solid var(--nice-border, #ddd);border-radius:4px;font-size:.8125rem}.nice-protocol-config__registers-table input[type=checkbox]{width:auto}.nice-protocol-config__test-result{margin:0 1rem;padding:.75rem 1rem;border-radius:4px;font-size:.875rem}.nice-protocol-config__test-result--success{background:#d4edda;color:#155724}.nice-protocol-config__test-result--error{background:#f8d7da;color:#721c24}.nice-protocol-config__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid var(--nice-border, #ddd)}.nice-protocol-config__test-btn,.nice-protocol-config__save-btn{padding:.5rem 1rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:4px;cursor:pointer}.nice-protocol-config__save-btn{background:var(--nice-primary, #0066cc);color:#fff;border-color:var(--nice-primary, #0066cc)}
1
+ .nice-iot-dashboard{display:flex;flex-direction:column;height:100%;font-family:system-ui,-apple-system,sans-serif;background:var(--nice-bg, #f4f5f7);color:var(--nice-text, #1a1a1a)}.nice-iot-dashboard__header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__header h1{margin:0;font-size:1.25rem;font-weight:600}.nice-iot-dashboard__stats{display:flex;gap:1rem;margin-left:1rem}.nice-iot-dashboard__stat{display:flex;align-items:center;gap:.25rem;font-size:.875rem}.nice-iot-dashboard__stat--alarms{color:var(--nice-danger, #dc3545);font-weight:500}.nice-iot-dashboard__nav{display:flex;gap:.25rem;margin-left:auto}.nice-iot-dashboard__nav button{padding:.5rem 1rem;border:none;background:transparent;border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:.875rem}.nice-iot-dashboard__nav button:hover{background:var(--nice-hover, #e9ecef)}.nice-iot-dashboard__nav button.active{background:var(--nice-primary, #0066cc);color:#fff}.nice-iot-dashboard__actions button{padding:.5rem 1rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-iot-dashboard__main{display:flex;flex:1;overflow:hidden}.nice-iot-dashboard__palette{width:200px;padding:.5rem;background:#fff;border-right:1px solid var(--nice-border, #ddd);overflow-y:auto}.nice-iot-dashboard__palette h4{margin:.5rem 0;font-size:.75rem;color:var(--nice-text-muted, #6c757d);text-transform:uppercase}.nice-iot-dashboard__palette-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:.875rem;margin-bottom:.25rem}.nice-iot-dashboard__palette-item:hover{background:var(--nice-hover, #e9ecef)}.nice-iot-dashboard__grid{flex:1;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:60px;gap:.5rem;padding:1rem;overflow:auto}.nice-iot-dashboard__empty{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;color:var(--nice-text-muted, #6c757d);min-height:200px}.nice-iot-dashboard__widget{background:#fff;border-radius:var(--nice-radius-lg, 8px);box-shadow:0 1px 3px var(--nice-overlay-10, rgba(0, 0, 0, .1));display:flex;flex-direction:column;overflow:hidden}.nice-iot-dashboard__widget-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--nice-border, #eee);background:var(--nice-bg-secondary, #f8f9fa)}.nice-iot-dashboard__widget-icon{font-size:.875rem}.nice-iot-dashboard__widget-title{flex:1;font-size:.8125rem;font-weight:500}.nice-iot-dashboard__widget-delete{padding:0;width:20px;height:20px;border:none;background:transparent;cursor:pointer;color:var(--nice-danger, #dc3545)}.nice-iot-dashboard__widget-content{flex:1;padding:.75rem;overflow:auto}.nice-iot-dashboard__device-list-item{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;border-bottom:1px solid var(--nice-border, #eee);font-size:.8125rem}.nice-iot-dashboard__device-status{width:8px;height:8px;border-radius:var(--nice-radius-full, 50%)}.nice-iot-dashboard__device-type{margin-left:auto;font-size:.75rem;color:var(--nice-text-muted, #6c757d)}.nice-iot-dashboard__status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.nice-iot-dashboard__status-card{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--nice-bg-secondary, #f8f9fa);border-radius:var(--nice-radius-sm, 4px)}.nice-iot-dashboard__status-indicator{width:12px;height:12px;border-radius:var(--nice-radius-full, 50%)}.nice-iot-dashboard__status-count{font-size:1.5rem;font-weight:700}.nice-iot-dashboard__status-label{font-size:.75rem;color:var(--nice-text-muted, #6c757d);text-transform:capitalize}.nice-iot-dashboard__gauge svg{width:100%;height:100%}.nice-iot-dashboard__chart-placeholder,.nice-iot-dashboard__map-placeholder,.nice-iot-dashboard__control-placeholder,.nice-iot-dashboard__widget-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:var(--nice-text-muted, #6c757d);height:100%}.nice-iot-dashboard__kpi{text-align:center}.nice-iot-dashboard__kpi-value{font-size:2.5rem;font-weight:700;color:var(--nice-primary, #0066cc)}.nice-iot-dashboard__kpi-label{font-size:.875rem;color:var(--nice-text-muted, #6c757d)}.nice-iot-dashboard__alarm-list{display:flex;flex-direction:column;gap:.5rem}.nice-iot-dashboard__alarm-empty{text-align:center;color:var(--nice-text-muted, #6c757d);padding:1rem}.nice-iot-dashboard__alarm-item{display:flex;gap:.5rem;padding:.5rem;border-radius:var(--nice-radius-sm, 4px);font-size:.8125rem}.nice-iot-dashboard__alarm-item--critical,.nice-iot-dashboard__alarm-item--high{background:var(--nice-danger-bg, #f8d7da)}.nice-iot-dashboard__alarm-item--medium{background:var(--nice-warning-bg, #fff3cd)}.nice-iot-dashboard__alarm-severity{text-transform:uppercase;font-size:.625rem;font-weight:600}.nice-iot-dashboard__devices{display:flex;flex:1;overflow:hidden}.nice-iot-dashboard__devices-toolbar{padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__devices-toolbar input{padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-sm, 4px);width:300px}.nice-iot-dashboard__device-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:1rem;overflow:auto}.nice-iot-dashboard__device-card{background:#fff;border-radius:var(--nice-radius-lg, 8px);box-shadow:0 1px 3px var(--nice-overlay-10, rgba(0, 0, 0, .1));cursor:pointer;transition:box-shadow .2s}.nice-iot-dashboard__device-card:hover{box-shadow:0 2px 8px var(--nice-overlay-15, rgba(0, 0, 0, .15))}.nice-iot-dashboard__device-card--selected{box-shadow:0 0 0 2px var(--nice-primary, #0066cc)}.nice-iot-dashboard__device-card-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--nice-border, #eee)}.nice-iot-dashboard__device-name{font-weight:500}.nice-iot-dashboard__device-card-body{padding:.75rem 1rem}.nice-iot-dashboard__device-info{display:flex;gap:1rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-iot-dashboard__device-lastseen{font-size:.75rem;color:var(--nice-text-muted, #6c757d);margin-top:.5rem}.nice-iot-dashboard__device-capabilities{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.nice-iot-dashboard__capability-badge{padding:.125rem .375rem;background:var(--nice-bg-secondary, #e9ecef);border-radius:var(--nice-radius-sm, 4px);font-size:.75rem}.nice-iot-dashboard__device-detail{width:350px;background:#fff;border-left:1px solid var(--nice-border, #ddd);display:flex;flex-direction:column}.nice-iot-dashboard__device-detail-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__device-detail-header h3{margin:0;font-size:1rem}.nice-iot-dashboard__device-detail-content{flex:1;overflow-y:auto;padding:1rem}.nice-iot-dashboard__device-detail-content section{margin-bottom:1.5rem}.nice-iot-dashboard__device-detail-content h4{margin:0 0 .5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d);text-transform:uppercase}.nice-iot-dashboard__detail-row{display:flex;justify-content:space-between;padding:.375rem 0;font-size:.875rem;border-bottom:1px solid var(--nice-border, #eee)}.nice-iot-dashboard__status-badge{padding:.125rem .5rem;border-radius:var(--nice-radius-sm, 4px);color:#fff;font-size:.75rem}.nice-iot-dashboard__capabilities-list{display:flex;flex-direction:column;gap:.25rem}.nice-iot-dashboard__capability-item{display:flex;align-items:center;gap:.5rem;padding:.375rem;background:var(--nice-bg-secondary, #f8f9fa);border-radius:var(--nice-radius-sm, 4px);font-size:.8125rem}.nice-iot-dashboard__capability-name{flex:1}.nice-iot-dashboard__capability-type{color:var(--nice-text-muted, #6c757d);font-size:.75rem}.nice-iot-dashboard__capability-control{padding:.25rem .5rem;border:1px solid var(--nice-primary, #0066cc);background:transparent;color:var(--nice-primary, #0066cc);border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:.75rem}.nice-iot-dashboard__alarms{flex:1;padding:1rem;overflow:auto}.nice-iot-dashboard__alarm-table{width:100%;background:#fff;border-collapse:collapse;border-radius:var(--nice-radius-lg, 8px);overflow:hidden}.nice-iot-dashboard__alarm-table th,.nice-iot-dashboard__alarm-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--nice-border, #ddd)}.nice-iot-dashboard__alarm-table th{background:var(--nice-bg-secondary, #f8f9fa);font-weight:500;font-size:.875rem}.nice-iot-dashboard__alarm-row--critical,.nice-iot-dashboard__alarm-row--high{background:var(--nice-danger-bg, #fff5f5)}.nice-iot-dashboard__severity{display:inline-block;padding:.25rem .5rem;border-radius:var(--nice-radius-sm, 4px);font-size:.75rem;font-weight:500;text-transform:uppercase}.nice-iot-dashboard__severity--critical{background:var(--nice-danger, #dc3545);color:#fff}.nice-iot-dashboard__severity--high{background:#fd7e14;color:#fff}.nice-iot-dashboard__severity--medium{background:var(--nice-warning, #ffc107);color:var(--nice-text, #212529)}.nice-iot-dashboard__severity--low{background:var(--nice-success, #28a745);color:#fff}.nice-iot-dashboard__no-alarms{text-align:center;color:var(--nice-text-muted, #6c757d);padding:2rem}.nice-edge-manager{display:flex;flex-direction:column;height:100%;font-family:system-ui,-apple-system,sans-serif;background:var(--nice-bg, #f4f5f7)}.nice-edge-manager__header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--nice-border, #ddd)}.nice-edge-manager__header h1{margin:0;font-size:1.25rem}.nice-edge-manager__nav{display:flex;gap:.25rem;margin-left:auto}.nice-edge-manager__nav button{padding:.5rem 1rem;border:none;background:transparent;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-edge-manager__nav button.active{background:var(--nice-primary, #0066cc);color:#fff}.nice-edge-manager__main{display:flex;flex:1;overflow:hidden}.nice-edge-manager__nodes,.nice-edge-manager__modules{flex:1;padding:1rem;overflow:auto}.nice-edge-manager__modules-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.nice-edge-manager__modules-header h3{margin:0}.nice-edge-manager__deploy-btn{padding:.5rem 1rem;background:var(--nice-primary, #0066cc);color:#fff;border:none;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-edge-manager__node-grid,.nice-edge-manager__module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.nice-edge-manager__empty,.nice-edge-manager__no-selection{text-align:center;color:var(--nice-text-muted, #6c757d);padding:2rem}.nice-edge-manager__node-card,.nice-edge-manager__module-card{background:#fff;border-radius:var(--nice-radius-lg, 8px);box-shadow:0 1px 3px var(--nice-overlay-10, rgba(0, 0, 0, .1));cursor:pointer}.nice-edge-manager__node-card--selected{box-shadow:0 0 0 2px var(--nice-primary, #0066cc)}.nice-edge-manager__node-header,.nice-edge-manager__module-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--nice-border, #eee)}.nice-edge-manager__node-status,.nice-edge-manager__module-status{width:10px;height:10px;border-radius:var(--nice-radius-full, 50%)}.nice-edge-manager__node-name,.nice-edge-manager__module-name{flex:1;font-weight:500}.nice-edge-manager__node-type,.nice-edge-manager__module-version{font-size:.75rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__node-body,.nice-edge-manager__module-body{padding:.75rem 1rem}.nice-edge-manager__node-info{display:flex;gap:1rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__node-metrics{margin-top:.75rem}.nice-edge-manager__metric{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem;font-size:.8125rem}.nice-edge-manager__metric-label{width:40px;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__metric-bar,.nice-edge-manager__resource-bar{flex:1;height:6px;background:var(--nice-border, #e9ecef);border-radius:var(--nice-radius-sm, 3px);overflow:hidden}.nice-edge-manager__metric-fill,.nice-edge-manager__resource-fill{height:100%;background:var(--nice-primary, #0066cc)}.nice-edge-manager__metric-value{width:40px;text-align:right;font-size:.75rem}.nice-edge-manager__node-modules{margin-top:.5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__module-image{font-size:.8125rem;color:var(--nice-text-muted, #6c757d);font-family:monospace}.nice-edge-manager__module-resources,.nice-edge-manager__module-ports{font-size:.75rem;color:var(--nice-text-muted, #6c757d);margin-top:.25rem}.nice-edge-manager__module-actions{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--nice-border, #eee)}.nice-edge-manager__module-actions button{padding:.375rem .75rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:.8125rem}.nice-edge-manager__module-remove{color:var(--nice-danger, #dc3545)}.nice-edge-manager__detail{width:350px;background:#fff;border-left:1px solid var(--nice-border, #ddd);display:flex;flex-direction:column}.nice-edge-manager__detail-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-edge-manager__detail-header h3{margin:0;font-size:1rem}.nice-edge-manager__detail-actions{display:flex;gap:.5rem}.nice-edge-manager__detail-actions button{padding:.25rem .5rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-edge-manager__detail-content{flex:1;overflow-y:auto;padding:1rem}.nice-edge-manager__detail-content section{margin-bottom:1.5rem}.nice-edge-manager__detail-content h4{margin:0 0 .5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d);text-transform:uppercase}.nice-edge-manager__detail-row{display:flex;justify-content:space-between;padding:.375rem 0;font-size:.875rem;border-bottom:1px solid var(--nice-border, #eee)}.nice-edge-manager__status-badge{padding:.125rem .5rem;border-radius:var(--nice-radius-sm, 4px);color:#fff;font-size:.75rem}.nice-edge-manager__resource-chart{display:flex;flex-direction:column;gap:.5rem}.nice-edge-manager__resource-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.nice-edge-manager__resource-item span:first-child{width:50px}.nice-edge-manager__network-stats{display:flex;gap:1rem;margin-top:.5rem;font-size:.8125rem;color:var(--nice-text-muted, #6c757d)}.nice-edge-manager__dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--nice-overlay-50, rgba(0, 0, 0, .5));display:flex;align-items:center;justify-content:center;z-index:1000}.nice-edge-manager__dialog{background:#fff;border-radius:var(--nice-radius-lg, 8px);width:400px;max-width:90vw;box-shadow:0 4px 20px var(--nice-overlay-20, rgba(0, 0, 0, .2))}.nice-edge-manager__dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-edge-manager__dialog-header h3{margin:0}.nice-edge-manager__dialog-content{padding:1rem}.nice-edge-manager__dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid var(--nice-border, #ddd)}.nice-edge-manager__dialog-footer button{padding:.5rem 1rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-edge-manager__deploy-confirm{background:var(--nice-primary, #0066cc)!important;color:#fff;border-color:var(--nice-primary, #0066cc)!important}.nice-edge-manager__field{margin-bottom:1rem}.nice-edge-manager__field label{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500}.nice-edge-manager__field input,.nice-edge-manager__field select{width:100%;padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-sm, 4px);font-size:.875rem}.nice-protocol-config{display:flex;flex-direction:column;height:100%;font-family:system-ui,-apple-system,sans-serif;background:var(--nice-bg, #fff)}.nice-protocol-config__header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--nice-border, #ddd)}.nice-protocol-config__header h2{margin:0;font-size:1.25rem}.nice-protocol-config__protocol-selector{display:flex;align-items:center;gap:.5rem}.nice-protocol-config__protocol-selector select{padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-sm, 4px)}.nice-protocol-config__content{flex:1;overflow-y:auto;padding:1rem}.nice-protocol-config__section h3{margin:0 0 1rem;font-size:1rem}.nice-protocol-config__section h4{margin:1.5rem 0 .5rem;font-size:.9375rem}.nice-protocol-config__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.nice-protocol-config__field{display:flex;flex-direction:column}.nice-protocol-config__field--full{grid-column:1 / -1}.nice-protocol-config__field label{margin-bottom:.25rem;font-size:.875rem;font-weight:500}.nice-protocol-config__field input,.nice-protocol-config__field select{padding:.5rem;border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-sm, 4px);font-size:.875rem}.nice-protocol-config__field input[type=checkbox]{width:auto;margin-right:.5rem}.nice-protocol-config__topics,.nice-protocol-config__resources,.nice-protocol-config__nodes{display:flex;flex-direction:column;gap:.5rem}.nice-protocol-config__topic-row,.nice-protocol-config__resource-row,.nice-protocol-config__node-row{display:flex;gap:.5rem}.nice-protocol-config__topic-row input,.nice-protocol-config__resource-row input,.nice-protocol-config__node-row input{flex:1;padding:.375rem .5rem;border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-sm, 4px)}.nice-protocol-config__topic-row select{padding:.375rem .5rem;border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-sm, 4px)}.nice-protocol-config__topic-row button,.nice-protocol-config__resource-row button,.nice-protocol-config__node-row button{padding:.375rem .5rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-protocol-config__topics>button,.nice-protocol-config__resources>button,.nice-protocol-config__nodes>button{align-self:flex-start;padding:.5rem 1rem;border:1px dashed var(--nice-border, #ddd);background:transparent;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-protocol-config__registers-table{width:100%;border-collapse:collapse;margin-bottom:.5rem}.nice-protocol-config__registers-table th,.nice-protocol-config__registers-table td{padding:.5rem;border:1px solid var(--nice-border, #ddd);text-align:left}.nice-protocol-config__registers-table th{background:var(--nice-bg-secondary, #f8f9fa);font-weight:500;font-size:.8125rem}.nice-protocol-config__registers-table input,.nice-protocol-config__registers-table select{width:100%;padding:.25rem;border:1px solid var(--nice-border, #ddd);border-radius:var(--nice-radius-sm, 4px);font-size:.8125rem}.nice-protocol-config__registers-table input[type=checkbox]{width:auto}.nice-protocol-config__test-result{margin:0 1rem;padding:.75rem 1rem;border-radius:var(--nice-radius-sm, 4px);font-size:.875rem}.nice-protocol-config__test-result--success{background:var(--nice-success-bg, #d4edda);color:var(--nice-success-dark, #155724)}.nice-protocol-config__test-result--error{background:var(--nice-danger-bg, #f8d7da);color:var(--nice-danger-dark, #721c24)}.nice-protocol-config__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid var(--nice-border, #ddd)}.nice-protocol-config__test-btn,.nice-protocol-config__save-btn{padding:.5rem 1rem;border:1px solid var(--nice-border, #ddd);background:#fff;border-radius:var(--nice-radius-sm, 4px);cursor:pointer}.nice-protocol-config__save-btn{background:var(--nice-primary, #0066cc);color:#fff;border-color:var(--nice-primary, #0066cc)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/ui-iot",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "description": "Nice2Dev IoT Components - Device dashboards, edge management, and protocol support",
5
5
  "type": "module",
6
6
  "sideEffects": [