@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,364 @@
1
+ <!-- Timeline Component Snippets -->
2
+ <!-- Clean HTML examples for all timeline variants -->
3
+
4
+ <!-- ========================================
5
+ Simple Timeline (Left-aligned with dots)
6
+ ======================================== -->
7
+
8
+ <!-- Basic Simple Timeline -->
9
+ <ul class="pa-timeline pa-timeline--simple">
10
+ <li class="pa-timeline__item">
11
+ <div class="pa-timeline__time">14:32</div>
12
+ <div class="pa-timeline__content">
13
+ User logged in from New York
14
+ </div>
15
+ </li>
16
+ <li class="pa-timeline__item">
17
+ <div class="pa-timeline__time">12:15</div>
18
+ <div class="pa-timeline__content">
19
+ Database backup completed successfully
20
+ </div>
21
+ </li>
22
+ <li class="pa-timeline__item">
23
+ <div class="pa-timeline__time">09:30</div>
24
+ <div class="pa-timeline__content">
25
+ System started maintenance mode
26
+ </div>
27
+ </li>
28
+ </ul>
29
+
30
+ <!-- Simple Timeline with Color Variants -->
31
+ <ul class="pa-timeline pa-timeline--simple">
32
+ <li class="pa-timeline__item pa-timeline__item--primary">
33
+ <div class="pa-timeline__time">Now</div>
34
+ <div class="pa-timeline__content">Primary event marker</div>
35
+ </li>
36
+ <li class="pa-timeline__item pa-timeline__item--success">
37
+ <div class="pa-timeline__time">5 min ago</div>
38
+ <div class="pa-timeline__content">Success event marker</div>
39
+ </li>
40
+ <li class="pa-timeline__item pa-timeline__item--warning">
41
+ <div class="pa-timeline__time">10 min ago</div>
42
+ <div class="pa-timeline__content">Warning event marker</div>
43
+ </li>
44
+ <li class="pa-timeline__item pa-timeline__item--danger">
45
+ <div class="pa-timeline__time">15 min ago</div>
46
+ <div class="pa-timeline__content">Danger event marker</div>
47
+ </li>
48
+ <li class="pa-timeline__item pa-timeline__item--info">
49
+ <div class="pa-timeline__time">20 min ago</div>
50
+ <div class="pa-timeline__content">Info event marker</div>
51
+ </li>
52
+ <li class="pa-timeline__item pa-timeline__item--secondary">
53
+ <div class="pa-timeline__time">30 min ago</div>
54
+ <div class="pa-timeline__content">Secondary event marker</div>
55
+ </li>
56
+ </ul>
57
+
58
+ <!-- Simple Timeline with Filled Markers -->
59
+ <ul class="pa-timeline pa-timeline--simple">
60
+ <li class="pa-timeline__item pa-timeline__item--primary pa-timeline__item--filled">
61
+ <div class="pa-timeline__time">Now</div>
62
+ <div class="pa-timeline__content">Filled primary marker</div>
63
+ </li>
64
+ <li class="pa-timeline__item pa-timeline__item--success pa-timeline__item--filled">
65
+ <div class="pa-timeline__time">1 hour ago</div>
66
+ <div class="pa-timeline__content">Filled success marker</div>
67
+ </li>
68
+ </ul>
69
+
70
+ <!-- ========================================
71
+ Block Timeline (Centered alternating)
72
+ ======================================== -->
73
+
74
+ <ul class="pa-timeline pa-timeline--alternating">
75
+ <!-- Left side item (odd) -->
76
+ <li class="pa-timeline__item">
77
+ <div class="pa-timeline__date">Jan 2021</div>
78
+ <div class="pa-timeline__icon">🚀</div>
79
+ <div class="pa-timeline__content">
80
+ <h3>Project Launch</h3>
81
+ <p>Successfully launched the new platform with modern architecture and improved performance.</p>
82
+ </div>
83
+ </li>
84
+
85
+ <!-- Right side item (even) -->
86
+ <li class="pa-timeline__item">
87
+ <div class="pa-timeline__date">Mar 2021</div>
88
+ <div class="pa-timeline__icon">✨</div>
89
+ <div class="pa-timeline__content">
90
+ <h3>Feature Release</h3>
91
+ <p>Deployed advanced features including real-time collaboration and cloud sync.</p>
92
+ </div>
93
+ </li>
94
+
95
+ <!-- Left side item (odd) -->
96
+ <li class="pa-timeline__item">
97
+ <div class="pa-timeline__date">Jun 2021</div>
98
+ <div class="pa-timeline__icon">📊</div>
99
+ <div class="pa-timeline__content">
100
+ <h3>Analytics Update</h3>
101
+ <p>Integrated comprehensive analytics dashboard for better insights.</p>
102
+ </div>
103
+ </li>
104
+ </ul>
105
+
106
+ <!-- ========================================
107
+ Feed Timeline (Activity feed style)
108
+ ======================================== -->
109
+
110
+ <!-- Basic Feed Timeline with Avatars -->
111
+ <ul class="pa-timeline pa-timeline--feed">
112
+ <li class="pa-timeline__item">
113
+ <div class="pa-timeline__content">
114
+ <div class="pa-timeline__avatar">
115
+ <img src="https://ui-avatars.com/api/?name=John+Doe&background=0D8ABC&color=fff" alt="John Doe">
116
+ </div>
117
+ <span><a href="#">John Doe</a> created a new project</span>
118
+ <time>2 hours ago</time>
119
+ </div>
120
+ </li>
121
+ <li class="pa-timeline__item">
122
+ <div class="pa-timeline__content">
123
+ <div class="pa-timeline__avatar">
124
+ <img src="https://ui-avatars.com/api/?name=Jane+Smith&background=0D8ABC&color=fff" alt="Jane Smith">
125
+ </div>
126
+ <span><a href="#">Jane Smith</a> uploaded 3 files</span>
127
+ <time>5 hours ago</time>
128
+ </div>
129
+ </li>
130
+ </ul>
131
+
132
+ <!-- Feed Timeline with Comments -->
133
+ <ul class="pa-timeline pa-timeline--feed">
134
+ <li class="pa-timeline__item">
135
+ <div class="pa-timeline__content">
136
+ <div class="pa-timeline__avatar">
137
+ <img src="https://ui-avatars.com/api/?name=Luna+B&background=0D8ABC&color=fff" alt="Luna">
138
+ </div>
139
+ <span><a href="#">Luna Bonifacio</a> commented on <a href="#">Issue #123</a></span>
140
+ <time>1 hour ago</time>
141
+ <div class="pa-timeline__comment">
142
+ <p>This looks great! I've tested it on multiple browsers and everything works perfectly.</p>
143
+ </div>
144
+ </div>
145
+ </li>
146
+ </ul>
147
+
148
+ <!-- Feed Timeline with Date Headers and Time Prefixes -->
149
+ <ul class="pa-timeline pa-timeline--feed">
150
+ <!-- Date header -->
151
+ <li class="pa-timeline__item pa-timeline__item--date-header">
152
+ <div class="pa-timeline__date-icon">📅</div>
153
+ <div class="pa-timeline__date-label">January 22, 2025</div>
154
+ </li>
155
+
156
+ <!-- Items with time prefix -->
157
+ <li class="pa-timeline__item">
158
+ <div class="pa-timeline__time">14:32</div>
159
+ <div class="pa-timeline__content">
160
+ <div class="pa-timeline__avatar">
161
+ <img src="https://ui-avatars.com/api/?name=Sarah+Chen&background=0D8ABC&color=fff" alt="Sarah">
162
+ </div>
163
+ <span><a href="#">Sarah Chen</a> merged pull request #456</span>
164
+ </div>
165
+ </li>
166
+
167
+ <li class="pa-timeline__item">
168
+ <div class="pa-timeline__time">12:15</div>
169
+ <div class="pa-timeline__content">
170
+ <div class="pa-timeline__avatar">
171
+ <img src="https://ui-avatars.com/api/?name=Mike+J&background=0D8ABC&color=fff" alt="Mike">
172
+ </div>
173
+ <span><a href="#">Mike Johnson</a> deployed to production</span>
174
+ </div>
175
+ </li>
176
+
177
+ <!-- Another date header -->
178
+ <li class="pa-timeline__item pa-timeline__item--date-header">
179
+ <div class="pa-timeline__date-icon">📅</div>
180
+ <div class="pa-timeline__date-label">January 21, 2025</div>
181
+ </li>
182
+
183
+ <li class="pa-timeline__item">
184
+ <div class="pa-timeline__time">18:45</div>
185
+ <div class="pa-timeline__content">
186
+ <div class="pa-timeline__avatar">
187
+ <img src="https://ui-avatars.com/api/?name=Emma+D&background=0D8ABC&color=fff" alt="Emma">
188
+ </div>
189
+ <span><a href="#">Emma Davis</a> updated documentation</span>
190
+ </div>
191
+ </li>
192
+ </ul>
193
+
194
+ <!-- ========================================
195
+ Interactive Timeline Features
196
+ ======================================== -->
197
+
198
+ <!-- Timeline with Scroll Container -->
199
+ <div class="pa-timeline__scroll-container">
200
+ <ul class="pa-timeline pa-timeline--simple">
201
+ <!-- Items here... -->
202
+ </ul>
203
+ </div>
204
+
205
+ <!-- Timeline with Load More Button -->
206
+ <ul class="pa-timeline pa-timeline--simple">
207
+ <!-- Items here... -->
208
+ </ul>
209
+ <div class="pa-timeline__load-more-wrapper">
210
+ <button class="pa-btn pa-btn--secondary">Load More</button>
211
+ </div>
212
+
213
+ <!-- Timeline with Loader -->
214
+ <div class="pa-timeline__loader">
215
+ <div class="pa-loader pa-loader--sm">
216
+ <div class="pa-spinner"></div>
217
+ </div>
218
+ <div class="pa-timeline__loader-text">Loading more entries...</div>
219
+ </div>
220
+
221
+ <!-- ========================================
222
+ Alternating Timeline Layout Modifiers (NEW)
223
+ ======================================== -->
224
+
225
+ <!-- Left-aligned timeline (all items on left side) -->
226
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--left">
227
+ <div class="pa-timeline__item">
228
+ <div class="pa-timeline__date">Jan 2024</div>
229
+ <div class="pa-timeline__icon">📝</div>
230
+ <div class="pa-timeline__content">
231
+ <h3>Planning</h3>
232
+ <p>All items aligned to left side with timeline line on left.</p>
233
+ </div>
234
+ </div>
235
+ <div class="pa-timeline__item">
236
+ <div class="pa-timeline__date">Feb 2024</div>
237
+ <div class="pa-timeline__icon">🚀</div>
238
+ <div class="pa-timeline__content">
239
+ <h3>Launch</h3>
240
+ <p>Content blocks stay on left side.</p>
241
+ </div>
242
+ </div>
243
+ </div>
244
+
245
+ <!-- Right-aligned timeline (all items on right side) -->
246
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--right">
247
+ <div class="pa-timeline__item">
248
+ <div class="pa-timeline__date">Jan 2024</div>
249
+ <div class="pa-timeline__icon">📝</div>
250
+ <div class="pa-timeline__content">
251
+ <h3>Planning</h3>
252
+ <p>All items aligned to right side with timeline line on right.</p>
253
+ </div>
254
+ </div>
255
+ <div class="pa-timeline__item">
256
+ <div class="pa-timeline__date">Feb 2024</div>
257
+ <div class="pa-timeline__icon">🚀</div>
258
+ <div class="pa-timeline__content">
259
+ <h3>Launch</h3>
260
+ <p>Content blocks stay on right side.</p>
261
+ </div>
262
+ </div>
263
+ </div>
264
+
265
+ <!-- Keep layout on mobile (prevent responsive collapse) -->
266
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--keep-layout">
267
+ <div class="pa-timeline__item">
268
+ <div class="pa-timeline__date">Jan 2024</div>
269
+ <div class="pa-timeline__icon">📝</div>
270
+ <div class="pa-timeline__content">
271
+ <h3>Planning</h3>
272
+ <p>Maintains alternating layout on all screen sizes.</p>
273
+ </div>
274
+ </div>
275
+ <div class="pa-timeline__item">
276
+ <div class="pa-timeline__date">Feb 2024</div>
277
+ <div class="pa-timeline__icon">🚀</div>
278
+ <div class="pa-timeline__content">
279
+ <h3>Launch</h3>
280
+ <p>No mobile collapse - stays zigzag.</p>
281
+ </div>
282
+ </div>
283
+ </div>
284
+
285
+ <!-- Combination: Left-aligned + keep layout on mobile -->
286
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--left pa-timeline--keep-layout">
287
+ <div class="pa-timeline__item">
288
+ <div class="pa-timeline__date">Q1</div>
289
+ <div class="pa-timeline__icon">📊</div>
290
+ <div class="pa-timeline__content">
291
+ <h3>Analysis</h3>
292
+ <p>Left-aligned on desktop, stays left on mobile.</p>
293
+ </div>
294
+ </div>
295
+ </div>
296
+
297
+ <!-- Combination: Right-aligned + keep layout on mobile -->
298
+ <div class="pa-timeline pa-timeline--alternating pa-timeline--right pa-timeline--keep-layout">
299
+ <div class="pa-timeline__item">
300
+ <div class="pa-timeline__date">Q1</div>
301
+ <div class="pa-timeline__icon">📊</div>
302
+ <div class="pa-timeline__content">
303
+ <h3>Analysis</h3>
304
+ <p>Right-aligned on desktop, stays right on mobile.</p>
305
+ </div>
306
+ </div>
307
+ </div>
308
+
309
+ <!-- ========================================
310
+ Complete Component Reference
311
+ ======================================== -->
312
+ <!--
313
+ TIMELINE VARIANTS:
314
+ - pa-timeline--simple: Left-aligned with dots
315
+ - pa-timeline--alternating: Centered zigzag layout
316
+ - pa-timeline--feed: Activity feed with avatars
317
+
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)
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)
323
+
324
+ RESPONSIVE BEHAVIOR:
325
+ - Default: Zigzag on desktop (>767px), auto-collapse to single-column on mobile (≤767px)
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)
328
+
329
+ COMBINATION EXAMPLES:
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
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
336
+
337
+ ITEM MODIFIERS (simple variant):
338
+ - pa-timeline__item--primary: Primary color marker
339
+ - pa-timeline__item--success: Success color marker
340
+ - pa-timeline__item--warning: Warning color marker
341
+ - pa-timeline__item--danger: Danger color marker
342
+ - pa-timeline__item--info: Info color marker
343
+ - pa-timeline__item--secondary: Secondary color marker
344
+ - pa-timeline__item--filled: Solid filled marker
345
+
346
+ FEED MODIFIERS:
347
+ - pa-timeline__item--date-header: Date section header
348
+
349
+ COMPONENTS:
350
+ - pa-timeline__time: Time label
351
+ - pa-timeline__content: Main content area
352
+ - pa-timeline__date: Date label (block variant)
353
+ - pa-timeline__icon: Icon container (block variant)
354
+ - pa-timeline__avatar: Avatar image (feed variant)
355
+ - pa-timeline__comment: Comment bubble (feed variant)
356
+ - pa-timeline__date-icon: Calendar icon (feed date headers)
357
+ - pa-timeline__date-label: Date text (feed date headers)
358
+
359
+ UTILITIES:
360
+ - pa-timeline__scroll-container: Scrollable container
361
+ - pa-timeline__loader: Loading indicator
362
+ - pa-timeline__loader-text: Loading text
363
+ - pa-timeline__load-more-wrapper: Load more button wrapper
364
+ -->
@@ -0,0 +1,154 @@
1
+ <!-- ================================
2
+ TOAST SNIPPETS
3
+ Pure Admin Visual Framework
4
+ ================================ -->
5
+
6
+ <!-- Note: Toast containers should be at body level in your layout -->
7
+ <!-- Include these containers once in your main layout -->
8
+ <div id="toast-container-top-right" class="pa-toast-container pa-toast-container--top-right"></div>
9
+ <div id="toast-container-top-center" class="pa-toast-container pa-toast-container--top-center"></div>
10
+ <div id="toast-container-top-left" class="pa-toast-container pa-toast-container--top-left"></div>
11
+ <div id="toast-container-bottom-right" class="pa-toast-container pa-toast-container--bottom-right"></div>
12
+ <div id="toast-container-bottom-center" class="pa-toast-container pa-toast-container--bottom-center"></div>
13
+ <div id="toast-container-bottom-left" class="pa-toast-container pa-toast-container--bottom-left"></div>
14
+
15
+
16
+ <!-- TOAST STRUCTURE -->
17
+
18
+ <!-- Primary Toast -->
19
+ <div class="pa-toast pa-toast--primary pa-toast--show">
20
+ <div class="pa-toast__icon">ℹ️</div>
21
+ <div class="pa-toast__content">
22
+ <div class="pa-toast__title">Primary</div>
23
+ <div class="pa-toast__message">This is a primary toast notification.</div>
24
+ </div>
25
+ <button class="pa-toast__close" aria-label="Close">✕</button>
26
+ </div>
27
+
28
+ <!-- Success Toast -->
29
+ <div class="pa-toast pa-toast--success pa-toast--show">
30
+ <div class="pa-toast__icon">✓</div>
31
+ <div class="pa-toast__content">
32
+ <div class="pa-toast__title">Success</div>
33
+ <div class="pa-toast__message">Your action was completed successfully.</div>
34
+ </div>
35
+ <button class="pa-toast__close" aria-label="Close">✕</button>
36
+ </div>
37
+
38
+ <!-- Danger Toast -->
39
+ <div class="pa-toast pa-toast--danger pa-toast--show">
40
+ <div class="pa-toast__icon">✕</div>
41
+ <div class="pa-toast__content">
42
+ <div class="pa-toast__title">Error</div>
43
+ <div class="pa-toast__message">An error occurred. Please try again.</div>
44
+ </div>
45
+ <button class="pa-toast__close" aria-label="Close">✕</button>
46
+ </div>
47
+
48
+ <!-- Warning Toast -->
49
+ <div class="pa-toast pa-toast--warning pa-toast--show">
50
+ <div class="pa-toast__icon">⚠</div>
51
+ <div class="pa-toast__content">
52
+ <div class="pa-toast__title">Warning</div>
53
+ <div class="pa-toast__message">Please review this warning message.</div>
54
+ </div>
55
+ <button class="pa-toast__close" aria-label="Close">✕</button>
56
+ </div>
57
+
58
+ <!-- Info Toast -->
59
+ <div class="pa-toast pa-toast--info pa-toast--show">
60
+ <div class="pa-toast__icon">ℹ</div>
61
+ <div class="pa-toast__content">
62
+ <div class="pa-toast__title">Information</div>
63
+ <div class="pa-toast__message">Here is some useful information for you.</div>
64
+ </div>
65
+ <button class="pa-toast__close" aria-label="Close">✕</button>
66
+ </div>
67
+
68
+
69
+ <!-- TOAST WITH PROGRESS BAR -->
70
+
71
+ <!-- Toast with Auto-dismiss Progress -->
72
+ <div class="pa-toast pa-toast--primary pa-toast--show">
73
+ <div class="pa-toast__icon">ℹ</div>
74
+ <div class="pa-toast__content">
75
+ <div class="pa-toast__title">Processing</div>
76
+ <div class="pa-toast__message">Your request is being processed...</div>
77
+ </div>
78
+ <button class="pa-toast__close" aria-label="Close">✕</button>
79
+ <div class="pa-toast__progress w-100" style="transition: width 5000ms linear;"></div>
80
+ </div>
81
+
82
+
83
+ <!-- JAVASCRIPT API -->
84
+ <script>
85
+ // Create a toast notification
86
+ function createToast(position, variant, title, message, duration = 5000, showProgress = false, persistent = false) {
87
+ const container = document.getElementById(`toast-container-${position}`);
88
+ const toastId = `toast-${Date.now()}-${Math.random()}`;
89
+
90
+ const toast = document.createElement('div');
91
+ toast.className = `pa-toast pa-toast--${variant}`;
92
+ toast.id = toastId;
93
+
94
+ const icons = {
95
+ primary: 'ℹ️',
96
+ success: '✓',
97
+ danger: '✕',
98
+ warning: '⚠',
99
+ info: 'ℹ'
100
+ };
101
+
102
+ toast.innerHTML = `
103
+ <div class="pa-toast__icon">${icons[variant] || 'ℹ'}</div>
104
+ <div class="pa-toast__content">
105
+ <div class="pa-toast__title">${title}</div>
106
+ <div class="pa-toast__message">${message}</div>
107
+ </div>
108
+ <button class="pa-toast__close" onclick="dismissToast('${toastId}')" aria-label="Close">✕</button>
109
+ ${showProgress && !persistent ? '<div class="pa-toast__progress w-100"></div>' : ''}
110
+ `;
111
+
112
+ container.appendChild(toast);
113
+
114
+ // Show toast
115
+ setTimeout(() => {
116
+ toast.classList.add('pa-toast--show');
117
+ }, 10);
118
+
119
+ // Progress bar animation
120
+ if (showProgress && !persistent) {
121
+ const progress = toast.querySelector('.pa-toast__progress');
122
+ if (progress) {
123
+ progress.style.transition = `width ${duration}ms linear`;
124
+ setTimeout(() => {
125
+ progress.style.width = '0%';
126
+ }, 50);
127
+ }
128
+ }
129
+
130
+ // Auto-dismiss (only if not persistent)
131
+ if (!persistent) {
132
+ setTimeout(() => {
133
+ dismissToast(toastId);
134
+ }, duration);
135
+ }
136
+ }
137
+
138
+ // Dismiss a toast
139
+ function dismissToast(toastId) {
140
+ const toast = document.getElementById(toastId);
141
+ if (!toast) return;
142
+
143
+ toast.classList.remove('pa-toast--show');
144
+ toast.classList.add('pa-toast--hide');
145
+
146
+ setTimeout(() => {
147
+ toast.remove();
148
+ }, 300);
149
+ }
150
+
151
+ // Usage examples:
152
+ // createToast('top-right', 'success', 'Success', 'Operation completed!');
153
+ // createToast('top-right', 'warning', 'Warning', 'Please review', 0, false, true); // Persistent
154
+ </script>