@isi-ui7/corporate-themes 0.2.9 → 0.2.11

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.
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ import { corporateThemes } from '../tokens';
3
+ import { CarbonThemeVariant, CorporateTheme, ThemeContextValue } from '../types';
4
+
5
+ declare const ThemeContext: import('react').Context<ThemeContextValue | null>;
6
+ type ProviderProps = {
7
+ corporateId?: string;
8
+ variant?: CarbonThemeVariant;
9
+ children: ReactNode;
10
+ };
11
+ export declare function findTheme(id?: string): CorporateTheme;
12
+ export declare function ThemeContextProvider({ corporateId, variant, children }: ProviderProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function useTheme(): ThemeContextValue;
14
+ export { ThemeContext, corporateThemes };
@@ -0,0 +1,14 @@
1
+ import { bcaSyariahTokens } from './tokens';
2
+
3
+ export declare const bcaSyariah: {
4
+ id: string;
5
+ classNames: {
6
+ white: string;
7
+ g10: string;
8
+ g90: string;
9
+ g100: string;
10
+ };
11
+ tokens: import('../..').ThemeTokens;
12
+ };
13
+ export type BcaSyariahTheme = typeof bcaSyariah;
14
+ export { bcaSyariahTokens };
@@ -0,0 +1,3 @@
1
+ import { ThemeTokens } from '../../types';
2
+
3
+ export declare const bcaSyariahTokens: ThemeTokens;
@@ -0,0 +1,14 @@
1
+ import { bjbSyariahTokens } from './tokens';
2
+
3
+ export declare const bjbSyariah: {
4
+ id: string;
5
+ classNames: {
6
+ white: string;
7
+ g10: string;
8
+ g90: string;
9
+ g100: string;
10
+ };
11
+ tokens: import('../..').ThemeTokens;
12
+ };
13
+ export type BjbsSyariahTheme = typeof bjbSyariah;
14
+ export { bjbSyariahTokens };
@@ -0,0 +1,3 @@
1
+ import { ThemeTokens } from '../../types';
2
+
3
+ export declare const bjbSyariahTokens: ThemeTokens;
@@ -0,0 +1,14 @@
1
+ import { carbonDefaultTokens } from './tokens';
2
+
3
+ export declare const carbonDefault: {
4
+ id: string;
5
+ classNames: {
6
+ white: string;
7
+ g10: string;
8
+ g90: string;
9
+ g100: string;
10
+ };
11
+ tokens: import('../..').ThemeTokens;
12
+ };
13
+ export type CarbonDefaultTheme = typeof carbonDefault;
14
+ export { carbonDefaultTokens };
@@ -0,0 +1,3 @@
1
+ import { ThemeTokens } from '../../types';
2
+
3
+ export declare const carbonDefaultTokens: ThemeTokens;
@@ -0,0 +1,14 @@
1
+ import { ihsanSolusiTokens } from './tokens';
2
+
3
+ export declare const ihsanSolusi: {
4
+ id: string;
5
+ classNames: {
6
+ white: string;
7
+ g10: string;
8
+ g90: string;
9
+ g100: string;
10
+ };
11
+ tokens: import('../..').ThemeTokens;
12
+ };
13
+ export type IhsanSolusiTheme = typeof ihsanSolusi;
14
+ export { ihsanSolusiTokens };
@@ -0,0 +1,3 @@
1
+ import { ThemeTokens } from '../../types';
2
+
3
+ export declare const ihsanSolusiTokens: ThemeTokens;
@@ -0,0 +1,14 @@
1
+ import { posIndonesiaTokens } from './tokens';
2
+
3
+ export declare const posIndonesia: {
4
+ id: string;
5
+ classNames: {
6
+ white: string;
7
+ g10: string;
8
+ g90: string;
9
+ g100: string;
10
+ };
11
+ tokens: import('../..').ThemeTokens;
12
+ };
13
+ export type PosIndonesiaTheme = typeof posIndonesia;
14
+ export { posIndonesiaTokens };
@@ -0,0 +1,3 @@
1
+ import { ThemeTokens } from '../../types';
2
+
3
+ export declare const posIndonesiaTokens: ThemeTokens;
@@ -0,0 +1,600 @@
1
+ .ui-shell__main {
2
+ overflow-y: auto !important;
3
+ }
4
+
5
+ :root {
6
+ color-scheme: light;
7
+ }
8
+
9
+ body {
10
+ margin: 0;
11
+ font-family: "IBM Plex Sans", system-ui, -apple-system, sans-serif;
12
+ font-size: 0.75rem;
13
+ }
14
+
15
+ .page {
16
+ padding: 0;
17
+ display: flex;
18
+ flex-direction: column;
19
+ flex: 1;
20
+ overflow: hidden;
21
+ }
22
+
23
+ .page__header {
24
+ flex-shrink: 0;
25
+ padding: 0.5rem 2rem;
26
+ display: flex;
27
+ justify-content: space-between;
28
+ align-items: flex-end;
29
+ gap: 1rem;
30
+ z-index: 100;
31
+ background: var(--cds-background, #fff);
32
+ border-bottom: 1px solid var(--cds-border-subtle-01, #e0e0e0);
33
+ min-height: 4rem;
34
+ }
35
+
36
+ .page__header > :first-child {
37
+ flex: 1;
38
+ min-width: 0;
39
+ }
40
+
41
+ .page__actions {
42
+ display: flex;
43
+ align-items: flex-end;
44
+ gap: 0.75rem;
45
+ }
46
+
47
+ .page__title {
48
+ font-size: 1.25rem;
49
+ font-weight: 600;
50
+ margin: 0;
51
+ }
52
+
53
+ .page__title-row {
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 0.5rem;
57
+ }
58
+
59
+ .page__breadcrumb {
60
+ display: flex;
61
+ flex-wrap: nowrap;
62
+ gap: 0.375rem;
63
+ margin-bottom: 0.25rem;
64
+ font-size: 0.75rem;
65
+ line-height: 1rem;
66
+ color: var(--cds-link-primary, #0f62fe);
67
+ overflow: hidden;
68
+ white-space: nowrap;
69
+ }
70
+
71
+ .page__breadcrumb-segment {
72
+ display: inline-flex;
73
+ gap: 0.375rem;
74
+ align-items: center;
75
+ min-width: 0;
76
+ }
77
+
78
+ .page__breadcrumb-current {
79
+ color: var(--cds-link-primary, #0f62fe);
80
+ overflow: hidden;
81
+ text-overflow: ellipsis;
82
+ }
83
+
84
+ .page__subtitle {
85
+ font-size: 0.75rem;
86
+ color: var(--cds-text-secondary, #525252);
87
+ margin: 0.125rem 0 0;
88
+ }
89
+
90
+ .page__body {
91
+ padding: 0.75rem 2rem 1.5rem;
92
+ display: flex;
93
+ flex-direction: column;
94
+ gap: 0.75rem;
95
+ flex: 1;
96
+ min-height: 0;
97
+ overflow-y: auto;
98
+ }
99
+
100
+ .page__footer {
101
+ flex-shrink: 0;
102
+ display: flex;
103
+ align-items: center;
104
+ gap: 0.5rem;
105
+ padding: 0.75rem 2rem;
106
+ background: var(--cds-background, #fff);
107
+ border-top: 2px solid var(--cds-border-subtle-01, #e0e0e0);
108
+ }
109
+ .page__footer--spread > :first-child {
110
+ margin-right: auto;
111
+ }
112
+
113
+ .page__content {
114
+ flex: 1;
115
+ overflow: auto;
116
+ padding: 1.5rem 2rem;
117
+ }
118
+
119
+ .grid {
120
+ display: grid;
121
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
122
+ gap: 1rem;
123
+ }
124
+
125
+ .form-grid {
126
+ display: grid;
127
+ gap: 0.75rem;
128
+ grid-template-columns: 1fr;
129
+ }
130
+ .form-grid > * {
131
+ min-width: 0;
132
+ }
133
+ .form-grid--2col {
134
+ grid-template-columns: repeat(2, 1fr);
135
+ }
136
+ .form-grid--3col {
137
+ grid-template-columns: repeat(3, 1fr);
138
+ }
139
+ .form-grid--full {
140
+ grid-column: 1/-1;
141
+ }
142
+
143
+ .cds--date-picker--single,
144
+ .cds--date-picker--single .cds--date-picker-container,
145
+ .cds--date-picker--single .cds--date-picker-input__wrapper {
146
+ width: 100%;
147
+ }
148
+
149
+ .form-actions {
150
+ display: flex;
151
+ gap: 0.5rem;
152
+ align-items: center;
153
+ padding-top: 0.75rem;
154
+ border-top: 1px solid var(--cds-border-subtle-01, #e0e0e0);
155
+ }
156
+
157
+ .ui7-form-contract {
158
+ --ui7-form-label-gap: 6px;
159
+ --ui7-form-label-font-size: 12px;
160
+ --ui7-form-label-font-weight: 500;
161
+ --ui7-form-label-line-height: 16px;
162
+ --ui7-form-input-font-size: 14px;
163
+ --ui7-form-input-font-weight: 400;
164
+ --ui7-form-input-line-height: 20px;
165
+ --ui7-form-control-height: 40px;
166
+ --ui7-form-textarea-min-height: 88px;
167
+ --ui7-form-row-gap: 16px;
168
+ --ui7-form-section-gap: 24px;
169
+ --ui7-form-column-gap: 16px;
170
+ --ui7-form-density: compact;
171
+ --ui7-form-readonly-background: #f4f4f4;
172
+ --ui7-form-readonly-cursor: default;
173
+ }
174
+
175
+ .ui7-form-contract--density-compact {
176
+ --ui7-form-density: compact;
177
+ --ui7-form-control-height: 2rem;
178
+ --cds-layout-size-height-sm: 2rem;
179
+ --cds-layout-size-height-md: 2rem;
180
+ --cds-layout-size-height-lg: 2rem;
181
+ --cds-layout-size-height: 2rem;
182
+ }
183
+
184
+ .ui7-form-contract--density-comfortable {
185
+ --ui7-form-density: comfortable;
186
+ --ui7-form-control-height: 2.5rem;
187
+ --cds-layout-size-height-sm: 2.5rem;
188
+ --cds-layout-size-height-md: 2.5rem;
189
+ --cds-layout-size-height-lg: 2.5rem;
190
+ --cds-layout-size-height: 2.5rem;
191
+ }
192
+
193
+ .ui7-form-row {
194
+ display: grid;
195
+ column-gap: var(--ui7-form-column-gap);
196
+ row-gap: var(--ui7-form-row-gap);
197
+ align-items: start;
198
+ }
199
+
200
+ .ui7-form-section {
201
+ display: flex;
202
+ flex-direction: column;
203
+ gap: var(--ui7-form-section-gap);
204
+ }
205
+
206
+ .ui7-form-column {
207
+ min-width: 0;
208
+ }
209
+
210
+ .ui7-form-label {
211
+ display: flex;
212
+ align-items: baseline;
213
+ gap: var(--ui7-form-label-gap);
214
+ font-size: var(--ui7-form-label-font-size);
215
+ font-weight: var(--ui7-form-label-font-weight);
216
+ line-height: var(--ui7-form-label-line-height);
217
+ color: var(--cds-text-secondary, #525252);
218
+ }
219
+
220
+ .ui7-form-label__required {
221
+ color: var(--cds-support-error, #da1e28);
222
+ }
223
+
224
+ .ui7-form-control {
225
+ box-sizing: border-box;
226
+ min-height: var(--ui7-form-control-height);
227
+ font-size: var(--ui7-form-input-font-size);
228
+ font-weight: var(--ui7-form-input-font-weight);
229
+ line-height: var(--ui7-form-input-line-height);
230
+ }
231
+
232
+ .ui7-form-control :is(.cds--text-input,
233
+ .cds--number input,
234
+ .cds--select-input,
235
+ .cds--combo-box__input,
236
+ .cds--date-picker,
237
+ .cds--dropdown,
238
+ .cds--list-box) {
239
+ box-sizing: border-box;
240
+ min-height: var(--ui7-form-control-height);
241
+ font-size: var(--ui7-form-input-font-size);
242
+ line-height: var(--ui7-form-input-line-height);
243
+ }
244
+
245
+ .ui7-form-control :is(.cds--text-input, .cds--number input, .cds--select-input, .cds--combo-box__input) {
246
+ height: var(--ui7-form-control-height);
247
+ }
248
+
249
+ .ui7-form-control textarea,
250
+ .ui7-form-control .cds--text-area,
251
+ .ui7-form-control .cds--text-area__wrapper {
252
+ min-height: var(--ui7-form-textarea-min-height);
253
+ }
254
+
255
+ .ui7-form-control--readonly,
256
+ .ui7-form-contract--readonly .ui7-form-control,
257
+ .ui7-form-control--readonly :is(input, textarea, button, [role=combobox], .cds--text-input, .cds--number input) {
258
+ background: var(--ui7-form-readonly-background, #f4f4f4);
259
+ cursor: var(--ui7-form-readonly-cursor, default);
260
+ }
261
+
262
+ .ui7-form-readonly-value {
263
+ background: var(--ui7-form-readonly-background, #f4f4f4);
264
+ color: var(--cds-text-primary, #161616);
265
+ cursor: var(--ui7-form-readonly-cursor, default);
266
+ }
267
+
268
+ .ui7-form-contract--readonly .ui7-form-readonly-value {
269
+ background: var(--ui7-form-readonly-background, #f4f4f4);
270
+ }
271
+
272
+ .ui7-form-helper {
273
+ margin-block-start: 0.375rem;
274
+ font-size: 0.75rem;
275
+ line-height: 1rem;
276
+ color: var(--cds-text-secondary, #525252);
277
+ }
278
+
279
+ .page-tabs {
280
+ display: flex;
281
+ flex-direction: column;
282
+ gap: 0;
283
+ }
284
+ .page-tabs__panel {
285
+ display: none;
286
+ padding: 0.75rem 0;
287
+ }
288
+ .page-tabs__panel--active {
289
+ display: block;
290
+ }
291
+ .page-tabs__panel--table {
292
+ padding: 0;
293
+ }
294
+
295
+ .badge {
296
+ display: inline-flex;
297
+ align-items: center;
298
+ justify-content: center;
299
+ min-width: 1.25rem;
300
+ height: 1.25rem;
301
+ padding: 0 0.375rem;
302
+ background: var(--cds-background-inverse, #393939);
303
+ color: var(--cds-text-inverse, #fff);
304
+ border-radius: 0.75rem;
305
+ font-size: 0.6875rem;
306
+ font-weight: 600;
307
+ margin-left: 0.375rem;
308
+ line-height: 1;
309
+ }
310
+
311
+ .display-field {
312
+ display: flex;
313
+ flex-direction: column;
314
+ }
315
+
316
+ .display-field__label {
317
+ font-size: 0.75rem;
318
+ font-weight: 600;
319
+ color: var(--cds-text-secondary, #525252);
320
+ margin-bottom: 0.125rem;
321
+ }
322
+
323
+ .display-field__value {
324
+ font-size: 0.75rem;
325
+ min-height: 1.125rem;
326
+ color: var(--cds-text-primary, #000);
327
+ }
328
+
329
+ .modal-layout {
330
+ display: flex;
331
+ flex-direction: column;
332
+ width: 100%;
333
+ max-height: calc(90vh - 3.5rem);
334
+ }
335
+ .modal-layout--sm {
336
+ min-width: 24rem;
337
+ }
338
+ .modal-layout--md {
339
+ min-width: 28rem;
340
+ }
341
+ .modal-layout--lg {
342
+ min-width: 32rem;
343
+ }
344
+ .modal-layout--xl {
345
+ min-width: 36rem;
346
+ }
347
+
348
+ .modal-layout__body {
349
+ flex: 1 1 auto;
350
+ min-height: 0;
351
+ overflow-y: auto;
352
+ padding: 1rem 1.5rem 1.25rem;
353
+ display: flex;
354
+ flex-direction: column;
355
+ gap: 0.75rem;
356
+ }
357
+
358
+ .modal-layout__footer {
359
+ flex-shrink: 0;
360
+ display: flex;
361
+ gap: 0.5rem;
362
+ padding: 0.75rem 1.5rem;
363
+ border-top: 1px solid var(--cds-border-subtle-01, #e0e0e0);
364
+ background: var(--cds-background, #fff);
365
+ justify-content: flex-end;
366
+ }
367
+ .modal-layout__footer--spread {
368
+ justify-content: space-between;
369
+ }
370
+
371
+ .modal-shell {
372
+ background: var(--cds-background, #fff);
373
+ width: min(90vw, 480px);
374
+ display: flex;
375
+ flex-direction: column;
376
+ }
377
+ .modal-shell__header {
378
+ padding: 0.75rem 1.5rem;
379
+ border-bottom: 1px solid var(--cds-border-subtle-01, #e0e0e0);
380
+ }
381
+ .modal-shell__title {
382
+ font-size: 1rem;
383
+ font-weight: 600;
384
+ margin: 0;
385
+ }
386
+ .modal-shell__body {
387
+ padding: 1rem 1.5rem;
388
+ display: flex;
389
+ flex-direction: column;
390
+ gap: 0.75rem;
391
+ flex: 1;
392
+ overflow: auto;
393
+ }
394
+
395
+ .modal-actions {
396
+ display: flex;
397
+ gap: 0.5rem;
398
+ padding: 0.75rem 1.5rem;
399
+ border-top: 1px solid var(--cds-border-subtle-01, #e0e0e0);
400
+ justify-content: flex-end;
401
+ }
402
+
403
+ .wizard-actions {
404
+ display: flex;
405
+ gap: 0.5rem;
406
+ align-items: center;
407
+ padding-top: 0.75rem;
408
+ border-top: 1px solid var(--cds-border-subtle-01, #e0e0e0);
409
+ }
410
+ .wizard-actions > :first-child {
411
+ margin-right: auto;
412
+ }
413
+
414
+ .receipt-card {
415
+ border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
416
+ background: var(--cds-layer-01, #f4f4f4);
417
+ padding: 1.5rem;
418
+ max-width: 480px;
419
+ }
420
+ .receipt-card__header {
421
+ display: flex;
422
+ align-items: center;
423
+ gap: 0.5rem;
424
+ margin-bottom: 1rem;
425
+ color: var(--cds-support-success, #198038);
426
+ font-weight: 600;
427
+ font-size: 1rem;
428
+ }
429
+ .receipt-card__row {
430
+ display: flex;
431
+ justify-content: space-between;
432
+ padding: 0.375rem 0;
433
+ border-bottom: 1px solid var(--cds-border-subtle-00, #e8e8e8);
434
+ font-size: 0.875rem;
435
+ }
436
+ .receipt-card__row:last-of-type {
437
+ border-bottom: none;
438
+ }
439
+ .receipt-card__label {
440
+ color: var(--cds-text-secondary, #525252);
441
+ }
442
+ .receipt-card__actions {
443
+ display: flex;
444
+ gap: 0.5rem;
445
+ margin-top: 1.5rem;
446
+ flex-wrap: wrap;
447
+ }
448
+
449
+ .profile-branch-section__label {
450
+ font-size: 0.6875rem;
451
+ font-weight: 600;
452
+ color: var(--cds-text-secondary, #525252);
453
+ text-transform: uppercase;
454
+ letter-spacing: 0.05em;
455
+ }
456
+
457
+ .profile-branch-dropdown__trigger {
458
+ display: flex;
459
+ align-items: center;
460
+ justify-content: space-between;
461
+ width: 100%;
462
+ padding: 0.625rem 1rem;
463
+ border: none;
464
+ background: transparent;
465
+ font-family: inherit;
466
+ text-align: left;
467
+ cursor: pointer;
468
+ transition: background-color 0.15s ease;
469
+ }
470
+ .profile-branch-dropdown__trigger:hover {
471
+ background: var(--cds-background-hover, #e8e8e8);
472
+ }
473
+ .profile-branch-dropdown__trigger:focus-visible {
474
+ outline: 2px solid var(--cds-focus, #0f62fe);
475
+ outline-offset: -2px;
476
+ }
477
+ .profile-branch-dropdown__current {
478
+ display: flex;
479
+ flex-direction: column;
480
+ gap: 0.125rem;
481
+ }
482
+ .profile-branch-dropdown__chevron {
483
+ font-size: 0.625rem;
484
+ color: var(--cds-text-secondary, #525252);
485
+ margin-left: 0.5rem;
486
+ flex-shrink: 0;
487
+ }
488
+ .profile-branch-dropdown__list {
489
+ border-top: 1px solid var(--cds-border-subtle-01, #e0e0e0);
490
+ background: var(--cds-layer-01, #f4f4f4);
491
+ max-height: 240px;
492
+ overflow-y: auto;
493
+ }
494
+
495
+ .profile-branch-item {
496
+ display: flex;
497
+ align-items: center;
498
+ width: 100%;
499
+ padding: 0.625rem 1rem 0.625rem 1.5rem;
500
+ border: none;
501
+ background: transparent;
502
+ font-family: inherit;
503
+ text-align: left;
504
+ cursor: pointer;
505
+ gap: 0.375rem;
506
+ transition: background-color 0.15s ease;
507
+ }
508
+ .profile-branch-item__code {
509
+ font-size: 0.875rem;
510
+ font-weight: 500;
511
+ color: var(--cds-text-primary, #161616);
512
+ flex: 1;
513
+ }
514
+ .profile-branch-item__name {
515
+ font-size: 0.75rem;
516
+ color: var(--cds-text-secondary, #525252);
517
+ }
518
+ .profile-branch-item__check {
519
+ font-size: 0.75rem;
520
+ font-weight: 700;
521
+ color: var(--cds-interactive, #0f62fe);
522
+ margin-left: auto;
523
+ }
524
+ .profile-branch-item--active {
525
+ background: var(--cds-layer-selected-01, rgba(0, 0, 0, 0.08));
526
+ cursor: default;
527
+ }
528
+ .profile-branch-item--active .profile-branch-item__code {
529
+ font-weight: 700;
530
+ }
531
+ .profile-branch-item:not(.profile-branch-item--active):hover {
532
+ background: var(--cds-background-hover, #e8e8e8);
533
+ }
534
+ .profile-branch-item:focus-visible {
535
+ outline: 2px solid var(--cds-focus, #0f62fe);
536
+ outline-offset: -2px;
537
+ }
538
+
539
+ .login-page {
540
+ display: flex;
541
+ align-items: center;
542
+ justify-content: center;
543
+ min-height: 100vh;
544
+ background: var(--cds-background, #f4f4f4);
545
+ }
546
+ .login-page__card {
547
+ background: var(--cds-layer-01, #ffffff);
548
+ padding: 3rem 2.5rem;
549
+ max-width: 400px;
550
+ width: 100%;
551
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
552
+ }
553
+ .login-page__card h1 {
554
+ font-size: 1.5rem;
555
+ font-weight: 600;
556
+ margin-bottom: 0.75rem;
557
+ color: var(--cds-text-primary, #161616);
558
+ }
559
+ .login-page__card p {
560
+ font-size: 0.875rem;
561
+ color: var(--cds-text-secondary, #525252);
562
+ margin-bottom: 1.5rem;
563
+ }
564
+
565
+ @media (max-width: 768px) {
566
+ .page__header {
567
+ padding: 0.5rem 1rem;
568
+ flex-wrap: wrap;
569
+ align-items: flex-start;
570
+ gap: 0.5rem;
571
+ }
572
+ .page__actions {
573
+ width: 100%;
574
+ justify-content: flex-end;
575
+ }
576
+ .page__body {
577
+ padding: 0.75rem 1rem 1.25rem;
578
+ }
579
+ .form-grid--2col {
580
+ grid-template-columns: 1fr;
581
+ }
582
+ .form-grid--3col {
583
+ grid-template-columns: 1fr;
584
+ }
585
+ .modal-shell {
586
+ width: 100vw;
587
+ max-height: 100dvh;
588
+ }
589
+ }
590
+ @media (max-width: 480px) {
591
+ .page__header {
592
+ padding: 0.5rem 0.75rem;
593
+ }
594
+ .page__body {
595
+ padding: 0.5rem 0.75rem 1rem;
596
+ }
597
+ .page__title {
598
+ font-size: 1rem;
599
+ }
600
+ }
@@ -0,0 +1 @@
1
+ export declare function useBrandColors(): import('..').BrandColors;