@keenmate/pure-admin-core 2.9.0-rc03 → 2.9.0-rc04
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 +53 -8
- package/dist/css/main.css +540 -2
- package/package.json +3 -1
- package/snippets/buttons.html +51 -0
- package/snippets/cards.html +34 -4
- 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 +57 -0
- 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 +34 -2
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-rc04",
|
|
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/",
|
package/snippets/buttons.html
CHANGED
|
@@ -283,6 +283,57 @@
|
|
|
283
283
|
</div>
|
|
284
284
|
|
|
285
285
|
|
|
286
|
+
<!-- Auto-Absorb Split Button (sibling buttons collapse into menu on resize) -->
|
|
287
|
+
<!-- The .pa-btn-toolbar wrapper provides the constrained-width flex row;
|
|
288
|
+
btn-split-auto-absorb.js moves overflowing siblings into the menu.
|
|
289
|
+
Standalone form (any flex context): -->
|
|
290
|
+
<div class="pa-btn-toolbar">
|
|
291
|
+
<button class="pa-btn pa-btn--primary">Save</button>
|
|
292
|
+
<button class="pa-btn pa-btn--primary">Format</button>
|
|
293
|
+
<button class="pa-btn pa-btn--primary">Refresh</button>
|
|
294
|
+
<button class="pa-btn pa-btn--primary" data-pa-absorb-priority="10">Publish</button>
|
|
295
|
+
<div class="pa-btn-split pa-btn-split--auto-absorb">
|
|
296
|
+
<button class="pa-btn pa-btn--primary">Run</button>
|
|
297
|
+
<button class="pa-btn pa-btn--primary pa-btn-split__toggle" onclick="toggleSplitMenu(event)">
|
|
298
|
+
<i class="fas fa-chevron-down text-2xs pa-btn-split__chevron"></i>
|
|
299
|
+
</button>
|
|
300
|
+
<div class="pa-btn-split__menu">
|
|
301
|
+
<div class="pa-btn-split__menu-inner">
|
|
302
|
+
<button class="pa-btn-split__item">Run with options…</button>
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
|
|
308
|
+
<!-- In a card header, nest the toolbar inside .pa-card__actions (the canonical
|
|
309
|
+
header actions slot) — same as a plain button row or a .pa-btn-group. The
|
|
310
|
+
framework makes that actions wrapper shrinkable so overflow detection still
|
|
311
|
+
works, and the header title yields before the toolbar collapses. -->
|
|
312
|
+
<div class="pa-card">
|
|
313
|
+
<div class="pa-card__header">
|
|
314
|
+
<h3>Team Members</h3>
|
|
315
|
+
<div class="pa-card__actions">
|
|
316
|
+
<div class="pa-btn-toolbar">
|
|
317
|
+
<button class="pa-btn pa-btn--secondary">Search</button>
|
|
318
|
+
<button class="pa-btn pa-btn--secondary">Filter</button>
|
|
319
|
+
<div class="pa-btn-split pa-btn-split--auto-absorb">
|
|
320
|
+
<button class="pa-btn pa-btn--primary">Add user</button>
|
|
321
|
+
<button class="pa-btn pa-btn--primary pa-btn-split__toggle" onclick="toggleSplitMenu(event)">
|
|
322
|
+
<i class="fas fa-chevron-down text-2xs pa-btn-split__chevron"></i>
|
|
323
|
+
</button>
|
|
324
|
+
<div class="pa-btn-split__menu">
|
|
325
|
+
<div class="pa-btn-split__menu-inner">
|
|
326
|
+
<button class="pa-btn-split__item">Add user with role…</button>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
</div>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
<div class="pa-card__body">Card content.</div>
|
|
334
|
+
</div>
|
|
335
|
+
|
|
336
|
+
|
|
286
337
|
<!-- BUTTONS WITH ICONS -->
|
|
287
338
|
|
|
288
339
|
<!-- Button with Icon (Text Icon) -->
|
package/snippets/cards.html
CHANGED
|
@@ -152,11 +152,15 @@
|
|
|
152
152
|
</div>
|
|
153
153
|
|
|
154
154
|
|
|
155
|
-
<!-- CARD WITH ACTIONS IN HEADER
|
|
155
|
+
<!-- CARD WITH ACTIONS IN HEADER
|
|
156
|
+
.pa-card__actions is THE canonical wrapper for header controls: it is a
|
|
157
|
+
documented card sub-element, carries its own gap + vertical centering, and
|
|
158
|
+
the header flex rules pin it to flex-shrink: 0 so it never gets squeezed.
|
|
159
|
+
Reach for this by default. -->
|
|
156
160
|
<div class="pa-card">
|
|
157
161
|
<div class="pa-card__header">
|
|
158
162
|
<h3>Card with Actions</h3>
|
|
159
|
-
<div class="pa-
|
|
163
|
+
<div class="pa-card__actions">
|
|
160
164
|
<button class="pa-btn pa-btn--sm pa-btn--secondary">Cancel</button>
|
|
161
165
|
<button class="pa-btn pa-btn--sm pa-btn--success">Save</button>
|
|
162
166
|
</div>
|
|
@@ -164,6 +168,26 @@
|
|
|
164
168
|
<div class="pa-card__body">Card content.</div>
|
|
165
169
|
</div>
|
|
166
170
|
|
|
171
|
+
<!-- …want the SEGMENTED (joined-corner) button look? Nest .pa-btn-group
|
|
172
|
+
INSIDE .pa-card__actions. Don't use .pa-btn-group as the direct header
|
|
173
|
+
child — it's a general-purpose button-cluster component, not the card's
|
|
174
|
+
actions slot; putting it straight in the header only "works" because the
|
|
175
|
+
header happens to also pin .pa-btn-group to flex-shrink: 0, and it drags
|
|
176
|
+
the attached-button styling in whether you want it or not. -->
|
|
177
|
+
<div class="pa-card">
|
|
178
|
+
<div class="pa-card__header">
|
|
179
|
+
<h3>Card with Segmented Actions</h3>
|
|
180
|
+
<div class="pa-card__actions">
|
|
181
|
+
<div class="pa-btn-group">
|
|
182
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary">Day</button>
|
|
183
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary">Week</button>
|
|
184
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary">Month</button>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="pa-card__body">Card content.</div>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
167
191
|
|
|
168
192
|
<!-- CARD WITH FOOTER ACTIONS -->
|
|
169
193
|
<div class="pa-card">
|
|
@@ -480,8 +504,14 @@ SUB-ELEMENTS:
|
|
|
480
504
|
reset so they inherit the header layout cleanly.
|
|
481
505
|
- .pa-card__body flex: 1; standard padding.
|
|
482
506
|
- .pa-card__footer Border-top + footer background; flex row.
|
|
483
|
-
- .pa-card__actions
|
|
484
|
-
|
|
507
|
+
- .pa-card__actions THE canonical header actions slot. Button/
|
|
508
|
+
control container (gap + align-center);
|
|
509
|
+
flex-shrink: 0 inside header. Use this for any
|
|
510
|
+
set of header controls. For the segmented
|
|
511
|
+
(joined-corner) look, nest a .pa-btn-group
|
|
512
|
+
INSIDE it — don't put .pa-btn-group straight in
|
|
513
|
+
the header (it's a generic button cluster, not
|
|
514
|
+
the actions slot).
|
|
485
515
|
- .pa-card__meta Muted secondary text (dates, byline, etc.).
|
|
486
516
|
|
|
487
517
|
TITLE SUB-COMPONENT:
|
package/snippets/comparison.html
CHANGED
|
@@ -22,18 +22,20 @@
|
|
|
22
22
|
================================ -->
|
|
23
23
|
|
|
24
24
|
<div class="pa-card">
|
|
25
|
-
<div class="pa-card__header
|
|
25
|
+
<div class="pa-card__header">
|
|
26
26
|
<h3>Version Detail</h3>
|
|
27
|
-
<div class="pa-
|
|
28
|
-
<
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<
|
|
36
|
-
|
|
27
|
+
<div class="pa-card__actions">
|
|
28
|
+
<div class="pa-btn-group">
|
|
29
|
+
<button class="pa-btn pa-btn--sm pa-btn--primary">
|
|
30
|
+
<i class="fa-solid fa-table-list"></i> View in form
|
|
31
|
+
</button>
|
|
32
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary">
|
|
33
|
+
<i class="fa-solid fa-table"></i> View in table
|
|
34
|
+
</button>
|
|
35
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary pa-btn--icon-only">
|
|
36
|
+
<i class="fa-solid fa-location-dot"></i>
|
|
37
|
+
</button>
|
|
38
|
+
</div>
|
|
37
39
|
</div>
|
|
38
40
|
</div>
|
|
39
41
|
<div class="pa-card__body pa-card__body--no-padding">
|
|
@@ -136,18 +138,20 @@
|
|
|
136
138
|
================================ -->
|
|
137
139
|
|
|
138
140
|
<div class="pa-card">
|
|
139
|
-
<div class="pa-card__header
|
|
141
|
+
<div class="pa-card__header">
|
|
140
142
|
<h3>Merge Comparison</h3>
|
|
141
|
-
<div class="pa-
|
|
142
|
-
<
|
|
143
|
-
<
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
<
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
<
|
|
150
|
-
|
|
143
|
+
<div class="pa-card__actions">
|
|
144
|
+
<div class="pa-btn-group">
|
|
145
|
+
<button class="pa-btn pa-btn--sm pa-btn--success">
|
|
146
|
+
<i class="fa-solid fa-code-merge"></i> Accept A
|
|
147
|
+
</button>
|
|
148
|
+
<button class="pa-btn pa-btn--sm pa-btn--info">
|
|
149
|
+
<i class="fa-solid fa-code-merge"></i> Accept B
|
|
150
|
+
</button>
|
|
151
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary">
|
|
152
|
+
<i class="fa-solid fa-xmark"></i> Reject Both
|
|
153
|
+
</button>
|
|
154
|
+
</div>
|
|
151
155
|
</div>
|
|
152
156
|
</div>
|
|
153
157
|
<div class="pa-card__body pa-card__body--no-padding">
|