@keenmate/pure-admin-core 2.4.0 → 2.6.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.
Files changed (48) hide show
  1. package/README.md +16 -9
  2. package/dist/css/main.css +177 -266
  3. package/package.json +1 -1
  4. package/snippets/AUDIT.md +94 -0
  5. package/snippets/alerts.html +264 -89
  6. package/snippets/badges.html +193 -61
  7. package/snippets/buttons.html +178 -0
  8. package/snippets/callouts.html +210 -129
  9. package/snippets/cards.html +383 -200
  10. package/snippets/checkbox-lists.html +199 -65
  11. package/snippets/code.html +55 -11
  12. package/snippets/command-palette.html +401 -111
  13. package/snippets/comparison.html +144 -93
  14. package/snippets/customization.html +311 -104
  15. package/snippets/data-display.html +584 -0
  16. package/snippets/detail-panel.html +470 -138
  17. package/snippets/filter-card.html +246 -0
  18. package/snippets/forms.html +408 -308
  19. package/snippets/grid.html +253 -141
  20. package/snippets/layout.html +379 -480
  21. package/snippets/lists.html +144 -47
  22. package/snippets/loaders.html +64 -39
  23. package/snippets/manifest.json +330 -280
  24. package/snippets/modal-dialogs.html +137 -64
  25. package/snippets/modals.html +221 -151
  26. package/snippets/notifications.html +285 -0
  27. package/snippets/popconfirm.html +213 -19
  28. package/snippets/profile.html +290 -330
  29. package/snippets/statistics.html +247 -0
  30. package/snippets/tables.html +359 -150
  31. package/snippets/tabs.html +129 -45
  32. package/snippets/timeline.html +123 -56
  33. package/snippets/toasts.html +179 -31
  34. package/snippets/tooltips.html +199 -81
  35. package/snippets/typography.html +183 -58
  36. package/snippets/utilities.html +511 -415
  37. package/snippets/virtual-scroll.html +201 -75
  38. package/snippets/web-daterangepicker.html +369 -189
  39. package/snippets/web-multiselect.html +360 -124
  40. package/src/scss/_base-css-variables.scss +123 -16
  41. package/src/scss/core-components/_alerts.scss +51 -12
  42. package/src/scss/core-components/_data-viz.scss +2 -2
  43. package/src/scss/core-components/_pagers.scss +1 -1
  44. package/src/scss/core-components/_popconfirm.scss +35 -13
  45. package/src/scss/core-components/_statistics.scss +15 -18
  46. package/src/scss/core-components/_tables.scss +2 -134
  47. package/src/scss/variables/_base.scss +15 -3
  48. package/src/scss/variables/_components.scss +40 -14
@@ -108,7 +108,7 @@ $base-tooltip-text-color: #ffffff !default;
108
108
  // Success/positive semantic colors
109
109
  // =============================================================================
110
110
 
111
- $base-success-color: #28a745 !default;
111
+ $base-success-color: #22c55e !default; // Tailwind green-500 — aligns with --pa-positive in the sentiment scale
112
112
  $base-success-color-hover: color.adjust($base-success-color, $lightness: -10%) !default;
113
113
  $base-success-bg-light: rgba($base-success-color, 0.1) !default;
114
114
  $base-success-bg-subtle: rgba($base-success-color, 0.08) !default;
@@ -122,7 +122,7 @@ $base-text-on-success: #ffffff !default;
122
122
  // Danger/error semantic colors
123
123
  // =============================================================================
124
124
 
125
- $base-danger-color: #dc3545 !default;
125
+ $base-danger-color: #ef4444 !default; // Tailwind red-500 — aligns with --pa-negative in the sentiment scale
126
126
  $base-danger-color-hover: color.adjust($base-danger-color, $lightness: -10%) !default;
127
127
  $base-danger-bg-light: rgba($base-danger-color, 0.1) !default;
128
128
  $base-danger-bg-subtle: rgba($base-danger-color, 0.08) !default;
@@ -136,7 +136,7 @@ $base-text-on-danger: #ffffff !default;
136
136
  // Warning semantic colors
137
137
  // =============================================================================
138
138
 
139
- $base-warning-color: #ffc107 !default;
139
+ $base-warning-color: #f97316 !default; // Tailwind orange-500 — also serves as the off-target axis in KPI components
140
140
  $base-warning-color-hover: color.adjust($base-warning-color, $lightness: -10%) !default;
141
141
  $base-warning-bg-light: rgba($base-warning-color, 0.1) !default;
142
142
  $base-warning-bg-subtle: rgba($base-warning-color, 0.08) !default;
@@ -159,6 +159,18 @@ $base-info-text: #0c5460 !default;
159
159
  $base-info-text-light: #d1ecf1 !default;
160
160
  $base-text-on-info: #ffffff !default;
161
161
 
162
+ // =============================================================================
163
+ // SENTIMENT SCALE — 5-step direction-of-change
164
+ // Used by KPI / data-display components to indicate movement direction.
165
+ // `--pa-positive` and `--pa-negative` alias the role colours above; the
166
+ // outlier shades (`very-positive` / `very-negative`) are explicit darker
167
+ // stops since they're not derivable cleanly via color.adjust.
168
+ // =============================================================================
169
+
170
+ $base-very-positive: #16a34a !default; // Tailwind green-600 — outlier positive
171
+ $base-very-negative: #dc2626 !default; // Tailwind red-600 — outlier negative
172
+ $base-neutral: #9ca3af !default; // Tailwind gray-400 — "no meaningful change"
173
+
162
174
  // =============================================================================
163
175
  // INTERACTIVE STATES
164
176
  // Generic interaction feedback colors
@@ -295,8 +295,23 @@ $multiselect-selected-popover-width: 32rem !default; // 320px (was 20rem)
295
295
  // ============================================================================
296
296
  // ALERT SYSTEM
297
297
  // ============================================================================
298
- $alert-padding-v: $card-footer-padding-v !default;
299
- $alert-padding-h: $card-footer-padding-h !default;
298
+ // Default alert padding — decoupled from $card-footer-padding so alerts
299
+ // can have their own scale. The previous coupling left default with V
300
+ // padding (1.2rem) bigger than --lg's (1rem) and H padding (1rem) equal
301
+ // to --sm's, so default sat visually outside the size scale instead of
302
+ // in the middle.
303
+ $alert-padding-v: $spacing-md !default; // 0.75rem
304
+ $alert-padding-h: 1.25rem !default; // sits between --sm (1rem) and --lg (1.5rem)
305
+
306
+ // Size-modifier scales — themes can override to tighten/loosen each size
307
+ // independently. V steps 0.5 → 0.75 → 1, H steps 1 → 1.25 → 1.5.
308
+ $alert-padding-sm-v: $spacing-sm !default; // 0.5rem
309
+ $alert-padding-sm-h: $spacing-base !default; // 1rem
310
+ $alert-font-size-sm: $font-size-xs !default; // 1.2rem (12px)
311
+ $alert-padding-lg-v: $spacing-base !default; // 1rem
312
+ $alert-padding-lg-h: $spacing-lg !default; // 1.5rem
313
+ $alert-font-size-lg: $font-size-base !default; // 1.6rem (16px)
314
+
300
315
  $alert-dismissible-padding-right: 4.8rem !default; // 48px (was 3rem)
301
316
  $alert-close-opacity: $opacity-muted !default;
302
317
  $alert-icon-margin: $spacing-sm !default;
@@ -321,15 +336,26 @@ $stat-square-min-size: 12.8rem !default; // 128px (was 8rem)
321
336
  $stat-label-letter-spacing: 0.05em !default;
322
337
  $stat-change-margin-bottom: 0.4rem !default; // 4px (was 0.25rem)
323
338
  $stat-number-margin-bottom: $spacing-xs !default;
324
- $stat-symbol-opacity: $opacity-shadow !default;
325
-
326
- // Stat square clamp values (10px base)
327
- $stat-square-number-min: 4.8rem !default; // 48px (was 3rem)
328
- $stat-square-number-scale: 8vw !default;
329
- $stat-square-number-max: 7.2rem !default; // 72px (was 4.5rem)
330
- $stat-square-symbol-min: 6.4rem !default; // 64px (was 4rem)
331
- $stat-square-symbol-scale: 10vw !default;
332
- $stat-square-symbol-max: 9.6rem !default; // 96px (was 6rem)
339
+ $stat-symbol-opacity: 0.85 !default;
340
+ $stat-square-symbol-gap: 0.15em !default; // tight gap between number and symbol on the same row
341
+
342
+ // Stat square clamp values (10px base).
343
+ // Scale uses `cqi` (container query inline-size, requires `container-type: inline-size`
344
+ // on .pa-stat--square) so font tracks the tile width, not the viewport. Without this,
345
+ // a wide-viewport / narrow-tile combination (e.g. 6 KPIs in a 33% column on 1920px)
346
+ // hits the max font size and overflows multi-character values like "$847K" or "¥12.4M".
347
+ //
348
+ // Sizing budget: a 5-char number ("12.4M") at $stat-square-number-scale plus a 1-char
349
+ // symbol at $stat-square-symbol-scale plus the inter-element gap should fit inside the
350
+ // tile's content area (tile width minus 2× $spacing-lg padding) at typical tile widths
351
+ // (~250–400px). Numbers are sized aggressively so the KPI reads as the dominant element.
352
+ $stat-square-number-min: 3.2rem !default; // 32px floor
353
+ $stat-square-number-scale: 25cqi !default; // 25% of tile width
354
+ $stat-square-number-max: 9.6rem !default; // 96px ceiling (was 7.2/6.4 — bumped so wide tiles render large)
355
+ // Symbol is intentionally smaller than the number (visual hierarchy: number primary, unit secondary).
356
+ $stat-square-symbol-min: 1.6rem !default; // 16px floor (~50% of number-min)
357
+ $stat-square-symbol-scale: 12cqi !default; // 12% of tile width (~48% of number)
358
+ $stat-square-symbol-max: 4.8rem !default; // 48px ceiling (~50% of number-max)
333
359
 
334
360
  // Stat shadow values
335
361
  $stat-text-shadow-1-y: 4px !default;
@@ -689,7 +715,7 @@ $progress-height: 0.8rem !default; // 8px
689
715
  $progress-height-xs: 0.3rem !default; // 3px
690
716
  $progress-height-sm: 0.5rem !default; // 5px
691
717
  $progress-height-lg: 1.2rem !default; // 12px
692
- $progress-bg: rgba(0, 0, 0, 0.08) !default;
718
+ $progress-bg: color-mix(in srgb, var(--pa-text-color-1) 12%, transparent) !default;
693
719
  $progress-border-radius: $border-radius !default;
694
720
  $progress-stripe-angle: 45deg !default;
695
721
  $progress-stripe-size: 1.6rem !default; // 16px
@@ -708,14 +734,14 @@ $stacked-bar-legend-font-size: $font-size-xs !default;
708
734
  $progress-ring-size: 8rem !default; // 80px
709
735
  $progress-ring-size-sm: 5rem !default; // 50px
710
736
  $progress-ring-size-lg: 11rem !default; // 110px
711
- $progress-ring-track-color: rgba(0, 0, 0, 0.08) !default;
737
+ $progress-ring-track-color: color-mix(in srgb, var(--pa-text-color-1) 12%, transparent) !default;
712
738
  $progress-ring-value-font-size: $font-size-lg !default;
713
739
  $progress-ring-value-font-weight: $font-weight-bold !default;
714
740
  $progress-ring-label-font-size: $font-size-2xs !default;
715
741
 
716
742
  // Gauge (pa-gauge)
717
743
  $gauge-size: 12rem !default; // 120px
718
- $gauge-track-color: rgba(0, 0, 0, 0.08) !default;
744
+ $gauge-track-color: color-mix(in srgb, var(--pa-text-color-1) 12%, transparent) !default;
719
745
  $gauge-label-font-size: $font-size-xs !default;
720
746
  $gauge-value-font-size: $font-size-2xl !default;
721
747
  $gauge-value-font-weight: $font-weight-bold !default;