@placeholderco/placeholder-ui 1.0.3 → 1.0.6

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 (136) hide show
  1. package/LICENSE +26 -26
  2. package/README.md +179 -179
  3. package/dist/display/Alert.svelte +179 -179
  4. package/dist/display/Avatar.svelte +166 -166
  5. package/dist/display/LinkCollection.svelte +161 -161
  6. package/dist/display/Paper.svelte +118 -118
  7. package/dist/form/Autocomplete.svelte +223 -191
  8. package/dist/form/Autocomplete.svelte.d.ts +3 -1
  9. package/dist/form/AutocompleteMulti.svelte +356 -0
  10. package/dist/form/AutocompleteMulti.svelte.d.ts +28 -0
  11. package/dist/form/Checkbox.svelte +201 -201
  12. package/dist/form/Chips.svelte +128 -128
  13. package/dist/form/ComboBox.svelte +158 -158
  14. package/dist/form/ComboBox.svelte.d.ts +1 -1
  15. package/dist/form/ComboBoxItemBuilder.svelte +460 -460
  16. package/dist/form/ComboBoxMulti.svelte +197 -197
  17. package/dist/form/ComboBoxMulti.svelte.d.ts +1 -1
  18. package/dist/form/CronBuilder.svelte +693 -693
  19. package/dist/form/DatePicker.svelte +672 -672
  20. package/dist/form/DateTimePicker.svelte +712 -712
  21. package/dist/form/FileInput.svelte +235 -235
  22. package/dist/form/FormGroup.svelte +68 -68
  23. package/dist/form/Number.svelte +238 -238
  24. package/dist/form/PasswordInput.svelte +252 -252
  25. package/dist/form/RadioGroup.svelte +210 -210
  26. package/dist/form/Rating.svelte +235 -235
  27. package/dist/form/SegmentedControl.svelte +149 -149
  28. package/dist/form/Select.svelte +590 -590
  29. package/dist/form/Select.svelte.d.ts +1 -1
  30. package/dist/form/SelectMulti.svelte +613 -613
  31. package/dist/form/SelectMulti.svelte.d.ts +1 -1
  32. package/dist/form/Slider.svelte +358 -358
  33. package/dist/form/Switch.svelte +147 -147
  34. package/dist/form/TextArea.svelte +148 -148
  35. package/dist/form/Textbox.svelte +228 -228
  36. package/dist/form/TimePicker.svelte +267 -267
  37. package/dist/icon/Icon.svelte +52 -52
  38. package/dist/icon/alert-octagon.svg +5 -5
  39. package/dist/icon/alert-triangle.svg +5 -5
  40. package/dist/icon/archive.svg +1 -1
  41. package/dist/icon/arrow-down.svg +1 -1
  42. package/dist/icon/arrow-left.svg +1 -1
  43. package/dist/icon/arrow-right.svg +1 -1
  44. package/dist/icon/arrow-up.svg +1 -1
  45. package/dist/icon/at.svg +1 -1
  46. package/dist/icon/bell.svg +1 -1
  47. package/dist/icon/bookmark.svg +1 -1
  48. package/dist/icon/calendar.svg +1 -1
  49. package/dist/icon/camera.svg +1 -1
  50. package/dist/icon/chart-bar.svg +1 -1
  51. package/dist/icon/chart-line.svg +1 -1
  52. package/dist/icon/chart-pie.svg +1 -1
  53. package/dist/icon/checkbox.svg +1 -1
  54. package/dist/icon/checklist.svg +1 -1
  55. package/dist/icon/circle-check.svg +1 -1
  56. package/dist/icon/circle-x.svg +1 -1
  57. package/dist/icon/clock.svg +1 -1
  58. package/dist/icon/credit-card.svg +1 -1
  59. package/dist/icon/dots-vertical.svg +1 -1
  60. package/dist/icon/dots.svg +1 -1
  61. package/dist/icon/external-link.svg +1 -1
  62. package/dist/icon/eye-off.svg +1 -1
  63. package/dist/icon/eye.svg +1 -1
  64. package/dist/icon/filter.svg +1 -1
  65. package/dist/icon/fingerprint.svg +1 -1
  66. package/dist/icon/flag.svg +1 -1
  67. package/dist/icon/heart.svg +1 -1
  68. package/dist/icon/home.svg +1 -1
  69. package/dist/icon/key.svg +1 -1
  70. package/dist/icon/list-check.svg +1 -1
  71. package/dist/icon/login.svg +1 -1
  72. package/dist/icon/logout.svg +1 -1
  73. package/dist/icon/map-pin.svg +1 -1
  74. package/dist/icon/maximize.svg +1 -1
  75. package/dist/icon/microphone.svg +1 -1
  76. package/dist/icon/minimize.svg +1 -1
  77. package/dist/icon/note.svg +1 -1
  78. package/dist/icon/player-pause.svg +1 -1
  79. package/dist/icon/printer.svg +1 -1
  80. package/dist/icon/qrcode.svg +1 -1
  81. package/dist/icon/send.svg +1 -1
  82. package/dist/icon/settings.svg +1 -1
  83. package/dist/icon/share.svg +1 -1
  84. package/dist/icon/shopping-cart.svg +1 -1
  85. package/dist/icon/sort-ascending.svg +1 -1
  86. package/dist/icon/sort-descending.svg +1 -1
  87. package/dist/icon/star.svg +1 -1
  88. package/dist/icon/tag.svg +1 -1
  89. package/dist/icon/trending-down.svg +1 -1
  90. package/dist/icon/trending-up.svg +1 -1
  91. package/dist/icon/upload.svg +1 -1
  92. package/dist/icon/volume-off.svg +1 -1
  93. package/dist/icon/volume.svg +1 -1
  94. package/dist/icon/world.svg +1 -1
  95. package/dist/icon/zoom-in.svg +1 -1
  96. package/dist/icon/zoom-out.svg +1 -1
  97. package/dist/index.d.ts +1 -0
  98. package/dist/index.js +1 -0
  99. package/dist/layout/AppShell.svelte +169 -169
  100. package/dist/layout/CustomNavbar.svelte +61 -61
  101. package/dist/layout/Navbar.svelte +206 -206
  102. package/dist/layout/NavbarItemDisplay.svelte +29 -29
  103. package/dist/layout/Sidenav.svelte +712 -712
  104. package/dist/styles/components.css +199 -199
  105. package/dist/styles/dark.css +146 -146
  106. package/dist/styles/index.css +116 -116
  107. package/dist/styles/reset.css +110 -110
  108. package/dist/styles/semantic.css +86 -86
  109. package/dist/styles/tokens.css +203 -197
  110. package/dist/styles/utilities.css +523 -523
  111. package/dist/ui/Accordion.svelte +289 -289
  112. package/dist/ui/ActionIcon.svelte +76 -76
  113. package/dist/ui/Badge.svelte +329 -279
  114. package/dist/ui/Breadcrumbs.svelte +131 -131
  115. package/dist/ui/Button.svelte +432 -370
  116. package/dist/ui/ButtonVariant.d.ts +1 -1
  117. package/dist/ui/Dialog.svelte +307 -307
  118. package/dist/ui/Drawer.svelte +524 -524
  119. package/dist/ui/Dropdown.svelte +97 -97
  120. package/dist/ui/Dropzone.svelte +122 -122
  121. package/dist/ui/Link.svelte +32 -32
  122. package/dist/ui/Loader.svelte +70 -70
  123. package/dist/ui/LoadingOverlay.svelte +53 -53
  124. package/dist/ui/Pagination.svelte +135 -135
  125. package/dist/ui/Popover.svelte +225 -225
  126. package/dist/ui/Progress.svelte +191 -191
  127. package/dist/ui/RingProgress.svelte +141 -141
  128. package/dist/ui/Skeleton.svelte +85 -85
  129. package/dist/ui/Stepper.svelte +355 -355
  130. package/dist/ui/Table.svelte +345 -345
  131. package/dist/ui/Tabs.svelte +146 -146
  132. package/dist/ui/ThemeSwitcher.svelte +39 -39
  133. package/dist/ui/Timeline.svelte +225 -225
  134. package/dist/ui/Toaster.svelte +6 -6
  135. package/dist/ui/Tooltip.svelte +434 -434
  136. package/package.json +14 -14
@@ -1,523 +1,523 @@
1
- /**
2
- * Utility Classes
3
- * Minimal utility classes for common styling patterns.
4
- * Uses logical properties (start/end) for RTL support.
5
- */
6
-
7
- /* Display */
8
- .block { display: block; }
9
- .inline-block { display: inline-block; }
10
- .flex { display: flex; }
11
- .inline-flex { display: inline-flex; }
12
- .grid { display: grid; }
13
- .hidden { display: none; }
14
-
15
- /* Flex Direction */
16
- .flex-row { flex-direction: row; }
17
- .flex-col { flex-direction: column; }
18
- .flex-wrap { flex-wrap: wrap; }
19
-
20
- /* Flex Alignment */
21
- .items-start { align-items: flex-start; }
22
- .items-center { align-items: center; }
23
- .items-end { align-items: flex-end; }
24
- .items-stretch { align-items: stretch; }
25
-
26
- .justify-start { justify-content: flex-start; }
27
- .justify-center { justify-content: center; }
28
- .justify-end { justify-content: flex-end; }
29
- .justify-between { justify-content: space-between; }
30
-
31
- /* Flex Properties */
32
- .flex-1 { flex: 1 1 0%; }
33
- .flex-grow { flex-grow: 1; }
34
- .flex-shrink-0 { flex-shrink: 0; }
35
-
36
- /* Gap */
37
- .gap-1 { gap: var(--pui-spacing-1); }
38
- .gap-2 { gap: var(--pui-spacing-2); }
39
- .gap-3 { gap: var(--pui-spacing-3); }
40
- .gap-4 { gap: var(--pui-spacing-4); }
41
- .gap-6 { gap: var(--pui-spacing-6); }
42
-
43
- /* Position */
44
- .relative { position: relative; }
45
- .absolute { position: absolute; }
46
- .fixed { position: fixed; }
47
- .sticky { position: sticky; }
48
-
49
- /* Overflow */
50
- .overflow-hidden { overflow: hidden; }
51
- .overflow-auto { overflow: auto; }
52
- .overflow-y-auto { overflow-y: auto; }
53
-
54
- /* Width/Height */
55
- .w-full { width: 100%; }
56
- .h-full { height: 100%; }
57
- .min-h-screen { min-height: 100vh; }
58
-
59
- /* Text */
60
- .text-start { text-align: start; }
61
- .text-center { text-align: center; }
62
- .text-end { text-align: end; }
63
-
64
- /* ============================================
65
- * FONT SIZES
66
- * ============================================ */
67
- .text-xs { font-size: var(--pui-font-size-xs); }
68
- .text-sm { font-size: var(--pui-font-size-sm); }
69
- .text-md { font-size: var(--pui-font-size-md); }
70
- .text-lg { font-size: var(--pui-font-size-lg); }
71
- .text-xl { font-size: var(--pui-font-size-xl); }
72
- .text-2xl { font-size: var(--pui-font-size-2xl); }
73
- .text-3xl { font-size: var(--pui-font-size-3xl); }
74
- .text-4xl { font-size: var(--pui-font-size-4xl); }
75
-
76
- /* ============================================
77
- * FONT WEIGHTS
78
- * ============================================ */
79
- .font-thin { font-weight: var(--pui-font-weight-thin); }
80
- .font-light { font-weight: var(--pui-font-weight-light); }
81
- .font-normal { font-weight: var(--pui-font-weight-normal); }
82
- .font-medium { font-weight: var(--pui-font-weight-medium); }
83
- .font-semibold { font-weight: var(--pui-font-weight-semibold); }
84
- .font-bold { font-weight: var(--pui-font-weight-bold); }
85
- .font-extrabold { font-weight: var(--pui-font-weight-extrabold); }
86
- .font-black { font-weight: var(--pui-font-weight-black); }
87
-
88
- /* ============================================
89
- * LINE HEIGHTS
90
- * ============================================ */
91
- .leading-none { line-height: var(--pui-line-height-none); }
92
- .leading-xs { line-height: var(--pui-line-height-tight); }
93
- .leading-sm { line-height: var(--pui-line-height-snug); }
94
- .leading-md { line-height: var(--pui-line-height-normal); }
95
- .leading-lg { line-height: var(--pui-line-height-relaxed); }
96
- .leading-xl { line-height: var(--pui-line-height-loose); }
97
-
98
- /* ============================================
99
- * LETTER SPACING
100
- * ============================================ */
101
- .tracking-xs { letter-spacing: var(--pui-letter-spacing-tighter); }
102
- .tracking-sm { letter-spacing: var(--pui-letter-spacing-tight); }
103
- .tracking-md { letter-spacing: var(--pui-letter-spacing-normal); }
104
- .tracking-lg { letter-spacing: var(--pui-letter-spacing-wide); }
105
- .tracking-xl { letter-spacing: var(--pui-letter-spacing-wider); }
106
- .tracking-2xl { letter-spacing: var(--pui-letter-spacing-widest); }
107
-
108
- /* ============================================
109
- * FONT FAMILIES
110
- * ============================================ */
111
- .font-sans { font-family: var(--pui-font-family-sans); }
112
- .font-mono { font-family: var(--pui-font-family-mono); }
113
-
114
- /* ============================================
115
- * TEXT COLORS
116
- * ============================================ */
117
-
118
- /* Semantic text colors */
119
- .text-body { color: var(--pui-text-primary); }
120
- .text-subtle { color: var(--pui-text-secondary); }
121
- .text-muted { color: var(--pui-text-muted); }
122
-
123
- /* Brand text colors */
124
- .text-primary { color: var(--pui-color-primary); }
125
- .text-secondary { color: var(--pui-color-secondary); }
126
- .text-accent { color: var(--pui-color-accent); }
127
-
128
- /* Status text colors */
129
- .text-danger { color: var(--pui-color-danger); }
130
- .text-warning { color: var(--pui-color-warning); }
131
- .text-success { color: var(--pui-color-success); }
132
- .text-info { color: var(--pui-color-info); }
133
-
134
- /* Neutral text colors */
135
- .text-white { color: var(--pui-color-white); }
136
- .text-black { color: var(--pui-color-black); }
137
- .text-gray-50 { color: var(--pui-color-gray-50); }
138
- .text-gray-100 { color: var(--pui-color-gray-100); }
139
- .text-gray-200 { color: var(--pui-color-gray-200); }
140
- .text-gray-300 { color: var(--pui-color-gray-300); }
141
- .text-gray-400 { color: var(--pui-color-gray-400); }
142
- .text-gray-500 { color: var(--pui-color-gray-500); }
143
- .text-gray-600 { color: var(--pui-color-gray-600); }
144
- .text-gray-700 { color: var(--pui-color-gray-700); }
145
- .text-gray-800 { color: var(--pui-color-gray-800); }
146
- .text-gray-900 { color: var(--pui-color-gray-900); }
147
-
148
- /* Inherit/current */
149
- .text-inherit { color: inherit; }
150
- .text-current { color: currentColor; }
151
-
152
- /* ============================================
153
- * BACKGROUND COLORS
154
- * ============================================ */
155
-
156
- /* Brand backgrounds */
157
- .bg-primary { background-color: var(--pui-color-primary); }
158
- .bg-primary-hover { background-color: var(--pui-color-primary-light); }
159
- .bg-primary-dark { background-color: var(--pui-color-primary-dark); }
160
- .bg-secondary { background-color: var(--pui-color-secondary); }
161
- .bg-secondary-hover { background-color: var(--pui-color-secondary-hover); }
162
- .bg-accent { background-color: var(--pui-color-accent); }
163
- .bg-accent-hover { background-color: var(--pui-color-accent-hover); }
164
- .bg-accent-light { background-color: var(--pui-color-accent-light); }
165
-
166
- /* Status backgrounds */
167
- .bg-danger { background-color: var(--pui-color-danger); }
168
- .bg-danger-subtle { background-color: var(--pui-color-danger-subtle); }
169
- .bg-warning { background-color: var(--pui-color-warning); }
170
- .bg-success { background-color: var(--pui-color-success); }
171
- .bg-info { background-color: var(--pui-color-info); }
172
-
173
- /* Neutral backgrounds */
174
- .bg-white { background-color: var(--pui-color-white); }
175
- .bg-black { background-color: var(--pui-color-black); }
176
- .bg-gray-50 { background-color: var(--pui-color-gray-50); }
177
- .bg-gray-100 { background-color: var(--pui-color-gray-100); }
178
- .bg-gray-200 { background-color: var(--pui-color-gray-200); }
179
- .bg-gray-300 { background-color: var(--pui-color-gray-300); }
180
- .bg-gray-400 { background-color: var(--pui-color-gray-400); }
181
- .bg-gray-500 { background-color: var(--pui-color-gray-500); }
182
- .bg-gray-600 { background-color: var(--pui-color-gray-600); }
183
- .bg-gray-700 { background-color: var(--pui-color-gray-700); }
184
- .bg-gray-800 { background-color: var(--pui-color-gray-800); }
185
- .bg-gray-900 { background-color: var(--pui-color-gray-900); }
186
-
187
- /* Dark mode backgrounds */
188
- .bg-dark-100 { background-color: var(--pui-color-dark-100); }
189
- .bg-dark-200 { background-color: var(--pui-color-dark-200); }
190
- .bg-dark-300 { background-color: var(--pui-color-dark-300); }
191
- .bg-dark-400 { background-color: var(--pui-color-dark-400); }
192
- .bg-dark-500 { background-color: var(--pui-color-dark-500); }
193
-
194
- /* Special backgrounds */
195
- .bg-transparent { background-color: transparent; }
196
- .bg-inherit { background-color: inherit; }
197
-
198
- /* ============================================
199
- * BORDER COLORS
200
- * ============================================ */
201
-
202
- /* Brand borders */
203
- .border-primary { border-color: var(--pui-color-primary); }
204
- .border-secondary { border-color: var(--pui-color-secondary); }
205
- .border-accent { border-color: var(--pui-color-accent); }
206
-
207
- /* Status borders */
208
- .border-danger { border-color: var(--pui-color-danger); }
209
- .border-warning { border-color: var(--pui-color-warning); }
210
- .border-success { border-color: var(--pui-color-success); }
211
- .border-info { border-color: var(--pui-color-info); }
212
-
213
- /* Neutral borders */
214
- .border-white { border-color: var(--pui-color-white); }
215
- .border-black { border-color: var(--pui-color-black); }
216
- .border-gray-50 { border-color: var(--pui-color-gray-50); }
217
- .border-gray-100 { border-color: var(--pui-color-gray-100); }
218
- .border-gray-200 { border-color: var(--pui-color-gray-200); }
219
- .border-gray-300 { border-color: var(--pui-color-gray-300); }
220
- .border-gray-400 { border-color: var(--pui-color-gray-400); }
221
- .border-gray-500 { border-color: var(--pui-color-gray-500); }
222
- .border-gray-600 { border-color: var(--pui-color-gray-600); }
223
- .border-gray-700 { border-color: var(--pui-color-gray-700); }
224
- .border-gray-800 { border-color: var(--pui-color-gray-800); }
225
- .border-gray-900 { border-color: var(--pui-color-gray-900); }
226
-
227
- /* Dark mode borders */
228
- .border-dark { border-color: var(--pui-color-dark-border); }
229
- .border-dark-subtle { border-color: var(--pui-color-dark-border-subtle); }
230
-
231
- /* Default/semantic borders */
232
- .border-default { border-color: var(--pui-border-default); }
233
- .border-transparent { border-color: transparent; }
234
- .border-inherit { border-color: inherit; }
235
-
236
- /* Border width utilities */
237
- .border-0 { border-width: 0; }
238
- .border { border-width: 1px; border-style: solid; }
239
- .border-2 { border-width: 2px; border-style: solid; }
240
- .border-4 { border-width: 4px; border-style: solid; }
241
- .border-t { border-top-width: 1px; border-top-style: solid; }
242
- .border-r { border-right-width: 1px; border-right-style: solid; }
243
- .border-b { border-bottom-width: 1px; border-bottom-style: solid; }
244
- .border-l { border-left-width: 1px; border-left-style: solid; }
245
-
246
- /* User Select */
247
- .select-none { user-select: none; }
248
-
249
- /* Cursor */
250
- .cursor-pointer { cursor: pointer; }
251
- .cursor-not-allowed { cursor: not-allowed; }
252
-
253
- /* Truncation */
254
- .truncate {
255
- overflow: hidden;
256
- text-overflow: ellipsis;
257
- white-space: nowrap;
258
- }
259
-
260
- /* Border Radius */
261
- .rounded { border-radius: var(--pui-radius-base); }
262
- .rounded-md { border-radius: var(--pui-radius-md); }
263
- .rounded-lg { border-radius: var(--pui-radius-lg); }
264
- .rounded-full { border-radius: var(--pui-radius-full); }
265
-
266
- /* Shadow */
267
- .shadow-sm { box-shadow: var(--pui-shadow-sm); }
268
- .shadow { box-shadow: var(--pui-shadow-base); }
269
- .shadow-md { box-shadow: var(--pui-shadow-md); }
270
-
271
- /* Screen Reader Only */
272
- .sr-only {
273
- position: absolute;
274
- width: 1px;
275
- height: 1px;
276
- padding: 0;
277
- margin: -1px;
278
- overflow: hidden;
279
- clip: rect(0, 0, 0, 0);
280
- white-space: nowrap;
281
- border-width: 0;
282
- }
283
-
284
- /* Stack Utilities */
285
- .vstack {
286
- display: flex;
287
- flex-direction: column;
288
- gap: var(--pui-spacing-4);
289
- }
290
-
291
- .hstack {
292
- display: flex;
293
- flex-direction: row;
294
- align-items: center;
295
- gap: var(--pui-spacing-4);
296
- }
297
-
298
- .center {
299
- display: flex;
300
- align-items: center;
301
- justify-content: center;
302
- }
303
-
304
- /* Container */
305
- .container {
306
- width: 100%;
307
- margin-inline: auto;
308
- padding-inline: var(--pui-spacing-4);
309
- }
310
-
311
- @media (min-width: 640px) {
312
- .container { max-width: 640px; }
313
- }
314
- @media (min-width: 768px) {
315
- .container { max-width: 768px; }
316
- }
317
- @media (min-width: 1024px) {
318
- .container { max-width: 1024px; }
319
- }
320
- @media (min-width: 1280px) {
321
- .container { max-width: 1280px; }
322
- }
323
-
324
- /* ============================================
325
- * Padding
326
- * ============================================ */
327
- .p-0 { padding: var(--pui-spacing-0); }
328
- .p-1 { padding: var(--pui-spacing-1); }
329
- .p-2 { padding: var(--pui-spacing-2); }
330
- .p-3 { padding: var(--pui-spacing-3); }
331
- .p-4 { padding: var(--pui-spacing-4); }
332
- .p-5 { padding: var(--pui-spacing-5); }
333
- .p-6 { padding: var(--pui-spacing-6); }
334
- .p-7 { padding: var(--pui-spacing-7); }
335
- .p-8 { padding: var(--pui-spacing-8); }
336
- .p-9 { padding: var(--pui-spacing-9); }
337
- .p-10 { padding: var(--pui-spacing-10); }
338
- .p-11 { padding: var(--pui-spacing-11); }
339
- .p-12 { padding: var(--pui-spacing-12); }
340
- .p-14 { padding: var(--pui-spacing-14); }
341
- .p-16 { padding: var(--pui-spacing-16); }
342
- .p-20 { padding: var(--pui-spacing-20); }
343
- .p-24 { padding: var(--pui-spacing-24); }
344
-
345
- .px-0 { padding-inline: var(--pui-spacing-0); }
346
- .px-1 { padding-inline: var(--pui-spacing-1); }
347
- .px-2 { padding-inline: var(--pui-spacing-2); }
348
- .px-3 { padding-inline: var(--pui-spacing-3); }
349
- .px-4 { padding-inline: var(--pui-spacing-4); }
350
- .px-5 { padding-inline: var(--pui-spacing-5); }
351
- .px-6 { padding-inline: var(--pui-spacing-6); }
352
- .px-7 { padding-inline: var(--pui-spacing-7); }
353
- .px-8 { padding-inline: var(--pui-spacing-8); }
354
- .px-9 { padding-inline: var(--pui-spacing-9); }
355
- .px-10 { padding-inline: var(--pui-spacing-10); }
356
- .px-11 { padding-inline: var(--pui-spacing-11); }
357
- .px-12 { padding-inline: var(--pui-spacing-12); }
358
- .px-14 { padding-inline: var(--pui-spacing-14); }
359
- .px-16 { padding-inline: var(--pui-spacing-16); }
360
- .px-20 { padding-inline: var(--pui-spacing-20); }
361
- .px-24 { padding-inline: var(--pui-spacing-24); }
362
-
363
- .py-0 { padding-block: var(--pui-spacing-0); }
364
- .py-1 { padding-block: var(--pui-spacing-1); }
365
- .py-2 { padding-block: var(--pui-spacing-2); }
366
- .py-3 { padding-block: var(--pui-spacing-3); }
367
- .py-4 { padding-block: var(--pui-spacing-4); }
368
- .py-5 { padding-block: var(--pui-spacing-5); }
369
- .py-6 { padding-block: var(--pui-spacing-6); }
370
- .py-7 { padding-block: var(--pui-spacing-7); }
371
- .py-8 { padding-block: var(--pui-spacing-8); }
372
- .py-9 { padding-block: var(--pui-spacing-9); }
373
- .py-10 { padding-block: var(--pui-spacing-10); }
374
- .py-11 { padding-block: var(--pui-spacing-11); }
375
- .py-12 { padding-block: var(--pui-spacing-12); }
376
- .py-14 { padding-block: var(--pui-spacing-14); }
377
- .py-16 { padding-block: var(--pui-spacing-16); }
378
- .py-20 { padding-block: var(--pui-spacing-20); }
379
- .py-24 { padding-block: var(--pui-spacing-24); }
380
-
381
- .pt-0 { padding-top: var(--pui-spacing-0); }
382
- .pt-1 { padding-top: var(--pui-spacing-1); }
383
- .pt-2 { padding-top: var(--pui-spacing-2); }
384
- .pt-3 { padding-top: var(--pui-spacing-3); }
385
- .pt-4 { padding-top: var(--pui-spacing-4); }
386
- .pt-5 { padding-top: var(--pui-spacing-5); }
387
- .pt-6 { padding-top: var(--pui-spacing-6); }
388
- .pt-7 { padding-top: var(--pui-spacing-7); }
389
- .pt-8 { padding-top: var(--pui-spacing-8); }
390
-
391
- .pe-0 { padding-inline-end: var(--pui-spacing-0); }
392
- .pe-1 { padding-inline-end: var(--pui-spacing-1); }
393
- .pe-2 { padding-inline-end: var(--pui-spacing-2); }
394
- .pe-3 { padding-inline-end: var(--pui-spacing-3); }
395
- .pe-4 { padding-inline-end: var(--pui-spacing-4); }
396
- .pe-5 { padding-inline-end: var(--pui-spacing-5); }
397
- .pe-6 { padding-inline-end: var(--pui-spacing-6); }
398
- .pe-7 { padding-inline-end: var(--pui-spacing-7); }
399
- .pe-8 { padding-inline-end: var(--pui-spacing-8); }
400
-
401
- .pb-0 { padding-bottom: var(--pui-spacing-0); }
402
- .pb-1 { padding-bottom: var(--pui-spacing-1); }
403
- .pb-2 { padding-bottom: var(--pui-spacing-2); }
404
- .pb-3 { padding-bottom: var(--pui-spacing-3); }
405
- .pb-4 { padding-bottom: var(--pui-spacing-4); }
406
- .pb-5 { padding-bottom: var(--pui-spacing-5); }
407
- .pb-6 { padding-bottom: var(--pui-spacing-6); }
408
- .pb-7 { padding-bottom: var(--pui-spacing-7); }
409
- .pb-8 { padding-bottom: var(--pui-spacing-8); }
410
-
411
- .ps-0 { padding-inline-start: var(--pui-spacing-0); }
412
- .ps-1 { padding-inline-start: var(--pui-spacing-1); }
413
- .ps-2 { padding-inline-start: var(--pui-spacing-2); }
414
- .ps-3 { padding-inline-start: var(--pui-spacing-3); }
415
- .ps-4 { padding-inline-start: var(--pui-spacing-4); }
416
- .ps-5 { padding-inline-start: var(--pui-spacing-5); }
417
- .ps-6 { padding-inline-start: var(--pui-spacing-6); }
418
- .ps-7 { padding-inline-start: var(--pui-spacing-7); }
419
- .ps-8 { padding-inline-start: var(--pui-spacing-8); }
420
-
421
- /* ============================================
422
- * Margin
423
- * ============================================ */
424
- .m-0 { margin: var(--pui-spacing-0); }
425
- .m-1 { margin: var(--pui-spacing-1); }
426
- .m-2 { margin: var(--pui-spacing-2); }
427
- .m-3 { margin: var(--pui-spacing-3); }
428
- .m-4 { margin: var(--pui-spacing-4); }
429
- .m-5 { margin: var(--pui-spacing-5); }
430
- .m-6 { margin: var(--pui-spacing-6); }
431
- .m-7 { margin: var(--pui-spacing-7); }
432
- .m-8 { margin: var(--pui-spacing-8); }
433
- .m-9 { margin: var(--pui-spacing-9); }
434
- .m-10 { margin: var(--pui-spacing-10); }
435
- .m-11 { margin: var(--pui-spacing-11); }
436
- .m-12 { margin: var(--pui-spacing-12); }
437
- .m-14 { margin: var(--pui-spacing-14); }
438
- .m-16 { margin: var(--pui-spacing-16); }
439
- .m-20 { margin: var(--pui-spacing-20); }
440
- .m-24 { margin: var(--pui-spacing-24); }
441
- .m-auto { margin: auto; }
442
-
443
- .mx-0 { margin-inline: var(--pui-spacing-0); }
444
- .mx-1 { margin-inline: var(--pui-spacing-1); }
445
- .mx-2 { margin-inline: var(--pui-spacing-2); }
446
- .mx-3 { margin-inline: var(--pui-spacing-3); }
447
- .mx-4 { margin-inline: var(--pui-spacing-4); }
448
- .mx-5 { margin-inline: var(--pui-spacing-5); }
449
- .mx-6 { margin-inline: var(--pui-spacing-6); }
450
- .mx-7 { margin-inline: var(--pui-spacing-7); }
451
- .mx-8 { margin-inline: var(--pui-spacing-8); }
452
- .mx-9 { margin-inline: var(--pui-spacing-9); }
453
- .mx-10 { margin-inline: var(--pui-spacing-10); }
454
- .mx-11 { margin-inline: var(--pui-spacing-11); }
455
- .mx-12 { margin-inline: var(--pui-spacing-12); }
456
- .mx-14 { margin-inline: var(--pui-spacing-14); }
457
- .mx-16 { margin-inline: var(--pui-spacing-16); }
458
- .mx-20 { margin-inline: var(--pui-spacing-20); }
459
- .mx-24 { margin-inline: var(--pui-spacing-24); }
460
- .mx-auto { margin-inline: auto; }
461
-
462
- .my-0 { margin-block: var(--pui-spacing-0); }
463
- .my-1 { margin-block: var(--pui-spacing-1); }
464
- .my-2 { margin-block: var(--pui-spacing-2); }
465
- .my-3 { margin-block: var(--pui-spacing-3); }
466
- .my-4 { margin-block: var(--pui-spacing-4); }
467
- .my-5 { margin-block: var(--pui-spacing-5); }
468
- .my-6 { margin-block: var(--pui-spacing-6); }
469
- .my-7 { margin-block: var(--pui-spacing-7); }
470
- .my-8 { margin-block: var(--pui-spacing-8); }
471
- .my-9 { margin-block: var(--pui-spacing-9); }
472
- .my-10 { margin-block: var(--pui-spacing-10); }
473
- .my-11 { margin-block: var(--pui-spacing-11); }
474
- .my-12 { margin-block: var(--pui-spacing-12); }
475
- .my-14 { margin-block: var(--pui-spacing-14); }
476
- .my-16 { margin-block: var(--pui-spacing-16); }
477
- .my-20 { margin-block: var(--pui-spacing-20); }
478
- .my-24 { margin-block: var(--pui-spacing-24); }
479
- .my-auto { margin-block: auto; }
480
-
481
- .mt-0 { margin-top: var(--pui-spacing-0); }
482
- .mt-1 { margin-top: var(--pui-spacing-1); }
483
- .mt-2 { margin-top: var(--pui-spacing-2); }
484
- .mt-3 { margin-top: var(--pui-spacing-3); }
485
- .mt-4 { margin-top: var(--pui-spacing-4); }
486
- .mt-5 { margin-top: var(--pui-spacing-5); }
487
- .mt-6 { margin-top: var(--pui-spacing-6); }
488
- .mt-7 { margin-top: var(--pui-spacing-7); }
489
- .mt-8 { margin-top: var(--pui-spacing-8); }
490
- .mt-auto { margin-top: auto; }
491
-
492
- .me-0 { margin-inline-end: var(--pui-spacing-0); }
493
- .me-1 { margin-inline-end: var(--pui-spacing-1); }
494
- .me-2 { margin-inline-end: var(--pui-spacing-2); }
495
- .me-3 { margin-inline-end: var(--pui-spacing-3); }
496
- .me-4 { margin-inline-end: var(--pui-spacing-4); }
497
- .me-5 { margin-inline-end: var(--pui-spacing-5); }
498
- .me-6 { margin-inline-end: var(--pui-spacing-6); }
499
- .me-7 { margin-inline-end: var(--pui-spacing-7); }
500
- .me-8 { margin-inline-end: var(--pui-spacing-8); }
501
- .me-auto { margin-inline-end: auto; }
502
-
503
- .mb-0 { margin-bottom: var(--pui-spacing-0); }
504
- .mb-1 { margin-bottom: var(--pui-spacing-1); }
505
- .mb-2 { margin-bottom: var(--pui-spacing-2); }
506
- .mb-3 { margin-bottom: var(--pui-spacing-3); }
507
- .mb-4 { margin-bottom: var(--pui-spacing-4); }
508
- .mb-5 { margin-bottom: var(--pui-spacing-5); }
509
- .mb-6 { margin-bottom: var(--pui-spacing-6); }
510
- .mb-7 { margin-bottom: var(--pui-spacing-7); }
511
- .mb-8 { margin-bottom: var(--pui-spacing-8); }
512
- .mb-auto { margin-bottom: auto; }
513
-
514
- .ms-0 { margin-inline-start: var(--pui-spacing-0); }
515
- .ms-1 { margin-inline-start: var(--pui-spacing-1); }
516
- .ms-2 { margin-inline-start: var(--pui-spacing-2); }
517
- .ms-3 { margin-inline-start: var(--pui-spacing-3); }
518
- .ms-4 { margin-inline-start: var(--pui-spacing-4); }
519
- .ms-5 { margin-inline-start: var(--pui-spacing-5); }
520
- .ms-6 { margin-inline-start: var(--pui-spacing-6); }
521
- .ms-7 { margin-inline-start: var(--pui-spacing-7); }
522
- .ms-8 { margin-inline-start: var(--pui-spacing-8); }
523
- .ms-auto { margin-inline-start: auto; }
1
+ /**
2
+ * Utility Classes
3
+ * Minimal utility classes for common styling patterns.
4
+ * Uses logical properties (start/end) for RTL support.
5
+ */
6
+
7
+ /* Display */
8
+ .block { display: block; }
9
+ .inline-block { display: inline-block; }
10
+ .flex { display: flex; }
11
+ .inline-flex { display: inline-flex; }
12
+ .grid { display: grid; }
13
+ .hidden { display: none; }
14
+
15
+ /* Flex Direction */
16
+ .flex-row { flex-direction: row; }
17
+ .flex-col { flex-direction: column; }
18
+ .flex-wrap { flex-wrap: wrap; }
19
+
20
+ /* Flex Alignment */
21
+ .items-start { align-items: flex-start; }
22
+ .items-center { align-items: center; }
23
+ .items-end { align-items: flex-end; }
24
+ .items-stretch { align-items: stretch; }
25
+
26
+ .justify-start { justify-content: flex-start; }
27
+ .justify-center { justify-content: center; }
28
+ .justify-end { justify-content: flex-end; }
29
+ .justify-between { justify-content: space-between; }
30
+
31
+ /* Flex Properties */
32
+ .flex-1 { flex: 1 1 0%; }
33
+ .flex-grow { flex-grow: 1; }
34
+ .flex-shrink-0 { flex-shrink: 0; }
35
+
36
+ /* Gap */
37
+ .gap-1 { gap: var(--pui-spacing-1); }
38
+ .gap-2 { gap: var(--pui-spacing-2); }
39
+ .gap-3 { gap: var(--pui-spacing-3); }
40
+ .gap-4 { gap: var(--pui-spacing-4); }
41
+ .gap-6 { gap: var(--pui-spacing-6); }
42
+
43
+ /* Position */
44
+ .relative { position: relative; }
45
+ .absolute { position: absolute; }
46
+ .fixed { position: fixed; }
47
+ .sticky { position: sticky; }
48
+
49
+ /* Overflow */
50
+ .overflow-hidden { overflow: hidden; }
51
+ .overflow-auto { overflow: auto; }
52
+ .overflow-y-auto { overflow-y: auto; }
53
+
54
+ /* Width/Height */
55
+ .w-full { width: 100%; }
56
+ .h-full { height: 100%; }
57
+ .min-h-screen { min-height: 100vh; }
58
+
59
+ /* Text */
60
+ .text-start { text-align: start; }
61
+ .text-center { text-align: center; }
62
+ .text-end { text-align: end; }
63
+
64
+ /* ============================================
65
+ * FONT SIZES
66
+ * ============================================ */
67
+ .text-xs { font-size: var(--pui-font-size-xs); }
68
+ .text-sm { font-size: var(--pui-font-size-sm); }
69
+ .text-md { font-size: var(--pui-font-size-md); }
70
+ .text-lg { font-size: var(--pui-font-size-lg); }
71
+ .text-xl { font-size: var(--pui-font-size-xl); }
72
+ .text-2xl { font-size: var(--pui-font-size-2xl); }
73
+ .text-3xl { font-size: var(--pui-font-size-3xl); }
74
+ .text-4xl { font-size: var(--pui-font-size-4xl); }
75
+
76
+ /* ============================================
77
+ * FONT WEIGHTS
78
+ * ============================================ */
79
+ .font-thin { font-weight: var(--pui-font-weight-thin); }
80
+ .font-light { font-weight: var(--pui-font-weight-light); }
81
+ .font-normal { font-weight: var(--pui-font-weight-normal); }
82
+ .font-medium { font-weight: var(--pui-font-weight-medium); }
83
+ .font-semibold { font-weight: var(--pui-font-weight-semibold); }
84
+ .font-bold { font-weight: var(--pui-font-weight-bold); }
85
+ .font-extrabold { font-weight: var(--pui-font-weight-extrabold); }
86
+ .font-black { font-weight: var(--pui-font-weight-black); }
87
+
88
+ /* ============================================
89
+ * LINE HEIGHTS
90
+ * ============================================ */
91
+ .leading-none { line-height: var(--pui-line-height-none); }
92
+ .leading-xs { line-height: var(--pui-line-height-tight); }
93
+ .leading-sm { line-height: var(--pui-line-height-snug); }
94
+ .leading-md { line-height: var(--pui-line-height-normal); }
95
+ .leading-lg { line-height: var(--pui-line-height-relaxed); }
96
+ .leading-xl { line-height: var(--pui-line-height-loose); }
97
+
98
+ /* ============================================
99
+ * LETTER SPACING
100
+ * ============================================ */
101
+ .tracking-xs { letter-spacing: var(--pui-letter-spacing-tighter); }
102
+ .tracking-sm { letter-spacing: var(--pui-letter-spacing-tight); }
103
+ .tracking-md { letter-spacing: var(--pui-letter-spacing-normal); }
104
+ .tracking-lg { letter-spacing: var(--pui-letter-spacing-wide); }
105
+ .tracking-xl { letter-spacing: var(--pui-letter-spacing-wider); }
106
+ .tracking-2xl { letter-spacing: var(--pui-letter-spacing-widest); }
107
+
108
+ /* ============================================
109
+ * FONT FAMILIES
110
+ * ============================================ */
111
+ .font-sans { font-family: var(--pui-font-family-sans); }
112
+ .font-mono { font-family: var(--pui-font-family-mono); }
113
+
114
+ /* ============================================
115
+ * TEXT COLORS
116
+ * ============================================ */
117
+
118
+ /* Semantic text colors */
119
+ .text-body { color: var(--pui-text-primary); }
120
+ .text-subtle { color: var(--pui-text-secondary); }
121
+ .text-muted { color: var(--pui-text-muted); }
122
+
123
+ /* Brand text colors */
124
+ .text-primary { color: var(--pui-color-primary); }
125
+ .text-secondary { color: var(--pui-color-secondary); }
126
+ .text-accent { color: var(--pui-color-accent); }
127
+
128
+ /* Status text colors */
129
+ .text-danger { color: var(--pui-color-danger); }
130
+ .text-warning { color: var(--pui-color-warning); }
131
+ .text-success { color: var(--pui-color-success); }
132
+ .text-info { color: var(--pui-color-info); }
133
+
134
+ /* Neutral text colors */
135
+ .text-white { color: var(--pui-color-white); }
136
+ .text-black { color: var(--pui-color-black); }
137
+ .text-gray-50 { color: var(--pui-color-gray-50); }
138
+ .text-gray-100 { color: var(--pui-color-gray-100); }
139
+ .text-gray-200 { color: var(--pui-color-gray-200); }
140
+ .text-gray-300 { color: var(--pui-color-gray-300); }
141
+ .text-gray-400 { color: var(--pui-color-gray-400); }
142
+ .text-gray-500 { color: var(--pui-color-gray-500); }
143
+ .text-gray-600 { color: var(--pui-color-gray-600); }
144
+ .text-gray-700 { color: var(--pui-color-gray-700); }
145
+ .text-gray-800 { color: var(--pui-color-gray-800); }
146
+ .text-gray-900 { color: var(--pui-color-gray-900); }
147
+
148
+ /* Inherit/current */
149
+ .text-inherit { color: inherit; }
150
+ .text-current { color: currentColor; }
151
+
152
+ /* ============================================
153
+ * BACKGROUND COLORS
154
+ * ============================================ */
155
+
156
+ /* Brand backgrounds */
157
+ .bg-primary { background-color: var(--pui-color-primary); }
158
+ .bg-primary-hover { background-color: var(--pui-color-primary-light); }
159
+ .bg-primary-dark { background-color: var(--pui-color-primary-dark); }
160
+ .bg-secondary { background-color: var(--pui-color-secondary); }
161
+ .bg-secondary-hover { background-color: var(--pui-color-secondary-hover); }
162
+ .bg-accent { background-color: var(--pui-color-accent); }
163
+ .bg-accent-hover { background-color: var(--pui-color-accent-hover); }
164
+ .bg-accent-light { background-color: var(--pui-color-accent-light); }
165
+
166
+ /* Status backgrounds */
167
+ .bg-danger { background-color: var(--pui-color-danger); }
168
+ .bg-danger-subtle { background-color: var(--pui-color-danger-subtle); }
169
+ .bg-warning { background-color: var(--pui-color-warning); }
170
+ .bg-success { background-color: var(--pui-color-success); }
171
+ .bg-info { background-color: var(--pui-color-info); }
172
+
173
+ /* Neutral backgrounds */
174
+ .bg-white { background-color: var(--pui-color-white); }
175
+ .bg-black { background-color: var(--pui-color-black); }
176
+ .bg-gray-50 { background-color: var(--pui-color-gray-50); }
177
+ .bg-gray-100 { background-color: var(--pui-color-gray-100); }
178
+ .bg-gray-200 { background-color: var(--pui-color-gray-200); }
179
+ .bg-gray-300 { background-color: var(--pui-color-gray-300); }
180
+ .bg-gray-400 { background-color: var(--pui-color-gray-400); }
181
+ .bg-gray-500 { background-color: var(--pui-color-gray-500); }
182
+ .bg-gray-600 { background-color: var(--pui-color-gray-600); }
183
+ .bg-gray-700 { background-color: var(--pui-color-gray-700); }
184
+ .bg-gray-800 { background-color: var(--pui-color-gray-800); }
185
+ .bg-gray-900 { background-color: var(--pui-color-gray-900); }
186
+
187
+ /* Dark mode backgrounds */
188
+ .bg-dark-100 { background-color: var(--pui-color-dark-100); }
189
+ .bg-dark-200 { background-color: var(--pui-color-dark-200); }
190
+ .bg-dark-300 { background-color: var(--pui-color-dark-300); }
191
+ .bg-dark-400 { background-color: var(--pui-color-dark-400); }
192
+ .bg-dark-500 { background-color: var(--pui-color-dark-500); }
193
+
194
+ /* Special backgrounds */
195
+ .bg-transparent { background-color: transparent; }
196
+ .bg-inherit { background-color: inherit; }
197
+
198
+ /* ============================================
199
+ * BORDER COLORS
200
+ * ============================================ */
201
+
202
+ /* Brand borders */
203
+ .border-primary { border-color: var(--pui-color-primary); }
204
+ .border-secondary { border-color: var(--pui-color-secondary); }
205
+ .border-accent { border-color: var(--pui-color-accent); }
206
+
207
+ /* Status borders */
208
+ .border-danger { border-color: var(--pui-color-danger); }
209
+ .border-warning { border-color: var(--pui-color-warning); }
210
+ .border-success { border-color: var(--pui-color-success); }
211
+ .border-info { border-color: var(--pui-color-info); }
212
+
213
+ /* Neutral borders */
214
+ .border-white { border-color: var(--pui-color-white); }
215
+ .border-black { border-color: var(--pui-color-black); }
216
+ .border-gray-50 { border-color: var(--pui-color-gray-50); }
217
+ .border-gray-100 { border-color: var(--pui-color-gray-100); }
218
+ .border-gray-200 { border-color: var(--pui-color-gray-200); }
219
+ .border-gray-300 { border-color: var(--pui-color-gray-300); }
220
+ .border-gray-400 { border-color: var(--pui-color-gray-400); }
221
+ .border-gray-500 { border-color: var(--pui-color-gray-500); }
222
+ .border-gray-600 { border-color: var(--pui-color-gray-600); }
223
+ .border-gray-700 { border-color: var(--pui-color-gray-700); }
224
+ .border-gray-800 { border-color: var(--pui-color-gray-800); }
225
+ .border-gray-900 { border-color: var(--pui-color-gray-900); }
226
+
227
+ /* Dark mode borders */
228
+ .border-dark { border-color: var(--pui-color-dark-border); }
229
+ .border-dark-subtle { border-color: var(--pui-color-dark-border-subtle); }
230
+
231
+ /* Default/semantic borders */
232
+ .border-default { border-color: var(--pui-border-default); }
233
+ .border-transparent { border-color: transparent; }
234
+ .border-inherit { border-color: inherit; }
235
+
236
+ /* Border width utilities */
237
+ .border-0 { border-width: 0; }
238
+ .border { border-width: 1px; border-style: solid; }
239
+ .border-2 { border-width: 2px; border-style: solid; }
240
+ .border-4 { border-width: 4px; border-style: solid; }
241
+ .border-t { border-top-width: 1px; border-top-style: solid; }
242
+ .border-r { border-right-width: 1px; border-right-style: solid; }
243
+ .border-b { border-bottom-width: 1px; border-bottom-style: solid; }
244
+ .border-l { border-left-width: 1px; border-left-style: solid; }
245
+
246
+ /* User Select */
247
+ .select-none { user-select: none; }
248
+
249
+ /* Cursor */
250
+ .cursor-pointer { cursor: pointer; }
251
+ .cursor-not-allowed { cursor: not-allowed; }
252
+
253
+ /* Truncation */
254
+ .truncate {
255
+ overflow: hidden;
256
+ text-overflow: ellipsis;
257
+ white-space: nowrap;
258
+ }
259
+
260
+ /* Border Radius */
261
+ .rounded { border-radius: var(--pui-radius-base); }
262
+ .rounded-md { border-radius: var(--pui-radius-md); }
263
+ .rounded-lg { border-radius: var(--pui-radius-lg); }
264
+ .rounded-full { border-radius: var(--pui-radius-full); }
265
+
266
+ /* Shadow */
267
+ .shadow-sm { box-shadow: var(--pui-shadow-sm); }
268
+ .shadow { box-shadow: var(--pui-shadow-base); }
269
+ .shadow-md { box-shadow: var(--pui-shadow-md); }
270
+
271
+ /* Screen Reader Only */
272
+ .sr-only {
273
+ position: absolute;
274
+ width: 1px;
275
+ height: 1px;
276
+ padding: 0;
277
+ margin: -1px;
278
+ overflow: hidden;
279
+ clip: rect(0, 0, 0, 0);
280
+ white-space: nowrap;
281
+ border-width: 0;
282
+ }
283
+
284
+ /* Stack Utilities */
285
+ .vstack {
286
+ display: flex;
287
+ flex-direction: column;
288
+ gap: var(--pui-spacing-4);
289
+ }
290
+
291
+ .hstack {
292
+ display: flex;
293
+ flex-direction: row;
294
+ align-items: center;
295
+ gap: var(--pui-spacing-4);
296
+ }
297
+
298
+ .center {
299
+ display: flex;
300
+ align-items: center;
301
+ justify-content: center;
302
+ }
303
+
304
+ /* Container */
305
+ .container {
306
+ width: 100%;
307
+ margin-inline: auto;
308
+ padding-inline: var(--pui-spacing-4);
309
+ }
310
+
311
+ @media (min-width: 640px) {
312
+ .container { max-width: 640px; }
313
+ }
314
+ @media (min-width: 768px) {
315
+ .container { max-width: 768px; }
316
+ }
317
+ @media (min-width: 1024px) {
318
+ .container { max-width: 1024px; }
319
+ }
320
+ @media (min-width: 1280px) {
321
+ .container { max-width: 1280px; }
322
+ }
323
+
324
+ /* ============================================
325
+ * Padding
326
+ * ============================================ */
327
+ .p-0 { padding: var(--pui-spacing-0); }
328
+ .p-1 { padding: var(--pui-spacing-1); }
329
+ .p-2 { padding: var(--pui-spacing-2); }
330
+ .p-3 { padding: var(--pui-spacing-3); }
331
+ .p-4 { padding: var(--pui-spacing-4); }
332
+ .p-5 { padding: var(--pui-spacing-5); }
333
+ .p-6 { padding: var(--pui-spacing-6); }
334
+ .p-7 { padding: var(--pui-spacing-7); }
335
+ .p-8 { padding: var(--pui-spacing-8); }
336
+ .p-9 { padding: var(--pui-spacing-9); }
337
+ .p-10 { padding: var(--pui-spacing-10); }
338
+ .p-11 { padding: var(--pui-spacing-11); }
339
+ .p-12 { padding: var(--pui-spacing-12); }
340
+ .p-14 { padding: var(--pui-spacing-14); }
341
+ .p-16 { padding: var(--pui-spacing-16); }
342
+ .p-20 { padding: var(--pui-spacing-20); }
343
+ .p-24 { padding: var(--pui-spacing-24); }
344
+
345
+ .px-0 { padding-inline: var(--pui-spacing-0); }
346
+ .px-1 { padding-inline: var(--pui-spacing-1); }
347
+ .px-2 { padding-inline: var(--pui-spacing-2); }
348
+ .px-3 { padding-inline: var(--pui-spacing-3); }
349
+ .px-4 { padding-inline: var(--pui-spacing-4); }
350
+ .px-5 { padding-inline: var(--pui-spacing-5); }
351
+ .px-6 { padding-inline: var(--pui-spacing-6); }
352
+ .px-7 { padding-inline: var(--pui-spacing-7); }
353
+ .px-8 { padding-inline: var(--pui-spacing-8); }
354
+ .px-9 { padding-inline: var(--pui-spacing-9); }
355
+ .px-10 { padding-inline: var(--pui-spacing-10); }
356
+ .px-11 { padding-inline: var(--pui-spacing-11); }
357
+ .px-12 { padding-inline: var(--pui-spacing-12); }
358
+ .px-14 { padding-inline: var(--pui-spacing-14); }
359
+ .px-16 { padding-inline: var(--pui-spacing-16); }
360
+ .px-20 { padding-inline: var(--pui-spacing-20); }
361
+ .px-24 { padding-inline: var(--pui-spacing-24); }
362
+
363
+ .py-0 { padding-block: var(--pui-spacing-0); }
364
+ .py-1 { padding-block: var(--pui-spacing-1); }
365
+ .py-2 { padding-block: var(--pui-spacing-2); }
366
+ .py-3 { padding-block: var(--pui-spacing-3); }
367
+ .py-4 { padding-block: var(--pui-spacing-4); }
368
+ .py-5 { padding-block: var(--pui-spacing-5); }
369
+ .py-6 { padding-block: var(--pui-spacing-6); }
370
+ .py-7 { padding-block: var(--pui-spacing-7); }
371
+ .py-8 { padding-block: var(--pui-spacing-8); }
372
+ .py-9 { padding-block: var(--pui-spacing-9); }
373
+ .py-10 { padding-block: var(--pui-spacing-10); }
374
+ .py-11 { padding-block: var(--pui-spacing-11); }
375
+ .py-12 { padding-block: var(--pui-spacing-12); }
376
+ .py-14 { padding-block: var(--pui-spacing-14); }
377
+ .py-16 { padding-block: var(--pui-spacing-16); }
378
+ .py-20 { padding-block: var(--pui-spacing-20); }
379
+ .py-24 { padding-block: var(--pui-spacing-24); }
380
+
381
+ .pt-0 { padding-top: var(--pui-spacing-0); }
382
+ .pt-1 { padding-top: var(--pui-spacing-1); }
383
+ .pt-2 { padding-top: var(--pui-spacing-2); }
384
+ .pt-3 { padding-top: var(--pui-spacing-3); }
385
+ .pt-4 { padding-top: var(--pui-spacing-4); }
386
+ .pt-5 { padding-top: var(--pui-spacing-5); }
387
+ .pt-6 { padding-top: var(--pui-spacing-6); }
388
+ .pt-7 { padding-top: var(--pui-spacing-7); }
389
+ .pt-8 { padding-top: var(--pui-spacing-8); }
390
+
391
+ .pe-0 { padding-inline-end: var(--pui-spacing-0); }
392
+ .pe-1 { padding-inline-end: var(--pui-spacing-1); }
393
+ .pe-2 { padding-inline-end: var(--pui-spacing-2); }
394
+ .pe-3 { padding-inline-end: var(--pui-spacing-3); }
395
+ .pe-4 { padding-inline-end: var(--pui-spacing-4); }
396
+ .pe-5 { padding-inline-end: var(--pui-spacing-5); }
397
+ .pe-6 { padding-inline-end: var(--pui-spacing-6); }
398
+ .pe-7 { padding-inline-end: var(--pui-spacing-7); }
399
+ .pe-8 { padding-inline-end: var(--pui-spacing-8); }
400
+
401
+ .pb-0 { padding-bottom: var(--pui-spacing-0); }
402
+ .pb-1 { padding-bottom: var(--pui-spacing-1); }
403
+ .pb-2 { padding-bottom: var(--pui-spacing-2); }
404
+ .pb-3 { padding-bottom: var(--pui-spacing-3); }
405
+ .pb-4 { padding-bottom: var(--pui-spacing-4); }
406
+ .pb-5 { padding-bottom: var(--pui-spacing-5); }
407
+ .pb-6 { padding-bottom: var(--pui-spacing-6); }
408
+ .pb-7 { padding-bottom: var(--pui-spacing-7); }
409
+ .pb-8 { padding-bottom: var(--pui-spacing-8); }
410
+
411
+ .ps-0 { padding-inline-start: var(--pui-spacing-0); }
412
+ .ps-1 { padding-inline-start: var(--pui-spacing-1); }
413
+ .ps-2 { padding-inline-start: var(--pui-spacing-2); }
414
+ .ps-3 { padding-inline-start: var(--pui-spacing-3); }
415
+ .ps-4 { padding-inline-start: var(--pui-spacing-4); }
416
+ .ps-5 { padding-inline-start: var(--pui-spacing-5); }
417
+ .ps-6 { padding-inline-start: var(--pui-spacing-6); }
418
+ .ps-7 { padding-inline-start: var(--pui-spacing-7); }
419
+ .ps-8 { padding-inline-start: var(--pui-spacing-8); }
420
+
421
+ /* ============================================
422
+ * Margin
423
+ * ============================================ */
424
+ .m-0 { margin: var(--pui-spacing-0); }
425
+ .m-1 { margin: var(--pui-spacing-1); }
426
+ .m-2 { margin: var(--pui-spacing-2); }
427
+ .m-3 { margin: var(--pui-spacing-3); }
428
+ .m-4 { margin: var(--pui-spacing-4); }
429
+ .m-5 { margin: var(--pui-spacing-5); }
430
+ .m-6 { margin: var(--pui-spacing-6); }
431
+ .m-7 { margin: var(--pui-spacing-7); }
432
+ .m-8 { margin: var(--pui-spacing-8); }
433
+ .m-9 { margin: var(--pui-spacing-9); }
434
+ .m-10 { margin: var(--pui-spacing-10); }
435
+ .m-11 { margin: var(--pui-spacing-11); }
436
+ .m-12 { margin: var(--pui-spacing-12); }
437
+ .m-14 { margin: var(--pui-spacing-14); }
438
+ .m-16 { margin: var(--pui-spacing-16); }
439
+ .m-20 { margin: var(--pui-spacing-20); }
440
+ .m-24 { margin: var(--pui-spacing-24); }
441
+ .m-auto { margin: auto; }
442
+
443
+ .mx-0 { margin-inline: var(--pui-spacing-0); }
444
+ .mx-1 { margin-inline: var(--pui-spacing-1); }
445
+ .mx-2 { margin-inline: var(--pui-spacing-2); }
446
+ .mx-3 { margin-inline: var(--pui-spacing-3); }
447
+ .mx-4 { margin-inline: var(--pui-spacing-4); }
448
+ .mx-5 { margin-inline: var(--pui-spacing-5); }
449
+ .mx-6 { margin-inline: var(--pui-spacing-6); }
450
+ .mx-7 { margin-inline: var(--pui-spacing-7); }
451
+ .mx-8 { margin-inline: var(--pui-spacing-8); }
452
+ .mx-9 { margin-inline: var(--pui-spacing-9); }
453
+ .mx-10 { margin-inline: var(--pui-spacing-10); }
454
+ .mx-11 { margin-inline: var(--pui-spacing-11); }
455
+ .mx-12 { margin-inline: var(--pui-spacing-12); }
456
+ .mx-14 { margin-inline: var(--pui-spacing-14); }
457
+ .mx-16 { margin-inline: var(--pui-spacing-16); }
458
+ .mx-20 { margin-inline: var(--pui-spacing-20); }
459
+ .mx-24 { margin-inline: var(--pui-spacing-24); }
460
+ .mx-auto { margin-inline: auto; }
461
+
462
+ .my-0 { margin-block: var(--pui-spacing-0); }
463
+ .my-1 { margin-block: var(--pui-spacing-1); }
464
+ .my-2 { margin-block: var(--pui-spacing-2); }
465
+ .my-3 { margin-block: var(--pui-spacing-3); }
466
+ .my-4 { margin-block: var(--pui-spacing-4); }
467
+ .my-5 { margin-block: var(--pui-spacing-5); }
468
+ .my-6 { margin-block: var(--pui-spacing-6); }
469
+ .my-7 { margin-block: var(--pui-spacing-7); }
470
+ .my-8 { margin-block: var(--pui-spacing-8); }
471
+ .my-9 { margin-block: var(--pui-spacing-9); }
472
+ .my-10 { margin-block: var(--pui-spacing-10); }
473
+ .my-11 { margin-block: var(--pui-spacing-11); }
474
+ .my-12 { margin-block: var(--pui-spacing-12); }
475
+ .my-14 { margin-block: var(--pui-spacing-14); }
476
+ .my-16 { margin-block: var(--pui-spacing-16); }
477
+ .my-20 { margin-block: var(--pui-spacing-20); }
478
+ .my-24 { margin-block: var(--pui-spacing-24); }
479
+ .my-auto { margin-block: auto; }
480
+
481
+ .mt-0 { margin-top: var(--pui-spacing-0); }
482
+ .mt-1 { margin-top: var(--pui-spacing-1); }
483
+ .mt-2 { margin-top: var(--pui-spacing-2); }
484
+ .mt-3 { margin-top: var(--pui-spacing-3); }
485
+ .mt-4 { margin-top: var(--pui-spacing-4); }
486
+ .mt-5 { margin-top: var(--pui-spacing-5); }
487
+ .mt-6 { margin-top: var(--pui-spacing-6); }
488
+ .mt-7 { margin-top: var(--pui-spacing-7); }
489
+ .mt-8 { margin-top: var(--pui-spacing-8); }
490
+ .mt-auto { margin-top: auto; }
491
+
492
+ .me-0 { margin-inline-end: var(--pui-spacing-0); }
493
+ .me-1 { margin-inline-end: var(--pui-spacing-1); }
494
+ .me-2 { margin-inline-end: var(--pui-spacing-2); }
495
+ .me-3 { margin-inline-end: var(--pui-spacing-3); }
496
+ .me-4 { margin-inline-end: var(--pui-spacing-4); }
497
+ .me-5 { margin-inline-end: var(--pui-spacing-5); }
498
+ .me-6 { margin-inline-end: var(--pui-spacing-6); }
499
+ .me-7 { margin-inline-end: var(--pui-spacing-7); }
500
+ .me-8 { margin-inline-end: var(--pui-spacing-8); }
501
+ .me-auto { margin-inline-end: auto; }
502
+
503
+ .mb-0 { margin-bottom: var(--pui-spacing-0); }
504
+ .mb-1 { margin-bottom: var(--pui-spacing-1); }
505
+ .mb-2 { margin-bottom: var(--pui-spacing-2); }
506
+ .mb-3 { margin-bottom: var(--pui-spacing-3); }
507
+ .mb-4 { margin-bottom: var(--pui-spacing-4); }
508
+ .mb-5 { margin-bottom: var(--pui-spacing-5); }
509
+ .mb-6 { margin-bottom: var(--pui-spacing-6); }
510
+ .mb-7 { margin-bottom: var(--pui-spacing-7); }
511
+ .mb-8 { margin-bottom: var(--pui-spacing-8); }
512
+ .mb-auto { margin-bottom: auto; }
513
+
514
+ .ms-0 { margin-inline-start: var(--pui-spacing-0); }
515
+ .ms-1 { margin-inline-start: var(--pui-spacing-1); }
516
+ .ms-2 { margin-inline-start: var(--pui-spacing-2); }
517
+ .ms-3 { margin-inline-start: var(--pui-spacing-3); }
518
+ .ms-4 { margin-inline-start: var(--pui-spacing-4); }
519
+ .ms-5 { margin-inline-start: var(--pui-spacing-5); }
520
+ .ms-6 { margin-inline-start: var(--pui-spacing-6); }
521
+ .ms-7 { margin-inline-start: var(--pui-spacing-7); }
522
+ .ms-8 { margin-inline-start: var(--pui-spacing-8); }
523
+ .ms-auto { margin-inline-start: auto; }