@digital-ai/dot-components 3.24.1 → 3.25.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: {
@@ -12719,20 +12743,20 @@ const StyledFormContainer = styled.div`
12719
12743
 
12720
12744
  .${rootClassName$N},
12721
12745
  .${rootClassName$P},
12722
- .${rootClassName$1i},
12746
+ .${rootClassName$1k},
12723
12747
  .${rootSelectClassName},
12724
12748
  .${rootClassName$A},
12725
12749
  .${rootClassName$z} {
12726
12750
  margin: ${theme.spacing(1, 0)};
12727
12751
  }
12728
12752
 
12729
- label
12730
- + .${rootClassName$1i},
12731
- label
12753
+ .${wrapperClassName$2} {
12754
+ + .${rootClassName$1k},
12755
+ .${wrapperClassName$2}
12732
12756
  + .${rootSelectClassName},
12733
- label
12757
+ .${wrapperClassName$2}
12734
12758
  + .${rootClassName$A},
12735
- label
12759
+ .${wrapperClassName$2}
12736
12760
  + .${rootClassName$z} {
12737
12761
  margin: ${theme.spacing(0, 0, 1, 0)};
12738
12762
  }
@@ -17588,7 +17612,8 @@ const DotDatePicker = ({
17588
17612
  readOnly = false,
17589
17613
  required = false,
17590
17614
  showDaysOutsideCurrentMonth,
17591
- value
17615
+ value,
17616
+ informationToolTip
17592
17617
  }) => {
17593
17618
  const displayFormat = format || DEFAULT_DATE_FORMAT;
17594
17619
  const hasValueWithoutChangeHandler = value !== undefined && onChange === undefined;
@@ -17663,7 +17688,8 @@ const DotDatePicker = ({
17663
17688
  error,
17664
17689
  id: inputId,
17665
17690
  label,
17666
- required
17691
+ required,
17692
+ informationToolTip
17667
17693
  }), jsx(StyledDatePicker, {
17668
17694
  "aria-label": ariaLabel,
17669
17695
  autoFocus: autoFocus,
@@ -18945,4 +18971,4 @@ const BoardColumnSummary = ({
18945
18971
  });
18946
18972
  };
18947
18973
 
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 };
18974
+ 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.25.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>;
@@ -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;