@algolia/satellite 1.5.0 → 1.7.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.
Files changed (96) hide show
  1. package/dist/cjs/Actions/Accordion/Accordion.d.ts +142 -0
  2. package/dist/cjs/Actions/Accordion/Accordion.js +149 -0
  3. package/dist/cjs/Actions/Accordion/Accordion.tailwind.d.ts +5 -0
  4. package/dist/cjs/Actions/Accordion/Accordion.tailwind.js +44 -0
  5. package/dist/cjs/Actions/Button/Button.tailwind.js +0 -12
  6. package/dist/cjs/Actions/ToggleGroup/ToggleGroup.d.ts +2 -2
  7. package/dist/cjs/Actions/index.d.ts +2 -0
  8. package/dist/cjs/Actions/index.js +18 -0
  9. package/dist/cjs/Fields/Field/Field.js +2 -2
  10. package/dist/cjs/Fields/Form/Form.d.ts +12 -10
  11. package/dist/cjs/Fields/Form/Form.js +50 -38
  12. package/dist/cjs/Fields/Form/FormContext.d.ts +6 -6
  13. package/dist/cjs/Fields/Form/FormContext.js +2 -2
  14. package/dist/cjs/Fields/Form/index.d.ts +4 -3
  15. package/dist/cjs/Fields/Form/index.js +31 -21
  16. package/dist/cjs/Fields/Form/stories/AsynchronousValidation.js +142 -127
  17. package/dist/cjs/Fields/Form/stories/Complex.js +648 -642
  18. package/dist/cjs/Fields/Form/stories/DependentFieldsValidation.js +127 -121
  19. package/dist/cjs/Fields/Form/stories/DirtyFields.js +195 -189
  20. package/dist/cjs/Fields/Form/stories/DynamicFieldsValidation.js +251 -245
  21. package/dist/cjs/Fields/Form/stories/ExtraErrors.js +289 -0
  22. package/dist/cjs/Fields/Form/stories/FieldArrays.js +180 -174
  23. package/dist/cjs/Fields/Form/stories/JSONForms.js +59 -56
  24. package/dist/cjs/Fields/Form/stories/MultiStep.js +706 -0
  25. package/dist/cjs/Fields/Form/stories/ValidationStrategies.js +243 -237
  26. package/dist/cjs/Fields/Form/useForm.d.ts +1 -1
  27. package/dist/cjs/Fields/Form/useForm.js +3 -3
  28. package/dist/cjs/Helpers/utilities/focusable.tailwind.js +1 -1
  29. package/dist/cjs/Icons/index.d.ts +1 -1
  30. package/dist/cjs/Icons/index.js +6 -0
  31. package/dist/cjs/Indicators/Skeleton/Skeleton.d.ts +7 -0
  32. package/dist/cjs/Indicators/Skeleton/Skeleton.js +12 -5
  33. package/dist/cjs/Indicators/index.d.ts +1 -0
  34. package/dist/cjs/Indicators/index.js +11 -0
  35. package/dist/cjs/Layout/Sidebar/SidebarButtonLink.js +1 -1
  36. package/dist/cjs/Layout/Sidebar/SidebarLink.js +2 -2
  37. package/dist/cjs/Layout/Sidebar/SidebarLinksGroup/SidebarGroupLink.js +1 -1
  38. package/dist/cjs/Layout/Sidebar/SidebarLinksGroup/SidebarLinksGroup.js +4 -5
  39. package/dist/cjs/Layout/Tables/DataTable/DataTable.d.ts +3 -1
  40. package/dist/cjs/Layout/Tables/DataTable/DataTable.js +3 -0
  41. package/dist/cjs/Layout/Tables/Table/Table.d.ts +2 -0
  42. package/dist/cjs/Layout/Tables/Table/Table.js +4 -2
  43. package/dist/cjs/Layout/Tables/Table/Table.tailwind.js +6 -1
  44. package/dist/cjs/Overlay/MenuButton/components/items/LinkItem.d.ts +1 -1
  45. package/dist/cjs/Overlay/MenuButton/components/items/ToggleItem.d.ts +1 -1
  46. package/dist/cjs/styles/tailwind.config.js +1 -1
  47. package/dist/cjs/utils/isCssPropertySupported.d.ts +1 -1
  48. package/dist/esm/Actions/Accordion/Accordion.d.ts +142 -0
  49. package/dist/esm/Actions/Accordion/Accordion.js +139 -0
  50. package/dist/esm/Actions/Accordion/Accordion.tailwind.d.ts +5 -0
  51. package/dist/esm/Actions/Accordion/Accordion.tailwind.js +43 -0
  52. package/dist/esm/Actions/Button/Button.tailwind.js +0 -12
  53. package/dist/esm/Actions/ToggleGroup/ToggleGroup.d.ts +2 -2
  54. package/dist/esm/Actions/index.d.ts +2 -0
  55. package/dist/esm/Actions/index.js +2 -2
  56. package/dist/esm/Fields/Field/Field.js +3 -3
  57. package/dist/esm/Fields/Form/Form.d.ts +12 -10
  58. package/dist/esm/Fields/Form/Form.js +52 -40
  59. package/dist/esm/Fields/Form/FormContext.d.ts +6 -6
  60. package/dist/esm/Fields/Form/FormContext.js +1 -1
  61. package/dist/esm/Fields/Form/index.d.ts +4 -3
  62. package/dist/esm/Fields/Form/index.js +2 -3
  63. package/dist/esm/Fields/Form/stories/AsynchronousValidation.js +143 -128
  64. package/dist/esm/Fields/Form/stories/Complex.js +649 -643
  65. package/dist/esm/Fields/Form/stories/DependentFieldsValidation.js +128 -122
  66. package/dist/esm/Fields/Form/stories/DirtyFields.js +196 -190
  67. package/dist/esm/Fields/Form/stories/DynamicFieldsValidation.js +252 -246
  68. package/dist/esm/Fields/Form/stories/ExtraErrors.js +279 -0
  69. package/dist/esm/Fields/Form/stories/FieldArrays.js +181 -175
  70. package/dist/esm/Fields/Form/stories/JSONForms.js +60 -57
  71. package/dist/esm/Fields/Form/stories/MultiStep.js +697 -0
  72. package/dist/esm/Fields/Form/stories/ValidationStrategies.js +244 -238
  73. package/dist/esm/Fields/Form/useForm.d.ts +1 -1
  74. package/dist/esm/Fields/Form/useForm.js +3 -3
  75. package/dist/esm/Helpers/utilities/focusable.tailwind.js +1 -1
  76. package/dist/esm/Icons/index.d.ts +1 -1
  77. package/dist/esm/Icons/index.js +1 -1
  78. package/dist/esm/Indicators/Skeleton/Skeleton.d.ts +7 -0
  79. package/dist/esm/Indicators/Skeleton/Skeleton.js +12 -5
  80. package/dist/esm/Indicators/index.d.ts +1 -0
  81. package/dist/esm/Indicators/index.js +2 -1
  82. package/dist/esm/Layout/Sidebar/SidebarButtonLink.js +1 -1
  83. package/dist/esm/Layout/Sidebar/SidebarLink.js +2 -2
  84. package/dist/esm/Layout/Sidebar/SidebarLinksGroup/SidebarGroupLink.js +1 -1
  85. package/dist/esm/Layout/Sidebar/SidebarLinksGroup/SidebarLinksGroup.js +4 -5
  86. package/dist/esm/Layout/Tables/DataTable/DataTable.d.ts +3 -1
  87. package/dist/esm/Layout/Tables/DataTable/DataTable.js +3 -0
  88. package/dist/esm/Layout/Tables/Table/Table.d.ts +2 -0
  89. package/dist/esm/Layout/Tables/Table/Table.js +4 -2
  90. package/dist/esm/Layout/Tables/Table/Table.tailwind.js +6 -1
  91. package/dist/esm/Overlay/MenuButton/components/items/LinkItem.d.ts +1 -1
  92. package/dist/esm/Overlay/MenuButton/components/items/ToggleItem.d.ts +1 -1
  93. package/dist/esm/styles/tailwind.config.js +1 -1
  94. package/dist/esm/utils/isCssPropertySupported.d.ts +1 -1
  95. package/dist/satellite.min.css +1 -1
  96. package/package.json +7 -1
@@ -0,0 +1,279 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
4
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
6
+ 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; }
7
+ 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) { _defineProperty(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; }
8
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
9
+ import { zodResolver } from "@hookform/resolvers/zod";
10
+ import { useFormik } from "formik";
11
+ import { useState } from "react";
12
+ import { Controller, useForm } from "react-hook-form";
13
+ import * as yup from "yup";
14
+ import { z } from "zod";
15
+ import stl from "../../../styles/helpers/satellitePrefixer";
16
+ import { Field } from "../../Field";
17
+ import { Input } from "../../Input";
18
+ import { Form, FormErrorMessage, FormReset, FormSubmit } from "../Form";
19
+ import { useFormikAutoFocusOnError } from "./utils/useFormikAutoFocusOnError";
20
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
+ var initialFormData = {
22
+ email: ""
23
+ };
24
+ var sleep = function sleep(ms) {
25
+ return new Promise(function (resolve) {
26
+ return setTimeout(resolve, ms);
27
+ });
28
+ };
29
+ var zodSchema = z.object({
30
+ email: z.string().email("You must specify an email (hint: example@example.com)")
31
+ });
32
+ export var RHFExtraErrorsComponent = function RHFExtraErrorsComponent() {
33
+ var _useState = useState(initialFormData),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ formData = _useState2[0],
36
+ setFormData = _useState2[1];
37
+ var _useState3 = useState([]),
38
+ _useState4 = _slicedToArray(_useState3, 2),
39
+ extraErrors = _useState4[0],
40
+ setExtraErrors = _useState4[1];
41
+ var _useForm = useForm({
42
+ defaultValues: initialFormData,
43
+ reValidateMode: "onChange",
44
+ resolver: zodResolver(zodSchema)
45
+ }),
46
+ control = _useForm.control,
47
+ handleSubmit = _useForm.handleSubmit,
48
+ getFieldStateFromReactHookForm = _useForm.getFieldState,
49
+ formState = _useForm.formState,
50
+ reset = _useForm.reset;
51
+ var getFieldState = function getFieldState(fieldName) {
52
+ var _fieldState$error;
53
+ var fieldState = getFieldStateFromReactHookForm(fieldName, formState);
54
+ if ((_fieldState$error = fieldState.error) !== null && _fieldState$error !== void 0 && _fieldState$error.message) {
55
+ return {
56
+ status: "invalid",
57
+ errors: [fieldState.error.message]
58
+ };
59
+ } else if (!fieldState.invalid && formState.isSubmitted) {
60
+ return {
61
+ status: "validated"
62
+ };
63
+ } else {
64
+ return {
65
+ status: "default"
66
+ };
67
+ }
68
+ };
69
+ return /*#__PURE__*/_jsx("div", {
70
+ className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["@container w-full flex justify-center"]))),
71
+ children: /*#__PURE__*/_jsxs("div", {
72
+ className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["flex flex-col gap-8 w-full @lg:w-1/2"]))),
73
+ children: [/*#__PURE__*/_jsxs(Form, {
74
+ onSubmit: handleSubmit( /*#__PURE__*/function () {
75
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(data) {
76
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
77
+ while (1) switch (_context.prev = _context.next) {
78
+ case 0:
79
+ setFormData(data);
80
+ _context.next = 3;
81
+ return sleep(1000);
82
+ case 3:
83
+ setExtraErrors(["A server error occurred. Please try again later."]);
84
+ case 4:
85
+ case "end":
86
+ return _context.stop();
87
+ }
88
+ }, _callee);
89
+ }));
90
+ return function (_x) {
91
+ return _ref.apply(this, arguments);
92
+ };
93
+ }()),
94
+ onChange: function onChange() {
95
+ return setExtraErrors([]);
96
+ },
97
+ onReset: function onReset() {
98
+ return setFormData(initialFormData);
99
+ },
100
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["flex flex-col items-start gap-4 min-w-72"]))),
101
+ children: [/*#__PURE__*/_jsx(FormErrorMessage, {
102
+ extraErrors: extraErrors
103
+ }), /*#__PURE__*/_jsx(Controller, {
104
+ name: "email",
105
+ control: control,
106
+ render: function render(_ref2) {
107
+ var field = _ref2.field;
108
+ return /*#__PURE__*/_jsx(Field, {
109
+ label: "Email",
110
+ labelFor: "email",
111
+ description: "Please enter a valid email address",
112
+ state: getFieldState("email"),
113
+ className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["w-full"]))),
114
+ children: /*#__PURE__*/_jsx(Input, _objectSpread({
115
+ id: "email",
116
+ placeholder: "Email",
117
+ required: true
118
+ }, field))
119
+ });
120
+ }
121
+ }), /*#__PURE__*/_jsxs("div", {
122
+ className: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["flex gap-2"]))),
123
+ children: [/*#__PURE__*/_jsx(FormSubmit, {
124
+ variant: "primary",
125
+ "aria-label": "Submit the form",
126
+ loading: formState.isSubmitting,
127
+ children: "Submit"
128
+ }), /*#__PURE__*/_jsx(FormReset, {
129
+ "aria-label": "Reset the form",
130
+ onClick: function onClick() {
131
+ reset();
132
+ setExtraErrors([]);
133
+ },
134
+ children: "Reset"
135
+ })]
136
+ })]
137
+ }), /*#__PURE__*/_jsx("hr", {
138
+ className: stl(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["text-grey-500"])))
139
+ }), /*#__PURE__*/_jsx("code", {
140
+ className: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["whitespace-pre"]))),
141
+ children: JSON.stringify(formData, null, 2)
142
+ })]
143
+ })
144
+ });
145
+ };
146
+ var yupSchema = yup.object({
147
+ email: yup.string().email("You must specify an email (hint: example@example.com)").required("You must specify an email (hint: example@example.com)")
148
+ });
149
+ export var FormikExtraErrorsComponent = function FormikExtraErrorsComponent() {
150
+ var _useState5 = useState(initialFormData),
151
+ _useState6 = _slicedToArray(_useState5, 2),
152
+ formData = _useState6[0],
153
+ setFormData = _useState6[1];
154
+ var _useState7 = useState(false),
155
+ _useState8 = _slicedToArray(_useState7, 2),
156
+ revalidationEnabled = _useState8[0],
157
+ setRevalidationEnabled = _useState8[1];
158
+ var _useState9 = useState([]),
159
+ _useState10 = _slicedToArray(_useState9, 2),
160
+ extraErrors = _useState10[0],
161
+ setExtraErrors = _useState10[1];
162
+ var formik = useFormik({
163
+ initialValues: initialFormData,
164
+ validateOnChange: revalidationEnabled,
165
+ validateOnBlur: revalidationEnabled,
166
+ validationSchema: yupSchema,
167
+ onSubmit: function () {
168
+ var _onSubmit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(values) {
169
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
170
+ while (1) switch (_context2.prev = _context2.next) {
171
+ case 0:
172
+ setFormData(values);
173
+ _context2.next = 3;
174
+ return sleep(1000);
175
+ case 3:
176
+ setExtraErrors(["A server error occurred. Please try again later."]);
177
+ case 4:
178
+ case "end":
179
+ return _context2.stop();
180
+ }
181
+ }, _callee2);
182
+ }));
183
+ function onSubmit(_x2) {
184
+ return _onSubmit.apply(this, arguments);
185
+ }
186
+ return onSubmit;
187
+ }(),
188
+ onReset: function onReset() {
189
+ setFormData(initialFormData);
190
+ setExtraErrors([]);
191
+ }
192
+ });
193
+ var getFieldState = function getFieldState(fieldName) {
194
+ var fieldMeta = formik.getFieldMeta(fieldName);
195
+ if (fieldMeta.error) {
196
+ return {
197
+ status: "invalid",
198
+ errors: [fieldMeta.error]
199
+ };
200
+ } else if (formik.isSubmitting && fieldMeta.touched) {
201
+ return {
202
+ status: "validated"
203
+ };
204
+ } else {
205
+ return {
206
+ status: "default"
207
+ };
208
+ }
209
+ };
210
+ useFormikAutoFocusOnError(formik);
211
+ return /*#__PURE__*/_jsx("div", {
212
+ className: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["@container w-full flex justify-center"]))),
213
+ children: /*#__PURE__*/_jsxs("div", {
214
+ className: stl(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["flex flex-col gap-8 w-full @lg:w-1/2"]))),
215
+ children: [/*#__PURE__*/_jsxs(Form, {
216
+ onSubmit: ( /*#__PURE__*/function () {
217
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(e) {
218
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
219
+ while (1) switch (_context3.prev = _context3.next) {
220
+ case 0:
221
+ setRevalidationEnabled(true);
222
+ formik.handleSubmit(e);
223
+ // notice that you might want to hook your validations into Formik onSubmit handler (called just above)
224
+ // not directly here
225
+ case 2:
226
+ case "end":
227
+ return _context3.stop();
228
+ }
229
+ }, _callee3);
230
+ }));
231
+ return function (_x3) {
232
+ return _ref3.apply(this, arguments);
233
+ };
234
+ }()),
235
+ onChange: function onChange() {
236
+ return setExtraErrors([]);
237
+ },
238
+ onReset: function onReset(e) {
239
+ setRevalidationEnabled(false);
240
+ formik.handleReset(e);
241
+ },
242
+ className: stl(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["flex flex-col items-start gap-4 min-w-72"]))),
243
+ children: [/*#__PURE__*/_jsx(FormErrorMessage, {
244
+ extraErrors: extraErrors
245
+ }), /*#__PURE__*/_jsx(Field, {
246
+ label: "Email",
247
+ labelFor: "email",
248
+ description: "Please enter a valid email address",
249
+ state: getFieldState("email"),
250
+ className: stl(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["w-full"]))),
251
+ children: /*#__PURE__*/_jsx(Input, _objectSpread({
252
+ id: "email",
253
+ placeholder: "Email",
254
+ required: true
255
+ }, formik.getFieldProps("email")))
256
+ }), /*#__PURE__*/_jsxs("div", {
257
+ className: stl(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["flex gap-2"]))),
258
+ children: [/*#__PURE__*/_jsx(FormSubmit, {
259
+ variant: "primary",
260
+ "aria-label": "Submit",
261
+ loading: formik.isValidating || formik.isSubmitting,
262
+ children: "Submit"
263
+ }), /*#__PURE__*/_jsx(FormReset, {
264
+ "aria-label": "Reset the form",
265
+ onClick: function onClick() {
266
+ return formik.resetForm();
267
+ },
268
+ children: "Reset"
269
+ })]
270
+ })]
271
+ }), /*#__PURE__*/_jsx("hr", {
272
+ className: stl(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["text-grey-500"])))
273
+ }), /*#__PURE__*/_jsx("code", {
274
+ className: stl(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["whitespace-pre"]))),
275
+ children: JSON.stringify(formData, null, 2)
276
+ })]
277
+ })
278
+ });
279
+ };