@keenmate/pure-admin-core 1.0.0-rc06 → 1.1.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 (78) hide show
  1. package/README.md +77 -7
  2. package/dist/css/main.css +1313 -452
  3. package/package.json +1 -1
  4. package/snippets/customization.html +1 -1
  5. package/snippets/layout.html +66 -0
  6. package/snippets/manifest.json +0 -50
  7. package/snippets/profile.html +51 -3
  8. package/src/scss/_base-css-variables.scss +432 -422
  9. package/src/scss/_core.scss +105 -105
  10. package/src/scss/_fonts.scss +0 -14
  11. package/src/scss/_variables.scss +12 -14
  12. package/src/scss/core-components/_alerts.scss +7 -7
  13. package/src/scss/core-components/_base.scss +3 -3
  14. package/src/scss/core-components/_buttons.scss +425 -425
  15. package/src/scss/core-components/_callouts.scss +139 -139
  16. package/src/scss/core-components/_cards.scss +321 -321
  17. package/src/scss/core-components/_checkbox-lists.scss +2 -2
  18. package/src/scss/core-components/_code.scss +4 -4
  19. package/src/scss/core-components/_command-palette.scss +518 -518
  20. package/src/scss/core-components/_comparison.scss +3 -3
  21. package/src/scss/core-components/_file-selector.scss +780 -780
  22. package/src/scss/core-components/_forms.scss +16 -16
  23. package/src/scss/core-components/_grid.scss +25 -0
  24. package/src/scss/core-components/_layout.scss +15 -15
  25. package/src/scss/core-components/_lists.scss +7 -7
  26. package/src/scss/core-components/_logic-tree.scss +280 -280
  27. package/src/scss/core-components/_modals.scss +2 -2
  28. package/src/scss/core-components/_notifications.scss +74 -7
  29. package/src/scss/core-components/_pagers.scss +3 -3
  30. package/src/scss/core-components/_popconfirm.scss +1 -1
  31. package/src/scss/core-components/_profile.scss +400 -379
  32. package/src/scss/core-components/_scrollbars.scss +40 -41
  33. package/src/scss/core-components/_settings-panel.scss +5 -5
  34. package/src/scss/core-components/_statistics.scss +6 -6
  35. package/src/scss/core-components/_tables.scss +566 -566
  36. package/src/scss/core-components/_tabs.scss +493 -493
  37. package/src/scss/core-components/_timeline.scss +15 -15
  38. package/src/scss/core-components/_toasts.scss +4 -4
  39. package/src/scss/core-components/_tooltips.scss +8 -8
  40. package/src/scss/core-components/_utilities.scss +35 -30
  41. package/src/scss/core-components/_web-components-theme.scss +294 -294
  42. package/src/scss/core-components/badges/_composite-badge-variants.scss +3 -3
  43. package/src/scss/core-components/badges/_labels.scss +1 -1
  44. package/src/scss/core-components/forms/_checkboxes-radios.scss +2 -2
  45. package/src/scss/core-components/forms/_form-inputs.scss +4 -4
  46. package/src/scss/core-components/forms/_form-layout.scss +2 -2
  47. package/src/scss/core-components/forms/_form-states.scss +1 -1
  48. package/src/scss/core-components/forms/_input-groups.scss +13 -11
  49. package/src/scss/core-components/forms/_input-wrapper.scss +1 -1
  50. package/src/scss/core-components/forms/_query-editor.scss +17 -17
  51. package/src/scss/core-components/layout/_layout-container.scss +33 -1
  52. package/src/scss/core-components/layout/_navbar-elements.scss +1 -1
  53. package/src/scss/core-components/layout/_sidebar.scss +53 -2
  54. package/src/scss/utilities.scss +81 -2
  55. package/src/scss/variables/_base.scss +20 -10
  56. package/src/scss/variables/_colors.scss +7 -6
  57. package/src/scss/variables/_components.scss +8 -11
  58. package/src/scss/variables/_index.scss +11 -7
  59. package/src/scss/variables/_spacing.scss +12 -0
  60. package/src/scss/variables/_typography.scss +2 -2
  61. package/dist/fonts/Delivery/Delivery_W_Bd.woff2 +0 -0
  62. package/dist/fonts/Delivery/Delivery_W_BdIt.woff2 +0 -0
  63. package/dist/fonts/Delivery/Delivery_W_CdBlk.woff2 +0 -0
  64. package/dist/fonts/Delivery/Delivery_W_CdLt.woff2 +0 -0
  65. package/dist/fonts/Delivery/Delivery_W_It.woff2 +0 -0
  66. package/dist/fonts/Delivery/Delivery_W_Lt.woff2 +0 -0
  67. package/dist/fonts/Delivery/Delivery_W_LtIt.woff2 +0 -0
  68. package/dist/fonts/Delivery/Delivery_W_Rg.woff2 +0 -0
  69. package/src/scss/themes/_dark-base.scss +0 -207
  70. package/src/scss/themes/audi-light.scss +0 -341
  71. package/src/scss/themes/audi.scss +0 -303
  72. package/src/scss/themes/corporate.scss +0 -229
  73. package/src/scss/themes/dark-blue.scss +0 -165
  74. package/src/scss/themes/dark-green.scss +0 -169
  75. package/src/scss/themes/dark-red.scss +0 -173
  76. package/src/scss/themes/dark.scss +0 -158
  77. package/src/scss/themes/express.scss +0 -294
  78. package/src/scss/themes/minimal.scss +0 -134
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keenmate/pure-admin-core",
3
- "version": "1.0.0-rc06",
3
+ "version": "1.1.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": {
@@ -120,7 +120,7 @@ Future versions may include CSS variables for:
120
120
  - Animation timing customization
121
121
 
122
122
  For now, use SCSS variables for deep customization:
123
- $primary-bg: #your-color;
123
+ $main-bg: #your-color;
124
124
  $accent-color: #your-accent;
125
125
  @import '@pure-admin/core/scss';
126
126
  -->
@@ -380,6 +380,52 @@
380
380
  </aside>
381
381
 
382
382
 
383
+ <!-- ================================
384
+ SIDEBAR WIDTH CONTROL
385
+ ================================ -->
386
+
387
+ <!-- Default width (28.8rem / 288px from CSS variable) -->
388
+ <aside class="pa-layout__sidebar">
389
+ <!-- Nav content -->
390
+ </aside>
391
+
392
+ <!-- Resizable sidebar (opt-in, drag right edge to resize) -->
393
+ <aside class="pa-layout__sidebar pa-layout__sidebar--resizable">
394
+ <!-- Nav content -->
395
+ <!-- Drag handle appears on right edge -->
396
+ <!-- Width saved to localStorage -->
397
+ <!-- Double-click handle to reset to default -->
398
+ </aside>
399
+
400
+ <!-- Custom fixed width using utility class (overrides default and resize) -->
401
+ <aside class="pa-layout__sidebar wr-25">
402
+ <!-- Fixed 25rem (250px) width -->
403
+ <!-- wr-* sets exact width, blocks resize -->
404
+ </aside>
405
+
406
+ <!-- Custom minimum width using utility class (allows resize above minimum) -->
407
+ <aside class="pa-layout__sidebar pa-layout__sidebar--resizable minwr-20">
408
+ <!-- Minimum 20rem (200px) width -->
409
+ <!-- minwr-* sets floor, resize still works above it -->
410
+ </aside>
411
+
412
+ <!--
413
+ SIDEBAR WIDTH OPTIONS:
414
+ 1. Default: Uses CSS variable --pa-local-sidebar-width (28.8rem)
415
+ 2. Resizable: Add --resizable class, user can drag to resize (180-500px range)
416
+ 3. Fixed width: Add wr-* utility class (e.g., wr-20, wr-25, wr-30)
417
+ 4. Minimum width: Add minwr-* utility class (e.g., minwr-15, minwr-20)
418
+
419
+ WIDTH UTILITY CLASSES (rem-based, 10px = 1rem):
420
+ - .wr-15 to .wr-25 - Fixed width (15rem to 25rem)
421
+ - .minwr-15 to .minwr-25 - Minimum width (allows resize above)
422
+ - .maxwr-15 to .maxwr-25 - Maximum width (limits resize)
423
+
424
+ NOTE: Fixed width (.wr-*) overrides both default and resizable width.
425
+ Use .minwr-* with --resizable to set a floor while allowing resize.
426
+ -->
427
+
428
+
383
429
  <!-- ================================
384
430
  NAVBAR/HEADER (with burger menu and navigation)
385
431
  Three-section layout: Left / Center / Right
@@ -605,6 +651,14 @@ SIDEBAR MODES (modifiers on .pa-layout__sidebar):
605
651
  - Default - Sidebar scrolls with content
606
652
  - .pa-layout__sidebar--sticky - Sidebar stays fixed while content scrolls
607
653
  - .pa-layout__sidebar--icon-collapse - Sidebar collapses to icon bar instead of hiding
654
+ - .pa-layout__sidebar--resizable - Drag right edge to resize (opt-in)
655
+
656
+ SIDEBAR WIDTH CONTROL:
657
+ - Default width: 28.8rem (288px) via CSS variable --pa-local-sidebar-width
658
+ - Resizable: Add --resizable class for drag-to-resize (180-500px range)
659
+ - Fixed width: Add .wr-* utility class (e.g., wr-25 = 250px) - overrides resize
660
+ - Min width: Add .minwr-* utility class (e.g., minwr-20) - sets floor for resize
661
+ - Max width: Add .maxwr-* utility class (e.g., maxwr-40) - sets ceiling for resize
608
662
 
609
663
  BURGER MENU:
610
664
  - .burger-menu - Burger menu button (same as .pa-header__burger)
@@ -636,4 +690,16 @@ JAVASCRIPT:
636
690
  - toggleSidebar() - Toggle sidebar visibility (burger menu)
637
691
  - toggleSubmenu(button) - Toggle submenu open/closed
638
692
  - Stores state in localStorage for persistence across page loads
693
+
694
+ PROFILE PANEL WIDTH CONTROL:
695
+ - Default width: 20vw via CSS variable --pa-local-profile-panel-width
696
+ - Default max-width: 48rem (480px) via CSS variable --pa-local-profile-panel-max-width
697
+ - Override with utility classes: Add .wr-* to .pa-profile-panel__content
698
+ - Examples:
699
+ - .wr-30 = fixed 30rem (300px) width
700
+ - .wr-40 = fixed 40rem (400px) width
701
+ - .minwr-25 = minimum 25rem width
702
+ - .maxwr-50 = maximum 50rem width
703
+ - Uses low specificity (:where) so utility classes can override
704
+ - Available: wr-1 to wr-10, then 15, 20, 25, 30, 35, 40, 45, 50 (same for minwr/maxwr)
639
705
  -->
@@ -299,56 +299,6 @@
299
299
  "size": 249,
300
300
  "modified": "2025-10-01T16:46:47.199Z"
301
301
  },
302
- "themes/audi-light.scss": {
303
- "hash": "e99983bd63a1b01ca40b2e76d84140bdb61ef19a074752c652e6518a5623caea",
304
- "size": 8631,
305
- "modified": "2025-12-13T15:59:43.512Z"
306
- },
307
- "themes/audi.scss": {
308
- "hash": "3231e9daa6f3e9b1263a21f61712df62cdf1bcf93d6ebf2ac1b317961e75a25b",
309
- "size": 9314,
310
- "modified": "2025-12-13T18:14:18.929Z"
311
- },
312
- "themes/corporate.scss": {
313
- "hash": "00193bbf439190a2afda040ffe5a2258d6d64ac0564ff4d11933be9d0d07270c",
314
- "size": 5608,
315
- "modified": "2025-12-13T15:59:52.882Z"
316
- },
317
- "themes/dark-blue.scss": {
318
- "hash": "27b5f70fe3f70ed1a3952f16a78fca953b73cfb56b8bc5452f3fe8aa9c768c17",
319
- "size": 4948,
320
- "modified": "2025-12-13T18:15:26.140Z"
321
- },
322
- "themes/dark-green.scss": {
323
- "hash": "30a9f2c3ca8dee1720a530f6498f6f3ae3b2511564b686a4bf98ba5e78326c59",
324
- "size": 4998,
325
- "modified": "2025-12-13T18:15:50.449Z"
326
- },
327
- "themes/dark-red.scss": {
328
- "hash": "7d1e12211c30d4ebcc6fac4652c8e51cc20a95b70794c41853d17d8ea1cc2cee",
329
- "size": 4954,
330
- "modified": "2025-12-13T18:15:51.566Z"
331
- },
332
- "themes/dark.scss": {
333
- "hash": "9a25e83f9587c663de918a506d2a0edb1ded0a8ea60081392f3128d825b036b3",
334
- "size": 4272,
335
- "modified": "2025-12-13T18:15:09.759Z"
336
- },
337
- "themes/express.scss": {
338
- "hash": "b54bafa90d5defc586aaffcaa9ba241274872e01ed26cee065cde40234a215c9",
339
- "size": 7738,
340
- "modified": "2025-12-13T15:59:39.049Z"
341
- },
342
- "themes/minimal.scss": {
343
- "hash": "cd997b7f8785a6dc4b6aadeb9eae83024b38c101c7c053d66db4cfc346155b7f",
344
- "size": 3652,
345
- "modified": "2025-12-13T15:59:44.548Z"
346
- },
347
- "themes/_dark-base.scss": {
348
- "hash": "e383f750029a362210abc29d437cbbae509c3b20817731cea318e5611d5c6de8",
349
- "size": 5272,
350
- "modified": "2025-10-13T13:03:54.101Z"
351
- },
352
302
  "utilities.scss": {
353
303
  "hash": "a7b3f7cdc2d390ea3af3aedf21cdf2c70c9ce0fe6833e3bfb6870ec9dd33e416",
354
304
  "size": 7327,
@@ -209,14 +209,16 @@
209
209
  </button>
210
210
  </div>
211
211
 
212
- <!-- Profile Panel Tabs -->
212
+ <!-- Profile Panel Tabs (with text labels) -->
213
213
  <div class="pa-profile-panel__tabs">
214
214
  <div class="pa-tabs pa-tabs--full">
215
215
  <button class="pa-tabs__item pa-tabs__item--active" data-profile-tab="profile">
216
- <span>👤</span> Profile
216
+ <i class="fa-solid fa-user"></i>
217
+ <span class="pa-profile-panel__tab-text">Profile</span>
217
218
  </button>
218
219
  <button class="pa-tabs__item" data-profile-tab="favorites">
219
- <span>⭐</span> Favorites
220
+ <i class="fa-solid fa-star"></i>
221
+ <span class="pa-profile-panel__tab-text">Favorites</span>
220
222
  </button>
221
223
  </div>
222
224
  </div>
@@ -297,6 +299,49 @@
297
299
  </div>
298
300
 
299
301
 
302
+ <!-- ================================
303
+ PROFILE PANEL - WITH ICON-ONLY TABS
304
+ Add --icon-only modifier to hide text labels
305
+ ================================ -->
306
+
307
+ <div class="pa-profile-panel" id="profilePanel">
308
+ <div class="pa-profile-panel__overlay" onclick="closeProfilePanel()"></div>
309
+ <div class="pa-profile-panel__content">
310
+ <div class="pa-profile-panel__header">
311
+ <div class="pa-profile-panel__avatar">
312
+ <span class="pa-profile-panel__avatar-icon"><i class="fa-solid fa-user"></i></span>
313
+ </div>
314
+ <div class="pa-profile-panel__info">
315
+ <h3 class="pa-profile-panel__name">John Doe</h3>
316
+ <p class="pa-profile-panel__email">john.doe@company.com</p>
317
+ <span class="pa-profile-panel__role">Administrator</span>
318
+ </div>
319
+ <button class="pa-profile-panel__close" onclick="closeProfilePanel()" aria-label="Close Profile">
320
+ <i class="fa-solid fa-xmark"></i>
321
+ </button>
322
+ </div>
323
+
324
+ <!-- Profile Panel Tabs (icon-only) - add --icon-only modifier -->
325
+ <div class="pa-profile-panel__tabs pa-profile-panel__tabs--icon-only">
326
+ <div class="pa-tabs pa-tabs--full">
327
+ <button class="pa-tabs__item pa-tabs__item--active" data-profile-tab="profile" title="Profile">
328
+ <i class="fa-solid fa-user"></i>
329
+ <span class="pa-profile-panel__tab-text">Profile</span>
330
+ </button>
331
+ <button class="pa-tabs__item" data-profile-tab="favorites" title="Favorites">
332
+ <i class="fa-solid fa-star"></i>
333
+ <span class="pa-profile-panel__tab-text">Favorites</span>
334
+ </button>
335
+ </div>
336
+ </div>
337
+
338
+ <div class="pa-profile-panel__body">
339
+ <!-- Content same as regular tabs variant -->
340
+ </div>
341
+ </div>
342
+ </div>
343
+
344
+
300
345
  <!-- ================================
301
346
  PROFILE PANEL - WITH FONT AWESOME
302
347
  ================================ -->
@@ -501,9 +546,12 @@ PANEL HEADER:
501
546
 
502
547
  PANEL TABS (optional):
503
548
  - .pa-profile-panel__tabs - Tabs container
549
+ - .pa-profile-panel__tabs--icon-only - Modifier to hide text labels (icon-only mode)
550
+ - .pa-profile-panel__tab-text - Text label element (hidden when --icon-only is applied)
504
551
  - .pa-tabs.pa-tabs--full - Full-width tabs
505
552
  - [data-profile-tab] - Tab button attribute
506
553
  - [data-profile-panel] - Tab panel attribute
554
+ - Add title attribute to tab buttons for tooltip when using icon-only mode
507
555
 
508
556
  PANEL BODY:
509
557
  - .pa-profile-panel__body - Body container (scrollable)