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 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
- 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, 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, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
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
- 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, 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, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText };
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
- autoComplete: "off",
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
- autoComplete: "off",
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,
@@ -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
- 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, 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, 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, optimizeImage, parseAmount, parseIsoDate, toast, truncateFileName, truncateText, useAvatarSize };
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 };