@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.
Files changed (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +172 -0
  3. package/dist/css/main.css +11542 -0
  4. package/dist/fonts/Delivery/Delivery_W_Bd.woff2 +0 -0
  5. package/dist/fonts/Delivery/Delivery_W_BdIt.woff2 +0 -0
  6. package/dist/fonts/Delivery/Delivery_W_CdBlk.woff2 +0 -0
  7. package/dist/fonts/Delivery/Delivery_W_CdLt.woff2 +0 -0
  8. package/dist/fonts/Delivery/Delivery_W_It.woff2 +0 -0
  9. package/dist/fonts/Delivery/Delivery_W_Lt.woff2 +0 -0
  10. package/dist/fonts/Delivery/Delivery_W_LtIt.woff2 +0 -0
  11. package/dist/fonts/Delivery/Delivery_W_Rg.woff2 +0 -0
  12. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2 +0 -0
  13. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.1 +0 -0
  14. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.2 +0 -0
  15. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2 +0 -0
  16. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.1 +0 -0
  17. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.2 +0 -0
  18. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2 +0 -0
  19. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2.1 +0 -0
  20. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2 +0 -0
  21. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.1 +0 -0
  22. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.2 +0 -0
  23. package/dist/fonts/google/6aez4K2oVqwIvtE2H68T.woff2 +0 -0
  24. package/dist/fonts/google/6aez4K2oVqwIvtU2Hw.woff2 +0 -0
  25. package/dist/fonts/google/6aez4K2oVqwIvtY2H68T.woff2 +0 -0
  26. package/dist/fonts/google/6aez4K2oVqwIvtg2H68T.woff2 +0 -0
  27. package/dist/fonts/google/6aez4K2oVqwIvto2H68T.woff2 +0 -0
  28. package/dist/fonts/google/6aez4K2oVqwIvts2H68T.woff2 +0 -0
  29. package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nejog.woff2 +0 -0
  30. package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nijogp5.woff2 +0 -0
  31. package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nmjogp5.woff2 +0 -0
  32. package/dist/fonts/google/PN_xRfK9oXHga0XdZ8g_vT0.woff2 +0 -0
  33. package/dist/fonts/google/PN_xRfK9oXHga0XdZsg_.woff2 +0 -0
  34. package/dist/fonts/google/PN_xRfK9oXHga0XdaMg_vT0.woff2 +0 -0
  35. package/dist/fonts/google/TK3tWkYFABsmjsphPho.woff2 +0 -0
  36. package/dist/fonts/google/TK3tWkYFABsmjspuPho7vA.woff2 +0 -0
  37. package/dist/fonts/google/TK3tWkYFABsmjspvPho7vA.woff2 +0 -0
  38. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjTYJwQj.woff2 +0 -0
  39. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjXYJwQj.woff2 +0 -0
  40. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6Vj_YJwQj.woff2 +0 -0
  41. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjbYJwQj.woff2 +0 -0
  42. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjvYJw.woff2 +0 -0
  43. package/dist/fonts/google/fonts-tracklist.txt +48 -0
  44. package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbBjM4.woff2 +0 -0
  45. package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbOjM7sfA.woff2 +0 -0
  46. package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbPjM7sfA.woff2 +0 -0
  47. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfLtrftV.woff2 +0 -0
  48. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfXtrftV.woff2 +0 -0
  49. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfbtrQ.woff2 +0 -0
  50. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfjtrftV.woff2 +0 -0
  51. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfntrftV.woff2 +0 -0
  52. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfrtrftV.woff2 +0 -0
  53. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfvtrftV.woff2 +0 -0
  54. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_B-bnBeA.woff2 +0 -0
  55. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_C-bk.woff2 +0 -0
  56. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_G-bnBeA.woff2 +0 -0
  57. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_M-bnBeA.woff2 +0 -0
  58. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_N-bnBeA.woff2 +0 -0
  59. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_P-bnBeA.woff2 +0 -0
  60. package/package.json +60 -0
  61. package/snippets/alerts.html +281 -0
  62. package/snippets/badges.html +212 -0
  63. package/snippets/buttons.html +287 -0
  64. package/snippets/cards.html +393 -0
  65. package/snippets/checkbox-lists.html +490 -0
  66. package/snippets/code.html +225 -0
  67. package/snippets/command-palette.html +210 -0
  68. package/snippets/comparison.html +428 -0
  69. package/snippets/customization.html +142 -0
  70. package/snippets/forms.html +477 -0
  71. package/snippets/grid.html +338 -0
  72. package/snippets/layout.html +598 -0
  73. package/snippets/lists.html +232 -0
  74. package/snippets/loaders.html +183 -0
  75. package/snippets/manifest.json +388 -0
  76. package/snippets/modal-dialogs.html +411 -0
  77. package/snippets/modals.html +310 -0
  78. package/snippets/popconfirm.html +253 -0
  79. package/snippets/profile.html +264 -0
  80. package/snippets/tables.html +317 -0
  81. package/snippets/tabs.html +930 -0
  82. package/snippets/timeline.html +364 -0
  83. package/snippets/toasts.html +154 -0
  84. package/snippets/tooltips.html +411 -0
  85. package/snippets/typography.html +101 -0
  86. package/snippets/utilities.html +595 -0
  87. package/snippets/virtual-scroll.html +322 -0
  88. package/snippets/web-daterangepicker.html +634 -0
  89. package/snippets/web-multiselect.html +362 -0
  90. package/src/scss/.claude/settings.local.json +11 -0
  91. package/src/scss/_base-css-variables.scss +348 -0
  92. package/src/scss/_core.scss +99 -0
  93. package/src/scss/_fonts.scss +67 -0
  94. package/src/scss/_purecss-grid-responsive.scss +138 -0
  95. package/src/scss/_purecss-grid.scss +58 -0
  96. package/src/scss/_variables.scss +14 -0
  97. package/src/scss/core-components/_alerts.scss +212 -0
  98. package/src/scss/core-components/_badges.scss +16 -0
  99. package/src/scss/core-components/_base.scss +124 -0
  100. package/src/scss/core-components/_buttons.scss +473 -0
  101. package/src/scss/core-components/_cards.scss +285 -0
  102. package/src/scss/core-components/_checkbox-lists.scss +289 -0
  103. package/src/scss/core-components/_code.scss +141 -0
  104. package/src/scss/core-components/_command-palette.scss +518 -0
  105. package/src/scss/core-components/_comparison.scss +172 -0
  106. package/src/scss/core-components/_file-selector.scss +780 -0
  107. package/src/scss/core-components/_forms.scss +16 -0
  108. package/src/scss/core-components/_grid.scss +264 -0
  109. package/src/scss/core-components/_layout.scss +15 -0
  110. package/src/scss/core-components/_lists.scss +211 -0
  111. package/src/scss/core-components/_loaders.scss +277 -0
  112. package/src/scss/core-components/_logic-tree.scss +280 -0
  113. package/src/scss/core-components/_modals.scss +209 -0
  114. package/src/scss/core-components/_notifications.scss +253 -0
  115. package/src/scss/core-components/_pagers.scss +141 -0
  116. package/src/scss/core-components/_popconfirm.scss +170 -0
  117. package/src/scss/core-components/_profile.scss +281 -0
  118. package/src/scss/core-components/_settings-panel.scss +128 -0
  119. package/src/scss/core-components/_statistics.scss +200 -0
  120. package/src/scss/core-components/_tables.scss +555 -0
  121. package/src/scss/core-components/_tabs.scss +438 -0
  122. package/src/scss/core-components/_timeline.scss +589 -0
  123. package/src/scss/core-components/_toasts.scss +281 -0
  124. package/src/scss/core-components/_tooltips.scss +503 -0
  125. package/src/scss/core-components/_utilities.scss +241 -0
  126. package/src/scss/core-components/_web-components-theme.scss +294 -0
  127. package/src/scss/core-components/badges/_badge-base.scss +131 -0
  128. package/src/scss/core-components/badges/_badge-group.scss +25 -0
  129. package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -0
  130. package/src/scss/core-components/badges/_composite-badge.scss +70 -0
  131. package/src/scss/core-components/badges/_index.scss +10 -0
  132. package/src/scss/core-components/badges/_labels.scss +155 -0
  133. package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -0
  134. package/src/scss/core-components/forms/_form-inputs.scss +100 -0
  135. package/src/scss/core-components/forms/_form-layout.scss +66 -0
  136. package/src/scss/core-components/forms/_form-states.scss +89 -0
  137. package/src/scss/core-components/forms/_index.scss +12 -0
  138. package/src/scss/core-components/forms/_input-groups.scss +149 -0
  139. package/src/scss/core-components/forms/_input-wrapper.scss +89 -0
  140. package/src/scss/core-components/forms/_query-editor.scss +313 -0
  141. package/src/scss/core-components/layout/_index.scss +11 -0
  142. package/src/scss/core-components/layout/_layout-container.scss +105 -0
  143. package/src/scss/core-components/layout/_layout-responsive.scss +100 -0
  144. package/src/scss/core-components/layout/_navbar-elements.scss +238 -0
  145. package/src/scss/core-components/layout/_navbar.scss +71 -0
  146. package/src/scss/core-components/layout/_sidebar-states.scss +228 -0
  147. package/src/scss/core-components/layout/_sidebar.scss +177 -0
  148. package/src/scss/main.scss +7 -0
  149. package/src/scss/themes/_dark-base.scss +207 -0
  150. package/src/scss/themes/audi-light.scss +311 -0
  151. package/src/scss/themes/audi.scss +288 -0
  152. package/src/scss/themes/corporate.scss +203 -0
  153. package/src/scss/themes/dark-blue.scss +152 -0
  154. package/src/scss/themes/dark-green.scss +156 -0
  155. package/src/scss/themes/dark-red.scss +160 -0
  156. package/src/scss/themes/dark.scss +145 -0
  157. package/src/scss/themes/express.scss +281 -0
  158. package/src/scss/themes/minimal.scss +121 -0
  159. package/src/scss/utilities.scss +481 -0
  160. package/src/scss/variables/_base.scss +81 -0
  161. package/src/scss/variables/_colors.scss +148 -0
  162. package/src/scss/variables/_components.scss +509 -0
  163. package/src/scss/variables/_index.scss +13 -0
  164. package/src/scss/variables/_layout.scss +65 -0
  165. package/src/scss/variables/_spacing.scss +66 -0
  166. package/src/scss/variables/_system.scss +80 -0
  167. package/src/scss/variables/_typography.scss +37 -0
@@ -0,0 +1,428 @@
1
+ <!-- ================================
2
+ COMPARISON TABLE SNIPPETS
3
+ Pure Admin Visual Framework
4
+ ================================ -->
5
+
6
+ <!-- ================================
7
+ TWO-COLUMN COMPARISON
8
+ Base values vs New values
9
+ ================================ -->
10
+
11
+ <div class="pa-card">
12
+ <div class="pa-card__header d-flex justify-content-between align-items-center">
13
+ <h3>Version Detail</h3>
14
+ <div class="pa-btn-group">
15
+ <button class="pa-btn pa-btn--sm pa-btn--primary">
16
+ <i class="fa-solid fa-table-list"></i> View in form
17
+ </button>
18
+ <button class="pa-btn pa-btn--sm pa-btn--secondary">
19
+ <i class="fa-solid fa-table"></i> View in table
20
+ </button>
21
+ <button class="pa-btn pa-btn--sm pa-btn--secondary pa-btn--icon-only">
22
+ <i class="fa-solid fa-location-dot"></i>
23
+ </button>
24
+ </div>
25
+ </div>
26
+ <div class="pa-card__body pa-card__body--no-padding">
27
+ <table class="pa-table pa-comparison-table">
28
+ <thead>
29
+ <tr>
30
+ <th style="width: 20%;">#</th>
31
+ <th style="width: 40%;">Base values</th>
32
+ <th style="width: 40%;">New values</th>
33
+ </tr>
34
+ </thead>
35
+ <tbody>
36
+ <!-- Regular row (no changes) -->
37
+ <tr>
38
+ <td class="pa-comparison-table__label">Country Iso 2</td>
39
+ <td>
40
+ <div class="pa-comparison-table__value">
41
+ <span>be</span>
42
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
43
+ <i class="fa-solid fa-clipboard"></i>
44
+ </button>
45
+ </div>
46
+ </td>
47
+ <td>
48
+ <div class="pa-comparison-table__value">
49
+ <span>be</span>
50
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
51
+ <i class="fa-solid fa-clipboard"></i>
52
+ </button>
53
+ </div>
54
+ </td>
55
+ </tr>
56
+
57
+ <!-- Empty row -->
58
+ <tr>
59
+ <td class="pa-comparison-table__label">Region</td>
60
+ <td></td>
61
+ <td></td>
62
+ </tr>
63
+
64
+ <!-- Changed row (pink highlight) -->
65
+ <tr>
66
+ <td class="pa-comparison-table__label">Town</td>
67
+ <td>
68
+ <div class="pa-comparison-table__value">
69
+ <span>Beveren</span>
70
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
71
+ <i class="fa-solid fa-clipboard"></i>
72
+ </button>
73
+ </div>
74
+ </td>
75
+ <td class="pa-comparison-table__changed">
76
+ <div class="pa-comparison-table__value">
77
+ <span>Antwerpen</span>
78
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
79
+ <i class="fa-solid fa-clipboard"></i>
80
+ </button>
81
+ </div>
82
+ </td>
83
+ </tr>
84
+
85
+ <!-- Section header -->
86
+ <tr class="pa-comparison-table__section">
87
+ <td colspan="3">Address metadata</td>
88
+ </tr>
89
+
90
+ <!-- Row with status indicator -->
91
+ <tr>
92
+ <td class="pa-comparison-table__label">Is active</td>
93
+ <td>
94
+ <i class="fa-solid fa-check" style="color: var(--base-success-color);"></i>
95
+ </td>
96
+ <td>
97
+ <i class="fa-solid fa-check" style="color: var(--base-success-color);"></i>
98
+ </td>
99
+ </tr>
100
+
101
+ <!-- Row with badge -->
102
+ <tr>
103
+ <td class="pa-comparison-table__label">Status</td>
104
+ <td>
105
+ <span class="pa-badge pa-badge--success">Active</span>
106
+ </td>
107
+ <td>
108
+ <span class="pa-badge pa-badge--success">Active</span>
109
+ </td>
110
+ </tr>
111
+ </tbody>
112
+ </table>
113
+ </div>
114
+ </div>
115
+
116
+
117
+ <!-- ================================
118
+ THREE-COLUMN COMPARISON
119
+ Base vs Change A vs Change B
120
+ ================================ -->
121
+
122
+ <div class="pa-card">
123
+ <div class="pa-card__header d-flex justify-content-between align-items-center">
124
+ <h3>Merge Comparison</h3>
125
+ <div class="pa-btn-group">
126
+ <button class="pa-btn pa-btn--sm pa-btn--success">
127
+ <i class="fa-solid fa-code-merge"></i> Accept A
128
+ </button>
129
+ <button class="pa-btn pa-btn--sm pa-btn--info">
130
+ <i class="fa-solid fa-code-merge"></i> Accept B
131
+ </button>
132
+ <button class="pa-btn pa-btn--sm pa-btn--secondary">
133
+ <i class="fa-solid fa-xmark"></i> Reject Both
134
+ </button>
135
+ </div>
136
+ </div>
137
+ <div class="pa-card__body pa-card__body--no-padding">
138
+ <table class="pa-table pa-comparison-table">
139
+ <thead>
140
+ <tr>
141
+ <th style="width: 20%;">#</th>
142
+ <th style="width: 26.67%;">Base</th>
143
+ <th style="width: 26.67%;">Change A</th>
144
+ <th style="width: 26.67%;">Change B</th>
145
+ </tr>
146
+ </thead>
147
+ <tbody>
148
+ <!-- Section header -->
149
+ <tr class="pa-comparison-table__section">
150
+ <td colspan="4">Contact Information</td>
151
+ </tr>
152
+
153
+ <!-- Single change in column A -->
154
+ <tr>
155
+ <td class="pa-comparison-table__label">Email</td>
156
+ <td>
157
+ <div class="pa-comparison-table__value">
158
+ <span>john.doe@company.com</span>
159
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
160
+ <i class="fa-solid fa-clipboard"></i>
161
+ </button>
162
+ </div>
163
+ </td>
164
+ <td class="pa-comparison-table__changed">
165
+ <div class="pa-comparison-table__value">
166
+ <span>john.doe@newcompany.com</span>
167
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
168
+ <i class="fa-solid fa-clipboard"></i>
169
+ </button>
170
+ </div>
171
+ </td>
172
+ <td>
173
+ <div class="pa-comparison-table__value">
174
+ <span>john.doe@company.com</span>
175
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
176
+ <i class="fa-solid fa-clipboard"></i>
177
+ </button>
178
+ </div>
179
+ </td>
180
+ </tr>
181
+
182
+ <!-- Single change in column B -->
183
+ <tr>
184
+ <td class="pa-comparison-table__label">Phone</td>
185
+ <td>
186
+ <div class="pa-comparison-table__value">
187
+ <span>+32 123 456 789</span>
188
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
189
+ <i class="fa-solid fa-clipboard"></i>
190
+ </button>
191
+ </div>
192
+ </td>
193
+ <td>
194
+ <div class="pa-comparison-table__value">
195
+ <span>+32 123 456 789</span>
196
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
197
+ <i class="fa-solid fa-clipboard"></i>
198
+ </button>
199
+ </div>
200
+ </td>
201
+ <td class="pa-comparison-table__changed">
202
+ <div class="pa-comparison-table__value">
203
+ <span>+32 987 654 321</span>
204
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
205
+ <i class="fa-solid fa-clipboard"></i>
206
+ </button>
207
+ </div>
208
+ </td>
209
+ </tr>
210
+
211
+ <!-- Conflict (both A and B changed differently) -->
212
+ <tr>
213
+ <td class="pa-comparison-table__label">Department</td>
214
+ <td>
215
+ <div class="pa-comparison-table__value">
216
+ <span>Sales</span>
217
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
218
+ <i class="fa-solid fa-clipboard"></i>
219
+ </button>
220
+ </div>
221
+ </td>
222
+ <td class="pa-comparison-table__changed">
223
+ <div class="pa-comparison-table__value">
224
+ <span>Marketing</span>
225
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
226
+ <i class="fa-solid fa-clipboard"></i>
227
+ </button>
228
+ </div>
229
+ </td>
230
+ <td class="pa-comparison-table__changed pa-comparison-table__conflict">
231
+ <div class="pa-comparison-table__value">
232
+ <span>Engineering</span>
233
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
234
+ <i class="fa-solid fa-clipboard"></i>
235
+ </button>
236
+ </div>
237
+ </td>
238
+ </tr>
239
+ </tbody>
240
+ </table>
241
+ </div>
242
+ </div>
243
+
244
+
245
+ <!-- ================================
246
+ SOLID BACKGROUND VARIANT
247
+ Using --solid modifier for uniform background highlighting
248
+ ================================ -->
249
+
250
+ <div class="pa-card">
251
+ <div class="pa-card__header">
252
+ <h3>Version Detail (Solid Background)</h3>
253
+ </div>
254
+ <div class="pa-card__body pa-card__body--no-padding">
255
+ <table class="pa-table pa-comparison-table">
256
+ <thead>
257
+ <tr>
258
+ <th style="width: 20%;">#</th>
259
+ <th style="width: 40%;">Base values</th>
260
+ <th style="width: 40%;">New values</th>
261
+ </tr>
262
+ </thead>
263
+ <tbody>
264
+ <!-- Regular row (no changes) -->
265
+ <tr>
266
+ <td class="pa-comparison-table__label">Country Iso 2</td>
267
+ <td>
268
+ <div class="pa-comparison-table__value">
269
+ <span>be</span>
270
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
271
+ <i class="fa-solid fa-clipboard"></i>
272
+ </button>
273
+ </div>
274
+ </td>
275
+ <td>
276
+ <div class="pa-comparison-table__value">
277
+ <span>be</span>
278
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
279
+ <i class="fa-solid fa-clipboard"></i>
280
+ </button>
281
+ </div>
282
+ </td>
283
+ </tr>
284
+
285
+ <!-- Changed row with solid background (no left border) -->
286
+ <tr>
287
+ <td class="pa-comparison-table__label">Town</td>
288
+ <td>
289
+ <div class="pa-comparison-table__value">
290
+ <span>Beveren</span>
291
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
292
+ <i class="fa-solid fa-clipboard"></i>
293
+ </button>
294
+ </div>
295
+ </td>
296
+ <td class="pa-comparison-table__changed pa-comparison-table__changed--solid">
297
+ <div class="pa-comparison-table__value">
298
+ <span>Antwerpen</span>
299
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
300
+ <i class="fa-solid fa-clipboard"></i>
301
+ </button>
302
+ </div>
303
+ </td>
304
+ </tr>
305
+
306
+ <!-- Another changed row with solid background -->
307
+ <tr>
308
+ <td class="pa-comparison-table__label">Postal Code</td>
309
+ <td>
310
+ <div class="pa-comparison-table__value">
311
+ <span>9120</span>
312
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
313
+ <i class="fa-solid fa-clipboard"></i>
314
+ </button>
315
+ </div>
316
+ </td>
317
+ <td class="pa-comparison-table__changed pa-comparison-table__changed--solid">
318
+ <div class="pa-comparison-table__value">
319
+ <span>2000</span>
320
+ <button class="pa-btn pa-btn--xs pa-btn--icon-only pa-comparison-table__copy">
321
+ <i class="fa-solid fa-clipboard"></i>
322
+ </button>
323
+ </div>
324
+ </td>
325
+ </tr>
326
+ </tbody>
327
+ </table>
328
+ </div>
329
+ </div>
330
+
331
+
332
+ <!-- ================================
333
+ JAVASCRIPT INTEGRATION
334
+ ================================ -->
335
+
336
+ <script>
337
+ // Copy button functionality
338
+ document.querySelectorAll('.pa-comparison-table__copy').forEach(btn => {
339
+ btn.addEventListener('click', function() {
340
+ const value = this.previousElementSibling.textContent;
341
+ navigator.clipboard.writeText(value).then(() => {
342
+ // Visual feedback - change icon temporarily
343
+ const icon = this.querySelector('i');
344
+ icon.classList.remove('fa-clipboard');
345
+ icon.classList.add('fa-check');
346
+ setTimeout(() => {
347
+ icon.classList.remove('fa-check');
348
+ icon.classList.add('fa-clipboard');
349
+ }, 1000);
350
+ });
351
+ });
352
+ });
353
+
354
+ // Accept/reject button handlers (example)
355
+ document.querySelectorAll('[data-action="accept-a"]').forEach(btn => {
356
+ btn.addEventListener('click', function() {
357
+ // Get all changed values from column A
358
+ // Apply them to the base record
359
+ // Show success notification
360
+ });
361
+ });
362
+ </script>
363
+
364
+
365
+ <!-- ================================
366
+ CSS CLASSES REFERENCE
367
+ ================================ -->
368
+
369
+ <!--
370
+ COMPONENT CLASSES:
371
+ - pa-comparison-table Main table class
372
+ - pa-comparison-table__label Field name column (left)
373
+ - pa-comparison-table__value Value wrapper (contains text + copy button)
374
+ - pa-comparison-table__copy Copy button styling
375
+ - pa-comparison-table__changed Pink highlight for changes (light bg + left border accent)
376
+ - pa-comparison-table__changed--solid Solid pink background (no left border)
377
+ - pa-comparison-table__conflict Orange highlight for merge conflicts (3-column only)
378
+ - pa-comparison-table__conflict--solid Solid orange background (no left border)
379
+ - pa-comparison-table__section Section header row
380
+
381
+ USAGE PATTERNS:
382
+
383
+ Two-column comparison:
384
+ - Column 1: Field labels (pa-comparison-table__label)
385
+ - Column 2: Base values
386
+ - Column 3: New values
387
+ - Add pa-comparison-table__changed to cells that changed
388
+ - Add pa-comparison-table__changed--solid for solid background highlighting
389
+
390
+ Three-column comparison:
391
+ - Column 1: Field labels (pa-comparison-table__label)
392
+ - Column 2: Base values
393
+ - Column 3: Change A values
394
+ - Column 4: Change B values
395
+ - Add pa-comparison-table__changed to cells that changed
396
+ - Add pa-comparison-table__changed--solid for solid background (no border accent)
397
+ - Add pa-comparison-table__conflict to cells with conflicting changes
398
+ - Add pa-comparison-table__conflict--solid for solid conflict highlighting
399
+
400
+ Highlighting Styles:
401
+ - Default (pa-comparison-table__changed): Light background + colored left border accent
402
+ - Solid (pa-comparison-table__changed--solid): More opaque background, no border accent
403
+ - Use --solid variant when left border might interfere with table layout or when you prefer uniform background highlighting
404
+
405
+ Section headers:
406
+ - Use <tr class="pa-comparison-table__section">
407
+ - Single <td> with colspan covering all columns
408
+ - Contains section name text
409
+
410
+ Empty rows:
411
+ - Keep empty <td> elements to maintain table structure
412
+ - Helps with visual scanning
413
+
414
+ Value cells:
415
+ - Wrap content in pa-comparison-table__value div
416
+ - Include copy button for copyable values
417
+ - Use icons, badges, or plain text as needed
418
+
419
+ FEATURES:
420
+ ✅ Responsive design (stacks on mobile)
421
+ ✅ Copy to clipboard functionality
422
+ ✅ Hover-visible copy buttons
423
+ ✅ Section grouping
424
+ ✅ Change highlighting (pink)
425
+ ✅ Conflict highlighting (orange)
426
+ ✅ Support for icons, badges, and rich content
427
+ ✅ Empty row preservation for structure
428
+ -->
@@ -0,0 +1,142 @@
1
+ <!-- ================================
2
+ CUSTOMIZATION & CSS VARIABLES
3
+ Pure Admin Visual Framework
4
+ ================================ -->
5
+
6
+ <!-- ================================
7
+ PAGE LOADER CSS VARIABLES
8
+ Customize the loading screen appearance
9
+ ================================ -->
10
+
11
+ <!-- Default Usage (uses theme values) -->
12
+ <!-- The page loader appears during initial page load to prevent FOUC -->
13
+ <!-- Each theme defines its own colors via CSS variables -->
14
+
15
+ <!-- Custom Override Example -->
16
+ <style>
17
+ :root {
18
+ /* Background overlay color (with transparency) */
19
+ --page-loader-bg: rgba(255, 0, 0, 0.9);
20
+
21
+ /* Spinner border color */
22
+ --page-loader-spinner-border: #333;
23
+
24
+ /* Spinner accent color (animated top border) */
25
+ --page-loader-spinner-accent: #00ff00;
26
+ }
27
+ </style>
28
+
29
+ <!-- Theme Default Values -->
30
+ <!--
31
+ CORPORATE THEME:
32
+ --page-loader-bg: rgba(26, 26, 26, 0.95)
33
+ --page-loader-spinner-border: #333
34
+ --page-loader-spinner-accent: #0066cc
35
+
36
+ EXPRESS THEME:
37
+ --page-loader-bg: rgba(0, 0, 0, 0.95)
38
+ --page-loader-spinner-border: #333
39
+ --page-loader-spinner-accent: #FFCC00
40
+
41
+ AUDI THEME (DARK):
42
+ --page-loader-bg: rgba(10, 10, 10, 0.95)
43
+ --page-loader-spinner-border: #333
44
+ --page-loader-spinner-accent: #ff0000
45
+
46
+ AUDI LIGHT THEME:
47
+ --page-loader-bg: rgba(240, 240, 240, 0.95)
48
+ --page-loader-spinner-border: #d0d0d0
49
+ --page-loader-spinner-accent: #bb0a30
50
+
51
+ MINIMAL THEME:
52
+ --page-loader-bg: rgba(255, 255, 255, 0.95)
53
+ --page-loader-spinner-border: #e0e0e0
54
+ --page-loader-spinner-accent: #000000
55
+
56
+ DARK THEMES (dark, dark-blue, dark-green, dark-red):
57
+ --page-loader-bg: rgba(26, 26, 26, 0.95)
58
+ --page-loader-spinner-border: #333
59
+ --page-loader-spinner-accent: <theme-color>
60
+ - dark: #0ea5e9 (blue)
61
+ - dark-blue: #3b82f6 (blue)
62
+ - dark-green: #10b981 (green)
63
+ - dark-red: #ef4444 (red)
64
+ -->
65
+
66
+ <!-- Why CSS Variables? -->
67
+ <!--
68
+ The page loader uses CSS variables instead of SCSS variables because:
69
+ 1. It loads BEFORE the theme CSS (to prevent FOUC)
70
+ 2. Projects can easily override without recompiling SCSS
71
+ 3. Supports runtime theme switching if needed
72
+
73
+ Just add your custom CSS AFTER the theme CSS link:
74
+ <link rel="stylesheet" href="/dist/css/themes/corporate.css">
75
+ <style>
76
+ :root {
77
+ --page-loader-bg: rgba(0, 100, 200, 0.95);
78
+ }
79
+ </style>
80
+ -->
81
+
82
+ <!-- Integration Example -->
83
+ <!--
84
+ In your project's custom CSS file:
85
+ -->
86
+ <style>
87
+ /* custom.css */
88
+ :root {
89
+ /* Brand-specific loader colors */
90
+ --page-loader-bg: rgba(30, 30, 30, 0.98);
91
+ --page-loader-spinner-border: #444;
92
+ --page-loader-spinner-accent: #ff6b35; /* Orange brand color */
93
+ }
94
+
95
+ /* You can also override other aspects if needed */
96
+ .page-loader {
97
+ /* Add custom backdrop blur */
98
+ backdrop-filter: blur(15px);
99
+ }
100
+
101
+ .page-loader__spinner {
102
+ /* Make spinner larger */
103
+ width: 60px;
104
+ height: 60px;
105
+ border-width: 5px;
106
+ }
107
+ </style>
108
+
109
+ <!-- ================================
110
+ FUTURE CUSTOMIZATION OPTIONS
111
+ More CSS variables coming soon
112
+ ================================ -->
113
+
114
+ <!-- Planned CSS Variables -->
115
+ <!--
116
+ Future versions may include CSS variables for:
117
+ - Color scheme switching
118
+ - Dynamic accent colors
119
+ - Component-specific overrides
120
+ - Animation timing customization
121
+
122
+ For now, use SCSS variables for deep customization:
123
+ $primary-bg: #your-color;
124
+ $accent-color: #your-accent;
125
+ @import '@pure-admin/core/scss';
126
+ -->
127
+
128
+ <!-- ================================
129
+ QUICK REFERENCE
130
+ ================================ -->
131
+
132
+ <!--
133
+ PAGE LOADER VARIABLES:
134
+ - --page-loader-bg (background overlay color with opacity)
135
+ - --page-loader-spinner-border (spinner border color)
136
+ - --page-loader-spinner-accent (spinner animated color)
137
+
138
+ USAGE:
139
+ Define in :root selector AFTER theme CSS loads
140
+ Values can use rgba(), hex, or any CSS color format
141
+ Include alpha/transparency for overlay effect
142
+ -->