@tedi-design-system/react 17.0.0-rc.7 → 17.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/react",
3
- "version": "17.0.0-rc.7",
3
+ "version": "17.0.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react/jsx-runtime"),n=require("../../../../../external/classnames/index.cjs.js"),o=require("react"),m=require("../button/button.cjs.js"),e=require("./button-group.module.scss.cjs.js"),g=s=>{const{children:l,className:d,type:p="primary",onSelectionChange:u,stretch:b=!1,ariaLabel:c,size:r="default"}=s;return f.jsx("div",{className:n.default(e.default["tedi-button-group"],e.default[`tedi-button-group--${p}`],{[e.default["tedi-button-group--stretch"]]:b},d),role:"group","aria-label":c,children:o.Children.map(l,t=>o.isValidElement(t)&&t.type===m.Button?o.cloneElement(t,{className:n.default(e.default["tedi-button-group__item"],{[e.default["tedi-button-group__item--active"]]:t.props.isActive,[e.default["tedi-button-group__item--disabled"]]:t.props.disabled,[e.default[`tedi-button-group__item--size-${r}`]]:r}),size:r,onClick:()=>{var i,a;t.props.disabled||((a=(i=t.props).onClick)==null||a.call(i),u==null||u(t.props.id))}}):null)})};exports.ButtonGroup=g;
1
+ "use strict";Object.defineProperty(exports,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"),j=require("../button/button.cjs.js"),r=require("./button-group.module.scss.cjs.js"),B=require("../../../providers/label-provider/use-labels.cjs.js"),L=require("../../../helpers/hooks/use-breakpoint.cjs.js"),l=require("../../overlays/dropdown/dropdown.cjs.js"),C=x=>{const{getLabel:b}=B.useLabels(),{children:k,className:w,type:c="primary",onSelectionChange:i,stretch:q=!1,ariaLabel:I,size:f="default",enableMobileDropdown:v=!1,mobileBreakpoint:N="md",dropdownLabel:y=b("sidenav.submenu"),dropdownLabelMode:R="static"}=x,A=L.default(),D=L.isBreakpointBelow(A,N),m=_.Children.toArray(k).filter(e=>_.isValidElement(e)&&e.type===j.Button),t=m.find(e=>e.props.isActive),M=R==="static"?y:(t==null?void 0:t.props.children)??y,d=t==null?void 0:t.props.iconLeft,a=t==null?void 0:t.props.icon;return D&&v?o.jsxs(l.Dropdown,{width:"trigger",children:[o.jsx(l.Dropdown.Trigger,{children:o.jsxs(j.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:[d?o.jsx(n.Icon,{name:typeof d=="string"?d:d.name,color:"inherit"}):a?o.jsx(n.Icon,{name:typeof a=="string"?a:a.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:s=>{var p,h;e.props.disabled||(s.type==="click"&&((h=(p=e.props).onClick)==null||h.call(p,s)),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.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"]]:q},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,onClick:u=>{var s,p;(p=(s=e.props).onClick)==null||p.call(s,u),e.props.id&&(i==null||i(e.props.id))}}))})};exports.ButtonGroup=C;
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ import { Breakpoint } from '../../../helpers';
2
3
  export type ButtonGroupProps = {
3
4
  /**
4
5
  * The child components to render inside the ButtonGroup.
@@ -35,6 +36,22 @@ export type ButtonGroupProps = {
35
36
  * Size of the buttons in ButtonGroup
36
37
  */
37
38
  size?: 'default' | 'small';
39
+ /**
40
+ * Whether the button group should collapse into a dropdown on mobile
41
+ * @default false
42
+ */
43
+ enableMobileDropdown?: boolean;
44
+ /**
45
+ * Breakpoint at which to switch to dropdown
46
+ * @default 'md'
47
+ */
48
+ mobileBreakpoint?: Breakpoint;
49
+ /**
50
+ * Label to display on the dropdown trigger button when the button group collapses on mobile.
51
+ * If not provided, the label provider value for `sidenav.submenu` will be used as fallback.
52
+ */
53
+ dropdownLabel?: string;
54
+ dropdownLabelMode?: 'active' | 'static';
38
55
  };
39
56
  export declare const ButtonGroup: (props: ButtonGroupProps) => JSX.Element;
40
57
  export default ButtonGroup;
@@ -1,46 +1,109 @@
1
- import { jsx as b } from "react/jsx-runtime";
2
- import s from "../../../../../external/classnames/index.es.js";
3
- import { Children as f, isValidElement as _, cloneElement as c } from "react";
4
- import { Button as g } from "../button/button.es.js";
5
- import e from "./button-group.module.scss.es.js";
6
- const z = (u) => {
7
- const {
8
- children: a,
9
- className: m,
10
- type: n = "primary",
11
- onSelectionChange: r,
12
- stretch: l = !1,
13
- ariaLabel: d,
14
- size: o = "default"
15
- } = u;
16
- return /* @__PURE__ */ b(
1
+ import { jsxs as g, jsx as i } from "react/jsx-runtime";
2
+ import _ from "../../../../../external/classnames/index.es.js";
3
+ import { Children as x, isValidElement as z, cloneElement as D } from "react";
4
+ import { Icon as a } from "../../base/icon/icon.es.js";
5
+ import { Button as w } from "../button/button.es.js";
6
+ import r from "./button-group.module.scss.es.js";
7
+ import { useLabels as E } from "../../../providers/label-provider/use-labels.es.js";
8
+ import T, { isBreakpointBelow as V } from "../../../helpers/hooks/use-breakpoint.es.js";
9
+ import { Dropdown as c } from "../../overlays/dropdown/dropdown.es.js";
10
+ const P = (k) => {
11
+ const { getLabel: N } = E(), {
12
+ children: b,
13
+ className: h,
14
+ type: d = "primary",
15
+ onSelectionChange: p,
16
+ stretch: v = !1,
17
+ ariaLabel: A,
18
+ size: u = "default",
19
+ enableMobileDropdown: I = !1,
20
+ mobileBreakpoint: R = "md",
21
+ dropdownLabel: y = N("sidenav.submenu"),
22
+ dropdownLabelMode: C = "static"
23
+ } = k, M = T(), $ = V(M, R), f = x.toArray(b).filter(
24
+ (o) => z(o) && o.type === w
25
+ ), e = f.find((o) => o.props.isActive), j = C === "static" ? y : (e == null ? void 0 : e.props.children) ?? y, n = e == null ? void 0 : e.props.iconLeft, l = e == null ? void 0 : e.props.icon;
26
+ return $ && I ? /* @__PURE__ */ g(c, { width: "trigger", children: [
27
+ /* @__PURE__ */ i(c.Trigger, { children: /* @__PURE__ */ g(
28
+ w,
29
+ {
30
+ visualType: d,
31
+ className: _(
32
+ r["tedi-button-group__dropdown-trigger"],
33
+ r[`tedi-button-group__dropdown-trigger--${d}`],
34
+ h
35
+ ),
36
+ noStyle: !0,
37
+ fullWidth: !0,
38
+ children: [
39
+ n ? /* @__PURE__ */ i(a, { name: typeof n == "string" ? n : n.name, color: "inherit" }) : l ? /* @__PURE__ */ i(a, { name: typeof l == "string" ? l : l.name, color: "inherit" }) : /* @__PURE__ */ i(a, { name: "menu", color: "inherit" }),
40
+ j
41
+ ]
42
+ }
43
+ ) }),
44
+ /* @__PURE__ */ i(c.Content, { children: f.map((o, m) => /* @__PURE__ */ g(
45
+ c.Item,
46
+ {
47
+ index: m,
48
+ active: o == null ? void 0 : o.props.isActive,
49
+ disabled: o == null ? void 0 : o.props.disabled,
50
+ onClick: (s) => {
51
+ var t, L;
52
+ o.props.disabled || (s.type === "click" && ((L = (t = o.props).onClick) == null || L.call(t, s)), o.props.id && (p == null || p(o.props.id)));
53
+ },
54
+ className: r["tedi-button-group__dropdown-item"],
55
+ children: [
56
+ o.props.iconLeft && /* @__PURE__ */ i(
57
+ a,
58
+ {
59
+ name: typeof o.props.iconLeft == "string" ? o.props.iconLeft : o.props.iconLeft.name,
60
+ color: "inherit"
61
+ }
62
+ ),
63
+ o.props.children,
64
+ o.props.iconRight && /* @__PURE__ */ i(
65
+ a,
66
+ {
67
+ name: typeof o.props.iconRight == "string" ? o.props.iconRight : o.props.iconRight.name,
68
+ color: "inherit"
69
+ }
70
+ )
71
+ ]
72
+ },
73
+ o.props.id || m
74
+ )) })
75
+ ] }) : /* @__PURE__ */ i(
17
76
  "div",
18
77
  {
19
- className: s(
20
- e["tedi-button-group"],
21
- e[`tedi-button-group--${n}`],
22
- {
23
- [e["tedi-button-group--stretch"]]: l
24
- },
25
- m
78
+ className: _(
79
+ r["tedi-button-group"],
80
+ r[`tedi-button-group--${d}`],
81
+ { [r["tedi-button-group--stretch"]]: v },
82
+ h
26
83
  ),
27
84
  role: "group",
28
- "aria-label": d,
29
- children: f.map(a, (t) => _(t) && t.type === g ? c(t, {
30
- className: s(e["tedi-button-group__item"], {
31
- [e["tedi-button-group__item--active"]]: t.props.isActive,
32
- [e["tedi-button-group__item--disabled"]]: t.props.disabled,
33
- [e[`tedi-button-group__item--size-${o}`]]: o
34
- }),
35
- size: o,
36
- onClick: () => {
37
- var i, p;
38
- t.props.disabled || ((p = (i = t.props).onClick) == null || p.call(i), r == null || r(t.props.id));
39
- }
40
- }) : null)
85
+ "aria-label": A,
86
+ children: f.map(
87
+ (o) => D(o, {
88
+ className: _(
89
+ r["tedi-button-group__item"],
90
+ {
91
+ [r["tedi-button-group__item--active"]]: o.props.isActive,
92
+ [r["tedi-button-group__item--disabled"]]: o.props.disabled,
93
+ [r[`tedi-button-group__item--size-${u}`]]: u
94
+ },
95
+ o.props.className
96
+ ),
97
+ size: u,
98
+ onClick: (m) => {
99
+ var s, t;
100
+ (t = (s = o.props).onClick) == null || t.call(s, m), o.props.id && (p == null || p(o.props.id));
101
+ }
102
+ })
103
+ )
41
104
  }
42
105
  );
43
106
  };
44
107
  export {
45
- z as ButtonGroup
108
+ P as ButtonGroup
46
109
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t={"tedi-button-group":"tedi-button-group-a1579a0b","tedi-button-group--primary":"tedi-button-group--primary-c12d7511","tedi-button-group__item":"tedi-button-group__item-8dedbcd6","tedi-button-group--secondary":"tedi-button-group--secondary-812a4d06","tedi-button-group__item--size-default":"tedi-button-group__item--size-default-5ee2d72b","tedi-button-group__item--size-small":"tedi-button-group__item--size-small-ad13cc00","tedi-button-group__item--disabled":"tedi-button-group__item--disabled-0027448e","tedi-button-group__item--active":"tedi-button-group__item--active-d4dfddb6","tedi-button-group--stretch":"tedi-button-group--stretch-d703f880"};exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t={"tedi-button-group":"tedi-button-group-a1579a0b","tedi-button-group--primary":"tedi-button-group--primary-c12d7511","tedi-button-group__item":"tedi-button-group__item-8dedbcd6","tedi-button-group--secondary":"tedi-button-group--secondary-812a4d06","tedi-button-group__item--size-default":"tedi-button-group__item--size-default-5ee2d72b","tedi-button-group__item--size-small":"tedi-button-group__item--size-small-ad13cc00","tedi-button-group__item--disabled":"tedi-button-group__item--disabled-0027448e","tedi-button-group__item--active":"tedi-button-group__item--active-d4dfddb6","tedi-button-group--stretch":"tedi-button-group--stretch-d703f880","tedi-button-group__dropdown-trigger":"tedi-button-group__dropdown-trigger-d9a66a44","tedi-button-group__dropdown-trigger--secondary":"tedi-button-group__dropdown-trigger--secondary-f27a5e3a","tedi-button-group__dropdown-item":"tedi-button-group__dropdown-item-e3e89bd0"};exports.default=t;
@@ -7,7 +7,10 @@ const t = {
7
7
  "tedi-button-group__item--size-small": "tedi-button-group__item--size-small-ad13cc00",
8
8
  "tedi-button-group__item--disabled": "tedi-button-group__item--disabled-0027448e",
9
9
  "tedi-button-group__item--active": "tedi-button-group__item--active-d4dfddb6",
10
- "tedi-button-group--stretch": "tedi-button-group--stretch-d703f880"
10
+ "tedi-button-group--stretch": "tedi-button-group--stretch-d703f880",
11
+ "tedi-button-group__dropdown-trigger": "tedi-button-group__dropdown-trigger-d9a66a44",
12
+ "tedi-button-group__dropdown-trigger--secondary": "tedi-button-group__dropdown-trigger--secondary-f27a5e3a",
13
+ "tedi-button-group__dropdown-item": "tedi-button-group__dropdown-item-e3e89bd0"
11
14
  };
12
15
  export {
13
16
  t as default
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("react/jsx-runtime"),j=require("../../../../../../external/classnames/index.cjs.js"),T=require("../dropdown-context.cjs.js"),r=require("./dropdown-item.module.scss.cjs.js"),K=({children:m,onClick:t,disabled:n,active:c,index:u,indent:i,asChild:o=!1,closeOnSelect:p=!0,isParent:w=!1,className:y})=>{const{getItemProps:_,listItemsRef:l,setOpen:s,activeIndex:v,divided:b,variant:f}=T.useDropdownContext(),x=o?"div":"button",I=e=>typeof e!="number"?{}:{"--dropdown-indent-level":e,"--dropdown-indent":`${e}rem`},g=e=>{if(n)return;const d=e.currentTarget.querySelector('input[type="checkbox"], input[type="radio"]');if(d){d.click();return}o?t==null||t(e):(t==null||t(e),p&&s(!1))},q=e=>{if(!n&&(e.key==="Enter"||e.key===" ")){e.preventDefault();const d=e.currentTarget.querySelector('input[type="checkbox"], input[type="radio"]');d?d.click():t==null||t(e),!o&&p&&s(!1)}},a={ref(e){typeof u=="number"&&(l.current[u]=e)},tabIndex:v===u?0:-1,className:j.default(r.default["tedi-dropdown__item"],{[r.default["tedi-dropdown__item--active"]]:c,[r.default["tedi-dropdown__item--disabled"]]:n,[r.default["tedi-dropdown__item--divided"]]:b,[r.default["tedi-dropdown__item--indent"]]:i,[r.default["tedi-dropdown__item--tree-item"]]:f==="tree"&&i,[r.default["tedi-dropdown__item--tree-parent"]]:f==="tree"&&w,className:y}),style:I(i),onClick:g,onKeyDown:q},D=o&&p===!1?a:_({role:"menuitem",disabled:o?void 0:n,...a});return P.jsx(x,{...D,children:m})};exports.DropdownItem=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("react/jsx-runtime"),j=require("../../../../../../external/classnames/index.cjs.js"),T=require("../dropdown-context.cjs.js"),r=require("./dropdown-item.module.scss.cjs.js"),K=({children:m,onClick:t,disabled:n,active:c,index:u,indent:i,asChild:o=!1,closeOnSelect:p=!0,isParent:w=!1,className:y})=>{const{getItemProps:_,listItemsRef:l,setOpen:s,activeIndex:v,divided:b,variant:f}=T.useDropdownContext(),x=o?"div":"button",I=e=>typeof e!="number"?{}:{"--dropdown-indent-level":e,"--dropdown-indent":`${e}rem`},g=e=>{if(n)return;const d=e.currentTarget.querySelector('input[type="checkbox"], input[type="radio"]');if(d){d.click();return}o?t==null||t(e):(t==null||t(e),p&&s(!1))},q=e=>{if(!n&&(e.key==="Enter"||e.key===" ")){e.preventDefault();const d=e.currentTarget.querySelector('input[type="checkbox"], input[type="radio"]');d?d.click():t==null||t(e),!o&&p&&s(!1)}},a={ref(e){typeof u=="number"&&(l.current[u]=e)},tabIndex:v===u?0:-1,className:j.default(r.default["tedi-dropdown__item"],{[r.default["tedi-dropdown__item--active"]]:c,[r.default["tedi-dropdown__item--disabled"]]:n,[r.default["tedi-dropdown__item--divided"]]:b,[r.default["tedi-dropdown__item--indent"]]:i,[r.default["tedi-dropdown__item--tree-item"]]:f==="tree"&&i,[r.default["tedi-dropdown__item--tree-parent"]]:f==="tree"&&w},y),style:I(i),onClick:g,onKeyDown:q},D=o&&p===!1?a:_({role:"menuitem",disabled:o?void 0:n,...a});return P.jsx(x,{...D,children:m})};exports.DropdownItem=K;
@@ -40,15 +40,18 @@ const V = ({
40
40
  typeof d == "number" && (v.current[d] = e);
41
41
  },
42
42
  tabIndex: b === d ? 0 : -1,
43
- className: N(r["tedi-dropdown__item"], {
44
- [r["tedi-dropdown__item--active"]]: y,
45
- [r["tedi-dropdown__item--disabled"]]: p,
46
- [r["tedi-dropdown__item--divided"]]: x,
47
- [r["tedi-dropdown__item--indent"]]: i,
48
- [r["tedi-dropdown__item--tree-item"]]: f === "tree" && i,
49
- [r["tedi-dropdown__item--tree-parent"]]: f === "tree" && _,
50
- className: w
51
- }),
43
+ className: N(
44
+ r["tedi-dropdown__item"],
45
+ {
46
+ [r["tedi-dropdown__item--active"]]: y,
47
+ [r["tedi-dropdown__item--disabled"]]: p,
48
+ [r["tedi-dropdown__item--divided"]]: x,
49
+ [r["tedi-dropdown__item--indent"]]: i,
50
+ [r["tedi-dropdown__item--tree-item"]]: f === "tree" && i,
51
+ [r["tedi-dropdown__item--tree-parent"]]: f === "tree" && _
52
+ },
53
+ w
54
+ ),
52
55
  style: I(i),
53
56
  onClick: g,
54
57
  onKeyDown: P