@akinon/ui-theme 1.0.0 → 1.0.2

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.
package/dist/esm/theme.js CHANGED
@@ -48,7 +48,7 @@ export const theme = {
48
48
  fontFamily: "'Jost Variable'," + antdTheme.getDesignToken().fontFamily,
49
49
  fontSize: fontSize * 0.875
50
50
  },
51
- customTokens: {
51
+ CustomTokens: {
52
52
  layout: {
53
53
  displayFlex: 'flex',
54
54
  displayGrid: 'grid',
@@ -56,11 +56,18 @@ export const theme = {
56
56
  displayInline: 'inline',
57
57
  displayInlineBlock: 'inline-block',
58
58
  displayNone: 'none',
59
+ displayContents: 'contents',
59
60
  positionAbsolute: 'absolute',
60
61
  positionRelative: 'relative',
61
62
  positionFixed: 'fixed',
62
63
  positionSticky: 'sticky',
63
- positionStatic: 'static'
64
+ positionStatic: 'static',
65
+ flexStart: 'start',
66
+ flexCenter: 'center',
67
+ flexDirectionRow: 'row',
68
+ flexDirectionRowReverse: 'row-reverse',
69
+ flexDirectionColumn: 'column',
70
+ flexDirectionColumnReverse: 'column-reverse'
64
71
  },
65
72
  typography: {
66
73
  textTransformUppercase: 'uppercase',
@@ -75,9 +82,13 @@ export const theme = {
75
82
  whiteSpacePre: 'pre',
76
83
  whiteSpacePreLine: 'pre-line',
77
84
  whiteSpacePreWrap: 'pre-wrap',
85
+ whiteSpaceBreakSpaces: 'break-spaces',
86
+ wordBreak: 'break-word',
78
87
  textDecorationUnderline: 'underline',
79
88
  textDecorationOverline: 'overline',
80
- textDecorationLineThrough: 'line-through'
89
+ textDecorationLineThrough: 'line-through',
90
+ fontWeightBold: '600',
91
+ fontWeightMedium: '500'
81
92
  },
82
93
  sizing: {
83
94
  sizeMaxContent: 'max-content',
@@ -88,7 +99,8 @@ export const theme = {
88
99
  valueHalf: '50%',
89
100
  valueQuarter: '25%',
90
101
  valueZero: '0',
91
- valueAuto: 'auto'
102
+ valueAuto: 'auto',
103
+ valueInherit: 'inherit'
92
104
  },
93
105
  others: {
94
106
  colorTransparent: 'transparent',
@@ -96,7 +108,12 @@ export const theme = {
96
108
  valueUnset: 'unset',
97
109
  emptyContent: '""',
98
110
  lineHeightShort: '1',
99
- lineHeightTall: '2'
111
+ lineHeightTall: '2',
112
+ cursorNotAllowed: 'not-allowed',
113
+ cursorPointer: 'pointer',
114
+ verticalAlignMiddle: 'middle',
115
+ opacityFull: '1',
116
+ opacityNone: '0'
100
117
  },
101
118
  border: {
102
119
  borderNone: 'none',
@@ -104,7 +121,8 @@ export const theme = {
104
121
  borderDashed: 'dashed',
105
122
  borderDotted: 'dotted',
106
123
  borderWidthThin: '1px',
107
- borderWidthThick: '2px'
124
+ borderWidthThick: '2px',
125
+ borderRadiusSm: '0.125rem'
108
126
  },
109
127
  overflow: {
110
128
  overflowVisible: 'visible',
@@ -112,6 +130,9 @@ export const theme = {
112
130
  overflowScroll: 'scroll'
113
131
  }
114
132
  },
133
+ NavCardTokens: {
134
+ shadow: '2px 2px 4px 0 rgba(0, 0, 0, 0.2)'
135
+ },
115
136
  components: {
116
137
  // TODO: Please order these props alphabetically.
117
138
  Button: {
@@ -120,7 +141,6 @@ export const theme = {
120
141
  colorPrimaryHover: colors.azure['600'],
121
142
  colorPrimaryActive: colors.azure['700'],
122
143
  colorPrimaryText: colors.neutral['50'],
123
- primaryShadow: 'unset',
124
144
  // type: default (secondary)
125
145
  defaultBg: colors.neutral['50'],
126
146
  defaultColor: colors.azure['500'],
@@ -129,7 +149,6 @@ export const theme = {
129
149
  defaultActiveBg: colors.neutral['50'],
130
150
  defaultActiveColor: colors.azure['500'],
131
151
  defaultBorderColor: colors.azure['500'],
132
- defaultShadow: 'unset',
133
152
  defaultBgSm: colors.gray['750'],
134
153
  defaultBgSmHover: colors.gray['800'],
135
154
  // prop: danger
@@ -137,7 +156,6 @@ export const theme = {
137
156
  colorErrorHover: colors.red['500'],
138
157
  colorErrorActive: colors.red['600'],
139
158
  colorErrorBorder: colors.red['500'],
140
- dangerShadow: 'unset',
141
159
  colorErrorBgSM: colors.red['425'],
142
160
  colorErrorBgSMHover: colors.red['450'],
143
161
  colorErrorSMHover: colors.neutral['50'],
@@ -157,7 +175,6 @@ export const theme = {
157
175
  colorTextDisabled: colors.neutral['350'],
158
176
  borderColorDisabled: colors.neutral['350'],
159
177
  // prop: ghost
160
- defaultGhostBorderColor: 'transparent',
161
178
  defaultGhostColor: colors.azure['500'],
162
179
  // all buttons
163
180
  contentFontSizeSM: fontSize * 0.75,
@@ -166,13 +183,15 @@ export const theme = {
166
183
  paddingInlineSM: 20,
167
184
  colorText: colors.neutral['50'],
168
185
  colorTextHover: colors.neutral['50'],
169
- contentLineHeightSM: 1,
170
186
  controlHeight: 40,
171
187
  borderRadius: 5,
172
188
  paddingBlock: 10,
173
189
  paddingInline: 45,
174
190
  contentLineHeight: 'normal',
175
- fontWeight: 600
191
+ fontWeight: 600,
192
+ defaultShadow: 'none',
193
+ primaryShadow: 'none',
194
+ dangerShadow: 'none'
176
195
  },
177
196
  Checkbox: {
178
197
  colorPrimary: colors.ebonyClay['25'],
@@ -222,33 +241,22 @@ export const theme = {
222
241
  lightSubIconColor: `${colors.ebonyClay['125']} !important`,
223
242
  lightchildItemBg: `${colors.neutral['350']} !important`,
224
243
  lightChildItemColor: `${colors.ebonyClay['500']} !important`,
225
- itemBorderRadius: 0,
226
- itemMarginBlock: 0,
227
- itemMarginInline: 0,
228
244
  itemHeight: fontSize * 3.25,
229
- none: 'none !important',
230
- unset: 'unset !important',
231
- iconPosition: 'absolute !important',
232
245
  mainBorder: `1px solid ${colors.gray['900']}`,
233
246
  mainMenuIconSize: '12px !important',
234
247
  mainMenuExpandIconSize: '16px !important',
235
- mainMenuColor: colors.neutral['50'],
236
- mainMenuFontWeight: '600 !important',
248
+ mainMenuColor: `${colors.neutral['50']} !important`,
237
249
  subMenuTitleColor: `${colors.gray['500']} !important`,
238
250
  subMenuTitleIconMargin: '-25px !important',
239
- subMenufontWeigth: '500 !important',
240
251
  subMenuOnlyChildSize: '6px !important',
241
252
  subMenuItemSelectedChildColor: `${colors.neutral['50']} !important`,
242
- subMenuOnlyChildRadius: '50% !important',
243
253
  subMenuOnlyChildBgColor: `${colors.ebonyClay['125']} !important`,
244
254
  subMenuOnlyChildMargin: '-23px !important',
245
- subMenuOnlyChildOpacity: '1 !important',
246
255
  subMenuIconSize: '10px !important',
247
256
  childMenuItemSelectedChildWidth: '10px !important',
248
257
  childMenuItemSelectedChildHeight: '2px !important',
249
258
  childMenuItemSelectedChildRadius: '1px !important',
250
259
  childMenuItemSelectedChildMargin: '-17px !important',
251
- childMenuItemSelectedChildOpacity: '1 !important',
252
260
  childMenuItemSelectedChildBgColor: `${colors.ebonyClay['125']} !important`
253
261
  },
254
262
  Breadcrumb: {
@@ -264,9 +272,7 @@ export const theme = {
264
272
  fontWeight: 600,
265
273
  lineHeight: 1.5,
266
274
  separatorColor: colors.azure['500'],
267
- letterSpacing: fontSize * 0.03,
268
- marginInline: 0,
269
- height: 'auto'
275
+ letterSpacing: fontSize * 0.03
270
276
  },
271
277
  Tag: {
272
278
  defaultColorSuccess: colors.green['951'],
@@ -291,8 +297,7 @@ export const theme = {
291
297
  fontSize: fontSize * 0.8125,
292
298
  paddingLeft: 15,
293
299
  paddingRight: 15,
294
- fontSizeClose: fontSize * 0.6875,
295
- fontWeight: 500
300
+ fontSizeClose: fontSize * 0.6875
296
301
  },
297
302
  Tooltip: {
298
303
  bgColor: colors.ebonyClay['951']
@@ -351,32 +356,16 @@ export const theme = {
351
356
  verticalErrorPadding: '7px 0'
352
357
  },
353
358
  Pagination: {
354
- zero: '0 !important',
355
- none: 'none !important',
356
- unset: 'unset !important',
357
- maxContent: 'max-content !important',
358
359
  fontSize: '14px !important',
359
- transparent: 'transparent !important',
360
- displayFlex: 'flex !important',
361
- displayFlexRow: 'row !important',
362
- displayContents: 'contents !important',
363
- displayGrid: 'grid !important',
364
- center: 'center !important',
365
- full: '100% !important',
366
- lineHeight: '1 !important',
367
- auto: 'auto !important',
368
- hidden: 'hidden !important',
369
360
  Simple: {
370
361
  minWidth: '68.56px !important',
371
362
  fontWeight: 'normal !important',
372
363
  color: `${colors.gray['500']} !important`,
373
364
  input: {
374
- textColor: `${colors.ebonyClay['960']} !important`,
375
- fontWeight: '600 !important'
365
+ textColor: `${colors.ebonyClay['960']} !important`
376
366
  },
377
367
  prevNextButton: {
378
368
  svgWidth: '10px !important',
379
- svgHeight: '100% !important',
380
369
  svgFill: `${colors.gray['500']} !important`
381
370
  },
382
371
  slashPadding: '8px !important',
@@ -385,8 +374,6 @@ export const theme = {
385
374
  },
386
375
  Table: {
387
376
  totalText: {
388
- width: 'fit-content !important',
389
- fontWeight: '500 !important',
390
377
  color: `${colors.gray['500']} !important`,
391
378
  margin: 'auto 32px !important'
392
379
  },
@@ -411,7 +398,6 @@ export const theme = {
411
398
  sizeChanger: {
412
399
  bgColor: `${colors.neutral['50']} !important`,
413
400
  textColor: `${colors.ebonyClay['951']} !important`,
414
- width: 'fit-content !important',
415
401
  colGap: '10px !important',
416
402
  border: `1px solid ${colors.neutral['350']} !important`,
417
403
  borderRadius: '5px !important',
@@ -421,15 +407,12 @@ export const theme = {
421
407
  padding: '10px 16px !important'
422
408
  },
423
409
  item2: {
424
- textColor: `${colors.gray['500']} !important`,
425
- fontWeight: '600 !important'
410
+ textColor: `${colors.gray['500']} !important`
426
411
  },
427
412
  icon: {
428
413
  bgColor: `${colors.neutral['50']} !important`,
429
414
  textColor: `${colors.gray['500']} !important`,
430
- width: '10px !important',
431
- position: 'relative !important',
432
- fontWeight: '600 !important'
415
+ width: '10px !important'
433
416
  }
434
417
  }
435
418
  },
@@ -437,12 +420,8 @@ export const theme = {
437
420
  border: `1px solid ${colors.neutral['350']} !important`,
438
421
  bgColor: `${colors.neutral['75']} !important`,
439
422
  textColor: `${colors.ebonyClay['960']} !important`,
440
- fontWeight: '600',
441
423
  minWidth: '18px',
442
- height: 'calc(100% - 3px)',
443
- spanVisibility: 'hidden',
444
- spanWhiteSpace: 'pre',
445
- spanPosition: 'absolute'
424
+ height: 'calc(100% - 3px)'
446
425
  }
447
426
  },
448
427
  Select: {
@@ -461,9 +440,15 @@ export const theme = {
461
440
  selectItemHoverBgColor: 'rgba(68, 130, 255, 0.2)'
462
441
  },
463
442
  Table: {
443
+ headerBorderRadius: 0,
444
+ headerBg: 'transparent',
445
+ headerColor: '#9b9b9b',
446
+ headerSplitColor: 'transparent',
464
447
  colorBgContainer: 'transparent',
465
448
  rowHoverBg: 'unset',
466
- borderColor: colors.neutral['350']
449
+ borderColor: colors.neutral['350'],
450
+ cellPaddingInline: 0,
451
+ fontSize: fontSize
467
452
  },
468
453
  Input: {
469
454
  colorBgContainer: colors.ebonyClay['475'],
@@ -486,36 +471,23 @@ export const theme = {
486
471
  Modal: {
487
472
  titleFontSize: fontSize * 1.25,
488
473
  padding: '20px 35px',
489
- fontWeight: 500,
490
474
  borderBottom: `1px solid ${colors.blue['954']}`,
491
475
  footerPadding: '0 35px 20px 35px',
492
476
  closeIconColor: colors.neutral['100'],
493
- contentPadding: 0,
494
- footerMarginTop: 0,
495
477
  closeTop: 20,
496
478
  closeRight: 27,
497
- headerMarginBottom: 0,
498
- badgeColorContent: '',
499
479
  badgeColorTop: 27,
500
- badgeColorLeft: 0,
501
480
  badgeColorWidth: 4,
502
481
  badgeColorHeight: 16,
503
- badgeColorPosition: 'absolute',
504
482
  badgeColorBackgroundColor: colors.red['425']
505
483
  },
506
484
  Progress: {
507
485
  strokeColor: colors.ebonyClay['625'],
508
486
  trailColor: colors.neutral['50'],
509
- borderRadius: '0',
510
487
  height: '18px !important',
511
488
  successBgColor: 'repeating-linear-gradient(60deg, rgba(36, 180, 19, 1) 0, rgba(36, 180, 19, 1) 5px, rgba(72, 192, 62, 1) 5px, rgba(72, 192, 62, 1) 10px) !important'
512
489
  },
513
490
  Steps: {
514
- zero: '0',
515
- auto: 'auto',
516
- none: 'none',
517
- full: '100% !important',
518
- flex: 'flex',
519
491
  rowGap: '10px',
520
492
  iconWidthHeight: '38px !important',
521
493
  iconSize: '18px !important',
@@ -523,7 +495,7 @@ export const theme = {
523
495
  tailTop: '16px',
524
496
  tailHeight: '3px',
525
497
  titleFontSize: '14px',
526
- iconColor: 'white',
498
+ iconColor: colors.neutral['50'],
527
499
  tailColor: 'linear-gradient(to right, #343639 50%, transparent 50%)',
528
500
  tailLastChildColor: 'linear-gradient(to right, #4482ff 50%, transparent 50%)',
529
501
  tailFirstChildColor: 'linear-gradient(to right, transparent 50%, #4482ff 50%)',
@@ -543,7 +515,6 @@ export const theme = {
543
515
  manyItemsTransform: 'rotate(-40deg)',
544
516
  manyItemsWidth: '90px',
545
517
  manyItemsHeight: '80px',
546
- manyItemsWhiteSpace: 'break-spaces',
547
518
  manyItemsMarginInlineStart: '40px',
548
519
  manyItemsIconWidthHeight: '22px',
549
520
  manyItemsTailHeight: '4px',
@@ -560,8 +531,7 @@ export const theme = {
560
531
  colorTextTertiary: colors.gray['300'],
561
532
  handleBg: colors.neutral['80'],
562
533
  handleShadow: '1px 1px 2px 0 rgba(156, 169, 194, 0.5)',
563
- fontSizeSM: fontSize * 0.5625,
564
- innerMinMargin: 0
534
+ fontSizeSM: fontSize * 0.5625
565
535
  },
566
536
  Divider: {
567
537
  colorSplit: colors.ebonyClay['175'],
@@ -574,29 +544,16 @@ export const theme = {
574
544
  DatePicker: {
575
545
  general: {
576
546
  fontSize: '14px',
577
- fontWeight: '600',
578
- fontColor: '#788195',
579
- bgDarkBlue: `${colors.ebonyClay['475']}`,
580
- wideBorder: '2px solid #262e47',
581
- itemCenter: 'center',
547
+ fontColor: colors.gray['500'],
548
+ bgDarkBlue: colors.ebonyClay['475'],
549
+ wideBorder: `2px solid ${colors.ebonyClay['550']}`,
582
550
  inputMarginBottom: '7px',
583
- inputPadding: '10px 16px !important',
584
- lightThemeBorder: '1px solid #c8daec'
551
+ inputPadding: '7px 16px !important',
552
+ lightThemeBorder: `1px solid ${colors.neutral['350']}`
585
553
  },
586
554
  title: {
587
555
  lightColor: `${colors.ebonyClay['500']}`
588
556
  },
589
- pickerTriangle: {
590
- transform: 'translateX(-50%)',
591
- beforeTop: '-8px',
592
- beforeBorderX: '12px solid transparent',
593
- beforeBorderBottom: '9px solid #262e47',
594
- beforeZIndex: '1',
595
- afterTop: '-6px',
596
- afterBorderX: '10px solid transparent',
597
- afterBorderBottom: '8px solid #2b344c',
598
- afterZIndex: '2'
599
- },
600
557
  pickerPanel: {
601
558
  shadow: '0 3px 6px 0 rgba(0, 0, 0, 0.2)',
602
559
  width: '292px',
@@ -604,7 +561,7 @@ export const theme = {
604
561
  marginY: '20px',
605
562
  padding: '0 22px',
606
563
  textSize: '16px',
607
- textColor: '#b6c2cf',
564
+ textColor: colors.neutral['380'],
608
565
  arrawWidth: '10.2px',
609
566
  arrowPaddingLeft: '12px',
610
567
  arrowPaddingRight: '20px',
@@ -614,9 +571,9 @@ export const theme = {
614
571
  padding: '0 20px'
615
572
  },
616
573
  content: {
617
- tableHeaderBorder: '1px solid #a6c5e228',
574
+ tableHeaderBorder: `1px solid ${colors.blue['250-10']}`,
618
575
  tableHeaderFontSize: '12px',
619
- tableHeaderFontColor: '#b6c2cf',
576
+ tableHeaderFontColor: colors.neutral['380'],
620
577
  tableHeaderWidth: '36px',
621
578
  tableHeaderPaddingBottom: '6px'
622
579
  },
@@ -625,15 +582,15 @@ export const theme = {
625
582
  previousCellWidth: '36px',
626
583
  cellLineHeight: '1.43',
627
584
  cellFontWeight: 'normal',
628
- cellTextColor: '#b6c2cf',
629
- cellBg: '#1d2843',
630
- cellBorder: '2px solid #a6c5e228',
585
+ cellTextColor: colors.neutral['380'],
586
+ cellBg: colors.ebonyClay['825'],
587
+ cellBorder: `2px solid ${colors.blue['250-10']}`,
631
588
  cellBorderRadius: '3px'
632
589
  },
633
590
  separator: {
634
591
  width: '6px',
635
592
  height: '2px',
636
- backgroundColor: '#262e47'
593
+ backgroundColor: colors.ebonyClay['550']
637
594
  },
638
595
  range: {
639
596
  iconPosition: '10px',
@@ -646,13 +603,12 @@ export const theme = {
646
603
  lineHeight: 'normal',
647
604
  fontSize: '12px',
648
605
  padding: '0 27px',
649
- border: '1px solid #4482ff',
606
+ border: `1px solid ${colors.azure['500']}`,
650
607
  borderRadius: '11px',
651
- datePickerBorderTop: '1px solid #a6c5e228',
608
+ datePickerBorderTop: `1px solid ${colors.blue['250-10']}`,
652
609
  datePickerPadding: '28px 0 23px',
653
- rangeDirection: 'row',
654
610
  rangeColGap: '50px',
655
- rangeBorder: '1px solid #a6c5e25c',
611
+ rangeBorder: `1px solid ${colors.blue['250-20']}`,
656
612
  rangePadding: '13px 20px 16px',
657
613
  rangeCol: '12px',
658
614
  rangeInputPadding: '10px 12px 10px 16px',
@@ -666,10 +622,119 @@ export const theme = {
666
622
  colorError: colors.red['450'],
667
623
  lineWidth: 0,
668
624
  controlHeightLG: 30,
669
- paddingXS: 0
625
+ paddingXS: 0,
626
+ svgColor: colors.neutral['1000']
670
627
  }
671
628
  }
672
629
  };
630
+ /**
631
+ * Default CustomTokens fallback values to prevent undefined access errors.
632
+ * This provides a complete fallback structure matching the CustomTokens interface.
633
+ */
634
+ const defaultCustomTokens = {
635
+ layout: {
636
+ displayFlex: 'flex',
637
+ displayGrid: 'grid',
638
+ displayBlock: 'block',
639
+ displayInline: 'inline',
640
+ displayInlineBlock: 'inline-block',
641
+ displayNone: 'none',
642
+ displayContents: 'contents',
643
+ positionAbsolute: 'absolute',
644
+ positionRelative: 'relative',
645
+ positionFixed: 'fixed',
646
+ positionSticky: 'sticky',
647
+ positionStatic: 'static',
648
+ flexStart: 'start',
649
+ flexCenter: 'center',
650
+ flexDirectionRow: 'row',
651
+ flexDirectionRowReverse: 'row-reverse',
652
+ flexDirectionColumn: 'column',
653
+ flexDirectionColumnReverse: 'column-reverse'
654
+ },
655
+ typography: {
656
+ textTransformUppercase: 'uppercase',
657
+ textTransformLowercase: 'lowercase',
658
+ textTransformCapitalize: 'capitalize',
659
+ textAlignLeft: 'left',
660
+ textAlignCenter: 'center',
661
+ textAlignRight: 'right',
662
+ textAlignJustify: 'justify',
663
+ whiteSpaceNormal: 'normal',
664
+ whiteSpaceNoWrap: 'nowrap',
665
+ whiteSpacePre: 'pre',
666
+ whiteSpacePreLine: 'pre-line',
667
+ whiteSpacePreWrap: 'pre-wrap',
668
+ whiteSpaceBreakSpaces: 'break-spaces',
669
+ wordBreak: 'break-word',
670
+ textDecorationUnderline: 'underline',
671
+ textDecorationOverline: 'overline',
672
+ textDecorationLineThrough: 'line-through',
673
+ fontWeightBold: '600',
674
+ fontWeightMedium: '500'
675
+ },
676
+ sizing: {
677
+ sizeMaxContent: 'max-content',
678
+ sizeMinContent: 'min-content',
679
+ sizeFitContent: 'fit-content',
680
+ valueFull: '100%',
681
+ valueThreeQuarter: '75%',
682
+ valueHalf: '50%',
683
+ valueQuarter: '25%',
684
+ valueZero: '0',
685
+ valueAuto: 'auto',
686
+ valueInherit: 'inherit'
687
+ },
688
+ others: {
689
+ colorTransparent: 'transparent',
690
+ valueHidden: 'hidden',
691
+ valueUnset: 'unset',
692
+ emptyContent: '""',
693
+ lineHeightShort: '1',
694
+ lineHeightTall: '2',
695
+ cursorNotAllowed: 'not-allowed',
696
+ cursorPointer: 'pointer',
697
+ verticalAlignMiddle: 'middle',
698
+ opacityFull: '1',
699
+ opacityNone: '0'
700
+ },
701
+ border: {
702
+ borderNone: 'none',
703
+ borderSolid: 'solid',
704
+ borderDashed: 'dashed',
705
+ borderDotted: 'dotted',
706
+ borderWidthThin: '1px',
707
+ borderWidthThick: '2px',
708
+ borderRadiusSm: '0.125rem'
709
+ },
710
+ overflow: {
711
+ overflowVisible: 'visible',
712
+ overflowHidden: 'hidden',
713
+ overflowScroll: 'scroll'
714
+ }
715
+ };
716
+ /**
717
+ * Safely retrieves CustomTokens from theme with fallback to default values.
718
+ * This prevents undefined access errors when theme is not properly initialized.
719
+ *
720
+ * @param theme - The theme object from ConfigProvider context
721
+ * @returns CustomTokens with guaranteed defined values
722
+ */
723
+ export function getSafeCustomTokens(theme) {
724
+ const themeCustomTokens = theme === null || theme === void 0 ? void 0 : theme.CustomTokens;
725
+ if (!themeCustomTokens) {
726
+ return defaultCustomTokens;
727
+ }
728
+ // Deep merge to ensure all nested properties are available
729
+ return {
730
+ layout: Object.assign(Object.assign({}, defaultCustomTokens.layout), themeCustomTokens.layout),
731
+ typography: Object.assign(Object.assign({}, defaultCustomTokens.typography), themeCustomTokens.typography),
732
+ sizing: Object.assign(Object.assign({}, defaultCustomTokens.sizing), themeCustomTokens.sizing),
733
+ others: Object.assign(Object.assign({}, defaultCustomTokens.others), themeCustomTokens.others),
734
+ border: Object.assign(Object.assign({}, defaultCustomTokens.border), themeCustomTokens.border),
735
+ overflow: Object.assign(Object.assign({}, defaultCustomTokens.overflow), themeCustomTokens.overflow)
736
+ };
737
+ }
673
738
  /**
674
739
  * Used to access antd's token values from react components.
675
740
  * For detailed usage see,