design-react-kit 5.6.0 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/dist/Accordion/AccordionBody.cjs +1 -1
- package/dist/Accordion/AccordionBody.cjs.map +1 -1
- package/dist/Accordion/AccordionBody.js +31 -21
- package/dist/Accordion/AccordionBody.js.map +1 -1
- package/dist/Accordion/AccordionHeader.cjs +1 -1
- package/dist/Accordion/AccordionHeader.cjs.map +1 -1
- package/dist/Accordion/AccordionHeader.js +1 -1
- package/dist/Accordion/AccordionHeader.js.map +1 -1
- package/dist/Autocomplete/Autocomplete.cjs +1 -3
- package/dist/Autocomplete/Autocomplete.cjs.map +1 -1
- package/dist/Autocomplete/Autocomplete.js +27 -4
- package/dist/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/Carousel/Carousel.cjs +2 -0
- package/dist/Carousel/Carousel.cjs.map +1 -0
- package/dist/Carousel/Carousel.js +193 -0
- package/dist/Carousel/Carousel.js.map +1 -0
- package/dist/Carousel/CarouselSlide.cjs +2 -0
- package/dist/Carousel/CarouselSlide.cjs.map +1 -0
- package/dist/Carousel/CarouselSlide.js +8 -0
- package/dist/Carousel/CarouselSlide.js.map +1 -0
- package/dist/Input/Input.cjs +1 -1
- package/dist/Input/Input.cjs.map +1 -1
- package/dist/Input/Input.js +3 -9
- package/dist/Input/Input.js.map +1 -1
- package/dist/Input/TextArea.cjs +1 -1
- package/dist/Input/TextArea.cjs.map +1 -1
- package/dist/Input/utils.cjs +1 -1
- package/dist/Input/utils.cjs.map +1 -1
- package/dist/Input/utils.js +2 -4
- package/dist/Input/utils.js.map +1 -1
- package/dist/Rating/Rating.cjs +1 -1
- package/dist/Rating/Rating.cjs.map +1 -1
- package/dist/Transfer/BacktransferButton.cjs +2 -0
- package/dist/Transfer/BacktransferButton.cjs.map +1 -0
- package/dist/Transfer/BacktransferButton.js +20 -0
- package/dist/Transfer/BacktransferButton.js.map +1 -0
- package/dist/Transfer/Item.cjs +2 -0
- package/dist/Transfer/Item.cjs.map +1 -0
- package/dist/Transfer/Item.js +15 -0
- package/dist/Transfer/Item.js.map +1 -0
- package/dist/Transfer/ResetButton.cjs +2 -0
- package/dist/Transfer/ResetButton.cjs.map +1 -0
- package/dist/Transfer/ResetButton.js +16 -0
- package/dist/Transfer/ResetButton.js.map +1 -0
- package/dist/Transfer/SelectAllCheckbox.cjs +2 -0
- package/dist/Transfer/SelectAllCheckbox.cjs.map +1 -0
- package/dist/Transfer/SelectAllCheckbox.js +11 -0
- package/dist/Transfer/SelectAllCheckbox.js.map +1 -0
- package/dist/Transfer/Source.cjs +2 -0
- package/dist/Transfer/Source.cjs.map +1 -0
- package/dist/Transfer/Source.js +61 -0
- package/dist/Transfer/Source.js.map +1 -0
- package/dist/Transfer/Target.cjs +2 -0
- package/dist/Transfer/Target.cjs.map +1 -0
- package/dist/Transfer/Target.js +60 -0
- package/dist/Transfer/Target.js.map +1 -0
- package/dist/Transfer/Transfer.cjs +2 -0
- package/dist/Transfer/Transfer.cjs.map +1 -0
- package/dist/Transfer/Transfer.js +21 -0
- package/dist/Transfer/Transfer.js.map +1 -0
- package/dist/Transfer/TransferButton.cjs +2 -0
- package/dist/Transfer/TransferButton.cjs.map +1 -0
- package/dist/Transfer/TransferButton.js +20 -0
- package/dist/Transfer/TransferButton.js.map +1 -0
- package/dist/Transfer/useTransferContext.cjs +2 -0
- package/dist/Transfer/useTransferContext.cjs.map +1 -0
- package/dist/Transfer/useTransferContext.js +63 -0
- package/dist/Transfer/useTransferContext.js.map +1 -0
- package/dist/Video/Video.cjs +2 -0
- package/dist/Video/Video.cjs.map +1 -0
- package/dist/Video/Video.js +99 -0
- package/dist/Video/Video.js.map +1 -0
- package/dist/index.cjs +1 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/types/Autocomplete/Autocomplete.d.ts +10 -5
- package/dist/types/Carousel/Carousel.d.ts +7 -0
- package/dist/types/Carousel/CarouselSlide.d.ts +2 -0
- package/dist/types/Input/Input.d.ts +2 -4
- package/dist/types/Input/utils.d.ts +1 -1
- package/dist/types/Transfer/BacktransferButton.d.ts +3 -0
- package/dist/types/Transfer/Item.d.ts +12 -0
- package/dist/types/Transfer/ResetButton.d.ts +3 -0
- package/dist/types/Transfer/SelectAllCheckbox.d.ts +10 -0
- package/dist/types/Transfer/Source.d.ts +9 -0
- package/dist/types/Transfer/Target.d.ts +9 -0
- package/dist/types/Transfer/Transfer.d.ts +40 -0
- package/dist/types/Transfer/TransferButton.d.ts +3 -0
- package/dist/types/Transfer/useTransferContext.d.ts +49 -0
- package/dist/types/Video/Video.d.ts +58 -0
- package/dist/types/index.d.ts +6 -0
- package/package.json +6 -3
- package/src/Accordion/AccordionBody.tsx +32 -22
- package/src/Accordion/AccordionHeader.tsx +0 -1
- package/src/Autocomplete/Autocomplete.tsx +69 -18
- package/src/Carousel/Carousel.tsx +210 -0
- package/src/Carousel/CarouselSlide.tsx +14 -0
- package/src/Input/Input.tsx +10 -19
- package/src/Input/utils.tsx +3 -5
- package/src/Transfer/BacktransferButton.tsx +33 -0
- package/src/Transfer/Item.tsx +33 -0
- package/src/Transfer/ResetButton.tsx +28 -0
- package/src/Transfer/SelectAllCheckbox.tsx +30 -0
- package/src/Transfer/Source.tsx +89 -0
- package/src/Transfer/Target.tsx +87 -0
- package/src/Transfer/Transfer.tsx +31 -0
- package/src/Transfer/TransferButton.tsx +33 -0
- package/src/Transfer/useTransferContext.tsx +110 -0
- package/src/Video/Video.tsx +205 -0
- package/src/index.ts +6 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import React, { createContext, useContext, useMemo, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
interface TransferContextType {
|
|
4
|
+
sourceItems: { id: string; content: React.ReactNode }[];
|
|
5
|
+
targetItems: { id: string; content: React.ReactNode }[];
|
|
6
|
+
sourceCandidates: string[];
|
|
7
|
+
targetCandidates: string[];
|
|
8
|
+
setSourceItems: ({
|
|
9
|
+
items,
|
|
10
|
+
setOriginals
|
|
11
|
+
}: {
|
|
12
|
+
items: { id: string; content: React.ReactNode }[];
|
|
13
|
+
setOriginals?: boolean;
|
|
14
|
+
}) => void;
|
|
15
|
+
setTargetItems: ({
|
|
16
|
+
items,
|
|
17
|
+
setOriginals
|
|
18
|
+
}: {
|
|
19
|
+
items: { id: string; content: React.ReactNode }[];
|
|
20
|
+
setOriginals?: boolean;
|
|
21
|
+
}) => void;
|
|
22
|
+
setSourceCandidates: (items: string[]) => void;
|
|
23
|
+
setTargetCandidates: (items: string[]) => void;
|
|
24
|
+
isChanged: boolean;
|
|
25
|
+
reset: () => void;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const TransferContext = createContext<TransferContextType>({
|
|
29
|
+
sourceItems: [],
|
|
30
|
+
targetItems: [],
|
|
31
|
+
sourceCandidates: [],
|
|
32
|
+
targetCandidates: [],
|
|
33
|
+
setSourceItems: () => {},
|
|
34
|
+
setTargetItems: () => {},
|
|
35
|
+
setSourceCandidates: () => {},
|
|
36
|
+
setTargetCandidates: () => {},
|
|
37
|
+
isChanged: false,
|
|
38
|
+
reset: () => {}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export const useTransferContext = () => useContext(TransferContext);
|
|
42
|
+
|
|
43
|
+
export const TransferContextProvider = ({ children }: { children: React.ReactNode }) => {
|
|
44
|
+
const [sourceItems, setSourceItems] = useState<{ id: string; content: React.ReactNode }[]>([]);
|
|
45
|
+
const [targetItems, setTargetItems] = useState<{ id: string; content: React.ReactNode }[]>([]);
|
|
46
|
+
const [sourceCandidates, setSourceCandidates] = useState<string[]>([]);
|
|
47
|
+
const [targetCandidates, setTargetCandidates] = useState<string[]>([]);
|
|
48
|
+
const [originalSourceItems, setOriginalSourceItems] = useState<{ id: string; content: React.ReactNode }[]>([]);
|
|
49
|
+
const [originalTargetItems, setOriginalTargetItems] = useState<{ id: string; content: React.ReactNode }[]>([]);
|
|
50
|
+
|
|
51
|
+
const value = useMemo(
|
|
52
|
+
() => ({
|
|
53
|
+
sourceCandidates,
|
|
54
|
+
targetCandidates,
|
|
55
|
+
sourceItems,
|
|
56
|
+
targetItems,
|
|
57
|
+
setSourceItems: ({
|
|
58
|
+
items,
|
|
59
|
+
setOriginals
|
|
60
|
+
}: {
|
|
61
|
+
items: { id: string; content: React.ReactNode }[];
|
|
62
|
+
setOriginals?: boolean;
|
|
63
|
+
}) => {
|
|
64
|
+
setSourceItems(items);
|
|
65
|
+
if (setOriginals) {
|
|
66
|
+
setOriginalSourceItems(items);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
setTargetItems: ({
|
|
70
|
+
items,
|
|
71
|
+
setOriginals
|
|
72
|
+
}: {
|
|
73
|
+
items: { id: string; content: React.ReactNode }[];
|
|
74
|
+
setOriginals?: boolean;
|
|
75
|
+
}) => {
|
|
76
|
+
setTargetItems(items);
|
|
77
|
+
if (setOriginals) {
|
|
78
|
+
setOriginalTargetItems(items);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
setSourceCandidates,
|
|
82
|
+
setTargetCandidates,
|
|
83
|
+
reset: () => {
|
|
84
|
+
setSourceItems(originalSourceItems);
|
|
85
|
+
setTargetItems(originalTargetItems);
|
|
86
|
+
setSourceCandidates([]);
|
|
87
|
+
setTargetCandidates([]);
|
|
88
|
+
},
|
|
89
|
+
isChanged:
|
|
90
|
+
JSON.stringify(sourceItems) !== JSON.stringify(originalSourceItems) ||
|
|
91
|
+
JSON.stringify(targetItems) !== JSON.stringify(originalTargetItems)
|
|
92
|
+
}),
|
|
93
|
+
[sourceItems, targetItems, sourceCandidates, targetCandidates, originalSourceItems, originalTargetItems]
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
return <TransferContext.Provider value={value}>{children}</TransferContext.Provider>;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const useTransfer = () => {
|
|
100
|
+
const { sourceItems, targetItems, sourceCandidates, targetCandidates } = useTransferContext();
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
source: sourceItems.map((item) => {
|
|
104
|
+
return { ...item, checked: sourceCandidates.includes(item.id) };
|
|
105
|
+
}),
|
|
106
|
+
target: targetItems.map((item) => {
|
|
107
|
+
return { ...item, checked: targetCandidates.includes(item.id) };
|
|
108
|
+
})
|
|
109
|
+
};
|
|
110
|
+
};
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import React, { FC, useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
import { VideoPlayer } from 'bootstrap-italia';
|
|
4
|
+
import { Input } from '../Input/Input';
|
|
5
|
+
import { Accordion } from '../Accordion/Accordion';
|
|
6
|
+
import { AccordionItem } from '../Accordion/AccordionItem';
|
|
7
|
+
import { AccordionHeader } from '../Accordion/AccordionHeader';
|
|
8
|
+
import { AccordionBody } from '../Accordion/AccordionBody';
|
|
9
|
+
import { Dimmer } from '../Dimmer/Dimmer';
|
|
10
|
+
import { DimmerButtons } from '../Dimmer/DimmerButtons';
|
|
11
|
+
import { Button } from '../Button/Button';
|
|
12
|
+
import { FormGroup, Label } from 'reactstrap';
|
|
13
|
+
import { Icon } from '../Icon/Icon';
|
|
14
|
+
|
|
15
|
+
export interface VideoSource {
|
|
16
|
+
/** Sorgente del video */
|
|
17
|
+
src: string;
|
|
18
|
+
/** Tipo della sorgente video */
|
|
19
|
+
type: string;
|
|
20
|
+
}
|
|
21
|
+
export interface VideoTrackSource {
|
|
22
|
+
/** Tipologia di traccia audio */
|
|
23
|
+
kind: string;
|
|
24
|
+
/** Sorgente della traccia audio */
|
|
25
|
+
src: string;
|
|
26
|
+
/** Lingua della traccia audio */
|
|
27
|
+
srcLang: string;
|
|
28
|
+
/** Label della traccia audio */
|
|
29
|
+
label: string;
|
|
30
|
+
/** Setta la traccia audio come default */
|
|
31
|
+
isDefault?: boolean;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface VideoYouTube {
|
|
35
|
+
/** Url del video YouTube */
|
|
36
|
+
url: string;
|
|
37
|
+
/** Attiva o meno il disclaimer */
|
|
38
|
+
hasDisclaimer?: boolean;
|
|
39
|
+
/** Testo del disclaimer */
|
|
40
|
+
disclaimerText?: string;
|
|
41
|
+
/** Chiave del disclaimer come preferenza */
|
|
42
|
+
disclaimerKey?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface VideoProps {
|
|
45
|
+
/** Id del componente Video */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Sorgenti del video */
|
|
48
|
+
sources?: Array<VideoSource>;
|
|
49
|
+
/** Testo della trascrizione */
|
|
50
|
+
transcription?: string;
|
|
51
|
+
/** Label dell'accordion della trascrizione */
|
|
52
|
+
transcriptionLabel?: string;
|
|
53
|
+
/** Array delle tracce */
|
|
54
|
+
tracks?: Array<VideoTrackSource>;
|
|
55
|
+
/** Url del poster */
|
|
56
|
+
poster?: string;
|
|
57
|
+
/** Attiva o meno i controlli */
|
|
58
|
+
controls?: boolean;
|
|
59
|
+
/** Attiva o meno l'autoplay */
|
|
60
|
+
autoPlay?: boolean;
|
|
61
|
+
/** Attiva o meno il loop del video */
|
|
62
|
+
loop?: boolean;
|
|
63
|
+
/** Modalità visualizzazione fluida */
|
|
64
|
+
fluid?: boolean;
|
|
65
|
+
/** Video YouTube */
|
|
66
|
+
youtube?: VideoYouTube;
|
|
67
|
+
/** Label del pulsante di accettazione */
|
|
68
|
+
acceptLabel?: string;
|
|
69
|
+
/** Label della checkbox per ricordare la scelta di accettazione */
|
|
70
|
+
rememberLabel?: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export const Video: FC<VideoProps> = (props) => {
|
|
74
|
+
const [showTranscript, setShowTranscript] = React.useState(false);
|
|
75
|
+
const [showDisclaimer, setShowDisclaimer] = React.useState(false);
|
|
76
|
+
const [instance, setInstance] = React.useState<VideoPlayer>();
|
|
77
|
+
const [rememberFlag, setRememberFlag] = React.useState(false);
|
|
78
|
+
const [disclaimerText, setDisclaimerText] = React.useState(
|
|
79
|
+
`Accetta i cookie di YouTube per vedere il video. Puoi gestire le preferenze nella cookie policy.`
|
|
80
|
+
);
|
|
81
|
+
const ref = useRef<HTMLVideoElement>(null);
|
|
82
|
+
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
const el = ref.current;
|
|
85
|
+
if (el && VideoPlayer && !instance) {
|
|
86
|
+
setInstance(new VideoPlayer(el))
|
|
87
|
+
}
|
|
88
|
+
if (props.youtube?.url) {
|
|
89
|
+
if (props.youtube.hasDisclaimer) {
|
|
90
|
+
const serviceName = props.youtube.disclaimerKey || 'youtube';
|
|
91
|
+
const rememberFlag = localStorage.getItem(serviceName);
|
|
92
|
+
if (props.youtube.disclaimerText) {
|
|
93
|
+
setDisclaimerText(props.youtube.disclaimerText);
|
|
94
|
+
}
|
|
95
|
+
setRememberFlag(rememberFlag == 'true');
|
|
96
|
+
if (rememberFlag == 'true') {
|
|
97
|
+
setShowDisclaimer(false);
|
|
98
|
+
loadYouTubeVideo(props.youtube.url);
|
|
99
|
+
} else {
|
|
100
|
+
setShowDisclaimer(true);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (props.autoPlay) {
|
|
106
|
+
setTimeout(() => {
|
|
107
|
+
instance?.player?.play();
|
|
108
|
+
}, 1000);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return () => {
|
|
112
|
+
if (instance) {
|
|
113
|
+
instance.dispose();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}, [instance]);
|
|
117
|
+
|
|
118
|
+
const loadYouTubeVideo = (url: string) => {
|
|
119
|
+
if (instance) {
|
|
120
|
+
instance.setYouTubeVideo(url);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const { controls = true, autoPlay = false, loop = false, fluid = true, poster = undefined } = props;
|
|
125
|
+
const videoProps = { controls, autoPlay, loop, fluid, poster };
|
|
126
|
+
|
|
127
|
+
return (
|
|
128
|
+
<>
|
|
129
|
+
<div className='row dimmable'>
|
|
130
|
+
<video {...videoProps} ref={ref} preload='auto' className='video-js' data-bs-video={true}>
|
|
131
|
+
{props.sources?.map((source) => <source key={source.src} src={source.src} type={source.type} />)}
|
|
132
|
+
{props.tracks?.map((track) => {
|
|
133
|
+
const { src, kind, label, srcLang, isDefault } = track;
|
|
134
|
+
return (
|
|
135
|
+
<track
|
|
136
|
+
key={src}
|
|
137
|
+
kind={kind}
|
|
138
|
+
src={src}
|
|
139
|
+
srcLang={srcLang || ''}
|
|
140
|
+
label={label}
|
|
141
|
+
default={isDefault || false}
|
|
142
|
+
/>
|
|
143
|
+
);
|
|
144
|
+
})}
|
|
145
|
+
</video>
|
|
146
|
+
{props.transcription && (
|
|
147
|
+
<Accordion className='vjs-transcription'>
|
|
148
|
+
<AccordionItem>
|
|
149
|
+
<AccordionHeader active={showTranscript} onToggle={() => setShowTranscript((p) => !p)}>
|
|
150
|
+
{props.transcriptionLabel || 'Trascrizione'}
|
|
151
|
+
</AccordionHeader>
|
|
152
|
+
<AccordionBody active={showTranscript}>{props.transcription}</AccordionBody>
|
|
153
|
+
</AccordionItem>
|
|
154
|
+
</Accordion>
|
|
155
|
+
)}
|
|
156
|
+
<Dimmer
|
|
157
|
+
show={showDisclaimer}
|
|
158
|
+
className='acceptoverlay-inner'
|
|
159
|
+
wrapperClassName='acceptoverlay acceptoverlay-primary '
|
|
160
|
+
>
|
|
161
|
+
<div className='acceptoverlay-icon'>
|
|
162
|
+
<Icon icon='it-video' size='xl' className=''></Icon>
|
|
163
|
+
</div>
|
|
164
|
+
<p dangerouslySetInnerHTML={{ __html: disclaimerText }}></p>
|
|
165
|
+
<DimmerButtons className='bg-primary'>
|
|
166
|
+
<Button
|
|
167
|
+
onClick={() => {
|
|
168
|
+
if (props.youtube?.url) {
|
|
169
|
+
if (props.youtube.hasDisclaimer) {
|
|
170
|
+
const serviceName = props.youtube.disclaimerKey || 'youtube';
|
|
171
|
+
if (rememberFlag) {
|
|
172
|
+
// set cookie
|
|
173
|
+
localStorage.setItem(serviceName, 'true');
|
|
174
|
+
} else {
|
|
175
|
+
// reset cookie
|
|
176
|
+
localStorage.removeItem(serviceName);
|
|
177
|
+
}
|
|
178
|
+
loadYouTubeVideo(props.youtube.url);
|
|
179
|
+
}
|
|
180
|
+
setShowDisclaimer(false);
|
|
181
|
+
}
|
|
182
|
+
}}
|
|
183
|
+
color='primary'
|
|
184
|
+
>
|
|
185
|
+
{props.acceptLabel || 'Accetta'}
|
|
186
|
+
</Button>
|
|
187
|
+
<div className='d-flex align-items-center ml-2'>
|
|
188
|
+
<FormGroup check inline>
|
|
189
|
+
<Input
|
|
190
|
+
id={`inline-checkbox_${props.id}`}
|
|
191
|
+
type='checkbox'
|
|
192
|
+
checked={rememberFlag}
|
|
193
|
+
onChange={() => setRememberFlag((p) => !p)}
|
|
194
|
+
/>
|
|
195
|
+
<Label check for={`inline-checkbox_${props.id}`} defaultChecked={false} className='text-white'>
|
|
196
|
+
{props.rememberLabel || 'Ricorda per tutti i video'}
|
|
197
|
+
</Label>
|
|
198
|
+
</FormGroup>
|
|
199
|
+
</div>
|
|
200
|
+
</DimmerButtons>
|
|
201
|
+
</Dimmer>
|
|
202
|
+
</div>
|
|
203
|
+
</>
|
|
204
|
+
);
|
|
205
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -79,6 +79,8 @@ export { CardTag } from './Card/CardTag';
|
|
|
79
79
|
export { CardTagsHeader } from './Card/CardTagsHeader';
|
|
80
80
|
export { CardText } from './Card/CardText';
|
|
81
81
|
export { CardTitle } from './Card/CardTitle';
|
|
82
|
+
export { Carousel } from './Carousel/Carousel';
|
|
83
|
+
export { CarouselSlide } from './Carousel/CarouselSlide';
|
|
82
84
|
export { Chip } from './Chips/Chip';
|
|
83
85
|
export { ChipLabel } from './Chips/ChipLabel';
|
|
84
86
|
export { Collapse } from './Collapse/Collapse';
|
|
@@ -146,6 +148,8 @@ export { Toggle } from './Toggle/Toggle';
|
|
|
146
148
|
export { Toolbar } from './Toolbar/Toolbar';
|
|
147
149
|
export { ToolbarDividerItem } from './Toolbar/ToolbarDividerItem';
|
|
148
150
|
export { ToolbarItem } from './Toolbar/ToolbarItem';
|
|
151
|
+
export { Transfer } from './Transfer/Transfer';
|
|
152
|
+
export { Video } from './Video/Video'
|
|
149
153
|
|
|
150
154
|
// Types
|
|
151
155
|
export type { AccordionProps } from './Accordion/Accordion';
|
|
@@ -177,6 +181,7 @@ export type { CardTagProps } from './Card/CardTag';
|
|
|
177
181
|
export type { CardTagsHeaderProps } from './Card/CardTagsHeader';
|
|
178
182
|
export type { CardTextProps } from './Card/CardText';
|
|
179
183
|
export type { CardTitleProps } from './Card/CardTitle';
|
|
184
|
+
export type { CarouselProps } from './Carousel/Carousel';
|
|
180
185
|
export type { ChipProps } from './Chips/Chip';
|
|
181
186
|
export type { ChipLabelProps } from './Chips/ChipLabel';
|
|
182
187
|
export type { DimmerProps } from './Dimmer/Dimmer';
|
|
@@ -254,6 +259,7 @@ export type { TimelineProps } from './Timeline/TimelineWrapper';
|
|
|
254
259
|
export type { ToggleProps } from './Toggle/Toggle';
|
|
255
260
|
export type { ToolbarProps } from './Toolbar/Toolbar';
|
|
256
261
|
export type { ToolbarItemBadge, ToolbarItemProps } from './Toolbar/ToolbarItem';
|
|
262
|
+
export type { VideoProps, VideoYouTube, VideoSource, VideoTrackSource } from "./Video/Video"
|
|
257
263
|
|
|
258
264
|
export type {
|
|
259
265
|
BreadcrumbItemProps,
|