@keenmate/pure-admin-core 1.0.0-rc01
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/LICENSE +21 -0
- package/README.md +172 -0
- package/dist/css/main.css +11542 -0
- package/dist/fonts/Delivery/Delivery_W_Bd.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_BdIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdBlk.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdLt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_It.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Lt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_LtIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Rg.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtE2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtU2Hw.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtY2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtg2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvto2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvts2H68T.woff2 +0 -0
- package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nejog.woff2 +0 -0
- package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nijogp5.woff2 +0 -0
- package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nmjogp5.woff2 +0 -0
- package/dist/fonts/google/PN_xRfK9oXHga0XdZ8g_vT0.woff2 +0 -0
- package/dist/fonts/google/PN_xRfK9oXHga0XdZsg_.woff2 +0 -0
- package/dist/fonts/google/PN_xRfK9oXHga0XdaMg_vT0.woff2 +0 -0
- package/dist/fonts/google/TK3tWkYFABsmjsphPho.woff2 +0 -0
- package/dist/fonts/google/TK3tWkYFABsmjspuPho7vA.woff2 +0 -0
- package/dist/fonts/google/TK3tWkYFABsmjspvPho7vA.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjTYJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjXYJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6Vj_YJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjbYJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjvYJw.woff2 +0 -0
- package/dist/fonts/google/fonts-tracklist.txt +48 -0
- package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbBjM4.woff2 +0 -0
- package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbOjM7sfA.woff2 +0 -0
- package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbPjM7sfA.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfLtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfXtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfbtrQ.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfjtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfntrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfrtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfvtrftV.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_B-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_C-bk.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_G-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_M-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_N-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_P-bnBeA.woff2 +0 -0
- package/package.json +60 -0
- package/snippets/alerts.html +281 -0
- package/snippets/badges.html +212 -0
- package/snippets/buttons.html +287 -0
- package/snippets/cards.html +393 -0
- package/snippets/checkbox-lists.html +490 -0
- package/snippets/code.html +225 -0
- package/snippets/command-palette.html +210 -0
- package/snippets/comparison.html +428 -0
- package/snippets/customization.html +142 -0
- package/snippets/forms.html +477 -0
- package/snippets/grid.html +338 -0
- package/snippets/layout.html +598 -0
- package/snippets/lists.html +232 -0
- package/snippets/loaders.html +183 -0
- package/snippets/manifest.json +388 -0
- package/snippets/modal-dialogs.html +411 -0
- package/snippets/modals.html +310 -0
- package/snippets/popconfirm.html +253 -0
- package/snippets/profile.html +264 -0
- package/snippets/tables.html +317 -0
- package/snippets/tabs.html +930 -0
- package/snippets/timeline.html +364 -0
- package/snippets/toasts.html +154 -0
- package/snippets/tooltips.html +411 -0
- package/snippets/typography.html +101 -0
- package/snippets/utilities.html +595 -0
- package/snippets/virtual-scroll.html +322 -0
- package/snippets/web-daterangepicker.html +634 -0
- package/snippets/web-multiselect.html +362 -0
- package/src/scss/.claude/settings.local.json +11 -0
- package/src/scss/_base-css-variables.scss +348 -0
- package/src/scss/_core.scss +99 -0
- package/src/scss/_fonts.scss +67 -0
- package/src/scss/_purecss-grid-responsive.scss +138 -0
- package/src/scss/_purecss-grid.scss +58 -0
- package/src/scss/_variables.scss +14 -0
- package/src/scss/core-components/_alerts.scss +212 -0
- package/src/scss/core-components/_badges.scss +16 -0
- package/src/scss/core-components/_base.scss +124 -0
- package/src/scss/core-components/_buttons.scss +473 -0
- package/src/scss/core-components/_cards.scss +285 -0
- package/src/scss/core-components/_checkbox-lists.scss +289 -0
- package/src/scss/core-components/_code.scss +141 -0
- package/src/scss/core-components/_command-palette.scss +518 -0
- package/src/scss/core-components/_comparison.scss +172 -0
- package/src/scss/core-components/_file-selector.scss +780 -0
- package/src/scss/core-components/_forms.scss +16 -0
- package/src/scss/core-components/_grid.scss +264 -0
- package/src/scss/core-components/_layout.scss +15 -0
- package/src/scss/core-components/_lists.scss +211 -0
- package/src/scss/core-components/_loaders.scss +277 -0
- package/src/scss/core-components/_logic-tree.scss +280 -0
- package/src/scss/core-components/_modals.scss +209 -0
- package/src/scss/core-components/_notifications.scss +253 -0
- package/src/scss/core-components/_pagers.scss +141 -0
- package/src/scss/core-components/_popconfirm.scss +170 -0
- package/src/scss/core-components/_profile.scss +281 -0
- package/src/scss/core-components/_settings-panel.scss +128 -0
- package/src/scss/core-components/_statistics.scss +200 -0
- package/src/scss/core-components/_tables.scss +555 -0
- package/src/scss/core-components/_tabs.scss +438 -0
- package/src/scss/core-components/_timeline.scss +589 -0
- package/src/scss/core-components/_toasts.scss +281 -0
- package/src/scss/core-components/_tooltips.scss +503 -0
- package/src/scss/core-components/_utilities.scss +241 -0
- package/src/scss/core-components/_web-components-theme.scss +294 -0
- package/src/scss/core-components/badges/_badge-base.scss +131 -0
- package/src/scss/core-components/badges/_badge-group.scss +25 -0
- package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -0
- package/src/scss/core-components/badges/_composite-badge.scss +70 -0
- package/src/scss/core-components/badges/_index.scss +10 -0
- package/src/scss/core-components/badges/_labels.scss +155 -0
- package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -0
- package/src/scss/core-components/forms/_form-inputs.scss +100 -0
- package/src/scss/core-components/forms/_form-layout.scss +66 -0
- package/src/scss/core-components/forms/_form-states.scss +89 -0
- package/src/scss/core-components/forms/_index.scss +12 -0
- package/src/scss/core-components/forms/_input-groups.scss +149 -0
- package/src/scss/core-components/forms/_input-wrapper.scss +89 -0
- package/src/scss/core-components/forms/_query-editor.scss +313 -0
- package/src/scss/core-components/layout/_index.scss +11 -0
- package/src/scss/core-components/layout/_layout-container.scss +105 -0
- package/src/scss/core-components/layout/_layout-responsive.scss +100 -0
- package/src/scss/core-components/layout/_navbar-elements.scss +238 -0
- package/src/scss/core-components/layout/_navbar.scss +71 -0
- package/src/scss/core-components/layout/_sidebar-states.scss +228 -0
- package/src/scss/core-components/layout/_sidebar.scss +177 -0
- package/src/scss/main.scss +7 -0
- package/src/scss/themes/_dark-base.scss +207 -0
- package/src/scss/themes/audi-light.scss +311 -0
- package/src/scss/themes/audi.scss +288 -0
- package/src/scss/themes/corporate.scss +203 -0
- package/src/scss/themes/dark-blue.scss +152 -0
- package/src/scss/themes/dark-green.scss +156 -0
- package/src/scss/themes/dark-red.scss +160 -0
- package/src/scss/themes/dark.scss +145 -0
- package/src/scss/themes/express.scss +281 -0
- package/src/scss/themes/minimal.scss +121 -0
- package/src/scss/utilities.scss +481 -0
- package/src/scss/variables/_base.scss +81 -0
- package/src/scss/variables/_colors.scss +148 -0
- package/src/scss/variables/_components.scss +509 -0
- package/src/scss/variables/_index.scss +13 -0
- package/src/scss/variables/_layout.scss +65 -0
- package/src/scss/variables/_spacing.scss +66 -0
- package/src/scss/variables/_system.scss +80 -0
- package/src/scss/variables/_typography.scss +37 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
<!-- ================================
|
|
2
|
+
CARD SNIPPETS
|
|
3
|
+
Pure Admin Visual Framework
|
|
4
|
+
================================ -->
|
|
5
|
+
|
|
6
|
+
<!-- BASIC CARD -->
|
|
7
|
+
|
|
8
|
+
<!-- Simple Card -->
|
|
9
|
+
<div class="pa-card">
|
|
10
|
+
<div class="pa-card__body">
|
|
11
|
+
This is a simple card with just a body.
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
<!-- CARD WITH HEADER -->
|
|
17
|
+
|
|
18
|
+
<!-- Card with Header -->
|
|
19
|
+
<div class="pa-card">
|
|
20
|
+
<div class="pa-card__header">
|
|
21
|
+
<h3>Card Title</h3>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="pa-card__body">
|
|
24
|
+
Card content goes here.
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
<!-- CARD WITH FOOTER -->
|
|
30
|
+
|
|
31
|
+
<!-- Card with Footer -->
|
|
32
|
+
<div class="pa-card">
|
|
33
|
+
<div class="pa-card__body">
|
|
34
|
+
Card content goes here.
|
|
35
|
+
</div>
|
|
36
|
+
<div class="pa-card__footer">
|
|
37
|
+
<button class="pa-btn pa-btn--primary">Action</button>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<!-- COMPLETE CARD -->
|
|
43
|
+
|
|
44
|
+
<!-- Card with Header, Body, and Footer -->
|
|
45
|
+
<div class="pa-card">
|
|
46
|
+
<div class="pa-card__header">
|
|
47
|
+
<h3>Complete Card</h3>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="pa-card__body">
|
|
50
|
+
<p>This card has all three sections: header, body, and footer.</p>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="pa-card__footer">
|
|
53
|
+
<button class="pa-btn pa-btn--secondary">Cancel</button>
|
|
54
|
+
<button class="pa-btn pa-btn--primary">Save</button>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
<!-- CARD WITH TABS -->
|
|
60
|
+
|
|
61
|
+
<!-- Card with Tabs -->
|
|
62
|
+
<div class="pa-card">
|
|
63
|
+
<div class="pa-card__header">
|
|
64
|
+
<div class="pa-card__tabs">
|
|
65
|
+
<button class="pa-card__tab pa-card__tab--active">Overview</button>
|
|
66
|
+
<button class="pa-card__tab">Details</button>
|
|
67
|
+
<button class="pa-card__tab">Settings</button>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="pa-card__body">
|
|
71
|
+
<p>Tab content goes here.</p>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
<!-- CARD VARIANTS -->
|
|
77
|
+
|
|
78
|
+
<!-- Primary Card -->
|
|
79
|
+
<div class="pa-card pa-card--primary">
|
|
80
|
+
<div class="pa-card__header">
|
|
81
|
+
<h3>Primary Card</h3>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="pa-card__body">
|
|
84
|
+
Content here.
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<!-- Success Card -->
|
|
89
|
+
<div class="pa-card pa-card--success">
|
|
90
|
+
<div class="pa-card__header">
|
|
91
|
+
<h3>Success Card</h3>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="pa-card__body">
|
|
94
|
+
Content here.
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<!-- Warning Card -->
|
|
99
|
+
<div class="pa-card pa-card--warning">
|
|
100
|
+
<div class="pa-card__header">
|
|
101
|
+
<h3>Warning Card</h3>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="pa-card__body">
|
|
104
|
+
Content here.
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<!-- Danger Card -->
|
|
109
|
+
<div class="pa-card pa-card--danger">
|
|
110
|
+
<div class="pa-card__header">
|
|
111
|
+
<h3>Danger Card</h3>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="pa-card__body">
|
|
114
|
+
Content here.
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<!-- Stat Card (Basic) -->
|
|
119
|
+
<div class="pa-card pa-card--stat">
|
|
120
|
+
<div class="pa-card__body">
|
|
121
|
+
<div class="pa-stat">
|
|
122
|
+
<div class="pa-stat__value">1,234</div>
|
|
123
|
+
<div class="pa-stat__label">Total Users</div>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
<!-- Stat Card with Icon -->
|
|
129
|
+
<div class="pa-card pa-card--stat">
|
|
130
|
+
<div class="pa-card__body">
|
|
131
|
+
<div class="pa-stat pa-stat--with-icon">
|
|
132
|
+
<div class="pa-stat__icon">👥</div>
|
|
133
|
+
<div class="pa-stat__content">
|
|
134
|
+
<div class="pa-stat__value">1,234</div>
|
|
135
|
+
<div class="pa-stat__label">Total Users</div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
<!-- Stat Card with Trend -->
|
|
142
|
+
<div class="pa-card pa-card--stat">
|
|
143
|
+
<div class="pa-card__body">
|
|
144
|
+
<div class="pa-stat">
|
|
145
|
+
<div class="pa-stat__value">$12,345</div>
|
|
146
|
+
<div class="pa-stat__label">Revenue</div>
|
|
147
|
+
<div class="pa-stat__trend pa-stat__trend--up">+12.5%</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
<!-- CARD WITH ACTIONS IN HEADER -->
|
|
154
|
+
|
|
155
|
+
<!-- Card with Header Actions -->
|
|
156
|
+
<div class="pa-card">
|
|
157
|
+
<div class="pa-card__header">
|
|
158
|
+
<h3>Card with Actions</h3>
|
|
159
|
+
<div class="pa-btn-group">
|
|
160
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary">Cancel</button>
|
|
161
|
+
<button class="pa-btn pa-btn--sm pa-btn--success">Save</button>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
<div class="pa-card__body">
|
|
165
|
+
Card content.
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
<!-- CARD WITH TITLE COMPONENTS -->
|
|
171
|
+
|
|
172
|
+
<!-- Card with Title Icon and Text -->
|
|
173
|
+
<div class="pa-card">
|
|
174
|
+
<div class="pa-card__header">
|
|
175
|
+
<div class="pa-card__title">
|
|
176
|
+
<span class="pa-card__title-icon">📊</span>
|
|
177
|
+
<h3 class="pa-card__title-text">Analytics Dashboard</h3>
|
|
178
|
+
</div>
|
|
179
|
+
<div class="pa-card__tools">
|
|
180
|
+
<button class="pa-btn pa-btn--sm pa-btn--secondary">Refresh</button>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
<div class="pa-card__body">
|
|
184
|
+
Dashboard content with title icon and tools.
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
<!-- CARD WITH METADATA -->
|
|
190
|
+
|
|
191
|
+
<!-- Card with Meta Information -->
|
|
192
|
+
<div class="pa-card">
|
|
193
|
+
<div class="pa-card__header">
|
|
194
|
+
<h3>Article Title</h3>
|
|
195
|
+
<span class="pa-card__meta">Published 2 hours ago</span>
|
|
196
|
+
</div>
|
|
197
|
+
<div class="pa-card__body">
|
|
198
|
+
Article content goes here.
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
<!-- CARD WITH FOOTER ACTIONS -->
|
|
204
|
+
|
|
205
|
+
<!-- Card with Footer Actions -->
|
|
206
|
+
<div class="pa-card">
|
|
207
|
+
<div class="pa-card__header">
|
|
208
|
+
<h3>Form Card</h3>
|
|
209
|
+
</div>
|
|
210
|
+
<div class="pa-card__body">
|
|
211
|
+
Form content here.
|
|
212
|
+
</div>
|
|
213
|
+
<div class="pa-card__footer">
|
|
214
|
+
<div></div>
|
|
215
|
+
<div class="pa-card__actions">
|
|
216
|
+
<button class="pa-btn pa-btn--secondary">Cancel</button>
|
|
217
|
+
<button class="pa-btn pa-btn--success">Save</button>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
<!-- CARD WITH NO PADDING BODY -->
|
|
224
|
+
|
|
225
|
+
<!-- Card with No Padding Body (for tables) -->
|
|
226
|
+
<div class="pa-card">
|
|
227
|
+
<div class="pa-card__header">
|
|
228
|
+
<h3>User List</h3>
|
|
229
|
+
</div>
|
|
230
|
+
<div class="pa-card__body pa-card__body--no-padding">
|
|
231
|
+
<table class="pa-table">
|
|
232
|
+
<thead>
|
|
233
|
+
<tr>
|
|
234
|
+
<th>Name</th>
|
|
235
|
+
<th>Email</th>
|
|
236
|
+
</tr>
|
|
237
|
+
</thead>
|
|
238
|
+
<tbody>
|
|
239
|
+
<tr>
|
|
240
|
+
<td>John Doe</td>
|
|
241
|
+
<td>john@example.com</td>
|
|
242
|
+
</tr>
|
|
243
|
+
</tbody>
|
|
244
|
+
</table>
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
<!-- CARD WITH TAB CONTENT -->
|
|
250
|
+
|
|
251
|
+
<!-- Card with Tab Content Areas -->
|
|
252
|
+
<div class="pa-card">
|
|
253
|
+
<div class="pa-card__header">
|
|
254
|
+
<div class="pa-card__tabs">
|
|
255
|
+
<button class="pa-card__tab pa-card__tab--active" onclick="switchTab(this, 'tab1')">Tab 1</button>
|
|
256
|
+
<button class="pa-card__tab" onclick="switchTab(this, 'tab2')">Tab 2</button>
|
|
257
|
+
<button class="pa-card__tab" onclick="switchTab(this, 'tab3')">Tab 3</button>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
<div class="pa-card__body">
|
|
261
|
+
<div class="pa-card__tab-content pa-card__tab-content--active" id="tab1">
|
|
262
|
+
Content for Tab 1
|
|
263
|
+
</div>
|
|
264
|
+
<div class="pa-card__tab-content" id="tab2">
|
|
265
|
+
Content for Tab 2
|
|
266
|
+
</div>
|
|
267
|
+
<div class="pa-card__tab-content" id="tab3">
|
|
268
|
+
Content for Tab 3
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
<!-- SAME HEIGHT CARDS -->
|
|
275
|
+
|
|
276
|
+
<!-- Equal Height Cards in a Row -->
|
|
277
|
+
<div class="pa-row pa-row--same-height">
|
|
278
|
+
<div class="pa-col-100 pa-col-md-1-3">
|
|
279
|
+
<div class="pa-card">
|
|
280
|
+
<div class="pa-card__header">
|
|
281
|
+
<h3>Short Card</h3>
|
|
282
|
+
</div>
|
|
283
|
+
<div class="pa-card__body">
|
|
284
|
+
<p>Minimal content.</p>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
<div class="pa-col-100 pa-col-md-1-3">
|
|
289
|
+
<div class="pa-card">
|
|
290
|
+
<div class="pa-card__header">
|
|
291
|
+
<h3>Tall Card</h3>
|
|
292
|
+
</div>
|
|
293
|
+
<div class="pa-card__body">
|
|
294
|
+
<p>This card has more content.</p>
|
|
295
|
+
<p>All cards stretch to match this height.</p>
|
|
296
|
+
<p>Useful for consistent dashboard layouts.</p>
|
|
297
|
+
</div>
|
|
298
|
+
</div>
|
|
299
|
+
</div>
|
|
300
|
+
<div class="pa-col-100 pa-col-md-1-3">
|
|
301
|
+
<div class="pa-card">
|
|
302
|
+
<div class="pa-card__header">
|
|
303
|
+
<h3>Medium Card</h3>
|
|
304
|
+
</div>
|
|
305
|
+
<div class="pa-card__body">
|
|
306
|
+
<p>Also stretches to match.</p>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
</div>
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
<!-- CARD SECTION -->
|
|
314
|
+
|
|
315
|
+
<!-- Section with Heading -->
|
|
316
|
+
<div class="pa-section">
|
|
317
|
+
<h3>Section Title</h3>
|
|
318
|
+
<div class="pa-card">
|
|
319
|
+
<div class="pa-card__body">
|
|
320
|
+
Content inside section
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
<!-- JAVASCRIPT FOR TAB SWITCHING -->
|
|
327
|
+
<script>
|
|
328
|
+
function switchTab(button, tabId) {
|
|
329
|
+
// Remove active class from all tabs
|
|
330
|
+
const tabs = button.parentElement.querySelectorAll('.pa-card__tab');
|
|
331
|
+
tabs.forEach(tab => tab.classList.remove('pa-card__tab--active'));
|
|
332
|
+
|
|
333
|
+
// Add active class to clicked tab
|
|
334
|
+
button.classList.add('pa-card__tab--active');
|
|
335
|
+
|
|
336
|
+
// Hide all tab content
|
|
337
|
+
const card = button.closest('.pa-card');
|
|
338
|
+
const contents = card.querySelectorAll('.pa-card__tab-content');
|
|
339
|
+
contents.forEach(content => content.classList.remove('pa-card__tab-content--active'));
|
|
340
|
+
|
|
341
|
+
// Show selected tab content
|
|
342
|
+
const selectedContent = card.querySelector(`#${tabId}`);
|
|
343
|
+
if (selectedContent) {
|
|
344
|
+
selectedContent.classList.add('pa-card__tab-content--active');
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
</script>
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
<!-- ================================
|
|
351
|
+
COMPONENT REFERENCE
|
|
352
|
+
================================ -->
|
|
353
|
+
|
|
354
|
+
<!--
|
|
355
|
+
CARD CLASSES:
|
|
356
|
+
- .pa-card: Base card class
|
|
357
|
+
- .pa-card--primary, --success, --warning, --danger: Colored header variants
|
|
358
|
+
- .pa-card--stat: Stat card variant (compact, centered)
|
|
359
|
+
|
|
360
|
+
CARD ELEMENTS:
|
|
361
|
+
- .pa-card__header: Card header container
|
|
362
|
+
- .pa-card__body: Card body/content container
|
|
363
|
+
- .pa-card__body--no-padding: Remove body padding (for tables)
|
|
364
|
+
- .pa-card__footer: Card footer container
|
|
365
|
+
- .pa-card__meta: Metadata text (dates, author, etc.)
|
|
366
|
+
- .pa-card__title: Title container
|
|
367
|
+
- .pa-card__title-icon: Icon in title
|
|
368
|
+
- .pa-card__title-text: Title text
|
|
369
|
+
- .pa-card__tools: Tools/actions container in header
|
|
370
|
+
- .pa-card__actions: Actions container in footer
|
|
371
|
+
|
|
372
|
+
CARD TABS:
|
|
373
|
+
- .pa-card__tabs: Tab container in header
|
|
374
|
+
- .pa-card__tab: Individual tab button
|
|
375
|
+
- .pa-card__tab--active: Active tab state
|
|
376
|
+
- .pa-card__tab-content: Tab panel content
|
|
377
|
+
- .pa-card__tab-content--active: Active tab panel
|
|
378
|
+
|
|
379
|
+
STAT COMPONENT (inside stat cards):
|
|
380
|
+
- .pa-stat: Stat container
|
|
381
|
+
- .pa-stat--with-icon: Stat with icon layout
|
|
382
|
+
- .pa-stat__icon: Stat icon
|
|
383
|
+
- .pa-stat__content: Content wrapper (when using icon)
|
|
384
|
+
- .pa-stat__value: Stat value (large number)
|
|
385
|
+
- .pa-stat__label: Stat label/description
|
|
386
|
+
- .pa-stat__trend: Trend indicator
|
|
387
|
+
- .pa-stat__trend--up: Positive trend (green)
|
|
388
|
+
- .pa-stat__trend--down: Negative trend (red)
|
|
389
|
+
|
|
390
|
+
LAYOUT:
|
|
391
|
+
- .pa-row--same-height: Equal height cards in a row
|
|
392
|
+
- .pa-section: Section container with heading
|
|
393
|
+
-->
|