@transferwise/components 0.0.0-experimental-c54e90a → 0.0.0-experimental-e611dd1

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 (123) hide show
  1. package/build/common/hooks/useResizeObserver.js +3 -3
  2. package/build/common/hooks/useResizeObserver.js.map +1 -1
  3. package/build/common/hooks/useResizeObserver.mjs +3 -3
  4. package/build/common/hooks/useResizeObserver.mjs.map +1 -1
  5. package/build/field/Field.js +2 -3
  6. package/build/field/Field.js.map +1 -1
  7. package/build/field/Field.mjs +2 -3
  8. package/build/field/Field.mjs.map +1 -1
  9. package/build/i18n/en.json +0 -2
  10. package/build/i18n/en.json.js +0 -2
  11. package/build/i18n/en.json.js.map +1 -1
  12. package/build/i18n/en.json.mjs +0 -2
  13. package/build/i18n/en.json.mjs.map +1 -1
  14. package/build/index.js +0 -2
  15. package/build/index.js.map +1 -1
  16. package/build/index.mjs +0 -1
  17. package/build/index.mjs.map +1 -1
  18. package/build/listItem/Prompt/ListItemPrompt.js +2 -3
  19. package/build/listItem/Prompt/ListItemPrompt.js.map +1 -1
  20. package/build/listItem/Prompt/ListItemPrompt.mjs +2 -3
  21. package/build/listItem/Prompt/ListItemPrompt.mjs.map +1 -1
  22. package/build/main.css +29 -192
  23. package/build/prompt/ActionPrompt/ActionPrompt.js +40 -8
  24. package/build/prompt/ActionPrompt/ActionPrompt.js.map +1 -1
  25. package/build/prompt/ActionPrompt/ActionPrompt.mjs +40 -8
  26. package/build/prompt/ActionPrompt/ActionPrompt.mjs.map +1 -1
  27. package/build/prompt/PrimitivePrompt/PrimitivePrompt.js +4 -11
  28. package/build/prompt/PrimitivePrompt/PrimitivePrompt.js.map +1 -1
  29. package/build/prompt/PrimitivePrompt/PrimitivePrompt.mjs +4 -11
  30. package/build/prompt/PrimitivePrompt/PrimitivePrompt.mjs.map +1 -1
  31. package/build/styles/main.css +29 -192
  32. package/build/table/Table.js +5 -5
  33. package/build/table/Table.js.map +1 -1
  34. package/build/table/Table.mjs +5 -5
  35. package/build/table/Table.mjs.map +1 -1
  36. package/build/typeahead/Typeahead.js +2 -3
  37. package/build/typeahead/Typeahead.js.map +1 -1
  38. package/build/typeahead/Typeahead.mjs +2 -3
  39. package/build/typeahead/Typeahead.mjs.map +1 -1
  40. package/build/types/common/hooks/useResizeObserver.d.ts +1 -1
  41. package/build/types/common/hooks/useResizeObserver.d.ts.map +1 -1
  42. package/build/types/index.d.ts +2 -2
  43. package/build/types/index.d.ts.map +1 -1
  44. package/build/types/prompt/ActionPrompt/ActionPrompt.d.ts +11 -2
  45. package/build/types/prompt/ActionPrompt/ActionPrompt.d.ts.map +1 -1
  46. package/build/types/prompt/PrimitivePrompt/PrimitivePrompt.d.ts +3 -35
  47. package/build/types/prompt/PrimitivePrompt/PrimitivePrompt.d.ts.map +1 -1
  48. package/build/types/prompt/index.d.ts +0 -2
  49. package/build/types/prompt/index.d.ts.map +1 -1
  50. package/build/types/test-utils/index.d.ts +0 -4
  51. package/build/types/test-utils/index.d.ts.map +1 -1
  52. package/package.json +2 -2
  53. package/src/common/bottomSheet/BottomSheet.test.story.tsx +6 -5
  54. package/src/common/hooks/useResizeObserver.ts +2 -3
  55. package/src/i18n/en.json +0 -2
  56. package/src/index.ts +2 -2
  57. package/src/main.css +29 -192
  58. package/src/main.less +1 -3
  59. package/src/prompt/ActionPrompt/ActionPrompt.tsx +62 -9
  60. package/src/prompt/PrimitivePrompt/PrimitivePrompt.tsx +40 -56
  61. package/src/prompt/index.ts +0 -4
  62. package/src/sentimentSurface/SentimentSurface.story.tsx +17 -43
  63. package/src/table/Table.story.tsx +1 -1
  64. package/src/table/Table.tsx +5 -5
  65. package/build/common/hooks/useContainerSize.js +0 -30
  66. package/build/common/hooks/useContainerSize.js.map +0 -1
  67. package/build/common/hooks/useContainerSize.mjs +0 -28
  68. package/build/common/hooks/useContainerSize.mjs.map +0 -1
  69. package/build/prompt/CriticalBanner/CriticalBanner.js +0 -142
  70. package/build/prompt/CriticalBanner/CriticalBanner.js.map +0 -1
  71. package/build/prompt/CriticalBanner/CriticalBanner.mjs +0 -140
  72. package/build/prompt/CriticalBanner/CriticalBanner.mjs.map +0 -1
  73. package/build/prompt/CriticalBanner/helpers.js +0 -29
  74. package/build/prompt/CriticalBanner/helpers.js.map +0 -1
  75. package/build/prompt/CriticalBanner/helpers.mjs +0 -26
  76. package/build/prompt/CriticalBanner/helpers.mjs.map +0 -1
  77. package/build/prompt/common/Expander/Expander.js +0 -35
  78. package/build/prompt/common/Expander/Expander.js.map +0 -1
  79. package/build/prompt/common/Expander/Expander.messages.js +0 -17
  80. package/build/prompt/common/Expander/Expander.messages.js.map +0 -1
  81. package/build/prompt/common/Expander/Expander.messages.mjs +0 -13
  82. package/build/prompt/common/Expander/Expander.messages.mjs.map +0 -1
  83. package/build/prompt/common/Expander/Expander.mjs +0 -33
  84. package/build/prompt/common/Expander/Expander.mjs.map +0 -1
  85. package/build/prompt/helpers/promptMedia.js +0 -52
  86. package/build/prompt/helpers/promptMedia.js.map +0 -1
  87. package/build/prompt/helpers/promptMedia.mjs +0 -50
  88. package/build/prompt/helpers/promptMedia.mjs.map +0 -1
  89. package/build/styles/prompt/CriticalBanner/CriticalBanner.css +0 -132
  90. package/build/styles/prompt/CriticalBanner/CriticalBanner.vars.css +0 -0
  91. package/build/styles/prompt/common/Expander/Expander.css +0 -8
  92. package/build/types/common/hooks/useContainerSize.d.ts +0 -14
  93. package/build/types/common/hooks/useContainerSize.d.ts.map +0 -1
  94. package/build/types/prompt/CriticalBanner/CriticalBanner.d.ts +0 -39
  95. package/build/types/prompt/CriticalBanner/CriticalBanner.d.ts.map +0 -1
  96. package/build/types/prompt/CriticalBanner/helpers.d.ts +0 -18
  97. package/build/types/prompt/CriticalBanner/helpers.d.ts.map +0 -1
  98. package/build/types/prompt/CriticalBanner/index.d.ts +0 -3
  99. package/build/types/prompt/CriticalBanner/index.d.ts.map +0 -1
  100. package/build/types/prompt/common/Expander/Expander.d.ts +0 -20
  101. package/build/types/prompt/common/Expander/Expander.d.ts.map +0 -1
  102. package/build/types/prompt/common/Expander/Expander.messages.d.ts +0 -14
  103. package/build/types/prompt/common/Expander/Expander.messages.d.ts.map +0 -1
  104. package/build/types/prompt/helpers/promptMedia.d.ts +0 -22
  105. package/build/types/prompt/helpers/promptMedia.d.ts.map +0 -1
  106. package/src/common/hooks/useContainerSize.test.tsx +0 -121
  107. package/src/common/hooks/useContainerSize.ts +0 -32
  108. package/src/prompt/CriticalBanner/CriticalBanner.accessibility.docs.mdx +0 -113
  109. package/src/prompt/CriticalBanner/CriticalBanner.css +0 -132
  110. package/src/prompt/CriticalBanner/CriticalBanner.less +0 -153
  111. package/src/prompt/CriticalBanner/CriticalBanner.story.tsx +0 -635
  112. package/src/prompt/CriticalBanner/CriticalBanner.test.story.tsx +0 -422
  113. package/src/prompt/CriticalBanner/CriticalBanner.tsx +0 -178
  114. package/src/prompt/CriticalBanner/CriticalBanner.vars.css +0 -0
  115. package/src/prompt/CriticalBanner/CriticalBanner.vars.less +0 -6
  116. package/src/prompt/CriticalBanner/helpers.ts +0 -39
  117. package/src/prompt/CriticalBanner/index.ts +0 -2
  118. package/src/prompt/common/Expander/Expander.css +0 -8
  119. package/src/prompt/common/Expander/Expander.less +0 -9
  120. package/src/prompt/common/Expander/Expander.messages.ts +0 -14
  121. package/src/prompt/common/Expander/Expander.test.tsx +0 -167
  122. package/src/prompt/common/Expander/Expander.tsx +0 -83
  123. package/src/prompt/helpers/promptMedia.tsx +0 -79
@@ -1 +0,0 @@
1
- {"version":3,"file":"CriticalBanner.mjs","sources":["../../../src/prompt/CriticalBanner/CriticalBanner.tsx"],"sourcesContent":["import { ReactNode, useEffect, useId, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport Body from '../../body';\nimport Button from '../../button';\nimport { Breakpoint, LiveRegion, Typography } from '../../common';\nimport { ButtonProps } from '../../button/Button.types';\nimport { PrimitivePrompt, PrimitivePromptProps } from '../PrimitivePrompt';\n\nimport { renderPromptMedia, PromptMedia } from '../helpers/promptMedia';\nimport { ExpanderToggle } from '../common/Expander/Expander';\nimport { buildAnnouncementString } from './helpers';\nimport { useContainerSize } from '../../common/hooks/useContainerSize';\n\nexport type CriticalBannerProps = {\n title?: ReactNode;\n description: ReactNode;\n media?: PromptMedia;\n action?: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {\n label: ButtonProps['children'];\n };\n actionSecondary?: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {\n label: ButtonProps['children'];\n };\n sentiment?: Exclude<PrimitivePromptProps['sentiment'], 'proposition'>;\n /**\n * Controls whether the description and actions are visible, as a controlled component.\n * When collapsed with a title, only the title is shown.\n * When collapsed without a title, the description is trimmed to 2 lines.\n *\n * Note: On desktop (container width >= 768px), the banner is always expanded\n * regardless of this prop value.\n */\n expanded?: boolean;\n /**\n * Called when the user clicks the chevron toggle.\n * If not provided, the component will manage expanded state internally.\n */\n onToggle?: () => void;\n} & Pick<PrimitivePromptProps, 'id' | 'className' | 'data-testid'>;\n\n/**\n * A full-width, non-dismissible banner for critical messages such as account blocks or\n * time-sensitive actions that require immediate user attention.\n\n * @see {@link https://wise.design/components/critical-banner Design Spec}\n */\nexport const CriticalBanner = ({\n sentiment = 'negative',\n title,\n description,\n media = {},\n action,\n actionSecondary,\n expanded: expandedProp,\n onToggle,\n id,\n className,\n 'data-testid': testId,\n}: CriticalBannerProps) => {\n const [containerRef, isDesktop] = useContainerSize(Breakpoint.MEDIUM);\n const [internalExpanded, setInternalExpanded] = useState(\n isDesktop ? true : onToggle && expandedProp !== undefined ? expandedProp : true,\n );\n const resolvedExpanded = isDesktop ? true : (expandedProp ?? internalExpanded);\n const handleToggle = onToggle ?? (() => setInternalExpanded(!internalExpanded));\n const hasActions = action ?? actionSecondary;\n const mediaId = useId();\n const titleId = useId();\n const descId = useId();\n\n const ariaLabelledByIds = [\n media['aria-hidden'] ? undefined : mediaId,\n !title ? undefined : titleId,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <LiveRegion\n aria-live=\"assertive\"\n announceOnChange={buildAnnouncementString({\n title,\n description,\n expanded: resolvedExpanded,\n actionLabel: action?.label,\n actionSecondaryLabel: actionSecondary?.label,\n })}\n >\n <PrimitivePrompt\n ref={containerRef}\n id={id}\n sentiment={sentiment}\n emphasis={sentiment === 'neutral' ? 'base' : 'elevated'}\n data-testid={testId}\n className={clsx(\n 'wds-critical-banner',\n {\n 'wds-critical-banner--collapsed': !resolvedExpanded,\n 'wds-critical-banner--with-two-actions': !!actionSecondary,\n },\n className,\n )}\n media={renderPromptMedia({\n media,\n sentiment,\n mediaId,\n imgClassName: 'wds-critical-banner--media-image',\n })}\n actions={\n hasActions ? (\n <div aria-hidden={!resolvedExpanded ? true : undefined} style={{ display: 'contents' }}>\n {actionSecondary && (\n // @ts-expect-error onClick type mismatch\n <Button\n v2\n size=\"md\"\n priority=\"secondary\"\n href={actionSecondary.href}\n tabIndex={resolvedExpanded ? undefined : -1}\n onClick={actionSecondary?.onClick}\n >\n {actionSecondary.label}\n </Button>\n )}\n {action && (\n // @ts-expect-error onClick type mismatch\n <Button\n v2\n size=\"md\"\n priority=\"primary\"\n href={action.href}\n tabIndex={resolvedExpanded ? undefined : -1}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n )}\n </div>\n ) : undefined\n }\n role=\"region\"\n aria-labelledby={ariaLabelledByIds}\n aria-describedby={descId}\n >\n <div className=\"wds-critical-banner__text-wrapper\">\n {title && (\n <Body\n id={titleId}\n type={Typography.BODY_LARGE_BOLD}\n className=\"wds-critical-banner__content wds-critical-banner__title\"\n >\n {title}\n </Body>\n )}\n {description && (\n <Body\n id={descId}\n className={clsx('wds-critical-banner__content', 'wds-critical-banner__description', {\n 'wds-critical-banner__description--with-title': !!title,\n })}\n >\n {description}\n </Body>\n )}\n </div>\n <ExpanderToggle\n expanded={resolvedExpanded}\n size={24}\n className=\"wds-critical-banner__toggle\"\n onToggle={handleToggle}\n />\n </PrimitivePrompt>\n </LiveRegion>\n );\n};\n\nexport default CriticalBanner;\n"],"names":["CriticalBanner","sentiment","title","description","media","action","actionSecondary","expanded","expandedProp","onToggle","id","className","testId","containerRef","isDesktop","useContainerSize","Breakpoint","MEDIUM","internalExpanded","setInternalExpanded","useState","undefined","resolvedExpanded","handleToggle","hasActions","mediaId","useId","titleId","descId","ariaLabelledByIds","filter","Boolean","join","_jsx","LiveRegion","announceOnChange","buildAnnouncementString","actionLabel","label","actionSecondaryLabel","children","_jsxs","PrimitivePrompt","ref","emphasis","clsx","renderPromptMedia","imgClassName","actions","style","display","Button","v2","size","priority","href","tabIndex","onClick","role","Body","type","Typography","BODY_LARGE_BOLD","ExpanderToggle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CO,MAAMA,cAAc,GAAGA,CAAC;AAC7BC,EAAAA,SAAS,GAAG,UAAU;EACtBC,KAAK;EACLC,WAAW;EACXC,KAAK,GAAG,EAAE;EACVC,MAAM;EACNC,eAAe;AACfC,EAAAA,QAAQ,EAAEC,YAAY;EACtBC,QAAQ;EACRC,EAAE;EACFC,SAAS;AACT,EAAA,aAAa,EAAEC;AAAM,CACD,KAAI;EACxB,MAAM,CAACC,YAAY,EAAEC,SAAS,CAAC,GAAGC,gBAAgB,CAACC,UAAU,CAACC,MAAM,CAAC;EACrE,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGC,QAAQ,CACtDN,SAAS,GAAG,IAAI,GAAGL,QAAQ,IAAID,YAAY,KAAKa,SAAS,GAAGb,YAAY,GAAG,IAAI,CAChF;EACD,MAAMc,gBAAgB,GAAGR,SAAS,GAAG,IAAI,GAAIN,YAAY,IAAIU,gBAAiB;EAC9E,MAAMK,YAAY,GAAGd,QAAQ,KAAK,MAAMU,mBAAmB,CAAC,CAACD,gBAAgB,CAAC,CAAC;AAC/E,EAAA,MAAMM,UAAU,GAAGnB,MAAM,IAAIC,eAAe;AAC5C,EAAA,MAAMmB,OAAO,GAAGC,KAAK,EAAE;AACvB,EAAA,MAAMC,OAAO,GAAGD,KAAK,EAAE;AACvB,EAAA,MAAME,MAAM,GAAGF,KAAK,EAAE;AAEtB,EAAA,MAAMG,iBAAiB,GAAG,CACxBzB,KAAK,CAAC,aAAa,CAAC,GAAGiB,SAAS,GAAGI,OAAO,EAC1C,CAACvB,KAAK,GAAGmB,SAAS,GAAGM,OAAO,CAC7B,CACEG,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;EAEZ,oBACEC,GAAA,CAACC,UAAU,EAAA;AACT,IAAA,WAAA,EAAU,WAAW;IACrBC,gBAAgB,EAAEC,uBAAuB,CAAC;MACxClC,KAAK;MACLC,WAAW;AACXI,MAAAA,QAAQ,EAAEe,gBAAgB;MAC1Be,WAAW,EAAEhC,MAAM,EAAEiC,KAAK;MAC1BC,oBAAoB,EAAEjC,eAAe,EAAEgC;AACxC,KAAA,CAAE;IAAAE,QAAA,eAEHC,IAAA,CAACC,eAAe,EAAA;AACdC,MAAAA,GAAG,EAAE9B,YAAa;AAClBH,MAAAA,EAAE,EAAEA,EAAG;AACPT,MAAAA,SAAS,EAAEA,SAAU;AACrB2C,MAAAA,QAAQ,EAAE3C,SAAS,KAAK,SAAS,GAAG,MAAM,GAAG,UAAW;AACxD,MAAA,aAAA,EAAaW,MAAO;AACpBD,MAAAA,SAAS,EAAEkC,IAAI,CACb,qBAAqB,EACrB;QACE,gCAAgC,EAAE,CAACvB,gBAAgB;QACnD,uCAAuC,EAAE,CAAC,CAAChB;OAC5C,EACDK,SAAS,CACT;MACFP,KAAK,EAAE0C,iBAAiB,CAAC;QACvB1C,KAAK;QACLH,SAAS;QACTwB,OAAO;AACPsB,QAAAA,YAAY,EAAE;AACf,OAAA,CAAE;MACHC,OAAO,EACLxB,UAAU,gBACRiB,IAAA,CAAA,KAAA,EAAA;AAAK,QAAA,aAAA,EAAa,CAACnB,gBAAgB,GAAG,IAAI,GAAGD,SAAU;AAAC4B,QAAAA,KAAK,EAAE;AAAEC,UAAAA,OAAO,EAAE;SAAa;AAAAV,QAAAA,QAAA,GACpFlC,eAAe;AAAA;AACd;AACA2B,QAAAA,GAAA,CAACkB,MAAM,EAAA;UACLC,EAAE,EAAA,IAAA;AACFC,UAAAA,IAAI,EAAC,IAAI;AACTC,UAAAA,QAAQ,EAAC,WAAW;UACpBC,IAAI,EAAEjD,eAAe,CAACiD,IAAK;AAC3BC,UAAAA,QAAQ,EAAElC,gBAAgB,GAAGD,SAAS,GAAG,EAAG;UAC5CoC,OAAO,EAAEnD,eAAe,EAAEmD,OAAQ;UAAAjB,QAAA,EAEjClC,eAAe,CAACgC;SACX,CACT,EACAjC,MAAM;AAAA;AACL;AACA4B,QAAAA,GAAA,CAACkB,MAAM,EAAA;UACLC,EAAE,EAAA,IAAA;AACFC,UAAAA,IAAI,EAAC,IAAI;AACTC,UAAAA,QAAQ,EAAC,SAAS;UAClBC,IAAI,EAAElD,MAAM,CAACkD,IAAK;AAClBC,UAAAA,QAAQ,EAAElC,gBAAgB,GAAGD,SAAS,GAAG,EAAG;UAC5CoC,OAAO,EAAEpD,MAAM,CAACoD,OAAQ;UAAAjB,QAAA,EAEvBnC,MAAM,CAACiC;AAAK,SACP,CACT;OACE,CAAC,GACJjB,SACL;AACDqC,MAAAA,IAAI,EAAC,QAAQ;AACb,MAAA,iBAAA,EAAiB7B,iBAAkB;AACnC,MAAA,kBAAA,EAAkBD,MAAO;AAAAY,MAAAA,QAAA,gBAEzBC,IAAA,CAAA,KAAA,EAAA;AAAK9B,QAAAA,SAAS,EAAC,mCAAmC;AAAA6B,QAAAA,QAAA,EAAA,CAC/CtC,KAAK,iBACJ+B,GAAA,CAAC0B,IAAI,EAAA;AACHjD,UAAAA,EAAE,EAAEiB,OAAQ;UACZiC,IAAI,EAAEC,UAAU,CAACC,eAAgB;AACjCnD,UAAAA,SAAS,EAAC,yDAAyD;AAAA6B,UAAAA,QAAA,EAElEtC;AAAK,SACF,CACP,EACAC,WAAW,iBACV8B,GAAA,CAAC0B,IAAI,EAAA;AACHjD,UAAAA,EAAE,EAAEkB,MAAO;AACXjB,UAAAA,SAAS,EAAEkC,IAAI,CAAC,8BAA8B,EAAE,kCAAkC,EAAE;YAClF,8CAA8C,EAAE,CAAC,CAAC3C;AACnD,WAAA,CAAE;AAAAsC,UAAAA,QAAA,EAEFrC;AAAW,SACR,CACP;AAAA,OACE,CACL,eAAA8B,GAAA,CAAC8B,cAAc,EAAA;AACbxD,QAAAA,QAAQ,EAAEe,gBAAiB;AAC3B+B,QAAAA,IAAI,EAAE,EAAG;AACT1C,QAAAA,SAAS,EAAC,6BAA6B;AACvCF,QAAAA,QAAQ,EAAEc;AAAa,OAAA,CAE3B;KAAiB;AACnB,GAAY,CAAC;AAEjB;;;;"}
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Helper to extract string from ReactNode for announcements.
5
- * Complex ReactNodes (JSX elements) return empty string.
6
- */
7
- const getStringValue = node => {
8
- if (typeof node === 'string' || typeof node === 'number') {
9
- return String(node);
10
- }
11
- return '';
12
- };
13
- /**
14
- * Builds the announcement string from visible content only.
15
- * Content visibility depends on expanded state and presence of title.
16
- */
17
- const buildAnnouncementString = ({
18
- title,
19
- description,
20
- expanded,
21
- actionLabel,
22
- actionSecondaryLabel
23
- }) => {
24
- return [title ? getStringValue(title) : undefined, description && (expanded || !title) ? getStringValue(description) : undefined, expanded && actionLabel ? getStringValue(actionLabel) : undefined, expanded && actionSecondaryLabel ? getStringValue(actionSecondaryLabel) : undefined].filter(Boolean).join('|');
25
- };
26
-
27
- exports.buildAnnouncementString = buildAnnouncementString;
28
- exports.getStringValue = getStringValue;
29
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/prompt/CriticalBanner/helpers.ts"],"sourcesContent":["import { ReactNode } from 'react';\n\n/**\n * Helper to extract string from ReactNode for announcements.\n * Complex ReactNodes (JSX elements) return empty string.\n */\nexport const getStringValue = (node: ReactNode): string => {\n if (typeof node === 'string' || typeof node === 'number') {\n return String(node);\n }\n return '';\n};\n\n/**\n * Builds the announcement string from visible content only.\n * Content visibility depends on expanded state and presence of title.\n */\nexport const buildAnnouncementString = ({\n title,\n description,\n expanded,\n actionLabel,\n actionSecondaryLabel,\n}: {\n title?: ReactNode;\n description?: ReactNode;\n expanded: boolean;\n actionLabel?: ReactNode;\n actionSecondaryLabel?: ReactNode;\n}): string => {\n return [\n title ? getStringValue(title) : undefined,\n description && (expanded || !title) ? getStringValue(description) : undefined,\n expanded && actionLabel ? getStringValue(actionLabel) : undefined,\n expanded && actionSecondaryLabel ? getStringValue(actionSecondaryLabel) : undefined,\n ]\n .filter(Boolean)\n .join('|');\n};\n"],"names":["getStringValue","node","String","buildAnnouncementString","title","description","expanded","actionLabel","actionSecondaryLabel","undefined","filter","Boolean","join"],"mappings":";;AAEA;;;AAGG;AACI,MAAMA,cAAc,GAAIC,IAAe,IAAY;EACxD,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACxD,OAAOC,MAAM,CAACD,IAAI,CAAC;AACrB,EAAA;AACA,EAAA,OAAO,EAAE;AACX;AAEA;;;AAGG;AACI,MAAME,uBAAuB,GAAGA,CAAC;EACtCC,KAAK;EACLC,WAAW;EACXC,QAAQ;EACRC,WAAW;AACXC,EAAAA;AAAoB,CAOrB,KAAY;EACX,OAAO,CACLJ,KAAK,GAAGJ,cAAc,CAACI,KAAK,CAAC,GAAGK,SAAS,EACzCJ,WAAW,KAAKC,QAAQ,IAAI,CAACF,KAAK,CAAC,GAAGJ,cAAc,CAACK,WAAW,CAAC,GAAGI,SAAS,EAC7EH,QAAQ,IAAIC,WAAW,GAAGP,cAAc,CAACO,WAAW,CAAC,GAAGE,SAAS,EACjEH,QAAQ,IAAIE,oBAAoB,GAAGR,cAAc,CAACQ,oBAAoB,CAAC,GAAGC,SAAS,CACpF,CACEC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;AACd;;;;;"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Helper to extract string from ReactNode for announcements.
3
- * Complex ReactNodes (JSX elements) return empty string.
4
- */
5
- const getStringValue = node => {
6
- if (typeof node === 'string' || typeof node === 'number') {
7
- return String(node);
8
- }
9
- return '';
10
- };
11
- /**
12
- * Builds the announcement string from visible content only.
13
- * Content visibility depends on expanded state and presence of title.
14
- */
15
- const buildAnnouncementString = ({
16
- title,
17
- description,
18
- expanded,
19
- actionLabel,
20
- actionSecondaryLabel
21
- }) => {
22
- return [title ? getStringValue(title) : undefined, description && (expanded || !title) ? getStringValue(description) : undefined, expanded && actionLabel ? getStringValue(actionLabel) : undefined, expanded && actionSecondaryLabel ? getStringValue(actionSecondaryLabel) : undefined].filter(Boolean).join('|');
23
- };
24
-
25
- export { buildAnnouncementString, getStringValue };
26
- //# sourceMappingURL=helpers.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.mjs","sources":["../../../src/prompt/CriticalBanner/helpers.ts"],"sourcesContent":["import { ReactNode } from 'react';\n\n/**\n * Helper to extract string from ReactNode for announcements.\n * Complex ReactNodes (JSX elements) return empty string.\n */\nexport const getStringValue = (node: ReactNode): string => {\n if (typeof node === 'string' || typeof node === 'number') {\n return String(node);\n }\n return '';\n};\n\n/**\n * Builds the announcement string from visible content only.\n * Content visibility depends on expanded state and presence of title.\n */\nexport const buildAnnouncementString = ({\n title,\n description,\n expanded,\n actionLabel,\n actionSecondaryLabel,\n}: {\n title?: ReactNode;\n description?: ReactNode;\n expanded: boolean;\n actionLabel?: ReactNode;\n actionSecondaryLabel?: ReactNode;\n}): string => {\n return [\n title ? getStringValue(title) : undefined,\n description && (expanded || !title) ? getStringValue(description) : undefined,\n expanded && actionLabel ? getStringValue(actionLabel) : undefined,\n expanded && actionSecondaryLabel ? getStringValue(actionSecondaryLabel) : undefined,\n ]\n .filter(Boolean)\n .join('|');\n};\n"],"names":["getStringValue","node","String","buildAnnouncementString","title","description","expanded","actionLabel","actionSecondaryLabel","undefined","filter","Boolean","join"],"mappings":"AAEA;;;AAGG;AACI,MAAMA,cAAc,GAAIC,IAAe,IAAY;EACxD,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACxD,OAAOC,MAAM,CAACD,IAAI,CAAC;AACrB,EAAA;AACA,EAAA,OAAO,EAAE;AACX;AAEA;;;AAGG;AACI,MAAME,uBAAuB,GAAGA,CAAC;EACtCC,KAAK;EACLC,WAAW;EACXC,QAAQ;EACRC,WAAW;AACXC,EAAAA;AAAoB,CAOrB,KAAY;EACX,OAAO,CACLJ,KAAK,GAAGJ,cAAc,CAACI,KAAK,CAAC,GAAGK,SAAS,EACzCJ,WAAW,KAAKC,QAAQ,IAAI,CAACF,KAAK,CAAC,GAAGJ,cAAc,CAACK,WAAW,CAAC,GAAGI,SAAS,EAC7EH,QAAQ,IAAIC,WAAW,GAAGP,cAAc,CAACO,WAAW,CAAC,GAAGE,SAAS,EACjEH,QAAQ,IAAIE,oBAAoB,GAAGR,cAAc,CAACQ,oBAAoB,CAAC,GAAGC,SAAS,CACpF,CACEC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;AACd;;;;"}
@@ -1,35 +0,0 @@
1
- 'use strict';
2
-
3
- require('react');
4
- var clsx = require('clsx');
5
- var icons = require('@transferwise/icons');
6
- var IconButton = require('../../../iconButton/IconButton.js');
7
- var reactIntl = require('react-intl');
8
- var Expander_messages = require('./Expander.messages.js');
9
- var jsxRuntime = require('react/jsx-runtime');
10
-
11
- // Reusable toggle button component
12
- const ExpanderToggle = ({
13
- expanded,
14
- onToggle,
15
- size = 24,
16
- className,
17
- 'data-testid': testId
18
- }) => {
19
- const intl = reactIntl.useIntl();
20
- return /*#__PURE__*/jsxRuntime.jsx(IconButton.default, {
21
- size: size,
22
- priority: "secondary",
23
- "aria-label": intl.formatMessage(expanded ? Expander_messages.default.collapseAriaLabel : Expander_messages.default.expandAriaLabel),
24
- "aria-expanded": expanded,
25
- className: clsx.clsx('wds-expander-toggle', {
26
- 'wds-expander-toggle--collapsed': !expanded
27
- }, className),
28
- "data-testid": testId,
29
- onClick: onToggle,
30
- children: /*#__PURE__*/jsxRuntime.jsx(icons.ChevronUp, {})
31
- });
32
- };
33
-
34
- exports.ExpanderToggle = ExpanderToggle;
35
- //# sourceMappingURL=Expander.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Expander.js","sources":["../../../../src/prompt/common/Expander/Expander.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { clsx } from 'clsx';\nimport { ChevronUp } from '@transferwise/icons';\nimport IconButton from '../../../iconButton';\nimport { useIntl } from 'react-intl';\nimport messages from './Expander.messages';\n\nexport type ExpanderState = {\n expanded: boolean;\n toggle: () => void;\n setExpanded: (expanded: boolean) => void;\n};\n\n// Hook for managing expander state\nexport function useExpanderState(initialExpanded = true): ExpanderState {\n const [expanded, setExpanded] = useState(initialExpanded);\n\n const toggle = useCallback(() => {\n setExpanded((prev) => !prev);\n }, []);\n\n return {\n expanded,\n toggle,\n setExpanded,\n };\n}\n\n// Helper for conditional rendering based on expanded state\nexport function shouldShowWhenExpanded({\n expanded,\n hasContent,\n alwaysShow = false,\n}: {\n expanded: boolean;\n hasContent: boolean;\n alwaysShow?: boolean;\n}): boolean {\n if (alwaysShow) {\n return hasContent;\n }\n\n return expanded && hasContent;\n}\n\nexport type ExpanderToggleProps = {\n expanded: boolean;\n onToggle?: () => void;\n size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;\n className?: string;\n 'data-testid'?: string;\n};\n\n// Reusable toggle button component\nexport const ExpanderToggle = ({\n expanded,\n onToggle,\n size = 24,\n className,\n 'data-testid': testId,\n}: ExpanderToggleProps) => {\n const intl = useIntl();\n\n return (\n <IconButton\n size={size}\n priority=\"secondary\"\n aria-label={intl.formatMessage(\n expanded ? messages.collapseAriaLabel : messages.expandAriaLabel,\n )}\n aria-expanded={expanded}\n className={clsx(\n 'wds-expander-toggle',\n { 'wds-expander-toggle--collapsed': !expanded },\n className,\n )}\n data-testid={testId}\n onClick={onToggle}\n >\n <ChevronUp />\n </IconButton>\n );\n};\n"],"names":["ExpanderToggle","expanded","onToggle","size","className","testId","intl","useIntl","_jsx","IconButton","priority","formatMessage","messages","collapseAriaLabel","expandAriaLabel","clsx","onClick","children","ChevronUp"],"mappings":";;;;;;;;;;AAqDA;AACO,MAAMA,cAAc,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,QAAQ;AACRC,EAAAA,IAAI,GAAG,EAAE;EACTC,SAAS;AACT,EAAA,aAAa,EAAEC;AAAM,CACD,KAAI;AACxB,EAAA,MAAMC,IAAI,GAAGC,iBAAO,EAAE;EAEtB,oBACEC,cAAA,CAACC,kBAAU,EAAA;AACTN,IAAAA,IAAI,EAAEA,IAAK;AACXO,IAAAA,QAAQ,EAAC,WAAW;AACpB,IAAA,YAAA,EAAYJ,IAAI,CAACK,aAAa,CAC5BV,QAAQ,GAAGW,yBAAQ,CAACC,iBAAiB,GAAGD,yBAAQ,CAACE,eAAe,CAChE;AACF,IAAA,eAAA,EAAeb,QAAS;AACxBG,IAAAA,SAAS,EAAEW,SAAI,CACb,qBAAqB,EACrB;AAAE,MAAA,gCAAgC,EAAE,CAACd;KAAU,EAC/CG,SAAS,CACT;AACF,IAAA,aAAA,EAAaC,MAAO;AACpBW,IAAAA,OAAO,EAAEd,QAAS;AAAAe,IAAAA,QAAA,eAElBT,cAAA,CAACU,eAAS,EAAA,EAAA;AACZ,GAAY,CAAC;AAEjB;;;;"}
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var reactIntl = require('react-intl');
6
-
7
- var messages = reactIntl.defineMessages({
8
- expandAriaLabel: {
9
- id: "neptune.Expander.expandAriaLabel"
10
- },
11
- collapseAriaLabel: {
12
- id: "neptune.Expander.collapseAriaLabel"
13
- }
14
- });
15
-
16
- exports.default = messages;
17
- //# sourceMappingURL=Expander.messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Expander.messages.js","sources":["../../../../src/prompt/common/Expander/Expander.messages.ts"],"sourcesContent":["import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n expandAriaLabel: {\n id: 'neptune.Expander.expandAriaLabel',\n defaultMessage: 'Expand',\n description: 'Expand button for expander',\n },\n collapseAriaLabel: {\n id: 'neptune.Expander.collapseAriaLabel',\n defaultMessage: 'Collapse',\n description: 'Collapse button for expander',\n },\n});\n"],"names":["defineMessages","expandAriaLabel","id","collapseAriaLabel"],"mappings":";;;;;;AAEA,eAAeA,wBAAc,CAAC;AAC5BC,EAAAA,eAAe,EAAE;IACfC,EAAE,EAAA;GAGH;AACDC,EAAAA,iBAAiB,EAAE;IACjBD,EAAE,EAAA;AAGH;AACF,CAAA,CAAC;;;;"}
@@ -1,13 +0,0 @@
1
- import { defineMessages } from 'react-intl';
2
-
3
- var messages = defineMessages({
4
- expandAriaLabel: {
5
- id: "neptune.Expander.expandAriaLabel"
6
- },
7
- collapseAriaLabel: {
8
- id: "neptune.Expander.collapseAriaLabel"
9
- }
10
- });
11
-
12
- export { messages as default };
13
- //# sourceMappingURL=Expander.messages.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Expander.messages.mjs","sources":["../../../../src/prompt/common/Expander/Expander.messages.ts"],"sourcesContent":["import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n expandAriaLabel: {\n id: 'neptune.Expander.expandAriaLabel',\n defaultMessage: 'Expand',\n description: 'Expand button for expander',\n },\n collapseAriaLabel: {\n id: 'neptune.Expander.collapseAriaLabel',\n defaultMessage: 'Collapse',\n description: 'Collapse button for expander',\n },\n});\n"],"names":["defineMessages","expandAriaLabel","id","collapseAriaLabel"],"mappings":";;AAEA,eAAeA,cAAc,CAAC;AAC5BC,EAAAA,eAAe,EAAE;IACfC,EAAE,EAAA;GAGH;AACDC,EAAAA,iBAAiB,EAAE;IACjBD,EAAE,EAAA;AAGH;AACF,CAAA,CAAC;;;;"}
@@ -1,33 +0,0 @@
1
- import 'react';
2
- import { clsx } from 'clsx';
3
- import { ChevronUp } from '@transferwise/icons';
4
- import IconButton from '../../../iconButton/IconButton.mjs';
5
- import { useIntl } from 'react-intl';
6
- import messages from './Expander.messages.mjs';
7
- import { jsx } from 'react/jsx-runtime';
8
-
9
- // Reusable toggle button component
10
- const ExpanderToggle = ({
11
- expanded,
12
- onToggle,
13
- size = 24,
14
- className,
15
- 'data-testid': testId
16
- }) => {
17
- const intl = useIntl();
18
- return /*#__PURE__*/jsx(IconButton, {
19
- size: size,
20
- priority: "secondary",
21
- "aria-label": intl.formatMessage(expanded ? messages.collapseAriaLabel : messages.expandAriaLabel),
22
- "aria-expanded": expanded,
23
- className: clsx('wds-expander-toggle', {
24
- 'wds-expander-toggle--collapsed': !expanded
25
- }, className),
26
- "data-testid": testId,
27
- onClick: onToggle,
28
- children: /*#__PURE__*/jsx(ChevronUp, {})
29
- });
30
- };
31
-
32
- export { ExpanderToggle };
33
- //# sourceMappingURL=Expander.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Expander.mjs","sources":["../../../../src/prompt/common/Expander/Expander.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { clsx } from 'clsx';\nimport { ChevronUp } from '@transferwise/icons';\nimport IconButton from '../../../iconButton';\nimport { useIntl } from 'react-intl';\nimport messages from './Expander.messages';\n\nexport type ExpanderState = {\n expanded: boolean;\n toggle: () => void;\n setExpanded: (expanded: boolean) => void;\n};\n\n// Hook for managing expander state\nexport function useExpanderState(initialExpanded = true): ExpanderState {\n const [expanded, setExpanded] = useState(initialExpanded);\n\n const toggle = useCallback(() => {\n setExpanded((prev) => !prev);\n }, []);\n\n return {\n expanded,\n toggle,\n setExpanded,\n };\n}\n\n// Helper for conditional rendering based on expanded state\nexport function shouldShowWhenExpanded({\n expanded,\n hasContent,\n alwaysShow = false,\n}: {\n expanded: boolean;\n hasContent: boolean;\n alwaysShow?: boolean;\n}): boolean {\n if (alwaysShow) {\n return hasContent;\n }\n\n return expanded && hasContent;\n}\n\nexport type ExpanderToggleProps = {\n expanded: boolean;\n onToggle?: () => void;\n size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;\n className?: string;\n 'data-testid'?: string;\n};\n\n// Reusable toggle button component\nexport const ExpanderToggle = ({\n expanded,\n onToggle,\n size = 24,\n className,\n 'data-testid': testId,\n}: ExpanderToggleProps) => {\n const intl = useIntl();\n\n return (\n <IconButton\n size={size}\n priority=\"secondary\"\n aria-label={intl.formatMessage(\n expanded ? messages.collapseAriaLabel : messages.expandAriaLabel,\n )}\n aria-expanded={expanded}\n className={clsx(\n 'wds-expander-toggle',\n { 'wds-expander-toggle--collapsed': !expanded },\n className,\n )}\n data-testid={testId}\n onClick={onToggle}\n >\n <ChevronUp />\n </IconButton>\n );\n};\n"],"names":["ExpanderToggle","expanded","onToggle","size","className","testId","intl","useIntl","_jsx","IconButton","priority","formatMessage","messages","collapseAriaLabel","expandAriaLabel","clsx","onClick","children","ChevronUp"],"mappings":";;;;;;;;AAqDA;AACO,MAAMA,cAAc,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,QAAQ;AACRC,EAAAA,IAAI,GAAG,EAAE;EACTC,SAAS;AACT,EAAA,aAAa,EAAEC;AAAM,CACD,KAAI;AACxB,EAAA,MAAMC,IAAI,GAAGC,OAAO,EAAE;EAEtB,oBACEC,GAAA,CAACC,UAAU,EAAA;AACTN,IAAAA,IAAI,EAAEA,IAAK;AACXO,IAAAA,QAAQ,EAAC,WAAW;AACpB,IAAA,YAAA,EAAYJ,IAAI,CAACK,aAAa,CAC5BV,QAAQ,GAAGW,QAAQ,CAACC,iBAAiB,GAAGD,QAAQ,CAACE,eAAe,CAChE;AACF,IAAA,eAAA,EAAeb,QAAS;AACxBG,IAAAA,SAAS,EAAEW,IAAI,CACb,qBAAqB,EACrB;AAAE,MAAA,gCAAgC,EAAE,CAACd;KAAU,EAC/CG,SAAS,CACT;AACF,IAAA,aAAA,EAAaC,MAAO;AACpBW,IAAAA,OAAO,EAAEd,QAAS;AAAAe,IAAAA,QAAA,eAElBT,GAAA,CAACU,SAAS,EAAA,EAAA;AACZ,GAAY,CAAC;AAEjB;;;;"}
@@ -1,52 +0,0 @@
1
- 'use strict';
2
-
3
- var icons = require('@transferwise/icons');
4
- var AvatarView = require('../../avatarView/AvatarView.js');
5
- var Image = require('../../image/Image.js');
6
- var StatusIcon = require('../../statusIcon/StatusIcon.js');
7
- var jsxRuntime = require('react/jsx-runtime');
8
-
9
- function renderPromptMedia({
10
- media,
11
- sentiment,
12
- mediaId,
13
- imgClassName
14
- }) {
15
- if (media?.imgSrc) {
16
- return /*#__PURE__*/jsxRuntime.jsx(Image.default, {
17
- id: mediaId,
18
- src: media.imgSrc,
19
- className: imgClassName,
20
- alt: media['aria-label'] ?? ''
21
- });
22
- }
23
- if (media?.avatar) {
24
- const badge = media.avatar.badge ? media.avatar.badge : sentiment === 'proposition' ? {} : {
25
- status: sentiment
26
- };
27
- return /*#__PURE__*/jsxRuntime.jsx(AvatarView.default, {
28
- ...media.avatar,
29
- badge: badge,
30
- "aria-label": media['aria-label'],
31
- "aria-hidden": media['aria-hidden'],
32
- id: mediaId,
33
- size: 48,
34
- children: media.avatar.asset
35
- });
36
- }
37
- return sentiment === 'proposition' ? /*#__PURE__*/jsxRuntime.jsx(AvatarView.default, {
38
- id: mediaId,
39
- size: 48,
40
- "aria-label": media['aria-label'],
41
- "aria-hidden": media['aria-hidden'],
42
- children: /*#__PURE__*/jsxRuntime.jsx(icons.GiftBox, {})
43
- }) : /*#__PURE__*/jsxRuntime.jsx(StatusIcon.default, {
44
- id: mediaId,
45
- size: 48,
46
- sentiment: sentiment,
47
- iconLabel: media['aria-hidden'] ? null : media['aria-label']
48
- });
49
- }
50
-
51
- exports.renderPromptMedia = renderPromptMedia;
52
- //# sourceMappingURL=promptMedia.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promptMedia.js","sources":["../../../src/prompt/helpers/promptMedia.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { GiftBox } from '@transferwise/icons';\n\nimport AvatarView, { AvatarViewProps } from '../../avatarView';\nimport Image from '../../image';\nimport StatusIcon from '../../statusIcon';\nimport { BadgeAssetsProps } from '../../badge';\nimport { PrimitivePromptProps } from '../PrimitivePrompt';\n\nexport type PromptMedia = {\n imgSrc?: string;\n avatar?: Pick<AvatarViewProps, 'imgSrc' | 'profileName' | 'profileType'> & {\n asset?: AvatarViewProps['children'];\n badge?: Pick<BadgeAssetsProps, 'flagCode'>;\n };\n 'aria-label'?: string;\n 'aria-hidden'?: boolean;\n};\n\ntype RenderPromptMediaOptions = {\n media: PromptMedia;\n sentiment: PrimitivePromptProps['sentiment'];\n mediaId: string;\n imgClassName: string;\n};\n\nexport function renderPromptMedia({\n media,\n sentiment,\n mediaId,\n imgClassName,\n}: RenderPromptMediaOptions): ReactNode {\n if (media?.imgSrc) {\n return (\n <Image\n id={mediaId}\n src={media.imgSrc}\n className={imgClassName}\n alt={media['aria-label'] ?? ''}\n />\n );\n }\n if (media?.avatar) {\n const badge = media.avatar.badge\n ? media.avatar.badge\n : sentiment === 'proposition'\n ? {}\n : { status: sentiment };\n return (\n <AvatarView\n {...media.avatar}\n badge={badge}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n id={mediaId}\n size={48}\n >\n {media.avatar.asset}\n </AvatarView>\n );\n }\n return sentiment === 'proposition' ? (\n <AvatarView\n id={mediaId}\n size={48}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n >\n <GiftBox />\n </AvatarView>\n ) : (\n <StatusIcon\n id={mediaId}\n size={48}\n sentiment={sentiment}\n iconLabel={media['aria-hidden'] ? null : media['aria-label']}\n />\n );\n}\n"],"names":["renderPromptMedia","media","sentiment","mediaId","imgClassName","imgSrc","_jsx","Image","id","src","className","alt","avatar","badge","status","AvatarView","size","children","asset","GiftBox","StatusIcon","iconLabel"],"mappings":";;;;;;;;AA0BM,SAAUA,iBAAiBA,CAAC;EAChCC,KAAK;EACLC,SAAS;EACTC,OAAO;AACPC,EAAAA;AAAY,CACa,EAAA;EACzB,IAAIH,KAAK,EAAEI,MAAM,EAAE;IACjB,oBACEC,cAAA,CAACC,aAAK,EAAA;AACJC,MAAAA,EAAE,EAAEL,OAAQ;MACZM,GAAG,EAAER,KAAK,CAACI,MAAO;AAClBK,MAAAA,SAAS,EAAEN,YAAa;AACxBO,MAAAA,GAAG,EAAEV,KAAK,CAAC,YAAY,CAAC,IAAI;AAAG,KAAA,CAC/B;AAEN,EAAA;EACA,IAAIA,KAAK,EAAEW,MAAM,EAAE;IACjB,MAAMC,KAAK,GAAGZ,KAAK,CAACW,MAAM,CAACC,KAAK,GAC5BZ,KAAK,CAACW,MAAM,CAACC,KAAK,GAClBX,SAAS,KAAK,aAAa,GACzB,EAAE,GACF;AAAEY,MAAAA,MAAM,EAAEZ;KAAW;IAC3B,oBACEI,cAAA,CAACS,kBAAU,EAAA;MAAA,GACLd,KAAK,CAACW,MAAM;AAChBC,MAAAA,KAAK,EAAEA,KAAM;MACb,YAAA,EAAYZ,KAAK,CAAC,YAAY,CAAE;MAChC,aAAA,EAAaA,KAAK,CAAC,aAAa,CAAE;AAClCO,MAAAA,EAAE,EAAEL,OAAQ;AACZa,MAAAA,IAAI,EAAE,EAAG;AAAAC,MAAAA,QAAA,EAERhB,KAAK,CAACW,MAAM,CAACM;AAAK,KACT,CAAC;AAEjB,EAAA;AACA,EAAA,OAAOhB,SAAS,KAAK,aAAa,gBAChCI,cAAA,CAACS,kBAAU,EAAA;AACTP,IAAAA,EAAE,EAAEL,OAAQ;AACZa,IAAAA,IAAI,EAAE,EAAG;IACT,YAAA,EAAYf,KAAK,CAAC,YAAY,CAAE;IAChC,aAAA,EAAaA,KAAK,CAAC,aAAa,CAAE;AAAAgB,IAAAA,QAAA,eAElCX,cAAA,CAACa,aAAO,EAAA,EAAA;AACV,GAAY,CAAC,gBAEbb,cAAA,CAACc,kBAAU,EAAA;AACTZ,IAAAA,EAAE,EAAEL,OAAQ;AACZa,IAAAA,IAAI,EAAE,EAAG;AACTd,IAAAA,SAAS,EAAEA,SAAU;IACrBmB,SAAS,EAAEpB,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,GAAGA,KAAK,CAAC,YAAY;AAAE,GAAA,CAEhE;AACH;;;;"}
@@ -1,50 +0,0 @@
1
- import { GiftBox } from '@transferwise/icons';
2
- import AvatarView from '../../avatarView/AvatarView.mjs';
3
- import Image from '../../image/Image.mjs';
4
- import StatusIcon from '../../statusIcon/StatusIcon.mjs';
5
- import { jsx } from 'react/jsx-runtime';
6
-
7
- function renderPromptMedia({
8
- media,
9
- sentiment,
10
- mediaId,
11
- imgClassName
12
- }) {
13
- if (media?.imgSrc) {
14
- return /*#__PURE__*/jsx(Image, {
15
- id: mediaId,
16
- src: media.imgSrc,
17
- className: imgClassName,
18
- alt: media['aria-label'] ?? ''
19
- });
20
- }
21
- if (media?.avatar) {
22
- const badge = media.avatar.badge ? media.avatar.badge : sentiment === 'proposition' ? {} : {
23
- status: sentiment
24
- };
25
- return /*#__PURE__*/jsx(AvatarView, {
26
- ...media.avatar,
27
- badge: badge,
28
- "aria-label": media['aria-label'],
29
- "aria-hidden": media['aria-hidden'],
30
- id: mediaId,
31
- size: 48,
32
- children: media.avatar.asset
33
- });
34
- }
35
- return sentiment === 'proposition' ? /*#__PURE__*/jsx(AvatarView, {
36
- id: mediaId,
37
- size: 48,
38
- "aria-label": media['aria-label'],
39
- "aria-hidden": media['aria-hidden'],
40
- children: /*#__PURE__*/jsx(GiftBox, {})
41
- }) : /*#__PURE__*/jsx(StatusIcon, {
42
- id: mediaId,
43
- size: 48,
44
- sentiment: sentiment,
45
- iconLabel: media['aria-hidden'] ? null : media['aria-label']
46
- });
47
- }
48
-
49
- export { renderPromptMedia };
50
- //# sourceMappingURL=promptMedia.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promptMedia.mjs","sources":["../../../src/prompt/helpers/promptMedia.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { GiftBox } from '@transferwise/icons';\n\nimport AvatarView, { AvatarViewProps } from '../../avatarView';\nimport Image from '../../image';\nimport StatusIcon from '../../statusIcon';\nimport { BadgeAssetsProps } from '../../badge';\nimport { PrimitivePromptProps } from '../PrimitivePrompt';\n\nexport type PromptMedia = {\n imgSrc?: string;\n avatar?: Pick<AvatarViewProps, 'imgSrc' | 'profileName' | 'profileType'> & {\n asset?: AvatarViewProps['children'];\n badge?: Pick<BadgeAssetsProps, 'flagCode'>;\n };\n 'aria-label'?: string;\n 'aria-hidden'?: boolean;\n};\n\ntype RenderPromptMediaOptions = {\n media: PromptMedia;\n sentiment: PrimitivePromptProps['sentiment'];\n mediaId: string;\n imgClassName: string;\n};\n\nexport function renderPromptMedia({\n media,\n sentiment,\n mediaId,\n imgClassName,\n}: RenderPromptMediaOptions): ReactNode {\n if (media?.imgSrc) {\n return (\n <Image\n id={mediaId}\n src={media.imgSrc}\n className={imgClassName}\n alt={media['aria-label'] ?? ''}\n />\n );\n }\n if (media?.avatar) {\n const badge = media.avatar.badge\n ? media.avatar.badge\n : sentiment === 'proposition'\n ? {}\n : { status: sentiment };\n return (\n <AvatarView\n {...media.avatar}\n badge={badge}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n id={mediaId}\n size={48}\n >\n {media.avatar.asset}\n </AvatarView>\n );\n }\n return sentiment === 'proposition' ? (\n <AvatarView\n id={mediaId}\n size={48}\n aria-label={media['aria-label']}\n aria-hidden={media['aria-hidden']}\n >\n <GiftBox />\n </AvatarView>\n ) : (\n <StatusIcon\n id={mediaId}\n size={48}\n sentiment={sentiment}\n iconLabel={media['aria-hidden'] ? null : media['aria-label']}\n />\n );\n}\n"],"names":["renderPromptMedia","media","sentiment","mediaId","imgClassName","imgSrc","_jsx","Image","id","src","className","alt","avatar","badge","status","AvatarView","size","children","asset","GiftBox","StatusIcon","iconLabel"],"mappings":";;;;;;AA0BM,SAAUA,iBAAiBA,CAAC;EAChCC,KAAK;EACLC,SAAS;EACTC,OAAO;AACPC,EAAAA;AAAY,CACa,EAAA;EACzB,IAAIH,KAAK,EAAEI,MAAM,EAAE;IACjB,oBACEC,GAAA,CAACC,KAAK,EAAA;AACJC,MAAAA,EAAE,EAAEL,OAAQ;MACZM,GAAG,EAAER,KAAK,CAACI,MAAO;AAClBK,MAAAA,SAAS,EAAEN,YAAa;AACxBO,MAAAA,GAAG,EAAEV,KAAK,CAAC,YAAY,CAAC,IAAI;AAAG,KAAA,CAC/B;AAEN,EAAA;EACA,IAAIA,KAAK,EAAEW,MAAM,EAAE;IACjB,MAAMC,KAAK,GAAGZ,KAAK,CAACW,MAAM,CAACC,KAAK,GAC5BZ,KAAK,CAACW,MAAM,CAACC,KAAK,GAClBX,SAAS,KAAK,aAAa,GACzB,EAAE,GACF;AAAEY,MAAAA,MAAM,EAAEZ;KAAW;IAC3B,oBACEI,GAAA,CAACS,UAAU,EAAA;MAAA,GACLd,KAAK,CAACW,MAAM;AAChBC,MAAAA,KAAK,EAAEA,KAAM;MACb,YAAA,EAAYZ,KAAK,CAAC,YAAY,CAAE;MAChC,aAAA,EAAaA,KAAK,CAAC,aAAa,CAAE;AAClCO,MAAAA,EAAE,EAAEL,OAAQ;AACZa,MAAAA,IAAI,EAAE,EAAG;AAAAC,MAAAA,QAAA,EAERhB,KAAK,CAACW,MAAM,CAACM;AAAK,KACT,CAAC;AAEjB,EAAA;AACA,EAAA,OAAOhB,SAAS,KAAK,aAAa,gBAChCI,GAAA,CAACS,UAAU,EAAA;AACTP,IAAAA,EAAE,EAAEL,OAAQ;AACZa,IAAAA,IAAI,EAAE,EAAG;IACT,YAAA,EAAYf,KAAK,CAAC,YAAY,CAAE;IAChC,aAAA,EAAaA,KAAK,CAAC,aAAa,CAAE;AAAAgB,IAAAA,QAAA,eAElCX,GAAA,CAACa,OAAO,EAAA,EAAA;AACV,GAAY,CAAC,gBAEbb,GAAA,CAACc,UAAU,EAAA;AACTZ,IAAAA,EAAE,EAAEL,OAAQ;AACZa,IAAAA,IAAI,EAAE,EAAG;AACTd,IAAAA,SAAS,EAAEA,SAAU;IACrBmB,SAAS,EAAEpB,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,GAAGA,KAAK,CAAC,YAAY;AAAE,GAAA,CAEhE;AACH;;;;"}
@@ -1,132 +0,0 @@
1
- .wds-critical-banner {
2
- --Prompt-padding: var(--size-16);
3
- --Prompt-actions-gap: var(--size-8);
4
- --Prompt-gap: var(--size-10) var(--size-16);
5
- --Prompt-border-radius: 0;
6
- container-type: inline-size;
7
- --critical-banner-easing: cubic-bezier(0.9, 0, 0.7, 1);
8
- --critical-banner-duration: 150ms;
9
- /* Override PrimitivePrompt's --screen-sm-max actions behaviour:
10
- actions only go full-width below mobile-max token (container query) */
11
- }
12
- .wds-critical-banner--media-image {
13
- width: 48px;
14
- width: var(--size-48);
15
- height: 48px;
16
- height: var(--size-48);
17
- -o-object-fit: contain;
18
- object-fit: contain;
19
- }
20
- .wds-critical-banner__title {
21
- display: -webkit-box;
22
- -webkit-line-clamp: 8;
23
- line-clamp: 8;
24
- -webkit-box-orient: vertical;
25
- max-height: 192px;
26
- overflow: hidden;
27
- transition: max-height var(--critical-banner-duration) var(--critical-banner-easing);
28
- }
29
- .wds-critical-banner--collapsed .wds-critical-banner__title {
30
- -webkit-line-clamp: 2;
31
- line-clamp: 2;
32
- max-height: 48px;
33
- }
34
- .wds-critical-banner__description {
35
- max-height: 30vh;
36
- opacity: 1;
37
- overflow: hidden;
38
- transition: max-height var(--critical-banner-duration) var(--critical-banner-easing), opacity var(--critical-banner-duration) var(--critical-banner-easing);
39
- }
40
- .wds-critical-banner--collapsed .wds-critical-banner__description--with-title {
41
- max-height: 0;
42
- opacity: 0;
43
- }
44
- .wds-critical-banner--collapsed .wds-critical-banner__description:not(.wds-critical-banner__description--with-title) {
45
- display: -webkit-box;
46
- -webkit-line-clamp: 2;
47
- line-clamp: 2;
48
- -webkit-box-orient: vertical;
49
- overflow: hidden;
50
- }
51
- .wds-critical-banner .wds-prompt__content-wrapper {
52
- grid-template-columns: auto 1fr auto;
53
- align-items: flex-start;
54
- transition: row-gap var(--critical-banner-duration) var(--critical-banner-easing);
55
- }
56
- .wds-critical-banner--collapsed .wds-prompt__content-wrapper {
57
- row-gap: 0;
58
- }
59
- .wds-critical-banner__text-wrapper {
60
- position: relative;
61
- display: flex;
62
- flex-direction: column;
63
- justify-content: center;
64
- min-width: 0;
65
- max-width: 480px;
66
- height: 100%;
67
- padding-top: 3px;
68
- }
69
- @media (max-width: 320px) {
70
- .wds-critical-banner__text-wrapper {
71
- padding-top: 0;
72
- }
73
- }
74
- @container (--screen-400-zoom) {
75
- .wds-critical-banner__text-wrapper {
76
- padding-top: 0px;
77
- }
78
- }
79
- .wds-critical-banner--collapsed .wds-critical-banner__title,
80
- .wds-critical-banner--collapsed .wds-critical-banner__description {
81
- transform: translateY(0);
82
- }
83
- .wds-critical-banner__toggle {
84
- flex-shrink: 0;
85
- transition: transform var(--critical-banner-duration) var(--critical-banner-easing);
86
- }
87
- .wds-critical-banner__toggle--collapsed {
88
- transform: rotate(180deg);
89
- }
90
- @container (min-width: 768px) {
91
- .wds-critical-banner__toggle {
92
- display: none;
93
- }
94
- }
95
- .wds-critical-banner .wds-prompt__actions-wrapper {
96
- grid-column-start: 2;
97
- grid-column-end: 3;
98
- max-height: 200px;
99
- opacity: 1;
100
- overflow: visible;
101
- }
102
- @container (max-width: 600px) {
103
- .wds-critical-banner .wds-prompt__actions-wrapper {
104
- grid-column: span 3;
105
- width: 100%;
106
- }
107
- .wds-critical-banner .wds-prompt__actions-wrapper .wds-Button {
108
- flex: 1 1 100%;
109
- width: 100%;
110
- }
111
- }
112
- .wds-critical-banner--collapsed .wds-prompt__actions-wrapper {
113
- max-height: 0;
114
- opacity: 0;
115
- overflow: hidden;
116
- pointer-events: none;
117
- }
118
- @container (max-width: 600px) {
119
- .wds-critical-banner--with-two-actions .wds-prompt__actions-wrapper .wds-Button {
120
- flex: 1 1 calc(50% - (var(--Prompt-actions-gap) / 2));
121
- min-width: -moz-fit-content;
122
- min-width: fit-content;
123
- }
124
- }
125
- @media (prefers-reduced-motion: reduce) {
126
- .wds-critical-banner__description,
127
- .wds-critical-banner__title,
128
- .wds-critical-banner .wds-prompt__content-wrapper,
129
- .wds-critical-banner__toggle {
130
- transition: none !important;
131
- }
132
- }
@@ -1,8 +0,0 @@
1
- .wds-expander-toggle {
2
- align-self: flex-start;
3
- flex-shrink: 0;
4
- transition: transform 0.2s ease-in-out;
5
- }
6
- .wds-expander-toggle--collapsed {
7
- transform: rotate(180deg);
8
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * Hook that returns a ref and a boolean indicating if the container
3
- * has a width >= the specified breakpoint.
4
- *
5
- * Useful for synchronizing React state with CSS container queries.
6
- *
7
- * Uses content-box measurements to match CSS container query behavior
8
- * (excludes padding and border).
9
- *
10
- * @param breakpoint - Minimum width in pixels
11
- * @returns [ref, isAboveBreakpoint] tuple
12
- */
13
- export declare function useContainerSize(breakpoint: number): [React.RefObject<HTMLDivElement>, boolean];
14
- //# sourceMappingURL=useContainerSize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useContainerSize.d.ts","sourceRoot":"","sources":["../../../../src/common/hooks/useContainerSize.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAe/F"}
@@ -1,39 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { ButtonProps } from '../../button/Button.types';
3
- import { PrimitivePromptProps } from '../PrimitivePrompt';
4
- import { PromptMedia } from '../helpers/promptMedia';
5
- export type CriticalBannerProps = {
6
- title?: ReactNode;
7
- description: ReactNode;
8
- media?: PromptMedia;
9
- action?: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {
10
- label: ButtonProps['children'];
11
- };
12
- actionSecondary?: Pick<ButtonProps, 'onClick' | 'href' | 'target'> & {
13
- label: ButtonProps['children'];
14
- };
15
- sentiment?: Exclude<PrimitivePromptProps['sentiment'], 'proposition'>;
16
- /**
17
- * Controls whether the description and actions are visible, as a controlled component.
18
- * When collapsed with a title, only the title is shown.
19
- * When collapsed without a title, the description is trimmed to 2 lines.
20
- *
21
- * Note: On desktop (container width >= 768px), the banner is always expanded
22
- * regardless of this prop value.
23
- */
24
- expanded?: boolean;
25
- /**
26
- * Called when the user clicks the chevron toggle.
27
- * If not provided, the component will manage expanded state internally.
28
- */
29
- onToggle?: () => void;
30
- } & Pick<PrimitivePromptProps, 'id' | 'className' | 'data-testid'>;
31
- /**
32
- * A full-width, non-dismissible banner for critical messages such as account blocks or
33
- * time-sensitive actions that require immediate user attention.
34
-
35
- * @see {@link https://wise.design/components/critical-banner Design Spec}
36
- */
37
- export declare const CriticalBanner: ({ sentiment, title, description, media, action, actionSecondary, expanded: expandedProp, onToggle, id, className, "data-testid": testId, }: CriticalBannerProps) => import("react").JSX.Element;
38
- export default CriticalBanner;
39
- //# sourceMappingURL=CriticalBanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CriticalBanner.d.ts","sourceRoot":"","sources":["../../../../src/prompt/CriticalBanner/CriticalBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,OAAO,CAAC;AAM9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAqB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKxE,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QAC1D,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;IACF,eAAe,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QACnE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;IACtE;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,4IAY5B,mBAAmB,gCAoHrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,18 +0,0 @@
1
- import { ReactNode } from 'react';
2
- /**
3
- * Helper to extract string from ReactNode for announcements.
4
- * Complex ReactNodes (JSX elements) return empty string.
5
- */
6
- export declare const getStringValue: (node: ReactNode) => string;
7
- /**
8
- * Builds the announcement string from visible content only.
9
- * Content visibility depends on expanded state and presence of title.
10
- */
11
- export declare const buildAnnouncementString: ({ title, description, expanded, actionLabel, actionSecondaryLabel, }: {
12
- title?: ReactNode;
13
- description?: ReactNode;
14
- expanded: boolean;
15
- actionLabel?: ReactNode;
16
- actionSecondaryLabel?: ReactNode;
17
- }) => string;
18
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/prompt/CriticalBanner/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,KAAG,MAKhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,sEAMrC;IACD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oBAAoB,CAAC,EAAE,SAAS,CAAC;CAClC,KAAG,MASH,CAAC"}
@@ -1,3 +0,0 @@
1
- export type { CriticalBannerProps } from './CriticalBanner';
2
- export { CriticalBanner } from './CriticalBanner';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/prompt/CriticalBanner/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,20 +0,0 @@
1
- export type ExpanderState = {
2
- expanded: boolean;
3
- toggle: () => void;
4
- setExpanded: (expanded: boolean) => void;
5
- };
6
- export declare function useExpanderState(initialExpanded?: boolean): ExpanderState;
7
- export declare function shouldShowWhenExpanded({ expanded, hasContent, alwaysShow, }: {
8
- expanded: boolean;
9
- hasContent: boolean;
10
- alwaysShow?: boolean;
11
- }): boolean;
12
- export type ExpanderToggleProps = {
13
- expanded: boolean;
14
- onToggle?: () => void;
15
- size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;
16
- className?: string;
17
- 'data-testid'?: string;
18
- };
19
- export declare const ExpanderToggle: ({ expanded, onToggle, size, className, "data-testid": testId, }: ExpanderToggleProps) => import("react").JSX.Element;
20
- //# sourceMappingURL=Expander.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Expander.d.ts","sourceRoot":"","sources":["../../../../../src/prompt/common/Expander/Expander.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C,CAAC;AAGF,wBAAgB,gBAAgB,CAAC,eAAe,UAAO,GAAG,aAAa,CAYtE;AAGD,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,UAAU,EACV,UAAkB,GACnB,EAAE;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAMV;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,iEAM5B,mBAAmB,gCAsBrB,CAAC"}
@@ -1,14 +0,0 @@
1
- declare const _default: {
2
- expandAriaLabel: {
3
- id: string;
4
- defaultMessage: string;
5
- description: string;
6
- };
7
- collapseAriaLabel: {
8
- id: string;
9
- defaultMessage: string;
10
- description: string;
11
- };
12
- };
13
- export default _default;
14
- //# sourceMappingURL=Expander.messages.d.ts.map