@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,477 @@
1
+ <!-- ================================
2
+ FORM SNIPPETS
3
+ Pure Admin Visual Framework
4
+ ================================ -->
5
+
6
+ <!-- BASIC FORM ELEMENTS -->
7
+
8
+ <!-- Text Input -->
9
+ <div class="pa-form-group">
10
+ <label class="pa-form-label" for="username">Username</label>
11
+ <input type="text" class="pa-input" id="username" placeholder="Enter username">
12
+ </div>
13
+
14
+ <!-- Email Input -->
15
+ <div class="pa-form-group">
16
+ <label class="pa-form-label" for="email">Email</label>
17
+ <input type="email" class="pa-input" id="email" placeholder="your@email.com">
18
+ </div>
19
+
20
+ <!-- Password Input -->
21
+ <div class="pa-form-group">
22
+ <label class="pa-form-label" for="password">Password</label>
23
+ <input type="password" class="pa-input" id="password" placeholder="Enter password">
24
+ </div>
25
+
26
+ <!-- Textarea -->
27
+ <div class="pa-form-group">
28
+ <label class="pa-form-label" for="message">Message</label>
29
+ <textarea class="pa-textarea" id="message" rows="4" placeholder="Enter your message"></textarea>
30
+ </div>
31
+
32
+ <!-- Select -->
33
+ <div class="pa-form-group">
34
+ <label class="pa-form-label" for="country">Country</label>
35
+ <select class="pa-select" id="country">
36
+ <option>United States</option>
37
+ <option>United Kingdom</option>
38
+ <option>Canada</option>
39
+ </select>
40
+ </div>
41
+
42
+
43
+ <!-- INPUT SIZES -->
44
+
45
+ <!-- Extra Small Input -->
46
+ <input type="text" class="pa-input pa-input--xs" placeholder="Extra small">
47
+
48
+ <!-- Small Input -->
49
+ <input type="text" class="pa-input pa-input--sm" placeholder="Small">
50
+
51
+ <!-- Default Input -->
52
+ <input type="text" class="pa-input" placeholder="Default">
53
+
54
+ <!-- Large Input -->
55
+ <input type="text" class="pa-input pa-input--lg" placeholder="Large">
56
+
57
+ <!-- Extra Large Input -->
58
+ <input type="text" class="pa-input pa-input--xl" placeholder="Extra large">
59
+
60
+
61
+ <!-- INPUT STATES -->
62
+
63
+ <!-- Disabled Input -->
64
+ <input type="text" class="pa-input" disabled value="Disabled input">
65
+
66
+ <!-- Readonly Input -->
67
+ <input type="text" class="pa-input" readonly value="Readonly input">
68
+
69
+ <!-- Required Input -->
70
+ <div class="pa-form-group pa-form-group--required">
71
+ <label class="pa-form-label" for="required-field">Required Field</label>
72
+ <input type="text" class="pa-input" id="required-field" required>
73
+ </div>
74
+
75
+
76
+ <!-- VALIDATION STATES -->
77
+
78
+ <!-- Success State -->
79
+ <div class="pa-form-group pa-form-group--success">
80
+ <label class="pa-form-label" for="valid-input">Valid Input</label>
81
+ <input type="text" class="pa-input pa-input--success" id="valid-input" value="Valid value">
82
+ <small class="pa-form-text pa-form-text--success">Looks good!</small>
83
+ </div>
84
+
85
+ <!-- Error State -->
86
+ <div class="pa-form-group pa-form-group--error">
87
+ <label class="pa-form-label" for="invalid-input">Invalid Input</label>
88
+ <input type="text" class="pa-input pa-input--error" id="invalid-input" value="Invalid value">
89
+ <small class="pa-form-text pa-form-text--error">Please provide a valid value.</small>
90
+ </div>
91
+
92
+
93
+ <!-- CUSTOM TRI-STATE CHECKBOXES -->
94
+ <!-- States: unchecked, checked, indeterminate (set via JS: checkbox.indeterminate = true) -->
95
+
96
+ <!-- Basic Checkbox -->
97
+ <label class="pa-checkbox">
98
+ <input type="checkbox">
99
+ <span class="pa-checkbox__box"></span>
100
+ <span class="pa-checkbox__label">Unchecked option</span>
101
+ </label>
102
+
103
+ <!-- Checked Checkbox -->
104
+ <label class="pa-checkbox">
105
+ <input type="checkbox" checked>
106
+ <span class="pa-checkbox__box"></span>
107
+ <span class="pa-checkbox__label">Checked option</span>
108
+ </label>
109
+
110
+ <!-- Indeterminate Checkbox (set via JavaScript) -->
111
+ <label class="pa-checkbox">
112
+ <input type="checkbox" id="my-indeterminate-checkbox">
113
+ <span class="pa-checkbox__box"></span>
114
+ <span class="pa-checkbox__label">Indeterminate (partial selection)</span>
115
+ </label>
116
+ <script>document.getElementById('my-indeterminate-checkbox').indeterminate = true;</script>
117
+
118
+ <!-- Disabled Checkbox -->
119
+ <label class="pa-checkbox pa-checkbox--disabled">
120
+ <input type="checkbox" disabled>
121
+ <span class="pa-checkbox__box"></span>
122
+ <span class="pa-checkbox__label">Disabled unchecked</span>
123
+ </label>
124
+
125
+ <label class="pa-checkbox pa-checkbox--disabled">
126
+ <input type="checkbox" checked disabled>
127
+ <span class="pa-checkbox__box"></span>
128
+ <span class="pa-checkbox__label">Disabled checked</span>
129
+ </label>
130
+
131
+ <!-- Checkbox Sizes -->
132
+ <label class="pa-checkbox pa-checkbox--xs">
133
+ <input type="checkbox" checked>
134
+ <span class="pa-checkbox__box"></span>
135
+ <span class="pa-checkbox__label">Extra Small (xs)</span>
136
+ </label>
137
+
138
+ <label class="pa-checkbox pa-checkbox--sm">
139
+ <input type="checkbox" checked>
140
+ <span class="pa-checkbox__box"></span>
141
+ <span class="pa-checkbox__label">Small (sm)</span>
142
+ </label>
143
+
144
+ <label class="pa-checkbox">
145
+ <input type="checkbox" checked>
146
+ <span class="pa-checkbox__box"></span>
147
+ <span class="pa-checkbox__label">Default</span>
148
+ </label>
149
+
150
+ <label class="pa-checkbox pa-checkbox--lg">
151
+ <input type="checkbox" checked>
152
+ <span class="pa-checkbox__box"></span>
153
+ <span class="pa-checkbox__label">Large (lg)</span>
154
+ </label>
155
+
156
+ <label class="pa-checkbox pa-checkbox--xl">
157
+ <input type="checkbox" checked>
158
+ <span class="pa-checkbox__box"></span>
159
+ <span class="pa-checkbox__label">Extra Large (xl)</span>
160
+ </label>
161
+
162
+ <!-- Checkbox Group (vertical stack) -->
163
+ <div class="pa-checkbox-group">
164
+ <label class="pa-checkbox">
165
+ <input type="checkbox" checked>
166
+ <span class="pa-checkbox__box"></span>
167
+ <span class="pa-checkbox__label">Option A</span>
168
+ </label>
169
+ <label class="pa-checkbox">
170
+ <input type="checkbox">
171
+ <span class="pa-checkbox__box"></span>
172
+ <span class="pa-checkbox__label">Option B</span>
173
+ </label>
174
+ <label class="pa-checkbox">
175
+ <input type="checkbox">
176
+ <span class="pa-checkbox__box"></span>
177
+ <span class="pa-checkbox__label">Option C</span>
178
+ </label>
179
+ </div>
180
+
181
+
182
+ <!-- RADIO BUTTONS (native styling) -->
183
+
184
+ <!-- Radio Button Group -->
185
+ <div class="pa-radio-group">
186
+ <label class="pa-radio">
187
+ <input type="radio" name="radioGroup" checked>
188
+ Option 1 (selected)
189
+ </label>
190
+ <label class="pa-radio">
191
+ <input type="radio" name="radioGroup">
192
+ Option 2
193
+ </label>
194
+ <label class="pa-radio">
195
+ <input type="radio" name="radioGroup" disabled>
196
+ Option 3 (disabled)
197
+ </label>
198
+ </div>
199
+
200
+
201
+ <!-- INPUT GROUPS -->
202
+
203
+ <!-- Prepend only -->
204
+ <div class="pa-input-group">
205
+ <span class="pa-input-group__prepend">@</span>
206
+ <input type="text" class="pa-input" placeholder="Username">
207
+ </div>
208
+
209
+ <!-- Append only -->
210
+ <div class="pa-input-group">
211
+ <input type="text" class="pa-input" placeholder="Amount">
212
+ <span class="pa-input-group__append">USD</span>
213
+ </div>
214
+
215
+ <!-- Prepend and Append -->
216
+ <div class="pa-input-group">
217
+ <span class="pa-input-group__prepend">$</span>
218
+ <input type="text" class="pa-input" placeholder="0.00">
219
+ <span class="pa-input-group__append">.00</span>
220
+ </div>
221
+
222
+ <!-- Input with Button -->
223
+ <div class="pa-input-group">
224
+ <input type="text" class="pa-input" placeholder="Search...">
225
+ <button class="pa-input-group__button pa-btn pa-btn--primary">Search</button>
226
+ </div>
227
+
228
+ <!-- Prepend + Input + Button -->
229
+ <div class="pa-input-group">
230
+ <span class="pa-input-group__prepend">🔍</span>
231
+ <input type="text" class="pa-input" placeholder="Search...">
232
+ <button class="pa-input-group__button pa-btn pa-btn--primary">Go</button>
233
+ </div>
234
+
235
+ <!-- Input + Append + Button -->
236
+ <div class="pa-input-group">
237
+ <input type="text" class="pa-input" placeholder="Enter amount">
238
+ <span class="pa-input-group__append">USD</span>
239
+ <button class="pa-input-group__button pa-btn pa-btn--success">Convert</button>
240
+ </div>
241
+
242
+ <!-- Button + Input + Append -->
243
+ <div class="pa-input-group">
244
+ <button class="pa-input-group__button pa-btn pa-btn--secondary">-</button>
245
+ <input type="number" class="pa-input" value="1">
246
+ <span class="pa-input-group__append">items</span>
247
+ </div>
248
+
249
+ <!-- Prepend + Input + Append + Button -->
250
+ <div class="pa-input-group">
251
+ <span class="pa-input-group__prepend">https://</span>
252
+ <input type="text" class="pa-input" placeholder="example.com">
253
+ <span class="pa-input-group__append">.com</span>
254
+ <button class="pa-input-group__button pa-btn pa-btn--primary">Visit</button>
255
+ </div>
256
+
257
+ <!-- Button + Input + Button (quantity controls) -->
258
+ <div class="pa-input-group">
259
+ <button class="pa-input-group__button pa-btn pa-btn--secondary">-</button>
260
+ <input type="number" class="pa-input text-center" value="1">
261
+ <button class="pa-input-group__button pa-btn pa-btn--secondary">+</button>
262
+ </div>
263
+
264
+
265
+ <!-- FORM LAYOUTS -->
266
+
267
+ <!-- Inline Form -->
268
+ <form class="pa-form pa-form--inline">
269
+ <input type="text" class="pa-input" placeholder="Username">
270
+ <input type="password" class="pa-input" placeholder="Password">
271
+ <button class="pa-btn pa-btn--primary">Sign in</button>
272
+ </form>
273
+
274
+ <!-- Horizontal Form Groups (label left, input right) -->
275
+
276
+ <!-- Single Horizontal Field -->
277
+ <div class="pa-form-group pa-form-group--horizontal">
278
+ <label for="email">Email</label>
279
+ <input type="email" id="email" class="pa-input" placeholder="your@email.com">
280
+ </div>
281
+
282
+ <!-- Horizontal Field with Select -->
283
+ <div class="pa-form-group pa-form-group--horizontal">
284
+ <label for="department">Department</label>
285
+ <select id="department" class="pa-select">
286
+ <option>Engineering</option>
287
+ <option>Marketing</option>
288
+ <option>Sales</option>
289
+ </select>
290
+ </div>
291
+
292
+ <!-- Horizontal Field with Textarea -->
293
+ <div class="pa-form-group pa-form-group--horizontal">
294
+ <label for="notes">Notes</label>
295
+ <textarea id="notes" class="pa-textarea" rows="3" placeholder="Additional notes..."></textarea>
296
+ </div>
297
+
298
+
299
+ <!-- HORIZONTAL FORM LAYOUTS WITH GRIDS -->
300
+
301
+ <!-- Multi-Column Horizontal Form (3 equal columns) -->
302
+ <form class="pa-form">
303
+ <div class="pa-row">
304
+ <div class="pa-col-100 pa-col-md-1-3">
305
+ <div class="pa-form-group pa-form-group--horizontal">
306
+ <label for="fname">First Name</label>
307
+ <input type="text" id="fname" class="pa-input" placeholder="John">
308
+ </div>
309
+ </div>
310
+
311
+ <div class="pa-col-100 pa-col-md-1-3">
312
+ <div class="pa-form-group pa-form-group--horizontal">
313
+ <label for="lname">Last Name</label>
314
+ <input type="text" id="lname" class="pa-input" placeholder="Doe">
315
+ </div>
316
+ </div>
317
+
318
+ <div class="pa-col-100 pa-col-md-1-3">
319
+ <div class="pa-form-group pa-form-group--horizontal">
320
+ <label for="email">Email</label>
321
+ <input type="email" id="email" class="pa-input" placeholder="john@example.com">
322
+ </div>
323
+ </div>
324
+ </div>
325
+ </form>
326
+
327
+ <!-- Multi-Column Horizontal Form (varying widths) -->
328
+ <form class="pa-form">
329
+ <div class="pa-row">
330
+ <!-- Phone (smaller - 25%) -->
331
+ <div class="pa-col-100 pa-col-md-25">
332
+ <div class="pa-form-group pa-form-group--horizontal">
333
+ <label for="phone">Phone</label>
334
+ <input type="tel" id="phone" class="pa-input" placeholder="+1 555-0123">
335
+ </div>
336
+ </div>
337
+
338
+ <!-- Department (larger - 50%) -->
339
+ <div class="pa-col-100 pa-col-md-50">
340
+ <div class="pa-form-group pa-form-group--horizontal">
341
+ <label for="dept">Department</label>
342
+ <select id="dept" class="pa-select">
343
+ <option>Select...</option>
344
+ <option>Engineering</option>
345
+ <option>Marketing</option>
346
+ </select>
347
+ </div>
348
+ </div>
349
+
350
+ <!-- Job Title (medium - 25%) -->
351
+ <div class="pa-col-100 pa-col-md-25">
352
+ <div class="pa-form-group pa-form-group--horizontal">
353
+ <label for="title">Job Title</label>
354
+ <input type="text" id="title" class="pa-input" placeholder="Senior Developer">
355
+ </div>
356
+ </div>
357
+ </div>
358
+ </form>
359
+
360
+
361
+ <!-- COMPLETE HORIZONTAL FORM EXAMPLE -->
362
+ <div class="pa-card">
363
+ <div class="pa-card__header">
364
+ <h3>Employee Information</h3>
365
+ </div>
366
+ <div class="pa-card__body">
367
+ <form class="pa-form">
368
+ <!-- Line 1: Personal Info -->
369
+ <div class="pa-row">
370
+ <div class="pa-col-100 pa-col-md-1-3">
371
+ <div class="pa-form-group pa-form-group--horizontal">
372
+ <label for="first">First Name</label>
373
+ <input type="text" id="first" class="pa-input" placeholder="John">
374
+ </div>
375
+ </div>
376
+ <div class="pa-col-100 pa-col-md-1-3">
377
+ <div class="pa-form-group pa-form-group--horizontal">
378
+ <label for="last">Last Name</label>
379
+ <input type="text" id="last" class="pa-input" placeholder="Doe">
380
+ </div>
381
+ </div>
382
+ <div class="pa-col-100 pa-col-md-1-3">
383
+ <div class="pa-form-group pa-form-group--horizontal">
384
+ <label for="mail">Email</label>
385
+ <input type="email" id="mail" class="pa-input" placeholder="john.doe@company.com">
386
+ </div>
387
+ </div>
388
+ </div>
389
+
390
+ <!-- Line 2: Address -->
391
+ <div class="pa-row">
392
+ <div class="pa-col-100 pa-col-md-50">
393
+ <div class="pa-form-group pa-form-group--horizontal">
394
+ <label for="address">Address</label>
395
+ <input type="text" id="address" class="pa-input" placeholder="123 Main Street">
396
+ </div>
397
+ </div>
398
+ <div class="pa-col-100 pa-col-md-1-3">
399
+ <div class="pa-form-group pa-form-group--horizontal">
400
+ <label for="city">City</label>
401
+ <input type="text" id="city" class="pa-input" placeholder="San Francisco">
402
+ </div>
403
+ </div>
404
+ <div class="pa-col-100 pa-col-md-20">
405
+ <div class="pa-form-group pa-form-group--horizontal">
406
+ <label for="zip">Zip</label>
407
+ <input type="text" id="zip" class="pa-input" placeholder="94102">
408
+ </div>
409
+ </div>
410
+ </div>
411
+
412
+ <!-- Submit Buttons -->
413
+ <div class="pa-row">
414
+ <div class="pa-col-100 text-right">
415
+ <button type="button" class="pa-btn pa-btn--secondary">Cancel</button>
416
+ <button type="submit" class="pa-btn pa-btn--primary">Submit</button>
417
+ </div>
418
+ </div>
419
+ </form>
420
+ </div>
421
+ </div>
422
+
423
+
424
+ <!-- ================================
425
+ COMPONENT REFERENCE
426
+ ================================ -->
427
+
428
+ <!--
429
+ FORM ELEMENTS:
430
+ - .pa-form: Form container
431
+ - .pa-form--inline: Inline form layout
432
+ - .pa-form-group: Form group wrapper
433
+ - .pa-form-group--required: Shows required indicator
434
+ - .pa-form-group--horizontal: Label-left, input-right layout
435
+ - .pa-form-group--success: Success validation state
436
+ - .pa-form-group--error: Error validation state
437
+ - .pa-form-label: Form label
438
+
439
+ INPUTS:
440
+ - .pa-input: Text input base class
441
+ - .pa-input--xs, --sm, --lg, --xl: Size variants
442
+ - .pa-input--success, --error: Validation states
443
+
444
+ TEXTAREA:
445
+ - .pa-textarea: Textarea element
446
+
447
+ SELECT:
448
+ - .pa-select: Select dropdown
449
+
450
+ CHECKBOXES (custom tri-state):
451
+ - .pa-checkbox: Checkbox wrapper label
452
+ - .pa-checkbox__box: Custom checkbox visual
453
+ - .pa-checkbox__label: Checkbox label text
454
+ - .pa-checkbox--xs, --sm, --lg, --xl: Size variants
455
+ - .pa-checkbox--disabled: Disabled state
456
+ - .pa-checkbox-group: Vertical checkbox group
457
+
458
+ RADIO BUTTONS:
459
+ - .pa-radio: Radio wrapper label
460
+ - .pa-radio-group: Vertical radio group
461
+
462
+ INPUT GROUPS:
463
+ - .pa-input-group: Input group container
464
+ - .pa-input-group__prepend: Left addon
465
+ - .pa-input-group__append: Right addon
466
+ - .pa-input-group__button: Button addon
467
+
468
+ HELP TEXT:
469
+ - .pa-form-text: Help/hint text below inputs
470
+ - .pa-form-text--success: Success message
471
+ - .pa-form-text--error: Error message
472
+
473
+ GRID LAYOUT (for multi-column forms):
474
+ - .pa-row: Row container (flexbox)
475
+ - .pa-col-100: Full width on mobile
476
+ - .pa-col-md-25, .pa-col-md-50, .pa-col-md-1-3, etc.: Responsive column widths
477
+ -->