@12-apps/ui 6.66.2 → 6.68.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 (291) hide show
  1. package/dist/_internal/components/data-display/Avatar/Avatar.js +4 -4
  2. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  3. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  4. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  5. package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
  6. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  7. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  8. package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
  9. package/dist/_internal/components/data-display/Chip/Chip.metrics.js +5 -1
  10. package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
  11. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  12. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +34 -31
  13. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +36 -33
  14. package/dist/_internal/components/data-display/DataViews/base-card.js +2 -2
  15. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +5 -5
  16. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +6 -6
  17. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +4 -4
  18. package/dist/_internal/components/data-display/DataViews/base-list-card.js +8 -8
  19. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +4 -4
  20. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
  21. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +5 -3
  22. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +6 -6
  23. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +7 -6
  24. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +31 -28
  25. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +11 -5
  26. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +2 -2
  27. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +8 -3
  28. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +7 -4
  29. package/dist/_internal/components/data-display/DataViews/data-views-overflow-fields.js +18 -0
  30. package/dist/_internal/components/data-display/DataViews/data-views-overflow-fields.js.map +1 -0
  31. package/dist/_internal/components/data-display/DataViews/data-views-overflow.js +6 -2
  32. package/dist/_internal/components/data-display/DataViews/data-views-quick-chip.js +20 -0
  33. package/dist/_internal/components/data-display/DataViews/data-views-quick-chip.js.map +1 -0
  34. package/dist/_internal/components/data-display/DataViews/data-views-quick-types.js +1 -0
  35. package/dist/_internal/components/data-display/DataViews/data-views-quick-types.js.map +1 -0
  36. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  37. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +3 -3
  38. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +8 -7
  39. package/dist/_internal/components/data-display/DataViews/data-views-sticky-head.js +21 -0
  40. package/dist/_internal/components/data-display/DataViews/data-views-sticky-head.js.map +1 -0
  41. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +7 -6
  42. package/dist/_internal/components/data-display/DataViews/data-views-types.js +1 -1
  43. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +3 -3
  44. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -3
  45. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  46. package/dist/_internal/components/data-display/index.js +22 -22
  47. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +3 -3
  48. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -2
  49. package/dist/_internal/components/feedback/StackedModal/StackedModal.styles.js +1 -1
  50. package/dist/_internal/components/feedback/index.js +3 -3
  51. package/dist/_internal/components/index.js +33 -33
  52. package/dist/_internal/components/layout/SettingCard/SettingCard.js +6 -6
  53. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +4 -4
  54. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +5 -5
  55. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +5 -5
  56. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +7 -7
  57. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +6 -6
  58. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +7 -7
  59. package/dist/_internal/components/layout/index.js +10 -10
  60. package/dist/_internal/components/navigation/Tabs/Tabs.js +1 -1
  61. package/dist/_internal/components/navigation/index.js +1 -1
  62. package/dist/_internal/user-avatar/user-avatar.js +5 -5
  63. package/dist/charts.js +11 -11
  64. package/dist/{chunk-35L5YMYQ.js → chunk-2QB4WIU5.js} +6 -6
  65. package/dist/{chunk-AAXLQFC7.js → chunk-3FIIMP7I.js} +2 -2
  66. package/dist/{chunk-6A6GZRXD.js → chunk-3VXS7O3X.js} +2 -2
  67. package/dist/chunk-4IE66GY2.js +89 -0
  68. package/dist/chunk-4IE66GY2.js.map +1 -0
  69. package/dist/{chunk-JYMXYSDP.js → chunk-5CAWRMDX.js} +2 -2
  70. package/dist/{chunk-647DEGIU.js → chunk-5WJFCQFN.js} +7 -7
  71. package/dist/{chunk-M6V7Y7CP.js → chunk-6CZC5S6O.js} +3 -3
  72. package/dist/chunk-6CZC5S6O.js.map +1 -0
  73. package/dist/{chunk-K6KBASL2.js → chunk-72L5C74V.js} +2 -2
  74. package/dist/chunk-AT6UKTH4.js +129 -0
  75. package/dist/chunk-AT6UKTH4.js.map +1 -0
  76. package/dist/{chunk-BI7YMVKZ.js → chunk-B2JSUFDX.js} +2 -2
  77. package/dist/{chunk-7J5JR33K.js → chunk-BBBHPK2Q.js} +2 -2
  78. package/dist/{chunk-UZ2CEJOO.js → chunk-CSJ7WNXU.js} +2 -2
  79. package/dist/{chunk-6QYKZMEE.js → chunk-CSLBRJ7N.js} +40 -25
  80. package/dist/chunk-CSLBRJ7N.js.map +1 -0
  81. package/dist/{chunk-LMIOWP6H.js → chunk-D34PZJH3.js} +2 -2
  82. package/dist/{chunk-HYQJJLBC.js → chunk-DHAXUVMR.js} +27 -3
  83. package/dist/chunk-DHAXUVMR.js.map +1 -0
  84. package/dist/{chunk-TKLPPAS5.js → chunk-E5GYHN4X.js} +4 -4
  85. package/dist/{chunk-KU6VHNRV.js → chunk-E5I776YW.js} +6 -2
  86. package/dist/{chunk-KU6VHNRV.js.map → chunk-E5I776YW.js.map} +1 -1
  87. package/dist/{chunk-SUZLGB5I.js → chunk-E6K2UZGR.js} +3 -3
  88. package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
  89. package/dist/{chunk-L7OWFJUU.js → chunk-EZAQIEYB.js} +40 -34
  90. package/dist/chunk-EZAQIEYB.js.map +1 -0
  91. package/dist/chunk-GCYGVWOI.js +59 -0
  92. package/dist/chunk-GCYGVWOI.js.map +1 -0
  93. package/dist/{chunk-AMLHEKSV.js → chunk-HI7JPDD6.js} +5 -5
  94. package/dist/{chunk-O2P2KTKN.js → chunk-HLYYB4O5.js} +1 -1
  95. package/dist/chunk-HLYYB4O5.js.map +1 -0
  96. package/dist/{chunk-SAJDNO43.js → chunk-IGMD6S76.js} +3 -3
  97. package/dist/{chunk-EZFQO77P.js → chunk-IPYV7BLH.js} +2 -2
  98. package/dist/{chunk-KARMRTTM.js → chunk-J2RUDZVJ.js} +7 -7
  99. package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
  100. package/dist/{chunk-VJB63DUM.js → chunk-K3PMMW23.js} +2 -2
  101. package/dist/{chunk-TNVO3EVF.js → chunk-KT3TF2LT.js} +5 -3
  102. package/dist/chunk-KT3TF2LT.js.map +1 -0
  103. package/dist/{chunk-6S3S2K7O.js → chunk-L7HKMTKR.js} +3 -3
  104. package/dist/chunk-L7HKMTKR.js.map +1 -0
  105. package/dist/{chunk-J6DYHBID.js → chunk-LIN4A2BW.js} +7 -7
  106. package/dist/{chunk-7JS2SPRW.js → chunk-LKRXLWCC.js} +3 -3
  107. package/dist/{chunk-FXZUVZON.js → chunk-LWZ2K225.js} +6 -6
  108. package/dist/{chunk-EWTSQTVR.js → chunk-NI67M453.js} +6 -5
  109. package/dist/chunk-NI67M453.js.map +1 -0
  110. package/dist/{chunk-MJ6EAND6.js → chunk-Q7BGMLCX.js} +2 -2
  111. package/dist/{chunk-6ATXOJVQ.js → chunk-QADTI63U.js} +4 -4
  112. package/dist/{chunk-CMLIWUBW.js → chunk-QPCHABOZ.js} +24 -1
  113. package/dist/chunk-QPCHABOZ.js.map +1 -0
  114. package/dist/{chunk-L6MGAPBX.js → chunk-RCZ4KL2H.js} +5 -3
  115. package/dist/chunk-RCZ4KL2H.js.map +1 -0
  116. package/dist/{chunk-YLSSQJZM.js → chunk-T7ZERP7A.js} +30 -2
  117. package/dist/chunk-T7ZERP7A.js.map +1 -0
  118. package/dist/{chunk-SB2SEGR6.js → chunk-TIM4PXWN.js} +3 -3
  119. package/dist/{chunk-Y7YKIIYS.js → chunk-TQXB2OHP.js} +28 -4
  120. package/dist/chunk-TQXB2OHP.js.map +1 -0
  121. package/dist/{chunk-KUFDUXYB.js → chunk-U6ODZJCH.js} +2 -2
  122. package/dist/{chunk-3WLS7Z7D.js → chunk-UMOHHWXY.js} +3 -3
  123. package/dist/{chunk-S4JXSC4D.js → chunk-V6SRBQMN.js} +5 -5
  124. package/dist/{chunk-JY5YINUH.js → chunk-WQ32YFM5.js} +15 -7
  125. package/dist/chunk-WQ32YFM5.js.map +1 -0
  126. package/dist/{chunk-ERA3AEWU.js → chunk-WTGIW7LX.js} +12 -3
  127. package/dist/chunk-WTGIW7LX.js.map +1 -0
  128. package/dist/{chunk-2VMIHFMX.js → chunk-WVIJFS5Y.js} +9 -4
  129. package/dist/chunk-WVIJFS5Y.js.map +1 -0
  130. package/dist/{chunk-375HTCF2.js → chunk-Y2CCXB7R.js} +18 -2
  131. package/dist/chunk-Y2CCXB7R.js.map +1 -0
  132. package/dist/{chunk-33XGC4YU.js → chunk-YEGZIYVM.js} +2 -2
  133. package/dist/{chunk-3PGY4UL4.js → chunk-YKQA4NPM.js} +37 -7
  134. package/dist/chunk-YKQA4NPM.js.map +1 -0
  135. package/dist/{chunk-XMVPNCYM.js → chunk-YQGVO3ZU.js} +3 -3
  136. package/dist/{chunk-OJFE5PK6.js → chunk-ZZO5MRMV.js} +2 -2
  137. package/dist/data-display/Avatar.js +4 -4
  138. package/dist/data-display/CardKit.js +7 -7
  139. package/dist/data-display/Carousel.js +2 -2
  140. package/dist/data-display/Chart.js +11 -11
  141. package/dist/data-display/Chip.js +3 -3
  142. package/dist/data-display/DataGrid.js +2 -2
  143. package/dist/data-display/DataViews.js +45 -42
  144. package/dist/feedback/StackedModal.js +3 -3
  145. package/dist/layout/SettingCard.js +10 -10
  146. package/dist/native/data-display/Chip.js +20 -1
  147. package/dist/native/data-display/Chip.js.map +1 -1
  148. package/dist/navigation/Tabs.js +1 -1
  149. package/dist/types/components/data-display/Chip/Chip.base.d.ts +5 -1
  150. package/dist/types/components/data-display/Chip/Chip.base.d.ts.map +1 -1
  151. package/dist/types/components/data-display/Chip/Chip.d.ts.map +1 -1
  152. package/dist/types/components/data-display/Chip/Chip.metrics.d.ts +4 -0
  153. package/dist/types/components/data-display/Chip/Chip.metrics.d.ts.map +1 -1
  154. package/dist/types/components/data-display/Chip/Chip.styles.d.ts +2 -7
  155. package/dist/types/components/data-display/Chip/Chip.styles.d.ts.map +1 -1
  156. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts +15 -1
  157. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts.map +1 -1
  158. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts +5 -1
  159. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts.map +1 -1
  160. package/dist/types/components/data-display/DataViews/data-views-empty.d.ts +10 -0
  161. package/dist/types/components/data-display/DataViews/data-views-empty.d.ts.map +1 -1
  162. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts +2 -0
  163. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts.map +1 -1
  164. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts +5 -1
  165. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts.map +1 -1
  166. package/dist/types/components/data-display/DataViews/data-views-inline-bar.d.ts +4 -1
  167. package/dist/types/components/data-display/DataViews/data-views-inline-bar.d.ts.map +1 -1
  168. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts +10 -1
  169. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
  170. package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
  171. package/dist/types/components/data-display/DataViews/data-views-overflow-fields.d.ts +56 -0
  172. package/dist/types/components/data-display/DataViews/data-views-overflow-fields.d.ts.map +1 -0
  173. package/dist/types/components/data-display/DataViews/data-views-overflow.d.ts +7 -5
  174. package/dist/types/components/data-display/DataViews/data-views-overflow.d.ts.map +1 -1
  175. package/dist/types/components/data-display/DataViews/data-views-quick-chip.d.ts +16 -0
  176. package/dist/types/components/data-display/DataViews/data-views-quick-chip.d.ts.map +1 -0
  177. package/dist/types/components/data-display/DataViews/data-views-quick-types.d.ts +33 -0
  178. package/dist/types/components/data-display/DataViews/data-views-quick-types.d.ts.map +1 -0
  179. package/dist/types/components/data-display/DataViews/data-views-range-types.d.ts +2 -0
  180. package/dist/types/components/data-display/DataViews/data-views-range-types.d.ts.map +1 -1
  181. package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts +11 -6
  182. package/dist/types/components/data-display/DataViews/data-views-shell-toolbar.d.ts.map +1 -1
  183. package/dist/types/components/data-display/DataViews/data-views-sticky-head.d.ts +45 -0
  184. package/dist/types/components/data-display/DataViews/data-views-sticky-head.d.ts.map +1 -0
  185. package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts +6 -0
  186. package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts.map +1 -1
  187. package/dist/types/components/data-display/DataViews/data-views-types.d.ts +7 -4
  188. package/dist/types/components/data-display/DataViews/data-views-types.d.ts.map +1 -1
  189. package/dist/types/components/data-display/DataViews/index.d.ts +1 -1
  190. package/dist/types/components/data-display/DataViews/index.d.ts.map +1 -1
  191. package/dist/types/components/feedback/StackedModal/StackedModal.d.ts.map +1 -1
  192. package/dist/types/components/feedback/StackedModal/StackedModal.styles.d.ts +2 -1
  193. package/dist/types/components/feedback/StackedModal/StackedModal.styles.d.ts.map +1 -1
  194. package/dist/types/components/feedback/StackedModal/StackedModal.types.d.ts +17 -0
  195. package/dist/types/components/feedback/StackedModal/StackedModal.types.d.ts.map +1 -1
  196. package/dist/types/components/feedback/StackedModal/index.d.ts +1 -1
  197. package/dist/types/components/feedback/StackedModal/index.d.ts.map +1 -1
  198. package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
  199. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +12 -0
  200. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts.map +1 -1
  201. package/dist/types/components/navigation/Tabs/index.d.ts +1 -1
  202. package/dist/types/components/navigation/Tabs/index.d.ts.map +1 -1
  203. package/dist/types-native/components/data-display/Chip/Chip.base.d.ts +5 -1
  204. package/dist/types-native/components/data-display/Chip/Chip.base.d.ts.map +1 -1
  205. package/dist/types-native/components/data-display/Chip/Chip.look.native.d.ts.map +1 -1
  206. package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts +4 -0
  207. package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts.map +1 -1
  208. package/dist/user-avatar.js +5 -5
  209. package/package.json +1 -1
  210. package/src/components/data-display/Chip/Chip.base.ts +5 -1
  211. package/src/components/data-display/Chip/Chip.look.native.ts +22 -1
  212. package/src/components/data-display/Chip/Chip.metrics.ts +5 -0
  213. package/src/components/data-display/Chip/Chip.styles.tsx +38 -1
  214. package/src/components/data-display/Chip/Chip.tsx +6 -2
  215. package/src/components/data-display/Chip/chip.md +2 -2
  216. package/src/components/data-display/DataViews/DataViewsGrid.tsx +15 -0
  217. package/src/components/data-display/DataViews/DataViewsTableBase.tsx +5 -0
  218. package/src/components/data-display/DataViews/RESPONSIVE-BEHAVIOUR.md +50 -0
  219. package/src/components/data-display/DataViews/data-views-empty.tsx +25 -0
  220. package/src/components/data-display/DataViews/data-views-grid-bodies.tsx +11 -1
  221. package/src/components/data-display/DataViews/data-views-grid-parts.tsx +27 -15
  222. package/src/components/data-display/DataViews/data-views-inline-bar.tsx +24 -1
  223. package/src/components/data-display/DataViews/data-views-more-fields.tsx +34 -1
  224. package/src/components/data-display/DataViews/data-views-more-filters.tsx +20 -4
  225. package/src/components/data-display/DataViews/data-views-overflow-fields.ts +110 -0
  226. package/src/components/data-display/DataViews/data-views-overflow.ts +58 -36
  227. package/src/components/data-display/DataViews/data-views-quick-chip.tsx +143 -0
  228. package/src/components/data-display/DataViews/data-views-quick-types.ts +33 -0
  229. package/src/components/data-display/DataViews/data-views-range-types.ts +2 -0
  230. package/src/components/data-display/DataViews/data-views-shell-toolbar.tsx +31 -23
  231. package/src/components/data-display/DataViews/data-views-sticky-head.ts +132 -0
  232. package/src/components/data-display/DataViews/data-views-toolbar.tsx +9 -0
  233. package/src/components/data-display/DataViews/data-views-types.ts +7 -11
  234. package/src/components/data-display/DataViews/index.ts +1 -0
  235. package/src/components/feedback/StackedModal/StackedModal.md +1 -0
  236. package/src/components/feedback/StackedModal/StackedModal.styles.ts +53 -6
  237. package/src/components/feedback/StackedModal/StackedModal.tsx +2 -1
  238. package/src/components/feedback/StackedModal/StackedModal.types.ts +17 -0
  239. package/src/components/feedback/StackedModal/index.ts +1 -1
  240. package/src/components/navigation/Tabs/Tabs.md +1 -0
  241. package/src/components/navigation/Tabs/Tabs.tsx +30 -1
  242. package/src/components/navigation/Tabs/Tabs.types.ts +14 -0
  243. package/src/components/navigation/Tabs/index.ts +1 -1
  244. package/dist/chunk-2VMIHFMX.js.map +0 -1
  245. package/dist/chunk-375HTCF2.js.map +0 -1
  246. package/dist/chunk-3PGY4UL4.js.map +0 -1
  247. package/dist/chunk-6QYKZMEE.js.map +0 -1
  248. package/dist/chunk-6S3S2K7O.js.map +0 -1
  249. package/dist/chunk-CMLIWUBW.js.map +0 -1
  250. package/dist/chunk-ERA3AEWU.js.map +0 -1
  251. package/dist/chunk-EWTSQTVR.js.map +0 -1
  252. package/dist/chunk-HYQJJLBC.js.map +0 -1
  253. package/dist/chunk-JY5YINUH.js.map +0 -1
  254. package/dist/chunk-L6MGAPBX.js.map +0 -1
  255. package/dist/chunk-L7OWFJUU.js.map +0 -1
  256. package/dist/chunk-M6V7Y7CP.js.map +0 -1
  257. package/dist/chunk-O2P2KTKN.js.map +0 -1
  258. package/dist/chunk-TNVO3EVF.js.map +0 -1
  259. package/dist/chunk-Y7YKIIYS.js.map +0 -1
  260. package/dist/chunk-YLSSQJZM.js.map +0 -1
  261. /package/dist/{chunk-35L5YMYQ.js.map → chunk-2QB4WIU5.js.map} +0 -0
  262. /package/dist/{chunk-AAXLQFC7.js.map → chunk-3FIIMP7I.js.map} +0 -0
  263. /package/dist/{chunk-6A6GZRXD.js.map → chunk-3VXS7O3X.js.map} +0 -0
  264. /package/dist/{chunk-JYMXYSDP.js.map → chunk-5CAWRMDX.js.map} +0 -0
  265. /package/dist/{chunk-647DEGIU.js.map → chunk-5WJFCQFN.js.map} +0 -0
  266. /package/dist/{chunk-K6KBASL2.js.map → chunk-72L5C74V.js.map} +0 -0
  267. /package/dist/{chunk-BI7YMVKZ.js.map → chunk-B2JSUFDX.js.map} +0 -0
  268. /package/dist/{chunk-7J5JR33K.js.map → chunk-BBBHPK2Q.js.map} +0 -0
  269. /package/dist/{chunk-UZ2CEJOO.js.map → chunk-CSJ7WNXU.js.map} +0 -0
  270. /package/dist/{chunk-LMIOWP6H.js.map → chunk-D34PZJH3.js.map} +0 -0
  271. /package/dist/{chunk-TKLPPAS5.js.map → chunk-E5GYHN4X.js.map} +0 -0
  272. /package/dist/{chunk-SUZLGB5I.js.map → chunk-E6K2UZGR.js.map} +0 -0
  273. /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
  274. /package/dist/{chunk-AMLHEKSV.js.map → chunk-HI7JPDD6.js.map} +0 -0
  275. /package/dist/{chunk-SAJDNO43.js.map → chunk-IGMD6S76.js.map} +0 -0
  276. /package/dist/{chunk-EZFQO77P.js.map → chunk-IPYV7BLH.js.map} +0 -0
  277. /package/dist/{chunk-KARMRTTM.js.map → chunk-J2RUDZVJ.js.map} +0 -0
  278. /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
  279. /package/dist/{chunk-VJB63DUM.js.map → chunk-K3PMMW23.js.map} +0 -0
  280. /package/dist/{chunk-J6DYHBID.js.map → chunk-LIN4A2BW.js.map} +0 -0
  281. /package/dist/{chunk-7JS2SPRW.js.map → chunk-LKRXLWCC.js.map} +0 -0
  282. /package/dist/{chunk-FXZUVZON.js.map → chunk-LWZ2K225.js.map} +0 -0
  283. /package/dist/{chunk-MJ6EAND6.js.map → chunk-Q7BGMLCX.js.map} +0 -0
  284. /package/dist/{chunk-6ATXOJVQ.js.map → chunk-QADTI63U.js.map} +0 -0
  285. /package/dist/{chunk-SB2SEGR6.js.map → chunk-TIM4PXWN.js.map} +0 -0
  286. /package/dist/{chunk-KUFDUXYB.js.map → chunk-U6ODZJCH.js.map} +0 -0
  287. /package/dist/{chunk-3WLS7Z7D.js.map → chunk-UMOHHWXY.js.map} +0 -0
  288. /package/dist/{chunk-S4JXSC4D.js.map → chunk-V6SRBQMN.js.map} +0 -0
  289. /package/dist/{chunk-33XGC4YU.js.map → chunk-YEGZIYVM.js.map} +0 -0
  290. /package/dist/{chunk-XMVPNCYM.js.map → chunk-YQGVO3ZU.js.map} +0 -0
  291. /package/dist/{chunk-OJFE5PK6.js.map → chunk-ZZO5MRMV.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/Tabs/Tabs.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAW,SAAS,EAAE,MAAM,cAAc,CAAC;AA6PvD,eAAO,MAAM,IAAI,+FA+ChB,CAAC"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/Tabs/Tabs.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,cAAc,CAAC;AA0RjE,eAAO,MAAM,IAAI,+FA+ChB,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import type { ColorValue, SizeValue } from '../../../tokens/scales';
2
2
  import type { TabsProps as MuiTabsProps } from '@mui/material/Tabs/index.js';
3
3
  import type { ReactNode } from 'react';
4
+ /** A tab's inline count — see `TabItem.count`. */
5
+ export interface TabCount {
6
+ value: string | number;
7
+ /** `warning` asks for attention, `danger` for action; neutral otherwise. */
8
+ tone?: 'neutral' | 'warning' | 'danger';
9
+ }
4
10
  export interface TabItem {
5
11
  /**
6
12
  * Unique identifier for the tab
@@ -26,6 +32,12 @@ export interface TabItem {
26
32
  * Badge content to show on the tab
27
33
  */
28
34
  badge?: string | number;
35
+ /**
36
+ * A count said INSIDE the tab, after its label, as a small pill: how many
37
+ * lines, events or charges the pane holds. `tone` marks one that asks for
38
+ * action. Unlike `badge` it never floats over the label.
39
+ */
40
+ count?: TabCount;
29
41
  /**
30
42
  * Custom className for the tab
31
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/Tabs/Tabs.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/Tabs/Tabs.types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { Tabs } from './Tabs';
2
- export type { TabItem, TabPanelProps, TabsProps } from './Tabs.types';
2
+ export type { TabCount, TabItem, TabPanelProps, TabsProps } from './Tabs.types';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/Tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,OAAO,EAAE,aAAa,EAAC,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/navigation/Tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -7,7 +7,11 @@ import type { ColorValue, SizeValue } from '../../../tokens/vocabulary';
7
7
  * declaration outputs (`dist/types` and `dist/types-native`), and a native
8
8
  * consumer has no `@mui/material` to resolve a type import against.
9
9
  */
10
- export type ChipVariant = 'filled' | 'outlined';
10
+ /**
11
+ * `soft` is a status chip's look: the colour's tint for a ground and its dark
12
+ * step for ink, so a row of states reads without a row of solid blocks.
13
+ */
14
+ export type ChipVariant = 'filled' | 'outlined' | 'soft';
11
15
  /**
12
16
  * The house size scale, abbreviated like every other component's.
13
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.base.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,uBAAuB;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"Chip.base.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;;;GAMG;AACH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,uBAAuB;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.look.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.look.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EASL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,uEAAuE;IACvE,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AA8CD;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,OAAO,GAChB,SAAS,CAOX;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAWzF;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,GACnB,SAAS,CASX;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GAAG,QAAQ,GACtB,SAAS,CAYX;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,CAQ7F;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAOpE;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,WAAW,KAAG,eAAmC,CAAC"}
1
+ {"version":3,"file":"Chip.look.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.look.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAWL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,uEAAuE;IACvE,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAgED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,OAAO,GAChB,SAAS,CAQX;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAWzF;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,GACnB,SAAS,CASX;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GAAG,QAAQ,GACtB,SAAS,CAYX;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,CAQ7F;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAOpE;AAED,eAAO,MAAM,WAAW,GAAI,MAAM,WAAW,KAAG,eAAmC,CAAC"}
@@ -58,4 +58,8 @@ export declare const HOVER_SHADOW: {
58
58
  };
59
59
  export declare const CHIP_TRANSITION_MS = 200;
60
60
  export declare const CHIP_TRANSITION_EASING = "cubic-bezier(0.4, 0, 0.2, 1)";
61
+ /** A soft chip's ground: the colour at this alpha over the page. */
62
+ export declare const SOFT_GROUND_ALPHA = 0.14;
63
+ /** A soft chip's hover ground. */
64
+ export declare const SOFT_HOVER_ALPHA = 0.22;
61
65
  //# sourceMappingURL=Chip.metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;GASG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,WACQ,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,CAqC3D,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,oFAAoF;AACpF,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,yEAAyE;AACzE,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,YAAY;;;;;CAAsE,CAAC;AAChG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,sBAAsB,iCAAiC,CAAC"}
1
+ {"version":3,"file":"Chip.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;GASG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,WACQ,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,CAqC3D,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,oFAAoF;AACpF,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,yEAAyE;AACzE,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,YAAY;;;;;CAAsE,CAAC;AAChG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,sBAAsB,iCAAiC,CAAC;AAErE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,OAAO,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  UserAvatar,
3
3
  UserMenu
4
- } from "./chunk-MJ6EAND6.js";
4
+ } from "./chunk-Q7BGMLCX.js";
5
5
  import "./chunk-UDQSIRAP.js";
6
- import "./chunk-KARMRTTM.js";
7
- import "./chunk-7XSCEHGA.js";
8
- import "./chunk-MTEQEPNY.js";
9
- import "./chunk-6ZZGK5DT.js";
6
+ import "./chunk-J2RUDZVJ.js";
10
7
  import "./chunk-3ZVUNSFF.js";
8
+ import "./chunk-EOQ6EKTS.js";
9
+ import "./chunk-6ZZGK5DT.js";
10
+ import "./chunk-MTEQEPNY.js";
11
11
  import "./chunk-VUHLNYAE.js";
12
12
  import "./chunk-2GSIEDGN.js";
13
13
  import "./chunk-W2RXXF7K.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.66.2",
3
+ "version": "6.68.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -9,7 +9,11 @@ import type { ColorValue, SizeValue } from '../../../tokens/vocabulary';
9
9
  * declaration outputs (`dist/types` and `dist/types-native`), and a native
10
10
  * consumer has no `@mui/material` to resolve a type import against.
11
11
  */
12
- export type ChipVariant = 'filled' | 'outlined';
12
+ /**
13
+ * `soft` is a status chip's look: the colour's tint for a ground and its dark
14
+ * step for ink, so a row of states reads without a row of solid blocks.
15
+ */
16
+ export type ChipVariant = 'filled' | 'outlined' | 'soft';
13
17
 
14
18
  /**
15
19
  * The house size scale, abbreviated like every other component's.
@@ -10,6 +10,8 @@ import {
10
10
  DELETE_ICON_ON_COLOR_ALPHA,
11
11
  OUTLINED_BORDER_ALPHA,
12
12
  OUTLINED_HOVER_ALPHA,
13
+ SOFT_GROUND_ALPHA,
14
+ SOFT_HOVER_ALPHA,
13
15
  type ChipMuiSize,
14
16
  type ChipSizeMetrics,
15
17
  } from './Chip.metrics';
@@ -52,6 +54,24 @@ function filledPaint(theme: UiTheme, color: ChipColor): ChipPaint {
52
54
  };
53
55
  }
54
56
 
57
+ function softPaint(theme: UiTheme, color: ChipColor): ChipPaint {
58
+ if (!isAccented(color)) {
59
+ return {
60
+ container: { backgroundColor: theme.palette.action.selected },
61
+ pressed: { backgroundColor: theme.palette.action.hover },
62
+ label: { color: theme.palette.text.secondary, fontWeight: '600' },
63
+ deleteColor: alpha(theme.palette.text.secondary, DELETE_ICON_ALPHA),
64
+ };
65
+ }
66
+ const accent = theme.palette[color];
67
+ return {
68
+ container: { backgroundColor: alpha(accent.main, SOFT_GROUND_ALPHA) },
69
+ pressed: { backgroundColor: alpha(accent.main, SOFT_HOVER_ALPHA) },
70
+ label: { color: accent.dark, fontWeight: '600' },
71
+ deleteColor: alpha(accent.dark, DELETE_ICON_ALPHA),
72
+ };
73
+ }
74
+
55
75
  function outlinedPaint(theme: UiTheme, color: ChipColor): ChipPaint {
56
76
  const border: ViewStyle = { backgroundColor: 'transparent', borderWidth: 1, borderStyle: 'solid' };
57
77
  if (!isAccented(color)) {
@@ -82,7 +102,8 @@ export function chipPaint(
82
102
  color: ChipColor,
83
103
  selected: boolean,
84
104
  ): ChipPaint {
85
- const paint = variant === 'outlined' ? outlinedPaint(theme, color) : filledPaint(theme, color);
105
+ const paint =
106
+ variant === 'outlined' ? outlinedPaint(theme, color) : variant === 'soft' ? softPaint(theme, color) : filledPaint(theme, color);
86
107
  if (variant !== 'outlined' || !selected) return paint;
87
108
  return {
88
109
  ...paint,
@@ -100,3 +100,8 @@ export const HOVER_LIFT_PX = 1;
100
100
  export const HOVER_SHADOW = { offsetY: 4, blur: 12, alphaLight: 0.15, alphaDark: 0.3 } as const;
101
101
  export const CHIP_TRANSITION_MS = 200;
102
102
  export const CHIP_TRANSITION_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';
103
+
104
+ /** A soft chip's ground: the colour at this alpha over the page. */
105
+ export const SOFT_GROUND_ALPHA = 0.14;
106
+ /** A soft chip's hover ground. */
107
+ export const SOFT_HOVER_ALPHA = 0.22;
@@ -4,7 +4,17 @@ import type { KeyboardEvent, ReactElement } from 'react';
4
4
  import React from 'react';
5
5
 
6
6
  import { chipKeyAction, type ChipKeyArgs } from './Chip.helpers';
7
- import { CHIP_SIZES, CHIP_TRANSITION_EASING, CHIP_TRANSITION_MS, HOVER_LIFT_PX, HOVER_SHADOW } from './Chip.metrics';
7
+ import { alpha } from '@mui/material/styles/index.js';
8
+
9
+ import {
10
+ CHIP_SIZES,
11
+ CHIP_TRANSITION_EASING,
12
+ CHIP_TRANSITION_MS,
13
+ HOVER_LIFT_PX,
14
+ HOVER_SHADOW,
15
+ SOFT_GROUND_ALPHA,
16
+ SOFT_HOVER_ALPHA,
17
+ } from './Chip.metrics';
8
18
  import type { ChipProps } from './Chip.types';
9
19
  import { shadowInk } from '../../../tokens/ink';
10
20
  import { rem, rems, sxRem } from '../../../tokens/relative';
@@ -43,6 +53,7 @@ export const avatarFor = (
43
53
 
44
54
  interface ChipStyleArgs {
45
55
  variant: ChipProps['variant'];
56
+ color?: ChipProps['color'];
46
57
  selected?: boolean;
47
58
  clickable?: boolean;
48
59
  disabled?: boolean;
@@ -61,8 +72,33 @@ const hoverShadow = (theme: Theme): string =>
61
72
  * state); an outlined selected chip gets a subtle theme-driven `action.selected`
62
73
  * tint so it reads as active without muddying the fill.
63
74
  */
75
+ /** The palette entry a colour paints with; `neutral` has none and takes the ink. */
76
+ const paletteKey = (color: NonNullable<ChipProps['color']>): 'primary' | 'secondary' | 'error' | 'info' | 'success' | 'warning' | null => {
77
+ if (color === 'neutral') return null;
78
+ return color === 'danger' ? 'error' : color;
79
+ };
80
+
81
+ /** `soft`: the colour's tint for a ground, its dark step for ink (and the icon). */
82
+ const softStyles = (color: NonNullable<ChipProps['color']>): SxProps<Theme> => {
83
+ const key = paletteKey(color);
84
+ const ground = (theme: Theme): string =>
85
+ key ? alpha(theme.palette[key].main, SOFT_GROUND_ALPHA) : theme.palette.action.selected;
86
+ const ink = (theme: Theme): string => (key ? theme.palette[key].dark : theme.palette.text.secondary);
87
+ return {
88
+ backgroundColor: ground,
89
+ color: ink,
90
+ // A state is read at a glance: the label is set semibold.
91
+ fontWeight: 600,
92
+ '& .MuiChip-icon': { color: ink },
93
+ '&.MuiChip-clickable:hover': {
94
+ backgroundColor: (theme: Theme) => (key ? alpha(theme.palette[key].main, SOFT_HOVER_ALPHA) : theme.palette.action.hover),
95
+ },
96
+ };
97
+ };
98
+
64
99
  export const chipStyles = ({
65
100
  variant,
101
+ color = 'primary',
66
102
  selected,
67
103
  clickable,
68
104
  disabled,
@@ -70,6 +106,7 @@ export const chipStyles = ({
70
106
  const lifts = clickable && !disabled;
71
107
 
72
108
  return {
109
+ ...(variant === 'soft' ? (softStyles(color) as object) : {}),
73
110
  // Enhanced styling for outlined variant
74
111
  ...(variant === 'outlined' && {
75
112
  borderWidth: '1px',
@@ -37,6 +37,10 @@ const muiColorFor = (color: NonNullable<ChipProps['color']>): MuiChipColor => {
37
37
  return color === 'neutral' ? 'default' : color;
38
38
  };
39
39
 
40
+ /** `soft` is ours: MUI has two variants, so it paints as `filled` and `chipStyles` tints it. */
41
+ const muiVariantFor = (variant: NonNullable<ChipProps['variant']>): 'filled' | 'outlined' =>
42
+ variant === 'soft' ? 'filled' : variant;
43
+
40
44
  export const Chip = forwardRef<HTMLDivElement, ChipProps>(({
41
45
  label,
42
46
  variant = 'filled',
@@ -66,7 +70,7 @@ export const Chip = forwardRef<HTMLDivElement, ChipProps>(({
66
70
  <MuiChip
67
71
  ref={ref}
68
72
  label={<span data-testid={testId('label')}>{label}</span>}
69
- variant={variant}
73
+ variant={muiVariantFor(variant)}
70
74
  size={chipMuiSize(size)}
71
75
  color={muiColorFor(color)}
72
76
  avatar={avatarFor(avatar, avatarSrc)}
@@ -81,7 +85,7 @@ export const Chip = forwardRef<HTMLDivElement, ChipProps>(({
81
85
  role={chipRole(selectable, onClick)}
82
86
  aria-selected={selectable ? selected : undefined}
83
87
  data-testid={chipId || 'chip'}
84
- sx={chipStyles({ variant, selected, clickable, disabled })}
88
+ sx={chipStyles({ variant, color, selected, clickable, disabled })}
85
89
  {...props}
86
90
  />
87
91
  );
@@ -5,7 +5,7 @@
5
5
  ```ts
6
6
  interface ChipProps {
7
7
  label: string;
8
- variant?: 'filled' | 'outlined';
8
+ variant?: 'filled' | 'outlined' | 'soft';
9
9
  size?: SizeValue; // all five stops; MUI's two heights, xs/sm small and md up medium
10
10
  /**
11
11
  * The house vocabulary, identical to Button's. `danger` and `neutral` are
@@ -28,7 +28,7 @@ interface ChipProps {
28
28
 
29
29
  **Features**
30
30
 
31
- - Filled/Outlined variants; optional avatar or icon.
31
+ - Filled/Outlined/Soft variants; optional avatar or icon. `soft` is a status chip: the colour's tint for a ground and its dark step for ink.
32
32
  - Selectable (toggle) and/or deletable (× button).
33
33
  - Keyboard: Space/Enter activates; Delete/Backspace triggers remove when focused.
34
34
 
@@ -19,6 +19,7 @@ import {
19
19
  type DataViewState,
20
20
  type DataViewSyncState,
21
21
  type FilterFieldConfig,
22
+ type QuickFilterConfig,
22
23
  type RangeFieldConfig,
23
24
  type RowAction,
24
25
  } from "./data-views-types";
@@ -184,6 +185,20 @@ interface DataViewsGridProps<T extends Record<string, unknown>> {
184
185
  inlineFilters?: boolean;
185
186
  /** Keep the inline search visible with no filter fields and no active search. */
186
187
  alwaysShowSearch?: boolean;
188
+ /**
189
+ * One-click filters drawn as toggle chips at the head of the toolbar, each
190
+ * applying one value of a declared pill field. See {@link QuickFilterConfig}.
191
+ */
192
+ quickFilters?: QuickFilterConfig[];
193
+ /**
194
+ * Pin the toolbar to the top of the page's scroll area, and the table's
195
+ * header row right under it, while the rows scroll past. For a list that IS
196
+ * the page: what sits above the grid (title, summaries, notices) scrolls
197
+ * away, and the controls and column names stay in reach. The table keeps its
198
+ * own sideways scroll, which is why the header follows the page scroll
199
+ * rather than relying on `position: sticky` (see `useStickyTableHead`).
200
+ */
201
+ stickyToolbar?: boolean;
187
202
  /** Server-mode wiring; when set the grid is backend-driven (no client filter/sort/paginate). */
188
203
  server?: DataViewServer;
189
204
  }
@@ -27,6 +27,7 @@ import {
27
27
  type DataViewPersistence,
28
28
  type DataViewRouter,
29
29
  type FilterFieldConfig,
30
+ type QuickFilterConfig,
30
31
  type RangeFieldConfig,
31
32
  type DataViewCardSelection,
32
33
  type RowAction,
@@ -115,6 +116,10 @@ export interface DataViewsTableBaseProps<T extends Record<string, unknown>> {
115
116
  inlineFilters?: boolean;
116
117
  /** Keep the inline search visible with no filter fields and no active search. */
117
118
  alwaysShowSearch?: boolean;
119
+ /** One-click toggle chips at the head of the toolbar — see `QuickFilterConfig`. */
120
+ quickFilters?: QuickFilterConfig[];
121
+ /** Pin the toolbar and the table header while the page scrolls — see `DataViewsGrid`. */
122
+ stickyToolbar?: boolean;
118
123
  /** Server-mode wiring (FUT-180): backend-driven rows/total + re-fetch. Omit for client mode. */
119
124
  server?: DataViewServer;
120
125
  /** Seed the initial view state (search/pills/ranges/sort) from the URL when no saved view applies. */
@@ -284,3 +284,53 @@ overflow, and how anything looks. Those are verified in a real browser against
284
284
  the running Storybook, at 1600 / 1280 / 1024 / 900 / 768 / 600 / 500 / 430 / 390
285
285
  / 360 / 320, measured on the toolbar row, the filter cluster's own scroll box,
286
286
  and the document.
287
+
288
+ ---
289
+
290
+ ## Quick chips and `inMore` fields
291
+
292
+ `quickFilters` puts one-click toggle chips at the head of the bar, each applying
293
+ ONE value of a declared pill field (`pills[fieldId] = [value]`). The field they
294
+ write to is not drawn as a pill: the chips stand in for it. Everything else —
295
+ the counter, "Limpar", saved views, the URL — treats a pressed chip as the
296
+ filter it is.
297
+
298
+ Chips are on the ladder like any control. They rank ahead of idle pills for the
299
+ bar's slots, and on a row with no room they move into "Mais" as a toggle row
300
+ with the same label and count — never a sideways-scrolling strip, which the one
301
+ rule above forbids. A pressed chip in "Mais" counts towards the trigger's
302
+ applied badge.
303
+
304
+ `inMore: true` on a pill or range field keeps it off the bar at every width: it
305
+ is behind "Mais" from the start, so "Mais" is always drawn. Use it beside quick
306
+ chips, so the daily question is not crowded by the facets that are not.
307
+
308
+ Chips keep their slots: they rank ahead of everything in their DECLARED order
309
+ whatever is pressed — ahead of APPLIED pills too, which reverses the "applied
310
+ first" rule for them: a chip is the page's fixed question, and an applied pill
311
+ in "Mais" still shows in the trigger's applied badge — stay a prefix of that order (never the second without the
312
+ first). Pressing one adds "Limpar", which can cost room: what leaves the bar is
313
+ an idle pill first, or the chips together — never one chip swapped for another
314
+ under the hand that pressed it. A chip reads as pressed
315
+ only when its value is the field's WHOLE selection.
316
+
317
+ Both are inline-bar features: in the classic slide-in panel (`inlineFilters`
318
+ off) there is no bar, and the chips' field is drawn as its ordinary pill.
319
+
320
+ `data-views-quick-filters.test.tsx` and `data-views-quick-filters-measured.test.tsx` pin both; **QuickFiltersSticky** in
321
+ `data-views-table.stories.tsx` shows them.
322
+
323
+ ## The sticky toolbar
324
+
325
+ `stickyToolbar` pins the toolbar band to the visible top of the page's scroll
326
+ area, and the table's header row right under it, while what is above the grid
327
+ scrolls away. Two details make it work on a real page:
328
+
329
+ - **The bar's `top` is the negative of the scroll container's top padding**,
330
+ read from the live layout (`useStickyBarTop`). `top: 0` sticks to the content
331
+ edge, inside the padding, which left a padded pane showing rows above the bar.
332
+ - **The header is translated, not `position: sticky`** (`useStickyTableHead`).
333
+ The table keeps its own sideways scroll, which makes its wrapper a scroll
334
+ container that never scrolls vertically, so a sticky cell would stick to a box
335
+ that never moves. The cells follow the page by `translateY`, clamped inside
336
+ their own table.
@@ -9,6 +9,7 @@ import { sxRem } from "../../../tokens/relative";
9
9
  import { Text } from "../../typography/Text";
10
10
 
11
11
  import { useDataViewsCopy } from "./data-views-copy-context";
12
+ import type { DataViewsController } from "./use-data-views-state";
12
13
 
13
14
  /**
14
15
  * TWO EMPTY STATES, NOT ONE.
@@ -93,3 +94,27 @@ export function DataViewsEmpty({
93
94
  </Box>
94
95
  );
95
96
  }
97
+
98
+ /**
99
+ * The grid renders the FILTERED empty state itself — it is the only party that
100
+ * knows a filter is applied. See {@link DataViewsEmpty}.
101
+ */
102
+ export function ShellEmpty<T extends Record<string, unknown>>({
103
+ c,
104
+ emptyState,
105
+ testIdPrefix,
106
+ }: {
107
+ c: DataViewsController<T>;
108
+ emptyState?: React.ReactNode;
109
+ testIdPrefix: string;
110
+ }): React.JSX.Element {
111
+ return (
112
+ <DataViewsEmpty
113
+ filtered={c.activeFilterCount > 0 || c.state.search !== ""}
114
+ onClearFilters={() => c.patch({ search: "", pills: {}, ranges: {} })}
115
+ emptyState={emptyState}
116
+ testIdPrefix={testIdPrefix}
117
+ />
118
+ );
119
+ }
120
+
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import React from "react";
3
+ import React, { useRef } from "react";
4
4
 
5
5
  import { DataGrid, type GridColumn, type GridSort } from "../DataGrid";
6
6
  import { Box } from "../../../mui/Box";
@@ -22,6 +22,7 @@ import { toGridExpansion, type DataViewRowDetail } from "./data-views-row-detail
22
22
  import type { DataViewsController } from "./use-data-views-state";
23
23
  import { useDataViewsCopy } from "./data-views-copy-context";
24
24
  import { sxRem } from "../../../tokens/relative";
25
+ import { useStickyTableHead } from "./data-views-sticky-head";
25
26
 
26
27
  /* ── Body (grid) ─────────────────────────────────────────────────────────── */
27
28
 
@@ -42,6 +43,8 @@ interface GridBodyProps<T extends Record<string, unknown>> {
42
43
  rowDetail?: DataViewRowDetail<T>;
43
44
  dataTestId?: string;
44
45
  emptyState?: React.ReactNode;
46
+ /** The header row follows the page scroll under the sticky toolbar. */
47
+ stickyHead?: boolean;
45
48
  }
46
49
 
47
50
  /** The dense DataGrid with multi-select (unless opted out), wrapped in the scrollable table region. */
@@ -59,10 +62,14 @@ function GridBody<T extends Record<string, unknown>>({
59
62
  rowDetail,
60
63
  dataTestId,
61
64
  emptyState,
65
+ stickyHead = false,
62
66
  }: GridBodyProps<T>): React.JSX.Element {
63
67
  const copy = useDataViewsCopy();
68
+ const wrapperRef = useRef<HTMLDivElement>(null);
69
+ useStickyTableHead(wrapperRef, stickyHead);
64
70
  return (
65
71
  <Box
72
+ ref={wrapperRef}
66
73
  sx={{
67
74
  width: "100%",
68
75
  overflowX: "auto",
@@ -215,6 +222,8 @@ interface GridMainProps<T extends Record<string, unknown>> {
215
222
  dataTestId?: string;
216
223
  emptyState?: React.ReactNode;
217
224
  testIdPrefix: string;
225
+ /** The table's header row follows the page under a sticky toolbar. */
226
+ stickyHead?: boolean;
218
227
  }
219
228
 
220
229
  /**
@@ -345,6 +354,7 @@ export function GridMain<T extends Record<string, unknown>>(props: GridMainProps
345
354
  rowDetail={props.rowDetail}
346
355
  dataTestId={dataTestId}
347
356
  emptyState={emptyState}
357
+ stickyHead={props.stickyHead}
348
358
  />
349
359
  );
350
360
  }