@tedi-design-system/react 19.2.0-rc.6 → 19.2.0-rc.8

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 (98) hide show
  1. package/bundle-stats.html +1 -1
  2. package/component.manifest.json +8 -8
  3. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.cjs.js +1 -1
  4. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.es.js +1 -1
  5. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  6. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.es.js +1 -1
  7. package/external/hoist-non-react-statics/external/react-is/index.cjs.js +1 -1
  8. package/external/hoist-non-react-statics/external/react-is/index.es.js +1 -1
  9. package/external/prop-types/external/react-is/cjs/react-is.development.cjs.js +1 -1
  10. package/external/prop-types/external/react-is/cjs/react-is.development.es.js +1 -1
  11. package/external/prop-types/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  12. package/external/prop-types/external/react-is/cjs/react-is.production.min.es.js +1 -1
  13. package/external/prop-types/external/react-is/index.cjs.js +1 -1
  14. package/external/prop-types/external/react-is/index.es.js +1 -1
  15. package/index.css +1 -1
  16. package/package.json +1 -1
  17. package/src/community/components/map-components/map-layer/map-layer.cjs.js +1 -1
  18. package/src/community/components/map-components/map-layer/map-layer.es.js +1 -1
  19. package/src/tedi/components/content/label/label.cjs.js +1 -1
  20. package/src/tedi/components/content/label/label.d.ts +22 -0
  21. package/src/tedi/components/content/label/label.es.js +30 -28
  22. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group-context.cjs.js +1 -0
  23. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group-context.d.ts +20 -0
  24. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group-context.es.js +5 -0
  25. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group.cjs.js +1 -0
  26. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group.d.ts +72 -0
  27. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group.es.js +124 -0
  28. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group.module.scss.cjs.js +1 -0
  29. package/src/tedi/components/form/checkbox/checkbox-group/checkbox-group.module.scss.es.js +13 -0
  30. package/src/tedi/components/form/checkbox/checkbox.cjs.js +1 -1
  31. package/src/tedi/components/form/checkbox/checkbox.d.ts +8 -2
  32. package/src/tedi/components/form/checkbox/checkbox.es.js +146 -108
  33. package/src/tedi/components/form/checkbox/checkbox.module.scss.cjs.js +1 -1
  34. package/src/tedi/components/form/checkbox/checkbox.module.scss.es.js +11 -3
  35. package/src/tedi/components/form/checkbox/index.cjs.js +1 -0
  36. package/src/tedi/components/form/checkbox/index.d.ts +11 -0
  37. package/src/tedi/components/form/checkbox/index.es.js +7 -0
  38. package/src/tedi/components/form/choice-group/choice-group.cjs.js +1 -1
  39. package/src/tedi/components/form/choice-group/choice-group.d.ts +11 -0
  40. package/src/tedi/components/form/choice-group/choice-group.es.js +80 -69
  41. package/src/tedi/components/form/choice-group/components/choice-group-item/choice-group-item.cjs.js +1 -1
  42. package/src/tedi/components/form/choice-group/components/choice-group-item/choice-group-item.es.js +15 -15
  43. package/src/tedi/components/form/choice-input.types.d.ts +46 -8
  44. package/src/tedi/components/form/date-field/date-field.cjs.js +1 -1
  45. package/src/tedi/components/form/date-field/date-field.d.ts +5 -0
  46. package/src/tedi/components/form/date-field/date-field.es.js +187 -184
  47. package/src/tedi/components/form/date-time-field/date-time-field.cjs.js +1 -1
  48. package/src/tedi/components/form/date-time-field/date-time-field.d.ts +5 -0
  49. package/src/tedi/components/form/date-time-field/date-time-field.es.js +103 -101
  50. package/src/tedi/components/form/form-label/form-label.cjs.js +1 -1
  51. package/src/tedi/components/form/form-label/form-label.d.ts +9 -0
  52. package/src/tedi/components/form/form-label/form-label.es.js +15 -14
  53. package/src/tedi/components/form/multi-value-field/multi-value-field.cjs.js +1 -1
  54. package/src/tedi/components/form/multi-value-field/multi-value-field.d.ts +7 -0
  55. package/src/tedi/components/form/multi-value-field/multi-value-field.es.js +41 -40
  56. package/src/tedi/components/form/number-field/number-field.cjs.js +1 -1
  57. package/src/tedi/components/form/number-field/number-field.es.js +54 -43
  58. package/src/tedi/components/form/radio/index.cjs.js +1 -0
  59. package/src/tedi/components/form/radio/index.d.ts +11 -0
  60. package/src/tedi/components/form/radio/index.es.js +7 -0
  61. package/src/tedi/components/form/radio/radio-group/radio-group-context.cjs.js +1 -0
  62. package/src/tedi/components/form/radio/radio-group/radio-group-context.d.ts +21 -0
  63. package/src/tedi/components/form/radio/radio-group/radio-group-context.es.js +5 -0
  64. package/src/tedi/components/form/radio/radio-group/radio-group.cjs.js +1 -0
  65. package/src/tedi/components/form/radio/radio-group/radio-group.d.ts +56 -0
  66. package/src/tedi/components/form/radio/radio-group/radio-group.es.js +78 -0
  67. package/src/tedi/components/form/radio/radio-group/radio-group.module.scss.cjs.js +1 -0
  68. package/src/tedi/components/form/radio/radio-group/radio-group.module.scss.es.js +13 -0
  69. package/src/tedi/components/form/radio/radio.cjs.js +1 -1
  70. package/src/tedi/components/form/radio/radio.d.ts +7 -2
  71. package/src/tedi/components/form/radio/radio.es.js +117 -77
  72. package/src/tedi/components/form/radio/radio.module.scss.cjs.js +1 -1
  73. package/src/tedi/components/form/radio/radio.module.scss.es.js +11 -3
  74. package/src/tedi/components/form/select/select.cjs.js +1 -1
  75. package/src/tedi/components/form/select/select.es.js +79 -77
  76. package/src/tedi/components/form/slider/slider.cjs.js +1 -1
  77. package/src/tedi/components/form/slider/slider.d.ts +7 -0
  78. package/src/tedi/components/form/slider/slider.es.js +48 -47
  79. package/src/tedi/components/form/textfield/textfield.cjs.js +1 -1
  80. package/src/tedi/components/form/textfield/textfield.es.js +72 -61
  81. package/src/tedi/components/form/time-field/time-field.cjs.js +1 -1
  82. package/src/tedi/components/form/time-field/time-field.d.ts +5 -0
  83. package/src/tedi/components/form/time-field/time-field.es.js +87 -85
  84. package/src/tedi/components/form/toggle/toggle.cjs.js +1 -1
  85. package/src/tedi/components/form/toggle/toggle.d.ts +7 -0
  86. package/src/tedi/components/form/toggle/toggle.es.js +26 -24
  87. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-row/table-of-contents-row.cjs.js +1 -1
  88. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-row/table-of-contents-row.d.ts +12 -0
  89. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-row/table-of-contents-row.es.js +57 -27
  90. package/src/tedi/components/navigation/table-of-contents/table-of-contents.cjs.js +1 -1
  91. package/src/tedi/components/navigation/table-of-contents/table-of-contents.d.ts +17 -0
  92. package/src/tedi/components/navigation/table-of-contents/table-of-contents.es.js +65 -51
  93. package/src/tedi/index.d.ts +2 -2
  94. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  95. package/src/tedi/providers/label-provider/labels-map.d.ts +14 -0
  96. package/src/tedi/providers/label-provider/labels-map.es.js +25 -11
  97. package/tedi.cjs.js +1 -1
  98. package/tedi.es.js +298 -294
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/react",
3
- "version": "19.2.0-rc.6",
3
+ "version": "19.2.0-rc.8",
4
4
  "description": "TEDI Design System React component library — accessible, reusable UI components. Docs & live examples: https://storybook.tedi.ee/react/rc/",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),b=require("../../../../../external/classnames/index.cjs.js"),r=require("react"),N=require("../../../../tedi/components/base/typography/text/text.cjs.js"),p=require("../../../../tedi/components/buttons/button/button.cjs.js"),j=require("../../../../tedi/components/form/checkbox/checkbox.cjs.js"),g=require("../map-select/map-select.cjs.js"),n=require("./map-layer.module.scss.cjs.js"),w=m=>{const{items:d,selectAllLabel:k="Kõik kihid"}=m,[h,u]=r.useState({}),[v,f]=r.useState({}),[_,C]=r.useState(!1);r.useEffect(()=>{const e={},a={},t=i=>{for(const l of i)l.type==="checkbox"&&(e[l.id]=l.defaultChecked??!1),l.type==="select"&&l.defaultValue&&(a[l.id]=l.defaultValue),l.children&&t(l.children)};t(d),u(e),f(a)},[d]),r.useEffect(()=>{const e=Object.values(h),a=e.length,t=e.filter(Boolean).length;C(t>0&&t<a)},[h]);const S=(e,a)=>{if(u(t=>({...t,[e]:a})),!a){const t=i=>{for(const l of i)if(l.id===e&&l.children)for(const s of l.children)s.type==="select"&&f(o=>({...o,[s.id]:void 0})),s.type==="checkbox"&&u(o=>({...o,[s.id]:!1})),s.children&&t([s]);else l.children&&t(l.children)};t(d)}},q=e=>{const a={},t=i=>{for(const l of i)l.type==="checkbox"&&(a[l.id]=e),l.children&&t(l.children)};t(d),u(a),e||f({})},x=(e,a=0)=>{var i,l;const t=h[e.id]??!1;return c.jsxs("div",{className:b.default(n.default["tedi-map-layer__item"],n.default[`tedi-map-layer__level-${a}`]),children:[c.jsxs("div",{className:n.default["tedi-map-layer__row"],children:[e.type==="checkbox"&&c.jsx(j.Checkbox,{id:e.id,label:e.label,name:e.id,checked:t,onChange:(s,o)=>S(e.id,o),value:""}),e.type==="select"&&c.jsx(g.MapSelect,{id:e.id,label:e.label,options:e.options??[],value:v[e.id],onChange:s=>f(o=>({...o,[e.id]:s}))}),e.type==="checkbox"&&c.jsxs("div",{className:n.default["tedi-map-layer__actions"],children:[c.jsx(p.Button,{visualType:"link",icon:"download",children:"Download"}),c.jsx(p.Button,{visualType:"link",icon:"edit",children:"Edit"}),c.jsx(p.Button,{visualType:"link",icon:"info",children:"Info"}),c.jsx(p.Button,{visualType:"link",icon:"more_horiz",children:"Show more actions"})]})]}),e.type==="label"&&c.jsxs("div",{className:n.default["tedi-map-layer__item"],children:[c.jsx("div",{className:n.default["tedi-map-layer__label"],children:e.label}),(i=e.children)==null?void 0:i.map(s=>x(s,a+1))]},e.id),(l=e.children)==null?void 0:l.map(s=>x(s,a+1))]},e.id)},y=e=>e.some(a=>a.type==="checkbox"?!0:a.children?y(a.children):!1);return c.jsxs("div",{className:n.default["tedi-map-layer"],children:[c.jsx("div",{className:n.default["tedi-map-layer__select-all"],children:y(d)?c.jsx(j.Checkbox,{id:"select-all",label:k,name:"select-all",value:"all",checked:Object.values(h).every(Boolean),indeterminate:_,onChange:(e,a)=>q(a)}):c.jsx(N.Text,{color:"primary",modifiers:["bold"],children:k})}),c.jsx("div",{className:b.default(n.default["tedi-map-layer"],!y(d)&&n.default["tedi-map-layer--no-checkboxes"]),children:d.map(e=>x(e,1))})]})};exports.MapLayer=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),b=require("../../../../../external/classnames/index.cjs.js"),r=require("react"),N=require("../../../../tedi/components/base/typography/text/text.cjs.js"),p=require("../../../../tedi/components/buttons/button/button.cjs.js"),j=require("../../../../tedi/components/form/checkbox/index.cjs.js"),g=require("../map-select/map-select.cjs.js"),n=require("./map-layer.module.scss.cjs.js"),w=m=>{const{items:d,selectAllLabel:k="Kõik kihid"}=m,[u,h]=r.useState({}),[v,f]=r.useState({}),[_,C]=r.useState(!1);r.useEffect(()=>{const e={},a={},t=i=>{for(const l of i)l.type==="checkbox"&&(e[l.id]=l.defaultChecked??!1),l.type==="select"&&l.defaultValue&&(a[l.id]=l.defaultValue),l.children&&t(l.children)};t(d),h(e),f(a)},[d]),r.useEffect(()=>{const e=Object.values(u),a=e.length,t=e.filter(Boolean).length;C(t>0&&t<a)},[u]);const S=(e,a)=>{if(h(t=>({...t,[e]:a})),!a){const t=i=>{for(const l of i)if(l.id===e&&l.children)for(const s of l.children)s.type==="select"&&f(o=>({...o,[s.id]:void 0})),s.type==="checkbox"&&h(o=>({...o,[s.id]:!1})),s.children&&t([s]);else l.children&&t(l.children)};t(d)}},q=e=>{const a={},t=i=>{for(const l of i)l.type==="checkbox"&&(a[l.id]=e),l.children&&t(l.children)};t(d),h(a),e||f({})},x=(e,a=0)=>{var i,l;const t=u[e.id]??!1;return c.jsxs("div",{className:b.default(n.default["tedi-map-layer__item"],n.default[`tedi-map-layer__level-${a}`]),children:[c.jsxs("div",{className:n.default["tedi-map-layer__row"],children:[e.type==="checkbox"&&c.jsx(j.Checkbox,{id:e.id,label:e.label,name:e.id,checked:t,onChange:(s,o)=>S(e.id,o),value:""}),e.type==="select"&&c.jsx(g.MapSelect,{id:e.id,label:e.label,options:e.options??[],value:v[e.id],onChange:s=>f(o=>({...o,[e.id]:s}))}),e.type==="checkbox"&&c.jsxs("div",{className:n.default["tedi-map-layer__actions"],children:[c.jsx(p.Button,{visualType:"link",icon:"download",children:"Download"}),c.jsx(p.Button,{visualType:"link",icon:"edit",children:"Edit"}),c.jsx(p.Button,{visualType:"link",icon:"info",children:"Info"}),c.jsx(p.Button,{visualType:"link",icon:"more_horiz",children:"Show more actions"})]})]}),e.type==="label"&&c.jsxs("div",{className:n.default["tedi-map-layer__item"],children:[c.jsx("div",{className:n.default["tedi-map-layer__label"],children:e.label}),(i=e.children)==null?void 0:i.map(s=>x(s,a+1))]},e.id),(l=e.children)==null?void 0:l.map(s=>x(s,a+1))]},e.id)},y=e=>e.some(a=>a.type==="checkbox"?!0:a.children?y(a.children):!1);return c.jsxs("div",{className:n.default["tedi-map-layer"],children:[c.jsx("div",{className:n.default["tedi-map-layer__select-all"],children:y(d)?c.jsx(j.Checkbox,{id:"select-all",label:k,name:"select-all",value:"all",checked:Object.values(u).every(Boolean),indeterminate:_,onChange:(e,a)=>q(a)}):c.jsx(N.Text,{color:"primary",modifiers:["bold"],children:k})}),c.jsx("div",{className:b.default(n.default["tedi-map-layer"],!y(d)&&n.default["tedi-map-layer--no-checkboxes"]),children:d.map(e=>x(e,1))})]})};exports.MapLayer=w;
@@ -3,7 +3,7 @@ import v from "../../../../../external/classnames/index.es.js";
3
3
  import { useState as u, useEffect as _ } from "react";
4
4
  import { Text as j } from "../../../../tedi/components/base/typography/text/text.es.js";
5
5
  import { Button as m } from "../../../../tedi/components/buttons/button/button.es.js";
6
- import { Checkbox as x } from "../../../../tedi/components/form/checkbox/checkbox.es.js";
6
+ import { Checkbox as x } from "../../../../tedi/components/form/checkbox/index.es.js";
7
7
  import { MapSelect as V } from "../map-select/map-select.es.js";
8
8
  import n from "./map-layer.module.scss.es.js";
9
9
  const D = (C) => {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),q=require("../../../../../external/classnames/index.cjs.js"),h=require("react"),j=require("../../overlays/tooltip/info-tooltip.cjs.js"),e=require("./label.module.scss.cjs.js"),x=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),i=h.forwardRef((a,n)=>{const{getCurrentBreakpointProps:o}=x.useBreakpointProps(a.defaultServerBreakpoint),{as:d="label",children:u,className:c,isBold:b,isSmall:t,required:f,tooltip:r,...p}=o(a),m=q.default(e.default["tedi-label"],b&&e.default["tedi-label--bold"],t&&e.default["tedi-label--small"],c),s=l.jsxs(d,{ref:n,className:m,...p,children:[u,f&&l.jsx("span",{className:e.default["tedi-label__required"],"aria-hidden":"true",children:"*"})]});return r?l.jsxs("span",{className:e.default["tedi-label__wrapper"],children:[s,l.jsx("span",{className:e.default["tedi-label__info"],children:l.jsx(j.InfoTooltip,{isSmall:t,children:r})})]}):s});i.displayName="Label";exports.Label=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),j=require("../../../../../external/classnames/index.cjs.js"),_=require("react"),B=require("../../overlays/tooltip/info-tooltip.cjs.js"),e=require("./label.module.scss.cjs.js"),N=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),o=_.forwardRef((r,d)=>{const{getCurrentBreakpointProps:u}=N.useBreakpointProps(r.defaultServerBreakpoint),{as:c="label",children:p,className:b,isBold:f,isSmall:s,modifiers:t,required:m,tooltip:i,...q}=u(r),a=typeof t=="string"?[t]:t,x=j.default(e.default["tedi-label"],f&&e.default["tedi-label--bold"],s&&e.default["tedi-label--small"],a==null?void 0:a.map(h=>`text-${h}`),b),n=l.jsxs(c,{ref:d,className:x,...q,children:[p,m&&l.jsx("span",{className:e.default["tedi-label__required"],"aria-hidden":"true",children:"*"})]});return i?l.jsxs("span",{className:e.default["tedi-label__wrapper"],children:[n,l.jsx("span",{className:e.default["tedi-label__info"],children:l.jsx(B.InfoTooltip,{isSmall:s,children:i})})]}):n});o.displayName="Label";exports.Label=o;
@@ -1,5 +1,20 @@
1
1
  import { ElementType, LabelHTMLAttributes, ReactNode } from 'react';
2
2
  import { BreakpointSupport } from '../../../helpers';
3
+ import { TextModifiers } from '../../base/typography/text/text';
4
+ /**
5
+ * Subset of {@link TextModifiers} that is meaningful for a label. `.tedi-label` is
6
+ * `display: inline`, so text-alignment (`center`/`left`/`right`) and `::first-letter`
7
+ * (`capitalize-first`) have no effect and are intentionally excluded — only wrapping,
8
+ * text-transform and italic controls that actually apply to inline text remain.
9
+ */
10
+ export type LabelModifiers = Extract<TextModifiers, 'nowrap' | 'break-all' | 'break-word' | 'break-spaces' | 'italic' | 'uppercase' | 'lowercase' | 'capitalize'>;
11
+ /**
12
+ * Breakpoint-aware `modifiers` for a label, so consumers can vary wrapping responsively
13
+ * (e.g. `{ modifiers: 'nowrap', sm: { modifiers: 'break-word' } }`).
14
+ */
15
+ export type LabelModifierProps = BreakpointSupport<{
16
+ modifiers?: LabelModifiers[] | LabelModifiers;
17
+ }>;
3
18
  type LabelBreakpointProps = {
4
19
  /**
5
20
  * If true, applies a bold font weight to the label text.
@@ -11,6 +26,13 @@ type LabelBreakpointProps = {
11
26
  * @default false
12
27
  */
13
28
  isSmall?: boolean;
29
+ /**
30
+ * Text modifiers that control how the label text is rendered, e.g. wrapping and
31
+ * line-breaking behavior (`'nowrap'`, `'break-word'`, `'break-all'`, `'break-spaces'`).
32
+ * Reuses the same modifiers as the `Text` component. Useful to prevent long labels
33
+ * from breaking across multiple lines and distorting form layouts.
34
+ */
35
+ modifiers?: LabelModifiers[] | LabelModifiers;
14
36
  };
15
37
  export interface LabelProps extends BreakpointSupport<LabelBreakpointProps>, LabelHTMLAttributes<HTMLLabelElement | HTMLSpanElement> {
16
38
  /**
@@ -1,34 +1,36 @@
1
- import { jsxs as i, jsx as l } from "react/jsx-runtime";
2
- import h from "../../../../../external/classnames/index.es.js";
3
- import { forwardRef as N } from "react";
4
- import { InfoTooltip as _ } from "../../overlays/tooltip/info-tooltip.es.js";
1
+ import { jsxs as n, jsx as a } from "react/jsx-runtime";
2
+ import B from "../../../../../external/classnames/index.es.js";
3
+ import { forwardRef as x } from "react";
4
+ import { InfoTooltip as k } from "../../overlays/tooltip/info-tooltip.es.js";
5
5
  import e from "./label.module.scss.es.js";
6
- import { useBreakpointProps as B } from "../../../helpers/hooks/use-breakpoint-props.es.js";
7
- const k = N((r, o) => {
8
- const { getCurrentBreakpointProps: n } = B(r.defaultServerBreakpoint), {
9
- as: m = "label",
10
- children: d,
11
- className: p,
12
- isBold: c,
13
- isSmall: a,
14
- required: b,
15
- tooltip: s,
16
- ...f
17
- } = n(r), u = h(
6
+ import { useBreakpointProps as E } from "../../../helpers/hooks/use-breakpoint-props.es.js";
7
+ const g = x((t, m) => {
8
+ const { getCurrentBreakpointProps: d } = E(t.defaultServerBreakpoint), {
9
+ as: p = "label",
10
+ children: c,
11
+ className: f,
12
+ isBold: b,
13
+ isSmall: s,
14
+ modifiers: l,
15
+ required: u,
16
+ tooltip: i,
17
+ ...h
18
+ } = d(t), r = typeof l == "string" ? [l] : l, N = B(
18
19
  e["tedi-label"],
19
- c && e["tedi-label--bold"],
20
- a && e["tedi-label--small"],
21
- p
22
- ), t = /* @__PURE__ */ i(m, { ref: o, className: u, ...f, children: [
23
- d,
24
- b && /* @__PURE__ */ l("span", { className: e["tedi-label__required"], "aria-hidden": "true", children: "*" })
20
+ b && e["tedi-label--bold"],
21
+ s && e["tedi-label--small"],
22
+ r == null ? void 0 : r.map((_) => `text-${_}`),
23
+ f
24
+ ), o = /* @__PURE__ */ n(p, { ref: m, className: N, ...h, children: [
25
+ c,
26
+ u && /* @__PURE__ */ a("span", { className: e["tedi-label__required"], "aria-hidden": "true", children: "*" })
25
27
  ] });
26
- return s ? /* @__PURE__ */ i("span", { className: e["tedi-label__wrapper"], children: [
27
- t,
28
- /* @__PURE__ */ l("span", { className: e["tedi-label__info"], children: /* @__PURE__ */ l(_, { isSmall: a, children: s }) })
29
- ] }) : t;
28
+ return i ? /* @__PURE__ */ n("span", { className: e["tedi-label__wrapper"], children: [
29
+ o,
30
+ /* @__PURE__ */ a("span", { className: e["tedi-label__info"], children: /* @__PURE__ */ a(k, { isSmall: s, children: i }) })
31
+ ] }) : o;
30
32
  });
31
- k.displayName = "Label";
33
+ g.displayName = "Label";
32
34
  export {
33
- k as Label
35
+ g as Label
34
36
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=e.createContext(null);exports.CheckboxGroupContext=t;
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { ChoiceInputCardVariant, ChoiceInputVariant } from '../../choice-input.types';
3
+ export interface CheckboxGroupContextValue {
4
+ /** Shared `name` for all checkboxes in the group. */
5
+ name?: string;
6
+ /** Currently selected values. */
7
+ values: string[];
8
+ /** Called by a `Checkbox` when it is toggled. */
9
+ onToggle: (value: string, checked: boolean) => void;
10
+ disabled?: boolean;
11
+ invalid?: boolean;
12
+ size?: 'default' | 'large';
13
+ variant?: ChoiceInputVariant;
14
+ cardVariant?: ChoiceInputCardVariant;
15
+ }
16
+ /**
17
+ * Provided by `Checkbox.Group`. When present, a `Checkbox` reads its checked
18
+ * state, `name`, and shared visual props from here.
19
+ */
20
+ export declare const CheckboxGroupContext: React.Context<CheckboxGroupContextValue | null>;
@@ -0,0 +1,5 @@
1
+ import t from "react";
2
+ const o = t.createContext(null);
3
+ export {
4
+ o as CheckboxGroupContext
5
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),q=require("../../../../../../external/classnames/index.cjs.js"),s=require("react"),U=require("../../feedback-text/feedback-text.cjs.js"),W=require("../checkbox.cjs.js"),o=require("./checkbox-group.module.scss.cjs.js"),X=require("./checkbox-group-context.cjs.js"),Y=require("../../../../helpers/hooks/use-breakpoint-props.cjs.js"),Z=require("../../../../providers/label-provider/use-labels.cjs.js"),j=S=>{const{getCurrentBreakpointProps:T}=Y.useBreakpointProps(S.defaultServerBreakpoint),{getLabel:x}=Z.useLabels(),{id:I,name:_,label:y,hideLabel:M=!1,helper:d,className:B,value:k,defaultValue:w=[],onChange:i,disabled:f,invalid:m,required:$,size:g,variant:u="default",cardVariant:V="primary",direction:E=u==="card"?"row":"column",indeterminateCheck:r,selectAllLabel:F,removeAllLabel:R,indeterminateCheckProps:z,children:v}=T(S),O=s.useId(),L=I??O,b=k!==void 0,[N,D]=s.useState(w),l=s.useMemo(()=>b?k??[]:N,[b,k,N]),A=d?d.id??`${L}-helper`:void 0,p=s.useCallback(e=>{b||D(e),i==null||i(e)},[b,i]),G=s.useCallback((e,h)=>{p(h?[...l,e]:l.filter(C=>C!==e))},[l,p]),H=s.useMemo(()=>({name:_,values:l,onToggle:G,disabled:f,invalid:m,size:g,variant:u,cardVariant:V}),[_,l,G,f,m,g,u,V]),a=s.useMemo(()=>{const e=new Set,h=C=>{s.Children.forEach(C,n=>{s.isValidElement(n)&&(n.props.value!==void 0&&!n.props.disabled&&e.add(n.props.value),h(n.props.children))})};return h(v),[...e]},[v]),c=a.length>0&&a.every(e=>l.includes(e)),P=a.every(e=>!l.includes(e)),J=!c&&!P,K=typeof r=="string"?r:typeof r=="function"?r(c?"all":P?"none":"some"):c?R??x("checkbox-group.remove-all"):F??x("checkbox-group.select-all"),Q=s.useCallback(()=>{p(c?l.filter(e=>!a.includes(e)):[...new Set([...l,...a])])},[c,l,a,p]);return t.jsxs("fieldset",{className:q.default(o.default["tedi-checkbox-group"],o.default[`tedi-checkbox-group--${E}`],{[o.default["tedi-checkbox-group--card"]]:u==="card"},B),disabled:f,"aria-invalid":m||void 0,"aria-describedby":A,children:[y&&t.jsxs("legend",{className:q.default(o.default["tedi-checkbox-group__legend"],{"sr-only":M}),children:[y,$&&t.jsxs(t.Fragment,{children:[t.jsx("span",{"aria-hidden":"true",className:o.default["tedi-checkbox-group__required"],children:"*"}),t.jsxs("span",{className:"sr-only",children:[" ",x("required")]})]})]}),r&&t.jsx(W.Checkbox,{id:`${L}-select-all`,...z,value:"select-all",label:K,checked:c,indeterminate:J,onChange:Q,size:g}),t.jsx(X.CheckboxGroupContext.Provider,{value:H,children:t.jsx("div",{className:q.default(o.default["tedi-checkbox-group__items"],{[o.default["tedi-checkbox-group__items--indented"]]:!!r}),children:v})}),d&&t.jsx(U.FeedbackText,{id:A,...d})]})};j.displayName="Checkbox.Group";exports.CheckboxGroup=j;exports.default=j;
@@ -0,0 +1,72 @@
1
+ import { default as React } from 'react';
2
+ import { BreakpointSupport } from '../../../../helpers';
3
+ import { ChoiceInputCardVariant, ChoiceInputVariant } from '../../choice-input.types';
4
+ import { FeedbackTextProps } from '../../feedback-text/feedback-text';
5
+ import { CheckboxBaseProps } from '../checkbox';
6
+ /** State of the select-all checkbox, passed to a custom `indeterminateCheck` label function. */
7
+ export type CheckboxGroupSelectAllState = 'all' | 'some' | 'none';
8
+ interface CheckboxGroupBreakpointProps {
9
+ /** Group id. When omitted a stable id is generated. */
10
+ id?: string;
11
+ /** Shared `name` for the checkboxes. */
12
+ name?: string;
13
+ /** Group label, rendered as the fieldset legend. */
14
+ label: React.ReactNode;
15
+ /** Visually hide the legend while keeping it available to screen readers. */
16
+ hideLabel?: boolean;
17
+ /** Helper / feedback text rendered below the group. */
18
+ helper?: FeedbackTextProps;
19
+ /** Additional class name(s) applied to the fieldset. */
20
+ className?: string;
21
+ /** Controlled selected values. Pair with `onChange`. */
22
+ value?: string[];
23
+ /** Uncontrolled initial selected values. */
24
+ defaultValue?: string[];
25
+ /** Fires with the full new list of selected values. */
26
+ onChange?: (value: string[]) => void;
27
+ /** Disables the whole group and every checkbox within it. */
28
+ disabled?: boolean;
29
+ /** Marks the group as invalid, forwarding the error state to each checkbox. */
30
+ invalid?: boolean;
31
+ /** Marks the group as required, adding a required indicator to the legend. */
32
+ required?: boolean;
33
+ /** Size forwarded to every checkbox. @default 'default' */
34
+ size?: 'default' | 'large';
35
+ /** Visual variant forwarded to every checkbox. @default 'default' */
36
+ variant?: ChoiceInputVariant;
37
+ /** Card colour variant forwarded to every checkbox (only applies to `variant="card"`). @default 'primary' */
38
+ cardVariant?: ChoiceInputCardVariant;
39
+ /** Layout direction of the checkboxes. Defaults to `row` for cards, `column` otherwise. */
40
+ direction?: 'row' | 'column';
41
+ /**
42
+ * Renders a "select all" checkbox above the children that reflects and controls
43
+ * them: checked when all are selected, indeterminate when some are, unchecked
44
+ * when none are. Toggling it selects or clears all (enabled) children.
45
+ * - `true` — use the localised default label ("Select all" / "Remove all").
46
+ * - `string` — a fixed label.
47
+ * - `(state) => string` — a label derived from the current `all` / `some` / `none` state.
48
+ */
49
+ indeterminateCheck?: boolean | string | ((state: CheckboxGroupSelectAllState) => string);
50
+ /**
51
+ * Overrides the localised label shown on the select-all checkbox when not all children are
52
+ * selected (the `some` / `none` states). Ignored when `indeterminateCheck` is a `string` or
53
+ * function, which control the label directly.
54
+ */
55
+ selectAllLabel?: string;
56
+ /**
57
+ * Overrides the localised label shown on the select-all checkbox when every child is selected
58
+ * (the `all` state). Ignored when `indeterminateCheck` is a `string` or function, which control
59
+ * the label directly.
60
+ */
61
+ removeAllLabel?: string;
62
+ /** Extra props forwarded to the select-all checkbox (its checked/indeterminate/value are managed). */
63
+ indeterminateCheckProps?: Partial<Omit<CheckboxBaseProps, 'value' | 'label' | 'checked' | 'indeterminate' | 'onChange'>>;
64
+ /** The `Checkbox` items that make up the group. */
65
+ children: React.ReactNode;
66
+ }
67
+ export type CheckboxGroupProps = BreakpointSupport<CheckboxGroupBreakpointProps>;
68
+ export declare const CheckboxGroup: {
69
+ (props: CheckboxGroupProps): JSX.Element;
70
+ displayName: string;
71
+ };
72
+ export default CheckboxGroup;
@@ -0,0 +1,124 @@
1
+ import { jsxs as h, Fragment as U, jsx as n } from "react/jsx-runtime";
2
+ import _ from "../../../../../../external/classnames/index.es.js";
3
+ import o from "react";
4
+ import { FeedbackText as W } from "../../feedback-text/feedback-text.es.js";
5
+ import { Checkbox as X } from "../checkbox.es.js";
6
+ import r from "./checkbox-group.module.scss.es.js";
7
+ import { CheckboxGroupContext as Y } from "./checkbox-group-context.es.js";
8
+ import { useBreakpointProps as Z } from "../../../../helpers/hooks/use-breakpoint-props.es.js";
9
+ import { useLabels as ee } from "../../../../providers/label-provider/use-labels.es.js";
10
+ const le = (S) => {
11
+ const { getCurrentBreakpointProps: w } = Z(S.defaultServerBreakpoint), { getLabel: f } = ee(), {
12
+ id: B,
13
+ name: N,
14
+ label: V,
15
+ hideLabel: G = !1,
16
+ helper: i,
17
+ className: M,
18
+ value: k,
19
+ defaultValue: $ = [],
20
+ onChange: d,
21
+ disabled: g,
22
+ invalid: v,
23
+ required: j,
24
+ size: x,
25
+ variant: u = "default",
26
+ cardVariant: A = "primary",
27
+ direction: E = u === "card" ? "row" : "column",
28
+ indeterminateCheck: t,
29
+ selectAllLabel: F,
30
+ removeAllLabel: z,
31
+ indeterminateCheckProps: R,
32
+ children: C
33
+ } = w(S), D = o.useId(), L = B ?? D, p = k !== void 0, [I, H] = o.useState($), l = o.useMemo(
34
+ () => p ? k ?? [] : I,
35
+ [p, k, I]
36
+ ), P = i ? i.id ?? `${L}-helper` : void 0, m = o.useCallback(
37
+ (e) => {
38
+ p || H(e), d == null || d(e);
39
+ },
40
+ [p, d]
41
+ ), T = o.useCallback(
42
+ (e, b) => {
43
+ m(b ? [...l, e] : l.filter((y) => y !== e));
44
+ },
45
+ [l, m]
46
+ ), J = o.useMemo(
47
+ () => ({
48
+ name: N,
49
+ values: l,
50
+ onToggle: T,
51
+ disabled: g,
52
+ invalid: v,
53
+ size: x,
54
+ variant: u,
55
+ cardVariant: A
56
+ }),
57
+ [N, l, T, g, v, x, u, A]
58
+ ), s = o.useMemo(() => {
59
+ const e = /* @__PURE__ */ new Set(), b = (y) => {
60
+ o.Children.forEach(y, (c) => {
61
+ o.isValidElement(c) && (c.props.value !== void 0 && !c.props.disabled && e.add(c.props.value), b(c.props.children));
62
+ });
63
+ };
64
+ return b(C), [...e];
65
+ }, [C]), a = s.length > 0 && s.every((e) => l.includes(e)), q = s.every((e) => !l.includes(e)), K = !a && !q, O = typeof t == "string" ? t : typeof t == "function" ? t(a ? "all" : q ? "none" : "some") : a ? z ?? f("checkbox-group.remove-all") : F ?? f("checkbox-group.select-all"), Q = o.useCallback(() => {
66
+ m(
67
+ a ? l.filter((e) => !s.includes(e)) : [.../* @__PURE__ */ new Set([...l, ...s])]
68
+ );
69
+ }, [a, l, s, m]);
70
+ return /* @__PURE__ */ h(
71
+ "fieldset",
72
+ {
73
+ className: _(
74
+ r["tedi-checkbox-group"],
75
+ r[`tedi-checkbox-group--${E}`],
76
+ { [r["tedi-checkbox-group--card"]]: u === "card" },
77
+ M
78
+ ),
79
+ disabled: g,
80
+ "aria-invalid": v || void 0,
81
+ "aria-describedby": P,
82
+ children: [
83
+ V && /* @__PURE__ */ h("legend", { className: _(r["tedi-checkbox-group__legend"], { "sr-only": G }), children: [
84
+ V,
85
+ j && /* @__PURE__ */ h(U, { children: [
86
+ /* @__PURE__ */ n("span", { "aria-hidden": "true", className: r["tedi-checkbox-group__required"], children: "*" }),
87
+ /* @__PURE__ */ h("span", { className: "sr-only", children: [
88
+ " ",
89
+ f("required")
90
+ ] })
91
+ ] })
92
+ ] }),
93
+ t && /* @__PURE__ */ n(
94
+ X,
95
+ {
96
+ id: `${L}-select-all`,
97
+ ...R,
98
+ value: "select-all",
99
+ label: O,
100
+ checked: a,
101
+ indeterminate: K,
102
+ onChange: Q,
103
+ size: x
104
+ }
105
+ ),
106
+ /* @__PURE__ */ n(Y.Provider, { value: J, children: /* @__PURE__ */ n(
107
+ "div",
108
+ {
109
+ className: _(r["tedi-checkbox-group__items"], {
110
+ [r["tedi-checkbox-group__items--indented"]]: !!t
111
+ }),
112
+ children: C
113
+ }
114
+ ) }),
115
+ i && /* @__PURE__ */ n(W, { id: P, ...i })
116
+ ]
117
+ }
118
+ );
119
+ };
120
+ le.displayName = "Checkbox.Group";
121
+ export {
122
+ le as CheckboxGroup,
123
+ le as default
124
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-checkbox-group":"tedi-checkbox-group-8c1eff4a","tedi-checkbox-group__legend":"tedi-checkbox-group__legend-78f7c383","tedi-checkbox-group__required":"tedi-checkbox-group__required-0ef1066e","tedi-checkbox-group__items":"tedi-checkbox-group__items-55131f62","tedi-checkbox-group--column":"tedi-checkbox-group--column-72f10a57","tedi-checkbox-group__items--indented":"tedi-checkbox-group__items--indented-47a5f592","tedi-checkbox-group--row":"tedi-checkbox-group--row-824f71cf","tedi-checkbox-group--card":"tedi-checkbox-group--card-e304e3dd"};exports.default=e;
@@ -0,0 +1,13 @@
1
+ const e = {
2
+ "tedi-checkbox-group": "tedi-checkbox-group-8c1eff4a",
3
+ "tedi-checkbox-group__legend": "tedi-checkbox-group__legend-78f7c383",
4
+ "tedi-checkbox-group__required": "tedi-checkbox-group__required-0ef1066e",
5
+ "tedi-checkbox-group__items": "tedi-checkbox-group__items-55131f62",
6
+ "tedi-checkbox-group--column": "tedi-checkbox-group--column-72f10a57",
7
+ "tedi-checkbox-group__items--indented": "tedi-checkbox-group__items--indented-47a5f592",
8
+ "tedi-checkbox-group--row": "tedi-checkbox-group--row-824f71cf",
9
+ "tedi-checkbox-group--card": "tedi-checkbox-group--card-e304e3dd"
10
+ };
11
+ export {
12
+ e as default
13
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("react/jsx-runtime"),d=require("../../../../../external/classnames/index.cjs.js"),r=require("react"),j=require("../../base/icon/icon.cjs.js"),B=require("../feedback-text/feedback-text.cjs.js"),E=require("../form-label/form-label.cjs.js"),e=require("./checkbox.module.scss.cjs.js"),F=require("../../layout/grid/row.cjs.js"),q=require("../../layout/grid/col.cjs.js"),C=N=>{const{id:a,label:h,value:b,className:R,disabled:n=!1,onChange:l,hideLabel:g=!1,helper:i,checked:u,defaultChecked:v,indeterminate:o,hover:y,name:I,tooltip:k,invalid:x,size:s="default",required:_,...w}=N,[z,L]=r.useState(v||!1),m=r.useRef(null),f=r.useRef(null),M=l&&typeof u<"u"?u:z;r.useEffect(()=>{f.current&&(f.current.indeterminate=!!o)},[o]);const S=t=>{typeof u>"u"&&L(t==null?void 0:t.target.checked),l==null||l(b,t==null?void 0:t.target.checked)},p=i?i.id??`${a}-helper`:void 0,T=k?`${a}-tooltip`:void 0,$=d.default(e.default["tedi-checkbox__label"],{[e.default["tedi-checkbox--disabled"]]:n});return c.jsxs("div",{className:d.default(e.default["tedi-checkbox"],{[e.default["tedi-checkbox--disabled"]]:n}),"data-name":"check",...w,children:[c.jsxs(F.Row,{gutter:0,children:[c.jsx(q.Col,{width:"auto",children:c.jsxs("div",{className:e.default["tedi-checkbox__outer-indicator-wrapper"],children:[c.jsx("input",{ref:f,id:a,value:b,name:I,type:"checkbox",disabled:n,checked:o?!1:M,onChange:S,className:e.default["tedi-checkbox__input"],"aria-describedby":[p,T].filter(Boolean).join(" "),required:_,"aria-invalid":x||void 0}),c.jsxs("div",{"aria-hidden":"true",onClick:()=>{var t;return(t=m.current)==null?void 0:t.click()},className:d.default(e.default["tedi-checkbox__indicator"],{[e.default["tedi-checkbox__indicator--hover"]]:y,[e.default["tedi-checkbox__indicator--indeterminate"]]:o,[e.default[`tedi-checkbox__indicator--size-${s}`]]:s,[e.default["tedi-checkbox__indicator--invalid"]]:x},R),"data-testid":"checkbox-indicator",children:[c.jsx(j.Icon,{size:s==="default"?16:18,name:"remove",className:d.default(e.default["tedi-checkbox__icon"],e.default["tedi-checkbox__icon--indeterminate"])}),c.jsx(j.Icon,{size:s==="default"?16:18,name:"check",className:d.default(e.default["tedi-checkbox__icon"],e.default["tedi-checkbox__icon--check"])})]})]})}),h&&c.jsx(q.Col,{children:c.jsx(E.FormLabel,{ref:m,className:$,id:a,"data-testid":"checkbox-label",hideLabel:g,label:h,tooltip:k,required:_})})]}),i&&c.jsx(B.FeedbackText,{id:p,...i,className:d.default(e.default["tedi-checkbox__helper"],i.className)})]})};exports.Checkbox=C;exports.default=C;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),t=require("../../../../../external/classnames/index.cjs.js"),s=require("react"),v=require("../../base/icon/icon.cjs.js"),M=require("../feedback-text/feedback-text.cjs.js"),de=require("../form-label/form-label.cjs.js"),c=require("./checkbox.module.scss.cjs.js"),te=require("./checkbox-group/checkbox-group-context.cjs.js"),ie=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),se=require("../../layout/grid/row.cjs.js"),S=require("../../layout/grid/col.cjs.js"),N=C=>{const e=s.useContext(te.CheckboxGroupContext),{getCurrentBreakpointProps:V}=ie.useBreakpointProps(C.defaultServerBreakpoint),{id:E,label:h,value:r,className:q,onChange:o,hideLabel:y=!1,helper:i,checked:b,defaultChecked:F,indeterminate:n,hover:G,name:D,tooltip:I,description:k,icon:m,labelProps:H,size:O,variant:U,cardVariant:A,disabled:J,invalid:P,required:K,...w}=V(C),l=O??(e==null?void 0:e.size)??"default",z=U??(e==null?void 0:e.variant)??"default",Q=A??(e==null?void 0:e.cardVariant)??"primary";z==="card"&&I&&console.warn('Checkbox: `tooltip` is not supported with `variant="card"` and will be ignored. Use `description`.');const f=J??(e==null?void 0:e.disabled)??!1,W=P??(e==null?void 0:e.invalid),B=K,X=s.useId(),u=E??X,Y=D??(e==null?void 0:e.name),[$,Z]=s.useState(F||!1),_=s.useRef(null),p=e!==null,j=s.useMemo(()=>n?"mixed":p?!!(e!=null&&e.values.includes(r)):o&&typeof b<"u"?b:$,[n,p,e,r,o,b,$]);s.useEffect(()=>{_.current&&(_.current.indeterminate=!!n)},[n,j]);const g=d=>{p?e==null||e.onToggle(r,d.target.checked):typeof b>"u"&&Z(d==null?void 0:d.target.checked),o==null||o(r,d==null?void 0:d.target.checked)},x=i?i.id??`${u}-helper`:void 0,ee=x,L=a.jsx("input",{ref:_,id:u,value:r,name:Y,type:"checkbox",disabled:f,checked:j!=="mixed"?j:!1,required:B,"aria-invalid":P||void 0,onChange:g,className:c.default["tedi-checkbox__input"],"aria-describedby":ee}),R=d=>a.jsxs("div",{"aria-hidden":"true",className:t.default(c.default["tedi-checkbox__indicator"],{[c.default["tedi-checkbox__indicator--hover"]]:G,[c.default["tedi-checkbox__indicator--indeterminate"]]:n,[c.default[`tedi-checkbox__indicator--size-${l}`]]:l,[c.default["tedi-checkbox__indicator--invalid"]]:W},d),"data-testid":"checkbox-indicator",children:[a.jsx(v.Icon,{size:l==="default"?16:18,name:"remove",className:t.default(c.default["tedi-checkbox__icon"],c.default["tedi-checkbox__icon--indeterminate"])}),a.jsx(v.Icon,{size:l==="default"?16:18,name:"check",className:t.default(c.default["tedi-checkbox__icon"],c.default["tedi-checkbox__icon--check"])})]});if(z==="card"){const d=`${u}-label`,T=k?`${u}-description`:void 0,ae=[T,x].filter(Boolean).join(" ")||void 0;return a.jsxs("label",{"data-name":"check",className:t.default(c.default["tedi-checkbox"],c.default["tedi-checkbox--card"],c.default[`tedi-checkbox--card-${Q}`],{[c.default["tedi-checkbox--card-with-icon"]]:!!m},{[c.default["tedi-checkbox--disabled"]]:f},q),...w,children:[a.jsxs("span",{className:c.default["tedi-checkbox__card-control"],children:[s.cloneElement(L,{"aria-labelledby":h?d:void 0,"aria-describedby":ae}),R(),m&&a.jsx(v.Icon,{name:m,size:l==="default"?18:24,className:c.default["tedi-checkbox__card-icon"]}),a.jsx("span",{id:d,className:t.default(c.default["tedi-checkbox__card-label"],{"sr-only":y}),children:h})]}),k&&a.jsx("span",{id:T,className:c.default["tedi-checkbox__card-description"],children:k}),i&&a.jsx(M.FeedbackText,{id:x,...i,className:t.default(c.default["tedi-checkbox__helper"],i.className)})]})}const ce=t.default(c.default["tedi-checkbox__label"],{[c.default["tedi-checkbox--disabled"]]:f});return a.jsxs("div",{className:t.default(c.default["tedi-checkbox"],{[c.default["tedi-checkbox--disabled"]]:f}),"data-name":"check",...w,children:[a.jsxs(se.Row,{gutter:0,children:[a.jsx(S.Col,{width:"auto",children:a.jsxs("div",{className:c.default["tedi-checkbox__outer-indicator-wrapper"],children:[L,R(q)]})}),h&&a.jsx(S.Col,{children:a.jsx(de.FormLabel,{className:ce,id:u,"data-testid":"checkbox-label",hideLabel:y,label:h,tooltip:I,required:B,labelProps:H})})]}),i&&a.jsx(M.FeedbackText,{id:x,...i,className:t.default(c.default["tedi-checkbox__helper"],i.className)})]})};N.displayName="Checkbox";exports.Checkbox=N;exports.default=N;
@@ -1,10 +1,16 @@
1
+ import { BreakpointSupport } from '../../../helpers';
1
2
  import { ChoiceInputProps } from '../choice-input.types';
2
- export interface CheckboxProps extends ChoiceInputProps {
3
+ export type CheckboxBaseProps = ChoiceInputProps & {
3
4
  /**
4
5
  * If the check is in indeterminate state. (Not checked or unchecked)
5
6
  * When this is true then the checked prop is ignored
6
7
  */
7
8
  indeterminate?: boolean;
9
+ };
10
+ export type CheckboxProps = BreakpointSupport<CheckboxBaseProps>;
11
+ interface CheckboxComponent {
12
+ (props: CheckboxProps): JSX.Element;
13
+ displayName?: string;
8
14
  }
9
- export declare const Checkbox: (props: CheckboxProps) => JSX.Element;
15
+ export declare const Checkbox: CheckboxComponent;
10
16
  export default Checkbox;