@raintonic/formaui 0.4.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/CHANGELOG.md +80 -35
  2. package/README.md +22 -26
  3. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs +39 -41
  4. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs.map +1 -1
  5. package/fesm2022/raintonic-formaui-cdk-form-field.mjs +207 -3
  6. package/fesm2022/raintonic-formaui-cdk-form-field.mjs.map +1 -1
  7. package/fesm2022/raintonic-formaui-cdk-overlay.mjs +19 -1
  8. package/fesm2022/raintonic-formaui-cdk-overlay.mjs.map +1 -1
  9. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs +5 -12
  10. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs.map +1 -1
  11. package/fesm2022/raintonic-formaui-components-accordion.mjs +8 -5
  12. package/fesm2022/raintonic-formaui-components-accordion.mjs.map +1 -1
  13. package/fesm2022/raintonic-formaui-components-alert.mjs +16 -2
  14. package/fesm2022/raintonic-formaui-components-alert.mjs.map +1 -1
  15. package/fesm2022/raintonic-formaui-components-autocomplete.mjs +255 -462
  16. package/fesm2022/raintonic-formaui-components-autocomplete.mjs.map +1 -1
  17. package/fesm2022/raintonic-formaui-components-avatar.mjs +34 -59
  18. package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -1
  19. package/fesm2022/raintonic-formaui-components-badge.mjs +2 -2
  20. package/fesm2022/raintonic-formaui-components-badge.mjs.map +1 -1
  21. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs +4 -4
  22. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs.map +1 -1
  23. package/fesm2022/raintonic-formaui-components-button-group.mjs +2 -2
  24. package/fesm2022/raintonic-formaui-components-button-group.mjs.map +1 -1
  25. package/fesm2022/raintonic-formaui-components-button.mjs +15 -20
  26. package/fesm2022/raintonic-formaui-components-button.mjs.map +1 -1
  27. package/fesm2022/raintonic-formaui-components-card.mjs +2 -2
  28. package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -1
  29. package/fesm2022/raintonic-formaui-components-checkbox.mjs +2 -2
  30. package/fesm2022/raintonic-formaui-components-checkbox.mjs.map +1 -1
  31. package/fesm2022/raintonic-formaui-components-chip.mjs +97 -0
  32. package/fesm2022/raintonic-formaui-components-chip.mjs.map +1 -0
  33. package/fesm2022/raintonic-formaui-components-data-table.mjs +69 -29
  34. package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -1
  35. package/fesm2022/raintonic-formaui-components-date-picker.mjs +223 -144
  36. package/fesm2022/raintonic-formaui-components-date-picker.mjs.map +1 -1
  37. package/fesm2022/raintonic-formaui-components-divider.mjs +2 -2
  38. package/fesm2022/raintonic-formaui-components-divider.mjs.map +1 -1
  39. package/fesm2022/raintonic-formaui-components-drawer.mjs +2 -2
  40. package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -1
  41. package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs +888 -0
  42. package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs.map +1 -0
  43. package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs +774 -0
  44. package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs.map +1 -0
  45. package/fesm2022/raintonic-formaui-components-empty-state.mjs +2 -2
  46. package/fesm2022/raintonic-formaui-components-empty-state.mjs.map +1 -1
  47. package/fesm2022/raintonic-formaui-components-file-upload.mjs +2 -2
  48. package/fesm2022/raintonic-formaui-components-file-upload.mjs.map +1 -1
  49. package/fesm2022/raintonic-formaui-components-form-field.mjs +81 -50
  50. package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -1
  51. package/fesm2022/raintonic-formaui-components-icon.mjs +2 -2
  52. package/fesm2022/raintonic-formaui-components-icon.mjs.map +1 -1
  53. package/fesm2022/raintonic-formaui-components-input.mjs +47 -12
  54. package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -1
  55. package/fesm2022/raintonic-formaui-components-list.mjs +4 -4
  56. package/fesm2022/raintonic-formaui-components-list.mjs.map +1 -1
  57. package/fesm2022/raintonic-formaui-components-number-input.mjs +20 -12
  58. package/fesm2022/raintonic-formaui-components-number-input.mjs.map +1 -1
  59. package/fesm2022/raintonic-formaui-components-paginator.mjs +2 -2
  60. package/fesm2022/raintonic-formaui-components-paginator.mjs.map +1 -1
  61. package/fesm2022/raintonic-formaui-components-password-input.mjs +35 -110
  62. package/fesm2022/raintonic-formaui-components-password-input.mjs.map +1 -1
  63. package/fesm2022/raintonic-formaui-components-popover.mjs +3 -2
  64. package/fesm2022/raintonic-formaui-components-popover.mjs.map +1 -1
  65. package/fesm2022/raintonic-formaui-components-progressbar.mjs +3 -2
  66. package/fesm2022/raintonic-formaui-components-progressbar.mjs.map +1 -1
  67. package/fesm2022/raintonic-formaui-components-radio.mjs +5 -6
  68. package/fesm2022/raintonic-formaui-components-radio.mjs.map +1 -1
  69. package/fesm2022/raintonic-formaui-components-select.mjs +257 -412
  70. package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -1
  71. package/fesm2022/raintonic-formaui-components-side-panel.mjs +2 -2
  72. package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -1
  73. package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs +525 -0
  74. package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs.map +1 -0
  75. package/fesm2022/raintonic-formaui-components-skeleton.mjs +2 -2
  76. package/fesm2022/raintonic-formaui-components-skeleton.mjs.map +1 -1
  77. package/fesm2022/raintonic-formaui-components-slider.mjs +2 -2
  78. package/fesm2022/raintonic-formaui-components-slider.mjs.map +1 -1
  79. package/fesm2022/raintonic-formaui-components-spinner.mjs +2 -2
  80. package/fesm2022/raintonic-formaui-components-spinner.mjs.map +1 -1
  81. package/fesm2022/raintonic-formaui-components-stepper.mjs +50 -45
  82. package/fesm2022/raintonic-formaui-components-stepper.mjs.map +1 -1
  83. package/fesm2022/raintonic-formaui-components-strength-meter.mjs +149 -0
  84. package/fesm2022/raintonic-formaui-components-strength-meter.mjs.map +1 -0
  85. package/fesm2022/raintonic-formaui-components-tab.mjs +2 -2
  86. package/fesm2022/raintonic-formaui-components-tab.mjs.map +1 -1
  87. package/fesm2022/raintonic-formaui-components-time-picker.mjs +194 -154
  88. package/fesm2022/raintonic-formaui-components-time-picker.mjs.map +1 -1
  89. package/fesm2022/raintonic-formaui-components-toggle-group.mjs +302 -0
  90. package/fesm2022/raintonic-formaui-components-toggle-group.mjs.map +1 -0
  91. package/fesm2022/raintonic-formaui-components-toggle.mjs +2 -2
  92. package/fesm2022/raintonic-formaui-components-toggle.mjs.map +1 -1
  93. package/fesm2022/raintonic-formaui-components-toolbar.mjs +2 -2
  94. package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -1
  95. package/fesm2022/raintonic-formaui-components-tooltip.mjs +10 -4
  96. package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -1
  97. package/fesm2022/raintonic-formaui-components-topbar.mjs +60 -0
  98. package/fesm2022/raintonic-formaui-components-topbar.mjs.map +1 -0
  99. package/fesm2022/raintonic-formaui-components-tree-select.mjs +59 -69
  100. package/fesm2022/raintonic-formaui-components-tree-select.mjs.map +1 -1
  101. package/fesm2022/raintonic-formaui-components-tree-table.mjs +2 -2
  102. package/fesm2022/raintonic-formaui-components-tree-table.mjs.map +1 -1
  103. package/fesm2022/raintonic-formaui-components-tree.mjs +31 -5
  104. package/fesm2022/raintonic-formaui-components-tree.mjs.map +1 -1
  105. package/fesm2022/raintonic-formaui-core.mjs +279 -1
  106. package/fesm2022/raintonic-formaui-core.mjs.map +1 -1
  107. package/fesm2022/raintonic-formaui-services-breakpoint.mjs +93 -0
  108. package/fesm2022/raintonic-formaui-services-breakpoint.mjs.map +1 -0
  109. package/fesm2022/raintonic-formaui-services-dialog.mjs +314 -16
  110. package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -1
  111. package/fesm2022/raintonic-formaui-services-notification.mjs +93 -29
  112. package/fesm2022/raintonic-formaui-services-notification.mjs.map +1 -1
  113. package/fesm2022/raintonic-formaui-services-theme.mjs +46 -196
  114. package/fesm2022/raintonic-formaui-services-theme.mjs.map +1 -1
  115. package/fesm2022/raintonic-formaui.mjs +1 -1
  116. package/fesm2022/raintonic-formaui.mjs.map +1 -1
  117. package/llms-full.txt +2329 -450
  118. package/llms.txt +36 -33
  119. package/package.json +42 -19
  120. package/styles/fonts/Geist-Bold.woff2 +0 -0
  121. package/styles/fonts/Geist-Italic.woff2 +0 -0
  122. package/styles/fonts/Geist-Light.woff2 +0 -0
  123. package/styles/fonts/Geist-Medium.woff2 +0 -0
  124. package/styles/fonts/Geist-Regular.woff2 +0 -0
  125. package/styles/fonts/Geist-SemiBold.woff2 +0 -0
  126. package/styles/fonts/GeistMono-Regular.woff2 +0 -0
  127. package/styles/generated/_tokens.scss +906 -0
  128. package/styles/index.scss +11 -10
  129. package/styles/partials/_brand.scss +46 -0
  130. package/styles/partials/_constants.scss +22 -20
  131. package/styles/partials/_fonts.scss +54 -10
  132. package/styles/partials/_grid.scss +29 -18
  133. package/styles/partials/_mixins.scss +69 -27
  134. package/styles/partials/_motion.scss +28 -33
  135. package/styles/partials/_theme.scss +28 -255
  136. package/styles/partials/_type.scss +117 -0
  137. package/styles/partials/_typography.scss +45 -45
  138. package/styles/partials/_utilities.scss +198 -98
  139. package/styles/partials/components/_button.scss +144 -75
  140. package/styles/partials/components/_dialog.scss +181 -180
  141. package/styles/partials/components/_overlay.scss +87 -87
  142. package/styles/partials/themes/_dark.scss +3 -268
  143. package/styles/partials/themes/_light.scss +4 -268
  144. package/styles/styles.css +7744 -0
  145. package/styles/styles.entry.scss +3 -0
  146. package/styles/utilities.css +4802 -0
  147. package/styles/utilities.entry.scss +3 -0
  148. package/types/raintonic-formaui-cdk-drag-drop.d.ts +0 -1
  149. package/types/raintonic-formaui-cdk-drag-drop.d.ts.map +1 -1
  150. package/types/raintonic-formaui-cdk-form-field.d.ts +118 -2
  151. package/types/raintonic-formaui-cdk-form-field.d.ts.map +1 -1
  152. package/types/raintonic-formaui-cdk-overlay.d.ts +2 -0
  153. package/types/raintonic-formaui-cdk-overlay.d.ts.map +1 -1
  154. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts +0 -1
  155. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts.map +1 -1
  156. package/types/raintonic-formaui-components-accordion.d.ts +1 -1
  157. package/types/raintonic-formaui-components-accordion.d.ts.map +1 -1
  158. package/types/raintonic-formaui-components-alert.d.ts +6 -1
  159. package/types/raintonic-formaui-components-alert.d.ts.map +1 -1
  160. package/types/raintonic-formaui-components-autocomplete.d.ts +73 -116
  161. package/types/raintonic-formaui-components-autocomplete.d.ts.map +1 -1
  162. package/types/raintonic-formaui-components-avatar.d.ts +13 -31
  163. package/types/raintonic-formaui-components-avatar.d.ts.map +1 -1
  164. package/types/raintonic-formaui-components-button.d.ts +4 -10
  165. package/types/raintonic-formaui-components-button.d.ts.map +1 -1
  166. package/types/raintonic-formaui-components-chip.d.ts +43 -0
  167. package/types/raintonic-formaui-components-chip.d.ts.map +1 -0
  168. package/types/raintonic-formaui-components-data-table.d.ts +48 -11
  169. package/types/raintonic-formaui-components-data-table.d.ts.map +1 -1
  170. package/types/raintonic-formaui-components-date-picker.d.ts +59 -23
  171. package/types/raintonic-formaui-components-date-picker.d.ts.map +1 -1
  172. package/types/raintonic-formaui-components-dropdown-menu.d.ts +394 -0
  173. package/types/raintonic-formaui-components-dropdown-menu.d.ts.map +1 -0
  174. package/types/raintonic-formaui-components-dual-tier-navigation.d.ts +87 -0
  175. package/types/raintonic-formaui-components-dual-tier-navigation.d.ts.map +1 -0
  176. package/types/raintonic-formaui-components-form-field.d.ts +51 -21
  177. package/types/raintonic-formaui-components-form-field.d.ts.map +1 -1
  178. package/types/raintonic-formaui-components-input.d.ts +20 -11
  179. package/types/raintonic-formaui-components-input.d.ts.map +1 -1
  180. package/types/raintonic-formaui-components-number-input.d.ts +5 -3
  181. package/types/raintonic-formaui-components-number-input.d.ts.map +1 -1
  182. package/types/raintonic-formaui-components-password-input.d.ts +18 -32
  183. package/types/raintonic-formaui-components-password-input.d.ts.map +1 -1
  184. package/types/raintonic-formaui-components-popover.d.ts.map +1 -1
  185. package/types/raintonic-formaui-components-progressbar.d.ts +1 -1
  186. package/types/raintonic-formaui-components-progressbar.d.ts.map +1 -1
  187. package/types/raintonic-formaui-components-radio.d.ts +1 -2
  188. package/types/raintonic-formaui-components-radio.d.ts.map +1 -1
  189. package/types/raintonic-formaui-components-select.d.ts +107 -76
  190. package/types/raintonic-formaui-components-select.d.ts.map +1 -1
  191. package/types/raintonic-formaui-components-sidebar-nav-menu.d.ts +223 -0
  192. package/types/raintonic-formaui-components-sidebar-nav-menu.d.ts.map +1 -0
  193. package/types/raintonic-formaui-components-stepper.d.ts +4 -2
  194. package/types/raintonic-formaui-components-stepper.d.ts.map +1 -1
  195. package/types/raintonic-formaui-components-strength-meter.d.ts +78 -0
  196. package/types/raintonic-formaui-components-strength-meter.d.ts.map +1 -0
  197. package/types/raintonic-formaui-components-time-picker.d.ts +44 -24
  198. package/types/raintonic-formaui-components-time-picker.d.ts.map +1 -1
  199. package/types/raintonic-formaui-components-toggle-group.d.ts +100 -0
  200. package/types/raintonic-formaui-components-toggle-group.d.ts.map +1 -0
  201. package/types/raintonic-formaui-components-tooltip.d.ts +2 -1
  202. package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -1
  203. package/types/raintonic-formaui-components-topbar.d.ts +48 -0
  204. package/types/raintonic-formaui-components-topbar.d.ts.map +1 -0
  205. package/types/raintonic-formaui-components-tree-select.d.ts +25 -9
  206. package/types/raintonic-formaui-components-tree-select.d.ts.map +1 -1
  207. package/types/raintonic-formaui-components-tree.d.ts +12 -1
  208. package/types/raintonic-formaui-components-tree.d.ts.map +1 -1
  209. package/types/raintonic-formaui-core.d.ts +243 -5
  210. package/types/raintonic-formaui-core.d.ts.map +1 -1
  211. package/types/raintonic-formaui-services-breakpoint.d.ts +44 -0
  212. package/types/raintonic-formaui-services-breakpoint.d.ts.map +1 -0
  213. package/types/raintonic-formaui-services-dialog.d.ts +141 -2
  214. package/types/raintonic-formaui-services-dialog.d.ts.map +1 -1
  215. package/types/raintonic-formaui-services-notification.d.ts +24 -2
  216. package/types/raintonic-formaui-services-notification.d.ts.map +1 -1
  217. package/types/raintonic-formaui-services-theme.d.ts +13 -103
  218. package/types/raintonic-formaui-services-theme.d.ts.map +1 -1
  219. package/types/raintonic-formaui.d.ts +1 -1
  220. package/fesm2022/raintonic-formaui-components-big-menu.mjs +0 -86
  221. package/fesm2022/raintonic-formaui-components-big-menu.mjs.map +0 -1
  222. package/fesm2022/raintonic-formaui-components-menu.mjs +0 -896
  223. package/fesm2022/raintonic-formaui-components-menu.mjs.map +0 -1
  224. package/fesm2022/raintonic-formaui-components-sidebar.mjs +0 -275
  225. package/fesm2022/raintonic-formaui-components-sidebar.mjs.map +0 -1
  226. package/fesm2022/raintonic-formaui-components-tag.mjs +0 -95
  227. package/fesm2022/raintonic-formaui-components-tag.mjs.map +0 -1
  228. package/styles/_fonts-entry.scss +0 -3
  229. package/styles/fonts/inter-tight-latin-italic.woff2 +0 -0
  230. package/styles/fonts/inter-tight-latin.woff2 +0 -0
  231. package/types/raintonic-formaui-components-big-menu.d.ts +0 -73
  232. package/types/raintonic-formaui-components-big-menu.d.ts.map +0 -1
  233. package/types/raintonic-formaui-components-menu.d.ts +0 -403
  234. package/types/raintonic-formaui-components-menu.d.ts.map +0 -1
  235. package/types/raintonic-formaui-components-sidebar.d.ts +0 -185
  236. package/types/raintonic-formaui-components-sidebar.d.ts.map +0 -1
  237. package/types/raintonic-formaui-components-tag.d.ts +0 -43
  238. package/types/raintonic-formaui-components-tag.d.ts.map +0 -1
@@ -1,4 +1,7 @@
1
1
  // Utility classes
2
+ @use 'sass:map';
3
+ @use 'sass:math';
4
+ @use 'sass:meta';
2
5
  @use './constants' as *;
3
6
  @use './mixins' as *;
4
7
 
@@ -34,42 +37,19 @@
34
37
  display: inline-flex !important;
35
38
  }
36
39
 
37
- // Responsive display utilities
38
- @each $breakpoint in (sm, md, lg, xl, xxl) {
39
- @include fui-breakpoint($breakpoint) {
40
- .fui-#{$breakpoint}-hidden {
41
- display: none !important;
42
- }
43
- .fui-#{$breakpoint}-inline {
44
- display: inline !important;
45
- }
46
- .fui-#{$breakpoint}-inline-block {
47
- display: inline-block !important;
48
- }
49
- .fui-#{$breakpoint}-block {
50
- display: block !important;
51
- }
52
- .fui-#{$breakpoint}-grid {
53
- display: grid !important;
54
- }
55
- .fui-#{$breakpoint}-table {
56
- display: table !important;
57
- }
58
- .fui-#{$breakpoint}-table-row {
59
- display: table-row !important;
60
- }
61
- .fui-#{$breakpoint}-table-cell {
62
- display: table-cell !important;
63
- }
64
- .fui-#{$breakpoint}-flex {
65
- display: flex !important;
66
- }
67
- .fui-#{$breakpoint}-inline-flex {
68
- display: inline-flex !important;
69
- }
40
+ // Grid columns (CSS Grid)
41
+ @for $i from 1 through 12 {
42
+ .fui-grid-cols-#{$i} {
43
+ grid-template-columns: repeat(#{$i}, minmax(0, 1fr)) !important;
70
44
  }
71
45
  }
72
46
 
47
+ // Stack — colonna flex (gap via fui-gap-N)
48
+ .fui-stack {
49
+ display: flex !important;
50
+ flex-direction: column !important;
51
+ }
52
+
73
53
  // Flex utilities
74
54
  .fui-flex-row {
75
55
  flex-direction: row !important;
@@ -185,19 +165,20 @@
185
165
 
186
166
  // Spacing utilities
187
167
  $spacers: (
188
- 0: 0,
189
- 1: $fui-spacing-01,
190
- 2: $fui-spacing-02,
191
- 3: $fui-spacing-03,
192
- 4: $fui-spacing-04,
193
- 5: $fui-spacing-05,
194
- 6: $fui-spacing-06,
195
- 7: $fui-spacing-07,
196
- 8: $fui-spacing-08,
197
- 9: $fui-spacing-09,
168
+ 0: $fui-spacing-0,
169
+ 1: $fui-spacing-1,
170
+ 2: $fui-spacing-2,
171
+ 3: $fui-spacing-3,
172
+ 4: $fui-spacing-4,
173
+ 5: $fui-spacing-5,
174
+ 6: $fui-spacing-6,
175
+ 7: $fui-spacing-7,
176
+ 8: $fui-spacing-8,
177
+ 9: $fui-spacing-9,
198
178
  10: $fui-spacing-10,
199
179
  11: $fui-spacing-11,
200
180
  12: $fui-spacing-12,
181
+ 13: $fui-spacing-13,
201
182
  auto: auto,
202
183
  );
203
184
 
@@ -225,35 +206,6 @@ $spacers: (
225
206
  }
226
207
  }
227
208
 
228
- // Responsive spacing utilities
229
- @each $breakpoint in (sm, md, lg, xl, xxl) {
230
- @include fui-breakpoint($breakpoint) {
231
- @each $prop, $abbrev in (margin: m, padding: p) {
232
- @each $size, $length in $spacers {
233
- .fui-#{$abbrev}-#{$breakpoint}-#{$size} {
234
- #{$prop}: $length !important;
235
- }
236
- .fui-#{$abbrev}t-#{$breakpoint}-#{$size},
237
- .fui-#{$abbrev}y-#{$breakpoint}-#{$size} {
238
- #{$prop}-top: $length !important;
239
- }
240
- .fui-#{$abbrev}r-#{$breakpoint}-#{$size},
241
- .fui-#{$abbrev}x-#{$breakpoint}-#{$size} {
242
- #{$prop}-right: $length !important;
243
- }
244
- .fui-#{$abbrev}b-#{$breakpoint}-#{$size},
245
- .fui-#{$abbrev}y-#{$breakpoint}-#{$size} {
246
- #{$prop}-bottom: $length !important;
247
- }
248
- .fui-#{$abbrev}l-#{$breakpoint}-#{$size},
249
- .fui-#{$abbrev}x-#{$breakpoint}-#{$size} {
250
- #{$prop}-left: $length !important;
251
- }
252
- }
253
- }
254
- }
255
- }
256
-
257
209
  // Text alignment
258
210
  .fui-text-left {
259
211
  text-align: left !important;
@@ -268,25 +220,9 @@ $spacers: (
268
220
  text-align: justify !important;
269
221
  }
270
222
 
271
- @each $breakpoint in (sm, md, lg, xl, xxl) {
272
- @include fui-breakpoint($breakpoint) {
273
- .fui-text-#{$breakpoint}-left {
274
- text-align: left !important;
275
- }
276
- .fui-text-#{$breakpoint}-right {
277
- text-align: right !important;
278
- }
279
- .fui-text-#{$breakpoint}-center {
280
- text-align: center !important;
281
- }
282
- .fui-text-#{$breakpoint}-justify {
283
- text-align: justify !important;
284
- }
285
- }
286
- }
287
223
  // Text colors
288
224
  .fui-text-color-primary {
289
- color: var(--fui-primary) !important;
225
+ color: var(--fui-brand-fg) !important;
290
226
  }
291
227
  .fui-text-secondary {
292
228
  color: var(--fui-text-secondary) !important;
@@ -332,31 +268,31 @@ $spacers: (
332
268
 
333
269
  // Border utilities
334
270
  .fui-border {
335
- border: 1px solid var(--fui-border-color) !important;
271
+ border: 1px solid var(--fui-border-default) !important;
336
272
  }
337
273
  .fui-border-0 {
338
274
  border: 0 !important;
339
275
  }
340
276
  .fui-border-t {
341
- border-top: 1px solid var(--fui-border-color) !important;
277
+ border-top: 1px solid var(--fui-border-default) !important;
342
278
  }
343
279
  .fui-border-t-0 {
344
280
  border-top: 0 !important;
345
281
  }
346
282
  .fui-border-r {
347
- border-right: 1px solid var(--fui-border-color) !important;
283
+ border-right: 1px solid var(--fui-border-default) !important;
348
284
  }
349
285
  .fui-border-r-0 {
350
286
  border-right: 0 !important;
351
287
  }
352
288
  .fui-border-b {
353
- border-bottom: 1px solid var(--fui-border-color) !important;
289
+ border-bottom: 1px solid var(--fui-border-default) !important;
354
290
  }
355
291
  .fui-border-b-0 {
356
292
  border-bottom: 0 !important;
357
293
  }
358
294
  .fui-border-l {
359
- border-left: 1px solid var(--fui-border-color) !important;
295
+ border-left: 1px solid var(--fui-border-default) !important;
360
296
  }
361
297
  .fui-border-l-0 {
362
298
  border-left: 0 !important;
@@ -364,19 +300,19 @@ $spacers: (
364
300
 
365
301
  // Border radius
366
302
  .fui-rounded {
367
- border-radius: var(--fui-border-radius-md) !important;
303
+ border-radius: var(--fui-radius-md) !important;
368
304
  }
369
305
  .fui-rounded-none {
370
306
  border-radius: 0 !important;
371
307
  }
372
308
  .fui-rounded-sm {
373
- border-radius: var(--fui-border-radius-sm) !important;
309
+ border-radius: var(--fui-radius-sm) !important;
374
310
  }
375
311
  .fui-rounded-md {
376
- border-radius: var(--fui-border-radius-md) !important;
312
+ border-radius: var(--fui-radius-md) !important;
377
313
  }
378
314
  .fui-rounded-lg {
379
- border-radius: var(--fui-border-radius-lg) !important;
315
+ border-radius: var(--fui-radius-lg) !important;
380
316
  }
381
317
  .fui-rounded-full {
382
318
  border-radius: 50% !important;
@@ -471,6 +407,170 @@ $spacers: (
471
407
  flex: 2;
472
408
  }
473
409
 
410
+ // ─────────────────────────────────────────────────────────────────────────────
411
+ // Responsive utilities — Tailwind-style colon prefix `{bp}:fui-*`
412
+ // Emette per ogni breakpoint configurato le varianti responsive di:
413
+ // • display (10 classi)
414
+ // • spacing m/p (5 axes × 14 sizes × 2 props)
415
+ // • text-align (4 classi)
416
+ // • grid-cols (12 classi)
417
+ // Esempio: <div class="md:fui-flex lg:fui-grid-cols-3 md:fui-px-4">
418
+ //
419
+ // Configurabile dal consumer:
420
+ // @use '@raintonic/formaui/styles/partials/utilities' with (
421
+ // $breakpoints: (mobile: 480px, tablet: 768px, desktop: 1280px),
422
+ // $responsive-families: (display: true, spacing: false, text-align: true, grid-cols: true),
423
+ // );
424
+ //
425
+ // Default: sm|md|lg|xl|2xl + tutte le famiglie attive (parity con stato pre-U3).
426
+ // Nomi di breakpoint con cifra iniziale (es. 2xl) sono escapati via
427
+ // css-ident-escape() in _mixins.scss (Sass emette `.\32 xl\:fui-X`).
428
+ // ─────────────────────────────────────────────────────────────────────────────
429
+
430
+ // Default breakpoint set. Le soglie sono mirror Sass dei token in
431
+ // tokens/core/layout.json (single source of truth: _constants.scss).
432
+ $breakpoints: (
433
+ sm: $fui-bp-sm,
434
+ md: $fui-bp-md,
435
+ lg: $fui-bp-lg,
436
+ xl: $fui-bp-xl,
437
+ '2xl': $fui-bp-2xl,
438
+ ) !default;
439
+
440
+ // Default opt-in per famiglia responsive. Set una a `false` per non emetterla.
441
+ $responsive-families: (
442
+ display: true,
443
+ spacing: true,
444
+ text-align: true,
445
+ grid-cols: true,
446
+ ) !default;
447
+
448
+ // ── Validation ───────────────────────────────────────────────────────────────
449
+ @if meta.type-of($breakpoints) != 'map' {
450
+ @error "[FormaUI U3] $breakpoints must be a map (got #{meta.type-of($breakpoints)}).";
451
+ }
452
+ @each $_bp-name, $_bp-value in $breakpoints {
453
+ @if meta.type-of($_bp-value) != 'number' or math.is-unitless($_bp-value) {
454
+ @error "[FormaUI U3] $breakpoints['#{$_bp-name}'] must be a length with unit (e.g. 768px). Any CSS length unit is accepted (px/em/rem). Got #{$_bp-value}.";
455
+ }
456
+ }
457
+ @if meta.type-of($responsive-families) != 'map' {
458
+ @error "[FormaUI U3] $responsive-families must be a map (got #{meta.type-of($responsive-families)}).";
459
+ }
460
+
461
+ // Merge col default per permettere override parziale.
462
+ $_families: map.merge(
463
+ (
464
+ display: true,
465
+ spacing: true,
466
+ text-align: true,
467
+ grid-cols: true,
468
+ ),
469
+ $responsive-families
470
+ );
471
+
472
+ // ── Sub-mixin per famiglia ────────────────────────────────────────────────────
473
+ @mixin _emit-display($prefix) {
474
+ .#{$prefix}\:fui-hidden {
475
+ display: none !important;
476
+ }
477
+ .#{$prefix}\:fui-inline {
478
+ display: inline !important;
479
+ }
480
+ .#{$prefix}\:fui-inline-block {
481
+ display: inline-block !important;
482
+ }
483
+ .#{$prefix}\:fui-block {
484
+ display: block !important;
485
+ }
486
+ .#{$prefix}\:fui-grid {
487
+ display: grid !important;
488
+ }
489
+ .#{$prefix}\:fui-table {
490
+ display: table !important;
491
+ }
492
+ .#{$prefix}\:fui-table-row {
493
+ display: table-row !important;
494
+ }
495
+ .#{$prefix}\:fui-table-cell {
496
+ display: table-cell !important;
497
+ }
498
+ .#{$prefix}\:fui-flex {
499
+ display: flex !important;
500
+ }
501
+ .#{$prefix}\:fui-inline-flex {
502
+ display: inline-flex !important;
503
+ }
504
+ }
505
+
506
+ @mixin _emit-spacing-mp($prefix) {
507
+ @each $prop, $abbrev in (margin: m, padding: p) {
508
+ @each $size, $length in $spacers {
509
+ .#{$prefix}\:fui-#{$abbrev}-#{$size} {
510
+ #{$prop}: $length !important;
511
+ }
512
+ .#{$prefix}\:fui-#{$abbrev}t-#{$size},
513
+ .#{$prefix}\:fui-#{$abbrev}y-#{$size} {
514
+ #{$prop}-top: $length !important;
515
+ }
516
+ .#{$prefix}\:fui-#{$abbrev}r-#{$size},
517
+ .#{$prefix}\:fui-#{$abbrev}x-#{$size} {
518
+ #{$prop}-right: $length !important;
519
+ }
520
+ .#{$prefix}\:fui-#{$abbrev}b-#{$size},
521
+ .#{$prefix}\:fui-#{$abbrev}y-#{$size} {
522
+ #{$prop}-bottom: $length !important;
523
+ }
524
+ .#{$prefix}\:fui-#{$abbrev}l-#{$size},
525
+ .#{$prefix}\:fui-#{$abbrev}x-#{$size} {
526
+ #{$prop}-left: $length !important;
527
+ }
528
+ }
529
+ }
530
+ }
531
+
532
+ @mixin _emit-text-align($prefix) {
533
+ .#{$prefix}\:fui-text-left {
534
+ text-align: left !important;
535
+ }
536
+ .#{$prefix}\:fui-text-right {
537
+ text-align: right !important;
538
+ }
539
+ .#{$prefix}\:fui-text-center {
540
+ text-align: center !important;
541
+ }
542
+ .#{$prefix}\:fui-text-justify {
543
+ text-align: justify !important;
544
+ }
545
+ }
546
+
547
+ @mixin _emit-grid-cols($prefix) {
548
+ @for $i from 1 through 12 {
549
+ .#{$prefix}\:fui-grid-cols-#{$i} {
550
+ grid-template-columns: repeat(#{$i}, minmax(0, 1fr)) !important;
551
+ }
552
+ }
553
+ }
554
+
555
+ // ── Driver unico ──────────────────────────────────────────────────────────────
556
+ @each $bp-name, $bp-value in $breakpoints {
557
+ $prefix: css-ident-escape($bp-name);
558
+ @media (min-width: $bp-value) {
559
+ @if map.get($_families, display) {
560
+ @include _emit-display($prefix);
561
+ }
562
+ @if map.get($_families, spacing) {
563
+ @include _emit-spacing-mp($prefix);
564
+ }
565
+ @if map.get($_families, text-align) {
566
+ @include _emit-text-align($prefix);
567
+ }
568
+ @if map.get($_families, grid-cols) {
569
+ @include _emit-grid-cols($prefix);
570
+ }
571
+ }
572
+ }
573
+
474
574
  // Density utility classes
475
575
  .fui-density-comfortable {
476
576
  --fui-density-scale: 1;