@idds/styles 1.0.26

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 (81) hide show
  1. package/README.md +147 -0
  2. package/package.json +55 -0
  3. package/src/colors/brands/bgn.css +29 -0
  4. package/src/colors/brands/bkn.css +32 -0
  5. package/src/colors/brands/inagov.css +39 -0
  6. package/src/colors/brands/inaku.css +28 -0
  7. package/src/colors/brands/inapas.css +28 -0
  8. package/src/colors/brands/lan.css +38 -0
  9. package/src/colors/brands/pan-rb.css +30 -0
  10. package/src/colors/index.css +11 -0
  11. package/src/colors/primitives/index.css +150 -0
  12. package/src/colors/product/index.css +205 -0
  13. package/src/colors/utilities/index.css +77 -0
  14. package/src/components/accordion-card.css +99 -0
  15. package/src/components/accordion.css +120 -0
  16. package/src/components/action-dropdown.css +140 -0
  17. package/src/components/alert.css +180 -0
  18. package/src/components/avatar.css +182 -0
  19. package/src/components/badge.css +244 -0
  20. package/src/components/bottom-sheet.css +61 -0
  21. package/src/components/breadcrumb.css +94 -0
  22. package/src/components/button-group.css +130 -0
  23. package/src/components/button.css +233 -0
  24. package/src/components/card.css +488 -0
  25. package/src/components/carousel.css +100 -0
  26. package/src/components/chart.css +81 -0
  27. package/src/components/checkbox.css +211 -0
  28. package/src/components/chip.css +228 -0
  29. package/src/components/collapse.css +84 -0
  30. package/src/components/confirmation.css +131 -0
  31. package/src/components/date-picker.css +1063 -0
  32. package/src/components/divider.css +174 -0
  33. package/src/components/drawer.css +757 -0
  34. package/src/components/dropdown.css +369 -0
  35. package/src/components/field-input-table.css +347 -0
  36. package/src/components/file-upload.css +357 -0
  37. package/src/components/input-search.css +428 -0
  38. package/src/components/linear-progress-indicator.css +34 -0
  39. package/src/components/modal.css +497 -0
  40. package/src/components/month-picker.css +325 -0
  41. package/src/components/multiple-choice-grid.css +383 -0
  42. package/src/components/pagination.css +415 -0
  43. package/src/components/password-input.css +472 -0
  44. package/src/components/phone-input.css +412 -0
  45. package/src/components/progress-bar.css +447 -0
  46. package/src/components/radio-input.css +263 -0
  47. package/src/components/reset.css +431 -0
  48. package/src/components/select-dropdown.css +663 -0
  49. package/src/components/select-option.css +217 -0
  50. package/src/components/skeleton.css +488 -0
  51. package/src/components/spinner.css +450 -0
  52. package/src/components/stepper.css +209 -0
  53. package/src/components/tab-horizontal.css +278 -0
  54. package/src/components/tab-vertical.css +261 -0
  55. package/src/components/table-progress-bar.css +48 -0
  56. package/src/components/table.css +538 -0
  57. package/src/components/text-area.css +216 -0
  58. package/src/components/text-field.css +275 -0
  59. package/src/components/theme-toggle.css +259 -0
  60. package/src/components/time-picker.css +436 -0
  61. package/src/components/toast.css +245 -0
  62. package/src/components/toggle.css +223 -0
  63. package/src/components/tooltip.css +452 -0
  64. package/src/components/year-picker.css +423 -0
  65. package/src/index.css +3 -0
  66. package/src/tailwind/css/bgn.css +43 -0
  67. package/src/tailwind/css/bkn.css +37 -0
  68. package/src/tailwind/css/idds.css +231 -0
  69. package/src/tailwind/css/inagov.css +33 -0
  70. package/src/tailwind/css/inaku.css +33 -0
  71. package/src/tailwind/css/inapas.css +33 -0
  72. package/src/tailwind/css/lan.css +43 -0
  73. package/src/tailwind/css/pan-rb.css +35 -0
  74. package/src/tailwind/ts/bgn.ts +20 -0
  75. package/src/tailwind/ts/bkn.ts +38 -0
  76. package/src/tailwind/ts/idds.ts +240 -0
  77. package/src/tailwind/ts/inagov.ts +35 -0
  78. package/src/tailwind/ts/inaku.ts +35 -0
  79. package/src/tailwind/ts/inapas.ts +35 -0
  80. package/src/tailwind/ts/lan.ts +45 -0
  81. package/src/tailwind/ts/panrb.ts +37 -0
@@ -0,0 +1,415 @@
1
+ /**
2
+ * Pagination Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-pagination {
7
+ /* Base container styling */
8
+ width: 100%;
9
+ display: flex;
10
+ flex-direction: column;
11
+ align-items: flex-start;
12
+ justify-content: flex-end;
13
+ gap: var(--ina-spacing-2);
14
+ font-size: var(--ina-font-xs);
15
+ font-weight: var(--ina-font-normal);
16
+ }
17
+
18
+ @media (min-width: 1280px) {
19
+ .ina-pagination {
20
+ flex-direction: row-reverse;
21
+ align-items: center;
22
+ justify-content: flex-start;
23
+ gap: 0;
24
+ font-size: var(--ina-font-sm);
25
+ font-weight: var(--ina-font-medium);
26
+ }
27
+ }
28
+
29
+ /* Full width layout (untuk Table) */
30
+ .ina-pagination--full-width {
31
+ flex-direction: column;
32
+ align-items: stretch;
33
+ justify-content: flex-start;
34
+ gap: 12px; /* 12px gap antara nav container dan page size container */
35
+ }
36
+
37
+ @media (min-width: 1280px) {
38
+ .ina-pagination--full-width {
39
+ flex-direction: row;
40
+ align-items: center;
41
+ justify-content: space-between;
42
+ gap: 0;
43
+ }
44
+ }
45
+
46
+ /* Navigation container */
47
+ .ina-pagination__nav-container {
48
+ display: flex;
49
+ flex-direction: column;
50
+ align-items: stretch;
51
+ gap: var(--ina-spacing-2);
52
+ }
53
+
54
+ @media (min-width: 1280px) {
55
+ .ina-pagination__nav-container {
56
+ flex-direction: row;
57
+ align-items: center;
58
+ gap: var(--ina-spacing-4);
59
+ }
60
+ }
61
+
62
+ /* Page info text */
63
+ .ina-pagination__page-info {
64
+ color: var(--ina-content-primary);
65
+ white-space: nowrap;
66
+ font-size: inherit;
67
+ font-weight: inherit;
68
+ }
69
+
70
+ /* Navigation buttons container */
71
+ .ina-pagination__nav-buttons {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: var(--ina-spacing-1);
75
+ }
76
+
77
+ /* Individual navigation buttons */
78
+ .ina-pagination__nav-button {
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: center;
82
+ min-width: 24px;
83
+ min-height: 24px;
84
+ padding: 0 var(--ina-spacing-0-5);
85
+ border: 1px solid var(--ina-stroke-primary);
86
+ border-radius: var(--ina-radius-md);
87
+ cursor: pointer;
88
+ user-select: none;
89
+ background-color: var(--ina-background-primary);
90
+ transition: border-color var(--ina-transition-base),
91
+ background-color var(--ina-transition-base),
92
+ color var(--ina-transition-base);
93
+ }
94
+
95
+ @media (min-width: 1280px) {
96
+ .ina-pagination__nav-button {
97
+ min-width: 32px;
98
+ min-height: 32px;
99
+ border-radius: var(--ina-radius-lg);
100
+ }
101
+ }
102
+
103
+ /* Navigation button states */
104
+ .ina-pagination__nav-button--enabled {
105
+ color: var(--ina-content-primary);
106
+ }
107
+
108
+ .ina-pagination__nav-button--enabled:hover {
109
+ background-color: var(--ina-background-secondary);
110
+ }
111
+
112
+ .ina-pagination__nav-button--enabled:focus {
113
+ outline: 1px solid var(--ina-content-primary);
114
+ outline-offset: 2px;
115
+ }
116
+
117
+ .ina-pagination__nav-button--enabled:active {
118
+ background-color: var(--ina-neutral-50);
119
+ }
120
+
121
+ .ina-pagination__nav-button--disabled {
122
+ color: var(--ina-neutral-400);
123
+ cursor: not-allowed;
124
+ opacity: 0.5;
125
+ }
126
+
127
+ .ina-pagination__nav-button--disabled:hover {
128
+ background-color: transparent;
129
+ }
130
+
131
+ /* Page number buttons */
132
+ .ina-pagination__page-button {
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ min-width: 24px;
137
+ min-height: 24px;
138
+ padding: 0 var(--ina-spacing-0-5);
139
+ border: 1px solid transparent;
140
+ border-radius: var(--ina-radius-md);
141
+ cursor: pointer;
142
+ user-select: none;
143
+ color: var(--ina-content-primary);
144
+ font-size: inherit;
145
+ font-weight: inherit;
146
+ background-color: var(--ina-background-primary);
147
+ transition: border-color var(--ina-transition-base),
148
+ background-color var(--ina-transition-base),
149
+ color var(--ina-transition-base);
150
+ }
151
+
152
+ @media (min-width: 1280px) {
153
+ .ina-pagination__page-button {
154
+ min-width: 32px;
155
+ min-height: 32px;
156
+ border-radius: var(--ina-radius-lg);
157
+ }
158
+ }
159
+
160
+ /* Active page button */
161
+ .ina-pagination__page-button--active {
162
+ border-color: var(--ina-stroke-tertiary);
163
+ background-color: var(--ina-background-primary);
164
+ }
165
+
166
+ /* Enabled page button */
167
+ .ina-pagination__page-button--enabled {
168
+ border-color: transparent;
169
+ }
170
+
171
+ .ina-pagination__page-button--enabled:hover {
172
+ border-color: var(--ina-stroke-primary);
173
+ background-color: var(--ina-background-tertiary);
174
+ }
175
+
176
+ .ina-pagination__page-button--enabled:focus {
177
+ outline: 2px solid var(--ina-primary-500);
178
+ outline-offset: 2px;
179
+ }
180
+
181
+ .ina-pagination__page-button--enabled:active {
182
+ background-color: var(--ina-neutral-200);
183
+ }
184
+
185
+ /* Disabled page buttons */
186
+ .ina-pagination__page-button--disabled {
187
+ cursor: not-allowed;
188
+ opacity: 0.5;
189
+ }
190
+
191
+ .ina-pagination__page-button--disabled:hover {
192
+ border-color: transparent;
193
+ background-color: transparent;
194
+ }
195
+
196
+ /* Page size controls */
197
+ .ina-pagination__page-size-container {
198
+ display: flex;
199
+ align-items: center;
200
+ gap: var(--ina-spacing-4);
201
+ margin-top: var(--ina-spacing-2);
202
+ }
203
+
204
+ @media (min-width: 1280px) {
205
+ .ina-pagination__page-size-container {
206
+ margin-top: 0;
207
+ margin-right: var(--ina-spacing-12);
208
+ }
209
+ }
210
+
211
+ /* Full width: page size di kiri, nav di kanan */
212
+ .ina-pagination--full-width .ina-pagination__page-size-container {
213
+ margin-top: 0; /* Gap 12px sudah diatur di parent */
214
+ margin-right: 0;
215
+ order: 2; /* Di bawah nav container pada mobile */
216
+ }
217
+
218
+ @media (min-width: 1280px) {
219
+ .ina-pagination--full-width .ina-pagination__page-size-container {
220
+ order: 1; /* Di kiri pada desktop */
221
+ margin-right: 0;
222
+ }
223
+ }
224
+
225
+ /* Full width: nav container di kanan */
226
+ .ina-pagination--full-width .ina-pagination__nav-container {
227
+ order: 1; /* Di atas page size container pada mobile */
228
+ }
229
+
230
+ @media (min-width: 1280px) {
231
+ .ina-pagination--full-width .ina-pagination__nav-container {
232
+ order: 2; /* Di kanan pada desktop */
233
+ }
234
+ }
235
+
236
+ /* Page size label */
237
+ .ina-pagination__page-size-label {
238
+ color: var(--ina-content-primary);
239
+ white-space: nowrap;
240
+ font-size: inherit;
241
+ font-weight: inherit;
242
+ }
243
+
244
+ /* Page size select */
245
+ .ina-pagination__page-size-select {
246
+ border: 1px solid var(--ina-stroke-primary);
247
+ border-radius: var(--ina-radius-md);
248
+ padding: var(--ina-spacing-1) var(--ina-spacing-3);
249
+ padding-left: var(--ina-spacing-2);
250
+ background-color: var(--ina-background-primary);
251
+ color: var(--ina-content-primary);
252
+ font-size: inherit;
253
+ font-weight: inherit;
254
+ cursor: pointer;
255
+ outline: none;
256
+ transition: border-color var(--ina-transition-base),
257
+ box-shadow var(--ina-transition-base), opacity var(--ina-transition-base);
258
+ }
259
+
260
+ .ina-pagination__page-size-select:hover {
261
+ border-color: var(--ina-primary-400);
262
+ }
263
+
264
+ .ina-pagination__page-size-select:focus {
265
+ border-color: var(--ina-primary-500);
266
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
267
+ }
268
+
269
+ .ina-pagination__page-size-select--disabled {
270
+ opacity: 0.5;
271
+ cursor: not-allowed;
272
+ }
273
+
274
+ .ina-pagination__page-size-select--disabled:hover {
275
+ border-color: var(--ina-stroke-primary);
276
+ box-shadow: none;
277
+ }
278
+
279
+ /* Icon styling for navigation buttons */
280
+ .ina-pagination__nav-icon {
281
+ width: 16px;
282
+ height: 16px;
283
+ flex-shrink: 0;
284
+ }
285
+
286
+ /* Loading state */
287
+ .ina-pagination--loading .ina-pagination__nav-button,
288
+ .ina-pagination--loading .ina-pagination__page-button {
289
+ opacity: 0.6;
290
+ cursor: not-allowed;
291
+ }
292
+
293
+ .ina-pagination--loading .ina-pagination__nav-button:hover,
294
+ .ina-pagination--loading .ina-pagination__page-button:hover {
295
+ background-color: transparent;
296
+ }
297
+
298
+ /* Compact variant */
299
+ .ina-pagination--compact .ina-pagination__nav-button,
300
+ .ina-pagination--compact .ina-pagination__page-button {
301
+ min-width: 20px;
302
+ min-height: 20px;
303
+ padding: 0 var(--ina-spacing-1);
304
+ }
305
+
306
+ .ina-pagination--compact .ina-pagination__nav-icon {
307
+ width: 14px;
308
+ height: 14px;
309
+ }
310
+
311
+ /* Spacious variant */
312
+ .ina-pagination--spacious .ina-pagination__nav-button,
313
+ .ina-pagination--spacious .ina-pagination__page-button {
314
+ min-width: 40px;
315
+ min-height: 40px;
316
+ padding: 0 var(--ina-spacing-2);
317
+ }
318
+
319
+ .ina-pagination--spacious .ina-pagination__nav-icon {
320
+ width: 18px;
321
+ height: 18px;
322
+ }
323
+
324
+ /* Responsive adjustments */
325
+ @media (max-width: 480px) {
326
+ .ina-pagination__nav-button,
327
+ .ina-pagination__page-button {
328
+ min-width: 28px;
329
+ min-height: 28px;
330
+ }
331
+
332
+ .ina-pagination__nav-icon {
333
+ width: 14px;
334
+ height: 14px;
335
+ }
336
+ }
337
+
338
+ /* Accessibility improvements */
339
+ .ina-pagination__nav-button:focus,
340
+ .ina-pagination__page-button:focus,
341
+ .ina-pagination__page-size-select:focus {
342
+ /* Enhanced focus state */
343
+ }
344
+
345
+ /* High contrast mode */
346
+ @media (prefers-contrast: high) {
347
+ .ina-pagination__nav-button,
348
+ .ina-pagination__page-button {
349
+ border-width: 2px;
350
+ }
351
+
352
+ .ina-pagination__nav-button--disabled,
353
+ .ina-pagination__page-button--disabled {
354
+ opacity: 0.3;
355
+ }
356
+
357
+ .ina-pagination__page-button--active {
358
+ border-width: 2px;
359
+ font-weight: var(--ina-font-bold);
360
+ }
361
+ }
362
+
363
+ /* Dark mode support */
364
+ /* @media (prefers-color-scheme: dark) {
365
+ .ina-pagination__page-info {
366
+ color: var(--ina-content-dark-primary);
367
+ }
368
+
369
+ .ina-pagination__nav-button--enabled {
370
+ color: var(--ina-content-dark-primary);
371
+ }
372
+
373
+ .ina-pagination__nav-button--disabled {
374
+ color: var(--ina-content-dark-disabled);
375
+ }
376
+
377
+ .ina-pagination__page-button {
378
+ color: var(--ina-content-dark-primary);
379
+ }
380
+
381
+ .ina-pagination__page-button--active {
382
+ border-color: var(--ina-content-dark-primary);
383
+ }
384
+
385
+ .ina-pagination__page-size-label {
386
+ color: var(--ina-content-dark-primary);
387
+ }
388
+
389
+ .ina-pagination__page-size-select {
390
+ background-color: var(--ina-background-dark-primary);
391
+ border-color: var(--ina-stroke-primary-dark);
392
+ color: var(--ina-content-dark-primary);
393
+ }
394
+
395
+ .ina-pagination__nav-button--enabled:hover,
396
+ .ina-pagination__page-button--enabled:hover {
397
+ background-color: var(--ina-neutral-800);
398
+ }
399
+ } */
400
+
401
+ /* Print styles */
402
+ @media print {
403
+ .ina-pagination {
404
+ display: none;
405
+ }
406
+ }
407
+
408
+ /* Reduced motion */
409
+ @media (prefers-reduced-motion: reduce) {
410
+ .ina-pagination__nav-button,
411
+ .ina-pagination__page-button,
412
+ .ina-pagination__page-size-select {
413
+ transition: none;
414
+ }
415
+ }