@aginies/ui 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/styles.css CHANGED
@@ -757,6 +757,29 @@ a.agn-tile__title:hover, button.agn-tile__title:hover { color: var(--link); }
757
757
  .agn-table__spin { animation: agn-spin .8s linear infinite; margin-right: var(--space-2); vertical-align: middle; }
758
758
  .agn-table__skeleton { display: inline-block; height: 10px; border-radius: var(--radius-sm); background: var(--panel-3); animation: agn-skeleton var(--loader-pulse) var(--ease-loader) infinite; vertical-align: middle; }
759
759
  .agn-table__skeleton--box { width: 14px; height: 14px; }
760
+ /* DataTable stickyFirst: the selection column and the first data column stay put while the table scrolls sideways; opaque grounds follow the row state; the hairline shadow shows only while scrolled */
761
+ .agn-table--sticky-first .agn-table__th--check, .agn-table--sticky-first .agn-table__td--check, .agn-table__th--sticky, .agn-table__td--sticky { position: sticky; left: 0; z-index: 1; background: var(--panel); }
762
+ .agn-table__th--check + .agn-table__th--sticky, .agn-table__td--check + .agn-table__td--sticky { left: var(--agn-table-check-w, 32px); }
763
+ .agn-table__head .agn-table__th--sticky, .agn-table--sticky-first .agn-table__head .agn-table__th--check { z-index: calc(var(--z-raised) + 1); background: var(--panel-2); }
764
+ .agn-table--striped .agn-table__row:nth-child(even) > .agn-table__td--sticky, .agn-table--sticky-first.agn-table--striped .agn-table__row:nth-child(even) > .agn-table__td--check { background: var(--bg-2); }
765
+ .agn-table__row:hover > .agn-table__td--sticky, .agn-table--sticky-first .agn-table__row:hover > .agn-table__td--check { background: var(--panel-2); }
766
+ .agn-table__row--selected > .agn-table__td--sticky, .agn-table__row--active > .agn-table__td--sticky, .agn-table__row--selected:hover > .agn-table__td--sticky, .agn-table__row--active:hover > .agn-table__td--sticky,
767
+ .agn-table--sticky-first .agn-table__row--selected > .agn-table__td--check, .agn-table--sticky-first .agn-table__row--active > .agn-table__td--check, .agn-table--sticky-first .agn-table__row--selected:hover > .agn-table__td--check, .agn-table--sticky-first .agn-table__row--active:hover > .agn-table__td--check { background: linear-gradient(var(--selection), var(--selection)), var(--panel); }
768
+ .agn-table__scroll--scrolled .agn-table__th--sticky, .agn-table__scroll--scrolled .agn-table__td--sticky { box-shadow: inset -1px 0 0 var(--line-2), 6px 0 8px -6px color-mix(in srgb, var(--neutral-950) 24%, transparent); }
769
+ .agn-table__scroll--scrolled .agn-table__row--active > .agn-table__td--sticky:first-child { box-shadow: inset 2px 0 0 var(--signal), inset -1px 0 0 var(--line-2), 6px 0 8px -6px color-mix(in srgb, var(--neutral-950) 24%, transparent); }
770
+ /* DataTable column priority: the row-detail toggle in the first visible cell and the detail row listing the hidden columns */
771
+ .agn-table__lead { display: inline-flex; align-items: center; gap: var(--space-1); max-width: 100%; margin-left: calc(var(--space-1) * -1); vertical-align: middle; }
772
+ .agn-table__lead-content { min-width: 0; }
773
+ .agn-table__expand { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 20px; height: 20px; padding: 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--mute); cursor: pointer; transition: background-color var(--duration-fast) var(--ease-enter), color var(--duration-fast) var(--ease-enter); }
774
+ .agn-table__expand:hover { background: var(--panel-3); color: var(--text); }
775
+ .agn-table__expand-icon { transition: transform var(--duration-fast) var(--ease-enter); }
776
+ .agn-table__expand[aria-expanded="true"] .agn-table__expand-icon { transform: rotate(90deg); }
777
+ .agn-table__detail-cell { padding: var(--space-2) var(--space-3) var(--space-3); background: var(--bg-2); border-bottom: 1px solid var(--line); }
778
+ .agn-table__body .agn-table__detail:last-child .agn-table__detail-cell { border-bottom-color: transparent; }
779
+ .agn-table__detail-list { position: sticky; left: var(--space-3); display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: var(--space-2) var(--space-5); margin: 0; }
780
+ .agn-table__detail-item { min-width: 0; }
781
+ .agn-table__detail-label { margin: 0 0 2px; font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--mute); }
782
+ .agn-table__detail-value { margin: 0; font-size: 13px; color: var(--text); white-space: normal; }
760
783
  @keyframes agn-skeleton { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
761
784
  .agn-table__footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: 40px; padding: var(--space-1) var(--space-3); border-top: 1px solid var(--line); background: var(--panel); font-size: 12px; color: var(--text-2); }
762
785
  .agn-table__footer-main { flex: 1; }
@@ -1060,7 +1083,7 @@ button.agn-gantt__bar, button.agn-gantt__milestone { cursor: pointer; }
1060
1083
  .agn-diff__split > .agn-diff__table + .agn-diff__table { border-left: 1px solid var(--line-2); }
1061
1084
 
1062
1085
  /* --- 50-layout.css --- */
1063
- /* layout: Card, Toolbar, ToolbarSeparator, PageLayout, Room */
1086
+ /* layout: Card, Toolbar, ToolbarSeparator, PageLayout, Grid, GridItem, Room */
1064
1087
 
1065
1088
  /* ---- Card: flat, 1px line, radius-lg, no shadow ---- */
1066
1089
  .agn-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--panel); color: var(--text); transition: border-color var(--duration-fast) var(--ease-enter); }
@@ -1103,17 +1126,46 @@ button.agn-card:disabled { cursor: default; opacity: .55; }
1103
1126
  .agn-toolbar .agn-btn:not(.agn-btn--primary):not(.agn-btn--sm):not(.agn-btn--xs):not(.agn-btn--lg) { height: var(--control-h-sm); }
1104
1127
  .agn-toolbar__sep { width: 1px; height: 20px; background: var(--line-2); margin: 0 var(--space-1); flex-shrink: 0; }
1105
1128
 
1106
- /* ---- PageLayout: the console frame ---- */
1107
- .agn-page { display: flex; flex-direction: column; height: 100%; min-height: 0; background: var(--bg); color: var(--text); }
1129
+ /* ---- PageLayout: the console frame ----
1130
+ It measures its own width and writes data-sidebar / data-panel / data-bp; the rules below read those, never the window.
1131
+ docked ≥ 1280 (bp-xl) · rail 1024–1279 (bp-lg) · overlay drawer and sheet < 1024 · gutter 16 below 768 (bp-md). */
1132
+ .agn-page { position: relative; display: flex; flex-direction: column; height: 100%; min-height: 0; background: var(--bg); color: var(--text); }
1133
+ .agn-page--narrow { --gutter-console: var(--space-4); }
1108
1134
  .agn-page__header { flex-shrink: 0; z-index: var(--z-sticky); }
1109
- .agn-page__body { display: flex; flex: 1; min-height: 0; }
1135
+ .agn-page__bar { display: flex; align-items: center; gap: var(--space-2); flex-shrink: 0; height: var(--header-h); padding: 0 var(--space-2); border-bottom: 1px solid var(--line); background: var(--panel); }
1136
+ .agn-page__bar-main { flex: 1; min-width: 0; display: inline-flex; align-items: center; gap: var(--space-2); overflow: hidden; font-family: var(--font-display); font-size: 15px; font-weight: 600; letter-spacing: -.01em; white-space: nowrap; }
1137
+ .agn-page__body { position: relative; display: flex; flex: 1; min-height: 0; }
1110
1138
  .agn-page__nav { flex-shrink: 0; height: 100%; }
1111
1139
  .agn-page__main { flex: 1; min-width: 0; overflow: auto; }
1112
1140
  .agn-page__content { max-width: var(--agn-page-max, var(--content-max)); margin: 0 auto; padding: var(--space-5) var(--gutter-console); }
1113
1141
  .agn-page--flush .agn-page__content { padding: 0; max-width: none; height: 100%; min-height: 0; }
1114
1142
  .agn-page__panel { flex: 0 0 var(--agn-page-panel-w, var(--panel-w)); width: var(--agn-page-panel-w, var(--panel-w)); border-left: 1px solid var(--line); background: var(--panel); overflow: auto; }
1115
- @media (max-width: 900px) { .agn-page__panel { display: none; } }
1116
- @media (max-width: 640px) { .agn-page__content { padding: var(--space-4) var(--space-4); } }
1143
+ .agn-page__panel > .agn-panel { width: 100%; height: 100%; border-left: 0; }
1144
+ /* drawer (sidebar < 1024) and sheet (side panel < 1024): absolute inside the page, so a page in a frame keeps them in the frame */
1145
+ .agn-page__nav--drawer, .agn-page__panel--sheet { position: absolute; top: 0; bottom: 0; z-index: var(--z-panel); visibility: hidden; box-shadow: var(--shadow-sm); outline: none; transition: transform var(--duration-slow) var(--ease-enter), visibility 0s linear var(--duration-slow); }
1146
+ .agn-page__nav--drawer { left: 0; max-width: calc(100% - var(--sidebar-w-collapsed)); transform: translateX(-100%); }
1147
+ .agn-page__nav--drawer > .agn-sidebar { max-width: 100%; }
1148
+ .agn-page__panel--sheet { right: 0; width: var(--agn-page-panel-w, var(--panel-w)); max-width: calc(100% - var(--space-7)); transform: translateX(100%); }
1149
+ .agn-page__nav--open, .agn-page__panel--open { visibility: visible; transform: none; transition: transform var(--duration-slow) var(--ease-enter), visibility 0s; }
1150
+ .agn-page__scrim { position: absolute; inset: 0; z-index: calc(var(--z-panel) - 1); background: var(--overlay); animation: agn-page-fade var(--duration-slow) var(--ease-enter); }
1151
+ @keyframes agn-page-fade { from { opacity: 0; } to { opacity: 1; } }
1152
+
1153
+ /* ---- Grid: 12 columns (grid-columns), grid-gap; container queries on its own width (px values = bp-sm … bp-2xl) ---- */
1154
+ .agn-grid { container: agn-grid / inline-size; display: grid; grid-template-columns: repeat(var(--agn-grid-cols, var(--grid-columns)), minmax(0, 1fr)); gap: var(--agn-grid-row-gap, var(--agn-grid-gap, var(--grid-gap))) var(--agn-grid-gap, var(--grid-gap)); min-width: 0; }
1155
+ .agn-grid--auto { grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--agn-grid-min)), 1fr)); }
1156
+ .agn-grid--dense { grid-auto-flow: row dense; }
1157
+ .agn-grid--align-start { align-items: start; }
1158
+ .agn-grid--align-center { align-items: center; }
1159
+ .agn-grid--align-end { align-items: end; }
1160
+ .agn-grid__item { --agn-span: var(--agn-span-base, 12); grid-column: span var(--agn-span); min-width: 0; }
1161
+ .agn-grid--auto > .agn-grid__item { grid-column: auto; }
1162
+ @container agn-grid (min-width: 640px) { .agn-grid__item { --agn-span: var(--agn-span-sm, var(--agn-span-base, 12)); } }
1163
+ @container agn-grid (min-width: 768px) { .agn-grid__item { --agn-span: var(--agn-span-md, var(--agn-span-base, 12)); } }
1164
+ @container agn-grid (min-width: 1024px) { .agn-grid__item { --agn-span: var(--agn-span-lg, var(--agn-span-base, 12)); } }
1165
+ @container agn-grid (min-width: 1280px) { .agn-grid__item { --agn-span: var(--agn-span-xl, var(--agn-span-base, 12)); } }
1166
+ @container agn-grid (min-width: 1536px) { .agn-grid__item { --agn-span: var(--agn-span-2xl, var(--agn-span-base, 12)); } }
1167
+
1168
+ /* ---- KPI summary on a narrow page: wrapped items drop the dividing rule so no item starts indented ---- */
1117
1169
 
1118
1170
  /* ---- Room: inverted-theme section ---- */
1119
1171
  .agn-room { background: var(--bg); color: var(--text); }
@@ -1122,7 +1174,7 @@ button.agn-card:disabled { cursor: default; opacity: .55; }
1122
1174
  .agn-room--pad-none { padding: 0; }
1123
1175
 
1124
1176
  /* --- 60-navigation.css --- */
1125
- /* navigation: GlobalHeader, VerticalNavigation, Tabs, Breadcrumbs, Path, ProgressIndicator, SplitView, AppLauncher, PageHeader, BuilderHeader, BrandBand, Accordion, ExpandableSection, Carousel, SetupAssistant, WelcomeMat, MobileTabBar, Pagination, Stepper */
1177
+ /* navigation: GlobalHeader, VerticalNavigation, Tabs, Breadcrumbs, Path, ProgressIndicator, SplitView, AppLauncher, PageHeader, BuilderHeader, BrandBand, Accordion, ExpandableSection, Carousel, SetupAssistant, WelcomeMat, MobileTabBar, Pagination, Stepper, ActivityBar */
1126
1178
 
1127
1179
  /* ---- GlobalHeader: 48px ---- */
1128
1180
  .agn-gheader { display: flex; align-items: center; gap: var(--space-3); height: var(--header-h); padding: 0 var(--space-3) 0 var(--space-4); background: var(--panel); color: var(--text); border-bottom: 1px solid var(--line); }
@@ -1183,6 +1235,9 @@ button.agn-card:disabled { cursor: default; opacity: .55; }
1183
1235
  .agn-sidebar__resize:hover::after, .agn-sidebar--resizing .agn-sidebar__resize::after { background: var(--signal); }
1184
1236
  .agn-sidebar__resize:focus-visible { outline: none; }
1185
1237
  .agn-sidebar__resize:focus-visible::after { background: var(--focus); width: var(--focus-width); }
1238
+ /* PageLayout states: rail 1024–1279 (an expanded rail pushes the page; the user chose it), drawer < 1024 (full sidebar width over the page, no resize handle) */
1239
+ .agn-sidebar--drawer { border-right: 0; transition: none; }
1240
+ .agn-sidebar--collapsed .agn-sidebar__bottom { align-items: center; overflow: hidden; }
1186
1241
  .agn-launcher-trigger__chevron { color: var(--mute); flex-shrink: 0; }
1187
1242
  .agn-launcher-trigger:has(.agn-launcher-trigger__meta) { height: auto; min-height: var(--nav-item-h); padding-block: var(--space-1); }
1188
1243
  .agn-launcher-trigger .agn-nav-item__label { display: flex; flex-direction: column; min-width: 0; }
@@ -1333,7 +1388,13 @@ button.agn-pind__inner { cursor: pointer; }
1333
1388
  .agn-split__toggle { position: absolute; left: var(--space-2); bottom: var(--space-2); display: inline-flex; align-items: center; justify-content: center; width: var(--control-h-sm); height: var(--control-h-sm); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); color: var(--mute); cursor: pointer; z-index: 2; }
1334
1389
  .agn-split__detail { flex: 1; min-width: 0; overflow: auto; }
1335
1390
  .agn-split__empty { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 160px; color: var(--mute); font-size: 13px; }
1336
- @media (max-width: 640px) { .agn-split { flex-direction: column; } .agn-split__list { flex-basis: auto; width: auto; max-height: 40%; border-right: 0; border-bottom: 1px solid var(--line); } .agn-split__divider { display: none; } }
1391
+ /* measured on the SplitView itself: --narrow below 1024 (bp-lg) narrows the list; --stacked below stackBelow (default 768, bp-md) shows one pane at a time */
1392
+ .agn-split--narrow .agn-split__list { flex-basis: var(--agn-split-w, var(--panel-w)); width: var(--agn-split-w, var(--panel-w)); }
1393
+ .agn-split--stacked .agn-split__list { flex: 1 1 auto; width: auto; border-right: 0; }
1394
+ .agn-split--show-list .agn-split__detail, .agn-split--show-detail .agn-split__list { display: none; }
1395
+ .agn-split__back { position: sticky; top: 0; z-index: var(--z-raised); display: flex; align-items: center; height: 44px; padding: 0 var(--space-2); border-bottom: 1px solid var(--line); background: var(--panel); flex-shrink: 0; }
1396
+ .agn-split__back-btn { display: inline-flex; align-items: center; gap: var(--space-2); height: var(--control-h-sm); padding: 0 var(--space-2); border: 0; border-radius: var(--radius-md); background: transparent; color: var(--link); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; }
1397
+ .agn-split__back-btn:hover { background: var(--panel-2); color: var(--link-hover); }
1337
1398
 
1338
1399
  /* ---- AppLauncher ---- */
1339
1400
  .agn-launcher { width: 360px; max-width: 100%; padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--panel); box-shadow: var(--shadow-sm); }
@@ -1526,6 +1587,24 @@ button.agn-welcome__step:hover { background: var(--panel-2); }
1526
1587
  .agn-stepper--vertical .agn-stepper__line { left: calc(var(--agn-step-m) / 2 - 1px); top: calc(var(--agn-step-m) + 4px); bottom: 0; width: 2px; }
1527
1588
  .agn-stepper__step--done .agn-stepper__line { background: var(--ok); }
1528
1589
 
1590
+ /* ---- ActivityBar: 48px vertical icon strip that switches views (VS Code activity bar, IntelliJ tool-window bar) ---- */
1591
+ .agn-activitybar { display: flex; flex-direction: column; justify-content: space-between; width: 48px; flex: 0 0 48px; height: 100%; min-height: 0; background: var(--panel-2); border-right: 1px solid var(--line); }
1592
+ .agn-activitybar--right { border-right: 0; border-left: 1px solid var(--line); }
1593
+ .agn-activitybar__group { display: flex; flex-direction: column; }
1594
+ .agn-activitybar__group--footer { margin-top: auto; }
1595
+ .agn-activitybar__tip { display: flex; }
1596
+ .agn-activitybar__item { position: relative; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 0; background: transparent; color: var(--mute); cursor: pointer; transition: color var(--duration-fast) var(--ease-enter), background-color var(--duration-fast) var(--ease-enter); }
1597
+ .agn-activitybar__item::after { content: ""; position: absolute; top: var(--space-2); bottom: var(--space-2); right: 0; width: 2px; border-radius: var(--radius-full); background: transparent; transition: background-color var(--duration-fast) var(--ease-enter); }
1598
+ .agn-activitybar--right .agn-activitybar__item::after { right: auto; left: 0; }
1599
+ .agn-activitybar__item:hover:not(:disabled) { color: var(--text); background: var(--panel-3); }
1600
+ .agn-activitybar__item--active { color: var(--text); }
1601
+ .agn-activitybar__item--active::after { background: var(--signal); }
1602
+ .agn-activitybar__item:disabled { cursor: not-allowed; opacity: .45; }
1603
+ .agn-activitybar__item .agn-product-icon { color: inherit; }
1604
+ .agn-activitybar__glyph { position: relative; display: inline-flex; align-items: center; justify-content: center; }
1605
+ .agn-activitybar__badge { position: absolute; top: -6px; left: 10px; box-shadow: 0 0 0 2px var(--panel-2); pointer-events: none; }
1606
+ .agn-activitybar__item:hover:not(:disabled) .agn-activitybar__badge { box-shadow: 0 0 0 2px var(--panel-3); }
1607
+
1529
1608
  /* --- 70-feedback.css --- */
1530
1609
  /* feedback: AginiesLoader, Skeleton, PageSkeleton, Alert, Toast, ScopedNotification, Notification, Modal, Prompt, Popover, Tooltip, Spinner, ProgressBar, ProgressRing, SidePanel, DockedComposer, DockedUtilityBar, Publisher, EmptyState */
1531
1610
  /* AginiesLoader — the mark animated by keyframes only; tiers set the size, variants the motion */
@@ -1751,7 +1830,8 @@ button.agn-welcome__step:hover { background: var(--panel-2); }
1751
1830
  /* SidePanel */
1752
1831
  .agn-panel { display: flex; flex-direction: column; width: var(--panel-w); max-width: 100%; background: var(--panel); color: var(--text); border-left: 1px solid var(--line); }
1753
1832
  .agn-panel--lg { width: var(--panel-w-lg); }
1754
- .agn-panel--overlay { position: fixed; top: 0; right: 0; bottom: 0; z-index: var(--z-panel); box-shadow: var(--shadow-sm); animation: agn-panel-in var(--duration-slow) var(--ease-enter); }
1833
+ .agn-panel--overlay { position: fixed; top: 0; right: 0; bottom: 0; z-index: var(--z-panel); max-width: calc(100% - var(--space-7)); box-shadow: var(--shadow-sm); outline: none; animation: agn-panel-in var(--duration-slow) var(--ease-enter); }
1834
+ .agn-panel-scrim { position: fixed; inset: 0; z-index: calc(var(--z-panel) - 1); background: var(--overlay); animation: agn-panel-fade var(--duration-slow) var(--ease-enter); }
1755
1835
  .agn-panel--docked { position: relative; height: 100%; }
1756
1836
  .agn-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); min-height: var(--header-h); padding: var(--space-3) var(--space-3) var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); }
1757
1837
  .agn-panel__heading { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
@@ -1762,6 +1842,7 @@ button.agn-welcome__step:hover { background: var(--panel-2); }
1762
1842
  .agn-panel__body { flex: 1; min-height: 0; overflow: auto; padding: var(--space-4); font-size: 13px; }
1763
1843
  .agn-panel__foot { display: flex; justify-content: flex-end; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-top: 1px solid var(--line); background: var(--panel); }
1764
1844
  @keyframes agn-panel-in { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
1845
+ @keyframes agn-panel-fade { from { opacity: 0; } to { opacity: 1; } }
1765
1846
  /* DockedComposer */
1766
1847
  .agn-composer { position: fixed; bottom: 0; z-index: var(--z-panel); display: flex; flex-direction: column; width: 480px; max-width: calc(100vw - 2 * var(--space-4)); max-height: 70vh; background: var(--panel); color: var(--text); border: 1px solid var(--line-2); border-bottom: 0; border-radius: var(--radius-xl) var(--radius-xl) 0 0; box-shadow: var(--shadow); }
1767
1848
  .agn-composer--right { right: var(--space-5); }
@@ -2273,8 +2354,9 @@ button.agn-block { cursor: pointer; }
2273
2354
  .agn-kpi .agn-stat__chart { margin-top: var(--space-1); }
2274
2355
  /* KpiRow — the page summary: no boxes, hairlines between */
2275
2356
  .agn-kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); row-gap: var(--space-5); padding: var(--space-2) 0; }
2276
- .agn-kpi-row > .agn-kpi--plain { border-left: 1px solid var(--line); }
2277
- .agn-kpi-row > .agn-kpi--plain:first-child { border-left: 0; padding-left: 0; }
2357
+ .agn-kpi-row { margin-left: calc(-1 * var(--space-5)); overflow-x: clip; }
2358
+ /* Each item's divider sits 1px outside its column; the row reaches into its left padding and clips sideways, so whichever item starts a line, however the grid wraps, loses its divider. */
2359
+ .agn-kpi-row > .agn-kpi--plain { border-left: 1px solid var(--line); margin-left: -1px; }
2278
2360
 
2279
2361
  /* ChartCard — unit after the title, headline over the plot, the plot measured so the SVG is never stretched */
2280
2362
  .agn-chart-card__unit { margin-left: var(--space-2); font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .04em; color: var(--mute); }
@@ -2398,9 +2480,10 @@ a.agn-insight__source:hover { color: var(--link-hover); text-decoration: underli
2398
2480
  .agn-flow__spin { animation: agn-spin 1s linear infinite; }
2399
2481
  .agn-flow__version { margin-left: var(--space-2); font-family: var(--font-mono); font-size: 11px; font-weight: 500; color: var(--mute); }
2400
2482
 
2401
- /* LeaderboardWidget — rank · who · bar + value · change */
2483
+ /* LeaderboardWidget — rank · who · bar + value · change; below 400px the bar gives way and the value stays */
2402
2484
  .agn-leader .agn-card__body { padding-top: var(--space-2); }
2403
- .agn-leader__head, .agn-leader__row { display: grid; grid-template-columns: 24px minmax(140px, 1.5fr) minmax(110px, 1fr) 64px; align-items: center; gap: var(--space-3); }
2485
+ .agn-leader { container-type: inline-size; }
2486
+ .agn-leader__head, .agn-leader__row { display: grid; grid-template-columns: 24px minmax(0, 1.5fr) minmax(0, 1fr) 64px; align-items: center; gap: var(--space-3); }
2404
2487
  .agn-leader__head { padding: var(--space-1) 0 var(--space-2); border-bottom: 1px solid var(--line); font-family: var(--font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--mute); }
2405
2488
  .agn-leader__head > span:last-child { text-align: right; }
2406
2489
  .agn-leader__list { list-style: none; margin: 0; padding: 0; }
@@ -2460,3 +2543,4 @@ a.agn-insight__source:hover { color: var(--link-hover); text-decoration: underli
2460
2543
  .agn-comments__list > .agn-empty { padding: var(--space-4) 0; }
2461
2544
  .agn-comments__composer { padding: var(--space-3) var(--space-4); border-top: 1px solid var(--line); background: var(--bg-2); border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
2462
2545
  .agn-comments__mention { color: var(--link); font-weight: 500; }
2546
+ @container (max-width: 400px) { .agn-leader__head, .agn-leader__row { grid-template-columns: 20px minmax(0, 1fr) auto 56px; gap: var(--space-2); } .agn-leader__bar { display: none; } }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aginies/ui",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Aginies Design System components for React: the agn- component layer over @aginies/tokens",
5
5
  "license": "MIT",
6
6
  "author": "Abra Partners",