@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,538 @@
1
+ /**
2
+ * Table Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-table {
7
+ width: 100%;
8
+ overflow-x: auto;
9
+ /* Ensure horizontal scrollbar is always visible when needed */
10
+ scrollbar-width: thin;
11
+ scrollbar-color: var(--ina-neutral-300) transparent;
12
+ }
13
+
14
+ .ina-table::-webkit-scrollbar {
15
+ height: 8px;
16
+ }
17
+
18
+ .ina-table::-webkit-scrollbar-track {
19
+ background: transparent;
20
+ }
21
+
22
+ .ina-table::-webkit-scrollbar-thumb {
23
+ background-color: var(--ina-neutral-300);
24
+ border-radius: 4px;
25
+ }
26
+
27
+ .ina-table::-webkit-scrollbar-thumb:hover {
28
+ background-color: var(--ina-neutral-400);
29
+ }
30
+
31
+ /* Table container */
32
+ .ina-table__container {
33
+ border-collapse: collapse;
34
+ border-radius: var(--ina-radius-lg);
35
+ box-shadow: var(--ina-shadow-sm);
36
+ width: 100%;
37
+ /* Remove overflow: hidden to allow proper horizontal scrolling */
38
+ min-width: max-content;
39
+ /* Allow tooltips to extend beyond table bounds */
40
+ overflow: visible;
41
+ margin-bottom: var(--ina-spacing-4);
42
+ }
43
+
44
+ /* Table header */
45
+ .ina-table__header {
46
+ border-top: 1px solid var(--ina-stroke-primary);
47
+ border-bottom: 1px solid var(--ina-stroke-primary);
48
+ background-color: var(--ina-background-primary);
49
+ position: relative;
50
+ z-index: 1;
51
+ }
52
+
53
+ /* Table header cell */
54
+ .ina-table__header-cell {
55
+ padding: var(--ina-spacing-3) var(--ina-spacing-4);
56
+ text-align: left;
57
+ font-size: var(--ina-font-xs);
58
+ font-weight: var(--ina-font-normal);
59
+ color: var(--ina-content-secondary);
60
+ white-space: nowrap;
61
+ user-select: none;
62
+ position: relative;
63
+ min-width: fit-content;
64
+ }
65
+
66
+ /* Sticky last column - only when enabled */
67
+ .ina-table--sticky-last-column .ina-table__header-cell:last-child {
68
+ position: sticky;
69
+ right: 0;
70
+ background-color: var(--ina-background-primary);
71
+ z-index: 11;
72
+ min-width: 120px;
73
+ text-align: right;
74
+ /* Allow tooltips to extend beyond sticky column bounds */
75
+ overflow: visible;
76
+ }
77
+
78
+ .ina-table--sticky-last-column .ina-table__cell:last-child {
79
+ position: sticky;
80
+ right: 0;
81
+ background-color: var(--ina-background-primary);
82
+ z-index: 10;
83
+ min-width: 120px;
84
+ text-align: right;
85
+ /* Allow tooltips to extend beyond sticky column bounds */
86
+ overflow: visible;
87
+ }
88
+
89
+ .ina-table__header-cell--sortable {
90
+ transition: background-color var(--ina-transition-base);
91
+ }
92
+
93
+ .ina-table__header-cell--sortable:hover {
94
+ /* background-color: var(--ina-neutral-50); */
95
+ }
96
+
97
+ /* Sorting controls */
98
+ .ina-table__sort-controls {
99
+ display: inline-flex;
100
+ gap: var(--ina-spacing-0-5);
101
+ margin-left: var(--ina-spacing-1);
102
+ }
103
+
104
+ .ina-table__sort-button {
105
+ display: flex;
106
+ align-items: center;
107
+ justify-content: center;
108
+ width: 16px;
109
+ height: 16px;
110
+ border: none;
111
+ background: none;
112
+ cursor: pointer;
113
+ color: var(--ina-content-secondary);
114
+ transition: color var(--ina-transition-base);
115
+ }
116
+ .ina-table__sort-button-right {
117
+ margin-left: -0.5rem;
118
+ }
119
+
120
+ .ina-table__sort-button:hover {
121
+ color: var(--ina-content-primary);
122
+ }
123
+
124
+ .ina-table__sort-button--active {
125
+ color: var(--ina-semantic-info);
126
+ }
127
+ .ina-table__sort-button--active,
128
+ .ina-table__sort-button--active:hover {
129
+ color: var(--ina-primary-600);
130
+ }
131
+
132
+ .ina-table__sort-icon {
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ }
137
+
138
+ /* Table body */
139
+ .ina-table__body {
140
+ background-color: var(--ina-background-primary);
141
+ position: relative;
142
+ z-index: 0;
143
+ /* Allow tooltips to extend beyond body bounds */
144
+ overflow: visible;
145
+ }
146
+
147
+ /* Table row */
148
+ .ina-table__row {
149
+ transition: opacity var(--ina-transition-duration-200),
150
+ background-color var(--ina-transition-base);
151
+ /* Allow tooltips to extend beyond row bounds */
152
+ overflow: visible;
153
+ }
154
+
155
+ .ina-table__row:hover:not(.ina-table__row--disabled) {
156
+ background-color: var(--ina-background-secondary);
157
+ }
158
+
159
+ .ina-table__row--disabled {
160
+ opacity: 0.6;
161
+ }
162
+
163
+ .ina-table__row--loading {
164
+ opacity: 0.6;
165
+ }
166
+
167
+ /* Clickable row */
168
+ .ina-table__row--clickable {
169
+ cursor: pointer;
170
+ transition: background-color var(--ina-transition-base);
171
+ }
172
+
173
+ .ina-table__row--clickable:hover {
174
+ background-color: var(--ina-neutral-50);
175
+ }
176
+
177
+ .ina-table__row--clickable:active {
178
+ background-color: var(--ina-neutral-100);
179
+ }
180
+
181
+ /* Table cell */
182
+ .ina-table__cell {
183
+ padding: var(--ina-spacing-3) var(--ina-spacing-4);
184
+ border-bottom: 1px solid var(--ina-stroke-primary);
185
+ font-size: var(--ina-font-xs);
186
+ font-weight: var(--ina-font-medium);
187
+ color: var(--ina-content-primary);
188
+ vertical-align: top;
189
+ /* Prevent cell content from being cut off */
190
+ white-space: nowrap;
191
+ min-width: fit-content;
192
+ /* Allow tooltips to extend beyond cell bounds */
193
+ overflow: visible;
194
+ position: relative;
195
+ }
196
+
197
+ .ina-table__cell--editable {
198
+ cursor: pointer;
199
+ position: relative;
200
+ }
201
+
202
+ .ina-table__cell--editing {
203
+ background-color: var(--ina-primary-50);
204
+ padding: 0;
205
+ }
206
+
207
+ /* Selection checkbox cell */
208
+ .ina-table__selection-cell {
209
+ padding: var(--ina-spacing-3) var(--ina-spacing-4);
210
+ border-bottom: 1px solid var(--ina-stroke-primary);
211
+ text-align: center;
212
+ vertical-align: middle;
213
+ }
214
+
215
+ /* Search bar */
216
+ .ina-table__search {
217
+ display: flex;
218
+ align-items: center;
219
+ justify-content: space-between;
220
+ margin-bottom: var(--ina-spacing-4);
221
+ }
222
+
223
+ .ina-table__search-input {
224
+ border: 1px solid var(--ina-stroke-primary);
225
+ border-radius: var(--ina-radius-md);
226
+ padding: var(--ina-spacing-2) var(--ina-spacing-3);
227
+ color: var(--ina-content-primary);
228
+ outline: none;
229
+ font-size: var(--ina-font-sm);
230
+ transition: border-color var(--ina-transition-base),
231
+ box-shadow var(--ina-transition-base);
232
+ }
233
+
234
+ .ina-table__search-input:focus {
235
+ border-color: var(--ina-primary-500);
236
+ box-shadow: 0 0 0 1px var(--ina-primary-500);
237
+ }
238
+
239
+ .ina-table__search-input:disabled {
240
+ background-color: var(--ina-neutral-100);
241
+ cursor: not-allowed;
242
+ }
243
+
244
+ .ina-table__search-button {
245
+ background-color: var(--ina-primary-blue-500);
246
+ color: var(--ina-background-primary);
247
+ padding: var(--ina-spacing-2) var(--ina-spacing-4);
248
+ border-radius: var(--ina-radius-md);
249
+ border: none;
250
+ cursor: pointer;
251
+ font-size: var(--ina-font-sm);
252
+ transition: background-color var(--ina-transition-base);
253
+ margin-left: var(--ina-spacing-2);
254
+ }
255
+
256
+ .ina-table__search-button:hover:not(:disabled) {
257
+ background-color: var(--ina-primary-blue-600);
258
+ }
259
+
260
+ .ina-table__search-button:focus-visible {
261
+ outline: 2px solid var(--ina-primary-500);
262
+ outline-offset: 2px;
263
+ }
264
+
265
+ .ina-table__search-button:disabled {
266
+ background-color: var(--ina-neutral-300);
267
+ color: var(--ina-neutral-500);
268
+ cursor: not-allowed;
269
+ }
270
+
271
+ /* Progress bar */
272
+ .ina-table__progress-bar {
273
+ margin-bottom: 0;
274
+ }
275
+
276
+ /* Empty state */
277
+ .ina-table__empty-cell {
278
+ padding: var(--ina-spacing-4);
279
+ text-align: center;
280
+ font-size: var(--ina-font-sm);
281
+ color: var(--ina-content-secondary);
282
+ }
283
+
284
+ /* Pagination */
285
+ .ina-table__pagination {
286
+ margin-top: var(--ina-spacing-4);
287
+ }
288
+
289
+ /* Responsive adjustments */
290
+ @media (max-width: 640px) {
291
+ .ina-table__header-cell,
292
+ .ina-table__cell {
293
+ padding: var(--ina-spacing-2);
294
+ font-size: var(--ina-font-xs);
295
+ }
296
+
297
+ .ina-table__search {
298
+ flex-direction: column;
299
+ gap: var(--ina-spacing-2);
300
+ align-items: stretch;
301
+ }
302
+
303
+ .ina-table__search-button {
304
+ margin-left: 0;
305
+ }
306
+ }
307
+
308
+ /* Table variants */
309
+ .ina-table--variant-bordered .ina-table__container {
310
+ border: 1px solid var(--ina-stroke-primary);
311
+ }
312
+
313
+ .ina-table--variant-bordered .ina-table__cell,
314
+ .ina-table--variant-bordered .ina-table__selection-cell {
315
+ border-right: 1px solid var(--ina-stroke-primary);
316
+ }
317
+
318
+ .ina-table--variant-striped .ina-table__row:nth-child(even) {
319
+ background-color: var(--ina-neutral-50);
320
+ }
321
+
322
+ .ina-table--variant-hover .ina-table__row:hover {
323
+ background-color: var(--ina-primary-50);
324
+ }
325
+
326
+ .ina-table--variant-compact .ina-table__cell,
327
+ .ina-table--variant-compact .ina-table__header-cell,
328
+ .ina-table--variant-compact .ina-table__selection-cell {
329
+ padding: var(--ina-spacing-1-5) var(--ina-spacing-2);
330
+ }
331
+
332
+ .ina-table--variant-loose .ina-table__cell,
333
+ .ina-table--variant-loose .ina-table__header-cell,
334
+ .ina-table--variant-loose .ina-table__selection-cell {
335
+ padding: var(--ina-spacing-4) var(--ina-spacing-6);
336
+ }
337
+
338
+ /* Size variants */
339
+ .ina-table--size-sm .ina-table__cell,
340
+ .ina-table--size-sm .ina-table__header-cell {
341
+ font-size: var(--ina-font-xs);
342
+ padding: var(--ina-spacing-2);
343
+ }
344
+
345
+ .ina-table--size-md .ina-table__cell,
346
+ .ina-table--size-md .ina-table__header-cell {
347
+ font-size: var(--ina-font-sm);
348
+ padding: var(--ina-spacing-3) var(--ina-spacing-4);
349
+ }
350
+
351
+ .ina-table--size-lg .ina-table__cell,
352
+ .ina-table--size-lg .ina-table__header-cell {
353
+ font-size: var(--ina-font-base);
354
+ padding: var(--ina-spacing-4) var(--ina-spacing-5);
355
+ }
356
+
357
+ /* Loading state */
358
+ .ina-table--loading .ina-table__container {
359
+ position: relative;
360
+ }
361
+
362
+ .ina-table--loading .ina-table__container::after {
363
+ content: '';
364
+ position: absolute;
365
+ inset: 0;
366
+ background-color: rgba(255, 255, 255, 0.8);
367
+ display: flex;
368
+ align-items: center;
369
+ justify-content: center;
370
+ z-index: 10;
371
+ }
372
+
373
+ /* Dark mode support */
374
+ /* @media (prefers-color-scheme: dark) {
375
+ .ina-table__header {
376
+ background-color: var(--ina-background-dark-primary);
377
+ border-color: var(--ina-stroke-primary-dark);
378
+ }
379
+
380
+ .ina-table__header-cell {
381
+ color: var(--ina-content-dark-secondary);
382
+ }
383
+
384
+ .ina-table__header-cell--sortable:hover {
385
+ background-color: var(--ina-neutral-800);
386
+ }
387
+
388
+ .ina-table__body {
389
+ background-color: var(--ina-background-dark-primary);
390
+ }
391
+
392
+ .ina-table__row:hover:not(.ina-table__row--disabled) {
393
+ background-color: var(--ina-neutral-800);
394
+ }
395
+
396
+ .ina-table__cell {
397
+ color: var(--ina-content-dark-primary);
398
+ border-color: var(--ina-stroke-primary-dark);
399
+ }
400
+
401
+ .ina-table__cell--editing {
402
+ background-color: var(--ina-primary-900);
403
+ }
404
+
405
+ .ina-table__row--disabled {
406
+ opacity: 0.6;
407
+ }
408
+
409
+ .ina-table__search-input {
410
+ background-color: var(--ina-background-dark-primary);
411
+ border-color: var(--ina-stroke-primary-dark);
412
+ color: var(--ina-content-dark-primary);
413
+ }
414
+
415
+ .ina-table__search-input:focus {
416
+ border-color: var(--ina-primary-400);
417
+ box-shadow: 0 0 0 1px var(--ina-primary-400);
418
+ }
419
+
420
+ .ina-table__search-input:disabled {
421
+ background-color: var(--ina-neutral-800);
422
+ }
423
+
424
+ .ina-table__empty-cell {
425
+ color: var(--ina-content-dark-secondary);
426
+ }
427
+
428
+ .ina-table--variant-striped .ina-table__row:nth-child(even) {
429
+ background-color: var(--ina-neutral-900);
430
+ }
431
+
432
+ .ina-table--variant-hover .ina-table__row:hover {
433
+ background-color: var(--ina-primary-900);
434
+ }
435
+
436
+ .ina-table--variant-bordered .ina-table__container {
437
+ border-color: var(--ina-stroke-primary-dark);
438
+ }
439
+
440
+ .ina-table--variant-bordered .ina-table__cell,
441
+ .ina-table--variant-bordered .ina-table__selection-cell {
442
+ border-color: var(--ina-stroke-primary-dark);
443
+ }
444
+
445
+ .ina-table--loading .ina-table__container::after {
446
+ background-color: rgba(0, 0, 0, 0.8);
447
+ }
448
+ } */
449
+
450
+ /* Accessibility improvements */
451
+ .ina-table__header-cell:focus-visible {
452
+ outline: 2px solid var(--ina-primary-500);
453
+ outline-offset: 2px;
454
+ }
455
+
456
+ .ina-table__sort-button:focus-visible {
457
+ outline: 2px solid var(--ina-primary-500);
458
+ outline-offset: 2px;
459
+ }
460
+
461
+ .ina-table__cell--editable:focus-visible {
462
+ outline: 2px solid var(--ina-primary-500);
463
+ outline-offset: 2px;
464
+ }
465
+
466
+ /* Skip link for keyboard navigation */
467
+ .ina-table__skip-link {
468
+ position: absolute;
469
+ top: -40px;
470
+ left: var(--ina-spacing-4);
471
+ background-color: var(--ina-primary-500);
472
+ color: var(--ina-background-primary);
473
+ padding: var(--ina-spacing-1) var(--ina-spacing-2);
474
+ border-radius: var(--ina-radius-base);
475
+ text-decoration: none;
476
+ font-size: var(--ina-font-sm);
477
+ z-index: 1000;
478
+ }
479
+
480
+ .ina-table__skip-link:focus {
481
+ top: var(--ina-spacing-4);
482
+ }
483
+
484
+ /* High contrast mode */
485
+ @media (prefers-contrast: high) {
486
+ .ina-table__header {
487
+ border-width: 2px;
488
+ }
489
+
490
+ .ina-table__cell {
491
+ border-width: 1px;
492
+ }
493
+
494
+ .ina-table--variant-bordered .ina-table__container {
495
+ border-width: 2px;
496
+ }
497
+
498
+ .ina-table__header-cell--sortable:hover,
499
+ .ina-table__sort-button--active {
500
+ background-color: var(--ina-primary-500);
501
+ color: var(--ina-background-primary);
502
+ }
503
+ }
504
+
505
+ /* Reduced motion */
506
+ @media (prefers-reduced-motion: reduce) {
507
+ .ina-table__row,
508
+ .ina-table__header-cell--sortable,
509
+ .ina-table__search-input,
510
+ .ina-table__search-button,
511
+ .ina-table__sort-button {
512
+ animation: none;
513
+ transition: none;
514
+ }
515
+ }
516
+
517
+ /* Print styles */
518
+ @media print {
519
+ .ina-table__search,
520
+ .ina-table__pagination,
521
+ .ina-table__progress-bar {
522
+ display: none;
523
+ }
524
+
525
+ .ina-table__container {
526
+ box-shadow: none;
527
+ }
528
+
529
+ .ina-table__header,
530
+ .ina-table__body {
531
+ background: none;
532
+ }
533
+
534
+ .ina-table__cell,
535
+ .ina-table__header-cell {
536
+ border-color: #000;
537
+ }
538
+ }