@tedi-design-system/react 17.0.0-rc.4 → 17.0.0-rc.6
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/_virtual/index.es13.js +2 -2
- package/_virtual/index.es14.js +2 -2
- package/bundle-stats.html +1 -1
- package/external/react-is/index.cjs.js +1 -1
- package/external/react-is/index.es.js +1 -1
- package/external/toposort/index.cjs.js +1 -1
- package/external/toposort/index.es.js +1 -1
- package/index.css +1 -1
- package/package.json +1 -1
- package/src/community/components/tabs/tabs/tabs.d.ts +6 -0
- package/src/community/components/tabs/tabs-item/tabs-item.d.ts +6 -0
- package/src/community/components/tabs/tabs-nav/tabs-nav-item.d.ts +6 -0
- package/src/community/components/tabs/tabs-nav/tabs-nav.d.ts +6 -0
- package/src/tedi/components/form/textarea/textarea.cjs.js +1 -1
- package/src/tedi/components/form/textarea/textarea.d.ts +29 -0
- package/src/tedi/components/form/textarea/textarea.es.js +82 -36
- package/src/tedi/components/form/textarea/textarea.module.scss.cjs.js +1 -1
- package/src/tedi/components/form/textarea/textarea.module.scss.es.js +1 -0
- package/src/tedi/components/misc/scroll-fade/scroll-fade.cjs.js +1 -1
- package/src/tedi/components/misc/scroll-fade/scroll-fade.es.js +32 -42
- package/src/tedi/components/navigation/tabs/index.d.ts +5 -0
- package/src/tedi/components/navigation/tabs/tabs-content/tabs-content.cjs.js +1 -0
- package/src/tedi/components/navigation/tabs/tabs-content/tabs-content.d.ts +22 -0
- package/src/tedi/components/navigation/tabs/tabs-content/tabs-content.es.js +22 -0
- package/src/tedi/components/navigation/tabs/tabs-context.cjs.js +1 -0
- package/src/tedi/components/navigation/tabs/tabs-context.d.ts +7 -0
- package/src/tedi/components/navigation/tabs/tabs-context.es.js +11 -0
- package/src/tedi/components/navigation/tabs/tabs-helpers.cjs.js +1 -0
- package/src/tedi/components/navigation/tabs/tabs-helpers.d.ts +5 -0
- package/src/tedi/components/navigation/tabs/tabs-helpers.es.js +29 -0
- package/src/tedi/components/navigation/tabs/tabs-list/tabs-list.cjs.js +1 -0
- package/src/tedi/components/navigation/tabs/tabs-list/tabs-list.d.ts +37 -0
- package/src/tedi/components/navigation/tabs/tabs-list/tabs-list.es.js +102 -0
- package/src/tedi/components/navigation/tabs/tabs-trigger/tabs-trigger.cjs.js +1 -0
- package/src/tedi/components/navigation/tabs/tabs-trigger/tabs-trigger.d.ts +31 -0
- package/src/tedi/components/navigation/tabs/tabs-trigger/tabs-trigger.es.js +43 -0
- package/src/tedi/components/navigation/tabs/tabs.cjs.js +1 -0
- package/src/tedi/components/navigation/tabs/tabs.d.ts +40 -0
- package/src/tedi/components/navigation/tabs/tabs.es.js +24 -0
- package/src/tedi/components/navigation/tabs/tabs.module.scss.cjs.js +1 -0
- package/src/tedi/components/navigation/tabs/tabs.module.scss.es.js +17 -0
- package/src/tedi/components/overlays/dropdown/dropdown-trigger/dropdown-trigger.cjs.js +1 -1
- package/src/tedi/components/overlays/dropdown/dropdown-trigger/dropdown-trigger.es.js +9 -7
- package/src/tedi/components/tags/status-badge/status-badge.cjs.js +1 -1
- package/src/tedi/components/tags/status-badge/status-badge.es.js +25 -25
- package/src/tedi/components/tags/status-badge/status-badge.module.scss.cjs.js +1 -1
- package/src/tedi/components/tags/status-badge/status-badge.module.scss.es.js +0 -6
- package/src/tedi/components/tags/status-indicator/index.d.ts +1 -0
- package/src/tedi/components/tags/status-indicator/status-indicator.cjs.js +1 -0
- package/src/tedi/components/tags/status-indicator/status-indicator.d.ts +36 -0
- package/src/tedi/components/tags/status-indicator/status-indicator.es.js +26 -0
- package/src/tedi/components/tags/status-indicator/status-indicator.module.scss.cjs.js +1 -0
- package/src/tedi/components/tags/status-indicator/status-indicator.module.scss.es.js +14 -0
- package/src/tedi/helpers/hooks/use-scroll-fade.cjs.js +1 -0
- package/src/tedi/helpers/hooks/use-scroll-fade.d.ts +35 -0
- package/src/tedi/helpers/hooks/use-scroll-fade.es.js +34 -0
- package/src/tedi/helpers/index.d.ts +1 -0
- package/src/tedi/index.d.ts +2 -0
- package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
- package/src/tedi/providers/label-provider/labels-map.d.ts +7 -0
- package/src/tedi/providers/label-provider/labels-map.es.js +8 -1
- package/tedi.cjs.js +1 -1
- package/tedi.es.js +186 -171
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),m=require("../../../../../../external/classnames/index.cjs.js"),x=require("../../../base/icon/icon.cjs.js"),r=require("../tabs.module.scss.cjs.js"),_=require("../tabs-context.cjs.js"),q=require("../tabs-helpers.cjs.js"),c=l=>{const{id:e,children:d,icon:a,disabled:t=!1,className:b}=l,{currentTab:u,setCurrentTab:i}=_.useTabsContext(),s=u===e,g=()=>{t||i(e)},T=f=>{const n=q.navigateTablist(f);n&&i(n.id)};return o.jsxs("button",{"data-name":"tabs-trigger",id:e,role:"tab",type:"button","aria-selected":s,"aria-controls":`${e}-panel`,tabIndex:s?0:-1,disabled:t,className:m.default(r.default["tedi-tabs__trigger"],{[r.default["tedi-tabs__trigger--selected"]]:s},{[r.default["tedi-tabs__trigger--disabled"]]:t},b),onClick:g,onKeyDown:T,children:[a&&o.jsx(x.Icon,{name:a,size:18,color:"inherit"}),d]})};c.displayName="TabsTrigger";exports.TabsTrigger=c;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { IconProps } from '../../../base/icon/icon';
|
|
3
|
+
export interface TabsTriggerProps {
|
|
4
|
+
/**
|
|
5
|
+
* Unique identifier for this tab. Used as the element id and to link to the
|
|
6
|
+
* corresponding TabsContent panel (aria-controls="{id}-panel").
|
|
7
|
+
*/
|
|
8
|
+
id: string;
|
|
9
|
+
/**
|
|
10
|
+
* Tab label text
|
|
11
|
+
*/
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
/**
|
|
14
|
+
* Icon displayed before the label
|
|
15
|
+
*/
|
|
16
|
+
icon?: IconProps['name'];
|
|
17
|
+
/**
|
|
18
|
+
* Whether the tab is disabled
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Additional class name(s)
|
|
24
|
+
*/
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const TabsTrigger: {
|
|
28
|
+
(props: TabsTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
displayName: string;
|
|
30
|
+
};
|
|
31
|
+
export default TabsTrigger;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsxs as p, jsx as f } from "react/jsx-runtime";
|
|
2
|
+
import T from "../../../../../../external/classnames/index.es.js";
|
|
3
|
+
import { Icon as u } from "../../../base/icon/icon.es.js";
|
|
4
|
+
import s from "../tabs.module.scss.es.js";
|
|
5
|
+
import { useTabsContext as _ } from "../tabs-context.es.js";
|
|
6
|
+
import { navigateTablist as h } from "../tabs-helpers.es.js";
|
|
7
|
+
const x = (n) => {
|
|
8
|
+
const { id: e, children: c, icon: a, disabled: t = !1, className: l } = n, { currentTab: d, setCurrentTab: i } = _(), r = d === e, m = () => {
|
|
9
|
+
t || i(e);
|
|
10
|
+
}, b = (g) => {
|
|
11
|
+
const o = h(g);
|
|
12
|
+
o && i(o.id);
|
|
13
|
+
};
|
|
14
|
+
return /* @__PURE__ */ p(
|
|
15
|
+
"button",
|
|
16
|
+
{
|
|
17
|
+
"data-name": "tabs-trigger",
|
|
18
|
+
id: e,
|
|
19
|
+
role: "tab",
|
|
20
|
+
type: "button",
|
|
21
|
+
"aria-selected": r,
|
|
22
|
+
"aria-controls": `${e}-panel`,
|
|
23
|
+
tabIndex: r ? 0 : -1,
|
|
24
|
+
disabled: t,
|
|
25
|
+
className: T(
|
|
26
|
+
s["tedi-tabs__trigger"],
|
|
27
|
+
{ [s["tedi-tabs__trigger--selected"]]: r },
|
|
28
|
+
{ [s["tedi-tabs__trigger--disabled"]]: t },
|
|
29
|
+
l
|
|
30
|
+
),
|
|
31
|
+
onClick: m,
|
|
32
|
+
onKeyDown: b,
|
|
33
|
+
children: [
|
|
34
|
+
a && /* @__PURE__ */ f(u, { name: a, size: 18, color: "inherit" }),
|
|
35
|
+
c
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
x.displayName = "TabsTrigger";
|
|
41
|
+
export {
|
|
42
|
+
x as TabsTrigger
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),q=require("../../../../../external/classnames/index.cjs.js"),o=require("react"),g=require("./tabs.module.scss.cjs.js"),m=require("./tabs-content/tabs-content.cjs.js"),f=require("./tabs-context.cjs.js"),v=require("./tabs-list/tabs-list.cjs.js"),x=require("./tabs-trigger/tabs-trigger.cjs.js"),e=i=>{const{children:u,value:s,defaultValue:c,onChange:t,className:l}=i,[b,d]=o.useState(c||""),r=s??b,T=o.useCallback(a=>{a!==r&&(s===void 0&&d(a),t==null||t(a))},[s,r,t]);return n.jsx(f.TabsContext.Provider,{value:{currentTab:r,setCurrentTab:T},children:n.jsx("div",{"data-name":"tabs",className:q.default(g.default["tedi-tabs"],l),children:u})})};e.displayName="Tabs";e.List=v.TabsList;e.Trigger=x.TabsTrigger;e.Content=m.TabsContent;exports.Tabs=e;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface TabsProps {
|
|
3
|
+
/**
|
|
4
|
+
* Tabs content — should include Tabs.List and Tabs.Content elements
|
|
5
|
+
*/
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Controlled active tab id. Use together with onChange.
|
|
9
|
+
*/
|
|
10
|
+
value?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Default active tab id for uncontrolled usage.
|
|
13
|
+
*/
|
|
14
|
+
defaultValue?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Callback fired when the active tab changes
|
|
17
|
+
*/
|
|
18
|
+
onChange?: (tabId: string) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Additional class name(s)
|
|
21
|
+
*/
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const Tabs: {
|
|
25
|
+
(props: TabsProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
List: {
|
|
28
|
+
(props: import('./tabs-list/tabs-list').TabsListProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
displayName: string;
|
|
30
|
+
};
|
|
31
|
+
Trigger: {
|
|
32
|
+
(props: import('./tabs-trigger/tabs-trigger').TabsTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
displayName: string;
|
|
34
|
+
};
|
|
35
|
+
Content: {
|
|
36
|
+
(props: import('./tabs-content/tabs-content').TabsContentProps): import("react/jsx-runtime").JSX.Element | null;
|
|
37
|
+
displayName: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export default Tabs;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import u from "../../../../../external/classnames/index.es.js";
|
|
3
|
+
import m from "react";
|
|
4
|
+
import d from "./tabs.module.scss.es.js";
|
|
5
|
+
import { TabsContent as p } from "./tabs-content/tabs-content.es.js";
|
|
6
|
+
import { TabsContext as v } from "./tabs-context.es.js";
|
|
7
|
+
import { TabsList as C } from "./tabs-list/tabs-list.es.js";
|
|
8
|
+
import { TabsTrigger as N } from "./tabs-trigger/tabs-trigger.es.js";
|
|
9
|
+
const r = (l) => {
|
|
10
|
+
const { children: n, value: e, defaultValue: i, onChange: t, className: c } = l, [b, T] = m.useState(i || ""), a = e ?? b, f = m.useCallback(
|
|
11
|
+
(o) => {
|
|
12
|
+
o !== a && (e === void 0 && T(o), t == null || t(o));
|
|
13
|
+
},
|
|
14
|
+
[e, a, t]
|
|
15
|
+
);
|
|
16
|
+
return /* @__PURE__ */ s(v.Provider, { value: { currentTab: a, setCurrentTab: f }, children: /* @__PURE__ */ s("div", { "data-name": "tabs", className: u(d["tedi-tabs"], c), children: n }) });
|
|
17
|
+
};
|
|
18
|
+
r.displayName = "Tabs";
|
|
19
|
+
r.List = C;
|
|
20
|
+
r.Trigger = N;
|
|
21
|
+
r.Content = p;
|
|
22
|
+
export {
|
|
23
|
+
r as Tabs
|
|
24
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t={"tedi-tabs__list-wrapper":"tedi-tabs__list-wrapper-836dbadb","tedi-tabs__list-wrapper--scroll-fade-left":"tedi-tabs__list-wrapper--scroll-fade-left-0e5e3c75","tedi-tabs__list-wrapper--scroll-fade-right":"tedi-tabs__list-wrapper--scroll-fade-right-c29132bd","tedi-tabs__list":"tedi-tabs__list-59580c81","tedi-tabs__list--overflow":"tedi-tabs__list--overflow-31407fe9","tedi-tabs__trigger":"tedi-tabs__trigger-6d66998e","tedi-tabs__trigger--selected":"tedi-tabs__trigger--selected-e4ee99cf","tedi-tabs__list--scroll":"tedi-tabs__list--scroll-04ebd4e1","tedi-tabs__trigger--disabled":"tedi-tabs__trigger--disabled-d33c941d","tedi-tabs__content":"tedi-tabs__content-55f3ce06","tedi-tabs__more-wrapper":"tedi-tabs__more-wrapper-c6ff4efd","tedi-tabs__more-btn":"tedi-tabs__more-btn-bfea5f30"};exports.default=t;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const t = {
|
|
2
|
+
"tedi-tabs__list-wrapper": "tedi-tabs__list-wrapper-836dbadb",
|
|
3
|
+
"tedi-tabs__list-wrapper--scroll-fade-left": "tedi-tabs__list-wrapper--scroll-fade-left-0e5e3c75",
|
|
4
|
+
"tedi-tabs__list-wrapper--scroll-fade-right": "tedi-tabs__list-wrapper--scroll-fade-right-c29132bd",
|
|
5
|
+
"tedi-tabs__list": "tedi-tabs__list-59580c81",
|
|
6
|
+
"tedi-tabs__list--overflow": "tedi-tabs__list--overflow-31407fe9",
|
|
7
|
+
"tedi-tabs__trigger": "tedi-tabs__trigger-6d66998e",
|
|
8
|
+
"tedi-tabs__trigger--selected": "tedi-tabs__trigger--selected-e4ee99cf",
|
|
9
|
+
"tedi-tabs__list--scroll": "tedi-tabs__list--scroll-04ebd4e1",
|
|
10
|
+
"tedi-tabs__trigger--disabled": "tedi-tabs__trigger--disabled-d33c941d",
|
|
11
|
+
"tedi-tabs__content": "tedi-tabs__content-55f3ce06",
|
|
12
|
+
"tedi-tabs__more-wrapper": "tedi-tabs__more-wrapper-c6ff4efd",
|
|
13
|
+
"tedi-tabs__more-btn": "tedi-tabs__more-btn-bfea5f30"
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
t as default
|
|
17
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),c=require("react"),f=require("../dropdown-context.cjs.js"),g=({children:e})=>{const{refs:r,getReferenceProps:o}=f.useDropdownContext(),t=e.ref??null,n=s.useMergeRefs([r.setReference,t]);return c.cloneElement(e,o({...e.props,ref:n}))};exports.DropdownTrigger=g;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { useMergeRefs as n } from "../../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
|
|
2
|
+
import { cloneElement as s } from "react";
|
|
3
|
+
import { useDropdownContext as p } from "../dropdown-context.es.js";
|
|
4
|
+
const R = ({ children: e }) => {
|
|
5
|
+
const { refs: r, getReferenceProps: o } = p(), t = e.ref ?? null, f = n([r.setReference, t]);
|
|
6
|
+
return s(
|
|
6
7
|
e,
|
|
7
8
|
o({
|
|
8
|
-
|
|
9
|
+
...e.props,
|
|
10
|
+
ref: f
|
|
9
11
|
})
|
|
10
12
|
);
|
|
11
13
|
};
|
|
12
14
|
export {
|
|
13
|
-
|
|
15
|
+
R as DropdownTrigger
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),x=require("../../../../../external/classnames/index.cjs.js"),S=require("react"),_=require("../../base/icon/icon.cjs.js"),j=require("../status-indicator/status-indicator.cjs.js"),e=require("./status-badge.module.scss.cjs.js"),h=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),l=S.forwardRef((i,c)=>{const{getCurrentBreakpointProps:g}=h.useBreakpointProps(i.defaultServerBreakpoint),{color:o="neutral",variant:f="filled",size:d="default",children:s,className:b,title:n,status:u,icon:r,id:p,role:t,...m}=g(i),v=n?"abbr":"div",B=x.default(e.default["tedi-status-badge"],e.default[`tedi-status-badge--variant-${f}`],e.default[`tedi-status-badge--color-${o}`],d==="large"&&e.default["tedi-status-badge--large"],r&&!s&&e.default["tedi-status-badge__icon-only"],b),q=t==="alert"?"assertive":t==="status"?"polite":void 0;return a.jsxs(v,{ref:c,className:B,id:p,title:n,role:t,"aria-live":t?q:void 0,...m,children:[u&&a.jsx(j.StatusIndicator,{type:u,size:d==="large"?"lg":"sm",hasBorder:!0,position:"top-right"}),r&&a.jsx(_.Icon,{name:r,color:"inherit",size:16,className:e.default[`tedi-status-badge__icon-${o}`]}),s&&a.jsx("span",{className:e.default["tedi-status-badge__inner-text"],children:s})]})});l.displayName="StatusBadge";exports.StatusBadge=l;
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { jsxs as B, jsx as
|
|
1
|
+
import { jsxs as B, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import N from "../../../../../external/classnames/index.es.js";
|
|
3
3
|
import { forwardRef as _ } from "react";
|
|
4
|
-
import { Icon as
|
|
4
|
+
import { Icon as h } from "../../base/icon/icon.es.js";
|
|
5
|
+
import { StatusIndicator as x } from "../status-indicator/status-indicator.es.js";
|
|
5
6
|
import t from "./status-badge.module.scss.es.js";
|
|
6
|
-
import { useBreakpointProps as
|
|
7
|
-
const
|
|
8
|
-
const { getCurrentBreakpointProps:
|
|
7
|
+
import { useBreakpointProps as y } from "../../../helpers/hooks/use-breakpoint-props.es.js";
|
|
8
|
+
const S = _((i, m) => {
|
|
9
|
+
const { getCurrentBreakpointProps: c } = y(i.defaultServerBreakpoint), {
|
|
9
10
|
color: o = "neutral",
|
|
10
|
-
variant:
|
|
11
|
-
size:
|
|
11
|
+
variant: u = "filled",
|
|
12
|
+
size: d = "default",
|
|
12
13
|
children: a,
|
|
13
14
|
className: g,
|
|
14
|
-
title:
|
|
15
|
-
status:
|
|
16
|
-
icon:
|
|
15
|
+
title: l,
|
|
16
|
+
status: n,
|
|
17
|
+
icon: s,
|
|
17
18
|
id: p,
|
|
18
19
|
role: e,
|
|
19
|
-
...
|
|
20
|
-
} =
|
|
20
|
+
...f
|
|
21
|
+
} = c(i), b = l ? "abbr" : "div", v = N(
|
|
21
22
|
t["tedi-status-badge"],
|
|
22
|
-
t[`tedi-status-badge--variant-${
|
|
23
|
+
t[`tedi-status-badge--variant-${u}`],
|
|
23
24
|
t[`tedi-status-badge--color-${o}`],
|
|
24
|
-
|
|
25
|
-
s && t[
|
|
26
|
-
m === "large" && t["tedi-status-badge--large"],
|
|
27
|
-
i && !a && t["tedi-status-badge__icon-only"],
|
|
25
|
+
d === "large" && t["tedi-status-badge--large"],
|
|
26
|
+
s && !a && t["tedi-status-badge__icon-only"],
|
|
28
27
|
g
|
|
29
28
|
);
|
|
30
29
|
return /* @__PURE__ */ B(
|
|
31
|
-
|
|
30
|
+
b,
|
|
32
31
|
{
|
|
33
|
-
ref:
|
|
32
|
+
ref: m,
|
|
34
33
|
className: v,
|
|
35
34
|
id: p,
|
|
36
|
-
title:
|
|
35
|
+
title: l,
|
|
37
36
|
role: e,
|
|
38
37
|
"aria-live": e ? e === "alert" ? "assertive" : e === "status" ? "polite" : void 0 : void 0,
|
|
39
|
-
...
|
|
38
|
+
...f,
|
|
40
39
|
children: [
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
n && /* @__PURE__ */ r(x, { type: n, size: d === "large" ? "lg" : "sm", hasBorder: !0, position: "top-right" }),
|
|
41
|
+
s && /* @__PURE__ */ r(h, { name: s, color: "inherit", size: 16, className: t[`tedi-status-badge__icon-${o}`] }),
|
|
42
|
+
a && /* @__PURE__ */ r("span", { className: t["tedi-status-badge__inner-text"], children: a })
|
|
43
43
|
]
|
|
44
44
|
}
|
|
45
45
|
);
|
|
46
46
|
});
|
|
47
|
-
|
|
47
|
+
S.displayName = "StatusBadge";
|
|
48
48
|
export {
|
|
49
|
-
|
|
49
|
+
S as StatusBadge
|
|
50
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t={"tedi-status-badge":"tedi-status-badge-4e27f642","tedi-status-badge__inner-text":"tedi-status-badge__inner-text-03b0bc82","tedi-status-badge--large":"tedi-status-badge--large-5f2dbfb5","tedi-status-badge--variant-filled":"tedi-status-badge--variant-filled-f4539af1","tedi-status-badge--color-neutral":"tedi-status-badge--color-neutral-d01344a8","tedi-status-badge--color-brand":"tedi-status-badge--color-brand-b771d71c","tedi-status-badge--color-accent":"tedi-status-badge--color-accent-c08bc9ef","tedi-status-badge--color-success":"tedi-status-badge--color-success-1fbe69c4","tedi-status-badge--color-danger":"tedi-status-badge--color-danger-5fce5f83","tedi-status-badge--color-warning":"tedi-status-badge--color-warning-fa9d7c9b","tedi-status-badge--color-transparent":"tedi-status-badge--color-transparent-e6953202","tedi-status-badge--variant-filled-bordered":"tedi-status-badge--variant-filled-bordered-2dd34026","tedi-status-badge--variant-bordered":"tedi-status-badge--variant-bordered-1a37eb74","tedi-status-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t={"tedi-status-badge":"tedi-status-badge-4e27f642","tedi-status-badge__inner-text":"tedi-status-badge__inner-text-03b0bc82","tedi-status-badge--large":"tedi-status-badge--large-5f2dbfb5","tedi-status-badge--variant-filled":"tedi-status-badge--variant-filled-f4539af1","tedi-status-badge--color-neutral":"tedi-status-badge--color-neutral-d01344a8","tedi-status-badge--color-brand":"tedi-status-badge--color-brand-b771d71c","tedi-status-badge--color-accent":"tedi-status-badge--color-accent-c08bc9ef","tedi-status-badge--color-success":"tedi-status-badge--color-success-1fbe69c4","tedi-status-badge--color-danger":"tedi-status-badge--color-danger-5fce5f83","tedi-status-badge--color-warning":"tedi-status-badge--color-warning-fa9d7c9b","tedi-status-badge--color-transparent":"tedi-status-badge--color-transparent-e6953202","tedi-status-badge--variant-filled-bordered":"tedi-status-badge--variant-filled-bordered-2dd34026","tedi-status-badge--variant-bordered":"tedi-status-badge--variant-bordered-1a37eb74","tedi-status-badge__icon-only":"tedi-status-badge__icon-only-40501cec"};exports.default=t;
|
|
@@ -12,12 +12,6 @@ const t = {
|
|
|
12
12
|
"tedi-status-badge--color-transparent": "tedi-status-badge--color-transparent-e6953202",
|
|
13
13
|
"tedi-status-badge--variant-filled-bordered": "tedi-status-badge--variant-filled-bordered-2dd34026",
|
|
14
14
|
"tedi-status-badge--variant-bordered": "tedi-status-badge--variant-bordered-1a37eb74",
|
|
15
|
-
"tedi-status-badge--status": "tedi-status-badge--status-fc03170a",
|
|
16
|
-
"tedi-badge--large": "tedi-badge--large-9671d5cc",
|
|
17
|
-
"tedi-status-badge--status-inactive": "tedi-status-badge--status-inactive-63b8ced2",
|
|
18
|
-
"tedi-status-badge--status-success": "tedi-status-badge--status-success-5c659818",
|
|
19
|
-
"tedi-status-badge--status-danger": "tedi-status-badge--status-danger-f02c312f",
|
|
20
|
-
"tedi-status-badge--status-warning": "tedi-status-badge--status-warning-28e8b925",
|
|
21
15
|
"tedi-status-badge__icon-only": "tedi-status-badge__icon-only-40501cec"
|
|
22
16
|
};
|
|
23
17
|
export {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './status-indicator';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),n=require("../../../../../external/classnames/index.cjs.js"),t=require("./status-indicator.module.scss.cjs.js"),a=e=>{const{type:s="success",size:i="sm",hasBorder:d=!1,position:r="default",className:u}=e;return o.jsx("span",{"data-name":"status-indicator",className:n.default(t.default["tedi-status-indicator"],t.default[`tedi-status-indicator--${s}`],t.default[`tedi-status-indicator--${i}`],{[t.default["tedi-status-indicator--bordered"]]:d},{[t.default["tedi-status-indicator--top-right"]]:r==="top-right"},u),role:"img","aria-hidden":"true"})};a.displayName="StatusIndicator";exports.StatusIndicator=a;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type StatusIndicatorType = 'success' | 'danger' | 'warning' | 'inactive';
|
|
2
|
+
export type StatusIndicatorSize = 'sm' | 'lg';
|
|
3
|
+
export type StatusIndicatorPosition = 'default' | 'top-right';
|
|
4
|
+
export interface StatusIndicatorProps {
|
|
5
|
+
/**
|
|
6
|
+
* The status type, which determines the indicator color.
|
|
7
|
+
* @default 'success'
|
|
8
|
+
*/
|
|
9
|
+
type?: StatusIndicatorType;
|
|
10
|
+
/**
|
|
11
|
+
* The size of the indicator.
|
|
12
|
+
* @default 'sm'
|
|
13
|
+
*/
|
|
14
|
+
size?: StatusIndicatorSize;
|
|
15
|
+
/**
|
|
16
|
+
* Whether the indicator has a white border ring.
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
hasBorder?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Controls positioning of the indicator.
|
|
22
|
+
* - `'default'` — inline, no absolute positioning
|
|
23
|
+
* - `'top-right'` — absolutely positioned at the top-right corner of the parent
|
|
24
|
+
* @default 'default'
|
|
25
|
+
*/
|
|
26
|
+
position?: StatusIndicatorPosition;
|
|
27
|
+
/**
|
|
28
|
+
* Additional class name(s)
|
|
29
|
+
*/
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const StatusIndicator: {
|
|
33
|
+
(props: StatusIndicatorProps): JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
36
|
+
export default StatusIndicator;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import c from "../../../../../external/classnames/index.es.js";
|
|
3
|
+
import t from "./status-indicator.module.scss.es.js";
|
|
4
|
+
const n = (s) => {
|
|
5
|
+
const { type: a = "success", size: i = "sm", hasBorder: r = !1, position: e = "default", className: o } = s;
|
|
6
|
+
return /* @__PURE__ */ d(
|
|
7
|
+
"span",
|
|
8
|
+
{
|
|
9
|
+
"data-name": "status-indicator",
|
|
10
|
+
className: c(
|
|
11
|
+
t["tedi-status-indicator"],
|
|
12
|
+
t[`tedi-status-indicator--${a}`],
|
|
13
|
+
t[`tedi-status-indicator--${i}`],
|
|
14
|
+
{ [t["tedi-status-indicator--bordered"]]: r },
|
|
15
|
+
{ [t["tedi-status-indicator--top-right"]]: e === "top-right" },
|
|
16
|
+
o
|
|
17
|
+
),
|
|
18
|
+
role: "img",
|
|
19
|
+
"aria-hidden": "true"
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
n.displayName = "StatusIndicator";
|
|
24
|
+
export {
|
|
25
|
+
n as StatusIndicator
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t={"tedi-status-indicator":"tedi-status-indicator-529cc6cb","tedi-status-indicator--top-right":"tedi-status-indicator--top-right-96ed4bd8","tedi-status-indicator--sm":"tedi-status-indicator--sm-d5cb39c6","tedi-status-indicator--lg":"tedi-status-indicator--lg-90afc96a","tedi-status-indicator--bordered":"tedi-status-indicator--bordered-31bab75a","tedi-status-indicator--success":"tedi-status-indicator--success-c27edb94","tedi-status-indicator--danger":"tedi-status-indicator--danger-d3709ad6","tedi-status-indicator--warning":"tedi-status-indicator--warning-fb364219","tedi-status-indicator--inactive":"tedi-status-indicator--inactive-258c6a4f"};exports.default=t;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const t = {
|
|
2
|
+
"tedi-status-indicator": "tedi-status-indicator-529cc6cb",
|
|
3
|
+
"tedi-status-indicator--top-right": "tedi-status-indicator--top-right-96ed4bd8",
|
|
4
|
+
"tedi-status-indicator--sm": "tedi-status-indicator--sm-d5cb39c6",
|
|
5
|
+
"tedi-status-indicator--lg": "tedi-status-indicator--lg-90afc96a",
|
|
6
|
+
"tedi-status-indicator--bordered": "tedi-status-indicator--bordered-31bab75a",
|
|
7
|
+
"tedi-status-indicator--success": "tedi-status-indicator--success-c27edb94",
|
|
8
|
+
"tedi-status-indicator--danger": "tedi-status-indicator--danger-d3709ad6",
|
|
9
|
+
"tedi-status-indicator--warning": "tedi-status-indicator--warning-fb364219",
|
|
10
|
+
"tedi-status-indicator--inactive": "tedi-status-indicator--inactive-258c6a4f"
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
t as default
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),p=(v={})=>{const{direction:f="vertical",onScrollToStart:S,onScrollToEnd:d}=v,[C,E]=t.useState(!1),[k,z]=t.useState(!1),w=t.useRef(null),r=t.useRef(null),s=t.useRef(S),n=t.useRef(d),R=t.useRef(!1),b=t.useRef(!1);s.current=S,n.current=d;const c=t.useCallback(e=>{var h,g;let l,o,u;f==="horizontal"?(l=e.scrollLeft,o=e.scrollWidth,u=e.clientWidth):(l=e.scrollTop,o=e.scrollHeight,u=e.clientHeight);const a=l<=1,i=Math.abs(o-l-u)<=1;E(!a),z(!i),a&&!R.current&&((h=s.current)==null||h.call(s)),i&&!b.current&&((g=n.current)==null||g.call(n)),R.current=a,b.current=i},[f]),F=t.useCallback(e=>{c(e.currentTarget)},[c]),T=t.useCallback(e=>{r.current&&(r.current.disconnect(),r.current=null),w.current=e,e&&(c(e),r.current=new ResizeObserver(()=>{c(e)}),r.current.observe(e))},[c]);return t.useEffect(()=>()=>{var e;(e=r.current)==null||e.disconnect()},[]),{scrollRef:T,canScrollStart:C,canScrollEnd:k,handleScroll:F}};exports.useScrollFade=p;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface UseScrollFadeOptions {
|
|
2
|
+
/**
|
|
3
|
+
* Scroll direction to track
|
|
4
|
+
* @default 'vertical'
|
|
5
|
+
*/
|
|
6
|
+
direction?: 'vertical' | 'horizontal';
|
|
7
|
+
/**
|
|
8
|
+
* Called when element is scrolled to start (top or left)
|
|
9
|
+
*/
|
|
10
|
+
onScrollToStart?: () => void;
|
|
11
|
+
/**
|
|
12
|
+
* Called when element is scrolled to end (bottom or right)
|
|
13
|
+
*/
|
|
14
|
+
onScrollToEnd?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export interface UseScrollFadeReturn {
|
|
17
|
+
/**
|
|
18
|
+
* Callback ref to attach to the scrollable element.
|
|
19
|
+
* Sets up ResizeObserver and initial measurement.
|
|
20
|
+
*/
|
|
21
|
+
scrollRef: React.RefCallback<HTMLElement>;
|
|
22
|
+
/**
|
|
23
|
+
* Whether content can be scrolled towards the start (top or left)
|
|
24
|
+
*/
|
|
25
|
+
canScrollStart: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether content can be scrolled towards the end (bottom or right)
|
|
28
|
+
*/
|
|
29
|
+
canScrollEnd: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Scroll event handler to attach to the scrollable element's onScroll
|
|
32
|
+
*/
|
|
33
|
+
handleScroll: React.UIEventHandler<HTMLElement>;
|
|
34
|
+
}
|
|
35
|
+
export declare const useScrollFade: (options?: UseScrollFadeOptions) => UseScrollFadeReturn;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useState as z, useRef as c, useCallback as f, useEffect as H } from "react";
|
|
2
|
+
const W = (g = {}) => {
|
|
3
|
+
const { direction: S = "vertical", onScrollToStart: d, onScrollToEnd: h } = g, [p, w] = z(!1), [C, k] = z(!1), m = c(null), r = c(null), n = c(d), s = c(h), b = c(!1), E = c(!1);
|
|
4
|
+
n.current = d, s.current = h;
|
|
5
|
+
const e = f(
|
|
6
|
+
(t) => {
|
|
7
|
+
var R, v;
|
|
8
|
+
let l, o, a;
|
|
9
|
+
S === "horizontal" ? (l = t.scrollLeft, o = t.scrollWidth, a = t.clientWidth) : (l = t.scrollTop, o = t.scrollHeight, a = t.clientHeight);
|
|
10
|
+
const u = l <= 1, i = Math.abs(o - l - a) <= 1;
|
|
11
|
+
w(!u), k(!i), u && !b.current && ((R = n.current) == null || R.call(n)), i && !E.current && ((v = s.current) == null || v.call(s)), b.current = u, E.current = i;
|
|
12
|
+
},
|
|
13
|
+
[S]
|
|
14
|
+
), A = f(
|
|
15
|
+
(t) => {
|
|
16
|
+
e(t.currentTarget);
|
|
17
|
+
},
|
|
18
|
+
[e]
|
|
19
|
+
), F = f(
|
|
20
|
+
(t) => {
|
|
21
|
+
r.current && (r.current.disconnect(), r.current = null), m.current = t, t && (e(t), r.current = new ResizeObserver(() => {
|
|
22
|
+
e(t);
|
|
23
|
+
}), r.current.observe(t));
|
|
24
|
+
},
|
|
25
|
+
[e]
|
|
26
|
+
);
|
|
27
|
+
return H(() => () => {
|
|
28
|
+
var t;
|
|
29
|
+
(t = r.current) == null || t.disconnect();
|
|
30
|
+
}, []), { scrollRef: F, canScrollStart: p, canScrollEnd: C, handleScroll: A };
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
W as useScrollFade
|
|
34
|
+
};
|
package/src/tedi/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from './components/loaders/spinner/spinner';
|
|
|
11
11
|
export * from './components/loaders/skeleton';
|
|
12
12
|
export * from './components/tags/tag/tag';
|
|
13
13
|
export * from './components/tags/status-badge/status-badge';
|
|
14
|
+
export * from './components/tags/status-indicator/status-indicator';
|
|
14
15
|
export * from './components/buttons/closing-button/closing-button';
|
|
15
16
|
export * from './components/buttons/button/button';
|
|
16
17
|
export * from './components/buttons/info-button/info-button';
|
|
@@ -24,6 +25,7 @@ export * from './components/notifications/toast/toast';
|
|
|
24
25
|
export * from './components/cards/card';
|
|
25
26
|
export * from './components/navigation/hash-trigger/hash-trigger';
|
|
26
27
|
export * from './components/navigation/link/link';
|
|
28
|
+
export * from './components/navigation/tabs';
|
|
27
29
|
export * from './components/form/textfield/textfield';
|
|
28
30
|
export * from './components/form/textarea/textarea';
|
|
29
31
|
export * from './components/form/number-field/number-field';
|