@digital-ai/dot-components 4.19.2 → 4.20.1
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 +328 -54
- package/package.json +1 -1
- package/src/lib/components/BaseButtonProps.d.ts +1 -1
- package/src/lib/components/analytics/dashboard-actions/DashboardPublishConfirm.styles.d.ts +1 -1
- package/src/lib/components/auto-complete/AutoComplete.d.ts +5 -1
- package/src/lib/components/auto-complete/AutoComplete.styles.d.ts +1 -0
- package/src/lib/components/button/Button.d.ts +2 -1
- package/src/lib/components/button/IconButton.d.ts +1 -1
- package/src/lib/components/icon/Icon.d.ts +4 -2
- package/src/lib/components/icon/Icon.styles.d.ts +1 -0
- package/src/lib/components/icon/index.d.ts +2 -0
- package/src/lib/components/index.d.ts +2 -1
- package/src/lib/components/input-form-fields/InputFormFields.propTypes.d.ts +2 -0
- package/src/lib/components/input-form-fields/InputFormFields.styles.d.ts +1 -0
- package/src/lib/components/input-form-fields/InputText.d.ts +3 -1
- package/src/lib/components/search/Search.styles.d.ts +1 -1
- package/src/lib/theme-provider/ThemeProvider.d.ts +11 -0
- package/src/lib/theme-provider/colors/light-theme-colors.d.ts +40 -10
- package/src/lib/theme-provider/interfaces.d.ts +15 -0
package/index.esm.js
CHANGED
|
@@ -185,23 +185,58 @@ const yA400 = '#ffe2a4';
|
|
|
185
185
|
const yA700 = '#ffda8b';
|
|
186
186
|
//Purple
|
|
187
187
|
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/48416f
|
|
188
|
-
const p50 = '#
|
|
189
|
-
const p100 = '#
|
|
190
|
-
const p200 = '#
|
|
191
|
-
const p300 = '#
|
|
192
|
-
const p400 = '#
|
|
193
|
-
const p500 = '#
|
|
194
|
-
const p600 = '#
|
|
195
|
-
const p700 = '#
|
|
196
|
-
const p800 = '#
|
|
197
|
-
const p900 = '#
|
|
188
|
+
const p50 = '#f5e9fb';
|
|
189
|
+
const p100 = '#ebd4f7';
|
|
190
|
+
const p200 = '#d7aaee';
|
|
191
|
+
const p300 = '#c37fe6';
|
|
192
|
+
const p400 = '#af54de';
|
|
193
|
+
const p500 = '#9e2fd7';
|
|
194
|
+
const p600 = '#7c21ab';
|
|
195
|
+
const p700 = '#5d1980';
|
|
196
|
+
const p800 = '#3e1155';
|
|
197
|
+
const p900 = '#2e0c40';
|
|
198
198
|
const pA100 = '#ff9cd1';
|
|
199
199
|
const pA200 = '#ff69b9';
|
|
200
200
|
const pA400 = '#ff36a2';
|
|
201
201
|
const pA700 = '#ff1d96';
|
|
202
|
+
//Pink
|
|
203
|
+
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/a49f524b62
|
|
204
|
+
const pi50 = '#fce9f6';
|
|
205
|
+
const pi100 = '#f8d3ee';
|
|
206
|
+
const pi200 = '#f1a7dc';
|
|
207
|
+
const pi300 = '#eb7acb';
|
|
208
|
+
const pi400 = '#e44eb9';
|
|
209
|
+
const pi500 = '#dd22a8';
|
|
210
|
+
const pi600 = '#b11b86';
|
|
211
|
+
const pi700 = '#851465';
|
|
212
|
+
const pi800 = '#580e43';
|
|
213
|
+
const pi900 = '#2c0722';
|
|
214
|
+
//Violet
|
|
215
|
+
const v50 = '#ede8fd';
|
|
216
|
+
const v100 = '#dbd1fa';
|
|
217
|
+
const v200 = '#b6a3f5';
|
|
218
|
+
const v300 = '#9275f0';
|
|
219
|
+
const v400 = '#704aec';
|
|
220
|
+
const v500 = '#4c1de7';
|
|
221
|
+
const v600 = '#3a13b9';
|
|
222
|
+
const v700 = '#2c0f8a';
|
|
223
|
+
const v800 = '#1d0a5c';
|
|
224
|
+
const v900 = '#0f052e';
|
|
202
225
|
const selectedGray = 'rgba(0, 0, 0, 0.12)';
|
|
203
226
|
const lightSelectedGray = 'rgba(0, 0, 0, 0.08)';
|
|
204
227
|
const hoverGray = 'rgba(0, 0, 0, 0.04)';
|
|
228
|
+
// AI gradient for dark theme
|
|
229
|
+
const aiNormalDark = `linear-gradient(134deg, ${pi200} 18.22%, ${p200} 68.6%, ${v200} 118.99%)`;
|
|
230
|
+
const aiActiveDark = `linear-gradient(134deg, ${pi200} 18.22%, ${p200} 68.6%, ${v200} 118.99%)`;
|
|
231
|
+
const aiElevatedDark = `linear-gradient(134deg, ${pi50} 18.22%, ${p200} 68.6%, ${v200} 118.99%)`;
|
|
232
|
+
const aiLightDark = `linear-gradient(134deg, ${pi700} 18.22%, ${p700} 68.6%, ${v700} 118.99%)`;
|
|
233
|
+
const aiAutoCompleteBorderDark = `linear-gradient(134deg, ${pi200} 18.22%, ${p200} 68.6%, ${pi300} 118.99%)`;
|
|
234
|
+
// AI gradient for light theme
|
|
235
|
+
const aiNormalLight = `linear-gradient(134deg, ${pi500} 18.22%, ${p500} 68.6%, ${v400} 118.99%)`;
|
|
236
|
+
const aiActiveLight = `linear-gradient(134deg, ${pi400} 18.22%, ${p400} 68.6%, ${v400} 118.99%)`;
|
|
237
|
+
const aiElevatedLight = `linear-gradient(134deg, ${pi600} 18.22%, ${p600} 68.6%, ${v600} 118.99%)`;
|
|
238
|
+
const aiLightLight = `linear-gradient(134deg, ${pi50} 18.22%, ${p50} 68.6%, ${v50} 118.99%)`;
|
|
239
|
+
const aiAutoCompleteBorderLight = `linear-gradient(134deg, ${pi500} 18.22%, ${p500} 68.6%, ${pi300} 118.99%)`;
|
|
205
240
|
|
|
206
241
|
var lightThemeColors = /*#__PURE__*/Object.freeze({
|
|
207
242
|
__proto__: null,
|
|
@@ -308,12 +343,50 @@ var lightThemeColors = /*#__PURE__*/Object.freeze({
|
|
|
308
343
|
pA200: pA200,
|
|
309
344
|
pA400: pA400,
|
|
310
345
|
pA700: pA700,
|
|
346
|
+
pi50: pi50,
|
|
347
|
+
pi100: pi100,
|
|
348
|
+
pi200: pi200,
|
|
349
|
+
pi300: pi300,
|
|
350
|
+
pi400: pi400,
|
|
351
|
+
pi500: pi500,
|
|
352
|
+
pi600: pi600,
|
|
353
|
+
pi700: pi700,
|
|
354
|
+
pi800: pi800,
|
|
355
|
+
pi900: pi900,
|
|
356
|
+
v50: v50,
|
|
357
|
+
v100: v100,
|
|
358
|
+
v200: v200,
|
|
359
|
+
v300: v300,
|
|
360
|
+
v400: v400,
|
|
361
|
+
v500: v500,
|
|
362
|
+
v600: v600,
|
|
363
|
+
v700: v700,
|
|
364
|
+
v800: v800,
|
|
365
|
+
v900: v900,
|
|
311
366
|
selectedGray: selectedGray,
|
|
312
367
|
lightSelectedGray: lightSelectedGray,
|
|
313
|
-
hoverGray: hoverGray
|
|
368
|
+
hoverGray: hoverGray,
|
|
369
|
+
aiNormalDark: aiNormalDark,
|
|
370
|
+
aiActiveDark: aiActiveDark,
|
|
371
|
+
aiElevatedDark: aiElevatedDark,
|
|
372
|
+
aiLightDark: aiLightDark,
|
|
373
|
+
aiAutoCompleteBorderDark: aiAutoCompleteBorderDark,
|
|
374
|
+
aiNormalLight: aiNormalLight,
|
|
375
|
+
aiActiveLight: aiActiveLight,
|
|
376
|
+
aiElevatedLight: aiElevatedLight,
|
|
377
|
+
aiLightLight: aiLightLight,
|
|
378
|
+
aiAutoCompleteBorderLight: aiAutoCompleteBorderLight
|
|
314
379
|
});
|
|
315
380
|
|
|
316
381
|
const lightFigmaColors = {
|
|
382
|
+
aiPink: {
|
|
383
|
+
active: pi400,
|
|
384
|
+
elevated: pi600,
|
|
385
|
+
light: pi50,
|
|
386
|
+
normal: pi500,
|
|
387
|
+
ripple: pi300,
|
|
388
|
+
rippleLight: pi200
|
|
389
|
+
},
|
|
317
390
|
appToolbar: {
|
|
318
391
|
background: n700,
|
|
319
392
|
btnHover: n900
|
|
@@ -349,6 +422,13 @@ const lightFigmaColors = {
|
|
|
349
422
|
disabled: {
|
|
350
423
|
normal: n50
|
|
351
424
|
},
|
|
425
|
+
gradient: {
|
|
426
|
+
active: aiActiveLight,
|
|
427
|
+
ai: aiAutoCompleteBorderLight,
|
|
428
|
+
elevated: aiElevatedLight,
|
|
429
|
+
light: aiLightLight,
|
|
430
|
+
normal: aiNormalLight
|
|
431
|
+
},
|
|
352
432
|
graph: {
|
|
353
433
|
alert: {
|
|
354
434
|
error: r500,
|
|
@@ -461,6 +541,14 @@ const lightFigmaColors = {
|
|
|
461
541
|
}
|
|
462
542
|
};
|
|
463
543
|
const darkFigmaColors = {
|
|
544
|
+
aiPink: {
|
|
545
|
+
active: pi200,
|
|
546
|
+
elevated: pi50,
|
|
547
|
+
light: pi700,
|
|
548
|
+
normal: pi200,
|
|
549
|
+
ripple: pi300,
|
|
550
|
+
rippleLight: pi200
|
|
551
|
+
},
|
|
464
552
|
appToolbar: {
|
|
465
553
|
background: n700,
|
|
466
554
|
btnHover: n900
|
|
@@ -496,6 +584,13 @@ const darkFigmaColors = {
|
|
|
496
584
|
disabled: {
|
|
497
585
|
normal: n500
|
|
498
586
|
},
|
|
587
|
+
gradient: {
|
|
588
|
+
active: aiActiveDark,
|
|
589
|
+
ai: aiAutoCompleteBorderDark,
|
|
590
|
+
elevated: aiElevatedDark,
|
|
591
|
+
light: aiLightDark,
|
|
592
|
+
normal: aiNormalDark
|
|
593
|
+
},
|
|
499
594
|
graph: {
|
|
500
595
|
alert: {
|
|
501
596
|
error: r200,
|
|
@@ -1299,6 +1394,7 @@ const fieldsetClassName = 'MuiOutlinedInput-notchedOutline';
|
|
|
1299
1394
|
const readOnlyClassName$1 = 'read-only';
|
|
1300
1395
|
const resizerClassName = 'with-resizer';
|
|
1301
1396
|
const ROW_HEIGHT = 37;
|
|
1397
|
+
const inputAiClassName$1 = 'dot-input-ai';
|
|
1302
1398
|
const StyledAdornment = styled(InputAdornment)`
|
|
1303
1399
|
.dot-icon {
|
|
1304
1400
|
${adornmentIconStyles()};
|
|
@@ -1499,6 +1595,17 @@ const StyledTextField = styled(TextField)`
|
|
|
1499
1595
|
}
|
|
1500
1596
|
}
|
|
1501
1597
|
|
|
1598
|
+
&.${inputAiClassName$1} {
|
|
1599
|
+
color: ${theme.palette.figma.typography.white};
|
|
1600
|
+
background: ${theme.palette.figma.gradient.normal};
|
|
1601
|
+
border: 1px solid transparent;
|
|
1602
|
+
border-radius: 4px;
|
|
1603
|
+
|
|
1604
|
+
.MuiOutlinedInput-root .${fieldsetClassName} {
|
|
1605
|
+
border: none;
|
|
1606
|
+
}
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1502
1609
|
.MuiOutlinedInput-adornedStart {
|
|
1503
1610
|
padding-left: 12px;
|
|
1504
1611
|
|
|
@@ -1515,6 +1622,7 @@ const StyledTextField = styled(TextField)`
|
|
|
1515
1622
|
`;
|
|
1516
1623
|
|
|
1517
1624
|
const rootClassName$1n = 'dot-icon';
|
|
1625
|
+
const aiIconClassName = 'dot-icon-ai';
|
|
1518
1626
|
const StyledIcon = styled(Icon)`
|
|
1519
1627
|
${({
|
|
1520
1628
|
theme
|
|
@@ -1523,13 +1631,17 @@ const StyledIcon = styled(Icon)`
|
|
|
1523
1631
|
color: ${theme.palette.figma.icon.black};
|
|
1524
1632
|
font-size: 20px;
|
|
1525
1633
|
|
|
1634
|
+
i {
|
|
1635
|
+
height: 20px;
|
|
1636
|
+
width: 20px;
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1526
1639
|
&.MuiIcon-fontSizeLarge {
|
|
1527
|
-
font-size:
|
|
1528
|
-
height: 35px;
|
|
1529
|
-
width: 35px;
|
|
1640
|
+
font-size: 24px;
|
|
1530
1641
|
|
|
1531
1642
|
i {
|
|
1532
|
-
height:
|
|
1643
|
+
height: 24px;
|
|
1644
|
+
width: 24px;
|
|
1533
1645
|
}
|
|
1534
1646
|
}
|
|
1535
1647
|
&.MuiIcon-fontSizeSmall {
|
|
@@ -1537,16 +1649,19 @@ const StyledIcon = styled(Icon)`
|
|
|
1537
1649
|
|
|
1538
1650
|
i {
|
|
1539
1651
|
height: 18px;
|
|
1652
|
+
width: 18px;
|
|
1540
1653
|
}
|
|
1541
1654
|
}
|
|
1542
1655
|
|
|
1543
|
-
i {
|
|
1544
|
-
height: 20px;
|
|
1545
|
-
}
|
|
1546
|
-
|
|
1547
1656
|
&.${warningClassName} {
|
|
1548
1657
|
color: ${theme.palette.figma.warning.normal};
|
|
1549
1658
|
}
|
|
1659
|
+
|
|
1660
|
+
&.${aiIconClassName} {
|
|
1661
|
+
background: ${theme.palette.figma.gradient.normal};
|
|
1662
|
+
color: transparent;
|
|
1663
|
+
-webkit-background-clip: text;
|
|
1664
|
+
}
|
|
1550
1665
|
}
|
|
1551
1666
|
`}
|
|
1552
1667
|
`;
|
|
@@ -1559,9 +1674,10 @@ const DotIcon = ({
|
|
|
1559
1674
|
disableInteractive,
|
|
1560
1675
|
fontSize = 'medium',
|
|
1561
1676
|
iconId,
|
|
1562
|
-
tooltip
|
|
1677
|
+
tooltip,
|
|
1678
|
+
ai = false
|
|
1563
1679
|
}) => {
|
|
1564
|
-
const rootClasses = useStylesWithRootClass(rootClassName$1n, className);
|
|
1680
|
+
const rootClasses = useStylesWithRootClass(rootClassName$1n, className, ai ? aiIconClassName : '');
|
|
1565
1681
|
return jsx(DotTooltip, {
|
|
1566
1682
|
disableInteractive: disableInteractive,
|
|
1567
1683
|
childrenDisplayStyle: "inline-block",
|
|
@@ -2723,6 +2839,71 @@ const StyledButton = styled(Button)`
|
|
|
2723
2839
|
border-color: ${theme.palette.figma.border.defaultButton};
|
|
2724
2840
|
}
|
|
2725
2841
|
|
|
2842
|
+
&.MuiButton-ai {
|
|
2843
|
+
color: ${theme.palette.figma.typography.white};
|
|
2844
|
+
background: ${theme.palette.figma.gradient.normal};
|
|
2845
|
+
|
|
2846
|
+
&:hover {
|
|
2847
|
+
background: ${theme.palette.figma.gradient.elevated};
|
|
2848
|
+
}
|
|
2849
|
+
&:active {
|
|
2850
|
+
background-color: ${theme.palette.figma.gradient.active};
|
|
2851
|
+
}
|
|
2852
|
+
.dot-icon {
|
|
2853
|
+
color: ${theme.palette.figma.icon.white};
|
|
2854
|
+
}
|
|
2855
|
+
&.Mui-disabled {
|
|
2856
|
+
background: ${theme.palette.figma.disabled.normal};
|
|
2857
|
+
border-color: ${theme.palette.figma.border.defaultButton};
|
|
2858
|
+
}
|
|
2859
|
+
}
|
|
2860
|
+
|
|
2861
|
+
&.MuiButton-ai-outlined {
|
|
2862
|
+
color: ${theme.palette.figma.gradient.normal};
|
|
2863
|
+
|
|
2864
|
+
${theme.name === 'light' && css`
|
|
2865
|
+
background-image: linear-gradient(white, white),
|
|
2866
|
+
${theme.palette.figma.gradient.normal};
|
|
2867
|
+
border: 2px solid transparent;
|
|
2868
|
+
`}
|
|
2869
|
+
${theme.name === 'dark' && css`
|
|
2870
|
+
border: 2px solid ${theme.palette.figma.aiPink.active};
|
|
2871
|
+
`}
|
|
2872
|
+
|
|
2873
|
+
background-clip: padding-box, border-box;
|
|
2874
|
+
background-origin: border-box;
|
|
2875
|
+
|
|
2876
|
+
&:hover {
|
|
2877
|
+
${theme.name === 'light' && css`
|
|
2878
|
+
background-image: linear-gradient(
|
|
2879
|
+
${theme.palette.figma.aiPink.light},
|
|
2880
|
+
${theme.palette.figma.aiPink.light}
|
|
2881
|
+
),
|
|
2882
|
+
${theme.palette.figma.gradient.normal};
|
|
2883
|
+
border: 2px solid transparent;
|
|
2884
|
+
`}
|
|
2885
|
+
}
|
|
2886
|
+
&:active {
|
|
2887
|
+
background-color: ${theme.palette.figma.neutral.active};
|
|
2888
|
+
}
|
|
2889
|
+
|
|
2890
|
+
.dot-icon {
|
|
2891
|
+
background: ${theme.palette.figma.gradient.normal};
|
|
2892
|
+
background-clip: text;
|
|
2893
|
+
color: transparent;
|
|
2894
|
+
}
|
|
2895
|
+
}
|
|
2896
|
+
|
|
2897
|
+
&.MuiButton-ai-outlined {
|
|
2898
|
+
background-color: ${theme.palette.figma.neutral.normal};
|
|
2899
|
+
color: ${theme.palette.figma.aiPink.normal};
|
|
2900
|
+
|
|
2901
|
+
&.Mui-disabled {
|
|
2902
|
+
background: ${theme.palette.figma.disabled.normal};
|
|
2903
|
+
border-color: ${theme.palette.figma.border.defaultButton};
|
|
2904
|
+
}
|
|
2905
|
+
}
|
|
2906
|
+
|
|
2726
2907
|
&.MuiButton-text {
|
|
2727
2908
|
background-color: transparent;
|
|
2728
2909
|
}
|
|
@@ -2775,6 +2956,7 @@ const DotButton = forwardRef(({
|
|
|
2775
2956
|
isSubmit = false,
|
|
2776
2957
|
onClick,
|
|
2777
2958
|
onKeyDown,
|
|
2959
|
+
onMouseDown,
|
|
2778
2960
|
size = 'medium',
|
|
2779
2961
|
startIcon,
|
|
2780
2962
|
tabIndex,
|
|
@@ -2802,6 +2984,14 @@ const DotButton = forwardRef(({
|
|
|
2802
2984
|
color = 'inherit';
|
|
2803
2985
|
variant = 'text';
|
|
2804
2986
|
break;
|
|
2987
|
+
case 'ai':
|
|
2988
|
+
color = 'primary';
|
|
2989
|
+
variant = 'ai';
|
|
2990
|
+
break;
|
|
2991
|
+
case 'ai-outlined':
|
|
2992
|
+
color = 'inherit';
|
|
2993
|
+
variant = 'ai-outlined';
|
|
2994
|
+
break;
|
|
2805
2995
|
}
|
|
2806
2996
|
return jsx(DotTooltip, {
|
|
2807
2997
|
childrenDisplayStyle: "inline-block",
|
|
@@ -2824,6 +3014,7 @@ const DotButton = forwardRef(({
|
|
|
2824
3014
|
fullWidth: fullWidth,
|
|
2825
3015
|
onClick: event => onClick && onClick(event),
|
|
2826
3016
|
onKeyDown: onKeyDown,
|
|
3017
|
+
onMouseDown: onMouseDown,
|
|
2827
3018
|
ref: ref,
|
|
2828
3019
|
role: ariaRole,
|
|
2829
3020
|
size: size,
|
|
@@ -3694,6 +3885,29 @@ const StyledIconButton = styled(IconButton)`
|
|
|
3694
3885
|
${color === 'default' ? css`
|
|
3695
3886
|
color: ${theme.palette.figma.icon.black};
|
|
3696
3887
|
` : ''}
|
|
3888
|
+
|
|
3889
|
+
&.MuiIconButton-colorAi{
|
|
3890
|
+
color: ${theme.palette.figma.icon.white};
|
|
3891
|
+
background: ${theme.palette.figma.gradient.normal};
|
|
3892
|
+
|
|
3893
|
+
&:hover {
|
|
3894
|
+
background: ${theme.palette.figma.gradient.elevated};
|
|
3895
|
+
}
|
|
3896
|
+
&:active {
|
|
3897
|
+
background-color: ${theme.palette.figma.gradient.ripple};
|
|
3898
|
+
}
|
|
3899
|
+
&:focus {
|
|
3900
|
+
background-color: ${theme.palette.figma.gradient.active};
|
|
3901
|
+
}
|
|
3902
|
+
.dot-icon {
|
|
3903
|
+
color: ${theme.palette.figma.icon.white};
|
|
3904
|
+
}
|
|
3905
|
+
&.Mui-disabled {
|
|
3906
|
+
background: ${theme.palette.figma.disabled.normal};
|
|
3907
|
+
border: 1px solid ${theme.palette.figma.border.defaultButton};
|
|
3908
|
+
}
|
|
3909
|
+
}
|
|
3910
|
+
|
|
3697
3911
|
font-size: inherit;
|
|
3698
3912
|
padding: 10px;
|
|
3699
3913
|
|
|
@@ -3719,11 +3933,15 @@ const StyledIconButton = styled(IconButton)`
|
|
|
3719
3933
|
|
|
3720
3934
|
&.shape-square {
|
|
3721
3935
|
border-radius: 4px;
|
|
3722
|
-
border: 1px solid ${theme.palette.figma.border.defaultButton};
|
|
3723
3936
|
padding: ${theme.spacing(1)};
|
|
3937
|
+
${color !== 'ai' ? css`
|
|
3938
|
+
border: 1px solid ${theme.palette.figma.border.defaultButton};
|
|
3939
|
+
` : ''}
|
|
3724
3940
|
|
|
3725
3941
|
&:active {
|
|
3726
|
-
|
|
3942
|
+
${color !== 'ai' ? css`
|
|
3943
|
+
background: ${theme.palette.figma.toggleTabs.bckg};
|
|
3944
|
+
` : ''}
|
|
3727
3945
|
}
|
|
3728
3946
|
}
|
|
3729
3947
|
|
|
@@ -4667,6 +4885,7 @@ const getInitialState = (value, defaultValue) => ({
|
|
|
4667
4885
|
inputValue: value || defaultValue || ''
|
|
4668
4886
|
});
|
|
4669
4887
|
const DotInputText = ({
|
|
4888
|
+
ai = false,
|
|
4670
4889
|
autoComplete = 'off',
|
|
4671
4890
|
autoFocus,
|
|
4672
4891
|
className,
|
|
@@ -4715,11 +4934,12 @@ const DotInputText = ({
|
|
|
4715
4934
|
const hasError = error && errorClassName;
|
|
4716
4935
|
const hasWarning = !error && warning && warningClassName;
|
|
4717
4936
|
const hasSuccess = !error && !warning && success && successClassName;
|
|
4937
|
+
const isAiEnabled = ai && inputAiClassName$1;
|
|
4718
4938
|
const hasEndAdornmentIcon = endIcon || error || hasWarning || hasSuccess;
|
|
4719
4939
|
const internalInputRef = useRef(null);
|
|
4720
4940
|
const textFieldInputRef = inputRef || internalInputRef;
|
|
4721
4941
|
const [inputTextState, setInputTextState] = useState(getInitialState(value));
|
|
4722
|
-
const rootStyles = useStylesWithRootClass(rootClassName$1o, hasError, hasWarning, hasSuccess, readOnly && readOnlyClassName$1);
|
|
4942
|
+
const rootStyles = useStylesWithRootClass(rootClassName$1o, hasError, hasWarning, hasSuccess, isAiEnabled, readOnly && readOnlyClassName$1);
|
|
4723
4943
|
useEffect(() => {
|
|
4724
4944
|
if (value !== inputTextState.inputValue) {
|
|
4725
4945
|
setInputTextState(getInitialState(value, defaultValue));
|
|
@@ -6699,6 +6919,7 @@ const DotChip = ({
|
|
|
6699
6919
|
const rootClassName$Z = 'dot-autocomplete';
|
|
6700
6920
|
const inputRootClassName = 'dot-input-root';
|
|
6701
6921
|
const inputMediumClassName = 'dot-input-medium';
|
|
6922
|
+
const inputAiClassName = 'dot-input-ai';
|
|
6702
6923
|
const StyledAutocomplete = styled(Autocomplete)`
|
|
6703
6924
|
${({
|
|
6704
6925
|
theme
|
|
@@ -6737,6 +6958,19 @@ const StyledAutocomplete = styled(Autocomplete)`
|
|
|
6737
6958
|
}
|
|
6738
6959
|
}
|
|
6739
6960
|
}
|
|
6961
|
+
|
|
6962
|
+
&.${inputAiClassName} {
|
|
6963
|
+
color: ${theme.palette.figma.typography.white};
|
|
6964
|
+
background: ${theme.palette.figma.gradient.ai};
|
|
6965
|
+
border: 2px solid transparent;
|
|
6966
|
+
border-radius: 4px;
|
|
6967
|
+
.MuiOutlinedInput-root {
|
|
6968
|
+
padding: 8px;
|
|
6969
|
+
}
|
|
6970
|
+
.MuiOutlinedInput-root .MuiOutlinedInput-notchedOutline {
|
|
6971
|
+
border: none;
|
|
6972
|
+
}
|
|
6973
|
+
}
|
|
6740
6974
|
`}
|
|
6741
6975
|
`;
|
|
6742
6976
|
|
|
@@ -6809,6 +7043,8 @@ const DEFAULT_ACTION_ITEM_TEXT = 'Add new item';
|
|
|
6809
7043
|
const DotAutoComplete = ({
|
|
6810
7044
|
ListboxComponent,
|
|
6811
7045
|
actionItem,
|
|
7046
|
+
ai = false,
|
|
7047
|
+
aiAction,
|
|
6812
7048
|
ariaLabel,
|
|
6813
7049
|
autoFocus,
|
|
6814
7050
|
autoHighlight,
|
|
@@ -6875,7 +7111,7 @@ const DotAutoComplete = ({
|
|
|
6875
7111
|
const popperOpen = !readOnly && (open || isOpened);
|
|
6876
7112
|
const preventDuplicateInsertion = actionItem === null || actionItem === void 0 ? void 0 : actionItem.preventDuplicateInsertion;
|
|
6877
7113
|
const textFieldWarningClassName = !error && warning && warningClassName;
|
|
6878
|
-
const rootClasses = getRootClassNames(className, size);
|
|
7114
|
+
const rootClasses = useStylesWithRootClass(getRootClassNames(className, size), ai ? inputAiClassName : '');
|
|
6879
7115
|
const textFieldRootClasses = getTextFieldRootClassNames(textFieldWarningClassName, readOnly);
|
|
6880
7116
|
const inputRootClasses = getInputRootClassNames(dense);
|
|
6881
7117
|
const popperClasses = useStylesWithRootClass(rootClassName$1d, popperClassName);
|
|
@@ -6915,6 +7151,9 @@ const DotAutoComplete = ({
|
|
|
6915
7151
|
event.relatedTarget !== actionItemRef.current && setIsOpened(false);
|
|
6916
7152
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
6917
7153
|
};
|
|
7154
|
+
const handleAiAction = useCallback(inputText => {
|
|
7155
|
+
aiAction === null || aiAction === void 0 ? void 0 : aiAction(inputText);
|
|
7156
|
+
}, [aiAction]);
|
|
6918
7157
|
const onActionButtonClick = () => {
|
|
6919
7158
|
setIsOpened(false);
|
|
6920
7159
|
textFieldInput.focus();
|
|
@@ -7046,6 +7285,20 @@ const DotAutoComplete = ({
|
|
|
7046
7285
|
}), getInputAdornment(), nativeEndAdornment]
|
|
7047
7286
|
});
|
|
7048
7287
|
};
|
|
7288
|
+
const renderAISendAdornment = params => {
|
|
7289
|
+
const {
|
|
7290
|
+
inputProps
|
|
7291
|
+
} = params;
|
|
7292
|
+
return jsx(DotIconButton, {
|
|
7293
|
+
iconId: "send-airplane",
|
|
7294
|
+
tooltip: "Send",
|
|
7295
|
+
"data-testid": dataTestId && `${dataTestId}-send-airplane-icon`,
|
|
7296
|
+
shape: "square",
|
|
7297
|
+
color: "ai",
|
|
7298
|
+
disabled: !(inputProps === null || inputProps === void 0 ? void 0 : inputProps.value),
|
|
7299
|
+
onClick: () => handleAiAction(inputProps === null || inputProps === void 0 ? void 0 : inputProps.value.toString())
|
|
7300
|
+
});
|
|
7301
|
+
};
|
|
7049
7302
|
const renderTrimmedLongOptions = (props, option) => {
|
|
7050
7303
|
const key = 'id' in option ? option.id : option.title;
|
|
7051
7304
|
return jsx(DotTooltip, {
|
|
@@ -7064,6 +7317,15 @@ const DotAutoComplete = ({
|
|
|
7064
7317
|
const handleRenderOption = (props, option, state) => {
|
|
7065
7318
|
return renderOption ? renderOption(props, option, state) : renderTrimmedLongOptions(props, option);
|
|
7066
7319
|
};
|
|
7320
|
+
const getEndAdornment = params => {
|
|
7321
|
+
if (ai) {
|
|
7322
|
+
return renderAISendAdornment(params);
|
|
7323
|
+
}
|
|
7324
|
+
if (!readOnly) {
|
|
7325
|
+
return renderEndAdornment(params.InputProps.endAdornment);
|
|
7326
|
+
}
|
|
7327
|
+
return undefined;
|
|
7328
|
+
};
|
|
7067
7329
|
return jsx(StyledAutocomplete, {
|
|
7068
7330
|
PopperComponent: DotPopper,
|
|
7069
7331
|
"aria-label": ariaLabel,
|
|
@@ -7150,7 +7412,7 @@ const DotAutoComplete = ({
|
|
|
7150
7412
|
htmlFor: inputId
|
|
7151
7413
|
},
|
|
7152
7414
|
InputProps: Object.assign(Object.assign({}, params.InputProps), {
|
|
7153
|
-
endAdornment:
|
|
7415
|
+
endAdornment: getEndAdornment(params)
|
|
7154
7416
|
}),
|
|
7155
7417
|
inputRef: textFieldRef,
|
|
7156
7418
|
label: persistentLabel ? null : label,
|
|
@@ -11529,6 +11791,7 @@ function DotDashboardDialog({
|
|
|
11529
11791
|
description,
|
|
11530
11792
|
name
|
|
11531
11793
|
} = formValues;
|
|
11794
|
+
const isSubmittingRef = useRef(false);
|
|
11532
11795
|
const {
|
|
11533
11796
|
dashboardSearchLoading,
|
|
11534
11797
|
searchDashboards
|
|
@@ -11571,6 +11834,23 @@ function DotDashboardDialog({
|
|
|
11571
11834
|
onClose(false);
|
|
11572
11835
|
};
|
|
11573
11836
|
}, []);
|
|
11837
|
+
const validateName = useCallback(nameToValidate => __awaiter(this, void 0, void 0, function* () {
|
|
11838
|
+
return cancelablePromise(searchDashboards({
|
|
11839
|
+
name: nameToValidate
|
|
11840
|
+
})).then(response => {
|
|
11841
|
+
if (response === null || 'error' in response) {
|
|
11842
|
+
setNameError('Could not check existing names due to a server error.');
|
|
11843
|
+
return false;
|
|
11844
|
+
} else if (response.length > 0) {
|
|
11845
|
+
const matchingNames = response.filter(dashboard => dashboard.name.toLowerCase() === nameToValidate.toLowerCase() && (!editDashboard || dashboard.name !== editDashboard.name));
|
|
11846
|
+
if (matchingNames.length > 0) {
|
|
11847
|
+
setNameError(`Cannot use duplicate name '${name}'`);
|
|
11848
|
+
return false;
|
|
11849
|
+
}
|
|
11850
|
+
}
|
|
11851
|
+
return true;
|
|
11852
|
+
});
|
|
11853
|
+
}), [editDashboard, name]);
|
|
11574
11854
|
const handleSubmit = useCallback(isDone => __awaiter(this, void 0, void 0, function* () {
|
|
11575
11855
|
setIsLoadingSubmit(true);
|
|
11576
11856
|
// If this dashboard has a parent_id set, it means we are in an in-progress state and we need to use the ID
|
|
@@ -11583,8 +11863,12 @@ function DotDashboardDialog({
|
|
|
11583
11863
|
if (validName) {
|
|
11584
11864
|
yield onSubmit(useFormValues, isDone);
|
|
11585
11865
|
}
|
|
11866
|
+
isSubmittingRef.current = false;
|
|
11586
11867
|
setIsLoadingSubmit(false);
|
|
11587
|
-
}), [formValues, editDashboard]);
|
|
11868
|
+
}), [formValues, editDashboard, validateName]);
|
|
11869
|
+
const handleMouseDown = () => {
|
|
11870
|
+
isSubmittingRef.current = true;
|
|
11871
|
+
};
|
|
11588
11872
|
const handleSubmitCreate = useCallback(() => {
|
|
11589
11873
|
handleSubmit(true);
|
|
11590
11874
|
}, [handleSubmit]);
|
|
@@ -11599,7 +11883,7 @@ function DotDashboardDialog({
|
|
|
11599
11883
|
[targetName]: value
|
|
11600
11884
|
}));
|
|
11601
11885
|
setIsDirty(true);
|
|
11602
|
-
}, [
|
|
11886
|
+
}, []);
|
|
11603
11887
|
const handleChangeCategories = useCallback((_event, options, _reason) => {
|
|
11604
11888
|
const values = options.map(option => option.title);
|
|
11605
11889
|
setFormValues(orig => Object.assign(Object.assign({}, orig), {
|
|
@@ -11629,24 +11913,10 @@ function DotDashboardDialog({
|
|
|
11629
11913
|
}
|
|
11630
11914
|
return availableCategoryOptions;
|
|
11631
11915
|
}, [availableCategories, categories]);
|
|
11632
|
-
const validateName = nameToValidate => __awaiter(this, void 0, void 0, function* () {
|
|
11633
|
-
return cancelablePromise(searchDashboards({
|
|
11634
|
-
name: nameToValidate
|
|
11635
|
-
})).then(response => {
|
|
11636
|
-
if (response === null || 'error' in response) {
|
|
11637
|
-
setNameError('Could not check existing names due to a server error.');
|
|
11638
|
-
return false;
|
|
11639
|
-
} else if (response.length > 0) {
|
|
11640
|
-
const matchingNames = response.filter(dashboard => dashboard.name.toLowerCase() === nameToValidate.toLowerCase() && (!editDashboard || dashboard.name !== editDashboard.name));
|
|
11641
|
-
if (matchingNames.length > 0) {
|
|
11642
|
-
setNameError(`Cannot use duplicate name '${name}'`);
|
|
11643
|
-
return false;
|
|
11644
|
-
}
|
|
11645
|
-
}
|
|
11646
|
-
return true;
|
|
11647
|
-
});
|
|
11648
|
-
});
|
|
11649
11916
|
const handleNameBlur = useCallback(event => {
|
|
11917
|
+
if (isSubmittingRef.current) {
|
|
11918
|
+
return;
|
|
11919
|
+
}
|
|
11650
11920
|
const newName = event.target.value;
|
|
11651
11921
|
if (newName) {
|
|
11652
11922
|
validateName(newName);
|
|
@@ -11749,6 +12019,7 @@ function DotDashboardDialog({
|
|
|
11749
12019
|
"data-testid": "save-edit-exit-dashboard-button",
|
|
11750
12020
|
disabled: dashboardSearchLoading || isLoadingSubmit || !isDirty || !validateFields(),
|
|
11751
12021
|
onClick: handleSubmitEdit,
|
|
12022
|
+
onMouseDown: handleMouseDown,
|
|
11752
12023
|
type: "primary",
|
|
11753
12024
|
children: "Save"
|
|
11754
12025
|
})]
|
|
@@ -12415,11 +12686,14 @@ const inProgressEditMessage = 'This is a published dashboard. Changes will not b
|
|
|
12415
12686
|
// in_progress_changes object itself, which will have parent_id set.
|
|
12416
12687
|
// The Dashboard Table/Grid will always give the parent dashboard, while in the editor we will be dealing with the
|
|
12417
12688
|
// in_progress_changes object. This function accounts for both cases
|
|
12418
|
-
const dashboardLocked = (dashboard,
|
|
12419
|
-
if (
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12689
|
+
const dashboardLocked = (dashboard, user) => {
|
|
12690
|
+
if (user) {
|
|
12691
|
+
if (dashboard.in_progress_changes) {
|
|
12692
|
+
return dashboard.in_progress_changes.author_id !== user.id;
|
|
12693
|
+
} else if (dashboard.parent_id) {
|
|
12694
|
+
return dashboard.author_id !== user.id;
|
|
12695
|
+
}
|
|
12696
|
+
return false;
|
|
12423
12697
|
}
|
|
12424
12698
|
return false;
|
|
12425
12699
|
};
|
|
@@ -12491,7 +12765,7 @@ function DotDashboardOptionsMenu({
|
|
|
12491
12765
|
const isDraft = !dashboard.parent_id && dashboard.lifecycle_state === DashboardView.lifecycle_state.DRAFT;
|
|
12492
12766
|
const isPublished = dashboard.parent_id || dashboard.lifecycle_state === DashboardView.lifecycle_state.PUBLISHED;
|
|
12493
12767
|
const menuItems = [];
|
|
12494
|
-
if (!isEdit && onViewMode && !dashboard.is_ootb_dashboard && !dashboardLocked(dashboard, currentUser
|
|
12768
|
+
if (!isEdit && onViewMode && !dashboard.is_ootb_dashboard && !dashboardLocked(dashboard, currentUser)) {
|
|
12495
12769
|
menuItems.push({
|
|
12496
12770
|
children: jsx(DotButton, {
|
|
12497
12771
|
ariaLabel: "Edit dashboard",
|
|
@@ -12504,7 +12778,7 @@ function DotDashboardOptionsMenu({
|
|
|
12504
12778
|
key: 'edit'
|
|
12505
12779
|
});
|
|
12506
12780
|
}
|
|
12507
|
-
if (onUpdatedProperties && !dashboard.is_ootb_dashboard && !dashboardLocked(dashboard, currentUser
|
|
12781
|
+
if (onUpdatedProperties && !dashboard.is_ootb_dashboard && !dashboardLocked(dashboard, currentUser)) {
|
|
12508
12782
|
let menuItem = jsx(DotButton, {
|
|
12509
12783
|
ariaLabel: "Edit dashboard properties",
|
|
12510
12784
|
className: isEdit ? 'disabled-menu-item' : '',
|
|
@@ -12555,7 +12829,7 @@ function DotDashboardOptionsMenu({
|
|
|
12555
12829
|
key: 'duplicate'
|
|
12556
12830
|
});
|
|
12557
12831
|
}
|
|
12558
|
-
if (onStartDelete && !dashboard.is_ootb_dashboard && !dashboardLocked(dashboard, currentUser
|
|
12832
|
+
if (onStartDelete && !dashboard.is_ootb_dashboard && !dashboardLocked(dashboard, currentUser)) {
|
|
12559
12833
|
menuItems.push({
|
|
12560
12834
|
children: jsx(DotButton, {
|
|
12561
12835
|
ariaLabel: "Delete dashboard",
|
|
@@ -12692,7 +12966,7 @@ function DotDashboardOptionsMenu({
|
|
|
12692
12966
|
open: isEditPropertiesDialogOpen,
|
|
12693
12967
|
onClose: handleCloseEditProperties,
|
|
12694
12968
|
onSubmit: handleSubmitEditProperties,
|
|
12695
|
-
editDashboard: editInProgressByUser(dashboard, currentUser.id) && dashboard.in_progress_changes ? dashboard.in_progress_changes : dashboard
|
|
12969
|
+
editDashboard: currentUser && editInProgressByUser(dashboard, currentUser.id) && dashboard.in_progress_changes ? dashboard.in_progress_changes : dashboard
|
|
12696
12970
|
}), jsx(DotIconButton, {
|
|
12697
12971
|
className: "expand-button",
|
|
12698
12972
|
"data-testid": "card-header-action-button",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MouseEvent, KeyboardEvent, ReactNode } from 'react';
|
|
2
2
|
import { CommonProps } from './CommonProps';
|
|
3
3
|
import { TooltipPlacement } from './tooltip';
|
|
4
|
-
export type ButtonType = 'destructive' | 'primary' | 'outlined' | 'text';
|
|
4
|
+
export type ButtonType = 'destructive' | 'primary' | 'outlined' | 'text' | 'ai' | 'ai-outlined';
|
|
5
5
|
export type ButtonSize = 'small' | 'medium' | 'large';
|
|
6
6
|
export interface BaseButtonProps extends CommonProps {
|
|
7
7
|
/** If true, the button will be focused **/
|
|
@@ -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, informationToolTip, inputId, inputRef, inputValue, isOptionEqualToValue, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, popperClassName, popperPlacement, popperZIndex, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, trimLongOptions, 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, ai, aiAction, 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, popperZIndex, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, trimLongOptions, 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>;
|
|
@@ -13,6 +13,10 @@ export interface AutoCompleteProps<T extends AutoCompleteOption = AutoCompleteOp
|
|
|
13
13
|
ListboxComponent?: JSXElementConstructor<HTMLAttributes<HTMLElement>>;
|
|
14
14
|
/** Action button as the last element on the menu **/
|
|
15
15
|
actionItem?: ActionItem;
|
|
16
|
+
/** If true, applies a gradient color to the border */
|
|
17
|
+
ai?: boolean;
|
|
18
|
+
/** Event callback */
|
|
19
|
+
aiAction?: (inputText: string) => void;
|
|
16
20
|
/** This prop helps users to fill forms faster */
|
|
17
21
|
autoFocus?: boolean;
|
|
18
22
|
/** If true, the first option is automatically highlighted. */
|
|
@@ -102,4 +106,4 @@ export interface AutoCompleteProps<T extends AutoCompleteOption = AutoCompleteOp
|
|
|
102
106
|
/** If true, the label will be displayed in a warning state. */
|
|
103
107
|
warning?: boolean;
|
|
104
108
|
}
|
|
105
|
-
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, popperZIndex, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, trimLongOptions, value, warning, }: AutoCompleteProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
109
|
+
export declare const DotAutoComplete: <T extends AutoCompleteOption>({ ListboxComponent, actionItem, ai, aiAction, 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, popperZIndex, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, trimLongOptions, value, warning, }: AutoCompleteProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,4 +2,5 @@ import { Autocomplete } from '@mui/material';
|
|
|
2
2
|
export declare const rootClassName = "dot-autocomplete";
|
|
3
3
|
export declare const inputRootClassName = "dot-input-root";
|
|
4
4
|
export declare const inputMediumClassName = "dot-input-medium";
|
|
5
|
+
export declare const inputAiClassName = "dot-input-ai";
|
|
5
6
|
export declare const StyledAutocomplete: import("styled-components").StyledComponent<typeof Autocomplete, any, {}, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KeyboardEventHandler, ReactNode } from 'react';
|
|
1
|
+
import { KeyboardEventHandler, MouseEventHandler, ReactNode } from 'react';
|
|
2
2
|
import { BaseButtonProps } from '../BaseButtonProps';
|
|
3
3
|
export interface ButtonProps extends BaseButtonProps {
|
|
4
4
|
/** The text for the button. Button text should be in sentence case. */
|
|
@@ -6,6 +6,7 @@ export interface ButtonProps extends BaseButtonProps {
|
|
|
6
6
|
/** Icon placed after the children. */
|
|
7
7
|
endIcon?: ReactNode;
|
|
8
8
|
onKeyDown?: KeyboardEventHandler;
|
|
9
|
+
onMouseDown?: MouseEventHandler;
|
|
9
10
|
/** Icon placed before the children. */
|
|
10
11
|
startIcon?: ReactNode;
|
|
11
12
|
}
|
|
@@ -2,7 +2,7 @@ import { MouseEvent, ReactNode } from 'react';
|
|
|
2
2
|
import { CommonProps } from '../CommonProps';
|
|
3
3
|
import { IconFontSize } from '../icon/Icon';
|
|
4
4
|
import { TooltipPlacement } from '../tooltip';
|
|
5
|
-
export type IconButtonColor = 'default' | 'inherit' | 'primary' | 'secondary';
|
|
5
|
+
export type IconButtonColor = 'default' | 'inherit' | 'primary' | 'secondary' | 'ai';
|
|
6
6
|
export type IconButtonSize = 'small' | 'medium';
|
|
7
7
|
export type IconButtonShape = 'circle' | 'square';
|
|
8
8
|
export interface CommonIconButtonProps extends CommonProps {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { CommonProps } from '../CommonProps';
|
|
2
|
-
export type IconFontSize = 'small' | 'medium';
|
|
2
|
+
export type IconFontSize = 'small' | 'medium' | 'large';
|
|
3
3
|
export interface IconProps extends CommonProps {
|
|
4
|
+
/** If true, applies a gradient color to the icon */
|
|
5
|
+
ai?: boolean;
|
|
4
6
|
/** If true, makes a tooltip not interactive, so it will close when the user hovers over the tooltip before the leaveDelay is expired. */
|
|
5
7
|
disableInteractive?: boolean;
|
|
6
8
|
/** Determines the size of the icon and spacing around it */
|
|
@@ -10,4 +12,4 @@ export interface IconProps extends CommonProps {
|
|
|
10
12
|
/** Tooltip text displayed on hover */
|
|
11
13
|
tooltip?: string;
|
|
12
14
|
}
|
|
13
|
-
export declare const DotIcon: ({ ariaLabel, ariaRole, className, "data-testid": dataTestId, disableInteractive, fontSize, iconId, tooltip, }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const DotIcon: ({ ariaLabel, ariaRole, className, "data-testid": dataTestId, disableInteractive, fontSize, iconId, tooltip, ai, }: IconProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import '@digital-ai/dot-icons';
|
|
2
2
|
export declare const rootClassName = "dot-icon";
|
|
3
|
+
export declare const aiIconClassName = "dot-icon-ai";
|
|
3
4
|
export declare const StyledIcon: import("styled-components").StyledComponent<import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").IconTypeMap<{}, "span">> & {
|
|
4
5
|
muiName: string;
|
|
5
6
|
}, any, {}, never>;
|
|
@@ -15,6 +15,7 @@ export type { DialogButtonProps, SubmitButtonProps } from './dialog/Dialog';
|
|
|
15
15
|
export type { DrawerAnchor } from './drawer/Drawer';
|
|
16
16
|
export type { DynamicFormProps } from './dynamic-form/DynamicForm';
|
|
17
17
|
export type { ConditionFunction, ControlClickHandler, DisabledConditionFunction, DisabledControlCondition, DynamicFormConfig, DynamicFormControl, DynamicFormControlProps, DynamicFormControlType, DynamicFormOutputData, DynamicFormSectionProps, DynamicFormState, DynamicFormStateItem, FieldValidation, } from './dynamic-form/models';
|
|
18
|
+
export type { IconFontSize, IconProps } from './icon';
|
|
18
19
|
export type { InputTextProps } from './input-form-fields/InputText';
|
|
19
20
|
export type { InputSelectProps, InputSelectOption, OptionType, } from './input-form-fields/InputSelect';
|
|
20
21
|
export type { LinkUnderline } from './link/Link';
|
|
@@ -95,7 +96,7 @@ export { DotEmptyFilterState } from './empty-state/EmptyFilterState';
|
|
|
95
96
|
export { DotForm } from './form/Form';
|
|
96
97
|
export { DotFormGroup } from './form-group/FormGroup';
|
|
97
98
|
export { DotDynamicForm } from './dynamic-form/DynamicForm';
|
|
98
|
-
export { DotIcon } from './icon
|
|
99
|
+
export { DotIcon } from './icon';
|
|
99
100
|
export { DotIllustration } from './illustration/Illustration';
|
|
100
101
|
export { DotImpactDialog } from './impact-dialog/ImpactDialog';
|
|
101
102
|
export { DotInlineEdit } from './inline-edit';
|
|
@@ -2,6 +2,8 @@ import { ChangeEvent, KeyboardEvent, MouseEvent, ReactNode, Ref } from 'react';
|
|
|
2
2
|
import { CommonProps } from '../CommonProps';
|
|
3
3
|
export type inputSizeOptions = 'small' | 'medium';
|
|
4
4
|
export interface InputProps extends CommonProps {
|
|
5
|
+
/** If true, applies no border */
|
|
6
|
+
ai?: boolean;
|
|
5
7
|
/** This prop helps users to fill forms faster */
|
|
6
8
|
autoFocus?: boolean;
|
|
7
9
|
/** default value of the input element */
|
|
@@ -11,6 +11,7 @@ export declare const fieldsetClassName = "MuiOutlinedInput-notchedOutline";
|
|
|
11
11
|
export declare const readOnlyClassName = "read-only";
|
|
12
12
|
export declare const resizerClassName = "with-resizer";
|
|
13
13
|
export declare const ROW_HEIGHT = 37;
|
|
14
|
+
export declare const inputAiClassName = "dot-input-ai";
|
|
14
15
|
interface StyledTextFieldProps {
|
|
15
16
|
$maxRows?: number;
|
|
16
17
|
$minRows?: number;
|
|
@@ -3,6 +3,8 @@ import { InputProps } from './InputFormFields.propTypes';
|
|
|
3
3
|
export declare const DELAY_MS = 300;
|
|
4
4
|
export type endAdornmentIconType = 'warning' | 'error' | 'check';
|
|
5
5
|
export interface InputTextProps extends InputProps {
|
|
6
|
+
/** If true, applies no border */
|
|
7
|
+
ai?: boolean;
|
|
6
8
|
/** The HTML autocomplete property to pass along to the input tag. Used for
|
|
7
9
|
controlling autofill behavior in forms. This property follows this HTML spec:
|
|
8
10
|
https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill
|
|
@@ -40,4 +42,4 @@ export interface EndIconProps {
|
|
|
40
42
|
success?: boolean;
|
|
41
43
|
warning?: boolean;
|
|
42
44
|
}
|
|
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;
|
|
45
|
+
export declare const DotInputText: ({ ai, 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;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const rootClassName = "dot-search";
|
|
2
|
-
export declare const StyledSearch: import("styled-components").StyledComponent<({ 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, }: import("../input-form-fields/InputText").InputTextProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
|
|
2
|
+
export declare const StyledSearch: import("styled-components").StyledComponent<({ ai, 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, }: import("../input-form-fields/InputText").InputTextProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
|
|
@@ -20,6 +20,17 @@ declare module '@mui/material/styles/createPalette' {
|
|
|
20
20
|
purple?: PaletteColorOptions;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
declare module '@mui/material/Button' {
|
|
24
|
+
interface ButtonPropsVariantOverrides {
|
|
25
|
+
ai: true;
|
|
26
|
+
'ai-outlined': true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
declare module '@mui/material/IconButton' {
|
|
30
|
+
interface IconButtonPropsColorOverrides {
|
|
31
|
+
ai: true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
23
34
|
export type ThemeOptions = 'light' | 'dark';
|
|
24
35
|
export declare const typographyOptions: TypographyOptions;
|
|
25
36
|
export declare const breakpointOptions: BreakpointOptions;
|
|
@@ -87,20 +87,50 @@ export declare const yA100 = "#ffffff";
|
|
|
87
87
|
export declare const yA200 = "#fff2d7";
|
|
88
88
|
export declare const yA400 = "#ffe2a4";
|
|
89
89
|
export declare const yA700 = "#ffda8b";
|
|
90
|
-
export declare const p50 = "#
|
|
91
|
-
export declare const p100 = "#
|
|
92
|
-
export declare const p200 = "#
|
|
93
|
-
export declare const p300 = "#
|
|
94
|
-
export declare const p400 = "#
|
|
95
|
-
export declare const p500 = "#
|
|
96
|
-
export declare const p600 = "#
|
|
97
|
-
export declare const p700 = "#
|
|
98
|
-
export declare const p800 = "#
|
|
99
|
-
export declare const p900 = "#
|
|
90
|
+
export declare const p50 = "#f5e9fb";
|
|
91
|
+
export declare const p100 = "#ebd4f7";
|
|
92
|
+
export declare const p200 = "#d7aaee";
|
|
93
|
+
export declare const p300 = "#c37fe6";
|
|
94
|
+
export declare const p400 = "#af54de";
|
|
95
|
+
export declare const p500 = "#9e2fd7";
|
|
96
|
+
export declare const p600 = "#7c21ab";
|
|
97
|
+
export declare const p700 = "#5d1980";
|
|
98
|
+
export declare const p800 = "#3e1155";
|
|
99
|
+
export declare const p900 = "#2e0c40";
|
|
100
100
|
export declare const pA100 = "#ff9cd1";
|
|
101
101
|
export declare const pA200 = "#ff69b9";
|
|
102
102
|
export declare const pA400 = "#ff36a2";
|
|
103
103
|
export declare const pA700 = "#ff1d96";
|
|
104
|
+
export declare const pi50 = "#fce9f6";
|
|
105
|
+
export declare const pi100 = "#f8d3ee";
|
|
106
|
+
export declare const pi200 = "#f1a7dc";
|
|
107
|
+
export declare const pi300 = "#eb7acb";
|
|
108
|
+
export declare const pi400 = "#e44eb9";
|
|
109
|
+
export declare const pi500 = "#dd22a8";
|
|
110
|
+
export declare const pi600 = "#b11b86";
|
|
111
|
+
export declare const pi700 = "#851465";
|
|
112
|
+
export declare const pi800 = "#580e43";
|
|
113
|
+
export declare const pi900 = "#2c0722";
|
|
114
|
+
export declare const v50 = "#ede8fd";
|
|
115
|
+
export declare const v100 = "#dbd1fa";
|
|
116
|
+
export declare const v200 = "#b6a3f5";
|
|
117
|
+
export declare const v300 = "#9275f0";
|
|
118
|
+
export declare const v400 = "#704aec";
|
|
119
|
+
export declare const v500 = "#4c1de7";
|
|
120
|
+
export declare const v600 = "#3a13b9";
|
|
121
|
+
export declare const v700 = "#2c0f8a";
|
|
122
|
+
export declare const v800 = "#1d0a5c";
|
|
123
|
+
export declare const v900 = "#0f052e";
|
|
104
124
|
export declare const selectedGray = "rgba(0, 0, 0, 0.12)";
|
|
105
125
|
export declare const lightSelectedGray = "rgba(0, 0, 0, 0.08)";
|
|
106
126
|
export declare const hoverGray = "rgba(0, 0, 0, 0.04)";
|
|
127
|
+
export declare const aiNormalDark: string;
|
|
128
|
+
export declare const aiActiveDark: string;
|
|
129
|
+
export declare const aiElevatedDark: string;
|
|
130
|
+
export declare const aiLightDark: string;
|
|
131
|
+
export declare const aiAutoCompleteBorderDark: string;
|
|
132
|
+
export declare const aiNormalLight: string;
|
|
133
|
+
export declare const aiActiveLight: string;
|
|
134
|
+
export declare const aiElevatedLight: string;
|
|
135
|
+
export declare const aiLightLight: string;
|
|
136
|
+
export declare const aiAutoCompleteBorderLight: string;
|
|
@@ -27,6 +27,14 @@ export interface BreakpointOptions {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
export interface FigmaTheme {
|
|
30
|
+
aiPink: {
|
|
31
|
+
active: string;
|
|
32
|
+
elevated: string;
|
|
33
|
+
light: string;
|
|
34
|
+
normal: string;
|
|
35
|
+
ripple: string;
|
|
36
|
+
rippleLight: string;
|
|
37
|
+
};
|
|
30
38
|
appToolbar: {
|
|
31
39
|
background: string;
|
|
32
40
|
btnHover: string;
|
|
@@ -62,6 +70,13 @@ export interface FigmaTheme {
|
|
|
62
70
|
disabled: {
|
|
63
71
|
normal: string;
|
|
64
72
|
};
|
|
73
|
+
gradient: {
|
|
74
|
+
active: string;
|
|
75
|
+
ai: string;
|
|
76
|
+
elevated: string;
|
|
77
|
+
light: string;
|
|
78
|
+
normal: string;
|
|
79
|
+
};
|
|
65
80
|
graph: {
|
|
66
81
|
alert: {
|
|
67
82
|
error: string;
|