@iabbb/bds-react 0.49.1 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/Button/index.cjs +3 -3
  2. package/Button/index.mjs +3 -3
  3. package/CallToAction/index.cjs +3 -3
  4. package/CallToAction/index.mjs +3 -3
  5. package/ErrorMessage/index.cjs +3 -3
  6. package/ErrorMessage/index.mjs +3 -3
  7. package/ErrorSummary/index.cjs +3 -3
  8. package/ErrorSummary/index.mjs +3 -3
  9. package/FieldCharacterCountdown/index.cjs +3 -3
  10. package/FieldCharacterCountdown/index.cjs.map +1 -1
  11. package/FieldCharacterCountdown/index.mjs +3 -3
  12. package/FieldCharacterCountdown/index.mjs.map +1 -1
  13. package/FieldCheckbox/FieldCheckbox.d.ts +1 -1
  14. package/FieldCheckbox/index.cjs +10 -10
  15. package/FieldCheckbox/index.cjs.map +1 -1
  16. package/FieldCheckbox/index.mjs +10 -10
  17. package/FieldCheckbox/index.mjs.map +1 -1
  18. package/FieldRadio/index.cjs +12 -12
  19. package/FieldRadio/index.cjs.map +1 -1
  20. package/FieldRadio/index.mjs +12 -12
  21. package/FieldRadio/index.mjs.map +1 -1
  22. package/FieldSelect/FieldSelect.d.ts +3 -3
  23. package/FieldSelect/index.cjs +3 -3
  24. package/FieldSelect/index.mjs +3 -3
  25. package/FieldTextInput/index.cjs +3 -3
  26. package/FieldTextInput/index.mjs +3 -3
  27. package/FieldTextarea/index.cjs +3 -3
  28. package/FieldTextarea/index.mjs +3 -3
  29. package/Fieldset/index.cjs +3 -3
  30. package/Fieldset/index.mjs +3 -3
  31. package/Pagination/index.cjs +3 -3
  32. package/Pagination/index.mjs +3 -3
  33. package/Typography/index.cjs +4 -3
  34. package/Typography/index.cjs.map +1 -1
  35. package/Typography/index.mjs +4 -3
  36. package/Typography/index.mjs.map +1 -1
  37. package/index.cjs +4 -3
  38. package/index.cjs.map +1 -1
  39. package/index.mjs +4 -3
  40. package/index.mjs.map +1 -1
  41. package/package.json +9 -9
package/Button/index.cjs CHANGED
@@ -38,8 +38,8 @@ function _objectWithoutProperties(e, t) {
38
38
  r,
39
39
  i = _objectWithoutPropertiesLoose(e, t);
40
40
  if (Object.getOwnPropertySymbols) {
41
- var n = Object.getOwnPropertySymbols(e);
42
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
41
+ var s = Object.getOwnPropertySymbols(e);
42
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
43
43
  }
44
44
  return i;
45
45
  }
@@ -47,7 +47,7 @@ function _objectWithoutPropertiesLoose(r, e) {
47
47
  if (null == r) return {};
48
48
  var t = {};
49
49
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
50
- if (e.indexOf(n) >= 0) continue;
50
+ if (e.includes(n)) continue;
51
51
  t[n] = r[n];
52
52
  }
53
53
  return t;
package/Button/index.mjs CHANGED
@@ -15,8 +15,8 @@ function _objectWithoutProperties(e, t) {
15
15
  r,
16
16
  i = _objectWithoutPropertiesLoose(e, t);
17
17
  if (Object.getOwnPropertySymbols) {
18
- var n = Object.getOwnPropertySymbols(e);
19
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
18
+ var s = Object.getOwnPropertySymbols(e);
19
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
20
20
  }
21
21
  return i;
22
22
  }
@@ -24,7 +24,7 @@ function _objectWithoutPropertiesLoose(r, e) {
24
24
  if (null == r) return {};
25
25
  var t = {};
26
26
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
27
- if (e.indexOf(n) >= 0) continue;
27
+ if (e.includes(n)) continue;
28
28
  t[n] = r[n];
29
29
  }
30
30
  return t;
@@ -38,8 +38,8 @@ function _objectWithoutProperties(e, t) {
38
38
  r,
39
39
  i = _objectWithoutPropertiesLoose(e, t);
40
40
  if (Object.getOwnPropertySymbols) {
41
- var n = Object.getOwnPropertySymbols(e);
42
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
41
+ var s = Object.getOwnPropertySymbols(e);
42
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
43
43
  }
44
44
  return i;
45
45
  }
@@ -47,7 +47,7 @@ function _objectWithoutPropertiesLoose(r, e) {
47
47
  if (null == r) return {};
48
48
  var t = {};
49
49
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
50
- if (e.indexOf(n) >= 0) continue;
50
+ if (e.includes(n)) continue;
51
51
  t[n] = r[n];
52
52
  }
53
53
  return t;
@@ -15,8 +15,8 @@ function _objectWithoutProperties(e, t) {
15
15
  r,
16
16
  i = _objectWithoutPropertiesLoose(e, t);
17
17
  if (Object.getOwnPropertySymbols) {
18
- var n = Object.getOwnPropertySymbols(e);
19
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
18
+ var s = Object.getOwnPropertySymbols(e);
19
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
20
20
  }
21
21
  return i;
22
22
  }
@@ -24,7 +24,7 @@ function _objectWithoutPropertiesLoose(r, e) {
24
24
  if (null == r) return {};
25
25
  var t = {};
26
26
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
27
- if (e.indexOf(n) >= 0) continue;
27
+ if (e.includes(n)) continue;
28
28
  t[n] = r[n];
29
29
  }
30
30
  return t;
@@ -38,8 +38,8 @@ function _objectWithoutProperties(e, t) {
38
38
  r,
39
39
  i = _objectWithoutPropertiesLoose(e, t);
40
40
  if (Object.getOwnPropertySymbols) {
41
- var n = Object.getOwnPropertySymbols(e);
42
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
41
+ var s = Object.getOwnPropertySymbols(e);
42
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
43
43
  }
44
44
  return i;
45
45
  }
@@ -47,7 +47,7 @@ function _objectWithoutPropertiesLoose(r, e) {
47
47
  if (null == r) return {};
48
48
  var t = {};
49
49
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
50
- if (e.indexOf(n) >= 0) continue;
50
+ if (e.includes(n)) continue;
51
51
  t[n] = r[n];
52
52
  }
53
53
  return t;
@@ -15,8 +15,8 @@ function _objectWithoutProperties(e, t) {
15
15
  r,
16
16
  i = _objectWithoutPropertiesLoose(e, t);
17
17
  if (Object.getOwnPropertySymbols) {
18
- var n = Object.getOwnPropertySymbols(e);
19
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
18
+ var s = Object.getOwnPropertySymbols(e);
19
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
20
20
  }
21
21
  return i;
22
22
  }
@@ -24,7 +24,7 @@ function _objectWithoutPropertiesLoose(r, e) {
24
24
  if (null == r) return {};
25
25
  var t = {};
26
26
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
27
- if (e.indexOf(n) >= 0) continue;
27
+ if (e.includes(n)) continue;
28
28
  t[n] = r[n];
29
29
  }
30
30
  return t;
@@ -38,8 +38,8 @@ function _objectWithoutProperties(e, t) {
38
38
  r,
39
39
  i = _objectWithoutPropertiesLoose(e, t);
40
40
  if (Object.getOwnPropertySymbols) {
41
- var n = Object.getOwnPropertySymbols(e);
42
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
41
+ var s = Object.getOwnPropertySymbols(e);
42
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
43
43
  }
44
44
  return i;
45
45
  }
@@ -47,7 +47,7 @@ function _objectWithoutPropertiesLoose(r, e) {
47
47
  if (null == r) return {};
48
48
  var t = {};
49
49
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
50
- if (e.indexOf(n) >= 0) continue;
50
+ if (e.includes(n)) continue;
51
51
  t[n] = r[n];
52
52
  }
53
53
  return t;
@@ -15,8 +15,8 @@ function _objectWithoutProperties(e, t) {
15
15
  r,
16
16
  i = _objectWithoutPropertiesLoose(e, t);
17
17
  if (Object.getOwnPropertySymbols) {
18
- var n = Object.getOwnPropertySymbols(e);
19
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
18
+ var s = Object.getOwnPropertySymbols(e);
19
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
20
20
  }
21
21
  return i;
22
22
  }
@@ -24,7 +24,7 @@ function _objectWithoutPropertiesLoose(r, e) {
24
24
  if (null == r) return {};
25
25
  var t = {};
26
26
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
27
- if (e.indexOf(n) >= 0) continue;
27
+ if (e.includes(n)) continue;
28
28
  t[n] = r[n];
29
29
  }
30
30
  return t;
@@ -73,8 +73,8 @@ function _objectWithoutProperties(e, t) {
73
73
  r,
74
74
  i = _objectWithoutPropertiesLoose(e, t);
75
75
  if (Object.getOwnPropertySymbols) {
76
- var n = Object.getOwnPropertySymbols(e);
77
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
76
+ var s = Object.getOwnPropertySymbols(e);
77
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
78
78
  }
79
79
  return i;
80
80
  }
@@ -82,7 +82,7 @@ function _objectWithoutPropertiesLoose(r, e) {
82
82
  if (null == r) return {};
83
83
  var t = {};
84
84
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
85
- if (e.indexOf(n) >= 0) continue;
85
+ if (e.includes(n)) continue;
86
86
  t[n] = r[n];
87
87
  }
88
88
  return t;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCharacterCountdown/useCharacterCountdown.ts","../../src/FieldCharacterCountdown/FieldCharacterCountdown.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\nconst visuallyHiddenAnnouncementUpdateTimeInSeconds = 1;\n\nexport default function useCharacterCountdown(maxCharacters: number, currentCharacters = 0) {\n const [remainingCharacters, setRemainingCharacters] = React.useState(maxCharacters - currentCharacters);\n\n // When JS fails to load, the default label 👇 will still let the user know about the limit.\n const [label, setLabel] = React.useState(`You can use up to ${maxCharacters} characters`);\n const [visuallyHiddenAnnouncement, setVisuallyHiddenAnnouncement] = React.useState(label);\n\n // This should lag behind the visual update -- otherwise, screen reader users will be interrupted with a lot of chatter while typing\n const updateVisuallyHiddenAnnouncement = useDebounce((charactersToAnnounce: number) => {\n if (charactersToAnnounce >= 0) {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce} characters remaining`);\n } else {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce * -1} characters too many`);\n }\n }, visuallyHiddenAnnouncementUpdateTimeInSeconds * 1000);\n\n React.useEffect(() => {\n if (remainingCharacters >= 0) {\n setLabel(`<strong>${remainingCharacters}</strong> characters remaining`);\n } else {\n setLabel(`You have <strong>${remainingCharacters * -1}</strong> characters too many`);\n }\n\n updateVisuallyHiddenAnnouncement(remainingCharacters);\n }, [remainingCharacters, updateVisuallyHiddenAnnouncement]);\n\n return {\n hasExceededLimit: remainingCharacters < 0,\n handleTextareaChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setRemainingCharacters(maxCharacters - e.target.value.length);\n },\n label,\n visuallyHiddenAnnouncement,\n };\n}\n\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * Lifted from downshift/utils (not exposed in lib).\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction debounce(fn: (...rest: any[]) => any, time: number) {\n let timeoutId: number | null = 0;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper(...args) {\n cancel();\n timeoutId = setTimeout(() => {\n timeoutId = null;\n fn(...args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n\n return wrapper;\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction useDebounce<T extends (...rest: any[]) => any>(callback: T, delay: number) {\n return React.useRef(debounce((...params) => callback(...params), delay)).current;\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\nimport useCharacterCountdown from './useCharacterCountdown';\n\nexport type FieldCharacterCountdownProps = {\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n maxCharacters: number;\n};\n\nexport default function FieldCharacterCountdown({\n error,\n hint,\n id,\n isOptional = false,\n label,\n maxCharacters,\n onChange,\n ...props\n}: FieldCharacterCountdownProps & React.ComponentPropsWithoutRef<'textarea'>) {\n const characterCountdown = useCharacterCountdown(maxCharacters, ((props.value as string) || '').length);\n\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 <textarea\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className=\"bds-textarea\"\n id={id}\n onChange={(e) => {\n if (onChange) {\n onChange(e);\n }\n\n characterCountdown.handleTextareaChange(e);\n }}\n {...props}\n />\n <div\n aria-hidden=\"true\"\n className=\"bds-character-count\"\n data-exceeds-limit={characterCountdown.hasExceededLimit ? true : undefined}\n // biome-ignore lint/security/noDangerouslySetInnerHtml: HTML is expected and used for highlighting the number itself\n dangerouslySetInnerHTML={{\n __html: characterCountdown.label,\n }}\n />\n <div aria-live=\"polite\" className=\"visually-hidden\">\n {characterCountdown.visuallyHiddenAnnouncement}\n </div>\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","visuallyHiddenAnnouncementUpdateTimeInSeconds","useCharacterCountdown","maxCharacters","currentCharacters","arguments","length","undefined","_React$useState","useState","_React$useState2","_slicedToArray","remainingCharacters","setRemainingCharacters","_React$useState3","concat","_React$useState4","label","setLabel","_React$useState5","_React$useState6","visuallyHiddenAnnouncement","setVisuallyHiddenAnnouncement","updateVisuallyHiddenAnnouncement","useDebounce","charactersToAnnounce","useEffect","hasExceededLimit","handleTextareaChange","e","target","value","debounce","fn","time","timeoutId","cancel","clearTimeout","wrapper","_len","args","Array","_key","setTimeout","apply","callback","delay","useRef","current","FieldCharacterCountdown","_id","error","hint","id","_ref$isOptional","isOptional","onChange","characterCountdown","name","errorId","useId","hintId","htmlFor","dangerouslySetInnerHTML","__html"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCharacterCountdown/useCharacterCountdown.ts","../../src/FieldCharacterCountdown/FieldCharacterCountdown.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\nconst visuallyHiddenAnnouncementUpdateTimeInSeconds = 1;\n\nexport default function useCharacterCountdown(maxCharacters: number, currentCharacters = 0) {\n const [remainingCharacters, setRemainingCharacters] = React.useState(maxCharacters - currentCharacters);\n\n // When JS fails to load, the default label 👇 will still let the user know about the limit.\n const [label, setLabel] = React.useState(`You can use up to ${maxCharacters} characters`);\n const [visuallyHiddenAnnouncement, setVisuallyHiddenAnnouncement] = React.useState(label);\n\n // This should lag behind the visual update -- otherwise, screen reader users will be interrupted with a lot of chatter while typing\n const updateVisuallyHiddenAnnouncement = useDebounce((charactersToAnnounce: number) => {\n if (charactersToAnnounce >= 0) {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce} characters remaining`);\n } else {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce * -1} characters too many`);\n }\n }, visuallyHiddenAnnouncementUpdateTimeInSeconds * 1000);\n\n React.useEffect(() => {\n if (remainingCharacters >= 0) {\n setLabel(`<strong>${remainingCharacters}</strong> characters remaining`);\n } else {\n setLabel(`You have <strong>${remainingCharacters * -1}</strong> characters too many`);\n }\n\n updateVisuallyHiddenAnnouncement(remainingCharacters);\n }, [remainingCharacters, updateVisuallyHiddenAnnouncement]);\n\n return {\n hasExceededLimit: remainingCharacters < 0,\n handleTextareaChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setRemainingCharacters(maxCharacters - e.target.value.length);\n },\n label,\n visuallyHiddenAnnouncement,\n };\n}\n\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * Lifted from downshift/utils (not exposed in lib).\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction debounce(fn: (...rest: any[]) => any, time: number) {\n let timeoutId: number | null = 0;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper(...args) {\n cancel();\n timeoutId = setTimeout(() => {\n timeoutId = null;\n fn(...args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n\n return wrapper;\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction useDebounce<T extends (...rest: any[]) => any>(callback: T, delay: number) {\n return React.useRef(debounce((...params) => callback(...params), delay)).current;\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\nimport useCharacterCountdown from './useCharacterCountdown';\n\nexport type FieldCharacterCountdownProps = {\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n maxCharacters: number;\n};\n\nexport default function FieldCharacterCountdown({\n error,\n hint,\n id,\n isOptional = false,\n label,\n maxCharacters,\n onChange,\n ...props\n}: FieldCharacterCountdownProps & React.ComponentPropsWithoutRef<'textarea'>) {\n const characterCountdown = useCharacterCountdown(maxCharacters, ((props.value as string) || '').length);\n\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 <textarea\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className=\"bds-textarea\"\n id={id}\n onChange={(e) => {\n if (onChange) {\n onChange(e);\n }\n\n characterCountdown.handleTextareaChange(e);\n }}\n {...props}\n />\n <div\n aria-hidden=\"true\"\n className=\"bds-character-count\"\n data-exceeds-limit={characterCountdown.hasExceededLimit ? true : undefined}\n // biome-ignore lint/security/noDangerouslySetInnerHtml: HTML is expected and used for highlighting the number itself\n dangerouslySetInnerHTML={{\n __html: characterCountdown.label,\n }}\n />\n <div aria-live=\"polite\" className=\"visually-hidden\">\n {characterCountdown.visuallyHiddenAnnouncement}\n </div>\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","visuallyHiddenAnnouncementUpdateTimeInSeconds","useCharacterCountdown","maxCharacters","currentCharacters","arguments","length","undefined","_React$useState","useState","_React$useState2","_slicedToArray","remainingCharacters","setRemainingCharacters","_React$useState3","concat","_React$useState4","label","setLabel","_React$useState5","_React$useState6","visuallyHiddenAnnouncement","setVisuallyHiddenAnnouncement","updateVisuallyHiddenAnnouncement","useDebounce","charactersToAnnounce","useEffect","hasExceededLimit","handleTextareaChange","e","target","value","debounce","fn","time","timeoutId","cancel","clearTimeout","wrapper","_len","args","Array","_key","setTimeout","apply","callback","delay","useRef","current","FieldCharacterCountdown","_id","error","hint","id","_ref$isOptional","isOptional","onChange","characterCountdown","name","errorId","useId","hintId","htmlFor","dangerouslySetInnerHTML","__html"],"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,WAAA,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;;ACjBA,IAAMgB,6CAA6C,GAAG,CAAC,CAAA;AAExC,SAASC,qBAAqBA,CAACC,aAAqB,EAAyB;AAAA,EAAA,IAAvBC,iBAAiB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;EACxF,IAAAG,eAAA,GAAsDnB,gBAAK,CAACoB,QAAQ,CAACN,aAAa,GAAGC,iBAAiB,CAAC;IAAAM,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAAhGI,IAAAA,mBAAmB,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,sBAAsB,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;;AAElD;EACA,IAAAI,gBAAA,GAA0BzB,gBAAK,CAACoB,QAAQ,sBAAAM,MAAA,CAAsBZ,aAAa,EAAA,aAAA,CAAa,CAAC;IAAAa,gBAAA,GAAAL,cAAA,CAAAG,gBAAA,EAAA,CAAA,CAAA;AAAlFG,IAAAA,KAAK,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AACtB,EAAA,IAAAG,gBAAA,GAAoE9B,gBAAK,CAACoB,QAAQ,CAACQ,KAAK,CAAC;IAAAG,gBAAA,GAAAT,cAAA,CAAAQ,gBAAA,EAAA,CAAA,CAAA;AAAlFE,IAAAA,0BAA0B,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,6BAA6B,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;;AAEhE;AACA,EAAA,IAAMG,gCAAgC,GAAGC,WAAW,CAAC,UAACC,oBAA4B,EAAK;IACrF,IAAIA,oBAAoB,IAAI,CAAC,EAAE;AAC7BH,MAAAA,6BAA6B,CAAAP,WAAAA,CAAAA,MAAA,CAAaU,oBAAoB,0BAAuB,CAAC,CAAA;AACxF,KAAC,MAAM;MACLH,6BAA6B,CAAA,WAAA,CAAAP,MAAA,CAAaU,oBAAoB,GAAG,CAAC,CAAC,yBAAsB,CAAC,CAAA;AAC5F,KAAA;AACF,GAAC,EAAExB,6CAA6C,GAAG,IAAI,CAAC,CAAA;EAExDZ,gBAAK,CAACqC,SAAS,CAAC,YAAM;IACpB,IAAId,mBAAmB,IAAI,CAAC,EAAE;AAC5BM,MAAAA,QAAQ,CAAAH,UAAAA,CAAAA,MAAA,CAAYH,mBAAmB,mCAAgC,CAAC,CAAA;AAC1E,KAAC,MAAM;MACLM,QAAQ,CAAA,mBAAA,CAAAH,MAAA,CAAqBH,mBAAmB,GAAG,CAAC,CAAC,kCAA+B,CAAC,CAAA;AACvF,KAAA;IAEAW,gCAAgC,CAACX,mBAAmB,CAAC,CAAA;AACvD,GAAC,EAAE,CAACA,mBAAmB,EAAEW,gCAAgC,CAAC,CAAC,CAAA;EAE3D,OAAO;IACLI,gBAAgB,EAAEf,mBAAmB,GAAG,CAAC;AACzCgB,IAAAA,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAGC,CAAyC,EAAK;MACnEhB,sBAAsB,CAACV,aAAa,GAAG0B,CAAC,CAACC,MAAM,CAACC,KAAK,CAACzB,MAAM,CAAC,CAAA;KAC9D;AACDW,IAAAA,KAAK,EAALA,KAAK;AACLI,IAAAA,0BAA0B,EAA1BA,0BAAAA;GACD,CAAA;AACH,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,QAAQA,CAACC,EAA2B,EAAEC,IAAY,EAAE;EAC3D,IAAIC,SAAwB,GAAG,CAAC,CAAA;EAEhC,SAASC,MAAMA,GAAG;AAChB,IAAA,IAAID,SAAS,EAAE;MACbE,YAAY,CAACF,SAAS,CAAC,CAAA;AACzB,KAAA;AACF,GAAA;EAEA,SAASG,OAAOA,GAAU;AAAA,IAAA,KAAA,IAAAC,IAAA,GAAAlC,SAAA,CAAAC,MAAA,EAANkC,IAAI,GAAAC,IAAAA,KAAA,CAAAF,IAAA,GAAAG,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA,EAAA,EAAA;AAAJF,MAAAA,IAAI,CAAAE,IAAA,CAAArC,GAAAA,SAAA,CAAAqC,IAAA,CAAA,CAAA;AAAA,KAAA;AACtBN,IAAAA,MAAM,EAAE,CAAA;IACRD,SAAS,GAAGQ,UAAU,CAAC,YAAM;AAC3BR,MAAAA,SAAS,GAAG,IAAI,CAAA;AAChBF,MAAAA,EAAE,CAAAW,KAAA,CAAIJ,KAAAA,CAAAA,EAAAA,IAAI,CAAC,CAAA;KACZ,EAAEN,IAAI,CAAC,CAAA;AACV,GAAA;EAEAI,OAAO,CAACF,MAAM,GAAGA,MAAM,CAAA;AAEvB,EAAA,OAAOE,OAAO,CAAA;AAChB,CAAA;;AAEA;AACA,SAASd,WAAWA,CAAoCqB,QAAW,EAAEC,KAAa,EAAE;AAClF,EAAA,OAAOzD,gBAAK,CAAC0D,MAAM,CAACf,QAAQ,CAAC,YAAA;AAAA,IAAA,OAAea,QAAQ,CAAAD,KAAA,CAAA,KAAA,CAAA,EAAAvC,SAAU,CAAC,CAAA;AAAA,GAAA,EAAEyC,KAAK,CAAC,CAAC,CAACE,OAAO,CAAA;AAClF;;;AC7De,SAASC,uBAAuBA,CAAAlE,IAAA,EAS+B;AAAA,EAAA,IAAAmE,GAAA,CAAA;AAAA,EAAA,IAR5EC,KAAK,GAAApE,IAAA,CAALoE,KAAK;IACLC,IAAI,GAAArE,IAAA,CAAJqE,IAAI;IACJC,EAAE,GAAAtE,IAAA,CAAFsE,EAAE;IAAAC,eAAA,GAAAvE,IAAA,CACFwE,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAClBrC,KAAK,GAAAlC,IAAA,CAALkC,KAAK;IACLd,aAAa,GAAApB,IAAA,CAAboB,aAAa;IACbqD,SAAQ,GAAAzE,IAAA,CAARyE,QAAQ;AACLtE,IAAAA,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAER,EAAA,IAAMqE,kBAAkB,GAAGvD,qBAAqB,CAACC,aAAa,EAAE,CAAEjB,KAAK,CAAC6C,KAAK,IAAe,EAAE,EAAEzB,MAAM,CAAC,CAAA;EAEvG+C,EAAE,GAAA,CAAAH,GAAA,GAAGG,EAAE,MAAA,IAAA,IAAAH,GAAA,KAAA,KAAA,CAAA,GAAAA,GAAA,GAAIhE,KAAK,CAACwE,IAAI,CAAA;AAErB,EAAA,IAAMC,OAAO,GAAGtE,gBAAK,CAACuE,KAAK,EAAE,CAAA;AAC7B,EAAA,IAAMC,MAAM,GAAGxE,gBAAK,CAACuE,KAAK,EAAE,CAAA;EAE5B,oBACEvE,gBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKN,IAAAA,SAAS,EAAC,gBAAA;GACbK,eAAAA,gBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAOwE,IAAAA,OAAO,EAAET,EAAAA;GACbpC,EAAAA,KAAK,EACLsC,UAAU,IAAI,aACV,CAAC,EACPH,IAAI,iBACH/D,gBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMN,IAAAA,SAAS,EAAC,UAAU;AAACqE,IAAAA,EAAE,EAAEQ,MAAAA;GAC5BT,EAAAA,IACG,CACP,EACAD,KAAK,iBAAI9D,gBAAA,CAAAC,aAAA,CAACR,YAAY,EAAA;AAACuE,IAAAA,EAAE,EAAEM,OAAAA;AAAQ,GAAA,EAAER,KAAoB,CAAC,eAC3D9D,gBAAA,CAAAC,aAAA,aAAAC,QAAA,CAAA;AACE,IAAA,cAAA,EAAc4D,KAAK,GAAG,IAAI,GAAG5C,SAAU;IACvC,kBAAkB4C,EAAAA,KAAK,IAAIC,IAAI,GAAA,EAAA,CAAArC,MAAA,CAAM8C,MAAM,OAAA9C,MAAA,CAAI4C,OAAO,CAAKR,GAAAA,KAAK,GAAGQ,OAAO,GAAGP,IAAI,GAAGS,MAAM,GAAGtD,SAAU;AACvGvB,IAAAA,SAAS,EAAC,cAAc;AACxBqE,IAAAA,EAAE,EAAEA,EAAG;AACPG,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAG3B,CAAC,EAAK;AACf,MAAA,IAAI2B,SAAQ,EAAE;QACZA,SAAQ,CAAC3B,CAAC,CAAC,CAAA;AACb,OAAA;AAEA4B,MAAAA,kBAAkB,CAAC7B,oBAAoB,CAACC,CAAC,CAAC,CAAA;AAC5C,KAAA;AAAE,GAAA,EACE3C,KAAK,CACV,CAAC,eACFG,gBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE,IAAA,aAAA,EAAY,MAAM;AAClBN,IAAAA,SAAS,EAAC,qBAAqB;AAC/B,IAAA,oBAAA,EAAoByE,kBAAkB,CAAC9B,gBAAgB,GAAG,IAAI,GAAGpB,SAAAA;AACjE;AAAA;AACAwD,IAAAA,uBAAuB,EAAE;MACvBC,MAAM,EAAEP,kBAAkB,CAACxC,KAAAA;AAC7B,KAAA;AAAE,GACH,CAAC,eACF5B,gBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,WAAA,EAAU,QAAQ;AAACN,IAAAA,SAAS,EAAC,iBAAA;AAAiB,GAAA,EAChDyE,kBAAkB,CAACpC,0BACjB,CACF,CAAC,CAAA;AAEV;;;;;"}
@@ -50,8 +50,8 @@ function _objectWithoutProperties(e, t) {
50
50
  r,
51
51
  i = _objectWithoutPropertiesLoose(e, t);
52
52
  if (Object.getOwnPropertySymbols) {
53
- var n = Object.getOwnPropertySymbols(e);
54
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
53
+ var s = Object.getOwnPropertySymbols(e);
54
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
55
55
  }
56
56
  return i;
57
57
  }
@@ -59,7 +59,7 @@ function _objectWithoutPropertiesLoose(r, e) {
59
59
  if (null == r) return {};
60
60
  var t = {};
61
61
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
62
- if (e.indexOf(n) >= 0) continue;
62
+ if (e.includes(n)) continue;
63
63
  t[n] = r[n];
64
64
  }
65
65
  return t;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCharacterCountdown/useCharacterCountdown.ts","../../src/FieldCharacterCountdown/FieldCharacterCountdown.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\nconst visuallyHiddenAnnouncementUpdateTimeInSeconds = 1;\n\nexport default function useCharacterCountdown(maxCharacters: number, currentCharacters = 0) {\n const [remainingCharacters, setRemainingCharacters] = React.useState(maxCharacters - currentCharacters);\n\n // When JS fails to load, the default label 👇 will still let the user know about the limit.\n const [label, setLabel] = React.useState(`You can use up to ${maxCharacters} characters`);\n const [visuallyHiddenAnnouncement, setVisuallyHiddenAnnouncement] = React.useState(label);\n\n // This should lag behind the visual update -- otherwise, screen reader users will be interrupted with a lot of chatter while typing\n const updateVisuallyHiddenAnnouncement = useDebounce((charactersToAnnounce: number) => {\n if (charactersToAnnounce >= 0) {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce} characters remaining`);\n } else {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce * -1} characters too many`);\n }\n }, visuallyHiddenAnnouncementUpdateTimeInSeconds * 1000);\n\n React.useEffect(() => {\n if (remainingCharacters >= 0) {\n setLabel(`<strong>${remainingCharacters}</strong> characters remaining`);\n } else {\n setLabel(`You have <strong>${remainingCharacters * -1}</strong> characters too many`);\n }\n\n updateVisuallyHiddenAnnouncement(remainingCharacters);\n }, [remainingCharacters, updateVisuallyHiddenAnnouncement]);\n\n return {\n hasExceededLimit: remainingCharacters < 0,\n handleTextareaChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setRemainingCharacters(maxCharacters - e.target.value.length);\n },\n label,\n visuallyHiddenAnnouncement,\n };\n}\n\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * Lifted from downshift/utils (not exposed in lib).\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction debounce(fn: (...rest: any[]) => any, time: number) {\n let timeoutId: number | null = 0;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper(...args) {\n cancel();\n timeoutId = setTimeout(() => {\n timeoutId = null;\n fn(...args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n\n return wrapper;\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction useDebounce<T extends (...rest: any[]) => any>(callback: T, delay: number) {\n return React.useRef(debounce((...params) => callback(...params), delay)).current;\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\nimport useCharacterCountdown from './useCharacterCountdown';\n\nexport type FieldCharacterCountdownProps = {\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n maxCharacters: number;\n};\n\nexport default function FieldCharacterCountdown({\n error,\n hint,\n id,\n isOptional = false,\n label,\n maxCharacters,\n onChange,\n ...props\n}: FieldCharacterCountdownProps & React.ComponentPropsWithoutRef<'textarea'>) {\n const characterCountdown = useCharacterCountdown(maxCharacters, ((props.value as string) || '').length);\n\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 <textarea\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className=\"bds-textarea\"\n id={id}\n onChange={(e) => {\n if (onChange) {\n onChange(e);\n }\n\n characterCountdown.handleTextareaChange(e);\n }}\n {...props}\n />\n <div\n aria-hidden=\"true\"\n className=\"bds-character-count\"\n data-exceeds-limit={characterCountdown.hasExceededLimit ? true : undefined}\n // biome-ignore lint/security/noDangerouslySetInnerHtml: HTML is expected and used for highlighting the number itself\n dangerouslySetInnerHTML={{\n __html: characterCountdown.label,\n }}\n />\n <div aria-live=\"polite\" className=\"visually-hidden\">\n {characterCountdown.visuallyHiddenAnnouncement}\n </div>\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","visuallyHiddenAnnouncementUpdateTimeInSeconds","useCharacterCountdown","maxCharacters","currentCharacters","arguments","length","undefined","_React$useState","useState","_React$useState2","_slicedToArray","remainingCharacters","setRemainingCharacters","_React$useState3","concat","_React$useState4","label","setLabel","_React$useState5","_React$useState6","visuallyHiddenAnnouncement","setVisuallyHiddenAnnouncement","updateVisuallyHiddenAnnouncement","useDebounce","charactersToAnnounce","useEffect","hasExceededLimit","handleTextareaChange","e","target","value","debounce","fn","time","timeoutId","cancel","clearTimeout","wrapper","_len","args","Array","_key","setTimeout","apply","callback","delay","useRef","current","FieldCharacterCountdown","_id","error","hint","id","_ref$isOptional","isOptional","onChange","characterCountdown","name","errorId","useId","hintId","htmlFor","dangerouslySetInnerHTML","__html"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/ErrorMessage/ErrorMessage.tsx","../../src/FieldCharacterCountdown/useCharacterCountdown.ts","../../src/FieldCharacterCountdown/FieldCharacterCountdown.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\nconst visuallyHiddenAnnouncementUpdateTimeInSeconds = 1;\n\nexport default function useCharacterCountdown(maxCharacters: number, currentCharacters = 0) {\n const [remainingCharacters, setRemainingCharacters] = React.useState(maxCharacters - currentCharacters);\n\n // When JS fails to load, the default label 👇 will still let the user know about the limit.\n const [label, setLabel] = React.useState(`You can use up to ${maxCharacters} characters`);\n const [visuallyHiddenAnnouncement, setVisuallyHiddenAnnouncement] = React.useState(label);\n\n // This should lag behind the visual update -- otherwise, screen reader users will be interrupted with a lot of chatter while typing\n const updateVisuallyHiddenAnnouncement = useDebounce((charactersToAnnounce: number) => {\n if (charactersToAnnounce >= 0) {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce} characters remaining`);\n } else {\n setVisuallyHiddenAnnouncement(`You have ${charactersToAnnounce * -1} characters too many`);\n }\n }, visuallyHiddenAnnouncementUpdateTimeInSeconds * 1000);\n\n React.useEffect(() => {\n if (remainingCharacters >= 0) {\n setLabel(`<strong>${remainingCharacters}</strong> characters remaining`);\n } else {\n setLabel(`You have <strong>${remainingCharacters * -1}</strong> characters too many`);\n }\n\n updateVisuallyHiddenAnnouncement(remainingCharacters);\n }, [remainingCharacters, updateVisuallyHiddenAnnouncement]);\n\n return {\n hasExceededLimit: remainingCharacters < 0,\n handleTextareaChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setRemainingCharacters(maxCharacters - e.target.value.length);\n },\n label,\n visuallyHiddenAnnouncement,\n };\n}\n\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * Lifted from downshift/utils (not exposed in lib).\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction debounce(fn: (...rest: any[]) => any, time: number) {\n let timeoutId: number | null = 0;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper(...args) {\n cancel();\n timeoutId = setTimeout(() => {\n timeoutId = null;\n fn(...args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n\n return wrapper;\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: We don't know or care what parameters the function accepts\nfunction useDebounce<T extends (...rest: any[]) => any>(callback: T, delay: number) {\n return React.useRef(debounce((...params) => callback(...params), delay)).current;\n}\n","import * as React from 'react';\n\nimport ErrorMessage from '../ErrorMessage';\nimport useCharacterCountdown from './useCharacterCountdown';\n\nexport type FieldCharacterCountdownProps = {\n error?: string;\n hint?: string;\n id?: string;\n isOptional?: boolean;\n label: string;\n maxCharacters: number;\n};\n\nexport default function FieldCharacterCountdown({\n error,\n hint,\n id,\n isOptional = false,\n label,\n maxCharacters,\n onChange,\n ...props\n}: FieldCharacterCountdownProps & React.ComponentPropsWithoutRef<'textarea'>) {\n const characterCountdown = useCharacterCountdown(maxCharacters, ((props.value as string) || '').length);\n\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 <textarea\n aria-invalid={error ? true : undefined}\n aria-describedby={error && hint ? `${hintId} ${errorId}` : error ? errorId : hint ? hintId : undefined}\n className=\"bds-textarea\"\n id={id}\n onChange={(e) => {\n if (onChange) {\n onChange(e);\n }\n\n characterCountdown.handleTextareaChange(e);\n }}\n {...props}\n />\n <div\n aria-hidden=\"true\"\n className=\"bds-character-count\"\n data-exceeds-limit={characterCountdown.hasExceededLimit ? true : undefined}\n // biome-ignore lint/security/noDangerouslySetInnerHtml: HTML is expected and used for highlighting the number itself\n dangerouslySetInnerHTML={{\n __html: characterCountdown.label,\n }}\n />\n <div aria-live=\"polite\" className=\"visually-hidden\">\n {characterCountdown.visuallyHiddenAnnouncement}\n </div>\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","visuallyHiddenAnnouncementUpdateTimeInSeconds","useCharacterCountdown","maxCharacters","currentCharacters","arguments","length","undefined","_React$useState","useState","_React$useState2","_slicedToArray","remainingCharacters","setRemainingCharacters","_React$useState3","concat","_React$useState4","label","setLabel","_React$useState5","_React$useState6","visuallyHiddenAnnouncement","setVisuallyHiddenAnnouncement","updateVisuallyHiddenAnnouncement","useDebounce","charactersToAnnounce","useEffect","hasExceededLimit","handleTextareaChange","e","target","value","debounce","fn","time","timeoutId","cancel","clearTimeout","wrapper","_len","args","Array","_key","setTimeout","apply","callback","delay","useRef","current","FieldCharacterCountdown","_id","error","hint","id","_ref$isOptional","isOptional","onChange","characterCountdown","name","errorId","useId","hintId","htmlFor","dangerouslySetInnerHTML","__html"],"mappings":"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"}
@@ -4,7 +4,7 @@ export type FieldCheckboxProps = {
4
4
  label: React.ReactNode | string;
5
5
  } & React.ComponentPropsWithoutRef<'input'>;
6
6
  declare const FieldCheckbox: React.ForwardRefExoticComponent<{
7
- error?: string | undefined;
7
+ error?: string;
8
8
  label: React.ReactNode | string;
9
9
  } & Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
10
10
  export default FieldCheckbox;
@@ -73,8 +73,8 @@ function _objectWithoutProperties(e, t) {
73
73
  r,
74
74
  i = _objectWithoutPropertiesLoose(e, t);
75
75
  if (Object.getOwnPropertySymbols) {
76
- var n = Object.getOwnPropertySymbols(e);
77
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
76
+ var s = Object.getOwnPropertySymbols(e);
77
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
78
78
  }
79
79
  return i;
80
80
  }
@@ -82,7 +82,7 @@ function _objectWithoutPropertiesLoose(r, e) {
82
82
  if (null == r) return {};
83
83
  var t = {};
84
84
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
85
- if (e.indexOf(n) >= 0) continue;
85
+ if (e.includes(n)) continue;
86
86
  t[n] = r[n];
87
87
  }
88
88
  return t;
@@ -151,23 +151,23 @@ var FieldCheckbox = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref
151
151
  })), isEnhanced && /*#__PURE__*/React__namespace.createElement("svg", {
152
152
  width: "32",
153
153
  height: "32",
154
- viewBox: "-4 -4 39 39",
154
+ viewBox: "0 0 32 32",
155
155
  "aria-hidden": "true",
156
156
  focusable: "false"
157
157
  }, /*#__PURE__*/React__namespace.createElement("rect", {
158
158
  className: "background",
159
- width: "35",
160
- height: "35",
161
- x: "-2",
162
- y: "-2",
159
+ width: "31",
160
+ height: "31",
163
161
  stroke: "currentColor",
164
162
  fill: "none",
165
163
  strokeWidth: "1",
164
+ x: "0.5",
165
+ y: "0.5",
166
166
  vectorEffect: "non-scaling-stroke"
167
167
  }), /*#__PURE__*/React__namespace.createElement("path", {
168
168
  className: "checkmark",
169
- d: "M 4 14 L 12 23 L 28 5",
170
- stroke: "#ffff",
169
+ d: "M 6 14 L 13 23 L 26 7",
170
+ stroke: "#fff",
171
171
  strokeDasharray: "140",
172
172
  strokeDashoffset: "140"
173
173
  })), /*#__PURE__*/React__namespace.createElement("label", {
@@ -1 +1 @@
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
+ {"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=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\">\n <rect\n className=\"background\"\n width=\"31\"\n height=\"31\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n x=\"0.5\"\n y=\"0.5\"\n vectorEffect=\"non-scaling-stroke\"\n />\n <path\n className=\"checkmark\"\n d=\"M 6 14 L 13 23 L 26 7\"\n stroke=\"#fff\"\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","stroke","strokeWidth","y","vectorEffect","strokeDasharray","strokeDashoffset","htmlFor"],"mappings":"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"}
@@ -50,8 +50,8 @@ function _objectWithoutProperties(e, t) {
50
50
  r,
51
51
  i = _objectWithoutPropertiesLoose(e, t);
52
52
  if (Object.getOwnPropertySymbols) {
53
- var n = Object.getOwnPropertySymbols(e);
54
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
53
+ var s = Object.getOwnPropertySymbols(e);
54
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
55
55
  }
56
56
  return i;
57
57
  }
@@ -59,7 +59,7 @@ function _objectWithoutPropertiesLoose(r, e) {
59
59
  if (null == r) return {};
60
60
  var t = {};
61
61
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
62
- if (e.indexOf(n) >= 0) continue;
62
+ if (e.includes(n)) continue;
63
63
  t[n] = r[n];
64
64
  }
65
65
  return t;
@@ -128,23 +128,23 @@ var FieldCheckbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
128
128
  })), isEnhanced && /*#__PURE__*/React.createElement("svg", {
129
129
  width: "32",
130
130
  height: "32",
131
- viewBox: "-4 -4 39 39",
131
+ viewBox: "0 0 32 32",
132
132
  "aria-hidden": "true",
133
133
  focusable: "false"
134
134
  }, /*#__PURE__*/React.createElement("rect", {
135
135
  className: "background",
136
- width: "35",
137
- height: "35",
138
- x: "-2",
139
- y: "-2",
136
+ width: "31",
137
+ height: "31",
140
138
  stroke: "currentColor",
141
139
  fill: "none",
142
140
  strokeWidth: "1",
141
+ x: "0.5",
142
+ y: "0.5",
143
143
  vectorEffect: "non-scaling-stroke"
144
144
  }), /*#__PURE__*/React.createElement("path", {
145
145
  className: "checkmark",
146
- d: "M 4 14 L 12 23 L 28 5",
147
- stroke: "#ffff",
146
+ d: "M 6 14 L 13 23 L 26 7",
147
+ stroke: "#fff",
148
148
  strokeDasharray: "140",
149
149
  strokeDashoffset: "140"
150
150
  })), /*#__PURE__*/React.createElement("label", {
@@ -1 +1 @@
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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"}
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=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\">\n <rect\n className=\"background\"\n width=\"31\"\n height=\"31\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n x=\"0.5\"\n y=\"0.5\"\n vectorEffect=\"non-scaling-stroke\"\n />\n <path\n className=\"checkmark\"\n d=\"M 6 14 L 13 23 L 26 7\"\n stroke=\"#fff\"\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","stroke","strokeWidth","y","vectorEffect","strokeDasharray","strokeDashoffset","htmlFor"],"mappings":"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"}
@@ -73,8 +73,8 @@ function _objectWithoutProperties(e, t) {
73
73
  r,
74
74
  i = _objectWithoutPropertiesLoose(e, t);
75
75
  if (Object.getOwnPropertySymbols) {
76
- var n = Object.getOwnPropertySymbols(e);
77
- for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
76
+ var s = Object.getOwnPropertySymbols(e);
77
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
78
78
  }
79
79
  return i;
80
80
  }
@@ -82,7 +82,7 @@ function _objectWithoutPropertiesLoose(r, e) {
82
82
  if (null == r) return {};
83
83
  var t = {};
84
84
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
85
- if (e.indexOf(n) >= 0) continue;
85
+ if (e.includes(n)) continue;
86
86
  t[n] = r[n];
87
87
  }
88
88
  return t;
@@ -122,25 +122,25 @@ var FieldRadio = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
122
122
  ref: ref,
123
123
  type: "radio"
124
124
  })), isEnhanced && /*#__PURE__*/React__namespace.createElement("svg", {
125
- width: "32",
126
- height: "32",
127
- viewBox: "-2 -2 40 40",
125
+ width: "24",
126
+ height: "24",
127
+ viewBox: "0 0 24 24",
128
128
  "aria-hidden": "true",
129
129
  focusable: "false"
130
130
  }, /*#__PURE__*/React__namespace.createElement("circle", {
131
131
  className: "background",
132
- cx: "18",
133
- cy: "18",
134
- r: "18",
132
+ cx: "12",
133
+ cy: "12"
134
+ /* subtract half of the strokeWidth to get radius. credit: https://stackoverflow.com/questions/64149284/svg-stroke-width-changes-dimensions-of-the-object */,
135
+ r: "11.5",
135
136
  stroke: "currentColor",
136
137
  fill: "none",
137
138
  strokeWidth: "1",
138
139
  vectorEffect: "non-scaling-stroke"
139
140
  }), /*#__PURE__*/React__namespace.createElement("circle", {
140
141
  className: "radio",
141
- cx: "18",
142
- cy: "18",
143
- r: "12",
142
+ cx: "12",
143
+ cy: "12",
144
144
  fill: "currentColor"
145
145
  })), /*#__PURE__*/React__namespace.createElement("label", {
146
146
  htmlFor: inputId
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/FieldRadio/FieldRadio.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type FieldRadioProps = {\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'input'>;\n\nconst FieldRadio = React.forwardRef<HTMLInputElement, FieldRadioProps>(({ id, label, ...props }, ref) => {\n const [isEnhanced, setIsEnhanced] = React.useState(false);\n\n const fallbackId = 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 <div className=\"bds-radio\" data-enhanced={isEnhanced ? '' : undefined}>\n <input {...props} id={inputId} ref={ref} type=\"radio\" />\n {isEnhanced && (\n <svg width=\"32\" height=\"32\" viewBox=\"-2 -2 40 40\" aria-hidden=\"true\" focusable=\"false\">\n <circle\n className=\"background\"\n cx=\"18\"\n cy=\"18\"\n r=\"18\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n <circle className=\"radio\" cx=\"18\" cy=\"18\" r=\"12\" fill=\"currentColor\" />\n </svg>\n )}\n <label htmlFor={inputId}>{label}</label>\n </div>\n </div>\n );\n});\n\nexport default FieldRadio;\n"],"names":["FieldRadio","React","forwardRef","_ref","ref","id","label","props","_objectWithoutProperties","_excluded","_React$useState","useState","_React$useState2","_slicedToArray","isEnhanced","setIsEnhanced","fallbackId","useId","inputId","useEffect","createElement","className","undefined","_extends","type","width","height","viewBox","focusable","cx","cy","r","stroke","fill","strokeWidth","vectorEffect","htmlFor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMMA,IAAAA,UAAU,gBAAGC,gBAAK,CAACC,UAAU,CAAoC,UAAAC,IAAA,EAA0BC,GAAG,EAAK;AAAA,EAAA,IAA/BC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA,CAAA,CAAA;AAC3F,EAAA,IAAAC,eAAA,GAAoCT,gBAAK,CAACU,QAAQ,CAAC,KAAK,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAAlDI,IAAAA,UAAU,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAEhC,EAAA,IAAMI,UAAU,GAAGf,gBAAK,CAACgB,KAAK,EAAE,CAAA;EAEhC,IAAMC,OAAO,GAAGb,EAAE,KAAA,IAAA,IAAFA,EAAE,KAAFA,KAAAA,CAAAA,GAAAA,EAAE,GAAIW,UAAU,CAAA;EAEhCf,gBAAK,CAACkB,SAAS,CAAC,YAAM;IACpBJ,aAAa,CAAC,IAAI,CAAC,CAAA;GACpB,EAAE,EAAE,CAAC,CAAA;EAEN,oBACEd,gBAAA,CAAAmB,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,gBAAA;GACbpB,eAAAA,gBAAA,CAAAmB,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,WAAW;IAAC,eAAeP,EAAAA,UAAU,GAAG,EAAE,GAAGQ,SAAAA;AAAU,GAAA,eACpErB,gBAAA,CAAAmB,aAAA,CAAAG,OAAAA,EAAAA,QAAA,KAAWhB,KAAK,EAAA;AAAEF,IAAAA,EAAE,EAAEa,OAAQ;AAACd,IAAAA,GAAG,EAAEA,GAAI;AAACoB,IAAAA,IAAI,EAAC,OAAA;AAAO,GAAA,CAAE,CAAC,EACvDV,UAAU,iBACTb,gBAAA,CAAAmB,aAAA,CAAA,KAAA,EAAA;AAAKK,IAAAA,KAAK,EAAC,IAAI;AAACC,IAAAA,MAAM,EAAC,IAAI;AAACC,IAAAA,OAAO,EAAC,aAAa;AAAC,IAAA,aAAA,EAAY,MAAM;AAACC,IAAAA,SAAS,EAAC,OAAA;GAC7E3B,eAAAA,gBAAA,CAAAmB,aAAA,CAAA,QAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,YAAY;AACtBQ,IAAAA,EAAE,EAAC,IAAI;AACPC,IAAAA,EAAE,EAAC,IAAI;AACPC,IAAAA,CAAC,EAAC,IAAI;AACNC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,YAAY,EAAC,oBAAA;AAAoB,GAClC,CAAC,eACFlC,gBAAA,CAAAmB,aAAA,CAAA,QAAA,EAAA;AAAQC,IAAAA,SAAS,EAAC,OAAO;AAACQ,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,CAAC,EAAC,IAAI;AAACE,IAAAA,IAAI,EAAC,cAAA;AAAc,GAAE,CACnE,CACN,eACDhC,gBAAA,CAAAmB,aAAA,CAAA,OAAA,EAAA;AAAOgB,IAAAA,OAAO,EAAElB,OAAAA;GAAUZ,EAAAA,KAAa,CACpC,CACF,CAAC,CAAA;AAEV,CAAC;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/FieldRadio/FieldRadio.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type FieldRadioProps = {\n label: React.ReactNode | string;\n} & React.ComponentPropsWithoutRef<'input'>;\n\nconst FieldRadio = React.forwardRef<HTMLInputElement, FieldRadioProps>(({ id, label, ...props }, ref) => {\n const [isEnhanced, setIsEnhanced] = React.useState(false);\n\n const fallbackId = 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 <div className=\"bds-radio\" data-enhanced={isEnhanced ? '' : undefined}>\n <input {...props} id={inputId} ref={ref} type=\"radio\" />\n {isEnhanced && (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <circle\n className=\"background\"\n cx=\"12\"\n cy=\"12\"\n /* subtract half of the strokeWidth to get radius. credit: https://stackoverflow.com/questions/64149284/svg-stroke-width-changes-dimensions-of-the-object */\n r=\"11.5\"\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n {/* radius set through CSS when selected */}\n <circle className=\"radio\" cx=\"12\" cy=\"12\" fill=\"currentColor\" />\n </svg>\n )}\n <label htmlFor={inputId}>{label}</label>\n </div>\n </div>\n );\n});\n\nexport default FieldRadio;\n"],"names":["FieldRadio","React","forwardRef","_ref","ref","id","label","props","_objectWithoutProperties","_excluded","_React$useState","useState","_React$useState2","_slicedToArray","isEnhanced","setIsEnhanced","fallbackId","useId","inputId","useEffect","createElement","className","undefined","_extends","type","width","height","viewBox","focusable","cx","cy","r","stroke","fill","strokeWidth","vectorEffect","htmlFor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMMA,IAAAA,UAAU,gBAAGC,gBAAK,CAACC,UAAU,CAAoC,UAAAC,IAAA,EAA0BC,GAAG,EAAK;AAAA,EAAA,IAA/BC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA,CAAA,CAAA;AAC3F,EAAA,IAAAC,eAAA,GAAoCT,gBAAK,CAACU,QAAQ,CAAC,KAAK,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAAlDI,IAAAA,UAAU,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAEhC,EAAA,IAAMI,UAAU,GAAGf,gBAAK,CAACgB,KAAK,EAAE,CAAA;EAEhC,IAAMC,OAAO,GAAGb,EAAE,KAAA,IAAA,IAAFA,EAAE,KAAFA,KAAAA,CAAAA,GAAAA,EAAE,GAAIW,UAAU,CAAA;EAEhCf,gBAAK,CAACkB,SAAS,CAAC,YAAM;IACpBJ,aAAa,CAAC,IAAI,CAAC,CAAA;GACpB,EAAE,EAAE,CAAC,CAAA;EAEN,oBACEd,gBAAA,CAAAmB,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,gBAAA;GACbpB,eAAAA,gBAAA,CAAAmB,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,WAAW;IAAC,eAAeP,EAAAA,UAAU,GAAG,EAAE,GAAGQ,SAAAA;AAAU,GAAA,eACpErB,gBAAA,CAAAmB,aAAA,CAAAG,OAAAA,EAAAA,QAAA,KAAWhB,KAAK,EAAA;AAAEF,IAAAA,EAAE,EAAEa,OAAQ;AAACd,IAAAA,GAAG,EAAEA,GAAI;AAACoB,IAAAA,IAAI,EAAC,OAAA;AAAO,GAAA,CAAE,CAAC,EACvDV,UAAU,iBACTb,gBAAA,CAAAmB,aAAA,CAAA,KAAA,EAAA;AAAKK,IAAAA,KAAK,EAAC,IAAI;AAACC,IAAAA,MAAM,EAAC,IAAI;AAACC,IAAAA,OAAO,EAAC,WAAW;AAAC,IAAA,aAAA,EAAY,MAAM;AAACC,IAAAA,SAAS,EAAC,OAAA;GAC3E3B,eAAAA,gBAAA,CAAAmB,aAAA,CAAA,QAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,YAAY;AACtBQ,IAAAA,EAAE,EAAC,IAAI;AACPC,IAAAA,EAAE,EAAC,IAAA;AACH;AACAC,IAAAA,CAAC,EAAC,MAAM;AACRC,IAAAA,MAAM,EAAC,cAAc;AACrBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,YAAY,EAAC,oBAAA;AAAoB,GAClC,CAAC,eAEFlC,gBAAA,CAAAmB,aAAA,CAAA,QAAA,EAAA;AAAQC,IAAAA,SAAS,EAAC,OAAO;AAACQ,IAAAA,EAAE,EAAC,IAAI;AAACC,IAAAA,EAAE,EAAC,IAAI;AAACG,IAAAA,IAAI,EAAC,cAAA;AAAc,GAAE,CAC5D,CACN,eACDhC,gBAAA,CAAAmB,aAAA,CAAA,OAAA,EAAA;AAAOgB,IAAAA,OAAO,EAAElB,OAAAA;GAAUZ,EAAAA,KAAa,CACpC,CACF,CAAC,CAAA;AAEV,CAAC;;;;"}