@carbon-labs/react-animated-header 0.3.0 → 0.4.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/es/__stories__/AnimatedHeader.stories.d.ts +497 -587
- package/es/__stories__/data/index.d.ts +18 -8
- package/es/components/AnimatedHeader/AnimatedHeader.d.ts +26 -15
- package/es/components/AnimatedHeader/AnimatedHeader.js +63 -65
- package/es/components/Tiles/AIPromptTile/AIPromptTile.d.ts +3 -3
- package/es/components/Tiles/AIPromptTile/AIPromptTile.js +7 -5
- package/es/components/Tiles/GlassTile/GlassTile.d.ts +3 -3
- package/es/components/Tiles/GlassTile/GlassTile.js +4 -4
- package/es/node_modules/@carbon/icons-react/es/Icon.js +1 -1
- package/lib/__stories__/AnimatedHeader.stories.d.ts +497 -587
- package/lib/__stories__/data/index.d.ts +18 -8
- package/lib/components/AnimatedHeader/AnimatedHeader.d.ts +26 -15
- package/lib/components/AnimatedHeader/AnimatedHeader.js +62 -64
- package/lib/components/Tiles/AIPromptTile/AIPromptTile.d.ts +3 -3
- package/lib/components/Tiles/AIPromptTile/AIPromptTile.js +7 -5
- package/lib/components/Tiles/GlassTile/GlassTile.d.ts +3 -3
- package/lib/components/Tiles/GlassTile/GlassTile.js +4 -4
- package/lib/node_modules/@carbon/icons-react/es/Icon.js +1 -1
- package/package.json +2 -2
- package/scss/AnimatedHeader/animated-header.scss +17 -11
- package/scss/Tiles/AIPromptTile/ai-prompt-tile.scss +11 -4
- package/scss/Tiles/GlassTile/glass-tile.scss +4 -2
- /package/es/node_modules/@carbon/{icon-helpers → icons-react/node_modules/@carbon/icon-helpers}/es/index.js +0 -0
- /package/lib/node_modules/@carbon/{icon-helpers → icons-react/node_modules/@carbon/icon-helpers}/es/index.js +0 -0
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
*
|
|
4
|
-
* Copyright IBM Corp. 2025
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
-
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
1
|
export const workspaceData: {
|
|
10
2
|
id: string;
|
|
11
3
|
text: string;
|
|
@@ -45,3 +37,21 @@ export const headerTiles: ({
|
|
|
45
37
|
subtitle?: undefined;
|
|
46
38
|
})[];
|
|
47
39
|
})[];
|
|
40
|
+
export namespace tasksConfigButton {
|
|
41
|
+
let type: string;
|
|
42
|
+
namespace button {
|
|
43
|
+
export let href: string;
|
|
44
|
+
export { Add as icon };
|
|
45
|
+
export let text: string;
|
|
46
|
+
let type_1: "tertiary";
|
|
47
|
+
export { type_1 as type };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export namespace tasksConfigDropdown {
|
|
51
|
+
let type_2: string;
|
|
52
|
+
export { type_2 as type };
|
|
53
|
+
export namespace dropdown {
|
|
54
|
+
let label: string;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
import { Add } from '@carbon/react/icons';
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ButtonKind } from '@carbon/react';
|
|
3
3
|
/** Animated Header */
|
|
4
|
+
export interface TasksConfig {
|
|
5
|
+
type: 'button' | 'dropdown' | string;
|
|
6
|
+
button?: {
|
|
7
|
+
href?: string;
|
|
8
|
+
icon?: any;
|
|
9
|
+
text?: string;
|
|
10
|
+
type?: ButtonKind;
|
|
11
|
+
};
|
|
12
|
+
dropdown?: {
|
|
13
|
+
label?: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
4
16
|
export interface SelectedWorkspace {
|
|
5
17
|
id: string;
|
|
6
18
|
text: string;
|
|
7
19
|
}
|
|
8
20
|
export interface Tile {
|
|
9
|
-
id: string;
|
|
10
21
|
href: string | null;
|
|
11
|
-
|
|
12
|
-
subtitle: string | null;
|
|
22
|
+
id: string;
|
|
13
23
|
mainIcon: string | null;
|
|
14
|
-
secondaryIcon
|
|
24
|
+
secondaryIcon?: string | null;
|
|
25
|
+
subtitle?: string | null;
|
|
26
|
+
title: string | null;
|
|
15
27
|
}
|
|
16
28
|
export interface TileGroup {
|
|
17
29
|
id: number;
|
|
@@ -19,21 +31,20 @@ export interface TileGroup {
|
|
|
19
31
|
tiles: Tile[];
|
|
20
32
|
}
|
|
21
33
|
export interface AnimatedHeaderProps {
|
|
22
|
-
|
|
34
|
+
allTiles: TileGroup[];
|
|
35
|
+
allWorkspaces?: SelectedWorkspace[];
|
|
23
36
|
description?: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
buttonIcon?: any;
|
|
27
|
-
headerDropdown?: boolean;
|
|
37
|
+
headerAnimation?: object;
|
|
38
|
+
headerStatic?: React.JSX.Element;
|
|
28
39
|
productName?: string;
|
|
29
|
-
selectedWorkspace?: SelectedWorkspace[] | any;
|
|
30
|
-
setSelectedWorkspace: (e: any) => void;
|
|
31
|
-
allWorkspaces?: SelectedWorkspace[];
|
|
32
40
|
selectedTileGroup: TileGroup[] | any;
|
|
41
|
+
selectedWorkspace?: SelectedWorkspace | any;
|
|
33
42
|
setSelectedTileGroup: (e: any) => void;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
setSelectedWorkspace: (e: any) => void;
|
|
44
|
+
tasksConfig?: TasksConfig;
|
|
45
|
+
userName?: string;
|
|
46
|
+
welcomeText?: string;
|
|
47
|
+
workspaceLabel?: string;
|
|
37
48
|
}
|
|
38
49
|
declare const AnimatedHeader: React.FC<AnimatedHeaderProps>;
|
|
39
50
|
export default AnimatedHeader;
|
|
@@ -25,25 +25,24 @@ var _PauseFilled, _PlayFilledAlt;
|
|
|
25
25
|
|
|
26
26
|
const AnimatedHeader = _ref => {
|
|
27
27
|
let {
|
|
28
|
-
|
|
28
|
+
allTiles,
|
|
29
|
+
allWorkspaces,
|
|
29
30
|
description,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
buttonIcon = null,
|
|
33
|
-
headerDropdown = false,
|
|
31
|
+
headerAnimation,
|
|
32
|
+
headerStatic,
|
|
34
33
|
productName = '[Product name]',
|
|
35
|
-
selectedWorkspace,
|
|
36
|
-
setSelectedWorkspace,
|
|
37
|
-
allWorkspaces,
|
|
38
34
|
selectedTileGroup,
|
|
35
|
+
selectedWorkspace,
|
|
39
36
|
setSelectedTileGroup,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
setSelectedWorkspace,
|
|
38
|
+
tasksConfig,
|
|
39
|
+
userName,
|
|
40
|
+
welcomeText,
|
|
41
|
+
workspaceLabel = `Open in: ${userName}'s workspace` || `Select a workspace`
|
|
43
42
|
} = _ref;
|
|
44
43
|
const prefix = usePrefix.usePrefix();
|
|
45
44
|
const blockClass = `${prefix}--animated-header`;
|
|
46
|
-
|
|
45
|
+
const animationContainer = /*#__PURE__*/React.createRef();
|
|
47
46
|
const [open, setOpen] = React.useState(true);
|
|
48
47
|
const [playing, setPlaying] = React.useState(true);
|
|
49
48
|
const [headingTextAnimation, setHeadingTextAnimation] = React.useState('');
|
|
@@ -67,7 +66,7 @@ const AnimatedHeader = _ref => {
|
|
|
67
66
|
setPlaying(!playing);
|
|
68
67
|
};
|
|
69
68
|
React.useEffect(() => {
|
|
70
|
-
|
|
69
|
+
const animation = lottie.default.loadAnimation({
|
|
71
70
|
container: animationContainer.current,
|
|
72
71
|
animationData: headerAnimation,
|
|
73
72
|
renderer: 'svg',
|
|
@@ -88,7 +87,7 @@ const AnimatedHeader = _ref => {
|
|
|
88
87
|
animation.setSpeed(lottieLoopSpeed);
|
|
89
88
|
animation.playSegments([animationData.markers.at(1).tm, animationData.op], true);
|
|
90
89
|
}
|
|
91
|
-
if (
|
|
90
|
+
if (isReduced) {
|
|
92
91
|
// reduced motion on
|
|
93
92
|
animation.addEventListener('DOMLoaded', reducedMotion);
|
|
94
93
|
} else {
|
|
@@ -100,7 +99,12 @@ const AnimatedHeader = _ref => {
|
|
|
100
99
|
// Run Looped Animation
|
|
101
100
|
animation.addEventListener('complete', loop);
|
|
102
101
|
}
|
|
103
|
-
|
|
102
|
+
return () => {
|
|
103
|
+
animation?.removeEventListener('DOMLoaded', reducedMotion);
|
|
104
|
+
animation?.removeEventListener('DOMLoaded', load);
|
|
105
|
+
animation?.removeEventListener('complete', loop);
|
|
106
|
+
};
|
|
107
|
+
}, [animationContainer, headerAnimation, isReduced]);
|
|
104
108
|
return /*#__PURE__*/React.createElement("section", {
|
|
105
109
|
className: `${blockClass} ${!open && collapsed}`
|
|
106
110
|
}, /*#__PURE__*/React.createElement(react.Grid, null, /*#__PURE__*/React.createElement("div", {
|
|
@@ -125,14 +129,14 @@ const AnimatedHeader = _ref => {
|
|
|
125
129
|
lg: 16
|
|
126
130
|
}, /*#__PURE__*/React.createElement(react.Tooltip, {
|
|
127
131
|
align: "bottom",
|
|
128
|
-
label:
|
|
132
|
+
label: `${welcomeText}, ${userName}`
|
|
129
133
|
}, /*#__PURE__*/React.createElement("h1", {
|
|
130
134
|
className: `${blockClass}__heading ${headingTextAnimation}`
|
|
131
135
|
}, /*#__PURE__*/React.createElement("span", {
|
|
132
136
|
className: `${blockClass}__heading-welcome`
|
|
133
|
-
}, "
|
|
137
|
+
}, welcomeText, ",", ' '), /*#__PURE__*/React.createElement("span", {
|
|
134
138
|
className: `${blockClass}__heading-name`
|
|
135
|
-
},
|
|
139
|
+
}, userName)))), (description || tasksConfig && tasksConfig.type === 'button' && tasksConfig.button?.text || tasksConfig && tasksConfig.type === 'dropdown' && tasksConfig.dropdown?.label) && /*#__PURE__*/React.createElement(react.Column, {
|
|
136
140
|
sm: 4,
|
|
137
141
|
md: 8,
|
|
138
142
|
lg: 4,
|
|
@@ -142,20 +146,19 @@ const AnimatedHeader = _ref => {
|
|
|
142
146
|
label: description
|
|
143
147
|
}, /*#__PURE__*/React.createElement("h2", {
|
|
144
148
|
className: `${blockClass}__description`
|
|
145
|
-
}, description)),
|
|
149
|
+
}, description)), tasksConfig?.button?.text && /*#__PURE__*/React.createElement(react.Button, {
|
|
146
150
|
className: `${blockClass}__button`,
|
|
147
|
-
kind:
|
|
148
|
-
renderIcon:
|
|
149
|
-
|
|
151
|
+
kind: tasksConfig.button.type,
|
|
152
|
+
renderIcon: tasksConfig.button.icon,
|
|
153
|
+
href: tasksConfig.button.href
|
|
154
|
+
}, tasksConfig.button.text), !tasksConfig?.button?.text && tasksConfig && tasksConfig.type === 'dropdown' && allTiles && /*#__PURE__*/React.createElement("div", {
|
|
150
155
|
className: `${blockClass}__header-dropdown--container`
|
|
151
156
|
}, /*#__PURE__*/React.createElement(react.Dropdown, {
|
|
152
157
|
id: `${blockClass}__header-dropdown`,
|
|
153
158
|
className: `${blockClass}__header-dropdown`,
|
|
154
159
|
size: "md",
|
|
155
|
-
autoAlign: true,
|
|
156
160
|
titleText: "Label",
|
|
157
|
-
|
|
158
|
-
label: allTiles[0].name || 'Select an option below',
|
|
161
|
+
label: tasksConfig.dropdown?.label || allTiles[0].name,
|
|
159
162
|
hideLabel: true,
|
|
160
163
|
type: "inline",
|
|
161
164
|
items: allTiles,
|
|
@@ -173,7 +176,7 @@ const AnimatedHeader = _ref => {
|
|
|
173
176
|
className: `${blockClass}__workspace`,
|
|
174
177
|
size: "sm",
|
|
175
178
|
titleText: "Label",
|
|
176
|
-
label:
|
|
179
|
+
label: workspaceLabel,
|
|
177
180
|
hideLabel: true,
|
|
178
181
|
type: "inline",
|
|
179
182
|
items: allWorkspaces,
|
|
@@ -219,76 +222,71 @@ const AnimatedHeader = _ref => {
|
|
|
219
222
|
AnimatedHeader.displayName = 'Animated Header';
|
|
220
223
|
AnimatedHeader.propTypes = {
|
|
221
224
|
/**
|
|
222
|
-
*
|
|
223
|
-
*/
|
|
224
|
-
className: PropTypes.string,
|
|
225
|
-
/**
|
|
226
|
-
* Specify the current username of active user
|
|
225
|
+
* Array of each tile group setup
|
|
227
226
|
*/
|
|
228
|
-
|
|
227
|
+
allTiles: PropTypes.arrayOf(PropTypes.object),
|
|
229
228
|
/**
|
|
230
|
-
*
|
|
229
|
+
* Array of all workspace options
|
|
231
230
|
*/
|
|
232
|
-
|
|
231
|
+
allWorkspaces: PropTypes.arrayOf(PropTypes.object),
|
|
233
232
|
/**
|
|
234
|
-
*
|
|
235
|
-
* the user or content that triggers an action and allow users to
|
|
236
|
-
* directly start working and gain value (within one click)
|
|
233
|
+
* Specify an optional className to be added to your Animated Header
|
|
237
234
|
*/
|
|
238
|
-
|
|
235
|
+
className: PropTypes.string,
|
|
239
236
|
/**
|
|
240
|
-
*
|
|
237
|
+
* Provide short sentence in max. 3 lines related to product context
|
|
241
238
|
*/
|
|
242
|
-
|
|
239
|
+
description: PropTypes.string,
|
|
243
240
|
/**
|
|
244
|
-
*
|
|
245
|
-
*
|
|
241
|
+
* In-product imagery / lottie animation (.json) dim. 1312 x 738
|
|
242
|
+
* (to update headerAnimation content storybook requires remount in toolbar)
|
|
246
243
|
*/
|
|
247
|
-
|
|
244
|
+
headerAnimation: PropTypes.object,
|
|
248
245
|
/**
|
|
249
|
-
*
|
|
246
|
+
* In-product imagery / static imagery dim. 1312 x 738
|
|
247
|
+
* Only active when headerAnimation is not in use
|
|
250
248
|
*/
|
|
251
|
-
|
|
249
|
+
headerStatic: PropTypes.object,
|
|
252
250
|
/**
|
|
253
251
|
* Provide current product name
|
|
254
252
|
*/
|
|
255
253
|
productName: PropTypes.string,
|
|
254
|
+
/**
|
|
255
|
+
* The tile group that is active in the header
|
|
256
|
+
* ex. "AI Chat Tile w/ two glass tiles", "Four glass tiles", ect.
|
|
257
|
+
*/
|
|
258
|
+
selectedTileGroup: PropTypes.object,
|
|
256
259
|
/**
|
|
257
260
|
* Object containing workspace selection
|
|
258
261
|
* `Open in: "_"`
|
|
259
262
|
*/
|
|
260
263
|
selectedWorkspace: PropTypes.object,
|
|
261
264
|
/**
|
|
262
|
-
* Provide function to be called when switching
|
|
263
|
-
*/
|
|
264
|
-
setSelectedWorkspace: PropTypes.func,
|
|
265
|
-
/**
|
|
266
|
-
* Array of all workspace options
|
|
265
|
+
* Provide function to be called when switching selected tile group
|
|
267
266
|
*/
|
|
268
|
-
|
|
267
|
+
setSelectedTileGroup: PropTypes.func,
|
|
269
268
|
/**
|
|
270
|
-
*
|
|
271
|
-
* ex. "AI Chat Tile w/ two glass tiles", "Four glass tiles", ect.
|
|
269
|
+
* Provide function to be called when switching workspace selection
|
|
272
270
|
*/
|
|
273
|
-
|
|
271
|
+
setSelectedWorkspace: PropTypes.func,
|
|
274
272
|
/**
|
|
275
|
-
*
|
|
273
|
+
* Configuration for Carbon button or dropdown menu in header. Customized
|
|
274
|
+
* tasks are used to allow users that have multiple roles and permissions
|
|
275
|
+
* to experience better tailored content based on their need.
|
|
276
276
|
*/
|
|
277
|
-
|
|
277
|
+
tasksConfig: PropTypes.object,
|
|
278
278
|
/**
|
|
279
|
-
*
|
|
279
|
+
* Specify the current username of active user
|
|
280
280
|
*/
|
|
281
|
-
|
|
281
|
+
userName: PropTypes.string,
|
|
282
282
|
/**
|
|
283
|
-
*
|
|
284
|
-
* (to update headerAnimation content storybook requires remount in toolbar)
|
|
283
|
+
* Specify the current welcome text on the header
|
|
285
284
|
*/
|
|
286
|
-
|
|
285
|
+
welcomeText: PropTypes.string,
|
|
287
286
|
/**
|
|
288
|
-
*
|
|
289
|
-
* Only active when headerAnimation is not in use
|
|
287
|
+
* Specify the default workspace label above the tiles
|
|
290
288
|
*/
|
|
291
|
-
|
|
289
|
+
workspaceLabel: PropTypes.string
|
|
292
290
|
};
|
|
293
291
|
|
|
294
292
|
exports.default = AnimatedHeader;
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
/** Primary UI component for user interaction */
|
|
11
11
|
interface AIPromptTileProps {
|
|
12
|
-
id?: string;
|
|
13
12
|
href?: string;
|
|
14
|
-
|
|
13
|
+
id?: string;
|
|
15
14
|
mainIcon?: string;
|
|
16
|
-
|
|
15
|
+
open?: boolean;
|
|
17
16
|
productName?: string;
|
|
17
|
+
title?: string;
|
|
18
18
|
}
|
|
19
19
|
export declare const AIPromptTile: React.FC<AIPromptTileProps>;
|
|
20
20
|
export {};
|
|
@@ -19,12 +19,12 @@ var _AILabel;
|
|
|
19
19
|
|
|
20
20
|
const AIPromptTile = _ref => {
|
|
21
21
|
let {
|
|
22
|
-
id,
|
|
23
22
|
href,
|
|
24
|
-
|
|
23
|
+
id,
|
|
25
24
|
mainIcon,
|
|
26
|
-
|
|
27
|
-
productName
|
|
25
|
+
open,
|
|
26
|
+
productName,
|
|
27
|
+
title
|
|
28
28
|
} = _ref;
|
|
29
29
|
const prefix = usePrefix.usePrefix();
|
|
30
30
|
const blockClass = `${prefix}--animated-header__ai-prompt-tile`;
|
|
@@ -37,7 +37,9 @@ const AIPromptTile = _ref => {
|
|
|
37
37
|
};
|
|
38
38
|
const openInNewTab = url => {
|
|
39
39
|
const newWindow = window.open(url, '_blank', 'noopener,noreferrer');
|
|
40
|
-
if (newWindow)
|
|
40
|
+
if (newWindow) {
|
|
41
|
+
newWindow.opener = null;
|
|
42
|
+
}
|
|
41
43
|
};
|
|
42
44
|
const handleTextInputKeyDown = event => {
|
|
43
45
|
if (event.key === 'Enter') {
|
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
/** Primary UI component for user interaction */
|
|
11
11
|
interface GlassTileProps {
|
|
12
|
-
id?: string;
|
|
13
12
|
href?: string;
|
|
14
|
-
|
|
13
|
+
id?: string;
|
|
15
14
|
mainIcon?: string;
|
|
15
|
+
open?: boolean;
|
|
16
16
|
secondaryIcon?: string;
|
|
17
|
-
title?: string;
|
|
18
17
|
subtitle?: string;
|
|
18
|
+
title?: string;
|
|
19
19
|
}
|
|
20
20
|
export declare const GlassTile: React.FC<GlassTileProps>;
|
|
21
21
|
export {};
|
|
@@ -16,13 +16,13 @@ var usePrefix = require('../../../node_modules/@carbon-labs/utilities/es/usePref
|
|
|
16
16
|
|
|
17
17
|
const GlassTile = _ref => {
|
|
18
18
|
let {
|
|
19
|
-
id,
|
|
20
19
|
href,
|
|
21
|
-
|
|
20
|
+
id,
|
|
22
21
|
mainIcon,
|
|
22
|
+
open,
|
|
23
23
|
secondaryIcon,
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
subtitle,
|
|
25
|
+
title
|
|
26
26
|
} = _ref;
|
|
27
27
|
const prefix = usePrefix.usePrefix();
|
|
28
28
|
const blockClass = `${prefix}--animated-header__glass-tile`;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
|
12
|
-
var index = require('
|
|
12
|
+
var index = require('../node_modules/@carbon/icon-helpers/es/index.js');
|
|
13
13
|
var PropTypes = require('prop-types');
|
|
14
14
|
var React = require('react');
|
|
15
15
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon-labs/react-animated-header",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@carbon-labs/utilities": "canary"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "ea0564e6ceea7d3bdcc08472ac8825f05299083c"
|
|
36
36
|
}
|
|
@@ -16,20 +16,24 @@
|
|
|
16
16
|
|
|
17
17
|
$prefix: 'clabs--animated-header' !default;
|
|
18
18
|
|
|
19
|
+
:root {
|
|
20
|
+
@include theme(themes.$g10);
|
|
21
|
+
}
|
|
22
|
+
|
|
19
23
|
[data-carbon-theme='white'] {
|
|
20
|
-
@include theme(themes.$white
|
|
24
|
+
@include theme(themes.$white);
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
[data-carbon-theme='g10'] {
|
|
24
|
-
@include theme(themes.$g10
|
|
28
|
+
@include theme(themes.$g10);
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
[data-carbon-theme='g90'] {
|
|
28
|
-
@include theme(themes.$g90
|
|
32
|
+
@include theme(themes.$g90);
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
[data-carbon-theme='g100'] {
|
|
32
|
-
@include theme(themes.$g100
|
|
36
|
+
@include theme(themes.$g100);
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
body {
|
|
@@ -42,9 +46,9 @@ body {
|
|
|
42
46
|
.#{$prefix} {
|
|
43
47
|
position: relative;
|
|
44
48
|
display: flex;
|
|
45
|
-
overflow:
|
|
49
|
+
overflow: visible;
|
|
46
50
|
background: $background;
|
|
47
|
-
inline-size:
|
|
51
|
+
inline-size: 100%;
|
|
48
52
|
max-block-size: 90vh;
|
|
49
53
|
outline: 1px solid transparent;
|
|
50
54
|
padding-block: 0 $spacing-10;
|
|
@@ -58,6 +62,7 @@ body {
|
|
|
58
62
|
.#{$prefix}__static--container {
|
|
59
63
|
position: absolute;
|
|
60
64
|
display: flex;
|
|
65
|
+
overflow: hidden;
|
|
61
66
|
justify-content: flex-end;
|
|
62
67
|
|
|
63
68
|
block-size: 100%;
|
|
@@ -125,6 +130,7 @@ body {
|
|
|
125
130
|
padding-inline: var(--cds-grid-margin);
|
|
126
131
|
}
|
|
127
132
|
|
|
133
|
+
:root .#{$prefix}__container--gradient,
|
|
128
134
|
[data-carbon-theme='white'] .#{$prefix}__container--gradient,
|
|
129
135
|
[data-carbon-theme='g10'] .#{$prefix}__container--gradient {
|
|
130
136
|
background: linear-gradient(0deg, #e0e0e0bf 0%, transparent 100%);
|
|
@@ -295,6 +301,7 @@ body {
|
|
|
295
301
|
.#{$prefix}__lottie-animation--container {
|
|
296
302
|
position: absolute;
|
|
297
303
|
display: flex;
|
|
304
|
+
overflow: hidden;
|
|
298
305
|
justify-content: flex-end;
|
|
299
306
|
|
|
300
307
|
block-size: 100%;
|
|
@@ -344,6 +351,7 @@ body {
|
|
|
344
351
|
inset-inline-end: 0;
|
|
345
352
|
}
|
|
346
353
|
|
|
354
|
+
:root .#{$prefix}__button-collapse--gradient,
|
|
347
355
|
[data-carbon-theme='white'] .#{$prefix}__button-collapse--gradient,
|
|
348
356
|
[data-carbon-theme='g10'] .#{$prefix}__button-collapse--gradient {
|
|
349
357
|
background: radial-gradient(
|
|
@@ -372,6 +380,7 @@ body {
|
|
|
372
380
|
}
|
|
373
381
|
|
|
374
382
|
.#{$prefix}--collapsed {
|
|
383
|
+
overflow: hidden;
|
|
375
384
|
padding: 0;
|
|
376
385
|
max-block-size: $spacing-09;
|
|
377
386
|
outline: 1px solid $border-subtle-00;
|
|
@@ -395,10 +404,6 @@ body {
|
|
|
395
404
|
display: none;
|
|
396
405
|
}
|
|
397
406
|
|
|
398
|
-
.#{$prefix}__workspace {
|
|
399
|
-
margin-block-start: $spacing-06;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
407
|
.#{$prefix}__content {
|
|
403
408
|
display: none;
|
|
404
409
|
}
|
|
@@ -437,6 +442,7 @@ body {
|
|
|
437
442
|
|
|
438
443
|
.#{$prefix}__content {
|
|
439
444
|
display: flex;
|
|
445
|
+
margin-block-start: $spacing-06;
|
|
440
446
|
}
|
|
441
447
|
|
|
442
448
|
.#{$prefix}__button-collapse--container .cds--popover-container {
|
|
@@ -493,7 +499,7 @@ body {
|
|
|
493
499
|
background: linear-gradient(90deg, $background 25%, transparent 75%);
|
|
494
500
|
}
|
|
495
501
|
|
|
496
|
-
.#{$prefix}
|
|
502
|
+
.#{$prefix}__content {
|
|
497
503
|
margin-block-start: 0;
|
|
498
504
|
}
|
|
499
505
|
|
|
@@ -19,7 +19,7 @@ $prefix: 'clabs--animated-header__ai-prompt-tile' !default;
|
|
|
19
19
|
display: flex;
|
|
20
20
|
-webkit-backdrop-filter: blur(3px);
|
|
21
21
|
backdrop-filter: blur(3px);
|
|
22
|
-
min-block-size:
|
|
22
|
+
min-block-size: 192px;
|
|
23
23
|
text-decoration: none;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -35,14 +35,14 @@ $prefix: 'clabs--animated-header__ai-prompt-tile' !default;
|
|
|
35
35
|
flex: 1;
|
|
36
36
|
flex-direction: column;
|
|
37
37
|
justify-content: flex-start;
|
|
38
|
-
padding: $spacing-05
|
|
38
|
+
padding: $spacing-05;
|
|
39
39
|
background-color: transparent;
|
|
40
40
|
color: $text-primary;
|
|
41
|
-
gap: $spacing-05;
|
|
42
41
|
opacity: 1;
|
|
43
42
|
transition: opacity 500ms linear;
|
|
44
43
|
}
|
|
45
44
|
|
|
45
|
+
:root .#{$prefix}--body::before,
|
|
46
46
|
[data-carbon-theme='white'] .#{$prefix}--body::before,
|
|
47
47
|
[data-carbon-theme='g10'] .#{$prefix}--body::before {
|
|
48
48
|
background-color: $layer-01;
|
|
@@ -101,6 +101,7 @@ $prefix: 'clabs--animated-header__ai-prompt-tile' !default;
|
|
|
101
101
|
z-index: 3;
|
|
102
102
|
display: flex;
|
|
103
103
|
justify-content: space-between;
|
|
104
|
+
margin-block-end: $spacing-05;
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
.#{$prefix}--title {
|
|
@@ -127,7 +128,12 @@ $prefix: 'clabs--animated-header__ai-prompt-tile' !default;
|
|
|
127
128
|
z-index: 3;
|
|
128
129
|
display: flex;
|
|
129
130
|
justify-content: flex-end;
|
|
130
|
-
|
|
131
|
+
margin-block: $spacing-03 calc(-1 * $spacing-05);
|
|
132
|
+
margin-inline-end: calc(-1 * $spacing-05);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.#{$prefix}--footer > a {
|
|
136
|
+
padding: 14px $spacing-05;
|
|
131
137
|
}
|
|
132
138
|
|
|
133
139
|
.#{$prefix}--subtitle {
|
|
@@ -144,6 +150,7 @@ $prefix: 'clabs--animated-header__ai-prompt-tile' !default;
|
|
|
144
150
|
border: 1px solid $border-subtle-01;
|
|
145
151
|
border-radius: 8px;
|
|
146
152
|
background-color: $layer-01;
|
|
153
|
+
margin-block-start: $spacing-06;
|
|
147
154
|
transition: border 200ms motion.motion(standard, expressive);
|
|
148
155
|
}
|
|
149
156
|
|
|
@@ -19,7 +19,7 @@ $prefix: 'clabs--animated-header__glass-tile' !default;
|
|
|
19
19
|
display: flex;
|
|
20
20
|
-webkit-backdrop-filter: blur(3px);
|
|
21
21
|
backdrop-filter: blur(3px);
|
|
22
|
-
min-block-size:
|
|
22
|
+
min-block-size: 192px;
|
|
23
23
|
text-decoration: none;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -39,7 +39,6 @@ $prefix: 'clabs--animated-header__glass-tile' !default;
|
|
|
39
39
|
background-color: transparent;
|
|
40
40
|
color: $text-primary;
|
|
41
41
|
cursor: pointer;
|
|
42
|
-
gap: $spacing-05;
|
|
43
42
|
opacity: 1;
|
|
44
43
|
transition: opacity 500ms linear;
|
|
45
44
|
}
|
|
@@ -48,6 +47,7 @@ $prefix: 'clabs--animated-header__glass-tile' !default;
|
|
|
48
47
|
opacity: 0;
|
|
49
48
|
}
|
|
50
49
|
|
|
50
|
+
:root .#{$prefix}--body::before,
|
|
51
51
|
[data-carbon-theme='white'] .#{$prefix}--body::before,
|
|
52
52
|
[data-carbon-theme='g10'] .#{$prefix}--body::before {
|
|
53
53
|
background-color: $layer-01;
|
|
@@ -75,6 +75,8 @@ $prefix: 'clabs--animated-header__glass-tile' !default;
|
|
|
75
75
|
position: relative;
|
|
76
76
|
display: flex;
|
|
77
77
|
justify-content: space-between;
|
|
78
|
+
|
|
79
|
+
margin-block-end: $spacing-05;
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
.#{$prefix}--title {
|
|
File without changes
|
|
File without changes
|