@openwarelabs/blocks 0.9.0 → 0.10.1
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/README.md +36 -10
- package/dist/app-shells/Shell01/Shell01.d.cts +6 -0
- package/dist/app-shells/Shell01/Shell01.d.ts +6 -0
- package/dist/app-shells/Shell01/Shell01.types.d.cts +48 -0
- package/dist/app-shells/Shell01/Shell01.types.d.ts +48 -0
- package/dist/app-shells/Shell02/Shell02.d.cts +7 -0
- package/dist/app-shells/Shell02/Shell02.d.ts +7 -0
- package/dist/app-shells/Shell02/Shell02.types.d.cts +50 -0
- package/dist/app-shells/Shell02/Shell02.types.d.ts +50 -0
- package/dist/app-shells/Shell03/Shell03.d.cts +6 -0
- package/dist/app-shells/Shell03/Shell03.d.ts +6 -0
- package/dist/app-shells/Shell03/Shell03.types.d.cts +73 -0
- package/dist/app-shells/Shell03/Shell03.types.d.ts +73 -0
- package/dist/app-shells/Shell04/Shell04.d.cts +6 -0
- package/dist/app-shells/Shell04/Shell04.d.ts +6 -0
- package/dist/app-shells/Shell04/Shell04.types.d.cts +68 -0
- package/dist/app-shells/Shell04/Shell04.types.d.ts +68 -0
- package/dist/blog/Blog01/Blog01.d.cts +3 -0
- package/dist/blog/Blog01/Blog01.d.ts +3 -0
- package/dist/blog/Blog01/Blog01.types.d.cts +55 -0
- package/dist/blog/Blog01/Blog01.types.d.ts +55 -0
- package/dist/blog/Blog02/Blog02.d.cts +3 -0
- package/dist/blog/Blog02/Blog02.d.ts +3 -0
- package/dist/blog/Blog02/Blog02.types.d.cts +51 -0
- package/dist/blog/Blog02/Blog02.types.d.ts +51 -0
- package/dist/blog/Blog03/Blog03.d.cts +3 -0
- package/dist/blog/Blog03/Blog03.d.ts +3 -0
- package/dist/blog/Blog03/Blog03.types.d.cts +66 -0
- package/dist/blog/Blog03/Blog03.types.d.ts +66 -0
- package/dist/blog/Blog04/Blog04.d.cts +3 -0
- package/dist/blog/Blog04/Blog04.d.ts +3 -0
- package/dist/blog/Blog04/Blog04.types.d.cts +64 -0
- package/dist/blog/Blog04/Blog04.types.d.ts +64 -0
- package/dist/chat/Chat01/Chat01.d.cts +6 -0
- package/dist/chat/Chat01/Chat01.d.ts +6 -0
- package/dist/chat/Chat01/Chat01.types.d.cts +95 -0
- package/dist/chat/Chat01/Chat01.types.d.ts +95 -0
- package/dist/chat/Chat02/Chat02.d.cts +6 -0
- package/dist/chat/Chat02/Chat02.d.ts +6 -0
- package/dist/chat/Chat02/Chat02.types.d.cts +70 -0
- package/dist/chat/Chat02/Chat02.types.d.ts +70 -0
- package/dist/chat/Chat03/Chat03.d.cts +6 -0
- package/dist/chat/Chat03/Chat03.d.ts +6 -0
- package/dist/chat/Chat03/Chat03.types.d.cts +96 -0
- package/dist/chat/Chat03/Chat03.types.d.ts +96 -0
- package/dist/contact/Contact01/Contact01.d.cts +3 -0
- package/dist/contact/Contact01/Contact01.d.ts +3 -0
- package/dist/contact/Contact01/Contact01.types.d.cts +103 -0
- package/dist/contact/Contact01/Contact01.types.d.ts +103 -0
- package/dist/contact/Contact02/Contact02.d.cts +3 -0
- package/dist/contact/Contact02/Contact02.d.ts +3 -0
- package/dist/contact/Contact02/Contact02.types.d.cts +56 -0
- package/dist/contact/Contact02/Contact02.types.d.ts +56 -0
- package/dist/dashboards/Dashboard01/Dashboard01.d.cts +3 -0
- package/dist/dashboards/Dashboard01/Dashboard01.d.ts +3 -0
- package/dist/dashboards/Dashboard01/Dashboard01.types.d.cts +53 -0
- package/dist/dashboards/Dashboard01/Dashboard01.types.d.ts +53 -0
- package/dist/dashboards/Dashboard02/Dashboard02.d.cts +3 -0
- package/dist/dashboards/Dashboard02/Dashboard02.d.ts +3 -0
- package/dist/dashboards/Dashboard02/Dashboard02.types.d.cts +74 -0
- package/dist/dashboards/Dashboard02/Dashboard02.types.d.ts +74 -0
- package/dist/dashboards/Dashboard03/Dashboard03.d.cts +6 -0
- package/dist/dashboards/Dashboard03/Dashboard03.d.ts +6 -0
- package/dist/dashboards/Dashboard03/Dashboard03.types.d.cts +131 -0
- package/dist/dashboards/Dashboard03/Dashboard03.types.d.ts +131 -0
- package/dist/empty-states/Empty01/Empty01.d.cts +3 -0
- package/dist/empty-states/Empty01/Empty01.d.ts +3 -0
- package/dist/empty-states/Empty01/Empty01.types.d.cts +94 -0
- package/dist/empty-states/Empty01/Empty01.types.d.ts +94 -0
- package/dist/empty-states/Empty02/Empty02.d.cts +3 -0
- package/dist/empty-states/Empty02/Empty02.d.ts +3 -0
- package/dist/empty-states/Empty02/Empty02.types.d.cts +72 -0
- package/dist/empty-states/Empty02/Empty02.types.d.ts +72 -0
- package/dist/empty-states/Empty03/Empty03.d.cts +3 -0
- package/dist/empty-states/Empty03/Empty03.d.ts +3 -0
- package/dist/empty-states/Empty03/Empty03.types.d.cts +72 -0
- package/dist/empty-states/Empty03/Empty03.types.d.ts +72 -0
- package/dist/error-pages/ErrorPage01/ErrorPage01.d.cts +3 -0
- package/dist/error-pages/ErrorPage01/ErrorPage01.d.ts +3 -0
- package/dist/error-pages/ErrorPage01/ErrorPage01.types.d.cts +48 -0
- package/dist/error-pages/ErrorPage01/ErrorPage01.types.d.ts +48 -0
- package/dist/error-pages/ErrorPage02/ErrorPage02.d.cts +3 -0
- package/dist/error-pages/ErrorPage02/ErrorPage02.d.ts +3 -0
- package/dist/error-pages/ErrorPage02/ErrorPage02.types.d.cts +45 -0
- package/dist/error-pages/ErrorPage02/ErrorPage02.types.d.ts +45 -0
- package/dist/error-pages/ErrorPage03/ErrorPage03.d.cts +3 -0
- package/dist/error-pages/ErrorPage03/ErrorPage03.d.ts +3 -0
- package/dist/error-pages/ErrorPage03/ErrorPage03.types.d.cts +45 -0
- package/dist/error-pages/ErrorPage03/ErrorPage03.types.d.ts +45 -0
- package/dist/faq/Faq01/Faq01.d.cts +3 -0
- package/dist/faq/Faq01/Faq01.d.ts +3 -0
- package/dist/faq/Faq01/Faq01.types.d.cts +23 -0
- package/dist/faq/Faq01/Faq01.types.d.ts +23 -0
- package/dist/faq/Faq02/Faq02.d.cts +3 -0
- package/dist/faq/Faq02/Faq02.d.ts +3 -0
- package/dist/faq/Faq02/Faq02.types.d.cts +24 -0
- package/dist/faq/Faq02/Faq02.types.d.ts +24 -0
- package/dist/faq/Faq03/Faq03.d.cts +3 -0
- package/dist/faq/Faq03/Faq03.d.ts +3 -0
- package/dist/faq/Faq03/Faq03.types.d.cts +42 -0
- package/dist/faq/Faq03/Faq03.types.d.ts +42 -0
- package/dist/forms/Form01/Form01.d.cts +3 -0
- package/dist/forms/Form01/Form01.d.ts +3 -0
- package/dist/forms/Form01/Form01.types.d.cts +20 -0
- package/dist/forms/Form01/Form01.types.d.ts +20 -0
- package/dist/forms/Form02/Form02.d.cts +3 -0
- package/dist/forms/Form02/Form02.d.ts +3 -0
- package/dist/forms/Form02/Form02.types.d.cts +38 -0
- package/dist/forms/Form02/Form02.types.d.ts +38 -0
- package/dist/forms/Form03/Form03.d.cts +3 -0
- package/dist/forms/Form03/Form03.d.ts +3 -0
- package/dist/forms/Form03/Form03.types.d.cts +55 -0
- package/dist/forms/Form03/Form03.types.d.ts +55 -0
- package/dist/index.cjs +6190 -22
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.cts +135 -1
- package/dist/index.d.ts +135 -1
- package/dist/index.js +6220 -19
- package/dist/index.js.map +4 -4
- package/dist/lists-and-tables/List01/List01.d.cts +6 -0
- package/dist/lists-and-tables/List01/List01.d.ts +6 -0
- package/dist/lists-and-tables/List01/List01.types.d.cts +60 -0
- package/dist/lists-and-tables/List01/List01.types.d.ts +60 -0
- package/dist/lists-and-tables/List02/List02.d.cts +3 -0
- package/dist/lists-and-tables/List02/List02.d.ts +3 -0
- package/dist/lists-and-tables/List02/List02.types.d.cts +54 -0
- package/dist/lists-and-tables/List02/List02.types.d.ts +54 -0
- package/dist/lists-and-tables/List03/List03.d.cts +3 -0
- package/dist/lists-and-tables/List03/List03.d.ts +3 -0
- package/dist/lists-and-tables/List03/List03.types.d.cts +41 -0
- package/dist/lists-and-tables/List03/List03.types.d.ts +41 -0
- package/dist/lists-and-tables/List04/List04.d.cts +3 -0
- package/dist/lists-and-tables/List04/List04.d.ts +3 -0
- package/dist/lists-and-tables/List04/List04.types.d.cts +67 -0
- package/dist/lists-and-tables/List04/List04.types.d.ts +67 -0
- package/dist/logo-clouds/Logos01/Logos01.d.cts +3 -0
- package/dist/logo-clouds/Logos01/Logos01.d.ts +3 -0
- package/dist/logo-clouds/Logos01/Logos01.types.d.cts +13 -0
- package/dist/logo-clouds/Logos01/Logos01.types.d.ts +13 -0
- package/dist/logo-clouds/Logos02/Logos02.d.cts +3 -0
- package/dist/logo-clouds/Logos02/Logos02.d.ts +3 -0
- package/dist/logo-clouds/Logos02/Logos02.types.d.cts +28 -0
- package/dist/logo-clouds/Logos02/Logos02.types.d.ts +28 -0
- package/dist/logo-clouds/Logos03/Logos03.d.cts +3 -0
- package/dist/logo-clouds/Logos03/Logos03.d.ts +3 -0
- package/dist/logo-clouds/Logos03/Logos03.types.d.cts +23 -0
- package/dist/logo-clouds/Logos03/Logos03.types.d.ts +23 -0
- package/dist/newsletter/Newsletter01/Newsletter01.d.cts +3 -0
- package/dist/newsletter/Newsletter01/Newsletter01.d.ts +3 -0
- package/dist/newsletter/Newsletter01/Newsletter01.types.d.cts +39 -0
- package/dist/newsletter/Newsletter01/Newsletter01.types.d.ts +39 -0
- package/dist/newsletter/Newsletter02/Newsletter02.d.cts +3 -0
- package/dist/newsletter/Newsletter02/Newsletter02.d.ts +3 -0
- package/dist/newsletter/Newsletter02/Newsletter02.types.d.cts +42 -0
- package/dist/newsletter/Newsletter02/Newsletter02.types.d.ts +42 -0
- package/dist/notifications/Notifications01/Notifications01.d.cts +3 -0
- package/dist/notifications/Notifications01/Notifications01.d.ts +3 -0
- package/dist/notifications/Notifications01/Notifications01.types.d.cts +74 -0
- package/dist/notifications/Notifications01/Notifications01.types.d.ts +74 -0
- package/dist/notifications/Notifications02/Notifications02.d.cts +3 -0
- package/dist/notifications/Notifications02/Notifications02.d.ts +3 -0
- package/dist/notifications/Notifications02/Notifications02.types.d.cts +65 -0
- package/dist/notifications/Notifications02/Notifications02.types.d.ts +65 -0
- package/dist/notifications/Notifications03/Notifications03.d.cts +3 -0
- package/dist/notifications/Notifications03/Notifications03.d.ts +3 -0
- package/dist/notifications/Notifications03/Notifications03.types.d.cts +87 -0
- package/dist/notifications/Notifications03/Notifications03.types.d.ts +87 -0
- package/dist/onboarding/Onboarding01/Onboarding01.d.cts +3 -0
- package/dist/onboarding/Onboarding01/Onboarding01.d.ts +3 -0
- package/dist/onboarding/Onboarding01/Onboarding01.types.d.cts +46 -0
- package/dist/onboarding/Onboarding01/Onboarding01.types.d.ts +46 -0
- package/dist/onboarding/Onboarding02/Onboarding02.d.cts +3 -0
- package/dist/onboarding/Onboarding02/Onboarding02.d.ts +3 -0
- package/dist/onboarding/Onboarding02/Onboarding02.types.d.cts +68 -0
- package/dist/onboarding/Onboarding02/Onboarding02.types.d.ts +68 -0
- package/dist/onboarding/Onboarding03/Onboarding03.d.cts +3 -0
- package/dist/onboarding/Onboarding03/Onboarding03.d.ts +3 -0
- package/dist/onboarding/Onboarding03/Onboarding03.types.d.cts +38 -0
- package/dist/onboarding/Onboarding03/Onboarding03.types.d.ts +38 -0
- package/dist/page-headings/PageHeading01/PageHeading01.d.cts +6 -0
- package/dist/page-headings/PageHeading01/PageHeading01.d.ts +6 -0
- package/dist/page-headings/PageHeading01/PageHeading01.types.d.cts +35 -0
- package/dist/page-headings/PageHeading01/PageHeading01.types.d.ts +35 -0
- package/dist/page-headings/PageHeading02/PageHeading02.d.cts +3 -0
- package/dist/page-headings/PageHeading02/PageHeading02.d.ts +3 -0
- package/dist/page-headings/PageHeading02/PageHeading02.types.d.cts +49 -0
- package/dist/page-headings/PageHeading02/PageHeading02.types.d.ts +49 -0
- package/dist/page-headings/PageHeading03/PageHeading03.d.cts +6 -0
- package/dist/page-headings/PageHeading03/PageHeading03.d.ts +6 -0
- package/dist/page-headings/PageHeading03/PageHeading03.types.d.cts +83 -0
- package/dist/page-headings/PageHeading03/PageHeading03.types.d.ts +83 -0
- package/dist/section-headings/SectionHeading01/SectionHeading01.d.cts +3 -0
- package/dist/section-headings/SectionHeading01/SectionHeading01.d.ts +3 -0
- package/dist/section-headings/SectionHeading01/SectionHeading01.types.d.cts +9 -0
- package/dist/section-headings/SectionHeading01/SectionHeading01.types.d.ts +9 -0
- package/dist/section-headings/SectionHeading02/SectionHeading02.d.cts +3 -0
- package/dist/section-headings/SectionHeading02/SectionHeading02.d.ts +3 -0
- package/dist/section-headings/SectionHeading02/SectionHeading02.types.d.cts +12 -0
- package/dist/section-headings/SectionHeading02/SectionHeading02.types.d.ts +12 -0
- package/dist/section-headings/SectionHeading03/SectionHeading03.d.cts +3 -0
- package/dist/section-headings/SectionHeading03/SectionHeading03.d.ts +3 -0
- package/dist/section-headings/SectionHeading03/SectionHeading03.types.d.cts +12 -0
- package/dist/section-headings/SectionHeading03/SectionHeading03.types.d.ts +12 -0
- package/dist/settings/Settings01/Settings01.d.cts +3 -0
- package/dist/settings/Settings01/Settings01.d.ts +3 -0
- package/dist/settings/Settings01/Settings01.types.d.cts +46 -0
- package/dist/settings/Settings01/Settings01.types.d.ts +46 -0
- package/dist/settings/Settings02/Settings02.d.cts +3 -0
- package/dist/settings/Settings02/Settings02.d.ts +3 -0
- package/dist/settings/Settings02/Settings02.types.d.cts +45 -0
- package/dist/settings/Settings02/Settings02.types.d.ts +45 -0
- package/dist/settings/Settings03/Settings03.d.cts +3 -0
- package/dist/settings/Settings03/Settings03.d.ts +3 -0
- package/dist/settings/Settings03/Settings03.types.d.cts +132 -0
- package/dist/settings/Settings03/Settings03.types.d.ts +132 -0
- package/dist/settings/Settings04/Settings04.d.cts +3 -0
- package/dist/settings/Settings04/Settings04.d.ts +3 -0
- package/dist/settings/Settings04/Settings04.types.d.cts +124 -0
- package/dist/settings/Settings04/Settings04.types.d.ts +124 -0
- package/dist/settings/Settings05/Settings05.d.cts +3 -0
- package/dist/settings/Settings05/Settings05.d.ts +3 -0
- package/dist/settings/Settings05/Settings05.types.d.cts +94 -0
- package/dist/settings/Settings05/Settings05.types.d.ts +94 -0
- package/dist/shared/AppWorkspaceItems.d.cts +3 -0
- package/dist/shared/AppWorkspaceItems.d.ts +3 -0
- package/dist/shared/BlockActions.d.cts +1 -1
- package/dist/shared/BlockActions.d.ts +1 -1
- package/dist/shared/BlockMenuItems.d.cts +3 -0
- package/dist/shared/BlockMenuItems.d.ts +3 -0
- package/dist/shared/appShell.d.cts +19 -0
- package/dist/shared/appShell.d.ts +19 -0
- package/dist/shared/icons.d.cts +59 -13
- package/dist/shared/icons.d.ts +59 -13
- package/dist/shared/shared.types.d.cts +128 -0
- package/dist/shared/shared.types.d.ts +128 -0
- package/dist/shared/tableColumns.d.cts +10 -0
- package/dist/shared/tableColumns.d.ts +10 -0
- package/dist/sign-in/SignIn01/SignIn01.d.cts +3 -0
- package/dist/sign-in/SignIn01/SignIn01.d.ts +3 -0
- package/dist/sign-in/SignIn01/SignIn01.types.d.cts +52 -0
- package/dist/sign-in/SignIn01/SignIn01.types.d.ts +52 -0
- package/dist/sign-in/SignIn02/SignIn02.d.cts +3 -0
- package/dist/sign-in/SignIn02/SignIn02.d.ts +3 -0
- package/dist/sign-in/SignIn02/SignIn02.types.d.cts +79 -0
- package/dist/sign-in/SignIn02/SignIn02.types.d.ts +79 -0
- package/dist/sign-in/SignIn03/SignIn03.d.cts +3 -0
- package/dist/sign-in/SignIn03/SignIn03.d.ts +3 -0
- package/dist/sign-in/SignIn03/SignIn03.types.d.cts +51 -0
- package/dist/sign-in/SignIn03/SignIn03.types.d.ts +51 -0
- package/dist/sign-in/SignIn04/SignIn04.d.cts +3 -0
- package/dist/sign-in/SignIn04/SignIn04.d.ts +3 -0
- package/dist/sign-in/SignIn04/SignIn04.types.d.cts +56 -0
- package/dist/sign-in/SignIn04/SignIn04.types.d.ts +56 -0
- package/dist/sign-in/SignIn05/SignIn05.d.cts +3 -0
- package/dist/sign-in/SignIn05/SignIn05.d.ts +3 -0
- package/dist/sign-in/SignIn05/SignIn05.types.d.cts +86 -0
- package/dist/sign-in/SignIn05/SignIn05.types.d.ts +86 -0
- package/dist/stats/Stats01/Stats01.d.cts +3 -0
- package/dist/stats/Stats01/Stats01.d.ts +3 -0
- package/dist/stats/Stats01/Stats01.types.d.cts +19 -0
- package/dist/stats/Stats01/Stats01.types.d.ts +19 -0
- package/dist/stats/Stats02/Stats02.d.cts +3 -0
- package/dist/stats/Stats02/Stats02.d.ts +3 -0
- package/dist/stats/Stats02/Stats02.types.d.cts +30 -0
- package/dist/stats/Stats02/Stats02.types.d.ts +30 -0
- package/dist/stats/Stats03/Stats03.d.cts +3 -0
- package/dist/stats/Stats03/Stats03.d.ts +3 -0
- package/dist/stats/Stats03/Stats03.types.d.cts +24 -0
- package/dist/stats/Stats03/Stats03.types.d.ts +24 -0
- package/dist/styles.css +11992 -2727
- package/dist/team/Team01/Team01.d.cts +3 -0
- package/dist/team/Team01/Team01.d.ts +3 -0
- package/dist/team/Team01/Team01.types.d.cts +25 -0
- package/dist/team/Team01/Team01.types.d.ts +25 -0
- package/dist/team/Team02/Team02.d.cts +3 -0
- package/dist/team/Team02/Team02.d.ts +3 -0
- package/dist/team/Team02/Team02.types.d.cts +37 -0
- package/dist/team/Team02/Team02.types.d.ts +37 -0
- package/dist/testimonials/Testimonial01/Testimonial01.d.cts +3 -0
- package/dist/testimonials/Testimonial01/Testimonial01.d.ts +3 -0
- package/dist/testimonials/Testimonial01/Testimonial01.types.d.cts +21 -0
- package/dist/testimonials/Testimonial01/Testimonial01.types.d.ts +21 -0
- package/dist/testimonials/Testimonial02/Testimonial02.d.cts +3 -0
- package/dist/testimonials/Testimonial02/Testimonial02.d.ts +3 -0
- package/dist/testimonials/Testimonial02/Testimonial02.types.d.cts +25 -0
- package/dist/testimonials/Testimonial02/Testimonial02.types.d.ts +25 -0
- package/dist/testimonials/Testimonial03/Testimonial03.d.cts +3 -0
- package/dist/testimonials/Testimonial03/Testimonial03.d.ts +3 -0
- package/dist/testimonials/Testimonial03/Testimonial03.types.d.cts +45 -0
- package/dist/testimonials/Testimonial03/Testimonial03.types.d.ts +45 -0
- package/package.json +3 -3
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockBrand, BlockLink } from "../../shared/shared.types.cjs";
|
|
3
|
+
/** One of the main places, offered as a way out. */
|
|
4
|
+
export interface ErrorPage01Place {
|
|
5
|
+
/** Its name: "Projects". */
|
|
6
|
+
name: string;
|
|
7
|
+
/** A line under it, hidden on phones: "Every project and its tasks". */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** A 16px icon on a tile, usually from lucide-react. */
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
/** Where it goes. */
|
|
12
|
+
href: string;
|
|
13
|
+
/** More words the search finds it by: "tasks issues repositories". */
|
|
14
|
+
keywords?: string;
|
|
15
|
+
}
|
|
16
|
+
/** The words that aren't content, in English unless you pass your own. */
|
|
17
|
+
export interface ErrorPage01Labels {
|
|
18
|
+
/** What the drawn 404 is read out as. @default "Error 404" */
|
|
19
|
+
code?: string;
|
|
20
|
+
/** The logo link's name, when the brand's name alone isn't clear: "Acme overview". */
|
|
21
|
+
home?: string;
|
|
22
|
+
/** The search field's name. @default "Search" */
|
|
23
|
+
search?: string;
|
|
24
|
+
/** @default "Search" */
|
|
25
|
+
placeholder?: string;
|
|
26
|
+
/** The places' name for screen readers. @default "Places to go" */
|
|
27
|
+
places?: string;
|
|
28
|
+
/** Shown when no place matches the search. @default (query) => `Nothing here matches “${query}”. Press Enter to search.` */
|
|
29
|
+
noMatches?(query: string): ReactNode;
|
|
30
|
+
}
|
|
31
|
+
export interface ErrorPage01Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children"> {
|
|
32
|
+
/** The logo and name at the top left, linking home. */
|
|
33
|
+
brand: BlockBrand;
|
|
34
|
+
/** A link at the top right, such as "Help centre". */
|
|
35
|
+
helpLink?: BlockLink;
|
|
36
|
+
/** The page's h1: "This page isn't here". */
|
|
37
|
+
title: ReactNode;
|
|
38
|
+
/** A sentence under it: why, and what to do. */
|
|
39
|
+
description?: ReactNode;
|
|
40
|
+
/** The main places, which the search narrows as you type. */
|
|
41
|
+
places: ErrorPage01Place[];
|
|
42
|
+
/** How many places show at once.
|
|
43
|
+
* @default 4 */
|
|
44
|
+
maxPlaces?: number;
|
|
45
|
+
/** Runs on Enter in the search: search the whole product. */
|
|
46
|
+
onSearch?(query: string): void;
|
|
47
|
+
labels?: ErrorPage01Labels;
|
|
48
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockBrand, BlockLink } from "../../shared/shared.types.js";
|
|
3
|
+
/** One of the main places, offered as a way out. */
|
|
4
|
+
export interface ErrorPage01Place {
|
|
5
|
+
/** Its name: "Projects". */
|
|
6
|
+
name: string;
|
|
7
|
+
/** A line under it, hidden on phones: "Every project and its tasks". */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** A 16px icon on a tile, usually from lucide-react. */
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
/** Where it goes. */
|
|
12
|
+
href: string;
|
|
13
|
+
/** More words the search finds it by: "tasks issues repositories". */
|
|
14
|
+
keywords?: string;
|
|
15
|
+
}
|
|
16
|
+
/** The words that aren't content, in English unless you pass your own. */
|
|
17
|
+
export interface ErrorPage01Labels {
|
|
18
|
+
/** What the drawn 404 is read out as. @default "Error 404" */
|
|
19
|
+
code?: string;
|
|
20
|
+
/** The logo link's name, when the brand's name alone isn't clear: "Acme overview". */
|
|
21
|
+
home?: string;
|
|
22
|
+
/** The search field's name. @default "Search" */
|
|
23
|
+
search?: string;
|
|
24
|
+
/** @default "Search" */
|
|
25
|
+
placeholder?: string;
|
|
26
|
+
/** The places' name for screen readers. @default "Places to go" */
|
|
27
|
+
places?: string;
|
|
28
|
+
/** Shown when no place matches the search. @default (query) => `Nothing here matches “${query}”. Press Enter to search.` */
|
|
29
|
+
noMatches?(query: string): ReactNode;
|
|
30
|
+
}
|
|
31
|
+
export interface ErrorPage01Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children"> {
|
|
32
|
+
/** The logo and name at the top left, linking home. */
|
|
33
|
+
brand: BlockBrand;
|
|
34
|
+
/** A link at the top right, such as "Help centre". */
|
|
35
|
+
helpLink?: BlockLink;
|
|
36
|
+
/** The page's h1: "This page isn't here". */
|
|
37
|
+
title: ReactNode;
|
|
38
|
+
/** A sentence under it: why, and what to do. */
|
|
39
|
+
description?: ReactNode;
|
|
40
|
+
/** The main places, which the search narrows as you type. */
|
|
41
|
+
places: ErrorPage01Place[];
|
|
42
|
+
/** How many places show at once.
|
|
43
|
+
* @default 4 */
|
|
44
|
+
maxPlaces?: number;
|
|
45
|
+
/** Runs on Enter in the search: search the whole product. */
|
|
46
|
+
onSearch?(query: string): void;
|
|
47
|
+
labels?: ErrorPage01Labels;
|
|
48
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ErrorPage02Props } from "./ErrorPage02.types.cjs";
|
|
2
|
+
/** A 500: that it isn't their fault, a button to try again, and an error ID to send to support. */
|
|
3
|
+
export declare function ErrorPage02({ brand, statusLink, badge, title, description, onRetry, homeAction, report, errorId, visual, labels, className, ...props }: ErrorPage02Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ErrorPage02Props } from "./ErrorPage02.types.js";
|
|
2
|
+
/** A 500: that it isn't their fault, a button to try again, and an error ID to send to support. */
|
|
3
|
+
export declare function ErrorPage02({ brand, statusLink, badge, title, description, onRetry, homeAction, report, errorId, visual, labels, className, ...props }: ErrorPage02Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockAction, BlockBrand, BlockLink } from "../../shared/shared.types.cjs";
|
|
3
|
+
/** The words that aren't content, in English unless you pass your own. */
|
|
4
|
+
export interface ErrorPage02Labels {
|
|
5
|
+
/** The logo link's name, when the brand's name alone isn't clear: "Acme overview". */
|
|
6
|
+
home?: string;
|
|
7
|
+
/** @default "Try again" */
|
|
8
|
+
retry?: string;
|
|
9
|
+
/** The button while it tries. @default "Trying again…" */
|
|
10
|
+
retrying?: string;
|
|
11
|
+
/** The heading over how to report it. @default "If it keeps happening" */
|
|
12
|
+
reportTitle?: string;
|
|
13
|
+
/** @default "Error ID" */
|
|
14
|
+
errorId?: string;
|
|
15
|
+
/** The copy button's name. @default "Copy ID" */
|
|
16
|
+
copy?: string;
|
|
17
|
+
/** Added after `report` once someone has tried more than once. @default (count) => `You've tried ${count} times.` */
|
|
18
|
+
tries?(count: number): string;
|
|
19
|
+
}
|
|
20
|
+
export interface ErrorPage02Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children"> {
|
|
21
|
+
/** The logo and name at the top left, linking home. */
|
|
22
|
+
brand: BlockBrand;
|
|
23
|
+
/** A link to the status page at the top right, with an amber dot: "Some systems slow". */
|
|
24
|
+
statusLink?: BlockLink;
|
|
25
|
+
/** A small red badge above the title: "Error 500". */
|
|
26
|
+
badge?: ReactNode;
|
|
27
|
+
/** The page's h1: "Something went wrong on our side". */
|
|
28
|
+
title: ReactNode;
|
|
29
|
+
/** A sentence or two under it: that it isn't their fault, and that nothing is lost. */
|
|
30
|
+
description?: ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Runs on Try again: load the page again. While its promise is pending the button shows a spinner.
|
|
33
|
+
* @default () => window.location.reload()
|
|
34
|
+
*/
|
|
35
|
+
onRetry?(): void | Promise<void>;
|
|
36
|
+
/** A second button beside Try again, such as "Go to overview". */
|
|
37
|
+
homeAction?: BlockAction;
|
|
38
|
+
/** How to report it, under the buttons: "Send this error ID to support@example.com…". */
|
|
39
|
+
report?: ReactNode;
|
|
40
|
+
/** The ID to quote to support, in a field with a copy button. */
|
|
41
|
+
errorId?: string;
|
|
42
|
+
/** A drawn picture beside the words, such as the request's path to the step that failed. Hidden below 880px. */
|
|
43
|
+
visual?: ReactNode;
|
|
44
|
+
labels?: ErrorPage02Labels;
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockAction, BlockBrand, BlockLink } from "../../shared/shared.types.js";
|
|
3
|
+
/** The words that aren't content, in English unless you pass your own. */
|
|
4
|
+
export interface ErrorPage02Labels {
|
|
5
|
+
/** The logo link's name, when the brand's name alone isn't clear: "Acme overview". */
|
|
6
|
+
home?: string;
|
|
7
|
+
/** @default "Try again" */
|
|
8
|
+
retry?: string;
|
|
9
|
+
/** The button while it tries. @default "Trying again…" */
|
|
10
|
+
retrying?: string;
|
|
11
|
+
/** The heading over how to report it. @default "If it keeps happening" */
|
|
12
|
+
reportTitle?: string;
|
|
13
|
+
/** @default "Error ID" */
|
|
14
|
+
errorId?: string;
|
|
15
|
+
/** The copy button's name. @default "Copy ID" */
|
|
16
|
+
copy?: string;
|
|
17
|
+
/** Added after `report` once someone has tried more than once. @default (count) => `You've tried ${count} times.` */
|
|
18
|
+
tries?(count: number): string;
|
|
19
|
+
}
|
|
20
|
+
export interface ErrorPage02Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children"> {
|
|
21
|
+
/** The logo and name at the top left, linking home. */
|
|
22
|
+
brand: BlockBrand;
|
|
23
|
+
/** A link to the status page at the top right, with an amber dot: "Some systems slow". */
|
|
24
|
+
statusLink?: BlockLink;
|
|
25
|
+
/** A small red badge above the title: "Error 500". */
|
|
26
|
+
badge?: ReactNode;
|
|
27
|
+
/** The page's h1: "Something went wrong on our side". */
|
|
28
|
+
title: ReactNode;
|
|
29
|
+
/** A sentence or two under it: that it isn't their fault, and that nothing is lost. */
|
|
30
|
+
description?: ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Runs on Try again: load the page again. While its promise is pending the button shows a spinner.
|
|
33
|
+
* @default () => window.location.reload()
|
|
34
|
+
*/
|
|
35
|
+
onRetry?(): void | Promise<void>;
|
|
36
|
+
/** A second button beside Try again, such as "Go to overview". */
|
|
37
|
+
homeAction?: BlockAction;
|
|
38
|
+
/** How to report it, under the buttons: "Send this error ID to support@example.com…". */
|
|
39
|
+
report?: ReactNode;
|
|
40
|
+
/** The ID to quote to support, in a field with a copy button. */
|
|
41
|
+
errorId?: string;
|
|
42
|
+
/** A drawn picture beside the words, such as the request's path to the step that failed. Hidden below 880px. */
|
|
43
|
+
visual?: ReactNode;
|
|
44
|
+
labels?: ErrorPage02Labels;
|
|
45
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ErrorPage03Props } from "./ErrorPage03.types.cjs";
|
|
2
|
+
/** A maintenance page: when it'll be back, how the work is going, and a way to hear when it's done. */
|
|
3
|
+
export declare function ErrorPage03({ brand, statusLink, badge, title, description, backTime, backDetail, onCheckAgain, onNotify, steps, currentStep, labels, className, ...props }: ErrorPage03Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ErrorPage03Props } from "./ErrorPage03.types.js";
|
|
2
|
+
/** A maintenance page: when it'll be back, how the work is going, and a way to hear when it's done. */
|
|
3
|
+
export declare function ErrorPage03({ brand, statusLink, badge, title, description, backTime, backDetail, onCheckAgain, onNotify, steps, currentStep, labels, className, ...props }: ErrorPage03Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { StepItem } from "@openwarelabs/ui";
|
|
3
|
+
import type { BlockBrand, BlockLink } from "../../shared/shared.types.cjs";
|
|
4
|
+
/** The words that aren't content, in English unless you pass your own. */
|
|
5
|
+
export interface ErrorPage03Labels {
|
|
6
|
+
/** The logo link's name, when the brand's name alone isn't clear: "Acme home". */
|
|
7
|
+
home?: string;
|
|
8
|
+
/** @default "Check again" */
|
|
9
|
+
checkAgain?: string;
|
|
10
|
+
/** The button that asks to hear when it's back. @default "Email me when it's back" */
|
|
11
|
+
notify?: string;
|
|
12
|
+
/** The same button once asked. @default "We'll email you" */
|
|
13
|
+
notified?: string;
|
|
14
|
+
/** The steps' heading. @default "Maintenance plan" */
|
|
15
|
+
steps?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ErrorPage03Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children"> {
|
|
18
|
+
/** The logo and name at the top left, linking home. */
|
|
19
|
+
brand: BlockBrand;
|
|
20
|
+
/** A link to the status page at the top right, with an arrow: "Status page". */
|
|
21
|
+
statusLink?: BlockLink;
|
|
22
|
+
/** A small amber badge above the title: "Planned maintenance". */
|
|
23
|
+
badge?: ReactNode;
|
|
24
|
+
/** The page's h1: "Acme is down for maintenance". */
|
|
25
|
+
title: ReactNode;
|
|
26
|
+
/** A sentence or two under it: what's happening, and that nothing is lost. */
|
|
27
|
+
description?: ReactNode;
|
|
28
|
+
/** When it'll be back, large beside a clock: "Back by 07:00 CET". */
|
|
29
|
+
backTime?: ReactNode;
|
|
30
|
+
/** A line under it: "Tuesday 14 Oct, about 40 minutes from now". */
|
|
31
|
+
backDetail?: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Runs on Check again: load the page again. While its promise is pending the button shows a spinner.
|
|
34
|
+
* @default () => window.location.reload()
|
|
35
|
+
*/
|
|
36
|
+
onCheckAgain?(): void | Promise<void>;
|
|
37
|
+
/** Signs them up to hear when it's back. Without it there's no button for that. */
|
|
38
|
+
onNotify?(): void;
|
|
39
|
+
/** The work, in order, as a list of steps beside the words. */
|
|
40
|
+
steps?: StepItem[];
|
|
41
|
+
/** The index of the step under way; the ones before it are done.
|
|
42
|
+
* @default 0 */
|
|
43
|
+
currentStep?: number;
|
|
44
|
+
labels?: ErrorPage03Labels;
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { StepItem } from "@openwarelabs/ui";
|
|
3
|
+
import type { BlockBrand, BlockLink } from "../../shared/shared.types.js";
|
|
4
|
+
/** The words that aren't content, in English unless you pass your own. */
|
|
5
|
+
export interface ErrorPage03Labels {
|
|
6
|
+
/** The logo link's name, when the brand's name alone isn't clear: "Acme home". */
|
|
7
|
+
home?: string;
|
|
8
|
+
/** @default "Check again" */
|
|
9
|
+
checkAgain?: string;
|
|
10
|
+
/** The button that asks to hear when it's back. @default "Email me when it's back" */
|
|
11
|
+
notify?: string;
|
|
12
|
+
/** The same button once asked. @default "We'll email you" */
|
|
13
|
+
notified?: string;
|
|
14
|
+
/** The steps' heading. @default "Maintenance plan" */
|
|
15
|
+
steps?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ErrorPage03Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children"> {
|
|
18
|
+
/** The logo and name at the top left, linking home. */
|
|
19
|
+
brand: BlockBrand;
|
|
20
|
+
/** A link to the status page at the top right, with an arrow: "Status page". */
|
|
21
|
+
statusLink?: BlockLink;
|
|
22
|
+
/** A small amber badge above the title: "Planned maintenance". */
|
|
23
|
+
badge?: ReactNode;
|
|
24
|
+
/** The page's h1: "Acme is down for maintenance". */
|
|
25
|
+
title: ReactNode;
|
|
26
|
+
/** A sentence or two under it: what's happening, and that nothing is lost. */
|
|
27
|
+
description?: ReactNode;
|
|
28
|
+
/** When it'll be back, large beside a clock: "Back by 07:00 CET". */
|
|
29
|
+
backTime?: ReactNode;
|
|
30
|
+
/** A line under it: "Tuesday 14 Oct, about 40 minutes from now". */
|
|
31
|
+
backDetail?: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Runs on Check again: load the page again. While its promise is pending the button shows a spinner.
|
|
34
|
+
* @default () => window.location.reload()
|
|
35
|
+
*/
|
|
36
|
+
onCheckAgain?(): void | Promise<void>;
|
|
37
|
+
/** Signs them up to hear when it's back. Without it there's no button for that. */
|
|
38
|
+
onNotify?(): void;
|
|
39
|
+
/** The work, in order, as a list of steps beside the words. */
|
|
40
|
+
steps?: StepItem[];
|
|
41
|
+
/** The index of the step under way; the ones before it are done.
|
|
42
|
+
* @default 0 */
|
|
43
|
+
currentStep?: number;
|
|
44
|
+
labels?: ErrorPage03Labels;
|
|
45
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Faq01Props } from "./Faq01.types.cjs";
|
|
2
|
+
/** Questions in an accordion that opens one at a time, under a centred heading. */
|
|
3
|
+
export declare function Faq01({ eyebrow, title, description, questions, defaultOpen, note, className, ...props }: Faq01Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Faq01Props } from "./Faq01.types.js";
|
|
2
|
+
/** Questions in an accordion that opens one at a time, under a centred heading. */
|
|
3
|
+
export declare function Faq01({ eyebrow, title, description, questions, defaultOpen, note, className, ...props }: Faq01Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export interface Faq01Question {
|
|
3
|
+
/** Names it for `defaultOpen`. @default its index, as a string */
|
|
4
|
+
id?: string;
|
|
5
|
+
/** The question, as the row's title. */
|
|
6
|
+
question: ReactNode;
|
|
7
|
+
/** The answer, shown when the row is open. */
|
|
8
|
+
answer: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export interface Faq01Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
|
|
11
|
+
/** A small line in a Chip above the title, such as "FAQ". */
|
|
12
|
+
eyebrow?: ReactNode;
|
|
13
|
+
/** The section's heading, centred. */
|
|
14
|
+
title: ReactNode;
|
|
15
|
+
/** A sentence under the title. */
|
|
16
|
+
description?: ReactNode;
|
|
17
|
+
/** The questions, in an accordion that opens one at a time. */
|
|
18
|
+
questions: Faq01Question[];
|
|
19
|
+
/** The question open at first, by id (or index). @default the first */
|
|
20
|
+
defaultOpen?: string[];
|
|
21
|
+
/** A line under the questions, such as where to ask one that isn't there, with links. */
|
|
22
|
+
note?: ReactNode;
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export interface Faq01Question {
|
|
3
|
+
/** Names it for `defaultOpen`. @default its index, as a string */
|
|
4
|
+
id?: string;
|
|
5
|
+
/** The question, as the row's title. */
|
|
6
|
+
question: ReactNode;
|
|
7
|
+
/** The answer, shown when the row is open. */
|
|
8
|
+
answer: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export interface Faq01Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
|
|
11
|
+
/** A small line in a Chip above the title, such as "FAQ". */
|
|
12
|
+
eyebrow?: ReactNode;
|
|
13
|
+
/** The section's heading, centred. */
|
|
14
|
+
title: ReactNode;
|
|
15
|
+
/** A sentence under the title. */
|
|
16
|
+
description?: ReactNode;
|
|
17
|
+
/** The questions, in an accordion that opens one at a time. */
|
|
18
|
+
questions: Faq01Question[];
|
|
19
|
+
/** The question open at first, by id (or index). @default the first */
|
|
20
|
+
defaultOpen?: string[];
|
|
21
|
+
/** A line under the questions, such as where to ask one that isn't there, with links. */
|
|
22
|
+
note?: ReactNode;
|
|
23
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockLink } from "../../shared/shared.types.cjs";
|
|
3
|
+
export interface Faq02Question {
|
|
4
|
+
/** Names it for `defaultOpen`. @default its index, as a string */
|
|
5
|
+
id?: string;
|
|
6
|
+
/** The question, as the row's title. */
|
|
7
|
+
question: ReactNode;
|
|
8
|
+
/** The answer, shown when the row is open. */
|
|
9
|
+
answer: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export interface Faq02Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
|
|
12
|
+
/** A small line in a Chip above the title, such as "FAQ". */
|
|
13
|
+
eyebrow?: ReactNode;
|
|
14
|
+
/** The section's heading, on the left, staying in view while the questions scroll past. */
|
|
15
|
+
title: ReactNode;
|
|
16
|
+
/** A sentence or two under the title. */
|
|
17
|
+
description?: ReactNode;
|
|
18
|
+
/** Links under the heading, each with an arrow: "Contact support", "Read the docs". */
|
|
19
|
+
links?: BlockLink[];
|
|
20
|
+
/** The questions, on the right, between hairlines; several can be open at once. */
|
|
21
|
+
questions: Faq02Question[];
|
|
22
|
+
/** The questions open at first, by id (or index). @default the first */
|
|
23
|
+
defaultOpen?: string[];
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockLink } from "../../shared/shared.types.js";
|
|
3
|
+
export interface Faq02Question {
|
|
4
|
+
/** Names it for `defaultOpen`. @default its index, as a string */
|
|
5
|
+
id?: string;
|
|
6
|
+
/** The question, as the row's title. */
|
|
7
|
+
question: ReactNode;
|
|
8
|
+
/** The answer, shown when the row is open. */
|
|
9
|
+
answer: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export interface Faq02Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
|
|
12
|
+
/** A small line in a Chip above the title, such as "FAQ". */
|
|
13
|
+
eyebrow?: ReactNode;
|
|
14
|
+
/** The section's heading, on the left, staying in view while the questions scroll past. */
|
|
15
|
+
title: ReactNode;
|
|
16
|
+
/** A sentence or two under the title. */
|
|
17
|
+
description?: ReactNode;
|
|
18
|
+
/** Links under the heading, each with an arrow: "Contact support", "Read the docs". */
|
|
19
|
+
links?: BlockLink[];
|
|
20
|
+
/** The questions, on the right, between hairlines; several can be open at once. */
|
|
21
|
+
questions: Faq02Question[];
|
|
22
|
+
/** The questions open at first, by id (or index). @default the first */
|
|
23
|
+
defaultOpen?: string[];
|
|
24
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Faq03Props } from "./Faq03.types.cjs";
|
|
2
|
+
/** Every question answered in two columns, and a card for anything they don't cover. */
|
|
3
|
+
export declare function Faq03({ eyebrow, title, description, questions, contact, className, ...props }: Faq03Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Faq03Props } from "./Faq03.types.js";
|
|
2
|
+
/** Every question answered in two columns, and a card for anything they don't cover. */
|
|
3
|
+
export declare function Faq03({ eyebrow, title, description, questions, contact, className, ...props }: Faq03Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockAction } from "../../shared/shared.types.cjs";
|
|
3
|
+
export interface Faq03Question {
|
|
4
|
+
/** The question, as a small title. */
|
|
5
|
+
question: ReactNode;
|
|
6
|
+
/** The answer, always on show under it. */
|
|
7
|
+
answer: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export interface Faq03Person {
|
|
10
|
+
/** Their name, for their avatar's initials. */
|
|
11
|
+
name: string;
|
|
12
|
+
/** A photo of them, as an image URL. */
|
|
13
|
+
avatar?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface Faq03Contact {
|
|
16
|
+
/** The card's title: "Still have a question?". */
|
|
17
|
+
title: ReactNode;
|
|
18
|
+
/** A sentence on who answers and how. */
|
|
19
|
+
description?: ReactNode;
|
|
20
|
+
/** A small line after a green dot, such as how quickly they reply. */
|
|
21
|
+
status?: ReactNode;
|
|
22
|
+
/** The people who answer, as overlapping avatars on the left. */
|
|
23
|
+
people?: Faq03Person[];
|
|
24
|
+
/** Names the avatars for screen readers: "Lena, Omar and Aiko from support". */
|
|
25
|
+
peopleLabel?: string;
|
|
26
|
+
/** The main way to get in touch, as a primary pill button. */
|
|
27
|
+
primaryAction: BlockAction;
|
|
28
|
+
/** A second way, beside it. */
|
|
29
|
+
secondaryAction?: BlockAction;
|
|
30
|
+
}
|
|
31
|
+
export interface Faq03Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
|
|
32
|
+
/** A small line in a Chip above the title, such as "FAQ". */
|
|
33
|
+
eyebrow?: ReactNode;
|
|
34
|
+
/** The section's heading. */
|
|
35
|
+
title: ReactNode;
|
|
36
|
+
/** A sentence or two under the title. */
|
|
37
|
+
description?: ReactNode;
|
|
38
|
+
/** The questions, every answer on show, two to a row (one on phones). */
|
|
39
|
+
questions: Faq03Question[];
|
|
40
|
+
/** A card under the questions for anything they don't cover. */
|
|
41
|
+
contact?: Faq03Contact;
|
|
42
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockAction } from "../../shared/shared.types.js";
|
|
3
|
+
export interface Faq03Question {
|
|
4
|
+
/** The question, as a small title. */
|
|
5
|
+
question: ReactNode;
|
|
6
|
+
/** The answer, always on show under it. */
|
|
7
|
+
answer: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export interface Faq03Person {
|
|
10
|
+
/** Their name, for their avatar's initials. */
|
|
11
|
+
name: string;
|
|
12
|
+
/** A photo of them, as an image URL. */
|
|
13
|
+
avatar?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface Faq03Contact {
|
|
16
|
+
/** The card's title: "Still have a question?". */
|
|
17
|
+
title: ReactNode;
|
|
18
|
+
/** A sentence on who answers and how. */
|
|
19
|
+
description?: ReactNode;
|
|
20
|
+
/** A small line after a green dot, such as how quickly they reply. */
|
|
21
|
+
status?: ReactNode;
|
|
22
|
+
/** The people who answer, as overlapping avatars on the left. */
|
|
23
|
+
people?: Faq03Person[];
|
|
24
|
+
/** Names the avatars for screen readers: "Lena, Omar and Aiko from support". */
|
|
25
|
+
peopleLabel?: string;
|
|
26
|
+
/** The main way to get in touch, as a primary pill button. */
|
|
27
|
+
primaryAction: BlockAction;
|
|
28
|
+
/** A second way, beside it. */
|
|
29
|
+
secondaryAction?: BlockAction;
|
|
30
|
+
}
|
|
31
|
+
export interface Faq03Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
|
|
32
|
+
/** A small line in a Chip above the title, such as "FAQ". */
|
|
33
|
+
eyebrow?: ReactNode;
|
|
34
|
+
/** The section's heading. */
|
|
35
|
+
title: ReactNode;
|
|
36
|
+
/** A sentence or two under the title. */
|
|
37
|
+
description?: ReactNode;
|
|
38
|
+
/** The questions, every answer on show, two to a row (one on phones). */
|
|
39
|
+
questions: Faq03Question[];
|
|
40
|
+
/** A card under the questions for anything they don't cover. */
|
|
41
|
+
contact?: Faq03Contact;
|
|
42
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Form01Props } from "./Form01.types.cjs";
|
|
2
|
+
/** One column on the canvas: a back link, the page's heading, then the fields on a card with the action in its footer. */
|
|
3
|
+
export declare function Form01({ title, description, backLink, children, submitLabel, onSubmit, submitting, note, className, ...props }: Form01Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Form01Props } from "./Form01.types.js";
|
|
2
|
+
/** One column on the canvas: a back link, the page's heading, then the fields on a card with the action in its footer. */
|
|
3
|
+
export declare function Form01({ title, description, backLink, children, submitLabel, onSubmit, submitting, note, className, ...props }: Form01Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FormEvent, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockLink } from "../../shared/shared.types.cjs";
|
|
3
|
+
export interface Form01Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "onSubmit"> {
|
|
4
|
+
/** The page's heading: "New project". It also names the form. */
|
|
5
|
+
title: ReactNode;
|
|
6
|
+
/** A line under it. */
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
/** A link back above the heading, with an arrow: the page this one came from. */
|
|
9
|
+
backLink?: BlockLink;
|
|
10
|
+
/** The fields, stacked on the card in order: Field, RadioGroup, Checkbox and the like. Their values and errors are yours to keep. */
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
/** The button in the card's footer: "Create project". */
|
|
13
|
+
submitLabel: ReactNode;
|
|
14
|
+
/** Runs when the form is sent, by the button or Enter. The default (a page load) is already prevented. */
|
|
15
|
+
onSubmit?(event: FormEvent<HTMLFormElement>): void;
|
|
16
|
+
/** Shows a spinner on the button while the form is saving. */
|
|
17
|
+
submitting?: boolean;
|
|
18
|
+
/** Small print beside the button. */
|
|
19
|
+
note?: ReactNode;
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FormEvent, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { BlockLink } from "../../shared/shared.types.js";
|
|
3
|
+
export interface Form01Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "onSubmit"> {
|
|
4
|
+
/** The page's heading: "New project". It also names the form. */
|
|
5
|
+
title: ReactNode;
|
|
6
|
+
/** A line under it. */
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
/** A link back above the heading, with an arrow: the page this one came from. */
|
|
9
|
+
backLink?: BlockLink;
|
|
10
|
+
/** The fields, stacked on the card in order: Field, RadioGroup, Checkbox and the like. Their values and errors are yours to keep. */
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
/** The button in the card's footer: "Create project". */
|
|
13
|
+
submitLabel: ReactNode;
|
|
14
|
+
/** Runs when the form is sent, by the button or Enter. The default (a page load) is already prevented. */
|
|
15
|
+
onSubmit?(event: FormEvent<HTMLFormElement>): void;
|
|
16
|
+
/** Shows a spinner on the button while the form is saving. */
|
|
17
|
+
submitting?: boolean;
|
|
18
|
+
/** Small print beside the button. */
|
|
19
|
+
note?: ReactNode;
|
|
20
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Form02Props } from "./Form02.types.cjs";
|
|
2
|
+
/** Sections down the page, each one's title and purpose on the left and its fields on a card on the right, with Discard and Save at the end. */
|
|
3
|
+
export declare function Form02({ title, description, sections, dirty, onSubmit, onDiscard, submitting, labels, className, ...props }: Form02Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Form02Props } from "./Form02.types.js";
|
|
2
|
+
/** Sections down the page, each one's title and purpose on the left and its fields on a card on the right, with Discard and Save at the end. */
|
|
3
|
+
export declare function Form02({ title, description, sections, dirty, onSubmit, onDiscard, submitting, labels, className, ...props }: Form02Props): import("react").JSX.Element;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { FormEvent, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export interface Form02Labels {
|
|
3
|
+
/** Beside the buttons while there are changes. @default "You have unsaved changes." */
|
|
4
|
+
unsaved?: string;
|
|
5
|
+
/** Beside them when there aren't. @default "Everything is saved." */
|
|
6
|
+
saved?: string;
|
|
7
|
+
/** The button that puts the saved values back. @default "Discard" */
|
|
8
|
+
discard?: string;
|
|
9
|
+
/** The button that saves. @default "Save changes" */
|
|
10
|
+
save?: string;
|
|
11
|
+
}
|
|
12
|
+
/** One section of the form: its title and purpose on the left, its fields on a card on the right. */
|
|
13
|
+
export interface Form02Section {
|
|
14
|
+
/** The section's heading. */
|
|
15
|
+
title: ReactNode;
|
|
16
|
+
/** What it's for, under the heading. */
|
|
17
|
+
description?: ReactNode;
|
|
18
|
+
/** Its fields, stacked on the card: Field, RadioGroup, Checkbox and the like. Their values and errors are yours to keep. */
|
|
19
|
+
content: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export interface Form02Props extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children" | "onSubmit"> {
|
|
22
|
+
/** The page's heading: "Workspace". It also names the form. */
|
|
23
|
+
title: ReactNode;
|
|
24
|
+
/** A line under it. */
|
|
25
|
+
description?: ReactNode;
|
|
26
|
+
/** The sections, down the page. */
|
|
27
|
+
sections: Form02Section[];
|
|
28
|
+
/** Whether the values differ from what's saved: it turns the buttons on and says so beside them. */
|
|
29
|
+
dirty: boolean;
|
|
30
|
+
/** Runs when the form is sent, by the button or Enter. The default (a page load) is already prevented. */
|
|
31
|
+
onSubmit?(event: FormEvent<HTMLFormElement>): void;
|
|
32
|
+
/** Puts the saved values back. */
|
|
33
|
+
onDiscard?(): void;
|
|
34
|
+
/** Shows a spinner on the save button while saving. */
|
|
35
|
+
submitting?: boolean;
|
|
36
|
+
/** Words that aren't content (the buttons, the status), in English unless you pass your own. */
|
|
37
|
+
labels?: Form02Labels;
|
|
38
|
+
}
|