@solidxai/core-ui 0.1.9-beta.1 → 0.1.9-beta.11
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/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +16 -15
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +3 -1
- package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
- package/dist/components/auth/SolidForgotPassword.js +1 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +2 -2
- package/dist/components/auth/SolidInitialLoginOtp.js +8 -8
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +8 -8
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +1 -1
- package/dist/components/auth/SolidLogin.js +7 -8
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +1 -1
- package/dist/components/auth/SolidRegister.js +9 -9
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +2 -2
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/common/SocialMediaLogin.js +1 -1
- package/dist/components/common/SocialMediaLogin.js.map +1 -1
- package/dist/components/common/SocialMediaLogin.tsx +4 -4
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +1 -0
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +2 -1
- package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormFooter.js +14 -7
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +14 -6
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +7 -3
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +5 -2
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +10 -1
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +13 -1
- package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js +7 -1
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.tsx +10 -1
- package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +14 -2
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.tsx +20 -2
- package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.js +9 -1
- package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.tsx +12 -1
- package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.js +23 -3
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.tsx +32 -3
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +15 -2
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +20 -4
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +21 -3
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +30 -3
- package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.js +2 -1
- package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -1
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +9 -1
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +12 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +8 -2
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +14 -3
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +20 -3
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
- package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.js +22 -0
- package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
- package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +66 -2
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +67 -2
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js +39 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.tsx +50 -0
- package/dist/components/core/tree/SolidTreeTable.d.ts +1 -1
- package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.js +78 -78
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +1 -10
- package/dist/components/core/users/CreateUser.css +27 -2
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +52 -24
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +46 -33
- package/dist/components/solid-ui/SolidButton.d.ts +14 -0
- package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidButton.js +36 -0
- package/dist/components/solid-ui/SolidButton.js.map +1 -0
- package/dist/components/solid-ui/SolidButton.tsx +54 -0
- package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
- package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
- package/dist/components/solid-ui/SolidTabs.js +22 -0
- package/dist/components/solid-ui/SolidTabs.js.map +1 -0
- package/dist/components/solid-ui/SolidTabs.tsx +73 -0
- package/dist/components/solid-ui/index.d.ts +3 -0
- package/dist/components/solid-ui/index.d.ts.map +1 -0
- package/dist/components/solid-ui/index.js +3 -0
- package/dist/components/solid-ui/index.js.map +1 -0
- package/dist/components/solid-ui/index.ts +2 -0
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +3 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +4 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +2 -0
- package/dist/resources/shadcn-base.css +17 -9
- package/dist/routes/SolidRouteMetadataBoundary.d.ts +5 -0
- package/dist/routes/SolidRouteMetadataBoundary.d.ts.map +1 -0
- package/dist/routes/SolidRouteMetadataBoundary.js +72 -0
- package/dist/routes/SolidRouteMetadataBoundary.js.map +1 -0
- package/dist/routes/SolidRouteMetadataBoundary.tsx +77 -0
- package/dist/routes/pages/studio/StudioLandingPage.d.ts.map +1 -1
- package/dist/routes/pages/studio/StudioLandingPage.js +35 -7
- package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -1
- package/dist/routes/pages/studio/StudioLandingPage.tsx +42 -6
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +47 -26
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +47 -26
- package/dist/routes/types.d.ts +7 -0
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +8 -0
- package/package.json +1 -1
- package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
- package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
- package/dist/components/auth/SolidOTPVerify.js +0 -67
- package/dist/components/auth/SolidOTPVerify.js.map +0 -1
- package/dist/components/auth/SolidOTPVerify.tsx +0 -133
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
- package/dist/nextAuth/authProviders.d.ts +0 -4
- package/dist/nextAuth/authProviders.d.ts.map +0 -1
- package/dist/nextAuth/authProviders.js +0 -198
- package/dist/nextAuth/authProviders.js.map +0 -1
- package/dist/nextAuth/authProviders.tsx +0 -232
- package/dist/nextAuth/handleLogout.d.ts +0 -2
- package/dist/nextAuth/handleLogout.d.ts.map +0 -1
- package/dist/nextAuth/handleLogout.js +0 -36
- package/dist/nextAuth/handleLogout.js.map +0 -1
- package/dist/nextAuth/handleLogout.tsx +0 -39
- package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
- package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
- package/dist/nextAuth/refreshAccessToken.js +0 -24
- package/dist/nextAuth/refreshAccessToken.js.map +0 -1
- package/dist/nextAuth/refreshAccessToken.tsx +0 -28
- package/dist/redux/features/settingsSlice.d.ts +0 -20
- package/dist/redux/features/settingsSlice.d.ts.map +0 -1
- package/dist/redux/features/settingsSlice.js +0 -39
- package/dist/redux/features/settingsSlice.js.map +0 -1
- package/dist/redux/features/settingsSlice.ts +0 -60
|
@@ -39,6 +39,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
39
39
|
const dispatch = useDispatch();
|
|
40
40
|
const router = useRouter();
|
|
41
41
|
const [selectedRoles, setSelectedRoles] = useState<string[]>([]);
|
|
42
|
+
const [failedAttempts, setFailedAttempts] = useState<number>(data?.failedLoginAttempts ?? 0);
|
|
42
43
|
const [activeTab, setActiveTab] = useState("userDetails");
|
|
43
44
|
const [newUserIdForApiKey, setNewUserIdForApiKey] = useState<number | null>(null);
|
|
44
45
|
const [revealKey, setRevealKey] = useState<{ apiKey: string; keyName: string } | null>(null);
|
|
@@ -60,6 +61,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
60
61
|
if (data?.roles) {
|
|
61
62
|
setSelectedRoles(data.roles.map((role: any) => role.name));
|
|
62
63
|
}
|
|
64
|
+
setFailedAttempts(data?.failedLoginAttempts ?? 0);
|
|
63
65
|
}, [data]);
|
|
64
66
|
|
|
65
67
|
const initialValues = {
|
|
@@ -69,7 +71,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
69
71
|
mobile: data?.mobile ?? "",
|
|
70
72
|
password: "",
|
|
71
73
|
confirmPassword: "",
|
|
72
|
-
|
|
74
|
+
active: data?.active ?? true,
|
|
73
75
|
isAllowedToGenerateApiKeys: data?.isAllowedToGenerateApiKeys ?? false,
|
|
74
76
|
};
|
|
75
77
|
|
|
@@ -85,11 +87,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
85
87
|
then: (schema) => schema.oneOf([Yup.ref("password")], ERROR_MESSAGES.FIELD_MUST_MATCH("Password")).nullable(),
|
|
86
88
|
otherwise: (schema) => schema.notRequired().nullable(),
|
|
87
89
|
}),
|
|
88
|
-
mobile: Yup.
|
|
89
|
-
failedLoginAttempts: Yup.number()
|
|
90
|
-
.typeError("Failed Login Attempts must be a number")
|
|
91
|
-
.nullable()
|
|
92
|
-
.transform((value, originalValue) => (originalValue === "" ? null : value)),
|
|
90
|
+
mobile: Yup.string().nullable(),
|
|
93
91
|
});
|
|
94
92
|
|
|
95
93
|
function isFetchBaseQueryErrorWithErrorResponse(
|
|
@@ -110,7 +108,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
110
108
|
email: values.email,
|
|
111
109
|
mobile: values.mobile,
|
|
112
110
|
roles: selectedRoles,
|
|
113
|
-
|
|
111
|
+
active: values.active,
|
|
114
112
|
isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,
|
|
115
113
|
};
|
|
116
114
|
|
|
@@ -130,7 +128,6 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
130
128
|
mobile: values.mobile,
|
|
131
129
|
password: values.password,
|
|
132
130
|
roles: selectedRoles,
|
|
133
|
-
failedLoginAttempts: values.failedLoginAttempts,
|
|
134
131
|
isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,
|
|
135
132
|
}).unwrap();
|
|
136
133
|
|
|
@@ -188,6 +185,26 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
188
185
|
const isEditMode = params.id !== "new";
|
|
189
186
|
const isSaving = isLoading || isUserUpdating;
|
|
190
187
|
|
|
188
|
+
const handleUnblockUser = async () => {
|
|
189
|
+
if (!data?.id) return;
|
|
190
|
+
|
|
191
|
+
try {
|
|
192
|
+
await updateUser({
|
|
193
|
+
id: data.id,
|
|
194
|
+
data: { failedLoginAttempts: 0 },
|
|
195
|
+
}).unwrap();
|
|
196
|
+
dispatch(
|
|
197
|
+
showToast({
|
|
198
|
+
severity: "success",
|
|
199
|
+
summary: "Success",
|
|
200
|
+
detail: "User is unblocked.",
|
|
201
|
+
})
|
|
202
|
+
);
|
|
203
|
+
setFailedAttempts(0);
|
|
204
|
+
} catch {
|
|
205
|
+
// error shown via userUpdateError effect
|
|
206
|
+
}
|
|
207
|
+
};
|
|
191
208
|
|
|
192
209
|
return (
|
|
193
210
|
<div className="solid-form-wrapper">
|
|
@@ -206,6 +223,11 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
206
223
|
</div>
|
|
207
224
|
</div>
|
|
208
225
|
<div className="gap-3 flex flex-wrap">
|
|
226
|
+
{isEditMode && failedAttempts > 0 ? (
|
|
227
|
+
<SolidButton size="small" type="button" variant="outline" loading={isUserUpdating} onClick={handleUnblockUser}>
|
|
228
|
+
Unblock User
|
|
229
|
+
</SolidButton>
|
|
230
|
+
) : null}
|
|
209
231
|
{formik.dirty ? (
|
|
210
232
|
<SolidButton size="small" type="submit" loading={isSaving}>
|
|
211
233
|
Save
|
|
@@ -430,35 +452,26 @@ function UserDetailsContent({
|
|
|
430
452
|
) : null}
|
|
431
453
|
</div>
|
|
432
454
|
</>
|
|
433
|
-
) :
|
|
434
|
-
<div className="field col-12 md:col-6 flex flex-column gap-2 mt-3">
|
|
435
|
-
<label htmlFor="failedLoginAttempts" className="form-field-label">
|
|
436
|
-
Failed Login Attempts
|
|
437
|
-
</label>
|
|
438
|
-
<SolidInput
|
|
439
|
-
type="number"
|
|
440
|
-
id="failedLoginAttempts"
|
|
441
|
-
name="failedLoginAttempts"
|
|
442
|
-
autoComplete="off"
|
|
443
|
-
onChange={formik.handleChange}
|
|
444
|
-
onBlur={formik.handleBlur}
|
|
445
|
-
value={formik.values.failedLoginAttempts}
|
|
446
|
-
className={cx(fieldError("failedLoginAttempts") && "solid-user-form-input-invalid")}
|
|
447
|
-
/>
|
|
448
|
-
{fieldError("failedLoginAttempts") ? (
|
|
449
|
-
<SolidMessage severity="error" text={fieldError("failedLoginAttempts")} />
|
|
450
|
-
) : null}
|
|
451
|
-
<p className="solid-user-section-helper">
|
|
452
|
-
Your account has been locked due to repeated unsuccessful login attempts. Please contact your
|
|
453
|
-
system admin.
|
|
454
|
-
</p>
|
|
455
|
-
</div>
|
|
456
|
-
)}
|
|
455
|
+
) : null}
|
|
457
456
|
</div>
|
|
458
457
|
</SolidPanel>
|
|
459
458
|
|
|
460
459
|
<SolidPanel toggleable header="Access" className="solid-column-panel">
|
|
461
|
-
<div className="formgrid grid">
|
|
460
|
+
<div className="formgrid grid solid-user-access-grid">
|
|
461
|
+
{isEditMode ? (
|
|
462
|
+
<div className="field col-12 solid-user-access-row">
|
|
463
|
+
<div className="solid-user-access-copy">
|
|
464
|
+
<p className="form-field-label m-0">Active User</p>
|
|
465
|
+
<p className="solid-user-section-helper m-0 mt-1">
|
|
466
|
+
Control whether this user account is active and allowed to sign in.
|
|
467
|
+
</p>
|
|
468
|
+
</div>
|
|
469
|
+
<SolidSwitch
|
|
470
|
+
checked={formik.values.active}
|
|
471
|
+
onChange={(checked) => formik.setFieldValue("active", checked)}
|
|
472
|
+
/>
|
|
473
|
+
</div>
|
|
474
|
+
) : null}
|
|
462
475
|
<div className="field col-12 solid-user-access-row">
|
|
463
476
|
<div className="solid-user-access-copy">
|
|
464
477
|
<p className="form-field-label m-0">Allow API Key Generation</p>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type SolidButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "destructive";
|
|
3
|
+
type SolidButtonSize = "sm" | "md" | "lg";
|
|
4
|
+
type SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
5
|
+
variant?: SolidButtonVariant;
|
|
6
|
+
size?: SolidButtonSize;
|
|
7
|
+
fullWidth?: boolean;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
leftIcon?: React.ReactNode;
|
|
10
|
+
rightIcon?: React.ReactNode;
|
|
11
|
+
};
|
|
12
|
+
export declare function SolidButton({ variant, size, fullWidth, loading, leftIcon, rightIcon, className, disabled, children, type, ...props }: SolidButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=SolidButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidButton.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AACxF,KAAK,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,KAAK,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACtE,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,OAAmB,EACnB,IAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAe,EACf,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAuBlB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
function cx() {
|
|
25
|
+
var parts = [];
|
|
26
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
27
|
+
parts[_i] = arguments[_i];
|
|
28
|
+
}
|
|
29
|
+
return parts.filter(Boolean).join(" ");
|
|
30
|
+
}
|
|
31
|
+
export function SolidButton(_a) {
|
|
32
|
+
var _b = _a.variant, variant = _b === void 0 ? "primary" : _b, _c = _a.size, size = _c === void 0 ? "md" : _c, fullWidth = _a.fullWidth, loading = _a.loading, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, className = _a.className, disabled = _a.disabled, children = _a.children, _d = _a.type, type = _d === void 0 ? "button" : _d, props = __rest(_a, ["variant", "size", "fullWidth", "loading", "leftIcon", "rightIcon", "className", "disabled", "children", "type"]);
|
|
33
|
+
var isDisabled = disabled || loading;
|
|
34
|
+
return (_jsxs("button", __assign({ type: type, className: cx("solid-btn", "solid-btn--".concat(variant), "solid-btn--".concat(size), fullWidth && "solid-btn--full", loading && "is-loading", className), disabled: isDisabled }, props, { children: [loading && _jsx("span", { className: "solid-btn-spinner", "aria-hidden": "true" }), !loading && leftIcon ? _jsx("span", { className: "solid-btn-icon", children: leftIcon }) : null, _jsx("span", { className: "solid-btn-label", children: children }), !loading && rightIcon ? _jsx("span", { className: "solid-btn-icon", children: rightIcon }) : null] })));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=SolidButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidButton.js","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAYT;IAXjB,IAAA,eAAmB,EAAnB,OAAO,mBAAG,SAAS,KAAA,EACnB,YAAW,EAAX,IAAI,mBAAG,IAAI,KAAA,EACX,SAAS,eAAA,EACT,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,YAAe,EAAf,IAAI,mBAAG,QAAQ,KAAA,EACZ,KAAK,cAXkB,iHAY3B,CADS;IAER,IAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC;IAEvC,OAAO,CACL,2BACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,WAAW,EACX,qBAAc,OAAO,CAAE,EACvB,qBAAc,IAAI,CAAE,EACpB,SAAS,IAAI,iBAAiB,EAC9B,OAAO,IAAI,YAAY,EACvB,SAAS,CACV,EACD,QAAQ,EAAE,UAAU,IAChB,KAAK,eAER,OAAO,IAAI,eAAM,SAAS,EAAC,mBAAmB,iBAAa,MAAM,GAAG,EACpE,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjF,eAAM,SAAS,EAAC,iBAAiB,YAAE,QAAQ,GAAQ,EAClD,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gBAAgB,YAAE,SAAS,GAAQ,CAAC,CAAC,CAAC,IAAI,KAC5E,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"outline\" | \"destructive\";\ntype SolidButtonSize = \"sm\" | \"md\" | \"lg\";\n\ntype SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: SolidButtonVariant;\n size?: SolidButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidButton({\n variant = \"primary\",\n size = \"md\",\n fullWidth,\n loading,\n leftIcon,\n rightIcon,\n className,\n disabled,\n children,\n type = \"button\",\n ...props\n}: SolidButtonProps) {\n const isDisabled = disabled || loading;\n\n return (\n <button\n type={type}\n className={cx(\n \"solid-btn\",\n `solid-btn--${variant}`,\n `solid-btn--${size}`,\n fullWidth && \"solid-btn--full\",\n loading && \"is-loading\",\n className\n )}\n disabled={isDisabled}\n {...props}\n >\n {loading && <span className=\"solid-btn-spinner\" aria-hidden=\"true\" />}\n {!loading && leftIcon ? <span className=\"solid-btn-icon\">{leftIcon}</span> : null}\n <span className=\"solid-btn-label\">{children}</span>\n {!loading && rightIcon ? <span className=\"solid-btn-icon\">{rightIcon}</span> : null}\n </button>\n );\n}\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
type SolidButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "destructive";
|
|
4
|
+
type SolidButtonSize = "sm" | "md" | "lg";
|
|
5
|
+
|
|
6
|
+
type SolidButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
7
|
+
variant?: SolidButtonVariant;
|
|
8
|
+
size?: SolidButtonSize;
|
|
9
|
+
fullWidth?: boolean;
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
leftIcon?: React.ReactNode;
|
|
12
|
+
rightIcon?: React.ReactNode;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
function cx(...parts: Array<string | false | undefined>) {
|
|
16
|
+
return parts.filter(Boolean).join(" ");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function SolidButton({
|
|
20
|
+
variant = "primary",
|
|
21
|
+
size = "md",
|
|
22
|
+
fullWidth,
|
|
23
|
+
loading,
|
|
24
|
+
leftIcon,
|
|
25
|
+
rightIcon,
|
|
26
|
+
className,
|
|
27
|
+
disabled,
|
|
28
|
+
children,
|
|
29
|
+
type = "button",
|
|
30
|
+
...props
|
|
31
|
+
}: SolidButtonProps) {
|
|
32
|
+
const isDisabled = disabled || loading;
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<button
|
|
36
|
+
type={type}
|
|
37
|
+
className={cx(
|
|
38
|
+
"solid-btn",
|
|
39
|
+
`solid-btn--${variant}`,
|
|
40
|
+
`solid-btn--${size}`,
|
|
41
|
+
fullWidth && "solid-btn--full",
|
|
42
|
+
loading && "is-loading",
|
|
43
|
+
className
|
|
44
|
+
)}
|
|
45
|
+
disabled={isDisabled}
|
|
46
|
+
{...props}
|
|
47
|
+
>
|
|
48
|
+
{loading && <span className="solid-btn-spinner" aria-hidden="true" />}
|
|
49
|
+
{!loading && leftIcon ? <span className="solid-btn-icon">{leftIcon}</span> : null}
|
|
50
|
+
<span className="solid-btn-label">{children}</span>
|
|
51
|
+
{!loading && rightIcon ? <span className="solid-btn-icon">{rightIcon}</span> : null}
|
|
52
|
+
</button>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type SolidTabProps = {
|
|
3
|
+
value: string;
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
content: React.ReactNode;
|
|
6
|
+
};
|
|
7
|
+
type SolidTabGroupProps = {
|
|
8
|
+
tabs: SolidTabProps[];
|
|
9
|
+
value: string;
|
|
10
|
+
onValueChange: (value: string) => void;
|
|
11
|
+
className?: string;
|
|
12
|
+
listClassName?: string;
|
|
13
|
+
panelClassName?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function SolidTab(_props: SolidTabProps): null;
|
|
16
|
+
export declare function SolidTabGroup({ tabs, value, onValueChange, className, listClassName, panelClassName, }: SolidTabGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=SolidTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,2CAwCpB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
function cx() {
|
|
3
|
+
var parts = [];
|
|
4
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5
|
+
parts[_i] = arguments[_i];
|
|
6
|
+
}
|
|
7
|
+
return parts.filter(Boolean).join(" ");
|
|
8
|
+
}
|
|
9
|
+
export function SolidTab(_props) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
export function SolidTabGroup(_a) {
|
|
13
|
+
var tabs = _a.tabs, value = _a.value, onValueChange = _a.onValueChange, className = _a.className, listClassName = _a.listClassName, panelClassName = _a.panelClassName;
|
|
14
|
+
return (_jsxs("div", { className: cx("solid-tabs", className), children: [_jsx("div", { className: cx("solid-tabs-list", listClassName), role: "tablist", children: tabs.map(function (tab) {
|
|
15
|
+
var isActive = tab.value === value;
|
|
16
|
+
return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-tabs-trigger", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
|
|
17
|
+
}) }), tabs.map(function (tab) {
|
|
18
|
+
var isActive = tab.value === value;
|
|
19
|
+
return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-tabs-panel", panelClassName), children: isActive ? tab.content : null }, tab.value));
|
|
20
|
+
})] }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=SolidTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/solid-ui/SolidTabs.tsx"],"names":[],"mappings":";AAiBA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAOT;QANnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA;IAEd,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,aACzC,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,IAAI,EAAC,SAAS,YACjE,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;oBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;oBACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,IAAI,WAAW,CAAC,EAC5D,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IATL,GAAG,CAAC,KAAK,CAUP,CACV,CAAC;gBACJ,CAAC,CAAC,GACE,EAEL,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;gBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,OAAO,CACL,cAEE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,0BAAmB,GAAG,CAAC,KAAK,CAAE,qBACjB,oBAAa,GAAG,CAAC,KAAK,CAAE,EACzC,MAAM,EAAE,CAAC,QAAQ,EACjB,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,cAAc,CAAC,YAEhD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAPzB,GAAG,CAAC,KAAK,CAQV,CACP,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n}: SolidTabGroupProps) {\n return (\n <div className={cx(\"solid-tabs\", className)}>\n <div className={cx(\"solid-tabs-list\", listClassName)} role=\"tablist\">\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\"solid-tabs-trigger\", isActive && \"is-active\")}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
type SolidTabProps = {
|
|
4
|
+
value: string;
|
|
5
|
+
label: React.ReactNode;
|
|
6
|
+
content: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
type SolidTabGroupProps = {
|
|
10
|
+
tabs: SolidTabProps[];
|
|
11
|
+
value: string;
|
|
12
|
+
onValueChange: (value: string) => void;
|
|
13
|
+
className?: string;
|
|
14
|
+
listClassName?: string;
|
|
15
|
+
panelClassName?: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
function cx(...parts: Array<string | false | undefined>) {
|
|
19
|
+
return parts.filter(Boolean).join(" ");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function SolidTab(_props: SolidTabProps) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function SolidTabGroup({
|
|
27
|
+
tabs,
|
|
28
|
+
value,
|
|
29
|
+
onValueChange,
|
|
30
|
+
className,
|
|
31
|
+
listClassName,
|
|
32
|
+
panelClassName,
|
|
33
|
+
}: SolidTabGroupProps) {
|
|
34
|
+
return (
|
|
35
|
+
<div className={cx("solid-tabs", className)}>
|
|
36
|
+
<div className={cx("solid-tabs-list", listClassName)} role="tablist">
|
|
37
|
+
{tabs.map((tab) => {
|
|
38
|
+
const isActive = tab.value === value;
|
|
39
|
+
return (
|
|
40
|
+
<button
|
|
41
|
+
key={tab.value}
|
|
42
|
+
type="button"
|
|
43
|
+
role="tab"
|
|
44
|
+
aria-selected={isActive}
|
|
45
|
+
aria-controls={`solid-tab-panel-${tab.value}`}
|
|
46
|
+
id={`solid-tab-${tab.value}`}
|
|
47
|
+
className={cx("solid-tabs-trigger", isActive && "is-active")}
|
|
48
|
+
onClick={() => onValueChange(tab.value)}
|
|
49
|
+
>
|
|
50
|
+
{tab.label}
|
|
51
|
+
</button>
|
|
52
|
+
);
|
|
53
|
+
})}
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
{tabs.map((tab) => {
|
|
57
|
+
const isActive = tab.value === value;
|
|
58
|
+
return (
|
|
59
|
+
<div
|
|
60
|
+
key={tab.value}
|
|
61
|
+
role="tabpanel"
|
|
62
|
+
id={`solid-tab-panel-${tab.value}`}
|
|
63
|
+
aria-labelledby={`solid-tab-${tab.value}`}
|
|
64
|
+
hidden={!isActive}
|
|
65
|
+
className={cx("solid-tabs-panel", panelClassName)}
|
|
66
|
+
>
|
|
67
|
+
{isActive ? tab.content : null}
|
|
68
|
+
</div>
|
|
69
|
+
);
|
|
70
|
+
})}
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/solid-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/solid-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { SolidButton } from \"./SolidButton\";\nexport { SolidTab, SolidTabGroup } from \"./SolidTabs\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/helpers/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/helpers/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AA4D1B,OAAO,EAGH,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC7B,MAAM,6BAA6B,CAAC;AA0BrC,eAAO,MAAM,0BAA0B,SAAU,MAAM,aAAa,MAAM,aAAa,CAAC,GAAG,CAAC,SAAQ,sBAAsB,YAAyD,MAAM,EAAE,cAAkB,MAAM,SAMlN,CAAC;AAEF,eAAO,MAAM,yBAAyB,SAAU,MAAM,gBAAgB,GAAG,EAAE,KAAK,GAAG,SAAQ,qBAAqB,SAE/G,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,IAM/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,SAAU,sBAAsB,cAAa,MAAM,KAAQ,MAAM,EAAE,GAAG,EASxG,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,eA7C/B,GAAG,EAAE,KAAK,GA+C3B,CAAC"}
|
package/dist/helpers/registry.js
CHANGED
|
@@ -36,6 +36,7 @@ import { SolidIconEditWidget } from "../components/core/form/fields/widgets/Soli
|
|
|
36
36
|
import { SolidIconViewWidget } from "../components/core/form/fields/widgets/SolidIconViewWidget";
|
|
37
37
|
import { SolidManyToManyRelationAvatarListWidget } from "../components/core/list/widgets/SolidManyToManyRelationAvatarListWidget";
|
|
38
38
|
import { SolidManyToOneRelationAvatarListWidget } from "../components/core/list/widgets/SolidManyToOneRelationAvatarListWidget";
|
|
39
|
+
import { SolidUserBlockedStatusListWidget } from "../components/core/list/widgets/SolidUserBlockedStatusListWidget";
|
|
39
40
|
import { SolidShortTextFieldAvatarWidget } from "../components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget";
|
|
40
41
|
import DeleteModelRowAction from "../components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction";
|
|
41
42
|
import ChartFormPreviewWidget from "../components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget";
|
|
@@ -122,6 +123,8 @@ registerExtensionComponent("DefaultRelationManyToManyListWidget", DefaultRelatio
|
|
|
122
123
|
registerExtensionComponent("SolidManyToManyRelationAvatarListWidget", SolidManyToManyRelationAvatarListWidget, ExtensionComponentTypes.listFieldWidget);
|
|
123
124
|
// - relation.one2many
|
|
124
125
|
registerExtensionComponent("DefaultRelationOneToManyListWidget", DefaultRelationOneToManyListWidget, ExtensionComponentTypes.listFieldWidget);
|
|
126
|
+
// - users status
|
|
127
|
+
registerExtensionComponent("SolidUserBlockedStatusListWidget", SolidUserBlockedStatusListWidget, ExtensionComponentTypes.listFieldWidget);
|
|
125
128
|
// - relation.datetime
|
|
126
129
|
registerExtensionComponent('DefaultDateTimeListWidget', DefaultDateTimeListWidget, ExtensionComponentTypes.listFieldWidget);
|
|
127
130
|
// - date
|