@acronis-platform/ui-react 0.62.0 → 1.0.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 (190) hide show
  1. package/dist/components/ui/alert/alert.js +115 -57
  2. package/dist/components/ui/alert/alert.js.map +1 -1
  3. package/dist/components/ui/button-group/button-group.js +57 -0
  4. package/dist/components/ui/button-group/button-group.js.map +1 -0
  5. package/dist/components/ui/button-icon-menu/button-icon-menu.js +26 -0
  6. package/dist/components/ui/button-icon-menu/button-icon-menu.js.map +1 -0
  7. package/dist/components/ui/calendar-panel/calendar-panel.js.map +1 -1
  8. package/dist/components/ui/chip/chip.js +33 -33
  9. package/dist/components/ui/chip/chip.js.map +1 -1
  10. package/dist/components/ui/date-range-picker/date-range-picker-utils.js +11 -23
  11. package/dist/components/ui/date-range-picker/date-range-picker-utils.js.map +1 -1
  12. package/dist/components/ui/date-range-picker/date-range-picker.js +94 -134
  13. package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
  14. package/dist/components/ui/dropdown-menu/dropdown-menu.js +129 -72
  15. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
  16. package/dist/components/ui/filter-chips/filter-chips.js +44 -0
  17. package/dist/components/ui/filter-chips/filter-chips.js.map +1 -0
  18. package/dist/components/ui/filter-search/filter-search.js +184 -138
  19. package/dist/components/ui/filter-search/filter-search.js.map +1 -1
  20. package/dist/components/ui/fitted-actions/fitted-actions.js +139 -0
  21. package/dist/components/ui/fitted-actions/fitted-actions.js.map +1 -0
  22. package/dist/components/ui/input-date-picker/input-date-picker.js +103 -93
  23. package/dist/components/ui/input-date-picker/input-date-picker.js.map +1 -1
  24. package/dist/components/ui/input-password/input-password.js +76 -66
  25. package/dist/components/ui/input-password/input-password.js.map +1 -1
  26. package/dist/components/ui/input-search/input-search.js +9 -9
  27. package/dist/components/ui/input-search/input-search.js.map +1 -1
  28. package/dist/components/ui/input-select/input-select.js +8 -8
  29. package/dist/components/ui/input-select/input-select.js.map +1 -1
  30. package/dist/components/ui/input-text/input-text.js +77 -66
  31. package/dist/components/ui/input-text/input-text.js.map +1 -1
  32. package/dist/components/ui/input-text-area/input-text-area.js +76 -66
  33. package/dist/components/ui/input-text-area/input-text-area.js.map +1 -1
  34. package/dist/components/ui/link/link.js +50 -35
  35. package/dist/components/ui/link/link.js.map +1 -1
  36. package/dist/components/ui/number-field/number-field.js +1 -1
  37. package/dist/components/ui/number-field/number-field.js.map +1 -1
  38. package/dist/components/ui/popover/popover.js +75 -56
  39. package/dist/components/ui/popover/popover.js.map +1 -1
  40. package/dist/components/ui/scroll-area/scroll-area.js +46 -30
  41. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
  42. package/dist/components/ui/timer/timer.js +47 -0
  43. package/dist/components/ui/timer/timer.js.map +1 -0
  44. package/dist/components/ui/toast/toast.js +168 -61
  45. package/dist/components/ui/toast/toast.js.map +1 -1
  46. package/dist/components/ui/truncate-text/middle-truncate.js +20 -0
  47. package/dist/components/ui/truncate-text/middle-truncate.js.map +1 -0
  48. package/dist/components/ui/truncate-text/text-width.js +12 -0
  49. package/dist/components/ui/truncate-text/text-width.js.map +1 -0
  50. package/dist/components/ui/truncate-text/truncate-text.js +152 -0
  51. package/dist/components/ui/truncate-text/truncate-text.js.map +1 -0
  52. package/dist/index.js +505 -473
  53. package/dist/index.js.map +1 -1
  54. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addDays.js +5 -5
  55. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/addDays.js.map +1 -1
  56. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constants.js +3 -6
  57. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/constants.js.map +1 -1
  58. package/dist/react.js +505 -473
  59. package/dist/react.js.map +1 -1
  60. package/dist/src/components/ui/alert/alert.d.ts +34 -3
  61. package/dist/src/components/ui/alert/index.d.ts +2 -2
  62. package/dist/src/components/ui/button/button.d.ts +1 -1
  63. package/dist/src/components/ui/button-group/button-group.d.ts +38 -0
  64. package/dist/src/components/ui/button-group/index.d.ts +1 -0
  65. package/dist/src/components/ui/button-icon/button-icon.d.ts +1 -1
  66. package/dist/src/components/ui/button-icon-menu/button-icon-menu.d.ts +28 -0
  67. package/dist/src/components/ui/button-icon-menu/index.d.ts +1 -0
  68. package/dist/src/components/ui/button-menu/button-menu.d.ts +1 -1
  69. package/dist/src/components/ui/calendar-panel/calendar-panel.d.ts +2 -2
  70. package/dist/src/components/ui/chip/chip.d.ts +1 -1
  71. package/dist/src/components/ui/date-range-picker/date-range-picker-utils.d.ts +10 -16
  72. package/dist/src/components/ui/date-range-picker/date-range-picker.d.ts +46 -2
  73. package/dist/src/components/ui/dropdown-menu/dropdown-menu.d.ts +8 -1
  74. package/dist/src/components/ui/dropdown-menu/index.d.ts +1 -1
  75. package/dist/src/components/ui/filter-chips/filter-chips.d.ts +25 -0
  76. package/dist/src/components/ui/filter-chips/index.d.ts +1 -0
  77. package/dist/src/components/ui/filter-search/filter-search.d.ts +39 -1
  78. package/dist/src/components/ui/fitted-actions/fitted-actions.d.ts +50 -0
  79. package/dist/src/components/ui/fitted-actions/fitted-actions.docs.d.ts +45 -0
  80. package/dist/src/components/ui/fitted-actions/index.d.ts +1 -0
  81. package/dist/src/components/ui/link/index.d.ts +1 -1
  82. package/dist/src/components/ui/link/link.d.ts +22 -4
  83. package/dist/src/components/ui/metric/metric.d.ts +1 -1
  84. package/dist/src/components/ui/popover/popover.d.ts +30 -1
  85. package/dist/src/components/ui/popover/popover.docs.d.ts +27 -2
  86. package/dist/src/components/ui/scroll-area/scroll-area.d.ts +24 -0
  87. package/dist/src/components/ui/tag/tag.d.ts +1 -1
  88. package/dist/src/components/ui/timer/index.d.ts +1 -0
  89. package/dist/src/components/ui/timer/timer.d.ts +28 -0
  90. package/dist/src/components/ui/toast/index.d.ts +1 -1
  91. package/dist/src/components/ui/toast/toast.d.ts +51 -18
  92. package/dist/src/components/ui/toast/toast.docs.d.ts +4 -0
  93. package/dist/src/components/ui/trend-indicator/trend-indicator.d.ts +1 -1
  94. package/dist/src/components/ui/truncate-text/__tests__/middle-truncate.test.d.ts +1 -0
  95. package/dist/src/components/ui/truncate-text/index.d.ts +3 -0
  96. package/dist/src/components/ui/truncate-text/middle-truncate.d.ts +13 -0
  97. package/dist/src/components/ui/truncate-text/text-width.d.ts +11 -0
  98. package/dist/src/components/ui/truncate-text/truncate-text.d.ts +45 -0
  99. package/dist/src/components/ui/truncate-text/truncate-text.docs.d.ts +35 -0
  100. package/dist/src/index.d.ts +6 -0
  101. package/dist/ui-react.css +1 -1
  102. package/package.json +3 -3
  103. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDefaultOptions.js +0 -8
  104. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getDefaultOptions.js.map +0 -1
  105. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISODay.js +0 -9
  106. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/getISODay.js.map +0 -1
  107. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/Parser.js +0 -23
  108. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/Parser.js.map +0 -1
  109. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/Setter.js +0 -42
  110. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/Setter.js.map +0 -1
  111. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/constants.js +0 -50
  112. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/constants.js.map +0 -1
  113. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js +0 -50
  114. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js.map +0 -1
  115. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js +0 -50
  116. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js.map +0 -1
  117. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js +0 -62
  118. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js.map +0 -1
  119. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js +0 -52
  120. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js.map +0 -1
  121. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js +0 -50
  122. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js.map +0 -1
  123. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js +0 -50
  124. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js.map +0 -1
  125. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js +0 -34
  126. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js.map +0 -1
  127. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js +0 -22
  128. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js.map +0 -1
  129. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js +0 -23
  130. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js.map +0 -1
  131. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js +0 -33
  132. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js.map +0 -1
  133. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js +0 -33
  134. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js.map +0 -1
  135. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js +0 -34
  136. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js.map +0 -1
  137. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js +0 -34
  138. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js.map +0 -1
  139. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js +0 -106
  140. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js.map +0 -1
  141. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js +0 -49
  142. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js.map +0 -1
  143. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js +0 -49
  144. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js.map +0 -1
  145. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js +0 -50
  146. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js.map +0 -1
  147. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js +0 -41
  148. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js.map +0 -1
  149. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js +0 -81
  150. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js.map +0 -1
  151. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js +0 -49
  152. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js.map +0 -1
  153. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js +0 -70
  154. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js.map +0 -1
  155. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js +0 -33
  156. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js.map +0 -1
  157. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js +0 -78
  158. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js.map +0 -1
  159. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js +0 -76
  160. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js.map +0 -1
  161. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js +0 -33
  162. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js.map +0 -1
  163. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js +0 -81
  164. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js.map +0 -1
  165. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js +0 -78
  166. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js.map +0 -1
  167. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js +0 -76
  168. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js.map +0 -1
  169. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js +0 -23
  170. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js.map +0 -1
  171. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js +0 -23
  172. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js.map +0 -1
  173. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js +0 -50
  174. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js.map +0 -1
  175. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers.js +0 -68
  176. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/parsers.js.map +0 -1
  177. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/utils.js +0 -104
  178. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse/_lib/utils.js.map +0 -1
  179. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse.js +0 -86
  180. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/parse.js.map +0 -1
  181. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setDay.js +0 -12
  182. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setDay.js.map +0 -1
  183. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setISODay.js +0 -11
  184. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setISODay.js.map +0 -1
  185. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setISOWeek.js +0 -10
  186. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setISOWeek.js.map +0 -1
  187. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setWeek.js +0 -10
  188. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/setWeek.js.map +0 -1
  189. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/transpose.js +0 -18
  190. package/dist/node_modules/.pnpm/date-fns@4.3.0/node_modules/date-fns/transpose.js.map +0 -1
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"react.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,14 +1,45 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
+ import { ButtonIconProps } from '../button-icon';
2
3
  import * as React from 'react';
3
4
  declare const alertVariants: (props?: ({
4
- variant?: "info" | "success" | "warning" | "critical" | "destructive" | "ai" | "neutral" | null | undefined;
5
+ variant?: "info" | "success" | "warning" | "critical" | "danger" | null | undefined;
5
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export type AlertVariant = NonNullable<VariantProps<typeof alertVariants>['variant']>;
6
8
  export interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
7
9
  }
10
+ /**
11
+ * A status banner: neutral surface, a status-colored border, and a status line
12
+ * down the leading edge. Compose it from `AlertIcon`, `AlertContent`
13
+ * (`AlertText` + `AlertTitle` / `AlertDescription`, optionally `AlertActions`)
14
+ * and `AlertClose`.
15
+ */
8
16
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
17
+ /**
18
+ * The leading status icon. Renders the variant's own icon when given no
19
+ * `children`; pass children to substitute a different glyph.
20
+ */
9
21
  declare const AlertIcon: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
10
22
  declare const AlertContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
23
+ /**
24
+ * The title + description block. Its own vertical padding is what keeps the
25
+ * text aligned with the icon, so keep the title and description inside it
26
+ * rather than directly under `AlertContent`.
27
+ */
28
+ declare const AlertText: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
11
29
  declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
12
- declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
30
+ declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
31
+ /**
32
+ * Action buttons under the text. Place inside `AlertContent` (after
33
+ * `AlertText`), as the Figma does — the row wraps when it runs out of width.
34
+ */
13
35
  declare const AlertActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
14
- export { Alert, AlertIcon, AlertContent, AlertTitle, AlertDescription, AlertActions, };
36
+ export interface AlertCloseProps extends Omit<ButtonIconProps, 'children' | 'variant' | 'render' | 'aria-label'> {
37
+ /** Accessible name for the dismiss control. */
38
+ ariaLabel?: string;
39
+ }
40
+ /**
41
+ * The trailing dismiss control. Rendering it is what makes an alert
42
+ * dismissable — wire `onClick` to remove the alert. Name it with `ariaLabel`.
43
+ */
44
+ declare const AlertClose: React.ForwardRefExoticComponent<AlertCloseProps & React.RefAttributes<HTMLButtonElement>>;
45
+ export { Alert, AlertIcon, AlertContent, AlertText, AlertTitle, AlertDescription, AlertActions, AlertClose, alertVariants, };
@@ -1,2 +1,2 @@
1
- export { Alert, AlertIcon, AlertContent, AlertTitle, AlertDescription, AlertActions, } from './alert';
2
- export type { AlertProps } from './alert';
1
+ export { Alert, AlertIcon, AlertContent, AlertText, AlertTitle, AlertDescription, AlertActions, AlertClose, alertVariants, } from './alert';
2
+ export type { AlertProps, AlertCloseProps, AlertVariant } from './alert';
@@ -2,7 +2,7 @@ import { useRender } from '@base-ui/react/use-render';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  declare const buttonVariants: (props?: ({
5
- variant?: "destructive" | "ai" | "secondary" | "default" | "ghost" | null | undefined;
5
+ variant?: "ghost" | "secondary" | "default" | "destructive" | "ai" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
8
  /**
@@ -0,0 +1,38 @@
1
+ import { ToolbarButtonProps, ToolbarRootProps } from '@base-ui/react/toolbar';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import * as React from 'react';
4
+ declare const buttonGroupVariants: (props?: ({
5
+ variant?: "outlined" | "inlined" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ declare const buttonGroupItemVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
8
+ export interface ButtonGroupProps extends Omit<ToolbarRootProps, 'className' | 'orientation'>, VariantProps<typeof buttonGroupVariants> {
9
+ className?: string;
10
+ }
11
+ /**
12
+ * A cluster of related icon-only actions sharing a single bordered box.
13
+ *
14
+ * Renders a `role="toolbar"` container: the group is one Tab stop and the
15
+ * arrow keys move between items. Give it an accessible name (`aria-label` or
16
+ * `aria-labelledby`) describing what the actions have in common.
17
+ */
18
+ declare const ButtonGroup: React.ForwardRefExoticComponent<Omit<ButtonGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
19
+ /** Mirrors the Figma `ButtonGroupItem` `order` variant. */
20
+ export type ButtonGroupItemOrder = 'first' | 'middle' | 'last';
21
+ export interface ButtonGroupItemProps extends Omit<ToolbarButtonProps, 'className'> {
22
+ className?: string;
23
+ /**
24
+ * Position within the group, mirroring the Figma `order` variant. Controls
25
+ * one thing: whether the trailing separator is drawn (`last` omits it).
26
+ *
27
+ * Leave it unset — position is derived from the DOM. Only pass it when each
28
+ * item is wrapped in another element, which defeats that derivation.
29
+ */
30
+ order?: ButtonGroupItemOrder;
31
+ }
32
+ /**
33
+ * A single action inside a `ButtonGroup`. The icon is passed as `children`;
34
+ * provide an `aria-label` (or `aria-labelledby`) so the control has an
35
+ * accessible name.
36
+ */
37
+ declare const ButtonGroupItem: React.ForwardRefExoticComponent<Omit<ButtonGroupItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
38
+ export { ButtonGroup, ButtonGroupItem, buttonGroupVariants, buttonGroupItemVariants, };
@@ -0,0 +1 @@
1
+ export { ButtonGroup, ButtonGroupItem, buttonGroupVariants, buttonGroupItemVariants, type ButtonGroupProps, type ButtonGroupItemProps, type ButtonGroupItemOrder, } from './button-group';
@@ -2,7 +2,7 @@ import { useRender } from '@base-ui/react/use-render';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  declare const buttonIconVariants: (props?: ({
5
- variant?: "secondary" | "ghost" | null | undefined;
5
+ variant?: "ghost" | "secondary" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface ButtonIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonIconVariants> {
8
8
  /**
@@ -0,0 +1,28 @@
1
+ import { useRender } from '@base-ui/react/use-render';
2
+ import * as React from 'react';
3
+ export interface ButtonIconMenuProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
4
+ /**
5
+ * Whether the associated menu is open. Applies the open (`*-active`)
6
+ * treatment and reflects `aria-expanded`. Control this in sync with the menu
7
+ * you trigger.
8
+ */
9
+ open?: boolean;
10
+ /**
11
+ * Accessible name for the trigger. The button is icon-only, so it has no text
12
+ * to name it — pass a localized string here.
13
+ */
14
+ ariaLabel?: string;
15
+ /**
16
+ * Replace the rendered `<button>` with another element or component
17
+ * (Base UI composition). Accepts a React element or a render function —
18
+ * the component's props and class names are merged onto it.
19
+ */
20
+ render?: useRender.RenderProp;
21
+ }
22
+ /**
23
+ * Icon-only button that opens a menu of actions — the kebab / "more options"
24
+ * trigger. The glyph is fixed (Ellipsis); for any other icon use `ButtonIcon`.
25
+ * Pair it with the menu it controls and keep the `open` prop in sync.
26
+ */
27
+ declare const ButtonIconMenu: React.ForwardRefExoticComponent<ButtonIconMenuProps & React.RefAttributes<HTMLButtonElement>>;
28
+ export { ButtonIconMenu };
@@ -0,0 +1 @@
1
+ export { ButtonIconMenu, type ButtonIconMenuProps } from './button-icon-menu';
@@ -2,7 +2,7 @@ import { useRender } from '@base-ui/react/use-render';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  declare const buttonMenuVariants: (props?: ({
5
- variant?: "primary" | "secondary" | null | undefined;
5
+ variant?: "secondary" | "primary" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface ButtonMenuProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof buttonMenuVariants> {
8
8
  /**
@@ -36,9 +36,9 @@ interface CalendarPanelSharedProps extends Omit<React.HTMLAttributes<HTMLDivElem
36
36
  onMonthChange?: (month: Date) => void;
37
37
  /** Days that cannot be selected. */
38
38
  disabled?: Matcher | Matcher[];
39
- /** Minimum number of selectable days (`multiple` / `range`; ignored for `single`). */
39
+ /** Minimum count (`multiple` / `range`; ignored for `single`): for `multiple`, the number of selected dates; for `range`, the number of nights between start and end. */
40
40
  min?: number;
41
- /** Maximum number of selectable days (`multiple` / `range`; ignored for `single`). */
41
+ /** Maximum count (`multiple` / `range`; ignored for `single`): for `multiple`, the number of selected dates; for `range`, the number of nights between start and end. */
42
42
  max?: number;
43
43
  /** Render the leading/trailing days of the adjacent months. */
44
44
  showOutsideDays?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const chipVariants: (props?: ({
4
- variant?: "removable" | "selectable" | null | undefined;
4
+ variant?: "removable" | "selectable" | "operational" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export interface ChipProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof chipVariants> {
7
7
  /** Optional leading icon, rendered at 16px before the label. */
@@ -1,32 +1,26 @@
1
+ import { DayPickerLocale } from 'react-day-picker';
1
2
  /** A start/end date range. Both ends are optional (a partial range while editing). */
2
3
  export interface DateRange {
3
4
  from?: Date;
4
5
  to?: Date;
5
6
  }
6
- /** The date display / parse pattern used by the trigger and the editable fields. */
7
+ /**
8
+ * The date display pattern used by the trigger. Fixed month-day-year order
9
+ * regardless of `locale` — only the month/day/era token *names* localize (see
10
+ * {@link formatDate}); true locale-aware reordering is a separate, bigger
11
+ * change (tracked, not done here).
12
+ */
7
13
  export declare const DISPLAY_FORMAT = "MMM d, yyyy";
8
14
  /**
9
15
  * Format a date with {@link DISPLAY_FORMAT}, returning `''` for a missing or
10
16
  * invalid `Date`. `date-fns`' `format` throws a `RangeError` on an invalid
11
17
  * `Date` (e.g. `new Date('garbage')`), so the `isValid` guard is load-bearing —
12
18
  * a truthy-but-invalid `Date` must not reach `format`.
13
- */
14
- export declare function formatDate(date: Date | undefined): string;
15
- /**
16
- * Parse a {@link DISPLAY_FORMAT} string into a `Date`, or `undefined` when the
17
- * text is empty, partial (mid-type), or not a real calendar date
18
- * (e.g. `"Feb 30, 2026"`). The result is normalized to the start of the day so
19
- * it round-trips with {@link formatDate} — `date-fns`' `parse` fills the unspecified
20
- * time-of-day from its reference date, which would otherwise leave a "now" time
21
- * on the value and break equality with the midnight dates the calendar emits.
22
19
  *
23
- * NOTE: the pattern is locale-fixed (US-style `MMM d, yyyy`), matching the
24
- * `InputDatePicker` trigger. Locale-aware parsing is not yet supported — a
25
- * known limitation to revisit once the design tier lands.
20
+ * `locale` only translates the month name via `date-fns`' `format` `options`
21
+ * — it does not reorder `DISPLAY_FORMAT`'s fixed month-day-year pattern.
26
22
  */
27
- export declare function parseDate(text: string): Date | undefined;
28
- /** Structural equality of two ranges by their endpoints' timestamps. */
29
- export declare function rangesEqual(a: DateRange, b: DateRange): boolean;
23
+ export declare function formatDate(date: Date | undefined, locale?: DayPickerLocale): string;
30
24
  /**
31
25
  * Return a range whose `from` is never after its `to`. When both ends are set
32
26
  * and inverted (e.g. the user typed an end date earlier than the start), the two
@@ -1,10 +1,11 @@
1
+ import { DayPickerLocale, Matcher } from 'react-day-picker';
1
2
  import { DateRange } from './date-range-picker-utils';
2
3
  import * as React from 'react';
3
4
  export type { DateRange };
4
5
  export interface DateRangePickerProps {
5
6
  /** The applied range (controlled). Omit for uncontrolled use with `defaultValue`. */
6
7
  value?: DateRange;
7
- /** The initial applied range (uncontrolled) and the target of "Reset to default". */
8
+ /** The initial applied range (uncontrolled). */
8
9
  defaultValue?: DateRange;
9
10
  /** Called with the committed range when Apply is pressed. */
10
11
  onValueChange?: (range: DateRange) => void;
@@ -20,8 +21,51 @@ export interface DateRangePickerProps {
20
21
  disabled?: boolean;
21
22
  /** Marks the trigger required. */
22
23
  required?: boolean;
23
- /** Extra classes merged onto the trigger. */
24
+ /** Extra classes merged onto the trigger's field wrapper (label + box + message). */
24
25
  className?: string;
26
+ /** Days that cannot be selected in the calendar. */
27
+ disabledDays?: Matcher | Matcher[];
28
+ /** Minimum number of nights between the range's start and end (`differenceInCalendarDays(to, from)`) — e.g. `min={7}` requires at least 8 selectable days. */
29
+ min?: number;
30
+ /** Maximum number of nights between the range's start and end (`differenceInCalendarDays(to, from)`) — e.g. `max={31}` admits up to 32 selectable days. */
31
+ max?: number;
32
+ /** Render the leading/trailing days of the adjacent months. */
33
+ showOutsideDays?: boolean;
34
+ /**
35
+ * First day of the week (0 = Sunday). Defaults to `locale`'s own week
36
+ * start, falling back to Monday when no `locale` is given.
37
+ */
38
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
39
+ /**
40
+ * First year offered by the year dropdown and the earliest month the grid
41
+ * can navigate to. Defaults to 50 years back.
42
+ */
43
+ fromYear?: number;
44
+ /**
45
+ * Last year offered by the year dropdown and the latest month the grid can
46
+ * navigate to. Defaults to 50 years ahead.
47
+ */
48
+ toYear?: number;
49
+ /**
50
+ * Localizes weekday names, the calendar's default day-cell/caption
51
+ * accessible labels, and the trigger's month name (e.g. `import { es }
52
+ * from 'react-day-picker/locale'`). The trigger's day/year order stays
53
+ * fixed (`MMM d, yyyy`) — only the month name translates, not the
54
+ * ordering. Defaults to date-fns `enUS`. Does not translate `monthLabel`/
55
+ * `yearLabel`/`cancelLabel`/`applyLabel`/`formatMonthLabel` — those are
56
+ * separate props.
57
+ */
58
+ locale?: DayPickerLocale;
59
+ /** Accessible name of the calendar's month dropdown. */
60
+ monthLabel?: string;
61
+ /** Accessible name of the calendar's year dropdown. */
62
+ yearLabel?: string;
63
+ /** Formats a month's name for the month dropdown. Defaults to `locale`-aware `date-fns` formatting. */
64
+ formatMonthLabel?: (date: Date) => string;
65
+ /** Popup footer's "Cancel" button label. */
66
+ cancelLabel?: string;
67
+ /** Popup footer's "Apply" button label. */
68
+ applyLabel?: string;
25
69
  }
26
70
  declare const DateRangePicker: React.ForwardRefExoticComponent<DateRangePickerProps & React.RefAttributes<HTMLButtonElement>>;
27
71
  export { DateRangePicker };
@@ -29,4 +29,11 @@ declare function DropdownMenuShortcut({ className, ...props }: React.HTMLAttribu
29
29
  declare namespace DropdownMenuShortcut {
30
30
  var displayName: string;
31
31
  }
32
- export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuPortal, };
32
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuCheckboxItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
33
+ declare const DropdownMenuRadioGroup: React.NamedExoticComponent<Omit<import('@base-ui/react').ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
34
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<Omit<import('@base-ui/react').ContextMenuRadioItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
35
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
36
+ inset?: boolean;
37
+ } & React.RefAttributes<HTMLDivElement>>;
38
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
39
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuPortal, };
@@ -1 +1 @@
1
- export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuPortal, type DropdownMenuContentProps, } from './dropdown-menu';
1
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuPortal, type DropdownMenuContentProps, } from './dropdown-menu';
@@ -0,0 +1,25 @@
1
+ import { useRender } from '@base-ui/react/use-render';
2
+ import * as React from 'react';
3
+ export interface FilterChipsProps extends React.ComponentPropsWithoutRef<'div'> {
4
+ /**
5
+ * Replace the rendered `<div>` with another element or component
6
+ * (Base UI composition). Accepts a React element or a render function.
7
+ */
8
+ render?: useRender.RenderProp;
9
+ /** Accessible name for the applied-filter region. */
10
+ ariaLabel?: string;
11
+ }
12
+ declare const FilterChips: React.ForwardRefExoticComponent<FilterChipsProps & React.RefAttributes<HTMLDivElement>>;
13
+ export type FilterChipsListProps = React.ComponentPropsWithoutRef<'div'>;
14
+ declare const FilterChipsList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
15
+ export interface FilterChipsResetProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
16
+ /**
17
+ * Replace the rendered `<button>` with another element or component
18
+ * (Base UI composition). Accepts a React element or a render function.
19
+ */
20
+ render?: useRender.RenderProp;
21
+ /** Label for the reset action. */
22
+ children?: React.ReactNode;
23
+ }
24
+ declare const FilterChipsReset: React.ForwardRefExoticComponent<FilterChipsResetProps & React.RefAttributes<HTMLButtonElement>>;
25
+ export { FilterChips, FilterChipsList, FilterChipsReset };
@@ -0,0 +1 @@
1
+ export { FilterChips, FilterChipsList, FilterChipsReset, type FilterChipsProps, type FilterChipsListProps, type FilterChipsResetProps, } from './filter-chips';
@@ -1,3 +1,5 @@
1
+ import { FilterChipsProps } from '../filter-chips';
2
+ import { PopoverContent } from '../popover';
1
3
  import * as React from 'react';
2
4
  export type FilterSearchProps = React.ComponentPropsWithoutRef<'div'>;
3
5
  declare const FilterSearch: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -25,6 +27,12 @@ export interface FilterSearchFiltersProps extends Omit<React.ComponentPropsWitho
25
27
  onApply?: (filters: Record<string, unknown>) => void;
26
28
  /** Label for the filter trigger button. */
27
29
  label?: React.ReactNode;
30
+ /** Label for the "Reset filters" action inside the popover. */
31
+ resetFiltersLabel?: React.ReactNode;
32
+ /** Label for the "Cancel" action inside the popover. */
33
+ cancelLabel?: React.ReactNode;
34
+ /** Label for the "Apply" action inside the popover. */
35
+ applyLabel?: React.ReactNode;
28
36
  /**
29
37
  * Filter field children rendered inside the popover form. Plain children —
30
38
  * wire each field to the draft via `useFilterSearchFilters`. Group fields with
@@ -33,15 +41,45 @@ export interface FilterSearchFiltersProps extends Omit<React.ComponentPropsWitho
33
41
  children?: React.ReactNode;
34
42
  /** Additional classes merged onto the trigger button. */
35
43
  className?: string;
44
+ /** Additional classes merged onto the popover content. */
45
+ contentClassName?: string;
46
+ /** Which side of the trigger to render the popover on. Defaults to `'bottom'`. */
47
+ side?: React.ComponentProps<typeof PopoverContent>['side'];
48
+ /** Alignment of the popover along the chosen side. Defaults to `'start'`. */
49
+ align?: React.ComponentProps<typeof PopoverContent>['align'];
50
+ /** Distance in px between the trigger and the popover. */
51
+ sideOffset?: React.ComponentProps<typeof PopoverContent>['sideOffset'];
52
+ /**
53
+ * Portal container the popover mounts into. Defaults to the nearest
54
+ * `PortalContainerProvider`, or `document.body` if none is set — see
55
+ * `PopoverContent`'s `portalContainer` prop.
56
+ */
57
+ portalContainer?: React.ComponentProps<typeof PopoverContent>['portalContainer'];
58
+ /**
59
+ * Element/rect the popover is confined to when avoiding collisions. See
60
+ * `PopoverContent`'s `collisionBoundary` prop for the default behavior
61
+ * inside a constrained portal container.
62
+ */
63
+ collisionBoundary?: React.ComponentProps<typeof PopoverContent>['collisionBoundary'];
64
+ /**
65
+ * Which CSS `position` the popover uses. See `PopoverContent`'s
66
+ * `positionMethod` prop for the default behavior inside a constrained
67
+ * portal container.
68
+ */
69
+ positionMethod?: React.ComponentProps<typeof PopoverContent>['positionMethod'];
36
70
  }
37
71
  declare const FilterSearchFilters: React.ForwardRefExoticComponent<FilterSearchFiltersProps & React.RefAttributes<HTMLButtonElement>>;
38
- export interface FilterSearchAppliedFiltersProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {
72
+ export interface FilterSearchAppliedFiltersProps extends Omit<FilterChipsProps, 'children'> {
39
73
  /** The currently applied filter values, keyed by an arbitrary consumer-chosen id. */
40
74
  filters: Record<string, unknown>;
41
75
  /** Called with the remaining filters when a chip is removed or "Reset filters" clears all. */
42
76
  onValueChange: (next: Record<string, unknown>) => void;
43
77
  /** Format an applied-filter chip's label. Defaults to `"<key>: <value>"`. */
44
78
  getFilterChipLabel?: (key: string, value: unknown) => React.ReactNode;
79
+ /** Format a filter chip's remove-button accessible label. Defaults to `"Remove <key> filter"`. */
80
+ getRemoveFilterLabel?: (key: string) => string;
81
+ /** Label for the "Reset filters" action. */
82
+ resetFiltersLabel?: React.ReactNode;
45
83
  }
46
84
  /**
47
85
  * Renders one removable chip per applied filter plus a "Reset filters" action
@@ -0,0 +1,50 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Pure overflow math (no DOM). Greedily fits leading actions into
4
+ * `containerWidth - dropdownWidth`, accounting for the inter-item `gap`. Returns
5
+ * how many render inline; the rest overflow into the menu. Exported for testing.
6
+ */
7
+ export declare function computeFittedVisibleCount({ containerWidth, itemWidths, dropdownWidth, gap, }: {
8
+ containerWidth: number;
9
+ itemWidths: number[];
10
+ dropdownWidth: number;
11
+ gap?: number;
12
+ }): number;
13
+ export interface FittedAction {
14
+ /** Stable identity. */
15
+ id: string;
16
+ /** Visible label (also the overflow menu-item label). */
17
+ label: React.ReactNode;
18
+ /** Optional leading 16px icon. */
19
+ icon?: React.ReactNode;
20
+ /** Set `false` to omit the action entirely. */
21
+ isDisplayed?: boolean;
22
+ /** Render a divider above this item when it sits in the overflow menu. */
23
+ divided?: boolean;
24
+ disabled?: boolean;
25
+ /** Invoked when this action is chosen (inline click or menu select). */
26
+ onSelect?: () => void;
27
+ }
28
+ export interface FittedActionsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
29
+ /** Ordered actions; trailing items overflow into the menu first. Defaults to `[]`. */
30
+ actions?: FittedAction[];
31
+ /** Collapse overflow into a "More" menu. Default true. */
32
+ showDropdown?: boolean;
33
+ /** Label for the overflow trigger. Default "More". */
34
+ moreLabel?: React.ReactNode;
35
+ /** Inter-item gap in px (also reserved when measuring). Default 8. */
36
+ gap?: number;
37
+ /** Fired for any chosen action, after its own `onSelect`. */
38
+ onAction?: (action: FittedAction) => void;
39
+ /** Customize the inline action element. Default: a ghost `Button`. */
40
+ renderAction?: (action: FittedAction, api: {
41
+ onSelect: () => void;
42
+ disabled?: boolean;
43
+ }) => React.ReactNode;
44
+ /** Customize the overflow trigger (used as the menu trigger's `render`). Default: a ghost `Button`. */
45
+ renderTrigger?: (api: {
46
+ label: React.ReactNode;
47
+ }) => React.ReactElement;
48
+ }
49
+ declare const FittedActions: React.ForwardRefExoticComponent<FittedActionsProps & React.RefAttributes<HTMLDivElement>>;
50
+ export { FittedActions };
@@ -0,0 +1,45 @@
1
+ import type * as React from 'react';
2
+ /**
3
+ * Props for `FittedActions` — the responsive action row.
4
+ * Extends `div` props (excluding `onSelect`).
5
+ */
6
+ export interface FittedActionsProps {
7
+ /** Ordered actions; trailing items overflow into the menu first. Defaults to `[]`. */
8
+ actions?: FittedAction[];
9
+ /** Collapse overflow into a "More" menu. Default `true`. */
10
+ showDropdown?: boolean;
11
+ /** Label for the overflow trigger. Default `"More"`. */
12
+ moreLabel?: React.ReactNode;
13
+ /** Inter-item gap in px (also reserved when measuring). Default `8`. */
14
+ gap?: number;
15
+ /** Fired for any chosen action, after its own `onSelect`. */
16
+ onAction?: (action: FittedAction) => void;
17
+ /** Customize the inline action element. Default: a ghost `Button`. */
18
+ renderAction?: (action: FittedAction, api: {
19
+ onSelect: () => void;
20
+ disabled?: boolean;
21
+ }) => React.ReactNode;
22
+ /** Customize the overflow trigger (used as the menu trigger's `render`). Default: a ghost `Button`. */
23
+ renderTrigger?: (api: {
24
+ label: React.ReactNode;
25
+ }) => React.ReactElement;
26
+ /** Extra classes merged onto the root `<div>`. */
27
+ className?: string;
28
+ }
29
+ /** A single action in the `FittedActions` bar. */
30
+ export interface FittedAction {
31
+ /** Stable identity — used as React key. */
32
+ id: string;
33
+ /** Visible label (also the overflow menu-item label). */
34
+ label: React.ReactNode;
35
+ /** Optional leading 16px icon rendered before the label. */
36
+ icon?: React.ReactNode;
37
+ /** Set `false` to omit the action entirely without removing it from the array. */
38
+ isDisplayed?: boolean;
39
+ /** Render a divider above this item when it appears in the overflow menu. */
40
+ divided?: boolean;
41
+ /** Disables the action (inline button and overflow menu item both become inert). */
42
+ disabled?: boolean;
43
+ /** Invoked when this action is chosen — inline click or overflow menu select. */
44
+ onSelect?: () => void;
45
+ }
@@ -0,0 +1 @@
1
+ export { FittedActions, computeFittedVisibleCount, type FittedAction, type FittedActionsProps, } from './fitted-actions';
@@ -1 +1 @@
1
- export { Link, type LinkProps } from './link';
1
+ export { Link, linkVariants, type LinkProps } from './link';
@@ -1,9 +1,27 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
+ import { VariantProps } from 'class-variance-authority';
2
3
  import * as React from 'react';
3
- export interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
4
- /** Append a trailing external-link icon (e.g. for links that leave the app). */
4
+ declare const linkVariants: (props?: ({
5
+ variant?: "normal" | "inverse" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement>, VariantProps<typeof linkVariants> {
8
+ /**
9
+ * Which surface the link sits on (Figma's `background`): `normal` for ordinary
10
+ * surfaces, `inverse` for a backdrop/scrim or other dark brand surface.
11
+ */
12
+ variant?: 'normal' | 'inverse';
13
+ /**
14
+ * Append a trailing external-link icon (e.g. for links that leave the app).
15
+ * Has no effect on `variant="inverse"` — the design defines no external icon for
16
+ * links on a backdrop.
17
+ */
5
18
  external?: boolean;
6
- /** Render the link inert: disabled color, removed from the tab order, no navigation. */
19
+ /**
20
+ * Render the link inert: disabled color, removed from the tab order, no navigation.
21
+ * Ignored entirely on `variant="inverse"` — the design defines no disabled state on
22
+ * a backdrop, so the link renders exactly as an enabled one (still navigable and
23
+ * focusable). Omit the link, or use `variant="normal"`, when you need it inert.
24
+ */
7
25
  disabled?: boolean;
8
26
  /**
9
27
  * Replace the rendered `<a>` with another element or component (Base UI
@@ -12,4 +30,4 @@ export interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement>
12
30
  render?: useRender.RenderProp;
13
31
  }
14
32
  declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
15
- export { Link };
33
+ export { Link, linkVariants };
@@ -2,7 +2,7 @@ import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const metricVariants: (props?: ({
4
4
  size?: "small" | "medium" | "large" | null | undefined;
5
- status?: "info" | "success" | "warning" | "critical" | "neutral" | "danger" | null | undefined;
5
+ status?: "info" | "success" | "warning" | "critical" | "danger" | "neutral" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface MetricProps extends React.ComponentProps<'div'>, VariantProps<typeof metricVariants> {
8
8
  /** What the value measures — e.g. "Gross margin". Rendered as an uppercase note heading. */
@@ -17,11 +17,40 @@ export interface PopoverContentProps extends React.ComponentPropsWithoutRef<type
17
17
  portal?: boolean;
18
18
  /**
19
19
  * Portal container. Pass a shadow-root mount for isolated-style previews
20
- * (the docs demos do this via `useShadowMount`).
20
+ * (the docs demos do this via `useShadowMount`), or a constrained
21
+ * MFE/Shadow DOM mount point (see `PortalContainerProvider`).
21
22
  */
22
23
  portalContainer?: PopoverPrimitive.Portal.Props['container'];
23
24
  /** Keep the content mounted while closed (Base UI `Portal` prop). */
24
25
  keepMounted?: PopoverPrimitive.Portal.Props['keepMounted'];
26
+ /**
27
+ * Element/rect the popup is confined to when avoiding collisions. Defaults
28
+ * to Base UI's own `'clipping-ancestors'` behavior — left alone here,
29
+ * since pairing it with the `positionMethod` default below already avoids
30
+ * clipping inside a constrained `portalContainer` (see that prop's doc).
31
+ * Override explicitly if a different boundary is needed.
32
+ */
33
+ collisionBoundary?: PopoverPrimitive.Positioner.Props['collisionBoundary'];
34
+ /**
35
+ * Which CSS `position` the popup uses. Defaults to `'fixed'` whenever the
36
+ * popup is portaled (`portal` is not `false`) into a resolved
37
+ * `portalContainer` — an `'absolute'`-positioned popup
38
+ * (Base UI's own default) is still clipped by a `portalContainer` ancestor
39
+ * that constrains overflow (e.g. a Shadow DOM host with `overflow: hidden`)
40
+ * no matter how the collision boundary is computed, since it shares that
41
+ * ancestor's containing block. `'fixed'` escapes a plain overflow-clipping
42
+ * ancestor — for a `fixed`-positioned popup, the collision-detection
43
+ * library (floating-ui) drops overflow ancestors that don't establish
44
+ * their own containing block, so it clips against the real viewport
45
+ * instead, which is also unaffected by page scroll (unlike measuring
46
+ * `document.documentElement`'s own bounding rect, which shrinks by the
47
+ * scroll offset). Note this is not an absolute guarantee: an ancestor with
48
+ * `transform`, `filter`, `will-change`, `backdrop-filter`, `perspective`,
49
+ * or `contain: paint`/`layout` *does* establish a containing block, so it
50
+ * still clips (and repositions relative to) a `fixed` descendant. Override
51
+ * explicitly if a different strategy is needed.
52
+ */
53
+ positionMethod?: PopoverPrimitive.Positioner.Props['positionMethod'];
25
54
  }
26
55
  declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProps & React.RefAttributes<HTMLDivElement>>;
27
56
  /**