@portnet/ui 6.0.1 → 6.0.2
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/CHANGELOG.md +85 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldError.test.js +0 -1
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FileCard.test.js +0 -1
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +0 -1
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/labels-merge.test.js +0 -1
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +37 -4
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Field.js +63 -1
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/index.js +27 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/index.js +12 -1
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/patterns/FavoriteColumn.js +14 -61
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/esm/v2/patterns/FormikCombobox.js +5 -2
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +13 -47
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/esm/v2/patterns/FormikInput.js +5 -2
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/esm/v2/patterns/FormikSelect.js +5 -2
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +5 -2
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +25 -8
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +83 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/index.js +5 -0
- package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +18 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/FieldError.test.js +26 -30
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldWidth.test.js +150 -0
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FileCard.test.js +25 -29
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/labels-merge.test.js +20 -24
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
- package/dist/v2/components/DateTimePicker.js +37 -4
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Field.d.ts +59 -1
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +62 -2
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/index.d.ts +27 -0
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
- package/dist/v2/patterns/FavoriteColumn.js +14 -61
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
- package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckbox.js +147 -0
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
- package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +5 -2
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +33 -66
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
- package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
- package/dist/v2/patterns/FormikInput.d.ts +11 -1
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
- package/dist/v2/patterns/FormikInput.js +5 -2
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
- package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikRadioGroup.js +148 -0
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
- package/dist/v2/patterns/FormikSelect.d.ts +9 -1
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +5 -2
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +5 -2
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +25 -8
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
- package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
- package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
- package/dist/v2/patterns/_pickerSerialisation.js +81 -0
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +87 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +34 -0
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
- package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +6 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +13 -0
- package/dist/v2/personalization/capabilities/index.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +18 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +13 -0
- package/dist/v2/personalization/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormikRadioGroup — bridge between Formik state and v2.Field +
|
|
3
|
+
* v2.RadioGroup.
|
|
4
|
+
*
|
|
5
|
+
* ── WHY (gap G-C) ────────────────────────────────────────────────────
|
|
6
|
+
*
|
|
7
|
+
* R-Sel.2 is a MUST: 2–3 options → Radio or Segmented, never a Select. So any
|
|
8
|
+
* form with a two-way business question has to reach for `RadioGroup` — and
|
|
9
|
+
* until now there was no Formik bridge for it, while `FormikCheckboxGroup`,
|
|
10
|
+
* `FormikSelect`, `FormikCombobox`, `FormikDatePicker`, `FormikTextarea`,
|
|
11
|
+
* `FormikFile` and `FormikInput` all exist. Every host therefore re-wired
|
|
12
|
+
* `useField` + `RadioGroup` by hand, which is the duplication R-2.1 forbids
|
|
13
|
+
* and, worse, the shape in which validation messages go missing: a hand-rolled
|
|
14
|
+
* bridge renders the control but forgets `FieldError`.
|
|
15
|
+
*
|
|
16
|
+
* Reported from refonte-frontend (lot 5), where ONE form carried two such
|
|
17
|
+
* groups (`usageHorsMetrologique`, `certificat`).
|
|
18
|
+
*
|
|
19
|
+
* ── THE VALUE IS WRITTEN BACK AS DECLARED, NOT AS THE DOM SAW IT ─────
|
|
20
|
+
*
|
|
21
|
+
* This is the contract that matters, and it is invisible.
|
|
22
|
+
*
|
|
23
|
+
* A native `<input type="radio">` only ever reports a STRING. A host whose
|
|
24
|
+
* options are numbers — `{ value: 1 }`, `{ value: 2 }` — and whose payload
|
|
25
|
+
* declares a number would silently start sending `"1"` after the user picks.
|
|
26
|
+
* The API accepts it or rejects it days later; nothing in the UI tells anyone.
|
|
27
|
+
*
|
|
28
|
+
* So `onChange` matches the DOM string back against the option list and writes
|
|
29
|
+
* the ORIGINAL option value. Numbers stay numbers, strings stay strings. Only
|
|
30
|
+
* when no option matches (a host mutating its list mid-flight) does the raw DOM
|
|
31
|
+
* string go through, because dropping the user's click would be worse.
|
|
32
|
+
*
|
|
33
|
+
* Symmetrically, the group's `value` is compared as a string, so a field
|
|
34
|
+
* holding a boolean `false` selects the option declared `"false"`, and a field
|
|
35
|
+
* holding the number `2` selects `{ value: 2 }`. The STORED value is never
|
|
36
|
+
* coerced by this — only the comparison is.
|
|
37
|
+
*
|
|
38
|
+
* Usage:
|
|
39
|
+
*
|
|
40
|
+
* <FormikRadioGroup
|
|
41
|
+
* name="importateur.certificat"
|
|
42
|
+
* label="Modèle déjà approuvé"
|
|
43
|
+
* required
|
|
44
|
+
* row
|
|
45
|
+
* options={[
|
|
46
|
+
* { value: "true", label: "Oui" },
|
|
47
|
+
* { value: "false", label: "Non" },
|
|
48
|
+
* ]}
|
|
49
|
+
* />
|
|
50
|
+
*
|
|
51
|
+
* ── ERRORS APPEAR ON PICK, NOT ON BLUR ──────────────────────────────
|
|
52
|
+
*
|
|
53
|
+
* A radio group has no meaningful blur-before-change: the first interaction IS
|
|
54
|
+
* the answer. Waiting for a blur keeps a required-group message hidden while
|
|
55
|
+
* the user clicks around. Picking marks the field touched — same rule as
|
|
56
|
+
* `FormikCheckbox` and `FormikCheckboxGroup`.
|
|
57
|
+
*
|
|
58
|
+
* `required` is expressed on the FIELD, not on the options: `Field` renders the
|
|
59
|
+
* asterisk on the group label and injects `aria-required`, which — unlike the
|
|
60
|
+
* single-checkbox case — is valid on `role="radiogroup"` and forwarded by
|
|
61
|
+
* `RadioGroup`.
|
|
62
|
+
*
|
|
63
|
+
* Charter §03 · R-Sel.2, R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.
|
|
64
|
+
*/
|
|
65
|
+
import * as React from "react";
|
|
66
|
+
import type { RadioGroupOption } from "../components/Radio";
|
|
67
|
+
export interface FormikRadioGroupProps {
|
|
68
|
+
name: string;
|
|
69
|
+
/** Group label — rendered by `Field` above the options. */
|
|
70
|
+
label?: React.ReactNode | undefined;
|
|
71
|
+
options?: RadioGroupOption[] | undefined;
|
|
72
|
+
required?: boolean | undefined;
|
|
73
|
+
disabled?: boolean | undefined;
|
|
74
|
+
hint?: React.ReactNode | undefined;
|
|
75
|
+
/** Horizontal layout. Use only with short labels. */
|
|
76
|
+
row?: boolean | undefined;
|
|
77
|
+
}
|
|
78
|
+
declare const FormikRadioGroup: ({ name, label, options, required, disabled, hint, row, }: FormikRadioGroupProps) => React.JSX.Element;
|
|
79
|
+
export default FormikRadioGroup;
|
|
80
|
+
//# sourceMappingURL=FormikRadioGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormikRadioGroup.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikRadioGroup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,qDAAqD;IACrD,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAOD,QAAA,MAAM,gBAAgB,GAAI,0DAQvB,qBAAqB,sBA+CvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _formik = require("formik");
|
|
10
|
+
var _Field = _interopRequireDefault(require("../components/Field"));
|
|
11
|
+
var _Radio = require("../components/Radio");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
20
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
21
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
22
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
24
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
25
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
26
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
|
|
27
|
+
* FormikRadioGroup — bridge between Formik state and v2.Field +
|
|
28
|
+
* v2.RadioGroup.
|
|
29
|
+
*
|
|
30
|
+
* ── WHY (gap G-C) ────────────────────────────────────────────────────
|
|
31
|
+
*
|
|
32
|
+
* R-Sel.2 is a MUST: 2–3 options → Radio or Segmented, never a Select. So any
|
|
33
|
+
* form with a two-way business question has to reach for `RadioGroup` — and
|
|
34
|
+
* until now there was no Formik bridge for it, while `FormikCheckboxGroup`,
|
|
35
|
+
* `FormikSelect`, `FormikCombobox`, `FormikDatePicker`, `FormikTextarea`,
|
|
36
|
+
* `FormikFile` and `FormikInput` all exist. Every host therefore re-wired
|
|
37
|
+
* `useField` + `RadioGroup` by hand, which is the duplication R-2.1 forbids
|
|
38
|
+
* and, worse, the shape in which validation messages go missing: a hand-rolled
|
|
39
|
+
* bridge renders the control but forgets `FieldError`.
|
|
40
|
+
*
|
|
41
|
+
* Reported from refonte-frontend (lot 5), where ONE form carried two such
|
|
42
|
+
* groups (`usageHorsMetrologique`, `certificat`).
|
|
43
|
+
*
|
|
44
|
+
* ── THE VALUE IS WRITTEN BACK AS DECLARED, NOT AS THE DOM SAW IT ─────
|
|
45
|
+
*
|
|
46
|
+
* This is the contract that matters, and it is invisible.
|
|
47
|
+
*
|
|
48
|
+
* A native `<input type="radio">` only ever reports a STRING. A host whose
|
|
49
|
+
* options are numbers — `{ value: 1 }`, `{ value: 2 }` — and whose payload
|
|
50
|
+
* declares a number would silently start sending `"1"` after the user picks.
|
|
51
|
+
* The API accepts it or rejects it days later; nothing in the UI tells anyone.
|
|
52
|
+
*
|
|
53
|
+
* So `onChange` matches the DOM string back against the option list and writes
|
|
54
|
+
* the ORIGINAL option value. Numbers stay numbers, strings stay strings. Only
|
|
55
|
+
* when no option matches (a host mutating its list mid-flight) does the raw DOM
|
|
56
|
+
* string go through, because dropping the user's click would be worse.
|
|
57
|
+
*
|
|
58
|
+
* Symmetrically, the group's `value` is compared as a string, so a field
|
|
59
|
+
* holding a boolean `false` selects the option declared `"false"`, and a field
|
|
60
|
+
* holding the number `2` selects `{ value: 2 }`. The STORED value is never
|
|
61
|
+
* coerced by this — only the comparison is.
|
|
62
|
+
*
|
|
63
|
+
* Usage:
|
|
64
|
+
*
|
|
65
|
+
* <FormikRadioGroup
|
|
66
|
+
* name="importateur.certificat"
|
|
67
|
+
* label="Modèle déjà approuvé"
|
|
68
|
+
* required
|
|
69
|
+
* row
|
|
70
|
+
* options={[
|
|
71
|
+
* { value: "true", label: "Oui" },
|
|
72
|
+
* { value: "false", label: "Non" },
|
|
73
|
+
* ]}
|
|
74
|
+
* />
|
|
75
|
+
*
|
|
76
|
+
* ── ERRORS APPEAR ON PICK, NOT ON BLUR ──────────────────────────────
|
|
77
|
+
*
|
|
78
|
+
* A radio group has no meaningful blur-before-change: the first interaction IS
|
|
79
|
+
* the answer. Waiting for a blur keeps a required-group message hidden while
|
|
80
|
+
* the user clicks around. Picking marks the field touched — same rule as
|
|
81
|
+
* `FormikCheckbox` and `FormikCheckboxGroup`.
|
|
82
|
+
*
|
|
83
|
+
* `required` is expressed on the FIELD, not on the options: `Field` renders the
|
|
84
|
+
* asterisk on the group label and injects `aria-required`, which — unlike the
|
|
85
|
+
* single-checkbox case — is valid on `role="radiogroup"` and forwarded by
|
|
86
|
+
* `RadioGroup`.
|
|
87
|
+
*
|
|
88
|
+
* Charter §03 · R-Sel.2, R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.
|
|
89
|
+
*/
|
|
90
|
+
/** Declared value of an option, whatever its shape. */
|
|
91
|
+
function valeurOption(option) {
|
|
92
|
+
return typeof option === "string" ? option : option.value;
|
|
93
|
+
}
|
|
94
|
+
var FormikRadioGroup = function FormikRadioGroup(_ref) {
|
|
95
|
+
var name = _ref.name,
|
|
96
|
+
label = _ref.label,
|
|
97
|
+
_ref$options = _ref.options,
|
|
98
|
+
options = _ref$options === void 0 ? [] : _ref$options,
|
|
99
|
+
required = _ref.required,
|
|
100
|
+
disabled = _ref.disabled,
|
|
101
|
+
hint = _ref.hint,
|
|
102
|
+
row = _ref.row;
|
|
103
|
+
var _useField = (0, _formik.useField)(name),
|
|
104
|
+
_useField2 = _slicedToArray(_useField, 2),
|
|
105
|
+
field = _useField2[0],
|
|
106
|
+
meta = _useField2[1];
|
|
107
|
+
var _useFormikContext = (0, _formik.useFormikContext)(),
|
|
108
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
109
|
+
setFieldTouched = _useFormikContext.setFieldTouched;
|
|
110
|
+
var hasError = Boolean(meta.touched && meta.error);
|
|
111
|
+
|
|
112
|
+
/* Comparison only — the stored value is left untouched. A field holding
|
|
113
|
+
* boolean `false` therefore selects the option declared "false". */
|
|
114
|
+
var selection = field.value === null || field.value === undefined ? "" : String(field.value);
|
|
115
|
+
var handleChange = function handleChange(_event, valeurDom) {
|
|
116
|
+
var correspondante = options.find(function (option) {
|
|
117
|
+
return String(valeurOption(option)) === valeurDom;
|
|
118
|
+
});
|
|
119
|
+
/* Write back the DECLARED value — see the note above. The raw DOM string
|
|
120
|
+
* is the fallback, not the norm. */
|
|
121
|
+
void setFieldValue(name, correspondante === undefined ? valeurDom : valeurOption(correspondante));
|
|
122
|
+
void setFieldTouched(name, true, false);
|
|
123
|
+
};
|
|
124
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, label !== undefined ? {
|
|
125
|
+
label: label
|
|
126
|
+
} : {}), {}, {
|
|
127
|
+
error: hasError ? meta.error : null,
|
|
128
|
+
hint: !hasError ? hint : undefined,
|
|
129
|
+
group: true
|
|
130
|
+
}, required !== undefined ? {
|
|
131
|
+
required: required
|
|
132
|
+
} : {}), disabled !== undefined ? {
|
|
133
|
+
disabled: disabled
|
|
134
|
+
} : {}), {}, {
|
|
135
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Radio.RadioGroup, _objectSpread(_objectSpread({
|
|
136
|
+
name: name,
|
|
137
|
+
value: selection,
|
|
138
|
+
options: options,
|
|
139
|
+
onChange: handleChange
|
|
140
|
+
}, row !== undefined ? {
|
|
141
|
+
row: row
|
|
142
|
+
} : {}), disabled !== undefined ? {
|
|
143
|
+
disabled: disabled
|
|
144
|
+
} : {}))
|
|
145
|
+
}));
|
|
146
|
+
};
|
|
147
|
+
var _default = exports["default"] = FormikRadioGroup;
|
|
148
|
+
//# sourceMappingURL=FormikRadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormikRadioGroup.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Radio","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","valeurOption","option","FormikRadioGroup","_ref","label","_ref$options","options","required","disabled","row","_useField","useField","_useField2","field","meta","_useFormikContext","useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","selection","handleChange","_event","valeurDom","correspondante","find","jsx","group","children","RadioGroup","onChange","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikRadioGroup.tsx"],"sourcesContent":["/**\r\n * FormikRadioGroup — bridge between Formik state and v2.Field +\r\n * v2.RadioGroup.\r\n *\r\n * ── WHY (gap G-C) ────────────────────────────────────────────────────\r\n *\r\n * R-Sel.2 is a MUST: 2–3 options → Radio or Segmented, never a Select. So any\r\n * form with a two-way business question has to reach for `RadioGroup` — and\r\n * until now there was no Formik bridge for it, while `FormikCheckboxGroup`,\r\n * `FormikSelect`, `FormikCombobox`, `FormikDatePicker`, `FormikTextarea`,\r\n * `FormikFile` and `FormikInput` all exist. Every host therefore re-wired\r\n * `useField` + `RadioGroup` by hand, which is the duplication R-2.1 forbids\r\n * and, worse, the shape in which validation messages go missing: a hand-rolled\r\n * bridge renders the control but forgets `FieldError`.\r\n *\r\n * Reported from refonte-frontend (lot 5), where ONE form carried two such\r\n * groups (`usageHorsMetrologique`, `certificat`).\r\n *\r\n * ── THE VALUE IS WRITTEN BACK AS DECLARED, NOT AS THE DOM SAW IT ─────\r\n *\r\n * This is the contract that matters, and it is invisible.\r\n *\r\n * A native `<input type=\"radio\">` only ever reports a STRING. A host whose\r\n * options are numbers — `{ value: 1 }`, `{ value: 2 }` — and whose payload\r\n * declares a number would silently start sending `\"1\"` after the user picks.\r\n * The API accepts it or rejects it days later; nothing in the UI tells anyone.\r\n *\r\n * So `onChange` matches the DOM string back against the option list and writes\r\n * the ORIGINAL option value. Numbers stay numbers, strings stay strings. Only\r\n * when no option matches (a host mutating its list mid-flight) does the raw DOM\r\n * string go through, because dropping the user's click would be worse.\r\n *\r\n * Symmetrically, the group's `value` is compared as a string, so a field\r\n * holding a boolean `false` selects the option declared `\"false\"`, and a field\r\n * holding the number `2` selects `{ value: 2 }`. The STORED value is never\r\n * coerced by this — only the comparison is.\r\n *\r\n * Usage:\r\n *\r\n * <FormikRadioGroup\r\n * name=\"importateur.certificat\"\r\n * label=\"Modèle déjà approuvé\"\r\n * required\r\n * row\r\n * options={[\r\n * { value: \"true\", label: \"Oui\" },\r\n * { value: \"false\", label: \"Non\" },\r\n * ]}\r\n * />\r\n *\r\n * ── ERRORS APPEAR ON PICK, NOT ON BLUR ──────────────────────────────\r\n *\r\n * A radio group has no meaningful blur-before-change: the first interaction IS\r\n * the answer. Waiting for a blur keeps a required-group message hidden while\r\n * the user clicks around. Picking marks the field touched — same rule as\r\n * `FormikCheckbox` and `FormikCheckboxGroup`.\r\n *\r\n * `required` is expressed on the FIELD, not on the options: `Field` renders the\r\n * asterisk on the group label and injects `aria-required`, which — unlike the\r\n * single-checkbox case — is valid on `role=\"radiogroup\"` and forwarded by\r\n * `RadioGroup`.\r\n *\r\n * Charter §03 · R-Sel.2, R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport { RadioGroup } from \"../components/Radio\";\r\nimport type { RadioGroupOption } from \"../components/Radio\";\r\n\r\nexport interface FormikRadioGroupProps {\r\n name: string;\r\n /** Group label — rendered by `Field` above the options. */\r\n label?: React.ReactNode | undefined;\r\n options?: RadioGroupOption[] | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n hint?: React.ReactNode | undefined;\r\n /** Horizontal layout. Use only with short labels. */\r\n row?: boolean | undefined;\r\n}\r\n\r\n/** Declared value of an option, whatever its shape. */\r\nfunction valeurOption(option: RadioGroupOption): string | number {\r\n return typeof option === \"string\" ? option : option.value;\r\n}\r\n\r\nconst FormikRadioGroup = ({\r\n name,\r\n label,\r\n options = [],\r\n required,\r\n disabled,\r\n hint,\r\n row,\r\n}: FormikRadioGroupProps) => {\r\n const [field, meta] = useField(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n /* Comparison only — the stored value is left untouched. A field holding\r\n * boolean `false` therefore selects the option declared \"false\". */\r\n const selection =\r\n field.value === null || field.value === undefined\r\n ? \"\"\r\n : String(field.value);\r\n\r\n const handleChange = (\r\n _event: React.ChangeEvent<HTMLInputElement>,\r\n valeurDom: string\r\n ) => {\r\n const correspondante = options.find(\r\n (option) => String(valeurOption(option)) === valeurDom\r\n );\r\n /* Write back the DECLARED value — see the note above. The raw DOM string\r\n * is the fallback, not the norm. */\r\n void setFieldValue(\r\n name,\r\n correspondante === undefined ? valeurDom : valeurOption(correspondante)\r\n );\r\n void setFieldTouched(name, true, false);\r\n };\r\n\r\n return (\r\n <Field\r\n {...(label !== undefined ? { label } : {})}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n group\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <RadioGroup\r\n name={name}\r\n value={selection}\r\n options={options}\r\n onChange={handleChange}\r\n {...(row !== undefined ? { row } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikRadioGroup;\r\n"],"mappings":";;;;;;;AAiEA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAiD,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAG,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAO,GAAA,EAAAG,WAAA,SAAAA,WAAA,IAAAH,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAO,OAAA,CAAAP,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAQ,KAAA,GAAAN,wBAAA,CAAAC,WAAA,OAAAK,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,cAAAX,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,IAAAwB,eAAA,CAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAM,gBAAAxC,GAAA,EAAAgB,GAAA,EAAA2B,KAAA,IAAA3B,GAAA,GAAA4B,cAAA,CAAA5B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA2B,KAAA,EAAAA,KAAA,EAAAb,UAAA,QAAAe,YAAA,QAAAC,QAAA,oBAAA9C,GAAA,CAAAgB,GAAA,IAAA2B,KAAA,WAAA3C,GAAA;AAAA,SAAA4C,eAAAG,GAAA,QAAA/B,GAAA,GAAAgC,YAAA,CAAAD,GAAA,oBAAAxC,OAAA,CAAAS,GAAA,iBAAAA,GAAA,GAAAiC,MAAA,CAAAjC,GAAA;AAAA,SAAAgC,aAAAE,KAAA,EAAAC,IAAA,QAAA5C,OAAA,CAAA2C,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAjC,IAAA,CAAA+B,KAAA,EAAAC,IAAA,oBAAA5C,OAAA,CAAAiD,GAAA,uBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAAA,SAAAS,eAAAC,GAAA,EAAAzB,CAAA,WAAA0B,eAAA,CAAAD,GAAA,KAAAE,qBAAA,CAAAF,GAAA,EAAAzB,CAAA,KAAA4B,2BAAA,CAAAH,GAAA,EAAAzB,CAAA,KAAA6B,gBAAA;AAAA,SAAAA,iBAAA,cAAAP,SAAA;AAAA,SAAAM,4BAAAE,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAvD,MAAA,CAAAI,SAAA,CAAAoD,QAAA,CAAAlD,IAAA,CAAA8C,CAAA,EAAAK,KAAA,aAAAF,CAAA,iBAAAH,CAAA,CAAAM,WAAA,EAAAH,CAAA,GAAAH,CAAA,CAAAM,WAAA,CAAAC,IAAA,MAAAJ,CAAA,cAAAA,CAAA,mBAAAK,KAAA,CAAAC,IAAA,CAAAT,CAAA,OAAAG,CAAA,+DAAAO,IAAA,CAAAP,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAP,GAAA,EAAAgB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAhB,GAAA,CAAAvB,MAAA,EAAAuC,GAAA,GAAAhB,GAAA,CAAAvB,MAAA,WAAAF,CAAA,MAAA0C,IAAA,OAAAJ,KAAA,CAAAG,GAAA,GAAAzC,CAAA,GAAAyC,GAAA,EAAAzC,CAAA,MAAA0C,IAAA,CAAA1C,CAAA,IAAAyB,GAAA,CAAAzB,CAAA,YAAA0C,IAAA;AAAA,SAAAf,sBAAAF,GAAA,EAAAzB,CAAA,QAAA2C,EAAA,WAAAlB,GAAA,gCAAAP,MAAA,IAAAO,GAAA,CAAAP,MAAA,CAAA0B,QAAA,KAAAnB,GAAA,4BAAAkB,EAAA,QAAAE,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAJ,EAAA,GAAAA,EAAA,CAAA3D,IAAA,CAAAyC,GAAA,GAAA2B,IAAA,QAAApD,CAAA,QAAAtB,MAAA,CAAAiE,EAAA,MAAAA,EAAA,UAAAO,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAA/D,IAAA,CAAA2D,EAAA,GAAAU,IAAA,MAAAJ,IAAA,CAAArD,IAAA,CAAAiD,EAAA,CAAArC,KAAA,GAAAyC,IAAA,CAAA/C,MAAA,KAAAF,CAAA,GAAAkD,EAAA,sBAAAI,GAAA,IAAAH,EAAA,OAAAL,EAAA,GAAAQ,GAAA,yBAAAJ,EAAA,YAAAP,EAAA,eAAAK,EAAA,GAAAL,EAAA,cAAAjE,MAAA,CAAAsE,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAAvB,gBAAAD,GAAA,QAAAa,KAAA,CAAAiB,OAAA,CAAA9B,GAAA,UAAAA,GAAA,IApEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA;AACA,SAAS+B,YAAYA,CAACC,MAAwB,EAAmB;EAC/D,OAAO,OAAOA,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGA,MAAM,CAACjD,KAAK;AAC3D;AAEA,IAAMkD,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAQO;EAAA,IAP3BtB,IAAI,GAAAsB,IAAA,CAAJtB,IAAI;IACJuB,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAAC,YAAA,GAAAF,IAAA,CACLG,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,EAAE,GAAAA,YAAA;IACZE,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRhD,IAAI,GAAA2C,IAAA,CAAJ3C,IAAI;IACJiD,GAAG,GAAAN,IAAA,CAAHM,GAAG;EAEH,IAAAC,SAAA,GAAsB,IAAAC,gBAAQ,EAAC9B,IAAI,CAAC;IAAA+B,UAAA,GAAA5C,cAAA,CAAA0C,SAAA;IAA7BG,KAAK,GAAAD,UAAA;IAAEE,IAAI,GAAAF,UAAA;EAClB,IAAAG,iBAAA,GAA2C,IAAAC,wBAAgB,EAAC,CAAC;IAArDC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEC,eAAe,GAAAH,iBAAA,CAAfG,eAAe;EACtC,IAAMC,QAAQ,GAAGC,OAAO,CAACN,IAAI,CAACO,OAAO,IAAIP,IAAI,CAACQ,KAAK,CAAC;;EAEpD;AACF;EACE,IAAMC,SAAS,GACbV,KAAK,CAAC7D,KAAK,KAAK,IAAI,IAAI6D,KAAK,CAAC7D,KAAK,KAAKY,SAAS,GAC7C,EAAE,GACFN,MAAM,CAACuD,KAAK,CAAC7D,KAAK,CAAC;EAEzB,IAAMwE,YAAY,GAAG,SAAfA,YAAYA,CAChBC,MAA2C,EAC3CC,SAAiB,EACd;IACH,IAAMC,cAAc,GAAGrB,OAAO,CAACsB,IAAI,CACjC,UAAC3B,MAAM;MAAA,OAAK3C,MAAM,CAAC0C,YAAY,CAACC,MAAM,CAAC,CAAC,KAAKyB,SAAS;IAAA,CACxD,CAAC;IACD;AACJ;IACI,KAAKT,aAAa,CAChBpC,IAAI,EACJ8C,cAAc,KAAK/D,SAAS,GAAG8D,SAAS,GAAG1B,YAAY,CAAC2B,cAAc,CACxE,CAAC;IACD,KAAKT,eAAe,CAACrC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;EACzC,CAAC;EAED,oBACE,IAAAzE,WAAA,CAAAyH,GAAA,EAAC5H,MAAA,WAAK,EAAAqC,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACC8D,KAAK,KAAKxC,SAAS,GAAG;IAAEwC,KAAK,EAALA;EAAM,CAAC,GAAG,CAAC,CAAC;IACzCkB,KAAK,EAAEH,QAAQ,GAAGL,IAAI,CAACQ,KAAK,GAAG,IAAK;IACpC9D,IAAI,EAAE,CAAC2D,QAAQ,GAAG3D,IAAI,GAAGI,SAAU;IACnCkE,KAAK;EAAA,GACAvB,QAAQ,KAAK3C,SAAS,GAAG;IAAE2C,QAAQ,EAARA;EAAS,CAAC,GAAG,CAAC,CAAC,GAC1CC,QAAQ,KAAK5C,SAAS,GAAG;IAAE4C,QAAQ,EAARA;EAAS,CAAC,GAAG,CAAC,CAAC;IAAAuB,QAAA,eAE/C,IAAA3H,WAAA,CAAAyH,GAAA,EAAC1H,MAAA,CAAA6H,UAAU,EAAA1F,aAAA,CAAAA,aAAA;MACTuC,IAAI,EAAEA,IAAK;MACX7B,KAAK,EAAEuE,SAAU;MACjBjB,OAAO,EAAEA,OAAQ;MACjB2B,QAAQ,EAAET;IAAa,GAClBf,GAAG,KAAK7C,SAAS,GAAG;MAAE6C,GAAG,EAAHA;IAAI,CAAC,GAAG,CAAC,CAAC,GAChCD,QAAQ,KAAK5C,SAAS,GAAG;MAAE4C,QAAQ,EAARA;IAAS,CAAC,GAAG,CAAC,CAAC,CAChD;EAAC,EACG,CAAC;AAEZ,CAAC;AAAC,IAAA0B,QAAA,GAAAC,OAAA,cAEajC,gBAAgB","ignoreList":[]}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* />
|
|
21
21
|
*/
|
|
22
22
|
import * as React from "react";
|
|
23
|
+
import type { FieldWidth } from "../components/Field";
|
|
23
24
|
import type { SelectOptionValue, SelectProps } from "../components/Select";
|
|
24
25
|
export interface FormikSelectProps<TOption = unknown> extends Omit<SelectProps, "value" | "onChange" | "onBlur" | "options" | "disabled" | "placeholder" | "label" | "required" | "error" | "ref"> {
|
|
25
26
|
name: string;
|
|
@@ -54,8 +55,15 @@ export interface FormikSelectProps<TOption = unknown> extends Omit<SelectProps,
|
|
|
54
55
|
mono?: boolean | undefined;
|
|
55
56
|
placeholder?: string | undefined;
|
|
56
57
|
htmlFor?: string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Gabarit de largeur semantique (G-H). Sur un select, le gabarit se choisit
|
|
60
|
+
* d'apres la longueur des LIBELLES d'options, pas d'une contrainte de
|
|
61
|
+
* saisie : le standard range les « simple dropdowns » en `m` et les « long
|
|
62
|
+
* dropdowns » en `l`. Ne s'applique pas en mode `readOnly`.
|
|
63
|
+
*/
|
|
64
|
+
width?: FieldWidth | undefined;
|
|
57
65
|
onSelectionChange?: ((picked: TOption | null) => void) | undefined;
|
|
58
66
|
}
|
|
59
|
-
declare const FormikSelect: <TOption>({ name, label, required, hint, options, getOptionValue, getOptionLabel, loading, disabled, readOnly, mono, placeholder, htmlFor, onSelectionChange, ...rest }: FormikSelectProps<TOption>) => React.JSX.Element;
|
|
67
|
+
declare const FormikSelect: <TOption>({ name, label, required, hint, options, getOptionValue, getOptionLabel, loading, disabled, readOnly, mono, placeholder, htmlFor, width, onSelectionChange, ...rest }: FormikSelectProps<TOption>) => React.JSX.Element;
|
|
60
68
|
export default FormikSelect;
|
|
61
69
|
//# sourceMappingURL=FormikSelect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikSelect.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAsB9B,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAClD,SAAQ,IAAI,CACV,WAAW,EACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,OAAO,GACP,UAAU,GACV,OAAO,GAKP,KAAK,CACR;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACnE,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACjE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACpE;AAED,QAAA,MAAM,YAAY,GAAI,OAAO,EAAG
|
|
1
|
+
{"version":3,"file":"FormikSelect.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAsB9B,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAClD,SAAQ,IAAI,CACV,WAAW,EACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,OAAO,GACP,UAAU,GACV,OAAO,GAKP,KAAK,CACR;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACnE,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACjE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACpE;AAED,QAAA,MAAM,YAAY,GAAI,OAAO,EAAG,sKAiB7B,iBAAiB,CAAC,OAAO,CAAC,sBA0E5B,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -10,7 +10,7 @@ var _Field = _interopRequireDefault(require("../components/Field"));
|
|
|
10
10
|
var _Select = _interopRequireWildcard(require("../components/Select"));
|
|
11
11
|
var _FormikDisplay = _interopRequireDefault(require("../components/FormikDisplay"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
var _excluded = ["name", "label", "required", "hint", "options", "getOptionValue", "getOptionLabel", "loading", "disabled", "readOnly", "mono", "placeholder", "htmlFor", "onSelectionChange"];
|
|
13
|
+
var _excluded = ["name", "label", "required", "hint", "options", "getOptionValue", "getOptionLabel", "loading", "disabled", "readOnly", "mono", "placeholder", "htmlFor", "width", "onSelectionChange"];
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -87,6 +87,7 @@ var FormikSelect = function FormikSelect(_ref) {
|
|
|
87
87
|
mono = _ref.mono,
|
|
88
88
|
placeholder = _ref.placeholder,
|
|
89
89
|
htmlFor = _ref.htmlFor,
|
|
90
|
+
width = _ref.width,
|
|
90
91
|
onSelectionChange = _ref.onSelectionChange,
|
|
91
92
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
92
93
|
var _useField = (0, _formik.useField)(name),
|
|
@@ -141,7 +142,7 @@ var FormikSelect = function FormikSelect(_ref) {
|
|
|
141
142
|
}
|
|
142
143
|
}));
|
|
143
144
|
}
|
|
144
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread({
|
|
145
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread({
|
|
145
146
|
label: label,
|
|
146
147
|
error: hasError ? meta.error : null,
|
|
147
148
|
hint: !hasError ? hint : undefined,
|
|
@@ -149,6 +150,8 @@ var FormikSelect = function FormikSelect(_ref) {
|
|
|
149
150
|
disabled: disabled
|
|
150
151
|
}, required !== undefined ? {
|
|
151
152
|
required: required
|
|
153
|
+
} : {}), width !== undefined ? {
|
|
154
|
+
width: width
|
|
152
155
|
} : {}), {}, {
|
|
153
156
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select["default"], _objectSpread(_objectSpread({
|
|
154
157
|
value: (_field$value = field.value) !== null && _field$value !== void 0 ? _field$value : "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikSelect.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Select","_FormikDisplay","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultGetOptionValue","opt","rec","defaultGetOptionLabel","FormikSelect","_ref","_field$value","label","required","_ref$options","options","_ref$getOptionValue","getOptionValue","_ref$getOptionLabel","getOptionLabel","_ref$loading","loading","_ref$disabled","disabled","_ref$readOnly","readOnly","mono","placeholder","htmlFor","onSelectionChange","rest","_useField","useField","_useField2","field","meta","_useFormikContext","useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","v2Options","map","raw","__raw","handleChange","e","found","find","picked","resolvedPlaceholder","jsx","format","match","sameOptionValue","labelFromValue","children","onChange","onBlur","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikSelect.tsx"],"sourcesContent":["/**\r\n * FormikSelect — bridge between Formik state and v2.Field + v2.Select.\r\n *\r\n * Charter §03 · R-Sel.1 → R-Sel.5. Peer dependency: formik >= 2.x.\r\n *\r\n * Use for short / medium option lists. For large referential lists that\r\n * need free-text filtering, prefer FormikCombobox, or pass `searchThreshold`\r\n * straight through to the underlying v2.Select.\r\n *\r\n * Maps caller-supplied raw options to v2.Select's {value, label} shape and\r\n * exposes onSelectionChange(rawOption) for consumers that need cross-field\r\n * side effects on pick.\r\n *\r\n * <FormikSelect\r\n * name=\"bureau\"\r\n * label=\"Bureau douanier\"\r\n * options={bureaux}\r\n * getOptionValue={(b) => b.id}\r\n * getOptionLabel={(b) => b.libelle}\r\n * />\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Select from \"../components/Select\";\r\nimport FormikDisplay from \"../components/FormikDisplay\";\r\nimport { labelFromValue, sameOptionValue } from \"../components/Select\";\r\nimport type {\r\n SelectOptionValue,\r\n SelectProps,\r\n SelectValue,\r\n SelectChangeLike,\r\n} from \"../components/Select\";\r\n\r\nfunction defaultGetOptionValue(opt: unknown): SelectOptionValue {\r\n if (opt == null || typeof opt !== \"object\") return opt as SelectOptionValue;\r\n const rec = opt as Record<string, unknown>;\r\n if (rec[\"value\"] !== undefined && rec[\"value\"] !== null) return rec[\"value\"] as SelectOptionValue;\r\n if (rec[\"id\"] !== undefined && rec[\"id\"] !== null) return rec[\"id\"] as SelectOptionValue;\r\n // Unreachable for well-formed options: an object exposing neither value nor\r\n // id can never be a valid Select value/key, so collapse to empty selection.\r\n return \"\";\r\n}\r\n\r\nfunction defaultGetOptionLabel(opt: unknown): string {\r\n if (opt == null) return \"\";\r\n if (typeof opt !== \"object\") return String(opt);\r\n const rec = opt as Record<string, unknown>;\r\n if (rec[\"description\"]) return String(rec[\"description\"]);\r\n if (rec[\"label\"]) return String(rec[\"label\"]);\r\n if (rec[\"code\"]) return String(rec[\"code\"]);\r\n return String(opt);\r\n}\r\n\r\nexport interface FormikSelectProps<TOption = unknown>\r\n extends Omit<\r\n SelectProps,\r\n | \"value\"\r\n | \"onChange\"\r\n | \"onBlur\"\r\n | \"options\"\r\n | \"disabled\"\r\n | \"placeholder\"\r\n | \"label\"\r\n | \"required\"\r\n | \"error\"\r\n // SelectProps carries its own loosely-typed `ref` (Ref<unknown>, likely\r\n // inherited from its underlying MUI base) that isn't the real ref for\r\n // this wrapper. Excluding it here stops it leaking into ...rest below\r\n // and colliding with <Select>'s real RefAttributes<HTMLInputElement>.\r\n | \"ref\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n required?: boolean | undefined;\r\n hint?: React.ReactNode | undefined;\r\n options?: TOption[] | undefined;\r\n getOptionValue?: ((opt: TOption) => SelectOptionValue) | undefined;\r\n getOptionLabel?: ((opt: TOption) => React.ReactNode) | undefined;\r\n loading?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n /**\r\n * Render the RESOLVED OPTION LABEL as read-only text via FormikDisplay,\r\n * instead of a Select.\r\n *\r\n * Resolution matters here in a way it does not for FormikInput: the Formik\r\n * value is whatever `getOptionValue` produced — often a code, sometimes a\r\n * whole referentiel object — and printing it raw would show\r\n * \"DOMAIN_ACTIVITE_1\" where the user expects \"Domaine médical\". So the value is\r\n * matched back against `options` and `getOptionLabel` supplies the text.\r\n *\r\n * Matching goes through the same `sameOptionValue` the Select itself uses, so\r\n * a value seeded from an API payload still matches a separately-fetched\r\n * option (structural comparison, not reference identity). When nothing\r\n * matches, `labelFromValue` derives something readable from the value rather\r\n * than showing a code.\r\n *\r\n * `disabled` wins when both are passed — same rule as FormikInput.\r\n */\r\n readOnly?: boolean | undefined;\r\n /** Tabular-nums monospace in read-only mode. */\r\n mono?: boolean | undefined;\r\n placeholder?: string | undefined;\r\n htmlFor?: string | undefined;\r\n onSelectionChange?: ((picked: TOption | null) => void) | undefined;\r\n}\r\n\r\nconst FormikSelect = <TOption,>({\r\n name,\r\n label,\r\n required,\r\n hint,\r\n options = [],\r\n getOptionValue = defaultGetOptionValue,\r\n getOptionLabel = defaultGetOptionLabel,\r\n loading = false,\r\n disabled = false,\r\n readOnly = false,\r\n mono,\r\n placeholder,\r\n htmlFor,\r\n onSelectionChange,\r\n ...rest\r\n}: FormikSelectProps<TOption>) => {\r\n const [field, meta] = useField<SelectValue>(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n const v2Options = options.map(\r\n (opt): string | { value: SelectOptionValue; label: React.ReactNode; __raw: TOption } => {\r\n const raw: unknown = opt;\r\n if (raw == null || typeof raw !== \"object\") return raw as string;\r\n return {\r\n value: getOptionValue(opt),\r\n label: getOptionLabel(opt),\r\n __raw: opt,\r\n };\r\n },\r\n );\r\n\r\n const handleChange = (e: SelectChangeLike) => {\r\n const next = e && e.target ? e.target.value : e;\r\n setFieldValue(name, next === \"\" ? null : next);\r\n setFieldTouched(name, true, false);\r\n if (typeof onSelectionChange === \"function\") {\r\n const found = v2Options.find(\r\n (o) => typeof o === \"object\" && o !== null && o.value === next,\r\n );\r\n const picked = found && typeof found === \"object\" ? found.__raw : null;\r\n onSelectionChange(picked);\r\n }\r\n };\r\n\r\n const resolvedPlaceholder = loading ? \"Chargement…\" : placeholder;\r\n\r\n /* Lecture seule : on résout le libellé de l'option avant de déléguer, sinon\r\n * FormikDisplay afficherait la VALEUR brute (un code, ou un objet dont il ne\r\n * lirait que `.description`). */\r\n if (readOnly && !disabled) {\r\n return (\r\n <FormikDisplay\r\n name={name}\r\n label={label}\r\n {...(hint !== undefined ? { hint } : {})}\r\n {...(mono !== undefined ? { mono } : {})}\r\n format={(raw) => {\r\n const match = options.find((opt) =>\r\n sameOptionValue(getOptionValue(opt), raw),\r\n );\r\n if (match !== undefined) return getOptionLabel(match);\r\n return labelFromValue(raw);\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n disabled={disabled}\r\n {...(required !== undefined ? { required } : {})}\r\n >\r\n <Select\r\n value={field.value ?? \"\"}\r\n onChange={handleChange}\r\n onBlur={field.onBlur}\r\n options={v2Options}\r\n disabled={Boolean(disabled || loading)}\r\n {...rest}\r\n {...(resolvedPlaceholder !== undefined ? { placeholder: resolvedPlaceholder } : {})}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikSelect;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormikSelect.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Select","_FormikDisplay","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultGetOptionValue","opt","rec","defaultGetOptionLabel","FormikSelect","_ref","_field$value","label","required","_ref$options","options","_ref$getOptionValue","getOptionValue","_ref$getOptionLabel","getOptionLabel","_ref$loading","loading","_ref$disabled","disabled","_ref$readOnly","readOnly","mono","placeholder","htmlFor","width","onSelectionChange","rest","_useField","useField","_useField2","field","meta","_useFormikContext","useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","v2Options","map","raw","__raw","handleChange","e","found","find","picked","resolvedPlaceholder","jsx","format","match","sameOptionValue","labelFromValue","children","onChange","onBlur","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikSelect.tsx"],"sourcesContent":["/**\r\n * FormikSelect — bridge between Formik state and v2.Field + v2.Select.\r\n *\r\n * Charter §03 · R-Sel.1 → R-Sel.5. Peer dependency: formik >= 2.x.\r\n *\r\n * Use for short / medium option lists. For large referential lists that\r\n * need free-text filtering, prefer FormikCombobox, or pass `searchThreshold`\r\n * straight through to the underlying v2.Select.\r\n *\r\n * Maps caller-supplied raw options to v2.Select's {value, label} shape and\r\n * exposes onSelectionChange(rawOption) for consumers that need cross-field\r\n * side effects on pick.\r\n *\r\n * <FormikSelect\r\n * name=\"bureau\"\r\n * label=\"Bureau douanier\"\r\n * options={bureaux}\r\n * getOptionValue={(b) => b.id}\r\n * getOptionLabel={(b) => b.libelle}\r\n * />\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Select from \"../components/Select\";\r\nimport FormikDisplay from \"../components/FormikDisplay\";\r\nimport { labelFromValue, sameOptionValue } from \"../components/Select\";\r\nimport type { FieldWidth } from \"../components/Field\";\r\nimport type {\r\n SelectOptionValue,\r\n SelectProps,\r\n SelectValue,\r\n SelectChangeLike,\r\n} from \"../components/Select\";\r\n\r\nfunction defaultGetOptionValue(opt: unknown): SelectOptionValue {\r\n if (opt == null || typeof opt !== \"object\") return opt as SelectOptionValue;\r\n const rec = opt as Record<string, unknown>;\r\n if (rec[\"value\"] !== undefined && rec[\"value\"] !== null) return rec[\"value\"] as SelectOptionValue;\r\n if (rec[\"id\"] !== undefined && rec[\"id\"] !== null) return rec[\"id\"] as SelectOptionValue;\r\n // Unreachable for well-formed options: an object exposing neither value nor\r\n // id can never be a valid Select value/key, so collapse to empty selection.\r\n return \"\";\r\n}\r\n\r\nfunction defaultGetOptionLabel(opt: unknown): string {\r\n if (opt == null) return \"\";\r\n if (typeof opt !== \"object\") return String(opt);\r\n const rec = opt as Record<string, unknown>;\r\n if (rec[\"description\"]) return String(rec[\"description\"]);\r\n if (rec[\"label\"]) return String(rec[\"label\"]);\r\n if (rec[\"code\"]) return String(rec[\"code\"]);\r\n return String(opt);\r\n}\r\n\r\nexport interface FormikSelectProps<TOption = unknown>\r\n extends Omit<\r\n SelectProps,\r\n | \"value\"\r\n | \"onChange\"\r\n | \"onBlur\"\r\n | \"options\"\r\n | \"disabled\"\r\n | \"placeholder\"\r\n | \"label\"\r\n | \"required\"\r\n | \"error\"\r\n // SelectProps carries its own loosely-typed `ref` (Ref<unknown>, likely\r\n // inherited from its underlying MUI base) that isn't the real ref for\r\n // this wrapper. Excluding it here stops it leaking into ...rest below\r\n // and colliding with <Select>'s real RefAttributes<HTMLInputElement>.\r\n | \"ref\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n required?: boolean | undefined;\r\n hint?: React.ReactNode | undefined;\r\n options?: TOption[] | undefined;\r\n getOptionValue?: ((opt: TOption) => SelectOptionValue) | undefined;\r\n getOptionLabel?: ((opt: TOption) => React.ReactNode) | undefined;\r\n loading?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n /**\r\n * Render the RESOLVED OPTION LABEL as read-only text via FormikDisplay,\r\n * instead of a Select.\r\n *\r\n * Resolution matters here in a way it does not for FormikInput: the Formik\r\n * value is whatever `getOptionValue` produced — often a code, sometimes a\r\n * whole referentiel object — and printing it raw would show\r\n * \"DOMAIN_ACTIVITE_1\" where the user expects \"Domaine médical\". So the value is\r\n * matched back against `options` and `getOptionLabel` supplies the text.\r\n *\r\n * Matching goes through the same `sameOptionValue` the Select itself uses, so\r\n * a value seeded from an API payload still matches a separately-fetched\r\n * option (structural comparison, not reference identity). When nothing\r\n * matches, `labelFromValue` derives something readable from the value rather\r\n * than showing a code.\r\n *\r\n * `disabled` wins when both are passed — same rule as FormikInput.\r\n */\r\n readOnly?: boolean | undefined;\r\n /** Tabular-nums monospace in read-only mode. */\r\n mono?: boolean | undefined;\r\n placeholder?: string | undefined;\r\n htmlFor?: string | undefined;\r\n /**\r\n * Gabarit de largeur semantique (G-H). Sur un select, le gabarit se choisit\r\n * d'apres la longueur des LIBELLES d'options, pas d'une contrainte de\r\n * saisie : le standard range les « simple dropdowns » en `m` et les « long\r\n * dropdowns » en `l`. Ne s'applique pas en mode `readOnly`.\r\n */\r\n width?: FieldWidth | undefined;\r\n onSelectionChange?: ((picked: TOption | null) => void) | undefined;\r\n}\r\n\r\nconst FormikSelect = <TOption,>({\r\n name,\r\n label,\r\n required,\r\n hint,\r\n options = [],\r\n getOptionValue = defaultGetOptionValue,\r\n getOptionLabel = defaultGetOptionLabel,\r\n loading = false,\r\n disabled = false,\r\n readOnly = false,\r\n mono,\r\n placeholder,\r\n htmlFor,\r\n width,\r\n onSelectionChange,\r\n ...rest\r\n}: FormikSelectProps<TOption>) => {\r\n const [field, meta] = useField<SelectValue>(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n const v2Options = options.map(\r\n (opt): string | { value: SelectOptionValue; label: React.ReactNode; __raw: TOption } => {\r\n const raw: unknown = opt;\r\n if (raw == null || typeof raw !== \"object\") return raw as string;\r\n return {\r\n value: getOptionValue(opt),\r\n label: getOptionLabel(opt),\r\n __raw: opt,\r\n };\r\n },\r\n );\r\n\r\n const handleChange = (e: SelectChangeLike) => {\r\n const next = e && e.target ? e.target.value : e;\r\n setFieldValue(name, next === \"\" ? null : next);\r\n setFieldTouched(name, true, false);\r\n if (typeof onSelectionChange === \"function\") {\r\n const found = v2Options.find(\r\n (o) => typeof o === \"object\" && o !== null && o.value === next,\r\n );\r\n const picked = found && typeof found === \"object\" ? found.__raw : null;\r\n onSelectionChange(picked);\r\n }\r\n };\r\n\r\n const resolvedPlaceholder = loading ? \"Chargement…\" : placeholder;\r\n\r\n /* Lecture seule : on résout le libellé de l'option avant de déléguer, sinon\r\n * FormikDisplay afficherait la VALEUR brute (un code, ou un objet dont il ne\r\n * lirait que `.description`). */\r\n if (readOnly && !disabled) {\r\n return (\r\n <FormikDisplay\r\n name={name}\r\n label={label}\r\n {...(hint !== undefined ? { hint } : {})}\r\n {...(mono !== undefined ? { mono } : {})}\r\n format={(raw) => {\r\n const match = options.find((opt) =>\r\n sameOptionValue(getOptionValue(opt), raw),\r\n );\r\n if (match !== undefined) return getOptionLabel(match);\r\n return labelFromValue(raw);\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n disabled={disabled}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(width !== undefined ? { width } : {})}\r\n >\r\n <Select\r\n value={field.value ?? \"\"}\r\n onChange={handleChange}\r\n onBlur={field.onBlur}\r\n options={v2Options}\r\n disabled={Boolean(disabled || loading)}\r\n {...rest}\r\n {...(resolvedPlaceholder !== undefined ? { placeholder: resolvedPlaceholder } : {})}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikSelect;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* Charter §03 / R-I.1 → R-I.6. Peer dependency: `formik` >= 2.x.
|
|
18
18
|
*/
|
|
19
19
|
import * as React from "react";
|
|
20
|
+
import type { FieldWidth } from "../components/Field";
|
|
20
21
|
import type { TextareaProps } from "../components/Textarea";
|
|
21
22
|
export interface FormikTextareaProps extends Omit<TextareaProps, "name" | "value" | "onChange" | "onBlur" | "label" | "required" | "disabled" | "error"> {
|
|
22
23
|
name: string;
|
|
@@ -25,7 +26,14 @@ export interface FormikTextareaProps extends Omit<TextareaProps, "name" | "value
|
|
|
25
26
|
disabled?: boolean | undefined;
|
|
26
27
|
htmlFor?: string | undefined;
|
|
27
28
|
hint?: React.ReactNode | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Gabarit de largeur semantique (G-H). Sur une zone de texte, le standard
|
|
31
|
+
* range les descriptions et les editeurs en `xl` (pleine largeur du bloc) :
|
|
32
|
+
* c'est donc rarement autre chose, mais la prop existe pour les cas ou la
|
|
33
|
+
* zone est courte et bornee.
|
|
34
|
+
*/
|
|
35
|
+
width?: FieldWidth | undefined;
|
|
28
36
|
}
|
|
29
|
-
declare const FormikTextarea: ({ name, label, required, rows, htmlFor, hint, disabled, ...rest }: FormikTextareaProps) => React.JSX.Element;
|
|
37
|
+
declare const FormikTextarea: ({ name, label, required, rows, htmlFor, hint, disabled, width, ...rest }: FormikTextareaProps) => React.JSX.Element;
|
|
30
38
|
export default FormikTextarea;
|
|
31
39
|
//# sourceMappingURL=FormikTextarea.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikTextarea.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikTextarea.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,aAAa,EACb,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CACvF;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FormikTextarea.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikTextarea.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,aAAa,EACb,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CACvF;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAChC;AAED,QAAA,MAAM,cAAc,GAAI,0EAUrB,mBAAmB,sBAwBrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -10,7 +10,7 @@ var _formik = require("formik");
|
|
|
10
10
|
var _Field = _interopRequireDefault(require("../components/Field"));
|
|
11
11
|
var _Textarea = _interopRequireDefault(require("../components/Textarea"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
var _excluded = ["name", "label", "required", "rows", "htmlFor", "hint", "disabled"];
|
|
13
|
+
var _excluded = ["name", "label", "required", "rows", "htmlFor", "hint", "disabled", "width"];
|
|
14
14
|
/**
|
|
15
15
|
* FormikTextarea — bridge between Formik state and v2.Field + v2.Textarea.
|
|
16
16
|
*
|
|
@@ -55,13 +55,14 @@ var FormikTextarea = function FormikTextarea(_ref) {
|
|
|
55
55
|
htmlFor = _ref.htmlFor,
|
|
56
56
|
hint = _ref.hint,
|
|
57
57
|
disabled = _ref.disabled,
|
|
58
|
+
width = _ref.width,
|
|
58
59
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
59
60
|
var _useField = (0, _formik.useField)(name),
|
|
60
61
|
_useField2 = _slicedToArray(_useField, 2),
|
|
61
62
|
field = _useField2[0],
|
|
62
63
|
meta = _useField2[1];
|
|
63
64
|
var hasError = Boolean(meta.touched && meta.error);
|
|
64
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread({
|
|
65
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
65
66
|
label: label,
|
|
66
67
|
error: hasError ? meta.error : null,
|
|
67
68
|
hint: !hasError ? hint : undefined,
|
|
@@ -70,6 +71,8 @@ var FormikTextarea = function FormikTextarea(_ref) {
|
|
|
70
71
|
required: required
|
|
71
72
|
} : {}), disabled !== undefined ? {
|
|
72
73
|
disabled: disabled
|
|
74
|
+
} : {}), width !== undefined ? {
|
|
75
|
+
width: width
|
|
73
76
|
} : {}), {}, {
|
|
74
77
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Textarea["default"], _objectSpread({
|
|
75
78
|
name: field.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormikTextarea.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Textarea","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FormikTextarea","_ref","_field$value","label","required","_ref$rows","rows","htmlFor","disabled","rest","_useField","useField","_useField2","field","meta","hasError","Boolean","touched","error","jsx","children","onChange","onBlur","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikTextarea.tsx"],"sourcesContent":["/**\r\n * FormikTextarea — bridge between Formik state and v2.Field + v2.Textarea.\r\n *\r\n * Default rows = 4 (matches the legacy Pui multiline default\r\n * across ms-ti-fe / addpe-fe usage).\r\n *\r\n * Usage:\r\n *\r\n * import { FormikTextarea } from \"@portnet/ui/lib/v2\";\r\n *\r\n * <FormikTextarea\r\n * name=\"observation\"\r\n * label=\"Observations\"\r\n * rows={4}\r\n * />\r\n *\r\n * Charter §03 / R-I.1 → R-I.6. Peer dependency: `formik` >= 2.x.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Textarea from \"../components/Textarea\";\r\nimport type { TextareaProps } from \"../components/Textarea\";\r\n\r\nexport interface FormikTextareaProps\r\n extends Omit<\r\n TextareaProps,\r\n \"name\" | \"value\" | \"onChange\" | \"onBlur\" | \"label\" | \"required\" | \"disabled\" | \"error\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n htmlFor?: string | undefined;\r\n hint?: React.ReactNode | undefined;\r\n}\r\n\r\nconst FormikTextarea = ({\r\n name,\r\n label,\r\n required,\r\n rows = 4,\r\n htmlFor,\r\n hint,\r\n disabled,\r\n ...rest\r\n}: FormikTextareaProps) => {\r\n const [field, meta] = useField<string>(name);\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <Textarea\r\n name={field.name}\r\n value={field.value ?? \"\"}\r\n onChange={field.onChange}\r\n onBlur={field.onBlur}\r\n rows={rows}\r\n {...rest}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikTextarea;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormikTextarea.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Textarea","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FormikTextarea","_ref","_field$value","label","required","_ref$rows","rows","htmlFor","disabled","width","rest","_useField","useField","_useField2","field","meta","hasError","Boolean","touched","error","jsx","children","onChange","onBlur","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikTextarea.tsx"],"sourcesContent":["/**\r\n * FormikTextarea — bridge between Formik state and v2.Field + v2.Textarea.\r\n *\r\n * Default rows = 4 (matches the legacy Pui multiline default\r\n * across ms-ti-fe / addpe-fe usage).\r\n *\r\n * Usage:\r\n *\r\n * import { FormikTextarea } from \"@portnet/ui/lib/v2\";\r\n *\r\n * <FormikTextarea\r\n * name=\"observation\"\r\n * label=\"Observations\"\r\n * rows={4}\r\n * />\r\n *\r\n * Charter §03 / R-I.1 → R-I.6. Peer dependency: `formik` >= 2.x.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Textarea from \"../components/Textarea\";\r\nimport type { FieldWidth } from \"../components/Field\";\r\nimport type { TextareaProps } from \"../components/Textarea\";\r\n\r\nexport interface FormikTextareaProps\r\n extends Omit<\r\n TextareaProps,\r\n \"name\" | \"value\" | \"onChange\" | \"onBlur\" | \"label\" | \"required\" | \"disabled\" | \"error\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n htmlFor?: string | undefined;\r\n hint?: React.ReactNode | undefined;\r\n /**\r\n * Gabarit de largeur semantique (G-H). Sur une zone de texte, le standard\r\n * range les descriptions et les editeurs en `xl` (pleine largeur du bloc) :\r\n * c'est donc rarement autre chose, mais la prop existe pour les cas ou la\r\n * zone est courte et bornee.\r\n */\r\n width?: FieldWidth | undefined;\r\n}\r\n\r\nconst FormikTextarea = ({\r\n name,\r\n label,\r\n required,\r\n rows = 4,\r\n htmlFor,\r\n hint,\r\n disabled,\r\n width,\r\n ...rest\r\n}: FormikTextareaProps) => {\r\n const [field, meta] = useField<string>(name);\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n {...(width !== undefined ? { width } : {})}\r\n >\r\n <Textarea\r\n name={field.name}\r\n value={field.value ?? \"\"}\r\n onChange={field.onChange}\r\n onBlur={field.onBlur}\r\n rows={rows}\r\n {...rest}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikTextarea;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,7 +38,20 @@ export interface KeyboardShortcutsHelpProps {
|
|
|
38
38
|
shortcuts?: KeyboardShortcut[] | undefined;
|
|
39
39
|
title?: React.ReactNode | undefined;
|
|
40
40
|
labels?: KeyboardShortcutsHelpLabels | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Optional CONTROLLED open state. Omit for the original self-contained
|
|
43
|
+
* behaviour (the "?" listener owns the state).
|
|
44
|
+
*
|
|
45
|
+
* Added because the panel had no trigger but the keystroke. Hosts wired it
|
|
46
|
+
* correctly and users still reported the shortcuts "missing" — they are, in
|
|
47
|
+
* every practical sense, if the only affordance is a key you have to already
|
|
48
|
+
* know about. Charter §05.2 asks for DISCOVERABLE help, and a host cannot add
|
|
49
|
+
* a menu item or button without being able to open this.
|
|
50
|
+
*/
|
|
51
|
+
open?: boolean | undefined;
|
|
52
|
+
/** Called with the requested next state, for both "?" and the close button. */
|
|
53
|
+
onOpenChange?: ((open: boolean) => void) | undefined;
|
|
41
54
|
}
|
|
42
|
-
declare function KeyboardShortcutsHelp({ shortcuts, title, labels, }: KeyboardShortcutsHelpProps): React.JSX.Element | null;
|
|
55
|
+
declare function KeyboardShortcutsHelp({ shortcuts, title, labels, open, onOpenChange, }: KeyboardShortcutsHelpProps): React.JSX.Element | null;
|
|
43
56
|
export default KeyboardShortcutsHelp;
|
|
44
57
|
//# sourceMappingURL=KeyboardShortcutsHelp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardShortcutsHelp.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/KeyboardShortcutsHelp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoF/B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyboardShortcutsHelp.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/KeyboardShortcutsHelp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoF/B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACjD;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACtD;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAc,EACd,KAA4B,EAC5B,MAAM,EACN,IAAI,EACJ,YAAY,GACb,EAAE,0BAA0B,4BAsF5B;AAED,eAAe,qBAAqB,CAAC"}
|