@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,497 @@
1
+ /**
2
+ * Modal Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-modal {
7
+ /* Base modal container - fixed overlay */
8
+ position: fixed;
9
+ inset: 0;
10
+ z-index: 1000;
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ }
15
+
16
+ /* Modal enter/exit states for React */
17
+ .ina-modal--enter {
18
+ opacity: 0;
19
+ }
20
+
21
+ .ina-modal--enter-active {
22
+ opacity: 1;
23
+ transition: opacity 0.3s ease;
24
+ }
25
+
26
+ .ina-modal--enter-active .ina-modal__dialog {
27
+ opacity: 1;
28
+ transform: scale(1) translateY(0);
29
+ transition: opacity 0.3s ease, transform 0.3s ease;
30
+ }
31
+
32
+ .ina-modal--exit {
33
+ opacity: 1;
34
+ }
35
+
36
+ .ina-modal--exit-active {
37
+ opacity: 0;
38
+ transition: opacity 0.3s ease;
39
+ }
40
+
41
+ .ina-modal--exit-active .ina-modal__dialog {
42
+ opacity: 0;
43
+ transform: scale(0.9) translateY(-20px);
44
+ transition: opacity 0.3s ease, transform 0.3s ease;
45
+ }
46
+
47
+ .ina-modal--enter .ina-modal__dialog {
48
+ opacity: 0;
49
+ transform: scale(0.9) translateY(-20px);
50
+ }
51
+
52
+ /* Backdrop */
53
+ .ina-modal__backdrop {
54
+ position: absolute;
55
+ inset: 0;
56
+ background-color: rgba(0, 0, 0, 0.6);
57
+ backdrop-filter: blur(2px);
58
+ transition: opacity 0.3s ease;
59
+ }
60
+
61
+ /* Backdrop variants */
62
+ .ina-modal__backdrop--light {
63
+ background-color: rgba(0, 0, 0, 0.3);
64
+ }
65
+
66
+ .ina-modal__backdrop--dark {
67
+ background-color: rgba(0, 0, 0, 0.8);
68
+ }
69
+
70
+ .ina-modal__backdrop--transparent {
71
+ background-color: transparent;
72
+ }
73
+
74
+ /* Container wrapper */
75
+ .ina-modal__container {
76
+ position: relative;
77
+ z-index: 1;
78
+ }
79
+
80
+ /* Dialog container */
81
+ .ina-modal__dialog {
82
+ position: relative;
83
+ background-color: var(--ina-background-primary);
84
+ border-radius: 12px;
85
+ box-shadow: var(--ina-shadow-xl);
86
+ border: 1px solid var(--ina-stroke-primary);
87
+ max-height: calc(100vh - var(--ina-spacing-8));
88
+ overflow: hidden;
89
+ margin: var(--ina-spacing-4);
90
+ width: 60vw;
91
+ display: flex;
92
+ flex-direction: column;
93
+ transition: opacity 0.3s ease, transform 0.3s ease;
94
+ }
95
+
96
+ /* Dialog size variants */
97
+ .ina-modal__dialog--size-sm {
98
+ max-width: 400px;
99
+ }
100
+
101
+ .ina-modal__dialog--size-md {
102
+ max-width: 600px;
103
+ }
104
+
105
+ .ina-modal__dialog--size-lg {
106
+ max-width: 800px;
107
+ }
108
+
109
+ .ina-modal__dialog--size-xl {
110
+ max-width: 1000px;
111
+ }
112
+
113
+ .ina-modal__dialog--size-full {
114
+ max-width: calc(100vw - var(--ina-spacing-8));
115
+ margin: 0;
116
+ height: calc(100vh - var(--ina-spacing-8));
117
+ }
118
+
119
+ /* Dialog variants */
120
+ .ina-modal__dialog--variant-basic {
121
+ box-shadow: var(--ina-shadow-lg);
122
+ }
123
+
124
+ .ina-modal__dialog--variant-elevated {
125
+ box-shadow: var(--ina-shadow-xxl);
126
+ }
127
+
128
+ .ina-modal__dialog--variant-outline {
129
+ box-shadow: none;
130
+ border-width: 2px;
131
+ }
132
+
133
+ .ina-modal__dialog--variant-glass {
134
+ background-color: rgba(255, 255, 255, 0.95);
135
+ backdrop-filter: blur(8px);
136
+ border: 1px solid rgba(255, 255, 255, 0.2);
137
+ }
138
+
139
+ /* Header section */
140
+ .ina-modal__header {
141
+ display: flex;
142
+ align-items: center;
143
+ justify-content: space-between;
144
+ border-bottom: 1px solid var(--ina-stroke-primary);
145
+ padding: 16px 24px;
146
+ flex-shrink: 0;
147
+ }
148
+
149
+ .ina-modal__header--no-border {
150
+ border-bottom: none;
151
+ }
152
+
153
+ /* Title */
154
+ .ina-modal__title {
155
+ font-size: var(--ina-font-lg);
156
+ font-weight: var(--ina-font-semibold);
157
+ color: var(--ina-content-primary);
158
+ margin: 0;
159
+ line-height: 1.3;
160
+ }
161
+
162
+ .ina-modal__title--sm {
163
+ font-size: var(--ina-font-base);
164
+ }
165
+
166
+ .ina-modal__title--lg {
167
+ font-size: var(--ina-font-xl);
168
+ }
169
+
170
+ /* Close button */
171
+ .ina-modal__close-button {
172
+ display: inline-flex;
173
+ align-items: center;
174
+ justify-content: center;
175
+ padding: 0;
176
+ border: none;
177
+ background: transparent;
178
+ cursor: pointer;
179
+ outline: none;
180
+ color: var(--ina-content-secondary);
181
+ }
182
+
183
+ .ina-modal__close-button:hover {
184
+ color: var(--ina-content-primary);
185
+ }
186
+
187
+ .ina-modal__close-button:focus {
188
+ outline: 2px solid var(--ina-primary-500);
189
+ outline-offset: 2px;
190
+ }
191
+
192
+ .ina-modal__close-icon {
193
+ width: 24px;
194
+ height: 24px;
195
+ flex-shrink: 0;
196
+ }
197
+
198
+ /* Body/content section */
199
+ .ina-modal__body {
200
+ padding: 16px 24px;
201
+ flex: 1;
202
+ overflow: auto;
203
+ scrollbar-width: thin;
204
+ scrollbar-color: var(--ina-neutral-400) var(--ina-neutral-100);
205
+ }
206
+
207
+ .ina-modal__body--with-header {
208
+ /* When header is present, maintain consistent spacing */
209
+ }
210
+
211
+ .ina-modal__body--no-padding {
212
+ padding: 0;
213
+ }
214
+
215
+ /* Scrollable content */
216
+ .ina-modal__body--scrollable {
217
+ overflow-y: auto;
218
+ max-height: 400px;
219
+ }
220
+
221
+ .ina-modal__body--scrollable::-webkit-scrollbar {
222
+ width: 6px;
223
+ }
224
+
225
+ .ina-modal__body--scrollable::-webkit-scrollbar-track {
226
+ background: var(--ina-neutral-100);
227
+ }
228
+
229
+ .ina-modal__body--scrollable::-webkit-scrollbar-thumb {
230
+ background-color: var(--ina-neutral-400);
231
+ border-radius: 3px;
232
+ }
233
+
234
+ .ina-modal__body--scrollable::-webkit-scrollbar-thumb:hover {
235
+ background-color: var(--ina-neutral-500);
236
+ }
237
+
238
+ /* Footer section */
239
+ .ina-modal__footer {
240
+ display: flex;
241
+ align-items: flex-start;
242
+ justify-content: flex-end;
243
+ gap: 16px;
244
+ padding: 16px 24px 24px 24px;
245
+ border-top: 1px solid var(--ina-stroke-primary);
246
+ flex-shrink: 0;
247
+ }
248
+
249
+ .ina-modal__footer--no-border {
250
+ border-top: none;
251
+ }
252
+
253
+ .ina-modal__footer--center {
254
+ justify-content: center;
255
+ }
256
+
257
+ .ina-modal__footer--space-between {
258
+ justify-content: space-between;
259
+ }
260
+
261
+ /* Animation variants */
262
+ .ina-modal--animation-fade {
263
+ opacity: 0;
264
+ transition: opacity var(--ina-transition-duration-200) ease-out;
265
+ }
266
+
267
+ .ina-modal--animation-fade.ina-modal--open {
268
+ opacity: 1;
269
+ }
270
+
271
+ .ina-modal--animation-scale {
272
+ opacity: 0;
273
+ transform: scale(0.95);
274
+ transition: opacity var(--ina-transition-duration-200) ease-out,
275
+ transform var(--ina-transition-base);
276
+ }
277
+
278
+ .ina-modal--animation-scale.ina-modal--open {
279
+ opacity: 1;
280
+ transform: scale(1);
281
+ }
282
+
283
+ .ina-modal--animation-slide-up {
284
+ opacity: 0;
285
+ transform: translateY(20px);
286
+ transition: opacity var(--ina-transition-duration-200) ease-out,
287
+ transform var(--ina-transition-duration-200) ease-out;
288
+ }
289
+
290
+ .ina-modal--animation-slide-up.ina-modal--open {
291
+ opacity: 1;
292
+ transform: translateY(0);
293
+ }
294
+
295
+ .ina-modal--animation-slide-down {
296
+ opacity: 0;
297
+ transform: translateY(-20px);
298
+ transition: opacity var(--ina-transition-duration-200) ease-out,
299
+ transform var(--ina-transition-duration-200) ease-out;
300
+ }
301
+
302
+ .ina-modal--animation-slide-down.ina-modal--open {
303
+ opacity: 1;
304
+ transform: translateY(0);
305
+ }
306
+
307
+ /* Position variants */
308
+ .ina-modal--position-center {
309
+ /* Default: centered */
310
+ }
311
+
312
+ .ina-modal--position-top {
313
+ align-items: flex-start;
314
+ padding-top: var(--ina-spacing-8);
315
+ }
316
+
317
+ .ina-modal--position-bottom {
318
+ align-items: flex-end;
319
+ padding-bottom: var(--ina-spacing-8);
320
+ }
321
+
322
+ .ina-modal--position-left {
323
+ align-items: center;
324
+ justify-content: flex-start;
325
+ padding-left: var(--ina-spacing-8);
326
+ }
327
+
328
+ .ina-modal--position-right {
329
+ align-items: center;
330
+ justify-content: flex-end;
331
+ padding-right: var(--ina-spacing-8);
332
+ }
333
+
334
+ /* Loading overlay */
335
+ .ina-modal__loading-overlay {
336
+ position: absolute;
337
+ inset: 0;
338
+ display: flex;
339
+ align-items: center;
340
+ justify-content: center;
341
+ background-color: rgba(255, 255, 255, 0.8);
342
+ backdrop-filter: blur(2px);
343
+ z-index: 10;
344
+ }
345
+
346
+ .ina-modal__spinner {
347
+ width: 32px;
348
+ height: 32px;
349
+ border: 3px solid var(--ina-neutral-300);
350
+ border-top-color: var(--ina-primary-500);
351
+ border-radius: 50%;
352
+ animation: spin 1s linear infinite;
353
+ }
354
+
355
+ @keyframes spin {
356
+ to {
357
+ transform: rotate(360deg);
358
+ }
359
+ }
360
+
361
+ /* Confirmation variants */
362
+ .ina-modal--confirmation .ina-modal__dialog {
363
+ max-width: 400px;
364
+ }
365
+
366
+ .ina-modal__confirmation-icon {
367
+ width: 48px;
368
+ height: 48px;
369
+ margin: 0 auto var(--ina-spacing-4);
370
+ }
371
+
372
+ .ina-modal__confirmation-title {
373
+ text-align: center;
374
+ margin-bottom: var(--ina-spacing-2);
375
+ }
376
+
377
+ .ina-modal__confirmation-message {
378
+ text-align: center;
379
+ color: var(--ina-content-secondary);
380
+ margin-bottom: var(--ina-spacing-6);
381
+ }
382
+
383
+ /* Responsive adjustments */
384
+ @media (max-width: 640px) {
385
+ .ina-modal__dialog {
386
+ margin: var(--ina-spacing-2);
387
+ max-height: calc(100vh - var(--ina-spacing-4));
388
+ width: 80vw;
389
+ }
390
+
391
+ .ina-modal__dialog--size-full {
392
+ margin: var(--ina-spacing-2);
393
+ height: calc(100vh - var(--ina-spacing-4));
394
+ }
395
+
396
+ .ina-modal__header {
397
+ padding: var(--ina-spacing-2) var(--ina-spacing-3);
398
+ }
399
+
400
+ .ina-modal__body {
401
+ padding: var(--ina-spacing-4);
402
+ }
403
+
404
+ .ina-modal__footer {
405
+ padding: var(--ina-spacing-3);
406
+ }
407
+
408
+ .ina-modal__footer--stacked {
409
+ flex-direction: column-reverse;
410
+ gap: var(--ina-spacing-2);
411
+ }
412
+ }
413
+
414
+ @media (max-width: 480px) {
415
+ .ina-modal__dialog {
416
+ margin: var(--ina-spacing-1);
417
+ max-height: calc(100vh - var(--ina-spacing-2));
418
+ max-width: 90vw;
419
+ }
420
+
421
+ .ina-modal__title {
422
+ font-size: var(--ina-font-base);
423
+ }
424
+
425
+ .ina-modal__body {
426
+ padding: var(--ina-spacing-3);
427
+ }
428
+ }
429
+
430
+ /* Dark mode support */
431
+ /* @media (prefers-color-scheme: dark) {
432
+ .ina-modal__dialog {
433
+ background-color: var(--ina-background-dark-primary);
434
+ border-color: var(--ina-stroke-primary-dark);
435
+ }
436
+
437
+ .ina-modal__dialog--variant-glass {
438
+ background-color: rgba(0, 0, 0, 0.95);
439
+ border-color: rgba(255, 255, 255, 0.1);
440
+ }
441
+
442
+ .ina-modal__header {
443
+ border-bottom-color: var(--ina-stroke-primary-dark);
444
+ }
445
+
446
+ .ina-modal__title {
447
+ color: var(--ina-content-dark-primary);
448
+ }
449
+
450
+ .ina-modal__close-button {
451
+ color: var(--ina-content-dark-secondary);
452
+ }
453
+
454
+ .ina-modal__close-button:hover {
455
+ background-color: rgba(255, 255, 255, 0.05);
456
+ color: var(--ina-content-dark-primary);
457
+ }
458
+
459
+ .ina-modal__footer {
460
+ border-top-color: var(--ina-stroke-primary-dark);
461
+ }
462
+
463
+ .ina-modal__loading-overlay {
464
+ background-color: rgba(0, 0, 0, 0.8);
465
+ }
466
+
467
+ .ina-modal__spinner {
468
+ border-color: var(--ina-neutral-600);
469
+ border-top-color: var(--ina-primary-400);
470
+ }
471
+ } */
472
+
473
+ /* Accessibility improvements */
474
+ .ina-modal[aria-hidden='true'] {
475
+ visibility: hidden;
476
+ }
477
+
478
+ .ina-modal:focus-within .ina-modal__close-button {
479
+ outline: 2px solid var(--ina-primary-500);
480
+ outline-offset: 2px;
481
+ }
482
+
483
+ /* High contrast mode */
484
+ @media (prefers-contrast: high) {
485
+ .ina-modal__backdrop {
486
+ background-color: rgba(0, 0, 0, 0.9);
487
+ }
488
+
489
+ .ina-modal__dialog {
490
+ border-width: 2px;
491
+ border-color: var(--ina-content-primary);
492
+ }
493
+
494
+ .ina-modal__close-button {
495
+ border: 1px solid currentColor;
496
+ }
497
+ }