@keenmate/pure-admin-core 1.4.0 → 1.5.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.
@@ -45,7 +45,7 @@
45
45
  <!-- Three-section layout: Left / Center / Right -->
46
46
  <footer class="pa-layout__footer">
47
47
  <!-- Left Section (stays anchored left) -->
48
- <div class="pa-footer__left">
48
+ <div class="pa-footer__start">
49
49
  <p>&copy; 2024 Pure Admin Framework</p>
50
50
  </div>
51
51
 
@@ -55,7 +55,7 @@
55
55
  </div>
56
56
 
57
57
  <!-- Right Section (stays anchored right) -->
58
- <div class="pa-footer__right">
58
+ <div class="pa-footer__end">
59
59
  <span>App version: 1.2.1</span>
60
60
  <span>Database version: 2.3.1</span>
61
61
  <a href="#">Open Source Licenses</a>
@@ -435,7 +435,7 @@ NOTE: Fixed width (.wr-*) overrides both default and resizable width.
435
435
  <nav class="pa-navbar">
436
436
  <div class="pa-navbar__inner">
437
437
  <!-- Left Section: Burger, Brand, Left Nav (stays anchored left) -->
438
- <div class="pa-header__left">
438
+ <div class="pa-header__start">
439
439
  <!-- Hamburger Menu (burger) -->
440
440
  <button class="pa-header__burger burger-menu" onclick="toggleSidebar()" aria-label="Toggle sidebar">
441
441
  <span></span>
@@ -449,7 +449,7 @@ NOTE: Fixed width (.wr-*) overrides both default and resizable width.
449
449
  </div>
450
450
 
451
451
  <!-- Left Navigation Links -->
452
- <nav class="pa-header__nav pa-header__nav--left">
452
+ <nav class="pa-header__nav pa-header__nav--start">
453
453
  <ul>
454
454
  <li><a href="/">Dashboard</a></li>
455
455
  <li><a href="/components">Components</a></li>
@@ -466,9 +466,9 @@ NOTE: Fixed width (.wr-*) overrides both default and resizable width.
466
466
  </div>
467
467
 
468
468
  <!-- Right Section: Right Nav, Notifications, Profile (stays anchored right) -->
469
- <div class="pa-header__right">
469
+ <div class="pa-header__end">
470
470
  <!-- Right Navigation Links -->
471
- <nav class="pa-header__nav pa-header__nav--right">
471
+ <nav class="pa-header__nav pa-header__nav--end">
472
472
  <ul>
473
473
  <li><a href="/alerts">Alerts</a></li>
474
474
  <li><a href="/tables">Tables</a></li>
@@ -596,16 +596,16 @@ NAVBAR CLASSES:
596
596
  - .pa-navbar__inner - Navbar inner container
597
597
 
598
598
  HEADER SECTION CONTAINERS (inside pa-navbar__inner):
599
- - .pa-header__left - Left section (burger, brand, nav--left) - stays anchored left
599
+ - .pa-header__start - Start section (burger, brand, nav--start) - stays anchored to start
600
600
  - .pa-header__center - Center section (title) - flexible, fills space
601
- - .pa-header__right - Right section (nav--right, notifications, profile) - stays anchored right
601
+ - .pa-header__end - End section (nav--end, notifications, profile) - stays anchored to end
602
602
 
603
603
  HEADER/NAVBAR ELEMENT CLASSES (inside section containers):
604
604
  - .pa-header__burger - Burger menu button
605
605
  - .burger-menu - Burger menu class (same as __burger)
606
606
  - .pa-header__brand - Brand/logo area
607
607
  - .pa-header__nav - Navigation container
608
- - .pa-header__nav--left/right - Navigation alignment
608
+ - .pa-header__nav--start/right - Navigation alignment
609
609
  - .pa-header__title - Page title area (flexible, with ellipsis)
610
610
  - .pa-notifications - Notification bell container
611
611
  - .pa-header__profile-btn - Profile button
@@ -621,9 +621,9 @@ LAYOUT CLASSES:
621
621
  - .pa-layout__footer - Footer container
622
622
 
623
623
  FOOTER SECTION CONTAINERS (inside pa-layout__footer):
624
- - .pa-footer__left - Left section (copyright, etc.) - stays anchored left
624
+ - .pa-footer__start - Start section (copyright, etc.) - stays anchored to start
625
625
  - .pa-footer__center - Center section (optional) - flexible, fills space
626
- - .pa-footer__right - Right section (version info, links) - stays anchored right
626
+ - .pa-footer__end - End section (version info, links) - stays anchored to end
627
627
 
628
628
  LAYOUT WIDTH VARIANTS (applied to body tag):
629
629
  - No class - Fluid layout (full width)
@@ -231,7 +231,7 @@
231
231
  </div>
232
232
 
233
233
  <!-- Left-Aligned Pager -->
234
- <div class="pa-pager pa-pager--left">
234
+ <div class="pa-pager pa-pager--start">
235
235
  <div class="pa-pager__container">
236
236
  <div class="pa-pager__controls">
237
237
  <button class="pa-btn pa-btn--sm pa-btn--secondary">« First</button>
@@ -243,7 +243,7 @@
243
243
  </div>
244
244
 
245
245
  <!-- Right-Aligned Pager -->
246
- <div class="pa-pager pa-pager--right">
246
+ <div class="pa-pager pa-pager--end">
247
247
  <div class="pa-pager__container">
248
248
  <span class="pa-pager__text">Showing 1-25 of 250</span>
249
249
  <div class="pa-pager__controls">
@@ -273,14 +273,14 @@
273
273
  </div>
274
274
 
275
275
  <!-- Left-Aligned Load More -->
276
- <div class="pa-load-more pa-load-more--left">
276
+ <div class="pa-load-more pa-load-more--start">
277
277
  <button class="pa-load-more__button">
278
278
  <span class="pa-load-more__text">Show More Items</span>
279
279
  </button>
280
280
  </div>
281
281
 
282
282
  <!-- Right-Aligned Load More -->
283
- <div class="pa-load-more pa-load-more--right">
283
+ <div class="pa-load-more pa-load-more--end">
284
284
  <button class="pa-load-more__button">
285
285
  <span class="pa-load-more__text">Load Previous</span>
286
286
  </button>
@@ -306,14 +306,14 @@ HELPERS:
306
306
 
307
307
  PAGER:
308
308
  - pa-pager (center aligned by default)
309
- - pa-pager--left (left aligned)
310
- - pa-pager--right (right aligned)
309
+ - pa-pager--start (start aligned)
310
+ - pa-pager--end (end aligned)
311
311
  - pa-pager__container, __controls, __info, __input, __text
312
312
 
313
313
  LOAD MORE:
314
314
  - pa-load-more (center aligned by default)
315
- - pa-load-more--left (left aligned)
316
- - pa-load-more--right (right aligned)
315
+ - pa-load-more--start (start aligned)
316
+ - pa-load-more--end (end aligned)
317
317
  - pa-load-more__button, __spinner, __text, __count
318
318
  - pa-load-more__button--loading (loading state)
319
319
  -->
@@ -454,7 +454,7 @@
454
454
 
455
455
  <!-- Scrollable Tabs - Underline Style -->
456
456
  <div class="pa-tabs pa-tabs--scrollable" data-tabs-scroll>
457
- <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--left" onclick="scrollTabs(this, 'left')">
457
+ <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--start" onclick="scrollTabs(this, 'left')">
458
458
  <i class="fa-solid fa-chevron-left"></i>
459
459
  </button>
460
460
  <div class="pa-tabs__scroll-container">
@@ -464,7 +464,7 @@
464
464
  <button class="pa-tabs__item">Reports & Analytics</button>
465
465
  <button class="pa-tabs__item">Settings & Configuration</button>
466
466
  </div>
467
- <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--right" onclick="scrollTabs(this, 'right')">
467
+ <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--end" onclick="scrollTabs(this, 'right')">
468
468
  <i class="fa-solid fa-chevron-right"></i>
469
469
  </button>
470
470
  </div>
@@ -480,7 +480,7 @@
480
480
 
481
481
  <!-- Scrollable Pills -->
482
482
  <div class="pa-tabs pa-tabs--pills pa-tabs--scrollable" data-tabs-scroll>
483
- <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--left" onclick="scrollTabs(this, 'left')">
483
+ <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--start" onclick="scrollTabs(this, 'left')">
484
484
  <i class="fa-solid fa-chevron-left"></i>
485
485
  </button>
486
486
  <div class="pa-tabs__scroll-container">
@@ -488,7 +488,7 @@
488
488
  <button class="pa-tabs__item">User Management System</button>
489
489
  <button class="pa-tabs__item">Reports & Analytics</button>
490
490
  </div>
491
- <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--right" onclick="scrollTabs(this, 'right')">
491
+ <button class="pa-tabs__scroll-btn pa-tabs__scroll-btn--end" onclick="scrollTabs(this, 'right')">
492
492
  <i class="fa-solid fa-chevron-right"></i>
493
493
  </button>
494
494
  </div>
@@ -790,8 +790,8 @@ function scrollTabs(button, direction) {
790
790
 
791
791
  function updateScrollArrows(tabsContainer) {
792
792
  const scrollContainer = tabsContainer.querySelector('.pa-tabs__scroll-container');
793
- const leftBtn = tabsContainer.querySelector('.pa-tabs__scroll-btn--left');
794
- const rightBtn = tabsContainer.querySelector('.pa-tabs__scroll-btn--right');
793
+ const leftBtn = tabsContainer.querySelector('.pa-tabs__scroll-btn--start');
794
+ const rightBtn = tabsContainer.querySelector('.pa-tabs__scroll-btn--end');
795
795
 
796
796
  if (!scrollContainer || !leftBtn || !rightBtn) return;
797
797
 
@@ -2,7 +2,7 @@
2
2
  <!-- Clean HTML examples for all timeline variants -->
3
3
 
4
4
  <!-- ========================================
5
- Simple Timeline (Left-aligned with dots)
5
+ Simple Timeline (Start-aligned with dots)
6
6
  ======================================== -->
7
7
 
8
8
  <!-- Basic Simple Timeline -->
@@ -222,14 +222,14 @@
222
222
  Alternating Timeline Layout Modifiers (NEW)
223
223
  ======================================== -->
224
224
 
225
- <!-- Left-aligned timeline (all items on left side) -->
226
- <div class="pa-timeline pa-timeline--alternating pa-timeline--left">
225
+ <!-- Start-aligned timeline (all items on left side) -->
226
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--start">
227
227
  <div class="pa-timeline__item">
228
228
  <div class="pa-timeline__date">Jan 2024</div>
229
229
  <div class="pa-timeline__icon">📝</div>
230
230
  <div class="pa-timeline__content">
231
231
  <h3>Planning</h3>
232
- <p>All items aligned to left side with timeline line on left.</p>
232
+ <p>All items aligned to start side with timeline line on start.</p>
233
233
  </div>
234
234
  </div>
235
235
  <div class="pa-timeline__item">
@@ -237,19 +237,19 @@
237
237
  <div class="pa-timeline__icon">🚀</div>
238
238
  <div class="pa-timeline__content">
239
239
  <h3>Launch</h3>
240
- <p>Content blocks stay on left side.</p>
240
+ <p>Content blocks stay on start side.</p>
241
241
  </div>
242
242
  </div>
243
243
  </div>
244
244
 
245
- <!-- Right-aligned timeline (all items on right side) -->
246
- <div class="pa-timeline pa-timeline--alternating pa-timeline--right">
245
+ <!-- End-aligned timeline (all items on right side) -->
246
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--end">
247
247
  <div class="pa-timeline__item">
248
248
  <div class="pa-timeline__date">Jan 2024</div>
249
249
  <div class="pa-timeline__icon">📝</div>
250
250
  <div class="pa-timeline__content">
251
251
  <h3>Planning</h3>
252
- <p>All items aligned to right side with timeline line on right.</p>
252
+ <p>All items aligned to end side with timeline line on end.</p>
253
253
  </div>
254
254
  </div>
255
255
  <div class="pa-timeline__item">
@@ -257,7 +257,7 @@
257
257
  <div class="pa-timeline__icon">🚀</div>
258
258
  <div class="pa-timeline__content">
259
259
  <h3>Launch</h3>
260
- <p>Content blocks stay on right side.</p>
260
+ <p>Content blocks stay on end side.</p>
261
261
  </div>
262
262
  </div>
263
263
  </div>
@@ -282,26 +282,26 @@
282
282
  </div>
283
283
  </div>
284
284
 
285
- <!-- Combination: Left-aligned + keep layout on mobile -->
286
- <div class="pa-timeline pa-timeline--alternating pa-timeline--left pa-timeline--keep-layout">
285
+ <!-- Combination: Start-aligned + keep layout on mobile -->
286
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--start pa-timeline--keep-layout">
287
287
  <div class="pa-timeline__item">
288
288
  <div class="pa-timeline__date">Q1</div>
289
289
  <div class="pa-timeline__icon">📊</div>
290
290
  <div class="pa-timeline__content">
291
291
  <h3>Analysis</h3>
292
- <p>Left-aligned on desktop, stays left on mobile.</p>
292
+ <p>Start-aligned on desktop, stays start on mobile.</p>
293
293
  </div>
294
294
  </div>
295
295
  </div>
296
296
 
297
- <!-- Combination: Right-aligned + keep layout on mobile -->
298
- <div class="pa-timeline pa-timeline--alternating pa-timeline--right pa-timeline--keep-layout">
297
+ <!-- Combination: End-aligned + keep layout on mobile -->
298
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--end pa-timeline--keep-layout">
299
299
  <div class="pa-timeline__item">
300
300
  <div class="pa-timeline__date">Q1</div>
301
301
  <div class="pa-timeline__icon">📊</div>
302
302
  <div class="pa-timeline__content">
303
303
  <h3>Analysis</h3>
304
- <p>Right-aligned on desktop, stays right on mobile.</p>
304
+ <p>End-aligned on desktop, stays end on mobile.</p>
305
305
  </div>
306
306
  </div>
307
307
  </div>
@@ -311,28 +311,28 @@
311
311
  ======================================== -->
312
312
  <!--
313
313
  TIMELINE VARIANTS:
314
- - pa-timeline--simple: Left-aligned with dots
314
+ - pa-timeline--simple: Start-aligned with dots
315
315
  - pa-timeline--alternating: Centered zigzag layout
316
316
  - pa-timeline--feed: Activity feed with avatars
317
317
 
318
318
  ALTERNATING LAYOUT MODIFIERS (can be combined):
319
- - pa-timeline--left: All items on left side (independent of responsive behavior)
320
- - pa-timeline--right: All items on right side (independent of responsive behavior)
319
+ - pa-timeline--start: All items on start side (independent of responsive behavior)
320
+ - pa-timeline--end: All items on end side (independent of responsive behavior)
321
321
  - pa-timeline--keep-layout: Prevent mobile collapse, maintain desktop layout at all widths
322
- - pa-timeline--single-column: Force single-column layout (alias for --left)
322
+ - pa-timeline--single-column: Force single-column layout (alias for --start)
323
323
 
324
324
  RESPONSIVE BEHAVIOR:
325
325
  - Default: Zigzag on desktop (>767px), auto-collapse to single-column on mobile (≤767px)
326
326
  - With --keep-layout: Layout maintained at all screen widths
327
- - With --left or --right: Aligned layout on desktop, collapses on mobile (unless --keep-layout added)
327
+ - With --start or --end: Aligned layout on desktop, collapses on mobile (unless --keep-layout added)
328
328
 
329
329
  COMBINATION EXAMPLES:
330
330
  - pa-timeline--alternating: Zigzag desktop, single-column mobile (auto-responsive)
331
- - pa-timeline--alternating pa-timeline--left: All left desktop, single-column mobile
332
- - pa-timeline--alternating pa-timeline--right: All right desktop, single-column mobile
331
+ - pa-timeline--alternating pa-timeline--start: All start desktop, single-column mobile
332
+ - pa-timeline--alternating pa-timeline--end: All end desktop, single-column mobile
333
333
  - pa-timeline--alternating pa-timeline--keep-layout: Zigzag stays zigzag on mobile
334
- - pa-timeline--alternating pa-timeline--left pa-timeline--keep-layout: Left stays left on mobile
335
- - pa-timeline--alternating pa-timeline--right pa-timeline--keep-layout: Right stays right on mobile
334
+ - pa-timeline--alternating pa-timeline--start pa-timeline--keep-layout: Start stays start on mobile
335
+ - pa-timeline--alternating pa-timeline--end pa-timeline--keep-layout: End stays end on mobile
336
336
 
337
337
  ITEM MODIFIERS (simple variant):
338
338
  - pa-timeline__item--primary: Primary color marker
@@ -319,7 +319,7 @@
319
319
  </div>
320
320
 
321
321
  <!-- Right Aligned -->
322
- <div class="pa-popover pa-popover--right" data-placement="bottom">
322
+ <div class="pa-popover pa-popover--end" data-placement="bottom">
323
323
  <button class="pa-popover__trigger">?</button>
324
324
  <div class="pa-popover__content">
325
325
  <div class="pa-popover__header">
@@ -429,7 +429,7 @@ SIZES:
429
429
 
430
430
  ALIGNMENT:
431
431
  - pa-popover--center (centered body text)
432
- - pa-popover--right (right-aligned body text)
432
+ - pa-popover--end (end-aligned body text)
433
433
 
434
434
  COMPONENTS:
435
435
  - pa-popover__trigger (button/trigger element)
@@ -1,101 +1,101 @@
1
- <!-- Typography Component (.pa-text)
2
- BEM pattern for paragraph text styling
3
- ================================================== -->
4
-
5
- <!-- Base Text (default: 14px, primary color) -->
6
- <p class="pa-text">Default paragraph text with 14px font size and primary color.</p>
7
-
8
- <!-- Size Modifiers -->
9
- <p class="pa-text pa-text--xs">Extra small text (10px)</p>
10
- <p class="pa-text pa-text--sm">Small text (12px)</p>
11
- <p class="pa-text">Default text (14px)</p>
12
- <p class="pa-text pa-text--lg">Large text (16px)</p>
13
- <p class="pa-text pa-text--xl">Extra large text (18px)</p>
14
-
15
- <!-- Color Modifiers -->
16
- <p class="pa-text pa-text--primary">Primary color text</p>
17
- <p class="pa-text pa-text--secondary">Secondary/muted color text</p>
18
-
19
- <!-- Alignment Modifiers -->
20
- <p class="pa-text pa-text--left">Left aligned text</p>
21
- <p class="pa-text pa-text--center">Center aligned text</p>
22
- <p class="pa-text pa-text--right">Right aligned text</p>
23
-
24
- <!-- Semantic Variants -->
25
-
26
- <!-- Caption: Small secondary text with bottom margin (for hints/descriptions) -->
27
- <p class="pa-text pa-text--caption">This is a caption - small, secondary, with margin-bottom</p>
28
-
29
- <!-- Lead: Larger intro text with relaxed line height -->
30
- <p class="pa-text pa-text--lead">This is lead text - larger font with relaxed line height for introductory paragraphs.</p>
31
-
32
- <!-- Combined Modifiers -->
33
- <p class="pa-text pa-text--sm pa-text--secondary">Small secondary text</p>
34
- <p class="pa-text pa-text--lg pa-text--center">Large centered text</p>
35
- <p class="pa-text pa-text--xs pa-text--right pa-text--secondary">Extra small, right-aligned, secondary</p>
36
-
37
- <!-- With Spacing Utilities -->
38
- <p class="pa-text pa-text--secondary mt-4">Secondary text with top margin</p>
39
- <p class="pa-text pa-text--caption mb-6">Caption with larger bottom margin</p>
40
-
41
- <!-- Practical Examples -->
42
-
43
- <!-- Demo/hint text above a component -->
44
- <h4>Badge Wrapping Demo</h4>
45
- <p class="pa-text pa-text--caption">29 badges in narrow container</p>
46
- <div class="pa-badge-group"><!-- badges here --></div>
47
-
48
- <!-- Card header description -->
49
- <div class="pa-card__header">
50
- <h3>Feature Title</h3>
51
- <p class="pa-text pa-text--secondary">Brief description of this feature or section.</p>
52
- </div>
53
-
54
- <!-- Form helper text -->
55
- <div class="pa-card__footer">
56
- <p class="pa-text pa-text--sm pa-text--secondary" style="margin: 0;">
57
- <strong>Note:</strong> Additional information about the form layout.
58
- </p>
59
- </div>
60
-
61
- <!-- Centered tab content -->
62
- <div class="pa-tabs__panel">
63
- <p class="pa-text pa-text--center">Feature highlights and capabilities.</p>
64
- </div>
65
-
66
- <!-- Toast/notification helper -->
67
- <p class="pa-text pa-text--secondary mt-4">
68
- Progress bar shows time remaining before auto-dismiss (5 seconds)
69
- </p>
70
-
71
- <!--
72
- Available Classes Reference:
73
- ============================
74
-
75
- Base:
76
- .pa-text Default (14px, primary color)
77
-
78
- Sizes:
79
- .pa-text--xs 10px (extra small)
80
- .pa-text--sm 12px (small)
81
- .pa-text--lg 16px (large)
82
- .pa-text--xl 18px (extra large)
83
-
84
- Colors:
85
- .pa-text--primary Primary text color
86
- .pa-text--secondary Secondary/muted text color
87
-
88
- Alignment:
89
- .pa-text--left Left align
90
- .pa-text--center Center align
91
- .pa-text--right Right align
92
-
93
- Semantic:
94
- .pa-text--caption Small + secondary + margin-bottom (for hints)
95
- .pa-text--lead Large + relaxed line-height (for intros)
96
-
97
- Combine with spacing utilities:
98
- mt-1 through mt-20 Margin top
99
- mb-1 through mb-20 Margin bottom
100
- (see utilities.scss for full spacing scale)
101
- -->
1
+ <!-- Typography Component (.pa-text)
2
+ BEM pattern for paragraph text styling
3
+ ================================================== -->
4
+
5
+ <!-- Base Text (default: 14px, primary color) -->
6
+ <p class="pa-text">Default paragraph text with 14px font size and primary color.</p>
7
+
8
+ <!-- Size Modifiers -->
9
+ <p class="pa-text pa-text--xs">Extra small text (10px)</p>
10
+ <p class="pa-text pa-text--sm">Small text (12px)</p>
11
+ <p class="pa-text">Default text (14px)</p>
12
+ <p class="pa-text pa-text--lg">Large text (16px)</p>
13
+ <p class="pa-text pa-text--xl">Extra large text (18px)</p>
14
+
15
+ <!-- Color Modifiers -->
16
+ <p class="pa-text pa-text--primary">Primary color text</p>
17
+ <p class="pa-text pa-text--secondary">Secondary/muted color text</p>
18
+
19
+ <!-- Alignment Modifiers -->
20
+ <p class="pa-text pa-text--start">Start aligned text</p>
21
+ <p class="pa-text pa-text--center">Center aligned text</p>
22
+ <p class="pa-text pa-text--end">End aligned text</p>
23
+
24
+ <!-- Semantic Variants -->
25
+
26
+ <!-- Caption: Small secondary text with bottom margin (for hints/descriptions) -->
27
+ <p class="pa-text pa-text--caption">This is a caption - small, secondary, with margin-bottom</p>
28
+
29
+ <!-- Lead: Larger intro text with relaxed line height -->
30
+ <p class="pa-text pa-text--lead">This is lead text - larger font with relaxed line height for introductory paragraphs.</p>
31
+
32
+ <!-- Combined Modifiers -->
33
+ <p class="pa-text pa-text--sm pa-text--secondary">Small secondary text</p>
34
+ <p class="pa-text pa-text--lg pa-text--center">Large centered text</p>
35
+ <p class="pa-text pa-text--xs pa-text--end pa-text--secondary">Extra small, end-aligned, secondary</p>
36
+
37
+ <!-- With Spacing Utilities -->
38
+ <p class="pa-text pa-text--secondary mt-4">Secondary text with top margin</p>
39
+ <p class="pa-text pa-text--caption mb-6">Caption with larger bottom margin</p>
40
+
41
+ <!-- Practical Examples -->
42
+
43
+ <!-- Demo/hint text above a component -->
44
+ <h4>Badge Wrapping Demo</h4>
45
+ <p class="pa-text pa-text--caption">29 badges in narrow container</p>
46
+ <div class="pa-badge-group"><!-- badges here --></div>
47
+
48
+ <!-- Card header description -->
49
+ <div class="pa-card__header">
50
+ <h3>Feature Title</h3>
51
+ <p class="pa-text pa-text--secondary">Brief description of this feature or section.</p>
52
+ </div>
53
+
54
+ <!-- Form helper text -->
55
+ <div class="pa-card__footer">
56
+ <p class="pa-text pa-text--sm pa-text--secondary" style="margin: 0;">
57
+ <strong>Note:</strong> Additional information about the form layout.
58
+ </p>
59
+ </div>
60
+
61
+ <!-- Centered tab content -->
62
+ <div class="pa-tabs__panel">
63
+ <p class="pa-text pa-text--center">Feature highlights and capabilities.</p>
64
+ </div>
65
+
66
+ <!-- Toast/notification helper -->
67
+ <p class="pa-text pa-text--secondary mt-4">
68
+ Progress bar shows time remaining before auto-dismiss (5 seconds)
69
+ </p>
70
+
71
+ <!--
72
+ Available Classes Reference:
73
+ ============================
74
+
75
+ Base:
76
+ .pa-text Default (14px, primary color)
77
+
78
+ Sizes:
79
+ .pa-text--xs 10px (extra small)
80
+ .pa-text--sm 12px (small)
81
+ .pa-text--lg 16px (large)
82
+ .pa-text--xl 18px (extra large)
83
+
84
+ Colors:
85
+ .pa-text--primary Primary text color
86
+ .pa-text--secondary Secondary/muted text color
87
+
88
+ Alignment:
89
+ .pa-text--start Start align
90
+ .pa-text--center Center align
91
+ .pa-text--end End align
92
+
93
+ Semantic:
94
+ .pa-text--caption Small + secondary + margin-bottom (for hints)
95
+ .pa-text--lead Large + relaxed line-height (for intros)
96
+
97
+ Combine with spacing utilities:
98
+ mt-1 through mt-20 Margin top
99
+ mb-1 through mb-20 Margin bottom
100
+ (see utilities.scss for full spacing scale)
101
+ -->
@@ -192,9 +192,9 @@ localStorage.setItem('compact-mode', 'true');
192
192
  TEXT UTILITIES
193
193
  ================================ -->
194
194
 
195
- <div class="text-left">Left aligned text</div>
195
+ <div class="text-start">Start aligned text</div>
196
196
  <div class="text-center">Center aligned text</div>
197
- <div class="text-right">Right aligned text</div>
197
+ <div class="text-end">End aligned text</div>
198
198
  <div class="text-nowrap">Text that doesn't wrap</div>
199
199
  <div class="text-truncate" style="width: 200px;">This long text will be truncated with ellipsis...</div>
200
200
 
@@ -555,7 +555,7 @@ Align: align-items-start/end/center/baseline/stretch
555
555
  Grow/Shrink: flex-fill, flex-grow-0/1, flex-shrink-0/1
556
556
 
557
557
  TEXT:
558
- - text-left, text-center, text-right
558
+ - text-start, text-center, text-end
559
559
  - text-nowrap, text-truncate
560
560
 
561
561
  WIDTH/HEIGHT (percentage-based):
@@ -330,7 +330,7 @@
330
330
  // Button always keeps its horizontal padding (0.75rem on both sides)
331
331
  // These classes control content position and remove icon padding on aligned sides
332
332
 
333
- &--align-left {
333
+ &--align-start {
334
334
  justify-content: flex-start;
335
335
 
336
336
  .pa-btn__icon {
@@ -338,7 +338,7 @@
338
338
  }
339
339
  }
340
340
 
341
- &--align-right {
341
+ &--align-end {
342
342
  justify-content: flex-end;
343
343
 
344
344
  .pa-btn__icon {
@@ -29,6 +29,7 @@
29
29
  display: flex;
30
30
  justify-content: space-between;
31
31
  align-items: center;
32
+ gap: $spacing-base; // Gap between header elements (title, description, actions)
32
33
  min-width: 0; // Enable text truncation
33
34
 
34
35
  // Reset margins/paddings for all native elements
@@ -61,10 +62,50 @@
61
62
  font-size: $font-size-base;
62
63
  }
63
64
 
65
+ // Direct heading children - don't shrink (for three-part layout)
66
+ > h1,
67
+ > h2,
68
+ > h3,
69
+ > h4,
70
+ > h5,
71
+ > h6 {
72
+ flex-shrink: 0;
73
+ }
74
+
75
+ // Description paragraphs - flexible middle, truncate with ellipsis
76
+ > p {
77
+ flex: 1;
78
+ min-width: 0;
79
+ overflow: hidden;
80
+ text-overflow: ellipsis;
81
+ white-space: nowrap;
82
+ color: var(--pa-text-color-2);
83
+ font-size: $font-size-sm;
84
+ }
85
+
86
+ // Actions container - fixed, doesn't shrink
87
+ .pa-card__actions,
88
+ .pa-btn-group {
89
+ flex-shrink: 0;
90
+ }
91
+
64
92
  // Buttons in card headers - negative margin to prevent header height growth
65
93
  .pa-btn {
66
94
  margin-top: -0.25rem;
67
95
  margin-bottom: -0.25rem;
96
+ flex-shrink: 0;
97
+ }
98
+
99
+ // Wrap modifier - allow description to wrap (for mobile or long descriptions)
100
+ &--wrap {
101
+ flex-wrap: wrap;
102
+
103
+ > p {
104
+ white-space: normal;
105
+ flex-basis: 100%;
106
+ order: 1;
107
+ margin-top: $spacing-xs;
108
+ }
68
109
  }
69
110
  }
70
111
 
@@ -66,7 +66,12 @@
66
66
  top: 0;
67
67
  inset-inline-end: 0; // RTL: flips to left
68
68
  height: 100%;
69
- z-index: 2;
69
+ z-index: $z-index-detail-panel-card + 1; // 3501 - Below header (4000)
70
+
71
+ // In card overlay mode, constrain panel width to container
72
+ &--open {
73
+ max-width: 100%; // Don't exceed container width
74
+ }
70
75
  }
71
76
  }
72
77
 
@@ -75,7 +80,7 @@
75
80
  position: absolute;
76
81
  inset: 0; // Covers full container
77
82
  background-color: var(--pa-detail-panel-overlay-bg);
78
- z-index: 1;
83
+ z-index: $z-index-detail-panel-card; // 3500 - Below panel and header
79
84
  opacity: 0;
80
85
  visibility: hidden;
81
86
  cursor: pointer;