@iabbb/bds-react 0.45.2 → 0.45.3

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.
@@ -11,5 +11,4 @@ export type ErrorSummaryProps = {
11
11
  errors: Record<string, Array<string> | string> | null;
12
12
  mapNameToId?: (name: string) => string;
13
13
  };
14
- declare const ErrorSummary: React.ForwardRefExoticComponent<ErrorSummaryProps & React.RefAttributes<HTMLDivElement>>;
15
- export default ErrorSummary;
14
+ export default function BdsErrorSummary({ errors, mapNameToId, ...props }: ErrorSummaryProps & React.ComponentPropsWithoutRef<'div'>): React.JSX.Element | null;
@@ -107,7 +107,7 @@ function getAssociatedLegendOrLabel(input) {
107
107
  var _excluded = ["errors", "mapNameToId"];
108
108
  var FormErrorKey = '_form';
109
109
  var FINAL_FORM_ERROR = 'FINAL_FORM/form-error';
110
- var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
110
+ function BdsErrorSummary(_ref) {
111
111
  var errors = _ref.errors,
112
112
  _ref$mapNameToId = _ref.mapNameToId,
113
113
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -115,7 +115,13 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
115
115
  } : _ref$mapNameToId,
116
116
  props = _objectWithoutProperties(_ref, _excluded);
117
117
  var headingId = React__namespace.useId();
118
- var isEmpty = !errors || Object.keys(errors).length === 0;
118
+ var groupRef = React__namespace.useRef(null);
119
+ React__namespace.useEffect(function () {
120
+ if (!errors || Object.keys(errors).length === 0) return;
121
+ if (!groupRef.current) return;
122
+ groupRef.current.focus();
123
+ }, [errors]);
124
+ if (!errors || Object.keys(errors).length === 0) return null;
119
125
  var handleLinkClick = function handleLinkClick(e) {
120
126
  var inputId = getFragmentFromUrl(e.currentTarget.href);
121
127
  if (!inputId) {
@@ -137,11 +143,10 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
137
143
  };
138
144
  return /*#__PURE__*/React__namespace.createElement("bds-error-summary", _extends({
139
145
  role: "group",
140
- "aria-labelledby": !isEmpty ? headingId : undefined,
141
- hidden: isEmpty ? true : undefined,
142
- ref: ref,
146
+ "aria-labelledby": headingId,
147
+ ref: groupRef,
143
148
  tabIndex: -1
144
- }, props), !isEmpty && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("h2", {
149
+ }, props), /*#__PURE__*/React__namespace.createElement("h2", {
145
150
  className: "bds-h5",
146
151
  id: headingId
147
152
  }, /*#__PURE__*/React__namespace.createElement("svg", {
@@ -177,9 +182,9 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
177
182
  onClick: handleLinkClick
178
183
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
179
184
  }));
180
- }))));
181
- });
185
+ })));
186
+ }
182
187
 
183
188
  exports.FormErrorKey = FormErrorKey;
184
- exports.default = ErrorSummary;
189
+ exports.default = BdsErrorSummary;
185
190
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/ErrorSummary/utils.ts","../../src/ErrorSummary/ErrorSummary.tsx"],"sourcesContent":["export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nconst ErrorSummary = React.forwardRef<HTMLDivElement, ErrorSummaryProps>(\n ({ errors, mapNameToId = (name) => name, ...props }, ref) => {\n const headingId = React.useId();\n\n const isEmpty = !errors || Object.keys(errors).length === 0;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary\n role=\"group\"\n aria-labelledby={!isEmpty ? headingId : undefined}\n hidden={isEmpty ? true : undefined}\n ref={ref}\n tabIndex={-1}\n {...props}\n >\n {!isEmpty && (\n <>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </>\n )}\n </bds-error-summary>\n );\n },\n);\n\nexport default ErrorSummary;\n"],"names":["getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","ErrorSummary","React","forwardRef","_ref","ref","errors","_ref$mapNameToId","mapNameToId","name","props","_objectWithoutProperties","_excluded","headingId","useId","isEmpty","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","preventDefault","scrollIntoView","focus","preventScroll","createElement","_extends","role","hidden","tabIndex","Fragment","className","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","fieldMessage","index","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/ErrorSummary/utils.ts","../../src/ErrorSummary/ErrorSummary.tsx"],"sourcesContent":["export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nexport default function BdsErrorSummary({\n errors,\n mapNameToId = (name) => name,\n ...props\n}: ErrorSummaryProps & React.ComponentPropsWithoutRef<'div'>) {\n const headingId = React.useId();\n const groupRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n if (!errors || Object.keys(errors).length === 0) return;\n if (!groupRef.current) return;\n\n groupRef.current.focus();\n }, [errors]);\n\n if (!errors || Object.keys(errors).length === 0) return null;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary role=\"group\" aria-labelledby={headingId} ref={groupRef} tabIndex={-1} {...props}>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </bds-error-summary>\n );\n}\n"],"names":["getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","BdsErrorSummary","_ref","errors","_ref$mapNameToId","mapNameToId","name","props","_objectWithoutProperties","_excluded","headingId","React","useId","groupRef","useRef","useEffect","Object","keys","current","focus","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","preventDefault","scrollIntoView","preventScroll","createElement","_extends","role","ref","tabIndex","className","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","Fragment","fieldMessage","index","onClick"],"mappings":"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"}
@@ -84,7 +84,7 @@ function getAssociatedLegendOrLabel(input) {
84
84
  var _excluded = ["errors", "mapNameToId"];
85
85
  var FormErrorKey = '_form';
86
86
  var FINAL_FORM_ERROR = 'FINAL_FORM/form-error';
87
- var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
87
+ function BdsErrorSummary(_ref) {
88
88
  var errors = _ref.errors,
89
89
  _ref$mapNameToId = _ref.mapNameToId,
90
90
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -92,7 +92,13 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
92
92
  } : _ref$mapNameToId,
93
93
  props = _objectWithoutProperties(_ref, _excluded);
94
94
  var headingId = React.useId();
95
- var isEmpty = !errors || Object.keys(errors).length === 0;
95
+ var groupRef = React.useRef(null);
96
+ React.useEffect(function () {
97
+ if (!errors || Object.keys(errors).length === 0) return;
98
+ if (!groupRef.current) return;
99
+ groupRef.current.focus();
100
+ }, [errors]);
101
+ if (!errors || Object.keys(errors).length === 0) return null;
96
102
  var handleLinkClick = function handleLinkClick(e) {
97
103
  var inputId = getFragmentFromUrl(e.currentTarget.href);
98
104
  if (!inputId) {
@@ -114,11 +120,10 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
114
120
  };
115
121
  return /*#__PURE__*/React.createElement("bds-error-summary", _extends({
116
122
  role: "group",
117
- "aria-labelledby": !isEmpty ? headingId : undefined,
118
- hidden: isEmpty ? true : undefined,
119
- ref: ref,
123
+ "aria-labelledby": headingId,
124
+ ref: groupRef,
120
125
  tabIndex: -1
121
- }, props), !isEmpty && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h2", {
126
+ }, props), /*#__PURE__*/React.createElement("h2", {
122
127
  className: "bds-h5",
123
128
  id: headingId
124
129
  }, /*#__PURE__*/React.createElement("svg", {
@@ -154,8 +159,8 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
154
159
  onClick: handleLinkClick
155
160
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
156
161
  }));
157
- }))));
158
- });
162
+ })));
163
+ }
159
164
 
160
- export { FormErrorKey, ErrorSummary as default };
165
+ export { FormErrorKey, BdsErrorSummary as default };
161
166
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/ErrorSummary/utils.ts","../../src/ErrorSummary/ErrorSummary.tsx"],"sourcesContent":["export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nconst ErrorSummary = React.forwardRef<HTMLDivElement, ErrorSummaryProps>(\n ({ errors, mapNameToId = (name) => name, ...props }, ref) => {\n const headingId = React.useId();\n\n const isEmpty = !errors || Object.keys(errors).length === 0;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary\n role=\"group\"\n aria-labelledby={!isEmpty ? headingId : undefined}\n hidden={isEmpty ? true : undefined}\n ref={ref}\n tabIndex={-1}\n {...props}\n >\n {!isEmpty && (\n <>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </>\n )}\n </bds-error-summary>\n );\n },\n);\n\nexport default ErrorSummary;\n"],"names":["getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","ErrorSummary","React","forwardRef","_ref","ref","errors","_ref$mapNameToId","mapNameToId","name","props","_objectWithoutProperties","_excluded","headingId","useId","isEmpty","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","preventDefault","scrollIntoView","focus","preventScroll","createElement","_extends","role","hidden","tabIndex","Fragment","className","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","fieldMessage","index","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,kBAAkBA,CAACC,GAAW,EAAE;AAC9C,EAAA,OAAOA,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,GAAGC,SAAS,CAAA;AAC7D,CAAA;AAEO,SAASC,0BAA0BA,CAACC,KAAkB,EAAE;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAC7D,EAAA,IAAMC,QAAQ,GAAGF,KAAK,CAACG,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,EAAA,IAAID,QAAQ,EAAE;AACZ,IAAA,IAAME,OAAO,GAAGF,QAAQ,CAACG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAEvD,IAAID,OAAO,CAACE,MAAM,EAAE;AAClB,MAAA,IAAMC,eAAe,GAAGH,OAAO,CAAC,CAAC,CAAC,CAAA;;AAElC;AACA;AACA,MAAA,IAAIJ,KAAK,YAAYQ,gBAAgB,KAAKR,KAAK,CAACS,IAAI,KAAK,UAAU,IAAIT,KAAK,CAACS,IAAI,KAAK,OAAO,CAAC,EAAE;AAC9F,QAAA,OAAOF,eAAe,CAAA;AACxB,OAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;MACA,IAAMG,SAAS,GAAGH,eAAe,CAACI,qBAAqB,EAAE,CAACC,GAAG,CAAA;AAC7D,MAAA,IAAMC,SAAS,GAAGb,KAAK,CAACW,qBAAqB,EAAE,CAAA;;AAE/C;AACA;AACA,MAAA,IAAIE,SAAS,CAACC,MAAM,IAAIC,MAAM,CAACC,WAAW,EAAE;QAC1C,IAAMC,WAAW,GAAGJ,SAAS,CAACD,GAAG,GAAGC,SAAS,CAACC,MAAM,CAAA;QAEpD,IAAIG,WAAW,GAAGP,SAAS,GAAGK,MAAM,CAACC,WAAW,GAAG,CAAC,EAAE;AACpD,UAAA,OAAOT,eAAe,CAAA;AACxB,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;EAEA,OAAAN,CAAAA,qBAAA,GAAOiB,QAAQ,CAACC,aAAa,CAAAC,aAAAA,CAAAA,MAAA,CAAepB,KAAK,CAACqB,YAAY,CAAC,IAAI,CAAC,EAAI,IAAA,CAAA,CAAC,MAAApB,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAID,KAAK,CAACG,OAAO,CAAC,OAAO,CAAC,CAAA;AACrG;;;AC7BO,IAAMmB,YAAY,GAAG,QAAO;AAEnC,IAAMC,gBAAgB,GAAG,uBAAuB,CAAA;AAO1CC,IAAAA,YAAY,gBAAGC,KAAK,CAACC,UAAU,CACnC,UAAAC,IAAA,EAAqDC,GAAG,EAAK;AAAA,EAAA,IAA1DC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAAC,gBAAA,GAAAH,IAAA,CAAEI,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,UAACE,IAAI,EAAA;AAAA,MAAA,OAAKA,IAAI,CAAA;AAAA,KAAA,GAAAF,gBAAA;AAAKG,IAAAA,KAAK,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA,CAAA;AAC/C,EAAA,IAAMC,SAAS,GAAGX,KAAK,CAACY,KAAK,EAAE,CAAA;AAE/B,EAAA,IAAMC,OAAO,GAAG,CAACT,MAAM,IAAIU,MAAM,CAACC,IAAI,CAACX,MAAM,CAAC,CAACvB,MAAM,KAAK,CAAC,CAAA;AAE3D,EAAA,IAAMmC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,CAAC,EAAK;IAC7B,IAAMC,OAAO,GAAGlD,kBAAkB,CAACiD,CAAC,CAACE,aAAa,CAACC,IAAI,CAAC,CAAA;IAExD,IAAI,CAACF,OAAO,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAM3C,KAAK,GAAGkB,QAAQ,CAAC4B,cAAc,CAACH,OAAO,CAAC,CAAA;IAE9C,IAAI,CAAC3C,KAAK,EAAE;AACV,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAM+C,aAAa,GAAGhD,0BAA0B,CAACC,KAAK,CAAC,CAAA;IAEvD,IAAI,CAAC+C,aAAa,EAAE;AAClB,MAAA,OAAA;AACF,KAAA;IAEAL,CAAC,CAACM,cAAc,EAAE,CAAA;IAElBD,aAAa,CAACE,cAAc,EAAE,CAAA;IAC9BjD,KAAK,CAACkD,KAAK,CAAC;AAAEC,MAAAA,aAAa,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;GACrC,CAAA;AAED,EAAA,oBACE1B,KAAA,CAAA2B,aAAA,CAAA,mBAAA,EAAAC,QAAA,CAAA;AACEC,IAAAA,IAAI,EAAC,OAAO;AACZ,IAAA,iBAAA,EAAiB,CAAChB,OAAO,GAAGF,SAAS,GAAGtC,SAAU;AAClDyD,IAAAA,MAAM,EAAEjB,OAAO,GAAG,IAAI,GAAGxC,SAAU;AACnC8B,IAAAA,GAAG,EAAEA,GAAI;AACT4B,IAAAA,QAAQ,EAAE,CAAC,CAAA;AAAE,GAAA,EACTvB,KAAK,CAAA,EAER,CAACK,OAAO,iBACPb,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAAgC,QAAA,EACEhC,IAAAA,eAAAA,KAAA,CAAA2B,aAAA,CAAA,IAAA,EAAA;AAAIM,IAAAA,SAAS,EAAC,QAAQ;AAACC,IAAAA,EAAE,EAAEvB,SAAAA;GACzBX,eAAAA,KAAA,CAAA2B,aAAA,CAAA,KAAA,EAAA;AACEQ,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClB/C,IAAAA,MAAM,EAAC,KAAK;AACZgD,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAELtC,eAAAA,KAAA,CAAA2B,aAAA,CAAA,MAAA,EAAA;AAAMY,IAAAA,CAAC,EAAC,4UAAA;GAA8U,CACnV,CAAC,EAEJ,OAAA,CAAC,eACLvC,KAAA,CAAA2B,aAAA,CACGb,IAAAA,EAAAA,IAAAA,EAAAA,MAAM,CAACC,IAAI,CAACX,MAAM,CAAC,CAACoC,GAAG,CAAC,UAACC,QAAQ,EAAK;AACrC,IAAA,IAAMC,OAAO,GAAGtC,MAAM,CAACqC,QAAQ,CAAC,CAAA;IAChC,IAAME,WAAW,GAAG,CAAC7C,gBAAgB,EAAED,YAAY,CAAC,CAAC3B,QAAQ,CAACuE,QAAQ,CAAC,CAAA;AAEvE,IAAA,IAAIE,WAAW,EAAE;MACf,oBAAO3C,KAAA,CAAA2B,aAAA,CAAA,IAAA,EAAA;AAAIiB,QAAAA,GAAG,EAAEH,QAAS;AAACI,QAAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEJ,OAAAA;AAAQ,SAAA;AAAE,OAAE,CAAC,CAAA;AAC5E,KAAA;AAEA,IAAA,IAAMK,YAAY,GAAGC,KAAK,CAACC,OAAO,CAACP,OAAO,CAAC,CAAA;IAE3C,IAAMQ,QAAQ,GAAGH,YAAY,GAAGL,OAAO,GAAG,CAACA,OAAO,CAAC,CAAA;AAEnD,IAAA,oBACE1C,KAAA,CAAA2B,aAAA,CAAC3B,KAAK,CAACgC,QAAQ,EAAA;AAACY,MAAAA,GAAG,EAAEH,QAAAA;KAClBS,EAAAA,QAAQ,CAACV,GAAG,CAAC,UAACW,YAAY,EAAEC,KAAK,EAAK;AACrC,MAAA,IAAMlC,OAAO,GAAAvB,EAAAA,CAAAA,MAAA,CAAMW,WAAW,CAACmC,QAAQ,CAAC,CAAA,CAAA9C,MAAA,CAAGoD,YAAY,GAAApD,GAAAA,CAAAA,MAAA,CAAOyD,KAAK,EAAA,GAAA,CAAA,GAAM,EAAE,CAAE,CAAA;MAE7E,oBACEpD,KAAA,CAAA2B,aAAA,CAAA,IAAA,EAAA;AAAIiB,QAAAA,GAAG,EAAE1B,OAAAA;OACPlB,eAAAA,KAAA,CAAA2B,aAAA,CAAA,GAAA,EAAA;AAAGP,QAAAA,IAAI,EAAAzB,GAAAA,CAAAA,MAAA,CAAMuB,OAAO,CAAG;AAACmC,QAAAA,OAAO,EAAErC,eAAAA;OAC9BmC,EAAAA,YAAY,EACZD,QAAQ,CAACrE,MAAM,GAAG,CAAC,GAAAc,IAAAA,CAAAA,MAAA,CAAQyD,KAAK,GAAG,CAAC,EAAA,MAAA,CAAA,CAAAzD,MAAA,CAAOuD,QAAQ,CAACrE,MAAM,EAAA,GAAA,CAAA,GAAMR,SAChE,CACD,CAAC,CAAA;AAET,KAAC,CACa,CAAC,CAAA;GAEpB,CACC,CACJ,CAEa,CAAC,CAAA;AAExB,CACF;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/ErrorSummary/utils.ts","../../src/ErrorSummary/ErrorSummary.tsx"],"sourcesContent":["export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nexport default function BdsErrorSummary({\n errors,\n mapNameToId = (name) => name,\n ...props\n}: ErrorSummaryProps & React.ComponentPropsWithoutRef<'div'>) {\n const headingId = React.useId();\n const groupRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n if (!errors || Object.keys(errors).length === 0) return;\n if (!groupRef.current) return;\n\n groupRef.current.focus();\n }, [errors]);\n\n if (!errors || Object.keys(errors).length === 0) return null;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary role=\"group\" aria-labelledby={headingId} ref={groupRef} tabIndex={-1} {...props}>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </bds-error-summary>\n );\n}\n"],"names":["getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","BdsErrorSummary","_ref","errors","_ref$mapNameToId","mapNameToId","name","props","_objectWithoutProperties","_excluded","headingId","React","useId","groupRef","useRef","useEffect","Object","keys","current","focus","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","preventDefault","scrollIntoView","preventScroll","createElement","_extends","role","ref","tabIndex","className","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","Fragment","fieldMessage","index","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,kBAAkBA,CAACC,GAAW,EAAE;AAC9C,EAAA,OAAOA,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,GAAGC,SAAS,CAAA;AAC7D,CAAA;AAEO,SAASC,0BAA0BA,CAACC,KAAkB,EAAE;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAC7D,EAAA,IAAMC,QAAQ,GAAGF,KAAK,CAACG,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,EAAA,IAAID,QAAQ,EAAE;AACZ,IAAA,IAAME,OAAO,GAAGF,QAAQ,CAACG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAEvD,IAAID,OAAO,CAACE,MAAM,EAAE;AAClB,MAAA,IAAMC,eAAe,GAAGH,OAAO,CAAC,CAAC,CAAC,CAAA;;AAElC;AACA;AACA,MAAA,IAAIJ,KAAK,YAAYQ,gBAAgB,KAAKR,KAAK,CAACS,IAAI,KAAK,UAAU,IAAIT,KAAK,CAACS,IAAI,KAAK,OAAO,CAAC,EAAE;AAC9F,QAAA,OAAOF,eAAe,CAAA;AACxB,OAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;MACA,IAAMG,SAAS,GAAGH,eAAe,CAACI,qBAAqB,EAAE,CAACC,GAAG,CAAA;AAC7D,MAAA,IAAMC,SAAS,GAAGb,KAAK,CAACW,qBAAqB,EAAE,CAAA;;AAE/C;AACA;AACA,MAAA,IAAIE,SAAS,CAACC,MAAM,IAAIC,MAAM,CAACC,WAAW,EAAE;QAC1C,IAAMC,WAAW,GAAGJ,SAAS,CAACD,GAAG,GAAGC,SAAS,CAACC,MAAM,CAAA;QAEpD,IAAIG,WAAW,GAAGP,SAAS,GAAGK,MAAM,CAACC,WAAW,GAAG,CAAC,EAAE;AACpD,UAAA,OAAOT,eAAe,CAAA;AACxB,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;EAEA,OAAAN,CAAAA,qBAAA,GAAOiB,QAAQ,CAACC,aAAa,CAAAC,aAAAA,CAAAA,MAAA,CAAepB,KAAK,CAACqB,YAAY,CAAC,IAAI,CAAC,EAAI,IAAA,CAAA,CAAC,MAAApB,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAID,KAAK,CAACG,OAAO,CAAC,OAAO,CAAC,CAAA;AACrG;;;AC7BO,IAAMmB,YAAY,GAAG,QAAO;AAEnC,IAAMC,gBAAgB,GAAG,uBAAuB,CAAA;AAOjC,SAASC,eAAeA,CAAAC,IAAA,EAIuB;AAAA,EAAA,IAH5DC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAAC,gBAAA,GAAAF,IAAA,CACNG,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,UAACE,IAAI,EAAA;AAAA,MAAA,OAAKA,IAAI,CAAA;AAAA,KAAA,GAAAF,gBAAA;AACzBG,IAAAA,KAAK,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA,CAAA,CAAA;AAER,EAAA,IAAMC,SAAS,GAAGC,KAAK,CAACC,KAAK,EAAE,CAAA;AAC/B,EAAA,IAAMC,QAAQ,GAAGF,KAAK,CAACG,MAAM,CAAc,IAAI,CAAC,CAAA;EAEhDH,KAAK,CAACI,SAAS,CAAC,YAAM;AACpB,IAAA,IAAI,CAACZ,MAAM,IAAIa,MAAM,CAACC,IAAI,CAACd,MAAM,CAAC,CAACpB,MAAM,KAAK,CAAC,EAAE,OAAA;AACjD,IAAA,IAAI,CAAC8B,QAAQ,CAACK,OAAO,EAAE,OAAA;AAEvBL,IAAAA,QAAQ,CAACK,OAAO,CAACC,KAAK,EAAE,CAAA;AAC1B,GAAC,EAAE,CAAChB,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,IAAI,CAACA,MAAM,IAAIa,MAAM,CAACC,IAAI,CAACd,MAAM,CAAC,CAACpB,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;AAE5D,EAAA,IAAMqC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,CAAC,EAAK;IAC7B,IAAMC,OAAO,GAAGpD,kBAAkB,CAACmD,CAAC,CAACE,aAAa,CAACC,IAAI,CAAC,CAAA;IAExD,IAAI,CAACF,OAAO,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAM7C,KAAK,GAAGkB,QAAQ,CAAC8B,cAAc,CAACH,OAAO,CAAC,CAAA;IAE9C,IAAI,CAAC7C,KAAK,EAAE;AACV,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAMiD,aAAa,GAAGlD,0BAA0B,CAACC,KAAK,CAAC,CAAA;IAEvD,IAAI,CAACiD,aAAa,EAAE;AAClB,MAAA,OAAA;AACF,KAAA;IAEAL,CAAC,CAACM,cAAc,EAAE,CAAA;IAElBD,aAAa,CAACE,cAAc,EAAE,CAAA;IAC9BnD,KAAK,CAAC0C,KAAK,CAAC;AAAEU,MAAAA,aAAa,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;GACrC,CAAA;AAED,EAAA,oBACElB,KAAA,CAAAmB,aAAA,CAAA,mBAAA,EAAAC,QAAA,CAAA;AAAmBC,IAAAA,IAAI,EAAC,OAAO;AAAC,IAAA,iBAAA,EAAiBtB,SAAU;AAACuB,IAAAA,GAAG,EAAEpB,QAAS;AAACqB,IAAAA,QAAQ,EAAE,CAAC,CAAA;AAAE,GAAA,EAAK3B,KAAK,CAAA,eAChGI,KAAA,CAAAmB,aAAA,CAAA,IAAA,EAAA;AAAIK,IAAAA,SAAS,EAAC,QAAQ;AAACC,IAAAA,EAAE,EAAE1B,SAAAA;GACzBC,eAAAA,KAAA,CAAAmB,aAAA,CAAA,KAAA,EAAA;AACEO,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClB/C,IAAAA,MAAM,EAAC,KAAK;AACZgD,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAEL7B,eAAAA,KAAA,CAAAmB,aAAA,CAAA,MAAA,EAAA;AAAMW,IAAAA,CAAC,EAAC,4UAAA;GAA8U,CACnV,CAAC,EAEJ,OAAA,CAAC,eACL9B,KAAA,CAAAmB,aAAA,CACGd,IAAAA,EAAAA,IAAAA,EAAAA,MAAM,CAACC,IAAI,CAACd,MAAM,CAAC,CAACuC,GAAG,CAAC,UAACC,QAAQ,EAAK;AACrC,IAAA,IAAMC,OAAO,GAAGzC,MAAM,CAACwC,QAAQ,CAAC,CAAA;IAChC,IAAME,WAAW,GAAG,CAAC7C,gBAAgB,EAAED,YAAY,CAAC,CAAC3B,QAAQ,CAACuE,QAAQ,CAAC,CAAA;AAEvE,IAAA,IAAIE,WAAW,EAAE;MACf,oBAAOlC,KAAA,CAAAmB,aAAA,CAAA,IAAA,EAAA;AAAIgB,QAAAA,GAAG,EAAEH,QAAS;AAACI,QAAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEJ,OAAAA;AAAQ,SAAA;AAAE,OAAE,CAAC,CAAA;AAC5E,KAAA;AAEA,IAAA,IAAMK,YAAY,GAAGC,KAAK,CAACC,OAAO,CAACP,OAAO,CAAC,CAAA;IAE3C,IAAMQ,QAAQ,GAAGH,YAAY,GAAGL,OAAO,GAAG,CAACA,OAAO,CAAC,CAAA;AAEnD,IAAA,oBACEjC,KAAA,CAAAmB,aAAA,CAACnB,KAAK,CAAC0C,QAAQ,EAAA;AAACP,MAAAA,GAAG,EAAEH,QAAAA;KAClBS,EAAAA,QAAQ,CAACV,GAAG,CAAC,UAACY,YAAY,EAAEC,KAAK,EAAK;AACrC,MAAA,IAAMjC,OAAO,GAAAzB,EAAAA,CAAAA,MAAA,CAAMQ,WAAW,CAACsC,QAAQ,CAAC,CAAA,CAAA9C,MAAA,CAAGoD,YAAY,GAAApD,GAAAA,CAAAA,MAAA,CAAO0D,KAAK,EAAA,GAAA,CAAA,GAAM,EAAE,CAAE,CAAA;MAE7E,oBACE5C,KAAA,CAAAmB,aAAA,CAAA,IAAA,EAAA;AAAIgB,QAAAA,GAAG,EAAExB,OAAAA;OACPX,eAAAA,KAAA,CAAAmB,aAAA,CAAA,GAAA,EAAA;AAAGN,QAAAA,IAAI,EAAA3B,GAAAA,CAAAA,MAAA,CAAMyB,OAAO,CAAG;AAACkC,QAAAA,OAAO,EAAEpC,eAAAA;OAC9BkC,EAAAA,YAAY,EACZF,QAAQ,CAACrE,MAAM,GAAG,CAAC,GAAAc,IAAAA,CAAAA,MAAA,CAAQ0D,KAAK,GAAG,CAAC,EAAA,MAAA,CAAA,CAAA1D,MAAA,CAAOuD,QAAQ,CAACrE,MAAM,EAAA,GAAA,CAAA,GAAMR,SAChE,CACD,CAAC,CAAA;AAET,KAAC,CACa,CAAC,CAAA;GAEpB,CACC,CACa,CAAC,CAAA;AAExB;;;;"}
package/index.cjs CHANGED
@@ -194,7 +194,7 @@ function getAssociatedLegendOrLabel(input) {
194
194
  var _excluded$3 = ["errors", "mapNameToId"];
195
195
  var FormErrorKey = '_form';
196
196
  var FINAL_FORM_ERROR = 'FINAL_FORM/form-error';
197
- var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
197
+ function BdsErrorSummary(_ref) {
198
198
  var errors = _ref.errors,
199
199
  _ref$mapNameToId = _ref.mapNameToId,
200
200
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -202,7 +202,13 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
202
202
  } : _ref$mapNameToId,
203
203
  props = _objectWithoutProperties(_ref, _excluded$3);
204
204
  var headingId = React__namespace.useId();
205
- var isEmpty = !errors || Object.keys(errors).length === 0;
205
+ var groupRef = React__namespace.useRef(null);
206
+ React__namespace.useEffect(function () {
207
+ if (!errors || Object.keys(errors).length === 0) return;
208
+ if (!groupRef.current) return;
209
+ groupRef.current.focus();
210
+ }, [errors]);
211
+ if (!errors || Object.keys(errors).length === 0) return null;
206
212
  var handleLinkClick = function handleLinkClick(e) {
207
213
  var inputId = getFragmentFromUrl(e.currentTarget.href);
208
214
  if (!inputId) {
@@ -224,11 +230,10 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
224
230
  };
225
231
  return /*#__PURE__*/React__namespace.createElement("bds-error-summary", _extends({
226
232
  role: "group",
227
- "aria-labelledby": !isEmpty ? headingId : undefined,
228
- hidden: isEmpty ? true : undefined,
229
- ref: ref,
233
+ "aria-labelledby": headingId,
234
+ ref: groupRef,
230
235
  tabIndex: -1
231
- }, props), !isEmpty && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("h2", {
236
+ }, props), /*#__PURE__*/React__namespace.createElement("h2", {
232
237
  className: "bds-h5",
233
238
  id: headingId
234
239
  }, /*#__PURE__*/React__namespace.createElement("svg", {
@@ -264,8 +269,8 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
264
269
  onClick: handleLinkClick
265
270
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
266
271
  }));
267
- }))));
268
- });
272
+ })));
273
+ }
269
274
 
270
275
  var _excluded$2 = ["as", "error", "hint", "id", "isOptional", "label"];
271
276
  function FieldTextInput(_ref) {
@@ -430,7 +435,7 @@ var Typography = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
430
435
 
431
436
  exports.Button = Button;
432
437
  exports.CallToAction = CallToAction;
433
- exports.ErrorSummary = ErrorSummary;
438
+ exports.ErrorSummary = BdsErrorSummary;
434
439
  exports.FieldTextInput = FieldTextInput;
435
440
  exports.Pagination = Pagination;
436
441
  exports.Typography = Typography;
package/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/Button/Button.tsx","../src/CallToAction/CallToAction.tsx","../src/ErrorSummary/utils.ts","../src/ErrorSummary/ErrorSummary.tsx","../src/FieldTextInput/FieldTextInput.tsx","../src/Pagination/Pagination.tsx","../src/Typography/Typography.tsx"],"sourcesContent":["import * as React from 'react';\n\nconst DEBOUNCE_TIMEOUT_IN_SECONDS = 1;\n\nexport interface ButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n preventDoubleClick?: boolean;\n variant?: 'cancel' | 'featured' | 'quote' | 'reverse' | 'search' | 'standard' | 'unstyled';\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, className, onClick, preventDoubleClick = false, variant = 'standard', ...props }, ref) => {\n const debounceClicks = React.useRef(false);\n\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n // 👇 button is not configured to ignore double clicks\n if (!preventDoubleClick) {\n if (onClick) {\n onClick(event);\n }\n\n return;\n }\n\n // 👇 button has been clicked recently, and subsequent clicks are prevented\n if (debounceClicks.current) {\n event.preventDefault();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n\n // 👇 block from double clicks\n debounceClicks.current = true;\n\n // 👇 and remove the block after a given amount of seconds\n setTimeout(() => {\n debounceClicks.current = false;\n }, DEBOUNCE_TIMEOUT_IN_SECONDS * 1000);\n };\n\n return (\n <button\n className={[variant === 'unstyled' ? 'bds-button-unstyled' : 'bds-button', className]\n .filter((x) => x)\n .join(' ')}\n data-type={variant !== 'standard' && variant !== 'unstyled' ? variant : null}\n onClick={handleClick}\n ref={ref}\n {...props}\n >\n {children}\n </button>\n );\n },\n);\n\nexport default Button;\n","import * as React from 'react';\n\nexport interface CallToActionProps extends React.ComponentPropsWithoutRef<'a'> {\n variant?: 'featured' | 'quote' | 'standard';\n}\n\nconst CallToAction = React.forwardRef<HTMLAnchorElement, CallToActionProps>(\n ({ children, className, variant = 'standard', ...props }, ref) => {\n return (\n <a\n className={['bds-cta', className].filter((x) => x).join(' ')}\n data-type={variant !== 'standard' ? variant : null}\n ref={ref}\n {...props}\n >\n {children}\n </a>\n );\n },\n);\n\nexport default CallToAction;\n","export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nconst ErrorSummary = React.forwardRef<HTMLDivElement, ErrorSummaryProps>(\n ({ errors, mapNameToId = (name) => name, ...props }, ref) => {\n const headingId = React.useId();\n\n const isEmpty = !errors || Object.keys(errors).length === 0;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary\n role=\"group\"\n aria-labelledby={!isEmpty ? headingId : undefined}\n hidden={isEmpty ? true : undefined}\n ref={ref}\n tabIndex={-1}\n {...props}\n >\n {!isEmpty && (\n <>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </>\n )}\n </bds-error-summary>\n );\n },\n);\n\nexport default ErrorSummary;\n","import * as React from 'react';\n\nexport type FieldTextInputProps<C> = {\n as?: C;\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n};\n\nexport default function FieldTextInput<C extends React.ElementType>({\n as,\n error,\n hint,\n id,\n isOptional = false,\n label,\n ...props\n}: FieldTextInputProps<C> & React.ComponentPropsWithoutRef<C>) {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n const InputComponent = as ?? 'input';\n\n return (\n <div className=\"bds-text-input stack\">\n <label htmlFor={id}>\n {label}\n {isOptional && ' (optional)'}\n </label>\n {hint && (\n <span className=\"bds-hint\" id={hintId}>\n {hint}\n </span>\n )}\n {error && (\n <span className=\"bds-error\" id={errorId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n {error}\n </span>\n )}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n {...props}\n />\n </div>\n );\n}\n","import * as React from 'react';\n\nexport type PaginationProps = {\n buildPageUrl: (page: number) => string;\n currentPage: number;\n onPageClick?: (page: number) => void;\n totalPages: number;\n};\n\nfunction usePages(currentPage: number, totalPages: number) {\n const pages = [1, currentPage - 1, currentPage, currentPage + 1, totalPages].filter(\n (x) => x >= 1 && x <= totalPages,\n );\n return [...new Set(pages)];\n}\n\nexport default function Pagination({\n buildPageUrl,\n className,\n currentPage,\n onPageClick,\n totalPages,\n ...props\n}: PaginationProps & React.ComponentPropsWithoutRef<'nav'>) {\n const pages = usePages(currentPage, totalPages);\n\n return (\n <nav aria-label=\"pagination\" className={['bds-pagination', className].filter((x) => x).join(' ')} {...props}>\n {currentPage !== 1 && (\n <>\n <a href={buildPageUrl(1)} className=\"bds-first-page\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n height=\"1em\"\n width=\"100%\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3v83.4l171.5 142.9zM256 352V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29v-64z\" />\n </svg>\n First\n </a>\n <a aria-label=\"previous\" href={buildPageUrl(currentPage - 1)} rel=\"prev\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0.02 95.9 192.08 320.17\"\n >\n <path d=\"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\" />\n </svg>\n Prev.\n </a>\n </>\n )}\n <ul>\n {pages.map((page, index) => {\n const handlePageClick = () => {\n if (!onPageClick) return;\n\n onPageClick(page);\n };\n\n return (\n <React.Fragment key={page}>\n <li>\n <a\n aria-current={page === currentPage ? 'page' : undefined}\n href={buildPageUrl(page)}\n onClick={handlePageClick}\n >\n <span className=\"visually-hidden\">Page</span> {page}\n </a>\n </li>\n {pages[index + 1] > page + 1 ? <li data-overflow=\"\">...</li> : null}\n </React.Fragment>\n );\n })}\n </ul>\n {currentPage !== totalPages && (\n <>\n <a href={buildPageUrl(currentPage + 1)} rel=\"next\">\n Next\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"63.9 95.9 192.1 320.17\"\n width=\"100%\"\n height=\"1em\"\n >\n <path d=\"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9S63.9 115 63.9 128v256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\" />\n </svg>\n </a>\n <a href={buildPageUrl(totalPages)} className=\"bds-last-page\">\n Last\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4L224 214.3v83.4L52.5 440.6zM256 352V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4S256 428.4 256 416v-64z\" />\n </svg>\n </a>\n </>\n )}\n </nav>\n );\n}\n","import * as React from 'react';\n\nconst componentMap = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n body: 'p',\n};\n\nconst classMap = {\n h1: 'bds-h1',\n h2: 'bds-h2',\n h3: 'bds-h3',\n h4: 'bds-h4',\n h5: 'bds-h5',\n body: 'bds-body',\n};\n\nexport type TypographyProps = {\n component?: React.ElementType;\n variant?: 'body' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n};\n\nconst Typography = React.forwardRef<HTMLOrSVGElement, React.HTMLAttributes<HTMLOrSVGElement> & TypographyProps>(\n ({ className, component, variant = 'body', ...props }, ref) => {\n const Component = component ?? (componentMap[variant] as React.ElementType);\n\n return (\n <Component className={[classMap[variant], className].filter((x) => x).join(' ')} ref={ref} {...props} />\n );\n },\n);\n\nexport default Typography;\n"],"names":["DEBOUNCE_TIMEOUT_IN_SECONDS","Button","React","forwardRef","_ref","ref","children","className","onClick","_ref$preventDoubleCli","preventDoubleClick","_ref$variant","variant","props","_objectWithoutProperties","_excluded","debounceClicks","useRef","handleClick","event","current","preventDefault","setTimeout","createElement","_extends","filter","x","join","CallToAction","getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","ErrorSummary","errors","_ref$mapNameToId","mapNameToId","name","headingId","useId","isEmpty","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","scrollIntoView","focus","preventScroll","role","hidden","tabIndex","Fragment","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","fieldMessage","index","FieldTextInput","_id","as","error","hint","_ref$isOptional","isOptional","label","errorId","hintId","InputComponent","htmlFor","usePages","currentPage","totalPages","pages","_toConsumableArray","Set","Pagination","buildPageUrl","onPageClick","focusable","rel","page","handlePageClick","componentMap","h1","h2","h3","h4","h5","body","classMap","Typography","component","Component"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/Button/Button.tsx","../src/CallToAction/CallToAction.tsx","../src/ErrorSummary/utils.ts","../src/ErrorSummary/ErrorSummary.tsx","../src/FieldTextInput/FieldTextInput.tsx","../src/Pagination/Pagination.tsx","../src/Typography/Typography.tsx"],"sourcesContent":["import * as React from 'react';\n\nconst DEBOUNCE_TIMEOUT_IN_SECONDS = 1;\n\nexport interface ButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n preventDoubleClick?: boolean;\n variant?: 'cancel' | 'featured' | 'quote' | 'reverse' | 'search' | 'standard' | 'unstyled';\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, className, onClick, preventDoubleClick = false, variant = 'standard', ...props }, ref) => {\n const debounceClicks = React.useRef(false);\n\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n // 👇 button is not configured to ignore double clicks\n if (!preventDoubleClick) {\n if (onClick) {\n onClick(event);\n }\n\n return;\n }\n\n // 👇 button has been clicked recently, and subsequent clicks are prevented\n if (debounceClicks.current) {\n event.preventDefault();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n\n // 👇 block from double clicks\n debounceClicks.current = true;\n\n // 👇 and remove the block after a given amount of seconds\n setTimeout(() => {\n debounceClicks.current = false;\n }, DEBOUNCE_TIMEOUT_IN_SECONDS * 1000);\n };\n\n return (\n <button\n className={[variant === 'unstyled' ? 'bds-button-unstyled' : 'bds-button', className]\n .filter((x) => x)\n .join(' ')}\n data-type={variant !== 'standard' && variant !== 'unstyled' ? variant : null}\n onClick={handleClick}\n ref={ref}\n {...props}\n >\n {children}\n </button>\n );\n },\n);\n\nexport default Button;\n","import * as React from 'react';\n\nexport interface CallToActionProps extends React.ComponentPropsWithoutRef<'a'> {\n variant?: 'featured' | 'quote' | 'standard';\n}\n\nconst CallToAction = React.forwardRef<HTMLAnchorElement, CallToActionProps>(\n ({ children, className, variant = 'standard', ...props }, ref) => {\n return (\n <a\n className={['bds-cta', className].filter((x) => x).join(' ')}\n data-type={variant !== 'standard' ? variant : null}\n ref={ref}\n {...props}\n >\n {children}\n </a>\n );\n },\n);\n\nexport default CallToAction;\n","export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nexport default function BdsErrorSummary({\n errors,\n mapNameToId = (name) => name,\n ...props\n}: ErrorSummaryProps & React.ComponentPropsWithoutRef<'div'>) {\n const headingId = React.useId();\n const groupRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n if (!errors || Object.keys(errors).length === 0) return;\n if (!groupRef.current) return;\n\n groupRef.current.focus();\n }, [errors]);\n\n if (!errors || Object.keys(errors).length === 0) return null;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary role=\"group\" aria-labelledby={headingId} ref={groupRef} tabIndex={-1} {...props}>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </bds-error-summary>\n );\n}\n","import * as React from 'react';\n\nexport type FieldTextInputProps<C> = {\n as?: C;\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n};\n\nexport default function FieldTextInput<C extends React.ElementType>({\n as,\n error,\n hint,\n id,\n isOptional = false,\n label,\n ...props\n}: FieldTextInputProps<C> & React.ComponentPropsWithoutRef<C>) {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n const InputComponent = as ?? 'input';\n\n return (\n <div className=\"bds-text-input stack\">\n <label htmlFor={id}>\n {label}\n {isOptional && ' (optional)'}\n </label>\n {hint && (\n <span className=\"bds-hint\" id={hintId}>\n {hint}\n </span>\n )}\n {error && (\n <span className=\"bds-error\" id={errorId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n {error}\n </span>\n )}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n {...props}\n />\n </div>\n );\n}\n","import * as React from 'react';\n\nexport type PaginationProps = {\n buildPageUrl: (page: number) => string;\n currentPage: number;\n onPageClick?: (page: number) => void;\n totalPages: number;\n};\n\nfunction usePages(currentPage: number, totalPages: number) {\n const pages = [1, currentPage - 1, currentPage, currentPage + 1, totalPages].filter(\n (x) => x >= 1 && x <= totalPages,\n );\n return [...new Set(pages)];\n}\n\nexport default function Pagination({\n buildPageUrl,\n className,\n currentPage,\n onPageClick,\n totalPages,\n ...props\n}: PaginationProps & React.ComponentPropsWithoutRef<'nav'>) {\n const pages = usePages(currentPage, totalPages);\n\n return (\n <nav aria-label=\"pagination\" className={['bds-pagination', className].filter((x) => x).join(' ')} {...props}>\n {currentPage !== 1 && (\n <>\n <a href={buildPageUrl(1)} className=\"bds-first-page\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n height=\"1em\"\n width=\"100%\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3v83.4l171.5 142.9zM256 352V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29v-64z\" />\n </svg>\n First\n </a>\n <a aria-label=\"previous\" href={buildPageUrl(currentPage - 1)} rel=\"prev\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0.02 95.9 192.08 320.17\"\n >\n <path d=\"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\" />\n </svg>\n Prev.\n </a>\n </>\n )}\n <ul>\n {pages.map((page, index) => {\n const handlePageClick = () => {\n if (!onPageClick) return;\n\n onPageClick(page);\n };\n\n return (\n <React.Fragment key={page}>\n <li>\n <a\n aria-current={page === currentPage ? 'page' : undefined}\n href={buildPageUrl(page)}\n onClick={handlePageClick}\n >\n <span className=\"visually-hidden\">Page</span> {page}\n </a>\n </li>\n {pages[index + 1] > page + 1 ? <li data-overflow=\"\">...</li> : null}\n </React.Fragment>\n );\n })}\n </ul>\n {currentPage !== totalPages && (\n <>\n <a href={buildPageUrl(currentPage + 1)} rel=\"next\">\n Next\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"63.9 95.9 192.1 320.17\"\n width=\"100%\"\n height=\"1em\"\n >\n <path d=\"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9S63.9 115 63.9 128v256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\" />\n </svg>\n </a>\n <a href={buildPageUrl(totalPages)} className=\"bds-last-page\">\n Last\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4L224 214.3v83.4L52.5 440.6zM256 352V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4S256 428.4 256 416v-64z\" />\n </svg>\n </a>\n </>\n )}\n </nav>\n );\n}\n","import * as React from 'react';\n\nconst componentMap = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n body: 'p',\n};\n\nconst classMap = {\n h1: 'bds-h1',\n h2: 'bds-h2',\n h3: 'bds-h3',\n h4: 'bds-h4',\n h5: 'bds-h5',\n body: 'bds-body',\n};\n\nexport type TypographyProps = {\n component?: React.ElementType;\n variant?: 'body' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n};\n\nconst Typography = React.forwardRef<HTMLOrSVGElement, React.HTMLAttributes<HTMLOrSVGElement> & TypographyProps>(\n ({ className, component, variant = 'body', ...props }, ref) => {\n const Component = component ?? (componentMap[variant] as React.ElementType);\n\n return (\n <Component className={[classMap[variant], className].filter((x) => x).join(' ')} ref={ref} {...props} />\n );\n },\n);\n\nexport default Typography;\n"],"names":["DEBOUNCE_TIMEOUT_IN_SECONDS","Button","React","forwardRef","_ref","ref","children","className","onClick","_ref$preventDoubleCli","preventDoubleClick","_ref$variant","variant","props","_objectWithoutProperties","_excluded","debounceClicks","useRef","handleClick","event","current","preventDefault","setTimeout","createElement","_extends","filter","x","join","CallToAction","getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","BdsErrorSummary","errors","_ref$mapNameToId","mapNameToId","name","headingId","useId","groupRef","useEffect","Object","keys","focus","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","scrollIntoView","preventScroll","role","tabIndex","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","Fragment","fieldMessage","index","FieldTextInput","_id","as","error","hint","_ref$isOptional","isOptional","label","errorId","hintId","InputComponent","htmlFor","usePages","currentPage","totalPages","pages","_toConsumableArray","Set","Pagination","buildPageUrl","onPageClick","focusable","rel","page","handlePageClick","componentMap","h1","h2","h3","h4","h5","body","classMap","Typography","component","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,2BAA2B,GAAG,CAAC,CAAA;AAO/BC,IAAAA,MAAM,gBAAGC,gBAAK,CAACC,UAAU,CAC7B,UAAAC,IAAA,EAA+FC,GAAG,EAAK;AAAA,EAAA,IAApGC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAAC,qBAAA,GAAAL,IAAA,CAAEM,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAAAE,YAAA,GAAAP,IAAA,CAAEQ,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,YAAA;AAAKE,IAAAA,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,WAAA,CAAA,CAAA;AACzF,EAAA,IAAMC,cAAc,GAAGd,gBAAK,CAACe,MAAM,CAAC,KAAK,CAAC,CAAA;AAE1C,EAAA,IAAMC,WAAuD,GAAG,SAA1DA,WAAuDA,CAAIC,KAAK,EAAK;AACzE;IACA,IAAI,CAACT,kBAAkB,EAAE;AACvB,MAAA,IAAIF,OAAO,EAAE;QACXA,OAAO,CAACW,KAAK,CAAC,CAAA;AAChB,OAAA;AAEA,MAAA,OAAA;AACF,KAAA;;AAEA;IACA,IAAIH,cAAc,CAACI,OAAO,EAAE;MAC1BD,KAAK,CAACE,cAAc,EAAE,CAAA;AACtB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIb,OAAO,EAAE;MACXA,OAAO,CAACW,KAAK,CAAC,CAAA;AAChB,KAAA;;AAEA;IACAH,cAAc,CAACI,OAAO,GAAG,IAAI,CAAA;;AAE7B;AACAE,IAAAA,UAAU,CAAC,YAAM;MACfN,cAAc,CAACI,OAAO,GAAG,KAAK,CAAA;AAChC,KAAC,EAAEpB,2BAA2B,GAAG,IAAI,CAAC,CAAA;GACvC,CAAA;AAED,EAAA,oBACEE,gBAAA,CAAAqB,aAAA,CAAA,QAAA,EAAAC,QAAA,CAAA;AACEjB,IAAAA,SAAS,EAAE,CAACK,OAAO,KAAK,UAAU,GAAG,qBAAqB,GAAG,YAAY,EAAEL,SAAS,CAAC,CAClFkB,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;AAAA,KAAA,CAAC,CAChBC,IAAI,CAAC,GAAG,CAAE;IACb,WAAWf,EAAAA,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAK,UAAU,GAAGA,OAAO,GAAG,IAAK;AAC7EJ,IAAAA,OAAO,EAAEU,WAAY;AACrBb,IAAAA,GAAG,EAAEA,GAAAA;GACDQ,EAAAA,KAAK,CAERP,EAAAA,QACK,CAAC,CAAA;AAEb,CACF;;;AClDMsB,IAAAA,YAAY,gBAAG1B,gBAAK,CAACC,UAAU,CACnC,UAAAC,IAAA,EAA0DC,GAAG,EAAK;AAAA,EAAA,IAA/DC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAAI,YAAA,GAAAP,IAAA,CAAEQ,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,YAAA;AAAKE,IAAAA,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,WAAA,CAAA,CAAA;AACpD,EAAA,oBACEb,gBAAA,CAAAqB,aAAA,CAAA,GAAA,EAAAC,QAAA,CAAA;IACEjB,SAAS,EAAE,CAAC,SAAS,EAAEA,SAAS,CAAC,CAACkB,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;AAAA,KAAA,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AAC7D,IAAA,WAAA,EAAWf,OAAO,KAAK,UAAU,GAAGA,OAAO,GAAG,IAAK;AACnDP,IAAAA,GAAG,EAAEA,GAAAA;GACDQ,EAAAA,KAAK,CAERP,EAAAA,QACA,CAAC,CAAA;AAER,CACF;;ACnBO,SAASuB,kBAAkBA,CAACC,GAAW,EAAE;AAC9C,EAAA,OAAOA,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,GAAGC,SAAS,CAAA;AAC7D,CAAA;AAEO,SAASC,0BAA0BA,CAACC,KAAkB,EAAE;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAC7D,EAAA,IAAMC,QAAQ,GAAGF,KAAK,CAACG,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,EAAA,IAAID,QAAQ,EAAE;AACZ,IAAA,IAAME,OAAO,GAAGF,QAAQ,CAACG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAEvD,IAAID,OAAO,CAACE,MAAM,EAAE;AAClB,MAAA,IAAMC,eAAe,GAAGH,OAAO,CAAC,CAAC,CAAC,CAAA;;AAElC;AACA;AACA,MAAA,IAAIJ,KAAK,YAAYQ,gBAAgB,KAAKR,KAAK,CAACS,IAAI,KAAK,UAAU,IAAIT,KAAK,CAACS,IAAI,KAAK,OAAO,CAAC,EAAE;AAC9F,QAAA,OAAOF,eAAe,CAAA;AACxB,OAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;MACA,IAAMG,SAAS,GAAGH,eAAe,CAACI,qBAAqB,EAAE,CAACC,GAAG,CAAA;AAC7D,MAAA,IAAMC,SAAS,GAAGb,KAAK,CAACW,qBAAqB,EAAE,CAAA;;AAE/C;AACA;AACA,MAAA,IAAIE,SAAS,CAACC,MAAM,IAAIC,MAAM,CAACC,WAAW,EAAE;QAC1C,IAAMC,WAAW,GAAGJ,SAAS,CAACD,GAAG,GAAGC,SAAS,CAACC,MAAM,CAAA;QAEpD,IAAIG,WAAW,GAAGP,SAAS,GAAGK,MAAM,CAACC,WAAW,GAAG,CAAC,EAAE;AACpD,UAAA,OAAOT,eAAe,CAAA;AACxB,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;EAEA,OAAAN,CAAAA,qBAAA,GAAOiB,QAAQ,CAACC,aAAa,CAAAC,aAAAA,CAAAA,MAAA,CAAepB,KAAK,CAACqB,YAAY,CAAC,IAAI,CAAC,EAAI,IAAA,CAAA,CAAC,MAAApB,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAID,KAAK,CAACG,OAAO,CAAC,OAAO,CAAC,CAAA;AACrG;;;AC7BO,IAAMmB,YAAY,GAAG,OAAO,CAAA;AAEnC,IAAMC,gBAAgB,GAAG,uBAAuB,CAAA;AAOjC,SAASC,eAAeA,CAAAxD,IAAA,EAIuB;AAAA,EAAA,IAH5DyD,MAAM,GAAAzD,IAAA,CAANyD,MAAM;IAAAC,gBAAA,GAAA1D,IAAA,CACN2D,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,UAACE,IAAI,EAAA;AAAA,MAAA,OAAKA,IAAI,CAAA;AAAA,KAAA,GAAAF,gBAAA;AACzBjD,IAAAA,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,WAAA,CAAA,CAAA;AAER,EAAA,IAAMkD,SAAS,GAAG/D,gBAAK,CAACgE,KAAK,EAAE,CAAA;AAC/B,EAAA,IAAMC,QAAQ,GAAGjE,gBAAK,CAACe,MAAM,CAAc,IAAI,CAAC,CAAA;EAEhDf,gBAAK,CAACkE,SAAS,CAAC,YAAM;AACpB,IAAA,IAAI,CAACP,MAAM,IAAIQ,MAAM,CAACC,IAAI,CAACT,MAAM,CAAC,CAACnB,MAAM,KAAK,CAAC,EAAE,OAAA;AACjD,IAAA,IAAI,CAACyB,QAAQ,CAAC/C,OAAO,EAAE,OAAA;AAEvB+C,IAAAA,QAAQ,CAAC/C,OAAO,CAACmD,KAAK,EAAE,CAAA;AAC1B,GAAC,EAAE,CAACV,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,IAAI,CAACA,MAAM,IAAIQ,MAAM,CAACC,IAAI,CAACT,MAAM,CAAC,CAACnB,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;AAE5D,EAAA,IAAM8B,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,CAAC,EAAK;IAC7B,IAAMC,OAAO,GAAG7C,kBAAkB,CAAC4C,CAAC,CAACE,aAAa,CAACC,IAAI,CAAC,CAAA;IAExD,IAAI,CAACF,OAAO,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAMtC,KAAK,GAAGkB,QAAQ,CAACuB,cAAc,CAACH,OAAO,CAAC,CAAA;IAE9C,IAAI,CAACtC,KAAK,EAAE;AACV,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAM0C,aAAa,GAAG3C,0BAA0B,CAACC,KAAK,CAAC,CAAA;IAEvD,IAAI,CAAC0C,aAAa,EAAE;AAClB,MAAA,OAAA;AACF,KAAA;IAEAL,CAAC,CAACpD,cAAc,EAAE,CAAA;IAElByD,aAAa,CAACC,cAAc,EAAE,CAAA;IAC9B3C,KAAK,CAACmC,KAAK,CAAC;AAAES,MAAAA,aAAa,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;GACrC,CAAA;AAED,EAAA,oBACE9E,gBAAA,CAAAqB,aAAA,CAAA,mBAAA,EAAAC,QAAA,CAAA;AAAmByD,IAAAA,IAAI,EAAC,OAAO;AAAC,IAAA,iBAAA,EAAiBhB,SAAU;AAAC5D,IAAAA,GAAG,EAAE8D,QAAS;AAACe,IAAAA,QAAQ,EAAE,CAAC,CAAA;AAAE,GAAA,EAAKrE,KAAK,CAAA,eAChGX,gBAAA,CAAAqB,aAAA,CAAA,IAAA,EAAA;AAAIhB,IAAAA,SAAS,EAAC,QAAQ;AAAC4E,IAAAA,EAAE,EAAElB,SAAAA;GACzB/D,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAA;AACE6D,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBnC,IAAAA,MAAM,EAAC,KAAK;AACZoC,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAELrF,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMiE,IAAAA,CAAC,EAAC,4UAAA;GAA8U,CACnV,CAAC,EAEJ,OAAA,CAAC,eACLtF,gBAAA,CAAAqB,aAAA,CACG8C,IAAAA,EAAAA,IAAAA,EAAAA,MAAM,CAACC,IAAI,CAACT,MAAM,CAAC,CAAC4B,GAAG,CAAC,UAACC,QAAQ,EAAK;AACrC,IAAA,IAAMC,OAAO,GAAG9B,MAAM,CAAC6B,QAAQ,CAAC,CAAA;IAChC,IAAME,WAAW,GAAG,CAACjC,gBAAgB,EAAED,YAAY,CAAC,CAAC3B,QAAQ,CAAC2D,QAAQ,CAAC,CAAA;AAEvE,IAAA,IAAIE,WAAW,EAAE;MACf,oBAAO1F,gBAAA,CAAAqB,aAAA,CAAA,IAAA,EAAA;AAAIsE,QAAAA,GAAG,EAAEH,QAAS;AAACI,QAAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEJ,OAAAA;AAAQ,SAAA;AAAE,OAAE,CAAC,CAAA;AAC5E,KAAA;AAEA,IAAA,IAAMK,YAAY,GAAGC,KAAK,CAACC,OAAO,CAACP,OAAO,CAAC,CAAA;IAE3C,IAAMQ,QAAQ,GAAGH,YAAY,GAAGL,OAAO,GAAG,CAACA,OAAO,CAAC,CAAA;AAEnD,IAAA,oBACEzF,gBAAA,CAAAqB,aAAA,CAACrB,gBAAK,CAACkG,QAAQ,EAAA;AAACP,MAAAA,GAAG,EAAEH,QAAAA;KAClBS,EAAAA,QAAQ,CAACV,GAAG,CAAC,UAACY,YAAY,EAAEC,KAAK,EAAK;AACrC,MAAA,IAAM5B,OAAO,GAAAlB,EAAAA,CAAAA,MAAA,CAAMO,WAAW,CAAC2B,QAAQ,CAAC,CAAA,CAAAlC,MAAA,CAAGwC,YAAY,GAAAxC,GAAAA,CAAAA,MAAA,CAAO8C,KAAK,EAAA,GAAA,CAAA,GAAM,EAAE,CAAE,CAAA;MAE7E,oBACEpG,gBAAA,CAAAqB,aAAA,CAAA,IAAA,EAAA;AAAIsE,QAAAA,GAAG,EAAEnB,OAAAA;OACPxE,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,GAAA,EAAA;AAAGqD,QAAAA,IAAI,EAAApB,GAAAA,CAAAA,MAAA,CAAMkB,OAAO,CAAG;AAAClE,QAAAA,OAAO,EAAEgE,eAAAA;OAC9B6B,EAAAA,YAAY,EACZF,QAAQ,CAACzD,MAAM,GAAG,CAAC,GAAAc,IAAAA,CAAAA,MAAA,CAAQ8C,KAAK,GAAG,CAAC,EAAA,MAAA,CAAA,CAAA9C,MAAA,CAAO2C,QAAQ,CAACzD,MAAM,EAAA,GAAA,CAAA,GAAMR,SAChE,CACD,CAAC,CAAA;AAET,KAAC,CACa,CAAC,CAAA;GAEpB,CACC,CACa,CAAC,CAAA;AAExB;;;ACpGe,SAASqE,cAAcA,CAAAnG,IAAA,EAQyB;AAAA,EAAA,IAAAoG,GAAA,CAAA;AAAA,EAAA,IAP7DC,EAAE,GAAArG,IAAA,CAAFqG,EAAE;IACFC,KAAK,GAAAtG,IAAA,CAALsG,KAAK;IACLC,IAAI,GAAAvG,IAAA,CAAJuG,IAAI;IACJxB,EAAE,GAAA/E,IAAA,CAAF+E,EAAE;IAAAyB,eAAA,GAAAxG,IAAA,CACFyG,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAClBE,KAAK,GAAA1G,IAAA,CAAL0G,KAAK;AACFjG,IAAAA,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,WAAA,CAAA,CAAA;EAERoE,EAAE,GAAA,CAAAqB,GAAA,GAAGrB,EAAE,MAAA,IAAA,IAAAqB,GAAA,KAAA,KAAA,CAAA,GAAAA,GAAA,GAAI3F,KAAK,CAACmD,IAAI,CAAA;AAErB,EAAA,IAAM+C,OAAO,GAAG7G,gBAAK,CAACgE,KAAK,EAAE,CAAA;AAC7B,EAAA,IAAM8C,MAAM,GAAG9G,gBAAK,CAACgE,KAAK,EAAE,CAAA;EAE5B,IAAM+C,cAAc,GAAGR,EAAE,KAAA,IAAA,IAAFA,EAAE,KAAFA,KAAAA,CAAAA,GAAAA,EAAE,GAAI,OAAO,CAAA;EAEpC,oBACEvG,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAA;AAAKhB,IAAAA,SAAS,EAAC,sBAAA;GACbL,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,OAAA,EAAA;AAAO2F,IAAAA,OAAO,EAAE/B,EAAAA;GACb2B,EAAAA,KAAK,EACLD,UAAU,IAAI,aACV,CAAC,EACPF,IAAI,iBACHzG,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMhB,IAAAA,SAAS,EAAC,UAAU;AAAC4E,IAAAA,EAAE,EAAE6B,MAAAA;AAAO,GAAA,EACnCL,IACG,CACP,EACAD,KAAK,iBACJxG,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMhB,IAAAA,SAAS,EAAC,WAAW;AAAC4E,IAAAA,EAAE,EAAE4B,OAAAA;GAC9B7G,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAA;AACE6D,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBnC,IAAAA,MAAM,EAAC,KAAK;AACZoC,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAELrF,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMiE,IAAAA,CAAC,EAAC,4UAAA;AAA4U,GAAE,CACnV,CAAC,EACLkB,KACG,CACP,eACDxG,gBAAA,CAAAqB,aAAA,CAAC0F,cAAc,EAAAzF,QAAA,CAAA;AACb,IAAA,cAAA,EAAckF,KAAK,GAAG,IAAI,GAAGxE,SAAU;IACvC,kBAAkBwE,EAAAA,KAAK,IAAIC,IAAI,GAAA,EAAA,CAAAnD,MAAA,CAAMwD,MAAM,OAAAxD,MAAA,CAAIuD,OAAO,CAAKL,GAAAA,KAAK,GAAGK,OAAO,GAAGJ,IAAI,GAAGK,MAAM,GAAG9E,SAAU;AACvGiD,IAAAA,EAAE,EAAEA,EAAAA;GACAtE,EAAAA,KAAK,CACV,CACE,CAAC,CAAA;AAEV;;;ACpDA,SAASsG,QAAQA,CAACC,WAAmB,EAAEC,UAAkB,EAAE;EACzD,IAAMC,KAAK,GAAG,CAAC,CAAC,EAAEF,WAAW,GAAG,CAAC,EAAEA,WAAW,EAAEA,WAAW,GAAG,CAAC,EAAEC,UAAU,CAAC,CAAC5F,MAAM,CACjF,UAACC,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,IAAI,CAAC,IAAIA,CAAC,IAAI2F,UAAU,CAAA;AAAA,GAClC,CAAC,CAAA;AACD,EAAA,OAAAE,kBAAA,CAAW,IAAIC,GAAG,CAACF,KAAK,CAAC,CAAA,CAAA;AAC3B,CAAA;AAEe,SAASG,UAAUA,CAAArH,IAAA,EAO0B;AAAA,EAAA,IAN1DsH,YAAY,GAAAtH,IAAA,CAAZsH,YAAY;IACZnH,SAAS,GAAAH,IAAA,CAATG,SAAS;IACT6G,WAAW,GAAAhH,IAAA,CAAXgH,WAAW;IACXO,WAAW,GAAAvH,IAAA,CAAXuH,WAAW;IACXN,UAAU,GAAAjH,IAAA,CAAViH,UAAU;AACPxG,IAAAA,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,WAAA,CAAA,CAAA;AAER,EAAA,IAAMuG,KAAK,GAAGH,QAAQ,CAACC,WAAW,EAAEC,UAAU,CAAC,CAAA;AAE/C,EAAA,oBACEnH,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AAAK,IAAA,YAAA,EAAW,YAAY;IAACjB,SAAS,EAAE,CAAC,gBAAgB,EAAEA,SAAS,CAAC,CAACkB,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;KAAC,CAAA,CAACC,IAAI,CAAC,GAAG,CAAA;AAAE,GAAA,EAAKd,KAAK,CACxGuG,EAAAA,WAAW,KAAK,CAAC,iBAChBlH,gBAAA,CAAAqB,aAAA,CAAArB,gBAAA,CAAAkG,QAAA,EACElG,IAAAA,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,GAAA,EAAA;AAAGqD,IAAAA,IAAI,EAAE8C,YAAY,CAAC,CAAC,CAAE;AAACnH,IAAAA,SAAS,EAAC,gBAAA;GAClCL,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAA;AACE6D,IAAAA,KAAK,EAAC,4BAA4B;AAClC,IAAA,aAAA,EAAY,MAAM;AAClBwC,IAAAA,SAAS,EAAC,OAAO;AACjB1E,IAAAA,MAAM,EAAC,KAAK;AACZoC,IAAAA,KAAK,EAAC,MAAM;AACZD,IAAAA,OAAO,EAAC,mBAAA;GAERnF,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMiE,IAAAA,CAAC,EAAC,uSAAA;AAAuS,GAAE,CAC9S,CAAC,EAAA,OAEL,CAAC,eACJtF,gBAAA,CAAAqB,aAAA,CAAA,GAAA,EAAA;AAAG,IAAA,YAAA,EAAW,UAAU;AAACqD,IAAAA,IAAI,EAAE8C,YAAY,CAACN,WAAW,GAAG,CAAC,CAAE;AAACS,IAAAA,GAAG,EAAC,MAAA;GAChE3H,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAA;AACE6D,IAAAA,KAAK,EAAC,4BAA4B;AAClC,IAAA,aAAA,EAAY,MAAM;AAClBwC,IAAAA,SAAS,EAAC,OAAO;AACjBtC,IAAAA,KAAK,EAAC,MAAM;AACZpC,IAAAA,MAAM,EAAC,KAAK;AACZmC,IAAAA,OAAO,EAAC,yBAAA;GAERnF,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMiE,IAAAA,CAAC,EAAC,0JAAA;AAA0J,GAAE,CACjK,CAAC,EAAA,OAEL,CACH,CACH,eACDtF,gBAAA,CAAAqB,aAAA,CACG+F,IAAAA,EAAAA,IAAAA,EAAAA,KAAK,CAAC7B,GAAG,CAAC,UAACqC,IAAI,EAAExB,KAAK,EAAK;AAC1B,IAAA,IAAMyB,eAAe,GAAG,SAAlBA,eAAeA,GAAS;MAC5B,IAAI,CAACJ,WAAW,EAAE,OAAA;MAElBA,WAAW,CAACG,IAAI,CAAC,CAAA;KAClB,CAAA;AAED,IAAA,oBACE5H,gBAAA,CAAAqB,aAAA,CAACrB,gBAAK,CAACkG,QAAQ,EAAA;AAACP,MAAAA,GAAG,EAAEiC,IAAAA;AAAK,KAAA,eACxB5H,gBAAA,CAAAqB,aAAA,CACErB,IAAAA,EAAAA,IAAAA,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,GAAA,EAAA;AACE,MAAA,cAAA,EAAcuG,IAAI,KAAKV,WAAW,GAAG,MAAM,GAAGlF,SAAU;AACxD0C,MAAAA,IAAI,EAAE8C,YAAY,CAACI,IAAI,CAAE;AACzBtH,MAAAA,OAAO,EAAEuH,eAAAA;KAET7H,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMhB,MAAAA,SAAS,EAAC,iBAAA;KAAkB,EAAA,MAAU,CAAC,EAAC,GAAA,EAACuH,IAC9C,CACD,CAAC,EACJR,KAAK,CAAChB,KAAK,GAAG,CAAC,CAAC,GAAGwB,IAAI,GAAG,CAAC,gBAAG5H,gBAAA,CAAAqB,aAAA,CAAA,IAAA,EAAA;MAAI,eAAc,EAAA,EAAA;AAAE,KAAA,EAAC,KAAO,CAAC,GAAG,IACjD,CAAC,CAAA;AAErB,GAAC,CACC,CAAC,EACJ6F,WAAW,KAAKC,UAAU,iBACzBnH,gBAAA,CAAAqB,aAAA,CAAArB,gBAAA,CAAAkG,QAAA,EACElG,IAAAA,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,GAAA,EAAA;AAAGqD,IAAAA,IAAI,EAAE8C,YAAY,CAACN,WAAW,GAAG,CAAC,CAAE;AAACS,IAAAA,GAAG,EAAC,MAAA;AAAM,GAAA,EAAC,MAEjD,eAAA3H,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAA;AACE6D,IAAAA,KAAK,EAAC,4BAA4B;AAClC,IAAA,aAAA,EAAY,MAAM;AAClBwC,IAAAA,SAAS,EAAC,OAAO;AACjBvC,IAAAA,OAAO,EAAC,wBAAwB;AAChCC,IAAAA,KAAK,EAAC,MAAM;AACZpC,IAAAA,MAAM,EAAC,KAAA;GAEPhD,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMiE,IAAAA,CAAC,EAAC,yJAAA;AAAyJ,GAAE,CAChK,CACJ,CAAC,eACJtF,gBAAA,CAAAqB,aAAA,CAAA,GAAA,EAAA;AAAGqD,IAAAA,IAAI,EAAE8C,YAAY,CAACL,UAAU,CAAE;AAAC9G,IAAAA,SAAS,EAAC,eAAA;AAAe,GAAA,EAAC,MAE3D,eAAAL,gBAAA,CAAAqB,aAAA,CAAA,KAAA,EAAA;AACE6D,IAAAA,KAAK,EAAC,4BAA4B;AAClC,IAAA,aAAA,EAAY,MAAM;AAClBwC,IAAAA,SAAS,EAAC,OAAO;AACjBtC,IAAAA,KAAK,EAAC,MAAM;AACZpC,IAAAA,MAAM,EAAC,KAAK;AACZmC,IAAAA,OAAO,EAAC,mBAAA;GAERnF,eAAAA,gBAAA,CAAAqB,aAAA,CAAA,MAAA,EAAA;AAAMiE,IAAAA,CAAC,EAAC,sSAAA;AAAsS,GAAE,CAC7S,CACJ,CACH,CAED,CAAC,CAAA;AAEV;;;AChHA,IAAMwC,YAAY,GAAG;AACnBC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,IAAI,EAAE,GAAA;AACR,CAAC,CAAA;AAED,IAAMC,QAAQ,GAAG;AACfN,EAAAA,EAAE,EAAE,QAAQ;AACZC,EAAAA,EAAE,EAAE,QAAQ;AACZC,EAAAA,EAAE,EAAE,QAAQ;AACZC,EAAAA,EAAE,EAAE,QAAQ;AACZC,EAAAA,EAAE,EAAE,QAAQ;AACZC,EAAAA,IAAI,EAAE,UAAA;AACR,CAAC,CAAA;AAOKE,IAAAA,UAAU,gBAAGtI,gBAAK,CAACC,UAAU,CACjC,UAAAC,IAAA,EAAuDC,GAAG,EAAK;AAAA,EAAA,IAA5DE,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAEkI,SAAS,GAAArI,IAAA,CAATqI,SAAS;IAAA9H,YAAA,GAAAP,IAAA,CAAEQ,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,YAAA;AAAKE,IAAAA,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,SAAA,CAAA,CAAA;EACjD,IAAM2H,SAAS,GAAGD,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAKT,YAAY,CAACpH,OAAO,CAAuB,CAAA;AAE3E,EAAA,oBACEV,gBAAA,CAAAqB,aAAA,CAACmH,SAAS,EAAAlH,QAAA,CAAA;AAACjB,IAAAA,SAAS,EAAE,CAACgI,QAAQ,CAAC3H,OAAO,CAAC,EAAEL,SAAS,CAAC,CAACkB,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;AAAA,KAAA,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AAACtB,IAAAA,GAAG,EAAEA,GAAAA;GAASQ,EAAAA,KAAK,CAAG,CAAC,CAAA;AAE5G,CACF;;;;;;;;;"}
package/index.mjs CHANGED
@@ -173,7 +173,7 @@ function getAssociatedLegendOrLabel(input) {
173
173
  var _excluded$3 = ["errors", "mapNameToId"];
174
174
  var FormErrorKey = '_form';
175
175
  var FINAL_FORM_ERROR = 'FINAL_FORM/form-error';
176
- var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
176
+ function BdsErrorSummary(_ref) {
177
177
  var errors = _ref.errors,
178
178
  _ref$mapNameToId = _ref.mapNameToId,
179
179
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -181,7 +181,13 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
181
181
  } : _ref$mapNameToId,
182
182
  props = _objectWithoutProperties(_ref, _excluded$3);
183
183
  var headingId = React.useId();
184
- var isEmpty = !errors || Object.keys(errors).length === 0;
184
+ var groupRef = React.useRef(null);
185
+ React.useEffect(function () {
186
+ if (!errors || Object.keys(errors).length === 0) return;
187
+ if (!groupRef.current) return;
188
+ groupRef.current.focus();
189
+ }, [errors]);
190
+ if (!errors || Object.keys(errors).length === 0) return null;
185
191
  var handleLinkClick = function handleLinkClick(e) {
186
192
  var inputId = getFragmentFromUrl(e.currentTarget.href);
187
193
  if (!inputId) {
@@ -203,11 +209,10 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
203
209
  };
204
210
  return /*#__PURE__*/React.createElement("bds-error-summary", _extends({
205
211
  role: "group",
206
- "aria-labelledby": !isEmpty ? headingId : undefined,
207
- hidden: isEmpty ? true : undefined,
208
- ref: ref,
212
+ "aria-labelledby": headingId,
213
+ ref: groupRef,
209
214
  tabIndex: -1
210
- }, props), !isEmpty && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h2", {
215
+ }, props), /*#__PURE__*/React.createElement("h2", {
211
216
  className: "bds-h5",
212
217
  id: headingId
213
218
  }, /*#__PURE__*/React.createElement("svg", {
@@ -243,8 +248,8 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
243
248
  onClick: handleLinkClick
244
249
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
245
250
  }));
246
- }))));
247
- });
251
+ })));
252
+ }
248
253
 
249
254
  var _excluded$2 = ["as", "error", "hint", "id", "isOptional", "label"];
250
255
  function FieldTextInput(_ref) {
@@ -407,5 +412,5 @@ var Typography = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
407
412
  }, props));
408
413
  });
409
414
 
410
- export { Button, CallToAction, ErrorSummary, FieldTextInput, Pagination, Typography };
415
+ export { Button, CallToAction, BdsErrorSummary as ErrorSummary, FieldTextInput, Pagination, Typography };
411
416
  //# sourceMappingURL=index.mjs.map
package/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/Button/Button.tsx","../src/CallToAction/CallToAction.tsx","../src/ErrorSummary/utils.ts","../src/ErrorSummary/ErrorSummary.tsx","../src/FieldTextInput/FieldTextInput.tsx","../src/Pagination/Pagination.tsx","../src/Typography/Typography.tsx"],"sourcesContent":["import * as React from 'react';\n\nconst DEBOUNCE_TIMEOUT_IN_SECONDS = 1;\n\nexport interface ButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n preventDoubleClick?: boolean;\n variant?: 'cancel' | 'featured' | 'quote' | 'reverse' | 'search' | 'standard' | 'unstyled';\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, className, onClick, preventDoubleClick = false, variant = 'standard', ...props }, ref) => {\n const debounceClicks = React.useRef(false);\n\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n // 👇 button is not configured to ignore double clicks\n if (!preventDoubleClick) {\n if (onClick) {\n onClick(event);\n }\n\n return;\n }\n\n // 👇 button has been clicked recently, and subsequent clicks are prevented\n if (debounceClicks.current) {\n event.preventDefault();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n\n // 👇 block from double clicks\n debounceClicks.current = true;\n\n // 👇 and remove the block after a given amount of seconds\n setTimeout(() => {\n debounceClicks.current = false;\n }, DEBOUNCE_TIMEOUT_IN_SECONDS * 1000);\n };\n\n return (\n <button\n className={[variant === 'unstyled' ? 'bds-button-unstyled' : 'bds-button', className]\n .filter((x) => x)\n .join(' ')}\n data-type={variant !== 'standard' && variant !== 'unstyled' ? variant : null}\n onClick={handleClick}\n ref={ref}\n {...props}\n >\n {children}\n </button>\n );\n },\n);\n\nexport default Button;\n","import * as React from 'react';\n\nexport interface CallToActionProps extends React.ComponentPropsWithoutRef<'a'> {\n variant?: 'featured' | 'quote' | 'standard';\n}\n\nconst CallToAction = React.forwardRef<HTMLAnchorElement, CallToActionProps>(\n ({ children, className, variant = 'standard', ...props }, ref) => {\n return (\n <a\n className={['bds-cta', className].filter((x) => x).join(' ')}\n data-type={variant !== 'standard' ? variant : null}\n ref={ref}\n {...props}\n >\n {children}\n </a>\n );\n },\n);\n\nexport default CallToAction;\n","export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nconst ErrorSummary = React.forwardRef<HTMLDivElement, ErrorSummaryProps>(\n ({ errors, mapNameToId = (name) => name, ...props }, ref) => {\n const headingId = React.useId();\n\n const isEmpty = !errors || Object.keys(errors).length === 0;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary\n role=\"group\"\n aria-labelledby={!isEmpty ? headingId : undefined}\n hidden={isEmpty ? true : undefined}\n ref={ref}\n tabIndex={-1}\n {...props}\n >\n {!isEmpty && (\n <>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </>\n )}\n </bds-error-summary>\n );\n },\n);\n\nexport default ErrorSummary;\n","import * as React from 'react';\n\nexport type FieldTextInputProps<C> = {\n as?: C;\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n};\n\nexport default function FieldTextInput<C extends React.ElementType>({\n as,\n error,\n hint,\n id,\n isOptional = false,\n label,\n ...props\n}: FieldTextInputProps<C> & React.ComponentPropsWithoutRef<C>) {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n const InputComponent = as ?? 'input';\n\n return (\n <div className=\"bds-text-input stack\">\n <label htmlFor={id}>\n {label}\n {isOptional && ' (optional)'}\n </label>\n {hint && (\n <span className=\"bds-hint\" id={hintId}>\n {hint}\n </span>\n )}\n {error && (\n <span className=\"bds-error\" id={errorId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n {error}\n </span>\n )}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n {...props}\n />\n </div>\n );\n}\n","import * as React from 'react';\n\nexport type PaginationProps = {\n buildPageUrl: (page: number) => string;\n currentPage: number;\n onPageClick?: (page: number) => void;\n totalPages: number;\n};\n\nfunction usePages(currentPage: number, totalPages: number) {\n const pages = [1, currentPage - 1, currentPage, currentPage + 1, totalPages].filter(\n (x) => x >= 1 && x <= totalPages,\n );\n return [...new Set(pages)];\n}\n\nexport default function Pagination({\n buildPageUrl,\n className,\n currentPage,\n onPageClick,\n totalPages,\n ...props\n}: PaginationProps & React.ComponentPropsWithoutRef<'nav'>) {\n const pages = usePages(currentPage, totalPages);\n\n return (\n <nav aria-label=\"pagination\" className={['bds-pagination', className].filter((x) => x).join(' ')} {...props}>\n {currentPage !== 1 && (\n <>\n <a href={buildPageUrl(1)} className=\"bds-first-page\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n height=\"1em\"\n width=\"100%\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3v83.4l171.5 142.9zM256 352V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29v-64z\" />\n </svg>\n First\n </a>\n <a aria-label=\"previous\" href={buildPageUrl(currentPage - 1)} rel=\"prev\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0.02 95.9 192.08 320.17\"\n >\n <path d=\"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\" />\n </svg>\n Prev.\n </a>\n </>\n )}\n <ul>\n {pages.map((page, index) => {\n const handlePageClick = () => {\n if (!onPageClick) return;\n\n onPageClick(page);\n };\n\n return (\n <React.Fragment key={page}>\n <li>\n <a\n aria-current={page === currentPage ? 'page' : undefined}\n href={buildPageUrl(page)}\n onClick={handlePageClick}\n >\n <span className=\"visually-hidden\">Page</span> {page}\n </a>\n </li>\n {pages[index + 1] > page + 1 ? <li data-overflow=\"\">...</li> : null}\n </React.Fragment>\n );\n })}\n </ul>\n {currentPage !== totalPages && (\n <>\n <a href={buildPageUrl(currentPage + 1)} rel=\"next\">\n Next\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"63.9 95.9 192.1 320.17\"\n width=\"100%\"\n height=\"1em\"\n >\n <path d=\"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9S63.9 115 63.9 128v256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\" />\n </svg>\n </a>\n <a href={buildPageUrl(totalPages)} className=\"bds-last-page\">\n Last\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4L224 214.3v83.4L52.5 440.6zM256 352V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4S256 428.4 256 416v-64z\" />\n </svg>\n </a>\n </>\n )}\n </nav>\n );\n}\n","import * as React from 'react';\n\nconst componentMap = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n body: 'p',\n};\n\nconst classMap = {\n h1: 'bds-h1',\n h2: 'bds-h2',\n h3: 'bds-h3',\n h4: 'bds-h4',\n h5: 'bds-h5',\n body: 'bds-body',\n};\n\nexport type TypographyProps = {\n component?: React.ElementType;\n variant?: 'body' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n};\n\nconst Typography = React.forwardRef<HTMLOrSVGElement, React.HTMLAttributes<HTMLOrSVGElement> & TypographyProps>(\n ({ className, component, variant = 'body', ...props }, ref) => {\n const Component = component ?? (componentMap[variant] as React.ElementType);\n\n return (\n <Component className={[classMap[variant], className].filter((x) => x).join(' ')} ref={ref} {...props} />\n );\n },\n);\n\nexport default Typography;\n"],"names":["DEBOUNCE_TIMEOUT_IN_SECONDS","Button","React","forwardRef","_ref","ref","children","className","onClick","_ref$preventDoubleCli","preventDoubleClick","_ref$variant","variant","props","_objectWithoutProperties","_excluded","debounceClicks","useRef","handleClick","event","current","preventDefault","setTimeout","createElement","_extends","filter","x","join","CallToAction","getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","ErrorSummary","errors","_ref$mapNameToId","mapNameToId","name","headingId","useId","isEmpty","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","scrollIntoView","focus","preventScroll","role","hidden","tabIndex","Fragment","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","fieldMessage","index","FieldTextInput","_id","as","error","hint","_ref$isOptional","isOptional","label","errorId","hintId","InputComponent","htmlFor","usePages","currentPage","totalPages","pages","_toConsumableArray","Set","Pagination","buildPageUrl","onPageClick","focusable","rel","page","handlePageClick","componentMap","h1","h2","h3","h4","h5","body","classMap","Typography","component","Component"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/Button/Button.tsx","../src/CallToAction/CallToAction.tsx","../src/ErrorSummary/utils.ts","../src/ErrorSummary/ErrorSummary.tsx","../src/FieldTextInput/FieldTextInput.tsx","../src/Pagination/Pagination.tsx","../src/Typography/Typography.tsx"],"sourcesContent":["import * as React from 'react';\n\nconst DEBOUNCE_TIMEOUT_IN_SECONDS = 1;\n\nexport interface ButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n preventDoubleClick?: boolean;\n variant?: 'cancel' | 'featured' | 'quote' | 'reverse' | 'search' | 'standard' | 'unstyled';\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, className, onClick, preventDoubleClick = false, variant = 'standard', ...props }, ref) => {\n const debounceClicks = React.useRef(false);\n\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n // 👇 button is not configured to ignore double clicks\n if (!preventDoubleClick) {\n if (onClick) {\n onClick(event);\n }\n\n return;\n }\n\n // 👇 button has been clicked recently, and subsequent clicks are prevented\n if (debounceClicks.current) {\n event.preventDefault();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n\n // 👇 block from double clicks\n debounceClicks.current = true;\n\n // 👇 and remove the block after a given amount of seconds\n setTimeout(() => {\n debounceClicks.current = false;\n }, DEBOUNCE_TIMEOUT_IN_SECONDS * 1000);\n };\n\n return (\n <button\n className={[variant === 'unstyled' ? 'bds-button-unstyled' : 'bds-button', className]\n .filter((x) => x)\n .join(' ')}\n data-type={variant !== 'standard' && variant !== 'unstyled' ? variant : null}\n onClick={handleClick}\n ref={ref}\n {...props}\n >\n {children}\n </button>\n );\n },\n);\n\nexport default Button;\n","import * as React from 'react';\n\nexport interface CallToActionProps extends React.ComponentPropsWithoutRef<'a'> {\n variant?: 'featured' | 'quote' | 'standard';\n}\n\nconst CallToAction = React.forwardRef<HTMLAnchorElement, CallToActionProps>(\n ({ children, className, variant = 'standard', ...props }, ref) => {\n return (\n <a\n className={['bds-cta', className].filter((x) => x).join(' ')}\n data-type={variant !== 'standard' ? variant : null}\n ref={ref}\n {...props}\n >\n {children}\n </a>\n );\n },\n);\n\nexport default CallToAction;\n","export function getFragmentFromUrl(url: string) {\n return url.includes('#') ? url.split('#').pop() : undefined;\n}\n\nexport function getAssociatedLegendOrLabel(input: HTMLElement) {\n const fieldset = input.closest('fieldset');\n\n if (fieldset) {\n const legends = fieldset.getElementsByTagName('legend');\n\n if (legends.length) {\n const candidateLegend = legends[0];\n\n // If the input type is radio or checkbox, always use the legend if there\n // is one.\n if (input instanceof HTMLInputElement && (input.type === 'checkbox' || input.type === 'radio')) {\n return candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead of\n // the label associated with the input) if the input would end up in the\n // top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = candidateLegend.getBoundingClientRect().top;\n const inputRect = input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return candidateLegend;\n }\n }\n }\n }\n\n return document.querySelector(`label[for='${input.getAttribute('id')}']`) ?? input.closest('label');\n}\n","import * as React from 'react';\n\nimport { getAssociatedLegendOrLabel, getFragmentFromUrl } from './utils';\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'bds-error-summary': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;\n }\n }\n}\n\nexport const FormErrorKey = '_form';\n\nconst FINAL_FORM_ERROR = 'FINAL_FORM/form-error';\n\nexport type ErrorSummaryProps = {\n errors: Record<string, Array<string> | string> | null;\n mapNameToId?: (name: string) => string;\n};\n\nexport default function BdsErrorSummary({\n errors,\n mapNameToId = (name) => name,\n ...props\n}: ErrorSummaryProps & React.ComponentPropsWithoutRef<'div'>) {\n const headingId = React.useId();\n const groupRef = React.useRef<HTMLElement>(null);\n\n React.useEffect(() => {\n if (!errors || Object.keys(errors).length === 0) return;\n if (!groupRef.current) return;\n\n groupRef.current.focus();\n }, [errors]);\n\n if (!errors || Object.keys(errors).length === 0) return null;\n\n const handleLinkClick = (e) => {\n const inputId = getFragmentFromUrl(e.currentTarget.href);\n\n if (!inputId) {\n return;\n }\n\n const input = document.getElementById(inputId);\n\n if (!input) {\n return;\n }\n\n const legendOrLabel = getAssociatedLegendOrLabel(input);\n\n if (!legendOrLabel) {\n return;\n }\n\n e.preventDefault();\n\n legendOrLabel.scrollIntoView();\n input.focus({ preventScroll: true });\n };\n\n return (\n <bds-error-summary role=\"group\" aria-labelledby={headingId} ref={groupRef} tabIndex={-1} {...props}>\n <h2 className=\"bds-h5\" id={headingId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n Issue\n </h2>\n <ul>\n {Object.keys(errors).map((errorKey) => {\n const message = errors[errorKey];\n const isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);\n\n if (isFormError) {\n return <li key={errorKey} dangerouslySetInnerHTML={{ __html: message }} />;\n }\n\n const isArrayField = Array.isArray(message);\n\n const messages = isArrayField ? message : [message];\n\n return (\n <React.Fragment key={errorKey}>\n {messages.map((fieldMessage, index) => {\n const inputId = `${mapNameToId(errorKey)}${isArrayField ? `[${index}]` : ''}`;\n\n return (\n <li key={inputId}>\n <a href={`#${inputId}`} onClick={handleLinkClick}>\n {fieldMessage}\n {messages.length > 1 ? ` (${index + 1} of ${messages.length})` : undefined}\n </a>\n </li>\n );\n })}\n </React.Fragment>\n );\n })}\n </ul>\n </bds-error-summary>\n );\n}\n","import * as React from 'react';\n\nexport type FieldTextInputProps<C> = {\n as?: C;\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n};\n\nexport default function FieldTextInput<C extends React.ElementType>({\n as,\n error,\n hint,\n id,\n isOptional = false,\n label,\n ...props\n}: FieldTextInputProps<C> & React.ComponentPropsWithoutRef<C>) {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n const InputComponent = as ?? 'input';\n\n return (\n <div className=\"bds-text-input stack\">\n <label htmlFor={id}>\n {label}\n {isOptional && ' (optional)'}\n </label>\n {hint && (\n <span className=\"bds-hint\" id={hintId}>\n {hint}\n </span>\n )}\n {error && (\n <span className=\"bds-error\" id={errorId}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n aria-hidden=\"true\"\n height=\"1em\"\n width=\"1em\"\n fill=\"currentColor\"\n >\n <path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32z\" />\n </svg>\n {error}\n </span>\n )}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n {...props}\n />\n </div>\n );\n}\n","import * as React from 'react';\n\nexport type PaginationProps = {\n buildPageUrl: (page: number) => string;\n currentPage: number;\n onPageClick?: (page: number) => void;\n totalPages: number;\n};\n\nfunction usePages(currentPage: number, totalPages: number) {\n const pages = [1, currentPage - 1, currentPage, currentPage + 1, totalPages].filter(\n (x) => x >= 1 && x <= totalPages,\n );\n return [...new Set(pages)];\n}\n\nexport default function Pagination({\n buildPageUrl,\n className,\n currentPage,\n onPageClick,\n totalPages,\n ...props\n}: PaginationProps & React.ComponentPropsWithoutRef<'nav'>) {\n const pages = usePages(currentPage, totalPages);\n\n return (\n <nav aria-label=\"pagination\" className={['bds-pagination', className].filter((x) => x).join(' ')} {...props}>\n {currentPage !== 1 && (\n <>\n <a href={buildPageUrl(1)} className=\"bds-first-page\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n height=\"1em\"\n width=\"100%\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3v83.4l171.5 142.9zM256 352V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29v-64z\" />\n </svg>\n First\n </a>\n <a aria-label=\"previous\" href={buildPageUrl(currentPage - 1)} rel=\"prev\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0.02 95.9 192.08 320.17\"\n >\n <path d=\"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\" />\n </svg>\n Prev.\n </a>\n </>\n )}\n <ul>\n {pages.map((page, index) => {\n const handlePageClick = () => {\n if (!onPageClick) return;\n\n onPageClick(page);\n };\n\n return (\n <React.Fragment key={page}>\n <li>\n <a\n aria-current={page === currentPage ? 'page' : undefined}\n href={buildPageUrl(page)}\n onClick={handlePageClick}\n >\n <span className=\"visually-hidden\">Page</span> {page}\n </a>\n </li>\n {pages[index + 1] > page + 1 ? <li data-overflow=\"\">...</li> : null}\n </React.Fragment>\n );\n })}\n </ul>\n {currentPage !== totalPages && (\n <>\n <a href={buildPageUrl(currentPage + 1)} rel=\"next\">\n Next\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"63.9 95.9 192.1 320.17\"\n width=\"100%\"\n height=\"1em\"\n >\n <path d=\"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9S63.9 115 63.9 128v256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\" />\n </svg>\n </a>\n <a href={buildPageUrl(totalPages)} className=\"bds-last-page\">\n Last\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"100%\"\n height=\"1em\"\n viewBox=\"0 63.95 512 384.1\"\n >\n <path d=\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4L224 214.3v83.4L52.5 440.6zM256 352V96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4S256 428.4 256 416v-64z\" />\n </svg>\n </a>\n </>\n )}\n </nav>\n );\n}\n","import * as React from 'react';\n\nconst componentMap = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n body: 'p',\n};\n\nconst classMap = {\n h1: 'bds-h1',\n h2: 'bds-h2',\n h3: 'bds-h3',\n h4: 'bds-h4',\n h5: 'bds-h5',\n body: 'bds-body',\n};\n\nexport type TypographyProps = {\n component?: React.ElementType;\n variant?: 'body' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n};\n\nconst Typography = React.forwardRef<HTMLOrSVGElement, React.HTMLAttributes<HTMLOrSVGElement> & TypographyProps>(\n ({ className, component, variant = 'body', ...props }, ref) => {\n const Component = component ?? (componentMap[variant] as React.ElementType);\n\n return (\n <Component className={[classMap[variant], className].filter((x) => x).join(' ')} ref={ref} {...props} />\n );\n },\n);\n\nexport default Typography;\n"],"names":["DEBOUNCE_TIMEOUT_IN_SECONDS","Button","React","forwardRef","_ref","ref","children","className","onClick","_ref$preventDoubleCli","preventDoubleClick","_ref$variant","variant","props","_objectWithoutProperties","_excluded","debounceClicks","useRef","handleClick","event","current","preventDefault","setTimeout","createElement","_extends","filter","x","join","CallToAction","getFragmentFromUrl","url","includes","split","pop","undefined","getAssociatedLegendOrLabel","input","_document$querySelect","fieldset","closest","legends","getElementsByTagName","length","candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","window","innerHeight","inputBottom","document","querySelector","concat","getAttribute","FormErrorKey","FINAL_FORM_ERROR","BdsErrorSummary","errors","_ref$mapNameToId","mapNameToId","name","headingId","useId","groupRef","useEffect","Object","keys","focus","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","scrollIntoView","preventScroll","role","tabIndex","id","xmlns","viewBox","width","fill","d","map","errorKey","message","isFormError","key","dangerouslySetInnerHTML","__html","isArrayField","Array","isArray","messages","Fragment","fieldMessage","index","FieldTextInput","_id","as","error","hint","_ref$isOptional","isOptional","label","errorId","hintId","InputComponent","htmlFor","usePages","currentPage","totalPages","pages","_toConsumableArray","Set","Pagination","buildPageUrl","onPageClick","focusable","rel","page","handlePageClick","componentMap","h1","h2","h3","h4","h5","body","classMap","Typography","component","Component"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iabbb/bds-react",
3
- "version": "0.45.2",
3
+ "version": "0.45.3",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "build": "cross-env NODE_ENV=production rollup -c",
@@ -28,7 +28,7 @@
28
28
  "typescript": "5.2.2"
29
29
  },
30
30
  "peerDependencies": {
31
- "@iabbb/bds": "0.45.2",
31
+ "@iabbb/bds": "0.45.3",
32
32
  "react": "^18.0.0"
33
33
  }
34
34
  }