@drivenets/design-system 0.0.1

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 (242) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +201 -0
  3. package/dist/index.cjs +5394 -0
  4. package/dist/index.css +1 -0
  5. package/dist/index.d.cts +9157 -0
  6. package/dist/index.d.cts.map +1 -0
  7. package/dist/index.d.ts +9157 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +5335 -0
  10. package/dist/index.js.map +1 -0
  11. package/package.json +104 -0
  12. package/src/components/ds-alert-banner/ds-alert-banner.module.scss +116 -0
  13. package/src/components/ds-alert-banner/ds-alert-banner.tsx +115 -0
  14. package/src/components/ds-alert-banner/ds-alert-banner.types.tsx +47 -0
  15. package/src/components/ds-alert-banner/index.tsx +2 -0
  16. package/src/components/ds-breadcrumb/ds-breadcrumb.module.scss +99 -0
  17. package/src/components/ds-breadcrumb/ds-breadcrumb.tsx +94 -0
  18. package/src/components/ds-breadcrumb/ds-breadcrumb.types.tsx +32 -0
  19. package/src/components/ds-breadcrumb/index.tsx +2 -0
  20. package/src/components/ds-button/ds-button.tsx +12 -0
  21. package/src/components/ds-button/ds-button.types.ts +6 -0
  22. package/src/components/ds-button/index.ts +2 -0
  23. package/src/components/ds-button/versions/ds-button-legacy/ds-button-legacy.module.scss +257 -0
  24. package/src/components/ds-button/versions/ds-button-legacy/ds-button-legacy.tsx +34 -0
  25. package/src/components/ds-button/versions/ds-button-legacy/ds-button-legacy.types.ts +41 -0
  26. package/src/components/ds-button/versions/ds-button-legacy/index.ts +2 -0
  27. package/src/components/ds-button/versions/ds-button-new/ds-button-new.module.scss +580 -0
  28. package/src/components/ds-button/versions/ds-button-new/ds-button-new.tsx +49 -0
  29. package/src/components/ds-button/versions/ds-button-new/ds-button-new.types.ts +41 -0
  30. package/src/components/ds-button/versions/ds-button-new/index.ts +2 -0
  31. package/src/components/ds-checkbox/ds-checkbox.module.scss +130 -0
  32. package/src/components/ds-checkbox/ds-checkbox.tsx +55 -0
  33. package/src/components/ds-checkbox/ds-checkbox.types.tsx +27 -0
  34. package/src/components/ds-checkbox/index.tsx +2 -0
  35. package/src/components/ds-chip/ds-chip.module.scss +71 -0
  36. package/src/components/ds-chip/ds-chip.tsx +73 -0
  37. package/src/components/ds-chip/ds-chip.types.tsx +46 -0
  38. package/src/components/ds-chip/index.tsx +2 -0
  39. package/src/components/ds-chip-group/ds-chip-group.module.scss +59 -0
  40. package/src/components/ds-chip-group/ds-chip-group.tsx +122 -0
  41. package/src/components/ds-chip-group/ds-chip-group.types.ts +52 -0
  42. package/src/components/ds-chip-group/hooks/use-chip-row-calculation.ts +76 -0
  43. package/src/components/ds-chip-group/index.ts +2 -0
  44. package/src/components/ds-confirmation/ds-confirmation.module.scss +58 -0
  45. package/src/components/ds-confirmation/ds-confirmation.tsx +121 -0
  46. package/src/components/ds-confirmation/ds-confirmation.types.tsx +28 -0
  47. package/src/components/ds-confirmation/index.ts +2 -0
  48. package/src/components/ds-dialog/ds-dialog.module.scss +50 -0
  49. package/src/components/ds-dialog/ds-dialog.tsx +70 -0
  50. package/src/components/ds-dialog/ds-dialog.types.tsx +48 -0
  51. package/src/components/ds-dialog/index.tsx +2 -0
  52. package/src/components/ds-drawer/ds-drawer.module.scss +212 -0
  53. package/src/components/ds-drawer/ds-drawer.tsx +160 -0
  54. package/src/components/ds-drawer/ds-drawer.types.tsx +54 -0
  55. package/src/components/ds-drawer/index.ts +2 -0
  56. package/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss +123 -0
  57. package/src/components/ds-dropdown-menu/ds-dropdown-menu.tsx +396 -0
  58. package/src/components/ds-dropdown-menu/ds-dropdown-menu.types.tsx +262 -0
  59. package/src/components/ds-dropdown-menu/index.tsx +2 -0
  60. package/src/components/ds-expandable-text-input/ds-expandable-text-input.module.scss +70 -0
  61. package/src/components/ds-expandable-text-input/ds-expandable-text-input.tsx +106 -0
  62. package/src/components/ds-expandable-text-input/ds-expandable-text-input.types.tsx +19 -0
  63. package/src/components/ds-expandable-text-input/index.ts +2 -0
  64. package/src/components/ds-file-upload/components/file-upload/file-upload.module.scss +90 -0
  65. package/src/components/ds-file-upload/components/file-upload/file-upload.tsx +106 -0
  66. package/src/components/ds-file-upload/components/file-upload/file-upload.types.tsx +94 -0
  67. package/src/components/ds-file-upload/components/file-upload/index.ts +2 -0
  68. package/src/components/ds-file-upload/components/file-upload-item/file-upload-item.module.scss +125 -0
  69. package/src/components/ds-file-upload/components/file-upload-item/file-upload-item.tsx +143 -0
  70. package/src/components/ds-file-upload/components/file-upload-item/file-upload-item.types.tsx +26 -0
  71. package/src/components/ds-file-upload/components/file-upload-item/index.ts +2 -0
  72. package/src/components/ds-file-upload/ds-file-upload-api.types.ts +38 -0
  73. package/src/components/ds-file-upload/ds-file-upload.tsx +46 -0
  74. package/src/components/ds-file-upload/ds-file-upload.types.tsx +54 -0
  75. package/src/components/ds-file-upload/errors/file-upload-errors.ts +27 -0
  76. package/src/components/ds-file-upload/hooks/index.ts +2 -0
  77. package/src/components/ds-file-upload/hooks/use-file-upload.ts +350 -0
  78. package/src/components/ds-file-upload/index.ts +7 -0
  79. package/src/components/ds-file-upload/types/accept-types.ts +106 -0
  80. package/src/components/ds-file-upload/utils/accept-utils.ts +25 -0
  81. package/src/components/ds-file-upload/utils/constants.ts +21 -0
  82. package/src/components/ds-file-upload/utils/file-factory.ts +18 -0
  83. package/src/components/ds-file-upload/utils/format-file-size.ts +15 -0
  84. package/src/components/ds-file-upload/utils/generate-helper-text.ts +39 -0
  85. package/src/components/ds-file-upload/utils/get-error-message.ts +17 -0
  86. package/src/components/ds-file-upload/utils/is-file-equal.ts +8 -0
  87. package/src/components/ds-form-control/ds-form-control.module.scss +135 -0
  88. package/src/components/ds-form-control/ds-form-control.tsx +94 -0
  89. package/src/components/ds-form-control/ds-form-control.types.tsx +58 -0
  90. package/src/components/ds-form-control/index.tsx +2 -0
  91. package/src/components/ds-grid/ds-grid.module.scss +0 -0
  92. package/src/components/ds-grid/ds-grid.tsx +43 -0
  93. package/src/components/ds-grid/ds-grid.types.ts +55 -0
  94. package/src/components/ds-grid/index.ts +2 -0
  95. package/src/components/ds-icon/ds-icon.module.scss +25 -0
  96. package/src/components/ds-icon/ds-icon.tsx +33 -0
  97. package/src/components/ds-icon/ds-icon.types.ts +53 -0
  98. package/src/components/ds-icon/index.ts +2 -0
  99. package/src/components/ds-icon/material-icons.ts +6203 -0
  100. package/src/components/ds-modal/ds-modal.module.scss +100 -0
  101. package/src/components/ds-modal/ds-modal.tsx +136 -0
  102. package/src/components/ds-modal/ds-modal.types.tsx +44 -0
  103. package/src/components/ds-modal/index.tsx +2 -0
  104. package/src/components/ds-number-input/ds-number-input.module.scss +15 -0
  105. package/src/components/ds-number-input/ds-number-input.tsx +74 -0
  106. package/src/components/ds-number-input/ds-number-input.types.tsx +76 -0
  107. package/src/components/ds-number-input/index.tsx +2 -0
  108. package/src/components/ds-panel/ds-panel.module.scss +95 -0
  109. package/src/components/ds-panel/ds-panel.tsx +46 -0
  110. package/src/components/ds-panel/ds-panel.types.ts +17 -0
  111. package/src/components/ds-panel/index.tsx +2 -0
  112. package/src/components/ds-password-input/ds-password-input.module.scss +10 -0
  113. package/src/components/ds-password-input/ds-password-input.tsx +67 -0
  114. package/src/components/ds-password-input/ds-password-input.types.tsx +62 -0
  115. package/src/components/ds-password-input/index.tsx +2 -0
  116. package/src/components/ds-popover/ds-popover.module.scss +23 -0
  117. package/src/components/ds-popover/ds-popover.tsx +33 -0
  118. package/src/components/ds-popover/ds-popover.types.tsx +24 -0
  119. package/src/components/ds-popover/index.tsx +2 -0
  120. package/src/components/ds-radio-group/ds-radio-group.module.scss +138 -0
  121. package/src/components/ds-radio-group/ds-radio-group.tsx +115 -0
  122. package/src/components/ds-radio-group/ds-radio-group.types.tsx +93 -0
  123. package/src/components/ds-radio-group/index.tsx +2 -0
  124. package/src/components/ds-select/ds-select.module.scss +66 -0
  125. package/src/components/ds-select/ds-select.tsx +239 -0
  126. package/src/components/ds-select/ds-select.types.tsx +80 -0
  127. package/src/components/ds-select/index.tsx +2 -0
  128. package/src/components/ds-select/select-items-chips.tsx +56 -0
  129. package/src/components/ds-smart-tabs/ds-smart-tabs.module.scss +69 -0
  130. package/src/components/ds-smart-tabs/ds-smart-tabs.tsx +113 -0
  131. package/src/components/ds-smart-tabs/ds-smart-tabs.types.tsx +74 -0
  132. package/src/components/ds-smart-tabs/index.tsx +2 -0
  133. package/src/components/ds-spinner/ds-spinner.module.scss +39 -0
  134. package/src/components/ds-spinner/ds-spinner.tsx +51 -0
  135. package/src/components/ds-spinner/ds-spinner.types.tsx +20 -0
  136. package/src/components/ds-spinner/index.tsx +2 -0
  137. package/src/components/ds-status-badge/ds-status-badge.module.scss +79 -0
  138. package/src/components/ds-status-badge/ds-status-badge.tsx +42 -0
  139. package/src/components/ds-status-badge/ds-status-badge.types.tsx +46 -0
  140. package/src/components/ds-status-badge/index.tsx +2 -0
  141. package/src/components/ds-stepper/components/ds-step-content.tsx +32 -0
  142. package/src/components/ds-stepper/components/ds-step-description.tsx +6 -0
  143. package/src/components/ds-stepper/components/ds-step-label.tsx +6 -0
  144. package/src/components/ds-stepper/components/ds-step-next-button.tsx +13 -0
  145. package/src/components/ds-stepper/components/ds-step.tsx +59 -0
  146. package/src/components/ds-stepper/ds-stepper.module.scss +134 -0
  147. package/src/components/ds-stepper/ds-stepper.tsx +34 -0
  148. package/src/components/ds-stepper/ds-stepper.types.ts +12 -0
  149. package/src/components/ds-stepper/hooks/use-stepper.ts +20 -0
  150. package/src/components/ds-stepper/hooks/use-steps.ts +18 -0
  151. package/src/components/ds-stepper/index.tsx +6 -0
  152. package/src/components/ds-system-status/ds-system-status.module.scss +87 -0
  153. package/src/components/ds-system-status/ds-system-status.tsx +33 -0
  154. package/src/components/ds-system-status/ds-system-status.types.tsx +37 -0
  155. package/src/components/ds-system-status/index.tsx +10 -0
  156. package/src/components/ds-table/components/core-table/core-table.module.scss +32 -0
  157. package/src/components/ds-table/components/core-table/core-table.tsx +83 -0
  158. package/src/components/ds-table/components/core-table/index.ts +1 -0
  159. package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.module.scss +115 -0
  160. package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.tsx +70 -0
  161. package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.types.ts +41 -0
  162. package/src/components/ds-table/components/ds-table-bulk-actions/index.ts +2 -0
  163. package/src/components/ds-table/components/ds-table-cell/ds-table-cell.module.scss +53 -0
  164. package/src/components/ds-table/components/ds-table-cell/ds-table-cell.tsx +95 -0
  165. package/src/components/ds-table/components/ds-table-cell/ds-table-cell.types.ts +67 -0
  166. package/src/components/ds-table/components/ds-table-cell/index.ts +2 -0
  167. package/src/components/ds-table/components/ds-table-header/ds-table-header.module.scss +81 -0
  168. package/src/components/ds-table/components/ds-table-header/ds-table-header.tsx +99 -0
  169. package/src/components/ds-table/components/ds-table-header/ds-table-header.types.ts +11 -0
  170. package/src/components/ds-table/components/ds-table-header/index.ts +2 -0
  171. package/src/components/ds-table/components/ds-table-row/ds-table-row.module.scss +137 -0
  172. package/src/components/ds-table/components/ds-table-row/ds-table-row.tsx +205 -0
  173. package/src/components/ds-table/components/ds-table-row/ds-table-row.types.ts +22 -0
  174. package/src/components/ds-table/components/ds-table-row/index.ts +2 -0
  175. package/src/components/ds-table/context/ds-table-context.tsx +39 -0
  176. package/src/components/ds-table/ds-table.module.scss +60 -0
  177. package/src/components/ds-table/ds-table.tsx +312 -0
  178. package/src/components/ds-table/ds-table.types.ts +377 -0
  179. package/src/components/ds-table/filters/adapters/create-checkbox-filter-adapter.tsx +116 -0
  180. package/src/components/ds-table/filters/adapters/create-dual-range-filter-adapter.tsx +171 -0
  181. package/src/components/ds-table/filters/adapters/create-filter-adapter.ts +131 -0
  182. package/src/components/ds-table/filters/adapters/index.ts +12 -0
  183. package/src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.tsx +43 -0
  184. package/src/components/ds-table/filters/components/checkbox-filter/index.ts +2 -0
  185. package/src/components/ds-table/filters/components/range-filter/index.ts +2 -0
  186. package/src/components/ds-table/filters/components/range-filter/range-filter.module.scss +25 -0
  187. package/src/components/ds-table/filters/components/range-filter/range-filter.tsx +79 -0
  188. package/src/components/ds-table/filters/hooks/index.ts +1 -0
  189. package/src/components/ds-table/filters/hooks/use-table-filters.ts +234 -0
  190. package/src/components/ds-table/filters/index.ts +50 -0
  191. package/src/components/ds-table/filters/types/filter-adapter.types.ts +111 -0
  192. package/src/components/ds-table/hooks/use-drag-and-drop.tsx +107 -0
  193. package/src/components/ds-table/index.ts +4 -0
  194. package/src/components/ds-table/styles/_variables.scss +17 -0
  195. package/src/components/ds-table/styles/shared/ds-table-shared.module.scss +16 -0
  196. package/src/components/ds-table/utils/column-styling.ts +30 -0
  197. package/src/components/ds-table/utils/create-columns-grid-template.ts +23 -0
  198. package/src/components/ds-table/utils/merge-refs.ts +15 -0
  199. package/src/components/ds-table/utils/story-data-generator.ts +91 -0
  200. package/src/components/ds-text-input/ds-text-input.module.scss +27 -0
  201. package/src/components/ds-text-input/ds-text-input.tsx +75 -0
  202. package/src/components/ds-text-input/ds-text-input.types.tsx +110 -0
  203. package/src/components/ds-text-input/index.ts +2 -0
  204. package/src/components/ds-textarea/ds-textarea.module.scss +5 -0
  205. package/src/components/ds-textarea/ds-textarea.tsx +49 -0
  206. package/src/components/ds-textarea/ds-textarea.types.tsx +67 -0
  207. package/src/components/ds-textarea/index.tsx +2 -0
  208. package/src/components/ds-toast/ds-toast-context.tsx +79 -0
  209. package/src/components/ds-toast/ds-toast.module.scss +134 -0
  210. package/src/components/ds-toast/ds-toast.tsx +54 -0
  211. package/src/components/ds-toast/ds-toast.types.tsx +53 -0
  212. package/src/components/ds-toast/index.ts +3 -0
  213. package/src/components/ds-tooltip/ds-tooltip.module.scss +19 -0
  214. package/src/components/ds-tooltip/ds-tooltip.tsx +33 -0
  215. package/src/components/ds-tooltip/ds-tooltip.types.tsx +12 -0
  216. package/src/components/ds-tooltip/index.tsx +2 -0
  217. package/src/components/ds-typography/ds-typography.config.ts +32 -0
  218. package/src/components/ds-typography/ds-typography.module.scss +93 -0
  219. package/src/components/ds-typography/ds-typography.tsx +27 -0
  220. package/src/components/ds-typography/ds-typography.types.tsx +27 -0
  221. package/src/components/ds-typography/index.tsx +2 -0
  222. package/src/components/ds-vertical-tabs/ds-vertical-tabs.module.scss +60 -0
  223. package/src/components/ds-vertical-tabs/ds-vertical-tabs.tsx +80 -0
  224. package/src/components/ds-vertical-tabs/ds-vertical-tabs.types.ts +69 -0
  225. package/src/components/ds-vertical-tabs/index.ts +7 -0
  226. package/src/index.ts +34 -0
  227. package/src/styles/_colors.scss +65 -0
  228. package/src/styles/_grid.scss +111 -0
  229. package/src/styles/_mixin.scss +1 -0
  230. package/src/styles/_reset.scss +38 -0
  231. package/src/styles/_root.scss +390 -0
  232. package/src/styles/_scrollbars.scss +41 -0
  233. package/src/styles/_spacing.scss +47 -0
  234. package/src/styles/_typography.scss +301 -0
  235. package/src/styles/_utilities.scss +33 -0
  236. package/src/styles/_variables.scss +44 -0
  237. package/src/styles/mixins/_bounding-box.scss +53 -0
  238. package/src/styles/mixins/_list.scss +74 -0
  239. package/src/styles/shared/_dropdown.scss +89 -0
  240. package/src/styles/shared/_input.scss +365 -0
  241. package/src/styles/shared/_modal.scss +123 -0
  242. package/src/styles/styles.scss +12 -0
@@ -0,0 +1,301 @@
1
+ // typography is defined in: https://www.figma.com/design/XJwVCvDPhD0dMTP4vr3xY3/%F0%9F%A6%95-%F0%9F%AA%86Style-%26-Design-System?node-id=4804-91960&node-type=frame&t=6LW93tAe2no6Rhgx-0
2
+ @use 'variables' as var;
3
+
4
+ @mixin base-font {
5
+ font-family: var.$font-family-base;
6
+ font-weight: var.$font-weight-regular;
7
+ letter-spacing: 0;
8
+ text-align: left;
9
+ }
10
+
11
+ @mixin line-clamp($lines: 2) {
12
+ display: -webkit-box;
13
+ overflow: hidden;
14
+ -webkit-line-clamp: $lines;
15
+ -webkit-box-orient: vertical;
16
+ }
17
+
18
+ @mixin ellipsis {
19
+ text-overflow: ellipsis;
20
+ white-space: nowrap;
21
+ overflow: hidden;
22
+ }
23
+
24
+ @mixin h1 {
25
+ @include base-font;
26
+ font-size: var.$font-size-h1;
27
+ line-height: var.$line-height-h1;
28
+ }
29
+
30
+ @mixin h2 {
31
+ @include base-font;
32
+ font-size: var.$font-size-h2;
33
+ line-height: var.$line-height-h2;
34
+ }
35
+
36
+ @mixin h3 {
37
+ @include base-font;
38
+ font-size: var.$font-size-h3;
39
+ line-height: var.$line-height-h3;
40
+ }
41
+
42
+ @mixin h4 {
43
+ @include base-font;
44
+ font-size: var.$font-size-h4;
45
+ line-height: var.$line-height-h4;
46
+ }
47
+
48
+ @mixin h5 {
49
+ @include base-font;
50
+ font-size: var.$font-size-h5;
51
+ line-height: var.$line-height-h5;
52
+ }
53
+
54
+ @mixin h6 {
55
+ @include base-font;
56
+ font-size: var.$font-size-h6;
57
+ line-height: var.$line-height-h6;
58
+ }
59
+
60
+ @mixin h7 {
61
+ @include base-font;
62
+ font-size: var.$font-size-h7;
63
+ line-height: var.$line-height-h7;
64
+ }
65
+
66
+ @mixin p-xl {
67
+ @include base-font;
68
+ font-size: var.$font-size-p-xl;
69
+ line-height: var.$line-height-p-xl;
70
+ }
71
+
72
+ @mixin p-lg {
73
+ @include base-font;
74
+ font-size: var.$font-size-p-lg;
75
+ line-height: var.$line-height-p-lg;
76
+ }
77
+
78
+ @mixin p-base {
79
+ @include base-font;
80
+ font-size: var.$font-size-p-base;
81
+ line-height: var.$line-height-p-base;
82
+ }
83
+
84
+ @mixin p-special {
85
+ @include base-font;
86
+ font-size: var.$font-size-p-special;
87
+ line-height: var.$line-height-p-special;
88
+ }
89
+
90
+ @mixin p-s {
91
+ @include base-font;
92
+ font-size: var.$font-size-p-s;
93
+ line-height: var.$line-height-p-s;
94
+ }
95
+
96
+ @mixin action {
97
+ @include base-font;
98
+ font-size: var.$font-size-action;
99
+ line-height: var.$line-height-action;
100
+ }
101
+
102
+ @mixin action-lg {
103
+ @include base-font;
104
+ font-size: var.$font-size-action-lg;
105
+ line-height: var.$line-height-action-lg;
106
+ }
107
+
108
+ @mixin action-med {
109
+ @include base-font;
110
+ font-size: var.$font-size-action-med;
111
+ line-height: var.$line-height-action-med;
112
+ }
113
+
114
+ @mixin action-small {
115
+ @include base-font;
116
+ font-size: var.$font-size-action-small;
117
+ line-height: var.$line-height-action-small;
118
+ }
119
+
120
+ @mixin bold {
121
+ font-weight: var.$font-weight-bold;
122
+ }
123
+
124
+ @mixin medium {
125
+ font-weight: var.$font-weight-medium;
126
+ }
127
+
128
+ @mixin regular {
129
+ font-weight: var.$font-weight-regular;
130
+ }
131
+
132
+ @mixin light {
133
+ font-weight: var.$font-weight-light;
134
+ }
135
+
136
+ // New for DS v1.2
137
+
138
+ // TODO below needs to be removed
139
+ @mixin font-base {
140
+ font-family: var(--font-family-base);
141
+ font-style: normal;
142
+ letter-spacing: 0;
143
+ }
144
+
145
+ @mixin link-base {
146
+ text-decoration-line: underline;
147
+ text-decoration-style: solid;
148
+ text-decoration-skip-ink: none;
149
+ text-decoration-thickness: auto;
150
+ text-underline-offset: auto;
151
+ text-underline-position: from-font;
152
+ }
153
+
154
+ @mixin code-base {
155
+ font-family: var(--font-family-code);
156
+ font-style: normal;
157
+ letter-spacing: 0;
158
+ text-align: left;
159
+ }
160
+
161
+ @mixin heading($font-weight: var(--font-size-3xl), $line-height: var(--line-height-3xl)) {
162
+ @include font-base;
163
+ font-size: $font-weight;
164
+ font-weight: var(--font-weight-semi-bold);
165
+ line-height: $line-height;
166
+ letter-spacing: var(--letter-spacing--1percent);
167
+ }
168
+
169
+ @mixin heading1 {
170
+ @include heading;
171
+ }
172
+
173
+ @mixin heading2 {
174
+ @include heading(var(--font-size-2xl), var(--line-height-2xl));
175
+ }
176
+
177
+ @mixin heading3 {
178
+ @include heading(var(--font-size-xl), var(--line-height-xl));
179
+ }
180
+
181
+ @mixin heading4 {
182
+ @include heading(var(--font-size-large), var(--line-height-large));
183
+ }
184
+
185
+ @mixin body-md($font-weight: var(--font-weight-regular)) {
186
+ @include font-base;
187
+ font-size: var(--font-size-md);
188
+ font-weight: $font-weight;
189
+ line-height: var(--line-height-md);
190
+ letter-spacing: var(--letter-spacing--1percent);
191
+ }
192
+
193
+ @mixin body-md-reg {
194
+ @include body-md;
195
+ }
196
+
197
+ @mixin body-md-md {
198
+ @include body-md(var(--font-weight-medium));
199
+ }
200
+
201
+ @mixin body-md-semi-bold {
202
+ @include body-md(var(--font-weight-semi-bold));
203
+ }
204
+
205
+ @mixin body-md-bold {
206
+ @include body-md(var(--font-weight-bold));
207
+ }
208
+
209
+ @mixin body-md-link {
210
+ @include body-md;
211
+ @include link-base;
212
+ }
213
+
214
+ @mixin body-sm($font-weight: var(--font-weight-regular)) {
215
+ @include font-base;
216
+ font-size: var(--font-size-sm);
217
+ font-weight: $font-weight;
218
+ line-height: var(--line-height-sm);
219
+ letter-spacing: var(--letter-spacing--1percent);
220
+ }
221
+
222
+ @mixin body-sm-reg {
223
+ @include body-sm;
224
+ }
225
+
226
+ @mixin body-sm-md {
227
+ @include body-sm(var(--font-weight-medium));
228
+ }
229
+
230
+ @mixin body-sm-semi-bold {
231
+ @include body-sm(var(--font-weight-semi-bold));
232
+ }
233
+
234
+ @mixin body-sm-bold {
235
+ @include body-sm(var(--font-weight-bold));
236
+ }
237
+
238
+ @mixin body-sm-link {
239
+ @include body-sm;
240
+ @include link-base;
241
+ }
242
+
243
+ @mixin body-xs($font-weight: var(--font-weight-regular)) {
244
+ @include font-base;
245
+ font-size: var(--font-size-xs);
246
+ font-weight: $font-weight;
247
+ line-height: var(--line-height-xs);
248
+ }
249
+
250
+ @mixin body-xs-reg {
251
+ @include body-xs;
252
+ }
253
+
254
+ @mixin body-xs-md {
255
+ @include body-xs(var(--font-weight-medium));
256
+ }
257
+
258
+ @mixin body-xs-semi-bold {
259
+ @include body-xs(var(--font-weight-semi-bold));
260
+ }
261
+
262
+ @mixin body-xs-bold {
263
+ @include body-xs(var(--font-weight-bold));
264
+ }
265
+
266
+ @mixin body-xs-link {
267
+ @include body-xs;
268
+ @include link-base;
269
+ }
270
+
271
+ @mixin code-sm($font-weight: var(--font-weight-regular)) {
272
+ @include code-base;
273
+ font-size: var(--font-size-sm);
274
+ font-weight: $font-weight;
275
+ line-height: var(--line-height-sm);
276
+ letter-spacing: var(--letter-spacing--1percent);
277
+ }
278
+
279
+ @mixin code-sm-reg {
280
+ @include code-sm;
281
+ }
282
+
283
+ @mixin code-sm-semi-bold {
284
+ @include code-sm(var(--font-weight-semi-bold));
285
+ }
286
+
287
+ @mixin code-xs($font-weight: var(--font-weight-regular)) {
288
+ @include code-base;
289
+ font-size: var(--font-size-xs);
290
+ font-weight: $font-weight;
291
+ line-height: var(--line-height-xs);
292
+ letter-spacing: var(--letter-spacing--1percent);
293
+ }
294
+
295
+ @mixin code-xs-reg {
296
+ @include code-xs;
297
+ }
298
+
299
+ @mixin code-xs-semi-bold {
300
+ @include code-xs(var(--font-weight-semi-bold));
301
+ }
@@ -0,0 +1,33 @@
1
+ // Utility classes for common styling patterns
2
+
3
+ .rotate {
4
+ transition: transform 0.2s ease-in-out;
5
+
6
+ &-45 {
7
+ transform: rotate(45deg);
8
+ }
9
+
10
+ &-90 {
11
+ transform: rotate(90deg);
12
+ }
13
+
14
+ &-135 {
15
+ transform: rotate(135deg);
16
+ }
17
+
18
+ &-180 {
19
+ transform: rotate(180deg);
20
+ }
21
+
22
+ &-225 {
23
+ transform: rotate(225deg);
24
+ }
25
+
26
+ &-270 {
27
+ transform: rotate(270deg);
28
+ }
29
+
30
+ &-315 {
31
+ transform: rotate(315deg);
32
+ }
33
+ }
@@ -0,0 +1,44 @@
1
+ // typography
2
+ $font-family-primary: 'Roboto', 'Helvetica Neue', sans-serif;
3
+ $font-family-base: 'Roboto';
4
+ $font-family-code: 'Fira Mono', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
5
+ $font-weight-light: 300;
6
+ $font-weight-regular: 400;
7
+ $font-weight-medium: 500;
8
+ $font-weight-bold: 700;
9
+ $font-size-h1: 42px;
10
+ $font-size-h2: 36px;
11
+ $font-size-h3: 32px;
12
+ $font-size-h4: 24px;
13
+ $font-size-h5: 20px;
14
+ $font-size-h6: 18px;
15
+ $font-size-h7: 16px;
16
+ $font-size-p-xl: 18px;
17
+ $font-size-p-lg: 16px;
18
+ $font-size-p-base: 14px;
19
+ $font-size-p-special: 14px;
20
+ $font-size-p-s: 12px;
21
+ $font-size-action: 20px;
22
+ $font-size-action-lg: 18px;
23
+ $font-size-action-med: 16px;
24
+ $font-size-action-small: 14px;
25
+ $line-height-h1: 64px;
26
+ $line-height-h2: 54px;
27
+ $line-height-h3: 48px;
28
+ $line-height-h4: 36px;
29
+ $line-height-h5: 30px;
30
+ $line-height-h6: 28px;
31
+ $line-height-h7: 24px;
32
+ $line-height-p-xl: 28px;
33
+ $line-height-p-lg: 24px;
34
+ $line-height-p-base: 20px;
35
+ $line-height-p-special: 24px;
36
+ $line-height-p-s: 18px;
37
+ $line-height-action: 30px;
38
+ $line-height-action-lg: 28px;
39
+ $line-height-action-med: 24px;
40
+ $line-height-action-small: 20px;
41
+
42
+ $sidebar-spacing: 10px;
43
+ $sidebar-width: 64px;
44
+ $sidebar-width-expanded: 256px;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Inject element bounding box values as variables.
3
+ * Uses internal variables of the element itself to calculate the box.
4
+ *
5
+ * USE WITH CAUTION:
6
+ * Can break in cases where an element has blur, drop-shadow, multiple box-shadows, borders,
7
+ * transforms, shadow variables inherited from parents, etc.
8
+ *
9
+ * Usage:
10
+ *
11
+ * ```css
12
+ * .element {
13
+ * @include bounding-box.bounding-box-vars;
14
+ *
15
+ * --_shadow-size: 15px;
16
+ * --_shadow-x-offset: 5px;
17
+ * --_shadow-y-offset: 10px;
18
+ *
19
+ * box-shadow:
20
+ * var(--_shadow-x-offset)
21
+ * var(--_shadow-y-offset)
22
+ * var(--_shadow-size)
23
+ * 10px
24
+ * rgba(0, 0, 0, 0.15);
25
+ * }
26
+ * ```
27
+ *
28
+ * Then, you'll have these bounding box variables available:
29
+ * - `--_left-bound`
30
+ * - `--_right-bound`
31
+ * - `--_top-bound`
32
+ * - `--_bottom-bound`
33
+ *
34
+ * For convenient usage inside `polygon(...)`, the corners are also available:
35
+ * - `--_top-left`
36
+ * - `--_top-right`
37
+ * - `--_bottom-right`
38
+ * - `--_bottom-left`
39
+ *
40
+ */
41
+ @mixin bounding-box-vars {
42
+ // Element bounding box including shadows.
43
+ --_left-bound: min(0px, calc(-1 * var(--_shadow-size, 0px) + var(--_shadow-x-offset, 0px)));
44
+ --_right-bound: max(100%, calc(100% + var(--_shadow-size, 0px) + var(--_shadow-x-offset, 0px)));
45
+ --_top-bound: min(0px, calc(-1 * var(--_shadow-size, 0px) + var(--_shadow-y-offset, 0px)));
46
+ --_bottom-bound: max(100%, calc(100% + var(--_shadow-size, 0px) + var(--_shadow-y-offset, 0px)));
47
+
48
+ // Element bounding box corners including shadows.
49
+ --_top-left: var(--_left-bound) var(--_top-bound);
50
+ --_top-right: var(--_right-bound) var(--_top-bound);
51
+ --_bottom-right: var(--_right-bound) var(--_bottom-bound);
52
+ --_bottom-left: var(--_left-bound) var(--_bottom-bound);
53
+ }
@@ -0,0 +1,74 @@
1
+ @use '../../styles/typography';
2
+
3
+ @mixin list-item {
4
+ cursor: pointer;
5
+ user-select: none;
6
+ color: var(--neutral-2);
7
+ padding: 0 20px;
8
+ }
9
+
10
+ @mixin list-item-wrapper {
11
+ display: flex;
12
+ align-items: center;
13
+ position: relative;
14
+ flex: 1;
15
+ height: 48px;
16
+ margin-bottom: 8px;
17
+ }
18
+
19
+ @mixin list-item-wrapper-hover {
20
+ background: var(--action-hover-light);
21
+ border-radius: 4px;
22
+ }
23
+
24
+ @mixin list-item-text {
25
+ @include typography.p-base;
26
+ @include ellipsis;
27
+ padding-left: 8px;
28
+ flex: 1;
29
+ }
30
+
31
+ @mixin list-item-process {
32
+ width: 12px;
33
+ height: 12px;
34
+ border: 1px solid #fff;
35
+ border-radius: 50%;
36
+ margin: 7px;
37
+ }
38
+
39
+ @mixin list-item-selected {
40
+ color: var(--action-cta1);
41
+ background: var(--action-active-light);
42
+ border-radius: 4px;
43
+ }
44
+
45
+ @mixin list-item-selection {
46
+ position: absolute;
47
+ right: 0;
48
+ width: 3px;
49
+ height: 24px;
50
+ background: var(--action-cta1);
51
+ }
52
+
53
+ @mixin list-scroll {
54
+ position: relative;
55
+ overflow: auto;
56
+ z-index: 2;
57
+
58
+ &::-webkit-scrollbar {
59
+ width: 6px;
60
+ }
61
+
62
+ &::-webkit-scrollbar-track {
63
+ background: var(--neutral-8);
64
+ }
65
+
66
+ &::-webkit-scrollbar-thumb {
67
+ background: var(--neutral-6);
68
+ border-radius: 3px;
69
+ }
70
+
71
+ &::-webkit-scrollbar-thumb:hover {
72
+ background: var(--neutral-4);
73
+ }
74
+ }
@@ -0,0 +1,89 @@
1
+ @use '../../styles/typography';
2
+ @use '../../styles/mixins/bounding-box';
3
+
4
+ @mixin dropdown-content {
5
+ --_shadow-size: 15px;
6
+ --_shadow-y-offset: 5px;
7
+
8
+ @include bounding-box.bounding-box-vars;
9
+
10
+ border-radius: 4px;
11
+ border: 1px solid var(--color-border-secondary);
12
+ background: var(--color-background);
13
+ box-shadow: 0 var(--_shadow-y-offset) var(--_shadow-size) 0 rgba(0, 0, 0, 0.15);
14
+ z-index: 9999;
15
+ width: var(--reference-width);
16
+
17
+ &[data-state='open'] {
18
+ animation: expand 0.25s both;
19
+ }
20
+
21
+ &[data-state='closed'] {
22
+ animation: collapse 0.2s both;
23
+ }
24
+
25
+ @keyframes expand {
26
+ 0% {
27
+ opacity: 0;
28
+ clip-path: polygon(var(--_top-left), var(--_top-right), var(--_top-right), var(--_top-left));
29
+ }
30
+
31
+ 100% {
32
+ opacity: 1;
33
+ clip-path: polygon(var(--_top-left), var(--_top-right), var(--_bottom-right), var(--_bottom-left));
34
+ }
35
+ }
36
+
37
+ @keyframes collapse {
38
+ 0% {
39
+ opacity: 1;
40
+ clip-path: polygon(var(--_top-left), var(--_top-right), var(--_bottom-right), var(--_bottom-left));
41
+ }
42
+
43
+ 20% {
44
+ opacity: 1;
45
+ }
46
+
47
+ 100% {
48
+ opacity: 0;
49
+ clip-path: polygon(var(--_top-left), var(--_top-right), var(--_top-right), var(--_top-left));
50
+ }
51
+ }
52
+ }
53
+
54
+ @mixin dropdown-viewport {
55
+ display: flex;
56
+ flex-direction: column;
57
+ }
58
+
59
+ @mixin dropdown-item {
60
+ display: flex;
61
+ align-items: center;
62
+ gap: 10px;
63
+ color: var(--color-font-main);
64
+ padding: var(--spacing-xs);
65
+ border-radius: 2px;
66
+ border-left: 2px solid transparent;
67
+ cursor: pointer;
68
+ outline: none;
69
+
70
+ &[data-highlighted] {
71
+ background: var(--color-background-selected-weak);
72
+
73
+ .indicator,
74
+ .itemIcon {
75
+ color: var(--color-background-selected);
76
+ }
77
+ }
78
+
79
+ &[data-disabled] {
80
+ color: var(--color-background-deselected);
81
+ background: var(--color-background-secondary-selected-weak);
82
+ cursor: not-allowed;
83
+
84
+ .indicator,
85
+ .itemIcon {
86
+ pointer-events: none;
87
+ }
88
+ }
89
+ }