@digital-ai/dot-components 3.24.1 → 3.26.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/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { useState, useRef, useEffect, createContext, useMemo, useContext, forwardRef, useCallback, createElement, Fragment as Fragment$1, useLayoutEffect } from 'react';
4
- import { Tooltip, Icon, Typography, Accordion, AccordionSummary, AccordionDetails, AccordionActions, InputAdornment, InputLabel, TextField, Toolbar, Fade, StyledEngineProvider, Alert, Avatar, Button, Link, List, ListSubheader, Divider, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, IconButton, ListItem, ListItemButton, Collapse, ListItemIcon, ListItemText, Badge, useMediaQuery, Autocomplete, Chip, AvatarGroup, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, Snackbar, RadioGroup, Radio, Switch, Skeleton, ButtonGroup, Stepper, Step, StepLabel, StepContent, TablePagination, TableContainer, TableBody, TableCell, TableRow, TableSortLabel, TableHead, Table, Tabs, Tab, LinearProgress, Slide } from '@mui/material';
4
+ import { Tooltip, InputAdornment, InputLabel, TextField, Icon, Typography, Accordion, AccordionSummary, AccordionDetails, AccordionActions, Toolbar, Fade, StyledEngineProvider, Alert, Avatar, Button, Link, List, ListSubheader, Divider, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, IconButton, ListItem, ListItemButton, Collapse, ListItemIcon, ListItemText, Badge, useMediaQuery, Autocomplete, Chip, AvatarGroup, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, Snackbar, RadioGroup, Radio, Switch, Skeleton, ButtonGroup, Stepper, Step, StepLabel, StepContent, TablePagination, TableContainer, TableBody, TableCell, TableRow, TableSortLabel, TableHead, Table, Tabs, Tab, LinearProgress, Slide } from '@mui/material';
5
5
  import '@digital-ai/dot-icons';
6
6
  import styled, { css, createGlobalStyle, ThemeProvider as ThemeProvider$1, keyframes } from 'styled-components';
7
7
  import { createTheme, ThemeProvider, useTheme } from '@mui/material/styles';
@@ -110,227 +110,6 @@ const DotTooltip = ({
110
110
  }) : children;
111
111
  };
112
112
 
113
- const rootClassName$1k = 'dot-icon';
114
- const StyledIcon = styled(Icon)`
115
- ${({
116
- theme
117
- }) => css`
118
- &.${rootClassName$1k} {
119
- color: ${theme.palette.figma.icon.black};
120
- font-size: 20px;
121
-
122
- &.MuiIcon-fontSizeLarge {
123
- font-size: 28px;
124
- height: 35px;
125
- width: 35px;
126
-
127
- i {
128
- height: 28px;
129
- }
130
- }
131
- &.MuiIcon-fontSizeSmall {
132
- font-size: 18px;
133
-
134
- i {
135
- height: 18px;
136
- }
137
- }
138
-
139
- i {
140
- height: 20px;
141
- }
142
- }
143
- `}
144
- `;
145
-
146
- const DotIcon = ({
147
- ariaLabel,
148
- ariaRole = 'img',
149
- className,
150
- 'data-testid': dataTestId,
151
- fontSize = 'medium',
152
- iconId,
153
- tooltip
154
- }) => {
155
- const rootClasses = useStylesWithRootClass(rootClassName$1k, className);
156
- return jsx(DotTooltip, {
157
- title: tooltip,
158
- children: jsx(StyledIcon, {
159
- "aria-hidden": "false",
160
- "aria-label": ariaLabel || `${iconId} icon`,
161
- classes: {
162
- root: rootClasses
163
- },
164
- "data-testid": dataTestId,
165
- fontSize: fontSize,
166
- role: ariaRole,
167
- children: jsx("i", {
168
- "aria-label": ariaLabel || `${iconId} icon`,
169
- className: `icon-${iconId} dot-i`,
170
- "data-testid": dataTestId && `${dataTestId}-i`,
171
- role: ariaRole
172
- })
173
- })
174
- });
175
- };
176
-
177
- const DotTypography = ({
178
- ariaLabel,
179
- ariaLevel,
180
- ariaRole,
181
- className,
182
- 'data-testid': dataTestId,
183
- children,
184
- component,
185
- noMarginBottom,
186
- noWrap,
187
- variant
188
- }) => {
189
- const rootClasses = useStylesWithRootClass('dot-typography', className);
190
- useEffect(() => {
191
- if (ariaRole === 'heading' && !ariaLevel) {
192
- console.warn('please include ariaLevel when using ariaRole="heading"');
193
- }
194
- if (noMarginBottom) {
195
- console.warn('DEPRECATED: `noMarginBottom` on `DotTypography` is no longer included');
196
- }
197
- }, []);
198
- return jsx(Typography, {
199
- "aria-label": ariaLabel,
200
- "aria-level": ariaLevel,
201
- classes: {
202
- root: rootClasses
203
- },
204
- component: component,
205
- "data-testid": dataTestId,
206
- noWrap: noWrap,
207
- role: ariaRole,
208
- style: {
209
- marginBottom: noMarginBottom ? 0 : undefined
210
- },
211
- variant: variant,
212
- children: children
213
- });
214
- };
215
-
216
- const rootClassName$1j = 'dot-accordion';
217
- const summaryClassName = 'dot-accordion-summary';
218
- const detailClassName = 'dot-accordion-details';
219
- const StyledAccordion = styled(Accordion)`
220
- ${({
221
- theme
222
- }) => css`
223
- .${detailClassName} {
224
- background: ${theme.palette.figma.background.level1.white};
225
- }
226
-
227
- &.${rootClassName$1j} .${summaryClassName} {
228
- align-items: center;
229
- background: ${theme.palette.figma.background.level1.white};
230
- color: ${theme.palette.figma.typography.black};
231
- display: flex;
232
-
233
- &.Mui-expanded {
234
- border-top: 1px solid ${theme.palette.figma.border.default};
235
- margin: 0;
236
-
237
- &:before {
238
- opacity: 1;
239
- }
240
- }
241
-
242
- .MuiAccordionSummary-content {
243
- align-items: center;
244
- gap: ${theme.spacing(1)};
245
- width: calc(100% - ${theme.spacing(5)});
246
-
247
- .dot-tooltip {
248
- overflow: hidden;
249
- }
250
- }
251
-
252
- .MuiAccordionSummary-expandIconWrapper {
253
- padding: ${theme.spacing(1.5)};
254
- margin-right: ${theme.spacing(-1.5)};
255
- }
256
-
257
- .MuiTypography-root {
258
- margin-bottom: 0;
259
- }
260
- .MuiTypography-body1 {
261
- padding: 2px 0;
262
- }
263
- }
264
- `}
265
- `;
266
-
267
- const DotAccordion = ({
268
- actions,
269
- ariaLabel,
270
- children,
271
- className,
272
- 'data-pendoid': dataPendoId = rootClassName$1j,
273
- 'data-testid': dataTestId = 'dot-accordion',
274
- disabled = false,
275
- expanded,
276
- hasElevation = false,
277
- onChange,
278
- square = false,
279
- startIcon = null,
280
- summary,
281
- noWrap = true
282
- }) => {
283
- const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
284
- const [elevation, setElevation] = useState();
285
- useEffect(() => {
286
- if (onChange && expanded === undefined) {
287
- console.warn('The use of an `onChange` callback makes this a controlled component but no `expanded` state has been provided. In effect, this makes the component disabled.');
288
- }
289
- }, []);
290
- useEffect(() => {
291
- setElevation(hasElevation ? 1 : 0);
292
- }, [hasElevation]);
293
- return jsxs(StyledAccordion, {
294
- "aria-label": ariaLabel,
295
- className: rootClasses,
296
- "data-pendoid": dataPendoId,
297
- "data-testid": dataTestId,
298
- disabled: disabled,
299
- elevation: elevation,
300
- expanded: onChange ? expanded : undefined,
301
- onChange: onChange,
302
- square: square,
303
- children: [jsxs(AccordionSummary, {
304
- "aria-label": ariaLabel || summary,
305
- classes: {
306
- root: summaryClassName
307
- },
308
- "data-testid": `${dataTestId}-summary`,
309
- expandIcon: jsx(DotIcon, {
310
- iconId: "chevron-down"
311
- }),
312
- role: "button",
313
- children: [startIcon, jsx(DotTooltip, {
314
- "data-testid": "accordion-tooltip",
315
- title: noWrap ? summary : '',
316
- children: jsx(DotTypography, {
317
- noWrap: noWrap,
318
- variant: "body1",
319
- children: summary
320
- })
321
- })]
322
- }), jsx(AccordionDetails, {
323
- classes: {
324
- root: detailClassName
325
- },
326
- "data-testid": `${dataTestId}-details`,
327
- children: children
328
- }), actions && jsx(AccordionActions, {
329
- children: actions
330
- })]
331
- });
332
- };
333
-
334
113
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
335
114
  const formHelperTextRootStyles = theme => css`
336
115
  align-items: flex-end;
@@ -396,8 +175,9 @@ const readOnlyStyles = theme => css`
396
175
  }
397
176
  `;
398
177
 
399
- const rootClassName$1i = 'dot-text-field';
178
+ const rootClassName$1k = 'dot-text-field';
400
179
  const rootSelectClassName = 'dot-select-field';
180
+ const wrapperClassName$2 = 'dot-label-wrapper';
401
181
  const labelClassName = 'dot-input-label';
402
182
  const errorClassName = 'dot-error';
403
183
  const warningClassName = 'dot-warning';
@@ -448,7 +228,7 @@ const StyledTextField = styled(TextField)`
448
228
  $maxRows,
449
229
  $minRows
450
230
  }) => css`
451
- &.${rootClassName$1i} {
231
+ &.${rootClassName$1k} {
452
232
  .MuiInputBase-root {
453
233
  margin-bottom: 0;
454
234
  }
@@ -510,7 +290,7 @@ const StyledTextField = styled(TextField)`
510
290
  margin-right: ${theme.spacing(2)};
511
291
  }
512
292
 
513
- &.${rootSelectClassName}, &.${rootClassName$1i} {
293
+ &.${rootSelectClassName}, &.${rootClassName$1k} {
514
294
  .${adornmentIconClassName} {
515
295
  color: ${theme.palette.figma.icon.black};
516
296
  p {
@@ -601,6 +381,231 @@ const StyledTextField = styled(TextField)`
601
381
  `}
602
382
  `;
603
383
 
384
+ const rootClassName$1j = 'dot-icon';
385
+ const StyledIcon = styled(Icon)`
386
+ ${({
387
+ theme
388
+ }) => css`
389
+ &.${rootClassName$1j} {
390
+ color: ${theme.palette.figma.icon.black};
391
+ font-size: 20px;
392
+
393
+ &.MuiIcon-fontSizeLarge {
394
+ font-size: 28px;
395
+ height: 35px;
396
+ width: 35px;
397
+
398
+ i {
399
+ height: 28px;
400
+ }
401
+ }
402
+ &.MuiIcon-fontSizeSmall {
403
+ font-size: 18px;
404
+
405
+ i {
406
+ height: 18px;
407
+ }
408
+ }
409
+
410
+ i {
411
+ height: 20px;
412
+ }
413
+
414
+ &.${warningClassName} {
415
+ color: ${theme.palette.figma.warning.normal};
416
+ }
417
+ }
418
+ `}
419
+ `;
420
+
421
+ const DotIcon = ({
422
+ ariaLabel,
423
+ ariaRole = 'img',
424
+ className,
425
+ 'data-testid': dataTestId,
426
+ fontSize = 'medium',
427
+ iconId,
428
+ tooltip
429
+ }) => {
430
+ const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
431
+ return jsx(DotTooltip, {
432
+ title: tooltip,
433
+ children: jsx(StyledIcon, {
434
+ "aria-hidden": "false",
435
+ "aria-label": ariaLabel || `${iconId} icon`,
436
+ classes: {
437
+ root: rootClasses
438
+ },
439
+ "data-testid": dataTestId,
440
+ fontSize: fontSize,
441
+ role: ariaRole,
442
+ children: jsx("i", {
443
+ "aria-label": ariaLabel || `${iconId} icon`,
444
+ className: `icon-${iconId} dot-i`,
445
+ "data-testid": dataTestId && `${dataTestId}-i`,
446
+ role: ariaRole
447
+ })
448
+ })
449
+ });
450
+ };
451
+
452
+ const DotTypography = ({
453
+ ariaLabel,
454
+ ariaLevel,
455
+ ariaRole,
456
+ className,
457
+ 'data-testid': dataTestId,
458
+ children,
459
+ component,
460
+ noMarginBottom,
461
+ noWrap,
462
+ variant
463
+ }) => {
464
+ const rootClasses = useStylesWithRootClass('dot-typography', className);
465
+ useEffect(() => {
466
+ if (ariaRole === 'heading' && !ariaLevel) {
467
+ console.warn('please include ariaLevel when using ariaRole="heading"');
468
+ }
469
+ if (noMarginBottom) {
470
+ console.warn('DEPRECATED: `noMarginBottom` on `DotTypography` is no longer included');
471
+ }
472
+ }, []);
473
+ return jsx(Typography, {
474
+ "aria-label": ariaLabel,
475
+ "aria-level": ariaLevel,
476
+ classes: {
477
+ root: rootClasses
478
+ },
479
+ component: component,
480
+ "data-testid": dataTestId,
481
+ noWrap: noWrap,
482
+ role: ariaRole,
483
+ style: {
484
+ marginBottom: noMarginBottom ? 0 : undefined
485
+ },
486
+ variant: variant,
487
+ children: children
488
+ });
489
+ };
490
+
491
+ const rootClassName$1i = 'dot-accordion';
492
+ const summaryClassName = 'dot-accordion-summary';
493
+ const detailClassName = 'dot-accordion-details';
494
+ const StyledAccordion = styled(Accordion)`
495
+ ${({
496
+ theme
497
+ }) => css`
498
+ .${detailClassName} {
499
+ background: ${theme.palette.figma.background.level1.white};
500
+ }
501
+
502
+ &.${rootClassName$1i} .${summaryClassName} {
503
+ align-items: center;
504
+ background: ${theme.palette.figma.background.level1.white};
505
+ color: ${theme.palette.figma.typography.black};
506
+ display: flex;
507
+
508
+ &.Mui-expanded {
509
+ border-top: 1px solid ${theme.palette.figma.border.default};
510
+ margin: 0;
511
+
512
+ &:before {
513
+ opacity: 1;
514
+ }
515
+ }
516
+
517
+ .MuiAccordionSummary-content {
518
+ align-items: center;
519
+ gap: ${theme.spacing(1)};
520
+ width: calc(100% - ${theme.spacing(5)});
521
+
522
+ .dot-tooltip {
523
+ overflow: hidden;
524
+ }
525
+ }
526
+
527
+ .MuiAccordionSummary-expandIconWrapper {
528
+ padding: ${theme.spacing(1.5)};
529
+ margin-right: ${theme.spacing(-1.5)};
530
+ }
531
+
532
+ .MuiTypography-root {
533
+ margin-bottom: 0;
534
+ }
535
+ .MuiTypography-body1 {
536
+ padding: 2px 0;
537
+ }
538
+ }
539
+ `}
540
+ `;
541
+
542
+ const DotAccordion = ({
543
+ actions,
544
+ ariaLabel,
545
+ children,
546
+ className,
547
+ 'data-pendoid': dataPendoId = rootClassName$1i,
548
+ 'data-testid': dataTestId = 'dot-accordion',
549
+ disabled = false,
550
+ expanded,
551
+ hasElevation = false,
552
+ onChange,
553
+ square = false,
554
+ startIcon = null,
555
+ summary,
556
+ noWrap = true
557
+ }) => {
558
+ const rootClasses = useStylesWithRootClass(rootClassName$1i, className);
559
+ const [elevation, setElevation] = useState();
560
+ useEffect(() => {
561
+ if (onChange && expanded === undefined) {
562
+ console.warn('The use of an `onChange` callback makes this a controlled component but no `expanded` state has been provided. In effect, this makes the component disabled.');
563
+ }
564
+ }, []);
565
+ useEffect(() => {
566
+ setElevation(hasElevation ? 1 : 0);
567
+ }, [hasElevation]);
568
+ return jsxs(StyledAccordion, {
569
+ "aria-label": ariaLabel,
570
+ className: rootClasses,
571
+ "data-pendoid": dataPendoId,
572
+ "data-testid": dataTestId,
573
+ disabled: disabled,
574
+ elevation: elevation,
575
+ expanded: onChange ? expanded : undefined,
576
+ onChange: onChange,
577
+ square: square,
578
+ children: [jsxs(AccordionSummary, {
579
+ "aria-label": ariaLabel || summary,
580
+ classes: {
581
+ root: summaryClassName
582
+ },
583
+ "data-testid": `${dataTestId}-summary`,
584
+ expandIcon: jsx(DotIcon, {
585
+ iconId: "chevron-down"
586
+ }),
587
+ role: "button",
588
+ children: [startIcon, jsx(DotTooltip, {
589
+ "data-testid": "accordion-tooltip",
590
+ title: noWrap ? summary : '',
591
+ children: jsx(DotTypography, {
592
+ noWrap: noWrap,
593
+ variant: "body1",
594
+ children: summary
595
+ })
596
+ })]
597
+ }), jsx(AccordionDetails, {
598
+ classes: {
599
+ root: detailClassName
600
+ },
601
+ "data-testid": `${dataTestId}-details`,
602
+ children: children
603
+ }), actions && jsx(AccordionActions, {
604
+ children: actions
605
+ })]
606
+ });
607
+ };
608
+
604
609
  const rootClassName$1h = 'dot-action-toolbar';
605
610
  const StyledToolbar = styled(Toolbar)`
606
611
  ${({
@@ -609,7 +614,7 @@ const StyledToolbar = styled(Toolbar)`
609
614
  &.${rootClassName$1h} {
610
615
  border-bottom: 1px solid ${theme.palette.figma.border.default};
611
616
 
612
- .${rootClassName$1i} .MuiInputBase-root {
617
+ .${rootClassName$1k} .MuiInputBase-root {
613
618
  margin-bottom: 0;
614
619
  }
615
620
  }
@@ -4463,24 +4468,39 @@ const DotInputLabel = ({
4463
4468
  disabled = false,
4464
4469
  error = false,
4465
4470
  id,
4471
+ informationToolTip,
4466
4472
  label,
4467
4473
  required
4468
4474
  }) => {
4469
- return jsx(StyledInputLabel, {
4470
- "data-testid": dataTestId,
4471
- classes: {
4472
- root: labelClassName
4473
- },
4474
- disabled: disabled,
4475
- error: error,
4476
- htmlFor: id,
4477
- required: required,
4478
- shrink: false,
4479
- variant: "outlined",
4480
- children: jsx(DotTypography, {
4481
- variant: "subtitle2",
4482
- children: label
4483
- })
4475
+ const wrapperStyles = {
4476
+ display: 'flex',
4477
+ gap: '4px'
4478
+ };
4479
+ return jsxs("div", {
4480
+ className: wrapperClassName$2,
4481
+ style: wrapperStyles,
4482
+ children: [jsx(StyledInputLabel, {
4483
+ "data-testid": dataTestId,
4484
+ classes: {
4485
+ root: labelClassName
4486
+ },
4487
+ disabled: disabled,
4488
+ error: error,
4489
+ htmlFor: id,
4490
+ required: required,
4491
+ shrink: false,
4492
+ variant: "outlined",
4493
+ children: jsx(DotTypography, {
4494
+ variant: "subtitle2",
4495
+ children: label
4496
+ })
4497
+ }), informationToolTip && jsx(DotIcon, {
4498
+ "data-testid": `${dataTestId}-information-tooltip`,
4499
+ className: warningClassName,
4500
+ iconId: "circle-info-outline",
4501
+ tooltip: informationToolTip,
4502
+ fontSize: "small"
4503
+ })]
4484
4504
  });
4485
4505
  };
4486
4506
 
@@ -4520,7 +4540,7 @@ const DotInputText = ({
4520
4540
  autoFocus,
4521
4541
  className,
4522
4542
  defaultValue,
4523
- 'data-pendoid': dataPendoId = rootClassName$1i,
4543
+ 'data-pendoid': dataPendoId = rootClassName$1k,
4524
4544
  'data-testid': dataTestId,
4525
4545
  disabled = false,
4526
4546
  error = false,
@@ -4532,6 +4552,7 @@ const DotInputText = ({
4532
4552
  endIcon,
4533
4553
  endText,
4534
4554
  id,
4555
+ informationToolTip,
4535
4556
  inputRef,
4536
4557
  label,
4537
4558
  max,
@@ -4567,7 +4588,7 @@ const DotInputText = ({
4567
4588
  const internalInputRef = useRef(null);
4568
4589
  const textFieldInputRef = inputRef || internalInputRef;
4569
4590
  const [inputTextState, setInputTextState] = useState(getInitialState(value));
4570
- const rootStyles = useStylesWithRootClass(rootClassName$1i, hasError, hasWarning, hasSuccess, readOnly && readOnlyClassName$1);
4591
+ const rootStyles = useStylesWithRootClass(rootClassName$1k, hasError, hasWarning, hasSuccess, readOnly && readOnlyClassName$1);
4571
4592
  useEffect(() => {
4572
4593
  if (value !== inputTextState.inputValue) {
4573
4594
  setInputTextState(getInitialState(value, defaultValue));
@@ -4652,7 +4673,8 @@ const DotInputText = ({
4652
4673
  error,
4653
4674
  id,
4654
4675
  label,
4655
- required
4676
+ required,
4677
+ informationToolTip
4656
4678
  }), jsx(StyledTextField, {
4657
4679
  "$maxRows": maxRows,
4658
4680
  "$minRows": minRows,
@@ -6627,6 +6649,7 @@ const DotAutoComplete = ({
6627
6649
  checkIfOptionDisabled,
6628
6650
  group = false,
6629
6651
  helperText,
6652
+ informationToolTip,
6630
6653
  inputId,
6631
6654
  inputRef,
6632
6655
  inputValue,
@@ -6668,7 +6691,7 @@ const DotAutoComplete = ({
6668
6691
  const preventDuplicateInsertion = actionItem === null || actionItem === void 0 ? void 0 : actionItem.preventDuplicateInsertion;
6669
6692
  const textFieldWarningClassName = !error && warning && warningClassName;
6670
6693
  const rootClasses = useStylesWithRootClass(rootClassName$X, size === 'medium' && inputMediumClassName, className);
6671
- const textFieldRootClasses = useStylesWithRootClass(rootClassName$1i, readOnly && readOnlyClassName$1, textFieldWarningClassName);
6694
+ const textFieldRootClasses = useStylesWithRootClass(rootClassName$1k, readOnly && readOnlyClassName$1, textFieldWarningClassName);
6672
6695
  const inputRootClasses = useStylesWithRootClass(inputRootClassName, !dense && inputMediumClassName);
6673
6696
  const popperClasses = useStylesWithRootClass(rootClassName$1a, popperClassName);
6674
6697
  let highlightedOption = null;
@@ -6901,7 +6924,8 @@ const DotAutoComplete = ({
6901
6924
  disabled,
6902
6925
  error,
6903
6926
  label,
6904
- required
6927
+ required,
6928
+ informationToolTip
6905
6929
  }), jsx(StyledTextField, Object.assign({}, params, {
6906
6930
  autoFocus: autoFocus,
6907
6931
  classes: {
@@ -9488,25 +9512,34 @@ class HelpContentService {
9488
9512
 
9489
9513
  function DotDashboardStatusPill({
9490
9514
  dashboard,
9491
- currentUser
9515
+ currentUser,
9516
+ modifiedAuthorUser
9492
9517
  }) {
9493
9518
  if (dashboard.lifecycle_state === DashboardView.lifecycle_state.DRAFT) {
9494
- return jsx(DotPill, {
9495
- label: "Draft",
9496
- size: "small",
9497
- variant: "outlined",
9498
- status: "in-progress"
9519
+ return jsx(DotTooltip, {
9520
+ title: "This dashboard has not yet been published. It is not visible to end users or in Digital.ai applications.",
9521
+ placement: "top",
9522
+ children: jsx(DotPill, {
9523
+ label: "Draft",
9524
+ size: "small",
9525
+ variant: "outlined",
9526
+ status: "in-progress"
9527
+ })
9499
9528
  });
9500
9529
  } else if (dashboard.lifecycle_state === DashboardView.lifecycle_state.PUBLISHED && dashboard.is_being_modified && currentUser) {
9501
9530
  if (dashboard.modified_author_id === currentUser.id) {
9502
- return jsx(DotPill, {
9503
- label: "Edit in progress",
9504
- size: "small",
9505
- variant: "outlined",
9506
- status: "success"
9531
+ return jsx(DotTooltip, {
9532
+ title: "You are currently editing this dashboard and the latest changes have not yet been published. Other users cannot edit this dashboard while you are editing it.",
9533
+ placement: "top",
9534
+ children: jsx(DotPill, {
9535
+ label: "Edit in progress",
9536
+ size: "small",
9537
+ variant: "outlined",
9538
+ status: "success"
9539
+ })
9507
9540
  });
9508
9541
  } else {
9509
- return jsx(DotPill, {
9542
+ const lockedPublished = jsx(DotPill, {
9510
9543
  label: "Published",
9511
9544
  icon: jsx(DotIcon, {
9512
9545
  iconId: "lock"
@@ -9515,13 +9548,27 @@ function DotDashboardStatusPill({
9515
9548
  variant: "outlined",
9516
9549
  status: "success"
9517
9550
  });
9551
+ if (modifiedAuthorUser) {
9552
+ const modifiedAuthorUserFullName = `${modifiedAuthorUser.given_name} ${modifiedAuthorUser.family_name}`;
9553
+ return jsx(DotTooltip, {
9554
+ title: `${modifiedAuthorUserFullName} is currently editing this dashboard and it is locked for editing by other users.`,
9555
+ placement: "top",
9556
+ children: lockedPublished
9557
+ });
9558
+ } else {
9559
+ return lockedPublished;
9560
+ }
9518
9561
  }
9519
9562
  } else {
9520
- return jsx(DotPill, {
9521
- status: "success",
9522
- label: "Published",
9523
- size: "small",
9524
- variant: "outlined"
9563
+ return jsx(DotTooltip, {
9564
+ title: "The latest version of this dashboard is published and visible to end users.",
9565
+ placement: "top",
9566
+ children: jsx(DotPill, {
9567
+ status: "success",
9568
+ label: "Published",
9569
+ size: "small",
9570
+ variant: "outlined"
9571
+ })
9525
9572
  });
9526
9573
  }
9527
9574
  }
@@ -10444,7 +10491,8 @@ const DotDashboardDetailsView = ({
10444
10491
  open,
10445
10492
  yOffset = 56,
10446
10493
  zIndex = 990,
10447
- currentUser
10494
+ currentUser,
10495
+ modifiedAuthorUser
10448
10496
  }) => {
10449
10497
  var _a, _b;
10450
10498
  const rootClasses = useStylesWithRootClass(rootClassName$E, className);
@@ -10530,7 +10578,8 @@ const DotDashboardDetailsView = ({
10530
10578
  label: "Status",
10531
10579
  children: jsx(DotDashboardStatusPill, {
10532
10580
  dashboard: dashboard,
10533
- currentUser: currentUser ? currentUser : null
10581
+ currentUser: currentUser ? currentUser : null,
10582
+ modifiedAuthorUser: modifiedAuthorUser ? modifiedAuthorUser : null
10534
10583
  })
10535
10584
  }), jsx(DashboardDetailsField, {
10536
10585
  className: "dashboard-details-category",
@@ -10575,9 +10624,10 @@ const DotDashboardDetails = _a => {
10575
10624
  dashboard,
10576
10625
  onClose,
10577
10626
  onFavorite,
10578
- currentUser
10627
+ currentUser,
10628
+ modifiedAuthorUser
10579
10629
  } = _a,
10580
- commonProps = __rest(_a, ["dashboard", "onClose", "onFavorite", "currentUser"]);
10630
+ commonProps = __rest(_a, ["dashboard", "onClose", "onFavorite", "currentUser", "modifiedAuthorUser"]);
10581
10631
  const [_openedDashboard, _setOpenedDashboard] = useState(dashboard);
10582
10632
  const metadataApiContext = useDotMetadataApiContext();
10583
10633
  const {
@@ -10618,7 +10668,8 @@ const DotDashboardDetails = _a => {
10618
10668
  open: true,
10619
10669
  onFavorite: favoriteHandler,
10620
10670
  onClose: closeHandler,
10621
- currentUser: currentUser ? currentUser : null
10671
+ currentUser: currentUser ? currentUser : null,
10672
+ modifiedAuthorUser: modifiedAuthorUser ? modifiedAuthorUser : null
10622
10673
  }));
10623
10674
  }
10624
10675
  return null;
@@ -11774,7 +11825,7 @@ function DotDashboardOptionsMenu({
11774
11825
  onclick: handleDuplicateClick
11775
11826
  });
11776
11827
  }
11777
- if (onStartDelete && !dashboard.is_ootb_dashboard) {
11828
+ if (onStartDelete && !dashboard.is_ootb_dashboard && !dashboardLocked) {
11778
11829
  const handleDeleteClick = () => {
11779
11830
  handleMenuClose();
11780
11831
  onStartDelete(dashboard);
@@ -12097,19 +12148,17 @@ function DotDashboardActions({
12097
12148
  onViewMode && onViewMode(result, 'view');
12098
12149
  });
12099
12150
  }), [dashboardToRevert, onRevertChanges, onStatusChanged]);
12100
- const handleStartViewOriginal = useCallback(() => __awaiter(this, void 0, void 0, function* () {
12151
+ const handleViewOriginal = useCallback(() => __awaiter(this, void 0, void 0, function* () {
12101
12152
  const dashboardId = dashboard.id;
12102
12153
  return cancelablePromise(getDashboard(dashboardId, false)).then(result => {
12103
- onStatusChanged && onStatusChanged(result);
12104
- onViewMode && onViewMode(result, 'view');
12105
12154
  onViewOriginal && onViewOriginal(result);
12106
12155
  });
12107
- }), [dashboard, onViewOriginal, onStatusChanged]);
12156
+ }), [dashboard, onViewOriginal]);
12108
12157
  const handleStartDelete = useCallback(dashboardToDel => {
12109
12158
  setDashboardToDelete(dashboardToDel);
12110
12159
  }, []);
12111
- const handleStartRevert = useCallback(dashboard => {
12112
- setDashboardToRevert(dashboard);
12160
+ const handleStartRevert = useCallback(dashboardToRev => {
12161
+ setDashboardToRevert(dashboardToRev);
12113
12162
  }, []);
12114
12163
  const handleRevertClose = useCallback(() => {
12115
12164
  setDashboardToRevert(null);
@@ -12122,7 +12171,6 @@ function DotDashboardActions({
12122
12171
  const handleStartDeleteIfConfig = onDeleted ? handleStartDelete : undefined;
12123
12172
  const handleViewModeIfConfig = onViewMode && canEdit ? onViewMode : undefined;
12124
12173
  const handleRevertChangesIfConfig = onRevertChanges ? handleStartRevert : undefined;
12125
- const handleViewOriginalIfConfig = onViewOriginal ? handleStartViewOriginal : undefined;
12126
12174
  return jsxs(StyledDashboardActions, {
12127
12175
  "data-testid": "dot-dashboard-actions",
12128
12176
  children: [jsx(DotDashboardPublishConfirm, {
@@ -12162,7 +12210,7 @@ function DotDashboardActions({
12162
12210
  dashboard: dashboard,
12163
12211
  isEdit: isEdit,
12164
12212
  menuPlacement: "bottom-start",
12165
- onViewOriginal: handleViewOriginalIfConfig,
12213
+ onViewOriginal: handleViewOriginal,
12166
12214
  onViewMode: handleViewModeIfConfig,
12167
12215
  onStartStatusChange: handleStartStatusChangeIfConfig,
12168
12216
  onStartDuplicate: handleStartDuplicateIfConfig,
@@ -12254,7 +12302,7 @@ function getDashboardBanner(dashboard, isEdit, onExitEditMode, onPublishChanges,
12254
12302
  return jsx(DotDashboardBanner, {
12255
12303
  bannerSeverity: "warning",
12256
12304
  bannerText: jsx(DotTypography, {
12257
- children: "The Dashboard is currently in edit mode and only you can make changes. Publish the changes for other users to see."
12305
+ children: "The Dashboard is currently in edit mode and only you can make changes. Publish the changes for other users to see the updated dashboard."
12258
12306
  }),
12259
12307
  buttonText: "Publish changes",
12260
12308
  buttonAction: () => {
@@ -12262,18 +12310,6 @@ function getDashboardBanner(dashboard, isEdit, onExitEditMode, onPublishChanges,
12262
12310
  }
12263
12311
  });
12264
12312
  }
12265
- } else {
12266
- // We're in Edit mode for a published dashboard, but there are no staged changes saved yet.
12267
- return jsx(DotDashboardBanner, {
12268
- bannerSeverity: "info",
12269
- bannerText: jsx(DotTypography, {
12270
- children: "You are currently in Edit Mode. Any changes you make will not be visible to others until you publish the updated dashboard."
12271
- }),
12272
- buttonText: "Exit edit mode",
12273
- buttonAction: () => {
12274
- onExitEditMode(dashboard);
12275
- }
12276
- });
12277
12313
  }
12278
12314
  } else {
12279
12315
  if (currentUser && dashboard.is_being_modified && dashboard.modified_author_id !== currentUser.id && modifiedAuthorUser) {
@@ -12286,7 +12322,7 @@ function getDashboardBanner(dashboard, isEdit, onExitEditMode, onPublishChanges,
12286
12322
  })
12287
12323
  });
12288
12324
  return jsx(DotDashboardBanner, {
12289
- bannerSeverity: "info",
12325
+ bannerSeverity: "warning",
12290
12326
  bannerText: bannerText
12291
12327
  });
12292
12328
  }
@@ -12365,7 +12401,8 @@ function DotDashboardHeader({
12365
12401
  children: [backButton, dashboard === null || dashboard === void 0 ? void 0 : dashboard.name]
12366
12402
  }), showStatus && dashboard && jsx(DotDashboardStatusPill, {
12367
12403
  dashboard: dashboard,
12368
- currentUser: currentUser ? currentUser : null
12404
+ currentUser: currentUser ? currentUser : null,
12405
+ modifiedAuthorUser: modifiedAuthorUser ? modifiedAuthorUser : null
12369
12406
  })]
12370
12407
  }), jsx(DotDashboardActions, {
12371
12408
  applications: applications,
@@ -12719,20 +12756,20 @@ const StyledFormContainer = styled.div`
12719
12756
 
12720
12757
  .${rootClassName$N},
12721
12758
  .${rootClassName$P},
12722
- .${rootClassName$1i},
12759
+ .${rootClassName$1k},
12723
12760
  .${rootSelectClassName},
12724
12761
  .${rootClassName$A},
12725
12762
  .${rootClassName$z} {
12726
12763
  margin: ${theme.spacing(1, 0)};
12727
12764
  }
12728
12765
 
12729
- label
12730
- + .${rootClassName$1i},
12731
- label
12766
+ .${wrapperClassName$2} {
12767
+ + .${rootClassName$1k},
12768
+ .${wrapperClassName$2}
12732
12769
  + .${rootSelectClassName},
12733
- label
12770
+ .${wrapperClassName$2}
12734
12771
  + .${rootClassName$A},
12735
- label
12772
+ .${wrapperClassName$2}
12736
12773
  + .${rootClassName$z} {
12737
12774
  margin: ${theme.spacing(0, 0, 1, 0)};
12738
12775
  }
@@ -17588,7 +17625,8 @@ const DotDatePicker = ({
17588
17625
  readOnly = false,
17589
17626
  required = false,
17590
17627
  showDaysOutsideCurrentMonth,
17591
- value
17628
+ value,
17629
+ informationToolTip
17592
17630
  }) => {
17593
17631
  const displayFormat = format || DEFAULT_DATE_FORMAT;
17594
17632
  const hasValueWithoutChangeHandler = value !== undefined && onChange === undefined;
@@ -17663,7 +17701,8 @@ const DotDatePicker = ({
17663
17701
  error,
17664
17702
  id: inputId,
17665
17703
  label,
17666
- required
17704
+ required,
17705
+ informationToolTip
17667
17706
  }), jsx(StyledDatePicker, {
17668
17707
  "aria-label": ariaLabel,
17669
17708
  autoFocus: autoFocus,
@@ -18945,4 +18984,4 @@ const BoardColumnSummary = ({
18945
18984
  });
18946
18985
  };
18947
18986
 
18948
- export { ApiError$1 as ApiError, BoardStatusProvider, Cell, ColumnStatusProvider, CreateUUID, CssCell, CssGrid, CssGridDebug, DashboardAppTypeOptions, DashboardView, DatePickerKeydownContext, Daytime, DotAccordion, DotActionToolbar, DotAlertBanner, DotAppLogo, DotAppSwitcher, DotAppToolbar, DotAutoComplete, DotAvatar, DotAvatarGroup, DotBadge, Board as DotBoard, BoardColumn as DotBoardColumn, BoardColumnActionBar as DotBoardColumnActionBar, BoardColumnCollapse as DotBoardColumnCollapse, BoardColumnExpand as DotBoardColumnExpand, BoardColumnHeader as DotBoardColumnHeader, BoardColumnItems as DotBoardColumnItems, BoardColumnSummary as DotBoardColumnSummary, DotBreadcrumbs, DotButton, DotButtonToggle, DotCard, DotCardContent, DotCardFooter, DotCardHeader, DotCarousel, DotCheckbox, DotCheckboxGroup, DotChip, DotChipList, DotClickAwayListener, DotConfirmationDialog, DotCopyButton, DotCoreApiProvider, DotDashboardActions, DotDashboardDetails, DotDashboardDialog, DotDashboardHeader, DotDashboardOptionsMenu, DotDashboardPublishConfirm, DotDashboardStatusPill, DotDatePicker, DotDialog, DotDivider, DotDraggableList, DotDrawer, DotDynamicForm, DotEmptyFilterState, DotEmptyState, DotFileListItem, DotFileUpload, DotForm, DotFormGroup, DotHeaderRow, DotIcon, DotIconButton, DotIllustration, DotImpactDialog, DotInlineEdit, DotInputSelect, DotInputText, DotLinearProgress, DotLink, DotList, DotMenu, DotMetadataApiProvider, DotNavigationRail, DotPill, DotPopper, DotProgress, DotProgressButton, DotRadioButton, DotRadioGroup, DotSidebar, DotSkeleton, DotSnackbar, DotSnackbarContainer, DotSnackbarProvider, DotSplitButton, DotStepper, DotStickyWithBorder, DotSwitch, DotTable, DotTableAction, DotTableActions, DotTablePagination, DotTabs, DotThemeProvider, DotTimePicker, DotTooltip, DotTruncateWithTooltip, DotTypography, avatarColors, breakpointOptions, checkIfValidDate, darkFigmaColors, lightThemeColors as lightColors, lightFigmaColors, mockScrollIntoView, parseAutoCompleteValue, variables as themeVariables, typographyOptions, useBoardStatus, useColumnStatus, useDotCoreApiContext, useDotMetadataApiContext, useDotSnackbarContext, useEnqueueErrorMessage };
18987
+ export { ApiError$1 as ApiError, BoardStatusProvider, Cell, ColumnStatusProvider, CreateUUID, CssCell, CssGrid, CssGridDebug, DashboardAppTypeOptions, DashboardView, DatePickerKeydownContext, Daytime, DotAccordion, DotActionToolbar, DotAlertBanner, DotAppLogo, DotAppSwitcher, DotAppToolbar, DotAutoComplete, DotAvatar, DotAvatarGroup, DotBadge, Board as DotBoard, BoardColumn as DotBoardColumn, BoardColumnActionBar as DotBoardColumnActionBar, BoardColumnCollapse as DotBoardColumnCollapse, BoardColumnExpand as DotBoardColumnExpand, BoardColumnHeader as DotBoardColumnHeader, BoardColumnItems as DotBoardColumnItems, BoardColumnSummary as DotBoardColumnSummary, DotBreadcrumbs, DotButton, DotButtonToggle, DotCard, DotCardContent, DotCardFooter, DotCardHeader, DotCarousel, DotCheckbox, DotCheckboxGroup, DotChip, DotChipList, DotClickAwayListener, DotConfirmationDialog, DotCopyButton, DotCoreApiProvider, DotDashboardActions, DotDashboardDetails, DotDashboardDialog, DotDashboardHeader, DotDashboardOptionsMenu, DotDashboardPublishConfirm, DotDashboardStatusPill, DotDatePicker, DotDialog, DotDivider, DotDraggableList, DotDrawer, DotDynamicForm, DotEmptyFilterState, DotEmptyState, DotFileListItem, DotFileUpload, DotForm, DotFormGroup, DotHeaderRow, DotIcon, DotIconButton, DotIllustration, DotImpactDialog, DotInlineEdit, DotInputLabel, DotInputSelect, DotInputText, DotLinearProgress, DotLink, DotList, DotMenu, DotMetadataApiProvider, DotNavigationRail, DotPill, DotPopper, DotProgress, DotProgressButton, DotRadioButton, DotRadioGroup, DotSidebar, DotSkeleton, DotSnackbar, DotSnackbarContainer, DotSnackbarProvider, DotSplitButton, DotStepper, DotStickyWithBorder, DotSwitch, DotTable, DotTableAction, DotTableActions, DotTablePagination, DotTabs, DotThemeProvider, DotTimePicker, DotTooltip, DotTruncateWithTooltip, DotTypography, avatarColors, breakpointOptions, checkIfValidDate, darkFigmaColors, lightThemeColors as lightColors, lightFigmaColors, mockScrollIntoView, parseAutoCompleteValue, variables as themeVariables, typographyOptions, useBoardStatus, useColumnStatus, useDotCoreApiContext, useDotMetadataApiContext, useDotSnackbarContext, useEnqueueErrorMessage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digital-ai/dot-components",
3
- "version": "3.24.1",
3
+ "version": "3.26.0",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN <LICENSE.md>",
6
6
  "contributors": [
@@ -2,5 +2,5 @@ export declare const dashboardCategoriesContainerClassName = "dashboard-categori
2
2
  export declare const InlineMessage: import("styled-components").StyledComponent<({ ariaLabel, ariaLevel, ariaRole, className, "data-testid": dataTestId, children, component, noMarginBottom, noWrap, variant, }: import("../../typography/Typography").TypographyProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
3
3
  export declare const StyledPublishConfirmDiv: import("styled-components").StyledComponent<"div", any, {}, never>;
4
4
  export declare const StyledAppSelectDiv: import("styled-components").StyledComponent<"div", any, {}, never>;
5
- export declare const StyledAppSelectDotAutoComplete: import("styled-components").StyledComponent<(<T extends import("../..").AutoCompleteOption>({ ListboxComponent, actionItem, ariaLabel, autoFocus, autoHighlight, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultValue, dense, disabled, disablePortal, endAdornmentTooltip, error, filterOptions, filterSelectedOptions, freesolo, checkIfOptionDisabled, group, helperText, inputId, inputRef, inputValue, isOptionEqualToValue, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, popperClassName, popperPlacement, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, value, warning, }: import("../../auto-complete/AutoComplete").AutoCompleteProps<T>) => import("react/jsx-runtime").JSX.Element), any, {}, never>;
5
+ export declare const StyledAppSelectDotAutoComplete: import("styled-components").StyledComponent<(<T extends import("../..").AutoCompleteOption>({ ListboxComponent, actionItem, ariaLabel, autoFocus, autoHighlight, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultValue, dense, disabled, disablePortal, endAdornmentTooltip, error, filterOptions, filterSelectedOptions, freesolo, checkIfOptionDisabled, group, helperText, informationToolTip, inputId, inputRef, inputValue, isOptionEqualToValue, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, popperClassName, popperPlacement, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, value, warning, }: import("../../auto-complete/AutoComplete").AutoCompleteProps<T>) => import("react/jsx-runtime").JSX.Element), any, {}, never>;
6
6
  export declare const StyledAppSelectAutoCompleteOption: import("styled-components").StyledComponent<"li", any, {}, never>;
@@ -11,12 +11,14 @@ interface CommonDashboardDetailsProps extends CommonProps {
11
11
  interface DashboardDetailsViewProps extends CommonDashboardDetailsProps {
12
12
  currentUser?: UserModel;
13
13
  dashboard: DashboardView;
14
+ modifiedAuthorUser?: UserModel;
14
15
  open: boolean;
15
16
  }
16
- export declare const DotDashboardDetailsView: ({ className, dashboard, onClose, onFavorite, open, yOffset, zIndex, currentUser, }: DashboardDetailsViewProps) => import("react/jsx-runtime").JSX.Element;
17
+ export declare const DotDashboardDetailsView: ({ className, dashboard, onClose, onFavorite, open, yOffset, zIndex, currentUser, modifiedAuthorUser, }: DashboardDetailsViewProps) => import("react/jsx-runtime").JSX.Element;
17
18
  export interface DashboardDetailsProps extends CommonDashboardDetailsProps {
18
19
  currentUser?: UserModel;
19
20
  dashboard?: DashboardView;
21
+ modifiedAuthorUser?: UserModel;
20
22
  }
21
- export declare const DotDashboardDetails: ({ dashboard, onClose, onFavorite, currentUser, ...commonProps }: DashboardDetailsProps) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const DotDashboardDetails: ({ dashboard, onClose, onFavorite, currentUser, modifiedAuthorUser, ...commonProps }: DashboardDetailsProps) => import("react/jsx-runtime").JSX.Element;
22
24
  export {};
@@ -3,6 +3,7 @@ import { UserModel } from '../../core-api/openapi';
3
3
  interface DashboardStatusPillProps {
4
4
  currentUser?: UserModel;
5
5
  dashboard: DashboardView;
6
+ modifiedAuthorUser?: UserModel;
6
7
  }
7
- declare function DotDashboardStatusPill({ dashboard, currentUser, }: Readonly<DashboardStatusPillProps>): import("react/jsx-runtime").JSX.Element;
8
+ declare function DotDashboardStatusPill({ dashboard, currentUser, modifiedAuthorUser, }: Readonly<DashboardStatusPillProps>): import("react/jsx-runtime").JSX.Element;
8
9
  export { DashboardStatusPillProps, DotDashboardStatusPill };
@@ -40,6 +40,8 @@ export interface AutoCompleteProps<T extends AutoCompleteOption = AutoCompleteOp
40
40
  group?: boolean;
41
41
  /** The helper text content. */
42
42
  helperText?: string;
43
+ /** Additional information for persistent labels */
44
+ informationToolTip?: string;
43
45
  /** The id for the input field. */
44
46
  inputId: string;
45
47
  /** pass a ref to the input element */
@@ -96,4 +98,4 @@ export interface AutoCompleteProps<T extends AutoCompleteOption = AutoCompleteOp
96
98
  /** If true, the label will be displayed in a warning state. */
97
99
  warning?: boolean;
98
100
  }
99
- export declare const DotAutoComplete: <T extends AutoCompleteOption>({ ListboxComponent, actionItem, ariaLabel, autoFocus, autoHighlight, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultValue, dense, disabled, disablePortal, endAdornmentTooltip, error, filterOptions, filterSelectedOptions, freesolo, checkIfOptionDisabled, group, helperText, inputId, inputRef, inputValue, isOptionEqualToValue, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, popperClassName, popperPlacement, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, value, warning, }: AutoCompleteProps<T>) => import("react/jsx-runtime").JSX.Element;
101
+ export declare const DotAutoComplete: <T extends AutoCompleteOption>({ ListboxComponent, actionItem, ariaLabel, autoFocus, autoHighlight, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultValue, dense, disabled, disablePortal, endAdornmentTooltip, error, filterOptions, filterSelectedOptions, freesolo, checkIfOptionDisabled, group, helperText, informationToolTip, inputId, inputRef, inputValue, isOptionEqualToValue, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, popperClassName, popperPlacement, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, value, warning, }: AutoCompleteProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -36,6 +36,8 @@ export interface DatePickerProps extends CommonProps {
36
36
  fullWidth?: boolean;
37
37
  /** The helper text content. */
38
38
  helperText?: ReactNode;
39
+ /** Additional information for persistent labels */
40
+ informationToolTip?: string;
39
41
  /** Identifies the input element and also used to create label "for" and helper text id attribute */
40
42
  inputId: string;
41
43
  /** The name of input element */
@@ -80,4 +82,4 @@ export interface DatePickerProps extends CommonProps {
80
82
  /** The selected value. Used when the component is controlled. Date in ISO 8601 format, ie: YYYY-MM-DD */
81
83
  value?: string;
82
84
  }
83
- export declare const DotDatePicker: ({ ariaLabel, autoFocus, className, closeOnSelect, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultValue, disableOpenPicker, disablePast, disablePortal, disabled, displayWeekNumber, displayClearButton, error, fixedWeekNumber, focusInputOnPopperOpened, format, fullWidth, helperText, inputId, inputName, label, locale, maxDate, minDate, onAccept, onBlur, onChange, onClose, onError, onKeyDown, onOpen, open, persistentLabel, readOnly, required, showDaysOutsideCurrentMonth, value, }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
85
+ export declare const DotDatePicker: ({ ariaLabel, autoFocus, className, closeOnSelect, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultValue, disableOpenPicker, disablePast, disablePortal, disabled, displayWeekNumber, displayClearButton, error, fixedWeekNumber, focusInputOnPopperOpened, format, fullWidth, helperText, inputId, inputName, label, locale, maxDate, minDate, onAccept, onBlur, onChange, onClose, onError, onKeyDown, onOpen, open, persistentLabel, readOnly, required, showDaysOutsideCurrentMonth, value, informationToolTip, }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
@@ -90,6 +90,7 @@ export { DotIllustration } from './illustration/Illustration';
90
90
  export { DotImpactDialog } from './impact-dialog/ImpactDialog';
91
91
  export { DotInlineEdit } from './inline-edit';
92
92
  export { DotInputText } from './input-form-fields/InputText';
93
+ export { DotInputLabel } from './input-form-fields/InputLabel';
93
94
  export { DotInputSelect } from './input-form-fields/InputSelect';
94
95
  export { DotLink } from './link/Link';
95
96
  export { DotList } from './list';
@@ -1,6 +1,7 @@
1
1
  import { TextField } from '@mui/material';
2
2
  export declare const rootClassName = "dot-text-field";
3
3
  export declare const rootSelectClassName = "dot-select-field";
4
+ export declare const wrapperClassName = "dot-label-wrapper";
4
5
  export declare const labelClassName = "dot-input-label";
5
6
  export declare const errorClassName = "dot-error";
6
7
  export declare const warningClassName = "dot-warning";
@@ -9,9 +9,11 @@ export interface InputLabelProps extends CommonProps {
9
9
  * values while it's optional, it is considered required for accessiblity best practice.
10
10
  */
11
11
  id: string;
12
+ /** Additional information for persistent labels */
13
+ informationToolTip?: string;
12
14
  /** The label content. */
13
15
  label?: string;
14
16
  /** If true, the label is displayed as required and the input element` will be required. */
15
17
  required?: boolean;
16
18
  }
17
- export declare const DotInputLabel: ({ "data-testid": dataTestId, disabled, error, id, label, required, }: InputLabelProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const DotInputLabel: ({ "data-testid": dataTestId, disabled, error, id, informationToolTip, label, required, }: InputLabelProps) => import("react/jsx-runtime").JSX.Element;
@@ -13,6 +13,8 @@ export interface InputTextProps extends InputProps {
13
13
  hasDebounce?: boolean;
14
14
  /** If true, the input will render resizer in multiline mode. False by default. */
15
15
  hasResizer?: boolean;
16
+ /** Additional information for persistent labels */
17
+ informationToolTip?: string;
16
18
  /** Maximum number of rows for multiline mode. */
17
19
  maxRows?: number;
18
20
  /** Minimum number of rows for multiline mode. */
@@ -38,4 +40,4 @@ export interface EndIconProps {
38
40
  success?: boolean;
39
41
  warning?: boolean;
40
42
  }
41
- export declare const DotInputText: ({ autoComplete, autoFocus, className, defaultValue, "data-pendoid": dataPendoId, "data-testid": dataTestId, disabled, error, endAdornmentTooltip, fullWidth, hasDebounce, hasResizer, helperText, endIcon, endText, id, inputRef, label, max, maxLength, maxRows, min, minLength, minRows, multiline, name, onBlur, onChange, onClear, onFocus, onKeyDown, onMouseUp, persistentLabel, placeholder, readOnly, required, shrink, startIcon, size, success, type, value, warning, }: InputTextProps) => import("react/jsx-runtime").JSX.Element;
43
+ export declare const DotInputText: ({ autoComplete, autoFocus, className, defaultValue, "data-pendoid": dataPendoId, "data-testid": dataTestId, disabled, error, endAdornmentTooltip, fullWidth, hasDebounce, hasResizer, helperText, endIcon, endText, id, informationToolTip, inputRef, label, max, maxLength, maxRows, min, minLength, minRows, multiline, name, onBlur, onChange, onClear, onFocus, onKeyDown, onMouseUp, persistentLabel, placeholder, readOnly, required, shrink, startIcon, size, success, type, value, warning, }: InputTextProps) => import("react/jsx-runtime").JSX.Element;