@react-xp/design-system 1.0.0-beta.0

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 (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +325 -0
  3. package/dist/cjs/helpers/a11y.js +176 -0
  4. package/dist/cjs/helpers/index.js +18 -0
  5. package/dist/cjs/helpers/styles.js +172 -0
  6. package/dist/cjs/index.js +19 -0
  7. package/dist/cjs/styles/avatars.js +63 -0
  8. package/dist/cjs/styles/badges.js +59 -0
  9. package/dist/cjs/styles/bottomSheets.js +76 -0
  10. package/dist/cjs/styles/buttons.js +129 -0
  11. package/dist/cjs/styles/cards.js +71 -0
  12. package/dist/cjs/styles/checkboxes.js +70 -0
  13. package/dist/cjs/styles/chips.js +98 -0
  14. package/dist/cjs/styles/datePickers.js +113 -0
  15. package/dist/cjs/styles/dividers.js +12 -0
  16. package/dist/cjs/styles/emptyStates.js +40 -0
  17. package/dist/cjs/styles/forms.js +32 -0
  18. package/dist/cjs/styles/headers.js +46 -0
  19. package/dist/cjs/styles/index.js +43 -0
  20. package/dist/cjs/styles/inputs.js +101 -0
  21. package/dist/cjs/styles/listItems.js +65 -0
  22. package/dist/cjs/styles/modals.js +92 -0
  23. package/dist/cjs/styles/pagination.js +39 -0
  24. package/dist/cjs/styles/popovers.js +64 -0
  25. package/dist/cjs/styles/progress.js +33 -0
  26. package/dist/cjs/styles/radios.js +70 -0
  27. package/dist/cjs/styles/selects.js +137 -0
  28. package/dist/cjs/styles/skeletons.js +34 -0
  29. package/dist/cjs/styles/steppers.js +71 -0
  30. package/dist/cjs/styles/switches.js +76 -0
  31. package/dist/cjs/styles/tables.js +57 -0
  32. package/dist/cjs/styles/tabs.js +71 -0
  33. package/dist/cjs/styles/toasts.js +82 -0
  34. package/dist/cjs/styles/tooltips.js +46 -0
  35. package/dist/cjs/types/index.js +18 -0
  36. package/dist/cjs/types/states.js +8 -0
  37. package/dist/cjs/types/tokens.js +18 -0
  38. package/dist/esm/helpers/a11y.js +169 -0
  39. package/dist/esm/helpers/index.js +2 -0
  40. package/dist/esm/helpers/styles.js +158 -0
  41. package/dist/esm/index.js +3 -0
  42. package/dist/esm/styles/avatars.js +59 -0
  43. package/dist/esm/styles/badges.js +55 -0
  44. package/dist/esm/styles/bottomSheets.js +72 -0
  45. package/dist/esm/styles/buttons.js +125 -0
  46. package/dist/esm/styles/cards.js +67 -0
  47. package/dist/esm/styles/checkboxes.js +66 -0
  48. package/dist/esm/styles/chips.js +94 -0
  49. package/dist/esm/styles/datePickers.js +108 -0
  50. package/dist/esm/styles/dividers.js +8 -0
  51. package/dist/esm/styles/emptyStates.js +36 -0
  52. package/dist/esm/styles/forms.js +28 -0
  53. package/dist/esm/styles/headers.js +42 -0
  54. package/dist/esm/styles/index.js +27 -0
  55. package/dist/esm/styles/inputs.js +97 -0
  56. package/dist/esm/styles/listItems.js +61 -0
  57. package/dist/esm/styles/modals.js +88 -0
  58. package/dist/esm/styles/pagination.js +35 -0
  59. package/dist/esm/styles/popovers.js +60 -0
  60. package/dist/esm/styles/progress.js +27 -0
  61. package/dist/esm/styles/radios.js +66 -0
  62. package/dist/esm/styles/selects.js +133 -0
  63. package/dist/esm/styles/skeletons.js +29 -0
  64. package/dist/esm/styles/steppers.js +66 -0
  65. package/dist/esm/styles/switches.js +72 -0
  66. package/dist/esm/styles/tables.js +53 -0
  67. package/dist/esm/styles/tabs.js +66 -0
  68. package/dist/esm/styles/toasts.js +77 -0
  69. package/dist/esm/styles/tooltips.js +42 -0
  70. package/dist/esm/types/index.js +2 -0
  71. package/dist/esm/types/states.js +3 -0
  72. package/dist/esm/types/tokens.js +12 -0
  73. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  74. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  75. package/dist/types/helpers/a11y.d.ts +20 -0
  76. package/dist/types/helpers/a11y.d.ts.map +1 -0
  77. package/dist/types/helpers/index.d.ts +3 -0
  78. package/dist/types/helpers/index.d.ts.map +1 -0
  79. package/dist/types/helpers/styles.d.ts +31 -0
  80. package/dist/types/helpers/styles.d.ts.map +1 -0
  81. package/dist/types/index.d.ts +4 -0
  82. package/dist/types/index.d.ts.map +1 -0
  83. package/dist/types/styles/avatars.d.ts +10 -0
  84. package/dist/types/styles/avatars.d.ts.map +1 -0
  85. package/dist/types/styles/badges.d.ts +8 -0
  86. package/dist/types/styles/badges.d.ts.map +1 -0
  87. package/dist/types/styles/bottomSheets.d.ts +15 -0
  88. package/dist/types/styles/bottomSheets.d.ts.map +1 -0
  89. package/dist/types/styles/buttons.d.ts +22 -0
  90. package/dist/types/styles/buttons.d.ts.map +1 -0
  91. package/dist/types/styles/cards.d.ts +18 -0
  92. package/dist/types/styles/cards.d.ts.map +1 -0
  93. package/dist/types/styles/checkboxes.d.ts +18 -0
  94. package/dist/types/styles/checkboxes.d.ts.map +1 -0
  95. package/dist/types/styles/chips.d.ts +20 -0
  96. package/dist/types/styles/chips.d.ts.map +1 -0
  97. package/dist/types/styles/datePickers.d.ts +30 -0
  98. package/dist/types/styles/datePickers.d.ts.map +1 -0
  99. package/dist/types/styles/dividers.d.ts +4 -0
  100. package/dist/types/styles/dividers.d.ts.map +1 -0
  101. package/dist/types/styles/emptyStates.d.ts +10 -0
  102. package/dist/types/styles/emptyStates.d.ts.map +1 -0
  103. package/dist/types/styles/forms.d.ts +10 -0
  104. package/dist/types/styles/forms.d.ts.map +1 -0
  105. package/dist/types/styles/headers.d.ts +11 -0
  106. package/dist/types/styles/headers.d.ts.map +1 -0
  107. package/dist/types/styles/index.d.ts +28 -0
  108. package/dist/types/styles/index.d.ts.map +1 -0
  109. package/dist/types/styles/inputs.d.ts +19 -0
  110. package/dist/types/styles/inputs.d.ts.map +1 -0
  111. package/dist/types/styles/listItems.d.ts +19 -0
  112. package/dist/types/styles/listItems.d.ts.map +1 -0
  113. package/dist/types/styles/modals.d.ts +15 -0
  114. package/dist/types/styles/modals.d.ts.map +1 -0
  115. package/dist/types/styles/pagination.d.ts +9 -0
  116. package/dist/types/styles/pagination.d.ts.map +1 -0
  117. package/dist/types/styles/popovers.d.ts +12 -0
  118. package/dist/types/styles/popovers.d.ts.map +1 -0
  119. package/dist/types/styles/progress.d.ts +11 -0
  120. package/dist/types/styles/progress.d.ts.map +1 -0
  121. package/dist/types/styles/radios.d.ts +17 -0
  122. package/dist/types/styles/radios.d.ts.map +1 -0
  123. package/dist/types/styles/selects.d.ts +25 -0
  124. package/dist/types/styles/selects.d.ts.map +1 -0
  125. package/dist/types/styles/skeletons.d.ts +13 -0
  126. package/dist/types/styles/skeletons.d.ts.map +1 -0
  127. package/dist/types/styles/steppers.d.ts +21 -0
  128. package/dist/types/styles/steppers.d.ts.map +1 -0
  129. package/dist/types/styles/switches.d.ts +17 -0
  130. package/dist/types/styles/switches.d.ts.map +1 -0
  131. package/dist/types/styles/tables.d.ts +13 -0
  132. package/dist/types/styles/tables.d.ts.map +1 -0
  133. package/dist/types/styles/tabs.d.ts +19 -0
  134. package/dist/types/styles/tabs.d.ts.map +1 -0
  135. package/dist/types/styles/toasts.d.ts +13 -0
  136. package/dist/types/styles/toasts.d.ts.map +1 -0
  137. package/dist/types/styles/tooltips.d.ts +9 -0
  138. package/dist/types/styles/tooltips.d.ts.map +1 -0
  139. package/dist/types/types/index.d.ts +3 -0
  140. package/dist/types/types/index.d.ts.map +1 -0
  141. package/dist/types/types/states.d.ts +26 -0
  142. package/dist/types/types/states.d.ts.map +1 -0
  143. package/dist/types/types/tokens.d.ts +16 -0
  144. package/dist/types/types/tokens.d.ts.map +1 -0
  145. package/package.json +73 -0
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getChipParts = void 0;
4
+ // styles/chips.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getChipParts = (t, opts = {}) => {
7
+ const variant = opts.variant ?? 'filled';
8
+ const selected = Boolean(opts.selected);
9
+ const disabled = Boolean(opts.disabled);
10
+ const base = {
11
+ container: {
12
+ minHeight: (0, tokens_1.tok)(t, 'tap-target-min'),
13
+ alignSelf: 'flex-start',
14
+ flexDirection: 'row',
15
+ alignItems: 'center',
16
+ gap: (0, tokens_1.tok)(t, 'space-2'),
17
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-3'),
18
+ paddingVertical: (0, tokens_1.tok)(t, 'space-2'),
19
+ borderRadius: (0, tokens_1.tok)(t, 'radius-full'),
20
+ borderWidth: (0, tokens_1.tok)(t, 'border-width-default'),
21
+ },
22
+ label: {
23
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
24
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-2'),
25
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-medium'),
26
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
27
+ },
28
+ leftIcon: {
29
+ width: (0, tokens_1.tok)(t, 'typography-font-size-4'),
30
+ height: (0, tokens_1.tok)(t, 'typography-font-size-4'),
31
+ },
32
+ rightIcon: {
33
+ width: (0, tokens_1.tok)(t, 'typography-font-size-4'),
34
+ height: (0, tokens_1.tok)(t, 'typography-font-size-4'),
35
+ },
36
+ focusRing: {
37
+ outlineStyle: 'solid',
38
+ outlineWidth: (0, tokens_1.tok)(t, 'border-width-focus'),
39
+ outlineColor: (0, tokens_1.tok)(t, 'color-focus-ring'),
40
+ outlineOffset: (0, tokens_1.tok)(t, 'focus-ring-gap'),
41
+ },
42
+ };
43
+ const filled = {
44
+ backgroundColor: selected
45
+ ? (0, tokens_1.tok)(t, 'color-action-primary')
46
+ : (0, tokens_1.tok)(t, 'color-surface-alt'),
47
+ borderColor: selected
48
+ ? (0, tokens_1.tok)(t, 'color-action-primary')
49
+ : (0, tokens_1.tok)(t, 'color-border-subtle'),
50
+ };
51
+ const filledLabel = {
52
+ color: selected
53
+ ? (0, tokens_1.tok)(t, 'color-action-primary-fg')
54
+ : (0, tokens_1.tok)(t, 'color-fg-default'),
55
+ };
56
+ const outlined = {
57
+ backgroundColor: 'transparent',
58
+ borderColor: selected
59
+ ? (0, tokens_1.tok)(t, 'color-action-primary')
60
+ : (0, tokens_1.tok)(t, 'color-border-strong'),
61
+ };
62
+ const outlinedLabel = {
63
+ color: selected
64
+ ? (0, tokens_1.tok)(t, 'color-action-primary')
65
+ : (0, tokens_1.tok)(t, 'color-fg-default'),
66
+ };
67
+ const disabledS = {
68
+ backgroundColor: (0, tokens_1.tok)(t, 'color-state-disabled-bg'),
69
+ borderColor: (0, tokens_1.tok)(t, 'color-state-disabled-bg'),
70
+ opacity: (0, tokens_1.tok)(t, 'opacity-disabled'),
71
+ };
72
+ const disabledLabel = { color: (0, tokens_1.tok)(t, 'color-state-disabled-fg') };
73
+ const interaction = opts.pressed
74
+ ? { opacity: (0, tokens_1.tok)(t, 'opacity-pressed') }
75
+ : opts.hovered
76
+ ? { opacity: 0.96 }
77
+ : {};
78
+ return {
79
+ container: (0, tokens_1.merge)(base.container, variant === 'filled' ? filled : outlined, interaction, disabled && disabledS),
80
+ label: (0, tokens_1.merge)(base.label, variant === 'filled' ? filledLabel : outlinedLabel, disabled && disabledLabel),
81
+ leftIcon: (0, tokens_1.merge)(base.leftIcon, {
82
+ color: (disabled
83
+ ? disabledLabel.color
84
+ : variant === 'filled'
85
+ ? filledLabel.color
86
+ : outlinedLabel.color),
87
+ }),
88
+ rightIcon: (0, tokens_1.merge)(base.rightIcon, {
89
+ color: (disabled
90
+ ? disabledLabel.color
91
+ : variant === 'filled'
92
+ ? filledLabel.color
93
+ : outlinedLabel.color),
94
+ }),
95
+ focusRing: (0, tokens_1.merge)(opts.focusVisible ? base.focusRing : undefined),
96
+ };
97
+ };
98
+ exports.getChipParts = getChipParts;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCalendarDayParts = exports.getDatePickerParts = void 0;
4
+ // styles/datePickers.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getDatePickerParts = (t) => {
7
+ return {
8
+ container: {
9
+ backgroundColor: (0, tokens_1.tok)(t, 'color-surface'),
10
+ borderColor: (0, tokens_1.tok)(t, 'color-border-subtle'),
11
+ borderWidth: (0, tokens_1.tok)(t, 'border-width-default'),
12
+ borderRadius: (0, tokens_1.tok)(t, 'radius-4'),
13
+ shadow: (0, tokens_1.tok)(t, 'shadow-level-2'),
14
+ padding: (0, tokens_1.tok)(t, 'space-3'),
15
+ },
16
+ header: {
17
+ flexDirection: 'row',
18
+ alignItems: 'center',
19
+ justifyContent: 'space-between',
20
+ paddingBottom: (0, tokens_1.tok)(t, 'space-2'),
21
+ marginBottom: (0, tokens_1.tok)(t, 'space-2'),
22
+ borderBottomWidth: (0, tokens_1.tok)(t, 'border-width-default'),
23
+ borderBottomColor: (0, tokens_1.tok)(t, 'color-border-subtle'),
24
+ },
25
+ monthLabel: {
26
+ color: (0, tokens_1.tok)(t, 'color-fg-default'),
27
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-heading'),
28
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-3'),
29
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-strong'),
30
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-tight'),
31
+ },
32
+ navButton: {
33
+ minHeight: (0, tokens_1.tok)(t, 'tap-target-min'),
34
+ minWidth: (0, tokens_1.tok)(t, 'tap-target-min'),
35
+ borderRadius: (0, tokens_1.tok)(t, 'radius-full'),
36
+ alignItems: 'center',
37
+ justifyContent: 'center',
38
+ },
39
+ weekRow: {
40
+ flexDirection: 'row',
41
+ justifyContent: 'space-between',
42
+ marginBottom: (0, tokens_1.tok)(t, 'space-2'),
43
+ },
44
+ weekdayLabel: {
45
+ width: (0, tokens_1.tok)(t, 'tap-target-min'),
46
+ textAlign: 'center',
47
+ color: (0, tokens_1.tok)(t, 'color-fg-muted'),
48
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
49
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-2'),
50
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-medium'),
51
+ },
52
+ dayCell: {
53
+ width: (0, tokens_1.tok)(t, 'tap-target-min'),
54
+ height: (0, tokens_1.tok)(t, 'tap-target-min'),
55
+ borderRadius: (0, tokens_1.tok)(t, 'radius-full'),
56
+ alignItems: 'center',
57
+ justifyContent: 'center',
58
+ },
59
+ dayText: {
60
+ color: (0, tokens_1.tok)(t, 'color-fg-default'),
61
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
62
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-2'),
63
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-regular'),
64
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
65
+ },
66
+ dayFocusRing: {
67
+ outlineStyle: 'solid',
68
+ outlineWidth: (0, tokens_1.tok)(t, 'border-width-focus'),
69
+ outlineColor: (0, tokens_1.tok)(t, 'color-focus-ring'),
70
+ outlineOffset: (0, tokens_1.tok)(t, 'focus-ring-gap'),
71
+ },
72
+ rangeFill: {
73
+ backgroundColor: (0, tokens_1.tok)(t, 'color-surface-alt'),
74
+ borderRadius: (0, tokens_1.tok)(t, 'radius-full'),
75
+ },
76
+ };
77
+ };
78
+ exports.getDatePickerParts = getDatePickerParts;
79
+ const getCalendarDayParts = (t, s = {}) => {
80
+ const base = (0, exports.getDatePickerParts)(t);
81
+ const disabled = {
82
+ backgroundColor: 'transparent',
83
+ opacity: (0, tokens_1.tok)(t, 'opacity-disabled'),
84
+ };
85
+ const outside = {
86
+ opacity: 0.5,
87
+ };
88
+ const today = {
89
+ borderWidth: (0, tokens_1.tok)(t, 'border-width-default'),
90
+ borderColor: (0, tokens_1.tok)(t, 'color-border-strong'),
91
+ };
92
+ const selected = {
93
+ backgroundColor: (0, tokens_1.tok)(t, 'color-action-primary'),
94
+ };
95
+ const selectedText = {
96
+ color: (0, tokens_1.tok)(t, 'color-action-primary-fg'),
97
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-strong'),
98
+ };
99
+ const inRange = {
100
+ backgroundColor: (0, tokens_1.tok)(t, 'color-surface-alt'),
101
+ };
102
+ const interaction = s.pressed
103
+ ? { opacity: (0, tokens_1.tok)(t, 'opacity-pressed') }
104
+ : s.hovered
105
+ ? { opacity: 0.96 }
106
+ : {};
107
+ return {
108
+ cell: (0, tokens_1.merge)(base.dayCell, s.isInRange && inRange, s.isToday && today, s.isSelected && selected, s.isOutsideMonth && outside, s.isDisabled && disabled, interaction),
109
+ text: (0, tokens_1.merge)(base.dayText, s.isSelected && selectedText, s.isDisabled && { color: (0, tokens_1.tok)(t, 'color-state-disabled-fg') }),
110
+ focusRing: (0, tokens_1.merge)(s.focusVisible ? base.dayFocusRing : undefined),
111
+ };
112
+ };
113
+ exports.getCalendarDayParts = getCalendarDayParts;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDividerStyle = void 0;
4
+ // styles/dividers.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getDividerStyle = (t, variant = 'subtle') => ({
7
+ height: (0, tokens_1.tok)(t, 'border-width-default'),
8
+ backgroundColor: variant === 'strong'
9
+ ? (0, tokens_1.tok)(t, 'color-border-strong')
10
+ : (0, tokens_1.tok)(t, 'color-border-subtle'),
11
+ });
12
+ exports.getDividerStyle = getDividerStyle;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEmptyStateParts = void 0;
4
+ // styles/emptyStates.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getEmptyStateParts = (t) => ({
7
+ container: {
8
+ alignItems: 'center',
9
+ justifyContent: 'center',
10
+ padding: (0, tokens_1.tok)(t, 'space-6'),
11
+ gap: (0, tokens_1.tok)(t, 'space-3'),
12
+ },
13
+ icon: {
14
+ width: (0, tokens_1.tok)(t, 'typography-font-size-6'),
15
+ height: (0, tokens_1.tok)(t, 'typography-font-size-6'),
16
+ color: (0, tokens_1.tok)(t, 'color-fg-muted'),
17
+ },
18
+ title: {
19
+ color: (0, tokens_1.tok)(t, 'color-fg-default'),
20
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-heading'),
21
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-5'),
22
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-strong'),
23
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-tight'),
24
+ textAlign: 'center',
25
+ },
26
+ message: {
27
+ color: (0, tokens_1.tok)(t, 'color-fg-muted'),
28
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
29
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-3'),
30
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-regular'),
31
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
32
+ textAlign: 'center',
33
+ },
34
+ actions: {
35
+ marginTop: (0, tokens_1.tok)(t, 'space-2'),
36
+ flexDirection: 'row',
37
+ gap: (0, tokens_1.tok)(t, 'space-2'),
38
+ },
39
+ });
40
+ exports.getEmptyStateParts = getEmptyStateParts;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFormLayout = void 0;
4
+ // styles/forms.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getFormLayout = (t) => ({
7
+ form: {
8
+ gap: (0, tokens_1.tok)(t, 'space-4'),
9
+ },
10
+ field: {
11
+ gap: (0, tokens_1.tok)(t, 'space-1'),
12
+ },
13
+ row: {
14
+ flexDirection: 'row',
15
+ gap: (0, tokens_1.tok)(t, 'space-3'),
16
+ },
17
+ section: {
18
+ padding: (0, tokens_1.tok)(t, 'space-4'),
19
+ backgroundColor: (0, tokens_1.tok)(t, 'color-surface'),
20
+ borderRadius: (0, tokens_1.tok)(t, 'radius-4'),
21
+ borderWidth: (0, tokens_1.tok)(t, 'border-width-default'),
22
+ borderColor: (0, tokens_1.tok)(t, 'color-border-subtle'),
23
+ gap: (0, tokens_1.tok)(t, 'space-3'),
24
+ },
25
+ actions: {
26
+ marginTop: (0, tokens_1.tok)(t, 'space-2'),
27
+ flexDirection: 'row',
28
+ justifyContent: 'flex-end',
29
+ gap: (0, tokens_1.tok)(t, 'space-2'),
30
+ },
31
+ });
32
+ exports.getFormLayout = getFormLayout;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHeaderParts = void 0;
4
+ // styles/headers.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getHeaderParts = (t) => ({
7
+ container: {
8
+ minHeight: (0, tokens_1.tok)(t, 'tap-target-min'),
9
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-4'),
10
+ paddingVertical: (0, tokens_1.tok)(t, 'space-3'),
11
+ backgroundColor: (0, tokens_1.tok)(t, 'color-surface'),
12
+ borderBottomWidth: (0, tokens_1.tok)(t, 'border-width-default'),
13
+ borderBottomColor: (0, tokens_1.tok)(t, 'color-border-subtle'),
14
+ flexDirection: 'row',
15
+ alignItems: 'center',
16
+ justifyContent: 'space-between',
17
+ zIndex: (0, tokens_1.tok)(t, 'z-index-layer-navbar'),
18
+ },
19
+ left: {
20
+ minWidth: (0, tokens_1.tok)(t, 'tap-target-min'),
21
+ alignItems: 'flex-start',
22
+ justifyContent: 'center',
23
+ },
24
+ center: { flex: 1, alignItems: 'center', justifyContent: 'center' },
25
+ right: {
26
+ minWidth: (0, tokens_1.tok)(t, 'tap-target-min'),
27
+ alignItems: 'flex-end',
28
+ justifyContent: 'center',
29
+ },
30
+ title: {
31
+ color: (0, tokens_1.tok)(t, 'color-fg-default'),
32
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-heading'),
33
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-4'),
34
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-strong'),
35
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-tight'),
36
+ },
37
+ subtitle: {
38
+ marginTop: (0, tokens_1.tok)(t, 'space-1'),
39
+ color: (0, tokens_1.tok)(t, 'color-fg-muted'),
40
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
41
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-2'),
42
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-regular'),
43
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
44
+ },
45
+ });
46
+ exports.getHeaderParts = getHeaderParts;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./avatars"), exports);
18
+ __exportStar(require("./badges"), exports);
19
+ __exportStar(require("./bottomSheets"), exports);
20
+ __exportStar(require("./buttons"), exports);
21
+ __exportStar(require("./cards"), exports);
22
+ __exportStar(require("./checkboxes"), exports);
23
+ __exportStar(require("./chips"), exports);
24
+ __exportStar(require("./datePickers"), exports);
25
+ __exportStar(require("./dividers"), exports);
26
+ __exportStar(require("./emptyStates"), exports);
27
+ __exportStar(require("./forms"), exports);
28
+ __exportStar(require("./headers"), exports);
29
+ __exportStar(require("./inputs"), exports);
30
+ __exportStar(require("./listItems"), exports);
31
+ __exportStar(require("./modals"), exports);
32
+ __exportStar(require("./pagination"), exports);
33
+ __exportStar(require("./popovers"), exports);
34
+ __exportStar(require("./progress"), exports);
35
+ __exportStar(require("./radios"), exports);
36
+ __exportStar(require("./selects"), exports);
37
+ __exportStar(require("./skeletons"), exports);
38
+ __exportStar(require("./steppers"), exports);
39
+ __exportStar(require("./switches"), exports);
40
+ __exportStar(require("./tables"), exports);
41
+ __exportStar(require("./tabs"), exports);
42
+ __exportStar(require("./toasts"), exports);
43
+ __exportStar(require("./tooltips"), exports);
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInputParts = void 0;
4
+ // styles/inputs.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const sizeStyles = (t) => ({
7
+ sm: {
8
+ fieldWrapper: {
9
+ minHeight: (0, tokens_1.tok)(t, 'tap-target-min'),
10
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-3'),
11
+ paddingVertical: (0, tokens_1.tok)(t, 'space-2'),
12
+ },
13
+ inputText: { fontSize: (0, tokens_1.tok)(t, 'typography-font-size-2') },
14
+ },
15
+ md: {
16
+ fieldWrapper: {
17
+ minHeight: (0, tokens_1.tok)(t, 'tap-target-min'),
18
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-4'),
19
+ paddingVertical: (0, tokens_1.tok)(t, 'space-2'),
20
+ },
21
+ inputText: { fontSize: (0, tokens_1.tok)(t, 'typography-font-size-3') },
22
+ },
23
+ lg: {
24
+ fieldWrapper: {
25
+ minHeight: (0, tokens_1.tok)(t, 'tap-target-min'),
26
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-5'),
27
+ paddingVertical: (0, tokens_1.tok)(t, 'space-3'),
28
+ },
29
+ inputText: { fontSize: (0, tokens_1.tok)(t, 'typography-font-size-4') },
30
+ },
31
+ });
32
+ const getInputParts = (t, opts = {}) => {
33
+ const size = opts.size ?? 'md';
34
+ const isDisabled = Boolean(opts.disabled);
35
+ const isError = Boolean(opts.error);
36
+ const isFocused = Boolean(opts.focused);
37
+ const s = sizeStyles(t)[size];
38
+ const base = {
39
+ label: {
40
+ marginBottom: (0, tokens_1.tok)(t, 'space-1'),
41
+ color: (0, tokens_1.tok)(t, 'color-fg-muted'),
42
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
43
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-2'),
44
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-medium'),
45
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
46
+ },
47
+ fieldWrapper: (0, tokens_1.merge)({
48
+ backgroundColor: (0, tokens_1.tok)(t, 'color-input-bg'),
49
+ borderColor: (0, tokens_1.tok)(t, 'color-input-border'),
50
+ borderWidth: (0, tokens_1.tok)(t, 'border-width-default'),
51
+ borderRadius: (0, tokens_1.tok)(t, 'radius-2'),
52
+ justifyContent: 'center',
53
+ }, s.fieldWrapper),
54
+ inputText: (0, tokens_1.merge)({
55
+ color: (0, tokens_1.tok)(t, 'color-fg-default'),
56
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
57
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
58
+ }, s.inputText),
59
+ placeholder: {
60
+ color: (0, tokens_1.tok)(t, 'color-input-placeholder'),
61
+ },
62
+ helper: {
63
+ marginTop: (0, tokens_1.tok)(t, 'space-1'),
64
+ color: (0, tokens_1.tok)(t, 'color-fg-subtle'),
65
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
66
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-1'),
67
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
68
+ },
69
+ focusRing: {
70
+ outlineStyle: 'solid',
71
+ outlineWidth: (0, tokens_1.tok)(t, 'border-width-focus'),
72
+ outlineColor: (0, tokens_1.tok)(t, 'color-focus-ring'),
73
+ outlineOffset: (0, tokens_1.tok)(t, 'focus-ring-gap'),
74
+ },
75
+ };
76
+ const focused = {
77
+ fieldWrapper: { borderColor: (0, tokens_1.tok)(t, 'color-input-border-focus') },
78
+ };
79
+ const error = {
80
+ fieldWrapper: { borderColor: (0, tokens_1.tok)(t, 'color-status-error') },
81
+ helper: { color: (0, tokens_1.tok)(t, 'color-status-error') },
82
+ };
83
+ const disabled = {
84
+ fieldWrapper: {
85
+ backgroundColor: (0, tokens_1.tok)(t, 'color-state-disabled-bg'),
86
+ borderColor: (0, tokens_1.tok)(t, 'color-state-disabled-bg'),
87
+ },
88
+ label: { color: (0, tokens_1.tok)(t, 'color-state-disabled-fg') },
89
+ inputText: { color: (0, tokens_1.tok)(t, 'color-state-disabled-fg') },
90
+ helper: { color: (0, tokens_1.tok)(t, 'color-state-disabled-fg') },
91
+ };
92
+ return {
93
+ label: (0, tokens_1.merge)(base.label, isDisabled && disabled.label),
94
+ fieldWrapper: (0, tokens_1.merge)(base.fieldWrapper, isFocused && focused.fieldWrapper, isError && error.fieldWrapper, isDisabled && disabled.fieldWrapper),
95
+ inputText: (0, tokens_1.merge)(base.inputText, isDisabled && disabled.inputText),
96
+ placeholder: (0, tokens_1.merge)(base.placeholder),
97
+ helper: (0, tokens_1.merge)(base.helper, isError && error.helper, isDisabled && disabled.helper),
98
+ focusRing: (0, tokens_1.merge)(isFocused ? base.focusRing : undefined),
99
+ };
100
+ };
101
+ exports.getInputParts = getInputParts;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getListItemParts = void 0;
4
+ // styles/listItems.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getListItemParts = (t, s = {}) => {
7
+ const disabled = Boolean(s.disabled);
8
+ const base = {
9
+ container: {
10
+ minHeight: (0, tokens_1.tok)(t, 'tap-target-min'),
11
+ paddingVertical: (0, tokens_1.tok)(t, 'space-2'),
12
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-4'),
13
+ flexDirection: 'row',
14
+ alignItems: 'center',
15
+ gap: (0, tokens_1.tok)(t, 'space-3'),
16
+ borderRadius: (0, tokens_1.tok)(t, 'radius-3'),
17
+ },
18
+ left: {
19
+ width: (0, tokens_1.tok)(t, 'tap-target-min'),
20
+ alignItems: 'center',
21
+ justifyContent: 'center',
22
+ },
23
+ content: { flex: 1, gap: (0, tokens_1.tok)(t, 'space-1') },
24
+ right: {
25
+ minWidth: (0, tokens_1.tok)(t, 'tap-target-min'),
26
+ alignItems: 'center',
27
+ justifyContent: 'center',
28
+ },
29
+ title: {
30
+ color: (0, tokens_1.tok)(t, 'color-fg-default'),
31
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
32
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-3'),
33
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-medium'),
34
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
35
+ },
36
+ subtitle: {
37
+ color: (0, tokens_1.tok)(t, 'color-fg-muted'),
38
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
39
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-2'),
40
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-regular'),
41
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
42
+ },
43
+ focusRing: {
44
+ outlineStyle: 'solid',
45
+ outlineWidth: (0, tokens_1.tok)(t, 'border-width-focus'),
46
+ outlineColor: (0, tokens_1.tok)(t, 'color-focus-ring'),
47
+ outlineOffset: (0, tokens_1.tok)(t, 'focus-ring-gap'),
48
+ },
49
+ };
50
+ const selected = { backgroundColor: (0, tokens_1.tok)(t, 'color-surface-alt') };
51
+ const hover = { backgroundColor: (0, tokens_1.tok)(t, 'color-bg-subtle') };
52
+ const pressed = { opacity: (0, tokens_1.tok)(t, 'opacity-pressed') };
53
+ const disabledS = { opacity: (0, tokens_1.tok)(t, 'opacity-disabled') };
54
+ const disabledText = { color: (0, tokens_1.tok)(t, 'color-state-disabled-fg') };
55
+ return {
56
+ container: (0, tokens_1.merge)(base.container, s.selected && selected, s.hovered && hover, s.pressed && pressed, disabled && disabledS),
57
+ left: base.left,
58
+ content: base.content,
59
+ right: base.right,
60
+ title: (0, tokens_1.merge)(base.title, disabled && disabledText),
61
+ subtitle: (0, tokens_1.merge)(base.subtitle, disabled && disabledText),
62
+ focusRing: (0, tokens_1.merge)(s.focusVisible ? base.focusRing : undefined),
63
+ };
64
+ };
65
+ exports.getListItemParts = getListItemParts;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getModalParts = void 0;
4
+ // styles/modals.ts
5
+ const tokens_1 = require("../types/tokens");
6
+ const getModalParts = (t, opts) => {
7
+ const enter = (0, tokens_1.motion)(t, 'motion-emphasis-enter');
8
+ const exit = (0, tokens_1.motion)(t, 'motion-emphasis-exit');
9
+ const base = {
10
+ backdrop: {
11
+ position: 'absolute',
12
+ inset: 0,
13
+ backgroundColor: (0, tokens_1.tok)(t, 'color-overlay-backdrop'),
14
+ zIndex: (0, tokens_1.tok)(t, 'z-index-layer-overlay'),
15
+ },
16
+ container: {
17
+ position: 'absolute',
18
+ inset: 0,
19
+ alignItems: 'center',
20
+ justifyContent: 'center',
21
+ padding: (0, tokens_1.tok)(t, 'space-4'),
22
+ zIndex: (0, tokens_1.tok)(t, 'z-index-layer-modal'),
23
+ },
24
+ surface: {
25
+ width: '100%',
26
+ backgroundColor: (0, tokens_1.tok)(t, 'color-surface'),
27
+ borderRadius: (0, tokens_1.tok)(t, 'radius-4'),
28
+ borderWidth: (0, tokens_1.tok)(t, 'border-width-default'),
29
+ borderColor: (0, tokens_1.tok)(t, 'color-border-subtle'),
30
+ shadow: (0, tokens_1.tok)(t, 'shadow-level-4'),
31
+ overflow: 'hidden',
32
+ // semântico (runtime aplica animação)
33
+ animationEnterDurationMs: enter.durationMs,
34
+ animationEnterEasing: enter.easing,
35
+ animationExitDurationMs: exit.durationMs,
36
+ animationExitEasing: exit.easing,
37
+ },
38
+ header: {
39
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-4'),
40
+ paddingTop: (0, tokens_1.tok)(t, 'space-4'),
41
+ paddingBottom: (0, tokens_1.tok)(t, 'space-2'),
42
+ borderBottomWidth: (0, tokens_1.tok)(t, 'border-width-default'),
43
+ borderBottomColor: (0, tokens_1.tok)(t, 'color-border-subtle'),
44
+ },
45
+ body: {
46
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-4'),
47
+ paddingVertical: (0, tokens_1.tok)(t, 'space-3'),
48
+ },
49
+ footer: {
50
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-4'),
51
+ paddingTop: (0, tokens_1.tok)(t, 'space-2'),
52
+ paddingBottom: (0, tokens_1.tok)(t, 'space-4'),
53
+ borderTopWidth: (0, tokens_1.tok)(t, 'border-width-default'),
54
+ borderTopColor: (0, tokens_1.tok)(t, 'color-border-subtle'),
55
+ flexDirection: 'row',
56
+ justifyContent: 'flex-end',
57
+ gap: (0, tokens_1.tok)(t, 'space-2'),
58
+ },
59
+ title: {
60
+ color: (0, tokens_1.tok)(t, 'color-fg-default'),
61
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-heading'),
62
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-5'),
63
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-strong'),
64
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-tight'),
65
+ },
66
+ subtitle: {
67
+ marginTop: (0, tokens_1.tok)(t, 'space-1'),
68
+ color: (0, tokens_1.tok)(t, 'color-fg-muted'),
69
+ fontFamily: (0, tokens_1.tok)(t, 'typography-font-family-base'),
70
+ fontSize: (0, tokens_1.tok)(t, 'typography-font-size-3'),
71
+ fontWeight: (0, tokens_1.tok)(t, 'typography-font-weight-regular'),
72
+ lineHeight: (0, tokens_1.tok)(t, 'typography-line-height-default'),
73
+ },
74
+ };
75
+ if (!opts?.dense)
76
+ return base;
77
+ return {
78
+ ...base,
79
+ header: (0, tokens_1.merge)(base.header, {
80
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-3'),
81
+ paddingTop: (0, tokens_1.tok)(t, 'space-3'),
82
+ }),
83
+ body: (0, tokens_1.merge)(base.body, {
84
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-3'),
85
+ }),
86
+ footer: (0, tokens_1.merge)(base.footer, {
87
+ paddingHorizontal: (0, tokens_1.tok)(t, 'space-3'),
88
+ paddingBottom: (0, tokens_1.tok)(t, 'space-3'),
89
+ }),
90
+ };
91
+ };
92
+ exports.getModalParts = getModalParts;