@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,423 @@
1
+ /* =========================== */
2
+ /* YEAR PICKER STYLES */
3
+ /* =========================== */
4
+
5
+ .ina-year-picker {
6
+ position: relative;
7
+ display: inline-block;
8
+ }
9
+
10
+ /* Trigger Button */
11
+ .ina-year-picker__trigger {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ padding: var(--ina-spacing-1) var(--ina-spacing-4);
16
+ border: 1px solid var(--ina-stroke-primary);
17
+ border-radius: var(--ina-radius-lg);
18
+ background-color: var(--ina-background-primary);
19
+ color: var(--ina-content-primary);
20
+ font-size: var(--ina-font-xs);
21
+ font-weight: var(--ina-font-medium);
22
+ cursor: pointer;
23
+ transition: all var(--ina-transition-fast);
24
+ min-width: 80px;
25
+ gap: var(--ina-spacing-2);
26
+ }
27
+ .ina-year-picker__trigger--size-sm {
28
+ height: 32px;
29
+ }
30
+ .ina-year-picker__trigger--size-md {
31
+ height: 36px;
32
+ }
33
+ /* Desktop >= 768px */
34
+ @media (min-width: 768px) {
35
+ .ina-year-picker__trigger-md {
36
+ height: 44px;
37
+ }
38
+ }
39
+
40
+ .ina-year-picker__trigger:hover {
41
+ background-color: var(--ina-neutral-50);
42
+ }
43
+
44
+ .ina-year-picker__trigger:focus {
45
+ outline: none;
46
+ background-color: var(--ina-background-primary);
47
+ border-color: var(--ina-content-primary);
48
+ box-shadow: 0 1px 2px 0 rgba(31, 31, 31, 0.1), 0 0 0 3px #f3f3f3;
49
+ }
50
+
51
+ .ina-year-picker__trigger--disabled {
52
+ background-color: var(--ina-background-secondary);
53
+ color: var(--ina-content-tertiary);
54
+ cursor: not-allowed;
55
+ opacity: 0.6;
56
+ }
57
+
58
+ .ina-year-picker__trigger--disabled:hover {
59
+ background-color: var(--ina-background-secondary);
60
+ border-color: var(--ina-stroke-primary);
61
+ }
62
+
63
+ .ina-year-picker__trigger--readonly {
64
+ background-color: var(--ina-background-secondary);
65
+ cursor: default;
66
+ }
67
+
68
+ .ina-year-picker__trigger--readonly:hover {
69
+ background-color: var(--ina-background-secondary);
70
+ border-color: var(--ina-stroke-primary);
71
+ }
72
+
73
+ /* Trigger Text */
74
+ .ina-year-picker__trigger-text {
75
+ flex: 1;
76
+ text-align: left;
77
+ font-size: var(--ina-font-xs);
78
+ font-weight: var(--ina-font-medium);
79
+ color: inherit;
80
+ }
81
+
82
+ /* Icon */
83
+ .ina-year-picker__icon {
84
+ flex-shrink: 0;
85
+ color: var(--ina-content-dark-secondary);
86
+ }
87
+
88
+ /* Clear Button */
89
+ .ina-year-picker__clear-button {
90
+ flex-shrink: 0;
91
+ background: none;
92
+ border: none;
93
+ cursor: pointer;
94
+ padding: 0;
95
+ display: inline-flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ color: var(--ina-content-dark-secondary);
99
+ transition: color var(--ina-transition-base);
100
+ }
101
+
102
+ .ina-year-picker__clear-button:hover:not(:disabled) {
103
+ color: var(--ina-content-secondary);
104
+ }
105
+
106
+ .ina-year-picker__clear-button:disabled {
107
+ cursor: not-allowed;
108
+ opacity: 0.5;
109
+ }
110
+
111
+ .ina-year-picker__clear-icon {
112
+ width: 16px;
113
+ height: 16px;
114
+ }
115
+
116
+ /* Panel */
117
+ .ina-year-picker__panel {
118
+ position: absolute;
119
+ top: 100%;
120
+ left: 0;
121
+ margin-top: var(--ina-spacing-1);
122
+ background-color: var(
123
+ --ina-background-primary
124
+ ) !important; /* Ensure solid background */
125
+ border: 1px solid var(--ina-stroke-primary);
126
+ border-radius: var(--ina-radius-xl);
127
+ box-shadow: var(--ina-shadow-lg);
128
+ z-index: 10006; /* Higher than MonthPicker panel (10005) and DatePicker panel (10004) */
129
+ width: 320px;
130
+ max-width: calc(
131
+ 100vw - 16px
132
+ ); /* Ensure panel doesn't exceed viewport width */
133
+ opacity: 0;
134
+ visibility: hidden;
135
+ transform: translateY(-8px);
136
+ transition: all var(--ina-transition-fast);
137
+ /* Ensure panel is not clipped by parent containers */
138
+ max-height: 400px;
139
+ overflow-y: auto;
140
+ /* Ensure panel content is solid */
141
+ backdrop-filter: none;
142
+ -webkit-backdrop-filter: none;
143
+ }
144
+
145
+ .ina-year-picker__panel--open {
146
+ opacity: 1;
147
+ visibility: visible;
148
+ transform: translateY(0);
149
+ }
150
+
151
+ /* Right-aligned panel positioning */
152
+ .ina-year-picker__panel--right-aligned {
153
+ left: auto !important;
154
+ right: 0 !important;
155
+ }
156
+
157
+ /* Header */
158
+ .ina-year-picker__header {
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: space-between;
162
+ padding: var(--ina-spacing-4);
163
+ border-bottom: 1px solid var(--ina-stroke-primary);
164
+ }
165
+
166
+ /* Navigation Buttons */
167
+ .ina-year-picker__nav-button {
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ width: 32px;
172
+ height: 32px;
173
+ padding: var(--ina-spacing-2);
174
+ background-color: transparent;
175
+ color: var(--ina-content-primary);
176
+ border: none;
177
+ border-radius: var(--ina-radius-base);
178
+ cursor: pointer;
179
+ transition: all var(--ina-transition-fast);
180
+ font-size: var(--ina-font-xs);
181
+ }
182
+
183
+ @media (min-width: 768px) {
184
+ .ina-year-picker__nav-button {
185
+ font-size: var(--ina-font-base);
186
+ }
187
+ }
188
+
189
+ .ina-year-picker__nav-button:hover:not(:disabled) {
190
+ background-color: var(--ina-neutral-50);
191
+ }
192
+
193
+ .ina-year-picker__nav-button:disabled {
194
+ color: var(--ina-content-tertiary);
195
+ cursor: not-allowed;
196
+ opacity: 0.5;
197
+ }
198
+
199
+ .ina-year-picker__nav-icon {
200
+ width: 16px;
201
+ height: 16px;
202
+ }
203
+
204
+ /* Decade Range */
205
+ .ina-year-picker__decade-range {
206
+ font-size: var(--ina-font-xs);
207
+ font-weight: var(--ina-font-medium);
208
+ color: var(--ina-content-primary);
209
+ text-align: center;
210
+ flex: 1;
211
+ }
212
+
213
+ /* Year Grid */
214
+ .ina-year-picker__grid {
215
+ display: grid;
216
+ grid-template-columns: repeat(5, 1fr);
217
+ gap: var(--ina-spacing-1);
218
+ background-color: var(--ina-background-primary);
219
+ padding: var(--ina-spacing-4);
220
+ border-radius: var(--ina-radius-base);
221
+ }
222
+
223
+ /* Year Options */
224
+ .ina-year-picker__year-option {
225
+ display: flex;
226
+ align-items: center;
227
+ justify-content: center;
228
+ padding: var(--ina-spacing-2) var(--ina-spacing-3);
229
+ font-size: var(--ina-font-xs);
230
+ font-weight: var(--ina-font-medium);
231
+ color: var(--ina-content-primary);
232
+ background-color: var(--ina-white);
233
+ border: 1px solid var(--ina-border-light);
234
+ border-radius: var(--ina-radius-lg);
235
+ cursor: pointer;
236
+ transition: all var(--ina-transition-fast);
237
+ min-height: 40px;
238
+ max-width: 50px;
239
+ }
240
+
241
+ .ina-year-picker__year-option:hover:not(:disabled) {
242
+ background-color: var(--ina-background-secondary);
243
+ }
244
+
245
+ .ina-year-picker__year-option--selected {
246
+ background-color: var(--ina-content-primary);
247
+ color: var(--ina-white);
248
+ font-weight: var(--ina-font-medium);
249
+ }
250
+
251
+ .ina-year-picker__year-option.ina-year-picker__year-option--selected:hover {
252
+ font-weight: var(--ina-font-semibold);
253
+ background-color: var(--ina-content-primary);
254
+ }
255
+
256
+ .ina-year-picker__year-option--hovered:not(
257
+ .ina-year-picker__year-option--selected
258
+ ) {
259
+ background-color: var(--ina-background-tertiary);
260
+ }
261
+ .ina-year-picker__year-option:disabled {
262
+ color: var(--ina-content-tertiary);
263
+ cursor: not-allowed;
264
+ opacity: 0.8;
265
+ }
266
+
267
+ .ina-year-picker__year-option--disabled {
268
+ color: var(--ina-content-tertiary);
269
+ cursor: not-allowed;
270
+ opacity: 0.4;
271
+ background-color: var(--ina-background-secondary);
272
+ }
273
+
274
+ .ina-year-picker__year-option--disabled:hover {
275
+ background-color: var(--ina-background-secondary);
276
+ opacity: 0.4;
277
+ }
278
+
279
+ /* =========================== */
280
+ /* DARK MODE SUPPORT */
281
+ /* =========================== */
282
+
283
+ [data-theme='dark'] .ina-year-picker__trigger {
284
+ background-color: var(--ina-background-primary);
285
+ border-color: var(--ina-stroke-primary);
286
+ color: var(--ina-content-primary);
287
+ }
288
+
289
+ [data-theme='dark'] .ina-year-picker__trigger:hover {
290
+ background-color: var(--ina-background-tertiary);
291
+ border-color: var(--ina-stroke-secondary);
292
+ }
293
+
294
+ [data-theme='dark'] .ina-year-picker__trigger:focus {
295
+ border-color: var(--ina-content-primary);
296
+ box-shadow: 0 1px 2px 0 rgba(31, 31, 31, 0.1), 0 0 0 3px #f3f3f3;
297
+ }
298
+
299
+ [data-theme='dark'] .ina-year-picker__panel {
300
+ background-color: var(--ina-background-primary);
301
+ border-color: var(--ina-stroke-primary);
302
+ box-shadow: var(--ina-shadow-lg);
303
+ }
304
+
305
+ [data-theme='dark'] .ina-year-picker__header {
306
+ border-bottom-color: var(--ina-stroke-primary);
307
+ }
308
+
309
+ [data-theme='dark'] .ina-year-picker__nav-button {
310
+ color: var(--ina-content-primary);
311
+ }
312
+
313
+ [data-theme='dark'] .ina-year-picker__nav-button:hover:not(:disabled) {
314
+ background-color: var(--ina-background-tertiary);
315
+ }
316
+
317
+ [data-theme='dark'] .ina-year-picker__decade-range {
318
+ color: var(--ina-content-primary);
319
+ }
320
+
321
+ [data-theme='dark'] .ina-year-picker__year-option {
322
+ color: var(--ina-content-primary);
323
+ }
324
+
325
+ [data-theme='dark'] .ina-year-picker__year-option:hover:not(:disabled) {
326
+ background-color: var(--ina-background-tertiary);
327
+ }
328
+
329
+ [data-theme='dark'] .ina-year-picker__year-option--selected {
330
+ background-color: var(--ina-content-primary);
331
+ color: var(--ina-white);
332
+ }
333
+
334
+ [data-theme='dark'] .ina-year-picker__year-option--selected:hover {
335
+ font-weight: var(--ina-font-semibold);
336
+ }
337
+
338
+ [data-theme='dark']
339
+ .ina-year-picker__year-option--hovered:not(
340
+ .ina-year-picker__year-option--selected
341
+ ) {
342
+ background-color: var(--ina-primary-100);
343
+ color: var(--ina-primary-800);
344
+ }
345
+
346
+ [data-theme='dark'] .ina-year-picker__year-option--disabled {
347
+ color: var(--ina-content-tertiary);
348
+ opacity: 0.4;
349
+ background-color: var(--ina-background-secondary);
350
+ }
351
+
352
+ [data-theme='dark'] .ina-year-picker__year-option--disabled:hover {
353
+ background-color: var(--ina-background-secondary);
354
+ opacity: 0.4;
355
+ }
356
+
357
+ /* =========================== */
358
+ /* RESPONSIVE DESIGN */
359
+ /* =========================== */
360
+
361
+ @media (max-width: 640px) {
362
+ .ina-year-picker__panel {
363
+ width: calc(100vw - 2rem);
364
+ max-width: 320px;
365
+ }
366
+
367
+ .ina-year-picker__grid {
368
+ grid-template-columns: repeat(4, 1fr);
369
+ gap: var(--ina-spacing-1);
370
+ padding: 0.375rem; /* 6px */
371
+ }
372
+
373
+ .ina-year-picker__year-option {
374
+ min-height: 36px;
375
+ font-size: 10px;
376
+ padding: 4px 8px;
377
+ }
378
+
379
+ .ina-year-picker__header {
380
+ margin-bottom: var(--ina-spacing-3);
381
+ padding-bottom: 0.375rem; /* 6px */
382
+ padding: var(--ina-spacing-3);
383
+ }
384
+
385
+ .ina-year-picker__nav-button {
386
+ width: 28px;
387
+ height: 28px;
388
+ padding: var(--ina-spacing-1);
389
+ }
390
+ }
391
+
392
+ @media (max-width: 480px) {
393
+ .ina-year-picker__panel {
394
+ width: calc(100vw - 1.5rem);
395
+ max-width: 280px;
396
+ }
397
+
398
+ .ina-year-picker__grid {
399
+ grid-template-columns: repeat(4, 1fr);
400
+ gap: 0.25rem;
401
+ padding: var(--ina-spacing-1);
402
+ }
403
+
404
+ .ina-year-picker__year-option {
405
+ min-height: 32px;
406
+ font-size: 10px;
407
+ padding: 4px 8px;
408
+ }
409
+
410
+ .ina-year-picker__header {
411
+ margin-bottom: var(--ina-spacing-2);
412
+ }
413
+
414
+ .ina-year-picker__nav-button {
415
+ width: 24px;
416
+ height: 24px;
417
+ padding: 0.25rem;
418
+ }
419
+
420
+ .ina-year-picker__decade-range {
421
+ font-size: var(--ina-font-xs);
422
+ }
423
+ }
package/src/index.css ADDED
@@ -0,0 +1,3 @@
1
+ /* Main entry point for @idds/styles */
2
+ @import './colors/index.css';
3
+ @import './components/reset.css';
@@ -0,0 +1,43 @@
1
+ /**
2
+ * BGN Color Tokens for Tailwind CSS v4
3
+ * Banking & Financial Services Theme
4
+ */
5
+
6
+ @theme {
7
+ /* Primary shades */
8
+ --color-primary-50: var(--ina-primary-50);
9
+ --color-primary-100: var(--ina-primary-100);
10
+ --color-primary-200: var(--ina-primary-200);
11
+ --color-primary-300: var(--ina-primary-300);
12
+ --color-primary-400: var(--ina-primary-400);
13
+ --color-primary-500: var(--ina-primary-500);
14
+ --color-primary-600: var(--ina-primary-600);
15
+ --color-primary-700: var(--ina-primary-700);
16
+ --color-primary-800: var(--ina-primary-800);
17
+ --color-primary-900: var(--ina-primary-900);
18
+
19
+ /* Brand-specific colors */
20
+ --color-bgn-brand-primary: var(--ina-bgn-brand-primary);
21
+ --color-bgn-stroke-primary: var(--ina-bgn-stroke-primary);
22
+ --color-background-tertiary: var(--ina-background-tertiary);
23
+
24
+ /* Content colors */
25
+ --color-content-light-primary: var(--ina-content-primary);
26
+ --color-content-light-secondary: var(--ina-content-secondary);
27
+ --color-content-dark-disabled: var(--ina-content-tertiary);
28
+
29
+ /* Neutral colors */
30
+ --color-neutral-500: var(--ina-neutral-500);
31
+ --color-neutral-700: var(--ina-neutral-700);
32
+ --color-neutral-900: var(--ina-neutral-900);
33
+
34
+ /* Sentiment colors */
35
+ --color-sentiment-info-400: var(--ina-info-400);
36
+ --color-sentiment-info-500: var(--ina-info-500);
37
+ --color-sentiment-positive-500: var(--ina-positive-500);
38
+ --color-sentiment-warning-500: var(--ina-warning-500);
39
+
40
+ /* Accent colors */
41
+ --color-accent-coral-orange: var(--ina-accent-coral-orange);
42
+ --color-accent-yellow: var(--ina-accent-yellow);
43
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * BKN Color Tokens for Tailwind CSS v4
3
+ * Badan Kepegawaian Negara Theme
4
+ */
5
+
6
+ @theme {
7
+ /* Primary shades */
8
+ --color-primary-25: var(--ina-primary-25);
9
+ --color-primary-50: var(--ina-primary-50);
10
+ --color-primary-100: var(--ina-primary-100);
11
+ --color-primary-200: var(--ina-primary-200);
12
+ --color-primary-300: var(--ina-primary-300);
13
+ --color-primary-400: var(--ina-primary-400);
14
+ --color-primary-500: var(--ina-primary-500);
15
+ --color-primary-600: var(--ina-primary-600);
16
+ --color-primary-700: var(--ina-primary-700);
17
+ --color-primary-800: var(--ina-primary-800);
18
+ --color-primary-900: var(--ina-primary-900);
19
+
20
+ /* Secondary shades */
21
+ --color-secondary-25: var(--ina-secondary-25);
22
+ --color-secondary-50: var(--ina-secondary-50);
23
+ --color-secondary-100: var(--ina-secondary-100);
24
+ --color-secondary-200: var(--ina-secondary-200);
25
+ --color-secondary-300: var(--ina-secondary-300);
26
+ --color-secondary-400: var(--ina-secondary-400);
27
+ --color-secondary-500: var(--ina-secondary-500);
28
+ --color-secondary-600: var(--ina-secondary-600);
29
+ --color-secondary-700: var(--ina-secondary-700);
30
+ --color-secondary-800: var(--ina-secondary-800);
31
+ --color-secondary-900: var(--ina-secondary-900);
32
+
33
+ /* Interactive hover */
34
+ --color-bkn-brand-hover: var(--ina-bkn-brand-hover);
35
+ --color-bkn-neutral-hover: var(--ina-bkn-neutral-hover);
36
+ }
37
+