@iabbb/bds-react 0.45.0 → 0.45.2
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.
- package/ErrorSummary/index.cjs +5 -4
- package/ErrorSummary/index.cjs.map +1 -1
- package/ErrorSummary/index.mjs +5 -4
- package/ErrorSummary/index.mjs.map +1 -1
- package/index.cjs +5 -4
- package/index.cjs.map +1 -1
- package/index.mjs +5 -4
- package/index.mjs.map +1 -1
- package/package.json +2 -2
package/ErrorSummary/index.cjs
CHANGED
|
@@ -115,7 +115,7 @@ 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
|
-
|
|
118
|
+
var isEmpty = !errors || Object.keys(errors).length === 0;
|
|
119
119
|
var handleLinkClick = function handleLinkClick(e) {
|
|
120
120
|
var inputId = getFragmentFromUrl(e.currentTarget.href);
|
|
121
121
|
if (!inputId) {
|
|
@@ -137,10 +137,11 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
|
|
|
137
137
|
};
|
|
138
138
|
return /*#__PURE__*/React__namespace.createElement("bds-error-summary", _extends({
|
|
139
139
|
role: "group",
|
|
140
|
-
"aria-labelledby": headingId,
|
|
140
|
+
"aria-labelledby": !isEmpty ? headingId : undefined,
|
|
141
|
+
hidden: isEmpty ? true : undefined,
|
|
141
142
|
ref: ref,
|
|
142
143
|
tabIndex: -1
|
|
143
|
-
}, props), /*#__PURE__*/React__namespace.createElement("h2", {
|
|
144
|
+
}, props), !isEmpty && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("h2", {
|
|
144
145
|
className: "bds-h5",
|
|
145
146
|
id: headingId
|
|
146
147
|
}, /*#__PURE__*/React__namespace.createElement("svg", {
|
|
@@ -176,7 +177,7 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
|
|
|
176
177
|
onClick: handleLinkClick
|
|
177
178
|
}, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
|
|
178
179
|
}));
|
|
179
|
-
})));
|
|
180
|
+
}))));
|
|
180
181
|
});
|
|
181
182
|
|
|
182
183
|
exports.FormErrorKey = FormErrorKey;
|
|
@@ -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 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={ref} 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);\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","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","preventDefault","scrollIntoView","focus","preventScroll","createElement","_extends","role","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={!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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"}
|
package/ErrorSummary/index.mjs
CHANGED
|
@@ -92,7 +92,7 @@ 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
|
-
|
|
95
|
+
var isEmpty = !errors || Object.keys(errors).length === 0;
|
|
96
96
|
var handleLinkClick = function handleLinkClick(e) {
|
|
97
97
|
var inputId = getFragmentFromUrl(e.currentTarget.href);
|
|
98
98
|
if (!inputId) {
|
|
@@ -114,10 +114,11 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
114
114
|
};
|
|
115
115
|
return /*#__PURE__*/React.createElement("bds-error-summary", _extends({
|
|
116
116
|
role: "group",
|
|
117
|
-
"aria-labelledby": headingId,
|
|
117
|
+
"aria-labelledby": !isEmpty ? headingId : undefined,
|
|
118
|
+
hidden: isEmpty ? true : undefined,
|
|
118
119
|
ref: ref,
|
|
119
120
|
tabIndex: -1
|
|
120
|
-
}, props), /*#__PURE__*/React.createElement("h2", {
|
|
121
|
+
}, props), !isEmpty && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h2", {
|
|
121
122
|
className: "bds-h5",
|
|
122
123
|
id: headingId
|
|
123
124
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
@@ -153,7 +154,7 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
153
154
|
onClick: handleLinkClick
|
|
154
155
|
}, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
|
|
155
156
|
}));
|
|
156
|
-
})));
|
|
157
|
+
}))));
|
|
157
158
|
});
|
|
158
159
|
|
|
159
160
|
export { FormErrorKey, ErrorSummary as default };
|
|
@@ -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 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={ref} 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);\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","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","preventDefault","scrollIntoView","focus","preventScroll","createElement","_extends","role","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={!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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"}
|
package/index.cjs
CHANGED
|
@@ -202,7 +202,7 @@ 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
|
-
|
|
205
|
+
var isEmpty = !errors || Object.keys(errors).length === 0;
|
|
206
206
|
var handleLinkClick = function handleLinkClick(e) {
|
|
207
207
|
var inputId = getFragmentFromUrl(e.currentTarget.href);
|
|
208
208
|
if (!inputId) {
|
|
@@ -224,10 +224,11 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
|
|
|
224
224
|
};
|
|
225
225
|
return /*#__PURE__*/React__namespace.createElement("bds-error-summary", _extends({
|
|
226
226
|
role: "group",
|
|
227
|
-
"aria-labelledby": headingId,
|
|
227
|
+
"aria-labelledby": !isEmpty ? headingId : undefined,
|
|
228
|
+
hidden: isEmpty ? true : undefined,
|
|
228
229
|
ref: ref,
|
|
229
230
|
tabIndex: -1
|
|
230
|
-
}, props), /*#__PURE__*/React__namespace.createElement("h2", {
|
|
231
|
+
}, props), !isEmpty && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("h2", {
|
|
231
232
|
className: "bds-h5",
|
|
232
233
|
id: headingId
|
|
233
234
|
}, /*#__PURE__*/React__namespace.createElement("svg", {
|
|
@@ -263,7 +264,7 @@ var ErrorSummary = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref)
|
|
|
263
264
|
onClick: handleLinkClick
|
|
264
265
|
}, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
|
|
265
266
|
}));
|
|
266
|
-
})));
|
|
267
|
+
}))));
|
|
267
268
|
});
|
|
268
269
|
|
|
269
270
|
var _excluded$2 = ["as", "error", "hint", "id", "isOptional", "label"];
|
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 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={ref} 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);\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","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","scrollIntoView","focus","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={!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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"}
|
package/index.mjs
CHANGED
|
@@ -181,7 +181,7 @@ 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
|
-
|
|
184
|
+
var isEmpty = !errors || Object.keys(errors).length === 0;
|
|
185
185
|
var handleLinkClick = function handleLinkClick(e) {
|
|
186
186
|
var inputId = getFragmentFromUrl(e.currentTarget.href);
|
|
187
187
|
if (!inputId) {
|
|
@@ -203,10 +203,11 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
203
203
|
};
|
|
204
204
|
return /*#__PURE__*/React.createElement("bds-error-summary", _extends({
|
|
205
205
|
role: "group",
|
|
206
|
-
"aria-labelledby": headingId,
|
|
206
|
+
"aria-labelledby": !isEmpty ? headingId : undefined,
|
|
207
|
+
hidden: isEmpty ? true : undefined,
|
|
207
208
|
ref: ref,
|
|
208
209
|
tabIndex: -1
|
|
209
|
-
}, props), /*#__PURE__*/React.createElement("h2", {
|
|
210
|
+
}, props), !isEmpty && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h2", {
|
|
210
211
|
className: "bds-h5",
|
|
211
212
|
id: headingId
|
|
212
213
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
@@ -242,7 +243,7 @@ var ErrorSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
242
243
|
onClick: handleLinkClick
|
|
243
244
|
}, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
|
|
244
245
|
}));
|
|
245
|
-
})));
|
|
246
|
+
}))));
|
|
246
247
|
});
|
|
247
248
|
|
|
248
249
|
var _excluded$2 = ["as", "error", "hint", "id", "isOptional", "label"];
|
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 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={ref} 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);\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","Object","keys","handleLinkClick","e","inputId","currentTarget","href","getElementById","legendOrLabel","scrollIntoView","focus","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={!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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iabbb/bds-react",
|
|
3
|
-
"version": "0.45.
|
|
3
|
+
"version": "0.45.2",
|
|
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.
|
|
31
|
+
"@iabbb/bds": "0.45.2",
|
|
32
32
|
"react": "^18.0.0"
|
|
33
33
|
}
|
|
34
34
|
}
|