@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,369 @@
1
+ /**
2
+ * Dropdown Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-dropdown {
7
+ /* Base dropdown container */
8
+ position: relative;
9
+ display: inline-block;
10
+ text-align: left;
11
+ }
12
+
13
+ /* Trigger variants */
14
+ .ina-dropdown__trigger {
15
+ cursor: pointer;
16
+ transition: opacity var(--ina-transition-base);
17
+ }
18
+
19
+ .ina-dropdown__trigger--disabled {
20
+ opacity: 0.5;
21
+ cursor: not-allowed;
22
+ }
23
+
24
+ /* Menu container */
25
+ .ina-dropdown__menu {
26
+ position: absolute;
27
+ background-color: var(--ina-background-primary);
28
+ border: 1px solid var(--ina-stroke-primary);
29
+ border-radius: var(--ina-radius-lg);
30
+ box-shadow: var(--ina-shadow-lg);
31
+ z-index: 1000;
32
+ opacity: 0;
33
+ transform: translateY(-0.5rem);
34
+ transition: opacity var(--ina-transition-duration-200) ease-out,
35
+ transform var(--ina-transition-duration-200) ease-out;
36
+ }
37
+
38
+ .ina-dropdown__menu--visible {
39
+ opacity: 1;
40
+ transform: translateY(0);
41
+ }
42
+
43
+ /* Positioning variants */
44
+ .ina-dropdown__menu--position-bottom {
45
+ top: 100%;
46
+ margin-top: var(--ina-spacing-2);
47
+ }
48
+
49
+ .ina-dropdown__menu--position-top {
50
+ bottom: 100%;
51
+ margin-bottom: var(--ina-spacing-2);
52
+ transform: translateY(0.5rem);
53
+ }
54
+
55
+ .ina-dropdown__menu--position-bottom.ina-dropdown__menu--visible {
56
+ transform: translateY(0);
57
+ }
58
+
59
+ .ina-dropdown__menu--position-top.ina-dropdown__menu--visible {
60
+ transform: translateY(0);
61
+ }
62
+
63
+ .ina-dropdown__menu--align-right {
64
+ left: 0;
65
+ }
66
+
67
+ .ina-dropdown__menu--align-left {
68
+ right: 0;
69
+ }
70
+
71
+ /* Width variants */
72
+ .ina-dropdown__menu--width-auto {
73
+ width: auto;
74
+ min-width: 160px;
75
+ }
76
+
77
+ .ina-dropdown__menu--width-sm {
78
+ width: 120px;
79
+ }
80
+
81
+ .ina-dropdown__menu--width-md {
82
+ width: 160px;
83
+ }
84
+
85
+ .ina-dropdown__menu--width-lg {
86
+ width: 200px;
87
+ }
88
+
89
+ .ina-dropdown__menu--width-xl {
90
+ width: 240px;
91
+ }
92
+
93
+ .ina-dropdown__menu--width-full {
94
+ width: 100%;
95
+ }
96
+
97
+ /* Menu list */
98
+ .ina-dropdown__list {
99
+ padding: var(--ina-spacing-1) 0;
100
+ margin: 0;
101
+ list-style: none;
102
+ }
103
+
104
+ /* Menu items */
105
+ .ina-dropdown__item {
106
+ width: 100%;
107
+ text-align: left;
108
+ padding: var(--ina-spacing-2) var(--ina-spacing-4);
109
+ font-size: var(--ina-font-sm);
110
+ color: var(--ina-content-primary);
111
+ background: none;
112
+ border: none;
113
+ cursor: pointer;
114
+ user-select: none;
115
+ transition: background-color var(--ina-transition-base);
116
+ display: flex;
117
+ align-items: center;
118
+ gap: var(--ina-spacing-2);
119
+ }
120
+
121
+ .ina-dropdown__item:hover {
122
+ background-color: var(--ina-neutral-100);
123
+ }
124
+
125
+ .ina-dropdown__item:focus {
126
+ outline: none;
127
+ background-color: var(--ina-primary-100);
128
+ color: var(--ina-primary-600);
129
+ }
130
+
131
+ .ina-dropdown__item:active {
132
+ background-color: var(--ina-neutral-200);
133
+ }
134
+
135
+ /* Item variants */
136
+ .ina-dropdown__item--danger {
137
+ color: var(--ina-negative-600);
138
+ }
139
+
140
+ .ina-dropdown__item--danger:hover {
141
+ background-color: var(--ina-negative-100);
142
+ }
143
+
144
+ .ina-dropdown__item--warning {
145
+ color: var(--ina-warning-600);
146
+ }
147
+
148
+ .ina-dropdown__item--warning:hover {
149
+ background-color: var(--ina-warning-100);
150
+ }
151
+
152
+ .ina-dropdown__item--success {
153
+ color: var(--ina-positive-600);
154
+ }
155
+
156
+ .ina-dropdown__item--success:hover {
157
+ background-color: var(--ina-positive-100);
158
+ }
159
+
160
+ .ina-dropdown__item--disabled {
161
+ opacity: 0.5;
162
+ cursor: not-allowed;
163
+ color: var(--ina-neutral-400);
164
+ }
165
+
166
+ .ina-dropdown__item--disabled:hover {
167
+ background-color: transparent;
168
+ }
169
+
170
+ /* Item with icons */
171
+ .ina-dropdown__item-icon {
172
+ flex-shrink: 0;
173
+ width: 16px;
174
+ height: 16px;
175
+ }
176
+
177
+ .ina-dropdown__item-content {
178
+ flex: 1;
179
+ min-width: 0;
180
+ }
181
+
182
+ .ina-dropdown__item-description {
183
+ font-size: var(--ina-font-xs);
184
+ color: var(--ina-content-secondary);
185
+ margin-top: var(--ina-spacing-0-5);
186
+ }
187
+
188
+ /* Separators */
189
+ .ina-dropdown__separator {
190
+ height: 1px;
191
+ background-color: var(--ina-stroke-primary);
192
+ margin: var(--ina-spacing-1) var(--ina-spacing-4);
193
+ }
194
+
195
+ /* Dividers */
196
+ .ina-dropdown__divider {
197
+ height: var(--ina-spacing-4);
198
+ }
199
+
200
+ /* Animation variants */
201
+ .ina-dropdown__menu--animation-fade {
202
+ transform: translateY(0);
203
+ transition: opacity var(--ina-transition-duration-200) ease-out;
204
+ }
205
+
206
+ .ina-dropdown__menu--animation-slide-up {
207
+ transform: translateY(1rem);
208
+ transition: opacity var(--ina-transition-duration-200) ease-out,
209
+ transform var(--ina-transition-duration-200) ease-out;
210
+ }
211
+
212
+ .ina-dropdown__menu--animation-slide-down {
213
+ transform: translateY(-1rem);
214
+ transition: opacity var(--ina-transition-duration-200) ease-out,
215
+ transform var(--ina-transition-duration-200) ease-out;
216
+ }
217
+
218
+ .ina-dropdown__menu--animation-scale {
219
+ transform: scale(0.95);
220
+ transition: opacity var(--ina-transition-duration-200) ease-out,
221
+ transform var(--ina-transition-duration-200) ease-out;
222
+ }
223
+
224
+ /* All visible states */
225
+ .ina-dropdown__menu--animation-fade.ina-dropdown__menu--visible,
226
+ .ina-dropdown__menu--animation-slide-up.ina-dropdown__menu--visible,
227
+ .ina-dropdown__menu--animation-slide-down.ina-dropdown__menu--visible,
228
+ .ina-dropdown__menu--animation-scale.ina-dropdown__menu--visible {
229
+ transform: translateY(0) scale(1);
230
+ }
231
+
232
+ /* Backdrop click area */
233
+ .ina-dropdown__backdrop {
234
+ position: fixed;
235
+ inset: 0;
236
+ z-index: 999;
237
+ }
238
+
239
+ /* Grouped items */
240
+ .ina-dropdown__group {
241
+ margin: var(--ina-spacing-2) 0;
242
+ }
243
+
244
+ .ina-dropdown__group:first-child {
245
+ margin-top: 0;
246
+ }
247
+
248
+ .ina-dropdown__group:last-child {
249
+ margin-bottom: 0;
250
+ }
251
+
252
+ .ina-dropdown__group-header {
253
+ padding: var(--ina-spacing-1) var(--ina-spacing-4) var(--ina-spacing-0-5);
254
+ font-size: var(--ina-font-xs);
255
+ font-weight: var(--ina-font-medium);
256
+ color: var(--ina-content-secondary);
257
+ text-transform: uppercase;
258
+ letter-spacing: 0.05em;
259
+ }
260
+
261
+ /* Loading states */
262
+ .ina-dropdown__loading {
263
+ padding: var(--ina-spacing-2) var(--ina-spacing-4);
264
+ text-align: center;
265
+ color: var(--ina-content-secondary);
266
+ font-size: var(--ina-font-sm);
267
+ }
268
+
269
+ .ina-dropdown__spinner {
270
+ display: inline-block;
271
+ width: 16px;
272
+ height: 16px;
273
+ border: 2px solid var(--ina-neutral-300);
274
+ border-radius: 50%;
275
+ border-top-color: var(--ina-primary-500);
276
+ animation: spin 1s linear infinite;
277
+ }
278
+
279
+ @keyframes spin {
280
+ to {
281
+ transform: rotate(360deg);
282
+ }
283
+ }
284
+
285
+ /* Responsive adjustments */
286
+ @media (max-width: 640px) {
287
+ .ina-dropdown__menu--width-lg,
288
+ .ina-dropdown__menu--width-xl {
289
+ width: calc(100vw - var(--ina-spacing-8));
290
+ max-width: 300px;
291
+ }
292
+ }
293
+
294
+ @media (max-width: 768px) {
295
+ .ina-dropdown__item {
296
+ padding: var(--ina-spacing-3) var(--ina-spacing-4);
297
+ font-size: var(--ina-font-base);
298
+ }
299
+ }
300
+
301
+ /* Scrollable content */
302
+ .ina-dropdown__menu--scrollable {
303
+ max-height: 300px;
304
+ overflow-y: auto;
305
+ scrollbar-width: thin;
306
+ scrollbar-color: var(--ina-neutral-400) var(--ina-neutral-100);
307
+ }
308
+
309
+ .ina-dropdown__menu--scrollable::-webkit-scrollbar {
310
+ width: 6px;
311
+ }
312
+
313
+ .ina-dropdown__menu--scrollable::-webkit-scrollbar-track {
314
+ background: var(--ina-neutral-100);
315
+ border-radius: 3px;
316
+ }
317
+
318
+ .ina-dropdown__menu--scrollable::-webkit-scrollbar-thumb {
319
+ background-color: var(--ina-neutral-400);
320
+ border-radius: 3px;
321
+ }
322
+
323
+ .ina-dropdown__menu--scrollable::-webkit-scrollbar-thumb:hover {
324
+ background-color: var(--ina-neutral-500);
325
+ }
326
+
327
+ /* Dark mode support */
328
+ /* @media (prefers-color-scheme: dark) {
329
+ .ina-dropdown__menu {
330
+ background-color: var(--ina-background-dark-primary);
331
+ border-color: var(--ina-stroke-primary-dark);
332
+ }
333
+
334
+ .ina-dropdown__item {
335
+ color: var(--ina-content-dark-primary);
336
+ }
337
+
338
+ .ina-dropdown__item:hover {
339
+ background-color: var(--ina-neutral-800);
340
+ }
341
+
342
+ .ina-dropdown__item:focus {
343
+ background-color: var(--ina-primary-900);
344
+ color: var(--ina-primary-400);
345
+ }
346
+
347
+ .ina-dropdown__item--disabled {
348
+ color: var(--ina-content-dark-disabled);
349
+ }
350
+
351
+ .ina-dropdown__separator {
352
+ background-color: var(--ina-stroke-primary-dark);
353
+ }
354
+
355
+ .ina-dropdown__group-header {
356
+ color: var(--ina-content-dark-secondary);
357
+ }
358
+
359
+ .ina-dropdown__loading {
360
+ color: var(--ina-content-dark-secondary);
361
+ }
362
+ } */
363
+
364
+ /* Focus management */
365
+ .ina-dropdown__menu:focus-within .ina-dropdown__item:focus {
366
+ background-color: var(--ina-primary-100);
367
+ outline: 2px solid var(--ina-primary-500);
368
+ outline-offset: -2px;
369
+ }
@@ -0,0 +1,347 @@
1
+ /**
2
+ * FieldInputTable Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-field-input-table {
7
+ /* Base container styling */
8
+ display: flex;
9
+ align-items: center;
10
+ gap: var(--ina-spacing-2);
11
+ }
12
+
13
+ /* Input wrapper */
14
+ .ina-field-input-table__wrapper {
15
+ flex: 1;
16
+ display: flex;
17
+ flex-direction: column;
18
+ }
19
+
20
+ /* Label styling */
21
+ .ina-field-input-table__label {
22
+ font-size: var(--ina-font-sm);
23
+ color: var(--ina-neutral-400);
24
+ margin-bottom: var(--ina-spacing-1);
25
+ user-select: none;
26
+ font-weight: var(--ina-font-normal);
27
+ }
28
+
29
+ /* Input field styling */
30
+ .ina-field-input-table__input {
31
+ width: 100%;
32
+ border: none;
33
+ border-bottom: 2px solid var(--ina-stroke-primary);
34
+ padding: var(--ina-spacing-1) 0;
35
+ background: transparent;
36
+ outline: none;
37
+ font-size: var(--ina-font-base);
38
+ color: var(--ina-content-primary);
39
+ transition: border-color var(--ina-transition-base);
40
+ }
41
+
42
+ .ina-field-input-table__input::placeholder {
43
+ color: var(--ina-content-tertiary);
44
+ }
45
+
46
+ .ina-field-input-table__input:focus {
47
+ border-bottom-color: var(--ina-primary-500);
48
+ }
49
+
50
+ .ina-field-input-table__input:hover:not(:focus) {
51
+ border-bottom-color: var(--ina-stroke-secondary);
52
+ }
53
+
54
+ /* Invalid/error state */
55
+ .ina-field-input-table__input--invalid {
56
+ border-bottom-color: var(--ina-negative-500);
57
+ }
58
+
59
+ .ina-field-input-table__input--invalid:focus {
60
+ border-bottom-color: var(--ina-negative-500);
61
+ }
62
+
63
+ /* Disabled state */
64
+ .ina-field-input-table__input--disabled {
65
+ opacity: 0.5;
66
+ cursor: not-allowed;
67
+ border-bottom-color: var(--ina-neutral-400);
68
+ }
69
+
70
+ .ina-field-input-table__input--disabled::placeholder {
71
+ color: var(--ina-neutral-400);
72
+ }
73
+
74
+ /* Action buttons container */
75
+ .ina-field-input-table__actions {
76
+ display: flex;
77
+ align-items: center;
78
+ gap: var(--ina-spacing-1);
79
+ flex-shrink: 0;
80
+ }
81
+
82
+ /* Individual action buttons */
83
+ .ina-field-input-table__action-button {
84
+ padding: var(--ina-spacing-1);
85
+ border: none;
86
+ background: transparent;
87
+ outline: none;
88
+ cursor: pointer;
89
+ border-radius: var(--ina-radius-base);
90
+ transition: background-color var(--ina-transition-base);
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: center;
94
+ }
95
+
96
+ .ina-field-input-table__action-button:hover {
97
+ background-color: var(--ina-neutral-100);
98
+ }
99
+
100
+ .ina-field-input-table__action-button:focus {
101
+ outline: 2px solid var(--ina-primary-500);
102
+ outline-offset: 2px;
103
+ }
104
+
105
+ .ina-field-input-table__action-button:active {
106
+ background-color: var(--ina-neutral-200);
107
+ }
108
+
109
+ /* Success/Commit button */
110
+ .ina-field-input-table__action-button--commit {
111
+ /* Base styles applied by parent class */
112
+ }
113
+
114
+ .ina-field-input-table__action-button--commit:focus {
115
+ outline-color: var(--ina-positive-500);
116
+ }
117
+
118
+ /* Cancel button */
119
+ .ina-field-input-table__action-button--cancel {
120
+ /* Base styles applied by parent class */
121
+ }
122
+
123
+ .ina-field-input-table__action-button--cancel:focus {
124
+ outline-color: var(--ina-negative-500);
125
+ }
126
+
127
+ /* Button hover states */
128
+ .ina-field-input-table__action-button--commit:hover
129
+ .ina-field-input-table__icon--commit {
130
+ color: var(--ina-positive-600);
131
+ }
132
+
133
+ .ina-field-input-table__action-button--cancel:hover
134
+ .ina-field-input-table__icon--cancel {
135
+ color: var(--ina-negative-600);
136
+ }
137
+
138
+ /* Icon styling */
139
+ .ina-field-input-table__icon {
140
+ width: 20px;
141
+ height: 20px;
142
+ transition: color var(--ina-transition-base);
143
+ }
144
+
145
+ .ina-field-input-table__icon--commit {
146
+ color: var(--ina-positive-500);
147
+ }
148
+
149
+ .ina-field-input-table__icon--cancel {
150
+ color: var(--ina-negative-500);
151
+ }
152
+
153
+ /* Validation feedback */
154
+ .ina-field-input-table__validation-message {
155
+ font-size: var(--ina-font-xs);
156
+ margin-top: var(--ina-spacing-0-5);
157
+ display: flex;
158
+ align-items: center;
159
+ gap: var(--ina-spacing-1);
160
+ }
161
+
162
+ .ina-field-input-table__validation-message--error {
163
+ color: var(--ina-negative-600);
164
+ }
165
+
166
+ .ina-field-input-table__validation-message--success {
167
+ color: var(--ina-positive-600);
168
+ }
169
+
170
+ .ina-field-input-table__validation-message--warning {
171
+ color: var(--ina-warning-600);
172
+ }
173
+
174
+ /* Size variants */
175
+ .ina-field-input-table--size-sm .ina-field-input-table__input {
176
+ font-size: var(--ina-font-sm);
177
+ padding: var(--ina-spacing-0-5) 0;
178
+ }
179
+
180
+ .ina-field-input-table--size-sm .ina-field-input-table__label {
181
+ font-size: var(--ina-font-xs);
182
+ margin-bottom: var(--ina-spacing-0-5);
183
+ }
184
+
185
+ .ina-field-input-table--size-sm .ina-field-input-table__icon {
186
+ width: 16px;
187
+ height: 16px;
188
+ }
189
+
190
+ .ina-field-input-table--size-lg .ina-field-input-table__input {
191
+ font-size: var(--ina-font-lg);
192
+ padding: var(--ina-spacing-2) 0;
193
+ }
194
+
195
+ .ina-field-input-table--size-lg .ina-field-input-table__label {
196
+ font-size: var(--ina-font-base);
197
+ margin-bottom: var(--ina-spacing-2);
198
+ }
199
+
200
+ .ina-field-input-table--size-lg .ina-field-input-table__icon {
201
+ width: 24px;
202
+ height: 24px;
203
+ }
204
+
205
+ /* Variant styles */
206
+ .ina-field-input-table--variant-outlined .ina-field-input-table__input {
207
+ border: 1px solid var(--ina-stroke-primary);
208
+ border-radius: var(--ina-radius-base);
209
+ padding: var(--ina-spacing-2) var(--ina-spacing-3);
210
+ border-bottom: 1px solid var(--ina-stroke-primary);
211
+ }
212
+
213
+ .ina-field-input-table--variant-filled .ina-field-input-table__input {
214
+ background-color: var(--ina-neutral-50);
215
+ border: 1px solid var(--ina-neutral-200);
216
+ border-radius: var(--ina-radius-base);
217
+ padding: var(--ina-spacing-2) var(--ina-spacing-3);
218
+ }
219
+
220
+ .ina-field-input-table--variant-filled .ina-field-input-table__input:focus {
221
+ background-color: var(--ina-background-primary);
222
+ border-color: var(--ina-primary-500);
223
+ }
224
+
225
+ /* Loading state */
226
+ .ina-field-input-table--loading .ina-field-input-table__input {
227
+ opacity: 0.6;
228
+ cursor: not-allowed;
229
+ }
230
+
231
+ .ina-field-input-table--loading .ina-field-input-table__action-button {
232
+ opacity: 0.6;
233
+ cursor: not-allowed;
234
+ }
235
+
236
+ /* Compact mode - remove label */
237
+ .ina-field-input-table--compact .ina-field-input-table__wrapper {
238
+ gap: var(--ina-spacing-1);
239
+ }
240
+
241
+ .ina-field-input-table--compact .ina-field-input-table__label {
242
+ display: none;
243
+ }
244
+
245
+ .ina-field-input-table--compact .ina-field-input-table__input {
246
+ padding: var(--ina-spacing-0-5) 0;
247
+ }
248
+
249
+ /* Auto-sizing input */
250
+ .ina-field-input-table__input--auto-size {
251
+ width: 1px;
252
+ min-width: 60px;
253
+ max-width: 300px;
254
+ resize: none;
255
+ }
256
+
257
+ /* Keyboard navigation */
258
+ .ina-field-input-table__input:focus[tabindex='-1'] {
259
+ border-bottom-color: var(--ina-primary-500);
260
+ background-color: var(--ina-primary-50);
261
+ }
262
+
263
+ /* Responsive adjustments */
264
+ @media (max-width: 640px) {
265
+ .ina-field-input-table {
266
+ flex-direction: column;
267
+ align-items: stretch;
268
+ gap: var(--ina-spacing-2);
269
+ }
270
+
271
+ .ina-field-input-table__actions {
272
+ justify-content: flex-end;
273
+ }
274
+
275
+ .ina-field-input-table__input {
276
+ font-size: var(--ina-font-base);
277
+ }
278
+ }
279
+
280
+ /* Dark mode support */
281
+ /* @media (prefers-color-scheme: dark) {
282
+ .ina-field-input-table__label {
283
+ color: var(--ina-content-dark-disabled);
284
+ }
285
+
286
+ .ina-field-input-table__input {
287
+ color: var(--ina-content-dark-primary);
288
+ border-bottom-color: var(--ina-stroke-primary-dark);
289
+ }
290
+
291
+ .ina-field-input-table__input::placeholder {
292
+ color: var(--ina-content-dark-placeholder);
293
+ }
294
+
295
+ .ina-field-input-table__input:focus {
296
+ border-bottom-color: var(--ina-primary-400);
297
+ }
298
+
299
+ .ina-field-input-table__input:hover:not(:focus) {
300
+ border-bottom-color: var(--ina-stroke-secondary-dark);
301
+ }
302
+
303
+ .ina-field-input-table__action-button:hover {
304
+ background-color: var(--ina-neutral-800);
305
+ }
306
+
307
+ .ina-field-input-table--variant-filled .ina-field-input-table__input {
308
+ background-color: var(--ina-neutral-900);
309
+ border-color: var(--ina-neutral-700);
310
+ }
311
+
312
+ .ina-field-input-table--variant-filled .ina-field-input-table__input:focus {
313
+ background-color: var(--ina-background-dark-primary);
314
+ border-color: var(--ina-primary-400);
315
+ }
316
+ } */
317
+
318
+ /* Focus management for accessibility */
319
+ .ina-field-input-table:focus-within .ina-field-input-table__action-button {
320
+ opacity: 1;
321
+ }
322
+
323
+ .ina-field-input-table:not(:focus-within)
324
+ .ina-field-input-table__action-button {
325
+ opacity: 0.7;
326
+ }
327
+
328
+ .ina-field-input-table:not(:focus-within)
329
+ .ina-field-input-table__action-button:hover {
330
+ opacity: 1;
331
+ }
332
+
333
+ /* Animation for state changes */
334
+ .ina-field-input-table__input {
335
+ transition: border-color var(--ina-transition-base),
336
+ background-color var(--ina-transition-base),
337
+ opacity var(--ina-transition-base);
338
+ }
339
+
340
+ .ina-field-input-table__action-button {
341
+ transition: background-color var(--ina-transition-base),
342
+ opacity var(--ina-transition-base), transform var(--ina-transition-base);
343
+ }
344
+
345
+ .ina-field-input-table__action-button:active {
346
+ transform: scale(0.95);
347
+ }