@12-apps/ui 6.96.1 → 6.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/components/data-display/Avatar/Avatar.js +1 -1
- package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
- package/dist/_internal/components/data-display/Chip/Chip.metrics.js +3 -1
- package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
- package/dist/_internal/components/data-display/index.js +4 -4
- package/dist/_internal/components/form/CepField/CepField.js +1 -1
- package/dist/_internal/components/form/index.js +1 -1
- package/dist/_internal/components/form/total-form/Fields/CepField.js +2 -2
- package/dist/_internal/components/form/total-form/Fields/index.js +3 -3
- package/dist/_internal/components/index.js +12 -12
- package/dist/_internal/components/layout/SettingCard/SettingCard.js +6 -6
- package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +4 -4
- package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +5 -5
- package/dist/_internal/components/layout/SettingCard/SettingGrid.js +5 -5
- package/dist/_internal/components/layout/SettingCard/SettingGroup.js +7 -7
- package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +6 -6
- package/dist/_internal/components/layout/SettingCard/SettingToggle.js +7 -7
- package/dist/_internal/components/layout/index.js +10 -10
- package/dist/_internal/user-avatar/user-avatar.js +2 -2
- package/dist/{chunk-FMNOCFD2.js → chunk-2C7AWMV7.js} +2 -2
- package/dist/{chunk-I3QVH34Y.js → chunk-44BTMZB6.js} +3 -3
- package/dist/{chunk-GOWKXKWO.js → chunk-44I2KXKW.js} +7 -5
- package/dist/chunk-44I2KXKW.js.map +1 -0
- package/dist/{chunk-JIEVKHOH.js → chunk-EXEBN5ZP.js} +16 -1
- package/dist/chunk-EXEBN5ZP.js.map +1 -0
- package/dist/{chunk-Y5J2EIR4.js → chunk-F3UHWLTD.js} +2 -2
- package/dist/{chunk-52NM5VEW.js → chunk-GZBLDPXY.js} +3 -1
- package/dist/{chunk-52NM5VEW.js.map → chunk-GZBLDPXY.js.map} +1 -1
- package/dist/{chunk-UOI3RX4W.js → chunk-IAPFZJ6I.js} +2 -2
- package/dist/{chunk-E2UOEI7N.js → chunk-JJYECKEL.js} +2 -2
- package/dist/{chunk-BTDRBO4G.js → chunk-L2ICH44N.js} +3 -3
- package/dist/{chunk-UTWEHMAP.js → chunk-LYVVXC3J.js} +11 -3
- package/dist/chunk-LYVVXC3J.js.map +1 -0
- package/dist/{chunk-BRFL7OWI.js → chunk-N2J24TJ3.js} +2 -2
- package/dist/{chunk-KXVWH3JM.js → chunk-QZRWOF4R.js} +2 -2
- package/dist/{chunk-VILNULUY.js → chunk-RCULGFEH.js} +3 -3
- package/dist/{chunk-PQ4P4OEA.js → chunk-SSWNJR36.js} +2 -2
- package/dist/{chunk-KCH6O6IC.js → chunk-XSLF3YGH.js} +3 -3
- package/dist/data-display/Avatar.js +1 -1
- package/dist/data-display/Chip.js +3 -3
- package/dist/form/CepField.js +1 -1
- package/dist/form/total-form.js +3 -3
- package/dist/layout/SettingCard.js +10 -10
- package/dist/native/data-display/Chip.js +5 -2
- package/dist/native/data-display/Chip.js.map +1 -1
- package/dist/types/components/data-display/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/data-display/Chip/Chip.base.d.ts +3 -2
- package/dist/types/components/data-display/Chip/Chip.base.d.ts.map +1 -1
- package/dist/types/components/data-display/Chip/Chip.metrics.d.ts +6 -0
- package/dist/types/components/data-display/Chip/Chip.metrics.d.ts.map +1 -1
- package/dist/types/components/data-display/Chip/Chip.styles.d.ts.map +1 -1
- package/dist/types/components/form/CepField/CepField.d.ts +1 -1
- package/dist/types/components/form/CepField/CepField.d.ts.map +1 -1
- package/dist/types/components/form/CepField/CepField.types.d.ts +9 -0
- package/dist/types/components/form/CepField/CepField.types.d.ts.map +1 -1
- package/dist/types-native/components/data-display/Chip/Chip.base.d.ts +3 -2
- package/dist/types-native/components/data-display/Chip/Chip.base.d.ts.map +1 -1
- package/dist/types-native/components/data-display/Chip/Chip.look.native.d.ts.map +1 -1
- package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts +6 -0
- package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts.map +1 -1
- package/dist/user-avatar.js +2 -2
- package/package.json +1 -1
- package/src/components/data-display/Avatar/Avatar.tsx +22 -3
- package/src/components/data-display/Chip/Chip.base.ts +3 -2
- package/src/components/data-display/Chip/Chip.look.native.ts +6 -3
- package/src/components/data-display/Chip/Chip.metrics.ts +6 -0
- package/src/components/data-display/Chip/Chip.styles.tsx +9 -4
- package/src/components/data-display/Chip/chip.md +1 -1
- package/src/components/form/CepField/CepField.md +4 -0
- package/src/components/form/CepField/CepField.tsx +14 -1
- package/src/components/form/CepField/CepField.types.ts +9 -0
- package/dist/chunk-GOWKXKWO.js.map +0 -1
- package/dist/chunk-JIEVKHOH.js.map +0 -1
- package/dist/chunk-UTWEHMAP.js.map +0 -1
- /package/dist/{chunk-FMNOCFD2.js.map → chunk-2C7AWMV7.js.map} +0 -0
- /package/dist/{chunk-I3QVH34Y.js.map → chunk-44BTMZB6.js.map} +0 -0
- /package/dist/{chunk-Y5J2EIR4.js.map → chunk-F3UHWLTD.js.map} +0 -0
- /package/dist/{chunk-UOI3RX4W.js.map → chunk-IAPFZJ6I.js.map} +0 -0
- /package/dist/{chunk-E2UOEI7N.js.map → chunk-JJYECKEL.js.map} +0 -0
- /package/dist/{chunk-BTDRBO4G.js.map → chunk-L2ICH44N.js.map} +0 -0
- /package/dist/{chunk-BRFL7OWI.js.map → chunk-N2J24TJ3.js.map} +0 -0
- /package/dist/{chunk-KXVWH3JM.js.map → chunk-QZRWOF4R.js.map} +0 -0
- /package/dist/{chunk-VILNULUY.js.map → chunk-RCULGFEH.js.map} +0 -0
- /package/dist/{chunk-PQ4P4OEA.js.map → chunk-SSWNJR36.js.map} +0 -0
- /package/dist/{chunk-KCH6O6IC.js.map → chunk-XSLF3YGH.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/Chip/Chip.metrics.ts"],"sourcesContent":["import type { ChipSize } from './Chip.base';\n\n/**\n * THE NUMBERS BOTH `Chip` RENDERERS DRAW WITH.\n *\n * Most of them are MUI's own `Chip` geometry rather than anything this package\n * writes — the 32px pill, the 13px label, the 5px/-6px icon tuck — because the\n * web half hands the drawing to `MuiChip` and the native half has to draw it.\n * Restated here once, read by both, so the two cannot disagree about a chip's\n * height. What THIS package adds (`Chip.styles.tsx`'s hover lift, its shadow\n * and its transition) is at the bottom, and the web derives its CSS from it.\n */\n\n/** MUI draws two chip sizes; ours are the house abbreviations for them. */\nexport type ChipMuiSize = 'small' | 'medium';\n\nexport const chipMuiSize = (size: ChipSize): ChipMuiSize =>\n size === 'xs' || size === 'sm' ? 'small' : 'medium';\n\nexport interface ChipSizeMetrics {\n height: number;\n /** The label's own side padding, filled and outlined (outlined is 1px tighter). */\n labelPadding: number;\n labelPaddingOutlined: number;\n /** The leading icon's box, and how far it tucks under the label. */\n iconSize: number;\n iconMarginLeft: number;\n iconMarginLeftOutlined: number;\n iconMarginRight: number;\n /** The avatar's round box and the type inside it. */\n avatarSize: number;\n avatarFontSize: number;\n avatarMarginLeft: number;\n avatarMarginLeftOutlined: number;\n avatarMarginRight: number;\n /** The delete glyph's box and its own tuck. */\n deleteSize: number;\n deleteMarginLeft: number;\n deleteMarginRight: number;\n deleteMarginRightOutlined: number;\n}\n\nexport const CHIP_SIZES: Record<ChipMuiSize, ChipSizeMetrics> = {\n medium: {\n height: 32,\n labelPadding: 12,\n labelPaddingOutlined: 11,\n iconSize: 24,\n iconMarginLeft: 5,\n iconMarginLeftOutlined: 4,\n iconMarginRight: -6,\n avatarSize: 24,\n avatarFontSize: 12,\n avatarMarginLeft: 5,\n avatarMarginLeftOutlined: 4,\n avatarMarginRight: -6,\n deleteSize: 22,\n deleteMarginLeft: -6,\n deleteMarginRight: 5,\n deleteMarginRightOutlined: 5,\n },\n small: {\n height: 24,\n labelPadding: 8,\n labelPaddingOutlined: 7,\n iconSize: 18,\n iconMarginLeft: 4,\n iconMarginLeftOutlined: 2,\n iconMarginRight: -4,\n avatarSize: 18,\n avatarFontSize: 10,\n avatarMarginLeft: 4,\n avatarMarginLeftOutlined: 2,\n avatarMarginRight: -4,\n deleteSize: 16,\n deleteMarginLeft: -4,\n deleteMarginRight: 4,\n deleteMarginRightOutlined: 3,\n },\n};\n\n/** MUI's `borderRadius: 32 / 2` — a pill at either height, since the box clamps it. */\nexport const CHIP_RADIUS = 16;\n/** The label's type, in px. MUI sets it on the root and the small size keeps it. */\nexport const CHIP_FONT_SIZE = 13;\n/** MUI's `palette.action.disabledOpacity`. */\nexport const CHIP_DISABLED_OPACITY = 0.38;\n/** An outlined chip's hairline: the hue at 0.7, or the grey ramp for `neutral`. */\nexport const OUTLINED_BORDER_ALPHA = 0.7;\n/** The delete glyph over an unaccented chip, and over a coloured one. */\nexport const DELETE_ICON_ALPHA = 0.26;\nexport const DELETE_ICON_ON_COLOR_ALPHA = 0.7;\n/** MUI's `action.hoverOpacity`, the wash a clickable outlined chip takes. */\nexport const OUTLINED_HOVER_ALPHA = 0.04;\n\n/* ── What this package adds on top of MUI's chip ──────────────────────────── */\n\n/** The lift a clickable chip takes on hover, and the shadow under it. */\nexport const HOVER_LIFT_PX = 1;\nexport const HOVER_SHADOW = { offsetY: 4, blur: 12, alphaLight: 0.15, alphaDark: 0.3 } as const;\nexport const CHIP_TRANSITION_MS = 200;\nexport const CHIP_TRANSITION_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n/** A soft chip's ground: the colour at this alpha over the page. */\nexport const SOFT_GROUND_ALPHA = 0.14;\n/** A soft chip's hover ground. */\nexport const SOFT_HOVER_ALPHA = 0.22;\n/** A soft chip's keyboard-focus ring, in design px (read through `rem`). */\nexport const SOFT_FOCUS_RING = { width: 2, offset: 2 } as const;\n"],"mappings":";AAgBO,IAAM,cAAc,CAAC,SAC1B,SAAS,QAAQ,SAAS,OAAO,UAAU;AAyBtC,IAAM,aAAmD;AAAA,EAC9D,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,EAC7B;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,EAC7B;AACF;AAGO,IAAM,cAAc;AAEpB,IAAM,iBAAiB;AAEvB,IAAM,wBAAwB;AAE9B,IAAM,wBAAwB;AAE9B,IAAM,oBAAoB;AAC1B,IAAM,6BAA6B;AAEnC,IAAM,uBAAuB;AAK7B,IAAM,gBAAgB;AACtB,IAAM,eAAe,EAAE,SAAS,GAAG,MAAM,IAAI,YAAY,MAAM,WAAW,IAAI;AAC9E,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAG/B,IAAM,oBAAoB;AAE1B,IAAM,mBAAmB;
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/Chip/Chip.metrics.ts"],"sourcesContent":["import type { ChipSize } from './Chip.base';\n\n/**\n * THE NUMBERS BOTH `Chip` RENDERERS DRAW WITH.\n *\n * Most of them are MUI's own `Chip` geometry rather than anything this package\n * writes — the 32px pill, the 13px label, the 5px/-6px icon tuck — because the\n * web half hands the drawing to `MuiChip` and the native half has to draw it.\n * Restated here once, read by both, so the two cannot disagree about a chip's\n * height. What THIS package adds (`Chip.styles.tsx`'s hover lift, its shadow\n * and its transition) is at the bottom, and the web derives its CSS from it.\n */\n\n/** MUI draws two chip sizes; ours are the house abbreviations for them. */\nexport type ChipMuiSize = 'small' | 'medium';\n\nexport const chipMuiSize = (size: ChipSize): ChipMuiSize =>\n size === 'xs' || size === 'sm' ? 'small' : 'medium';\n\nexport interface ChipSizeMetrics {\n height: number;\n /** The label's own side padding, filled and outlined (outlined is 1px tighter). */\n labelPadding: number;\n labelPaddingOutlined: number;\n /** The leading icon's box, and how far it tucks under the label. */\n iconSize: number;\n iconMarginLeft: number;\n iconMarginLeftOutlined: number;\n iconMarginRight: number;\n /** The avatar's round box and the type inside it. */\n avatarSize: number;\n avatarFontSize: number;\n avatarMarginLeft: number;\n avatarMarginLeftOutlined: number;\n avatarMarginRight: number;\n /** The delete glyph's box and its own tuck. */\n deleteSize: number;\n deleteMarginLeft: number;\n deleteMarginRight: number;\n deleteMarginRightOutlined: number;\n}\n\nexport const CHIP_SIZES: Record<ChipMuiSize, ChipSizeMetrics> = {\n medium: {\n height: 32,\n labelPadding: 12,\n labelPaddingOutlined: 11,\n iconSize: 24,\n iconMarginLeft: 5,\n iconMarginLeftOutlined: 4,\n iconMarginRight: -6,\n avatarSize: 24,\n avatarFontSize: 12,\n avatarMarginLeft: 5,\n avatarMarginLeftOutlined: 4,\n avatarMarginRight: -6,\n deleteSize: 22,\n deleteMarginLeft: -6,\n deleteMarginRight: 5,\n deleteMarginRightOutlined: 5,\n },\n small: {\n height: 24,\n labelPadding: 8,\n labelPaddingOutlined: 7,\n iconSize: 18,\n iconMarginLeft: 4,\n iconMarginLeftOutlined: 2,\n iconMarginRight: -4,\n avatarSize: 18,\n avatarFontSize: 10,\n avatarMarginLeft: 4,\n avatarMarginLeftOutlined: 2,\n avatarMarginRight: -4,\n deleteSize: 16,\n deleteMarginLeft: -4,\n deleteMarginRight: 4,\n deleteMarginRightOutlined: 3,\n },\n};\n\n/** MUI's `borderRadius: 32 / 2` — a pill at either height, since the box clamps it. */\nexport const CHIP_RADIUS = 16;\n/** The label's type, in px. MUI sets it on the root and the small size keeps it. */\nexport const CHIP_FONT_SIZE = 13;\n/** MUI's `palette.action.disabledOpacity`. */\nexport const CHIP_DISABLED_OPACITY = 0.38;\n/** An outlined chip's hairline: the hue at 0.7, or the grey ramp for `neutral`. */\nexport const OUTLINED_BORDER_ALPHA = 0.7;\n/** The delete glyph over an unaccented chip, and over a coloured one. */\nexport const DELETE_ICON_ALPHA = 0.26;\nexport const DELETE_ICON_ON_COLOR_ALPHA = 0.7;\n/** MUI's `action.hoverOpacity`, the wash a clickable outlined chip takes. */\nexport const OUTLINED_HOVER_ALPHA = 0.04;\n\n/* ── What this package adds on top of MUI's chip ──────────────────────────── */\n\n/** The lift a clickable chip takes on hover, and the shadow under it. */\nexport const HOVER_LIFT_PX = 1;\nexport const HOVER_SHADOW = { offsetY: 4, blur: 12, alphaLight: 0.15, alphaDark: 0.3 } as const;\nexport const CHIP_TRANSITION_MS = 200;\nexport const CHIP_TRANSITION_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n/** A soft chip's ground: the colour at this alpha over the page. */\nexport const SOFT_GROUND_ALPHA = 0.14;\n/** A soft chip's hover ground. */\nexport const SOFT_HOVER_ALPHA = 0.22;\n/**\n * How much a light-mode soft WARNING ink darkens its `dark` step (FUT-4464). With\n * the default theme, `warning.dark` (#e65100) on its 14% tint is 3.25:1; darkened\n * by 0.2 it is 4.77:1. The other five colours clear 4.5:1 on `dark` as it is.\n */\nexport const SOFT_WARNING_LIGHT_DARKEN = 0.2;\n/** A soft chip's keyboard-focus ring, in design px (read through `rem`). */\nexport const SOFT_FOCUS_RING = { width: 2, offset: 2 } as const;\n"],"mappings":";AAgBO,IAAM,cAAc,CAAC,SAC1B,SAAS,QAAQ,SAAS,OAAO,UAAU;AAyBtC,IAAM,aAAmD;AAAA,EAC9D,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,EAC7B;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,EAC7B;AACF;AAGO,IAAM,cAAc;AAEpB,IAAM,iBAAiB;AAEvB,IAAM,wBAAwB;AAE9B,IAAM,wBAAwB;AAE9B,IAAM,oBAAoB;AAC1B,IAAM,6BAA6B;AAEnC,IAAM,uBAAuB;AAK7B,IAAM,gBAAgB;AACtB,IAAM,eAAe,EAAE,SAAS,GAAG,MAAM,IAAI,YAAY,MAAM,WAAW,IAAI;AAC9E,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAG/B,IAAM,oBAAoB;AAE1B,IAAM,mBAAmB;AAMzB,IAAM,4BAA4B;AAElC,IAAM,kBAAkB,EAAE,OAAO,GAAG,QAAQ,EAAE;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
partTestId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-F3UHWLTD.js";
|
|
4
4
|
import {
|
|
5
5
|
SETTING_CARD_OPEN_ATTR,
|
|
6
6
|
withCallerSx
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
settingGridStyles,
|
|
80
80
|
SettingGrid
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-IAPFZJ6I.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-DQ22UKMZ.js";
|
|
4
4
|
import {
|
|
5
5
|
Avatar
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EXEBN5ZP.js";
|
|
7
7
|
import {
|
|
8
8
|
Card
|
|
9
9
|
} from "./chunk-4XBAEKQQ.js";
|
|
@@ -80,4 +80,4 @@ export {
|
|
|
80
80
|
UserAvatar,
|
|
81
81
|
UserMenu
|
|
82
82
|
};
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
83
|
+
//# sourceMappingURL=chunk-JJYECKEL.js.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
chipStyles,
|
|
4
4
|
iconWithTestId,
|
|
5
5
|
makeKeyDownHandler
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-44I2KXKW.js";
|
|
7
7
|
import {
|
|
8
8
|
chipMuiSize
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-GZBLDPXY.js";
|
|
10
10
|
import {
|
|
11
11
|
chipRole,
|
|
12
12
|
isClickable,
|
|
@@ -77,4 +77,4 @@ Chip.displayName = "Chip";
|
|
|
77
77
|
export {
|
|
78
78
|
Chip
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
80
|
+
//# sourceMappingURL=chunk-L2ICH44N.js.map
|
|
@@ -63,6 +63,13 @@ function CepStatus({
|
|
|
63
63
|
return /* @__PURE__ */ jsx("span", { id: `${testId}-status`, role: "status", "aria-live": "polite", children: visible && /* @__PURE__ */ jsx(FormMessage, { error: status === "notfound", dataTestId: `${testId}-${status}`, children: copy[status] }) });
|
|
64
64
|
}
|
|
65
65
|
var CEP_INPUT_PROPS = { inputMode: "numeric" };
|
|
66
|
+
var CEP_INPUT_PROPS_NO_MANAGERS = {
|
|
67
|
+
...CEP_INPUT_PROPS,
|
|
68
|
+
"data-lpignore": "true",
|
|
69
|
+
"data-1p-ignore": "true",
|
|
70
|
+
"data-bwignore": "true"
|
|
71
|
+
};
|
|
72
|
+
var inputPropsOf = (passwordManagers) => passwordManagers === "ignore" ? CEP_INPUT_PROPS_NO_MANAGERS : CEP_INPUT_PROPS;
|
|
66
73
|
var autoCompleteOf = (autoComplete) => autoComplete ?? "postal-code";
|
|
67
74
|
function AboveLabel({
|
|
68
75
|
name,
|
|
@@ -92,7 +99,8 @@ function CepField({
|
|
|
92
99
|
size,
|
|
93
100
|
// undefined reaches `Input`, whose own default is `md`
|
|
94
101
|
labelPlacement = "above",
|
|
95
|
-
autoComplete
|
|
102
|
+
autoComplete,
|
|
103
|
+
passwordManagers
|
|
96
104
|
}) {
|
|
97
105
|
const testId = dataTestId ?? `cep-field-${name}`;
|
|
98
106
|
const status = useCepLookup({
|
|
@@ -116,7 +124,7 @@ function CepField({
|
|
|
116
124
|
id: name,
|
|
117
125
|
name,
|
|
118
126
|
type: "text",
|
|
119
|
-
inputProps:
|
|
127
|
+
inputProps: inputPropsOf(passwordManagers),
|
|
120
128
|
autoComplete: autoCompleteOf(autoComplete),
|
|
121
129
|
size,
|
|
122
130
|
label: insideLabel(label, labelPlacement),
|
|
@@ -141,4 +149,4 @@ export {
|
|
|
141
149
|
CepField,
|
|
142
150
|
CepField_default
|
|
143
151
|
};
|
|
144
|
-
//# sourceMappingURL=chunk-
|
|
152
|
+
//# sourceMappingURL=chunk-LYVVXC3J.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/form/CepField/CepField.tsx"],"sourcesContent":["'use client';\n\nimport type { CepFieldCopy } from \"../../../copy\";\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { cepDigits, formatCep, isValidCep } from '@12-apps/forms-core';\n\nimport { FormControl, FormLabel, FormMessage } from '../Form';\n// The outlined entry: CepField renders no variant, and the generic one would\n// ship MUI's FilledInput and Input to every screen with a CEP field (FUT-1054).\nimport { Input } from '../Input/outlined';\nimport type { CepAddress, CepFieldProps, CepLookupStatus } from './CepField.types';\n\n/** Everything {@link useCepLookup} needs, so the hook signature stays flat. */\ninterface LookupOptions {\n digits: string;\n complete: boolean;\n disabled: boolean;\n debounceMs: number;\n onLookup?: (cep: string) => Promise<CepAddress | null>;\n onResolved?: (address: CepAddress) => void;\n onNotFound?: () => void;\n}\n\n/**\n * Debounced, race-safe CEP resolution.\n *\n * Two guards earn their keep here: a monotonic sequence id, bumped\n * synchronously on every new query, so a slow response for a since-edited CEP\n * can never land; and a \"last queried\" marker, so re-rendering (or the caller\n * re-masking the same value) never re-hits the provider.\n */\nfunction useCepLookup({\n digits,\n complete,\n disabled,\n debounceMs,\n onLookup,\n onResolved,\n onNotFound,\n}: LookupOptions): CepLookupStatus {\n const [status, setStatus] = useState<CepLookupStatus>('idle');\n const lastQueriedRef = useRef('');\n const seqRef = useRef(0);\n // Latest callbacks, read at call time — keeps them out of the effect deps so\n // an inline arrow from the caller doesn't re-trigger the lookup every render.\n const lookupRef = useRef(onLookup);\n const resolvedRef = useRef(onResolved);\n const notFoundRef = useRef(onNotFound);\n lookupRef.current = onLookup;\n resolvedRef.current = onResolved;\n notFoundRef.current = onNotFound;\n\n useEffect(() => {\n if (!complete || disabled || !lookupRef.current) {\n // Editing away from a complete CEP drops any stale status and forgets the\n // last query, so re-typing the same CEP resolves again.\n seqRef.current += 1;\n setStatus('idle');\n lastQueriedRef.current = '';\n return;\n }\n if (lastQueriedRef.current === digits) return;\n\n const mySeq = (seqRef.current += 1);\n const handle = setTimeout(() => {\n lastQueriedRef.current = digits;\n setStatus('loading');\n void (async () => {\n // A failing lookup is treated exactly like \"not found\" — the user types\n // the address instead. Never surfaced as a crash. Going through\n // `Promise.resolve().then` rather than calling directly covers the two\n // failure modes an `await … .catch()` misses: a lookup that throws\n // SYNCHRONOUSLY, and one that returns something other than a promise.\n const address = await Promise.resolve()\n .then(() => lookupRef.current?.(digits))\n .catch(() => null);\n if (seqRef.current !== mySeq) return;\n setStatus(address ? 'found' : 'notfound');\n // A miss is reported too, so a caller that filled from a PREVIOUS CEP\n // can undo it rather than leaving that address under this CEP.\n if (address) resolvedRef.current?.(address);\n else notFoundRef.current?.();\n })();\n }, debounceMs);\n\n return () => clearTimeout(handle);\n }, [digits, complete, disabled, debounceMs]);\n\n return status;\n}\n\n/**\n * The lookup outcome as a live region, so screen readers announce it without\n * stealing focus. Silent while idle, and while the caller is showing its own\n * validation error (which would otherwise stack two messages).\n */\nfunction CepStatus({\n status,\n testId,\n suppressed,\n copy,\n}: {\n status: CepLookupStatus;\n testId: string;\n suppressed: boolean;\n copy: CepFieldCopy;\n}): React.ReactElement {\n const visible = !suppressed && status !== 'idle';\n return (\n <span id={`${testId}-status`} role=\"status\" aria-live=\"polite\">\n {visible && (\n <FormMessage error={status === 'notfound'} dataTestId={`${testId}-${status}`}>\n {copy[status as Exclude<CepLookupStatus, 'idle'>]}\n </FormMessage>\n )}\n </span>\n );\n}\n\n/** What only the `<input>` can act on. Hoisted: one object for every render. */\nconst CEP_INPUT_PROPS = { inputMode: 'numeric' } as const;\n\n/** The same, plus each password manager's own \"not mine\" flag (`passwordManagers=\"ignore\"`, FUT-4444). */\nconst CEP_INPUT_PROPS_NO_MANAGERS = {\n ...CEP_INPUT_PROPS,\n 'data-lpignore': 'true',\n 'data-1p-ignore': 'true',\n 'data-bwignore': 'true',\n} as const;\n\n/** The `<input>`'s own props: the keypad always, the managers' flags only when asked (`offer` is the default). */\nconst inputPropsOf = (passwordManagers: 'offer' | 'ignore' | undefined) =>\n passwordManagers === 'ignore' ? CEP_INPUT_PROPS_NO_MANAGERS : CEP_INPUT_PROPS;\n\n/** `postal-code` unless the caller said otherwise (`off` for somebody else's address). */\nconst autoCompleteOf = (autoComplete: string | undefined): string => autoComplete ?? 'postal-code';\n\n/** The stacked label over the box (`labelPlacement=\"above\"`), or nothing when there is no label. */\nfunction AboveLabel({\n name,\n label,\n error,\n}: {\n name: string;\n label?: string;\n error?: string;\n}): React.ReactElement | null {\n if (!label) return null;\n return (\n <FormLabel htmlFor={name} error={Boolean(error)}>\n {label}\n </FormLabel>\n );\n}\n\n/** The label handed to the `Input`, which draws it in the box: only for `inside`. */\nfunction insideLabel(label: string | undefined, placement: 'above' | 'inside'): string | undefined {\n return placement === 'inside' ? label : undefined;\n}\n\n/**\n * A CEP input that fills the rest of the address in.\n *\n * The pattern every Brazilian form has used for twenty years: type eight\n * digits, and logradouro/bairro/cidade/UF arrive on their own. This is the\n * reusable half — masking, validation, debouncing, race-safety and status —\n * with the actual lookup injected via `onLookup`, so the same component serves\n * a supplier form, a store-location form or a delivery checkout without\n * knowing anything about providers or auth.\n *\n * Resolution is best-effort by design. A provider outage, an unknown CEP or a\n * timeout leaves the field exactly as usable as a plain text input — the user\n * types the address themselves. Autofill never blocks.\n *\n * @example\n * ```tsx\n * <CepField\n * value={cep}\n * onChange={setCep}\n * onLookup={(c) => fetch(`/api/…/lookup/cep/${c}`).then((r) => r.json()).then((b) => b.data)}\n * onResolved={(a) => { setStreet(a.street ?? ''); setCity(a.city ?? ''); }}\n * />\n * ```\n */\nexport function CepField({\n value,\n onChange,\n onLookup,\n onResolved,\n onNotFound,\n label = 'CEP',\n placeholder = '00000-000',\n error,\n disabled = false,\n debounceMs = 500,\n name = 'postalCode',\n dataTestId,\n copy,\n size, // undefined reaches `Input`, whose own default is `md`\n labelPlacement = 'above',\n autoComplete,\n passwordManagers,\n}: CepFieldProps): React.ReactElement {\n const testId = dataTestId ?? `cep-field-${name}`;\n\n const status = useCepLookup({\n digits: cepDigits(value),\n complete: isValidCep(value),\n disabled,\n debounceMs,\n onLookup,\n onResolved,\n onNotFound,\n });\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => onChange(formatCep(event.target.value)),\n [onChange],\n );\n\n return (\n <FormControl fullWidth>\n {labelPlacement === 'above' && <AboveLabel name={name} label={label} error={error} />}\n <Input\n id={name}\n name={name}\n type=\"text\"\n // On the `<input>`, through `inputProps`: a top-level `inputMode` is a\n // prop `Input` does not recognise, so it landed on the wrapper `div`\n // and the phone kept opening the letter keyboard for eight digits\n // (FUT-1440's CepField row).\n inputProps={inputPropsOf(passwordManagers)}\n autoComplete={autoCompleteOf(autoComplete)}\n size={size}\n // `inside`: the label is the Input's own, drawn in the box and floating\n // up on focus or a value — what every other `Input` in the form does.\n // `above` keeps the stacked `FormLabel`, for callers that never opted in.\n label={insideLabel(label, labelPlacement)}\n placeholder={placeholder}\n value={value}\n error={Boolean(error)}\n disabled={disabled}\n loading={status === 'loading'}\n onChange={handleChange}\n data-testid={testId}\n aria-describedby={`${testId}-status`}\n aria-busy={status === 'loading'}\n />\n {error && (\n <FormMessage error dataTestId={`${testId}-message`}>\n {error}\n </FormMessage>\n )}\n <CepStatus status={status} testId={testId} suppressed={Boolean(error)} copy={copy} />\n </FormControl>\n );\n}\n\nexport default CepField;\n"],"mappings":"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","names":[]}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-6YSGP2WS.js";
|
|
10
10
|
import {
|
|
11
11
|
CepField
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QZRWOF4R.js";
|
|
13
13
|
import {
|
|
14
14
|
CategoryField
|
|
15
15
|
} from "./chunk-6AKDAQSS.js";
|
|
@@ -30,4 +30,4 @@ __export(Fields_exports, {
|
|
|
30
30
|
export {
|
|
31
31
|
Fields_exports
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-N2J24TJ3.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-4XK6JQ4D.js";
|
|
4
4
|
import {
|
|
5
5
|
CepField
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LYVVXC3J.js";
|
|
7
7
|
|
|
8
8
|
// src/components/form/total-form/Fields/CepField.tsx
|
|
9
9
|
import { useCallback, useMemo, useRef } from "react";
|
|
@@ -86,4 +86,4 @@ function CepField2({
|
|
|
86
86
|
export {
|
|
87
87
|
CepField2 as CepField
|
|
88
88
|
};
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-QZRWOF4R.js.map
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
SettingSwitchBlock,
|
|
6
6
|
useSettingSwitchIds
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-44BTMZB6.js";
|
|
8
8
|
import {
|
|
9
9
|
SettingGroupContext
|
|
10
10
|
} from "./chunk-XJQNSMGA.js";
|
|
11
11
|
import {
|
|
12
12
|
partTestId
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-F3UHWLTD.js";
|
|
14
14
|
import {
|
|
15
15
|
dependentsStyles,
|
|
16
16
|
hintStyles,
|
|
@@ -84,4 +84,4 @@ SettingGroup.displayName = "SettingGroup";
|
|
|
84
84
|
export {
|
|
85
85
|
SettingGroup
|
|
86
86
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
//# sourceMappingURL=chunk-RCULGFEH.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
SettingSwitchBlock,
|
|
6
6
|
useSettingSwitchIds
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-44BTMZB6.js";
|
|
8
8
|
import {
|
|
9
9
|
useSettingGroup
|
|
10
10
|
} from "./chunk-XJQNSMGA.js";
|
|
@@ -44,4 +44,4 @@ SettingToggle.displayName = "SettingToggle";
|
|
|
44
44
|
export {
|
|
45
45
|
SettingToggle
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-SSWNJR36.js.map
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
} from "./chunk-SALQ65SM.js";
|
|
4
4
|
import {
|
|
5
5
|
useSummaryInfo
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2C7AWMV7.js";
|
|
7
7
|
import {
|
|
8
8
|
LearnMore,
|
|
9
9
|
PendingSpinner,
|
|
10
10
|
SaveError,
|
|
11
11
|
SettingHeader,
|
|
12
12
|
partTestId
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-F3UHWLTD.js";
|
|
14
14
|
import {
|
|
15
15
|
SETTING_CARD_OPEN_ATTR,
|
|
16
16
|
actionsStyles,
|
|
@@ -170,4 +170,4 @@ SettingCard.displayName = "SettingCard";
|
|
|
170
170
|
export {
|
|
171
171
|
SettingCard
|
|
172
172
|
};
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
173
|
+
//# sourceMappingURL=chunk-XSLF3YGH.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "../chunk-2GTORM5E.js";
|
|
2
2
|
import {
|
|
3
3
|
Chip
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-L2ICH44N.js";
|
|
5
|
+
import "../chunk-44I2KXKW.js";
|
|
6
|
+
import "../chunk-GZBLDPXY.js";
|
|
7
7
|
import "../chunk-BF4FYOAR.js";
|
|
8
8
|
import "../chunk-XJAD6E3V.js";
|
|
9
9
|
import "../chunk-F5H2ZXST.js";
|
package/dist/form/CepField.js
CHANGED
package/dist/form/total-form.js
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "../chunk-CPAJYJUD.js";
|
|
10
10
|
import {
|
|
11
11
|
Fields_exports
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-N2J24TJ3.js";
|
|
13
13
|
import "../chunk-RLTYBV4N.js";
|
|
14
14
|
import {
|
|
15
15
|
TextField
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
import {
|
|
18
18
|
SelectField
|
|
19
19
|
} from "../chunk-6YSGP2WS.js";
|
|
20
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-QZRWOF4R.js";
|
|
21
21
|
import {
|
|
22
22
|
CategoryField
|
|
23
23
|
} from "../chunk-6AKDAQSS.js";
|
|
@@ -34,7 +34,7 @@ import "../chunk-OQW4OERS.js";
|
|
|
34
34
|
import "../chunk-6VTOGR36.js";
|
|
35
35
|
import "../chunk-IYC7NPX7.js";
|
|
36
36
|
import "../chunk-6XLMTOJ3.js";
|
|
37
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-LYVVXC3J.js";
|
|
38
38
|
import "../chunk-WGKBZ7DN.js";
|
|
39
39
|
import "../chunk-JD5BVIM7.js";
|
|
40
40
|
import "../chunk-T77OVQEO.js";
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import "../chunk-QGUNUXTT.js";
|
|
2
2
|
import {
|
|
3
3
|
SettingCard
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-XSLF3YGH.js";
|
|
5
5
|
import {
|
|
6
6
|
SettingToggle
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-SSWNJR36.js";
|
|
8
8
|
import {
|
|
9
9
|
SettingGroup
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-RCULGFEH.js";
|
|
11
11
|
import "../chunk-SALQ65SM.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-44BTMZB6.js";
|
|
13
|
+
import "../chunk-2C7AWMV7.js";
|
|
14
14
|
import "../chunk-XJQNSMGA.js";
|
|
15
15
|
import {
|
|
16
16
|
SETTING_GRID_CONTAINER,
|
|
17
17
|
SettingGrid
|
|
18
|
-
} from "../chunk-
|
|
19
|
-
import "../chunk-
|
|
18
|
+
} from "../chunk-IAPFZJ6I.js";
|
|
19
|
+
import "../chunk-F3UHWLTD.js";
|
|
20
20
|
import "../chunk-UJ7EHEXG.js";
|
|
21
21
|
import "../chunk-KSZ6GH3J.js";
|
|
22
22
|
import "../chunk-RN7UJI7S.js";
|
|
@@ -28,9 +28,9 @@ import "../chunk-Z5WUSI47.js";
|
|
|
28
28
|
import "../chunk-BCWL7HUO.js";
|
|
29
29
|
import "../chunk-QYJ25FWM.js";
|
|
30
30
|
import "../chunk-2GTORM5E.js";
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-L2ICH44N.js";
|
|
32
|
+
import "../chunk-44I2KXKW.js";
|
|
33
|
+
import "../chunk-GZBLDPXY.js";
|
|
34
34
|
import "../chunk-BF4FYOAR.js";
|
|
35
35
|
import "../chunk-4PJ52YBO.js";
|
|
36
36
|
import "../chunk-EIMFA7KP.js";
|
|
@@ -13,7 +13,8 @@ import {
|
|
|
13
13
|
useUiTheme
|
|
14
14
|
} from "../chunks/chunk-ZYSOBULX.js";
|
|
15
15
|
import {
|
|
16
|
-
alpha
|
|
16
|
+
alpha,
|
|
17
|
+
darken
|
|
17
18
|
} from "../chunks/chunk-DNTO2D5M.js";
|
|
18
19
|
|
|
19
20
|
// src/components/data-display/Chip/Chip.native.tsx
|
|
@@ -90,6 +91,7 @@ var DELETE_ICON_ON_COLOR_ALPHA = 0.7;
|
|
|
90
91
|
var OUTLINED_HOVER_ALPHA = 0.04;
|
|
91
92
|
var SOFT_GROUND_ALPHA = 0.14;
|
|
92
93
|
var SOFT_HOVER_ALPHA = 0.22;
|
|
94
|
+
var SOFT_WARNING_LIGHT_DARKEN = 0.2;
|
|
93
95
|
|
|
94
96
|
// src/components/data-display/Chip/Chip.look.native.ts
|
|
95
97
|
var SELECTED_OPACITY = 0.08;
|
|
@@ -122,7 +124,8 @@ function softPaint(theme, color) {
|
|
|
122
124
|
};
|
|
123
125
|
}
|
|
124
126
|
const accent = theme.palette[color];
|
|
125
|
-
const
|
|
127
|
+
const lightInk = color === "warning" ? darken(accent.dark, SOFT_WARNING_LIGHT_DARKEN) : accent.dark;
|
|
128
|
+
const ink = theme.mode === "dark" ? accent.light : lightInk;
|
|
126
129
|
return {
|
|
127
130
|
container: { backgroundColor: alpha(accent.main, SOFT_GROUND_ALPHA) },
|
|
128
131
|
pressed: { backgroundColor: alpha(accent.main, SOFT_HOVER_ALPHA) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/data-display/Chip/Chip.native.tsx","../../../src/components/data-display/Chip/Chip.helpers.ts","../../../src/components/data-display/Chip/Chip.metrics.ts","../../../src/components/data-display/Chip/Chip.look.native.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n Image,\n Pressable,\n Text as RNText,\n View,\n type GestureResponderEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\n\nimport { chipKeyAction, chipRole, isClickable, makeTestId } from './Chip.helpers';\nimport {\n chipAvatarStyle,\n chipContainerStyle,\n chipDeleteSlotStyle,\n chipLabelStyle,\n chipLeadingSlotStyle,\n chipMetrics,\n chipPaint,\n type ChipPaint,\n} from './Chip.look.native';\nimport { chipMuiSize, type ChipSizeMetrics } from './Chip.metrics';\nimport type { ChipProps, ChipVariant } from './Chip.types.native';\nimport { EN_US_UI_LABELS } from '../../../en-US.labels';\nimport { Icon } from '../../../icons/Icon.native';\nimport { webKeyDown, type WebKeyHandler } from '../../../platform/web-keys';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\n\ninterface SlotArgs {\n metrics: ChipSizeMetrics;\n variant: ChipVariant;\n}\n\n/**\n * The leading slot. MUI restyles the icon ELEMENT through a class — 24px, or\n * 18px when small — which a native renderer cannot do to an arbitrary node, so\n * the slot carries the margins and the glyph keeps the size it was given.\n */\nfunction LeadingSlot({\n metrics,\n variant,\n avatar,\n avatarSrc,\n icon,\n testID,\n}: SlotArgs &\n Pick<ChipProps, 'avatar' | 'avatarSrc' | 'icon'> & { testID: string }): React.JSX.Element | null {\n if (avatar) {\n return <View style={chipLeadingSlotStyle(metrics, variant, 'avatar')}>{avatar}</View>;\n }\n if (avatarSrc) {\n return (\n <View style={chipLeadingSlotStyle(metrics, variant, 'avatar')}>\n <Image\n source={{ uri: avatarSrc }}\n style={chipAvatarStyle(metrics)}\n accessibilityIgnoresInvertColors\n />\n </View>\n );\n }\n if (icon) {\n return (\n <View style={chipLeadingSlotStyle(metrics, variant, 'icon')} testID={testID}>\n {icon}\n </View>\n );\n }\n return null;\n}\n\n/** MUI's `deleteIcon`: the `Cancel` glyph, pressable, tucked under the label. */\nfunction DeleteSlot({\n metrics,\n variant,\n color,\n onDelete,\n deleteLabel = EN_US_UI_LABELS.common.delete,\n disabled,\n testID,\n}: SlotArgs & {\n color: string;\n deleteLabel?: string;\n onDelete?: () => void;\n disabled?: boolean;\n testID: string;\n}): React.JSX.Element {\n return (\n <Pressable\n testID={testID}\n role=\"button\"\n aria-label={deleteLabel}\n disabled={disabled}\n onPress={onDelete}\n style={chipDeleteSlotStyle(metrics, variant)}\n >\n <Icon name=\"Cancel\" size={metrics.deleteSize} color={color} />\n </Pressable>\n );\n}\n\ninterface ChipBodyProps extends SlotArgs {\n paint: ChipPaint;\n label: string;\n avatar?: ChipProps['avatar'];\n avatarSrc?: string;\n icon?: ChipProps['icon'];\n deletable?: boolean;\n disabled?: boolean;\n onDelete?: () => void;\n deleteLabel?: string;\n idFor: (suffix: string) => string;\n}\n\n/** Everything inside the pill: the leading slot, the label, the delete button. */\nfunction ChipBody({\n metrics,\n variant,\n paint,\n label,\n avatar,\n avatarSrc,\n icon,\n deletable,\n disabled,\n onDelete,\n deleteLabel,\n idFor,\n}: ChipBodyProps): React.JSX.Element {\n const theme = useUiTheme();\n return (\n <>\n <LeadingSlot\n metrics={metrics}\n variant={variant}\n avatar={avatar}\n avatarSrc={avatarSrc}\n icon={icon}\n testID={idFor('icon')}\n />\n <RNText\n testID={idFor('label')}\n numberOfLines={1}\n style={[chipLabelStyle(theme, metrics, variant), paint.label]}\n >\n {label}\n </RNText>\n {deletable ? (\n <DeleteSlot\n metrics={metrics}\n variant={variant}\n color={paint.deleteColor}\n onDelete={onDelete}\n deleteLabel={deleteLabel}\n disabled={disabled}\n testID={idFor('delete')}\n />\n ) : null}\n </>\n );\n}\n\ninterface KeyDownArgs {\n role: 'option' | 'button' | undefined;\n disabled?: boolean;\n deletable?: boolean;\n selectable?: boolean;\n /** Whether the chip acts at all, under either handler spelling. */\n acts?: unknown;\n onClick?: () => void;\n onDelete?: () => void;\n}\n\n/**\n * The half of the chip's keyboard contract react-native-web does NOT already\n * cover. Its `Pressable` turns Enter into a press on any role, and Space into\n * one only on a `button` role (`isValidKeyPress`) — so a selectable chip, which\n * is an `option`, needs Space wiring here, and Delete/Backspace is never its.\n * On a device none of this is ever called.\n */\nfunction makeChipKeyDown(args: KeyDownArgs): WebKeyHandler {\n return (event) => {\n const action = chipKeyAction(event.key, { ...args, onClick: args.acts });\n if (action === null) return;\n if (action === 'delete') {\n event.preventDefault();\n args.onDelete?.();\n return;\n }\n if (event.key === 'Enter' || args.role === 'button') return;\n event.preventDefault();\n args.onClick?.();\n };\n}\n\n/**\n * The native `Chip`: MUI's pill on a `Pressable`, reachable by keyboard only\n * when it acts — which is the same rule MUI applies through `clickable`.\n */\nexport const Chip = React.forwardRef<View, ChipProps>((props, ref) => {\n const {\n label,\n variant = 'filled',\n size = 'md',\n color = 'primary',\n avatarSrc,\n avatar,\n icon,\n selected,\n selectable,\n deletable,\n disabled,\n onClick,\n onPress,\n onDelete,\n deleteLabel,\n dataTestId,\n testID,\n style,\n ...rest\n } = props;\n const theme = useUiTheme();\n const chipId = testID ?? dataTestId;\n const metrics = chipMetrics(chipMuiSize(size));\n const paint = chipPaint(theme, variant, color, Boolean(selected));\n const acts = onClick ?? onPress;\n const clickable = isClickable(disabled, acts, selectable);\n const role = chipRole(selectable, acts);\n\n const base: StyleProp<ViewStyle> = [\n chipContainerStyle(metrics, Boolean(disabled)),\n paint.container,\n style,\n ];\n\n const press = (event: GestureResponderEvent): void => {\n onClick?.();\n onPress?.(event);\n };\n\n return (\n <Pressable\n ref={ref}\n testID={chipId || 'chip'}\n role={role}\n aria-selected={selectable ? selected : undefined}\n disabled={disabled}\n // MUI makes only a clickable chip keyboard-reachable; react-native-web\n // would otherwise give every Pressable a tab stop.\n tabIndex={clickable ? 0 : -1}\n onPress={clickable ? press : undefined}\n {...webKeyDown(\n makeChipKeyDown({ role, disabled, deletable, selectable, acts, onClick, onDelete }),\n )}\n style={(state) => [base, state.pressed && clickable ? paint.pressed : null]}\n {...rest}\n >\n <ChipBody\n metrics={metrics}\n variant={variant}\n paint={paint}\n label={label}\n avatar={avatar}\n avatarSrc={avatarSrc}\n icon={icon}\n deletable={deletable}\n disabled={disabled}\n onDelete={onDelete}\n deleteLabel={deleteLabel}\n idFor={makeTestId(chipId)}\n />\n </Pressable>\n );\n});\n\nChip.displayName = 'Chip';\n","/** `${dataTestId}-label`, or `chip-label` when the caller named nothing. */\nexport const makeTestId =\n (dataTestId?: string) =>\n (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `chip-${suffix}`;\n\n/** `option` when the chip belongs to a selectable set, `button` when it merely acts. */\nexport const chipRole = (\n selectable?: boolean,\n // `unknown`, because the two renderers hand this a differently-typed handler\n // and all that is asked of it here is whether the caller supplied one.\n onClick?: unknown,\n): 'option' | 'button' | undefined => {\n if (selectable) return 'option';\n return onClick ? 'button' : undefined;\n};\n\nexport const isClickable = (\n disabled?: boolean,\n onClick?: unknown,\n selectable?: boolean,\n): boolean => !disabled && (Boolean(onClick) || Boolean(selectable));\n\n/** What a key press on a chip means, if anything. */\nexport type ChipKeyAction = 'delete' | 'activate' | null;\n\nconst DELETE_KEYS = new Set(['Delete', 'Backspace']);\nconst ACTIVATE_KEYS = new Set(['Enter', ' ']);\n\nexport interface ChipKeyArgs {\n disabled?: boolean;\n deletable?: boolean;\n selectable?: boolean;\n onClick?: unknown;\n onDelete?: unknown;\n}\n\n/**\n * A chip is not a native control, so the two keyboard conventions it stands in\n * for are decided by hand: Delete/Backspace removes it, Enter/Space activates\n * it. Both renderers read this one decision — the web wires it to the DOM\n * handler, the native half to react-native-web's (see `Chip.native.tsx`).\n */\nexport function chipKeyAction(key: string, a: ChipKeyArgs): ChipKeyAction {\n if (a.disabled) return null;\n if (DELETE_KEYS.has(key) && a.deletable && a.onDelete) return 'delete';\n if (ACTIVATE_KEYS.has(key) && (a.onClick || a.selectable)) return 'activate';\n return null;\n}\n","import type { ChipSize } from './Chip.base';\n\n/**\n * THE NUMBERS BOTH `Chip` RENDERERS DRAW WITH.\n *\n * Most of them are MUI's own `Chip` geometry rather than anything this package\n * writes — the 32px pill, the 13px label, the 5px/-6px icon tuck — because the\n * web half hands the drawing to `MuiChip` and the native half has to draw it.\n * Restated here once, read by both, so the two cannot disagree about a chip's\n * height. What THIS package adds (`Chip.styles.tsx`'s hover lift, its shadow\n * and its transition) is at the bottom, and the web derives its CSS from it.\n */\n\n/** MUI draws two chip sizes; ours are the house abbreviations for them. */\nexport type ChipMuiSize = 'small' | 'medium';\n\nexport const chipMuiSize = (size: ChipSize): ChipMuiSize =>\n size === 'xs' || size === 'sm' ? 'small' : 'medium';\n\nexport interface ChipSizeMetrics {\n height: number;\n /** The label's own side padding, filled and outlined (outlined is 1px tighter). */\n labelPadding: number;\n labelPaddingOutlined: number;\n /** The leading icon's box, and how far it tucks under the label. */\n iconSize: number;\n iconMarginLeft: number;\n iconMarginLeftOutlined: number;\n iconMarginRight: number;\n /** The avatar's round box and the type inside it. */\n avatarSize: number;\n avatarFontSize: number;\n avatarMarginLeft: number;\n avatarMarginLeftOutlined: number;\n avatarMarginRight: number;\n /** The delete glyph's box and its own tuck. */\n deleteSize: number;\n deleteMarginLeft: number;\n deleteMarginRight: number;\n deleteMarginRightOutlined: number;\n}\n\nexport const CHIP_SIZES: Record<ChipMuiSize, ChipSizeMetrics> = {\n medium: {\n height: 32,\n labelPadding: 12,\n labelPaddingOutlined: 11,\n iconSize: 24,\n iconMarginLeft: 5,\n iconMarginLeftOutlined: 4,\n iconMarginRight: -6,\n avatarSize: 24,\n avatarFontSize: 12,\n avatarMarginLeft: 5,\n avatarMarginLeftOutlined: 4,\n avatarMarginRight: -6,\n deleteSize: 22,\n deleteMarginLeft: -6,\n deleteMarginRight: 5,\n deleteMarginRightOutlined: 5,\n },\n small: {\n height: 24,\n labelPadding: 8,\n labelPaddingOutlined: 7,\n iconSize: 18,\n iconMarginLeft: 4,\n iconMarginLeftOutlined: 2,\n iconMarginRight: -4,\n avatarSize: 18,\n avatarFontSize: 10,\n avatarMarginLeft: 4,\n avatarMarginLeftOutlined: 2,\n avatarMarginRight: -4,\n deleteSize: 16,\n deleteMarginLeft: -4,\n deleteMarginRight: 4,\n deleteMarginRightOutlined: 3,\n },\n};\n\n/** MUI's `borderRadius: 32 / 2` — a pill at either height, since the box clamps it. */\nexport const CHIP_RADIUS = 16;\n/** The label's type, in px. MUI sets it on the root and the small size keeps it. */\nexport const CHIP_FONT_SIZE = 13;\n/** MUI's `palette.action.disabledOpacity`. */\nexport const CHIP_DISABLED_OPACITY = 0.38;\n/** An outlined chip's hairline: the hue at 0.7, or the grey ramp for `neutral`. */\nexport const OUTLINED_BORDER_ALPHA = 0.7;\n/** The delete glyph over an unaccented chip, and over a coloured one. */\nexport const DELETE_ICON_ALPHA = 0.26;\nexport const DELETE_ICON_ON_COLOR_ALPHA = 0.7;\n/** MUI's `action.hoverOpacity`, the wash a clickable outlined chip takes. */\nexport const OUTLINED_HOVER_ALPHA = 0.04;\n\n/* ── What this package adds on top of MUI's chip ──────────────────────────── */\n\n/** The lift a clickable chip takes on hover, and the shadow under it. */\nexport const HOVER_LIFT_PX = 1;\nexport const HOVER_SHADOW = { offsetY: 4, blur: 12, alphaLight: 0.15, alphaDark: 0.3 } as const;\nexport const CHIP_TRANSITION_MS = 200;\nexport const CHIP_TRANSITION_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n/** A soft chip's ground: the colour at this alpha over the page. */\nexport const SOFT_GROUND_ALPHA = 0.14;\n/** A soft chip's hover ground. */\nexport const SOFT_HOVER_ALPHA = 0.22;\n/** A soft chip's keyboard-focus ring, in design px (read through `rem`). */\nexport const SOFT_FOCUS_RING = { width: 2, offset: 2 } as const;\n","import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';\n\nimport type { ChipColor, ChipVariant } from './Chip.base';\nimport {\n CHIP_DISABLED_OPACITY,\n CHIP_FONT_SIZE,\n CHIP_RADIUS,\n CHIP_SIZES,\n DELETE_ICON_ALPHA,\n DELETE_ICON_ON_COLOR_ALPHA,\n OUTLINED_BORDER_ALPHA,\n OUTLINED_HOVER_ALPHA,\n SOFT_GROUND_ALPHA,\n SOFT_HOVER_ALPHA,\n type ChipMuiSize,\n type ChipSizeMetrics,\n} from './Chip.metrics';\nimport { alpha } from '../../../tokens/color';\nimport type { UiTheme } from '../../../tokens/theme';\n\n/** MUI's `action.selectedOpacity`; its hover wash adds `OUTLINED_HOVER_ALPHA` on top. */\nconst SELECTED_OPACITY = 0.08;\n\nexport interface ChipPaint {\n container: ViewStyle;\n /** The web's `:hover` background, which touch has no equivalent of. */\n pressed: ViewStyle;\n label: TextStyle;\n deleteColor: string;\n}\n\n/** `neutral` is MUI's `default`: no accent, the ink and the ramp instead. */\nconst isAccented = (color: ChipColor): boolean => color !== 'neutral';\n\n/** An unaccented chip's hairline, which follows the mode rather than a hue. */\nconst neutralBorder = (theme: UiTheme): string =>\n theme.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[700];\n\nfunction filledPaint(theme: UiTheme, color: ChipColor): ChipPaint {\n if (!isAccented(color)) {\n return {\n container: { backgroundColor: theme.palette.action.selected },\n pressed: { backgroundColor: alpha(theme.palette.action.selected, SELECTED_OPACITY + OUTLINED_HOVER_ALPHA) },\n label: { color: theme.palette.text.primary },\n deleteColor: alpha(theme.palette.text.primary, DELETE_ICON_ALPHA),\n };\n }\n const accent = theme.palette[color];\n return {\n container: { backgroundColor: accent.main },\n pressed: { backgroundColor: accent.dark },\n label: { color: accent.contrastText },\n deleteColor: alpha(accent.contrastText, DELETE_ICON_ON_COLOR_ALPHA),\n };\n}\n\nfunction softPaint(theme: UiTheme, color: ChipColor): ChipPaint {\n if (!isAccented(color)) {\n return {\n container: { backgroundColor: theme.palette.action.selected },\n pressed: { backgroundColor: theme.palette.action.hover },\n label: { color: theme.palette.text.secondary, fontWeight: '600' },\n deleteColor: alpha(theme.palette.text.secondary, DELETE_ICON_ALPHA),\n };\n }\n const accent = theme.palette[color];\n // The ink that reads on a 14% tint: `dark` over a light page, `light` over a dark one.\n const ink = theme.mode === 'dark' ? accent.light : accent.dark;\n return {\n container: { backgroundColor: alpha(accent.main, SOFT_GROUND_ALPHA) },\n pressed: { backgroundColor: alpha(accent.main, SOFT_HOVER_ALPHA) },\n label: { color: ink, fontWeight: '600' },\n deleteColor: ink,\n };\n}\n\nfunction outlinedPaint(theme: UiTheme, color: ChipColor): ChipPaint {\n const border: ViewStyle = { backgroundColor: 'transparent', borderWidth: 1, borderStyle: 'solid' };\n if (!isAccented(color)) {\n return {\n container: { ...border, borderColor: neutralBorder(theme) },\n pressed: { backgroundColor: theme.palette.action.hover },\n label: { color: theme.palette.text.primary },\n deleteColor: alpha(theme.palette.text.primary, DELETE_ICON_ALPHA),\n };\n }\n const accent = theme.palette[color];\n return {\n container: { ...border, borderColor: alpha(accent.main, OUTLINED_BORDER_ALPHA) },\n pressed: { backgroundColor: alpha(accent.main, OUTLINED_HOVER_ALPHA) },\n label: { color: accent.main },\n deleteColor: alpha(accent.main, OUTLINED_BORDER_ALPHA),\n };\n}\n\n/**\n * What MUI's chip paints, as React Native styles. `selected` tints an OUTLINED\n * chip with `action.selected` — a filled one is already solid, which is what\n * `Chip.styles.tsx` decided for the web.\n */\nexport function chipPaint(\n theme: UiTheme,\n variant: ChipVariant,\n color: ChipColor,\n selected: boolean,\n): ChipPaint {\n const paint =\n variant === 'outlined' ? outlinedPaint(theme, color) : variant === 'soft' ? softPaint(theme, color) : filledPaint(theme, color);\n if (variant !== 'outlined' || !selected) return paint;\n return {\n ...paint,\n container: { ...paint.container, backgroundColor: theme.palette.action.selected },\n };\n}\n\n/** The pill itself: MUI's height, its 16px radius, and the disabled fade. */\nexport function chipContainerStyle(metrics: ChipSizeMetrics, disabled: boolean): ViewStyle {\n return {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n alignSelf: 'flex-start',\n maxWidth: '100%',\n height: metrics.height,\n borderRadius: CHIP_RADIUS,\n ...(disabled ? { opacity: CHIP_DISABLED_OPACITY } : {}),\n };\n}\n\n/** The label: MUI's 13px, padded by the variant, clipped rather than wrapped. */\nexport function chipLabelStyle(\n theme: UiTheme,\n metrics: ChipSizeMetrics,\n variant: ChipVariant,\n): TextStyle {\n const padding = variant === 'outlined' ? metrics.labelPaddingOutlined : metrics.labelPadding;\n return {\n fontFamily: theme.typography.fontFamily,\n fontSize: CHIP_FONT_SIZE,\n paddingLeft: padding,\n paddingRight: padding,\n flexShrink: 1,\n };\n}\n\n/** The margins MUI gives the leading slot, tucking it under the label's padding. */\nexport function chipLeadingSlotStyle(\n metrics: ChipSizeMetrics,\n variant: ChipVariant,\n slot: 'icon' | 'avatar',\n): ViewStyle {\n const outlined = variant === 'outlined';\n const marginLeft =\n slot === 'icon'\n ? (outlined ? metrics.iconMarginLeftOutlined : metrics.iconMarginLeft)\n : (outlined ? metrics.avatarMarginLeftOutlined : metrics.avatarMarginLeft);\n return {\n marginLeft,\n marginRight: slot === 'icon' ? metrics.iconMarginRight : metrics.avatarMarginRight,\n alignItems: 'center',\n justifyContent: 'center',\n };\n}\n\n/** The delete glyph's own tuck, one pixel tighter when the chip is outlined. */\nexport function chipDeleteSlotStyle(metrics: ChipSizeMetrics, variant: ChipVariant): ViewStyle {\n return {\n marginLeft: metrics.deleteMarginLeft,\n marginRight:\n variant === 'outlined' ? metrics.deleteMarginRightOutlined : metrics.deleteMarginRight,\n alignItems: 'center',\n justifyContent: 'center',\n };\n}\n\n/** The round avatar box MUI draws for an `avatarSrc`. */\nexport function chipAvatarStyle(metrics: ChipSizeMetrics): ImageStyle {\n return {\n width: metrics.avatarSize,\n height: metrics.avatarSize,\n borderRadius: metrics.avatarSize / 2,\n overflow: 'hidden',\n };\n}\n\nexport const chipMetrics = (size: ChipMuiSize): ChipSizeMetrics => CHIP_SIZES[size];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/data-display/Chip/Chip.native.tsx","../../../src/components/data-display/Chip/Chip.helpers.ts","../../../src/components/data-display/Chip/Chip.metrics.ts","../../../src/components/data-display/Chip/Chip.look.native.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n Image,\n Pressable,\n Text as RNText,\n View,\n type GestureResponderEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\n\nimport { chipKeyAction, chipRole, isClickable, makeTestId } from './Chip.helpers';\nimport {\n chipAvatarStyle,\n chipContainerStyle,\n chipDeleteSlotStyle,\n chipLabelStyle,\n chipLeadingSlotStyle,\n chipMetrics,\n chipPaint,\n type ChipPaint,\n} from './Chip.look.native';\nimport { chipMuiSize, type ChipSizeMetrics } from './Chip.metrics';\nimport type { ChipProps, ChipVariant } from './Chip.types.native';\nimport { EN_US_UI_LABELS } from '../../../en-US.labels';\nimport { Icon } from '../../../icons/Icon.native';\nimport { webKeyDown, type WebKeyHandler } from '../../../platform/web-keys';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\n\ninterface SlotArgs {\n metrics: ChipSizeMetrics;\n variant: ChipVariant;\n}\n\n/**\n * The leading slot. MUI restyles the icon ELEMENT through a class — 24px, or\n * 18px when small — which a native renderer cannot do to an arbitrary node, so\n * the slot carries the margins and the glyph keeps the size it was given.\n */\nfunction LeadingSlot({\n metrics,\n variant,\n avatar,\n avatarSrc,\n icon,\n testID,\n}: SlotArgs &\n Pick<ChipProps, 'avatar' | 'avatarSrc' | 'icon'> & { testID: string }): React.JSX.Element | null {\n if (avatar) {\n return <View style={chipLeadingSlotStyle(metrics, variant, 'avatar')}>{avatar}</View>;\n }\n if (avatarSrc) {\n return (\n <View style={chipLeadingSlotStyle(metrics, variant, 'avatar')}>\n <Image\n source={{ uri: avatarSrc }}\n style={chipAvatarStyle(metrics)}\n accessibilityIgnoresInvertColors\n />\n </View>\n );\n }\n if (icon) {\n return (\n <View style={chipLeadingSlotStyle(metrics, variant, 'icon')} testID={testID}>\n {icon}\n </View>\n );\n }\n return null;\n}\n\n/** MUI's `deleteIcon`: the `Cancel` glyph, pressable, tucked under the label. */\nfunction DeleteSlot({\n metrics,\n variant,\n color,\n onDelete,\n deleteLabel = EN_US_UI_LABELS.common.delete,\n disabled,\n testID,\n}: SlotArgs & {\n color: string;\n deleteLabel?: string;\n onDelete?: () => void;\n disabled?: boolean;\n testID: string;\n}): React.JSX.Element {\n return (\n <Pressable\n testID={testID}\n role=\"button\"\n aria-label={deleteLabel}\n disabled={disabled}\n onPress={onDelete}\n style={chipDeleteSlotStyle(metrics, variant)}\n >\n <Icon name=\"Cancel\" size={metrics.deleteSize} color={color} />\n </Pressable>\n );\n}\n\ninterface ChipBodyProps extends SlotArgs {\n paint: ChipPaint;\n label: string;\n avatar?: ChipProps['avatar'];\n avatarSrc?: string;\n icon?: ChipProps['icon'];\n deletable?: boolean;\n disabled?: boolean;\n onDelete?: () => void;\n deleteLabel?: string;\n idFor: (suffix: string) => string;\n}\n\n/** Everything inside the pill: the leading slot, the label, the delete button. */\nfunction ChipBody({\n metrics,\n variant,\n paint,\n label,\n avatar,\n avatarSrc,\n icon,\n deletable,\n disabled,\n onDelete,\n deleteLabel,\n idFor,\n}: ChipBodyProps): React.JSX.Element {\n const theme = useUiTheme();\n return (\n <>\n <LeadingSlot\n metrics={metrics}\n variant={variant}\n avatar={avatar}\n avatarSrc={avatarSrc}\n icon={icon}\n testID={idFor('icon')}\n />\n <RNText\n testID={idFor('label')}\n numberOfLines={1}\n style={[chipLabelStyle(theme, metrics, variant), paint.label]}\n >\n {label}\n </RNText>\n {deletable ? (\n <DeleteSlot\n metrics={metrics}\n variant={variant}\n color={paint.deleteColor}\n onDelete={onDelete}\n deleteLabel={deleteLabel}\n disabled={disabled}\n testID={idFor('delete')}\n />\n ) : null}\n </>\n );\n}\n\ninterface KeyDownArgs {\n role: 'option' | 'button' | undefined;\n disabled?: boolean;\n deletable?: boolean;\n selectable?: boolean;\n /** Whether the chip acts at all, under either handler spelling. */\n acts?: unknown;\n onClick?: () => void;\n onDelete?: () => void;\n}\n\n/**\n * The half of the chip's keyboard contract react-native-web does NOT already\n * cover. Its `Pressable` turns Enter into a press on any role, and Space into\n * one only on a `button` role (`isValidKeyPress`) — so a selectable chip, which\n * is an `option`, needs Space wiring here, and Delete/Backspace is never its.\n * On a device none of this is ever called.\n */\nfunction makeChipKeyDown(args: KeyDownArgs): WebKeyHandler {\n return (event) => {\n const action = chipKeyAction(event.key, { ...args, onClick: args.acts });\n if (action === null) return;\n if (action === 'delete') {\n event.preventDefault();\n args.onDelete?.();\n return;\n }\n if (event.key === 'Enter' || args.role === 'button') return;\n event.preventDefault();\n args.onClick?.();\n };\n}\n\n/**\n * The native `Chip`: MUI's pill on a `Pressable`, reachable by keyboard only\n * when it acts — which is the same rule MUI applies through `clickable`.\n */\nexport const Chip = React.forwardRef<View, ChipProps>((props, ref) => {\n const {\n label,\n variant = 'filled',\n size = 'md',\n color = 'primary',\n avatarSrc,\n avatar,\n icon,\n selected,\n selectable,\n deletable,\n disabled,\n onClick,\n onPress,\n onDelete,\n deleteLabel,\n dataTestId,\n testID,\n style,\n ...rest\n } = props;\n const theme = useUiTheme();\n const chipId = testID ?? dataTestId;\n const metrics = chipMetrics(chipMuiSize(size));\n const paint = chipPaint(theme, variant, color, Boolean(selected));\n const acts = onClick ?? onPress;\n const clickable = isClickable(disabled, acts, selectable);\n const role = chipRole(selectable, acts);\n\n const base: StyleProp<ViewStyle> = [\n chipContainerStyle(metrics, Boolean(disabled)),\n paint.container,\n style,\n ];\n\n const press = (event: GestureResponderEvent): void => {\n onClick?.();\n onPress?.(event);\n };\n\n return (\n <Pressable\n ref={ref}\n testID={chipId || 'chip'}\n role={role}\n aria-selected={selectable ? selected : undefined}\n disabled={disabled}\n // MUI makes only a clickable chip keyboard-reachable; react-native-web\n // would otherwise give every Pressable a tab stop.\n tabIndex={clickable ? 0 : -1}\n onPress={clickable ? press : undefined}\n {...webKeyDown(\n makeChipKeyDown({ role, disabled, deletable, selectable, acts, onClick, onDelete }),\n )}\n style={(state) => [base, state.pressed && clickable ? paint.pressed : null]}\n {...rest}\n >\n <ChipBody\n metrics={metrics}\n variant={variant}\n paint={paint}\n label={label}\n avatar={avatar}\n avatarSrc={avatarSrc}\n icon={icon}\n deletable={deletable}\n disabled={disabled}\n onDelete={onDelete}\n deleteLabel={deleteLabel}\n idFor={makeTestId(chipId)}\n />\n </Pressable>\n );\n});\n\nChip.displayName = 'Chip';\n","/** `${dataTestId}-label`, or `chip-label` when the caller named nothing. */\nexport const makeTestId =\n (dataTestId?: string) =>\n (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `chip-${suffix}`;\n\n/** `option` when the chip belongs to a selectable set, `button` when it merely acts. */\nexport const chipRole = (\n selectable?: boolean,\n // `unknown`, because the two renderers hand this a differently-typed handler\n // and all that is asked of it here is whether the caller supplied one.\n onClick?: unknown,\n): 'option' | 'button' | undefined => {\n if (selectable) return 'option';\n return onClick ? 'button' : undefined;\n};\n\nexport const isClickable = (\n disabled?: boolean,\n onClick?: unknown,\n selectable?: boolean,\n): boolean => !disabled && (Boolean(onClick) || Boolean(selectable));\n\n/** What a key press on a chip means, if anything. */\nexport type ChipKeyAction = 'delete' | 'activate' | null;\n\nconst DELETE_KEYS = new Set(['Delete', 'Backspace']);\nconst ACTIVATE_KEYS = new Set(['Enter', ' ']);\n\nexport interface ChipKeyArgs {\n disabled?: boolean;\n deletable?: boolean;\n selectable?: boolean;\n onClick?: unknown;\n onDelete?: unknown;\n}\n\n/**\n * A chip is not a native control, so the two keyboard conventions it stands in\n * for are decided by hand: Delete/Backspace removes it, Enter/Space activates\n * it. Both renderers read this one decision — the web wires it to the DOM\n * handler, the native half to react-native-web's (see `Chip.native.tsx`).\n */\nexport function chipKeyAction(key: string, a: ChipKeyArgs): ChipKeyAction {\n if (a.disabled) return null;\n if (DELETE_KEYS.has(key) && a.deletable && a.onDelete) return 'delete';\n if (ACTIVATE_KEYS.has(key) && (a.onClick || a.selectable)) return 'activate';\n return null;\n}\n","import type { ChipSize } from './Chip.base';\n\n/**\n * THE NUMBERS BOTH `Chip` RENDERERS DRAW WITH.\n *\n * Most of them are MUI's own `Chip` geometry rather than anything this package\n * writes — the 32px pill, the 13px label, the 5px/-6px icon tuck — because the\n * web half hands the drawing to `MuiChip` and the native half has to draw it.\n * Restated here once, read by both, so the two cannot disagree about a chip's\n * height. What THIS package adds (`Chip.styles.tsx`'s hover lift, its shadow\n * and its transition) is at the bottom, and the web derives its CSS from it.\n */\n\n/** MUI draws two chip sizes; ours are the house abbreviations for them. */\nexport type ChipMuiSize = 'small' | 'medium';\n\nexport const chipMuiSize = (size: ChipSize): ChipMuiSize =>\n size === 'xs' || size === 'sm' ? 'small' : 'medium';\n\nexport interface ChipSizeMetrics {\n height: number;\n /** The label's own side padding, filled and outlined (outlined is 1px tighter). */\n labelPadding: number;\n labelPaddingOutlined: number;\n /** The leading icon's box, and how far it tucks under the label. */\n iconSize: number;\n iconMarginLeft: number;\n iconMarginLeftOutlined: number;\n iconMarginRight: number;\n /** The avatar's round box and the type inside it. */\n avatarSize: number;\n avatarFontSize: number;\n avatarMarginLeft: number;\n avatarMarginLeftOutlined: number;\n avatarMarginRight: number;\n /** The delete glyph's box and its own tuck. */\n deleteSize: number;\n deleteMarginLeft: number;\n deleteMarginRight: number;\n deleteMarginRightOutlined: number;\n}\n\nexport const CHIP_SIZES: Record<ChipMuiSize, ChipSizeMetrics> = {\n medium: {\n height: 32,\n labelPadding: 12,\n labelPaddingOutlined: 11,\n iconSize: 24,\n iconMarginLeft: 5,\n iconMarginLeftOutlined: 4,\n iconMarginRight: -6,\n avatarSize: 24,\n avatarFontSize: 12,\n avatarMarginLeft: 5,\n avatarMarginLeftOutlined: 4,\n avatarMarginRight: -6,\n deleteSize: 22,\n deleteMarginLeft: -6,\n deleteMarginRight: 5,\n deleteMarginRightOutlined: 5,\n },\n small: {\n height: 24,\n labelPadding: 8,\n labelPaddingOutlined: 7,\n iconSize: 18,\n iconMarginLeft: 4,\n iconMarginLeftOutlined: 2,\n iconMarginRight: -4,\n avatarSize: 18,\n avatarFontSize: 10,\n avatarMarginLeft: 4,\n avatarMarginLeftOutlined: 2,\n avatarMarginRight: -4,\n deleteSize: 16,\n deleteMarginLeft: -4,\n deleteMarginRight: 4,\n deleteMarginRightOutlined: 3,\n },\n};\n\n/** MUI's `borderRadius: 32 / 2` — a pill at either height, since the box clamps it. */\nexport const CHIP_RADIUS = 16;\n/** The label's type, in px. MUI sets it on the root and the small size keeps it. */\nexport const CHIP_FONT_SIZE = 13;\n/** MUI's `palette.action.disabledOpacity`. */\nexport const CHIP_DISABLED_OPACITY = 0.38;\n/** An outlined chip's hairline: the hue at 0.7, or the grey ramp for `neutral`. */\nexport const OUTLINED_BORDER_ALPHA = 0.7;\n/** The delete glyph over an unaccented chip, and over a coloured one. */\nexport const DELETE_ICON_ALPHA = 0.26;\nexport const DELETE_ICON_ON_COLOR_ALPHA = 0.7;\n/** MUI's `action.hoverOpacity`, the wash a clickable outlined chip takes. */\nexport const OUTLINED_HOVER_ALPHA = 0.04;\n\n/* ── What this package adds on top of MUI's chip ──────────────────────────── */\n\n/** The lift a clickable chip takes on hover, and the shadow under it. */\nexport const HOVER_LIFT_PX = 1;\nexport const HOVER_SHADOW = { offsetY: 4, blur: 12, alphaLight: 0.15, alphaDark: 0.3 } as const;\nexport const CHIP_TRANSITION_MS = 200;\nexport const CHIP_TRANSITION_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';\n\n/** A soft chip's ground: the colour at this alpha over the page. */\nexport const SOFT_GROUND_ALPHA = 0.14;\n/** A soft chip's hover ground. */\nexport const SOFT_HOVER_ALPHA = 0.22;\n/**\n * How much a light-mode soft WARNING ink darkens its `dark` step (FUT-4464). With\n * the default theme, `warning.dark` (#e65100) on its 14% tint is 3.25:1; darkened\n * by 0.2 it is 4.77:1. The other five colours clear 4.5:1 on `dark` as it is.\n */\nexport const SOFT_WARNING_LIGHT_DARKEN = 0.2;\n/** A soft chip's keyboard-focus ring, in design px (read through `rem`). */\nexport const SOFT_FOCUS_RING = { width: 2, offset: 2 } as const;\n","import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';\n\nimport type { ChipColor, ChipVariant } from './Chip.base';\nimport {\n CHIP_DISABLED_OPACITY,\n CHIP_FONT_SIZE,\n CHIP_RADIUS,\n CHIP_SIZES,\n DELETE_ICON_ALPHA,\n DELETE_ICON_ON_COLOR_ALPHA,\n OUTLINED_BORDER_ALPHA,\n OUTLINED_HOVER_ALPHA,\n SOFT_GROUND_ALPHA,\n SOFT_HOVER_ALPHA,\n SOFT_WARNING_LIGHT_DARKEN,\n type ChipMuiSize,\n type ChipSizeMetrics,\n} from './Chip.metrics';\nimport { alpha, darken } from '../../../tokens/color';\nimport type { UiTheme } from '../../../tokens/theme';\n\n/** MUI's `action.selectedOpacity`; its hover wash adds `OUTLINED_HOVER_ALPHA` on top. */\nconst SELECTED_OPACITY = 0.08;\n\nexport interface ChipPaint {\n container: ViewStyle;\n /** The web's `:hover` background, which touch has no equivalent of. */\n pressed: ViewStyle;\n label: TextStyle;\n deleteColor: string;\n}\n\n/** `neutral` is MUI's `default`: no accent, the ink and the ramp instead. */\nconst isAccented = (color: ChipColor): boolean => color !== 'neutral';\n\n/** An unaccented chip's hairline, which follows the mode rather than a hue. */\nconst neutralBorder = (theme: UiTheme): string =>\n theme.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[700];\n\nfunction filledPaint(theme: UiTheme, color: ChipColor): ChipPaint {\n if (!isAccented(color)) {\n return {\n container: { backgroundColor: theme.palette.action.selected },\n pressed: { backgroundColor: alpha(theme.palette.action.selected, SELECTED_OPACITY + OUTLINED_HOVER_ALPHA) },\n label: { color: theme.palette.text.primary },\n deleteColor: alpha(theme.palette.text.primary, DELETE_ICON_ALPHA),\n };\n }\n const accent = theme.palette[color];\n return {\n container: { backgroundColor: accent.main },\n pressed: { backgroundColor: accent.dark },\n label: { color: accent.contrastText },\n deleteColor: alpha(accent.contrastText, DELETE_ICON_ON_COLOR_ALPHA),\n };\n}\n\nfunction softPaint(theme: UiTheme, color: ChipColor): ChipPaint {\n if (!isAccented(color)) {\n return {\n container: { backgroundColor: theme.palette.action.selected },\n pressed: { backgroundColor: theme.palette.action.hover },\n label: { color: theme.palette.text.secondary, fontWeight: '600' },\n deleteColor: alpha(theme.palette.text.secondary, DELETE_ICON_ALPHA),\n };\n }\n const accent = theme.palette[color];\n // The ink that reads on a 14% tint: `dark` over a light page, `light` over a dark\n // one; a light-mode warning darkens `dark` further, as the web does (FUT-4464).\n const lightInk = color === 'warning' ? darken(accent.dark, SOFT_WARNING_LIGHT_DARKEN) : accent.dark;\n const ink = theme.mode === 'dark' ? accent.light : lightInk;\n return {\n container: { backgroundColor: alpha(accent.main, SOFT_GROUND_ALPHA) },\n pressed: { backgroundColor: alpha(accent.main, SOFT_HOVER_ALPHA) },\n label: { color: ink, fontWeight: '600' },\n deleteColor: ink,\n };\n}\n\nfunction outlinedPaint(theme: UiTheme, color: ChipColor): ChipPaint {\n const border: ViewStyle = { backgroundColor: 'transparent', borderWidth: 1, borderStyle: 'solid' };\n if (!isAccented(color)) {\n return {\n container: { ...border, borderColor: neutralBorder(theme) },\n pressed: { backgroundColor: theme.palette.action.hover },\n label: { color: theme.palette.text.primary },\n deleteColor: alpha(theme.palette.text.primary, DELETE_ICON_ALPHA),\n };\n }\n const accent = theme.palette[color];\n return {\n container: { ...border, borderColor: alpha(accent.main, OUTLINED_BORDER_ALPHA) },\n pressed: { backgroundColor: alpha(accent.main, OUTLINED_HOVER_ALPHA) },\n label: { color: accent.main },\n deleteColor: alpha(accent.main, OUTLINED_BORDER_ALPHA),\n };\n}\n\n/**\n * What MUI's chip paints, as React Native styles. `selected` tints an OUTLINED\n * chip with `action.selected` — a filled one is already solid, which is what\n * `Chip.styles.tsx` decided for the web.\n */\nexport function chipPaint(\n theme: UiTheme,\n variant: ChipVariant,\n color: ChipColor,\n selected: boolean,\n): ChipPaint {\n const paint =\n variant === 'outlined' ? outlinedPaint(theme, color) : variant === 'soft' ? softPaint(theme, color) : filledPaint(theme, color);\n if (variant !== 'outlined' || !selected) return paint;\n return {\n ...paint,\n container: { ...paint.container, backgroundColor: theme.palette.action.selected },\n };\n}\n\n/** The pill itself: MUI's height, its 16px radius, and the disabled fade. */\nexport function chipContainerStyle(metrics: ChipSizeMetrics, disabled: boolean): ViewStyle {\n return {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n alignSelf: 'flex-start',\n maxWidth: '100%',\n height: metrics.height,\n borderRadius: CHIP_RADIUS,\n ...(disabled ? { opacity: CHIP_DISABLED_OPACITY } : {}),\n };\n}\n\n/** The label: MUI's 13px, padded by the variant, clipped rather than wrapped. */\nexport function chipLabelStyle(\n theme: UiTheme,\n metrics: ChipSizeMetrics,\n variant: ChipVariant,\n): TextStyle {\n const padding = variant === 'outlined' ? metrics.labelPaddingOutlined : metrics.labelPadding;\n return {\n fontFamily: theme.typography.fontFamily,\n fontSize: CHIP_FONT_SIZE,\n paddingLeft: padding,\n paddingRight: padding,\n flexShrink: 1,\n };\n}\n\n/** The margins MUI gives the leading slot, tucking it under the label's padding. */\nexport function chipLeadingSlotStyle(\n metrics: ChipSizeMetrics,\n variant: ChipVariant,\n slot: 'icon' | 'avatar',\n): ViewStyle {\n const outlined = variant === 'outlined';\n const marginLeft =\n slot === 'icon'\n ? (outlined ? metrics.iconMarginLeftOutlined : metrics.iconMarginLeft)\n : (outlined ? metrics.avatarMarginLeftOutlined : metrics.avatarMarginLeft);\n return {\n marginLeft,\n marginRight: slot === 'icon' ? metrics.iconMarginRight : metrics.avatarMarginRight,\n alignItems: 'center',\n justifyContent: 'center',\n };\n}\n\n/** The delete glyph's own tuck, one pixel tighter when the chip is outlined. */\nexport function chipDeleteSlotStyle(metrics: ChipSizeMetrics, variant: ChipVariant): ViewStyle {\n return {\n marginLeft: metrics.deleteMarginLeft,\n marginRight:\n variant === 'outlined' ? metrics.deleteMarginRightOutlined : metrics.deleteMarginRight,\n alignItems: 'center',\n justifyContent: 'center',\n };\n}\n\n/** The round avatar box MUI draws for an `avatarSrc`. */\nexport function chipAvatarStyle(metrics: ChipSizeMetrics): ImageStyle {\n return {\n width: metrics.avatarSize,\n height: metrics.avatarSize,\n borderRadius: metrics.avatarSize / 2,\n overflow: 'hidden',\n };\n}\n\nexport const chipMetrics = (size: ChipMuiSize): ChipSizeMetrics => CHIP_SIZES[size];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Avatar/Avatar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Avatar/Avatar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAqK/D,eAAO,MAAM,MAAM,iGAEjB,CAAC;AAuBH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAmBA,CAAC"}
|
|
@@ -9,8 +9,9 @@ import type { ColorValue, SizeValue } from '../../../tokens/vocabulary';
|
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
11
11
|
* `soft` is a status chip's look: the colour's tint for a ground and, for ink,
|
|
12
|
-
* its dark step in light mode
|
|
13
|
-
* tint either way), so a row of states reads
|
|
12
|
+
* its dark step in light mode (warning's darkened a step further) and its light
|
|
13
|
+
* step in dark mode (4.5:1 on the tint either way), so a row of states reads
|
|
14
|
+
* without a row of solid blocks.
|
|
14
15
|
*/
|
|
15
16
|
export type ChipVariant = 'filled' | 'outlined' | 'soft';
|
|
16
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.base.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;;;GAMG;AACH
|
|
1
|
+
{"version":3,"file":"Chip.base.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;;;GAMG;AACH;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,uBAAuB;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -62,6 +62,12 @@ export declare const CHIP_TRANSITION_EASING = "cubic-bezier(0.4, 0, 0.2, 1)";
|
|
|
62
62
|
export declare const SOFT_GROUND_ALPHA = 0.14;
|
|
63
63
|
/** A soft chip's hover ground. */
|
|
64
64
|
export declare const SOFT_HOVER_ALPHA = 0.22;
|
|
65
|
+
/**
|
|
66
|
+
* How much a light-mode soft WARNING ink darkens its `dark` step (FUT-4464). With
|
|
67
|
+
* the default theme, `warning.dark` (#e65100) on its 14% tint is 3.25:1; darkened
|
|
68
|
+
* by 0.2 it is 4.77:1. The other five colours clear 4.5:1 on `dark` as it is.
|
|
69
|
+
*/
|
|
70
|
+
export declare const SOFT_WARNING_LIGHT_DARKEN = 0.2;
|
|
65
71
|
/** A soft chip's keyboard-focus ring, in design px (read through `rem`). */
|
|
66
72
|
export declare const SOFT_FOCUS_RING: {
|
|
67
73
|
readonly width: 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;GASG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,WACQ,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,CAqC3D,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,oFAAoF;AACpF,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,yEAAyE;AACzE,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,YAAY;;;;;CAAsE,CAAC;AAChG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,sBAAsB,iCAAiC,CAAC;AAErE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,4EAA4E;AAC5E,eAAO,MAAM,eAAe;;;CAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"Chip.metrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;GASG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,WACQ,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,CAqC3D,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,oFAAoF;AACpF,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,yEAAyE;AACzE,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,YAAY;;;;;CAAsE,CAAC;AAChG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,sBAAsB,iCAAiC,CAAC;AAErE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,4EAA4E;AAC5E,eAAO,MAAM,eAAe;;;CAAmC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.styles.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Chip.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/Chip/Chip.styles.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAcjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC5B,MAAM,WAAW,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,MACnE,OAAO,aAAa,KAAG,IASvB,CAAC;AAEJ,eAAO,MAAM,SAAS,GACpB,QAAQ,SAAS,CAAC,QAAQ,CAAC,EAC3B,YAAY,MAAM,KACjB,YAAY,GAAG,SASjB,CAAC;AAEF,UAAU,aAAa;IACrB,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2ED,eAAO,MAAM,UAAU,GAAI,oDAMxB,aAAa,KAAG,OAAO,CAAC,KAAK,CA4B/B,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,SAAS,CAAC,MAAM,CAAC,EACvB,QAAQ,MAAM,KACb,YAAY,GAAG,SAKH,CAAC"}
|
|
@@ -25,6 +25,6 @@ import type { CepFieldProps } from './CepField.types';
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
export declare function CepField({ value, onChange, onLookup, onResolved, onNotFound, label, placeholder, error, disabled, debounceMs, name, dataTestId, copy, size, // undefined reaches `Input`, whose own default is `md`
|
|
28
|
-
labelPlacement, autoComplete, }: CepFieldProps): React.ReactElement;
|
|
28
|
+
labelPlacement, autoComplete, passwordManagers, }: CepFieldProps): React.ReactElement;
|
|
29
29
|
export default CepField;
|
|
30
30
|
//# sourceMappingURL=CepField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CepField.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CepField/CepField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,OAAO,KAAK,EAAc,aAAa,EAAmB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CepField.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CepField/CepField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,OAAO,KAAK,EAAc,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAsJnF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,KAAa,EACb,WAAyB,EACzB,KAAK,EACL,QAAgB,EAChB,UAAgB,EAChB,IAAmB,EACnB,UAAU,EACV,IAAI,EACJ,IAAI,EAAE,uDAAuD;AAC7D,cAAwB,EACxB,YAAY,EACZ,gBAAgB,GACjB,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAsDpC;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -94,5 +94,14 @@ export interface CepFieldProps {
|
|
|
94
94
|
* (FUT-4140).
|
|
95
95
|
*/
|
|
96
96
|
autoComplete?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Whether password managers may treat the box as theirs. `offer` (default)
|
|
99
|
+
* leaves them alone, as the field always has. `ignore` marks the `<input>`
|
|
100
|
+
* with `data-lpignore`, `data-1p-ignore` and `data-bwignore`, so LastPass,
|
|
101
|
+
* 1Password and Bitwarden keep their icon and fill out of a lone CEP box that
|
|
102
|
+
* their heuristics read as a login field (FUT-4444). The browser's own
|
|
103
|
+
* `autocomplete` is untouched: a saved CEP is still offered.
|
|
104
|
+
*/
|
|
105
|
+
passwordManagers?: 'offer' | 'ignore';
|
|
97
106
|
}
|
|
98
107
|
//# sourceMappingURL=CepField.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CepField.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CepField/CepField.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD;;GAEG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU;IACV,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,oEAAoE;AACpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,YAAY,CAAC;IACnB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACvD;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"CepField.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/CepField/CepField.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD;;GAEG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU;IACV,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,oEAAoE;AACpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,YAAY,CAAC;IACnB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACvD;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CACvC"}
|