@iabbb/bds-react 0.47.1 → 0.47.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEe,SAASA,YAAYA,CAAAC,IAAA,EAA4E;AAAA,EAAA,IAAzEC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAClE,EAAA,oBACEC,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAAC,QAAA,CAAA;IAAMP,SAAS,EAAE,CAAC,WAAW,EAAEA,SAAS,CAAC,CAACQ,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;KAAC,CAAA,CAACC,IAAI,CAAC,GAAG,CAAA;AAAE,GAAA,EAAKR,KAAK,CAAA,eAC7EG,gBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEK,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBC,IAAAA,MAAM,EAAC,KAAK;AACZC,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAELV,eAAAA,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMU,IAAAA,CAAC,EAAC,4UAAA;AAA4U,GAAE,CACnV,CAAC,EACLf,QACG,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGe,SAASA,YAAYA,CAAAC,IAAA,EAA4E;AAAA,EAAA,IAAzEC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAClE,EAAA,oBACEC,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAAC,QAAA,CAAA;IAAMP,SAAS,EAAE,CAAC,WAAW,EAAEA,SAAS,CAAC,CAACQ,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;KAAC,CAAA,CAACC,IAAI,CAAC,GAAG,CAAA;AAAE,GAAA,EAAKR,KAAK,CAAA,eAC7EG,gBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEK,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBC,IAAAA,MAAM,EAAC,KAAK;AACZC,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAELV,eAAAA,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMU,IAAAA,CAAC,EAAC,4UAAA;AAA4U,GAAE,CACnV,CAAC,EACLf,QACG,CAAC,CAAA;AAEX;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEe,SAASA,YAAYA,CAAAC,IAAA,EAA4E;AAAA,EAAA,IAAzEC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAClE,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAAC,QAAA,CAAA;IAAMP,SAAS,EAAE,CAAC,WAAW,EAAEA,SAAS,CAAC,CAACQ,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;KAAC,CAAA,CAACC,IAAI,CAAC,GAAG,CAAA;AAAE,GAAA,EAAKR,KAAK,CAAA,eAC7EG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEK,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBC,IAAAA,MAAM,EAAC,KAAK;AACZC,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAELV,eAAAA,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMU,IAAAA,CAAC,EAAC,4UAAA;AAA4U,GAAE,CACnV,CAAC,EACLf,QACG,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGe,SAASA,YAAYA,CAAAC,IAAA,EAA4E;AAAA,EAAA,IAAzEC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAClE,EAAA,oBACEC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAAC,QAAA,CAAA;IAAMP,SAAS,EAAE,CAAC,WAAW,EAAEA,SAAS,CAAC,CAACQ,MAAM,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAAA;KAAC,CAAA,CAACC,IAAI,CAAC,GAAG,CAAA;AAAE,GAAA,EAAKR,KAAK,CAAA,eAC7EG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEK,IAAAA,KAAK,EAAC,4BAA4B;AAClCC,IAAAA,OAAO,EAAC,aAAa;AACrB,IAAA,aAAA,EAAY,MAAM;AAClBC,IAAAA,MAAM,EAAC,KAAK;AACZC,IAAAA,KAAK,EAAC,KAAK;AACXC,IAAAA,IAAI,EAAC,cAAA;GAELV,eAAAA,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMU,IAAAA,CAAC,EAAC,4UAAA;AAA4U,GAAE,CACnV,CAAC,EACLf,QACG,CAAC,CAAA;AAEX;;;;"}
@@ -129,48 +129,53 @@ function BdsErrorSummary(_ref) {
129
129
  preventScroll: true
130
130
  });
131
131
  };
132
- return /*#__PURE__*/React__namespace.createElement("bds-error-summary", _extends({
133
- role: "group",
134
- "aria-labelledby": headingId,
135
- ref: groupRef,
136
- tabIndex: -1
137
- }, props), /*#__PURE__*/React__namespace.createElement("h2", {
138
- className: "bds-h5",
139
- id: headingId
140
- }, /*#__PURE__*/React__namespace.createElement("svg", {
141
- xmlns: "http://www.w3.org/2000/svg",
142
- viewBox: "0 0 512 512",
143
- "aria-hidden": "true",
144
- height: "1em",
145
- width: "1em",
146
- fill: "currentColor"
147
- }, /*#__PURE__*/React__namespace.createElement("path", {
148
- 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"
149
- })), "Issue"), /*#__PURE__*/React__namespace.createElement("ul", null, Object.keys(errors).map(function (errorKey) {
150
- var message = errors[errorKey];
151
- var isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);
152
- if (isFormError) {
153
- return /*#__PURE__*/React__namespace.createElement("li", {
154
- key: errorKey,
155
- dangerouslySetInnerHTML: {
156
- __html: message
157
- }
158
- });
159
- }
160
- var isArrayField = Array.isArray(message);
161
- var messages = isArrayField ? message : [message];
162
- return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, {
163
- key: errorKey
164
- }, messages.map(function (fieldMessage, index) {
165
- var inputId = "".concat(mapNameToId(errorKey)).concat(isArrayField ? "[".concat(index, "]") : '');
166
- return /*#__PURE__*/React__namespace.createElement("li", {
167
- key: inputId
168
- }, /*#__PURE__*/React__namespace.createElement("a", {
169
- href: "#".concat(inputId),
170
- onClick: handleLinkClick
171
- }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
172
- }));
173
- })));
132
+ return (
133
+ /*#__PURE__*/
134
+ // biome-ignore lint/a11y/noInteractiveElementToNoninteractiveRole: group is not an interactive role
135
+ React__namespace.createElement("bds-error-summary", _extends({
136
+ role: "group",
137
+ "aria-labelledby": headingId,
138
+ ref: groupRef,
139
+ tabIndex: -1
140
+ }, props), /*#__PURE__*/React__namespace.createElement("h2", {
141
+ className: "bds-h5",
142
+ id: headingId
143
+ }, /*#__PURE__*/React__namespace.createElement("svg", {
144
+ xmlns: "http://www.w3.org/2000/svg",
145
+ viewBox: "0 0 512 512",
146
+ "aria-hidden": "true",
147
+ height: "1em",
148
+ width: "1em",
149
+ fill: "currentColor"
150
+ }, /*#__PURE__*/React__namespace.createElement("path", {
151
+ 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"
152
+ })), "Issue"), /*#__PURE__*/React__namespace.createElement("ul", null, Object.keys(errors).map(function (errorKey) {
153
+ var message = errors[errorKey];
154
+ var isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);
155
+ if (isFormError) {
156
+ // biome-ignore lint/security/noDangerouslySetInnerHtml: some generic form errors may include links
157
+ return /*#__PURE__*/React__namespace.createElement("li", {
158
+ key: errorKey,
159
+ dangerouslySetInnerHTML: {
160
+ __html: message
161
+ }
162
+ });
163
+ }
164
+ var isArrayField = Array.isArray(message);
165
+ var messages = isArrayField ? message : [message];
166
+ return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, {
167
+ key: errorKey
168
+ }, messages.map(function (fieldMessage, index) {
169
+ var inputId = "".concat(mapNameToId(errorKey)).concat(isArrayField ? "[".concat(index, "]") : '');
170
+ return /*#__PURE__*/React__namespace.createElement("li", {
171
+ key: inputId
172
+ }, /*#__PURE__*/React__namespace.createElement("a", {
173
+ href: "#".concat(inputId),
174
+ onClick: handleLinkClick
175
+ }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
176
+ }));
177
+ })))
178
+ );
174
179
  }
175
180
 
176
181
  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\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\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 // biome-ignore lint/a11y/noInteractiveElementToNoninteractiveRole: group is not an interactive role\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 // biome-ignore lint/security/noDangerouslySetInnerHtml: some generic form errors may include links\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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"}
@@ -106,48 +106,53 @@ function BdsErrorSummary(_ref) {
106
106
  preventScroll: true
107
107
  });
108
108
  };
109
- return /*#__PURE__*/React.createElement("bds-error-summary", _extends({
110
- role: "group",
111
- "aria-labelledby": headingId,
112
- ref: groupRef,
113
- tabIndex: -1
114
- }, props), /*#__PURE__*/React.createElement("h2", {
115
- className: "bds-h5",
116
- id: headingId
117
- }, /*#__PURE__*/React.createElement("svg", {
118
- xmlns: "http://www.w3.org/2000/svg",
119
- viewBox: "0 0 512 512",
120
- "aria-hidden": "true",
121
- height: "1em",
122
- width: "1em",
123
- fill: "currentColor"
124
- }, /*#__PURE__*/React.createElement("path", {
125
- 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"
126
- })), "Issue"), /*#__PURE__*/React.createElement("ul", null, Object.keys(errors).map(function (errorKey) {
127
- var message = errors[errorKey];
128
- var isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);
129
- if (isFormError) {
130
- return /*#__PURE__*/React.createElement("li", {
131
- key: errorKey,
132
- dangerouslySetInnerHTML: {
133
- __html: message
134
- }
135
- });
136
- }
137
- var isArrayField = Array.isArray(message);
138
- var messages = isArrayField ? message : [message];
139
- return /*#__PURE__*/React.createElement(React.Fragment, {
140
- key: errorKey
141
- }, messages.map(function (fieldMessage, index) {
142
- var inputId = "".concat(mapNameToId(errorKey)).concat(isArrayField ? "[".concat(index, "]") : '');
143
- return /*#__PURE__*/React.createElement("li", {
144
- key: inputId
145
- }, /*#__PURE__*/React.createElement("a", {
146
- href: "#".concat(inputId),
147
- onClick: handleLinkClick
148
- }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
149
- }));
150
- })));
109
+ return (
110
+ /*#__PURE__*/
111
+ // biome-ignore lint/a11y/noInteractiveElementToNoninteractiveRole: group is not an interactive role
112
+ React.createElement("bds-error-summary", _extends({
113
+ role: "group",
114
+ "aria-labelledby": headingId,
115
+ ref: groupRef,
116
+ tabIndex: -1
117
+ }, props), /*#__PURE__*/React.createElement("h2", {
118
+ className: "bds-h5",
119
+ id: headingId
120
+ }, /*#__PURE__*/React.createElement("svg", {
121
+ xmlns: "http://www.w3.org/2000/svg",
122
+ viewBox: "0 0 512 512",
123
+ "aria-hidden": "true",
124
+ height: "1em",
125
+ width: "1em",
126
+ fill: "currentColor"
127
+ }, /*#__PURE__*/React.createElement("path", {
128
+ 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"
129
+ })), "Issue"), /*#__PURE__*/React.createElement("ul", null, Object.keys(errors).map(function (errorKey) {
130
+ var message = errors[errorKey];
131
+ var isFormError = [FINAL_FORM_ERROR, FormErrorKey].includes(errorKey);
132
+ if (isFormError) {
133
+ // biome-ignore lint/security/noDangerouslySetInnerHtml: some generic form errors may include links
134
+ return /*#__PURE__*/React.createElement("li", {
135
+ key: errorKey,
136
+ dangerouslySetInnerHTML: {
137
+ __html: message
138
+ }
139
+ });
140
+ }
141
+ var isArrayField = Array.isArray(message);
142
+ var messages = isArrayField ? message : [message];
143
+ return /*#__PURE__*/React.createElement(React.Fragment, {
144
+ key: errorKey
145
+ }, messages.map(function (fieldMessage, index) {
146
+ var inputId = "".concat(mapNameToId(errorKey)).concat(isArrayField ? "[".concat(index, "]") : '');
147
+ return /*#__PURE__*/React.createElement("li", {
148
+ key: inputId
149
+ }, /*#__PURE__*/React.createElement("a", {
150
+ href: "#".concat(inputId),
151
+ onClick: handleLinkClick
152
+ }, fieldMessage, messages.length > 1 ? " (".concat(index + 1, " of ").concat(messages.length, ")") : undefined));
153
+ }));
154
+ })))
155
+ );
151
156
  }
152
157
 
153
158
  export { FormErrorKey, BdsErrorSummary 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\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\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 // biome-ignore lint/a11y/noInteractiveElementToNoninteractiveRole: group is not an interactive role\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 // biome-ignore lint/security/noDangerouslySetInnerHtml: some generic form errors may include links\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 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCheckbox/FieldCheckbox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldCheckboxProps = {\n error?: string;\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'input'>;\n\nconst FieldCheckbox = React.forwardRef<HTMLInputElement, FieldCheckboxProps>(\n ({ error, id, label, ...props }, ref) => {\n const [isEnhanced, setIsEnhanced] = React.useState(false);\n\n const fallbackId = React.useId();\n const errorId = React.useId();\n\n const inputId = id ?? fallbackId;\n\n React.useEffect(() => {\n setIsEnhanced(true);\n }, []);\n\n return (\n <div className=\"bds-form-group\">\n {error && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-checkbox\" data-enhanced={isEnhanced ? '' : undefined}>\n <input\n {...props}\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? true : undefined}\n id={inputId}\n ref={ref}\n type=\"checkbox\"\n />\n {isEnhanced && (\n <svg width=\"32\" height=\"32\" viewBox=\"-4 -4 39 39\" aria-hidden=\"true\" focusable=\"false\">\n <rect\n className=\"background\"\n width=\"35\"\n height=\"35\"\n x=\"-2\"\n y=\"-2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n <path\n className=\"checkmark\"\n d=\"M 4 14 L 12 23 L 28 5\"\n stroke=\"#ffff\"\n strokeDasharray=\"140\"\n strokeDashoffset=\"140\"\n ></path>\n </svg>\n )}\n <label htmlFor={inputId}>{label}</label>\n </div>\n </div>\n );\n },\n);\n\nexport default FieldCheckbox;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldCheckbox","forwardRef","ref","error","id","label","_React$useState","useState","_React$useState2","_slicedToArray","isEnhanced","setIsEnhanced","fallbackId","useId","errorId","inputId","useEffect","undefined","type","focusable","y","stroke","strokeWidth","vectorEffect","strokeDasharray","strokeDashoffset","htmlFor"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCheckbox/FieldCheckbox.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldCheckboxProps = {\n error?: string;\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'input'>;\n\nconst FieldCheckbox = React.forwardRef<HTMLInputElement, FieldCheckboxProps>(\n ({ error, id, label, ...props }, ref) => {\n const [isEnhanced, setIsEnhanced] = React.useState(false);\n\n const fallbackId = React.useId();\n const errorId = React.useId();\n\n const inputId = id ?? fallbackId;\n\n React.useEffect(() => {\n setIsEnhanced(true);\n }, []);\n\n return (\n <div className=\"bds-form-group\">\n {error && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-checkbox\" data-enhanced={isEnhanced ? '' : undefined}>\n <input\n {...props}\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? true : undefined}\n id={inputId}\n ref={ref}\n type=\"checkbox\"\n />\n {isEnhanced && (\n <svg width=\"32\" height=\"32\" viewBox=\"-4 -4 39 39\" aria-hidden=\"true\" focusable=\"false\">\n <rect\n className=\"background\"\n width=\"35\"\n height=\"35\"\n x=\"-2\"\n y=\"-2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n <path\n className=\"checkmark\"\n d=\"M 4 14 L 12 23 L 28 5\"\n stroke=\"#ffff\"\n strokeDasharray=\"140\"\n strokeDashoffset=\"140\"\n />\n </svg>\n )}\n <label htmlFor={inputId}>{label}</label>\n </div>\n </div>\n );\n },\n);\n\nexport default FieldCheckbox;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldCheckbox","forwardRef","ref","error","id","label","_React$useState","useState","_React$useState2","_slicedToArray","isEnhanced","setIsEnhanced","fallbackId","useId","errorId","inputId","useEffect","undefined","type","focusable","y","stroke","strokeWidth","vectorEffect","strokeDasharray","strokeDashoffset","htmlFor"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCheckbox/FieldCheckbox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldCheckboxProps = {\n error?: string;\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'input'>;\n\nconst FieldCheckbox = React.forwardRef<HTMLInputElement, FieldCheckboxProps>(\n ({ error, id, label, ...props }, ref) => {\n const [isEnhanced, setIsEnhanced] = React.useState(false);\n\n const fallbackId = React.useId();\n const errorId = React.useId();\n\n const inputId = id ?? fallbackId;\n\n React.useEffect(() => {\n setIsEnhanced(true);\n }, []);\n\n return (\n <div className=\"bds-form-group\">\n {error && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-checkbox\" data-enhanced={isEnhanced ? '' : undefined}>\n <input\n {...props}\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? true : undefined}\n id={inputId}\n ref={ref}\n type=\"checkbox\"\n />\n {isEnhanced && (\n <svg width=\"32\" height=\"32\" viewBox=\"-4 -4 39 39\" aria-hidden=\"true\" focusable=\"false\">\n <rect\n className=\"background\"\n width=\"35\"\n height=\"35\"\n x=\"-2\"\n y=\"-2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n <path\n className=\"checkmark\"\n d=\"M 4 14 L 12 23 L 28 5\"\n stroke=\"#ffff\"\n strokeDasharray=\"140\"\n strokeDashoffset=\"140\"\n ></path>\n </svg>\n )}\n <label htmlFor={inputId}>{label}</label>\n </div>\n </div>\n );\n },\n);\n\nexport default FieldCheckbox;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldCheckbox","forwardRef","ref","error","id","label","_React$useState","useState","_React$useState2","_slicedToArray","isEnhanced","setIsEnhanced","fallbackId","useId","errorId","inputId","useEffect","undefined","type","focusable","y","stroke","strokeWidth","vectorEffect","strokeDasharray","strokeDashoffset","htmlFor"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCheckbox/FieldCheckbox.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldCheckboxProps = {\n error?: string;\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'input'>;\n\nconst FieldCheckbox = React.forwardRef<HTMLInputElement, FieldCheckboxProps>(\n ({ error, id, label, ...props }, ref) => {\n const [isEnhanced, setIsEnhanced] = React.useState(false);\n\n const fallbackId = React.useId();\n const errorId = React.useId();\n\n const inputId = id ?? fallbackId;\n\n React.useEffect(() => {\n setIsEnhanced(true);\n }, []);\n\n return (\n <div className=\"bds-form-group\">\n {error && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-checkbox\" data-enhanced={isEnhanced ? '' : undefined}>\n <input\n {...props}\n aria-describedby={error ? errorId : undefined}\n aria-invalid={error ? true : undefined}\n id={inputId}\n ref={ref}\n type=\"checkbox\"\n />\n {isEnhanced && (\n <svg width=\"32\" height=\"32\" viewBox=\"-4 -4 39 39\" aria-hidden=\"true\" focusable=\"false\">\n <rect\n className=\"background\"\n width=\"35\"\n height=\"35\"\n x=\"-2\"\n y=\"-2\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n <path\n className=\"checkmark\"\n d=\"M 4 14 L 12 23 L 28 5\"\n stroke=\"#ffff\"\n strokeDasharray=\"140\"\n strokeDashoffset=\"140\"\n />\n </svg>\n )}\n <label htmlFor={inputId}>{label}</label>\n </div>\n </div>\n );\n },\n);\n\nexport default FieldCheckbox;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldCheckbox","forwardRef","ref","error","id","label","_React$useState","useState","_React$useState2","_slicedToArray","isEnhanced","setIsEnhanced","fallbackId","useId","errorId","inputId","useEffect","undefined","type","focusable","y","stroke","strokeWidth","vectorEffect","strokeDasharray","strokeDashoffset","htmlFor"],"mappings":"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"}
@@ -5,6 +5,12 @@ export type FieldSelectProps = {
5
5
  id?: string;
6
6
  isOptional?: boolean;
7
7
  label: React.ReactNode | string;
8
- };
9
- declare const FieldSelect: React.ForwardRefExoticComponent<FieldSelectProps & React.RefAttributes<HTMLSelectElement>>;
8
+ } & React.ComponentPropsWithoutRef<'select'>;
9
+ declare const FieldSelect: React.ForwardRefExoticComponent<{
10
+ error?: string | undefined;
11
+ hint?: React.ReactNode | string;
12
+ id?: string | undefined;
13
+ isOptional?: boolean | undefined;
14
+ label: React.ReactNode | string;
15
+ } & Omit<React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, "ref"> & React.RefAttributes<HTMLSelectElement>>;
10
16
  export default FieldSelect;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldSelect/FieldSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldSelectProps = {\n error?: string;\n hint?: React.ReactNode | string;\n id?: string;\n isOptional?: boolean;\n label: React.ReactNode | string;\n};\n\nconst FieldSelect = React.forwardRef<HTMLSelectElement, FieldSelectProps>(\n ({ error, hint, id, isOptional = false, label, ...props }, ref) => {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n return (\n <div className=\"bds-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-select\">\n <select\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n ref={ref}\n {...props}\n />\n </div>\n </div>\n );\n },\n);\n\nexport default FieldSelect;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldSelect","forwardRef","ref","_id","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","htmlFor","undefined","concat"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldSelect/FieldSelect.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldSelectProps = {\n error?: string;\n hint?: React.ReactNode | string;\n id?: string;\n isOptional?: boolean;\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'select'>;\n\nconst FieldSelect = React.forwardRef<HTMLSelectElement, FieldSelectProps>(\n ({ error, hint, id, isOptional = false, label, ...props }, ref) => {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n return (\n <div className=\"bds-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-select\">\n <select\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n ref={ref}\n {...props}\n />\n </div>\n </div>\n );\n },\n);\n\nexport default FieldSelect;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldSelect","forwardRef","ref","_id","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","htmlFor","undefined","concat"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldSelect/FieldSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldSelectProps = {\n error?: string;\n hint?: React.ReactNode | string;\n id?: string;\n isOptional?: boolean;\n label: React.ReactNode | string;\n};\n\nconst FieldSelect = React.forwardRef<HTMLSelectElement, FieldSelectProps>(\n ({ error, hint, id, isOptional = false, label, ...props }, ref) => {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n return (\n <div className=\"bds-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-select\">\n <select\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n ref={ref}\n {...props}\n />\n </div>\n </div>\n );\n },\n);\n\nexport default FieldSelect;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldSelect","forwardRef","ref","_id","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","htmlFor","undefined","concat"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldSelect/FieldSelect.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\n\nexport type FieldSelectProps = {\n error?: string;\n hint?: React.ReactNode | string;\n id?: string;\n isOptional?: boolean;\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'select'>;\n\nconst FieldSelect = React.forwardRef<HTMLSelectElement, FieldSelectProps>(\n ({ error, hint, id, isOptional = false, label, ...props }, ref) => {\n id = id ?? props.name;\n\n const errorId = React.useId();\n const hintId = React.useId();\n\n return (\n <div className=\"bds-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <div className=\"bds-select\">\n <select\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n id={id}\n ref={ref}\n {...props}\n />\n </div>\n </div>\n );\n },\n);\n\nexport default FieldSelect;\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldSelect","forwardRef","ref","_id","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","htmlFor","undefined","concat"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldTextInput/FieldTextInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\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 className,\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-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className={['bds-text-input', className].filter((x) => x).join(' ')}\n id={id}\n {...props}\n />\n </div>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldTextInput","_id","as","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","InputComponent","htmlFor","undefined","concat"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldTextInput/FieldTextInput.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\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 className,\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-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className={['bds-text-input', className].filter((x) => x).join(' ')}\n id={id}\n {...props}\n />\n </div>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldTextInput","_id","as","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","InputComponent","htmlFor","undefined","concat"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldTextInput/FieldTextInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\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 className,\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-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className={['bds-text-input', className].filter((x) => x).join(' ')}\n id={id}\n {...props}\n />\n </div>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldTextInput","_id","as","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","InputComponent","htmlFor","undefined","concat"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldTextInput/FieldTextInput.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: following this rule does not work for some reason\nimport * as React from 'react';\n\nexport default function ErrorMessage({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span className={['bds-error', className].filter((x) => x).join(' ')} {...props}>\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 {children}\n </span>\n );\n}\n","import * as React from 'react';\nimport ErrorMessage from '../ErrorMessage';\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 className,\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-form-group\">\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 && <ErrorMessage id={errorId}>{error}</ErrorMessage>}\n <InputComponent\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className={['bds-text-input', className].filter((x) => x).join(' ')}\n id={id}\n {...props}\n />\n </div>\n );\n}\n"],"names":["ErrorMessage","_ref","className","children","props","_objectWithoutProperties","_excluded","React","createElement","_extends","filter","x","join","xmlns","viewBox","height","width","fill","d","FieldTextInput","_id","as","error","hint","id","_ref$isOptional","isOptional","label","name","errorId","useId","hintId","InputComponent","htmlFor","undefined","concat"],"mappings":"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"}