@algolia/satellite 1.0.0 → 1.1.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/cjs/AutoComplete/AutoComplete.d.ts +1 -1
- package/dist/cjs/AutoComplete/AutoComplete.js +49 -26
- package/dist/cjs/AutoComplete/AutoComplete.tailwind.js +9 -1
- package/dist/cjs/AutoComplete/types.d.ts +1 -0
- package/dist/cjs/Checkbox/Checkbox.d.ts +1 -1
- package/dist/cjs/Checkbox/Checkbox.js +21 -13
- package/dist/cjs/Checkbox/Checkbox.tailwind.js +8 -2
- package/dist/cjs/DatePicker/DatePicker/DatePicker.d.ts +4 -2
- package/dist/cjs/DatePicker/DatePicker/DatePicker.js +18 -7
- package/dist/cjs/DatePicker/components/Display.d.ts +3 -3
- package/dist/cjs/DatePicker/components/Display.js +16 -5
- package/dist/cjs/Dropzone/Dropzone.d.ts +4 -2
- package/dist/cjs/Dropzone/Dropzone.js +23 -12
- package/dist/cjs/Field/Field.d.ts +1 -0
- package/dist/cjs/Field/Field.js +63 -11
- package/dist/cjs/Field/FieldContext.d.ts +3 -0
- package/dist/cjs/Field/useField.d.ts +4 -1
- package/dist/cjs/Field/useField.js +17 -1
- package/dist/cjs/Form/Form.d.ts +16 -0
- package/dist/cjs/Form/Form.js +140 -0
- package/dist/cjs/Form/FormContext.d.ts +13 -0
- package/dist/cjs/Form/FormContext.js +8 -0
- package/dist/cjs/Form/index.d.ts +3 -0
- package/dist/cjs/Form/index.js +27 -0
- package/dist/cjs/Form/stories/AsynchronousValidation.js +396 -0
- package/dist/cjs/Form/stories/Complex.js +928 -0
- package/dist/cjs/Form/stories/DependentFieldsValidation.js +249 -0
- package/dist/cjs/Form/stories/DirtyFields.js +339 -0
- package/dist/cjs/Form/stories/DynamicFieldsValidation.js +425 -0
- package/dist/cjs/Form/stories/FieldArrays.js +549 -0
- package/dist/cjs/Form/stories/ValidationStrategies.js +455 -0
- package/dist/cjs/Form/stories/utils/useFormikAutoFocusOnError.js +22 -0
- package/dist/cjs/Form/useForm.d.ts +1 -0
- package/dist/cjs/Form/useForm.js +11 -0
- package/dist/cjs/Input/Input.js +22 -9
- package/dist/cjs/Input/Input.tailwind.js +7 -2
- package/dist/cjs/Pagination/DotPagination/DotPagination.d.ts +1 -1
- package/dist/cjs/RadioGroup/RadioButton.d.ts +1 -1
- package/dist/cjs/RadioGroup/RadioButton.js +16 -3
- package/dist/cjs/RadioGroup/RadioButton.tailwind.js +23 -0
- package/dist/cjs/RadioGroup/RadioGroup.d.ts +7 -5
- package/dist/cjs/RadioGroup/RadioGroup.js +78 -16
- package/dist/cjs/RadioGroup/{RadiogroupContext.d.ts → RadioGroupContext.d.ts} +8 -1
- package/dist/cjs/RangeSlider/RangeSlider.d.ts +2 -3
- package/dist/cjs/RangeSlider/RangeSlider.js +27 -10
- package/dist/cjs/Satellite/locale.d.ts +2 -0
- package/dist/cjs/Select/Select.js +39 -6
- package/dist/cjs/Select/Select.tailwind.js +19 -0
- package/dist/cjs/Stepper/Step.js +2 -2
- package/dist/cjs/Switch/Switch.js +2 -2
- package/dist/cjs/Switch/SwitchOption.js +3 -3
- package/dist/cjs/Tables/DataTable/DataTable.d.ts +1 -1
- package/dist/cjs/Tag/Tag.d.ts +1 -1
- package/dist/cjs/TextArea/TextArea.d.ts +1 -0
- package/dist/cjs/TextArea/TextArea.js +47 -8
- package/dist/cjs/TextArea/TextArea.tailwind.js +41 -4
- package/dist/cjs/Toggle/Toggle.d.ts +1 -1
- package/dist/cjs/Toggle/Toggle.js +23 -6
- package/dist/cjs/Toggle/Toggle.tailwind.js +9 -0
- package/dist/cjs/Tooltip/Tooltip.d.ts +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/utils/isCssPropertySupported.d.ts +1 -1
- package/dist/cjs/utils/mergeRefs.d.ts +2 -0
- package/dist/cjs/utils/mergeRefs.js +17 -0
- package/dist/esm/AutoComplete/AutoComplete.d.ts +1 -1
- package/dist/esm/AutoComplete/AutoComplete.js +52 -27
- package/dist/esm/AutoComplete/AutoComplete.tailwind.js +9 -1
- package/dist/esm/AutoComplete/types.d.ts +1 -0
- package/dist/esm/Checkbox/Checkbox.d.ts +1 -1
- package/dist/esm/Checkbox/Checkbox.js +21 -13
- package/dist/esm/Checkbox/Checkbox.tailwind.js +8 -2
- package/dist/esm/DatePicker/DatePicker/DatePicker.d.ts +4 -2
- package/dist/esm/DatePicker/DatePicker/DatePicker.js +19 -8
- package/dist/esm/DatePicker/components/Display.d.ts +3 -3
- package/dist/esm/DatePicker/components/Display.js +15 -5
- package/dist/esm/Dropzone/Dropzone.d.ts +4 -2
- package/dist/esm/Dropzone/Dropzone.js +24 -13
- package/dist/esm/Field/Field.d.ts +1 -0
- package/dist/esm/Field/Field.js +64 -12
- package/dist/esm/Field/FieldContext.d.ts +3 -0
- package/dist/esm/Field/useField.d.ts +4 -1
- package/dist/esm/Field/useField.js +17 -2
- package/dist/esm/Form/Form.d.ts +16 -0
- package/dist/esm/Form/Form.js +135 -0
- package/dist/esm/Form/FormContext.d.ts +13 -0
- package/dist/esm/Form/FormContext.js +2 -0
- package/dist/esm/Form/index.d.ts +3 -0
- package/dist/esm/Form/index.js +3 -0
- package/dist/esm/Form/stories/AsynchronousValidation.js +387 -0
- package/dist/esm/Form/stories/Complex.js +919 -0
- package/dist/esm/Form/stories/DependentFieldsValidation.js +240 -0
- package/dist/esm/Form/stories/DirtyFields.js +330 -0
- package/dist/esm/Form/stories/DynamicFieldsValidation.js +416 -0
- package/dist/esm/Form/stories/FieldArrays.js +544 -0
- package/dist/esm/Form/stories/ValidationStrategies.js +446 -0
- package/dist/esm/Form/stories/utils/useFormikAutoFocusOnError.js +16 -0
- package/dist/esm/Form/useForm.d.ts +1 -0
- package/dist/esm/Form/useForm.js +5 -0
- package/dist/esm/Input/Input.js +22 -9
- package/dist/esm/Input/Input.tailwind.js +7 -2
- package/dist/esm/Pagination/DotPagination/DotPagination.d.ts +1 -1
- package/dist/esm/RadioGroup/RadioButton.d.ts +1 -1
- package/dist/esm/RadioGroup/RadioButton.js +16 -3
- package/dist/esm/RadioGroup/RadioButton.tailwind.js +23 -0
- package/dist/esm/RadioGroup/RadioGroup.d.ts +7 -5
- package/dist/esm/RadioGroup/RadioGroup.js +77 -15
- package/dist/esm/RadioGroup/{RadiogroupContext.d.ts → RadioGroupContext.d.ts} +8 -1
- package/dist/esm/RangeSlider/RangeSlider.d.ts +2 -3
- package/dist/esm/RangeSlider/RangeSlider.js +27 -10
- package/dist/esm/Satellite/locale.d.ts +2 -0
- package/dist/esm/Select/Select.js +41 -7
- package/dist/esm/Select/Select.tailwind.js +19 -0
- package/dist/esm/Stepper/Step.js +2 -2
- package/dist/esm/Switch/Switch.js +1 -1
- package/dist/esm/Switch/SwitchOption.js +2 -2
- package/dist/esm/Tables/DataTable/DataTable.d.ts +1 -1
- package/dist/esm/Tag/Tag.d.ts +1 -1
- package/dist/esm/TextArea/TextArea.d.ts +1 -0
- package/dist/esm/TextArea/TextArea.js +49 -9
- package/dist/esm/TextArea/TextArea.tailwind.js +41 -4
- package/dist/esm/Toggle/Toggle.d.ts +1 -1
- package/dist/esm/Toggle/Toggle.js +23 -6
- package/dist/esm/Toggle/Toggle.tailwind.js +9 -0
- package/dist/esm/Tooltip/Tooltip.d.ts +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/utils/isCssPropertySupported.d.ts +1 -1
- package/dist/esm/utils/mergeRefs.d.ts +2 -0
- package/dist/esm/utils/mergeRefs.js +11 -0
- package/dist/satellite.min.css +1 -1
- package/package.json +13 -7
- /package/dist/cjs/RadioGroup/{RadiogroupContext.js → RadioGroupContext.js} +0 -0
- /package/dist/esm/RadioGroup/{RadiogroupContext.js → RadioGroupContext.js} +0 -0
@@ -0,0 +1,455 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.RHFValidationStrategiesComponent = exports.FormikValidationStrategiesComponent = void 0;
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
12
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
14
|
+
var _zod = require("@hookform/resolvers/zod");
|
15
|
+
var _formik = require("formik");
|
16
|
+
var _react = require("react");
|
17
|
+
var _reactHookForm = require("react-hook-form");
|
18
|
+
var yup = _interopRequireWildcard(require("yup"));
|
19
|
+
var _zod2 = require("zod");
|
20
|
+
var _Field = require("../../Field");
|
21
|
+
var _Icons = require("../../Icons");
|
22
|
+
var _Input = require("../../Input");
|
23
|
+
var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/satellitePrefixer"));
|
24
|
+
var _Form = require("../Form");
|
25
|
+
var _useFormikAutoFocusOnError = require("./utils/useFormikAutoFocusOnError");
|
26
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
27
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20;
|
28
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
29
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
30
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
31
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
32
|
+
var initialFormData = {
|
33
|
+
cardOwner: "",
|
34
|
+
cardNumber: "",
|
35
|
+
cardExpirationDate: "",
|
36
|
+
cardCVC: ""
|
37
|
+
};
|
38
|
+
|
39
|
+
// From: https://stackoverflow.com/a/30727110/19351131
|
40
|
+
var validateCardNumber = function validateCardNumber(cardNumber) {
|
41
|
+
var sum = 0;
|
42
|
+
var isEven = false;
|
43
|
+
for (var i = cardNumber.length - 1; i >= 0; i--) {
|
44
|
+
var digit = parseInt(cardNumber.charAt(i), 10);
|
45
|
+
if (isEven) {
|
46
|
+
digit *= 2;
|
47
|
+
if (digit > 9) {
|
48
|
+
digit -= 9;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
sum += digit;
|
52
|
+
isEven = !isEven;
|
53
|
+
}
|
54
|
+
return sum % 10 === 0;
|
55
|
+
};
|
56
|
+
var validateExpirationDate = function validateExpirationDate(expirationMonth, expirationYear) {
|
57
|
+
var currentDate = new Date();
|
58
|
+
var currentYear = parseInt(currentDate.getFullYear().toString().slice(-2));
|
59
|
+
var currentMonth = currentDate.getMonth() + 1;
|
60
|
+
return expirationYear > currentYear || expirationYear === currentYear && expirationMonth >= currentMonth;
|
61
|
+
};
|
62
|
+
var validateCVC = function validateCVC(cvc) {
|
63
|
+
var cvcPattern = /^[0-9]{3,4}$/;
|
64
|
+
return cvcPattern.test(cvc);
|
65
|
+
};
|
66
|
+
function formatInputValue(event, digits, separator) {
|
67
|
+
var input = event.target.value.replace(/\D/g, "");
|
68
|
+
var formatted = [];
|
69
|
+
var index = 0;
|
70
|
+
while (index < input.length) {
|
71
|
+
var group = input.substring(index, index + digits);
|
72
|
+
formatted.push(group);
|
73
|
+
index += digits;
|
74
|
+
}
|
75
|
+
return formatted.join(separator);
|
76
|
+
}
|
77
|
+
var zodSchema = _zod2.z.object({
|
78
|
+
cardOwner: _zod2.z.string().min(1, {
|
79
|
+
message: "You must specify a card owner"
|
80
|
+
}),
|
81
|
+
cardNumber: _zod2.z.string().min(1, {
|
82
|
+
message: "You must specify a card number"
|
83
|
+
}).transform(function (value) {
|
84
|
+
return value.replace(/\s/g, "");
|
85
|
+
}).refine(validateCardNumber, {
|
86
|
+
message: "Invalid card number (try: 5555555555554444)"
|
87
|
+
}),
|
88
|
+
cardExpirationDate: _zod2.z.string().min(1, {
|
89
|
+
message: "You must specify a card expiration date"
|
90
|
+
}).refine(function (value) {
|
91
|
+
var _value$split = value.split("/"),
|
92
|
+
_value$split2 = (0, _slicedToArray2["default"])(_value$split, 2),
|
93
|
+
expirationMonth = _value$split2[0],
|
94
|
+
expirationYear = _value$split2[1];
|
95
|
+
return validateExpirationDate(parseInt(expirationMonth), parseInt(expirationYear));
|
96
|
+
}, {
|
97
|
+
message: "Invalid card expiration date"
|
98
|
+
}),
|
99
|
+
cardCVC: _zod2.z.string().min(1, {
|
100
|
+
message: "You must specify a card security code"
|
101
|
+
}).refine(validateCVC, {
|
102
|
+
message: "Invalid card security code (must be 3 or 4 digits)"
|
103
|
+
})
|
104
|
+
});
|
105
|
+
var RHFValidationStrategiesComponent = exports.RHFValidationStrategiesComponent = function RHFValidationStrategiesComponent() {
|
106
|
+
var _useState = (0, _react.useState)(initialFormData),
|
107
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
108
|
+
formData = _useState2[0],
|
109
|
+
setFormData = _useState2[1];
|
110
|
+
var _useForm = (0, _reactHookForm.useForm)({
|
111
|
+
defaultValues: initialFormData,
|
112
|
+
reValidateMode: "onChange",
|
113
|
+
resolver: (0, _zod.zodResolver)(zodSchema)
|
114
|
+
}),
|
115
|
+
control = _useForm.control,
|
116
|
+
handleSubmit = _useForm.handleSubmit,
|
117
|
+
getFieldStateFromReactHookForm = _useForm.getFieldState,
|
118
|
+
formState = _useForm.formState,
|
119
|
+
reset = _useForm.reset,
|
120
|
+
trigger = _useForm.trigger;
|
121
|
+
var getFieldState = function getFieldState(fieldName) {
|
122
|
+
var _fieldState$error;
|
123
|
+
var fieldState = getFieldStateFromReactHookForm(fieldName, formState);
|
124
|
+
if ((_fieldState$error = fieldState.error) !== null && _fieldState$error !== void 0 && _fieldState$error.message) {
|
125
|
+
return {
|
126
|
+
status: "invalid",
|
127
|
+
errors: [fieldState.error.message]
|
128
|
+
};
|
129
|
+
} else if (!fieldState.invalid && formState.isSubmitted) {
|
130
|
+
return {
|
131
|
+
status: "validated"
|
132
|
+
};
|
133
|
+
} else {
|
134
|
+
return {
|
135
|
+
status: "default"
|
136
|
+
};
|
137
|
+
}
|
138
|
+
};
|
139
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
140
|
+
className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-8 w-4/6"]))),
|
141
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Form.ExperimentalForm, {
|
142
|
+
onSubmit: handleSubmit(function (data) {
|
143
|
+
return setFormData(data);
|
144
|
+
}),
|
145
|
+
onReset: function onReset() {
|
146
|
+
return setFormData(initialFormData);
|
147
|
+
},
|
148
|
+
className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col items-start gap-4 min-w-72"]))),
|
149
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormErrorMessage, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
|
150
|
+
name: "cardOwner",
|
151
|
+
control: control,
|
152
|
+
render: function render(_ref) {
|
153
|
+
var field = _ref.field;
|
154
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
155
|
+
label: "Card Owner",
|
156
|
+
labelFor: "cardOwner",
|
157
|
+
description: "Please enter the card owner",
|
158
|
+
state: getFieldState("cardOwner"),
|
159
|
+
className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
160
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread({
|
161
|
+
id: "cardOwner",
|
162
|
+
placeholder: "John Doe",
|
163
|
+
required: true
|
164
|
+
}, field))
|
165
|
+
});
|
166
|
+
}
|
167
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
|
168
|
+
name: "cardNumber",
|
169
|
+
control: control,
|
170
|
+
render: function render(_ref2) {
|
171
|
+
var field = _ref2.field;
|
172
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
173
|
+
label: "Card Number",
|
174
|
+
labelFor: "cardNumber",
|
175
|
+
description: "Please enter the card number",
|
176
|
+
state: getFieldState("cardNumber"),
|
177
|
+
className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
178
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread(_objectSpread({
|
179
|
+
id: "cardNumber",
|
180
|
+
placeholder: "Card number",
|
181
|
+
maxLength: 16 + 3 // 3 spaces
|
182
|
+
,
|
183
|
+
startIcon: _Icons.CreditCardIcon,
|
184
|
+
required: true
|
185
|
+
}, field), {}, {
|
186
|
+
onChange: function onChange(e) {
|
187
|
+
e.target.value = formatInputValue(e, 4, " ");
|
188
|
+
field.onChange(e);
|
189
|
+
if (e.target.value.length === 19) {
|
190
|
+
trigger("cardNumber");
|
191
|
+
}
|
192
|
+
}
|
193
|
+
}))
|
194
|
+
});
|
195
|
+
}
|
196
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
197
|
+
className: (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["w-full flex gap-4"]))),
|
198
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
|
199
|
+
name: "cardExpirationDate",
|
200
|
+
control: control,
|
201
|
+
render: function render(_ref3) {
|
202
|
+
var field = _ref3.field;
|
203
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
204
|
+
label: "Card Expiration Date",
|
205
|
+
labelFor: "cardExpirationDate",
|
206
|
+
description: "Please enter the card expiration date",
|
207
|
+
state: getFieldState("cardExpirationDate"),
|
208
|
+
className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
209
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread(_objectSpread({
|
210
|
+
id: "cardExpirationDate",
|
211
|
+
placeholder: "MM/YY",
|
212
|
+
maxLength: 4 + 1 // 1 slash
|
213
|
+
,
|
214
|
+
startIcon: _Icons.CalendarIcon,
|
215
|
+
required: true
|
216
|
+
}, field), {}, {
|
217
|
+
onChange: function onChange(e) {
|
218
|
+
e.target.value = formatInputValue(e, 2, "/");
|
219
|
+
field.onChange(e);
|
220
|
+
},
|
221
|
+
onBlur: function onBlur() {
|
222
|
+
trigger("cardExpirationDate");
|
223
|
+
field.onBlur();
|
224
|
+
}
|
225
|
+
}))
|
226
|
+
});
|
227
|
+
}
|
228
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
|
229
|
+
name: "cardCVC",
|
230
|
+
control: control,
|
231
|
+
render: function render(_ref4) {
|
232
|
+
var field = _ref4.field;
|
233
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
234
|
+
label: "Card CVC",
|
235
|
+
labelFor: "cardCVC",
|
236
|
+
description: "Please enter the card security code",
|
237
|
+
state: getFieldState("cardCVC"),
|
238
|
+
className: (0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
239
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread(_objectSpread({
|
240
|
+
id: "cardCVC",
|
241
|
+
placeholder: "CVC",
|
242
|
+
maxLength: 4,
|
243
|
+
startIcon: _Icons.LockIcon,
|
244
|
+
required: true
|
245
|
+
}, field), {}, {
|
246
|
+
onBlur: function onBlur() {
|
247
|
+
trigger("cardCVC");
|
248
|
+
field.onBlur();
|
249
|
+
}
|
250
|
+
}))
|
251
|
+
});
|
252
|
+
}
|
253
|
+
})]
|
254
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
255
|
+
className: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["flex gap-2"]))),
|
256
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormSubmit, {
|
257
|
+
variant: "primary",
|
258
|
+
"aria-label": "Save the form",
|
259
|
+
children: "Save"
|
260
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormReset, {
|
261
|
+
"aria-label": "Reset the form",
|
262
|
+
onClick: function onClick() {
|
263
|
+
return reset();
|
264
|
+
},
|
265
|
+
children: "Reset"
|
266
|
+
})]
|
267
|
+
})]
|
268
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("hr", {
|
269
|
+
className: (0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["text-grey-500"])))
|
270
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("code", {
|
271
|
+
className: (0, _satellitePrefixer["default"])(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["whitespace-pre"]))),
|
272
|
+
children: JSON.stringify(formData, null, 2)
|
273
|
+
})]
|
274
|
+
});
|
275
|
+
};
|
276
|
+
var yupSchema = yup.object({
|
277
|
+
cardOwner: yup.string().required("You must specify a card owner"),
|
278
|
+
cardNumber: yup.string().required("You must specify a card number").transform(function (value) {
|
279
|
+
return value.replace(/\s/g, "");
|
280
|
+
}).test("cardNumber", "Invalid card number (try: 5555555555554444)", validateCardNumber),
|
281
|
+
cardExpirationDate: yup.string().required("You must specify a card expiration date").test("cardExpirationDate", "Invalid card expiration date", function (value) {
|
282
|
+
var _value$split3 = value.split("/"),
|
283
|
+
_value$split4 = (0, _slicedToArray2["default"])(_value$split3, 2),
|
284
|
+
expirationMonth = _value$split4[0],
|
285
|
+
expirationYear = _value$split4[1];
|
286
|
+
return validateExpirationDate(parseInt(expirationMonth), parseInt(expirationYear));
|
287
|
+
}),
|
288
|
+
cardCVC: yup.string().required("You must specify a card security code").test("cardCVC", "Invalid card security code (must be 3 or 4 digits)", validateCVC)
|
289
|
+
});
|
290
|
+
var FormikValidationStrategiesComponent = exports.FormikValidationStrategiesComponent = function FormikValidationStrategiesComponent() {
|
291
|
+
var _useState3 = (0, _react.useState)(initialFormData),
|
292
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
293
|
+
formData = _useState4[0],
|
294
|
+
setFormData = _useState4[1];
|
295
|
+
var _useState5 = (0, _react.useState)(false),
|
296
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
297
|
+
revalidationEnabled = _useState6[0],
|
298
|
+
setRevalidationEnabled = _useState6[1];
|
299
|
+
var formik = (0, _formik.useFormik)({
|
300
|
+
initialValues: initialFormData,
|
301
|
+
validateOnChange: revalidationEnabled,
|
302
|
+
validateOnBlur: revalidationEnabled,
|
303
|
+
validationSchema: yupSchema,
|
304
|
+
onSubmit: function onSubmit(values) {
|
305
|
+
return setFormData(values);
|
306
|
+
},
|
307
|
+
onReset: function onReset() {
|
308
|
+
return setFormData(initialFormData);
|
309
|
+
}
|
310
|
+
});
|
311
|
+
var getFieldState = function getFieldState(fieldName) {
|
312
|
+
var fieldMeta = formik.getFieldMeta(fieldName);
|
313
|
+
if (fieldMeta.error) {
|
314
|
+
return {
|
315
|
+
status: "invalid",
|
316
|
+
errors: [fieldMeta.error]
|
317
|
+
};
|
318
|
+
} else if (formik.isSubmitting && fieldMeta.touched) {
|
319
|
+
return {
|
320
|
+
status: "validated"
|
321
|
+
};
|
322
|
+
} else {
|
323
|
+
return {
|
324
|
+
status: "default"
|
325
|
+
};
|
326
|
+
}
|
327
|
+
};
|
328
|
+
(0, _useFormikAutoFocusOnError.useFormikAutoFocusOnError)(formik);
|
329
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
330
|
+
className: (0, _satellitePrefixer["default"])(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-8 w-4/6"]))),
|
331
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Form.ExperimentalForm, {
|
332
|
+
onSubmit: function onSubmit(e) {
|
333
|
+
setRevalidationEnabled(true);
|
334
|
+
formik.handleSubmit(e);
|
335
|
+
},
|
336
|
+
onReset: function onReset(e) {
|
337
|
+
setRevalidationEnabled(false);
|
338
|
+
formik.handleReset(e);
|
339
|
+
},
|
340
|
+
className: (0, _satellitePrefixer["default"])(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col items-start gap-4 min-w-72"]))),
|
341
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormErrorMessage, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
342
|
+
label: "Card Owner",
|
343
|
+
labelFor: "cardOwner",
|
344
|
+
description: "Please enter the card owner",
|
345
|
+
state: getFieldState("cardOwner"),
|
346
|
+
className: (0, _satellitePrefixer["default"])(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
347
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread({
|
348
|
+
id: "cardOwner",
|
349
|
+
placeholder: "John Doe",
|
350
|
+
required: true
|
351
|
+
}, formik.getFieldProps("cardOwner")))
|
352
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
353
|
+
label: "Card Number",
|
354
|
+
labelFor: "cardNumber",
|
355
|
+
description: "Please enter the card number",
|
356
|
+
state: getFieldState("cardNumber"),
|
357
|
+
className: (0, _satellitePrefixer["default"])(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
358
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread(_objectSpread({
|
359
|
+
id: "cardNumber",
|
360
|
+
placeholder: "Card number",
|
361
|
+
maxLength: 16 + 3 // 3 spaces
|
362
|
+
,
|
363
|
+
startIcon: _Icons.CreditCardIcon,
|
364
|
+
required: true
|
365
|
+
}, formik.getFieldProps("cardNumber")), {}, {
|
366
|
+
onChange: /*#__PURE__*/function () {
|
367
|
+
var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(e) {
|
368
|
+
var value;
|
369
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
370
|
+
while (1) switch (_context.prev = _context.next) {
|
371
|
+
case 0:
|
372
|
+
value = formatInputValue(e, 4, " ");
|
373
|
+
_context.next = 3;
|
374
|
+
return formik.setFieldValue("cardNumber", value);
|
375
|
+
case 3:
|
376
|
+
if (value.length === 19) {
|
377
|
+
formik.validateField("cardNumber");
|
378
|
+
}
|
379
|
+
case 4:
|
380
|
+
case "end":
|
381
|
+
return _context.stop();
|
382
|
+
}
|
383
|
+
}, _callee);
|
384
|
+
}));
|
385
|
+
return function (_x) {
|
386
|
+
return _ref5.apply(this, arguments);
|
387
|
+
};
|
388
|
+
}()
|
389
|
+
}))
|
390
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
391
|
+
className: (0, _satellitePrefixer["default"])(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["w-full flex gap-4"]))),
|
392
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
393
|
+
label: "Card Expiration Date",
|
394
|
+
labelFor: "cardExpirationDate",
|
395
|
+
description: "Please enter the card expiration date",
|
396
|
+
state: getFieldState("cardExpirationDate"),
|
397
|
+
className: (0, _satellitePrefixer["default"])(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
398
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread(_objectSpread({
|
399
|
+
id: "cardExpirationDate",
|
400
|
+
placeholder: "MM/YY",
|
401
|
+
maxLength: 4 + 1 // 1 slash
|
402
|
+
,
|
403
|
+
startIcon: _Icons.CalendarIcon,
|
404
|
+
required: true
|
405
|
+
}, formik.getFieldProps("cardExpirationDate")), {}, {
|
406
|
+
onChange: function onChange(e) {
|
407
|
+
e.target.value = formatInputValue(e, 2, "/");
|
408
|
+
formik.getFieldProps("cardExpirationDate").onChange(e);
|
409
|
+
},
|
410
|
+
onBlur: function onBlur(e) {
|
411
|
+
formik.validateField("cardExpirationDate");
|
412
|
+
formik.getFieldProps("cardExpirationDate").onBlur(e);
|
413
|
+
}
|
414
|
+
}))
|
415
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.Field, {
|
416
|
+
label: "Card CVC",
|
417
|
+
labelFor: "cardCVC",
|
418
|
+
description: "Please enter the card security code",
|
419
|
+
state: getFieldState("cardCVC"),
|
420
|
+
className: (0, _satellitePrefixer["default"])(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
421
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.Input, _objectSpread(_objectSpread({
|
422
|
+
id: "cardCVC",
|
423
|
+
placeholder: "CVC",
|
424
|
+
maxLength: 4,
|
425
|
+
startIcon: _Icons.LockIcon,
|
426
|
+
required: true
|
427
|
+
}, formik.getFieldProps("cardCVC")), {}, {
|
428
|
+
onBlur: function onBlur(e) {
|
429
|
+
formik.validateField("cardCVC");
|
430
|
+
formik.getFieldProps("cardCVC").onBlur(e);
|
431
|
+
}
|
432
|
+
}))
|
433
|
+
})]
|
434
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
435
|
+
className: (0, _satellitePrefixer["default"])(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["flex gap-2"]))),
|
436
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormSubmit, {
|
437
|
+
variant: "primary",
|
438
|
+
"aria-label": "Save the form",
|
439
|
+
children: "Save"
|
440
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Form.ExperimentalFormReset, {
|
441
|
+
"aria-label": "Reset the form",
|
442
|
+
onClick: function onClick() {
|
443
|
+
return formik.resetForm();
|
444
|
+
},
|
445
|
+
children: "Reset"
|
446
|
+
})]
|
447
|
+
})]
|
448
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("hr", {
|
449
|
+
className: (0, _satellitePrefixer["default"])(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2["default"])(["text-grey-500"])))
|
450
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("code", {
|
451
|
+
className: (0, _satellitePrefixer["default"])(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteral2["default"])(["whitespace-pre"]))),
|
452
|
+
children: JSON.stringify(formData, null, 2)
|
453
|
+
})]
|
454
|
+
});
|
455
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.useFormikAutoFocusOnError = void 0;
|
7
|
+
var _react = require("react");
|
8
|
+
var useFormikAutoFocusOnError = exports.useFormikAutoFocusOnError = function useFormikAutoFocusOnError(formik) {
|
9
|
+
var lastSubmitCount = (0, _react.useRef)(formik.submitCount);
|
10
|
+
(0, _react.useEffect)(function () {
|
11
|
+
var errorKeys = Object.keys(formik.errors);
|
12
|
+
|
13
|
+
// This prevents the focus from being moved to the first error field when the field is validated on change.
|
14
|
+
if (lastSubmitCount.current !== formik.submitCount && errorKeys.length > 0) {
|
15
|
+
lastSubmitCount.current = formik.submitCount;
|
16
|
+
var firstElement = document.querySelector("[id^=\"".concat(errorKeys[0], "\"][aria-invalid=\"true\"]"));
|
17
|
+
if (firstElement !== document.activeElement) {
|
18
|
+
firstElement === null || firstElement === void 0 || firstElement.focus();
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}, [formik.errors, formik.submitCount, formik.isSubmitting]);
|
22
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const useExperimentalForm: () => import("./FormContext").ExperimentalFormContextValue | null;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.useExperimentalForm = void 0;
|
7
|
+
var _react = require("react");
|
8
|
+
var _FormContext = require("./FormContext");
|
9
|
+
var useExperimentalForm = exports.useExperimentalForm = function useExperimentalForm() {
|
10
|
+
return (0, _react.useContext)(_FormContext.ExperimentalFormContext);
|
11
|
+
};
|
package/dist/cjs/Input/Input.js
CHANGED
@@ -20,8 +20,8 @@ var _isNil = require("../utils/isNil");
|
|
20
20
|
var _useForwardedRef3 = require("../utils/useForwardedRef");
|
21
21
|
var _useTriggerInputChange = require("../utils/useTriggerInputChange");
|
22
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
23
|
-
var _excluded = ["className", "style", "startIcon", "endItem", "disabled", "readOnly", "clearable", "type", "variant", "locale"];
|
24
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
|
23
|
+
var _excluded = ["className", "style", "startIcon", "endItem", "disabled", "readOnly", "clearable", "type", "variant", "locale", "required"];
|
24
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16;
|
25
25
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
26
26
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
27
27
|
var DEFAULT_INPUT_LOCALE = {
|
@@ -62,6 +62,7 @@ var ValidatedIcon = function ValidatedIcon() {
|
|
62
62
|
* See the [Input documentation page](https://satellite.algolia.com/components/forms/input) for more information.
|
63
63
|
*/
|
64
64
|
var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, externalRef) {
|
65
|
+
var _inputProps$id;
|
65
66
|
var className = _ref.className,
|
66
67
|
style = _ref.style,
|
67
68
|
startIcon = _ref.startIcon,
|
@@ -74,6 +75,7 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
|
|
74
75
|
_ref$variant = _ref.variant,
|
75
76
|
variant = _ref$variant === void 0 ? "medium" : _ref$variant,
|
76
77
|
propsLocale = _ref.locale,
|
78
|
+
required = _ref.required,
|
77
79
|
inputProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
78
80
|
var contextLocale = (0, _Satellite.useLocale)("input");
|
79
81
|
var locale = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_INPUT_LOCALE), contextLocale), propsLocale);
|
@@ -86,9 +88,13 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
|
|
86
88
|
inputRefCallback = _useForwardedRef2[0],
|
87
89
|
inputRef = _useForwardedRef2[1];
|
88
90
|
var triggerInputChange = (0, _useTriggerInputChange.useTriggerInputChange)(inputRef);
|
89
|
-
var _useField = (0, _Field.useField)(
|
91
|
+
var _useField = (0, _Field.useField)({
|
92
|
+
required: required
|
93
|
+
}),
|
90
94
|
status = _useField.state.status,
|
91
|
-
labelId = _useField.labelId
|
95
|
+
labelId = _useField.labelId,
|
96
|
+
descriptionId = _useField.descriptionId,
|
97
|
+
inputId = _useField.inputId;
|
92
98
|
var isControlled = ("value" in inputProps);
|
93
99
|
var _useState3 = (0, _react.useState)(function () {
|
94
100
|
return isControlled ? inputProps.value : inputProps.defaultValue;
|
@@ -104,7 +110,8 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
|
|
104
110
|
}, [inputProps.value, isControlled]);
|
105
111
|
var Icon = startIcon ? startIcon : type === "search" ? SearchIcon : undefined;
|
106
112
|
var iconSize = variant === "small" ? "1rem" : "1.5rem";
|
107
|
-
var
|
113
|
+
var isInvalid = status === "invalid";
|
114
|
+
var StatusIcon = isInvalid ? InvalidIcon : status === "validated" ? ValidatedIcon : _react.Fragment;
|
108
115
|
var clearable = typeof clearableProp === "boolean" ? clearableProp : type === "search";
|
109
116
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
110
117
|
className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n input group\n ", "\n ", "\n "])), focused && "input-focused", disabled && "input-disabled"), VARIANT_CLASSNAMES[variant], STATUS_CLASSNAMES[status], className),
|
@@ -121,8 +128,12 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
|
|
121
128
|
className: (0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["mx-4 no-search-input-decoration"]))),
|
122
129
|
ref: inputRefCallback,
|
123
130
|
type: type,
|
124
|
-
"aria-labelledby": labelId
|
131
|
+
"aria-labelledby": labelId,
|
132
|
+
"aria-describedby": descriptionId
|
125
133
|
}, inputProps), {}, {
|
134
|
+
id: (_inputProps$id = inputProps.id) !== null && _inputProps$id !== void 0 ? _inputProps$id : inputId,
|
135
|
+
required: required,
|
136
|
+
"aria-invalid": isInvalid,
|
126
137
|
readOnly: readOnly,
|
127
138
|
disabled: disabled,
|
128
139
|
onChange: function onChange(evt) {
|
@@ -180,13 +191,14 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
|
|
180
191
|
}
|
181
192
|
},
|
182
193
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icons.ChevronUpIcon, {
|
183
|
-
size: 12
|
194
|
+
size: 12,
|
195
|
+
className: (0, _clsx["default"])(isInvalid && (0, _satellitePrefixer["default"])(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["text-red-700"]))))
|
184
196
|
})
|
185
197
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
186
198
|
tabIndex: -1,
|
187
199
|
type: "button",
|
188
200
|
disabled: readOnly,
|
189
|
-
className: (0, _satellitePrefixer["default"])(
|
201
|
+
className: (0, _satellitePrefixer["default"])(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["input-spinner-button ", ""])), readOnly && "cursor-not-allowed"),
|
190
202
|
"aria-label": locale.decrement,
|
191
203
|
onClick: function onClick() {
|
192
204
|
var _inputRef$current$val2, _inputRef$current3;
|
@@ -203,7 +215,8 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
|
|
203
215
|
}
|
204
216
|
},
|
205
217
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icons.ChevronDownIcon, {
|
206
|
-
size: 12
|
218
|
+
size: 12,
|
219
|
+
className: (0, _clsx["default"])(isInvalid && (0, _satellitePrefixer["default"])(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["text-red-700"]))))
|
207
220
|
})
|
208
221
|
})]
|
209
222
|
})]
|
@@ -17,6 +17,7 @@ var inputPlugin = plugin(function (_ref) {
|
|
17
17
|
lineHeight: theme("lineHeight.base"),
|
18
18
|
backgroundColor: theme("colors.white"),
|
19
19
|
border: "1px solid ".concat(theme("colors.grey.500")),
|
20
|
+
outline: "1px solid transparent",
|
20
21
|
borderRadius: theme("borderRadius.DEFAULT"),
|
21
22
|
boxShadow: "inset 0px 1px 4px 0px ".concat(rgba(theme("colors.grey.500"), 0.3)),
|
22
23
|
overflow: "hidden",
|
@@ -82,10 +83,14 @@ var inputPlugin = plugin(function (_ref) {
|
|
82
83
|
borderColor: theme("colors.red.700")
|
83
84
|
},
|
84
85
|
"&:hover": {
|
85
|
-
|
86
|
+
background: theme("colors.red.50"),
|
87
|
+
borderColor: theme("colors.red.700"),
|
86
88
|
".input-spinner-button": {
|
87
|
-
borderColor: theme("colors.red.
|
89
|
+
borderColor: theme("colors.red.700")
|
88
90
|
}
|
91
|
+
},
|
92
|
+
"&.input-focused, &.input:focus-within": {
|
93
|
+
outlineColor: theme("colors.red.700")
|
89
94
|
}
|
90
95
|
}
|
91
96
|
});
|
@@ -16,4 +16,4 @@ export declare type DotPaginationProps<T extends number> = {
|
|
16
16
|
*
|
17
17
|
* See the [Dot Pagination documentation page](https://satellite.algolia.com/components/navigation/dot-pagination) for more information.
|
18
18
|
*/
|
19
|
-
export declare const DotPagination: <T extends number>({ currentPage, onChange, nbPages, size, locale
|
19
|
+
export declare const DotPagination: <T extends number>({ currentPage, onChange, nbPages, size, locale, }: DotPaginationProps<T>) => JSX.Element;
|
@@ -1,3 +1,3 @@
|
|
1
1
|
import type { HTMLAttributes, InputHTMLAttributes } from "react";
|
2
2
|
export declare type RadioButtonProps = HTMLAttributes<HTMLInputElement> & Pick<InputHTMLAttributes<HTMLInputElement>, "value" | "name" | "checked" | "defaultChecked" | "onChange" | "required" | "autoFocus" | "disabled">;
|
3
|
-
export declare const RadioButton: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLInputElement> & Pick<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultChecked" | "onChange" | "name" | "
|
3
|
+
export declare const RadioButton: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLInputElement> & Pick<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultChecked" | "onChange" | "name" | "required" | "autoFocus" | "disabled" | "checked"> & import("react").RefAttributes<HTMLInputElement>>;
|