@tangible/ui 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 (212) hide show
  1. package/README.md +100 -0
  2. package/components/Accordion/Accordion.d.ts +22 -0
  3. package/components/Accordion/Accordion.js +192 -0
  4. package/components/Accordion/AccordionContext.d.ts +5 -0
  5. package/components/Accordion/AccordionContext.js +23 -0
  6. package/components/Accordion/index.d.ts +2 -0
  7. package/components/Accordion/index.js +1 -0
  8. package/components/Accordion/types.d.ts +61 -0
  9. package/components/Accordion/types.js +1 -0
  10. package/components/Avatar/Avatar.d.ts +11 -0
  11. package/components/Avatar/Avatar.js +67 -0
  12. package/components/Avatar/AvatarGroup.d.ts +11 -0
  13. package/components/Avatar/AvatarGroup.js +45 -0
  14. package/components/Avatar/index.d.ts +9 -0
  15. package/components/Avatar/index.js +7 -0
  16. package/components/Avatar/types.d.ts +44 -0
  17. package/components/Avatar/types.js +12 -0
  18. package/components/Button/Button.d.ts +4 -0
  19. package/components/Button/Button.js +33 -0
  20. package/components/Button/index.d.ts +2 -0
  21. package/components/Button/index.js +1 -0
  22. package/components/Button/types.d.ts +127 -0
  23. package/components/Button/types.js +1 -0
  24. package/components/Card/Card.d.ts +29 -0
  25. package/components/Card/Card.js +47 -0
  26. package/components/Card/index.d.ts +2 -0
  27. package/components/Card/index.js +1 -0
  28. package/components/Chip/Chip.d.ts +24 -0
  29. package/components/Chip/Chip.js +37 -0
  30. package/components/Chip/index.d.ts +2 -0
  31. package/components/Chip/index.js +1 -0
  32. package/components/Chips/Chips.d.ts +31 -0
  33. package/components/Chips/Chips.js +21 -0
  34. package/components/Chips/index.d.ts +2 -0
  35. package/components/Chips/index.js +1 -0
  36. package/components/ContentIndicator/ContentIndicator.d.ts +2 -0
  37. package/components/ContentIndicator/ContentIndicator.js +21 -0
  38. package/components/ContentIndicator/index.d.ts +2 -0
  39. package/components/ContentIndicator/index.js +1 -0
  40. package/components/ContentIndicator/types.d.ts +57 -0
  41. package/components/ContentIndicator/types.js +1 -0
  42. package/components/Dropdown/Dropdown.d.ts +31 -0
  43. package/components/Dropdown/Dropdown.js +219 -0
  44. package/components/Dropdown/DropdownContext.d.ts +3 -0
  45. package/components/Dropdown/DropdownContext.js +9 -0
  46. package/components/Dropdown/index.d.ts +2 -0
  47. package/components/Dropdown/index.js +1 -0
  48. package/components/Dropdown/types.d.ts +102 -0
  49. package/components/Dropdown/types.js +8 -0
  50. package/components/Icon/Icon.d.ts +22 -0
  51. package/components/Icon/Icon.js +24 -0
  52. package/components/Icon/index.d.ts +2 -0
  53. package/components/Icon/index.js +1 -0
  54. package/components/IconButton/IconButton.d.ts +2 -0
  55. package/components/IconButton/IconButton.js +50 -0
  56. package/components/IconButton/index.d.ts +2 -0
  57. package/components/IconButton/index.js +1 -0
  58. package/components/IconButton/types.d.ts +79 -0
  59. package/components/IconButton/types.js +1 -0
  60. package/components/Modal/Modal.d.ts +52 -0
  61. package/components/Modal/Modal.js +133 -0
  62. package/components/Modal/context.d.ts +6 -0
  63. package/components/Modal/context.js +9 -0
  64. package/components/Modal/index.d.ts +2 -0
  65. package/components/Modal/index.js +1 -0
  66. package/components/Notice/Notice.d.ts +93 -0
  67. package/components/Notice/Notice.js +144 -0
  68. package/components/Notice/index.d.ts +2 -0
  69. package/components/Notice/index.js +1 -0
  70. package/components/OverlapStack/OverlapStack.d.ts +44 -0
  71. package/components/OverlapStack/OverlapStack.js +41 -0
  72. package/components/OverlapStack/index.d.ts +2 -0
  73. package/components/OverlapStack/index.js +1 -0
  74. package/components/Pager/Pager.d.ts +26 -0
  75. package/components/Pager/Pager.js +151 -0
  76. package/components/Pager/index.d.ts +2 -0
  77. package/components/Pager/index.js +1 -0
  78. package/components/Progress/Progress.d.ts +2 -0
  79. package/components/Progress/Progress.js +100 -0
  80. package/components/Progress/index.d.ts +4 -0
  81. package/components/Progress/index.js +2 -0
  82. package/components/Progress/types.d.ts +251 -0
  83. package/components/Progress/types.js +1 -0
  84. package/components/Progress/useProgressSegments.d.ts +40 -0
  85. package/components/Progress/useProgressSegments.js +42 -0
  86. package/components/Rating/Rating.d.ts +32 -0
  87. package/components/Rating/Rating.js +74 -0
  88. package/components/Rating/index.d.ts +2 -0
  89. package/components/Rating/index.js +1 -0
  90. package/components/SegmentedControl/SegmentedControl.d.ts +10 -0
  91. package/components/SegmentedControl/SegmentedControl.js +183 -0
  92. package/components/SegmentedControl/SegmentedControlContext.d.ts +3 -0
  93. package/components/SegmentedControl/SegmentedControlContext.js +9 -0
  94. package/components/SegmentedControl/index.d.ts +2 -0
  95. package/components/SegmentedControl/index.js +1 -0
  96. package/components/SegmentedControl/types.d.ts +63 -0
  97. package/components/SegmentedControl/types.js +1 -0
  98. package/components/Sidebar/Sidebar.d.ts +17 -0
  99. package/components/Sidebar/Sidebar.js +107 -0
  100. package/components/Sidebar/index.d.ts +2 -0
  101. package/components/Sidebar/index.js +1 -0
  102. package/components/Sidebar/types.d.ts +65 -0
  103. package/components/Sidebar/types.js +4 -0
  104. package/components/StepIndicator/StepIndicator.d.ts +2 -0
  105. package/components/StepIndicator/StepIndicator.js +64 -0
  106. package/components/StepIndicator/index.d.ts +2 -0
  107. package/components/StepIndicator/index.js +1 -0
  108. package/components/StepIndicator/types.d.ts +68 -0
  109. package/components/StepIndicator/types.js +1 -0
  110. package/components/StepList/StepList.d.ts +12 -0
  111. package/components/StepList/StepList.js +59 -0
  112. package/components/StepList/StepListContext.d.ts +3 -0
  113. package/components/StepList/StepListContext.js +9 -0
  114. package/components/StepList/index.d.ts +2 -0
  115. package/components/StepList/index.js +1 -0
  116. package/components/StepList/types.d.ts +91 -0
  117. package/components/StepList/types.js +4 -0
  118. package/components/Table/BulkActionsBar.d.ts +12 -0
  119. package/components/Table/BulkActionsBar.js +9 -0
  120. package/components/Table/DataTable.d.ts +35 -0
  121. package/components/Table/DataTable.js +184 -0
  122. package/components/Table/Pagination.d.ts +13 -0
  123. package/components/Table/Pagination.js +13 -0
  124. package/components/Table/index.d.ts +2 -0
  125. package/components/Table/index.js +1 -0
  126. package/components/Tabs/Tabs.d.ts +23 -0
  127. package/components/Tabs/Tabs.js +309 -0
  128. package/components/Tabs/TabsContext.d.ts +3 -0
  129. package/components/Tabs/TabsContext.js +12 -0
  130. package/components/Tabs/index.d.ts +2 -0
  131. package/components/Tabs/index.js +1 -0
  132. package/components/Tabs/types.d.ts +75 -0
  133. package/components/Tabs/types.js +1 -0
  134. package/components/Toolbar/Toolbar.d.ts +18 -0
  135. package/components/Toolbar/Toolbar.js +241 -0
  136. package/components/Toolbar/index.d.ts +2 -0
  137. package/components/Toolbar/index.js +1 -0
  138. package/components/Toolbar/types.d.ts +28 -0
  139. package/components/Toolbar/types.js +1 -0
  140. package/components/Tooltip/Tooltip.d.ts +15 -0
  141. package/components/Tooltip/Tooltip.js +166 -0
  142. package/components/Tooltip/TooltipContext.d.ts +15 -0
  143. package/components/Tooltip/TooltipContext.js +25 -0
  144. package/components/Tooltip/index.d.ts +2 -0
  145. package/components/Tooltip/index.js +1 -0
  146. package/components/Tooltip/types.d.ts +85 -0
  147. package/components/Tooltip/types.js +8 -0
  148. package/components/index.d.ts +52 -0
  149. package/components/index.js +26 -0
  150. package/constants.d.ts +16 -0
  151. package/constants.js +16 -0
  152. package/icons/cred/index.d.ts +31 -0
  153. package/icons/cred/index.js +136 -0
  154. package/icons/icons.svg +155 -0
  155. package/icons/lms/index.d.ts +21 -0
  156. package/icons/lms/index.js +81 -0
  157. package/icons/manifest.json +1226 -0
  158. package/icons/player/index.d.ts +55 -0
  159. package/icons/player/index.js +268 -0
  160. package/icons/reaction/index.d.ts +79 -0
  161. package/icons/reaction/index.js +400 -0
  162. package/icons/registry.d.ts +316 -0
  163. package/icons/registry.js +163 -0
  164. package/icons/system/index.d.ts +155 -0
  165. package/icons/system/index.js +818 -0
  166. package/package.json +121 -0
  167. package/styles/all.css +1 -0
  168. package/styles/all.expanded.css +4137 -0
  169. package/styles/all.expanded.unlayered.css +4137 -0
  170. package/styles/all.unlayered.css +1 -0
  171. package/styles/components/_bundle.scss +51 -0
  172. package/styles/components/index.scss +1 -0
  173. package/styles/components/input/index.scss +248 -0
  174. package/styles/index.scss +71 -0
  175. package/styles/system/_constants.scss +12 -0
  176. package/styles/system/_motion.scss +47 -0
  177. package/styles/system/_palette-fns.scss +10 -0
  178. package/styles/system/_palettes.scss +80 -0
  179. package/styles/system/_tokens.scss +249 -0
  180. package/styles/system/index.scss +4 -0
  181. package/styles/utilities/_index.scss +373 -0
  182. package/tui-manifest.json +1858 -0
  183. package/types/index.d.ts +2 -0
  184. package/types/index.js +1 -0
  185. package/types/index.ts +2 -0
  186. package/types/sizes.d.ts +17 -0
  187. package/types/sizes.js +10 -0
  188. package/types/sizes.ts +21 -0
  189. package/types/svg.d.ts +5 -0
  190. package/types/themes.d.ts +14 -0
  191. package/types/themes.js +9 -0
  192. package/types/themes.ts +17 -0
  193. package/utils/color/contrast.d.ts +33 -0
  194. package/utils/color/contrast.js +88 -0
  195. package/utils/color-scheme.d.ts +25 -0
  196. package/utils/color-scheme.js +55 -0
  197. package/utils/compose-refs.d.ts +17 -0
  198. package/utils/compose-refs.js +38 -0
  199. package/utils/cx.d.ts +12 -0
  200. package/utils/cx.js +14 -0
  201. package/utils/focus-trap.d.ts +40 -0
  202. package/utils/focus-trap.js +93 -0
  203. package/utils/index.d.ts +10 -0
  204. package/utils/index.js +16 -0
  205. package/utils/math.d.ts +4 -0
  206. package/utils/math.js +19 -0
  207. package/utils/merge-props.d.ts +25 -0
  208. package/utils/merge-props.js +60 -0
  209. package/utils/polymorphic.d.ts +28 -0
  210. package/utils/polymorphic.js +44 -0
  211. package/utils/portal.d.ts +11 -0
  212. package/utils/portal.js +105 -0
@@ -0,0 +1,373 @@
1
+ @use "../system" as sys;
2
+
3
+
4
+ @mixin bundle() {
5
+ $spacing-aliases: (xxs, xs, sm, md, lg, xl, xxl);
6
+ $text-size-aliases: (xxs, xs, sm, md, lg, xl, xxl);
7
+ $themes: (primary, secondary, info, warning, danger, success);
8
+
9
+ .#{sys.$prefix}interface {
10
+ // ---------------------------
11
+ // Accessibility + position
12
+ // ---------------------------
13
+ .#{sys.$prefix}visually-hidden {
14
+ position: absolute !important;
15
+ width: 1px !important;
16
+ height: 1px !important;
17
+ padding: 0 !important;
18
+ margin: -1px !important;
19
+ overflow: hidden !important;
20
+ white-space: nowrap !important;
21
+ clip: rect(0,0,0,0) !important;
22
+ clip-path: inset(50%) !important;
23
+ border: 0 !important;
24
+ }
25
+ .#{sys.$prefix}visually-hidden--focusable:not(:focus):not(:focus-within):not(:active) {
26
+ @extend .#{sys.$prefix}visually-hidden;
27
+ }
28
+ .#{sys.$prefix}position-static { position: static !important; }
29
+ .#{sys.$prefix}position-relative { position: relative !important; }
30
+ .#{sys.$prefix}position-absolute { position: absolute !important; }
31
+
32
+ .#{sys.$prefix}stretched-link-container { position: relative !important; }
33
+ .#{sys.$prefix}stretched-link::after {
34
+ content: '' !important;
35
+ position: absolute !important;
36
+ inset: 0 !important;
37
+ }
38
+
39
+ .#{sys.$prefix}hidden {
40
+ display: none !important;
41
+ }
42
+
43
+ // Elevation helpers (z-index)
44
+ // Uses layer tokens from _tokens.scss
45
+ // --------------------------------------------------
46
+
47
+ .is-layer-surface { z-index: var(--#{sys.$prefix}layer-surface) !important; }
48
+ .is-layer-elevated { z-index: var(--#{sys.$prefix}layer-elevated) !important; }
49
+ .is-layer-overlay { z-index: var(--#{sys.$prefix}layer-overlay) !important; }
50
+ .is-layer-modal { z-index: var(--#{sys.$prefix}layer-modal) !important; }
51
+ .is-layer-top { z-index: var(--#{sys.$prefix}layer-top) !important; }
52
+
53
+ // ---------------------------
54
+ // Margin shorthands
55
+ // ---------------------------
56
+ .#{sys.$prefix}margin-none { margin: 0 !important; }
57
+ .#{sys.$prefix}margin-block-none { margin-block: 0 !important; }
58
+ .#{sys.$prefix}margin-block-start-none { margin-block-start: 0 !important; }
59
+ .#{sys.$prefix}margin-block-end-none { margin-block-end: 0 !important; }
60
+ .#{sys.$prefix}margin-inline-none { margin-inline: 0 !important; }
61
+ .#{sys.$prefix}margin-inline-start-none { margin-inline-start: 0 !important; }
62
+ .#{sys.$prefix}margin-inline-end-none { margin-inline-end: 0 !important; }
63
+
64
+ .#{sys.$prefix}margin-auto { margin: auto !important; }
65
+ .#{sys.$prefix}margin-block-auto { margin-block: auto !important; }
66
+ .#{sys.$prefix}margin-block-start-auto { margin-block-start: auto !important; }
67
+ .#{sys.$prefix}margin-block-end-auto { margin-block-end: auto !important; }
68
+ .#{sys.$prefix}margin-inline-auto { margin-inline: auto !important; }
69
+ .#{sys.$prefix}margin-inline-start-auto { margin-inline-start: auto !important; }
70
+ .#{sys.$prefix}margin-inline-end-auto { margin-inline-end: auto !important; }
71
+
72
+ @each $name in $spacing-aliases {
73
+ .#{sys.$prefix}margin-#{$name} { margin: var(--#{sys.$prefix}spacing-#{$name}) !important; }
74
+ .#{sys.$prefix}margin-block-#{$name} { margin-block: var(--#{sys.$prefix}spacing-#{$name}) !important; }
75
+ .#{sys.$prefix}margin-block-start-#{$name} { margin-block-start: var(--#{sys.$prefix}spacing-#{$name}) !important; }
76
+ .#{sys.$prefix}margin-block-end-#{$name} { margin-block-end: var(--#{sys.$prefix}spacing-#{$name}) !important; }
77
+ .#{sys.$prefix}margin-inline-#{$name} { margin-inline: var(--#{sys.$prefix}spacing-#{$name}) !important; }
78
+ .#{sys.$prefix}margin-inline-start-#{$name} { margin-inline-start: var(--#{sys.$prefix}spacing-#{$name}) !important; }
79
+ .#{sys.$prefix}margin-inline-end-#{$name} { margin-inline-end: var(--#{sys.$prefix}spacing-#{$name}) !important; }
80
+ }
81
+ // ---------------------------
82
+ // Padding shorthands
83
+ // ---------------------------
84
+ .#{sys.$prefix}padding-none { padding: 0 !important; }
85
+ .#{sys.$prefix}padding-block-none { padding-block: 0 !important; }
86
+ .#{sys.$prefix}padding-block-start-none { padding-block-start: 0 !important; }
87
+ .#{sys.$prefix}padding-block-end-none { padding-block-end: 0 !important; }
88
+ .#{sys.$prefix}padding-inline-none { padding-inline: 0 !important; }
89
+ .#{sys.$prefix}padding-inline-start-none { padding-inline-start: 0 !important; }
90
+ .#{sys.$prefix}padding-inline-end-none { padding-inline-end: 0 !important; }
91
+
92
+ @each $name in $spacing-aliases {
93
+ .#{sys.$prefix}padding-#{$name} { padding: var(--#{sys.$prefix}spacing-#{$name}) !important; }
94
+ .#{sys.$prefix}padding-block-#{$name} { padding-block: var(--#{sys.$prefix}spacing-#{$name}) !important; }
95
+ .#{sys.$prefix}padding-block-start-#{$name} { padding-block-start: var(--#{sys.$prefix}spacing-#{$name}) !important; }
96
+ .#{sys.$prefix}padding-block-end-#{$name} { padding-block-end: var(--#{sys.$prefix}spacing-#{$name}) !important; }
97
+ .#{sys.$prefix}padding-inline-#{$name} { padding-inline: var(--#{sys.$prefix}spacing-#{$name}) !important; }
98
+ .#{sys.$prefix}padding-inline-start-#{$name} { padding-inline-start: var(--#{sys.$prefix}spacing-#{$name}) !important; }
99
+ .#{sys.$prefix}padding-inline-end-#{$name} { padding-inline-end: var(--#{sys.$prefix}spacing-#{$name}) !important; }
100
+ }
101
+ // ---------------------------
102
+ // Container query context
103
+ // ---------------------------
104
+ // Supports width queries
105
+ .#{sys.$prefix}container {
106
+ container-name: var(--#{sys.$prefix}container-name, #{sys.$container-name}) !important;
107
+ container-type: inline-size !important;
108
+ }
109
+ // Supports width and height queries
110
+ .#{sys.$prefix}container--size {
111
+ container-name: var(--#{sys.$prefix}container-name, #{sys.$container-name}) !important;
112
+ container-type: size !important;
113
+ }
114
+
115
+ // ---------------------------
116
+ // Shared density variables
117
+ // ---------------------------
118
+ // Inline = x-axis spacing, Block = y-axis spacing.
119
+ // Defaults use your size aliases.
120
+ .#{sys.$prefix}grid,
121
+ .#{sys.$prefix}flex,
122
+ .#{sys.$prefix}stack,
123
+ .#{sys.$prefix}inline-flex {
124
+ --#{sys.$prefix}gap-inline: var(--#{sys.$prefix}spacing-md);
125
+ --#{sys.$prefix}gap-block: var(--#{sys.$prefix}spacing-md);
126
+ }
127
+
128
+ // ---------------------------
129
+ // Grid
130
+ // ---------------------------
131
+ .#{sys.$prefix}grid {
132
+ display: grid !important;
133
+ grid-template-columns: repeat(var(--#{sys.$prefix}grid-cols, 1), minmax(0, 1fr));
134
+ column-gap: var(--#{sys.$prefix}gap-inline);
135
+ row-gap: var(--#{sys.$prefix}gap-block);
136
+ }
137
+
138
+ @for $i from 1 through 12 {
139
+ .#{sys.$prefix}grid--cols-#{$i} { --#{sys.$prefix}grid-cols: #{$i}; }
140
+ }
141
+
142
+ // Auto-fill grid with a minimum column size (defaults to 12rem)
143
+ .#{sys.$prefix}grid--auto {
144
+ grid-template-columns: repeat(auto-fit, minmax(var(--#{sys.$prefix}grid-min, 12rem), 1fr));
145
+ }
146
+
147
+ // Grid item spans (1–12) and full
148
+ .#{sys.$prefix}col-span-full { grid-column: 1 / -1; }
149
+
150
+ @for $i from 1 through 12 {
151
+ .#{sys.$prefix}col-span-#{$i} { grid-column: span #{$i} / span #{$i}; }
152
+ }
153
+
154
+ .#{sys.$prefix}row-span-full { grid-row: 1 / -1; }
155
+
156
+ @for $i from 1 through 12 {
157
+ .#{sys.$prefix}row-span-#{$i} { grid-row: span #{$i} / span #{$i}; }
158
+ }
159
+ // ---------------------------
160
+ // Flex (row/column + wrap)
161
+ // ---------------------------
162
+ .#{sys.$prefix}flex {
163
+ display: flex !important;
164
+ // Modern browsers support row/column gaps for flex:
165
+ row-gap: var(--#{sys.$prefix}gap-block);
166
+ column-gap: var(--#{sys.$prefix}gap-inline);
167
+
168
+ &.is-wrap { flex-wrap: wrap !important; }
169
+ &.is-nowrap { flex-wrap: nowrap !important; }
170
+
171
+ > * { min-width: 0; }
172
+ }
173
+
174
+ .#{sys.$prefix}inline-flex {
175
+ display: inline-flex !important;
176
+ row-gap: var(--#{sys.$prefix}gap-block);
177
+ column-gap: var(--#{sys.$prefix}gap-inline);
178
+ }
179
+
180
+ // Vertical stack helper
181
+ .#{sys.$prefix}stack {
182
+ display: flex !important;
183
+ flex-direction: column;
184
+ row-gap: var(--#{sys.$prefix}gap-block);
185
+ > * { min-height: 0; }
186
+ }
187
+
188
+
189
+ .is-align-stretch { align-items: stretch; }
190
+ .is-align-start { align-items: start; }
191
+ .is-align-center { align-items: center; }
192
+ .is-align-end { align-items: end; }
193
+
194
+ // Distribution (justify-content) & self-alignment helpers
195
+ .is-justify-start { justify-content: flex-start; }
196
+ .is-justify-center { justify-content: center; }
197
+ .is-justify-end { justify-content: flex-end; }
198
+ .is-justify-between { justify-content: space-between; }
199
+ .is-justify-around { justify-content: space-around; }
200
+ .is-justify-evenly { justify-content: space-evenly; }
201
+
202
+ .is-align-self-start { align-self: start; }
203
+ .is-align-self-center { align-self: center; }
204
+ .is-align-self-end { align-self: end; }
205
+ .is-align-self-stretch { align-self: stretch; }
206
+
207
+ // Grid alignment shorthand (applies to grid containers)
208
+ .is-place-start { place-items: start; }
209
+ .is-place-center { place-items: center; }
210
+ .is-place-end { place-items: end; }
211
+
212
+ // Lists as layout containers
213
+ ul.#{sys.$prefix}grid,
214
+ ul.#{sys.$prefix}stack,
215
+ ul.#{sys.$prefix}inline-flex,
216
+ ul.#{sys.$prefix}flex { list-style: none !important; padding: 0 !important; margin: 0 !important; }
217
+
218
+ ul.#{sys.$prefix}grid > li,
219
+ ul.#{sys.$prefix}stack > li,
220
+ ul.#{sys.$prefix}inline-flex > li,
221
+ ul.#{sys.$prefix}flex > li {
222
+ list-style: none !important;
223
+ }
224
+
225
+ // ---------------------------
226
+ // Density utilities (aliases)
227
+ // Applies to BOTH grid and flex via shared custom props.
228
+ // ---------------------------
229
+ // ---------------------------
230
+ // Zero density helpers
231
+ // ---------------------------
232
+ .is-density-none { --#{sys.$prefix}gap-inline: 0; --#{sys.$prefix}gap-block: 0; }
233
+ .is-density-inline-none { --#{sys.$prefix}gap-inline: 0; }
234
+ .is-density-block-none { --#{sys.$prefix}gap-block: 0; }
235
+
236
+
237
+
238
+ @each $name in $spacing-aliases {
239
+ // both axes
240
+ .is-density-#{$name} {
241
+ --#{sys.$prefix}gap-inline: var(--#{sys.$prefix}spacing-#{$name});
242
+ --#{sys.$prefix}gap-block: var(--#{sys.$prefix}spacing-#{$name});
243
+ }
244
+ // inline axis only (x)
245
+ .is-density-inline-#{$name} {
246
+ --#{sys.$prefix}gap-inline: var(--#{sys.$prefix}spacing-#{$name});
247
+ }
248
+ // block axis only (y)
249
+ .is-density-block-#{$name} {
250
+ --#{sys.$prefix}gap-block: var(--#{sys.$prefix}spacing-#{$name});
251
+ }
252
+ }
253
+
254
+ // ---------------------------
255
+ // Text size utilties (aliases)
256
+ // ---------------------------
257
+ @each $name in $text-size-aliases {
258
+ .#{sys.$prefix}text-#{$name} {
259
+ font-size: var(--#{sys.$prefix}typography-size-#{$name}) !important;
260
+ }
261
+ }
262
+ // ---------------------------
263
+ // Text weight utilties
264
+ // ---------------------------
265
+ .#{sys.$prefix}text-bold {
266
+ font-weight: var(--#{sys.$prefix}typography-weight-bold, 700) !important;
267
+ }
268
+ .#{sys.$prefix}text-normal {
269
+ font-weight: var(--#{sys.$prefix}typography-weight-normal, 400) !important;
270
+ }
271
+ // ---------------------------
272
+ // Text color utilties
273
+ // ---------------------------
274
+
275
+ @each $name in $themes {
276
+ .#{sys.$prefix}text-#{$name} {
277
+ color: var(--#{sys.$prefix}theme-#{$name}-base) !important;
278
+ }
279
+ }
280
+ .#{sys.$prefix}text-white {
281
+ color: var(--#{sys.$prefix}palette-color-white);
282
+ }
283
+ .#{sys.$prefix}text-contrast-high {
284
+ color: var(--#{sys.$prefix}typography-color-contrast-high);
285
+ }
286
+ .#{sys.$prefix}text-contrast-low {
287
+ color: var(--#{sys.$prefix}typography-color-contrast-low);
288
+ }
289
+
290
+ // ---------------------------
291
+ // Border radius utilities
292
+ // ---------------------------
293
+ .#{sys.$prefix}rounded-none {
294
+ border-radius: 0 !important;
295
+ }
296
+ .#{sys.$prefix}rounded-xs {
297
+ border-radius: var(--#{sys.$prefix}radius-xs) !important;
298
+ }
299
+ .#{sys.$prefix}rounded-sm {
300
+ border-radius: var(--#{sys.$prefix}radius-sm) !important;
301
+ }
302
+ .#{sys.$prefix}rounded-md {
303
+ border-radius: var(--#{sys.$prefix}radius-md) !important;
304
+ }
305
+ .#{sys.$prefix}rounded-lg {
306
+ border-radius: var(--#{sys.$prefix}radius-lg) !important;
307
+ }
308
+ .#{sys.$prefix}rounded-xl {
309
+ border-radius: var(--#{sys.$prefix}radius-xl) !important;
310
+ }
311
+ .#{sys.$prefix}rounded-full {
312
+ border-radius: 9999px !important;
313
+ }
314
+
315
+ // ---------------------------
316
+ // Border width & side utilities
317
+ // ---------------------------
318
+ // Base border uses a shared token and solid style.
319
+ .#{sys.$prefix}border {
320
+ border-width: var(--#{sys.$prefix}border-width, 1px) !important;
321
+ border-style: solid !important;
322
+ border-color: currentColor !important;
323
+ }
324
+
325
+ .#{sys.$prefix}border-0 {
326
+ border: 0 !important;
327
+ }
328
+
329
+ .#{sys.$prefix}border-t {
330
+ border-top-width: var(--#{sys.$prefix}border-width, 1px) !important;
331
+ border-top-style: solid !important;
332
+ }
333
+ .#{sys.$prefix}border-b {
334
+ border-bottom-width: var(--#{sys.$prefix}border-width, 1px) !important;
335
+ border-bottom-style: solid !important;
336
+ }
337
+ .#{sys.$prefix}border-l {
338
+ border-left-width: var(--#{sys.$prefix}border-width, 1px) !important;
339
+ border-left-style: solid !important;
340
+ }
341
+ .#{sys.$prefix}border-r {
342
+ border-right-width: var(--#{sys.$prefix}border-width, 1px) !important;
343
+ border-right-style: solid !important;
344
+ }
345
+
346
+ // ---------------------------
347
+ // Border color utilities (semantic-only)
348
+ // ---------------------------
349
+ // Uses `theme-*-border` when available, otherwise falls back to `theme-*-base`.
350
+ @each $name in $themes {
351
+ .#{sys.$prefix}border-#{$name} {
352
+ border-color: var(
353
+ --#{sys.$prefix}theme-#{$name}-border,
354
+ var(--#{sys.$prefix}theme-#{$name}-base)
355
+ ) !important;
356
+ }
357
+ }
358
+
359
+ .#{sys.$prefix}border-contrast-high {
360
+ border-color: var(
361
+ --#{sys.$prefix}border-color-contrast-high,
362
+ var(--#{sys.$prefix}typography-color-contrast-high)
363
+ ) !important;
364
+ }
365
+
366
+ .#{sys.$prefix}border-contrast-low {
367
+ border-color: var(
368
+ --#{sys.$prefix}border-color-contrast-low,
369
+ var(--#{sys.$prefix}typography-color-contrast-low)
370
+ ) !important;
371
+ }
372
+ }
373
+ }