@idds/styles 1.2.10 → 1.2.12

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 (95) hide show
  1. package/dist/base.css +1071 -0
  2. package/dist/base.min.css +1 -0
  3. package/dist/index.css +14801 -0
  4. package/dist/index.min.css +15 -0
  5. package/dist/tailwind/css/bgn.min.css +1 -0
  6. package/dist/tailwind/css/bkn.min.css +1 -0
  7. package/dist/tailwind/css/idds.min.css +1 -0
  8. package/dist/tailwind/css/inagov.min.css +1 -0
  9. package/dist/tailwind/css/inaku.min.css +1 -0
  10. package/dist/tailwind/css/inapas.min.css +1 -0
  11. package/dist/tailwind/css/lan.min.css +1 -0
  12. package/dist/tailwind/css/pan-rb.min.css +1 -0
  13. package/package.json +31 -21
  14. package/src/colors/brands/bgn.css +0 -30
  15. package/src/colors/brands/bkn.css +0 -33
  16. package/src/colors/brands/inagov.css +0 -40
  17. package/src/colors/brands/inaku.css +0 -29
  18. package/src/colors/brands/inapas.css +0 -29
  19. package/src/colors/brands/lan.css +0 -39
  20. package/src/colors/brands/pan-rb.css +0 -31
  21. package/src/colors/index.css +0 -11
  22. package/src/colors/primitives/index.css +0 -175
  23. package/src/colors/product/index.css +0 -205
  24. package/src/colors/utilities/index.css +0 -77
  25. package/src/components/accordion-card.css +0 -99
  26. package/src/components/accordion.css +0 -120
  27. package/src/components/action-dropdown.css +0 -140
  28. package/src/components/alert.css +0 -180
  29. package/src/components/avatar.css +0 -182
  30. package/src/components/badge.css +0 -247
  31. package/src/components/bottom-sheet.css +0 -61
  32. package/src/components/breadcrumb.css +0 -97
  33. package/src/components/button-group.css +0 -130
  34. package/src/components/button.css +0 -241
  35. package/src/components/card.css +0 -576
  36. package/src/components/carousel.css +0 -100
  37. package/src/components/chart.css +0 -81
  38. package/src/components/checkbox.css +0 -211
  39. package/src/components/chip.css +0 -245
  40. package/src/components/collapse.css +0 -84
  41. package/src/components/confirmation.css +0 -131
  42. package/src/components/date-picker.css +0 -1059
  43. package/src/components/divider.css +0 -174
  44. package/src/components/drawer.css +0 -752
  45. package/src/components/dropdown.css +0 -370
  46. package/src/components/field-input-table.css +0 -347
  47. package/src/components/file-upload.css +0 -333
  48. package/src/components/input-search.css +0 -428
  49. package/src/components/linear-progress-indicator.css +0 -34
  50. package/src/components/modal.css +0 -506
  51. package/src/components/month-picker.css +0 -326
  52. package/src/components/multiple-choice-grid.css +0 -383
  53. package/src/components/one-time-password.css +0 -119
  54. package/src/components/pagination.css +0 -429
  55. package/src/components/password-input.css +0 -477
  56. package/src/components/phone-input.css +0 -412
  57. package/src/components/progress-bar.css +0 -447
  58. package/src/components/radio-input.css +0 -277
  59. package/src/components/reset.css +0 -431
  60. package/src/components/select-dropdown.css +0 -663
  61. package/src/components/select-option.css +0 -217
  62. package/src/components/single-file-upload.css +0 -186
  63. package/src/components/skeleton.css +0 -488
  64. package/src/components/spinner.css +0 -450
  65. package/src/components/stepper.css +0 -260
  66. package/src/components/tab-horizontal.css +0 -278
  67. package/src/components/tab-vertical.css +0 -261
  68. package/src/components/table-progress-bar.css +0 -48
  69. package/src/components/table.css +0 -538
  70. package/src/components/text-area.css +0 -220
  71. package/src/components/text-field.css +0 -278
  72. package/src/components/theme-toggle.css +0 -259
  73. package/src/components/time-picker.css +0 -436
  74. package/src/components/toast.css +0 -265
  75. package/src/components/toggle.css +0 -195
  76. package/src/components/tooltip.css +0 -343
  77. package/src/components/year-picker.css +0 -424
  78. package/src/index.css +0 -3
  79. /package/{src → dist}/tailwind/css/bgn.css +0 -0
  80. /package/{src → dist}/tailwind/css/bkn.css +0 -0
  81. /package/{src → dist}/tailwind/css/idds.css +0 -0
  82. /package/{src → dist}/tailwind/css/inagov.css +0 -0
  83. /package/{src → dist}/tailwind/css/inaku.css +0 -0
  84. /package/{src → dist}/tailwind/css/inapas.css +0 -0
  85. /package/{src → dist}/tailwind/css/lan.css +0 -0
  86. /package/{src → dist}/tailwind/css/pan-rb.css +0 -0
  87. /package/{src → dist}/tailwind/ts/bgn.ts +0 -0
  88. /package/{src → dist}/tailwind/ts/bkn.ts +0 -0
  89. /package/{src → dist}/tailwind/ts/default.ts +0 -0
  90. /package/{src → dist}/tailwind/ts/idds.ts +0 -0
  91. /package/{src → dist}/tailwind/ts/inagov.ts +0 -0
  92. /package/{src → dist}/tailwind/ts/inaku.ts +0 -0
  93. /package/{src → dist}/tailwind/ts/inapas.ts +0 -0
  94. /package/{src → dist}/tailwind/ts/lan.ts +0 -0
  95. /package/{src → dist}/tailwind/ts/pan-rb.ts +0 -0
@@ -1,447 +0,0 @@
1
- /**
2
- * ProgressBar Component Styles
3
- * Menggunakan BEM naming convention dengan prefix "ina-"
4
- */
5
-
6
- .ina-progress-bar {
7
- /* Base container styling */
8
- position: relative;
9
- width: 100%;
10
- background-color: var(--ina-neutral-200);
11
- border-radius: var(--ina-radius-full);
12
- overflow: hidden;
13
- transition: opacity var(--ina-transition-base);
14
- }
15
-
16
- .ina-progress-bar--hidden {
17
- opacity: 0;
18
- visibility: hidden;
19
- }
20
-
21
- /* Height variants */
22
- .ina-progress-bar--height-sm {
23
- height: 2px;
24
- }
25
-
26
- .ina-progress-bar--height-md {
27
- height: 4px;
28
- }
29
-
30
- .ina-progress-bar--height-lg {
31
- height: 6px;
32
- }
33
-
34
- /* Progress fill */
35
- .ina-progress-bar__fill {
36
- position: absolute;
37
- top: 0;
38
- left: 0;
39
- height: 100%;
40
- width: 0%;
41
- border-radius: inherit;
42
- transition: width var(--ina-transition-duration-1000) ease-out;
43
- background-color: var(--ina-primary-500);
44
- }
45
-
46
- /* Variant colors */
47
- .ina-progress-bar__fill--primary {
48
- background-color: var(--ina-primary-500);
49
- }
50
-
51
- .ina-progress-bar__fill--secondary {
52
- background-color: var(--ina-neutral-500);
53
- }
54
-
55
- .ina-progress-bar__fill--success {
56
- background-color: var(--ina-positive-500);
57
- }
58
-
59
- .ina-progress-bar__fill--warning {
60
- background-color: var(--ina-warning-500);
61
- }
62
-
63
- .ina-progress-bar__fill--error {
64
- background-color: var(--ina-negative-500);
65
- }
66
-
67
- /* Shimmer effect */
68
- .ina-progress-bar__shimmer {
69
- position: absolute;
70
- top: 0;
71
- left: 0;
72
- height: 100%;
73
- width: 100%;
74
- background: linear-gradient(
75
- 90deg,
76
- transparent,
77
- rgba(255, 255, 255, 0.3),
78
- transparent
79
- );
80
- animation: shimmer 2s infinite linear;
81
- opacity: 0;
82
- transition: opacity var(--ina-transition-base);
83
- }
84
-
85
- .ina-progress-bar--shimmer .ina-progress-bar__shimmer {
86
- opacity: 1;
87
- }
88
-
89
- @keyframes shimmer {
90
- 0% {
91
- transform: translateX(-100%);
92
- }
93
- 100% {
94
- transform: translateX(100%);
95
- }
96
- }
97
-
98
- /* Animated indicator */
99
- .ina-progress-bar__indicator {
100
- position: absolute;
101
- top: 0;
102
- height: 100%;
103
- width: 32px;
104
- border-radius: inherit;
105
- opacity: 0.8;
106
- transform: translateX(-100%);
107
- transition: left var(--ina-transition-duration-1000) ease-out;
108
- animation: pulse 1.5s infinite;
109
- }
110
-
111
- .ina-progress-bar__indicator--primary {
112
- background-color: var(--ina-primary-500);
113
- }
114
-
115
- .ina-progress-bar__indicator--secondary {
116
- background-color: var(--ina-neutral-500);
117
- }
118
-
119
- .ina-progress-bar__indicator--success {
120
- background-color: var(--ina-positive-500);
121
- }
122
-
123
- .ina-progress-bar__indicator--warning {
124
- background-color: var(--ina-warning-500);
125
- }
126
-
127
- .ina-progress-bar__indicator--error {
128
- background-color: var(--ina-negative-500);
129
- }
130
-
131
- @keyframes pulse {
132
- 0%,
133
- 100% {
134
- opacity: 0.8;
135
- }
136
- 50% {
137
- opacity: 0.6;
138
- }
139
- }
140
-
141
- /* Striped variant */
142
- .ina-progress-bar__fill--striped {
143
- background-image: linear-gradient(
144
- 45deg,
145
- rgba(255, 255, 255, 0.15) 25%,
146
- transparent 25%,
147
- transparent 50%,
148
- rgba(255, 255, 255, 0.15) 50%,
149
- rgba(255, 255, 255, 0.15) 75%,
150
- transparent 75%,
151
- transparent
152
- );
153
- background-size: 20px 20px;
154
- animation: moveStripes 1s linear infinite;
155
- }
156
-
157
- @keyframes moveStripes {
158
- 0% {
159
- background-position: 0 0;
160
- }
161
- 100% {
162
- background-position: 20px 0;
163
- }
164
- }
165
-
166
- /* Size variants with more height options */
167
- .ina-progress-bar--height-xs {
168
- height: 1px;
169
- }
170
-
171
- .ina-progress-bar--height-xl {
172
- height: 8px;
173
- }
174
-
175
- .ina-progress-bar--height-2xl {
176
- height: 12px;
177
- }
178
-
179
- /* Custom duration variants */
180
- .ina-progress-bar--duration-fast .ina-progress-bar__fill {
181
- transition-duration: var(--ina-transition-duration-200);
182
- }
183
-
184
- .ina-progress-bar--duration-medium .ina-progress-bar__fill {
185
- transition-duration: var(--ina-transition-duration-500);
186
- }
187
-
188
- .ina-progress-bar--duration-slow .ina-progress-bar__fill {
189
- transition-duration: var(--ina-transition-duration-2000);
190
- }
191
-
192
- /* Loading state animation */
193
- .ina-progress-bar--loading {
194
- animation: indeterminate 2s infinite linear;
195
- }
196
-
197
- .ina-progress-bar--loading .ina-progress-bar__fill {
198
- position: relative;
199
- width: 30%;
200
- background: linear-gradient(
201
- 90deg,
202
- var(--ina-primary-500) 0%,
203
- var(--ina-primary-400) 50%,
204
- var(--ina-primary-500) 100%
205
- );
206
- background-size: 200% 100%;
207
- animation: loading-shift 1s infinite linear;
208
- }
209
-
210
- @keyframes indeterminate {
211
- 0% {
212
- transform: translateX(-100%);
213
- }
214
- 100% {
215
- transform: translateX(400%);
216
- }
217
- }
218
-
219
- @keyframes loading-shift {
220
- 0% {
221
- background-position: 200% 0;
222
- }
223
- 100% {
224
- background-position: -200% 0;
225
- }
226
- }
227
-
228
- /* Gradient variants */
229
- .ina-progress-bar__fill--gradient-primary {
230
- background: linear-gradient(
231
- 90deg,
232
- var(--ina-primary-400),
233
- var(--ina-primary-500),
234
- var(--ina-primary-600)
235
- );
236
- }
237
-
238
- .ina-progress-bar__fill--gradient-success {
239
- background: linear-gradient(
240
- 90deg,
241
- var(--ina-positive-400),
242
- var(--ina-positive-500),
243
- var(--ina-positive-600)
244
- );
245
- }
246
-
247
- .ina-progress-bar__fill--gradient-warning {
248
- background: linear-gradient(
249
- 90deg,
250
- var(--ina-warning-400),
251
- var(--ina-warning-500),
252
- var(--ina-warning-600)
253
- );
254
- }
255
-
256
- .ina-progress-bar__fill--gradient-error {
257
- background: linear-gradient(
258
- 90deg,
259
- var(--ina-negative-400),
260
- var(--ina-negative-500),
261
- var(--ina-negative-600)
262
- );
263
- }
264
-
265
- /* Status-based styling */
266
- .ina-progress-bar__fill--complete {
267
- background-color: var(--ina-positive-500);
268
- }
269
-
270
- .ina-progress-bar__fill--in-progress {
271
- animation: breathing 2s infinite ease-in-out;
272
- }
273
-
274
- @keyframes breathing {
275
- 0%,
276
- 100% {
277
- opacity: 1;
278
- }
279
- 50% {
280
- opacity: 0.8;
281
- }
282
- }
283
-
284
- /* Circular variant */
285
- .ina-progress-bar--circular {
286
- width: 120px;
287
- height: 120px;
288
- border-radius: 50%;
289
- background: conic-gradient(
290
- var(--ina-primary-500) 0deg,
291
- var(--ina-neutral-200) 0deg
292
- );
293
- display: flex;
294
- align-items: center;
295
- justify-content: center;
296
- position: relative;
297
- }
298
-
299
- .ina-progress-bar--circular .ina-progress-bar__fill {
300
- display: none;
301
- }
302
-
303
- .ina-progress-bar__circular-content {
304
- position: absolute;
305
- inset: 20%;
306
- background-color: var(--ina-background-primary);
307
- border-radius: 50%;
308
- display: flex;
309
- align-items: center;
310
- justify-content: center;
311
- font-size: var(--ina-font-xs);
312
- font-weight: var(--ina-font-medium);
313
- color: var(--ina-content-primary);
314
- }
315
-
316
- /* Progress label */
317
- .ina-progress-bar__label {
318
- position: absolute;
319
- top: 50%;
320
- left: 50%;
321
- transform: translate(-50%, -50%);
322
- font-size: var(--ina-font-xs);
323
- font-weight: var(--ina-font-medium);
324
- color: var(--ina-content-primary);
325
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
326
- }
327
-
328
- /* Skeleton variant */
329
- .ina-progress-bar--skeleton {
330
- background: linear-gradient(
331
- 90deg,
332
- var(--ina-neutral-200) 25%,
333
- var(--ina-neutral-300) 50%,
334
- var(--ina-neutral-200) 75%
335
- );
336
- background-size: 200% 100%;
337
- animation: skeleton 1.5s infinite ease-out;
338
- }
339
-
340
- .ina-progress-bar--skeleton .ina-progress-bar__fill {
341
- display: none;
342
- }
343
-
344
- @keyframes skeleton {
345
- 0% {
346
- background-position: 200% 0;
347
- }
348
- 100% {
349
- background-position: -200% 0;
350
- }
351
- }
352
-
353
- /* Dark mode support */
354
- /* @media (prefers-color-scheme: dark) {
355
- .ina-progress-bar {
356
- background-color: var(--ina-neutral-700);
357
- }
358
-
359
- .ina-progress-bar__fill--primary {
360
- background-color: var(--ina-primary-400);
361
- }
362
-
363
- .ina-progress-bar__fill--secondary {
364
- background-color: var(--ina-neutral-400);
365
- }
366
-
367
- .ina-progress-bar__fill--success {
368
- background-color: var(--ina-positive-400);
369
- }
370
-
371
- .ina-progress-bar__fill--warning {
372
- background-color: var(--ina-warning-400);
373
- }
374
-
375
- .ina-progress-bar__fill--error {
376
- background-color: var(--ina-negative-400);
377
- }
378
-
379
- .ina-progress-bar__shimmer {
380
- background: linear-gradient(
381
- 90deg,
382
- transparent,
383
- rgba(255, 255, 255, 0.1),
384
- transparent
385
- );
386
- }
387
-
388
- .ina-progress-bar__circular-content {
389
- background-color: var(--ina-background-dark-primary);
390
- color: var(--ina-content-dark-primary);
391
- }
392
-
393
- .ina-progress-bar__label {
394
- color: var(--ina-content-dark-primary);
395
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
396
- }
397
-
398
- .ina-progress-bar--skeleton {
399
- background: linear-gradient(
400
- 90deg,
401
- var(--ina-neutral-700) 25%,
402
- var(--ina-neutral-600) 50%,
403
- var(--ina-neutral-700) 75%
404
- );
405
- }
406
- } */
407
-
408
- /* Responsive adjustments */
409
- @media (max-width: 640px) {
410
- .ina-progress-bar--circular {
411
- width: 80px;
412
- height: 80px;
413
- }
414
-
415
- .ina-progress-bar__circular-content {
416
- font-size: var(--ina-font-xs);
417
- }
418
- }
419
-
420
- /* Accessibility improvements */
421
- .ina-progress-bar[aria-hidden='true'] {
422
- visibility: hidden;
423
- }
424
-
425
- /* High contrast mode */
426
- @media (prefers-contrast: high) {
427
- .ina-progress-bar {
428
- border: 1px solid var(--ina-content-primary);
429
- }
430
-
431
- .ina-progress-bar__fill {
432
- border: 1px solid var(--ina-background-primary);
433
- }
434
- }
435
-
436
- /* Reduced motion */
437
- @media (prefers-reduced-motion: reduce) {
438
- .ina-progress-bar__fill,
439
- .ina-progress-bar__indicator,
440
- .ina-progress-bar__shimmer,
441
- .ina-progress-bar--skeleton,
442
- .ina-progress-bar--loading,
443
- .ina-progress-bar--loading .ina-progress-bar__fill {
444
- animation: none;
445
- transition: none;
446
- }
447
- }
@@ -1,277 +0,0 @@
1
- /**
2
- * RadioInput Component Styles
3
- * Menggunakan BEM naming convention dengan prefix "ina-"
4
- */
5
-
6
- .ina-radio-input {
7
- /* Base container styling */
8
- display: flex;
9
- flex-direction: column;
10
- gap: var(--ina-spacing-2);
11
- }
12
-
13
- /* Label styling */
14
- .ina-radio-input__main-label {
15
- display: block;
16
- font-size: var(--ina-font-sm);
17
- color: var(--ina-content-color-181717);
18
- font-weight: var(--ina-font-medium);
19
- }
20
-
21
- /* Radio group container */
22
- .ina-radio-input__group {
23
- display: flex;
24
- flex-direction: column;
25
- gap: var(--ina-spacing-2);
26
- }
27
-
28
- /* Individual radio option */
29
- .ina-radio-input__option {
30
- display: flex;
31
- align-items: center;
32
- gap: var(--ina-spacing-2);
33
- cursor: pointer;
34
- transition: background-color var(--ina-transition-base);
35
- padding: var(--ina-spacing-2);
36
- border-radius: var(--ina-radius-md);
37
- }
38
-
39
- .ina-radio-input__option:hover {
40
- background-color: var(--ina-neutral-50);
41
- }
42
-
43
- .ina-radio-input__option--disabled {
44
- cursor: not-allowed;
45
- }
46
-
47
- .ina-radio-input__option--disabled:hover {
48
- background-color: transparent;
49
- }
50
-
51
- /* Radio input field - Default styling */
52
- .ina-radio-input__field {
53
- appearance: none;
54
- width: 20px;
55
- height: 20px;
56
- border: 1px solid var(--ina-stroke-tertiary, #141414);
57
- border-radius: 50%;
58
- background-color: var(--ina-background-primary, var(--ina-neutral-25));
59
- cursor: pointer;
60
- position: relative;
61
- transition: all var(--ina-transition-base);
62
- flex-shrink: 0;
63
- }
64
-
65
- /* Hover state - Add drop shadow */
66
- .ina-radio-input__field:hover:not(:disabled) {
67
- filter: drop-shadow(0 0 3px #737373);
68
- }
69
-
70
- /* Focus state - Add drop shadow */
71
- .ina-radio-input__field:focus-visible:not(:disabled) {
72
- filter: drop-shadow(0 0 3px #737373);
73
- }
74
-
75
- /* Active state - Add drop shadow */
76
- .ina-radio-input__field:active:not(:disabled) {
77
- filter: drop-shadow(0 0 3px #737373);
78
- }
79
-
80
- /* Selected state */
81
- .ina-radio-input__field:checked {
82
- border-color: var(--ina-stroke-tertiary, #141414);
83
- background-color: var(--ina-background-primary, var(--ina-neutral-25));
84
- }
85
-
86
- .ina-radio-input__field:checked::after {
87
- content: '';
88
- position: absolute;
89
- top: 50%;
90
- left: 50%;
91
- transform: translate(-50%, -50%);
92
- width: 11px;
93
- height: 11px;
94
- border-radius: 50%;
95
- background-color: var(--ina-stroke-tertiary, #141414);
96
- }
97
-
98
- /* Checked + Hover/Focus/Active - Keep drop shadow */
99
- .ina-radio-input__field:checked:hover:not(:disabled),
100
- .ina-radio-input__field:checked:focus-visible:not(:disabled),
101
- .ina-radio-input__field:checked:active:not(:disabled) {
102
- filter: drop-shadow(0 0 3px #737373);
103
- }
104
-
105
- /* Disabled states */
106
- .ina-radio-input__field:disabled {
107
- border-color: var(--ina-neutral-200, #e5e5e5);
108
- background-color: var(--ina-background-secondary, var(--ina-neutral-50));
109
- cursor: not-allowed;
110
- opacity: 1;
111
- filter: none;
112
- }
113
-
114
- /* Disabled + Checked state - Higher specificity */
115
- .ina-radio-input__field:disabled:checked {
116
- border-color: var(--ina-neutral-200, #e5e5e5) !important;
117
- background-color: var(
118
- --ina-background-secondary,
119
- var(--ina-neutral-50)
120
- ) !important;
121
- filter: none;
122
- }
123
-
124
- .ina-radio-input__field:disabled:checked::after {
125
- content: '' !important;
126
- position: absolute;
127
- top: 50%;
128
- left: 50%;
129
- transform: translate(-50%, -50%);
130
- width: 11px;
131
- height: 11px;
132
- border-radius: 50%;
133
- background-color: var(--ina-neutral-200, #e5e5e5);
134
- }
135
-
136
- /* Radio option label */
137
- .ina-radio-input__option-label {
138
- font-size: var(--ina-font-sm);
139
- color: #000000;
140
- cursor: pointer;
141
- user-select: none;
142
- flex: 1;
143
- line-height: 1.5;
144
- }
145
-
146
- .ina-radio-input__option-label--disabled {
147
- cursor: not-allowed;
148
- }
149
-
150
- /* Size variants */
151
- /* .ina-radio-input--size-sm .ina-radio-input__main-label {
152
- font-size: var(--ina-font-xs);
153
- }
154
-
155
- .ina-radio-input--size-sm .ina-radio-input__option-label {
156
- font-size: var(--ina-font-xs);
157
- }
158
-
159
- .ina-radio-input--size-sm .ina-radio-input__field {
160
- width: 16px;
161
- height: 16px;
162
- } */
163
-
164
- /* .ina-radio-input--size-lg .ina-radio-input__main-label {
165
- font-size: var(--ina-font-base);
166
- }
167
-
168
- .ina-radio-input--size-lg .ina-radio-input__option-label {
169
- font-size: var(--ina-font-base);
170
- }
171
-
172
- .ina-radio-input--size-lg .ina-radio-input__field {
173
- width: 24px;
174
- height: 24px;
175
- } */
176
-
177
- /* Orientation variants */
178
- .ina-radio-input--orientation-horizontal .ina-radio-input__group {
179
- flex-direction: row;
180
- flex-wrap: wrap;
181
- gap: var(--ina-spacing-4);
182
- align-items: center;
183
- }
184
-
185
- /* Status variants */
186
- .ina-radio-input__main-label--required::after {
187
- content: '*';
188
- color: var(--ina-danger-5);
189
- margin-left: var(--ina-spacing-1);
190
- }
191
-
192
- /* Focus indicators */
193
- .ina-radio-input__field:focus-visible {
194
- outline: 2px solid var(--ina-stroke-tertiary, #141414);
195
- outline-offset: 2px;
196
- }
197
-
198
- /* Error state */
199
- .ina-radio-input--error .ina-radio-input__main-label {
200
- color: #dc2626;
201
- }
202
-
203
- .ina-radio-input--error .ina-radio-input__field {
204
- border-color: #dc2626;
205
- }
206
-
207
- .ina-radio-input--error .ina-radio-input__field:focus-visible {
208
- outline-color: #dc2626;
209
- }
210
-
211
- /* Loading state */
212
- .ina-radio-input--loading .ina-radio-input__option {
213
- cursor: not-allowed;
214
- }
215
-
216
- .ina-radio-input--loading .ina-radio-input__field {
217
- cursor: not-allowed;
218
- }
219
-
220
- /* Help text */
221
- .ina-radio-input__help-text {
222
- font-size: var(--ina-font-xs);
223
- color: #666666;
224
- margin-top: var(--ina-spacing-1);
225
- }
226
-
227
- .ina-radio-input__help-text--error {
228
- color: #dc2626;
229
- }
230
-
231
- /* Responsive adjustments */
232
- @media (max-width: 640px) {
233
- .ina-radio-input__main-label {
234
- font-size: var(--ina-font-xs); /* Turun dari sm ke xs */
235
- }
236
-
237
- .ina-radio-input__option-label {
238
- font-size: var(--ina-font-xs); /* Turun dari sm ke xs */
239
- }
240
-
241
- .ina-radio-input__help-text {
242
- font-size: var(--ina-font-xs); /* Tetap xs */
243
- }
244
-
245
- .ina-radio-input--orientation-horizontal .ina-radio-input__group {
246
- flex-direction: column;
247
- gap: var(--ina-spacing-2);
248
- }
249
- }
250
-
251
- /* Dark mode support - handled by CSS variables in css-variables.css */
252
-
253
- /* Accessibility improvements */
254
- .ina-radio-input__field + .ina-radio-input__option-label {
255
- /* Improve tap target size for touch devices */
256
- padding: var(--ina-spacing-1) var(--ina-spacing-2);
257
- margin: calc(var(--ina-spacing-1) * -1) calc(var(--ina-spacing-2) * -1);
258
- }
259
-
260
- /* High contrast mode */
261
- @media (prefers-contrast: high) {
262
- .ina-radio-input__field {
263
- border-width: 3px;
264
- }
265
-
266
- .ina-radio-input__field:checked {
267
- border-width: 3px;
268
- }
269
- }
270
-
271
- /* Reduced motion */
272
- @media (prefers-reduced-motion: reduce) {
273
- .ina-radio-input__option,
274
- .ina-radio-input__field {
275
- transition: none;
276
- }
277
- }