@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,428 @@
1
+ /**
2
+ * InputSearch Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-input-search {
7
+ /* Base container styling */
8
+ display: flex;
9
+ width: 100%;
10
+ flex-direction: column;
11
+ gap: var(--ina-spacing-2);
12
+ }
13
+
14
+ /* Label styling */
15
+ .ina-input-search__label {
16
+ display: block;
17
+ font-size: var(--ina-font-sm);
18
+ color: var(--ina-content-secondary);
19
+ font-weight: var(--ina-font-medium);
20
+ }
21
+
22
+ .ina-input-search__label--required .ina-input-search__asterisk {
23
+ color: var(--ina-error-500);
24
+ margin-left: var(--ina-spacing-1);
25
+ }
26
+
27
+ /* Input wrapper */
28
+ .ina-input-search__wrapper {
29
+ position: relative;
30
+ display: flex;
31
+ width: 100%;
32
+ cursor: pointer;
33
+ align-items: center;
34
+ gap: var(--ina-spacing-3);
35
+ border-radius: var(--ina-radius-xl);
36
+ border: 1px solid var(--ina-neutral-300);
37
+ background-color: var(--ina-background-primary);
38
+ padding: 14px;
39
+ transition: all var(--ina-transition-duration-200);
40
+ }
41
+
42
+ .ina-input-search__wrapper:focus-within {
43
+ border-color: var(--ina-primary-500);
44
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1); /* ring-[#EAECF0] equivalent */
45
+ }
46
+
47
+ .ina-input-search__wrapper--disabled {
48
+ background-color: var(--ina-neutral-100);
49
+ cursor: not-allowed;
50
+ opacity: 0.6;
51
+ }
52
+
53
+ /* States */
54
+ .ina-input-search__wrapper--error {
55
+ border-color: var(--ina-negative-500);
56
+ }
57
+
58
+ .ina-input-search__wrapper--error:focus-within {
59
+ border-color: var(--ina-negative-500);
60
+ box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.1);
61
+ }
62
+
63
+ .ina-input-search__wrapper--warning {
64
+ border-color: var(--ina-warning-500);
65
+ }
66
+
67
+ .ina-input-search__wrapper--warning:focus-within {
68
+ border-color: var(--ina-warning-500);
69
+ box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.1);
70
+ }
71
+
72
+ .ina-input-search__wrapper--success {
73
+ border-color: var(--ina-positive-500);
74
+ }
75
+
76
+ .ina-input-search__wrapper--success:focus-within {
77
+ border-color: var(--ina-positive-500);
78
+ box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.1);
79
+ }
80
+
81
+ /* Search icon */
82
+ .ina-input-search__search-icon {
83
+ flex-shrink: 0;
84
+ width: 20px;
85
+ height: 20px;
86
+ color: var(--ina-content-secondary);
87
+ }
88
+
89
+ /* Input field */
90
+ .ina-input-search__input {
91
+ flex: 1;
92
+ width: 100%;
93
+ border: none;
94
+ outline: none;
95
+ background: transparent;
96
+ font-size: var(--ina-font-sm);
97
+ color: var(--ina-content-color-181717);
98
+ font-weight: var(--ina-font-normal);
99
+ }
100
+
101
+ .ina-input-search__input::placeholder {
102
+ color: var(--ina-content-tertiary);
103
+ }
104
+
105
+ .ina-input-search__input:disabled {
106
+ cursor: not-allowed;
107
+ opacity: 0.6;
108
+ }
109
+
110
+ /* Clear button */
111
+ .ina-input-search__clear-button {
112
+ flex-shrink: 0;
113
+ cursor: pointer;
114
+ width: 20px;
115
+ height: 20px;
116
+ color: var(--ina-content-color-212121);
117
+ display: flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ border-radius: var(--ina-radius-base);
121
+ transition: background-color var(--ina-transition-base);
122
+ }
123
+
124
+ .ina-input-search__clear-button:hover {
125
+ background-color: var(--ina-neutral-200);
126
+ }
127
+
128
+ .ina-input-search__clear-button:focus {
129
+ outline: 2px solid var(--ina-primary-500);
130
+ outline-offset: 2px;
131
+ }
132
+
133
+ .ina-input-search__clear-button--hidden {
134
+ display: none;
135
+ }
136
+
137
+ /* Size variants */
138
+ .ina-input-search--size-sm .ina-input-search__wrapper {
139
+ padding: var(--ina-spacing-2) var(--ina-spacing-3);
140
+ }
141
+
142
+ .ina-input-search--size-sm .ina-input-search__input {
143
+ font-size: var(--ina-font-xs);
144
+ }
145
+
146
+ .ina-input-search--size-sm .ina-input-search__search-icon,
147
+ .ina-input-search--size-sm .ina-input-search__clear-button {
148
+ width: 16px;
149
+ height: 16px;
150
+ }
151
+
152
+ .ina-input-search--size-lg .ina-input-search__wrapper {
153
+ padding: var(--ina-spacing-4) var(--ina-spacing-5);
154
+ }
155
+
156
+ .ina-input-search--size-lg .ina-input-search__input {
157
+ font-size: var(--ina-font-base);
158
+ }
159
+
160
+ .ina-input-search--size-lg .ina-input-search__search-icon,
161
+ .ina-input-search--size-lg .ina-input-search__clear-button {
162
+ width: 24px;
163
+ height: 24px;
164
+ }
165
+
166
+ .ina-input-search--size-xl .ina-input-search__wrapper {
167
+ padding: var(--ina-spacing-5) var(--ina-spacing-6);
168
+ }
169
+
170
+ .ina-input-search--size-xl .ina-input-search__input {
171
+ font-size: var(--ina-font-lg);
172
+ }
173
+
174
+ .ina-input-search--size-xl .ina-input-search__search-icon,
175
+ .ina-input-search--size-xl .ina-input-search__clear-button {
176
+ width: 28px;
177
+ height: 28px;
178
+ }
179
+
180
+ /* Variant styles */
181
+ .ina-input-search--variant-outlined .ina-input-search__wrapper {
182
+ border: 1px solid var(--ina-stroke-primary);
183
+ background-color: transparent;
184
+ }
185
+
186
+ .ina-input-search--variant-filled .ina-input-search__wrapper {
187
+ background-color: var(--ina-neutral-100);
188
+ border: 1px solid var(--ina-neutral-200);
189
+ }
190
+
191
+ .ina-input-search--variant-filled.ina-input-search--focus
192
+ .ina-input-search__wrapper {
193
+ background-color: var(--ina-background-primary);
194
+ border-color: var(--ina-primary-500);
195
+ }
196
+
197
+ /* Loading state */
198
+ .ina-input-search--loading .ina-input-search__wrapper {
199
+ position: relative;
200
+ }
201
+
202
+ .ina-input-search__loading-spinner {
203
+ position: absolute;
204
+ right: 14px;
205
+ top: 50%;
206
+ transform: translateY(-50%);
207
+ width: 16px;
208
+ height: 16px;
209
+ border: 2px solid var(--ina-neutral-300);
210
+ border-top-color: var(--ina-primary-500);
211
+ border-radius: 50%;
212
+ animation: spin 1s linear infinite;
213
+ }
214
+
215
+ @keyframes spin {
216
+ to {
217
+ transform: translateY(-50%) rotate(360deg);
218
+ }
219
+ }
220
+
221
+ .ina-input-search--loading .ina-input-search__clear-button {
222
+ display: none;
223
+ }
224
+
225
+ /* Results dropdown (if applicable) */
226
+ .ina-input-search__results {
227
+ position: absolute;
228
+ top: 100%;
229
+ left: 0;
230
+ right: 0;
231
+ z-index: 50;
232
+ margin-top: var(--ina-spacing-1);
233
+ background-color: var(--ina-background-primary);
234
+ border: 1px solid var(--ina-stroke-primary);
235
+ border-radius: var(--ina-radius-lg);
236
+ box-shadow: var(--ina-shadow-lg);
237
+ max-height: 200px;
238
+ overflow-y: auto;
239
+ }
240
+
241
+ .ina-input-search__result-item {
242
+ padding: var(--ina-spacing-3) var(--ina-spacing-4);
243
+ cursor: pointer;
244
+ transition: background-color var(--ina-transition-base);
245
+ color: var(--ina-content-primary);
246
+ }
247
+
248
+ .ina-input-search__result-item:hover {
249
+ background-color: var(--ina-neutral-100);
250
+ }
251
+
252
+ .ina-input-search__result-item--highlighted {
253
+ background-color: var(--ina-primary-100);
254
+ color: var(--ina-primary-600);
255
+ }
256
+
257
+ .ina-input-search__result-item--no-results {
258
+ padding: var(--ina-spacing-3) var(--ina-spacing-4);
259
+ color: var(--ina-content-secondary);
260
+ font-style: italic;
261
+ text-align: center;
262
+ }
263
+
264
+ /* Error/Warning/Success states for wrapper */
265
+ .ina-input-search__wrapper--error {
266
+ border-color: var(--ina-negative-500);
267
+ }
268
+
269
+ .ina-input-search__wrapper--warning {
270
+ border-color: var(--ina-warning-500);
271
+ }
272
+
273
+ .ina-input-search__wrapper--success {
274
+ border-color: var(--ina-positive-500);
275
+ }
276
+
277
+ /* Helper text */
278
+ .ina-input-search__helper-text {
279
+ font-size: var(--ina-font-xs);
280
+ margin-top: var(--ina-spacing-1);
281
+ }
282
+
283
+ .ina-input-search__helper-text--error {
284
+ color: var(--ina-negative-600);
285
+ }
286
+
287
+ .ina-input-search__helper-text--warning {
288
+ color: var(--ina-warning-600);
289
+ }
290
+
291
+ .ina-input-search__helper-text--success {
292
+ color: var(--ina-positive-600);
293
+ }
294
+
295
+ .ina-input-search__helper-text--info {
296
+ color: var(--ina-content-secondary);
297
+ }
298
+
299
+ /* Icon animations */
300
+ .ina-input-search__search-icon,
301
+ .ina-input-search__clear-button {
302
+ transition: color var(--ina-transition-base),
303
+ transform var(--ina-transition-base);
304
+ }
305
+
306
+ .ina-input-search__wrapper:hover .ina-input-search__search-icon {
307
+ color: var(--ina-content-primary);
308
+ }
309
+
310
+ .ina-input-search__wrapper:focus-within .ina-input-search__search-icon {
311
+ color: var(--ina-primary-500);
312
+ }
313
+
314
+ /* Responsive adjustments */
315
+ @media (max-width: 640px) {
316
+ .ina-input-search__wrapper {
317
+ padding: var(--ina-spacing-3);
318
+ }
319
+
320
+ .ina-input-search__input {
321
+ font-size: var(--ina-font-base);
322
+ }
323
+
324
+ .ina-input-search__results {
325
+ max-height: 150px;
326
+ }
327
+ }
328
+
329
+ @media (min-width: 1024px) {
330
+ .ina-input-search__input {
331
+ font-size: var(--ina-font-base);
332
+ }
333
+ }
334
+
335
+ /* Dark mode support */
336
+ /* @media (prefers-color-scheme: dark) {
337
+ .ina-input-search__label {
338
+ color: var(--ina-content-dark-secondary);
339
+ }
340
+
341
+ .ina-input-search__wrapper {
342
+ background-color: var(--ina-background-dark-primary);
343
+ border-color: var(--ina-stroke-primary-dark);
344
+ }
345
+
346
+ .ina-input-search__wrapper:focus-within {
347
+ border-color: var(--ina-primary-400);
348
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
349
+ }
350
+
351
+ .ina-input-search__input {
352
+ color: var(--ina-content-dark-primary);
353
+ }
354
+
355
+ .ina-input-search__input::placeholder {
356
+ color: var(--ina-content-dark-secondary);
357
+ }
358
+
359
+ .ina-input-search__search-icon {
360
+ color: var(--ina-content-dark-secondary);
361
+ }
362
+
363
+ .ina-input-search__wrapper:hover .ina-input-search__search-icon {
364
+ color: var(--ina-content-dark-primary);
365
+ }
366
+
367
+ .ina-input-search__wrapper:focus-within .ina-input-search__search-icon {
368
+ color: var(--ina-primary-400);
369
+ }
370
+
371
+ .ina-input-search__clear-button {
372
+ color: var(--ina-content-dark-secondary);
373
+ }
374
+
375
+ .ina-input-search__clear-button:hover {
376
+ background-color: var(--ina-neutral-800);
377
+ }
378
+
379
+ .ina-input-search__results {
380
+ background-color: var(--ina-background-dark-primary);
381
+ border-color: var(--ina-stroke-primary-dark);
382
+ }
383
+
384
+ .ina-input-search__result-item {
385
+ color: var(--ina-content-dark-primary);
386
+ }
387
+
388
+ .ina-input-search__result-item:hover {
389
+ background-color: var(--ina-neutral-800);
390
+ }
391
+
392
+ .ina-input-search__result-item--highlighted {
393
+ background-color: var(--ina-primary-900);
394
+ color: var(--ina-primary-400);
395
+ }
396
+
397
+ .ina-input-search__result-item--no-results {
398
+ color: var(--ina-content-dark-secondary);
399
+ }
400
+ } */
401
+
402
+ /* Focus management */
403
+ .ina-input-search__wrapper:focus-within .ina-input-search__clear-button {
404
+ opacity: 1;
405
+ }
406
+
407
+ .ina-input-search__wrapper:not(:focus-within) .ina-input-search__clear-button {
408
+ opacity: 0.7;
409
+ }
410
+
411
+ /* Debounce indicator */
412
+ .ina-input-search--debouncing .ina-input-search__input {
413
+ opacity: 0.8;
414
+ }
415
+
416
+ .ina-input-search--debouncing::after {
417
+ content: '';
418
+ position: absolute;
419
+ top: 50%;
420
+ right: 14px;
421
+ width: 12px;
422
+ height: 12px;
423
+ border: 2px solid var(--ina-neutral-300);
424
+ border-top-color: var(--ina-primary-500);
425
+ border-radius: 50%;
426
+ animation: spin 1s linear infinite;
427
+ transform: translateY(-50%);
428
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * LinearProgressIndicator Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-linear-progress-indicator {
7
+ /* Base container styling */
8
+ position: relative;
9
+ width: 100%;
10
+ height: 4px;
11
+ background-color: var(--ina-neutral-200);
12
+ border-radius: var(--ina-radius-full);
13
+ overflow: hidden;
14
+ }
15
+
16
+ /* Progress fill */
17
+ .ina-linear-progress-indicator__fill {
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ height: 100%;
22
+ width: 0%;
23
+ border-radius: inherit;
24
+ background-color: var(--ina-primary-500);
25
+ transition: width 0.3s ease-out;
26
+ }
27
+
28
+ /* Reduced motion */
29
+ @media (prefers-reduced-motion: reduce) {
30
+ .ina-linear-progress-indicator__fill {
31
+ transition: none;
32
+ }
33
+ }
34
+