@tedi-design-system/react 18.0.0-rc.3 → 18.0.0-rc.5

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 (96) hide show
  1. package/bundle-stats.html +1 -1
  2. package/external/@floating-ui/core/dist/floating-ui.core.cjs.js +1 -1
  3. package/external/@floating-ui/core/dist/floating-ui.core.es.js +275 -271
  4. package/external/@floating-ui/dom/dist/floating-ui.dom.cjs.js +1 -1
  5. package/external/@floating-ui/dom/dist/floating-ui.dom.es.js +189 -188
  6. package/external/@floating-ui/react/dist/floating-ui.react.cjs.js +1 -1
  7. package/external/@floating-ui/react/dist/floating-ui.react.es.js +1419 -1538
  8. package/external/@floating-ui/react/dist/floating-ui.react.utils.cjs.js +1 -1
  9. package/external/@floating-ui/react/dist/floating-ui.react.utils.es.js +348 -81
  10. package/external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js +1 -1
  11. package/external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js +113 -93
  12. package/external/@floating-ui/utils/dist/floating-ui.utils.cjs.js +1 -1
  13. package/external/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js +1 -1
  14. package/external/@floating-ui/utils/dist/floating-ui.utils.dom.es.js +97 -97
  15. package/external/@floating-ui/utils/dist/floating-ui.utils.es.js +66 -68
  16. package/external/lodash-es/_baseUnset.cjs.js +1 -1
  17. package/external/lodash-es/_baseUnset.es.js +12 -19
  18. package/external/tabbable/dist/index.esm.cjs.js +1 -1
  19. package/external/tabbable/dist/index.esm.es.js +72 -63
  20. package/index.css +1 -1
  21. package/package.json +4 -4
  22. package/src/community/components/modal/modal-closer.d.ts +6 -0
  23. package/src/community/components/modal/modal-provider.d.ts +6 -0
  24. package/src/community/components/modal/modal-trigger.d.ts +6 -0
  25. package/src/community/components/modal/modal.d.ts +6 -0
  26. package/src/tedi/components/buttons/button-group/button-group.cjs.js +1 -1
  27. package/src/tedi/components/buttons/button-group/button-group.es.js +4 -4
  28. package/src/tedi/components/buttons/collapse/collapse.cjs.js +1 -1
  29. package/src/tedi/components/buttons/collapse/collapse.d.ts +15 -0
  30. package/src/tedi/components/buttons/collapse/collapse.es.js +55 -54
  31. package/src/tedi/components/content/table/index.d.ts +6 -0
  32. package/src/tedi/components/content/table/table-columns-menu/table-columns-menu.cjs.js +1 -0
  33. package/src/tedi/components/content/table/table-columns-menu/table-columns-menu.d.ts +15 -0
  34. package/src/tedi/components/content/table/table-columns-menu/table-columns-menu.es.js +37 -0
  35. package/src/tedi/components/content/table/table-context.cjs.js +1 -0
  36. package/src/tedi/components/content/table/table-context.d.ts +3 -0
  37. package/src/tedi/components/content/table/table-context.es.js +11 -0
  38. package/src/tedi/components/content/table/table-header-button/table-header-button.cjs.js +1 -0
  39. package/src/tedi/components/content/table/table-header-button/table-header-button.d.ts +51 -0
  40. package/src/tedi/components/content/table/table-header-button/table-header-button.es.js +42 -0
  41. package/src/tedi/components/content/table/table-header-button/table-header-button.module.scss.cjs.js +1 -0
  42. package/src/tedi/components/content/table/table-header-button/table-header-button.module.scss.es.js +7 -0
  43. package/src/tedi/components/content/table/table-toolbar/table-toolbar.cjs.js +1 -0
  44. package/src/tedi/components/content/table/table-toolbar/table-toolbar.d.ts +21 -0
  45. package/src/tedi/components/content/table/table-toolbar/table-toolbar.es.js +9 -0
  46. package/src/tedi/components/content/table/table.cjs.js +1 -0
  47. package/src/tedi/components/content/table/table.d.ts +519 -0
  48. package/src/tedi/components/content/table/table.es.js +856 -0
  49. package/src/tedi/components/content/table/table.module.scss.cjs.js +1 -0
  50. package/src/tedi/components/content/table/table.module.scss.es.js +54 -0
  51. package/src/tedi/components/content/table/use-table-persistence.cjs.js +1 -0
  52. package/src/tedi/components/content/table/use-table-persistence.d.ts +13 -0
  53. package/src/tedi/components/content/table/use-table-persistence.es.js +53 -0
  54. package/src/tedi/components/form/time-field/time-field.es.js +3 -3
  55. package/src/tedi/components/navigation/pagination/pagination.cjs.js +1 -1
  56. package/src/tedi/components/navigation/pagination/pagination.d.ts +7 -0
  57. package/src/tedi/components/navigation/pagination/pagination.es.js +132 -91
  58. package/src/tedi/components/navigation/pagination/pagination.module.scss.cjs.js +1 -1
  59. package/src/tedi/components/navigation/pagination/pagination.module.scss.es.js +7 -1
  60. package/src/tedi/components/navigation/pagination/pagination.types.d.ts +100 -0
  61. package/src/tedi/components/overlays/modal/index.d.ts +8 -0
  62. package/src/tedi/components/overlays/modal/modal-body/modal-body.cjs.js +1 -0
  63. package/src/tedi/components/overlays/modal/modal-body/modal-body.d.ts +22 -0
  64. package/src/tedi/components/overlays/modal/modal-body/modal-body.es.js +21 -0
  65. package/src/tedi/components/overlays/modal/modal-closer/modal-closer.cjs.js +1 -0
  66. package/src/tedi/components/overlays/modal/modal-closer/modal-closer.d.ts +15 -0
  67. package/src/tedi/components/overlays/modal/modal-closer/modal-closer.es.js +16 -0
  68. package/src/tedi/components/overlays/modal/modal-content/modal-content.cjs.js +1 -0
  69. package/src/tedi/components/overlays/modal/modal-content/modal-content.d.ts +108 -0
  70. package/src/tedi/components/overlays/modal/modal-content/modal-content.es.js +81 -0
  71. package/src/tedi/components/overlays/modal/modal-context.cjs.js +1 -0
  72. package/src/tedi/components/overlays/modal/modal-context.d.ts +59 -0
  73. package/src/tedi/components/overlays/modal/modal-context.es.js +15 -0
  74. package/src/tedi/components/overlays/modal/modal-footer/modal-footer.cjs.js +1 -0
  75. package/src/tedi/components/overlays/modal/modal-footer/modal-footer.d.ts +22 -0
  76. package/src/tedi/components/overlays/modal/modal-footer/modal-footer.es.js +25 -0
  77. package/src/tedi/components/overlays/modal/modal-header/modal-header.cjs.js +1 -0
  78. package/src/tedi/components/overlays/modal/modal-header/modal-header.d.ts +58 -0
  79. package/src/tedi/components/overlays/modal/modal-header/modal-header.es.js +25 -0
  80. package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.cjs.js +1 -0
  81. package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.d.ts +13 -0
  82. package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.es.js +14 -0
  83. package/src/tedi/components/overlays/modal/modal.cjs.js +1 -0
  84. package/src/tedi/components/overlays/modal/modal.d.ts +68 -0
  85. package/src/tedi/components/overlays/modal/modal.es.js +76 -0
  86. package/src/tedi/components/overlays/modal/modal.module.scss.cjs.js +1 -0
  87. package/src/tedi/components/overlays/modal/modal.module.scss.es.js +36 -0
  88. package/src/tedi/components/overlays/tooltip/tooltip.cjs.js +1 -1
  89. package/src/tedi/components/overlays/tooltip/tooltip.es.js +14 -6
  90. package/src/tedi/helpers/hooks/use-sidenav-state.d.ts +1 -1
  91. package/src/tedi/index.d.ts +2 -0
  92. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  93. package/src/tedi/providers/label-provider/labels-map.d.ts +132 -6
  94. package/src/tedi/providers/label-provider/labels-map.es.js +146 -11
  95. package/tedi.cjs.js +1 -1
  96. package/tedi.es.js +203 -171
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/react",
3
- "version": "18.0.0-rc.3",
3
+ "version": "18.0.0-rc.5",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@emotion/react": "^11.11.4",
41
41
  "@emotion/styled": "^11.11.0",
42
- "@floating-ui/react": "^0.26.9",
42
+ "@floating-ui/react": "^0.27.19",
43
43
  "@mui/material": "^5.15.13",
44
44
  "@mui/x-date-pickers": "^5.0.20",
45
45
  "@tanstack/react-table": "^8.13.2",
@@ -48,7 +48,7 @@
48
48
  "draft-js": "^0.11.7",
49
49
  "draftjs-md-converter": "^1.5.2",
50
50
  "formik": "^2.4.5",
51
- "lodash-es": "^4.17.22",
51
+ "lodash-es": "^4.18.1",
52
52
  "react-animate-height": "^3.2.3",
53
53
  "react-day-picker": "^9.13.2",
54
54
  "react-dropzone": "^14.3.5",
@@ -133,7 +133,7 @@
133
133
  "storybook": "8.4.2",
134
134
  "storybook-addon-pseudo-states": "^4.0.2",
135
135
  "stylelint": "^16.13.2",
136
- "stylelint-config-recess-order": "^4.2.0",
136
+ "stylelint-config-recess-order": "^7.7.0",
137
137
  "stylelint-config-standard-scss": "^14.0.0",
138
138
  "stylelint-declaration-strict-value": "^1.9.2",
139
139
  "ts-jest": "29.1.2",
@@ -1,9 +1,15 @@
1
1
  import { default as React } from 'react';
2
+ /**
3
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
4
+ */
2
5
  export interface ModalCloserProps {
3
6
  /**
4
7
  * The element that closes the modal.
5
8
  */
6
9
  children: React.ReactElement;
7
10
  }
11
+ /**
12
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
13
+ */
8
14
  export declare const ModalCloser: (props: ModalCloserProps) => JSX.Element;
9
15
  export default ModalCloser;
@@ -1,5 +1,8 @@
1
1
  import { FloatingContext, ReferenceType } from '@floating-ui/react';
2
2
  import { default as React } from 'react';
3
+ /**
4
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
5
+ */
3
6
  export interface ModalProviderProps {
4
7
  /**
5
8
  * ModalTrigger and Modal components
@@ -51,5 +54,8 @@ export interface IModalContext {
51
54
  outsidePress: boolean;
52
55
  }
53
56
  export declare const ModalContext: React.Context<IModalContext>;
57
+ /**
58
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
59
+ */
54
60
  export declare const ModalProvider: (props: ModalProviderProps) => JSX.Element;
55
61
  export default ModalProvider;
@@ -1,8 +1,14 @@
1
+ /**
2
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
3
+ */
1
4
  export interface ModalTriggerProps {
2
5
  /**
3
6
  * The element that opens the modal.
4
7
  */
5
8
  children: JSX.Element;
6
9
  }
10
+ /**
11
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
12
+ */
7
13
  export declare const ModalTrigger: (props: ModalTriggerProps) => JSX.Element;
8
14
  export default ModalTrigger;
@@ -1,5 +1,8 @@
1
1
  import { default as React } from 'react';
2
2
  import { CardProps } from '../card/card';
3
+ /**
4
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
5
+ */
3
6
  export interface ModalProps {
4
7
  /**
5
8
  * Content of the modal
@@ -58,5 +61,8 @@ export interface ModalProps {
58
61
  */
59
62
  overlay?: 'none';
60
63
  }
64
+ /**
65
+ * @deprecated Use Modal from `@tedi-design-system/react/tedi` instead.
66
+ */
61
67
  export declare const Modal: (props: ModalProps) => JSX.Element | null;
62
68
  export default Modal;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),g=require("../../../../../external/classnames/index.cjs.js"),_=require("react"),n=require("../../base/icon/icon.cjs.js"),x=require("../button/button.cjs.js"),r=require("./button-group.module.scss.cjs.js"),L=require("../../../helpers/hooks/use-breakpoint.cjs.js"),C=require("../../../providers/label-provider/use-labels.cjs.js"),l=require("../../overlays/dropdown/dropdown.cjs.js"),b=k=>{const{getLabel:j}=C.useLabels(),{children:q,className:w,type:c="primary",onSelectionChange:i,stretch:v=!1,ariaLabel:I,size:f="default",enableMobileDropdown:A=!1,mobileBreakpoint:N="md",dropdownLabel:y=j("sidenav.submenu"),dropdownLabelMode:R="static"}=k,B=L.useBreakpoint(),D=L.isBreakpointBelow(B,N),m=_.Children.toArray(q).filter(e=>_.isValidElement(e)&&e.type===x.Button),s=m.find(e=>e.props.isActive),M=R==="static"?y:(s==null?void 0:s.props.children)??y,a=s==null?void 0:s.props.iconLeft,d=s==null?void 0:s.props.icon;return D&&A?o.jsxs(l.Dropdown,{width:"trigger",children:[o.jsx(l.Dropdown.Trigger,{children:o.jsxs(x.Button,{visualType:c,className:g.default(r.default["tedi-button-group__dropdown-trigger"],r.default[`tedi-button-group__dropdown-trigger--${c}`],w),noStyle:!0,fullWidth:!0,children:[a?o.jsx(n.Icon,{name:typeof a=="string"?a:a.name,color:"inherit"}):d?o.jsx(n.Icon,{name:typeof d=="string"?d:d.name,color:"inherit"}):o.jsx(n.Icon,{name:"menu",color:"inherit"}),M]})}),o.jsx(l.Dropdown.Content,{children:m.map((e,u)=>o.jsxs(l.Dropdown.Item,{index:u,active:e==null?void 0:e.props.isActive,disabled:e==null?void 0:e.props.disabled,onClick:t=>{var p,h;e.props.disabled||(t.type==="click"&&((h=(p=e.props).onClick)==null||h.call(p,t)),e.props.id&&(i==null||i(e.props.id)))},className:r.default["tedi-button-group__dropdown-item"],children:[e.props.iconLeft&&o.jsx(n.Icon,{name:typeof e.props.iconLeft=="string"?e.props.iconLeft:e.props.iconLeft.name,color:"inherit"}),e.props.children,e.props.iconRight&&o.jsx(n.Icon,{name:typeof e.props.iconRight=="string"?e.props.iconRight:e.props.iconRight.name,color:"inherit"}),e.props.isActive&&o.jsx("span",{className:"sr-only",children:j("button-group.selected")})]},e.props.id||u))})]}):o.jsx("div",{className:g.default(r.default["tedi-button-group"],r.default[`tedi-button-group--${c}`],{[r.default["tedi-button-group--stretch"]]:v},w),role:"group","aria-label":I,children:m.map(e=>_.cloneElement(e,{className:g.default(r.default["tedi-button-group__item"],{[r.default["tedi-button-group__item--active"]]:e.props.isActive,[r.default["tedi-button-group__item--disabled"]]:e.props.disabled,[r.default[`tedi-button-group__item--size-${f}`]]:f},e.props.className),size:f,"aria-pressed":!!e.props.isActive,onClick:u=>{var t,p;(p=(t=e.props).onClick)==null||p.call(t,u),e.props.id&&(i==null||i(e.props.id))}}))})};exports.ButtonGroup=b;exports.default=b;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),g=require("../../../../../external/classnames/index.cjs.js"),_=require("react"),n=require("../../base/icon/icon.cjs.js"),x=require("../button/button.cjs.js"),r=require("./button-group.module.scss.cjs.js"),C=require("../../../providers/label-provider/use-labels.cjs.js"),L=require("../../../helpers/hooks/use-breakpoint.cjs.js"),l=require("../../overlays/dropdown/dropdown.cjs.js"),b=k=>{const{getLabel:j}=C.useLabels(),{children:q,className:w,type:c="primary",onSelectionChange:i,stretch:v=!1,ariaLabel:I,size:f="default",enableMobileDropdown:A=!1,mobileBreakpoint:N="md",dropdownLabel:y=j("sidenav.submenu"),dropdownLabelMode:R="static"}=k,B=L.useBreakpoint(),D=L.isBreakpointBelow(B,N),m=_.Children.toArray(q).filter(e=>_.isValidElement(e)&&e.type===x.Button),s=m.find(e=>e.props.isActive),M=R==="static"?y:(s==null?void 0:s.props.children)??y,a=s==null?void 0:s.props.iconLeft,d=s==null?void 0:s.props.icon;return D&&A?o.jsxs(l.Dropdown,{width:"trigger",children:[o.jsx(l.Dropdown.Trigger,{children:o.jsxs(x.Button,{visualType:c,className:g.default(r.default["tedi-button-group__dropdown-trigger"],r.default[`tedi-button-group__dropdown-trigger--${c}`],w),noStyle:!0,fullWidth:!0,children:[a?o.jsx(n.Icon,{name:typeof a=="string"?a:a.name,color:"inherit"}):d?o.jsx(n.Icon,{name:typeof d=="string"?d:d.name,color:"inherit"}):o.jsx(n.Icon,{name:"menu",color:"inherit"}),M]})}),o.jsx(l.Dropdown.Content,{children:m.map((e,u)=>o.jsxs(l.Dropdown.Item,{index:u,active:e==null?void 0:e.props.isActive,disabled:e==null?void 0:e.props.disabled,onClick:t=>{var p,h;e.props.disabled||(t.type==="click"&&((h=(p=e.props).onClick)==null||h.call(p,t)),e.props.id&&(i==null||i(e.props.id)))},className:r.default["tedi-button-group__dropdown-item"],children:[e.props.iconLeft&&o.jsx(n.Icon,{name:typeof e.props.iconLeft=="string"?e.props.iconLeft:e.props.iconLeft.name,color:"inherit"}),e.props.children,e.props.iconRight&&o.jsx(n.Icon,{name:typeof e.props.iconRight=="string"?e.props.iconRight:e.props.iconRight.name,color:"inherit"}),e.props.isActive&&o.jsx("span",{className:"sr-only",children:j("button-group.selected")})]},e.props.id||u))})]}):o.jsx("div",{className:g.default(r.default["tedi-button-group"],r.default[`tedi-button-group--${c}`],{[r.default["tedi-button-group--stretch"]]:v},w),role:"group","aria-label":I,children:m.map(e=>_.cloneElement(e,{className:g.default(r.default["tedi-button-group__item"],{[r.default["tedi-button-group__item--active"]]:e.props.isActive,[r.default["tedi-button-group__item--disabled"]]:e.props.disabled,[r.default[`tedi-button-group__item--size-${f}`]]:f},e.props.className),size:f,"aria-pressed":!!e.props.isActive,onClick:u=>{var t,p;(p=(t=e.props).onClick)==null||p.call(t,u),e.props.id&&(i==null||i(e.props.id))}}))})};exports.ButtonGroup=b;exports.default=b;
@@ -4,11 +4,11 @@ import { Children as x, isValidElement as z, cloneElement as B } from "react";
4
4
  import { Icon as a } from "../../base/icon/icon.es.js";
5
5
  import { Button as k } from "../button/button.es.js";
6
6
  import r from "./button-group.module.scss.es.js";
7
- import { useBreakpoint as D, isBreakpointBelow as E } from "../../../helpers/hooks/use-breakpoint.es.js";
8
- import { useLabels as T } from "../../../providers/label-provider/use-labels.es.js";
7
+ import { useLabels as D } from "../../../providers/label-provider/use-labels.es.js";
8
+ import { useBreakpoint as E, isBreakpointBelow as T } from "../../../helpers/hooks/use-breakpoint.es.js";
9
9
  import { Dropdown as d } from "../../overlays/dropdown/dropdown.es.js";
10
10
  const P = (N) => {
11
- const { getLabel: _ } = T(), {
11
+ const { getLabel: _ } = D(), {
12
12
  children: v,
13
13
  className: h,
14
14
  type: m = "primary",
@@ -20,7 +20,7 @@ const P = (N) => {
20
20
  mobileBreakpoint: R = "md",
21
21
  dropdownLabel: L = _("sidenav.submenu"),
22
22
  dropdownLabelMode: C = "static"
23
- } = N, M = D(), $ = E(M, R), f = x.toArray(v).filter(
23
+ } = N, M = E(), $ = T(M, R), f = x.toArray(v).filter(
24
24
  (o) => z(o) && o.type === k
25
25
  ), e = f.find((o) => o.props.isActive), j = C === "static" ? L : (e == null ? void 0 : e.props.children) ?? L, n = e == null ? void 0 : e.props.iconLeft, l = e == null ? void 0 : e.props.icon;
26
26
  return $ && I ? /* @__PURE__ */ g(d, { width: "trigger", children: [
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),n=require("../../../../../external/classnames/index.cjs.js"),_=require("react"),F=require("../../../../../external/react-animate-height/dist/esm/index.cjs.js"),G=require("../../../providers/printing-provider/printing-provider.cjs.js"),H=require("../../base/icon/icon.cjs.js"),J=require("../../base/typography/text/text.cjs.js"),Q=require("../../misc/print/print.cjs.js"),e=require("./collapse.module.scss.cjs.js"),U=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),V=require("../../../providers/label-provider/use-labels.cjs.js"),C=require("../../layout/grid/row.cjs.js"),o=require("../../layout/grid/col.cjs.js"),I=x=>{const{getCurrentBreakpointProps:N}=U.useBreakpointProps(x.defaultServerBreakpoint),{getLabel:h}=V.useLabels(),{id:r,children:w,className:P,openText:j=h("open"),closeText:g=h("close"),hideCollapseText:k=!1,title:d,titleRowProps:O,defaultOpen:$,open:c,onToggle:u,arrowType:s="default",size:i="default",underline:S=!0,toggleLabel:y,iconOnly:B=!1,inverted:M=!1,...R}=N(x),p=`${r}__trigger`,f=`${r}__content`,T=`${r}__animate`,[b,L]=_.useState(()=>$),m=G.usePrint(),a=_.useMemo(()=>m||(c!==void 0?c:b),[m,c,b]),D=B===!0&&!d,z=M&&s!=="secondary",E=n.default(e.default["tedi-collapse"],i==="small"&&e.default["tedi-collapse--small"],a&&e.default["tedi-collapse--is-open"],D&&e.default["tedi-collapse--icon-only"],z&&e.default["tedi-collapse--inverted"],e.default[`tedi-collapse--arrow-${s}`],P),v=()=>{const l=!a;L(l),u==null||u(l)},K=l=>{(l.key==="Enter"||l.key===" ")&&!l.repeat&&(l.preventDefault(),v())},A=y||(a?g:j),q=_.useMemo(()=>t.jsx("div",{id:f,role:"region","aria-labelledby":p,className:e.default["tedi-collapse__content"],children:w}),[w,f,p]);return t.jsxs("div",{"data-name":"collapse",...R,className:E,children:[t.jsx("button",{id:p,type:"button","data-name":"collapse-trigger",className:e.default["tedi-collapse__title"],"aria-label":A,"aria-expanded":a,"aria-controls":f,onKeyDown:K,onClick:v,children:t.jsxs(C.Row,{justifyContent:"between",alignItems:"center",wrap:"nowrap",...O,element:"span",children:[d&&t.jsx(o.Col,{"aria-hidden":"true",children:d}),t.jsx(o.Col,{width:"auto",children:t.jsxs(C.Row,{element:"span",alignItems:"center",gutter:0,wrap:"nowrap",children:[t.jsx(Q.Print,{visibility:"hide",children:t.jsx(o.Col,{width:"auto",className:n.default({"visually-hidden":k}),children:t.jsx(J.Text,{element:"span",className:n.default(e.default["tedi-collapse__text"],{[e.default["tedi-collapse__text--underline"]]:S}),children:a?g:j})})}),t.jsx(o.Col,{width:"auto",children:t.jsx("div",{className:n.default(e.default["tedi-collapse__icon-wrapper"],e.default[`tedi-collapse__icon-wrapper--${s}`],i==="small"&&e.default["tedi-collapse__icon-wrapper--small"]),children:t.jsx(H.Icon,{className:n.default(e.default["tedi-collapse__icon"],e.default[`tedi-collapse__icon--${s}`],i==="small"&&e.default["tedi-collapse__icon--small"]),name:"expand_more",size:i==="small"||s==="secondary"?18:24})})})]})})]})}),m?q:t.jsx(F.default,{id:T,duration:300,height:a?"auto":0,"data-testid":"collapse-inner",children:q})]})};exports.Collapse=I;exports.default=I;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),n=require("../../../../../external/classnames/index.cjs.js"),_=require("react"),H=require("../../../../../external/react-animate-height/dist/esm/index.cjs.js"),J=require("../../../providers/printing-provider/printing-provider.cjs.js"),Q=require("../../base/icon/icon.cjs.js"),U=require("../../base/typography/text/text.cjs.js"),V=require("../../misc/print/print.cjs.js"),e=require("./collapse.module.scss.cjs.js"),W=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),X=require("../../../providers/label-provider/use-labels.cjs.js"),N=require("../../layout/grid/row.cjs.js"),i=require("../../layout/grid/col.cjs.js"),P=x=>{const{getCurrentBreakpointProps:k}=W.useBreakpointProps(x.defaultServerBreakpoint),{getLabel:h}=X.useLabels(),{id:r,children:w,className:O,openText:j=h("open"),closeText:y=h("close"),hideCollapseText:$=!1,title:d,titleRowProps:S,defaultOpen:B,open:c,onToggle:u,arrowType:s="default",size:o="default",underline:M=!0,toggleLabel:g,iconOnly:R=!1,controlsId:v,inverted:T=!1,...L}=k(x),b=v!==void 0,p=`${r}__trigger`,f=`${r}__content`,D=`${r}__animate`,[C,E]=_.useState(()=>B),m=J.usePrint(),a=_.useMemo(()=>m||(c!==void 0?c:C),[m,c,C]),z=R===!0&&!d,K=T&&s!=="secondary",A=n.default(e.default["tedi-collapse"],o==="small"&&e.default["tedi-collapse--small"],a&&e.default["tedi-collapse--is-open"],z&&e.default["tedi-collapse--icon-only"],K&&e.default["tedi-collapse--inverted"],e.default[`tedi-collapse--arrow-${s}`],O),q=()=>{const l=!a;E(l),u==null||u(l)},F=l=>{(l.key==="Enter"||l.key===" ")&&!l.repeat&&(l.preventDefault(),q())},G=g||(a?y:j),I=_.useMemo(()=>t.jsx("div",{id:f,role:"region","aria-labelledby":p,className:e.default["tedi-collapse__content"],children:w}),[w,f,p]);return t.jsxs("div",{"data-name":"collapse",...L,className:A,children:[t.jsx("button",{id:p,type:"button","data-name":"collapse-trigger",className:e.default["tedi-collapse__title"],"aria-label":G,"aria-expanded":a,"aria-controls":b?v:f,onKeyDown:F,onClick:q,children:t.jsxs(N.Row,{justifyContent:"between",alignItems:"center",wrap:"nowrap",...S,element:"span",children:[d&&t.jsx(i.Col,{"aria-hidden":"true",children:d}),t.jsx(i.Col,{width:"auto",children:t.jsxs(N.Row,{element:"span",alignItems:"center",gutter:0,wrap:"nowrap",children:[t.jsx(V.Print,{visibility:"hide",children:t.jsx(i.Col,{width:"auto",className:n.default({"visually-hidden":$}),children:t.jsx(U.Text,{element:"span",className:n.default(e.default["tedi-collapse__text"],{[e.default["tedi-collapse__text--underline"]]:M}),children:a?y:j})})}),t.jsx(i.Col,{width:"auto",children:t.jsx("div",{className:n.default(e.default["tedi-collapse__icon-wrapper"],e.default[`tedi-collapse__icon-wrapper--${s}`],o==="small"&&e.default["tedi-collapse__icon-wrapper--small"]),children:t.jsx(Q.Icon,{className:n.default(e.default["tedi-collapse__icon"],e.default[`tedi-collapse__icon--${s}`],o==="small"&&e.default["tedi-collapse__icon--small"]),name:"expand_more",size:o==="small"||s==="secondary"?18:24})})})]})})]})}),!b&&(m?I:t.jsx(H.default,{id:D,duration:300,height:a?"auto":0,"data-testid":"collapse-inner",children:I}))]})};exports.Collapse=P;exports.default=P;
@@ -84,6 +84,21 @@ export interface CollapseProps extends BreakpointSupport<CollapseBreakpointProps
84
84
  * If provided, overrides the default open/close text for the accessible name.
85
85
  */
86
86
  toggleLabel?: string;
87
+ /**
88
+ * Use Collapse purely as a toggle trigger for content rendered elsewhere.
89
+ *
90
+ * When set, the toggle button's `aria-controls` points at the supplied id
91
+ * instead of Collapse's internal content panel, and the internal panel is
92
+ * **not rendered**. Useful when the disclosed region must live outside
93
+ * Collapse's DOM subtree (e.g. a table row whose details live in a
94
+ * sibling `<tr>`). The consumer is responsible for rendering the target
95
+ * element with the matching `id` and an appropriate `role` (typically
96
+ * `region`).
97
+ *
98
+ * When omitted (default), Collapse renders its own `children` inside a
99
+ * built-in `role="region"` panel.
100
+ */
101
+ controlsId?: string;
87
102
  }
88
103
  export declare const Collapse: (props: CollapseProps) => JSX.Element;
89
104
  export default Collapse;
@@ -1,57 +1,58 @@
1
1
  import { jsx as t, jsxs as f } from "react/jsx-runtime";
2
2
  import n from "../../../../../external/classnames/index.es.js";
3
3
  import h from "react";
4
- import q from "../../../../../external/react-animate-height/dist/esm/index.es.js";
5
- import { usePrint as F } from "../../../providers/printing-provider/printing-provider.es.js";
6
- import { Icon as G } from "../../base/icon/icon.es.js";
7
- import { Text as J } from "../../base/typography/text/text.es.js";
8
- import { Print as Q } from "../../misc/print/print.es.js";
4
+ import G from "../../../../../external/react-animate-height/dist/esm/index.es.js";
5
+ import { usePrint as J } from "../../../providers/printing-provider/printing-provider.es.js";
6
+ import { Icon as Q } from "../../base/icon/icon.es.js";
7
+ import { Text as U } from "../../base/typography/text/text.es.js";
8
+ import { Print as V } from "../../misc/print/print.es.js";
9
9
  import e from "./collapse.module.scss.es.js";
10
- import { useBreakpointProps as U } from "../../../helpers/hooks/use-breakpoint-props.es.js";
11
- import { useLabels as V } from "../../../providers/label-provider/use-labels.es.js";
12
- import { Row as k } from "../../layout/grid/row.es.js";
10
+ import { useBreakpointProps as W } from "../../../helpers/hooks/use-breakpoint-props.es.js";
11
+ import { useLabels as X } from "../../../providers/label-provider/use-labels.es.js";
12
+ import { Row as P } from "../../layout/grid/row.es.js";
13
13
  import { Col as s } from "../../layout/grid/col.es.js";
14
- const ce = (w) => {
15
- const { getCurrentBreakpointProps: O } = U(w.defaultServerBreakpoint), { getLabel: y } = V(), {
14
+ const pe = (w) => {
15
+ const { getCurrentBreakpointProps: $ } = W(w.defaultServerBreakpoint), { getLabel: y } = X(), {
16
16
  id: r,
17
17
  children: g,
18
- className: P,
19
- openText: b = y("open"),
20
- closeText: v = y("close"),
21
- hideCollapseText: $ = !1,
18
+ className: B,
19
+ openText: v = y("open"),
20
+ closeText: x = y("close"),
21
+ hideCollapseText: S = !1,
22
22
  title: c,
23
- titleRowProps: B,
24
- defaultOpen: S,
23
+ titleRowProps: T,
24
+ defaultOpen: j,
25
25
  open: d,
26
26
  onToggle: p,
27
- arrowType: o = "default",
27
+ arrowType: a = "default",
28
28
  size: i = "default",
29
- underline: T = !0,
30
- toggleLabel: x,
31
- iconOnly: j = !1,
32
- inverted: D = !1,
33
- ...L
34
- } = O(w), m = `${r}__trigger`, u = `${r}__content`, M = `${r}__animate`, [N, R] = h.useState(() => S), _ = F(), a = h.useMemo(
29
+ underline: D = !0,
30
+ toggleLabel: b,
31
+ iconOnly: E = !1,
32
+ controlsId: C,
33
+ inverted: L = !1,
34
+ ...M
35
+ } = $(w), I = C !== void 0, m = `${r}__trigger`, u = `${r}__content`, R = `${r}__animate`, [N, z] = h.useState(() => j), _ = J(), o = h.useMemo(
35
36
  () => _ || (d !== void 0 ? d : N),
36
37
  [_, d, N]
37
- ), z = j === !0 && !c, E = D && o !== "secondary", K = n(
38
+ ), K = E === !0 && !c, A = L && a !== "secondary", H = n(
38
39
  e["tedi-collapse"],
39
40
  i === "small" && e["tedi-collapse--small"],
40
- a && e["tedi-collapse--is-open"],
41
- z && e["tedi-collapse--icon-only"],
42
- E && e["tedi-collapse--inverted"],
43
- e[`tedi-collapse--arrow-${o}`],
44
- P
45
- ), C = () => {
46
- const l = !a;
47
- R(l), p == null || p(l);
48
- }, A = (l) => {
49
- (l.key === "Enter" || l.key === " ") && !l.repeat && (l.preventDefault(), C());
50
- }, H = x || (a ? v : b), I = h.useMemo(
41
+ o && e["tedi-collapse--is-open"],
42
+ K && e["tedi-collapse--icon-only"],
43
+ A && e["tedi-collapse--inverted"],
44
+ e[`tedi-collapse--arrow-${a}`],
45
+ B
46
+ ), k = () => {
47
+ const l = !o;
48
+ z(l), p == null || p(l);
49
+ }, q = (l) => {
50
+ (l.key === "Enter" || l.key === " ") && !l.repeat && (l.preventDefault(), k());
51
+ }, F = b || (o ? x : v), O = h.useMemo(
51
52
  () => /* @__PURE__ */ t("div", { id: u, role: "region", "aria-labelledby": m, className: e["tedi-collapse__content"], children: g }),
52
53
  [g, u, m]
53
54
  );
54
- return /* @__PURE__ */ f("div", { "data-name": "collapse", ...L, className: K, children: [
55
+ return /* @__PURE__ */ f("div", { "data-name": "collapse", ...M, className: H, children: [
55
56
  /* @__PURE__ */ t(
56
57
  "button",
57
58
  {
@@ -59,22 +60,22 @@ const ce = (w) => {
59
60
  type: "button",
60
61
  "data-name": "collapse-trigger",
61
62
  className: e["tedi-collapse__title"],
62
- "aria-label": H,
63
- "aria-expanded": a,
64
- "aria-controls": u,
65
- onKeyDown: A,
66
- onClick: C,
67
- children: /* @__PURE__ */ f(k, { justifyContent: "between", alignItems: "center", wrap: "nowrap", ...B, element: "span", children: [
63
+ "aria-label": F,
64
+ "aria-expanded": o,
65
+ "aria-controls": I ? C : u,
66
+ onKeyDown: q,
67
+ onClick: k,
68
+ children: /* @__PURE__ */ f(P, { justifyContent: "between", alignItems: "center", wrap: "nowrap", ...T, element: "span", children: [
68
69
  c && /* @__PURE__ */ t(s, { "aria-hidden": "true", children: c }),
69
- /* @__PURE__ */ t(s, { width: "auto", children: /* @__PURE__ */ f(k, { element: "span", alignItems: "center", gutter: 0, wrap: "nowrap", children: [
70
- /* @__PURE__ */ t(Q, { visibility: "hide", children: /* @__PURE__ */ t(s, { width: "auto", className: n({ "visually-hidden": $ }), children: /* @__PURE__ */ t(
71
- J,
70
+ /* @__PURE__ */ t(s, { width: "auto", children: /* @__PURE__ */ f(P, { element: "span", alignItems: "center", gutter: 0, wrap: "nowrap", children: [
71
+ /* @__PURE__ */ t(V, { visibility: "hide", children: /* @__PURE__ */ t(s, { width: "auto", className: n({ "visually-hidden": S }), children: /* @__PURE__ */ t(
72
+ U,
72
73
  {
73
74
  element: "span",
74
75
  className: n(e["tedi-collapse__text"], {
75
- [e["tedi-collapse__text--underline"]]: T
76
+ [e["tedi-collapse__text--underline"]]: D
76
77
  }),
77
- children: a ? v : b
78
+ children: o ? x : v
78
79
  }
79
80
  ) }) }),
80
81
  /* @__PURE__ */ t(s, { width: "auto", children: /* @__PURE__ */ t(
@@ -82,19 +83,19 @@ const ce = (w) => {
82
83
  {
83
84
  className: n(
84
85
  e["tedi-collapse__icon-wrapper"],
85
- e[`tedi-collapse__icon-wrapper--${o}`],
86
+ e[`tedi-collapse__icon-wrapper--${a}`],
86
87
  i === "small" && e["tedi-collapse__icon-wrapper--small"]
87
88
  ),
88
89
  children: /* @__PURE__ */ t(
89
- G,
90
+ Q,
90
91
  {
91
92
  className: n(
92
93
  e["tedi-collapse__icon"],
93
- e[`tedi-collapse__icon--${o}`],
94
+ e[`tedi-collapse__icon--${a}`],
94
95
  i === "small" && e["tedi-collapse__icon--small"]
95
96
  ),
96
97
  name: "expand_more",
97
- size: i === "small" || o === "secondary" ? 18 : 24
98
+ size: i === "small" || a === "secondary" ? 18 : 24
98
99
  }
99
100
  )
100
101
  }
@@ -103,10 +104,10 @@ const ce = (w) => {
103
104
  ] })
104
105
  }
105
106
  ),
106
- _ ? I : /* @__PURE__ */ t(q, { id: M, duration: 300, height: a ? "auto" : 0, "data-testid": "collapse-inner", children: I })
107
+ !I && (_ ? O : /* @__PURE__ */ t(G, { id: R, duration: 300, height: o ? "auto" : 0, "data-testid": "collapse-inner", children: O }))
107
108
  ] });
108
109
  };
109
110
  export {
110
- ce as Collapse,
111
- ce as default
111
+ pe as Collapse,
112
+ pe as default
112
113
  };
@@ -0,0 +1,6 @@
1
+ export * from './table';
2
+ export * from './table-context';
3
+ export * from './use-table-persistence';
4
+ export * from './table-columns-menu/table-columns-menu';
5
+ export * from './table-header-button/table-header-button';
6
+ export * from './table-toolbar/table-toolbar';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),x=require("../../../buttons/button/button.cjs.js"),m=require("../../../form/checkbox/checkbox.cjs.js"),j=require("../../../overlays/dropdown/dropdown.cjs.js"),q=require("../../../overlays/dropdown/dropdown-content/dropdown-content.cjs.js"),T=require("../../../overlays/dropdown/dropdown-item/dropdown-item.cjs.js"),f=require("../../../overlays/dropdown/dropdown-trigger/dropdown-trigger.cjs.js"),w=require("../table-context.cjs.js"),L=require("../../../../providers/label-provider/use-labels.cjs.js"),r=({triggerLabel:i,className:l})=>{const{table:d,id:c}=w.useTableContext(),{getLabel:a}=L.useLabels(),u=i??a("table.columns"),o=d.getAllLeafColumns().filter(e=>e.getCanHide()),b=o.filter(e=>e.getIsVisible()).length,g=e=>{const n=e.columnDef.header;return typeof n=="string"?n:e.id};return t.jsxs(j.Dropdown,{placement:"bottom-end",children:[t.jsx(f.DropdownTrigger,{children:t.jsx(x.Button,{type:"button",visualType:"neutral",iconLeft:"tune",className:l,children:u})}),t.jsx(q.DropdownContent,{children:o.map(e=>{const n=e.getIsVisible(),h=n&&b===1,s=`${c}-columns-menu-${e.id}`,p=g(e);return t.jsx(T.DropdownItem,{asChild:!0,closeOnSelect:!1,children:t.jsx("div",{onClick:C=>C.stopPropagation(),children:t.jsx(m.Checkbox,{id:s,name:s,label:p,value:e.id,checked:n,disabled:h,onChange:()=>e.toggleVisibility()})})},e.id)})})]})};r.displayName="Table.ColumnsMenu";exports.TableColumnsMenu=r;
@@ -0,0 +1,15 @@
1
+ export interface TableColumnsMenuProps {
2
+ /**
3
+ * Trigger label. Falls back to the localised `table.columns` label from
4
+ * `LabelProvider` when not provided.
5
+ */
6
+ triggerLabel?: React.ReactNode;
7
+ /**
8
+ * Additional class name on the dropdown trigger button.
9
+ */
10
+ className?: string;
11
+ }
12
+ export declare const TableColumnsMenu: {
13
+ ({ triggerLabel, className }: TableColumnsMenuProps): import("react/jsx-runtime").JSX.Element;
14
+ displayName: string;
15
+ };
@@ -0,0 +1,37 @@
1
+ import { jsxs as h, jsx as t } from "react/jsx-runtime";
2
+ import { Button as g } from "../../../buttons/button/button.es.js";
3
+ import { Checkbox as C } from "../../../form/checkbox/checkbox.es.js";
4
+ import { Dropdown as L } from "../../../overlays/dropdown/dropdown.es.js";
5
+ import { DropdownContent as v } from "../../../overlays/dropdown/dropdown-content/dropdown-content.es.js";
6
+ import { DropdownItem as x } from "../../../overlays/dropdown/dropdown-item/dropdown-item.es.js";
7
+ import { DropdownTrigger as T } from "../../../overlays/dropdown/dropdown-trigger/dropdown-trigger.es.js";
8
+ import { useTableContext as y } from "../table-context.es.js";
9
+ import { useLabels as D } from "../../../../providers/label-provider/use-labels.es.js";
10
+ const V = ({ triggerLabel: n, className: s }) => {
11
+ const { table: l, id: a } = y(), { getLabel: d } = D(), m = n ?? d("table.columns"), i = l.getAllLeafColumns().filter((e) => e.getCanHide()), c = i.filter((e) => e.getIsVisible()).length, b = (e) => {
12
+ const o = e.columnDef.header;
13
+ return typeof o == "string" ? o : e.id;
14
+ };
15
+ return /* @__PURE__ */ h(L, { placement: "bottom-end", children: [
16
+ /* @__PURE__ */ t(T, { children: /* @__PURE__ */ t(g, { type: "button", visualType: "neutral", iconLeft: "tune", className: s, children: m }) }),
17
+ /* @__PURE__ */ t(v, { children: i.map((e) => {
18
+ const o = e.getIsVisible(), p = o && c === 1, r = `${a}-columns-menu-${e.id}`, u = b(e);
19
+ return /* @__PURE__ */ t(x, { asChild: !0, closeOnSelect: !1, children: /* @__PURE__ */ t("div", { onClick: (f) => f.stopPropagation(), children: /* @__PURE__ */ t(
20
+ C,
21
+ {
22
+ id: r,
23
+ name: r,
24
+ label: u,
25
+ value: e.id,
26
+ checked: o,
27
+ disabled: p,
28
+ onChange: () => e.toggleVisibility()
29
+ }
30
+ ) }) }, e.id);
31
+ }) })
32
+ ] });
33
+ };
34
+ V.displayName = "Table.ColumnsMenu";
35
+ export {
36
+ V as TableColumnsMenu
37
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),n=t.createContext(null);function o(){const e=t.useContext(n);if(!e)throw new Error("TableContext missing — wrap the component in <Table>.");return e}exports.TableContext=n;exports.useTableContext=o;
@@ -0,0 +1,3 @@
1
+ import { TableContextValue } from './table';
2
+ export declare const TableContext: import('react').Context<TableContextValue<unknown> | null>;
3
+ export declare function useTableContext<TData = unknown>(): TableContextValue<TData>;
@@ -0,0 +1,11 @@
1
+ import { createContext as e, useContext as n } from "react";
2
+ const o = e(null);
3
+ function x() {
4
+ const t = n(o);
5
+ if (!t) throw new Error("TableContext missing — wrap the component in <Table>.");
6
+ return t;
7
+ }
8
+ export {
9
+ o as TableContext,
10
+ x as useTableContext
11
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),m=require("../../../../../../external/classnames/index.cjs.js"),q=require("react"),h=require("../../../base/icon/icon.cjs.js"),a=require("./table-header-button.module.scss.cjs.js"),e=q.forwardRef(({icon:o,filled:r=!1,selected:u=!1,disabled:n,onClick:l,className:d,iconSize:s=18,type:i="button",children:c,...b},f)=>t.jsxs("button",{...b,ref:f,type:i,disabled:n,onClick:l,className:m.default(a.default["tedi-table-header-button"],{[a.default["tedi-table-header-button--selected"]]:u},d),children:[c,t.jsx(h.Icon,{name:o,filled:r,color:"inherit",size:s})]}));e.displayName="TableHeaderButton";exports.TableHeaderButton=e;exports.default=e;
@@ -0,0 +1,51 @@
1
+ import { default as React } from 'react';
2
+ import { IconSize } from '../../../base/icon/icon';
3
+ interface TableHeaderButtonBaseProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'aria-label'> {
4
+ /**
5
+ * Material icon name rendered inside the button (e.g. `unfold_more`,
6
+ * `arrow_downward`, `filter_alt`).
7
+ */
8
+ icon: string;
9
+ /**
10
+ * Render the icon's "filled" variant. Pair with `selected` for a fully
11
+ * activated look (e.g. an applied filter).
12
+ * @default false
13
+ */
14
+ filled?: boolean;
15
+ /**
16
+ * When `true`, the icon paints in the brand colour to indicate an active
17
+ * sort or filter at rest. Hover / focus / active states are still applied
18
+ * on top.
19
+ * @default false
20
+ */
21
+ selected?: boolean;
22
+ /** Size of the icon, in pixels. @default 18 */
23
+ iconSize?: IconSize;
24
+ }
25
+ /**
26
+ * Accessibility-driven discriminated union enforcing WCAG SC 4.1.2 at compile
27
+ * time:
28
+ * - **Labelled** — `children` provide visible text (e.g. a sortable column
29
+ * header), which is the accessible name, so `aria-label` is optional.
30
+ * - **Icon-only** — no `children` (e.g. a filter trigger), so the button has
31
+ * nothing to announce; `aria-label` is required.
32
+ */
33
+ type TableHeaderButtonLabelProps = {
34
+ /**
35
+ * Label rendered before the icon — the whole "text + icon" area becomes
36
+ * one clickable button (matching the Angular implementation).
37
+ */
38
+ children: React.ReactNode;
39
+ /** Optional accessible name; the visible `children` already provide one. */
40
+ 'aria-label'?: string;
41
+ } | {
42
+ children?: undefined;
43
+ /**
44
+ * Required accessible name — icon-only buttons have no visible text for
45
+ * screen readers to announce.
46
+ */
47
+ 'aria-label': string;
48
+ };
49
+ export type TableHeaderButtonProps = TableHeaderButtonBaseProps & TableHeaderButtonLabelProps;
50
+ export declare const TableHeaderButton: React.ForwardRefExoticComponent<TableHeaderButtonProps & React.RefAttributes<HTMLButtonElement>>;
51
+ export default TableHeaderButton;
@@ -0,0 +1,42 @@
1
+ import { jsxs as b, jsx as c } from "react/jsx-runtime";
2
+ import p from "../../../../../../external/classnames/index.es.js";
3
+ import { forwardRef as u } from "react";
4
+ import { Icon as h } from "../../../base/icon/icon.es.js";
5
+ import e from "./table-header-button.module.scss.es.js";
6
+ const x = u(
7
+ ({
8
+ icon: t,
9
+ filled: o = !1,
10
+ selected: a = !1,
11
+ disabled: r,
12
+ onClick: s,
13
+ className: l,
14
+ iconSize: m = 18,
15
+ type: i = "button",
16
+ children: d,
17
+ ...n
18
+ }, f) => /* @__PURE__ */ b(
19
+ "button",
20
+ {
21
+ ...n,
22
+ ref: f,
23
+ type: i,
24
+ disabled: r,
25
+ onClick: s,
26
+ className: p(
27
+ e["tedi-table-header-button"],
28
+ { [e["tedi-table-header-button--selected"]]: a },
29
+ l
30
+ ),
31
+ children: [
32
+ d,
33
+ /* @__PURE__ */ c(h, { name: t, filled: o, color: "inherit", size: m })
34
+ ]
35
+ }
36
+ )
37
+ );
38
+ x.displayName = "TableHeaderButton";
39
+ export {
40
+ x as TableHeaderButton,
41
+ x as default
42
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-table-header-button":"tedi-table-header-button-b43c480a","tedi-table-header-button--selected":"tedi-table-header-button--selected-f428ec59"};exports.default=e;
@@ -0,0 +1,7 @@
1
+ const e = {
2
+ "tedi-table-header-button": "tedi-table-header-button-b43c480a",
3
+ "tedi-table-header-button--selected": "tedi-table-header-button--selected-f428ec59"
4
+ };
5
+ export {
6
+ e as default
7
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),o=require("../../../../../../external/classnames/index.cjs.js"),r=require("../table.module.scss.cjs.js"),e=({children:l,className:a})=>t.jsx("div",{className:o.default(r.default["tedi-table__toolbar"],a),children:l});e.displayName="Table.Toolbar";exports.TableToolbar=e;exports.default=e;
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ export interface TableToolbarProps {
3
+ /**
4
+ * Toolbar contents — typically Table sub-components like
5
+ * `<Table.ColumnsMenu />`, but any node is allowed.
6
+ */
7
+ children?: React.ReactNode;
8
+ /**
9
+ * Additional class name on the toolbar wrapper.
10
+ */
11
+ className?: string;
12
+ }
13
+ /**
14
+ * Optional slot rendered above the `<table>`. Hosts controls like
15
+ * `<Table.ColumnsMenu />`. Nothing clever — it just provides consistent spacing.
16
+ */
17
+ export declare const TableToolbar: {
18
+ ({ children, className }: TableToolbarProps): import("react/jsx-runtime").JSX.Element;
19
+ displayName: string;
20
+ };
21
+ export default TableToolbar;
@@ -0,0 +1,9 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import s from "../../../../../../external/classnames/index.es.js";
3
+ import e from "../table.module.scss.es.js";
4
+ const r = ({ children: a, className: o }) => /* @__PURE__ */ l("div", { className: s(e["tedi-table__toolbar"], o), children: a });
5
+ r.displayName = "Table.Toolbar";
6
+ export {
7
+ r as TableToolbar,
8
+ r as default
9
+ };