@tedi-design-system/react 17.1.0-rc.1 → 17.1.0-rc.2
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/bundle-stats.html +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.cjs.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.es.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.es.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/index.cjs.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/index.es.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.development.cjs.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.development.es.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.production.min.es.js +1 -1
- package/external/prop-types/external/react-is/index.cjs.js +1 -1
- package/external/prop-types/external/react-is/index.es.js +1 -1
- package/index.css +1 -1
- package/package.json +5 -17
- package/src/tedi/components/form/slider/slider.cjs.js +1 -0
- package/src/tedi/components/form/slider/slider.d.ts +116 -0
- package/src/tedi/components/form/slider/slider.es.js +145 -0
- package/src/tedi/components/form/slider/slider.module.scss.cjs.js +1 -0
- package/src/tedi/components/form/slider/slider.module.scss.es.js +18 -0
- package/src/tedi/components/overlays/overlay/overlay.cjs.js +1 -1
- package/src/tedi/components/overlays/overlay/overlay.d.ts +12 -0
- package/src/tedi/components/overlays/overlay/overlay.es.js +75 -74
- package/src/tedi/index.d.ts +1 -0
- package/tedi.cjs.js +1 -1
- package/tedi.es.js +146 -144
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tedi-design-system/react",
|
|
3
|
-
"version": "17.1.0-rc.
|
|
3
|
+
"version": "17.1.0-rc.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@mui/material": "^5.15.13",
|
|
44
44
|
"@mui/x-date-pickers": "^5.0.20",
|
|
45
45
|
"@tanstack/react-table": "^8.13.2",
|
|
46
|
-
"@tedi-design-system/core": "6.0.
|
|
46
|
+
"@tedi-design-system/core": "6.0.1",
|
|
47
47
|
"classnames": "^2.5.1",
|
|
48
48
|
"draft-js": "^0.11.7",
|
|
49
49
|
"draftjs-md-converter": "^1.5.2",
|
|
@@ -81,16 +81,11 @@
|
|
|
81
81
|
"@storybook/addon-a11y": "8.4.2",
|
|
82
82
|
"@storybook/addon-designs": "^8.2.1",
|
|
83
83
|
"@storybook/addon-essentials": "8.4.2",
|
|
84
|
-
"@storybook/addon-mdx-gfm": "8.4.2",
|
|
85
84
|
"@storybook/blocks": "8.4.2",
|
|
86
85
|
"@storybook/builder-vite": "8.4.2",
|
|
87
86
|
"@storybook/react": "8.4.2",
|
|
88
87
|
"@storybook/react-vite": "8.4.2",
|
|
89
88
|
"@storybook/theming": "8.6.14",
|
|
90
|
-
"@svgr/webpack": "8.1.0",
|
|
91
|
-
"@swc-node/register": "~1.11.1",
|
|
92
|
-
"@swc/core": "~1.14.0",
|
|
93
|
-
"@swc/helpers": "~0.5.19",
|
|
94
89
|
"@testing-library/dom": "^9.3.4",
|
|
95
90
|
"@testing-library/jest-dom": "^6.4.2",
|
|
96
91
|
"@testing-library/react": "15.0.6",
|
|
@@ -103,18 +98,15 @@
|
|
|
103
98
|
"@types/node": "20.11.28",
|
|
104
99
|
"@types/react": "18.3.1",
|
|
105
100
|
"@types/react-dom": "18.3.0",
|
|
106
|
-
"@types/react-test-renderer": "^19.1.0",
|
|
107
101
|
"@types/showdown": "^2.0.6",
|
|
108
102
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
109
103
|
"@typescript-eslint/parser": "^6.21.0",
|
|
110
104
|
"@vitejs/plugin-react": "^4.3.4",
|
|
111
|
-
"baseline-browser-mapping": "^2.10.0",
|
|
112
105
|
"chromatic": "^13.3.4",
|
|
113
|
-
"cross-env": "^7.0.3",
|
|
114
106
|
"dompurify": "^3.3.0",
|
|
115
107
|
"eslint": "8.48.0",
|
|
116
108
|
"eslint-config-next": "^13.4.6",
|
|
117
|
-
"eslint-config-prettier": "
|
|
109
|
+
"eslint-config-prettier": "10.1.8",
|
|
118
110
|
"eslint-plugin-import": "^2.27.5",
|
|
119
111
|
"eslint-plugin-jsx-a11y": "^6.7.1",
|
|
120
112
|
"eslint-plugin-prettier": "^4.2.1",
|
|
@@ -143,18 +135,14 @@
|
|
|
143
135
|
"stylelint-config-recess-order": "^4.2.0",
|
|
144
136
|
"stylelint-config-standard-scss": "^14.0.0",
|
|
145
137
|
"stylelint-declaration-strict-value": "^1.9.2",
|
|
146
|
-
"to-string-loader": "^1.2.0",
|
|
147
138
|
"ts-jest": "29.1.2",
|
|
148
139
|
"ts-node": "^10.9.2",
|
|
149
|
-
"tslib": "^2.
|
|
140
|
+
"tslib": "^2.8.1",
|
|
150
141
|
"typescript": "5.9.2",
|
|
151
|
-
"typescript-plugin-css-modules": "^5.1.0",
|
|
152
142
|
"vite": "^5.4.11",
|
|
153
143
|
"vite-plugin-checker": "^0.6.4",
|
|
154
144
|
"vite-plugin-dts": "4.5.4",
|
|
155
|
-
"vite-plugin-
|
|
156
|
-
"vite-plugin-static-copy": "^2.2.0",
|
|
157
|
-
"vite-tsconfig-paths": "4.3.2"
|
|
145
|
+
"vite-plugin-static-copy": "^2.2.0"
|
|
158
146
|
},
|
|
159
147
|
"commitlint": {
|
|
160
148
|
"extends": "@commitlint/config-conventional",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),m=require("../../../../../external/classnames/index.cjs.js"),e=require("react"),ne=require("../../overlays/tooltip/tooltip.cjs.js"),de=require("../../overlays/tooltip/tooltip-content.cjs.js"),oe=require("../../overlays/tooltip/tooltip-trigger.cjs.js"),ue=require("../feedback-text/feedback-text.cjs.js"),ce=require("../form-label/form-label.cjs.js"),t=require("./slider.module.scss.cjs.js"),fe=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),F=e.forwardRef((h,M)=>{const{getCurrentBreakpointProps:V}=fe.useBreakpointProps(h.defaultServerBreakpoint),{id:E,name:P,label:x,hideLabel:R,required:_,min:l=0,max:d=100,step:D=1,value:c,defaultValue:$,onChange:o,disabled:s=!1,invalid:H=!1,minLabel:f,maxLabel:O,showCurrentValue:p=!1,valueFormatter:k,tooltip:U=!0,addonRight:j,helper:r,className:z,"aria-label":A,"aria-labelledby":G,"aria-valuetext":J}=V(h),K=e.useId(),b=E??`tedi-slider-${K}`,w=r?r.id??`${b}-helper`:void 0,[Q,W]=e.useState($??l),u=Math.min(d,Math.max(l,c??Q)),[X,L]=e.useState(!1),[Y,N]=e.useState(!1),[i,C]=e.useState(!1),S=!!U&&!s,Z=S&&(X||Y||i),ee=e.useCallback(()=>L(!0),[]),ae=e.useCallback(()=>L(!1),[]),te=e.useCallback(()=>N(!0),[]),re=e.useCallback(()=>N(!1),[]),T=e.useRef(null),n=e.useCallback(()=>{T.current=null,C(!1)},[]);e.useEffect(()=>{if(i)return window.addEventListener("pointerup",n),window.addEventListener("pointercancel",n),()=>{window.removeEventListener("pointerup",n),window.removeEventListener("pointercancel",n)}},[i,n]);const le=e.useCallback(g=>{s||(T.current=g.pointerId,C(!0))},[s]),se=e.useCallback(g=>{const B=Number(g.target.value);c===void 0&&W(B),o==null||o(B)},[o,c]),q=H||(r==null?void 0:r.type)==="error",I=d===l?0:(u-l)/(d-l)*100,y=k?k(u):u,v=p?y:O,ie=m.default(t.default["tedi-slider"],{[t.default["tedi-slider--disabled"]]:s,[t.default["tedi-slider--invalid"]]:q,[t.default["tedi-slider--dragging"]]:i&&!s},z);return a.jsxs("div",{"data-name":"slider",className:ie,children:[x&&a.jsx(ce.FormLabel,{id:b,label:x,required:_,hideLabel:R}),a.jsxs("div",{className:t.default["tedi-slider__container"],children:[a.jsxs("div",{className:t.default["tedi-slider__track-row"],children:[f!=null&&a.jsx("span",{className:t.default["tedi-slider__range-label"],"aria-hidden":"true",children:f}),a.jsxs("div",{className:t.default["tedi-slider__track"],style:{"--tedi-slider-progress":`${I}%`,"--tedi-slider-progress-ratio":`${I/100}`},children:[a.jsx("input",{ref:M,id:b,name:P,type:"range",min:l,max:d,step:D,value:u,disabled:s,required:_,"aria-invalid":q?"true":void 0,"aria-describedby":w,"aria-label":A,"aria-labelledby":G,"aria-valuetext":J,onChange:se,onMouseEnter:ee,onMouseLeave:ae,onPointerDown:le,onFocus:te,onBlur:re,className:m.default(t.default["tedi-slider__input"],{[t.default["tedi-slider__input--dragging"]]:i})}),S&&a.jsxs(ne.Tooltip,{open:Z,onToggle:()=>{},focusManager:{returnFocus:!1,initialFocus:-1},placement:"top",trackReferencePosition:!0,children:[a.jsx(oe.TooltipTrigger,{children:a.jsx("span",{className:t.default["tedi-slider__thumb-anchor"],"aria-hidden":"true",tabIndex:-1})}),a.jsx(de.TooltipContent,{children:y})]})]}),v!=null&&a.jsx("span",{className:t.default["tedi-slider__range-label"],"aria-hidden":p?void 0:"true","aria-live":p?"polite":void 0,children:v})]}),j&&a.jsx("div",{className:t.default["tedi-slider__addon"],children:j})]}),r&&a.jsx(ue.FeedbackText,{...r,id:w,className:m.default(t.default["tedi-slider__feedback"],r.className)})]})});F.displayName="Slider";exports.Slider=F;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BreakpointSupport } from '../../../helpers';
|
|
3
|
+
import { FeedbackTextProps } from '../feedback-text/feedback-text';
|
|
4
|
+
type SliderBreakpointProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Text/element rendered to the left of the track (e.g. the minimum value).
|
|
7
|
+
*/
|
|
8
|
+
minLabel?: React.ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Text/element rendered to the right of the track (e.g. the maximum value).
|
|
11
|
+
* Ignored when `showCurrentValue` is `true`.
|
|
12
|
+
*/
|
|
13
|
+
maxLabel?: React.ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* When `true`, renders the current value to the right of the track instead of `maxLabel`.
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
18
|
+
showCurrentValue?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Formats the current value, used by both the thumb tooltip and the `showCurrentValue` label.
|
|
21
|
+
* @default (value) => value
|
|
22
|
+
*/
|
|
23
|
+
valueFormatter?: (value: number) => React.ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Renders a tooltip above the thumb showing the current value. Shown only while the slider is
|
|
26
|
+
* hovered, focused, or being dragged. Value is formatted via `valueFormatter`.
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
tooltip?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Node rendered to the right of the slider, typically a NumberField used to edit the same value.
|
|
32
|
+
*/
|
|
33
|
+
addonRight?: React.ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Helper text rendered below the slider.
|
|
36
|
+
*/
|
|
37
|
+
helper?: FeedbackTextProps;
|
|
38
|
+
/**
|
|
39
|
+
* Additional class name(s) applied to the root element.
|
|
40
|
+
*/
|
|
41
|
+
className?: string;
|
|
42
|
+
};
|
|
43
|
+
export interface SliderProps extends BreakpointSupport<SliderBreakpointProps> {
|
|
44
|
+
/**
|
|
45
|
+
* Unique identifier for the underlying input element.
|
|
46
|
+
* Generated automatically if not provided.
|
|
47
|
+
*/
|
|
48
|
+
id?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Name attribute of the underlying input element.
|
|
51
|
+
*/
|
|
52
|
+
name?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Label text rendered above the slider.
|
|
55
|
+
*/
|
|
56
|
+
label?: React.ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Controls the visibility of the label. Pass `true` to hide it visually while keeping it
|
|
59
|
+
* available to assistive technology, or `'keep-space'` to reserve the vertical space.
|
|
60
|
+
*/
|
|
61
|
+
hideLabel?: boolean | 'keep-space';
|
|
62
|
+
/**
|
|
63
|
+
* Marks the field as required.
|
|
64
|
+
*/
|
|
65
|
+
required?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Minimum allowed value.
|
|
68
|
+
* @default 0
|
|
69
|
+
*/
|
|
70
|
+
min?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Maximum allowed value.
|
|
73
|
+
* @default 100
|
|
74
|
+
*/
|
|
75
|
+
max?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Step size.
|
|
78
|
+
* @default 1
|
|
79
|
+
*/
|
|
80
|
+
step?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Controlled value. Use together with `onChange`.
|
|
83
|
+
*/
|
|
84
|
+
value?: number;
|
|
85
|
+
/**
|
|
86
|
+
* Default value for uncontrolled usage.
|
|
87
|
+
* @default min
|
|
88
|
+
*/
|
|
89
|
+
defaultValue?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Callback fired when the value changes.
|
|
92
|
+
*/
|
|
93
|
+
onChange?: (value: number) => void;
|
|
94
|
+
/**
|
|
95
|
+
* Disables the slider.
|
|
96
|
+
*/
|
|
97
|
+
disabled?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Marks the slider as invalid for validation purposes.
|
|
100
|
+
*/
|
|
101
|
+
invalid?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Accessible label used when no visible `label` is provided.
|
|
104
|
+
*/
|
|
105
|
+
'aria-label'?: string;
|
|
106
|
+
/**
|
|
107
|
+
* ID of an element that labels the slider, used when no visible `label` is provided.
|
|
108
|
+
*/
|
|
109
|
+
'aria-labelledby'?: string;
|
|
110
|
+
/**
|
|
111
|
+
* Human-readable text alternative of the current value.
|
|
112
|
+
*/
|
|
113
|
+
'aria-valuetext'?: string;
|
|
114
|
+
}
|
|
115
|
+
export declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLInputElement>>;
|
|
116
|
+
export default Slider;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { jsxs as o, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import _ from "../../../../../external/classnames/index.es.js";
|
|
3
|
+
import { forwardRef as oe, useId as de, useState as m, useCallback as i, useRef as ce, useEffect as ue } from "react";
|
|
4
|
+
import { Tooltip as me } from "../../overlays/tooltip/tooltip.es.js";
|
|
5
|
+
import { TooltipContent as pe } from "../../overlays/tooltip/tooltip-content.es.js";
|
|
6
|
+
import { TooltipTrigger as fe } from "../../overlays/tooltip/tooltip-trigger.es.js";
|
|
7
|
+
import { FeedbackText as ve } from "../feedback-text/feedback-text.es.js";
|
|
8
|
+
import { FormLabel as ge } from "../form-label/form-label.es.js";
|
|
9
|
+
import e from "./slider.module.scss.es.js";
|
|
10
|
+
import { useBreakpointProps as he } from "../../../helpers/hooks/use-breakpoint-props.es.js";
|
|
11
|
+
const be = oe((N, S) => {
|
|
12
|
+
const { getCurrentBreakpointProps: D } = he(N.defaultServerBreakpoint), {
|
|
13
|
+
id: R,
|
|
14
|
+
name: $,
|
|
15
|
+
label: w,
|
|
16
|
+
hideLabel: j,
|
|
17
|
+
required: L,
|
|
18
|
+
min: t = 0,
|
|
19
|
+
max: d = 100,
|
|
20
|
+
step: H = 1,
|
|
21
|
+
value: p,
|
|
22
|
+
defaultValue: q,
|
|
23
|
+
onChange: c,
|
|
24
|
+
disabled: n = !1,
|
|
25
|
+
invalid: O = !1,
|
|
26
|
+
minLabel: f,
|
|
27
|
+
maxLabel: U,
|
|
28
|
+
showCurrentValue: v = !1,
|
|
29
|
+
valueFormatter: x,
|
|
30
|
+
tooltip: z = !0,
|
|
31
|
+
addonRight: I,
|
|
32
|
+
helper: a,
|
|
33
|
+
className: A,
|
|
34
|
+
"aria-label": G,
|
|
35
|
+
"aria-labelledby": J,
|
|
36
|
+
"aria-valuetext": K
|
|
37
|
+
} = D(N), Q = de(), g = R ?? `tedi-slider-${Q}`, k = a ? a.id ?? `${g}-helper` : void 0, [W, X] = m(q ?? t), u = Math.min(d, Math.max(t, p ?? W)), [Y, y] = m(!1), [Z, F] = m(!1), [l, T] = m(!1), V = !!z && !n, ee = V && (Y || Z || l), re = i(() => y(!0), []), ae = i(() => y(!1), []), ie = i(() => F(!0), []), te = i(() => F(!1), []), B = ce(null), s = i(() => {
|
|
38
|
+
B.current = null, T(!1);
|
|
39
|
+
}, []);
|
|
40
|
+
ue(() => {
|
|
41
|
+
if (l)
|
|
42
|
+
return window.addEventListener("pointerup", s), window.addEventListener("pointercancel", s), () => {
|
|
43
|
+
window.removeEventListener("pointerup", s), window.removeEventListener("pointercancel", s);
|
|
44
|
+
};
|
|
45
|
+
}, [l, s]);
|
|
46
|
+
const ne = i(
|
|
47
|
+
(b) => {
|
|
48
|
+
n || (B.current = b.pointerId, T(!0));
|
|
49
|
+
},
|
|
50
|
+
[n]
|
|
51
|
+
), le = i(
|
|
52
|
+
(b) => {
|
|
53
|
+
const P = Number(b.target.value);
|
|
54
|
+
p === void 0 && X(P), c == null || c(P);
|
|
55
|
+
},
|
|
56
|
+
[c, p]
|
|
57
|
+
), E = O || (a == null ? void 0 : a.type) === "error", M = d === t ? 0 : (u - t) / (d - t) * 100, C = x ? x(u) : u, h = v ? C : U, se = _(
|
|
58
|
+
e["tedi-slider"],
|
|
59
|
+
{
|
|
60
|
+
[e["tedi-slider--disabled"]]: n,
|
|
61
|
+
[e["tedi-slider--invalid"]]: E,
|
|
62
|
+
[e["tedi-slider--dragging"]]: l && !n
|
|
63
|
+
},
|
|
64
|
+
A
|
|
65
|
+
);
|
|
66
|
+
return /* @__PURE__ */ o("div", { "data-name": "slider", className: se, children: [
|
|
67
|
+
w && /* @__PURE__ */ r(ge, { id: g, label: w, required: L, hideLabel: j }),
|
|
68
|
+
/* @__PURE__ */ o("div", { className: e["tedi-slider__container"], children: [
|
|
69
|
+
/* @__PURE__ */ o("div", { className: e["tedi-slider__track-row"], children: [
|
|
70
|
+
f != null && /* @__PURE__ */ r("span", { className: e["tedi-slider__range-label"], "aria-hidden": "true", children: f }),
|
|
71
|
+
/* @__PURE__ */ o(
|
|
72
|
+
"div",
|
|
73
|
+
{
|
|
74
|
+
className: e["tedi-slider__track"],
|
|
75
|
+
style: {
|
|
76
|
+
"--tedi-slider-progress": `${M}%`,
|
|
77
|
+
"--tedi-slider-progress-ratio": `${M / 100}`
|
|
78
|
+
},
|
|
79
|
+
children: [
|
|
80
|
+
/* @__PURE__ */ r(
|
|
81
|
+
"input",
|
|
82
|
+
{
|
|
83
|
+
ref: S,
|
|
84
|
+
id: g,
|
|
85
|
+
name: $,
|
|
86
|
+
type: "range",
|
|
87
|
+
min: t,
|
|
88
|
+
max: d,
|
|
89
|
+
step: H,
|
|
90
|
+
value: u,
|
|
91
|
+
disabled: n,
|
|
92
|
+
required: L,
|
|
93
|
+
"aria-invalid": E ? "true" : void 0,
|
|
94
|
+
"aria-describedby": k,
|
|
95
|
+
"aria-label": G,
|
|
96
|
+
"aria-labelledby": J,
|
|
97
|
+
"aria-valuetext": K,
|
|
98
|
+
onChange: le,
|
|
99
|
+
onMouseEnter: re,
|
|
100
|
+
onMouseLeave: ae,
|
|
101
|
+
onPointerDown: ne,
|
|
102
|
+
onFocus: ie,
|
|
103
|
+
onBlur: te,
|
|
104
|
+
className: _(e["tedi-slider__input"], {
|
|
105
|
+
[e["tedi-slider__input--dragging"]]: l
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
),
|
|
109
|
+
V && /* @__PURE__ */ o(
|
|
110
|
+
me,
|
|
111
|
+
{
|
|
112
|
+
open: ee,
|
|
113
|
+
onToggle: () => {
|
|
114
|
+
},
|
|
115
|
+
focusManager: { returnFocus: !1, initialFocus: -1 },
|
|
116
|
+
placement: "top",
|
|
117
|
+
trackReferencePosition: !0,
|
|
118
|
+
children: [
|
|
119
|
+
/* @__PURE__ */ r(fe, { children: /* @__PURE__ */ r("span", { className: e["tedi-slider__thumb-anchor"], "aria-hidden": "true", tabIndex: -1 }) }),
|
|
120
|
+
/* @__PURE__ */ r(pe, { children: C })
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
h != null && /* @__PURE__ */ r(
|
|
128
|
+
"span",
|
|
129
|
+
{
|
|
130
|
+
className: e["tedi-slider__range-label"],
|
|
131
|
+
"aria-hidden": v ? void 0 : "true",
|
|
132
|
+
"aria-live": v ? "polite" : void 0,
|
|
133
|
+
children: h
|
|
134
|
+
}
|
|
135
|
+
)
|
|
136
|
+
] }),
|
|
137
|
+
I && /* @__PURE__ */ r("div", { className: e["tedi-slider__addon"], children: I })
|
|
138
|
+
] }),
|
|
139
|
+
a && /* @__PURE__ */ r(ve, { ...a, id: k, className: _(e["tedi-slider__feedback"], a.className) })
|
|
140
|
+
] });
|
|
141
|
+
});
|
|
142
|
+
be.displayName = "Slider";
|
|
143
|
+
export {
|
|
144
|
+
be as Slider
|
|
145
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-slider":"tedi-slider-90e24e7d","tedi-slider__container":"tedi-slider__container-525c4b64","tedi-slider__track-row":"tedi-slider__track-row-95e9c2d5","tedi-slider__range-label":"tedi-slider__range-label-a2a6a43b","tedi-slider__track":"tedi-slider__track-a7afc8d6","tedi-slider__thumb-anchor":"tedi-slider__thumb-anchor-7e282370","tedi-slider__input":"tedi-slider__input-b2d1c042","tedi-slider__input--dragging":"tedi-slider__input--dragging-6a2f5f85","tedi-slider__addon":"tedi-slider__addon-6b259d81","tedi-slider__feedback":"tedi-slider__feedback-dad1545e","tedi-slider--disabled":"tedi-slider--disabled-d1da914a","tedi-slider--dragging":"tedi-slider--dragging-c82f4f25","tedi-slider--invalid":"tedi-slider--invalid-e5adda94"};exports.default=e;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const d = {
|
|
2
|
+
"tedi-slider": "tedi-slider-90e24e7d",
|
|
3
|
+
"tedi-slider__container": "tedi-slider__container-525c4b64",
|
|
4
|
+
"tedi-slider__track-row": "tedi-slider__track-row-95e9c2d5",
|
|
5
|
+
"tedi-slider__range-label": "tedi-slider__range-label-a2a6a43b",
|
|
6
|
+
"tedi-slider__track": "tedi-slider__track-a7afc8d6",
|
|
7
|
+
"tedi-slider__thumb-anchor": "tedi-slider__thumb-anchor-7e282370",
|
|
8
|
+
"tedi-slider__input": "tedi-slider__input-b2d1c042",
|
|
9
|
+
"tedi-slider__input--dragging": "tedi-slider__input--dragging-6a2f5f85",
|
|
10
|
+
"tedi-slider__addon": "tedi-slider__addon-6b259d81",
|
|
11
|
+
"tedi-slider__feedback": "tedi-slider__feedback-dad1545e",
|
|
12
|
+
"tedi-slider--disabled": "tedi-slider--disabled-d1da914a",
|
|
13
|
+
"tedi-slider--dragging": "tedi-slider--dragging-c82f4f25",
|
|
14
|
+
"tedi-slider--invalid": "tedi-slider--invalid-e5adda94"
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
d as default
|
|
18
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const K=require("react/jsx-runtime"),t=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),n=require("react"),N=require("./overlay-content.cjs.js"),Q=require("./overlay-trigger.cjs.js"),X=require("../../../helpers/hooks/use-is-touch-device.cjs.js"),Y=require("../../../helpers/hooks/use-is-mounted.cjs.js"),j=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),i=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),Z=3,S=n.createContext({open:!1,onOpenChange:()=>{},isMounted:!1,openWith:"hover",reference:()=>{},floating:()=>{},focusManager:{},arrowRef:{current:null},x:0,y:0,strategy:"absolute",getReferenceProps:()=>({}),getFloatingProps:()=>({}),arrow:{width:0,height:0,x:0,y:0,centerOffset:0},placement:"top",context:{},scrollLock:void 0,contentId:""}),u=E=>{const L=X.useIsTouchDevice(),{children:W,placement:A="top",openWith:s=L?"click":"hover",defaultOpen:G=!1,open:c,onToggle:r,role:d="tooltip",arrowDimensions:e,offset:H=Z+((e==null?void 0:e.height)??0),focusManager:f,dismissible:y,scrollLock:O,trackReferencePosition:V=!1}=E,{order:M=["reference","content"],initialFocus:m,modal:g,...x}=f??{},C=m!==void 0?m:g?0:void 0,[F,R]=n.useState(G),p=n.useRef(null),P=Y.useIsMounted(),h=n.useMemo(()=>r&&typeof c<"u"?c:F,[r,c,F]),v=n.useCallback(l=>{typeof c>"u"&&R(l),r==null||r(l)},[c,R,r]),{x:q,y:I,refs:a,strategy:b,context:o,middlewareData:k,placement:w}=t.useFloating({placement:A,open:h,onOpenChange:v,middleware:[i.offset(H),i.flip(),i.shift({padding:8}),i.arrow({element:p,padding:4})],whileElementsMounted:V?(l,B,J)=>j.autoUpdate(l,B,J,{animationFrame:!0}):j.autoUpdate}),{getReferenceProps:T,getFloatingProps:U}=t.useInteractions([t.useHover(o,{enabled:s==="hover",handleClose:t.safePolygon()}),t.useClick(o,{toggle:y}),t.useFocus(o,{enabled:s==="hover"}),t.useRole(o,{role:d}),t.useDismiss(o,{enabled:y,outsidePressEvent:s==="click"?"mousedown":"pointerdown"})]),_=n.useId(),z=n.useMemo(()=>({open:h,onOpenChange:v,isMounted:P,openWith:s,focusManager:f?{order:M,modal:g,initialFocus:C,...x}:void 0,reference:a.setReference,floating:a.setFloating,arrowRef:p,x:q,y:I,strategy:b,getReferenceProps:T,getFloatingProps:U,arrow:{width:e==null?void 0:e.width,height:e==null?void 0:e.height,...k.arrow},context:o,placement:w,scrollLock:O,role:d,contentId:_}),[h,v,P,s,f,a.setReference,a.setFloating,p,q,I,b,T,U,e==null?void 0:e.width,e==null?void 0:e.height,k.arrow,o,w,O,d,_,g,M,C,x]);return K.jsx(S.Provider,{value:z,children:W})};u.Trigger=Q.OverlayTrigger;u.Content=N.OverlayContent;exports.Overlay=u;exports.OverlayContext=S;exports.default=u;
|
|
@@ -63,6 +63,18 @@ export interface OverlayProps {
|
|
|
63
63
|
* @default GAP + arrow height
|
|
64
64
|
*/
|
|
65
65
|
offset?: OffsetOptions;
|
|
66
|
+
/**
|
|
67
|
+
* Re-measure the floating element every animation frame while mounted.
|
|
68
|
+
*
|
|
69
|
+
* Enable this when the trigger/reference element's position can change without a
|
|
70
|
+
* DOM-observable event (e.g. position driven by an inherited CSS custom property on an
|
|
71
|
+
* ancestor). The default `autoUpdate` only reacts to scroll, resize, and element-size
|
|
72
|
+
* changes, so position-only movement goes unnoticed and the overlay lags behind.
|
|
73
|
+
*
|
|
74
|
+
* Opt-in because animation-frame tracking is more expensive than the default.
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
77
|
+
trackReferencePosition?: boolean;
|
|
66
78
|
}
|
|
67
79
|
export interface OverlayContextType {
|
|
68
80
|
open: boolean;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useFloating as
|
|
3
|
-
import { useState as
|
|
4
|
-
import { OverlayContent as
|
|
5
|
-
import { OverlayTrigger as
|
|
6
|
-
import { useIsTouchDevice as
|
|
7
|
-
import { useIsMounted as
|
|
8
|
-
import { autoUpdate as
|
|
9
|
-
import { offset as
|
|
10
|
-
const
|
|
1
|
+
import { jsx as B } from "react/jsx-runtime";
|
|
2
|
+
import { useFloating as J, useInteractions as K, useHover as N, safePolygon as Q, useClick as X, useFocus as Y, useRole as Z, useDismiss as _ } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
|
|
3
|
+
import { useState as $, useRef as D, useMemo as T, useCallback as ee, useId as te, createContext as oe } from "react";
|
|
4
|
+
import { OverlayContent as ne } from "./overlay-content.es.js";
|
|
5
|
+
import { OverlayTrigger as re } from "./overlay-trigger.es.js";
|
|
6
|
+
import { useIsTouchDevice as se } from "../../../helpers/hooks/use-is-touch-device.es.js";
|
|
7
|
+
import { useIsMounted as ae } from "../../../helpers/hooks/use-is-mounted.es.js";
|
|
8
|
+
import { autoUpdate as E } from "../../../../../external/@floating-ui/dom/dist/floating-ui.dom.es.js";
|
|
9
|
+
import { offset as ce, flip as le, shift as ie, arrow as fe } from "../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js";
|
|
10
|
+
const ue = 3, de = oe({
|
|
11
11
|
open: !1,
|
|
12
12
|
onOpenChange: () => {
|
|
13
13
|
},
|
|
@@ -35,120 +35,121 @@ const ae = 3, ie = $({
|
|
|
35
35
|
context: {},
|
|
36
36
|
scrollLock: void 0,
|
|
37
37
|
contentId: ""
|
|
38
|
-
}),
|
|
39
|
-
const
|
|
40
|
-
children:
|
|
41
|
-
placement:
|
|
42
|
-
openWith: n =
|
|
43
|
-
defaultOpen:
|
|
38
|
+
}), L = (W) => {
|
|
39
|
+
const j = se(), {
|
|
40
|
+
children: A,
|
|
41
|
+
placement: G = "top",
|
|
42
|
+
openWith: n = j ? "click" : "hover",
|
|
43
|
+
defaultOpen: H = !1,
|
|
44
44
|
open: r,
|
|
45
45
|
onToggle: o,
|
|
46
46
|
role: c = "tooltip",
|
|
47
47
|
arrowDimensions: e,
|
|
48
|
-
offset:
|
|
48
|
+
offset: S = ue + ((e == null ? void 0 : e.height) ?? 0),
|
|
49
49
|
focusManager: l,
|
|
50
|
-
dismissible:
|
|
51
|
-
scrollLock:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
dismissible: p,
|
|
51
|
+
scrollLock: g,
|
|
52
|
+
trackReferencePosition: U = !1
|
|
53
|
+
} = W, { order: h = ["reference", "content"], initialFocus: m, modal: i, ...v } = l ?? {}, y = m !== void 0 ? m : i ? 0 : void 0, [O, x] = $(H), f = D(null), F = ae(), u = T(() => o && typeof r < "u" ? r : O, [o, r, O]), d = ee(
|
|
54
|
+
(a) => {
|
|
55
|
+
typeof r > "u" && x(a), o == null || o(a);
|
|
55
56
|
},
|
|
56
|
-
[r,
|
|
57
|
-
), { x:
|
|
58
|
-
placement:
|
|
59
|
-
open:
|
|
60
|
-
onOpenChange:
|
|
57
|
+
[r, x, o]
|
|
58
|
+
), { x: C, y: M, refs: s, strategy: P, context: t, middlewareData: R, placement: k } = J({
|
|
59
|
+
placement: G,
|
|
60
|
+
open: u,
|
|
61
|
+
onOpenChange: d,
|
|
61
62
|
middleware: [
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
element:
|
|
63
|
+
ce(S),
|
|
64
|
+
le(),
|
|
65
|
+
ie({ padding: 8 }),
|
|
66
|
+
fe({
|
|
67
|
+
element: f,
|
|
67
68
|
padding: 4
|
|
68
69
|
})
|
|
69
70
|
],
|
|
70
|
-
whileElementsMounted:
|
|
71
|
-
}), { getReferenceProps: w, getFloatingProps: I } =
|
|
72
|
-
|
|
71
|
+
whileElementsMounted: U ? (a, q, z) => E(a, q, z, { animationFrame: !0 }) : E
|
|
72
|
+
}), { getReferenceProps: w, getFloatingProps: I } = K([
|
|
73
|
+
N(t, {
|
|
73
74
|
enabled: n === "hover",
|
|
74
|
-
handleClose:
|
|
75
|
+
handleClose: Q()
|
|
75
76
|
}),
|
|
76
|
-
|
|
77
|
-
toggle:
|
|
77
|
+
X(t, {
|
|
78
|
+
toggle: p
|
|
78
79
|
}),
|
|
79
|
-
|
|
80
|
+
Y(t, {
|
|
80
81
|
enabled: n === "hover"
|
|
81
82
|
}),
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
enabled:
|
|
83
|
+
Z(t, { role: c }),
|
|
84
|
+
_(t, {
|
|
85
|
+
enabled: p,
|
|
85
86
|
outsidePressEvent: n === "click" ? "mousedown" : "pointerdown"
|
|
86
87
|
})
|
|
87
|
-
]), b =
|
|
88
|
+
]), b = te(), V = T(
|
|
88
89
|
() => ({
|
|
89
|
-
open:
|
|
90
|
-
onOpenChange:
|
|
91
|
-
isMounted:
|
|
90
|
+
open: u,
|
|
91
|
+
onOpenChange: d,
|
|
92
|
+
isMounted: F,
|
|
92
93
|
openWith: n,
|
|
93
94
|
focusManager: l ? {
|
|
94
|
-
order:
|
|
95
|
-
modal:
|
|
96
|
-
initialFocus:
|
|
97
|
-
...
|
|
95
|
+
order: h,
|
|
96
|
+
modal: i,
|
|
97
|
+
initialFocus: y,
|
|
98
|
+
...v
|
|
98
99
|
} : void 0,
|
|
99
100
|
reference: s.setReference,
|
|
100
101
|
floating: s.setFloating,
|
|
101
|
-
arrowRef:
|
|
102
|
-
x:
|
|
103
|
-
y:
|
|
104
|
-
strategy:
|
|
102
|
+
arrowRef: f,
|
|
103
|
+
x: C,
|
|
104
|
+
y: M,
|
|
105
|
+
strategy: P,
|
|
105
106
|
getReferenceProps: w,
|
|
106
107
|
getFloatingProps: I,
|
|
107
108
|
arrow: {
|
|
108
109
|
width: e == null ? void 0 : e.width,
|
|
109
110
|
height: e == null ? void 0 : e.height,
|
|
110
|
-
...
|
|
111
|
+
...R.arrow
|
|
111
112
|
},
|
|
112
113
|
context: t,
|
|
113
|
-
placement:
|
|
114
|
-
scrollLock:
|
|
114
|
+
placement: k,
|
|
115
|
+
scrollLock: g,
|
|
115
116
|
role: c,
|
|
116
117
|
contentId: b
|
|
117
118
|
}),
|
|
118
119
|
[
|
|
119
|
-
f,
|
|
120
120
|
u,
|
|
121
|
-
|
|
121
|
+
d,
|
|
122
|
+
F,
|
|
122
123
|
n,
|
|
123
124
|
l,
|
|
124
125
|
s.setReference,
|
|
125
126
|
s.setFloating,
|
|
126
|
-
|
|
127
|
-
F,
|
|
127
|
+
f,
|
|
128
128
|
C,
|
|
129
129
|
M,
|
|
130
|
+
P,
|
|
130
131
|
w,
|
|
131
132
|
I,
|
|
132
133
|
e == null ? void 0 : e.width,
|
|
133
134
|
e == null ? void 0 : e.height,
|
|
134
|
-
|
|
135
|
+
R.arrow,
|
|
135
136
|
t,
|
|
136
|
-
|
|
137
|
-
|
|
137
|
+
k,
|
|
138
|
+
g,
|
|
138
139
|
c,
|
|
139
140
|
b,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
i,
|
|
142
|
+
h,
|
|
143
|
+
y,
|
|
144
|
+
v
|
|
144
145
|
]
|
|
145
146
|
);
|
|
146
|
-
return /* @__PURE__ */
|
|
147
|
+
return /* @__PURE__ */ B(de.Provider, { value: V, children: A });
|
|
147
148
|
};
|
|
148
|
-
|
|
149
|
-
|
|
149
|
+
L.Trigger = re;
|
|
150
|
+
L.Content = ne;
|
|
150
151
|
export {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
L as Overlay,
|
|
153
|
+
de as OverlayContext,
|
|
154
|
+
L as default
|
|
154
155
|
};
|
package/src/tedi/index.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export * from './components/form/file-upload/file-upload';
|
|
|
38
38
|
export * from './components/form/file-dropzone/file-dropzone';
|
|
39
39
|
export * from './components/form/select/select';
|
|
40
40
|
export * from './components/form/checkbox/checkbox';
|
|
41
|
+
export * from './components/form/slider/slider';
|
|
41
42
|
export * from './components/form/input-group';
|
|
42
43
|
export * from './components/form/field/field';
|
|
43
44
|
export * from './components/overlays/tooltip';
|