@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.
- package/README.md +55 -13
- package/dist/css/main.css +554 -7
- package/package.json +3 -1
- package/snippets/buttons.html +51 -0
- package/snippets/cards.html +132 -47
- package/snippets/comparison.html +26 -22
- package/snippets/manifest.json +180 -115
- package/snippets/range-group.html +125 -0
- package/snippets/splitter.html +44 -38
- package/snippets/statistics.html +31 -0
- package/src/js/btn-split-auto-absorb.js +327 -0
- package/src/js/command-palette.js +472 -0
- package/src/js/file-selector.js +1275 -0
- package/src/js/internal/logging.js +121 -0
- package/src/js/logic-tree-renderer.js +303 -0
- package/src/js/modal-dialogs.js +460 -0
- package/src/js/overflow.js +371 -0
- package/src/js/pa-stat-fit.js +184 -0
- package/src/js/range-group.js +663 -0
- package/src/js/search-autocomplete-v2.js +907 -0
- package/src/js/search-autocomplete.js +434 -0
- package/src/js/settings-panel.js +245 -0
- package/src/js/split-button.js +141 -0
- package/src/js/splitter.js +1323 -0
- package/src/js/toast-service.js +302 -0
- package/src/js/tooltips-popovers.js +275 -0
- package/src/js/virtual-scroll.js +143 -0
- package/src/js/virtual-textbox.js +803 -0
- package/src/scss/_core.scss +7 -0
- package/src/scss/core-components/_buttons.scss +44 -0
- package/src/scss/core-components/_cards.scss +95 -6
- package/src/scss/core-components/_overflow.scss +50 -0
- package/src/scss/core-components/_range-group.scss +474 -0
- package/src/scss/core-components/_statistics.scss +163 -0
- package/src/scss/variables/_components.scss +41 -2
package/dist/css/main.css
CHANGED
|
@@ -5471,7 +5471,8 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5471
5471
|
text-overflow: ellipsis;
|
|
5472
5472
|
white-space: nowrap;
|
|
5473
5473
|
}
|
|
5474
|
-
.pa-card__header > p
|
|
5474
|
+
.pa-card__header > p,
|
|
5475
|
+
.pa-card__header > .pa-card__description {
|
|
5475
5476
|
flex: 1;
|
|
5476
5477
|
min-width: 0;
|
|
5477
5478
|
overflow: hidden;
|
|
@@ -5479,6 +5480,8 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5479
5480
|
white-space: nowrap;
|
|
5480
5481
|
color: var(--pa-text-color-2);
|
|
5481
5482
|
font-size: 1.4rem;
|
|
5483
|
+
position: relative;
|
|
5484
|
+
top: var(--pa-card-description-offset-y, 1px);
|
|
5482
5485
|
}
|
|
5483
5486
|
.pa-card__header .pa-card__actions,
|
|
5484
5487
|
.pa-card__header .pa-btn-group {
|
|
@@ -5490,11 +5493,29 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5490
5493
|
.pa-card__header:has(> .pa-card__actions--overflow) > .pa-card__title {
|
|
5491
5494
|
min-width: 6rem;
|
|
5492
5495
|
}
|
|
5496
|
+
.pa-card__header:has(.pa-btn-toolbar) > h1, .pa-card__header:has(.pa-btn-toolbar) > h2, .pa-card__header:has(.pa-btn-toolbar) > h3, .pa-card__header:has(.pa-btn-toolbar) > h4, .pa-card__header:has(.pa-btn-toolbar) > h5, .pa-card__header:has(.pa-btn-toolbar) > h6, .pa-card__header:has(.pa-btn-toolbar) > .pa-card__title {
|
|
5497
|
+
flex-shrink: 9999;
|
|
5498
|
+
min-width: 8rem;
|
|
5499
|
+
}
|
|
5500
|
+
.pa-card__header .pa-card__actions:has(> .pa-btn-toolbar) {
|
|
5501
|
+
flex-shrink: 1;
|
|
5502
|
+
min-width: 0;
|
|
5503
|
+
}
|
|
5493
5504
|
.pa-card__header .pa-btn {
|
|
5494
5505
|
margin-top: -0.25rem;
|
|
5495
5506
|
margin-bottom: -0.25rem;
|
|
5496
5507
|
flex-shrink: 0;
|
|
5497
5508
|
}
|
|
5509
|
+
.pa-card__header .pa-btn-toolbar,
|
|
5510
|
+
.pa-card__header .pa-card__actions--overflow {
|
|
5511
|
+
margin-top: -0.25rem;
|
|
5512
|
+
margin-bottom: -0.25rem;
|
|
5513
|
+
}
|
|
5514
|
+
.pa-card__header .pa-btn-toolbar .pa-btn,
|
|
5515
|
+
.pa-card__header .pa-card__actions--overflow .pa-btn {
|
|
5516
|
+
margin-top: 0;
|
|
5517
|
+
margin-bottom: 0;
|
|
5518
|
+
}
|
|
5498
5519
|
.pa-card__header--underlined h1, .pa-card__header--underlined h2, .pa-card__header--underlined h3, .pa-card__header--underlined h4, .pa-card__header--underlined h5, .pa-card__header--underlined h6 {
|
|
5499
5520
|
border-bottom: 2px solid var(--pa-accent);
|
|
5500
5521
|
padding-bottom: 0.8rem;
|
|
@@ -5541,12 +5562,14 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5541
5562
|
.pa-card__header--wrap {
|
|
5542
5563
|
flex-wrap: wrap;
|
|
5543
5564
|
}
|
|
5544
|
-
.pa-card__header--wrap > h1, .pa-card__header--wrap > h2, .pa-card__header--wrap > h3, .pa-card__header--wrap > h4, .pa-card__header--wrap > h5, .pa-card__header--wrap > h6
|
|
5565
|
+
.pa-card__header--wrap > h1, .pa-card__header--wrap > h2, .pa-card__header--wrap > h3, .pa-card__header--wrap > h4, .pa-card__header--wrap > h5, .pa-card__header--wrap > h6,
|
|
5566
|
+
.pa-card__header--wrap > .pa-card__title .pa-card__title-text {
|
|
5545
5567
|
white-space: normal;
|
|
5546
5568
|
overflow: visible;
|
|
5547
5569
|
text-overflow: clip;
|
|
5548
5570
|
}
|
|
5549
|
-
.pa-card__header--wrap > p
|
|
5571
|
+
.pa-card__header--wrap > p,
|
|
5572
|
+
.pa-card__header--wrap > .pa-card__description {
|
|
5550
5573
|
white-space: normal;
|
|
5551
5574
|
flex-basis: 100%;
|
|
5552
5575
|
order: 1;
|
|
@@ -5557,7 +5580,7 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5557
5580
|
align-items: center;
|
|
5558
5581
|
gap: 0.8rem;
|
|
5559
5582
|
min-width: 0;
|
|
5560
|
-
flex: 1;
|
|
5583
|
+
flex: 0 1 auto;
|
|
5561
5584
|
}
|
|
5562
5585
|
.pa-card__title-icon {
|
|
5563
5586
|
flex-shrink: 0;
|
|
@@ -5572,7 +5595,7 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5572
5595
|
color: var(--pa-text-color-1);
|
|
5573
5596
|
font-size: 1.6rem;
|
|
5574
5597
|
font-weight: 600;
|
|
5575
|
-
line-height: 1;
|
|
5598
|
+
line-height: 1.4;
|
|
5576
5599
|
}
|
|
5577
5600
|
.pa-card__body {
|
|
5578
5601
|
padding: 1.6rem 1rem;
|
|
@@ -5593,6 +5616,10 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5593
5616
|
display: flex;
|
|
5594
5617
|
justify-content: space-between;
|
|
5595
5618
|
align-items: center;
|
|
5619
|
+
gap: 0.8rem;
|
|
5620
|
+
}
|
|
5621
|
+
.pa-card__footer .pa-card__actions {
|
|
5622
|
+
margin-inline-start: auto;
|
|
5596
5623
|
}
|
|
5597
5624
|
.pa-card__actions {
|
|
5598
5625
|
display: flex;
|
|
@@ -6469,6 +6496,7 @@ a.pa-card p {
|
|
|
6469
6496
|
padding: 2.4rem;
|
|
6470
6497
|
min-height: 12.8rem;
|
|
6471
6498
|
min-width: 12.8rem;
|
|
6499
|
+
max-height: 16rem;
|
|
6472
6500
|
position: relative;
|
|
6473
6501
|
border-radius: var(--pa-border-radius);
|
|
6474
6502
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
@@ -6480,7 +6508,7 @@ a.pa-card p {
|
|
|
6480
6508
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
6481
6509
|
}
|
|
6482
6510
|
.pa-stat--square .pa-stat__number {
|
|
6483
|
-
font-size: clamp(3.2rem, 25cqi,
|
|
6511
|
+
font-size: clamp(3.2rem, 25cqi, 7.2rem);
|
|
6484
6512
|
font-weight: 700;
|
|
6485
6513
|
line-height: 1;
|
|
6486
6514
|
color: inherit;
|
|
@@ -6490,7 +6518,7 @@ a.pa-card p {
|
|
|
6490
6518
|
white-space: nowrap;
|
|
6491
6519
|
}
|
|
6492
6520
|
.pa-stat--square .pa-stat__symbol {
|
|
6493
|
-
font-size: clamp(1.6rem, 12cqi,
|
|
6521
|
+
font-size: clamp(1.6rem, 12cqi, 3.6rem);
|
|
6494
6522
|
font-weight: 700;
|
|
6495
6523
|
line-height: 1;
|
|
6496
6524
|
color: inherit;
|
|
@@ -6526,6 +6554,10 @@ a.pa-card p {
|
|
|
6526
6554
|
background-color: var(--pa-warning-bg);
|
|
6527
6555
|
color: var(--pa-btn-warning-text);
|
|
6528
6556
|
}
|
|
6557
|
+
.pa-stat--square.pa-stat--warning .pa-stat__number {
|
|
6558
|
+
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
|
6559
|
+
filter: none;
|
|
6560
|
+
}
|
|
6529
6561
|
.pa-stat--square.pa-stat--danger {
|
|
6530
6562
|
background-color: var(--pa-danger-bg);
|
|
6531
6563
|
color: var(--pa-btn-danger-text);
|
|
@@ -6534,6 +6566,127 @@ a.pa-card p {
|
|
|
6534
6566
|
background-color: var(--pa-text-color-2);
|
|
6535
6567
|
color: var(--pa-btn-primary-text);
|
|
6536
6568
|
}
|
|
6569
|
+
.pa-stat--square[data-pa-stat-fit] {
|
|
6570
|
+
container-type: size;
|
|
6571
|
+
container-name: pa-stat;
|
|
6572
|
+
flex-direction: column;
|
|
6573
|
+
flex-wrap: nowrap;
|
|
6574
|
+
align-content: stretch;
|
|
6575
|
+
align-items: stretch;
|
|
6576
|
+
max-height: none;
|
|
6577
|
+
}
|
|
6578
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__slot {
|
|
6579
|
+
flex: 1 1 auto;
|
|
6580
|
+
min-height: 0;
|
|
6581
|
+
display: flex;
|
|
6582
|
+
align-items: center;
|
|
6583
|
+
justify-content: flex-start;
|
|
6584
|
+
}
|
|
6585
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__group {
|
|
6586
|
+
display: inline-flex;
|
|
6587
|
+
align-items: baseline;
|
|
6588
|
+
column-gap: 0.15em;
|
|
6589
|
+
line-height: 1;
|
|
6590
|
+
white-space: nowrap;
|
|
6591
|
+
font-weight: 700;
|
|
6592
|
+
}
|
|
6593
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__group .pa-stat__number {
|
|
6594
|
+
font-size: 1em;
|
|
6595
|
+
}
|
|
6596
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__group .pa-stat__symbol {
|
|
6597
|
+
font-size: 0.5em;
|
|
6598
|
+
opacity: 0.85;
|
|
6599
|
+
}
|
|
6600
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__meta {
|
|
6601
|
+
display: flex;
|
|
6602
|
+
flex-direction: column;
|
|
6603
|
+
min-width: 0;
|
|
6604
|
+
flex: 0 0 auto;
|
|
6605
|
+
font-size: 1.2rem;
|
|
6606
|
+
}
|
|
6607
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__label {
|
|
6608
|
+
flex: 0 0 auto;
|
|
6609
|
+
margin-top: 0.35em;
|
|
6610
|
+
font-size: 1em;
|
|
6611
|
+
}
|
|
6612
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__change {
|
|
6613
|
+
flex: 0 0 auto;
|
|
6614
|
+
margin-top: 0.35em;
|
|
6615
|
+
font-size: 0.9em;
|
|
6616
|
+
font-weight: 600;
|
|
6617
|
+
line-height: 1.2;
|
|
6618
|
+
color: inherit;
|
|
6619
|
+
white-space: nowrap;
|
|
6620
|
+
overflow: hidden;
|
|
6621
|
+
text-overflow: ellipsis;
|
|
6622
|
+
}
|
|
6623
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__change--positive {
|
|
6624
|
+
color: var(--pa-positive);
|
|
6625
|
+
}
|
|
6626
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__change--neutral {
|
|
6627
|
+
color: var(--pa-neutral);
|
|
6628
|
+
}
|
|
6629
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__change--negative {
|
|
6630
|
+
color: var(--pa-negative);
|
|
6631
|
+
}
|
|
6632
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__context {
|
|
6633
|
+
flex: 0 0 auto;
|
|
6634
|
+
margin-top: 0.35em;
|
|
6635
|
+
font-size: 0.8em;
|
|
6636
|
+
opacity: 0.7;
|
|
6637
|
+
white-space: nowrap;
|
|
6638
|
+
overflow: hidden;
|
|
6639
|
+
text-overflow: ellipsis;
|
|
6640
|
+
}
|
|
6641
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__symbol,
|
|
6642
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__label,
|
|
6643
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__change,
|
|
6644
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__context {
|
|
6645
|
+
display: none;
|
|
6646
|
+
}
|
|
6647
|
+
@container pa-stat (min-width: 8rem) and (min-height: 4.5rem) {
|
|
6648
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__symbol {
|
|
6649
|
+
display: inline;
|
|
6650
|
+
}
|
|
6651
|
+
}
|
|
6652
|
+
@container pa-stat (min-width: 13rem) and (min-height: 6.5rem) {
|
|
6653
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__label {
|
|
6654
|
+
display: block;
|
|
6655
|
+
}
|
|
6656
|
+
}
|
|
6657
|
+
@container pa-stat (min-width: 18rem) and (min-height: 9.5rem) {
|
|
6658
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__change {
|
|
6659
|
+
display: block;
|
|
6660
|
+
}
|
|
6661
|
+
}
|
|
6662
|
+
@container pa-stat (min-width: 24rem) and (min-height: 13rem) {
|
|
6663
|
+
.pa-stat--square[data-pa-stat-fit] .pa-stat__context {
|
|
6664
|
+
display: block;
|
|
6665
|
+
}
|
|
6666
|
+
}
|
|
6667
|
+
.pa-stat--square[data-pa-stat-fit].pa-stat--fit-wide {
|
|
6668
|
+
flex-direction: row;
|
|
6669
|
+
align-items: stretch;
|
|
6670
|
+
column-gap: 2.4rem;
|
|
6671
|
+
}
|
|
6672
|
+
.pa-stat--square[data-pa-stat-fit].pa-stat--fit-wide .pa-stat__slot {
|
|
6673
|
+
flex: 0 0 44%;
|
|
6674
|
+
min-width: 0;
|
|
6675
|
+
justify-content: center;
|
|
6676
|
+
}
|
|
6677
|
+
.pa-stat--square[data-pa-stat-fit].pa-stat--fit-wide .pa-stat__meta {
|
|
6678
|
+
flex: 1 1 auto;
|
|
6679
|
+
min-width: 0;
|
|
6680
|
+
justify-content: center;
|
|
6681
|
+
}
|
|
6682
|
+
.pa-stat--square[data-pa-stat-fit].pa-stat--fit-wide .pa-stat__symbol {
|
|
6683
|
+
display: inline;
|
|
6684
|
+
}
|
|
6685
|
+
.pa-stat--square[data-pa-stat-fit].pa-stat--fit-wide .pa-stat__label,
|
|
6686
|
+
.pa-stat--square[data-pa-stat-fit].pa-stat--fit-wide .pa-stat__change,
|
|
6687
|
+
.pa-stat--square[data-pa-stat-fit].pa-stat--fit-wide .pa-stat__context {
|
|
6688
|
+
display: block;
|
|
6689
|
+
}
|
|
6537
6690
|
|
|
6538
6691
|
.pa-kpi-grid {
|
|
6539
6692
|
margin: -0.8rem;
|
|
@@ -7886,6 +8039,10 @@ a.pa-card p {
|
|
|
7886
8039
|
border-start-start-radius: 0;
|
|
7887
8040
|
border-end-start-radius: 0;
|
|
7888
8041
|
}
|
|
8042
|
+
.pa-btn-split--collapsed > .pa-btn-split__toggle:first-child {
|
|
8043
|
+
border-radius: var(--pa-border-radius);
|
|
8044
|
+
border-inline-start: none;
|
|
8045
|
+
}
|
|
7889
8046
|
.pa-btn-split__toggle {
|
|
7890
8047
|
border-inline-start: 1px solid rgba(255, 255, 255, 0.25);
|
|
7891
8048
|
padding-inline: 0;
|
|
@@ -7983,6 +8140,18 @@ a.pa-card p {
|
|
|
7983
8140
|
opacity: 0.7;
|
|
7984
8141
|
}
|
|
7985
8142
|
|
|
8143
|
+
.pa-btn-toolbar {
|
|
8144
|
+
display: flex;
|
|
8145
|
+
align-items: center;
|
|
8146
|
+
gap: 0.8rem;
|
|
8147
|
+
min-width: 0;
|
|
8148
|
+
overflow: hidden;
|
|
8149
|
+
flex-shrink: 1;
|
|
8150
|
+
}
|
|
8151
|
+
.pa-btn-toolbar > * {
|
|
8152
|
+
flex-shrink: 0;
|
|
8153
|
+
}
|
|
8154
|
+
|
|
7986
8155
|
/* ========================================
|
|
7987
8156
|
Loader Components
|
|
7988
8157
|
Spinners, dots, bars, pulse, ring, wave loaders and animations
|
|
@@ -11858,6 +12027,356 @@ web-multiselect {
|
|
|
11858
12027
|
pointer-events: none;
|
|
11859
12028
|
}
|
|
11860
12029
|
|
|
12030
|
+
/* ========================================
|
|
12031
|
+
Range Group
|
|
12032
|
+
A compact multi-range filter: one toggle that summarises several
|
|
12033
|
+
numeric range filters (e.g. "Age / Salary / Children") inline, and
|
|
12034
|
+
expands into a floating panel with one slider per dimension.
|
|
12035
|
+
|
|
12036
|
+
Two blocks live here, on purpose:
|
|
12037
|
+
|
|
12038
|
+
- .pa-range — the slider primitive. Single- OR dual-thumb,
|
|
12039
|
+
driven entirely by CSS custom properties that JS
|
|
12040
|
+
sets (--_pos on each thumb, --_fill-start /
|
|
12041
|
+
--_fill-end on the fill). Positioning uses LOGICAL
|
|
12042
|
+
properties (inset-inline-*) so RTL mirrors for
|
|
12043
|
+
free — JS only ever deals in 0–100 percentages.
|
|
12044
|
+
- .pa-range-group — the compact control: a __toggle summarising the
|
|
12045
|
+
rows, and a floating __panel of .pa-range rows.
|
|
12046
|
+
The panel is anchored with Floating UI (see the
|
|
12047
|
+
demo's range-group.js, mirroring split-button.js).
|
|
12048
|
+
|
|
12049
|
+
The group is meant to drop into a filter-card __filters row as a
|
|
12050
|
+
single control that stands in for N sliders. See snippets/range-group.html.
|
|
12051
|
+
======================================== */
|
|
12052
|
+
/* ----------------------------------------
|
|
12053
|
+
Slider primitive — pa-range
|
|
12054
|
+
---------------------------------------- */
|
|
12055
|
+
.pa-range {
|
|
12056
|
+
position: relative;
|
|
12057
|
+
height: 2.2rem;
|
|
12058
|
+
touch-action: none;
|
|
12059
|
+
user-select: none;
|
|
12060
|
+
cursor: pointer;
|
|
12061
|
+
}
|
|
12062
|
+
|
|
12063
|
+
.pa-range--ticks-labeled {
|
|
12064
|
+
height: calc(2.2rem + 1.6rem);
|
|
12065
|
+
}
|
|
12066
|
+
.pa-range--ticks-labeled .pa-range__rail {
|
|
12067
|
+
top: calc(2.2rem / 2);
|
|
12068
|
+
}
|
|
12069
|
+
|
|
12070
|
+
.pa-range__rail {
|
|
12071
|
+
position: absolute;
|
|
12072
|
+
inset-inline: calc(var(--pa-range-thumb-size, 1.6rem) / 2);
|
|
12073
|
+
top: 50%;
|
|
12074
|
+
transform: translateY(-50%);
|
|
12075
|
+
height: var(--pa-range-track-height, 0.4rem);
|
|
12076
|
+
}
|
|
12077
|
+
|
|
12078
|
+
.pa-range__track {
|
|
12079
|
+
position: absolute;
|
|
12080
|
+
inset: 0;
|
|
12081
|
+
border-radius: 999px;
|
|
12082
|
+
background-color: var(--pa-range-track, var(--pa-surface-track));
|
|
12083
|
+
}
|
|
12084
|
+
|
|
12085
|
+
.pa-range__fill {
|
|
12086
|
+
position: absolute;
|
|
12087
|
+
top: 0;
|
|
12088
|
+
bottom: 0;
|
|
12089
|
+
height: var(--pa-range-track-height, 0.4rem);
|
|
12090
|
+
border-radius: 999px;
|
|
12091
|
+
background-color: var(--pa-range-fill, var(--pa-accent));
|
|
12092
|
+
inset-inline-start: var(--_fill-start, 0%);
|
|
12093
|
+
inset-inline-end: var(--_fill-end, 0%);
|
|
12094
|
+
}
|
|
12095
|
+
|
|
12096
|
+
/* ---- Tick marks ----
|
|
12097
|
+
Built by range-group.js when a row has data-ticks. The container lives
|
|
12098
|
+
INSIDE the rail (so 0–100% maps to the same travel as the thumbs) and is
|
|
12099
|
+
the rail's first child — painted behind the track/fill, so each tick shows
|
|
12100
|
+
only as protruding ends. Marks are pointer-events:none, so a track click
|
|
12101
|
+
still reaches the .pa-range click-to-seek handler. */
|
|
12102
|
+
.pa-range__ticks {
|
|
12103
|
+
position: absolute;
|
|
12104
|
+
inset: 0;
|
|
12105
|
+
pointer-events: none;
|
|
12106
|
+
}
|
|
12107
|
+
|
|
12108
|
+
.pa-range__tick {
|
|
12109
|
+
position: absolute;
|
|
12110
|
+
top: 50%;
|
|
12111
|
+
inset-inline-start: var(--_pos, 0%);
|
|
12112
|
+
width: 0.1rem;
|
|
12113
|
+
height: 0.9rem;
|
|
12114
|
+
margin-inline-start: calc(0.1rem / -2);
|
|
12115
|
+
transform: translateY(-50%);
|
|
12116
|
+
border-radius: 999px;
|
|
12117
|
+
background-color: var(--pa-range-tick, var(--pa-border-color));
|
|
12118
|
+
}
|
|
12119
|
+
|
|
12120
|
+
.pa-range__tick--major {
|
|
12121
|
+
width: 0.2rem;
|
|
12122
|
+
height: 1.4rem;
|
|
12123
|
+
margin-inline-start: calc(0.2rem / -2);
|
|
12124
|
+
background-color: var(--pa-range-tick-major, var(--pa-text-tertiary));
|
|
12125
|
+
}
|
|
12126
|
+
|
|
12127
|
+
.pa-range__tick-labels {
|
|
12128
|
+
position: absolute;
|
|
12129
|
+
inset-inline: 0;
|
|
12130
|
+
top: calc(100% + 0.3rem);
|
|
12131
|
+
height: 0;
|
|
12132
|
+
pointer-events: none;
|
|
12133
|
+
}
|
|
12134
|
+
|
|
12135
|
+
.pa-range__tick-label {
|
|
12136
|
+
position: absolute;
|
|
12137
|
+
inset-inline-start: var(--_pos, 0%);
|
|
12138
|
+
transform: translateX(-50%);
|
|
12139
|
+
font-size: 1rem;
|
|
12140
|
+
color: var(--pa-text-tertiary);
|
|
12141
|
+
white-space: nowrap;
|
|
12142
|
+
font-variant-numeric: tabular-nums;
|
|
12143
|
+
}
|
|
12144
|
+
|
|
12145
|
+
.pa-range__thumb {
|
|
12146
|
+
--_thumb-w: var(--pa-range-thumb-size, 1.6rem);
|
|
12147
|
+
--_thumb-h: var(--pa-range-thumb-size, 1.6rem);
|
|
12148
|
+
position: absolute;
|
|
12149
|
+
top: 50%;
|
|
12150
|
+
inset-inline-start: var(--_pos, 0%);
|
|
12151
|
+
margin-inline-start: calc(var(--_thumb-w) / -2);
|
|
12152
|
+
transform: translateY(-50%);
|
|
12153
|
+
width: var(--_thumb-w);
|
|
12154
|
+
height: var(--_thumb-h);
|
|
12155
|
+
padding: 0;
|
|
12156
|
+
border: 0.2rem solid var(--pa-range-thumb-border, var(--pa-accent));
|
|
12157
|
+
border-radius: 50%;
|
|
12158
|
+
background-color: var(--pa-range-thumb-bg, var(--pa-card-bg));
|
|
12159
|
+
cursor: grab;
|
|
12160
|
+
touch-action: none;
|
|
12161
|
+
transition: box-shadow 0.15s ease, border-color 0.15s ease;
|
|
12162
|
+
}
|
|
12163
|
+
.pa-range__thumb:hover {
|
|
12164
|
+
border-color: var(--pa-range-thumb-border-hover, var(--pa-accent-hover));
|
|
12165
|
+
}
|
|
12166
|
+
.pa-range__thumb:focus-visible {
|
|
12167
|
+
outline: none;
|
|
12168
|
+
box-shadow: 0 0 0 0.3rem var(--pa-range-focus-ring, var(--pa-accent-light));
|
|
12169
|
+
}
|
|
12170
|
+
.pa-range__thumb:active, .pa-range__thumb.pa-range__thumb--grabbing {
|
|
12171
|
+
cursor: grabbing;
|
|
12172
|
+
box-shadow: 0 0 0 0.3rem var(--pa-range-focus-ring, var(--pa-accent-light));
|
|
12173
|
+
}
|
|
12174
|
+
|
|
12175
|
+
/* ---- Handle shapes ----
|
|
12176
|
+
Modifiers on .pa-range that restyle its thumbs. Purely cosmetic — no JS
|
|
12177
|
+
involvement — so a shape can be mixed per row. Each just overrides the
|
|
12178
|
+
private size props + border-radius; centring follows automatically. */
|
|
12179
|
+
.pa-range--handle-rect .pa-range__thumb {
|
|
12180
|
+
--_thumb-w: 1.2rem;
|
|
12181
|
+
--_thumb-h: 1.9rem;
|
|
12182
|
+
border-radius: var(--pa-border-radius-sm);
|
|
12183
|
+
}
|
|
12184
|
+
|
|
12185
|
+
.pa-range--handle-bar .pa-range__thumb {
|
|
12186
|
+
--_thumb-w: 0.35rem;
|
|
12187
|
+
--_thumb-h: 2.2rem;
|
|
12188
|
+
border-radius: 999px;
|
|
12189
|
+
background-color: var(--pa-range-thumb-border, var(--pa-accent));
|
|
12190
|
+
}
|
|
12191
|
+
.pa-range--handle-bar .pa-range__thumb:hover {
|
|
12192
|
+
background-color: var(--pa-range-thumb-border-hover, var(--pa-accent-hover));
|
|
12193
|
+
}
|
|
12194
|
+
|
|
12195
|
+
.pa-range--handle-arrow .pa-range__thumb {
|
|
12196
|
+
--_thumb-w: 1.6rem;
|
|
12197
|
+
--_thumb-h: 2rem;
|
|
12198
|
+
border-radius: var(--pa-border-radius-sm);
|
|
12199
|
+
}
|
|
12200
|
+
.pa-range--handle-arrow .pa-range__thumb::before {
|
|
12201
|
+
content: "";
|
|
12202
|
+
position: absolute;
|
|
12203
|
+
top: 50%;
|
|
12204
|
+
inset-inline-start: 50%;
|
|
12205
|
+
width: 0.5rem;
|
|
12206
|
+
height: 0.5rem;
|
|
12207
|
+
border-block-start: 0.2rem solid var(--pa-range-thumb-border, var(--pa-accent));
|
|
12208
|
+
border-inline-end: 0.2rem solid var(--pa-range-thumb-border, var(--pa-accent));
|
|
12209
|
+
transform: translateX(-0.177rem) translate(-50%, -50%) rotate(45deg);
|
|
12210
|
+
}
|
|
12211
|
+
|
|
12212
|
+
.pa-range--handle-arrow .pa-range__thumb--min::before {
|
|
12213
|
+
transform: translateX(0.177rem) translate(-50%, -50%) rotate(-135deg);
|
|
12214
|
+
}
|
|
12215
|
+
|
|
12216
|
+
.pa-range--handle-needle .pa-range__thumb {
|
|
12217
|
+
--_thumb-w: 1.2rem;
|
|
12218
|
+
--_thumb-h: 2.2rem;
|
|
12219
|
+
background-color: transparent;
|
|
12220
|
+
border-color: transparent;
|
|
12221
|
+
border-radius: var(--pa-border-radius-sm);
|
|
12222
|
+
}
|
|
12223
|
+
.pa-range--handle-needle .pa-range__thumb::before {
|
|
12224
|
+
content: "";
|
|
12225
|
+
position: absolute;
|
|
12226
|
+
inset-inline-start: 50%;
|
|
12227
|
+
bottom: 50%;
|
|
12228
|
+
width: 1.2rem;
|
|
12229
|
+
height: 1.1rem;
|
|
12230
|
+
margin-inline-start: calc(1.2rem / -2);
|
|
12231
|
+
background-color: var(--pa-range-thumb-border, var(--pa-accent));
|
|
12232
|
+
clip-path: polygon(50% 100%, 0 0, 100% 0);
|
|
12233
|
+
transition: background-color 0.15s ease;
|
|
12234
|
+
}
|
|
12235
|
+
.pa-range--handle-needle .pa-range__thumb:hover::before {
|
|
12236
|
+
background-color: var(--pa-range-thumb-border-hover, var(--pa-accent-hover));
|
|
12237
|
+
}
|
|
12238
|
+
|
|
12239
|
+
.pa-range--single .pa-range__thumb--min {
|
|
12240
|
+
display: none;
|
|
12241
|
+
}
|
|
12242
|
+
|
|
12243
|
+
.pa-range--disabled {
|
|
12244
|
+
opacity: 0.5;
|
|
12245
|
+
pointer-events: none;
|
|
12246
|
+
}
|
|
12247
|
+
|
|
12248
|
+
/* ----------------------------------------
|
|
12249
|
+
Compact control — pa-range-group
|
|
12250
|
+
---------------------------------------- */
|
|
12251
|
+
.pa-range-group {
|
|
12252
|
+
position: relative;
|
|
12253
|
+
display: inline-flex;
|
|
12254
|
+
}
|
|
12255
|
+
|
|
12256
|
+
.pa-range-group__toggle {
|
|
12257
|
+
display: inline-flex;
|
|
12258
|
+
align-items: center;
|
|
12259
|
+
gap: 1.2rem;
|
|
12260
|
+
width: 100%;
|
|
12261
|
+
padding: 0.8rem 1.2rem;
|
|
12262
|
+
border: 1px solid var(--pa-border-color);
|
|
12263
|
+
border-radius: var(--pa-border-radius);
|
|
12264
|
+
background-color: var(--pa-input-bg);
|
|
12265
|
+
color: var(--pa-text-color-1);
|
|
12266
|
+
font-size: 1.4rem;
|
|
12267
|
+
line-height: 1.3;
|
|
12268
|
+
text-align: start;
|
|
12269
|
+
cursor: pointer;
|
|
12270
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
12271
|
+
}
|
|
12272
|
+
.pa-range-group__toggle:hover {
|
|
12273
|
+
border-color: var(--pa-accent-hover);
|
|
12274
|
+
}
|
|
12275
|
+
.pa-range-group__toggle:focus-visible {
|
|
12276
|
+
outline: none;
|
|
12277
|
+
border-color: var(--pa-accent);
|
|
12278
|
+
box-shadow: 0 0 0 0.3rem var(--pa-accent-light);
|
|
12279
|
+
}
|
|
12280
|
+
|
|
12281
|
+
.pa-range-group__summary {
|
|
12282
|
+
flex: 1;
|
|
12283
|
+
min-width: 0;
|
|
12284
|
+
font-size: 1.4rem;
|
|
12285
|
+
white-space: nowrap;
|
|
12286
|
+
overflow: hidden;
|
|
12287
|
+
text-overflow: ellipsis;
|
|
12288
|
+
}
|
|
12289
|
+
|
|
12290
|
+
.pa-range-group__seg-label {
|
|
12291
|
+
font-size: 1rem;
|
|
12292
|
+
font-weight: 600;
|
|
12293
|
+
letter-spacing: 0.02em;
|
|
12294
|
+
text-transform: uppercase;
|
|
12295
|
+
color: var(--pa-text-tertiary);
|
|
12296
|
+
}
|
|
12297
|
+
|
|
12298
|
+
.pa-range-group__seg-value {
|
|
12299
|
+
font-weight: 500;
|
|
12300
|
+
color: var(--pa-text-color-1);
|
|
12301
|
+
font-variant-numeric: tabular-nums;
|
|
12302
|
+
}
|
|
12303
|
+
|
|
12304
|
+
.pa-range-group__seg-value--empty {
|
|
12305
|
+
color: var(--pa-text-tertiary);
|
|
12306
|
+
font-weight: 400;
|
|
12307
|
+
}
|
|
12308
|
+
|
|
12309
|
+
.pa-range-group__seg-sep {
|
|
12310
|
+
color: var(--pa-text-tertiary);
|
|
12311
|
+
margin-inline: 0.4rem;
|
|
12312
|
+
}
|
|
12313
|
+
|
|
12314
|
+
.pa-range-group__caret {
|
|
12315
|
+
flex-shrink: 0;
|
|
12316
|
+
font-size: 1.2rem;
|
|
12317
|
+
color: var(--pa-text-secondary);
|
|
12318
|
+
transition: transform 0.2s ease;
|
|
12319
|
+
}
|
|
12320
|
+
|
|
12321
|
+
.pa-range-group--open .pa-range-group__caret {
|
|
12322
|
+
transform: rotate(180deg);
|
|
12323
|
+
}
|
|
12324
|
+
|
|
12325
|
+
/* ---- Floating panel ---- */
|
|
12326
|
+
.pa-range-group__panel {
|
|
12327
|
+
display: none;
|
|
12328
|
+
flex-direction: column;
|
|
12329
|
+
gap: 2.4rem;
|
|
12330
|
+
min-width: var(--pa-range-group-panel-min-width, 32rem);
|
|
12331
|
+
padding: 1.6rem;
|
|
12332
|
+
border: 1px solid var(--pa-border-color);
|
|
12333
|
+
border-radius: var(--pa-border-radius-lg);
|
|
12334
|
+
background-color: var(--pa-card-bg);
|
|
12335
|
+
box-shadow: var(--pa-detail-shadow);
|
|
12336
|
+
z-index: 7500;
|
|
12337
|
+
}
|
|
12338
|
+
.pa-range-group__panel.pa-range-group__panel--open {
|
|
12339
|
+
display: flex;
|
|
12340
|
+
}
|
|
12341
|
+
|
|
12342
|
+
.pa-range-group__row {
|
|
12343
|
+
display: flex;
|
|
12344
|
+
flex-direction: column;
|
|
12345
|
+
gap: 0.8rem;
|
|
12346
|
+
}
|
|
12347
|
+
|
|
12348
|
+
.pa-range-group__row-head {
|
|
12349
|
+
display: flex;
|
|
12350
|
+
align-items: baseline;
|
|
12351
|
+
justify-content: space-between;
|
|
12352
|
+
gap: 0.8rem;
|
|
12353
|
+
}
|
|
12354
|
+
|
|
12355
|
+
.pa-range-group__row-label {
|
|
12356
|
+
font-size: 1.4rem;
|
|
12357
|
+
font-weight: 600;
|
|
12358
|
+
color: var(--pa-text-color-1);
|
|
12359
|
+
}
|
|
12360
|
+
|
|
12361
|
+
.pa-range-group__row-value {
|
|
12362
|
+
font-size: 1.4rem;
|
|
12363
|
+
font-weight: 500;
|
|
12364
|
+
font-variant-numeric: tabular-nums;
|
|
12365
|
+
color: var(--pa-range-fill, var(--pa-accent));
|
|
12366
|
+
}
|
|
12367
|
+
.pa-range-group__row-value.pa-range-group__row-value--empty {
|
|
12368
|
+
color: var(--pa-text-tertiary);
|
|
12369
|
+
}
|
|
12370
|
+
|
|
12371
|
+
.pa-range-group__actions {
|
|
12372
|
+
display: flex;
|
|
12373
|
+
justify-content: flex-end;
|
|
12374
|
+
gap: 0.8rem;
|
|
12375
|
+
margin-top: 0.4rem;
|
|
12376
|
+
padding-top: 2.4rem;
|
|
12377
|
+
border-top: 1px solid var(--pa-border-color);
|
|
12378
|
+
}
|
|
12379
|
+
|
|
11861
12380
|
/* ========================================
|
|
11862
12381
|
Comparison Table Component
|
|
11863
12382
|
Two-column and three-column comparison tables for version control, data changes, and merge operations
|
|
@@ -15450,6 +15969,34 @@ code {
|
|
|
15450
15969
|
background-color: #007bff;
|
|
15451
15970
|
}
|
|
15452
15971
|
|
|
15972
|
+
/* ========================================
|
|
15973
|
+
Overflow (progressive-collapse row)
|
|
15974
|
+
|
|
15975
|
+
Generic primitive: a horizontal flex row whose children get walked into
|
|
15976
|
+
a "more" menu when the row can't fit, driven by `overflow.js`. Use
|
|
15977
|
+
anywhere you want a button toolbar, breadcrumb row, chip row, or tab bar
|
|
15978
|
+
to collapse gracefully on narrow widths.
|
|
15979
|
+
|
|
15980
|
+
<div class="pa-overflow" data-pa-actions-overflow-from="end">
|
|
15981
|
+
<button class="pa-btn pa-btn--xs">Save</button>
|
|
15982
|
+
<button class="pa-btn pa-btn--xs" data-pa-actions-priority="10">Run</button>
|
|
15983
|
+
</div>
|
|
15984
|
+
|
|
15985
|
+
The card-flavoured alias `pa-card__actions--overflow` carries equivalent
|
|
15986
|
+
rules under `.pa-card__header` (see `_cards.scss`); both wire into the
|
|
15987
|
+
same JS module. ======================================== */
|
|
15988
|
+
.pa-overflow {
|
|
15989
|
+
display: flex;
|
|
15990
|
+
align-items: center;
|
|
15991
|
+
gap: 0.8rem;
|
|
15992
|
+
min-width: 0;
|
|
15993
|
+
overflow: hidden;
|
|
15994
|
+
flex-shrink: 1;
|
|
15995
|
+
}
|
|
15996
|
+
.pa-overflow > * {
|
|
15997
|
+
flex-shrink: 0;
|
|
15998
|
+
}
|
|
15999
|
+
|
|
15453
16000
|
/* ========================================
|
|
15454
16001
|
Data Display Components
|
|
15455
16002
|
Read-only label-value field pairs
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keenmate/pure-admin-core",
|
|
3
|
-
"version": "2.9.0-
|
|
3
|
+
"version": "2.9.0-rc05",
|
|
4
4
|
"description": "Lightweight, data-focused HTML/CSS admin framework built with PureCSS foundation and comprehensive component system",
|
|
5
5
|
"style": "dist/css/main.css",
|
|
6
6
|
"exports": {
|
|
@@ -9,11 +9,13 @@
|
|
|
9
9
|
"./css/*": "./dist/css/*",
|
|
10
10
|
"./scss": "./src/scss/main.scss",
|
|
11
11
|
"./scss/*": "./src/scss/*",
|
|
12
|
+
"./js/*": "./src/js/*",
|
|
12
13
|
"./snippets/*": "./snippets/*"
|
|
13
14
|
},
|
|
14
15
|
"files": [
|
|
15
16
|
"dist/",
|
|
16
17
|
"src/scss/",
|
|
18
|
+
"src/js/",
|
|
17
19
|
"schemas/",
|
|
18
20
|
"scripts/pack-theme.js",
|
|
19
21
|
"snippets/",
|