@keenmate/pure-admin-core 2.9.0-rc03 → 2.9.0-rc05

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.
Files changed (35) hide show
  1. package/README.md +55 -13
  2. package/dist/css/main.css +554 -7
  3. package/package.json +3 -1
  4. package/snippets/buttons.html +51 -0
  5. package/snippets/cards.html +132 -47
  6. package/snippets/comparison.html +26 -22
  7. package/snippets/manifest.json +180 -115
  8. package/snippets/range-group.html +125 -0
  9. package/snippets/splitter.html +44 -38
  10. package/snippets/statistics.html +31 -0
  11. package/src/js/btn-split-auto-absorb.js +327 -0
  12. package/src/js/command-palette.js +472 -0
  13. package/src/js/file-selector.js +1275 -0
  14. package/src/js/internal/logging.js +121 -0
  15. package/src/js/logic-tree-renderer.js +303 -0
  16. package/src/js/modal-dialogs.js +460 -0
  17. package/src/js/overflow.js +371 -0
  18. package/src/js/pa-stat-fit.js +184 -0
  19. package/src/js/range-group.js +663 -0
  20. package/src/js/search-autocomplete-v2.js +907 -0
  21. package/src/js/search-autocomplete.js +434 -0
  22. package/src/js/settings-panel.js +245 -0
  23. package/src/js/split-button.js +141 -0
  24. package/src/js/splitter.js +1323 -0
  25. package/src/js/toast-service.js +302 -0
  26. package/src/js/tooltips-popovers.js +275 -0
  27. package/src/js/virtual-scroll.js +143 -0
  28. package/src/js/virtual-textbox.js +803 -0
  29. package/src/scss/_core.scss +7 -0
  30. package/src/scss/core-components/_buttons.scss +44 -0
  31. package/src/scss/core-components/_cards.scss +95 -6
  32. package/src/scss/core-components/_overflow.scss +50 -0
  33. package/src/scss/core-components/_range-group.scss +474 -0
  34. package/src/scss/core-components/_statistics.scss +163 -0
  35. package/src/scss/variables/_components.scss +41 -2
@@ -176,6 +176,13 @@ $card-body-padding-h: 1rem !default; // 10px horizontal
176
176
  $card-header-padding-v: 0.5rem !default; // 5px vertical
177
177
  $card-header-padding-h: 1rem !default; // 10px horizontal - matches body
178
178
  $card-header-min-height: 4rem !default; // 40px - fits xs buttons (32px) with padding
179
+ // Vertical nudge that drops the (smaller) header description onto the title's
180
+ // baseline. Under the header's center alignment a 16px title and 14px
181
+ // description don't share a baseline, leaving the description ~1px high. The
182
+ // exact correction is font-metric dependent, so it's exposed as a variable
183
+ // (SCSS default here + `--pa-card-description-offset-y` at runtime) that themes
184
+ // with a different font can retune. Set to 0 to disable the nudge entirely.
185
+ $card-description-offset-y: 1px !default;
179
186
  $card-footer-padding-v: 1.2rem !default; // 12px vertical
180
187
  $card-footer-padding-h: 1rem !default; // 10px horizontal - matches body
181
188
  $card-grid-min-width: 280px !default;
@@ -355,11 +362,43 @@ $stat-square-symbol-gap: 0.15em !default; // tight gap between number and symb
355
362
  // (~250–400px). Numbers are sized aggressively so the KPI reads as the dominant element.
356
363
  $stat-square-number-min: 3.2rem !default; // 32px floor
357
364
  $stat-square-number-scale: 25cqi !default; // 25% of tile width
358
- $stat-square-number-max: 9.6rem !default; // 96px ceiling (was 7.2/6.4bumped so wide tiles render large)
365
+ $stat-square-number-max: 7.2rem !default; // 72px ceiling (was 9.6 — full-width tiles hit the ceiling and read as oversized banners; 72px keeps a wide tile readable without dominating the page)
359
366
  // Symbol is intentionally smaller than the number (visual hierarchy: number primary, unit secondary).
360
367
  $stat-square-symbol-min: 1.6rem !default; // 16px floor (~50% of number-min)
361
368
  $stat-square-symbol-scale: 12cqi !default; // 12% of tile width (~48% of number)
362
- $stat-square-symbol-max: 4.8rem !default; // 48px ceiling (~50% of number-max)
369
+ $stat-square-symbol-max: 3.6rem !default; // 36px ceiling (~50% of number-max, was 4.8)
370
+
371
+ // Guard so a very wide tile (e.g. one square per full-width row instead of in a
372
+ // 1/3 KPI column) can't grow into a page-dominating block. Caps how tall the
373
+ // flex layout gets before the label is pushed to the bottom edge.
374
+ $stat-square-max-height: 16rem !default; // 160px
375
+
376
+ // Stat square FIT mode (opt-in via [data-pa-stat-fit]) — progressive disclosure.
377
+ // The number is sized to fill the box by pa-stat-fit.js (ResizeObserver); the
378
+ // lower-priority rows reveal as the tile earns BOTH enough width and height.
379
+ // NB: @container does NOT auto-interpolate Sass vars (unlike @media) — these
380
+ // must be emitted with #{} in the rules. Gated on width AND height so a
381
+ // wide-but-short banner doesn't reveal the tall-only tiers.
382
+ $stat-square-fit-container-name: pa-stat !default;
383
+ $stat-square-fit-meta-size: $font-size-xs !default; // no-JS fallback for the metadata
384
+ // column; pa-stat-fit.js overrides it
385
+ // inline with META_RATIO × number size
386
+ $stat-square-fit-symbol-ratio: 0.5 !default; // symbol = 0.5em of the number
387
+ $stat-square-fit-symbol-min-w: 8rem !default; // P1 symbol reveals at…
388
+ $stat-square-fit-symbol-min-h: 4.5rem !default;
389
+ $stat-square-fit-label-min-w: 13rem !default; // P2 label
390
+ $stat-square-fit-label-min-h: 6.5rem !default;
391
+ $stat-square-fit-change-min-w: 18rem !default; // P3 trend
392
+ $stat-square-fit-change-min-h: 9.5rem !default;
393
+ $stat-square-fit-context-min-w: 24rem !default; // P4 context
394
+ $stat-square-fit-context-min-h: 13rem !default;
395
+
396
+ // Horizontal "banner" arrangement: on wide tiles the number moves to the left
397
+ // (filling the height) and the metadata stacks in a column to its right, so the
398
+ // number stays dominant and the width isn't wasted. Auto-switches once the tile
399
+ // is at least this wide (plain width query — broadest engine support).
400
+ $stat-square-fit-horizontal-min-w: 32rem !default; // ≥ this wide → horizontal banner
401
+ $stat-square-fit-number-width: 44% !default; // number column share in horizontal
363
402
 
364
403
  // Stat shadow values
365
404
  $stat-text-shadow-1-y: 4px !default;