design-zystem 1.0.311 → 1.0.313
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/dist/index.d.mts +53 -1
- package/dist/index.d.ts +53 -1
- package/dist/index.js +40 -12
- package/dist/index.mjs +38 -12
- package/dist/ui/index.d.mts +155 -81
- package/dist/ui/index.d.ts +155 -81
- package/dist/ui/index.js +722 -603
- package/dist/ui/index.mjs +562 -446
- package/dist/ui/style.css +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1387,4 +1387,56 @@ declare const formatKM: (value: string | number | null | undefined) => string;
|
|
|
1387
1387
|
|
|
1388
1388
|
declare const parseAmount: (value: string) => number | null;
|
|
1389
1389
|
|
|
1390
|
-
|
|
1390
|
+
/**
|
|
1391
|
+
* Attributs qui neutralisent l'autofill du navigateur **et** des gestionnaires
|
|
1392
|
+
* de mots de passe (1Password, LastPass, Bitwarden, Dashlane) sur un champ.
|
|
1393
|
+
*
|
|
1394
|
+
* Appliqués par défaut par les champs du DS : sans ça, un coffre-fort réécrit
|
|
1395
|
+
* à l'ouverture d'une page les valeurs déjà présentes dans le formulaire
|
|
1396
|
+
* (fiche existante en édition), silencieusement.
|
|
1397
|
+
*
|
|
1398
|
+
* `autoComplete: 'off'` seul ne suffit pas : les extensions l'ignorent, chacune
|
|
1399
|
+
* a son propre attribut d'opt-out.
|
|
1400
|
+
*
|
|
1401
|
+
* Étalés **avant** les props du consommateur : un champ qui a besoin de
|
|
1402
|
+
* l'autofill (page de login) surcharge ce qu'il veut, y compris en repassant
|
|
1403
|
+
* `undefined` sur un `data-*` pour le retirer.
|
|
1404
|
+
*
|
|
1405
|
+
* @example
|
|
1406
|
+
* <input {...noAutofillProps} {...props} />
|
|
1407
|
+
* // login : <Input autoComplete="username" data-1p-ignore={undefined} />
|
|
1408
|
+
*/
|
|
1409
|
+
declare const noAutofillProps: {
|
|
1410
|
+
readonly autoComplete: "off";
|
|
1411
|
+
/** 1Password */
|
|
1412
|
+
readonly 'data-1p-ignore': true;
|
|
1413
|
+
/** LastPass */
|
|
1414
|
+
readonly 'data-lpignore': "true";
|
|
1415
|
+
/** Bitwarden */
|
|
1416
|
+
readonly 'data-bwignore': true;
|
|
1417
|
+
/** Dashlane */
|
|
1418
|
+
readonly 'data-form-type': "other";
|
|
1419
|
+
};
|
|
1420
|
+
/**
|
|
1421
|
+
* Inverse de {@link noAutofillProps} : réautorise l'autofill sur un champ
|
|
1422
|
+
* précis, en neutralisant les `data-*` d'opt-out posés par défaut.
|
|
1423
|
+
*
|
|
1424
|
+
* À réserver aux champs où l'autofill est *voulu* : login, changement de mot
|
|
1425
|
+
* de passe. Partout ailleurs, le défaut du DS est le bon comportement.
|
|
1426
|
+
*
|
|
1427
|
+
* @param autoComplete valeur HTML `autocomplete` du champ — `username`,
|
|
1428
|
+
* `current-password`, `new-password`, `email`…
|
|
1429
|
+
*
|
|
1430
|
+
* @example
|
|
1431
|
+
* <Input type="text" {...allowAutofill('username')} />
|
|
1432
|
+
* <PasswordInput {...allowAutofill('current-password')} />
|
|
1433
|
+
*/
|
|
1434
|
+
declare const allowAutofill: (autoComplete: string) => {
|
|
1435
|
+
autoComplete: string;
|
|
1436
|
+
"data-1p-ignore": undefined;
|
|
1437
|
+
"data-lpignore": undefined;
|
|
1438
|
+
"data-bwignore": undefined;
|
|
1439
|
+
"data-form-type": undefined;
|
|
1440
|
+
};
|
|
1441
|
+
|
|
1442
|
+
export { Accordion, type AccordionItem, Avatar, Banner, type BannerAction, type BannerProps, Box, Bubble, Bulk, Button, Card, type CardProps, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, type DatePickerProps, type DatePreset, Divider, Drawer, EmptyState, FileUploadZone, type FloatingAction, FloatingButton, type FloatingButtonProps, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, type PastelColorPair, Popover, ProgressBar, type ProgressBarProps, type ProgressBarSegment, Radio, Row, Select, type SelectOption, type SelectProps, SkeletonRow, SliderInput, type SortOrder, Spinner, Stepper, Switch, Table, TableBody, TableCell, TableFooter, TableFooterCell, TableFooterRow, TableHeader, TableHeaderCell, type TableHeaderCellProps, TableHeaderRow, TableRow, Tabs, TagBubble, Text, Timeline, type TimelineItem, type ToastOptions, type ToastType, Toaster, Tooltip, addBusinessDays, allowAutofill, appendCacheBuster, appendQueryParam, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getElapsedTime, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getPastelColorPair, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
|
package/dist/index.d.ts
CHANGED
|
@@ -1387,4 +1387,56 @@ declare const formatKM: (value: string | number | null | undefined) => string;
|
|
|
1387
1387
|
|
|
1388
1388
|
declare const parseAmount: (value: string) => number | null;
|
|
1389
1389
|
|
|
1390
|
-
|
|
1390
|
+
/**
|
|
1391
|
+
* Attributs qui neutralisent l'autofill du navigateur **et** des gestionnaires
|
|
1392
|
+
* de mots de passe (1Password, LastPass, Bitwarden, Dashlane) sur un champ.
|
|
1393
|
+
*
|
|
1394
|
+
* Appliqués par défaut par les champs du DS : sans ça, un coffre-fort réécrit
|
|
1395
|
+
* à l'ouverture d'une page les valeurs déjà présentes dans le formulaire
|
|
1396
|
+
* (fiche existante en édition), silencieusement.
|
|
1397
|
+
*
|
|
1398
|
+
* `autoComplete: 'off'` seul ne suffit pas : les extensions l'ignorent, chacune
|
|
1399
|
+
* a son propre attribut d'opt-out.
|
|
1400
|
+
*
|
|
1401
|
+
* Étalés **avant** les props du consommateur : un champ qui a besoin de
|
|
1402
|
+
* l'autofill (page de login) surcharge ce qu'il veut, y compris en repassant
|
|
1403
|
+
* `undefined` sur un `data-*` pour le retirer.
|
|
1404
|
+
*
|
|
1405
|
+
* @example
|
|
1406
|
+
* <input {...noAutofillProps} {...props} />
|
|
1407
|
+
* // login : <Input autoComplete="username" data-1p-ignore={undefined} />
|
|
1408
|
+
*/
|
|
1409
|
+
declare const noAutofillProps: {
|
|
1410
|
+
readonly autoComplete: "off";
|
|
1411
|
+
/** 1Password */
|
|
1412
|
+
readonly 'data-1p-ignore': true;
|
|
1413
|
+
/** LastPass */
|
|
1414
|
+
readonly 'data-lpignore': "true";
|
|
1415
|
+
/** Bitwarden */
|
|
1416
|
+
readonly 'data-bwignore': true;
|
|
1417
|
+
/** Dashlane */
|
|
1418
|
+
readonly 'data-form-type': "other";
|
|
1419
|
+
};
|
|
1420
|
+
/**
|
|
1421
|
+
* Inverse de {@link noAutofillProps} : réautorise l'autofill sur un champ
|
|
1422
|
+
* précis, en neutralisant les `data-*` d'opt-out posés par défaut.
|
|
1423
|
+
*
|
|
1424
|
+
* À réserver aux champs où l'autofill est *voulu* : login, changement de mot
|
|
1425
|
+
* de passe. Partout ailleurs, le défaut du DS est le bon comportement.
|
|
1426
|
+
*
|
|
1427
|
+
* @param autoComplete valeur HTML `autocomplete` du champ — `username`,
|
|
1428
|
+
* `current-password`, `new-password`, `email`…
|
|
1429
|
+
*
|
|
1430
|
+
* @example
|
|
1431
|
+
* <Input type="text" {...allowAutofill('username')} />
|
|
1432
|
+
* <PasswordInput {...allowAutofill('current-password')} />
|
|
1433
|
+
*/
|
|
1434
|
+
declare const allowAutofill: (autoComplete: string) => {
|
|
1435
|
+
autoComplete: string;
|
|
1436
|
+
"data-1p-ignore": undefined;
|
|
1437
|
+
"data-lpignore": undefined;
|
|
1438
|
+
"data-bwignore": undefined;
|
|
1439
|
+
"data-form-type": undefined;
|
|
1440
|
+
};
|
|
1441
|
+
|
|
1442
|
+
export { Accordion, type AccordionItem, Avatar, Banner, type BannerAction, type BannerProps, Box, Bubble, Bulk, Button, Card, type CardProps, CardSkeleton, Checkbox, Col, Collapse, ColorPicker, DatePicker, type DatePickerProps, type DatePreset, Divider, Drawer, EmptyState, FileUploadZone, type FloatingAction, FloatingButton, type FloatingButtonProps, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Grid, Icon, IconTabs, Image, Input, Link, List, ListItem, MetricCard, Modal, ModalConfirmation, MultiSelect, NewModal, Options, PageContainer, Pagination, type PastelColorPair, Popover, ProgressBar, type ProgressBarProps, type ProgressBarSegment, Radio, Row, Select, type SelectOption, type SelectProps, SkeletonRow, SliderInput, type SortOrder, Spinner, Stepper, Switch, Table, TableBody, TableCell, TableFooter, TableFooterCell, TableFooterRow, TableHeader, TableHeaderCell, type TableHeaderCellProps, TableHeaderRow, TableRow, Tabs, TagBubble, Text, Timeline, type TimelineItem, type ToastOptions, type ToastType, Toaster, Tooltip, addBusinessDays, allowAutofill, appendCacheBuster, appendQueryParam, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getElapsedTime, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getPastelColorPair, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
|
package/dist/index.js
CHANGED
|
@@ -124,6 +124,7 @@ __export(index_exports, {
|
|
|
124
124
|
Toaster: () => Toaster,
|
|
125
125
|
Tooltip: () => Tooltip,
|
|
126
126
|
addBusinessDays: () => addBusinessDays,
|
|
127
|
+
allowAutofill: () => allowAutofill,
|
|
127
128
|
appendCacheBuster: () => appendCacheBuster,
|
|
128
129
|
appendQueryParam: () => appendQueryParam,
|
|
129
130
|
capitalizeFirstLetter: () => capitalizeFirstLetter,
|
|
@@ -162,6 +163,7 @@ __export(index_exports, {
|
|
|
162
163
|
isHoliday: () => isHoliday,
|
|
163
164
|
isSameDay: () => isSameDay,
|
|
164
165
|
isolateCity: () => isolateCity,
|
|
166
|
+
noAutofillProps: () => noAutofillProps,
|
|
165
167
|
optimizeImage: () => optimizeImage_default,
|
|
166
168
|
parseAmount: () => parseAmount,
|
|
167
169
|
parseIsoDate: () => parseIsoDate,
|
|
@@ -2536,6 +2538,28 @@ var Avatar = ({
|
|
|
2536
2538
|
var import_react12 = require("react");
|
|
2537
2539
|
var import_react_dom2 = __toESM(require("react-dom"));
|
|
2538
2540
|
var import_styled_components20 = __toESM(require("styled-components"));
|
|
2541
|
+
|
|
2542
|
+
// src/ui/lib/autofill.ts
|
|
2543
|
+
var noAutofillProps = {
|
|
2544
|
+
autoComplete: "off",
|
|
2545
|
+
/** 1Password */
|
|
2546
|
+
"data-1p-ignore": true,
|
|
2547
|
+
/** LastPass */
|
|
2548
|
+
"data-lpignore": "true",
|
|
2549
|
+
/** Bitwarden */
|
|
2550
|
+
"data-bwignore": true,
|
|
2551
|
+
/** Dashlane */
|
|
2552
|
+
"data-form-type": "other"
|
|
2553
|
+
};
|
|
2554
|
+
var allowAutofill = (autoComplete) => ({
|
|
2555
|
+
autoComplete,
|
|
2556
|
+
"data-1p-ignore": void 0,
|
|
2557
|
+
"data-lpignore": void 0,
|
|
2558
|
+
"data-bwignore": void 0,
|
|
2559
|
+
"data-form-type": void 0
|
|
2560
|
+
});
|
|
2561
|
+
|
|
2562
|
+
// src/ui-legacy/Components/Select/Select.tsx
|
|
2539
2563
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2540
2564
|
var StyledContainer = import_styled_components20.default.div.withConfig({
|
|
2541
2565
|
shouldForwardProp: (prop) => !["width", "noFlex", "label"].includes(prop)
|
|
@@ -2771,13 +2795,14 @@ var Select = ({
|
|
|
2771
2795
|
children: [
|
|
2772
2796
|
!hideSearchBar && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2773
2797
|
SearchInput,
|
|
2774
|
-
{
|
|
2798
|
+
__spreadProps(__spreadValues({
|
|
2775
2799
|
ref: searchInputRef,
|
|
2776
2800
|
type: "text",
|
|
2777
|
-
placeholder: "Rechercher..."
|
|
2801
|
+
placeholder: "Rechercher..."
|
|
2802
|
+
}, noAutofillProps), {
|
|
2778
2803
|
value: searchTerm,
|
|
2779
2804
|
onChange: handleSearch
|
|
2780
|
-
}
|
|
2805
|
+
})
|
|
2781
2806
|
),
|
|
2782
2807
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownList, { children: filteredOptions.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2783
2808
|
Option,
|
|
@@ -3144,12 +3169,12 @@ var Input = (0, import_react13.forwardRef)((props, ref) => {
|
|
|
3144
3169
|
isDate ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
3145
3170
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3146
3171
|
StyledInput,
|
|
3147
|
-
__spreadProps(__spreadValues({
|
|
3172
|
+
__spreadProps(__spreadValues(__spreadProps(__spreadValues({
|
|
3148
3173
|
id: inputId,
|
|
3149
3174
|
ref: innerRef,
|
|
3150
3175
|
type: "text",
|
|
3151
|
-
inputMode: "numeric"
|
|
3152
|
-
|
|
3176
|
+
inputMode: "numeric"
|
|
3177
|
+
}, noAutofillProps), {
|
|
3153
3178
|
value: displayDateValue,
|
|
3154
3179
|
onChange: handleDateInputChange,
|
|
3155
3180
|
onPaste: handleDateInputPaste,
|
|
@@ -3159,7 +3184,7 @@ var Input = (0, import_react13.forwardRef)((props, ref) => {
|
|
|
3159
3184
|
disabled,
|
|
3160
3185
|
"aria-required": required || void 0,
|
|
3161
3186
|
style: computedStyle
|
|
3162
|
-
}, forwardProps), {
|
|
3187
|
+
}), forwardProps), {
|
|
3163
3188
|
name: void 0,
|
|
3164
3189
|
min: void 0,
|
|
3165
3190
|
max: void 0,
|
|
@@ -3203,7 +3228,7 @@ var Input = (0, import_react13.forwardRef)((props, ref) => {
|
|
|
3203
3228
|
)
|
|
3204
3229
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3205
3230
|
Component,
|
|
3206
|
-
__spreadValues({
|
|
3231
|
+
__spreadValues(__spreadValues(__spreadValues({
|
|
3207
3232
|
id: inputId,
|
|
3208
3233
|
ref: innerRef,
|
|
3209
3234
|
type: isPassword ? showPassword ? "text" : "password" : type,
|
|
@@ -3215,7 +3240,7 @@ var Input = (0, import_react13.forwardRef)((props, ref) => {
|
|
|
3215
3240
|
disabled,
|
|
3216
3241
|
name: inputName,
|
|
3217
3242
|
style: computedStyle
|
|
3218
|
-
}, forwardProps)
|
|
3243
|
+
}, noAutofillProps), isPassword ? { autoComplete: "new-password" } : {}), forwardProps)
|
|
3219
3244
|
),
|
|
3220
3245
|
isPassword && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3221
3246
|
EyeButton,
|
|
@@ -3623,14 +3648,15 @@ var ColorPicker = (0, import_react17.forwardRef)(
|
|
|
3623
3648
|
) }) }),
|
|
3624
3649
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3625
3650
|
HexInput,
|
|
3626
|
-
{
|
|
3651
|
+
__spreadProps(__spreadValues({
|
|
3627
3652
|
type: "text",
|
|
3628
|
-
value: currentColor
|
|
3653
|
+
value: currentColor
|
|
3654
|
+
}, noAutofillProps), {
|
|
3629
3655
|
onChange: handleChange,
|
|
3630
3656
|
disabled,
|
|
3631
3657
|
$fontSize: dims.fontSize,
|
|
3632
3658
|
$padding: dims.inputPadding
|
|
3633
|
-
}
|
|
3659
|
+
})
|
|
3634
3660
|
)
|
|
3635
3661
|
] })
|
|
3636
3662
|
] });
|
|
@@ -7543,6 +7569,7 @@ var parseAmount = (value) => {
|
|
|
7543
7569
|
Toaster,
|
|
7544
7570
|
Tooltip,
|
|
7545
7571
|
addBusinessDays,
|
|
7572
|
+
allowAutofill,
|
|
7546
7573
|
appendCacheBuster,
|
|
7547
7574
|
appendQueryParam,
|
|
7548
7575
|
capitalizeFirstLetter,
|
|
@@ -7581,6 +7608,7 @@ var parseAmount = (value) => {
|
|
|
7581
7608
|
isHoliday,
|
|
7582
7609
|
isSameDay,
|
|
7583
7610
|
isolateCity,
|
|
7611
|
+
noAutofillProps,
|
|
7584
7612
|
optimizeImage,
|
|
7585
7613
|
parseAmount,
|
|
7586
7614
|
parseIsoDate,
|
package/dist/index.mjs
CHANGED
|
@@ -2395,6 +2395,28 @@ var Avatar = ({
|
|
|
2395
2395
|
import { useState as useState7, useRef as useRef5, useEffect as useEffect6 } from "react";
|
|
2396
2396
|
import ReactDOM from "react-dom";
|
|
2397
2397
|
import styled20 from "styled-components";
|
|
2398
|
+
|
|
2399
|
+
// src/ui/lib/autofill.ts
|
|
2400
|
+
var noAutofillProps = {
|
|
2401
|
+
autoComplete: "off",
|
|
2402
|
+
/** 1Password */
|
|
2403
|
+
"data-1p-ignore": true,
|
|
2404
|
+
/** LastPass */
|
|
2405
|
+
"data-lpignore": "true",
|
|
2406
|
+
/** Bitwarden */
|
|
2407
|
+
"data-bwignore": true,
|
|
2408
|
+
/** Dashlane */
|
|
2409
|
+
"data-form-type": "other"
|
|
2410
|
+
};
|
|
2411
|
+
var allowAutofill = (autoComplete) => ({
|
|
2412
|
+
autoComplete,
|
|
2413
|
+
"data-1p-ignore": void 0,
|
|
2414
|
+
"data-lpignore": void 0,
|
|
2415
|
+
"data-bwignore": void 0,
|
|
2416
|
+
"data-form-type": void 0
|
|
2417
|
+
});
|
|
2418
|
+
|
|
2419
|
+
// src/ui-legacy/Components/Select/Select.tsx
|
|
2398
2420
|
import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2399
2421
|
var StyledContainer = styled20.div.withConfig({
|
|
2400
2422
|
shouldForwardProp: (prop) => !["width", "noFlex", "label"].includes(prop)
|
|
@@ -2630,13 +2652,14 @@ var Select = ({
|
|
|
2630
2652
|
children: [
|
|
2631
2653
|
!hideSearchBar && /* @__PURE__ */ jsx24(
|
|
2632
2654
|
SearchInput,
|
|
2633
|
-
{
|
|
2655
|
+
__spreadProps(__spreadValues({
|
|
2634
2656
|
ref: searchInputRef,
|
|
2635
2657
|
type: "text",
|
|
2636
|
-
placeholder: "Rechercher..."
|
|
2658
|
+
placeholder: "Rechercher..."
|
|
2659
|
+
}, noAutofillProps), {
|
|
2637
2660
|
value: searchTerm,
|
|
2638
2661
|
onChange: handleSearch
|
|
2639
|
-
}
|
|
2662
|
+
})
|
|
2640
2663
|
),
|
|
2641
2664
|
/* @__PURE__ */ jsx24(DropdownList, { children: filteredOptions.map((option, index) => /* @__PURE__ */ jsx24(
|
|
2642
2665
|
Option,
|
|
@@ -3009,12 +3032,12 @@ var Input = forwardRef3((props, ref) => {
|
|
|
3009
3032
|
isDate ? /* @__PURE__ */ jsxs12(Fragment3, { children: [
|
|
3010
3033
|
/* @__PURE__ */ jsx25(
|
|
3011
3034
|
StyledInput,
|
|
3012
|
-
__spreadProps(__spreadValues({
|
|
3035
|
+
__spreadProps(__spreadValues(__spreadProps(__spreadValues({
|
|
3013
3036
|
id: inputId,
|
|
3014
3037
|
ref: innerRef,
|
|
3015
3038
|
type: "text",
|
|
3016
|
-
inputMode: "numeric"
|
|
3017
|
-
|
|
3039
|
+
inputMode: "numeric"
|
|
3040
|
+
}, noAutofillProps), {
|
|
3018
3041
|
value: displayDateValue,
|
|
3019
3042
|
onChange: handleDateInputChange,
|
|
3020
3043
|
onPaste: handleDateInputPaste,
|
|
@@ -3024,7 +3047,7 @@ var Input = forwardRef3((props, ref) => {
|
|
|
3024
3047
|
disabled,
|
|
3025
3048
|
"aria-required": required || void 0,
|
|
3026
3049
|
style: computedStyle
|
|
3027
|
-
}, forwardProps), {
|
|
3050
|
+
}), forwardProps), {
|
|
3028
3051
|
name: void 0,
|
|
3029
3052
|
min: void 0,
|
|
3030
3053
|
max: void 0,
|
|
@@ -3068,7 +3091,7 @@ var Input = forwardRef3((props, ref) => {
|
|
|
3068
3091
|
)
|
|
3069
3092
|
] }) : /* @__PURE__ */ jsx25(
|
|
3070
3093
|
Component,
|
|
3071
|
-
__spreadValues({
|
|
3094
|
+
__spreadValues(__spreadValues(__spreadValues({
|
|
3072
3095
|
id: inputId,
|
|
3073
3096
|
ref: innerRef,
|
|
3074
3097
|
type: isPassword ? showPassword ? "text" : "password" : type,
|
|
@@ -3080,7 +3103,7 @@ var Input = forwardRef3((props, ref) => {
|
|
|
3080
3103
|
disabled,
|
|
3081
3104
|
name: inputName,
|
|
3082
3105
|
style: computedStyle
|
|
3083
|
-
}, forwardProps)
|
|
3106
|
+
}, noAutofillProps), isPassword ? { autoComplete: "new-password" } : {}), forwardProps)
|
|
3084
3107
|
),
|
|
3085
3108
|
isPassword && /* @__PURE__ */ jsx25(
|
|
3086
3109
|
EyeButton,
|
|
@@ -3488,14 +3511,15 @@ var ColorPicker = forwardRef4(
|
|
|
3488
3511
|
) }) }),
|
|
3489
3512
|
/* @__PURE__ */ jsx29(
|
|
3490
3513
|
HexInput,
|
|
3491
|
-
{
|
|
3514
|
+
__spreadProps(__spreadValues({
|
|
3492
3515
|
type: "text",
|
|
3493
|
-
value: currentColor
|
|
3516
|
+
value: currentColor
|
|
3517
|
+
}, noAutofillProps), {
|
|
3494
3518
|
onChange: handleChange,
|
|
3495
3519
|
disabled,
|
|
3496
3520
|
$fontSize: dims.fontSize,
|
|
3497
3521
|
$padding: dims.inputPadding
|
|
3498
|
-
}
|
|
3522
|
+
})
|
|
3499
3523
|
)
|
|
3500
3524
|
] })
|
|
3501
3525
|
] });
|
|
@@ -7421,6 +7445,7 @@ export {
|
|
|
7421
7445
|
Toaster,
|
|
7422
7446
|
Tooltip,
|
|
7423
7447
|
addBusinessDays,
|
|
7448
|
+
allowAutofill,
|
|
7424
7449
|
appendCacheBuster,
|
|
7425
7450
|
appendQueryParam,
|
|
7426
7451
|
capitalizeFirstLetter,
|
|
@@ -7459,6 +7484,7 @@ export {
|
|
|
7459
7484
|
isHoliday,
|
|
7460
7485
|
isSameDay,
|
|
7461
7486
|
isolateCity,
|
|
7487
|
+
noAutofillProps,
|
|
7462
7488
|
optimizeImage_default as optimizeImage,
|
|
7463
7489
|
parseAmount,
|
|
7464
7490
|
parseIsoDate,
|
package/dist/ui/index.d.mts
CHANGED
|
@@ -128,6 +128,108 @@ interface IconProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'onClick
|
|
|
128
128
|
*/
|
|
129
129
|
declare const Icon: react.ForwardRefExoticComponent<IconProps & react.RefAttributes<HTMLElement>>;
|
|
130
130
|
|
|
131
|
+
declare const colors: {
|
|
132
|
+
readonly neutral_00: "#FFFFFF00";
|
|
133
|
+
readonly neutral_50: "#fff";
|
|
134
|
+
readonly neutral_100: "#f8f9fa";
|
|
135
|
+
readonly neutral_200: "#f2F2F2";
|
|
136
|
+
readonly neutral_400: "#ccc";
|
|
137
|
+
readonly neutral_500: "#A4A4A4";
|
|
138
|
+
readonly neutral_600: "#808080";
|
|
139
|
+
readonly neutral_800: "#343a40";
|
|
140
|
+
readonly neutral_950: "#000";
|
|
141
|
+
readonly grey_100: "#F8FAFC";
|
|
142
|
+
readonly grey_200: "#F1F5F9";
|
|
143
|
+
readonly grey_300: "#E2E8F0";
|
|
144
|
+
readonly grey_400: "#CBD5E1";
|
|
145
|
+
readonly grey_500: "#94A3B8";
|
|
146
|
+
readonly grey_600: "#646B73";
|
|
147
|
+
readonly dark_100: "#42979D";
|
|
148
|
+
readonly dark_200: "#317176";
|
|
149
|
+
readonly dark_300: "#1D1C1C";
|
|
150
|
+
readonly blue_50: "#DBE9FE";
|
|
151
|
+
readonly blue_100: "#CCEAF8";
|
|
152
|
+
readonly blue_200: "#B9DCED";
|
|
153
|
+
readonly blue_300: "#A7CFE2";
|
|
154
|
+
readonly blue_400: "#94C1D7";
|
|
155
|
+
readonly blue_500: "#82B4CC";
|
|
156
|
+
readonly blue_600: "#5C99B7";
|
|
157
|
+
readonly blue_700: "#377EA1";
|
|
158
|
+
readonly blue_800: "#12638B";
|
|
159
|
+
readonly blue_900: "#0E4F6F";
|
|
160
|
+
readonly blue_950: "#1C4ED8";
|
|
161
|
+
readonly red_500: "#F44649";
|
|
162
|
+
readonly red_50: "#FEE9E9";
|
|
163
|
+
readonly red_900: "#7F1D1D";
|
|
164
|
+
readonly turquoise_50: "#EEF8F9";
|
|
165
|
+
readonly turquoise_100: "#DCF2F3";
|
|
166
|
+
readonly turquoise_200: "#CBEBED";
|
|
167
|
+
readonly turquoise_300: "#BAE5E7";
|
|
168
|
+
readonly turquoise_400: "#97D7DC";
|
|
169
|
+
readonly yellow_50: "#FEF7EA";
|
|
170
|
+
readonly yellow_100: "#FEEDD5";
|
|
171
|
+
readonly yellow_200: "#FFD700";
|
|
172
|
+
readonly yellow_300: "#F8AF2D";
|
|
173
|
+
readonly yellow_400: "#DF8F00";
|
|
174
|
+
readonly yellow_500: "#A16207";
|
|
175
|
+
readonly orange_50: "#FFEEE6";
|
|
176
|
+
readonly orange_100: "#FFCEB8";
|
|
177
|
+
readonly orange_300: "#FFAF8A";
|
|
178
|
+
readonly orange_400: "#FF8F5C";
|
|
179
|
+
readonly orange_500: "#FF641C";
|
|
180
|
+
readonly orange_600: "#FF5100";
|
|
181
|
+
readonly purple_50: "#EDE9FE";
|
|
182
|
+
readonly purple_700: "#7230DB";
|
|
183
|
+
readonly pink_50: "#FDF2F8";
|
|
184
|
+
readonly pink_100: "#FCE7F3";
|
|
185
|
+
readonly pink_300: "#FBCFE8";
|
|
186
|
+
readonly pink_400: "#F9A8D4";
|
|
187
|
+
readonly pink_500: "#CF0F9E";
|
|
188
|
+
readonly pink_600: "#EC4899";
|
|
189
|
+
readonly pink_700: "#DB2777";
|
|
190
|
+
readonly pink_800: "#BE185D";
|
|
191
|
+
readonly pink_900: "#9D174D";
|
|
192
|
+
readonly fuchsia_300: "#FFB3EC";
|
|
193
|
+
readonly green_50: "#DCFCE7";
|
|
194
|
+
readonly green_100: "#12B76A";
|
|
195
|
+
readonly green_700: "#17803D";
|
|
196
|
+
readonly green_900: "#006123";
|
|
197
|
+
readonly brown_50: "#EFEBE9";
|
|
198
|
+
readonly brown_100: "#D7CCC8";
|
|
199
|
+
readonly brown_300: "#A1887F";
|
|
200
|
+
readonly brown_400: "#8D6E63";
|
|
201
|
+
readonly brown_500: "#795548";
|
|
202
|
+
readonly brown_600: "#CD7F32";
|
|
203
|
+
readonly brown_700: "#5D4037";
|
|
204
|
+
readonly brown_800: "#4E342E";
|
|
205
|
+
readonly brown_900: "#3E2723";
|
|
206
|
+
readonly brown_950: "#333222";
|
|
207
|
+
readonly gradient_blue_deep: "linear-gradient(131.36deg, rgb(3, 62, 113) 0%, rgb(0, 87, 138) 20%, rgb(1, 113, 164) 40%, rgb(1, 113, 164) 50%, rgb(0, 87, 138) 80%, rgb(3, 62, 113) 100%)";
|
|
208
|
+
};
|
|
209
|
+
type ColorKey = keyof typeof colors;
|
|
210
|
+
|
|
211
|
+
interface IconBadgeProps extends Omit<HTMLAttributes<HTMLElement>, 'color' | 'onClick'> {
|
|
212
|
+
/** Nom de l'icône FontAwesome, sans le préfixe `fa-`. */
|
|
213
|
+
name: string;
|
|
214
|
+
family?: IconFamily;
|
|
215
|
+
size?: IconSize;
|
|
216
|
+
/** Couleur de fond — n'importe quelle clé de la palette brute (`lib/colors.ts`), posée en style inline (pas de classe Tailwind fermée à générer). */
|
|
217
|
+
bgColor: ColorKey;
|
|
218
|
+
/** Couleur de l'icône — même palette. Explicite, sans défaut : une icône reprenant automatiquement `bgColor` deviendrait invisible sur son propre fond. */
|
|
219
|
+
iconColor: ColorKey;
|
|
220
|
+
onClick?: () => void;
|
|
221
|
+
/** Action indisponible : badge grisé, clic inerte. N'a de sens qu'avec `onClick`. */
|
|
222
|
+
disabled?: boolean;
|
|
223
|
+
className?: string;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Icône posée dans un badge circulaire coloré — en-tête de bloc/carte, statut...
|
|
227
|
+
* Composant dédié plutôt qu'une prop de fond sur `Icon` : même logique que
|
|
228
|
+
* `Badge`, séparé de `Text`, pour garder chaque primitive à une seule
|
|
229
|
+
* responsabilité (cf. philosophie shadcn/Radix de la lib).
|
|
230
|
+
*/
|
|
231
|
+
declare const IconBadge: react.ForwardRefExoticComponent<IconBadgeProps & react.RefAttributes<HTMLElement>>;
|
|
232
|
+
|
|
131
233
|
/** `red-500` est le rouge vif d'action destructive (l'ancien `red_950` du DZ) —
|
|
132
234
|
* `red-900` reste le bordeaux d'état d'erreur. */
|
|
133
235
|
type ButtonColor = ColorToken | 'red-500';
|
|
@@ -946,86 +1048,6 @@ interface DatePickerProps {
|
|
|
946
1048
|
/** Construit sur `react-day-picker` — la lib derrière le vrai `Calendar`/`DatePicker` de shadcn. */
|
|
947
1049
|
declare const DatePicker: ({ mode, value, onChange, startDate, endDate, onRangeChange, showPresets, presets, placeholder, disabled, minDate, maxDate, width, align, className, }: DatePickerProps) => react.JSX.Element;
|
|
948
1050
|
|
|
949
|
-
declare const colors: {
|
|
950
|
-
readonly neutral_00: "#FFFFFF00";
|
|
951
|
-
readonly neutral_50: "#fff";
|
|
952
|
-
readonly neutral_100: "#f8f9fa";
|
|
953
|
-
readonly neutral_200: "#f2F2F2";
|
|
954
|
-
readonly neutral_400: "#ccc";
|
|
955
|
-
readonly neutral_500: "#A4A4A4";
|
|
956
|
-
readonly neutral_600: "#808080";
|
|
957
|
-
readonly neutral_800: "#343a40";
|
|
958
|
-
readonly neutral_950: "#000";
|
|
959
|
-
readonly grey_100: "#F8FAFC";
|
|
960
|
-
readonly grey_200: "#F1F5F9";
|
|
961
|
-
readonly grey_300: "#E2E8F0";
|
|
962
|
-
readonly grey_400: "#CBD5E1";
|
|
963
|
-
readonly grey_500: "#94A3B8";
|
|
964
|
-
readonly grey_600: "#646B73";
|
|
965
|
-
readonly dark_100: "#42979D";
|
|
966
|
-
readonly dark_200: "#317176";
|
|
967
|
-
readonly dark_300: "#1D1C1C";
|
|
968
|
-
readonly blue_50: "#DBE9FE";
|
|
969
|
-
readonly blue_100: "#CCEAF8";
|
|
970
|
-
readonly blue_200: "#B9DCED";
|
|
971
|
-
readonly blue_300: "#A7CFE2";
|
|
972
|
-
readonly blue_400: "#94C1D7";
|
|
973
|
-
readonly blue_500: "#82B4CC";
|
|
974
|
-
readonly blue_600: "#5C99B7";
|
|
975
|
-
readonly blue_700: "#377EA1";
|
|
976
|
-
readonly blue_800: "#12638B";
|
|
977
|
-
readonly blue_900: "#0E4F6F";
|
|
978
|
-
readonly blue_950: "#1C4ED8";
|
|
979
|
-
readonly red_500: "#F44649";
|
|
980
|
-
readonly red_50: "#FEE9E9";
|
|
981
|
-
readonly red_900: "#7F1D1D";
|
|
982
|
-
readonly turquoise_50: "#EEF8F9";
|
|
983
|
-
readonly turquoise_100: "#DCF2F3";
|
|
984
|
-
readonly turquoise_200: "#CBEBED";
|
|
985
|
-
readonly turquoise_300: "#BAE5E7";
|
|
986
|
-
readonly turquoise_400: "#97D7DC";
|
|
987
|
-
readonly yellow_50: "#FEF7EA";
|
|
988
|
-
readonly yellow_100: "#FEEDD5";
|
|
989
|
-
readonly yellow_200: "#FFD700";
|
|
990
|
-
readonly yellow_300: "#F8AF2D";
|
|
991
|
-
readonly yellow_400: "#DF8F00";
|
|
992
|
-
readonly yellow_500: "#A16207";
|
|
993
|
-
readonly orange_50: "#FFEEE6";
|
|
994
|
-
readonly orange_100: "#FFCEB8";
|
|
995
|
-
readonly orange_300: "#FFAF8A";
|
|
996
|
-
readonly orange_400: "#FF8F5C";
|
|
997
|
-
readonly orange_500: "#FF641C";
|
|
998
|
-
readonly orange_600: "#FF5100";
|
|
999
|
-
readonly purple_50: "#EDE9FE";
|
|
1000
|
-
readonly purple_700: "#7230DB";
|
|
1001
|
-
readonly pink_50: "#FDF2F8";
|
|
1002
|
-
readonly pink_100: "#FCE7F3";
|
|
1003
|
-
readonly pink_300: "#FBCFE8";
|
|
1004
|
-
readonly pink_400: "#F9A8D4";
|
|
1005
|
-
readonly pink_500: "#CF0F9E";
|
|
1006
|
-
readonly pink_600: "#EC4899";
|
|
1007
|
-
readonly pink_700: "#DB2777";
|
|
1008
|
-
readonly pink_800: "#BE185D";
|
|
1009
|
-
readonly pink_900: "#9D174D";
|
|
1010
|
-
readonly fuchsia_300: "#FFB3EC";
|
|
1011
|
-
readonly green_50: "#DCFCE7";
|
|
1012
|
-
readonly green_100: "#12B76A";
|
|
1013
|
-
readonly green_700: "#17803D";
|
|
1014
|
-
readonly green_900: "#006123";
|
|
1015
|
-
readonly brown_50: "#EFEBE9";
|
|
1016
|
-
readonly brown_100: "#D7CCC8";
|
|
1017
|
-
readonly brown_300: "#A1887F";
|
|
1018
|
-
readonly brown_400: "#8D6E63";
|
|
1019
|
-
readonly brown_500: "#795548";
|
|
1020
|
-
readonly brown_600: "#CD7F32";
|
|
1021
|
-
readonly brown_700: "#5D4037";
|
|
1022
|
-
readonly brown_800: "#4E342E";
|
|
1023
|
-
readonly brown_900: "#3E2723";
|
|
1024
|
-
readonly brown_950: "#333222";
|
|
1025
|
-
readonly gradient_blue_deep: "linear-gradient(131.36deg, rgb(3, 62, 113) 0%, rgb(0, 87, 138) 20%, rgb(1, 113, 164) 40%, rgb(1, 113, 164) 50%, rgb(0, 87, 138) 80%, rgb(3, 62, 113) 100%)";
|
|
1026
|
-
};
|
|
1027
|
-
type ColorKey = keyof typeof colors;
|
|
1028
|
-
|
|
1029
1051
|
/**
|
|
1030
1052
|
* Miroir de DesignSystem/src/data/globalMethods.ts.
|
|
1031
1053
|
*
|
|
@@ -1174,4 +1196,56 @@ interface OptimizeImageOptions {
|
|
|
1174
1196
|
}
|
|
1175
1197
|
declare const optimizeImage: (file: File | null | undefined, desiredBaseName: string, opts?: OptimizeImageOptions) => Promise<OptimizeImageResult>;
|
|
1176
1198
|
|
|
1177
|
-
|
|
1199
|
+
/**
|
|
1200
|
+
* Attributs qui neutralisent l'autofill du navigateur **et** des gestionnaires
|
|
1201
|
+
* de mots de passe (1Password, LastPass, Bitwarden, Dashlane) sur un champ.
|
|
1202
|
+
*
|
|
1203
|
+
* Appliqués par défaut par les champs du DS : sans ça, un coffre-fort réécrit
|
|
1204
|
+
* à l'ouverture d'une page les valeurs déjà présentes dans le formulaire
|
|
1205
|
+
* (fiche existante en édition), silencieusement.
|
|
1206
|
+
*
|
|
1207
|
+
* `autoComplete: 'off'` seul ne suffit pas : les extensions l'ignorent, chacune
|
|
1208
|
+
* a son propre attribut d'opt-out.
|
|
1209
|
+
*
|
|
1210
|
+
* Étalés **avant** les props du consommateur : un champ qui a besoin de
|
|
1211
|
+
* l'autofill (page de login) surcharge ce qu'il veut, y compris en repassant
|
|
1212
|
+
* `undefined` sur un `data-*` pour le retirer.
|
|
1213
|
+
*
|
|
1214
|
+
* @example
|
|
1215
|
+
* <input {...noAutofillProps} {...props} />
|
|
1216
|
+
* // login : <Input autoComplete="username" data-1p-ignore={undefined} />
|
|
1217
|
+
*/
|
|
1218
|
+
declare const noAutofillProps: {
|
|
1219
|
+
readonly autoComplete: "off";
|
|
1220
|
+
/** 1Password */
|
|
1221
|
+
readonly 'data-1p-ignore': true;
|
|
1222
|
+
/** LastPass */
|
|
1223
|
+
readonly 'data-lpignore': "true";
|
|
1224
|
+
/** Bitwarden */
|
|
1225
|
+
readonly 'data-bwignore': true;
|
|
1226
|
+
/** Dashlane */
|
|
1227
|
+
readonly 'data-form-type': "other";
|
|
1228
|
+
};
|
|
1229
|
+
/**
|
|
1230
|
+
* Inverse de {@link noAutofillProps} : réautorise l'autofill sur un champ
|
|
1231
|
+
* précis, en neutralisant les `data-*` d'opt-out posés par défaut.
|
|
1232
|
+
*
|
|
1233
|
+
* À réserver aux champs où l'autofill est *voulu* : login, changement de mot
|
|
1234
|
+
* de passe. Partout ailleurs, le défaut du DS est le bon comportement.
|
|
1235
|
+
*
|
|
1236
|
+
* @param autoComplete valeur HTML `autocomplete` du champ — `username`,
|
|
1237
|
+
* `current-password`, `new-password`, `email`…
|
|
1238
|
+
*
|
|
1239
|
+
* @example
|
|
1240
|
+
* <Input type="text" {...allowAutofill('username')} />
|
|
1241
|
+
* <PasswordInput {...allowAutofill('current-password')} />
|
|
1242
|
+
*/
|
|
1243
|
+
declare const allowAutofill: (autoComplete: string) => {
|
|
1244
|
+
autoComplete: string;
|
|
1245
|
+
"data-1p-ignore": undefined;
|
|
1246
|
+
"data-lpignore": undefined;
|
|
1247
|
+
"data-bwignore": undefined;
|
|
1248
|
+
"data-form-type": undefined;
|
|
1249
|
+
};
|
|
1250
|
+
|
|
1251
|
+
export { Attachment, type AttachmentProps, type AttachmentStatus, Avatar, AvatarBadge, type AvatarBadgeConfig, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Banner, type BannerAction, type BannerProps, type BannerToggle, Box, type BoxProps, Bulk, type BulkProps, type BulkSection, Button, type ButtonColor, type ButtonProps, COLOR_TOKENS, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorKey, ColorPicker, type ColorPickerProps, type ColorToken, DatePicker, type DatePickerMode, type DatePickerProps, type DatePreset, Divider, type DividerProps, Drawer, DrawerBody, DrawerClose, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, type DrawerProps, DrawerTitle, EmailInput, type EmailInputProps, EmptyState, type EmptyStateProps, FileUploadZone, type FileUploadZoneProps, type FloatingAction, FloatingButton, type FloatingButtonProps, Gantt, type GanttBand, type GanttBar, type GanttDay, GanttDot, type GanttProps, type GanttRow, GanttSwatch, Icon, IconBadge, type IconBadgeProps, type IconColor, type IconFamily, type IconProps, type IconSize, type IconTabItem, IconTabs, type IconTabsProps, Image, type ImageProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupProps, type InputProps, Item, ItemActions, ItemContent, ItemDescription, ItemMedia, type ItemMediaProps, type ItemProps, ItemTitle, Label, type LabelProps, Layout, type LayoutProps, Link, type LinkProps, MetricCard, type MetricCardProps, Modal, ModalBody, ModalClose, ModalDescription, ModalFooter, ModalHeader, type ModalProps, ModalTitle, type MultiSelectProps, type OptimizeImageOptions, type OptimizeImageResult, PageContainer, type PageContainerProps, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PdfPreview, type PdfPreviewProps, PhoneInput, type PhoneInputMeta, type PhoneInputProps, Popover, type PopoverMenuItem, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, type RadioOption, type RadioProps, ScrollArea, type ScrollAreaProps, SearchInput, type SearchInputProps, Select, type SelectOption, type SelectProps, type SingleSelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, TableCell, type TableCellProps, type TableEmptyState, TableFooter, TableFooterCell, type TableFooterCellProps, type TableFooterProps, TableFooterRow, type TableFooterRowProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TableHeaderRow, type TableHeaderRowProps, type TablePagination, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagBubble, type TagBubbleProps, type TagOption, TagSelect, type TagSelectProps, Text, type TextProps, Textarea, type TextareaProps, Timeline, type TimelineItem, type TimelineProps, type ToastOptions, type ToastType, Toaster, Tooltip, type TooltipProps, addBusinessDays, allowAutofill, appendCacheBuster, appendQueryParam, buttonVariants, capitalizeFirstLetter, colors, easterDate, formatAddress, formatCityFromFormattedAddress, formatCityWithPostalCode, formatDate, formatDateWithTime, formatDistance, formatDuration, formatEuro, formatKM, formatLocality, formatName, formatNameWithInitial, formatPhoneNumber, formatPlate, formatPlateWithoutDashes, formatPostalCodeFromFormattedAddress, formatRegionCode, formatTime, formatVin, generateHexColor, getAvatarColor, getCleanFileName, getFileIconByMimeType, getFileKind, getFileNameFromUrl, getInitials, getMimeCategory, getRelativeTime, isHoliday, isSameDay, isolateCity, noAutofillProps, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
|