@tekkare/romulus 0.1.237 → 0.1.239
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 +1 -1
- package/dist/runtime/assets/styles/components.css +1 -1
- package/dist/runtime/components/ChartCard.vue +16 -1
- package/dist/runtime/components/ProjectOverview.vue +13 -4
- package/dist/runtime/components/TagRow.vue +15 -4
- package/dist/runtime/utils/projects.d.ts +4 -0
- package/package.json +1 -1
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 .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)}
|
|
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}.chart-card-tags{margin-top:var(--space-4)}.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)}
|
|
@@ -13,12 +13,19 @@
|
|
|
13
13
|
import { computed } from 'vue'
|
|
14
14
|
import type { RmExportPayload } from '../utils/export'
|
|
15
15
|
import { rmDate } from '../utils/format'
|
|
16
|
+
import type { RmTagRowItem } from './TagRow.vue'
|
|
16
17
|
|
|
17
18
|
const props = withDefaults(defineProps<{
|
|
18
19
|
/** Titre de la carte. */
|
|
19
20
|
title: string
|
|
20
21
|
/** Sous-titre : perimetre, methode, aide a la lecture. */
|
|
21
22
|
context?: string
|
|
23
|
+
/**
|
|
24
|
+
* Perimetre lu, en etiquettes (element, mesure, periode, geographie) : une
|
|
25
|
+
* rangee qui se parcourt d'un coup d'oeil, la ou la phrase du sous-titre
|
|
26
|
+
* se lisait jusqu'au bout. Pose sous le sous-titre quand les deux sont la.
|
|
27
|
+
*/
|
|
28
|
+
tags?: RmTagRowItem[]
|
|
22
29
|
/** Organisme public : "HAS", "OCDE", "ANSM (Repertoire des specialites)". Jamais un outil interne. */
|
|
23
30
|
source: string
|
|
24
31
|
/** Date de notre verification. Un Date est formate en long ; une chaine deja formatee passe telle quelle. */
|
|
@@ -59,6 +66,7 @@ const props = withDefaults(defineProps<{
|
|
|
59
66
|
emptyActionLabel?: string
|
|
60
67
|
}>(), {
|
|
61
68
|
context: undefined,
|
|
69
|
+
tags: undefined,
|
|
62
70
|
lang: 'fr',
|
|
63
71
|
extra: undefined,
|
|
64
72
|
actions: true,
|
|
@@ -117,6 +125,12 @@ const t = computed(() => WORDS[props.lang])
|
|
|
117
125
|
*/
|
|
118
126
|
const ISO_DATE = /^\d{4}-\d{2}-\d{2}/
|
|
119
127
|
|
|
128
|
+
/** Nom des fichiers exportes : le titre et son perimetre, phrase ou etiquettes. */
|
|
129
|
+
const exportName = computed(() => {
|
|
130
|
+
const scope = props.context || props.tags?.map(tag => (typeof tag === 'string' ? tag : tag.label)).join(', ')
|
|
131
|
+
return scope ? `${props.title} (${scope})` : props.title
|
|
132
|
+
})
|
|
133
|
+
|
|
120
134
|
const verifiedText = computed(() => {
|
|
121
135
|
if (typeof props.verified === 'string' && !ISO_DATE.test(props.verified)) return props.verified
|
|
122
136
|
const parsed = new Date(props.verified)
|
|
@@ -133,6 +147,7 @@ const verifiedText = computed(() => {
|
|
|
133
147
|
<div class="chart-card-head">
|
|
134
148
|
<p class="chart-card-title">{{ title }}</p>
|
|
135
149
|
<p v-if="context" class="chart-card-context">{{ context }}</p>
|
|
150
|
+
<RmTagRow v-if="tags?.length" class="chart-card-tags" :tags="tags" />
|
|
136
151
|
|
|
137
152
|
<!-- Les six actions vivent dans RmCardActions : elles doivent etre les
|
|
138
153
|
memes sur une carte de resultat que sur une carte de graphique. Les
|
|
@@ -142,7 +157,7 @@ const verifiedText = computed(() => {
|
|
|
142
157
|
class="chart-card-actions"
|
|
143
158
|
:lang="lang"
|
|
144
159
|
:link="link"
|
|
145
|
-
:name="
|
|
160
|
+
:name="exportName"
|
|
146
161
|
:sources="[{ name: source, date: verifiedText }]"
|
|
147
162
|
:payload="payload"
|
|
148
163
|
@export-png="emit('exportPng')"
|
|
@@ -246,13 +246,22 @@ function onLatest(event: MouseEvent, row: RmProjectResource) {
|
|
|
246
246
|
</div>
|
|
247
247
|
<ol class="rm-project-ov__start">
|
|
248
248
|
<li v-for="step in steps" :key="step.tab">
|
|
249
|
-
<button
|
|
249
|
+
<button
|
|
250
|
+
type="button"
|
|
251
|
+
class="rm-project-ov__start-item"
|
|
252
|
+
:class="{ 'is-disabled': step.disabled }"
|
|
253
|
+
:aria-disabled="step.disabled || undefined"
|
|
254
|
+
@click="!step.disabled && emit('tab', step.tab)"
|
|
255
|
+
>
|
|
250
256
|
<span class="rm-project-ov__start-icon"><RmIcon :name="step.icon" :size="17" /></span>
|
|
251
257
|
<span class="rm-project-ov__start-text">
|
|
252
|
-
<span class="rm-project-ov__start-title">
|
|
258
|
+
<span class="rm-project-ov__start-title">
|
|
259
|
+
{{ step.title }}
|
|
260
|
+
<span v-if="step.tag" class="rm-project-ov__start-tag">{{ step.tag }}</span>
|
|
261
|
+
</span>
|
|
253
262
|
<span class="rm-project-ov__start-desc">{{ step.text }}</span>
|
|
254
263
|
</span>
|
|
255
|
-
<RmIcon name="ArrowRight" :size="14" class="rm-project-ov__start-arrow" />
|
|
264
|
+
<RmIcon v-if="!step.disabled" name="ArrowRight" :size="14" class="rm-project-ov__start-arrow" />
|
|
256
265
|
</button>
|
|
257
266
|
</li>
|
|
258
267
|
</ol>
|
|
@@ -290,5 +299,5 @@ function onLatest(event: MouseEvent, row: RmProjectResource) {
|
|
|
290
299
|
</template>
|
|
291
300
|
|
|
292
301
|
<style scoped>
|
|
293
|
-
.rm-project-ov{display:flex;flex-direction:column;gap:16px}.rm-project-ov__top{align-items:stretch;display:grid;gap:16px;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}@media (max-width:1100px){.rm-project-ov__top{grid-template-columns:1fr}}.rm-project-ov__card{min-width:0}.rm-project-ov__card.is-scope,.rm-project-ov__card.is-scope :deep(.r-card__body){display:flex;flex-direction:column}.rm-project-ov__card.is-scope{height:100%}.rm-project-ov__card.is-scope :deep(.r-card__body){flex:1}.rm-project-ov__card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.rm-project-ov__titles{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.rm-project-ov__title{color:var(--text-primary);font-size:15px;font-weight:var(--weight-bold);margin:0}.rm-project-ov__context{color:var(--text-muted);font-size:12px;margin:0}.rm-project-ov__scope{display:flex;flex-direction:column;list-style:none;margin:0 0 16px;padding:0}.rm-project-ov__scope-row{align-items:flex-start;border-bottom:1px solid var(--border-soft,var(--border-default));display:flex;gap:12px;padding:8px 0}.rm-project-ov__scope-icon{color:var(--color-secondary);flex:none;margin-top:1px}.rm-project-ov__scope-body{flex:1;min-width:0}.rm-project-ov__scope-key{color:var(--text-muted);font-size:10.5px;font-weight:700;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.rm-project-ov__scope-value{color:var(--text-primary);font-size:13px;font-weight:600;margin:0;white-space:pre-line}.rm-project-ov__tags{display:flex;flex-wrap:wrap;gap:6px}.rm-project-ov__tag{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rm-project-ov__scope-none{color:var(--text-muted);font-size:13px;font-style:italic;margin:0}.rm-project-ov__more{font-size:13px;margin:0;padding-left:16px}.rm-project-ov__placeholder{background:none;border:none;color:var(--text-muted);cursor:pointer;font:inherit;font-size:13px;font-style:italic;margin:0;padding:0}.rm-project-ov__placeholder:hover{text-decoration:underline}.rm-project-ov__edit-actions{display:flex;gap:8px;justify-content:flex-end;margin:8px 0 12px}.rm-project-ov__meta{border-top:1px solid var(--border-default);display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:auto 0 0;padding-top:16px}.rm-project-ov__meta dt{color:var(--text-secondary);font-size:12px}.rm-project-ov__meta dd{font-size:14px;font-weight:500;margin:2px 0 0}.rm-project-ov__side{display:flex;flex-direction:column;gap:16px;min-width:0}.rm-project-ov__side>:last-child{flex:1}.rm-project-ov__start{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.rm-project-ov__start-item{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl,12px);color:inherit;cursor:pointer;display:flex;font:inherit;gap:12px;padding:10px 12px;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s;width:100%}.rm-project-ov__start-item:hover{background:var(--bg-hover,var(--bg-surface-2));border-color:var(--color-secondary);box-shadow:var(--shadow-sm)}.rm-project-ov__start-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.rm-project-ov__start-icon{align-items:center;background:var(--bg-hover,var(--bg-surface-2));border-radius:var(--radius-lg,8px);color:var(--color-secondary);display:flex;flex:none;height:34px;justify-content:center;width:34px}.rm-project-ov__start-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.rm-project-ov__start-title{color:var(--text-primary);font-size:13px;font-weight:700}.rm-project-ov__start-desc{color:var(--text-muted);font-size:11px;line-height:1.45}.rm-project-ov__start-arrow{color:var(--text-muted);flex:none}.rm-project-ov__head{align-items:center;display:flex;justify-content:space-between;width:100%}.rm-project-ov__empty{color:var(--text-secondary);font-size:14px;margin:0}.rm-project-ov__list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.rm-project-ov__row{align-items:center;border-bottom:1px solid var(--border-default);display:flex;font-size:14px;gap:10px;padding:8px 0}.rm-project-ov__row:last-child{border-bottom:none}.rm-project-ov__row-icon{color:var(--text-secondary);flex:none}.rm-project-ov__row-title{color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}a.rm-project-ov__row-title{color:var(--color-primary)}a.rm-project-ov__row-title:hover{text-decoration:underline}.rm-project-ov__row-date,.rm-project-ov__row-family{color:var(--text-muted);flex:none;font-size:12px}
|
|
302
|
+
.rm-project-ov{display:flex;flex-direction:column;gap:16px}.rm-project-ov__top{align-items:stretch;display:grid;gap:16px;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}@media (max-width:1100px){.rm-project-ov__top{grid-template-columns:1fr}}.rm-project-ov__card{min-width:0}.rm-project-ov__card.is-scope,.rm-project-ov__card.is-scope :deep(.r-card__body){display:flex;flex-direction:column}.rm-project-ov__card.is-scope{height:100%}.rm-project-ov__card.is-scope :deep(.r-card__body){flex:1}.rm-project-ov__card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.rm-project-ov__titles{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.rm-project-ov__title{color:var(--text-primary);font-size:15px;font-weight:var(--weight-bold);margin:0}.rm-project-ov__context{color:var(--text-muted);font-size:12px;margin:0}.rm-project-ov__scope{display:flex;flex-direction:column;list-style:none;margin:0 0 16px;padding:0}.rm-project-ov__scope-row{align-items:flex-start;border-bottom:1px solid var(--border-soft,var(--border-default));display:flex;gap:12px;padding:8px 0}.rm-project-ov__scope-icon{color:var(--color-secondary);flex:none;margin-top:1px}.rm-project-ov__scope-body{flex:1;min-width:0}.rm-project-ov__scope-key{color:var(--text-muted);font-size:10.5px;font-weight:700;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.rm-project-ov__scope-value{color:var(--text-primary);font-size:13px;font-weight:600;margin:0;white-space:pre-line}.rm-project-ov__tags{display:flex;flex-wrap:wrap;gap:6px}.rm-project-ov__tag{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rm-project-ov__scope-none{color:var(--text-muted);font-size:13px;font-style:italic;margin:0}.rm-project-ov__more{font-size:13px;margin:0;padding-left:16px}.rm-project-ov__placeholder{background:none;border:none;color:var(--text-muted);cursor:pointer;font:inherit;font-size:13px;font-style:italic;margin:0;padding:0}.rm-project-ov__placeholder:hover{text-decoration:underline}.rm-project-ov__edit-actions{display:flex;gap:8px;justify-content:flex-end;margin:8px 0 12px}.rm-project-ov__meta{border-top:1px solid var(--border-default);display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:auto 0 0;padding-top:16px}.rm-project-ov__meta dt{color:var(--text-secondary);font-size:12px}.rm-project-ov__meta dd{font-size:14px;font-weight:500;margin:2px 0 0}.rm-project-ov__side{display:flex;flex-direction:column;gap:16px;min-width:0}.rm-project-ov__side>:last-child{flex:1}.rm-project-ov__start{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.rm-project-ov__start-item{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl,12px);color:inherit;cursor:pointer;display:flex;font:inherit;gap:12px;padding:10px 12px;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s;width:100%}.rm-project-ov__start-item:hover{background:var(--bg-hover,var(--bg-surface-2));border-color:var(--color-secondary);box-shadow:var(--shadow-sm)}.rm-project-ov__start-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.rm-project-ov__start-icon{align-items:center;background:var(--bg-hover,var(--bg-surface-2));border-radius:var(--radius-lg,8px);color:var(--color-secondary);display:flex;flex:none;height:34px;justify-content:center;width:34px}.rm-project-ov__start-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.rm-project-ov__start-title{color:var(--text-primary);font-size:13px;font-weight:700}.rm-project-ov__start-desc{color:var(--text-muted);font-size:11px;line-height:1.45}.rm-project-ov__start-arrow{color:var(--text-muted);flex:none}.rm-project-ov__start-item.is-disabled{cursor:not-allowed;opacity:.55}.rm-project-ov__start-item.is-disabled:hover{background:var(--bg-surface);border-color:var(--border-default);box-shadow:none}.rm-project-ov__start-tag{border:1px solid;border-radius:var(--radius-pill);color:var(--text-muted);display:inline-block;font-size:10px;font-weight:600;letter-spacing:.02em;margin-left:6px;padding:0 6px;vertical-align:1px}.rm-project-ov__head{align-items:center;display:flex;justify-content:space-between;width:100%}.rm-project-ov__empty{color:var(--text-secondary);font-size:14px;margin:0}.rm-project-ov__list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.rm-project-ov__row{align-items:center;border-bottom:1px solid var(--border-default);display:flex;font-size:14px;gap:10px;padding:8px 0}.rm-project-ov__row:last-child{border-bottom:none}.rm-project-ov__row-icon{color:var(--text-secondary);flex:none}.rm-project-ov__row-title{color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}a.rm-project-ov__row-title{color:var(--color-primary)}a.rm-project-ov__row-title:hover{text-decoration:underline}.rm-project-ov__row-date,.rm-project-ov__row-family{color:var(--text-muted);flex:none;font-size:12px}
|
|
294
303
|
</style>
|
|
@@ -15,8 +15,16 @@
|
|
|
15
15
|
import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
|
16
16
|
import type { RmTagVariant } from './Tag.vue'
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Une etiquette : un texte seul prend la couleur de la rangee ; l'objet porte
|
|
20
|
+
* la sienne, quand chaque etiquette dit une chose differente (element,
|
|
21
|
+
* mesure, periode...) et que la couleur aide a les distinguer.
|
|
22
|
+
*/
|
|
23
|
+
export type RmTagRowItem = string | { label: string; variant?: RmTagVariant }
|
|
24
|
+
|
|
18
25
|
const props = withDefaults(defineProps<{
|
|
19
|
-
tags:
|
|
26
|
+
tags: RmTagRowItem[]
|
|
27
|
+
/** Couleur des etiquettes qui n'en portent pas. */
|
|
20
28
|
variant?: RmTagVariant
|
|
21
29
|
/** Cote ou sort la bulle du compteur. */
|
|
22
30
|
tooltipDir?: 'top' | 'right' | 'bottom' | 'left'
|
|
@@ -28,8 +36,11 @@ const props = withDefaults(defineProps<{
|
|
|
28
36
|
const rowRef = ref<HTMLElement>()
|
|
29
37
|
const visibleCount = ref(props.tags.length)
|
|
30
38
|
|
|
31
|
-
const
|
|
32
|
-
|
|
39
|
+
const items = computed(() =>
|
|
40
|
+
props.tags.map(tag => (typeof tag === 'string' ? { label: tag, variant: props.variant } : { label: tag.label, variant: tag.variant ?? props.variant })),
|
|
41
|
+
)
|
|
42
|
+
const shown = computed(() => items.value.slice(0, visibleCount.value))
|
|
43
|
+
const hidden = computed(() => items.value.slice(visibleCount.value).map(tag => tag.label))
|
|
33
44
|
|
|
34
45
|
/**
|
|
35
46
|
* Compte les etiquettes restees sur la premiere ligne. La rangee est mesuree
|
|
@@ -71,7 +82,7 @@ watch(() => props.tags, measure, { deep: true })
|
|
|
71
82
|
<template>
|
|
72
83
|
<div class="rm-tag-row">
|
|
73
84
|
<div ref="rowRef" class="rm-tag-row__items">
|
|
74
|
-
<RmTag v-for="tag in shown" :key="tag" data-rm-tag :variant="variant">{{ tag }}</RmTag>
|
|
85
|
+
<RmTag v-for="tag in shown" :key="tag.label" data-rm-tag :variant="tag.variant">{{ tag.label }}</RmTag>
|
|
75
86
|
</div>
|
|
76
87
|
<RmTooltip v-if="hidden.length > 0" :text="hidden.join('\n')" :dir="tooltipDir" full>
|
|
77
88
|
<span class="rm-tag-row__more">+{{ hidden.length }}</span>
|
|
@@ -111,6 +111,10 @@ export interface RmProjectStep {
|
|
|
111
111
|
icon: string;
|
|
112
112
|
title: string;
|
|
113
113
|
text: string;
|
|
114
|
+
/** Grisee, non cliquable : un onglet pas encore branche. */
|
|
115
|
+
disabled?: boolean;
|
|
116
|
+
/** Une mention courte a cote du titre ("Bientot"). */
|
|
117
|
+
tag?: string;
|
|
114
118
|
}
|
|
115
119
|
/**
|
|
116
120
|
* Une entree du fil d'une ressource : un commentaire, ou une note du projet
|