@iabbb/bds-react 0.44.0 → 0.45.1

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,4 +11,5 @@ export type ErrorSummaryProps = {
11
11
  errors: Record<string, Array<string> | string> | null;
12
12
  mapNameToId?: (name: string) => string;
13
13
  };
14
- export default function BdsErrorSummary({ errors, mapNameToId, ...props }: ErrorSummaryProps & React.ComponentPropsWithoutRef<'div'>): React.JSX.Element | null;
14
+ declare const ErrorSummary: React.ForwardRefExoticComponent<ErrorSummaryProps & React.RefAttributes<HTMLDivElement>>;
15
+ export default ErrorSummary;
@@ -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
- function BdsErrorSummary(_ref) {
110
+ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
111
111
  var errors = _ref.errors,
112
112
  _ref$mapNameToId = _ref.mapNameToId,
113
113
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -115,13 +115,7 @@ function BdsErrorSummary(_ref) {
115
115
  } : _ref$mapNameToId,
116
116
  props = _objectWithoutProperties(_ref, _excluded);
117
117
  var headingId = React__namespace.useId();
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;
118
+ var isEmpty = !errors || Object.keys(errors).length === 0;
125
119
  var handleLinkClick = function handleLinkClick(e) {
126
120
  var inputId = getFragmentFromUrl(e.currentTarget.href);
127
121
  if (!inputId) {
@@ -144,9 +138,10 @@ function BdsErrorSummary(_ref) {
144
138
  return /*#__PURE__*/React__namespace.createElement("bds-error-summary", _extends({
145
139
  role: "group",
146
140
  "aria-labelledby": headingId,
147
- ref: groupRef,
141
+ hidden: isEmpty,
142
+ ref: ref,
148
143
  tabIndex: -1
149
- }, props), /*#__PURE__*/React__namespace.createElement("h2", {
144
+ }, props), !isEmpty && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("h2", {
150
145
  className: "bds-h5",
151
146
  id: headingId
152
147
  }, /*#__PURE__*/React__namespace.createElement("svg", {
@@ -182,9 +177,9 @@ function BdsErrorSummary(_ref) {
182
177
  onClick: handleLinkClick
183
178
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
184
179
  }));
185
- })));
186
- }
180
+ }))));
181
+ });
187
182
 
188
183
  exports.FormErrorKey = FormErrorKey;
189
- exports.default = BdsErrorSummary;
184
+ exports.default = ErrorSummary;
190
185
  //# 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\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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"}
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={headingId}\n hidden={isEmpty}\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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"}
@@ -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
- function BdsErrorSummary(_ref) {
87
+ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
88
88
  var errors = _ref.errors,
89
89
  _ref$mapNameToId = _ref.mapNameToId,
90
90
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -92,13 +92,7 @@ function BdsErrorSummary(_ref) {
92
92
  } : _ref$mapNameToId,
93
93
  props = _objectWithoutProperties(_ref, _excluded);
94
94
  var headingId = React.useId();
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;
95
+ var isEmpty = !errors || Object.keys(errors).length === 0;
102
96
  var handleLinkClick = function handleLinkClick(e) {
103
97
  var inputId = getFragmentFromUrl(e.currentTarget.href);
104
98
  if (!inputId) {
@@ -121,9 +115,10 @@ function BdsErrorSummary(_ref) {
121
115
  return /*#__PURE__*/React.createElement("bds-error-summary", _extends({
122
116
  role: "group",
123
117
  "aria-labelledby": headingId,
124
- ref: groupRef,
118
+ hidden: isEmpty,
119
+ ref: ref,
125
120
  tabIndex: -1
126
- }, props), /*#__PURE__*/React.createElement("h2", {
121
+ }, props), !isEmpty && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h2", {
127
122
  className: "bds-h5",
128
123
  id: headingId
129
124
  }, /*#__PURE__*/React.createElement("svg", {
@@ -159,8 +154,8 @@ function BdsErrorSummary(_ref) {
159
154
  onClick: handleLinkClick
160
155
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
161
156
  }));
162
- })));
163
- }
157
+ }))));
158
+ });
164
159
 
165
- export { FormErrorKey, BdsErrorSummary as default };
160
+ export { FormErrorKey, ErrorSummary as default };
166
161
  //# 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\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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"}
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={headingId}\n hidden={isEmpty}\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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"}
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
- function BdsErrorSummary(_ref) {
197
+ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
198
198
  var errors = _ref.errors,
199
199
  _ref$mapNameToId = _ref.mapNameToId,
200
200
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -202,13 +202,7 @@ function BdsErrorSummary(_ref) {
202
202
  } : _ref$mapNameToId,
203
203
  props = _objectWithoutProperties(_ref, _excluded$3);
204
204
  var headingId = React__namespace.useId();
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;
205
+ var isEmpty = !errors || Object.keys(errors).length === 0;
212
206
  var handleLinkClick = function handleLinkClick(e) {
213
207
  var inputId = getFragmentFromUrl(e.currentTarget.href);
214
208
  if (!inputId) {
@@ -231,9 +225,10 @@ function BdsErrorSummary(_ref) {
231
225
  return /*#__PURE__*/React__namespace.createElement("bds-error-summary", _extends({
232
226
  role: "group",
233
227
  "aria-labelledby": headingId,
234
- ref: groupRef,
228
+ hidden: isEmpty,
229
+ ref: ref,
235
230
  tabIndex: -1
236
- }, props), /*#__PURE__*/React__namespace.createElement("h2", {
231
+ }, props), !isEmpty && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("h2", {
237
232
  className: "bds-h5",
238
233
  id: headingId
239
234
  }, /*#__PURE__*/React__namespace.createElement("svg", {
@@ -269,8 +264,8 @@ function BdsErrorSummary(_ref) {
269
264
  onClick: handleLinkClick
270
265
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
271
266
  }));
272
- })));
273
- }
267
+ }))));
268
+ });
274
269
 
275
270
  var _excluded$2 = ["as", "error", "hint", "id", "isOptional", "label"];
276
271
  function FieldTextInput(_ref) {
@@ -435,7 +430,7 @@ var Typography = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
435
430
 
436
431
  exports.Button = Button;
437
432
  exports.CallToAction = CallToAction;
438
- exports.ErrorSummary = BdsErrorSummary;
433
+ exports.ErrorSummary = ErrorSummary;
439
434
  exports.FieldTextInput = FieldTextInput;
440
435
  exports.Pagination = Pagination;
441
436
  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\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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"}
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={headingId}\n hidden={isEmpty}\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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"}
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
- function BdsErrorSummary(_ref) {
176
+ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
177
177
  var errors = _ref.errors,
178
178
  _ref$mapNameToId = _ref.mapNameToId,
179
179
  mapNameToId = _ref$mapNameToId === void 0 ? function (name) {
@@ -181,13 +181,7 @@ function BdsErrorSummary(_ref) {
181
181
  } : _ref$mapNameToId,
182
182
  props = _objectWithoutProperties(_ref, _excluded$3);
183
183
  var headingId = React.useId();
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;
184
+ var isEmpty = !errors || Object.keys(errors).length === 0;
191
185
  var handleLinkClick = function handleLinkClick(e) {
192
186
  var inputId = getFragmentFromUrl(e.currentTarget.href);
193
187
  if (!inputId) {
@@ -210,9 +204,10 @@ function BdsErrorSummary(_ref) {
210
204
  return /*#__PURE__*/React.createElement("bds-error-summary", _extends({
211
205
  role: "group",
212
206
  "aria-labelledby": headingId,
213
- ref: groupRef,
207
+ hidden: isEmpty,
208
+ ref: ref,
214
209
  tabIndex: -1
215
- }, props), /*#__PURE__*/React.createElement("h2", {
210
+ }, props), !isEmpty && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h2", {
216
211
  className: "bds-h5",
217
212
  id: headingId
218
213
  }, /*#__PURE__*/React.createElement("svg", {
@@ -248,8 +243,8 @@ function BdsErrorSummary(_ref) {
248
243
  onClick: handleLinkClick
249
244
  }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
250
245
  }));
251
- })));
252
- }
246
+ }))));
247
+ });
253
248
 
254
249
  var _excluded$2 = ["as", "error", "hint", "id", "isOptional", "label"];
255
250
  function FieldTextInput(_ref) {
@@ -412,5 +407,5 @@ var Typography = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
412
407
  }, props));
413
408
  });
414
409
 
415
- export { Button, CallToAction, BdsErrorSummary as ErrorSummary, FieldTextInput, Pagination, Typography };
410
+ export { Button, CallToAction, ErrorSummary, FieldTextInput, Pagination, Typography };
416
411
  //# 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\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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"}
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={headingId}\n hidden={isEmpty}\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iabbb/bds-react",
3
- "version": "0.44.0",
3
+ "version": "0.45.1",
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.44.0",
31
+ "@iabbb/bds": "0.45.1",
32
32
  "react": "^18.0.0"
33
33
  }
34
34
  }