@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,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
|
+
-->
|