@keenmate/pure-admin-core 1.1.2 → 1.2.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/README.md CHANGED
@@ -77,6 +77,7 @@ The `snippets/` directory contains clean HTML patterns for all components:
77
77
  - `utilities.html` - Utility classes
78
78
  - `virtual-scroll.html` - Virtual scrolling
79
79
  - `web-daterangepicker.html` - Date range picker web component
80
+ - `detail-panel.html` - Detail panel (inline, overlay, full-screen)
80
81
  - `web-multiselect.html` - Multiselect web component
81
82
 
82
83
  These snippets are the canonical reference for building framework components in any frontend framework (React, Vue, Svelte, etc.).
@@ -151,6 +152,10 @@ This enables dark mode support for web components like `@keenmate/web-grid` that
151
152
  - `.pa-card__header` - Card header
152
153
  - `.pa-card__body` - Card body
153
154
  - `.pa-card__footer` - Card footer
155
+ - **Semantic variants:** `.pa-card--primary/success/danger/warning`
156
+ - **Theme color variants:** `.pa-card--color-1` through `.pa-card--color-9`
157
+ - Uses `--pa-color-N` for header background and border
158
+ - Text color automatically adjusts via `--pa-color-N-text` for readability
154
159
 
155
160
  ### Layout & Sidebar
156
161
  - `.pa-layout` - Main layout container
@@ -230,7 +235,9 @@ This enables dark mode support for web components like `@keenmate/web-grid` that
230
235
  ### Tooltips & Popovers
231
236
  - `.pa-tooltip` - Base tooltip (pure CSS, no JS required)
232
237
  - `.pa-tooltip--top/right/bottom/left` - Positioning
233
- - `.pa-tooltip--primary/success/warning/danger` - Variants
238
+ - `.pa-tooltip--primary/success/warning/danger` - Semantic variants
239
+ - `.pa-tooltip--color-1` through `.pa-tooltip--color-9` - Theme color variants
240
+ - Text color automatically adjusts via `--pa-color-N-text` for readability
234
241
  - `.pa-tooltip--multiline` - Multiline tooltips
235
242
  - `.pa-popover` - Base popover (requires JavaScript)
236
243
  - `.pa-popover--sm/md/lg` - Sizes
@@ -304,6 +311,26 @@ This enables dark mode support for web components like `@keenmate/web-grid` that
304
311
  - `.pa-notifications__time` - Timestamp
305
312
  - `.pa-notifications__footer` - Panel footer with "View all" link
306
313
 
314
+ ### Detail Panel
315
+ - `.pa-detail-view` - Flex wrapper for inline split-view (table + panel side by side)
316
+ - `.pa-detail-view__main` - Left side (table area), `flex: 1`
317
+ - `.pa-detail-view__panel` - Right side panel, hidden by default (`width: 0`)
318
+ - `.pa-detail-view__panel--open` - Shows panel with configured width
319
+ - `.pa-detail-view--overlay` - Card overlay modifier (panel overlays table within card)
320
+ - `.pa-detail-view__overlay` - Backdrop element (click to close), use `--visible` to show
321
+ - `.pa-detail-panel--overlay` - Full-screen overlay mode (fixed position, like profile panel)
322
+ - `.pa-detail-panel--open` - Makes overlay panel visible with slide-in transition
323
+ - `.pa-detail-panel__content` - Panel content wrapper (flex column: header/body/footer)
324
+ - `.pa-detail-panel__header` - Panel header with title, optional action buttons, close button
325
+ - `.pa-detail-panel__title` - Truncated panel title
326
+ - `.pa-detail-panel__close` - Close button
327
+ - `.pa-detail-panel__tabs` - Optional tab navigation (between header and body)
328
+ - `.pa-detail-panel__body` - Scrollable body area
329
+ - `.pa-detail-panel__footer` - Fixed footer with action buttons
330
+ - `.pa-detail-panel__overlay` - Backdrop (overlay mode, click to close)
331
+ - `.pa-detail-panel-resize` - Drag handle on left edge for resizing
332
+ - `.is-selected` - Applied to `<tr>` to highlight selected row
333
+
307
334
  ### Profile Panel
308
335
  - `.pa-profile-panel` - Slide-in profile panel
309
336
  - `.pa-profile-panel--open` - Open state
@@ -342,12 +369,16 @@ This enables dark mode support for web components like `@keenmate/web-grid` that
342
369
  - `.pa-bg-color-1` through `.pa-bg-color-9` - Background color slots
343
370
  - `.pa-text-color-1` through `.pa-text-color-9` - Text color slots
344
371
  - `.pa-border-color-1` through `.pa-border-color-9` - Border color slots
372
+ - **CSS Variables:**
373
+ - `--pa-color-1` through `--pa-color-9` - Background colors (theme-defined)
374
+ - `--pa-color-1-text` through `--pa-color-9-text` - Contrast text colors for readability on colored backgrounds
345
375
 
346
376
  ## SCSS Variables
347
377
 
348
378
  All components use SCSS variables with `!default` flags, making them fully customizable:
349
379
 
350
380
  - **Colors**: `$main-bg`, `$page-bg`, `$subtle-bg`, `$accent-color`, `$text-color-1`, `$text-color-2`, etc.
381
+ - **Theme Color Slots**: `$color-1` through `$color-9` (background colors), `$color-1-text` through `$color-9-text` (contrast text colors)
351
382
  - **Spacing**: `$spacing-xs` through `$spacing-2xl`
352
383
  - **Typography**: `$font-size-*`, `$line-height-*`, `$font-weight-*`
353
384
  - **Components**: `$btn-*`, `$card-*`, `$table-*`, etc.
package/dist/css/main.css CHANGED
@@ -5385,6 +5385,141 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
5385
5385
  .pa-card--stat .pa-card__body {
5386
5386
  padding: 2.4rem 1.6rem;
5387
5387
  }
5388
+ .pa-card--color-1 {
5389
+ border-color: var(--pa-color-1);
5390
+ }
5391
+ .pa-card--color-1 .pa-card__header {
5392
+ background-color: var(--pa-color-1);
5393
+ color: var(--pa-color-1-text);
5394
+ }
5395
+ .pa-card--color-1 .pa-card__header h1,
5396
+ .pa-card--color-1 .pa-card__header h2,
5397
+ .pa-card--color-1 .pa-card__header h3,
5398
+ .pa-card--color-1 .pa-card__header h4,
5399
+ .pa-card--color-1 .pa-card__header h5,
5400
+ .pa-card--color-1 .pa-card__header h6 {
5401
+ color: var(--pa-color-1-text);
5402
+ }
5403
+ .pa-card--color-2 {
5404
+ border-color: var(--pa-color-2);
5405
+ }
5406
+ .pa-card--color-2 .pa-card__header {
5407
+ background-color: var(--pa-color-2);
5408
+ color: var(--pa-color-2-text);
5409
+ }
5410
+ .pa-card--color-2 .pa-card__header h1,
5411
+ .pa-card--color-2 .pa-card__header h2,
5412
+ .pa-card--color-2 .pa-card__header h3,
5413
+ .pa-card--color-2 .pa-card__header h4,
5414
+ .pa-card--color-2 .pa-card__header h5,
5415
+ .pa-card--color-2 .pa-card__header h6 {
5416
+ color: var(--pa-color-2-text);
5417
+ }
5418
+ .pa-card--color-3 {
5419
+ border-color: var(--pa-color-3);
5420
+ }
5421
+ .pa-card--color-3 .pa-card__header {
5422
+ background-color: var(--pa-color-3);
5423
+ color: var(--pa-color-3-text);
5424
+ }
5425
+ .pa-card--color-3 .pa-card__header h1,
5426
+ .pa-card--color-3 .pa-card__header h2,
5427
+ .pa-card--color-3 .pa-card__header h3,
5428
+ .pa-card--color-3 .pa-card__header h4,
5429
+ .pa-card--color-3 .pa-card__header h5,
5430
+ .pa-card--color-3 .pa-card__header h6 {
5431
+ color: var(--pa-color-3-text);
5432
+ }
5433
+ .pa-card--color-4 {
5434
+ border-color: var(--pa-color-4);
5435
+ }
5436
+ .pa-card--color-4 .pa-card__header {
5437
+ background-color: var(--pa-color-4);
5438
+ color: var(--pa-color-4-text);
5439
+ }
5440
+ .pa-card--color-4 .pa-card__header h1,
5441
+ .pa-card--color-4 .pa-card__header h2,
5442
+ .pa-card--color-4 .pa-card__header h3,
5443
+ .pa-card--color-4 .pa-card__header h4,
5444
+ .pa-card--color-4 .pa-card__header h5,
5445
+ .pa-card--color-4 .pa-card__header h6 {
5446
+ color: var(--pa-color-4-text);
5447
+ }
5448
+ .pa-card--color-5 {
5449
+ border-color: var(--pa-color-5);
5450
+ }
5451
+ .pa-card--color-5 .pa-card__header {
5452
+ background-color: var(--pa-color-5);
5453
+ color: var(--pa-color-5-text);
5454
+ }
5455
+ .pa-card--color-5 .pa-card__header h1,
5456
+ .pa-card--color-5 .pa-card__header h2,
5457
+ .pa-card--color-5 .pa-card__header h3,
5458
+ .pa-card--color-5 .pa-card__header h4,
5459
+ .pa-card--color-5 .pa-card__header h5,
5460
+ .pa-card--color-5 .pa-card__header h6 {
5461
+ color: var(--pa-color-5-text);
5462
+ }
5463
+ .pa-card--color-6 {
5464
+ border-color: var(--pa-color-6);
5465
+ }
5466
+ .pa-card--color-6 .pa-card__header {
5467
+ background-color: var(--pa-color-6);
5468
+ color: var(--pa-color-6-text);
5469
+ }
5470
+ .pa-card--color-6 .pa-card__header h1,
5471
+ .pa-card--color-6 .pa-card__header h2,
5472
+ .pa-card--color-6 .pa-card__header h3,
5473
+ .pa-card--color-6 .pa-card__header h4,
5474
+ .pa-card--color-6 .pa-card__header h5,
5475
+ .pa-card--color-6 .pa-card__header h6 {
5476
+ color: var(--pa-color-6-text);
5477
+ }
5478
+ .pa-card--color-7 {
5479
+ border-color: var(--pa-color-7);
5480
+ }
5481
+ .pa-card--color-7 .pa-card__header {
5482
+ background-color: var(--pa-color-7);
5483
+ color: var(--pa-color-7-text);
5484
+ }
5485
+ .pa-card--color-7 .pa-card__header h1,
5486
+ .pa-card--color-7 .pa-card__header h2,
5487
+ .pa-card--color-7 .pa-card__header h3,
5488
+ .pa-card--color-7 .pa-card__header h4,
5489
+ .pa-card--color-7 .pa-card__header h5,
5490
+ .pa-card--color-7 .pa-card__header h6 {
5491
+ color: var(--pa-color-7-text);
5492
+ }
5493
+ .pa-card--color-8 {
5494
+ border-color: var(--pa-color-8);
5495
+ }
5496
+ .pa-card--color-8 .pa-card__header {
5497
+ background-color: var(--pa-color-8);
5498
+ color: var(--pa-color-8-text);
5499
+ }
5500
+ .pa-card--color-8 .pa-card__header h1,
5501
+ .pa-card--color-8 .pa-card__header h2,
5502
+ .pa-card--color-8 .pa-card__header h3,
5503
+ .pa-card--color-8 .pa-card__header h4,
5504
+ .pa-card--color-8 .pa-card__header h5,
5505
+ .pa-card--color-8 .pa-card__header h6 {
5506
+ color: var(--pa-color-8-text);
5507
+ }
5508
+ .pa-card--color-9 {
5509
+ border-color: var(--pa-color-9);
5510
+ }
5511
+ .pa-card--color-9 .pa-card__header {
5512
+ background-color: var(--pa-color-9);
5513
+ color: var(--pa-color-9-text);
5514
+ }
5515
+ .pa-card--color-9 .pa-card__header h1,
5516
+ .pa-card--color-9 .pa-card__header h2,
5517
+ .pa-card--color-9 .pa-card__header h3,
5518
+ .pa-card--color-9 .pa-card__header h4,
5519
+ .pa-card--color-9 .pa-card__header h5,
5520
+ .pa-card--color-9 .pa-card__header h6 {
5521
+ color: var(--pa-color-9-text);
5522
+ }
5388
5523
  .pa-card__tabs {
5389
5524
  display: flex;
5390
5525
  border-bottom: 1px solid var(--pa-border-color);
@@ -7590,6 +7725,7 @@ a.pa-card p {
7590
7725
  }
7591
7726
  .pa-tooltip--color-1::before {
7592
7727
  background-color: var(--pa-color-1);
7728
+ color: var(--pa-color-1-text);
7593
7729
  }
7594
7730
  .pa-tooltip--color-1::after {
7595
7731
  border-top-color: var(--pa-color-1);
@@ -7608,6 +7744,7 @@ a.pa-card p {
7608
7744
  }
7609
7745
  .pa-tooltip--color-2::before {
7610
7746
  background-color: var(--pa-color-2);
7747
+ color: var(--pa-color-2-text);
7611
7748
  }
7612
7749
  .pa-tooltip--color-2::after {
7613
7750
  border-top-color: var(--pa-color-2);
@@ -7626,6 +7763,7 @@ a.pa-card p {
7626
7763
  }
7627
7764
  .pa-tooltip--color-3::before {
7628
7765
  background-color: var(--pa-color-3);
7766
+ color: var(--pa-color-3-text);
7629
7767
  }
7630
7768
  .pa-tooltip--color-3::after {
7631
7769
  border-top-color: var(--pa-color-3);
@@ -7644,6 +7782,7 @@ a.pa-card p {
7644
7782
  }
7645
7783
  .pa-tooltip--color-4::before {
7646
7784
  background-color: var(--pa-color-4);
7785
+ color: var(--pa-color-4-text);
7647
7786
  }
7648
7787
  .pa-tooltip--color-4::after {
7649
7788
  border-top-color: var(--pa-color-4);
@@ -7662,6 +7801,7 @@ a.pa-card p {
7662
7801
  }
7663
7802
  .pa-tooltip--color-5::before {
7664
7803
  background-color: var(--pa-color-5);
7804
+ color: var(--pa-color-5-text);
7665
7805
  }
7666
7806
  .pa-tooltip--color-5::after {
7667
7807
  border-top-color: var(--pa-color-5);
@@ -7680,6 +7820,7 @@ a.pa-card p {
7680
7820
  }
7681
7821
  .pa-tooltip--color-6::before {
7682
7822
  background-color: var(--pa-color-6);
7823
+ color: var(--pa-color-6-text);
7683
7824
  }
7684
7825
  .pa-tooltip--color-6::after {
7685
7826
  border-top-color: var(--pa-color-6);
@@ -7698,6 +7839,7 @@ a.pa-card p {
7698
7839
  }
7699
7840
  .pa-tooltip--color-7::before {
7700
7841
  background-color: var(--pa-color-7);
7842
+ color: var(--pa-color-7-text);
7701
7843
  }
7702
7844
  .pa-tooltip--color-7::after {
7703
7845
  border-top-color: var(--pa-color-7);
@@ -7716,6 +7858,7 @@ a.pa-card p {
7716
7858
  }
7717
7859
  .pa-tooltip--color-8::before {
7718
7860
  background-color: var(--pa-color-8);
7861
+ color: var(--pa-color-8-text);
7719
7862
  }
7720
7863
  .pa-tooltip--color-8::after {
7721
7864
  border-top-color: var(--pa-color-8);
@@ -7734,6 +7877,7 @@ a.pa-card p {
7734
7877
  }
7735
7878
  .pa-tooltip--color-9::before {
7736
7879
  background-color: var(--pa-color-9);
7880
+ color: var(--pa-color-9-text);
7737
7881
  }
7738
7882
  .pa-tooltip--color-9::after {
7739
7883
  border-top-color: var(--pa-color-9);
@@ -7966,30 +8110,39 @@ a.pa-card p {
7966
8110
  }
7967
8111
  .pa-tooltip-floating.pa-tooltip--color-1 {
7968
8112
  background-color: var(--pa-color-1);
8113
+ color: var(--pa-color-1-text);
7969
8114
  }
7970
8115
  .pa-tooltip-floating.pa-tooltip--color-2 {
7971
8116
  background-color: var(--pa-color-2);
8117
+ color: var(--pa-color-2-text);
7972
8118
  }
7973
8119
  .pa-tooltip-floating.pa-tooltip--color-3 {
7974
8120
  background-color: var(--pa-color-3);
8121
+ color: var(--pa-color-3-text);
7975
8122
  }
7976
8123
  .pa-tooltip-floating.pa-tooltip--color-4 {
7977
8124
  background-color: var(--pa-color-4);
8125
+ color: var(--pa-color-4-text);
7978
8126
  }
7979
8127
  .pa-tooltip-floating.pa-tooltip--color-5 {
7980
8128
  background-color: var(--pa-color-5);
8129
+ color: var(--pa-color-5-text);
7981
8130
  }
7982
8131
  .pa-tooltip-floating.pa-tooltip--color-6 {
7983
8132
  background-color: var(--pa-color-6);
8133
+ color: var(--pa-color-6-text);
7984
8134
  }
7985
8135
  .pa-tooltip-floating.pa-tooltip--color-7 {
7986
8136
  background-color: var(--pa-color-7);
8137
+ color: var(--pa-color-7-text);
7987
8138
  }
7988
8139
  .pa-tooltip-floating.pa-tooltip--color-8 {
7989
8140
  background-color: var(--pa-color-8);
8141
+ color: var(--pa-color-8-text);
7990
8142
  }
7991
8143
  .pa-tooltip-floating.pa-tooltip--color-9 {
7992
8144
  background-color: var(--pa-color-9);
8145
+ color: var(--pa-color-9-text);
7993
8146
  }
7994
8147
 
7995
8148
  /* ========================================
@@ -8710,6 +8863,7 @@ a.pa-card p {
8710
8863
  .pa-input-group__prepend {
8711
8864
  background-color: var(--pa-input-group-prepend-bg);
8712
8865
  color: var(--pa-input-group-prepend-text);
8866
+ border-color: var(--pa-input-group-prepend-bg);
8713
8867
  border-right: none;
8714
8868
  }
8715
8869
  .pa-input-group__prepend:first-child {
@@ -8719,6 +8873,7 @@ a.pa-card p {
8719
8873
  .pa-input-group__append {
8720
8874
  background-color: var(--pa-input-group-append-bg);
8721
8875
  color: var(--pa-input-group-append-text);
8876
+ border-color: var(--pa-input-group-append-bg);
8722
8877
  border-left: none;
8723
8878
  }
8724
8879
  .pa-input-group__append:last-child {
@@ -8726,10 +8881,10 @@ a.pa-card p {
8726
8881
  border-bottom-right-radius: 4px;
8727
8882
  }
8728
8883
  .pa-input-group__prepend + .pa-input-group__prepend {
8729
- border-left: 1px solid var(--pa-border-color);
8884
+ border-left: 1px solid var(--pa-input-group-prepend-bg);
8730
8885
  }
8731
8886
  .pa-input-group__append + .pa-input-group__append {
8732
- border-left: 1px solid var(--pa-border-color);
8887
+ border-left: 1px solid var(--pa-input-group-append-bg);
8733
8888
  }
8734
8889
  .pa-input-group:has(.pa-input:focus) .pa-input-group__prepend {
8735
8890
  border-right: 1px solid var(--pa-input-focus-border-color);
@@ -13146,6 +13301,269 @@ code {
13146
13301
  padding: 0.4rem 0.8rem;
13147
13302
  }
13148
13303
 
13304
+ /* ========================================
13305
+ Detail Panel Components
13306
+ Inline split-view and overlay detail panels
13307
+ ======================================== */
13308
+ :root {
13309
+ --pa-local-detail-panel-width: 40rem;
13310
+ --pa-local-detail-panel-max-width: 64rem;
13311
+ }
13312
+
13313
+ :where(.pa-detail-view__panel) {
13314
+ width: var(--pa-local-detail-panel-width);
13315
+ max-width: var(--pa-local-detail-panel-max-width);
13316
+ }
13317
+
13318
+ .pa-detail-view {
13319
+ display: flex;
13320
+ gap: 0;
13321
+ width: 100%;
13322
+ }
13323
+ .pa-detail-view__main {
13324
+ flex: 1;
13325
+ min-width: 0;
13326
+ overflow: auto;
13327
+ }
13328
+ .pa-detail-view__panel {
13329
+ width: 0;
13330
+ min-width: 0;
13331
+ overflow: hidden;
13332
+ flex-shrink: 0;
13333
+ border-left: 0 solid var(--pa-border-color);
13334
+ }
13335
+ .pa-detail-view__panel--open {
13336
+ width: var(--pa-local-detail-panel-width);
13337
+ min-width: 28rem;
13338
+ max-width: var(--pa-local-detail-panel-max-width);
13339
+ border-left-width: 1px;
13340
+ overflow: visible;
13341
+ }
13342
+
13343
+ .pa-detail-view--overlay {
13344
+ position: relative;
13345
+ overflow: hidden;
13346
+ }
13347
+ .pa-detail-view--overlay .pa-detail-view__panel {
13348
+ position: absolute;
13349
+ top: 0;
13350
+ right: 0;
13351
+ height: 100%;
13352
+ z-index: 2;
13353
+ }
13354
+
13355
+ .pa-detail-view__overlay {
13356
+ position: absolute;
13357
+ top: 0;
13358
+ left: 0;
13359
+ width: 100%;
13360
+ height: 100%;
13361
+ background-color: var(--pa-detail-panel-overlay-bg);
13362
+ z-index: 1;
13363
+ opacity: 0;
13364
+ visibility: hidden;
13365
+ cursor: pointer;
13366
+ }
13367
+ .pa-detail-view__overlay--visible {
13368
+ opacity: 1;
13369
+ visibility: visible;
13370
+ }
13371
+
13372
+ .pa-detail-panel--overlay {
13373
+ position: fixed;
13374
+ top: 0;
13375
+ right: 0;
13376
+ height: 100vh;
13377
+ z-index: 4500;
13378
+ pointer-events: none;
13379
+ opacity: 0;
13380
+ visibility: hidden;
13381
+ }
13382
+ .pa-detail-panel--overlay.pa-detail-panel--open {
13383
+ opacity: 1;
13384
+ visibility: visible;
13385
+ pointer-events: all;
13386
+ }
13387
+ .pa-detail-panel--overlay.pa-detail-panel--open .pa-detail-panel__content {
13388
+ transform: translateX(0);
13389
+ }
13390
+
13391
+ .pa-detail-panel__content {
13392
+ display: flex;
13393
+ flex-direction: column;
13394
+ height: 100%;
13395
+ background-color: var(--pa-card-bg);
13396
+ position: relative;
13397
+ }
13398
+ .pa-detail-panel--overlay .pa-detail-panel__content {
13399
+ position: absolute;
13400
+ top: 0;
13401
+ right: 0;
13402
+ height: 100vh;
13403
+ width: var(--pa-local-detail-panel-width);
13404
+ max-width: var(--pa-local-detail-panel-max-width);
13405
+ box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
13406
+ transform: translateX(100%);
13407
+ }
13408
+
13409
+ .pa-detail-panel__overlay {
13410
+ position: absolute;
13411
+ top: 0;
13412
+ left: 0;
13413
+ width: 100vw;
13414
+ height: 100vh;
13415
+ background-color: var(--pa-detail-panel-overlay-bg);
13416
+ cursor: pointer;
13417
+ }
13418
+
13419
+ .pa-detail-panel__header {
13420
+ flex-shrink: 0;
13421
+ display: flex;
13422
+ align-items: center;
13423
+ gap: 0.8rem;
13424
+ padding: 1.2rem 1.6rem;
13425
+ border-bottom: 1px solid var(--pa-border-color);
13426
+ background-color: var(--pa-card-bg);
13427
+ min-height: 0;
13428
+ }
13429
+
13430
+ .pa-detail-panel__title {
13431
+ flex: 1;
13432
+ margin: 0;
13433
+ font-size: 1.8rem;
13434
+ font-weight: 600;
13435
+ color: var(--pa-text-color-1);
13436
+ overflow: hidden;
13437
+ text-overflow: ellipsis;
13438
+ white-space: nowrap;
13439
+ }
13440
+
13441
+ .pa-detail-panel__close {
13442
+ width: 3.2rem;
13443
+ height: 3.2rem;
13444
+ flex-shrink: 0;
13445
+ background: none;
13446
+ border: none;
13447
+ cursor: pointer;
13448
+ display: flex;
13449
+ align-items: center;
13450
+ justify-content: center;
13451
+ color: var(--pa-text-color-2);
13452
+ border-radius: 4px;
13453
+ }
13454
+ .pa-detail-panel__close:hover {
13455
+ background-color: var(--pa-accent-light);
13456
+ color: var(--pa-accent);
13457
+ }
13458
+ .pa-detail-panel__close:focus {
13459
+ outline: 2px solid var(--pa-accent);
13460
+ outline-offset: 2px;
13461
+ }
13462
+
13463
+ .pa-detail-panel__tabs {
13464
+ flex-shrink: 0;
13465
+ padding: 0 1.6rem;
13466
+ border-bottom: 1px solid var(--pa-border-color);
13467
+ background-color: var(--pa-card-bg);
13468
+ }
13469
+ .pa-detail-panel__tabs .pa-tabs__item {
13470
+ color: var(--pa-text-color-2);
13471
+ border-bottom-color: transparent;
13472
+ }
13473
+ .pa-detail-panel__tabs .pa-tabs__item:hover {
13474
+ color: var(--pa-text-color-1);
13475
+ background-color: var(--pa-accent-light);
13476
+ }
13477
+ .pa-detail-panel__tabs .pa-tabs__item--active {
13478
+ color: var(--pa-text-color-1);
13479
+ border-bottom-color: var(--pa-accent);
13480
+ }
13481
+
13482
+ .pa-detail-panel__body {
13483
+ flex: 1;
13484
+ overflow-y: auto;
13485
+ padding: 1.2rem 1.6rem;
13486
+ }
13487
+
13488
+ .pa-detail-panel__footer {
13489
+ flex-shrink: 0;
13490
+ padding: 1.2rem 1.6rem;
13491
+ border-top: 1px solid var(--pa-border-color);
13492
+ background-color: var(--pa-card-bg);
13493
+ display: flex;
13494
+ align-items: center;
13495
+ gap: 0.8rem;
13496
+ }
13497
+
13498
+ .pa-detail-panel-resize {
13499
+ position: absolute;
13500
+ top: 0;
13501
+ left: 0;
13502
+ width: 6px;
13503
+ height: 100%;
13504
+ cursor: col-resize;
13505
+ z-index: 1;
13506
+ }
13507
+ .pa-detail-panel-resize:hover, .pa-detail-panel-resize--active {
13508
+ background-color: var(--pa-accent);
13509
+ opacity: 0.3;
13510
+ }
13511
+
13512
+ .pa-detail-panel-resizing {
13513
+ cursor: col-resize !important;
13514
+ user-select: none !important;
13515
+ }
13516
+
13517
+ .pa-table tbody tr.is-selected {
13518
+ background-color: var(--pa-detail-panel-selected-bg);
13519
+ }
13520
+ .pa-table tbody tr.is-selected:hover {
13521
+ background-color: var(--pa-detail-panel-selected-bg);
13522
+ }
13523
+
13524
+ @media (max-width: 768px) {
13525
+ .pa-detail-view__panel {
13526
+ display: none;
13527
+ }
13528
+ .pa-detail-panel--mobile-overlay {
13529
+ display: block;
13530
+ position: fixed;
13531
+ top: 0;
13532
+ right: 0;
13533
+ height: 100vh;
13534
+ z-index: 4500;
13535
+ pointer-events: none;
13536
+ opacity: 0;
13537
+ visibility: hidden;
13538
+ }
13539
+ .pa-detail-panel--mobile-overlay.pa-detail-panel--open {
13540
+ opacity: 1;
13541
+ visibility: visible;
13542
+ pointer-events: all;
13543
+ }
13544
+ .pa-detail-panel--mobile-overlay.pa-detail-panel--open .pa-detail-panel__content {
13545
+ transform: translateX(0);
13546
+ }
13547
+ .pa-detail-panel--mobile-overlay .pa-detail-panel__content {
13548
+ position: absolute;
13549
+ top: 0;
13550
+ right: 0;
13551
+ height: 100vh;
13552
+ width: 90vw;
13553
+ max-width: none;
13554
+ box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
13555
+ transform: translateX(100%);
13556
+ }
13557
+ .pa-detail-panel--mobile-overlay .pa-detail-panel__overlay {
13558
+ position: absolute;
13559
+ top: 0;
13560
+ left: 0;
13561
+ width: 100vw;
13562
+ height: 100vh;
13563
+ background-color: var(--pa-detail-panel-overlay-bg);
13564
+ cursor: pointer;
13565
+ }
13566
+ }
13149
13567
  /* ========================================
13150
13568
  Settings Panel Component
13151
13569
  Floating panel for global settings management
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keenmate/pure-admin-core",
3
- "version": "1.1.2",
3
+ "version": "1.2.0",
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": {