@arbor-education/design-system.components 0.3.5 → 0.3.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/CHANGELOG.md +10 -0
- package/dist/components/editableText/EditableText.d.ts +10 -0
- package/dist/components/editableText/EditableText.d.ts.map +1 -0
- package/dist/components/editableText/EditableText.js +36 -0
- package/dist/components/editableText/EditableText.js.map +1 -0
- package/dist/components/editableText/EditableText.stories.d.ts +44 -0
- package/dist/components/editableText/EditableText.stories.d.ts.map +1 -0
- package/dist/components/editableText/EditableText.stories.js +94 -0
- package/dist/components/editableText/EditableText.stories.js.map +1 -0
- package/dist/components/editableText/EditableText.test.d.ts +2 -0
- package/dist/components/editableText/EditableText.test.d.ts.map +1 -0
- package/dist/components/editableText/EditableText.test.js +187 -0
- package/dist/components/editableText/EditableText.test.js.map +1 -0
- package/dist/components/heading/Heading.stories.d.ts +26 -0
- package/dist/components/heading/Heading.stories.d.ts.map +1 -1
- package/dist/components/heading/Heading.stories.js +35 -0
- package/dist/components/heading/Heading.stories.js.map +1 -1
- package/dist/components/progress/Progress.d.ts +6 -0
- package/dist/components/progress/Progress.d.ts.map +1 -0
- package/dist/components/progress/Progress.js +9 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/progress/Progress.stories.d.ts +324 -0
- package/dist/components/progress/Progress.stories.d.ts.map +1 -0
- package/dist/components/progress/Progress.stories.js +77 -0
- package/dist/components/progress/Progress.stories.js.map +1 -0
- package/dist/components/progress/Progress.test.d.ts +2 -0
- package/dist/components/progress/Progress.test.d.ts.map +1 -0
- package/dist/components/progress/Progress.test.js +77 -0
- package/dist/components/progress/Progress.test.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +10 -0
- package/dist/components/toast/Toast.d.ts.map +1 -0
- package/dist/components/toast/Toast.js +20 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toast/Toast.stories.d.ts +12 -0
- package/dist/components/toast/Toast.stories.d.ts.map +1 -0
- package/dist/components/toast/Toast.stories.js +73 -0
- package/dist/components/toast/Toast.stories.js.map +1 -0
- package/dist/components/toast/Toast.test.d.ts +2 -0
- package/dist/components/toast/Toast.test.d.ts.map +1 -0
- package/dist/components/toast/Toast.test.js +87 -0
- package/dist/components/toast/Toast.test.js.map +1 -0
- package/dist/components/toast/ToastViewport.d.ts +3 -0
- package/dist/components/toast/ToastViewport.d.ts.map +1 -0
- package/dist/components/toast/ToastViewport.js +5 -0
- package/dist/components/toast/ToastViewport.js.map +1 -0
- package/dist/index.css +140 -4
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/setupTestRuntime.ts +7 -0
- package/src/components/button/button.scss +1 -0
- package/src/components/editableText/EditableText.stories.tsx +136 -0
- package/src/components/editableText/EditableText.test.tsx +242 -0
- package/src/components/editableText/EditableText.tsx +73 -0
- package/src/components/editableText/editableText.scss +54 -0
- package/src/components/heading/Heading.stories.tsx +58 -0
- package/src/components/heading/heading.scss +4 -4
- package/src/components/progress/Progress.stories.tsx +90 -0
- package/src/components/progress/Progress.test.tsx +88 -0
- package/src/components/progress/Progress.tsx +16 -0
- package/src/components/progress/progress.scss +13 -0
- package/src/components/toast/Toast.stories.tsx +113 -0
- package/src/components/toast/Toast.test.tsx +126 -0
- package/src/components/toast/Toast.tsx +35 -0
- package/src/components/toast/ToastViewport.tsx +6 -0
- package/src/components/toast/toast.scss +80 -0
- package/src/index.scss +3 -0
- package/src/index.ts +3 -0
- package/src/tokens.scss +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#122](https://github.com/arbor-education/design-system.components/pull/122) [`8f25e54`](https://github.com/arbor-education/design-system.components/commit/8f25e54a2c20ec2ef52c486749d46e7d9731d49f) Thanks [@AmeeMorris](https://github.com/AmeeMorris)! - MIS-66424 Toast component
|
|
8
|
+
|
|
9
|
+
- [#123](https://github.com/arbor-education/design-system.components/pull/123) [`dbac185`](https://github.com/arbor-education/design-system.components/commit/dbac18524c61d15e788f92ec8cee25cf20c1332c) Thanks [@AmeeMorris](https://github.com/AmeeMorris)! - MIS-66708 Progress component
|
|
10
|
+
|
|
11
|
+
- [#121](https://github.com/arbor-education/design-system.components/pull/121) [`e93e5c8`](https://github.com/arbor-education/design-system.components/commit/e93e5c8625a63ffb6282fc246168cd69696d5a32) Thanks [@AmeeMorris](https://github.com/AmeeMorris)! - MIS-68210 Editable text component
|
|
12
|
+
|
|
3
13
|
## 0.3.5
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type EditableTextProps = {
|
|
2
|
+
text: string;
|
|
3
|
+
className?: string;
|
|
4
|
+
onEditSave: (newText: string) => void;
|
|
5
|
+
isEditing?: boolean;
|
|
6
|
+
multiline?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const EditableText: ({ text: textProp, className, onEditSave, isEditing: isEditingProp, multiline }: EditableTextProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=EditableText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableText.d.ts","sourceRoot":"","sources":["../../../src/components/editableText/EditableText.tsx"],"names":[],"mappings":"AAMA,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,gFAAqG,iBAAiB,4CA0DlJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { TextInput } from '../formField/inputs/text/TextInput';
|
|
4
|
+
import { TextArea } from '../formField/inputs/textArea/TextArea';
|
|
5
|
+
import { Icon } from '../icon/Icon';
|
|
6
|
+
import { useEffect, useRef, useState } from 'react';
|
|
7
|
+
export const EditableText = ({ text: textProp, className = '', onEditSave, isEditing: isEditingProp = false, multiline = false }) => {
|
|
8
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
9
|
+
const [text, setText] = useState(textProp);
|
|
10
|
+
const preEditText = useRef(textProp);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
setText(textProp);
|
|
13
|
+
}, [textProp]);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setIsEditing(isEditingProp);
|
|
16
|
+
}, [isEditingProp]);
|
|
17
|
+
const handleEditSave = () => {
|
|
18
|
+
onEditSave(text);
|
|
19
|
+
preEditText.current = text;
|
|
20
|
+
setIsEditing(false);
|
|
21
|
+
};
|
|
22
|
+
const handleKeyDown = (e) => {
|
|
23
|
+
if (e.key === 'Enter' && !multiline) {
|
|
24
|
+
handleEditSave();
|
|
25
|
+
}
|
|
26
|
+
if (e.key === 'Escape') {
|
|
27
|
+
setText(preEditText.current);
|
|
28
|
+
setIsEditing(false);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const InputComponent = multiline ? TextArea : TextInput;
|
|
32
|
+
return (_jsx("span", { className: classNames('ds-editable-text', className), children: isEditing
|
|
33
|
+
? (_jsx(InputComponent, { name: "editable-text", "aria-label": "Text", className: "ds-editable-text__input", value: text, onChange: e => setText(e.target.value), onBlur: handleEditSave, onKeyDown: handleKeyDown, autoFocus: true }))
|
|
34
|
+
: (_jsxs("button", { className: "ds-editable-text__button", "aria-label": "Edit text", onClick: () => setIsEditing(true), children: [text, _jsx(Icon, { name: "pencil", size: 16, className: "ds-editable-text__button-icon" })] })) }));
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=EditableText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableText.js","sourceRoot":"","sources":["../../../src/components/editableText/EditableText.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAC;AAUxE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAqB,EAAE,EAAE;IACrJ,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAwD,EAAE,EAAE;QACjF,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7B,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAExD,OAAO,CACL,eAAM,SAAS,EAAE,UAAU,CAAC,kBAAkB,EAAE,SAAS,CAAC,YACvD,SAAS;YACR,CAAC,CAAC,CACE,KAAC,cAAc,IACb,IAAI,EAAC,eAAe,gBACT,MAAM,EACjB,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,SACT,CACH;YACH,CAAC,CAAC,CACE,kBACE,SAAS,EAAC,0BAA0B,gBACzB,WAAW,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,aAEhC,IAAI,EACL,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,+BAA+B,GAAG,IACnE,CACV,GACA,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: ({ text: textProp, className, onEditSave, isEditing: isEditingProp, multiline }: {
|
|
5
|
+
text: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
onEditSave: (newText: string) => void;
|
|
8
|
+
isEditing?: boolean;
|
|
9
|
+
multiline?: boolean;
|
|
10
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
parameters: {
|
|
12
|
+
layout: string;
|
|
13
|
+
};
|
|
14
|
+
tags: string[];
|
|
15
|
+
argTypes: {
|
|
16
|
+
text: {
|
|
17
|
+
control: "text";
|
|
18
|
+
description: string;
|
|
19
|
+
};
|
|
20
|
+
className: {
|
|
21
|
+
control: "text";
|
|
22
|
+
description: string;
|
|
23
|
+
};
|
|
24
|
+
onEditSave: {
|
|
25
|
+
action: string;
|
|
26
|
+
description: string;
|
|
27
|
+
};
|
|
28
|
+
isEditing: {
|
|
29
|
+
control: "boolean";
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export default meta;
|
|
35
|
+
type Story = StoryObj<typeof meta>;
|
|
36
|
+
export declare const Default: Story;
|
|
37
|
+
export declare const InH1: Story;
|
|
38
|
+
export declare const InH2: Story;
|
|
39
|
+
export declare const InH3: Story;
|
|
40
|
+
export declare const InH4: Story;
|
|
41
|
+
export declare const InParagraph: Story;
|
|
42
|
+
export declare const InCustomStyledDiv: Story;
|
|
43
|
+
export declare const LongText: Story;
|
|
44
|
+
//# sourceMappingURL=EditableText.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableText.stories.d.ts","sourceRoot":"","sources":["../../../src/components/editableText/EditableText.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB2B,CAAC;AAEtC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,KAUlB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,KAUlB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,KAUlB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,KAUlB,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,KAU/B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { EditableText } from './EditableText';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/EditableText',
|
|
5
|
+
component: EditableText,
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: 'padded',
|
|
8
|
+
},
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
argTypes: {
|
|
11
|
+
text: {
|
|
12
|
+
control: 'text',
|
|
13
|
+
description: 'The text to display',
|
|
14
|
+
},
|
|
15
|
+
className: {
|
|
16
|
+
control: 'text',
|
|
17
|
+
description: 'Optional CSS class name',
|
|
18
|
+
},
|
|
19
|
+
onEditSave: {
|
|
20
|
+
action: 'edit saved',
|
|
21
|
+
description: 'Callback fired when the text is edited',
|
|
22
|
+
},
|
|
23
|
+
isEditing: {
|
|
24
|
+
control: 'boolean',
|
|
25
|
+
description: 'Control whether the text is in edit mode',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
export default meta;
|
|
30
|
+
// Default (inherits parent styles)
|
|
31
|
+
export const Default = {
|
|
32
|
+
render: args => (_jsx("div", { style: { width: '100%' }, children: _jsx(EditableText, { ...args }) })),
|
|
33
|
+
args: {
|
|
34
|
+
text: 'Editable Text',
|
|
35
|
+
onEditSave: () => { },
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
// Inside H1 heading
|
|
39
|
+
export const InH1 = {
|
|
40
|
+
render: args => (_jsx("h1", { children: _jsx(EditableText, { ...args }) })),
|
|
41
|
+
args: {
|
|
42
|
+
text: 'Editable Heading Level 1',
|
|
43
|
+
onEditSave: () => { },
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
// Inside H2 heading
|
|
47
|
+
export const InH2 = {
|
|
48
|
+
render: args => (_jsx("h2", { children: _jsx(EditableText, { ...args }) })),
|
|
49
|
+
args: {
|
|
50
|
+
text: 'Editable Heading Level 2',
|
|
51
|
+
onEditSave: () => { },
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
// Inside H3 heading
|
|
55
|
+
export const InH3 = {
|
|
56
|
+
render: args => (_jsx("h3", { children: _jsx(EditableText, { ...args }) })),
|
|
57
|
+
args: {
|
|
58
|
+
text: 'Editable Heading Level 3',
|
|
59
|
+
onEditSave: () => { },
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
// Inside H4 heading
|
|
63
|
+
export const InH4 = {
|
|
64
|
+
render: args => (_jsx("h4", { children: _jsx(EditableText, { ...args }) })),
|
|
65
|
+
args: {
|
|
66
|
+
text: 'Editable Heading Level 4',
|
|
67
|
+
onEditSave: () => { },
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
// Inside paragraph
|
|
71
|
+
export const InParagraph = {
|
|
72
|
+
render: args => (_jsx("p", { children: _jsx(EditableText, { ...args }) })),
|
|
73
|
+
args: {
|
|
74
|
+
text: 'Editable paragraph text',
|
|
75
|
+
onEditSave: () => { },
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
// Inside custom styled div
|
|
79
|
+
export const InCustomStyledDiv = {
|
|
80
|
+
render: args => (_jsx("div", { style: { fontSize: '24px', fontWeight: 'bold', color: '#0066cc' }, children: _jsx(EditableText, { ...args }) })),
|
|
81
|
+
args: {
|
|
82
|
+
text: 'Custom styled editable text',
|
|
83
|
+
onEditSave: () => { },
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
// Long text example
|
|
87
|
+
export const LongText = {
|
|
88
|
+
render: args => (_jsx("h2", { children: _jsx(EditableText, { ...args }) })),
|
|
89
|
+
args: {
|
|
90
|
+
text: 'This is a much longer text that demonstrates how the component handles extended content',
|
|
91
|
+
onEditSave: () => { },
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=EditableText.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableText.stories.js","sourceRoot":"","sources":["../../../src/components/editableText/EditableText.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableText.test.d.ts","sourceRoot":"","sources":["../../../src/components/editableText/EditableText.test.tsx"],"names":[],"mappings":"AAGA,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { render, screen, waitFor } from '@testing-library/react';
|
|
3
|
+
import userEvent from '@testing-library/user-event';
|
|
4
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
5
|
+
import '@testing-library/jest-dom/vitest';
|
|
6
|
+
import { EditableText } from './EditableText';
|
|
7
|
+
describe('EditableText', () => {
|
|
8
|
+
const defaultProps = {
|
|
9
|
+
text: 'Test Text',
|
|
10
|
+
onEditSave: vi.fn(),
|
|
11
|
+
};
|
|
12
|
+
it('renders as a span element', () => {
|
|
13
|
+
const { container } = render(_jsx(EditableText, { ...defaultProps }));
|
|
14
|
+
const span = container.querySelector('.ds-editable-text');
|
|
15
|
+
expect(span).toBeInTheDocument();
|
|
16
|
+
expect(span?.tagName).toBe('SPAN');
|
|
17
|
+
});
|
|
18
|
+
it('displays the text in view mode', () => {
|
|
19
|
+
render(_jsx(EditableText, { ...defaultProps }));
|
|
20
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
21
|
+
expect(button).toHaveTextContent('Test Text');
|
|
22
|
+
});
|
|
23
|
+
it('applies custom className', () => {
|
|
24
|
+
const { container } = render(_jsx(EditableText, { ...defaultProps, className: "custom-class" }));
|
|
25
|
+
const span = container.querySelector('.ds-editable-text');
|
|
26
|
+
expect(span).toHaveClass('ds-editable-text', 'custom-class');
|
|
27
|
+
});
|
|
28
|
+
it('renders edit button with pencil icon in view mode', () => {
|
|
29
|
+
render(_jsx(EditableText, { ...defaultProps }));
|
|
30
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
31
|
+
expect(button).toBeInTheDocument();
|
|
32
|
+
expect(button.querySelector('.ds-editable-text__button-icon')).toBeInTheDocument();
|
|
33
|
+
});
|
|
34
|
+
it('enters edit mode when edit button is clicked', async () => {
|
|
35
|
+
const user = userEvent.setup();
|
|
36
|
+
render(_jsx(EditableText, { ...defaultProps }));
|
|
37
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
38
|
+
await user.click(button);
|
|
39
|
+
const input = screen.getByRole('textbox', { name: /text/i });
|
|
40
|
+
expect(input).toBeInTheDocument();
|
|
41
|
+
expect(input).toHaveValue('Test Text');
|
|
42
|
+
expect(input).toHaveFocus();
|
|
43
|
+
});
|
|
44
|
+
it('calls onEditSave when Enter key is pressed', async () => {
|
|
45
|
+
const user = userEvent.setup();
|
|
46
|
+
const onEditSave = vi.fn();
|
|
47
|
+
render(_jsx(EditableText, { ...defaultProps, onEditSave: onEditSave }));
|
|
48
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
49
|
+
await user.click(button);
|
|
50
|
+
const input = screen.getByRole('textbox', { name: /text/i });
|
|
51
|
+
await user.clear(input);
|
|
52
|
+
await user.type(input, 'New Text');
|
|
53
|
+
await user.keyboard('{Enter}');
|
|
54
|
+
expect(onEditSave).toHaveBeenCalledWith('New Text');
|
|
55
|
+
});
|
|
56
|
+
it('calls onEditSave when input is blurred', async () => {
|
|
57
|
+
const user = userEvent.setup();
|
|
58
|
+
const onEditSave = vi.fn();
|
|
59
|
+
render(_jsx(EditableText, { ...defaultProps, onEditSave: onEditSave }));
|
|
60
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
61
|
+
await user.click(button);
|
|
62
|
+
const input = screen.getByRole('textbox', { name: /text/i });
|
|
63
|
+
await user.clear(input);
|
|
64
|
+
await user.type(input, 'Updated Text');
|
|
65
|
+
await user.tab(); // Blur the input
|
|
66
|
+
await waitFor(() => {
|
|
67
|
+
expect(onEditSave).toHaveBeenCalledWith('Updated Text');
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
it('exits edit mode after saving', async () => {
|
|
71
|
+
const user = userEvent.setup();
|
|
72
|
+
render(_jsx(EditableText, { ...defaultProps }));
|
|
73
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
74
|
+
await user.click(button);
|
|
75
|
+
const input = screen.getByRole('textbox', { name: /text/i });
|
|
76
|
+
await user.keyboard('{Enter}');
|
|
77
|
+
await waitFor(() => {
|
|
78
|
+
expect(input).not.toBeInTheDocument();
|
|
79
|
+
expect(screen.getByRole('button', { name: /edit text/i })).toBeInTheDocument();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
it('reverts text when Escape key is pressed', async () => {
|
|
83
|
+
const user = userEvent.setup();
|
|
84
|
+
const onEditSave = vi.fn();
|
|
85
|
+
render(_jsx(EditableText, { ...defaultProps, onEditSave: onEditSave }));
|
|
86
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
87
|
+
await user.click(button);
|
|
88
|
+
const input = screen.getByRole('textbox', { name: /text/i });
|
|
89
|
+
await user.clear(input);
|
|
90
|
+
await user.type(input, 'Changed Text');
|
|
91
|
+
await user.keyboard('{Escape}');
|
|
92
|
+
await waitFor(() => {
|
|
93
|
+
expect(onEditSave).not.toHaveBeenCalled();
|
|
94
|
+
const viewButton = screen.getByRole('button', { name: /edit text/i });
|
|
95
|
+
expect(viewButton).toHaveTextContent('Test Text');
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
it('updates text when text prop changes', () => {
|
|
99
|
+
const { rerender } = render(_jsx(EditableText, { ...defaultProps, text: "Original" }));
|
|
100
|
+
expect(screen.getByRole('button', { name: /edit text/i })).toHaveTextContent('Original');
|
|
101
|
+
rerender(_jsx(EditableText, { ...defaultProps, text: "Updated" }));
|
|
102
|
+
expect(screen.getByRole('button', { name: /edit text/i })).toHaveTextContent('Updated');
|
|
103
|
+
});
|
|
104
|
+
it('starts in edit mode when isEditing prop is true', () => {
|
|
105
|
+
render(_jsx(EditableText, { ...defaultProps, isEditing: true }));
|
|
106
|
+
const input = screen.getByRole('textbox', { name: /text/i });
|
|
107
|
+
expect(input).toBeInTheDocument();
|
|
108
|
+
expect(input).toHaveValue('Test Text');
|
|
109
|
+
});
|
|
110
|
+
it('switches to edit mode when isEditing prop changes to true', () => {
|
|
111
|
+
const { rerender } = render(_jsx(EditableText, { ...defaultProps, isEditing: false }));
|
|
112
|
+
expect(screen.getByRole('button', { name: /edit text/i })).toBeInTheDocument();
|
|
113
|
+
rerender(_jsx(EditableText, { ...defaultProps, isEditing: true }));
|
|
114
|
+
expect(screen.getByRole('textbox', { name: /text/i })).toBeInTheDocument();
|
|
115
|
+
});
|
|
116
|
+
it('preserves text value across edit sessions', async () => {
|
|
117
|
+
const user = userEvent.setup();
|
|
118
|
+
const onEditSave = vi.fn();
|
|
119
|
+
render(_jsx(EditableText, { ...defaultProps, onEditSave: onEditSave }));
|
|
120
|
+
// First edit
|
|
121
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
122
|
+
await user.click(button);
|
|
123
|
+
const input = screen.getByRole('textbox', { name: /text/i });
|
|
124
|
+
await user.clear(input);
|
|
125
|
+
await user.type(input, 'First Edit');
|
|
126
|
+
await user.keyboard('{Enter}');
|
|
127
|
+
await waitFor(() => {
|
|
128
|
+
expect(onEditSave).toHaveBeenCalledWith('First Edit');
|
|
129
|
+
});
|
|
130
|
+
// Second edit - should start with previous saved value
|
|
131
|
+
const buttonAgain = await screen.findByRole('button', { name: /edit text/i });
|
|
132
|
+
await user.click(buttonAgain);
|
|
133
|
+
const inputAgain = screen.getByRole('textbox', { name: /text/i });
|
|
134
|
+
expect(inputAgain).toHaveValue('First Edit');
|
|
135
|
+
await user.clear(inputAgain);
|
|
136
|
+
await user.type(inputAgain, 'Second Edit');
|
|
137
|
+
await user.keyboard('{Escape}'); // Cancel this time
|
|
138
|
+
// Should still have first edit value
|
|
139
|
+
await waitFor(() => {
|
|
140
|
+
const finalButton = screen.getByRole('button', { name: /edit text/i });
|
|
141
|
+
expect(finalButton).toHaveTextContent('First Edit');
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
it('inherits styles from parent element', () => {
|
|
145
|
+
const { container } = render(_jsx("h1", { style: { fontSize: '32px', fontWeight: 'bold' }, children: _jsx(EditableText, { ...defaultProps }) }));
|
|
146
|
+
const span = container.querySelector('.ds-editable-text');
|
|
147
|
+
expect(span).toBeInTheDocument();
|
|
148
|
+
// Component should inherit font-size and font-weight from parent h1
|
|
149
|
+
});
|
|
150
|
+
it('renders textarea when multiline is true', async () => {
|
|
151
|
+
const user = userEvent.setup();
|
|
152
|
+
render(_jsx(EditableText, { ...defaultProps, multiline: true }));
|
|
153
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
154
|
+
await user.click(button);
|
|
155
|
+
const textarea = screen.getByRole('textbox', { name: /text/i });
|
|
156
|
+
expect(textarea).toBeInTheDocument();
|
|
157
|
+
expect(textarea.tagName).toBe('TEXTAREA');
|
|
158
|
+
});
|
|
159
|
+
it('does not save on Enter key when multiline is true', async () => {
|
|
160
|
+
const user = userEvent.setup();
|
|
161
|
+
const onEditSave = vi.fn();
|
|
162
|
+
render(_jsx(EditableText, { ...defaultProps, onEditSave: onEditSave, multiline: true }));
|
|
163
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
164
|
+
await user.click(button);
|
|
165
|
+
const textarea = screen.getByRole('textbox', { name: /text/i });
|
|
166
|
+
await user.clear(textarea);
|
|
167
|
+
await user.type(textarea, 'Line 1{Enter}Line 2');
|
|
168
|
+
// Enter should NOT trigger save in multiline mode
|
|
169
|
+
expect(onEditSave).not.toHaveBeenCalled();
|
|
170
|
+
expect(textarea).toHaveValue('Line 1\nLine 2');
|
|
171
|
+
});
|
|
172
|
+
it('saves multiline text on blur', async () => {
|
|
173
|
+
const user = userEvent.setup();
|
|
174
|
+
const onEditSave = vi.fn();
|
|
175
|
+
render(_jsx(EditableText, { ...defaultProps, onEditSave: onEditSave, multiline: true }));
|
|
176
|
+
const button = screen.getByRole('button', { name: /edit text/i });
|
|
177
|
+
await user.click(button);
|
|
178
|
+
const textarea = screen.getByRole('textbox', { name: /text/i });
|
|
179
|
+
await user.clear(textarea);
|
|
180
|
+
await user.type(textarea, 'Line 1{Enter}Line 2{Enter}Line 3');
|
|
181
|
+
await user.tab(); // Blur the textarea
|
|
182
|
+
await waitFor(() => {
|
|
183
|
+
expect(onEditSave).toHaveBeenCalledWith('Line 1\nLine 2\nLine 3');
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
//# sourceMappingURL=EditableText.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditableText.test.js","sourceRoot":"","sources":["../../../src/components/editableText/EditableText.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,14 @@ export declare const Default: {
|
|
|
6
6
|
children: string[];
|
|
7
7
|
level: number;
|
|
8
8
|
};
|
|
9
|
+
argTypes: {
|
|
10
|
+
level: {
|
|
11
|
+
control: string;
|
|
12
|
+
options: number[];
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
tags: string[];
|
|
9
17
|
};
|
|
10
18
|
export declare const FloatingChildren: {
|
|
11
19
|
args: {
|
|
@@ -31,5 +39,23 @@ export declare const HeadingWithButtonsBothSides: {
|
|
|
31
39
|
children: import("react/jsx-runtime").JSX.Element[];
|
|
32
40
|
};
|
|
33
41
|
};
|
|
42
|
+
export declare const HeadingWithEditableText: {
|
|
43
|
+
args: {
|
|
44
|
+
level: number;
|
|
45
|
+
children: import("react/jsx-runtime").JSX.Element[];
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export declare const HeadingWithEditableTextAndButton: {
|
|
49
|
+
args: {
|
|
50
|
+
level: number;
|
|
51
|
+
children: import("react/jsx-runtime").JSX.Element[];
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export declare const HeadingWithEditableTextAndButtonsBothSides: {
|
|
55
|
+
args: {
|
|
56
|
+
level: number;
|
|
57
|
+
children: import("react/jsx-runtime").JSX.Element[];
|
|
58
|
+
};
|
|
59
|
+
};
|
|
34
60
|
export default meta;
|
|
35
61
|
//# sourceMappingURL=Heading.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Heading.stories.d.ts","sourceRoot":"","sources":["../../../src/components/heading/Heading.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Heading.stories.d.ts","sourceRoot":"","sources":["../../../src/components/heading/Heading.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAG9B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;;;CAanB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;CAanC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;CAiBtC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;CAuBvC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;CAOnC,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;CAa5C,CAAC;AAEF,eAAO,MAAM,0CAA0C;;;;;CAuBtD,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Heading } from './Heading';
|
|
3
3
|
import { Button } from '../button/Button';
|
|
4
4
|
import { Icon } from '../icon/Icon';
|
|
5
|
+
import { EditableText } from '../editableText/EditableText';
|
|
5
6
|
const meta = {
|
|
6
7
|
title: 'Components/Heading',
|
|
7
8
|
component: Heading,
|
|
@@ -11,6 +12,14 @@ export const Default = {
|
|
|
11
12
|
children: ['Heading Text'],
|
|
12
13
|
level: 1,
|
|
13
14
|
},
|
|
15
|
+
argTypes: {
|
|
16
|
+
level: {
|
|
17
|
+
control: 'select',
|
|
18
|
+
options: [1, 2, 3, 4],
|
|
19
|
+
description: 'Heading level (h1-h4)',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
tags: ['autodocs'],
|
|
14
23
|
};
|
|
15
24
|
export const FloatingChildren = {
|
|
16
25
|
args: {
|
|
@@ -45,5 +54,31 @@ export const HeadingWithButtonsBothSides = {
|
|
|
45
54
|
],
|
|
46
55
|
},
|
|
47
56
|
};
|
|
57
|
+
export const HeadingWithEditableText = {
|
|
58
|
+
args: {
|
|
59
|
+
level: 1,
|
|
60
|
+
children: [
|
|
61
|
+
_jsx(EditableText, { text: "Editable Heading", onEditSave: () => { } }, 2),
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
export const HeadingWithEditableTextAndButton = {
|
|
66
|
+
args: {
|
|
67
|
+
level: 1,
|
|
68
|
+
children: [
|
|
69
|
+
_jsx(Heading.InnerContainer, { children: _jsx(EditableText, { text: "Editable Heading", onEditSave: () => { } }) }, 1),
|
|
70
|
+
_jsx(Heading.InnerContainer, { children: _jsxs(Button, { children: [_jsx(Icon, { name: "info" }), "Button Text"] }) }, 2),
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
export const HeadingWithEditableTextAndButtonsBothSides = {
|
|
75
|
+
args: {
|
|
76
|
+
level: 1,
|
|
77
|
+
children: [
|
|
78
|
+
_jsxs(Heading.InnerContainer, { className: "medium-spacing-gap", children: [_jsxs(Button, { variant: "tertiary", children: [_jsx(Icon, { name: "chevron-left" }), "Button Text"] }), _jsx(EditableText, { text: "Editable Heading", onEditSave: () => { } })] }, 1),
|
|
79
|
+
_jsxs(Heading.InnerContainer, { className: "medium-spacing-gap", children: [_jsxs(Button, { variant: "secondary", children: [_jsx(Icon, { name: "info" }), "Button Text"] }), _jsxs(Button, { children: [_jsx(Icon, { name: "info" }), "Button Text"] })] }, 2),
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
};
|
|
48
83
|
export default meta;
|
|
49
84
|
//# sourceMappingURL=Heading.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Heading.stories.js","sourceRoot":"","sources":["../../../src/components/heading/Heading.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Heading.stories.js","sourceRoot":"","sources":["../../../src/components/heading/Heading.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Progress as RadixProgress } from 'radix-ui';
|
|
2
|
+
export type ProgressProps = RadixProgress.ProgressProps & {
|
|
3
|
+
indicatorClassName?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const Progress: (props: ProgressProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=Progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,GAAG;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,4CAQ5C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { Progress as RadixProgress } from 'radix-ui';
|
|
4
|
+
export const Progress = (props) => {
|
|
5
|
+
const { value = 0, max = 100, className = '', indicatorClassName = '', ...rest } = props;
|
|
6
|
+
const percentage = (Number(value) / max) * 100;
|
|
7
|
+
return (_jsx(RadixProgress.Root, { value: value, max: max, ...rest, className: classNames('ds-progress', className), children: _jsx(RadixProgress.Indicator, { style: { transform: `translateX(-${100 - percentage}%)` }, className: classNames('ds-progress__indicator', indicatorClassName) }) }));
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=Progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.js","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAMrD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC/C,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE,kBAAkB,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACzF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC/C,OAAO,CACL,KAAC,aAAa,CAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAM,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,YACnG,KAAC,aAAa,CAAC,SAAS,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,GAAG,GAAG,UAAU,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,GAAI,GACxI,CACtB,CAAC;AACJ,CAAC,CAAC"}
|