@tekkare/romulus 0.1.216 → 0.1.218
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/module.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.grid-2{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{display:grid;gap:var(--space-20)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{display:grid;gap:var(--space-16);grid-template-columns:repeat(4,1fr)}.grid-2-1{display:grid;gap:var(--space-20);grid-template-columns:2fr 1fr}.pane-title{color:var(--text-primary);font-family:var(--font-serif);font-size:var(--font-32);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0 0 16px}.pane-sub{color:var(--text-muted);font-size:var(--font-13);line-height:1.55;margin:0 0 24px;max-width:78ch}.chart-section{margin-inline:auto;max-width:var(--content-max-w,1440px);padding:0 0 var(--space-40);width:100%}.section-label{align-items:center;color:var(--text-secondary);display:flex;font-size:var(--font-11);font-weight:700;gap:var(--space-8);letter-spacing:.12em;margin:40px 0 18px;text-transform:uppercase}body.text-large .pane-title{font-size:38px}body.text-xl .pane-title{font-size:46px}body.text-large .section-label{font-size:var(--font-13)}body.text-xl .section-label{font-size:var(--font-14)}.chart-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:10px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:box-shadow .18s,border-color .18s}.chart-card:hover{border-color:var(--color-violet-pale);box-shadow:0 6px 16px rgba(107,63,255,.1),0 1px 3px rgba(30,41,59,.04)}.chart-card-head{padding:22px var(--space-24) 14px;padding-right:64px;position:relative}.chart-card-title{color:var(--text-primary);font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1.3;margin:0 0 5px}.chart-card-context{color:var(--text-muted);font-size:var(--font-12);line-height:1.55;margin:0}.rm-card-actions{position:relative}.chart-card-head>.chart-card-actions{position:absolute;right:12px;top:12px}.cc-export{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:var(--font-14);height:28px;justify-content:center;transition:background .15s,color .15s,border-color .15s;width:28px}.cc-export:hover{color:var(--color-secondary)}.cc-export:hover,.rm-card-actions.open .cc-export{background:var(--bg-hover);border-color:var(--color-violet-pale)}.rm-card-actions.open .cc-export{color:var(--color-primary)}.cc-menu{animation:cc-menu-in .12s cubic-bezier(.2,0,0,1);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;box-shadow:var(--shadow-lg);display:none;min-width:200px;padding:var(--space-6) 0;position:absolute;right:0;top:34px;z-index:500}.rm-card-actions.open .cc-menu{display:block}.cc-menu-section{color:var(--text-muted);font-size:var(--font-10);font-weight:700;letter-spacing:.08em;padding:var(--space-8) 14px var(--space-4);text-transform:uppercase}.cc-menu-item{align-items:center;background:none;border:0;color:var(--text-secondary);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:var(--font-13);gap:var(--space-10);padding:7px 14px;text-align:left;width:100%}.cc-menu-item i{color:var(--text-muted);font-size:var(--font-14)}.cc-menu-item:hover{background:var(--bg-surface-3);color:var(--text-primary)}.cc-menu-item:hover i{color:var(--text-secondary)}.cc-menu-divider{background:var(--bg-surface-3);height:1px;margin:4px 0}.cc-menu-note{border-top:1px solid var(--bg-surface-3);color:var(--text-secondary);font-size:var(--font-12);margin:4px 0 0;padding:var(--space-8) 14px var(--space-4)}.cc-menu-item[disabled]{cursor:default;opacity:.55}.cc-menu-item[disabled]:hover{background:none;color:var(--text-secondary)}.chart-card:fullscreen,.rm-card-zoom,.rm-rcard:fullscreen,.rm-table-card:fullscreen{background:var(--bg-surface);border-radius:0;box-sizing:border-box;height:100vh;overflow:auto;padding:var(--space-16);width:100vw}.rm-card-zoom{border:0;inset:0;margin:0;position:fixed;z-index:500}body.rm-card-zoom-open{overflow:hidden}.chart-card.rm-card-zoom .chart-card-body,.chart-card:fullscreen .chart-card-body{display:flex;flex-direction:column}.chart-card.rm-card-zoom .rm-chart,.chart-card:fullscreen .rm-chart{flex:1 1 auto}.chart-card.rm-card-zoom .echart,.chart-card:fullscreen .echart{height:72vh!important}@keyframes cc-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chart-card-body{flex:1;padding:var(--space-4) var(--space-12) var(--space-8)}.chart-card-body>.rm-empty{box-sizing:border-box;gap:var(--space-6);justify-content:center;max-width:none;min-height:240px;padding:36px var(--space-24)}.chart-card-foot{align-items:center;background:var(--bg-surface-2);border-radius:0 0 10px 10px;border-top:1px solid var(--border-soft);color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:var(--font-11);gap:var(--space-10);padding:var(--space-12) var(--space-24)}.chart-card-foot .src{align-items:center;display:flex;gap:var(--space-4)}.chart-card-foot .src b{color:var(--text-secondary);font-weight:600}.chart-card-foot .dot{background:var(--border-default);border-radius:50%;height:3px;width:3px}.chart-card-foot .updated{color:var(--text-secondary);font-weight:500}.kpi-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;box-shadow:0 2px 8px rgba(30,41,59,.06);padding:var(--space-16) 18px}.kpi-label{color:var(--text-muted);font-size:var(--font-11);font-weight:600;letter-spacing:.1em;margin:0 0 6px;text-transform:uppercase}.kpi-value{color:var(--color-primary);font-family:var(--font-serif);font-size:28px;font-weight:700;line-height:1;margin:0}.kpi-value.healthcare{color:var(--color-healthcare)}.kpi-value.discovery{color:var(--color-discovery)}.kpi-value.pharma{color:var(--color-pharma)}.kpi-value.databank{color:var(--color-databank)}.kpi-trend{align-items:center;display:inline-flex;font-size:var(--font-12);font-weight:600;gap:var(--space-4);margin-top:6px}.kpi-trend i{font-size:var(--font-11)}.kpi-trend--up{color:var(--color-success)}.kpi-trend--down{color:var(--color-danger)}.kpi-foot,.kpi-trend--flat{color:var(--text-muted)}.kpi-foot{font-size:var(--font-11);margin-top:4px}.kpi-extra{margin-top:12px}.badge{border-radius:4px;display:inline-block;font-size:var(--font-10);font-weight:600;padding:var(--space-2) var(--space-8)}.badge-active{background:var(--color-success-bg);color:var(--color-success)}.badge-pending{background:var(--color-warning-bg);color:var(--color-warning)}.badge-error{background:var(--color-danger-bg);color:var(--color-danger)}.badge-info{background:var(--bg-hover);color:var(--color-primary)}.badge-grey{background:var(--bg-surface-3);color:var(--text-secondary)}table.tk{border-collapse:collapse;font-size:var(--font-13);width:100%}.sr-only,table.tk>caption.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}table.tk caption{caption-side:top;color:var(--text-primary);font-size:var(--font-13);font-weight:var(--weight-bold);padding:0 0 var(--space-8);text-align:left}table.tk th{background:var(--bg-surface-2);border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--font-11);font-weight:700;letter-spacing:.08em;padding:var(--space-12) 14px;text-align:left;text-transform:uppercase}table.tk tbody th[scope=row]{background:transparent;font-size:var(--font-13);font-weight:var(--weight-bold);letter-spacing:0;text-transform:none}table.tk tbody th[scope=row],table.tk td{border-bottom:1px solid var(--border-soft);color:var(--text-primary)}table.tk td{padding:var(--space-12) 14px}table.tk tbody tr:nth-child(2n) td,table.tk tbody tr:nth-child(2n) th[scope=row]{background:var(--bg-surface-2)}table.tk tbody tr:hover td,table.tk tbody tr:hover th[scope=row]{background:var(--bg-hover)}table.tk th[aria-sort]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}table.tk th[aria-sort]:hover{color:var(--text-primary)}.tk-wrap{min-width:0;overflow-x:auto}.tk-num{font-variant-numeric:tabular-nums;text-align:right}.tk-skeleton{height:14px;width:80%}.tk-empty{color:var(--text-muted);text-align:center}.nav-group{display:flex;flex-direction:column}.nav-group-header{align-items:center;background:none;border:0;color:var(--text-muted);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:var(--font-11);font-weight:700;gap:var(--space-8);letter-spacing:.08em;padding:var(--space-8) var(--space-12);text-align:left;text-transform:uppercase;transition:color var(--duration-fast) var(--ease-out);width:100%}.nav-group-header:hover{color:var(--text-secondary)}.nav-group-header .caret{display:inline-flex;margin-left:auto;transition:transform var(--duration-fast) var(--ease-out)}.nav-group[data-open=true]>.nav-group-header{color:var(--color-primary)}.nav-group[data-open=true]>.nav-group-header .caret{transform:rotate(180deg)}.nav-group-items{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) 0 var(--space-8)}.cc-export:focus-visible,.cc-menu-item:focus-visible,.chart-card :focus-visible,.nav-group-header:focus-visible,table.tk th[aria-sort]:focus-visible{box-shadow:var(--shadow-focus);outline:2px solid var(--color-secondary);outline-offset:2px}.cc-menu-item,.nav-group-header{min-height:40px}body.text-large .kpi-label{font-size:var(--font-13)}body.text-large .kpi-value{font-size:34px}body.text-large .kpi-trend{font-size:var(--font-14)}body.text-large .kpi-foot{font-size:var(--font-13)}body.text-large .chart-card-title{font-size:17px}body.text-large .chart-card-context{font-size:var(--font-14)}body.text-large .badge,body.text-large .chart-card-foot{font-size:var(--font-12)}body.text-large .badge{padding:3px 9px}body.text-large table.tk{font-size:15px}body.text-large table.tk th{font-size:var(--font-13)}body.text-xl .kpi-label{font-size:var(--font-14)}body.text-xl .kpi-value{font-size:40px}body.text-xl .kpi-trend{font-size:var(--font-16)}body.text-xl .kpi-foot{font-size:var(--font-14)}body.text-xl .chart-card-title{font-size:20px}body.text-xl .chart-card-context{font-size:var(--font-16)}body.text-xl .badge,body.text-xl .chart-card-foot{font-size:var(--font-14)}body.text-xl .badge{padding:3px var(--space-10)}body.text-xl table.tk{font-size:var(--font-16)}body.text-xl table.tk th{font-size:var(--font-14)}body.high-contrast .cc-export,body.high-contrast .cc-menu,body.high-contrast .chart-card,body.high-contrast .kpi-card{border-width:2px}body.high-contrast .chart-card:hover{border-color:var(--border-default)}body.rm-switching,body.rm-switching *,body.rm-switching :after,body.rm-switching :before,body.theme-switching,body.theme-switching *,body.theme-switching :after,body.theme-switching :before{transition:none!important}body.high-contrast *{box-shadow:none!important}.rm-skeleton{animation:rm-skeleton-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--bg-hover) 0,var(--bg-surface-2) 50%,var(--bg-hover) 100%);background-size:200% 100%;border-radius:var(--radius-md)}@keyframes rm-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.rm-skeleton{animation:none;background:var(--bg-hover)}}.rm-state-loading{display:flex;flex-direction:column;gap:var(--space-10);justify-content:center;min-height:240px;padding:var(--space-8) var(--space-4)}.rm-spinner{animation:rm-spinner-turn .8s linear infinite;border:3px solid var(--border-default);border-radius:50%;border-top-color:var(--color-secondary);height:32px;width:32px}@keyframes rm-spinner-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.rm-spinner{animation-duration:3s}}.rm-state{color:var(--text-secondary);flex-direction:column;font-family:var(--font-sans);gap:var(--space-6);min-height:240px;padding:36px var(--space-24);text-align:center}.rm-state,.rm-state__icon{align-items:center;display:flex;justify-content:center}.rm-state__icon{background:var(--bg-surface-3);border-radius:50%;color:var(--text-muted);height:56px;margin-bottom:6px;width:56px}.rm-state__title{color:var(--text-primary);font-size:var(--font-14);font-weight:var(--weight-semibold);margin:0}.rm-state__text{color:var(--text-muted);font-size:var(--font-12);line-height:1.5;margin:0;max-width:280px}.rm-state__action{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-12);font-weight:var(--weight-semibold);gap:var(--space-6);margin-top:10px;padding:var(--space-6) 14px}.rm-state__action:hover{background:var(--bg-surface-3);color:var(--text-primary)}.rm-state--error .rm-state__icon{background:var(--color-danger-bg);color:var(--color-danger)}.rm-state--error .rm-state__action{border-color:var(--color-danger);color:var(--color-danger)}.rm-state--error .rm-state__action:hover{background:var(--color-danger-bg)}*{scrollbar-color:var(--border-default) transparent;scrollbar-width:thin}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:var(--border-default);border:3px solid transparent;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}
|
|
1
|
+
.grid-2{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{display:grid;gap:var(--space-20)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{display:grid;gap:var(--space-16);grid-template-columns:repeat(4,1fr)}.grid-2-1{display:grid;gap:var(--space-20);grid-template-columns:2fr 1fr}.pane-title{color:var(--text-primary);font-family:var(--font-serif);font-size:var(--font-32);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0 0 16px}.pane-sub{color:var(--text-muted);font-size:var(--font-13);line-height:1.55;margin:0 0 24px;max-width:78ch}.chart-section{margin-inline:auto;max-width:var(--content-max-w,1440px);padding:0 0 var(--space-40);width:100%}.section-label{align-items:center;color:var(--text-secondary);display:flex;font-size:var(--font-11);font-weight:700;gap:var(--space-8);letter-spacing:.12em;margin:40px 0 18px;text-transform:uppercase}body.text-large .pane-title{font-size:38px}body.text-xl .pane-title{font-size:46px}body.text-large .section-label{font-size:var(--font-13)}body.text-xl .section-label{font-size:var(--font-14)}.chart-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:10px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:box-shadow .18s,border-color .18s}.chart-card:hover{border-color:var(--color-violet-pale);box-shadow:0 6px 16px rgba(107,63,255,.1),0 1px 3px rgba(30,41,59,.04)}.chart-card-head{padding:22px var(--space-24) 14px;padding-right:64px;position:relative}.chart-card-title{color:var(--text-primary);font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1.3;margin:0 0 5px}.chart-card-context{color:var(--text-muted);font-size:var(--font-12);line-height:1.55;margin:0}.rm-card-actions{position:relative}.chart-card-head>.chart-card-actions{position:absolute;right:12px;top:12px}.cc-export{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:var(--font-14);height:28px;justify-content:center;transition:background .15s,color .15s,border-color .15s;width:28px}.cc-export:hover{color:var(--color-secondary)}.cc-export:hover,.rm-card-actions.open .cc-export{background:var(--bg-hover);border-color:var(--color-violet-pale)}.rm-card-actions.open .cc-export{color:var(--color-primary)}.cc-menu{animation:cc-menu-in .12s cubic-bezier(.2,0,0,1);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;box-shadow:var(--shadow-lg);display:none;min-width:200px;padding:var(--space-6) 0;position:absolute;right:0;top:34px;z-index:500}.rm-card-actions.open .cc-menu{display:block}.cc-menu-section{color:var(--text-muted);font-size:var(--font-10);font-weight:700;letter-spacing:.08em;padding:var(--space-8) 14px var(--space-4);text-transform:uppercase}.cc-menu-item{align-items:center;background:none;border:0;color:var(--text-secondary);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:var(--font-13);gap:var(--space-10);padding:7px 14px;text-align:left;width:100%}.cc-menu-item i{color:var(--text-muted);font-size:var(--font-14)}.cc-menu-item:hover{background:var(--bg-surface-3);color:var(--text-primary)}.cc-menu-item:hover i{color:var(--text-secondary)}.cc-menu-divider{background:var(--bg-surface-3);height:1px;margin:4px 0}.cc-menu-note{border-top:1px solid var(--bg-surface-3);color:var(--text-secondary);font-size:var(--font-12);margin:4px 0 0;padding:var(--space-8) 14px var(--space-4)}.cc-menu-item[disabled]{cursor:default;opacity:.55}.cc-menu-item[disabled]:hover{background:none;color:var(--text-secondary)}.chart-card:fullscreen,.rm-card-zoom,.rm-rcard:fullscreen,.rm-table-card:fullscreen{background:var(--bg-surface);border-radius:0;box-sizing:border-box;height:100vh;overflow:auto;padding:var(--space-16);width:100vw}.rm-card-zoom{border:0;inset:0;margin:0;position:fixed;z-index:500}body.rm-card-zoom-open{overflow:hidden}.chart-card.rm-card-zoom .chart-card-body,.chart-card:fullscreen .chart-card-body{display:flex;flex-direction:column}.chart-card.rm-card-zoom .rm-chart,.chart-card:fullscreen .rm-chart{flex:1 1 auto}.chart-card.rm-card-zoom .echart,.chart-card:fullscreen .echart{height:72vh!important}@keyframes cc-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chart-card-body{flex:1;padding:var(--space-4) var(--space-12) var(--space-8)}.chart-card-body>.rm-empty{box-sizing:border-box;gap:var(--space-6);justify-content:center;max-width:none;min-height:240px;padding:36px var(--space-24)}.chart-card-foot{align-items:center;background:var(--bg-surface-2);border-radius:0 0 10px 10px;border-top:1px solid var(--border-soft);color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:var(--font-11);gap:var(--space-10);padding:var(--space-12) var(--space-24)}.chart-card-foot .src{align-items:center;display:flex;gap:var(--space-4)}.chart-card-foot .src b{color:var(--text-secondary);font-weight:600}.chart-card-foot .dot{background:var(--border-default);border-radius:50%;height:3px;width:3px}.chart-card-foot .updated{color:var(--text-secondary);font-weight:500}.kpi-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;box-shadow:0 2px 8px rgba(30,41,59,.06);padding:var(--space-16) 18px}.kpi-label{color:var(--text-muted);font-size:var(--font-11);font-weight:600;letter-spacing:.1em;margin:0 0 6px;text-transform:uppercase}.kpi-value{color:var(--color-primary);font-family:var(--font-serif);font-size:28px;font-weight:700;line-height:1;margin:0}.kpi-value.healthcare{color:var(--color-healthcare)}.kpi-value.discovery{color:var(--color-discovery)}.kpi-value.pharma{color:var(--color-pharma)}.kpi-value.databank{color:var(--color-databank)}.kpi-trend{align-items:center;display:inline-flex;font-size:var(--font-12);font-weight:600;gap:var(--space-4);margin-top:6px}.kpi-trend i{font-size:var(--font-11)}.kpi-trend--up{color:var(--color-success)}.kpi-trend--down{color:var(--color-danger)}.kpi-foot,.kpi-trend--flat{color:var(--text-muted)}.kpi-foot{font-size:var(--font-11);margin-top:4px}.kpi-extra{margin-top:12px}.badge{border-radius:4px;display:inline-block;font-size:var(--font-10);font-weight:600;padding:var(--space-2) var(--space-8)}.badge-active{background:var(--color-success-bg);color:var(--color-success)}.badge-pending{background:var(--color-warning-bg);color:var(--color-warning)}.badge-error{background:var(--color-danger-bg);color:var(--color-danger)}.badge-info{background:var(--bg-hover);color:var(--color-primary)}.badge-grey{background:var(--bg-surface-3);color:var(--text-secondary)}table.tk{border-collapse:collapse;font-size:var(--font-13);width:100%}.sr-only,table.tk>caption.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}table.tk caption{caption-side:top;color:var(--text-primary);font-size:var(--font-13);font-weight:var(--weight-bold);padding:0 0 var(--space-8);text-align:left}table.tk th{background:var(--bg-surface-2);border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--font-11);font-weight:700;letter-spacing:.08em;padding:var(--space-12) 14px;text-align:left;text-transform:uppercase}table.tk tbody th[scope=row]{background:transparent;font-size:var(--font-13);font-weight:var(--weight-bold);letter-spacing:0;text-transform:none}table.tk tbody th[scope=row],table.tk td{border-bottom:1px solid var(--border-soft);color:var(--text-primary)}table.tk td{padding:var(--space-12) 14px}table.tk tbody tr:nth-child(2n) td,table.tk tbody tr:nth-child(2n) th[scope=row]{background:var(--bg-surface-2)}table.tk tbody tr:hover td,table.tk tbody tr:hover th[scope=row]{background:var(--bg-hover)}table.tk th[aria-sort]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}table.tk th[aria-sort]:hover{color:var(--text-primary)}.tk-wrap{min-width:0;overflow-x:auto}.tk-num{font-variant-numeric:tabular-nums;text-align:right}.tk-skeleton{height:14px;width:80%}.tk-empty{color:var(--text-muted);text-align:center}.nav-group{display:flex;flex-direction:column}.nav-group-header{align-items:center;background:none;border:0;color:var(--text-muted);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:var(--font-11);font-weight:700;gap:var(--space-8);letter-spacing:.08em;padding:var(--space-8) var(--space-12);text-align:left;text-transform:uppercase;transition:color var(--duration-fast) var(--ease-out);width:100%}.nav-group-header:hover{color:var(--text-secondary)}.nav-group-header .caret{display:inline-flex;margin-left:auto;transition:transform var(--duration-fast) var(--ease-out)}.nav-group[data-open=true]>.nav-group-header{color:var(--color-primary)}.nav-group[data-open=true]>.nav-group-header .caret{transform:rotate(180deg)}.nav-group-items{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) 0 var(--space-8)}.cc-export:focus-visible,.cc-menu-item:focus-visible,.chart-card :focus-visible,.nav-group-header:focus-visible,table.tk th[aria-sort]:focus-visible{box-shadow:var(--shadow-focus);outline:2px solid var(--color-secondary);outline-offset:2px}.cc-menu-item,.nav-group-header{min-height:40px}body.text-large .kpi-label{font-size:var(--font-13)}body.text-large .kpi-value{font-size:34px}body.text-large .kpi-trend{font-size:var(--font-14)}body.text-large .kpi-foot{font-size:var(--font-13)}body.text-large .chart-card-title{font-size:17px}body.text-large .chart-card-context{font-size:var(--font-14)}body.text-large .chart-card-foot{font-size:var(--font-12)}body.text-large .rm-table-card__context{font-size:var(--font-14)}body.text-large .badge,body.text-large .rm-table-card__foot{font-size:var(--font-12)}body.text-large .badge{padding:3px 9px}body.text-large table.tk{font-size:15px}body.text-large table.tk th{font-size:var(--font-13)}body.text-xl .kpi-label{font-size:var(--font-14)}body.text-xl .kpi-value{font-size:40px}body.text-xl .kpi-trend{font-size:var(--font-16)}body.text-xl .kpi-foot{font-size:var(--font-14)}body.text-xl .chart-card-title{font-size:20px}body.text-xl .chart-card-context{font-size:var(--font-16)}body.text-xl .chart-card-foot{font-size:var(--font-14)}body.text-xl .rm-table-card__context{font-size:var(--font-16)}body.text-xl .badge,body.text-xl .rm-table-card__foot{font-size:var(--font-14)}body.text-xl .badge{padding:3px var(--space-10)}body.text-xl table.tk{font-size:var(--font-16)}body.text-xl table.tk th{font-size:var(--font-14)}body.high-contrast .cc-export,body.high-contrast .cc-menu,body.high-contrast .chart-card,body.high-contrast .kpi-card{border-width:2px}body.high-contrast .chart-card:hover{border-color:var(--border-default)}body.rm-switching,body.rm-switching *,body.rm-switching :after,body.rm-switching :before,body.theme-switching,body.theme-switching *,body.theme-switching :after,body.theme-switching :before{transition:none!important}body.high-contrast *{box-shadow:none!important}.rm-skeleton{animation:rm-skeleton-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--bg-hover) 0,var(--bg-surface-2) 50%,var(--bg-hover) 100%);background-size:200% 100%;border-radius:var(--radius-md)}@keyframes rm-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.rm-skeleton{animation:none;background:var(--bg-hover)}}.rm-state-loading{display:flex;flex-direction:column;gap:var(--space-10);justify-content:center;min-height:240px;padding:var(--space-8) var(--space-4)}.rm-spinner{animation:rm-spinner-turn .8s linear infinite;border:3px solid var(--border-default);border-radius:50%;border-top-color:var(--color-secondary);height:32px;width:32px}@keyframes rm-spinner-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.rm-spinner{animation-duration:3s}}.rm-state{color:var(--text-secondary);flex-direction:column;font-family:var(--font-sans);gap:var(--space-6);min-height:240px;padding:36px var(--space-24);text-align:center}.rm-state,.rm-state__icon{align-items:center;display:flex;justify-content:center}.rm-state__icon{background:var(--bg-surface-3);border-radius:50%;color:var(--text-muted);height:56px;margin-bottom:6px;width:56px}.rm-state__title{color:var(--text-primary);font-size:var(--font-14);font-weight:var(--weight-semibold);margin:0}.rm-state__text{color:var(--text-muted);font-size:var(--font-12);line-height:1.5;margin:0;max-width:280px}.rm-state__action{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-12);font-weight:var(--weight-semibold);gap:var(--space-6);margin-top:10px;padding:var(--space-6) 14px}.rm-state__action:hover{background:var(--bg-surface-3);color:var(--text-primary)}.rm-state--error .rm-state__icon{background:var(--color-danger-bg);color:var(--color-danger)}.rm-state--error .rm-state__action{border-color:var(--color-danger);color:var(--color-danger)}.rm-state--error .rm-state__action:hover{background:var(--color-danger-bg)}*{scrollbar-color:var(--border-default) transparent;scrollbar-width:thin}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:var(--border-default);border:3px solid transparent;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}
|
|
@@ -15,13 +15,20 @@
|
|
|
15
15
|
|
|
16
16
|
Avec un graphe (`have-chart` a vrai), c'est RmChartCard qu'il faut.
|
|
17
17
|
|
|
18
|
-
Slots : #header (titre,
|
|
18
|
+
Slots : #header (titre, contexte, compte), default (le tableau et sa
|
|
19
19
|
pagination).
|
|
20
|
+
|
|
21
|
+
Avec `source` (et `verified`), la carte porte un pied de provenance, dans
|
|
22
|
+
les memes mots et au meme endroit que RmChartCard : l'en-tete reste au
|
|
23
|
+
titre et au contexte (le perimetre filtre, classe `rm-table-card__context`),
|
|
24
|
+
la provenance se lit en bas comme sur toute autre carte du hub.
|
|
20
25
|
-->
|
|
21
26
|
<script setup lang="ts">
|
|
27
|
+
import { computed } from 'vue'
|
|
22
28
|
import type { RmExportPayload } from '../utils/export'
|
|
29
|
+
import { rmDate } from '../utils/format'
|
|
23
30
|
|
|
24
|
-
withDefaults(
|
|
31
|
+
const props = withDefaults(
|
|
25
32
|
defineProps<{
|
|
26
33
|
/**
|
|
27
34
|
* Menu d'actions en haut a droite (exporter, partager). Les items visuels
|
|
@@ -38,9 +45,33 @@ withDefaults(
|
|
|
38
45
|
* la page affichee du tableau, ses chiffres cles, ses sources.
|
|
39
46
|
*/
|
|
40
47
|
payload?: Partial<RmExportPayload> | (() => Partial<RmExportPayload> | null | undefined)
|
|
48
|
+
/** Organisme et jeu de donnees : ecrit le pied de provenance. */
|
|
49
|
+
source?: string
|
|
50
|
+
/** Date de verification du jeu : Date, timestamp, ISO ou texte deja formate. */
|
|
51
|
+
verified?: Date | string | number
|
|
41
52
|
}>(),
|
|
42
|
-
{ actions: true, link: undefined, lang: 'fr', payload: undefined },
|
|
53
|
+
{ actions: true, link: undefined, lang: 'fr', payload: undefined, source: undefined, verified: undefined },
|
|
43
54
|
)
|
|
55
|
+
|
|
56
|
+
/** Memes mots que le pied de RmChartCard. */
|
|
57
|
+
const WORDS = {
|
|
58
|
+
fr: { source: 'Source :', verified: 'Dernière mise à jour le' },
|
|
59
|
+
en: { source: 'Source:', verified: 'Last updated' },
|
|
60
|
+
} as const
|
|
61
|
+
const t = computed(() => WORDS[props.lang])
|
|
62
|
+
|
|
63
|
+
/** Meme regle que RmChartCard : seule une date technique est mise au format long. */
|
|
64
|
+
const ISO_DATE = /^\d{4}-\d{2}-\d{2}/
|
|
65
|
+
const verifiedText = computed(() => {
|
|
66
|
+
const raw = props.verified
|
|
67
|
+
if (raw === undefined || raw === null || raw === '') return ''
|
|
68
|
+
if (typeof raw === 'string' && !ISO_DATE.test(raw)) return raw
|
|
69
|
+
const parsed = new Date(raw)
|
|
70
|
+
if (Number.isNaN(parsed.getTime())) return String(raw)
|
|
71
|
+
return props.lang === 'en'
|
|
72
|
+
? parsed.toLocaleDateString('en-US', { day: 'numeric', month: 'long', year: 'numeric' })
|
|
73
|
+
: rmDate(parsed)
|
|
74
|
+
})
|
|
44
75
|
</script>
|
|
45
76
|
|
|
46
77
|
<template>
|
|
@@ -60,9 +91,16 @@ withDefaults(
|
|
|
60
91
|
:payload="payload"
|
|
61
92
|
/>
|
|
62
93
|
<slot />
|
|
94
|
+
<div v-if="source" class="rm-table-card__foot">
|
|
95
|
+
<span class="rm-table-card__src">{{ t.source }} <b>{{ source }}</b></span>
|
|
96
|
+
<template v-if="verifiedText">
|
|
97
|
+
<span class="rm-table-card__dot" />
|
|
98
|
+
<span class="rm-table-card__updated">{{ t.verified }} {{ verifiedText }}</span>
|
|
99
|
+
</template>
|
|
100
|
+
</div>
|
|
63
101
|
</section>
|
|
64
102
|
</template>
|
|
65
103
|
|
|
66
104
|
<style scoped>
|
|
67
|
-
.rm-table-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xs);box-sizing:border-box;color:var(--text-primary);display:flex;flex-direction:column;font-family:var(--font-sans);overflow:hidden;padding:0;position:relative;width:100%}.rm-table-card__actions{position:absolute;right:var(--space-16);top:var(--space-16);z-index:2}.rm-table-card__header{align-items:flex-start;display:flex;gap:var(--space-16);justify-content:space-between;padding:var(--space-24)}.rm-table-card__header>:deep(.rm-card-actions){margin-left:auto}.rm-table-card__header :deep(.rm-table-card__title){font-size:var(--
|
|
105
|
+
.rm-table-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xs);box-sizing:border-box;color:var(--text-primary);display:flex;flex-direction:column;font-family:var(--font-sans);overflow:hidden;padding:0;position:relative;width:100%}.rm-table-card__actions{position:absolute;right:var(--space-16);top:var(--space-16);z-index:2}.rm-table-card__header{align-items:flex-start;display:flex;gap:var(--space-16);justify-content:space-between;padding:var(--space-24)}.rm-table-card__header>:deep(.rm-card-actions){margin-left:auto}.rm-table-card__header :deep(.rm-table-card__title){font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1.3;margin:0 0 5px}.rm-table-card__header :deep(.rm-table-card__context){color:var(--text-muted);font-size:var(--font-12);line-height:1.55;margin:0}.rm-table-card__header :deep(.rm-table-card__caption){color:var(--text-secondary);font-size:var(--font-12);margin:0;white-space:nowrap}.rm-table-card :deep(.rm-table-wrapper){background:transparent;border:none;border-radius:0}.rm-table-card__header+:deep(.rm-table-wrapper){border-top:1px solid var(--border-default)}.rm-table-card>:deep(:not(.rm-table-wrapper):not(.rm-table-card__header):not(.rm-table-card__foot)){padding:var(--space-16) var(--space-24)}.rm-table-card__foot{align-items:center;background:var(--bg-surface-2);border-top:1px solid var(--border-soft);color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:var(--font-11);gap:var(--space-10);padding:var(--space-12) var(--space-24)}.rm-table-card__src{align-items:center;display:flex;gap:var(--space-4)}.rm-table-card__src b{color:var(--text-secondary);font-weight:600}.rm-table-card__dot{background:var(--border-default);border-radius:50%;height:3px;width:3px}.rm-table-card__updated{color:var(--text-secondary);font-weight:500}
|
|
68
106
|
</style>
|