@veevarts/design-system 2.0.0-alpha.6 → 2.0.0-alpha.60

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 (277) hide show
  1. package/README.md +82 -0
  2. package/dist/assistant.cjs +1 -0
  3. package/dist/assistant.d.ts +10 -0
  4. package/dist/assistant.js +790 -0
  5. package/dist/components/DatePicker/DatePicker.d.ts +9 -2
  6. package/dist/components/DatePicker/defaults.d.ts +28 -0
  7. package/dist/components/DatePicker/index.d.ts +1 -0
  8. package/dist/components/Drawer/Drawer.d.ts +17 -0
  9. package/dist/components/Drawer/index.d.ts +2 -0
  10. package/dist/components/Modal/CloseButton.d.ts +18 -0
  11. package/dist/components/Modal/Modal.d.ts +15 -0
  12. package/dist/components/Modal/index.d.ts +2 -0
  13. package/dist/components/Modal/useLabelledCloseButton.d.ts +13 -0
  14. package/dist/components/Select/Select.d.ts +10 -0
  15. package/dist/components/Skeleton/Skeleton.d.ts +37 -0
  16. package/dist/components/Skeleton/index.d.ts +2 -0
  17. package/dist/components/Table/Table.d.ts +7 -0
  18. package/dist/components/Table/index.d.ts +2 -0
  19. package/dist/components/index.d.ts +9 -1
  20. package/dist/hasContent-BCRxiry-.js +1200 -0
  21. package/dist/hasContent-JfCtoDIu.cjs +1 -0
  22. package/dist/index.cjs +9 -9
  23. package/dist/index.d.ts +6 -0
  24. package/dist/index.js +10761 -6895
  25. package/dist/patterns/ActivityTimeline/ActivityTimeline.d.ts +3 -0
  26. package/dist/patterns/ActivityTimeline/index.d.ts +2 -0
  27. package/dist/patterns/ActivityTimeline/styles.d.ts +15 -0
  28. package/dist/patterns/ActivityTimeline/types.d.ts +15 -0
  29. package/dist/patterns/AdminTable/AdminTable.d.ts +1 -0
  30. package/dist/patterns/AdminTable/styles.d.ts +8 -1
  31. package/dist/patterns/AdminTextField/AdminTextField.d.ts +4 -44
  32. package/dist/patterns/AdminTextField/index.d.ts +2 -2
  33. package/dist/patterns/AdminTextField/styles.d.ts +29 -0
  34. package/dist/patterns/AdminTextField/types.d.ts +78 -0
  35. package/dist/patterns/AdminToolbar/AdminToolbar.d.ts +13 -2
  36. package/dist/patterns/AdminToolbar/index.d.ts +1 -0
  37. package/dist/patterns/AdminToolbar/styles.d.ts +49 -0
  38. package/dist/patterns/AdminToolbar/types.d.ts +2 -0
  39. package/dist/patterns/AmountList/AmountList.d.ts +3 -0
  40. package/dist/patterns/AmountList/index.d.ts +2 -0
  41. package/dist/patterns/AmountList/styles.d.ts +23 -0
  42. package/dist/patterns/AmountList/types.d.ts +26 -0
  43. package/dist/patterns/AssistantActivity/AssistantActivity.d.ts +15 -0
  44. package/dist/patterns/AssistantActivity/formatAssistantDuration.d.ts +10 -0
  45. package/dist/patterns/AssistantActivity/index.d.ts +3 -0
  46. package/dist/patterns/AssistantActivity/styles.d.ts +31 -0
  47. package/dist/patterns/AssistantActivity/types.d.ts +42 -0
  48. package/dist/patterns/AssistantComposer/AssistantComposer.d.ts +15 -0
  49. package/dist/patterns/AssistantComposer/index.d.ts +2 -0
  50. package/dist/patterns/AssistantComposer/styles.d.ts +33 -0
  51. package/dist/patterns/AssistantComposer/types.d.ts +62 -0
  52. package/dist/patterns/AssistantMessage/AssistantMessage.d.ts +17 -0
  53. package/dist/patterns/AssistantMessage/index.d.ts +2 -0
  54. package/dist/patterns/AssistantMessage/styles.d.ts +45 -0
  55. package/dist/patterns/AssistantMessage/types.d.ts +84 -0
  56. package/dist/patterns/AssistantNotice/AssistantNotice.d.ts +18 -0
  57. package/dist/patterns/AssistantNotice/index.d.ts +2 -0
  58. package/dist/patterns/AssistantNotice/styles.d.ts +49 -0
  59. package/dist/patterns/AssistantNotice/types.d.ts +58 -0
  60. package/dist/patterns/CardList/CardList.d.ts +3 -0
  61. package/dist/patterns/CardList/index.d.ts +2 -0
  62. package/dist/patterns/CardList/styles.d.ts +20 -0
  63. package/dist/patterns/CardList/types.d.ts +20 -0
  64. package/dist/patterns/CardStack/CardStack.d.ts +7 -0
  65. package/dist/patterns/CardStack/index.d.ts +2 -0
  66. package/dist/patterns/CardStack/styles.d.ts +2 -0
  67. package/dist/patterns/CashTenderForm/types.d.ts +6 -0
  68. package/dist/patterns/CellText/CellText.d.ts +16 -0
  69. package/dist/patterns/CellText/index.d.ts +2 -0
  70. package/dist/patterns/CellText/styles.d.ts +7 -0
  71. package/dist/patterns/DiscardGuard/DiscardGuard.d.ts +23 -0
  72. package/dist/patterns/DiscardGuard/context.d.ts +25 -0
  73. package/dist/patterns/DiscardGuard/index.d.ts +6 -0
  74. package/dist/patterns/DiscardGuard/useDiscardGuard.d.ts +38 -0
  75. package/dist/patterns/DonationAmounts/index.d.ts +1 -1
  76. package/dist/patterns/DonationAmounts/styles.d.ts +51 -0
  77. package/dist/patterns/DonationAmounts/types.d.ts +79 -1
  78. package/dist/patterns/DonationAmounts/utils/currency.d.ts +23 -3
  79. package/dist/patterns/EntityRow/EntityList.d.ts +15 -0
  80. package/dist/patterns/EntityRow/EntityRow.d.ts +3 -0
  81. package/dist/patterns/EntityRow/context.d.ts +2 -0
  82. package/dist/patterns/EntityRow/icons.d.ts +3 -0
  83. package/dist/patterns/EntityRow/index.d.ts +3 -0
  84. package/dist/patterns/EntityRow/initials.d.ts +6 -0
  85. package/dist/patterns/EntityRow/styles.d.ts +74 -0
  86. package/dist/patterns/EntityRow/types.d.ts +125 -0
  87. package/dist/patterns/ExpandableTable/ExpandableTable.d.ts +6 -0
  88. package/dist/patterns/ExpandableTable/index.d.ts +2 -0
  89. package/dist/patterns/ExpandableTable/styles.d.ts +43 -0
  90. package/dist/patterns/ExpandableTable/types.d.ts +99 -0
  91. package/dist/patterns/FeedbackState/FeedbackState.d.ts +1 -1
  92. package/dist/patterns/FeedbackState/type.d.ts +11 -1
  93. package/dist/patterns/FilterSelect/FilterSelect.d.ts +3 -0
  94. package/dist/patterns/FilterSelect/FilterSelectGroup.d.ts +3 -0
  95. package/dist/patterns/FilterSelect/index.d.ts +3 -0
  96. package/dist/patterns/FilterSelect/styles.d.ts +17 -0
  97. package/dist/patterns/FilterSelect/types.d.ts +19 -0
  98. package/dist/patterns/InlineConfirm/InlineConfirm.d.ts +38 -0
  99. package/dist/patterns/InlineConfirm/index.d.ts +2 -0
  100. package/dist/patterns/InlineConfirm/styles.d.ts +16 -0
  101. package/dist/patterns/InstallmentFundAssignment/InstallmentFundAssignment.d.ts +1 -1
  102. package/dist/patterns/InstallmentFundAssignment/types.d.ts +3 -0
  103. package/dist/patterns/InstallmentSchedule/InstallmentSchedule.d.ts +1 -1
  104. package/dist/patterns/InstallmentSchedule/InstallmentTable.d.ts +1 -1
  105. package/dist/patterns/InstallmentSchedule/index.d.ts +1 -1
  106. package/dist/patterns/InstallmentSchedule/types.d.ts +62 -3
  107. package/dist/patterns/InstallmentSchedule/utils.d.ts +33 -0
  108. package/dist/patterns/KeyValueChip/KeyValueChip.d.ts +1 -0
  109. package/dist/patterns/KeyValueRows/KeyValueRows.d.ts +13 -0
  110. package/dist/patterns/KeyValueRows/index.d.ts +2 -0
  111. package/dist/patterns/KeyValueRows/styles.d.ts +8 -0
  112. package/dist/patterns/LineItemRows/LineItemRows.d.ts +17 -0
  113. package/dist/patterns/LineItemRows/index.d.ts +2 -0
  114. package/dist/patterns/LineItemRows/styles.d.ts +13 -0
  115. package/dist/patterns/ListPanel/ListPanel.d.ts +2 -0
  116. package/dist/patterns/LoadMoreFooter/LoadMoreFooter.d.ts +3 -0
  117. package/dist/patterns/LoadMoreFooter/index.d.ts +2 -0
  118. package/dist/patterns/LoadMoreFooter/styles.d.ts +7 -0
  119. package/dist/patterns/LoadMoreFooter/types.d.ts +10 -0
  120. package/dist/patterns/MetaCard/types.d.ts +2 -0
  121. package/dist/patterns/ModalPanels/ModalPanels.d.ts +35 -0
  122. package/dist/patterns/ModalPanels/context.d.ts +20 -0
  123. package/dist/patterns/ModalPanels/focus.d.ts +44 -0
  124. package/dist/patterns/ModalPanels/index.d.ts +6 -0
  125. package/dist/patterns/ModalPanels/styles.d.ts +13 -0
  126. package/dist/patterns/ModalPanels/useModalPanels.d.ts +30 -0
  127. package/dist/patterns/NeedsFixDot/NeedsFixDot.d.ts +16 -0
  128. package/dist/patterns/NeedsFixDot/firstNeedsFixKey.d.ts +18 -0
  129. package/dist/patterns/NeedsFixDot/index.d.ts +4 -0
  130. package/dist/patterns/NeedsFixDot/styles.d.ts +20 -0
  131. package/dist/patterns/Notice/Notice.d.ts +16 -0
  132. package/dist/patterns/Notice/index.d.ts +2 -0
  133. package/dist/patterns/Notice/styles.d.ts +35 -0
  134. package/dist/patterns/Notice/type.d.ts +39 -0
  135. package/dist/patterns/OutcomeView/index.d.ts +1 -1
  136. package/dist/patterns/OutcomeView/types.d.ts +110 -3
  137. package/dist/patterns/PageHeader/PageHeader.d.ts +1 -0
  138. package/dist/patterns/PaginationSummary/PaginationSummary.d.ts +12 -0
  139. package/dist/patterns/PaginationSummary/index.d.ts +1 -1
  140. package/dist/patterns/PaymentSubAmountInput/PaymentSubAmountInput.d.ts +2 -0
  141. package/dist/patterns/PillTabs/PillTabs.d.ts +3 -0
  142. package/dist/patterns/PillTabs/ids.d.ts +9 -0
  143. package/dist/patterns/PillTabs/index.d.ts +3 -0
  144. package/dist/patterns/PillTabs/styles.d.ts +20 -0
  145. package/dist/patterns/PillTabs/types.d.ts +21 -0
  146. package/dist/patterns/{CatalogItemCard → Programs/CatalogItemCard}/type.d.ts +1 -1
  147. package/dist/patterns/{EventDetails → Programs/EventDetails}/EventDetails.d.ts +3 -1
  148. package/dist/patterns/{OfferCard → Programs/OfferCard}/OfferCard.d.ts +1 -1
  149. package/dist/patterns/{OfferCard → Programs/OfferCard}/types.d.ts +7 -0
  150. package/dist/patterns/Programs/ProgramListItem/ProgramListItem.d.ts +17 -0
  151. package/dist/patterns/Programs/ProgramListItem/index.d.ts +2 -0
  152. package/dist/patterns/Programs/index.d.ts +5 -0
  153. package/dist/patterns/ReasonSelect/types.d.ts +1 -0
  154. package/dist/patterns/RecordCard/RecordCard.d.ts +3 -0
  155. package/dist/patterns/RecordCard/index.d.ts +2 -0
  156. package/dist/patterns/RecordCard/styles.d.ts +16 -0
  157. package/dist/patterns/RecordCard/types.d.ts +22 -0
  158. package/dist/patterns/RecordHeader/RecordHeader.d.ts +3 -0
  159. package/dist/patterns/RecordHeader/index.d.ts +2 -0
  160. package/dist/patterns/RecordHeader/styles.d.ts +43 -0
  161. package/dist/patterns/RecordHeader/types.d.ts +30 -0
  162. package/dist/patterns/RecordLayout/RecordLayout.d.ts +3 -0
  163. package/dist/patterns/RecordLayout/index.d.ts +2 -0
  164. package/dist/patterns/RecordLayout/styles.d.ts +8 -0
  165. package/dist/patterns/RecordLayout/types.d.ts +6 -0
  166. package/dist/patterns/RecordTotals/RecordTotals.d.ts +19 -0
  167. package/dist/patterns/RecordTotals/index.d.ts +2 -0
  168. package/dist/patterns/RecordTotals/styles.d.ts +19 -0
  169. package/dist/patterns/RefundMethodCards/RefundMethodCards.d.ts +4 -0
  170. package/dist/patterns/RefundMethodCards/index.d.ts +2 -0
  171. package/dist/patterns/RefundMethodCards/styles.d.ts +59 -0
  172. package/dist/patterns/RefundMethodCards/types.d.ts +72 -0
  173. package/dist/patterns/RefundProgressList/RefundProgressList.d.ts +4 -0
  174. package/dist/patterns/RefundProgressList/index.d.ts +2 -0
  175. package/dist/patterns/RefundProgressList/styles.d.ts +44 -0
  176. package/dist/patterns/RefundProgressList/types.d.ts +37 -0
  177. package/dist/patterns/RelatedRecordList/RelatedRecordList.d.ts +3 -0
  178. package/dist/patterns/RelatedRecordList/index.d.ts +2 -0
  179. package/dist/patterns/RelatedRecordList/styles.d.ts +19 -0
  180. package/dist/patterns/RelatedRecordList/types.d.ts +17 -0
  181. package/dist/patterns/ScrollToLatest/ScrollToLatest.d.ts +18 -0
  182. package/dist/patterns/ScrollToLatest/index.d.ts +2 -0
  183. package/dist/patterns/ScrollToLatest/styles.d.ts +11 -0
  184. package/dist/patterns/ScrollToLatest/types.d.ts +36 -0
  185. package/dist/patterns/SessionExpiredCard/SessionExpiredCard.d.ts +14 -0
  186. package/dist/patterns/SessionExpiredCard/index.d.ts +2 -0
  187. package/dist/patterns/SessionExpiredCard/type.d.ts +6 -0
  188. package/dist/patterns/SplitPaymentSummary/index.d.ts +1 -1
  189. package/dist/patterns/SplitPaymentSummary/types.d.ts +18 -0
  190. package/dist/patterns/StatTiles/StatTiles.d.ts +3 -0
  191. package/dist/patterns/StatTiles/index.d.ts +2 -0
  192. package/dist/patterns/StatTiles/styles.d.ts +8 -0
  193. package/dist/patterns/StatTiles/types.d.ts +12 -0
  194. package/dist/patterns/StatusChip/StatusChip.d.ts +3 -3
  195. package/dist/patterns/StepProgress/StepProgress.d.ts +4 -0
  196. package/dist/patterns/StepProgress/index.d.ts +2 -0
  197. package/dist/patterns/StepProgress/styles.d.ts +29 -0
  198. package/dist/patterns/StepProgress/types.d.ts +43 -0
  199. package/dist/patterns/Summary/components/ActionBar.d.ts +2 -0
  200. package/dist/patterns/Summary/components/GrandTotalRow.d.ts +1 -0
  201. package/dist/patterns/Summary/components/ItemRow.d.ts +1 -0
  202. package/dist/patterns/Summary/components/SummaryBody.d.ts +4 -1
  203. package/dist/patterns/Summary/components/TotalsLineRow.d.ts +3 -2
  204. package/dist/patterns/Summary/types.d.ts +51 -9
  205. package/dist/patterns/TableSkeleton/TableSkeleton.d.ts +1 -0
  206. package/dist/patterns/TileSelect/TileSelect.d.ts +2 -37
  207. package/dist/patterns/TileSelect/index.d.ts +1 -1
  208. package/dist/patterns/TileSelect/styles.d.ts +56 -0
  209. package/dist/patterns/TileSelect/types.d.ts +140 -0
  210. package/dist/patterns/TimeField/TimeField.d.ts +6 -0
  211. package/dist/patterns/TimeField/index.d.ts +3 -0
  212. package/dist/patterns/TimeField/time.d.ts +40 -0
  213. package/dist/patterns/TimeField/types.d.ts +77 -0
  214. package/dist/patterns/ToolbarButton/ToolbarButton.d.ts +2 -0
  215. package/dist/patterns/UnderlineTabs/UnderlineTabs.d.ts +40 -1
  216. package/dist/patterns/UnderlineTabs/index.d.ts +1 -1
  217. package/dist/patterns/UnderlineTabs/styles.d.ts +21 -0
  218. package/dist/patterns/VerticalSteps/StepPager.d.ts +6 -0
  219. package/dist/patterns/VerticalSteps/StepsReadiness.d.ts +15 -0
  220. package/dist/patterns/VerticalSteps/VerticalSteps.d.ts +6 -0
  221. package/dist/patterns/VerticalSteps/index.d.ts +4 -0
  222. package/dist/patterns/VerticalSteps/styles.d.ts +54 -0
  223. package/dist/patterns/VerticalSteps/types.d.ts +100 -0
  224. package/dist/patterns/WizardShell/index.d.ts +1 -1
  225. package/dist/patterns/WizardShell/types.d.ts +9 -1
  226. package/dist/patterns/grid-columns.d.ts +1 -1
  227. package/dist/patterns/index.d.ts +79 -19
  228. package/dist/patterns/shared/hasContent.d.ts +2 -0
  229. package/dist/patterns/shared/index.d.ts +1 -0
  230. package/dist/patterns/shared/motion.d.ts +6 -0
  231. package/dist/patterns/shared/recordTone.d.ts +9 -0
  232. package/dist/patterns/shared/rem.d.ts +4 -0
  233. package/dist/patterns/shared/useContainerWidth.d.ts +6 -0
  234. package/dist/patterns/shared/useDecimalDraft.d.ts +33 -0
  235. package/dist/patterns/shared/usePrefillEdits.d.ts +7 -0
  236. package/dist/providers/DensityProvider.d.ts +7 -0
  237. package/dist/providers/HeroUIProvider.d.ts +20 -1
  238. package/dist/providers/ToastProvider.d.ts +21 -0
  239. package/dist/providers/close-label-context.d.ts +18 -0
  240. package/dist/providers/density.d.ts +17 -0
  241. package/dist/providers/index.d.ts +6 -0
  242. package/dist/tailwind/index.cjs +107 -5
  243. package/dist/tailwind/index.d.ts +61 -0
  244. package/dist/tailwind/index.mjs +104 -5
  245. package/dist/test/ReducedMotion.d.ts +4 -0
  246. package/dist/test/RootFontSize.d.ts +5 -0
  247. package/dist/test/backdrop.d.ts +12 -0
  248. package/dist/test/container-width.d.ts +14 -0
  249. package/dist/test/contrast.d.ts +1 -0
  250. package/dist/test/px-class-names.d.ts +1 -0
  251. package/dist/test/px-classes.d.ts +3 -0
  252. package/dist/test/reducedMotionCss.d.ts +40 -0
  253. package/dist/test/root-font-size.d.ts +8 -0
  254. package/dist/tokens/assistant-surface.d.ts +66 -0
  255. package/dist/tokens/index.d.ts +2 -0
  256. package/dist/tokens/pos-surface.d.ts +23 -4
  257. package/package.json +22 -3
  258. /package/dist/patterns/{CatalogItemCard → Programs/CatalogItemCard}/CatalogItemCard.d.ts +0 -0
  259. /package/dist/patterns/{CatalogItemCard → Programs/CatalogItemCard}/index.d.ts +0 -0
  260. /package/dist/patterns/{EventDetails → Programs/EventDetails}/index.d.ts +0 -0
  261. /package/dist/patterns/{OfferCard → Programs/OfferCard}/examples/CustomQuantitySelectorExample.d.ts +0 -0
  262. /package/dist/patterns/{OfferCard → Programs/OfferCard}/examples/ListWithEurosCurrencyExample.d.ts +0 -0
  263. /package/dist/patterns/{OfferCard → Programs/OfferCard}/examples/ListWithoutAnimationExample.d.ts +0 -0
  264. /package/dist/patterns/{OfferCard → Programs/OfferCard}/examples/index.d.ts +0 -0
  265. /package/dist/patterns/{OfferCard → Programs/OfferCard}/index.d.ts +0 -0
  266. /package/dist/patterns/{OfferCard → Programs/OfferCard}/utils/animations.d.ts +0 -0
  267. /package/dist/patterns/{OfferCard → Programs/OfferCard}/utils/currency.d.ts +0 -0
  268. /package/dist/patterns/{OfferCard → Programs/OfferCard}/utils/index.d.ts +0 -0
  269. /package/dist/patterns/{OfferCard → Programs/OfferCard}/utils/offers.d.ts +0 -0
  270. /package/dist/patterns/{OfferCard → Programs/OfferCard}/variants/OfferCardEmpty.d.ts +0 -0
  271. /package/dist/patterns/{OfferCard → Programs/OfferCard}/variants/OfferCardError.d.ts +0 -0
  272. /package/dist/patterns/{OfferCard → Programs/OfferCard}/variants/OfferCardList.d.ts +0 -0
  273. /package/dist/patterns/{OfferCard → Programs/OfferCard}/variants/OfferCardSkeleton.d.ts +0 -0
  274. /package/dist/patterns/{OfferCard → Programs/OfferCard}/variants/index.d.ts +0 -0
  275. /package/dist/patterns/{SessionTimeline → Programs/SessionTimeline}/SessionTimeline.d.ts +0 -0
  276. /package/dist/patterns/{SessionTimeline → Programs/SessionTimeline}/index.d.ts +0 -0
  277. /package/dist/patterns/{SessionTimeline → Programs/SessionTimeline}/type.d.ts +0 -0
@@ -0,0 +1,17 @@
1
+ import { JSX } from 'react';
2
+ import { AssistantMessageProps } from './types';
3
+ /**
4
+ * One turn of a conversation with an assistant: the person's on the right in
5
+ * a neutral bubble, the assistant's on the left at full width under a small
6
+ * mark, with no bubble of its own. Content, copy and controls all come in as props; the pattern renders
7
+ * whatever `children` it is given (plain text or a rendered answer).
8
+ *
9
+ * Each turn is an `<article>` named by its author, so a screen reader can move
10
+ * turn by turn. It announces nothing on its own: run-state announcements
11
+ * belong to `AssistantNotice`.
12
+ */
13
+ export declare function AssistantMessage({ author, authorLabel, children, status, statusLabel, meta, actions, icon, className, classNames, 'data-testid': dataTestId, }: AssistantMessageProps): JSX.Element;
14
+ export declare namespace AssistantMessage {
15
+ var displayName: string;
16
+ }
17
+ export default AssistantMessage;
@@ -0,0 +1,2 @@
1
+ export { AssistantMessage } from './AssistantMessage';
2
+ export type { AssistantMessageAuthor, AssistantMessageBaseProps, AssistantMessageClassNames, AssistantMessageProps, AssistantMessageStatus, AssistantMessageStatusLabel, AssistantMessageStatusProps, } from './types';
@@ -0,0 +1,45 @@
1
+ import { AssistantMessageStatus } from './types';
2
+ /**
3
+ * Every slot class of `AssistantMessage`.
4
+ *
5
+ * Colours are HeroUI semantic tokens (they flip under `.dark`) plus the `ai-*`
6
+ * palette (which flips with them). No `bg-white`: the assistant pieces carry
7
+ * their own dark values because the DS has no dark theme.
8
+ *
9
+ * The assistant's turn paints nothing: it is full width with no bubble, so it
10
+ * shows whatever surface the app puts it on (a card, an inset box, a
11
+ * translucent dark panel). Painting `ai-assistant-bubble` edge to edge with no
12
+ * padding made a bare block on any surface but HeroUI `content1`.
13
+ *
14
+ * Secondary text is `default-500` on a plain card and `default-600` inside a
15
+ * fill: default-500 measures 4.40:1 on the light user bubble, under AA. See
16
+ * `src/tokens/__test__/assistant-surface.test.ts`.
17
+ */
18
+ export declare const assistantMessageClass: {
19
+ readonly base: "flex w-full min-w-0 flex-col gap-1.5";
20
+ readonly baseUser: "items-end";
21
+ readonly baseAssistant: "items-start";
22
+ readonly header: "flex min-w-0 max-w-full flex-wrap items-center gap-x-2 gap-y-0.5";
23
+ readonly mark: "inline-flex size-6 flex-none items-center justify-center rounded-full bg-ai-fill text-ai-accent";
24
+ readonly author: "min-w-0 text-sm font-semibold text-ai-accent [overflow-wrap:anywhere]";
25
+ readonly meta: "min-w-0 text-xs tabular-nums text-default-500 [overflow-wrap:anywhere]";
26
+ readonly body: "min-w-0 text-sm leading-relaxed text-foreground [overflow-wrap:anywhere]";
27
+ readonly bodyUser: "max-w-[85%] rounded-2xl rounded-br-md bg-ai-user-bubble px-4 py-2.5";
28
+ readonly bodyAssistant: "w-full";
29
+ /** A plain string keeps the line breaks the person typed. */
30
+ readonly plain: "whitespace-pre-wrap";
31
+ readonly status: "m-0 flex min-w-0 items-center gap-1.5 text-xs font-medium [overflow-wrap:anywhere]";
32
+ /**
33
+ * The status mark's own 14px box. Without words it is all a sighted reader
34
+ * sees, so it keeps its place before Iconify has loaded the icon.
35
+ */
36
+ readonly statusIcon: "inline-flex size-3.5 flex-none";
37
+ readonly actions: "flex flex-wrap items-center gap-1";
38
+ /** The person's name, for screen readers only. */
39
+ readonly userLabel: "sr-only";
40
+ /** The default status word when `statusLabel` is empty, for screen readers only: the icon shows it. */
41
+ readonly statusFallback: "sr-only";
42
+ };
43
+ export declare const assistantMessageStatusClass: Record<Exclude<AssistantMessageStatus, 'complete'>, string>;
44
+ export declare const ASSISTANT_MESSAGE_STATUS_ICON: Record<Exclude<AssistantMessageStatus, 'complete'>, string>;
45
+ export declare const ASSISTANT_MESSAGE_DEFAULT_ICON = "solar:stars-minimalistic-linear";
@@ -0,0 +1,84 @@
1
+ import { ReactNode } from 'react';
2
+ /** Who wrote the turn. */
3
+ export type AssistantMessageAuthor = 'user' | 'assistant';
4
+ /**
5
+ * How the turn ended. `stopped` means the person stopped it; `error` means
6
+ * it failed. Either way the content that arrived is still shown.
7
+ */
8
+ export type AssistantMessageStatus = 'complete' | 'stopped' | 'error';
9
+ /** Extra classes per slot, merged after the pattern's own. */
10
+ export interface AssistantMessageClassNames {
11
+ /** The `<article>`. */
12
+ base?: string;
13
+ /** The row with the mark, the name and `meta`. */
14
+ header?: string;
15
+ /** The content. Add padding and `bg-ai-assistant-bubble` here to draw the assistant's turn as a bubble. */
16
+ body?: string;
17
+ /** The status line of a stopped or failed turn. */
18
+ status?: string;
19
+ /** The secondary line. */
20
+ meta?: string;
21
+ /** The controls under the turn. */
22
+ actions?: string;
23
+ }
24
+ /** A label that says something: text or an element, never empty or absent. */
25
+ export type AssistantMessageStatusLabel = Exclude<ReactNode, null | undefined | boolean>;
26
+ /**
27
+ * A stopped or failed turn must say so in words: without a label it would
28
+ * read as a finished answer, to sighted people and screen readers alike. The
29
+ * union makes the label required whenever `status` is not `complete`, and
30
+ * still accepts a `status` computed at runtime as long as a label comes with it.
31
+ *
32
+ * The type is not the only guard: an empty string, an `undefined` from an
33
+ * unchecked lookup, or a wrapper that loses the union all reach the component
34
+ * without words, so it still draws the status icon with a default word for
35
+ * screen readers ("Stopped" / "Failed").
36
+ *
37
+ * A wrapper keeps the requirement by omitting from the base props, not from
38
+ * the union: `Omit<AssistantMessageBaseProps, 'author'> & AssistantMessageStatusProps`.
39
+ */
40
+ export type AssistantMessageStatusProps = {
41
+ /** Defaults to `complete`. */
42
+ status?: 'complete';
43
+ /** Ignored on a complete turn. */
44
+ statusLabel?: ReactNode;
45
+ } | {
46
+ /** The person stopped the turn, or it failed. The content that arrived is still shown. */
47
+ status: 'stopped' | 'error';
48
+ /** Shown under the content, e.g. "Stopped by you". Required: it is the only text that says so. */
49
+ statusLabel: AssistantMessageStatusLabel;
50
+ };
51
+ export interface AssistantMessageBaseProps {
52
+ /**
53
+ * Who wrote the turn. Named `author`, not `role`, because `role` on a DS
54
+ * pattern means the ARIA role (`FeedbackState`).
55
+ */
56
+ author: AssistantMessageAuthor;
57
+ /**
58
+ * The turn's accessible name, e.g. "You" or "Assistant". Shown next to the
59
+ * assistant mark; on the person's own turn it is read by screen readers
60
+ * only.
61
+ */
62
+ authorLabel: string;
63
+ /**
64
+ * The turn's content. A plain string keeps its line breaks. Empty (a turn
65
+ * that failed before any text arrived), no body is drawn.
66
+ */
67
+ children?: ReactNode;
68
+ /** Small secondary line: a time, a duration. */
69
+ meta?: ReactNode;
70
+ /** Controls under the turn (copy, retry). Rendered as given. */
71
+ actions?: ReactNode;
72
+ /**
73
+ * Iconify name of the assistant mark, or `false` for none. Defaults to a
74
+ * sparkle. Ignored on the person's own turn.
75
+ */
76
+ icon?: string | false;
77
+ /** Classes on the root `<article>`. */
78
+ className?: string;
79
+ /** Classes per slot. */
80
+ classNames?: AssistantMessageClassNames;
81
+ /** Test id of the root; its parts add suffixes (see Test ids in the docs). Defaults to `assistant-message`. */
82
+ 'data-testid'?: string;
83
+ }
84
+ export type AssistantMessageProps = AssistantMessageBaseProps & AssistantMessageStatusProps;
@@ -0,0 +1,18 @@
1
+ import { JSX } from 'react';
2
+ import { AssistantNoticeProps } from './types';
3
+ /**
4
+ * The run state of an assistant panel: working, nothing yet, failed, a limit,
5
+ * offline, no access, or a plain note. A HeroUI `Alert` underneath, with one
6
+ * kind per state and every word supplied by the caller.
7
+ *
8
+ * Announcements follow `FeedbackState`: `error` is `role="alert"`
9
+ * (assertive), every other kind `role="status"` (polite). The live region
10
+ * wraps the title and description only; the clock, the action and the
11
+ * details stay outside it, so a ticking clock or revealing details is not
12
+ * announced.
13
+ */
14
+ export declare function AssistantNotice({ kind, title, description, elapsed, action, details, detailsLabel, icon, role, ariaLive, className, classNames, 'data-testid': dataTestId, }: AssistantNoticeProps): JSX.Element;
15
+ export declare namespace AssistantNotice {
16
+ var displayName: string;
17
+ }
18
+ export default AssistantNotice;
@@ -0,0 +1,2 @@
1
+ export { AssistantNotice } from './AssistantNotice';
2
+ export type { AssistantNoticeClassNames, AssistantNoticeKind, AssistantNoticeProps } from './types';
@@ -0,0 +1,49 @@
1
+ import { AssistantNoticeKind } from './types';
2
+ type AlertColor = 'default' | 'danger' | 'warning';
3
+ interface KindStyle {
4
+ /** HeroUI `Alert` colour: its flat fill for the kind. */
5
+ color: AlertColor;
6
+ /** Extra base classes. `dark:` repeats are needed to beat Alert's own `dark:bg-*`. */
7
+ base: string;
8
+ title: string;
9
+ description: string;
10
+ icon: string;
11
+ }
12
+ export declare const assistantNoticeKindStyle: Record<AssistantNoticeKind, KindStyle>;
13
+ export declare const assistantNoticeClass: {
14
+ /** Alert centres a body with no title prop; the copy here is children, so pin it to the top-left. */
15
+ readonly base: "items-start gap-x-3 px-4 py-3";
16
+ readonly mainWrapper: "ms-0 min-h-0 min-w-0 items-start justify-start gap-0.5";
17
+ readonly icon: "mt-0.5 inline-flex size-5 flex-none items-center justify-center";
18
+ /**
19
+ * The live region: title and description only. The clock, the action and
20
+ * the details sit outside it, so a ticking clock or opening "Details" on
21
+ * an error does not re-announce anything.
22
+ */
23
+ readonly live: "col-span-full row-start-1 grid min-w-0 grid-cols-subgrid gap-y-0.5";
24
+ /**
25
+ * Title, description and clock. The live region spans every column as a
26
+ * subgrid (title in the first, description across all), and the clock
27
+ * sits outside it, so a ticking clock never changes the region. Without a
28
+ * clock there is one column, and the title has the full width.
29
+ */
30
+ readonly text: "grid w-full min-w-0 grid-cols-1 items-baseline gap-x-2";
31
+ /**
32
+ * With a clock, two columns: the title, then the clock on the title's
33
+ * baseline, in the second column of the first row. Both the region and the
34
+ * clock have an explicit row, or auto-placement would move the region below
35
+ * the clock. A title too long for its line wraps beside the clock.
36
+ */
37
+ readonly textWithClock: "grid-cols-[auto_1fr]";
38
+ readonly title: "col-start-1 m-0 min-w-0 justify-self-start text-sm font-medium [overflow-wrap:anywhere]";
39
+ readonly elapsed: "col-start-2 row-start-1 justify-self-start whitespace-nowrap text-sm tabular-nums";
40
+ readonly description: "col-span-full m-0 min-w-0 text-sm [overflow-wrap:anywhere]";
41
+ readonly action: "mt-2 flex flex-wrap items-center gap-2";
42
+ readonly detailsToggle: "-ms-1.5 h-7 min-w-0 gap-1 px-1.5 text-xs font-medium text-current";
43
+ readonly detailsWrapper: "w-full min-w-0";
44
+ readonly detailsChevron: "transition-transform motion-reduce:transition-none [html[data-pos-reduce-motion=true]_&]:transition-none";
45
+ readonly detailsChevronOpen: "rotate-180";
46
+ readonly details: "mt-1 max-h-48 overflow-auto whitespace-pre-wrap rounded-md bg-content1 p-2 font-mono text-xs text-foreground [overflow-wrap:anywhere]";
47
+ };
48
+ export declare const ASSISTANT_NOTICE_DEFAULT_ROLE: Record<AssistantNoticeKind, 'alert' | 'status'>;
49
+ export {};
@@ -0,0 +1,58 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * The run states an assistant panel shows. The caller maps its own errors to
4
+ * these; the pattern knows nothing about where they came from.
5
+ *
6
+ * - `thinking`: a turn is running. Pair it with `elapsed`.
7
+ * - `empty`: nothing asked yet.
8
+ * - `error`: the turn failed.
9
+ * - `caution`: a limit was reached (rate, daily, per-turn); no retry now.
10
+ * - `offline`: the service or the connection is down.
11
+ * - `blocked`: the person cannot use the assistant (no access, not set up).
12
+ * - `info`: anything else worth saying.
13
+ */
14
+ export type AssistantNoticeKind = 'thinking' | 'empty' | 'error' | 'caution' | 'offline' | 'blocked' | 'info';
15
+ /** Extra classes per slot, merged after the pattern's own. */
16
+ export interface AssistantNoticeClassNames {
17
+ /** The notice. */
18
+ base?: string;
19
+ /** The title. */
20
+ title?: string;
21
+ /** The description. */
22
+ description?: string;
23
+ /** The wrapper of `action`. */
24
+ action?: string;
25
+ /** The revealed details. */
26
+ details?: string;
27
+ }
28
+ export interface AssistantNoticeProps {
29
+ /** The run state. It picks the icon, the tone and the default announcement. */
30
+ kind: AssistantNoticeKind;
31
+ /** What is happening, in a few words, e.g. "Working…". Announced once. */
32
+ title: ReactNode;
33
+ /** More detail under the title, e.g. when they can ask again. */
34
+ description?: ReactNode;
35
+ /**
36
+ * A running clock next to the title ("12 s"). Hidden from screen readers so
37
+ * a ticking value is not announced every second; they hear the title once.
38
+ */
39
+ elapsed?: ReactNode;
40
+ /** A control under the text (Retry, Sign in). Rendered as given. */
41
+ action?: ReactNode;
42
+ /** Technical detail, revealed by a "Details" toggle. */
43
+ details?: ReactNode;
44
+ /** Name of the details toggle. Defaults to "Details". */
45
+ detailsLabel?: string;
46
+ /** Iconify name to replace the kind's icon, or `false` for none. */
47
+ icon?: string | false;
48
+ /** Defaults to `alert` for `error`, `status` otherwise. */
49
+ role?: 'alert' | 'status';
50
+ /** Defaults to `assertive` for `error`, `polite` otherwise. */
51
+ ariaLive?: 'polite' | 'assertive' | 'off';
52
+ /** Classes on the notice. */
53
+ className?: string;
54
+ /** Classes per slot. */
55
+ classNames?: AssistantNoticeClassNames;
56
+ /** Test id of the root; its parts add suffixes (see Test ids in the docs). Defaults to `assistant-notice`. */
57
+ 'data-testid'?: string;
58
+ }
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ import { CardListProps } from './types';
3
+ export declare const CardList: React.FC<CardListProps>;
@@ -0,0 +1,2 @@
1
+ export { CardList } from './CardList';
2
+ export type { CardListProps, CardListItem } from './types';
@@ -0,0 +1,20 @@
1
+ export declare const cardListClass: {
2
+ readonly base: "w-full";
3
+ readonly list: "m-0 list-none p-0";
4
+ readonly item: "relative border-b border-pos-hair last:border-b-0";
5
+ readonly card: "block w-full px-4 py-[0.875rem] text-left";
6
+ readonly cardInteractive: "cursor-pointer outline-none transition-colors hover:bg-default-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-primary motion-reduce:transition-none [html[data-pos-reduce-motion=true]_&]:transition-none";
7
+ readonly headline: "flex items-baseline gap-2.5";
8
+ readonly headlineWithActions: "pr-[3.25rem]";
9
+ readonly title: "min-w-0 text-[0.90625rem] font-semibold text-primary [overflow-wrap:anywhere]";
10
+ readonly amount: "ml-auto shrink-0 whitespace-nowrap text-[0.9375rem] font-bold tabular-nums text-default-900";
11
+ readonly actions: "absolute right-4 top-[0.1875rem] z-[1]";
12
+ readonly chips: "mt-[0.5625rem] flex flex-wrap gap-1.5";
13
+ readonly chipsLine: "mt-[0.5625rem] flex items-center gap-2.5";
14
+ readonly chipsInline: "flex min-w-0 flex-wrap gap-1.5";
15
+ readonly rows: "mt-[0.5625rem] block";
16
+ readonly row: "flex items-baseline gap-3 py-[0.1875rem] text-[0.8125rem]";
17
+ readonly rowLabel: "shrink-0 text-default-500";
18
+ readonly rowValue: "ml-auto min-w-0 text-right text-default-700 [overflow-wrap:anywhere]";
19
+ readonly skeletonRow: "border-b border-pos-hair p-4 last:border-b-0";
20
+ };
@@ -0,0 +1,20 @@
1
+ import { ReactNode } from 'react';
2
+ export interface CardListItem {
3
+ id: string;
4
+ title: ReactNode;
5
+ amount?: ReactNode;
6
+ chips?: ReactNode;
7
+ rows?: Array<{
8
+ label: string;
9
+ value: ReactNode;
10
+ }>;
11
+ actions?: ReactNode;
12
+ }
13
+ export interface CardListProps {
14
+ items: CardListItem[];
15
+ ariaLabel: string;
16
+ onSelect?: (id: string) => void;
17
+ loading?: boolean;
18
+ skeletonCount?: number;
19
+ 'data-testid'?: string;
20
+ }
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ export type CardStackLayout = 'stack' | 'grid';
3
+ export interface CardStackProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ layout?: CardStackLayout;
5
+ 'data-testid'?: string;
6
+ }
7
+ export declare const CardStack: React.FC<CardStackProps>;
@@ -0,0 +1,2 @@
1
+ export { CardStack } from './CardStack';
2
+ export type { CardStackProps, CardStackLayout } from './CardStack';
@@ -0,0 +1,2 @@
1
+ import { CardStackLayout } from './CardStack';
2
+ export declare const cardStackClass: Record<CardStackLayout, string>;
@@ -29,6 +29,10 @@ export interface CashTenderLabels {
29
29
  * `{due}` is replaced with the formatted due amount.
30
30
  */
31
31
  insufficientMessageTemplate?: string;
32
+ exactAmountLabel?: string;
33
+ exactAmountAriaTemplate?: string;
34
+ quickAmountsLabel?: string;
35
+ quickAmountAriaTemplate?: string;
32
36
  }
33
37
  export interface CashTenderFormProps {
34
38
  /**
@@ -70,6 +74,8 @@ export interface CashTenderFormProps {
70
74
  * the guard is value-based. Omit for no cap.
71
75
  */
72
76
  maxAmount?: number;
77
+ quickAmounts?: readonly number[];
78
+ showExactAmount?: boolean;
73
79
  /**
74
80
  * Auto-focus the Cash Received field when this component mounts.
75
81
  * Pair with `key={...}` from the host to re-trigger focus on every
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ import { SignedAmountTone } from '../shared/recordTone';
3
+ export type CellTextVariant = 'text' | 'reference' | 'amount';
4
+ export interface CellTextProps {
5
+ variant?: CellTextVariant;
6
+ tone?: SignedAmountTone;
7
+ secondary?: React.ReactNode;
8
+ children: React.ReactNode;
9
+ 'data-testid'?: string;
10
+ }
11
+ export declare const CellText: React.FC<CellTextProps>;
12
+ export interface ChipStackProps {
13
+ children: React.ReactNode;
14
+ 'data-testid'?: string;
15
+ }
16
+ export declare const ChipStack: React.FC<ChipStackProps>;
@@ -0,0 +1,2 @@
1
+ export { CellText, ChipStack } from './CellText';
2
+ export type { CellTextProps, CellTextVariant, ChipStackProps } from './CellText';
@@ -0,0 +1,7 @@
1
+ import { CellTextVariant } from './CellText';
2
+ export declare const cellTextClass: {
3
+ readonly base: "whitespace-nowrap text-[0.875rem]";
4
+ readonly secondary: "text-default-500";
5
+ readonly chipStack: "inline-flex flex-col items-start gap-[0.3125rem]";
6
+ };
7
+ export declare const cellTextVariantClass: Record<CellTextVariant, string>;
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ import { DiscardGuardController } from './useDiscardGuard';
3
+ /** @internal Used by `ModalPanels` to make each panel its own guard scope. */
4
+ export declare const DiscardGuardScope: React.FC<{
5
+ scope: string;
6
+ children: React.ReactNode;
7
+ }>;
8
+ export interface DiscardGuardProps {
9
+ /** The controller from `useDiscardGuard()`. */
10
+ guard: DiscardGuardController;
11
+ children: React.ReactNode;
12
+ /** Confirmation heading. Default `'Discard changes?'`. */
13
+ title?: string;
14
+ /** What is lost by confirming. Default `'What you entered will be lost.'`. */
15
+ description?: React.ReactNode;
16
+ /** Confirm (discard) label. Default `'Discard'`. */
17
+ confirmLabel?: string;
18
+ /** Label of the action that returns to the form. Default `'Keep editing'`. */
19
+ keepEditingLabel?: string;
20
+ /** Root test id of the confirmation; derives `-confirm` and `-dismiss`. Default `'discard-guard'`. */
21
+ 'data-testid'?: string;
22
+ }
23
+ export declare const DiscardGuard: React.FC<DiscardGuardProps>;
@@ -0,0 +1,25 @@
1
+ import { DirtyReport, Leave } from './useDiscardGuard';
2
+ export interface DiscardGuardContextValue {
3
+ guardScope: (scope: string | null, leave: Leave) => void;
4
+ bypass: (leave: Leave) => void;
5
+ report: (id: string, report: DirtyReport) => void;
6
+ unreport: (id: string) => void;
7
+ }
8
+ export declare const DiscardGuardContext: import('react').Context<DiscardGuardContextValue>;
9
+ /** The scope a reporter or a Back press belongs to. `ModalPanels` sets one per panel. */
10
+ export declare const DiscardScopeContext: import('react').Context<string | null>;
11
+ /**
12
+ * Call from a form while it is mounted. Unmounting withdraws the report, so a
13
+ * form that is gone never holds an exit hostage.
14
+ */
15
+ export declare function useReportUnsavedChanges(isDirty: boolean): void;
16
+ export interface DiscardGuardActions {
17
+ /** Leave the whole surface: asks when any form is dirty. */
18
+ guard: (leave: Leave) => void;
19
+ /** Leave without asking — the input was saved. */
20
+ bypass: (leave: Leave) => void;
21
+ }
22
+ /** The guard's exits, for components rendered inside `<DiscardGuard>`. */
23
+ export declare function useDiscardGuardActions(): DiscardGuardActions;
24
+ /** @internal Back inside a panel: asks only when that panel holds unsaved input. */
25
+ export declare function useScopedDiscardGuard(): (leave: Leave) => void;
@@ -0,0 +1,6 @@
1
+ export { DiscardGuard } from './DiscardGuard';
2
+ export type { DiscardGuardProps } from './DiscardGuard';
3
+ export { useDiscardGuard } from './useDiscardGuard';
4
+ export type { DiscardGuardController } from './useDiscardGuard';
5
+ export { useDiscardGuardActions, useReportUnsavedChanges } from './context';
6
+ export type { DiscardGuardActions } from './context';
@@ -0,0 +1,38 @@
1
+ export type Leave = () => void;
2
+ /** One mounted reporter: which scope (panel) it belongs to and whether it holds unsaved input. */
3
+ export interface DirtyReport {
4
+ scope: string | null;
5
+ isDirty: boolean;
6
+ }
7
+ interface PendingLeave {
8
+ leave: Leave;
9
+ }
10
+ /** Wiring `<DiscardGuard>` reads; not part of the consumer contract. */
11
+ interface DiscardGuardInternals {
12
+ pending: PendingLeave | null;
13
+ /** Bumped on confirm so the dialog unmounts in the same commit as the exit (see the file header). */
14
+ confirmKey: number;
15
+ confirm: () => void;
16
+ keepEditing: () => void;
17
+ report: (id: string, report: DirtyReport) => void;
18
+ unreport: (id: string) => void;
19
+ guardScope: (scope: string | null, leave: Leave) => void;
20
+ }
21
+ export interface DiscardGuardController {
22
+ /** True while any mounted form reports unsaved input. */
23
+ readonly isDirty: boolean;
24
+ /** Runs `leave` now, or after the operator confirms when a form is dirty. */
25
+ guard: (leave: Leave) => void;
26
+ /** Runs `leave` without asking — for exits that keep the input, like a successful save. */
27
+ bypass: (leave: Leave) => void;
28
+ /**
29
+ * Wraps a modal's `onOpenChange` so its close button, Escape and outside
30
+ * click go through `guard`. Opening passes straight through.
31
+ */
32
+ guardOpenChange: (onOpenChange: (open: boolean) => void) => (open: boolean) => void;
33
+ /** @internal Read by `<DiscardGuard>`. */
34
+ readonly internals: DiscardGuardInternals;
35
+ }
36
+ /** Creates the guard. Call it in the component that owns the modal. */
37
+ export declare function useDiscardGuard(): DiscardGuardController;
38
+ export {};
@@ -5,5 +5,5 @@
5
5
  * Ensures exclusive selection (preset OR custom).
6
6
  */
7
7
  export { DonationAmounts } from './DonationAmounts';
8
- export type { DonationAmount, SelectedDonation, DonationLabels, DonationAmountsProps } from './types';
8
+ export type { DonationAmount, SelectedDonation, DonationLabels, DonationAmountsProps, DonationAmountsVariant, DonationAmountsCustomAmountPlacement, } from './types';
9
9
  export { formatCurrency, parseCurrency } from './utils/currency';
@@ -0,0 +1,51 @@
1
+ import { DonationAmountsProps, DonationAmountsVariant } from './types';
2
+ type TiledVariant = Exclude<DonationAmountsVariant, 'pill'>;
3
+ type FieldSize = NonNullable<DonationAmountsProps['size']>;
4
+ interface VariantSlots {
5
+ root: string;
6
+ title: string;
7
+ eyebrow: string;
8
+ caption: string;
9
+ grid: string;
10
+ preset: string;
11
+ presetIdle: string;
12
+ presetSelected: string;
13
+ amount: string;
14
+ amountSelected: string;
15
+ sublabel: string;
16
+ customLabel: string;
17
+ inputBase: string;
18
+ inputWrapper: string;
19
+ inputWrapperActive: string;
20
+ input: string;
21
+ }
22
+ export declare const donationAmountsSlots: Record<TiledVariant, VariantSlots>;
23
+ /**
24
+ * `customAmountPlacement="inline"` on `tile`: the Quick entry amount row
25
+ * (`Main.dc.html`, `QMDonation.dc.html`), merged over the `tile` slots.
26
+ *
27
+ * One wrapping flex row instead of the grid: tiles `flex: 1 1 4.5rem`, the
28
+ * field `flex: 2 1 10rem`, 8px apart, as the mockup lays them out. Tiles and
29
+ * field are both the mockup's 3rem (`min-h-12` drops the tile's own padding
30
+ * height, `h-12` the field's `size` height), so the row lines up. The field
31
+ * keeps the `tile` hairline, radius, padding and focus ring; its digits are
32
+ * the mockup's 15px and the symbol beside them 14px in the neutral tone.
33
+ */
34
+ export declare const donationAmountsInline: {
35
+ row: string;
36
+ preset: string;
37
+ field: string;
38
+ inputWrapper: string;
39
+ input: string;
40
+ affix: string;
41
+ };
42
+ /**
43
+ * What `size` changes in `tile` and `pos`: the custom field's height and text.
44
+ * `md` is the mockup's field (38px in `tile`, 40px in `pos`); `sm` and `lg`
45
+ * are HeroUI's 32px and 48px fields. The Add button takes `size` directly.
46
+ */
47
+ export declare const donationAmountsFieldSize: Record<TiledVariant, Record<FieldSize, {
48
+ wrapper: string;
49
+ input: string;
50
+ }>>;
51
+ export {};