@idds/styles 1.2.11 → 1.2.13

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 (96) hide show
  1. package/README.md +178 -42
  2. package/dist/base.css +1071 -0
  3. package/dist/base.min.css +1 -0
  4. package/dist/index.css +14801 -0
  5. package/dist/index.min.css +15 -0
  6. package/dist/tailwind/css/bgn.min.css +1 -0
  7. package/dist/tailwind/css/bkn.min.css +1 -0
  8. package/dist/tailwind/css/idds.min.css +1 -0
  9. package/dist/tailwind/css/inagov.min.css +1 -0
  10. package/dist/tailwind/css/inaku.min.css +1 -0
  11. package/dist/tailwind/css/inapas.min.css +1 -0
  12. package/dist/tailwind/css/lan.min.css +1 -0
  13. package/dist/tailwind/css/pan-rb.min.css +1 -0
  14. package/package.json +31 -21
  15. package/src/colors/brands/bgn.css +0 -30
  16. package/src/colors/brands/bkn.css +0 -33
  17. package/src/colors/brands/inagov.css +0 -40
  18. package/src/colors/brands/inaku.css +0 -29
  19. package/src/colors/brands/inapas.css +0 -29
  20. package/src/colors/brands/lan.css +0 -39
  21. package/src/colors/brands/pan-rb.css +0 -31
  22. package/src/colors/index.css +0 -11
  23. package/src/colors/primitives/index.css +0 -175
  24. package/src/colors/product/index.css +0 -205
  25. package/src/colors/utilities/index.css +0 -77
  26. package/src/components/accordion-card.css +0 -99
  27. package/src/components/accordion.css +0 -120
  28. package/src/components/action-dropdown.css +0 -140
  29. package/src/components/alert.css +0 -180
  30. package/src/components/avatar.css +0 -182
  31. package/src/components/badge.css +0 -247
  32. package/src/components/bottom-sheet.css +0 -61
  33. package/src/components/breadcrumb.css +0 -97
  34. package/src/components/button-group.css +0 -130
  35. package/src/components/button.css +0 -241
  36. package/src/components/card.css +0 -576
  37. package/src/components/carousel.css +0 -100
  38. package/src/components/chart.css +0 -81
  39. package/src/components/checkbox.css +0 -211
  40. package/src/components/chip.css +0 -245
  41. package/src/components/collapse.css +0 -84
  42. package/src/components/confirmation.css +0 -131
  43. package/src/components/date-picker.css +0 -1059
  44. package/src/components/divider.css +0 -174
  45. package/src/components/drawer.css +0 -752
  46. package/src/components/dropdown.css +0 -370
  47. package/src/components/field-input-table.css +0 -347
  48. package/src/components/file-upload.css +0 -333
  49. package/src/components/input-search.css +0 -428
  50. package/src/components/linear-progress-indicator.css +0 -34
  51. package/src/components/modal.css +0 -507
  52. package/src/components/month-picker.css +0 -326
  53. package/src/components/multiple-choice-grid.css +0 -383
  54. package/src/components/one-time-password.css +0 -119
  55. package/src/components/pagination.css +0 -429
  56. package/src/components/password-input.css +0 -477
  57. package/src/components/phone-input.css +0 -412
  58. package/src/components/progress-bar.css +0 -447
  59. package/src/components/radio-input.css +0 -277
  60. package/src/components/reset.css +0 -431
  61. package/src/components/select-dropdown.css +0 -663
  62. package/src/components/select-option.css +0 -217
  63. package/src/components/single-file-upload.css +0 -186
  64. package/src/components/skeleton.css +0 -488
  65. package/src/components/spinner.css +0 -450
  66. package/src/components/stepper.css +0 -260
  67. package/src/components/tab-horizontal.css +0 -278
  68. package/src/components/tab-vertical.css +0 -261
  69. package/src/components/table-progress-bar.css +0 -48
  70. package/src/components/table.css +0 -538
  71. package/src/components/text-area.css +0 -220
  72. package/src/components/text-field.css +0 -278
  73. package/src/components/theme-toggle.css +0 -259
  74. package/src/components/time-picker.css +0 -436
  75. package/src/components/toast.css +0 -265
  76. package/src/components/toggle.css +0 -195
  77. package/src/components/tooltip.css +0 -343
  78. package/src/components/year-picker.css +0 -424
  79. package/src/index.css +0 -3
  80. /package/{src → dist}/tailwind/css/bgn.css +0 -0
  81. /package/{src → dist}/tailwind/css/bkn.css +0 -0
  82. /package/{src → dist}/tailwind/css/idds.css +0 -0
  83. /package/{src → dist}/tailwind/css/inagov.css +0 -0
  84. /package/{src → dist}/tailwind/css/inaku.css +0 -0
  85. /package/{src → dist}/tailwind/css/inapas.css +0 -0
  86. /package/{src → dist}/tailwind/css/lan.css +0 -0
  87. /package/{src → dist}/tailwind/css/pan-rb.css +0 -0
  88. /package/{src → dist}/tailwind/ts/bgn.ts +0 -0
  89. /package/{src → dist}/tailwind/ts/bkn.ts +0 -0
  90. /package/{src → dist}/tailwind/ts/default.ts +0 -0
  91. /package/{src → dist}/tailwind/ts/idds.ts +0 -0
  92. /package/{src → dist}/tailwind/ts/inagov.ts +0 -0
  93. /package/{src → dist}/tailwind/ts/inaku.ts +0 -0
  94. /package/{src → dist}/tailwind/ts/inapas.ts +0 -0
  95. /package/{src → dist}/tailwind/ts/lan.ts +0 -0
  96. /package/{src → dist}/tailwind/ts/pan-rb.ts +0 -0
@@ -1,752 +0,0 @@
1
- /**
2
- * Drawer Component Styles
3
- * Menggunakan BEM naming convention dengan prefix "ina-"
4
- */
5
-
6
- .ina-drawer {
7
- /* Base overlay container */
8
- position: fixed;
9
- inset: 0;
10
- z-index: 1000;
11
- display: flex;
12
- animation: overlayFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
13
- }
14
-
15
- @keyframes overlayFadeIn {
16
- from {
17
- opacity: 0;
18
- }
19
- to {
20
- opacity: 1;
21
- }
22
- }
23
-
24
- /* Position variants */
25
- .ina-drawer--position-top {
26
- align-items: flex-start;
27
- justify-content: center;
28
- }
29
-
30
- .ina-drawer--position-bottom {
31
- align-items: flex-end;
32
- justify-content: center;
33
- }
34
-
35
- .ina-drawer--position-left {
36
- align-items: center;
37
- justify-content: flex-start;
38
- }
39
-
40
- .ina-drawer--position-right {
41
- align-items: center;
42
- justify-content: flex-end;
43
- }
44
-
45
- /* Mobile override position adjustments - left/right become bottom-like */
46
- @media (max-width: 640px) {
47
- .ina-drawer--position-right,
48
- .ina-drawer--position-left {
49
- align-items: flex-end;
50
- justify-content: center;
51
- }
52
- }
53
-
54
- /* Backdrop with smooth fade animation */
55
- .ina-drawer__backdrop {
56
- position: absolute;
57
- inset: 0;
58
- background-color: rgba(31, 31, 31, 0.48);
59
- backdrop-filter: blur(2px);
60
- animation: backdropFadeIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
61
- }
62
-
63
- @keyframes backdropFadeIn {
64
- from {
65
- opacity: 0;
66
- backdrop-filter: blur(0px);
67
- }
68
- to {
69
- opacity: 1;
70
- backdrop-filter: blur(2px);
71
- }
72
- }
73
-
74
- @keyframes backdropFadeOut {
75
- 0% {
76
- opacity: 1;
77
- backdrop-filter: blur(2px);
78
- }
79
- 100% {
80
- opacity: 0;
81
- backdrop-filter: blur(0px);
82
- }
83
- }
84
-
85
- /* Backdrop closing animation */
86
- .ina-drawer--closing .ina-drawer__backdrop {
87
- animation: backdropFadeOut 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;
88
- }
89
-
90
- /* Main panel */
91
- .ina-drawer__panel {
92
- position: relative;
93
- background-color: var(--ina-background-primary);
94
- border-radius: var(--ina-radius-lg);
95
- box-shadow: var(--ina-shadow-xl);
96
- display: flex;
97
- flex-direction: column;
98
- z-index: 10;
99
- transform-origin: center;
100
- transition: transform var(--ina-transition-duration-300) ease-in-out;
101
- }
102
-
103
- /* Position-specific animations with smooth easing */
104
- .ina-drawer--position-right .ina-drawer__panel {
105
- animation: panelSlideInRight 0.35s cubic-bezier(0.16, 1, 0.3, 1);
106
- }
107
-
108
- .ina-drawer--position-left .ina-drawer__panel {
109
- animation: panelSlideInLeft 0.35s cubic-bezier(0.16, 1, 0.3, 1);
110
- }
111
-
112
- .ina-drawer--position-top .ina-drawer__panel {
113
- animation: panelSlideInTop 0.35s cubic-bezier(0.16, 1, 0.3, 1);
114
- }
115
-
116
- .ina-drawer--position-bottom .ina-drawer__panel {
117
- animation: panelSlideInBottom 0.35s cubic-bezier(0.16, 1, 0.3, 1);
118
- }
119
-
120
- @keyframes panelSlideIn {
121
- from {
122
- opacity: 0;
123
- transform: scale(0.95);
124
- }
125
- to {
126
- opacity: 1;
127
- transform: scale(1);
128
- }
129
- }
130
-
131
- /* Position-specific slide-in animations with smooth easing */
132
- @keyframes panelSlideInRight {
133
- 0% {
134
- opacity: 0;
135
- transform: translateX(100%);
136
- }
137
- 100% {
138
- opacity: 1;
139
- transform: translateX(0);
140
- }
141
- }
142
-
143
- @keyframes panelSlideInLeft {
144
- 0% {
145
- opacity: 0;
146
- transform: translateX(-100%);
147
- }
148
- 100% {
149
- opacity: 1;
150
- transform: translateX(0);
151
- }
152
- }
153
-
154
- @keyframes panelSlideInTop {
155
- 0% {
156
- opacity: 0;
157
- transform: translateY(-100%);
158
- }
159
- 100% {
160
- opacity: 1;
161
- transform: translateY(0);
162
- }
163
- }
164
-
165
- @keyframes panelSlideInBottom {
166
- 0% {
167
- opacity: 0;
168
- transform: translateY(100%);
169
- }
170
- 100% {
171
- opacity: 1;
172
- transform: translateY(0);
173
- }
174
- }
175
-
176
- /* Position-specific panel styling */
177
- .ina-drawer--position-top .ina-drawer__panel {
178
- border-bottom-left-radius: 0;
179
- border-bottom-right-radius: 0;
180
- }
181
-
182
- .ina-drawer--position-bottom .ina-drawer__panel {
183
- border-top-left-radius: 0;
184
- border-top-right-radius: 0;
185
- }
186
-
187
- .ina-drawer--position-left .ina-drawer__panel {
188
- border-top-right-radius: 0;
189
- border-bottom-right-radius: 0;
190
- }
191
-
192
- .ina-drawer--position-right .ina-drawer__panel {
193
- border-top-left-radius: 0;
194
- border-bottom-left-radius: 0;
195
- }
196
-
197
- /* Panel sizes */
198
- /* Removed old size classes - now using width variants */
199
-
200
- /* Mobile size adjustments */
201
- @media (max-width: 640px) {
202
- .ina-drawer__panel {
203
- border-radius: var(--ina-radius-lg) var(--ina-radius-lg) 0 0;
204
- }
205
-
206
- .ina-drawer__title {
207
- font-size: var(--ina-font-base); /* Turun dari lg ke base */
208
- }
209
-
210
- /* Position bottom: min 280-320px (40-45%), max 90vh */
211
- .ina-drawer--position-bottom .ina-drawer__panel {
212
- width: 100vw;
213
- min-height: 280px;
214
- height: 45vh;
215
- max-height: 90vh;
216
- margin: 0;
217
- }
218
-
219
- /* Position top: same as bottom for mobile */
220
- .ina-drawer--position-top .ina-drawer__panel {
221
- width: 100vw;
222
- min-height: 280px;
223
- height: 45vh;
224
- max-height: 90vh;
225
- margin: 0;
226
- border-radius: 0 0 var(--ina-radius-lg) var(--ina-radius-lg);
227
- }
228
-
229
- /* Position left/right: behave like bottom on mobile */
230
- .ina-drawer--position-left .ina-drawer__panel,
231
- .ina-drawer--position-right .ina-drawer__panel {
232
- width: 100vw;
233
- min-height: 280px;
234
- height: 45vh;
235
- max-height: 90vh;
236
- margin: 0;
237
- border-radius: var(--ina-radius-lg) var(--ina-radius-lg) 0 0;
238
- }
239
-
240
- /* Override animations for left/right to use bottom animation on mobile */
241
- .ina-drawer--position-left .ina-drawer__panel,
242
- .ina-drawer--position-right .ina-drawer__panel {
243
- animation: panelSlideInBottom 0.35s cubic-bezier(0.16, 1, 0.3, 1);
244
- }
245
- }
246
-
247
- /* Desktop size adjustments */
248
- @media (min-width: 641px) {
249
- /* Position top/bottom: min 40vh, max 80vh */
250
- .ina-drawer--position-top .ina-drawer__panel,
251
- .ina-drawer--position-bottom .ina-drawer__panel {
252
- width: 100vw;
253
- min-height: 40vh;
254
- height: 60vh;
255
- max-height: 80vh;
256
- }
257
-
258
- /* Position left/right: min 420px, max 520px (default) */
259
- .ina-drawer--position-left .ina-drawer__panel,
260
- .ina-drawer--position-right .ina-drawer__panel {
261
- /* Default width for panels without specific width variant */
262
- min-width: 420px;
263
- max-width: 520px;
264
- /* Full height for side panels */
265
- height: 100vh;
266
- max-height: 100vh;
267
- }
268
-
269
- /* Width variants for desktop - Side panels (left/right) */
270
- .ina-drawer--position-left .ina-drawer__panel--width-sm,
271
- .ina-drawer--position-right .ina-drawer__panel--width-sm {
272
- width: 420px !important;
273
- height: 100vh !important;
274
- max-height: 100vh !important;
275
- }
276
-
277
- .ina-drawer--position-left .ina-drawer__panel--width-md,
278
- .ina-drawer--position-right .ina-drawer__panel--width-md {
279
- width: 520px !important;
280
- height: 100vh !important;
281
- max-height: 100vh !important;
282
- }
283
-
284
- /* .ina-drawer--position-left .ina-drawer__panel--width-lg,
285
- .ina-drawer--position-right .ina-drawer__panel--width-lg {
286
- width: 500px !important;
287
- min-width: 500px !important;
288
- max-width: 600px !important;
289
- height: 100vh !important;
290
- max-height: 100vh !important;
291
- }
292
-
293
- .ina-drawer--position-left .ina-drawer__panel--width-xl,
294
- .ina-drawer--position-right .ina-drawer__panel--width-xl {
295
- width: 600px !important;
296
- min-width: 600px !important;
297
- max-width: 700px !important;
298
- height: 100vh !important;
299
- max-height: 100vh !important;
300
- }
301
-
302
- .ina-drawer--position-left .ina-drawer__panel--width-2xl,
303
- .ina-drawer--position-right .ina-drawer__panel--width-2xl {
304
- width: 700px !important;
305
- min-width: 700px !important;
306
- max-width: 800px !important;
307
- height: 100vh !important;
308
- max-height: 100vh !important;
309
- } */
310
-
311
- /* .ina-drawer--position-left .ina-drawer__panel--width-full,
312
- .ina-drawer--position-right .ina-drawer__panel--width-full {
313
- width: 80vw !important;
314
- min-width: 80vw !important;
315
- max-width: 80vw !important;
316
- height: 100vh !important;
317
- max-height: 100vh !important;
318
- } */
319
-
320
- /* Width variants for desktop - Top/Bottom panels (always 100vw) */
321
- .ina-drawer--position-top .ina-drawer__panel--width-sm,
322
- .ina-drawer--position-top .ina-drawer__panel--width-md,
323
- .ina-drawer--position-top .ina-drawer__panel--width-lg,
324
- .ina-drawer--position-top .ina-drawer__panel--width-xl,
325
- .ina-drawer--position-top .ina-drawer__panel--width-2xl,
326
- .ina-drawer--position-top .ina-drawer__panel--width-full,
327
- .ina-drawer--position-bottom .ina-drawer__panel--width-sm,
328
- .ina-drawer--position-bottom .ina-drawer__panel--width-md,
329
- .ina-drawer--position-bottom .ina-drawer__panel--width-lg,
330
- .ina-drawer--position-bottom .ina-drawer__panel--width-xl,
331
- .ina-drawer--position-bottom .ina-drawer__panel--width-2xl,
332
- .ina-drawer--position-bottom .ina-drawer__panel--width-full {
333
- width: 100vw !important;
334
- min-width: 100vw !important;
335
- max-width: 100vw !important;
336
- height: 60vh !important;
337
- max-height: 60vh !important;
338
- }
339
-
340
- /* Custom width support - for values like '40vw', '500px', etc. - Side panels */
341
- /* .ina-drawer--position-left .ina-drawer__panel--width-40vw,
342
- .ina-drawer--position-right .ina-drawer__panel--width-40vw {
343
- width: 40vw !important;
344
- min-width: 40vw;
345
- max-width: 40vw;
346
- height: 100vh !important;
347
- max-height: 100vh !important;
348
- }
349
-
350
- .ina-drawer--position-left .ina-drawer__panel--width-50vw,
351
- .ina-drawer--position-right .ina-drawer__panel--width-50vw {
352
- width: 50vw !important;
353
- min-width: 50vw;
354
- max-width: 50vw;
355
- height: 100vh !important;
356
- max-height: 100vh !important;
357
- }
358
-
359
- .ina-drawer--position-left .ina-drawer__panel--width-60vw,
360
- .ina-drawer--position-right .ina-drawer__panel--width-60vw {
361
- width: 60vw !important;
362
- min-width: 60vw;
363
- max-width: 60vw;
364
- height: 100vh !important;
365
- max-height: 100vh !important;
366
- }
367
-
368
- .ina-drawer--position-left .ina-drawer__panel--width-70vw,
369
- .ina-drawer--position-right .ina-drawer__panel--width-70vw {
370
- width: 70vw !important;
371
- min-width: 70vw;
372
- max-width: 70vw;
373
- height: 100vh !important;
374
- max-height: 100vh !important;
375
- } */
376
-
377
- /* .ina-drawer--position-left .ina-drawer__panel--width-80vw,
378
- .ina-drawer--position-right .ina-drawer__panel--width-80vw {
379
- width: 80vw !important;
380
- min-width: 80vw;
381
- max-width: 80vw;
382
- height: 100vh !important;
383
- max-height: 100vh !important;
384
- } */
385
-
386
- /* Custom width support - Top/Bottom panels (always 100vw) */
387
- /* .ina-drawer--position-top .ina-drawer__panel--width-40vw,
388
- .ina-drawer--position-top .ina-drawer__panel--width-50vw,
389
- .ina-drawer--position-top .ina-drawer__panel--width-60vw,
390
- .ina-drawer--position-top .ina-drawer__panel--width-70vw,
391
- .ina-drawer--position-top .ina-drawer__panel--width-80vw,
392
- .ina-drawer--position-bottom .ina-drawer__panel--width-40vw,
393
- .ina-drawer--position-bottom .ina-drawer__panel--width-50vw,
394
- .ina-drawer--position-bottom .ina-drawer__panel--width-60vw,
395
- .ina-drawer--position-bottom .ina-drawer__panel--width-70vw,
396
- .ina-drawer--position-bottom .ina-drawer__panel--width-80vw {
397
- width: 100vw !important;
398
- min-width: 100vw !important;
399
- max-width: 100vw !important;
400
- height: 60vh !important;
401
- max-height: 60vh !important;
402
- } */
403
- }
404
-
405
- /* Header */
406
- .ina-drawer__header {
407
- display: flex;
408
- align-items: center;
409
- justify-content: space-between;
410
- padding: var(--ina-spacing-4);
411
- border-bottom: 1px solid var(--ina-stroke-primary);
412
- flex-shrink: 0;
413
- }
414
-
415
- .ina-drawer--position-top .ina-drawer__header {
416
- order: 1;
417
- }
418
-
419
- /* Header title */
420
- .ina-drawer__title {
421
- font-size: var(--ina-font-lg);
422
- font-weight: var(--ina-font-semibold);
423
- color: var(--ina-content-primary);
424
- margin: 0;
425
- }
426
-
427
- /* Close button */
428
- .ina-drawer__close-button {
429
- padding: var(--ina-spacing-1);
430
- border: none;
431
- background: none;
432
- border-radius: var(--ina-radius-base);
433
- cursor: pointer;
434
- color: var(--ina-content-secondary);
435
- transition: all var(--ina-transition-base);
436
- display: flex;
437
- align-items: center;
438
- justify-content: center;
439
- width: 32px;
440
- height: 32px;
441
- }
442
-
443
- .ina-drawer__close-button:hover {
444
- background-color: var(--ina-neutral-100);
445
- color: var(--ina-content-primary);
446
- }
447
-
448
- .ina-drawer__close-button:focus-visible {
449
- outline: 2px solid var(--ina-primary-500);
450
- outline-offset: 2px;
451
- background-color: var(--ina-neutral-100);
452
- }
453
-
454
- .ina-drawer__close-icon {
455
- width: 20px;
456
- height: 20px;
457
- }
458
-
459
- /* Content area */
460
- .ina-drawer__content {
461
- padding: var(--ina-spacing-4);
462
- overflow: auto;
463
- flex: 1;
464
- scrollbar-width: thin;
465
- scrollbar-color: var(--ina-neutral-400) var(--ina-neutral-100);
466
- }
467
-
468
- .ina-drawer__content::-webkit-scrollbar {
469
- width: 6px;
470
- }
471
-
472
- .ina-drawer__content::-webkit-scrollbar-track {
473
- background: var(--ina-neutral-100);
474
- }
475
-
476
- .ina-drawer__content::-webkit-scrollbar-thumb {
477
- background-color: var(--ina-neutral-400);
478
- border-radius: var(--ina-radius-full);
479
- }
480
-
481
- .ina-drawer__content::-webkit-scrollbar-thumb:hover {
482
- background-color: var(--ina-neutral-500);
483
- }
484
-
485
- /* Footer */
486
- .ina-drawer__footer {
487
- padding: var(--ina-spacing-4);
488
- border-top: 1px solid var(--ina-stroke-primary);
489
- flex-shrink: 0;
490
- }
491
-
492
- .ina-drawer--position-top .ina-drawer__footer {
493
- order: 2;
494
- }
495
-
496
- /* Footer positioning */
497
- .ina-drawer__footer--position-left {
498
- display: flex;
499
- justify-content: flex-start;
500
- gap: var(--ina-spacing-2);
501
- }
502
-
503
- .ina-drawer__footer--position-right {
504
- display: flex;
505
- justify-content: flex-end;
506
- gap: var(--ina-spacing-2);
507
- }
508
-
509
- .ina-drawer__footer--position-center {
510
- display: flex;
511
- justify-content: center;
512
- gap: var(--ina-spacing-2);
513
- }
514
-
515
- .ina-drawer__footer--position-between {
516
- display: flex;
517
- justify-content: space-between;
518
- align-items: center;
519
- }
520
-
521
- /* Animation states */
522
- .ina-drawer--closing {
523
- animation: overlayFadeOut 0.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
524
- }
525
-
526
- @keyframes overlayFadeOut {
527
- from {
528
- opacity: 1;
529
- }
530
- to {
531
- opacity: 0;
532
- }
533
- }
534
-
535
- /* Position-specific closing animations with smooth easing */
536
- .ina-drawer--closing.ina-drawer--position-right .ina-drawer__panel {
537
- animation: panelSlideOutRight 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
538
- }
539
-
540
- .ina-drawer--closing.ina-drawer--position-left .ina-drawer__panel {
541
- animation: panelSlideOutLeft 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
542
- }
543
-
544
- .ina-drawer--closing.ina-drawer--position-top .ina-drawer__panel {
545
- animation: panelSlideOutTop 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
546
- }
547
-
548
- .ina-drawer--closing.ina-drawer--position-bottom .ina-drawer__panel {
549
- animation: panelSlideOutBottom 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
550
- }
551
-
552
- /* Mobile: left/right use bottom closing animation */
553
- @media (max-width: 640px) {
554
- .ina-drawer--closing.ina-drawer--position-left .ina-drawer__panel,
555
- .ina-drawer--closing.ina-drawer--position-right .ina-drawer__panel {
556
- animation: panelSlideOutBottom 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
557
- }
558
- }
559
-
560
- @keyframes panelSlideOut {
561
- from {
562
- opacity: 1;
563
- transform: scale(1);
564
- }
565
- to {
566
- opacity: 0;
567
- transform: scale(0.95);
568
- }
569
- }
570
-
571
- /* Position-specific slide-out animations with smooth easing */
572
- @keyframes panelSlideOutRight {
573
- 0% {
574
- opacity: 1;
575
- transform: translateX(0);
576
- }
577
- 100% {
578
- opacity: 0;
579
- transform: translateX(100%);
580
- }
581
- }
582
-
583
- @keyframes panelSlideOutLeft {
584
- 0% {
585
- opacity: 1;
586
- transform: translateX(0);
587
- }
588
- 100% {
589
- opacity: 0;
590
- transform: translateX(-100%);
591
- }
592
- }
593
-
594
- @keyframes panelSlideOutTop {
595
- 0% {
596
- opacity: 1;
597
- transform: translateY(0);
598
- }
599
- 100% {
600
- opacity: 0;
601
- transform: translateY(-100%);
602
- }
603
- }
604
-
605
- @keyframes panelSlideOutBottom {
606
- 0% {
607
- opacity: 1;
608
- transform: translateY(0);
609
- }
610
- 100% {
611
- opacity: 0;
612
- transform: translateY(100%);
613
- }
614
- }
615
-
616
- /* Position-specific animations - Fixed positioning */
617
- .ina-drawer--position-right .ina-drawer__panel {
618
- /* Panel should be visible by default, not hidden */
619
- transform: translateX(0);
620
- }
621
-
622
- .ina-drawer--position-left .ina-drawer__panel {
623
- /* Panel should be visible by default, not hidden */
624
- transform: translateX(0);
625
- }
626
-
627
- .ina-drawer--position-top .ina-drawer__panel {
628
- /* Panel should be visible by default, not hidden */
629
- transform: translateY(0);
630
- }
631
-
632
- .ina-drawer--position-bottom .ina-drawer__panel {
633
- /* Panel should be visible by default, not hidden */
634
- transform: translateY(0);
635
- }
636
-
637
- /* Mobile: left/right use bottom transform */
638
- @media (max-width: 640px) {
639
- .ina-drawer--position-left .ina-drawer__panel,
640
- .ina-drawer--position-right .ina-drawer__panel {
641
- transform: translateY(0);
642
- }
643
- }
644
-
645
- /* Variant styles */
646
- .ina-drawer--variant-glass .ina-drawer__panel {
647
- background-color: rgba(255, 255, 255, 0.95);
648
- backdrop-filter: blur(20px);
649
- }
650
-
651
- .ina-drawer--variant-floating .ina-drawer__panel {
652
- margin: var(--ina-spacing-8);
653
- border-radius: var(--ina-radius-xl);
654
- box-shadow: var(--ina-shadow-2xl);
655
- }
656
-
657
- .ina-drawer--variant-minimal .ina-drawer__panel {
658
- box-shadow: none;
659
- border: 1px solid var(--ina-stroke-primary);
660
- }
661
-
662
- /* Size variants with max-width */
663
- .ina-drawer__panel--fullscreen {
664
- width: 100vw !important;
665
- height: 100vh !important;
666
- max-width: 100vw !important;
667
- max-height: 100vh !important;
668
- margin: 0 !important;
669
- border-radius: 0 !important;
670
- }
671
-
672
- /* Dark mode support */
673
- /* @media (prefers-color-scheme: dark) {
674
- .ina-drawer__backdrop {
675
- background-color: rgba(0, 0, 0, 0.7);
676
- }
677
-
678
- .ina-drawer__panel {
679
- background-color: var(--ina-background-dark-primary);
680
- border-color: var(--ina-stroke-primary-dark);
681
- }
682
-
683
- .ina-drawer__header {
684
- border-color: var(--ina-stroke-primary-dark);
685
- }
686
-
687
- .ina-drawer__title {
688
- color: var(--ina-content-dark-primary);
689
- }
690
-
691
- .ina-drawer__close-button {
692
- color: var(--ina-content-dark-secondary);
693
- }
694
-
695
- .ina-drawer__close-button:hover {
696
- background-color: var(--ina-neutral-800);
697
- color: var(--ina-content-dark-primary);
698
- }
699
-
700
- .ina-drawer__footer {
701
- border-color: var(--ina-stroke-primary-dark);
702
- }
703
-
704
- .ina-drawer--variant-glass .ina-drawer__panel {
705
- background-color: rgba(0, 0, 0, 0.95);
706
- border-color: rgba(255, 255, 255, 0.1);
707
- }
708
-
709
- .ina-drawer--variant-minimal .ina-drawer__panel {
710
- border-color: var(--ina-stroke-primary-dark);
711
- }
712
- } */
713
-
714
- /* Accessibility improvements */
715
- .ina-drawer__close-button:focus-visible {
716
- outline: 2px solid var(--ina-primary-500);
717
- outline-offset: 2px;
718
- }
719
-
720
- /* High contrast mode */
721
- @media (prefers-contrast: high) {
722
- .ina-drawer__panel {
723
- border: 2px solid var(--ina-content-primary);
724
- }
725
-
726
- .ina-drawer__header,
727
- .ina-drawer__footer {
728
- border-width: 2px;
729
- }
730
- }
731
-
732
- /* Reduced motion */
733
- @media (prefers-reduced-motion: reduce) {
734
- .ina-drawer,
735
- .ina-drawer__backdrop,
736
- .ina-drawer__panel,
737
- .ina-drawer__close-button {
738
- animation: none;
739
- transition: none;
740
- }
741
-
742
- .ina-drawer__panel {
743
- transform: none !important;
744
- }
745
- }
746
-
747
- /* Print styles */
748
- @media print {
749
- .ina-drawer {
750
- display: none;
751
- }
752
- }