fulldev-ui 0.3.35 → 0.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +57 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +39 -0
- package/.github/pull_request_template.md +23 -0
- package/.github/workflows/github-releases-to-discord.yml +21 -0
- package/.prettierignore +15 -0
- package/.prettierrc.yaml +34 -0
- package/.vscode/extensions.json +4 -0
- package/.vscode/launch.json +11 -0
- package/.vscode/settings.json +23 -0
- package/CHANGELOG.md +100 -0
- package/CONTRIBUTING.md +102 -0
- package/LICENCE +21 -0
- package/README.md +9 -6
- package/astro.config.ts +44 -0
- package/package.json +41 -27
- package/pnpm-lock.yaml +6229 -0
- package/public/favicon/android-chrome-192x192.png +0 -0
- package/public/favicon/android-chrome-512x512.png +0 -0
- package/public/favicon/apple-touch-icon.png +0 -0
- package/public/favicon/browserconfig.xml +9 -0
- package/public/favicon/favicon-16x16.png +0 -0
- package/public/favicon/favicon-32x32.png +0 -0
- package/public/favicon/favicon.ico +0 -0
- package/public/favicon/mstile-150x150.png +0 -0
- package/public/favicon/safari-pinned-tab.svg +17 -0
- package/public/favicon/site.webmanifest +19 -0
- package/public/images/avatar-placeholder.jpg +0 -0
- package/public/images/avatars/1.jpeg +0 -0
- package/public/images/avatars/2.jpeg +0 -0
- package/public/images/avatars/3.jpeg +0 -0
- package/public/images/avatars/300/1.jpeg +0 -0
- package/public/images/avatars/300/2.jpeg +0 -0
- package/public/images/avatars/300/3.jpeg +0 -0
- package/public/images/avatars/300/4.jpeg +0 -0
- package/public/images/avatars/4.jpeg +0 -0
- package/public/images/avatars/5.jpeg +0 -0
- package/public/images/avatars/500/1.jpeg +0 -0
- package/public/images/avatars/500/2.jpeg +0 -0
- package/public/images/avatars/500/3.jpeg +0 -0
- package/public/images/avatars/500/4.jpeg +0 -0
- package/public/images/avatars/6.jpeg +0 -0
- package/public/images/avatars/7.jpeg +0 -0
- package/public/images/avatars/8.jpeg +0 -0
- package/public/images/block-code.png +0 -0
- package/public/images/blocks/colleagues.png +0 -0
- package/public/images/blocks/content.png +0 -0
- package/public/images/blocks/cta.png +0 -0
- package/public/images/blocks/features.png +0 -0
- package/public/images/blocks/footer.png +0 -0
- package/public/images/blocks/header.png +0 -0
- package/public/images/blocks/hero.png +0 -0
- package/public/images/blocks/intro.png +0 -0
- package/public/images/blocks/posts.png +0 -0
- package/public/images/blocks/prices.png +0 -0
- package/public/images/blocks/reviews.png +0 -0
- package/public/images/component-code.png +0 -0
- package/public/images/logo-placeholder.svg +1 -0
- package/public/images/placeholder-center.webp +0 -0
- package/public/images/placeholder-landscape-dark.png +0 -0
- package/public/images/placeholder-landscape.webp +0 -0
- package/public/images/placeholder-portrait.webp +0 -0
- package/public/images/placeholder-right.webp +0 -0
- package/public/images/placeholder.webp +0 -0
- package/siteicon.png +0 -0
- package/src/blocks/Categories.astro +12 -0
- package/src/blocks/Colleagues.astro +12 -0
- package/src/blocks/Contact.astro +152 -0
- package/src/blocks/Content.astro +12 -0
- package/src/blocks/Cta.astro +14 -0
- package/src/blocks/Features.astro +11 -0
- package/src/blocks/Footer.astro +7 -0
- package/src/blocks/Header.astro +7 -0
- package/src/blocks/Hero.astro +16 -0
- package/src/blocks/Intro.astro +19 -0
- package/src/blocks/Jobs.astro +12 -0
- package/src/blocks/Posts.astro +11 -0
- package/src/blocks/Prices.astro +22 -0
- package/src/blocks/Product.astro +64 -0
- package/src/blocks/Products.astro +11 -0
- package/src/blocks/Reviews.astro +13 -0
- package/src/components/{base/Avatar.astro → Avatar.astro} +7 -11
- package/src/components/{base/Badge.astro → Badge.astro} +36 -22
- package/src/components/{structure/Bento.astro → Bento.astro} +6 -9
- package/src/components/Block.astro +157 -0
- package/src/components/Blocks.astro +5 -0
- package/src/components/Box.astro +60 -0
- package/src/components/Button.astro +140 -0
- package/src/components/Card.astro +212 -0
- package/src/components/{structure/Carousel.astro → Carousel.astro} +13 -16
- package/src/components/Checkbox.astro +63 -0
- package/src/components/{structure/Column.astro → Column.astro} +18 -9
- package/src/components/Dialog.astro +65 -0
- package/src/components/Drawer.astro +99 -0
- package/src/components/Footer.astro +144 -0
- package/src/components/{structure/Grid.astro → Grid.astro} +7 -10
- package/src/components/Head.astro +85 -0
- package/src/components/Header.astro +204 -0
- package/src/components/Heading.astro +79 -0
- package/src/components/{base/Icon.astro → Icon.astro} +7 -9
- package/src/components/{base/Image.astro → Image.astro} +32 -30
- package/src/components/Input.astro +119 -0
- package/src/components/{typography/Label.astro → Label.astro} +12 -12
- package/src/components/{typography/Link.astro → Link.astro} +15 -13
- package/src/components/List.astro +41 -0
- package/src/components/{structure/Masonry.astro → Masonry.astro} +9 -11
- package/src/components/Rating.astro +82 -0
- package/src/components/{_Component.astro → Root.astro} +9 -11
- package/src/components/{structure/Row.astro → Row.astro} +6 -9
- package/src/components/Search.astro +62 -0
- package/src/components/Section.astro +274 -0
- package/src/components/Select.astro +144 -0
- package/src/components/Sidebar.astro +71 -0
- package/src/components/{structure/Split.astro → Split.astro} +6 -9
- package/src/components/{structure/Spread.astro → Spread.astro} +6 -9
- package/src/components/Switch.astro +114 -0
- package/src/components/Table.astro +121 -0
- package/src/components/Tagline.astro +35 -0
- package/src/components/Text.astro +43 -0
- package/src/components/Textarea.astro +105 -0
- package/src/components/Toc.astro +52 -0
- package/src/components/{structure/Wrap.astro → Wrap.astro} +5 -10
- package/src/components/docs/DecorativeBox.astro +15 -0
- package/src/components/docs/PropsTable.astro +95 -0
- package/src/components/experimental/Channel.astro +15 -10
- package/src/components/experimental/Form.astro +34 -0
- package/src/components/experimental/Gallery.astro +180 -0
- package/src/components/experimental/GalleryVertical.astro +161 -0
- package/src/components/{base → experimental}/Logo.astro +3 -5
- package/src/components/experimental/Price.astro +17 -15
- package/src/components/experimental/Prose.astro +154 -0
- package/src/components/{base → experimental}/Video.astro +1 -1
- package/src/components/experimental/Window.astro +173 -0
- package/src/content/config.ts +16 -13
- package/src/content/pages/_changelog.mdx +10 -0
- package/src/content/pages/_segment/footer.mdx +244 -0
- package/src/content/pages/_segment/header.mdx +210 -0
- package/src/content/pages/base/_dialog.mdx +17 -0
- package/src/content/pages/base/_drawer.mdx +17 -0
- package/src/content/pages/base/_image.mdx +14 -0
- package/src/content/pages/base/_switch.mdx +33 -0
- package/src/content/pages/base/badge.mdx +70 -0
- package/src/content/pages/base/button.mdx +71 -0
- package/src/content/pages/base/card.mdx +114 -0
- package/src/content/pages/base/checkbox.mdx +43 -0
- package/src/content/pages/base/icon.mdx +54 -0
- package/src/content/pages/base/input.mdx +67 -0
- package/src/content/pages/base/rating.mdx +66 -0
- package/src/content/pages/base/section.mdx +79 -0
- package/src/content/pages/base/select.mdx +77 -0
- package/src/content/pages/base/table.mdx +133 -0
- package/src/content/pages/base/textarea.mdx +73 -0
- package/src/content/pages/blocks/_banner.mdx +13 -0
- package/src/content/pages/blocks/_categories.mdx +149 -0
- package/src/content/pages/blocks/_jobs.mdx +37 -0
- package/src/content/pages/blocks/_product.mdx +29 -0
- package/src/content/pages/blocks/_products.mdx +55 -0
- package/src/content/pages/blocks/_stats.mdx +34 -0
- package/src/content/pages/blocks/colleagues.mdx +42 -0
- package/src/content/pages/blocks/content.mdx +101 -0
- package/src/content/pages/blocks/cta.mdx +192 -0
- package/src/content/pages/blocks/features.mdx +134 -0
- package/src/content/pages/blocks/footer.mdx +71 -0
- package/src/content/pages/blocks/header.mdx +192 -0
- package/src/content/pages/blocks/hero.mdx +97 -0
- package/src/content/pages/blocks/intro.mdx +132 -0
- package/src/content/pages/blocks/posts.mdx +40 -0
- package/src/content/pages/blocks/prices.mdx +126 -0
- package/src/content/pages/blocks/reviews.mdx +249 -0
- package/src/content/pages/blocks.mdx +10 -0
- package/src/content/pages/index.mdx +65 -0
- package/src/content/pages/overview/frameworks.mdx +180 -0
- package/src/content/pages/overview/installation.mdx +20 -0
- package/src/content/pages/overview/integration.mdx +37 -0
- package/src/content/pages/overview/introduction.mdx +20 -0
- package/src/content/pages/overview/theming.mdx +83 -0
- package/src/content/pages/structure/_row.mdx +23 -0
- package/src/content/pages/structure/_wrap.mdx +25 -0
- package/src/content/pages/structure/carousel.mdx +31 -0
- package/src/content/pages/structure/column.mdx +21 -0
- package/src/content/pages/structure/grid.mdx +26 -0
- package/src/content/pages/structure/masonry.mdx +32 -0
- package/src/content/pages/structure/split.mdx +21 -0
- package/src/content/pages/structure/spread.mdx +21 -0
- package/src/content/pages/typography/_tagline.mdx +36 -0
- package/src/content/pages/typography/heading.mdx +74 -0
- package/src/content/pages/typography/label.mdx +42 -0
- package/src/content/pages/typography/link.mdx +63 -0
- package/src/content/pages/typography/list.mdx +52 -0
- package/src/content/pages/typography/text.mdx +62 -0
- package/src/content/records/record.yml +1 -0
- package/src/content/settings/base.yml +48 -0
- package/src/content/settings/components.yml +27 -0
- package/src/css/color.css +6 -67
- package/src/css/custom.css +59 -0
- package/src/css/size.css +130 -0
- package/src/css/space.css +47 -26
- package/src/css/styles.css +4 -2
- package/src/env.d.ts +1 -1
- package/src/integration/generate-colors.ts +637 -0
- package/src/integration/index.ts +158 -0
- package/src/integration/tailwind-plugin.ts +80 -0
- package/src/integration/unocss-preset.ts +84 -0
- package/src/layouts/BlockLayout.astro +24 -0
- package/src/layouts/BlockOverviewLayout.astro +39 -0
- package/src/layouts/ComponentLayout.astro +23 -0
- package/src/layouts/JobsLayout.astro +40 -0
- package/src/layouts/Layout.astro +168 -0
- package/src/layouts/OverviewLayout.astro +45 -0
- package/src/layouts/PageLayout.astro +32 -0
- package/src/layouts/PostLayout.astro +32 -0
- package/src/layouts/ProductLayout.astro +31 -0
- package/src/pages/[...page].astro +41 -0
- package/src/schemas/base.ts +81 -0
- package/src/schemas/block.ts +15 -0
- package/src/schemas/card.ts +3 -0
- package/src/schemas/page.ts +43 -0
- package/src/schemas/utils.ts +22 -0
- package/src/utils/mergeEntries.ts +28 -0
- package/tsconfig.json +10 -1
- package/.astro/settings.json +0 -5
- package/.astro/types.d.ts +0 -147
- package/.env +0 -1
- package/astro.config.mjs +0 -6
- package/src/components/_Block.astro +0 -20
- package/src/components/_Blocks.astro +0 -11
- package/src/components/_Children.astro +0 -31
- package/src/components/_archive/Body.astro +0 -37
- package/src/components/_archive/Main.astro +0 -28
- package/src/components/_archive/Nav.astro +0 -50
- package/src/components/_todo/Form.astro +0 -36
- package/src/components/_todo/Prose.astro +0 -139
- package/src/components/_todo/Writeup.astro +0 -24
- package/src/components/base/Button.astro +0 -123
- package/src/components/base/Rating.astro +0 -47
- package/src/components/base/checkbox/Checkbox.astro +0 -52
- package/src/components/base/checkbox/CheckboxElement.astro +0 -31
- package/src/components/base/input/Input.astro +0 -79
- package/src/components/base/input/InputElement.astro +0 -69
- package/src/components/base/radio/Radio.astro +0 -66
- package/src/components/base/radio/RadioElement.astro +0 -34
- package/src/components/base/select/Select.astro +0 -90
- package/src/components/base/select/SelectElement.astro +0 -56
- package/src/components/base/select/SelectOption.astro +0 -32
- package/src/components/base/switch/Switch.astro +0 -55
- package/src/components/base/switch/SwitchElement.astro +0 -84
- package/src/components/base/table/Table.astro +0 -57
- package/src/components/base/table/TableBody.astro +0 -38
- package/src/components/base/table/TableCell.astro +0 -30
- package/src/components/base/table/TableFooter.astro +0 -48
- package/src/components/base/table/TableHead.astro +0 -31
- package/src/components/base/table/TableHeader.astro +0 -44
- package/src/components/base/table/TableRow.astro +0 -46
- package/src/components/base/textarea/Textarea.astro +0 -79
- package/src/components/base/textarea/TextareaElement.astro +0 -68
- package/src/components/segment/Box.astro +0 -46
- package/src/components/segment/Card.astro +0 -114
- package/src/components/segment/Footer.astro +0 -94
- package/src/components/segment/Header.astro +0 -100
- package/src/components/segment/Section.astro +0 -103
- package/src/components/segment/_regels.md +0 -32
- package/src/components/typography/Heading.astro +0 -66
- package/src/components/typography/List.astro +0 -47
- package/src/components/typography/ListItem.astro +0 -36
- package/src/components/typography/Paragraph.astro +0 -36
- package/src/components/typography/Tagline.astro +0 -36
- package/src/components/typography/Text.astro +0 -37
- package/src/components/utility/Head.astro +0 -83
- package/src/components/utility/Layout.astro +0 -46
- package/src/content/pages/index.md +0 -2
- package/src/css/color.scss +0 -289
- package/src/css/size.scss +0 -296
- package/src/css/utils.scss +0 -16
- package/src/index.ts +0 -71
- package/src/integration/integration.ts +0 -88
- package/src/integration/tailwind.ts +0 -34
- package/src/integration/unocss.ts +0 -38
- /package/src/{_archive → utils/_archive}/Childmorphic.ts +0 -0
- /package/src/{_archive → utils/_archive}/getAllCollections.ts +0 -0
- /package/src/{_archive → utils/_archive}/getCollectionCascade.ts +0 -0
- /package/src/{_archive → utils/_archive}/getPathname.ts +0 -0
- /package/src/{_archive → utils/_archive}/staticPageSchema.ts +0 -0
- /package/src/{_archive → utils/_archive}/transform/transform.ts +0 -0
- /package/src/{_archive → utils/_archive}/transform/transformCasing.ts +0 -0
- /package/src/{_archive → utils/_archive}/transform/transformReferences.ts +0 -0
- /package/src/{_archive → utils/_archive}/transform/transformSelfs.ts +0 -0
- /package/src/{_archive → utils/_archive}/transform/transformUnderscores.ts +0 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: BlockLayout
|
|
3
|
+
|
|
4
|
+
title: Reviews
|
|
5
|
+
image: /images/blocks/reviews.png
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
```astro live
|
|
9
|
+
---
|
|
10
|
+
import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<Reviews
|
|
14
|
+
size="md"
|
|
15
|
+
tagline="Rated 5,0 out of 86 reviews"
|
|
16
|
+
heading="What Our Customers Say"
|
|
17
|
+
text="Discover what our satisfied customers are saying about us."
|
|
18
|
+
cards={[
|
|
19
|
+
{
|
|
20
|
+
rating: {
|
|
21
|
+
value: 5,
|
|
22
|
+
avatar: '/images/avatars/1.jpeg',
|
|
23
|
+
label: 'John Doe',
|
|
24
|
+
},
|
|
25
|
+
heading: 'Exceptional Service',
|
|
26
|
+
text: 'Outstanding experience! Highly recommended.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
rating: {
|
|
30
|
+
value: 5,
|
|
31
|
+
avatar: '/images/avatars/2.jpeg',
|
|
32
|
+
label: 'Jane Smith',
|
|
33
|
+
},
|
|
34
|
+
heading: 'Great Product',
|
|
35
|
+
text: "This product exceeded my expectations. The quality is superb and the customer support is top-notch. I'll definitely be a returning customer.",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
rating: {
|
|
39
|
+
value: 5,
|
|
40
|
+
avatar: '/images/avatars/3.jpeg',
|
|
41
|
+
label: 'Mike Johnson',
|
|
42
|
+
},
|
|
43
|
+
heading: 'Reliable and Efficient',
|
|
44
|
+
text: "I've been using this for months now, and it's consistently performed well. The efficiency and reliability are impressive.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
rating: {
|
|
48
|
+
value: 5,
|
|
49
|
+
avatar: '/images/avatars/4.jpeg',
|
|
50
|
+
label: 'Emily Brown',
|
|
51
|
+
},
|
|
52
|
+
heading: 'Fantastic Experience',
|
|
53
|
+
text: "From ordering to delivery, everything was smooth. The product itself is fantastic, and I couldn't be happier with my purchase.",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
rating: {
|
|
57
|
+
value: 5,
|
|
58
|
+
avatar: '/images/avatars/5.jpeg',
|
|
59
|
+
label: 'David Wilson',
|
|
60
|
+
},
|
|
61
|
+
heading: 'Best in Class',
|
|
62
|
+
text: "After trying several similar products, this one stands out as the best. It's clear why it's a market leader.",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
rating: {
|
|
66
|
+
value: 5,
|
|
67
|
+
avatar: '/images/avatars/6.jpeg',
|
|
68
|
+
label: 'Sarah Davis',
|
|
69
|
+
},
|
|
70
|
+
heading: 'Innovative Design',
|
|
71
|
+
text: "The innovative features of this product have significantly improved my workflow. It's a game-changer in its category.",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
rating: {
|
|
75
|
+
value: 5,
|
|
76
|
+
avatar: '/images/avatars/7.jpeg',
|
|
77
|
+
label: 'Alex Taylor',
|
|
78
|
+
},
|
|
79
|
+
heading: 'Time-Saver',
|
|
80
|
+
text: "This product has saved me countless hours. Its efficiency is unmatched, and I can't imagine going back to my old ways.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
rating: {
|
|
84
|
+
value: 5,
|
|
85
|
+
avatar: '/images/avatars/8.jpeg',
|
|
86
|
+
label: 'Olivia Martinez',
|
|
87
|
+
},
|
|
88
|
+
heading: 'Reliable and Durable',
|
|
89
|
+
text: "I've had this product for over a year now, and it's still performing as well as day one. The durability is impressive, making it a worthwhile long-term investment.",
|
|
90
|
+
},
|
|
91
|
+
]}
|
|
92
|
+
/>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```astro live
|
|
96
|
+
---
|
|
97
|
+
import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
<Reviews
|
|
101
|
+
rating={{
|
|
102
|
+
value: 5,
|
|
103
|
+
label: 'Rated 5,0 out of 86 reviews',
|
|
104
|
+
avatars: [
|
|
105
|
+
'/images/avatars/1.jpeg',
|
|
106
|
+
'/images/avatars/2.jpeg',
|
|
107
|
+
'/images/avatars/3.jpeg',
|
|
108
|
+
'/images/avatars/4.jpeg',
|
|
109
|
+
],
|
|
110
|
+
}}
|
|
111
|
+
heading="What Our Customers Say"
|
|
112
|
+
text="Discover what our satisfied customers are saying about us."
|
|
113
|
+
cards={[
|
|
114
|
+
{
|
|
115
|
+
rating: 5,
|
|
116
|
+
heading: 'Exceptional Service',
|
|
117
|
+
text: 'Outstanding experience! Highly recommended.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
rating: 5,
|
|
121
|
+
heading: 'Great Product',
|
|
122
|
+
text: "This product exceeded my expectations. The quality is superb and the customer support is top-notch. I'll definitely be a returning customer.",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
rating: 5,
|
|
126
|
+
heading: 'Reliable and Efficient',
|
|
127
|
+
text: "I've been using this for months now, and it's consistently performed well. The efficiency and reliability are impressive.",
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
rating: 5,
|
|
131
|
+
heading: 'Fantastic Experience',
|
|
132
|
+
text: "From ordering to delivery, everything was smooth. The product itself is fantastic, and I couldn't be happier with my purchase.",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
rating: 5,
|
|
136
|
+
heading: 'Best in Class',
|
|
137
|
+
text: "After trying several similar products, this one stands out as the best. It's clear why it's a market leader.",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
rating: 5,
|
|
141
|
+
heading: 'Innovative Design',
|
|
142
|
+
text: "The innovative features of this product have significantly improved my workflow. It's a game-changer in its category.",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
rating: 5,
|
|
146
|
+
heading: 'Time-Saver',
|
|
147
|
+
text: "This product has saved me countless hours. Its efficiency is unmatched, and I can't imagine going back to my old ways.",
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
rating: 5,
|
|
151
|
+
heading: 'Reliable and Durable',
|
|
152
|
+
text: "I've had this product for over a year now, and it's still performing as well as day one. The durability is impressive, making it a worthwhile long-term investment.",
|
|
153
|
+
},
|
|
154
|
+
]}
|
|
155
|
+
/>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```astro live
|
|
159
|
+
---
|
|
160
|
+
import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
<Reviews
|
|
164
|
+
size="sm"
|
|
165
|
+
align="start"
|
|
166
|
+
structure="carousel"
|
|
167
|
+
heading="What Our Customers Say"
|
|
168
|
+
text="Discover what our satisfied customers are saying about us."
|
|
169
|
+
cards={[
|
|
170
|
+
{
|
|
171
|
+
rating: 5,
|
|
172
|
+
heading: 'Exceptional Service',
|
|
173
|
+
text: 'Outstanding experience! Highly recommended.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
rating: 5,
|
|
177
|
+
heading: 'Great Product',
|
|
178
|
+
text: "This product exceeded my expectations. The quality is superb and the customer support is top-notch. I'll definitely be a returning customer.",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
rating: 5,
|
|
182
|
+
heading: 'Reliable and Efficient',
|
|
183
|
+
text: "I've been using this for months now, and it's consistently performed well. The efficiency and reliability are impressive.",
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
rating: 5,
|
|
187
|
+
heading: 'Fantastic Experience',
|
|
188
|
+
text: "From ordering to delivery, everything was smooth. The product itself is fantastic, and I couldn't be happier with my purchase.",
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
rating: 5,
|
|
192
|
+
heading: 'Best in Class',
|
|
193
|
+
text: "After trying several similar products, this one stands out as the best. It's clear why it's a market leader.",
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
rating: 5,
|
|
197
|
+
heading: 'Innovative Design',
|
|
198
|
+
text: "The innovative features of this product have significantly improved my workflow. It's a game-changer in its category.",
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
rating: 5,
|
|
202
|
+
heading: 'Time-Saver',
|
|
203
|
+
text: "This product has saved me countless hours. Its efficiency is unmatched, and I can't imagine going back to my old ways.",
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
rating: 5,
|
|
207
|
+
heading: 'Reliable and Durable',
|
|
208
|
+
text: "I've had this product for over a year now, and it's still performing as well as day one. The durability is impressive, making it a worthwhile long-term investment.",
|
|
209
|
+
},
|
|
210
|
+
]}
|
|
211
|
+
/>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
```astro live
|
|
215
|
+
---
|
|
216
|
+
import Reviews from 'fulldev-ui/blocks/Reviews.astro'
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
<Reviews
|
|
220
|
+
heading="Customer Testimonials"
|
|
221
|
+
text="See what our valued customers have to say about their experiences."
|
|
222
|
+
structure="grid"
|
|
223
|
+
frame="panel"
|
|
224
|
+
variant="primary"
|
|
225
|
+
cards={[
|
|
226
|
+
{
|
|
227
|
+
rating: 5,
|
|
228
|
+
heading: 'Life-Changing Product',
|
|
229
|
+
text: "This product has revolutionized my daily routine. I can't imagine life without it now!",
|
|
230
|
+
avatar: '/images/avatars/1.jpeg',
|
|
231
|
+
label: 'John Doe',
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
rating: 4,
|
|
235
|
+
heading: 'Great Value for Money',
|
|
236
|
+
text: 'Excellent quality at a reasonable price. Definitely worth every penny.',
|
|
237
|
+
avatar: '/images/avatars/2.jpeg',
|
|
238
|
+
label: 'Jane Smith',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
rating: 5,
|
|
242
|
+
heading: 'Superb Customer Service',
|
|
243
|
+
text: 'The support team went above and beyond to help me. Truly impressive!',
|
|
244
|
+
avatar: '/images/avatars/3.jpeg',
|
|
245
|
+
label: 'Mike Johnson',
|
|
246
|
+
},
|
|
247
|
+
]}
|
|
248
|
+
/>
|
|
249
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
seo:
|
|
3
|
+
title: Fulldev UI - Astro component and block library, open-source
|
|
4
|
+
description: Make websites rapidly with pre-built components and blocks.
|
|
5
|
+
|
|
6
|
+
sections:
|
|
7
|
+
hero:
|
|
8
|
+
_bookshop_name: Hero
|
|
9
|
+
color: brand
|
|
10
|
+
badge:
|
|
11
|
+
as: a
|
|
12
|
+
text: We just released a big update 🎉
|
|
13
|
+
href: https://discord.gg/vXZqMbadm8
|
|
14
|
+
heading: The Astro UI library to build content sites
|
|
15
|
+
text: Make websites with prebuilt components and blocks
|
|
16
|
+
buttons:
|
|
17
|
+
- text: Get Started
|
|
18
|
+
href: /overview/installation
|
|
19
|
+
- text: GitHub
|
|
20
|
+
href: https://github.com/fulldotdev/ui
|
|
21
|
+
target: _blank
|
|
22
|
+
icon: brand-github
|
|
23
|
+
|
|
24
|
+
blocks:
|
|
25
|
+
_bookshop_name: Content
|
|
26
|
+
color: brand
|
|
27
|
+
label: Blocks
|
|
28
|
+
heading: Use pre-built blocks with just props
|
|
29
|
+
text: we created a great gallery of blocks to build content sites with a modern look and feel, all of our blocks are build with components from the library to achieve a consistent look.
|
|
30
|
+
image: /images/block-code.png
|
|
31
|
+
reverse: odd
|
|
32
|
+
buttons:
|
|
33
|
+
- href: /blocks
|
|
34
|
+
icon: layout
|
|
35
|
+
text: View blocks
|
|
36
|
+
|
|
37
|
+
components:
|
|
38
|
+
_bookshop_name: Content
|
|
39
|
+
color: brand
|
|
40
|
+
label: Components
|
|
41
|
+
heading: Or built your own, with easy to use components
|
|
42
|
+
text: our rich set of components make it easy to build your own blocks with great customizability through props and global theming.
|
|
43
|
+
image: /images/component-code.png
|
|
44
|
+
reverse: odd
|
|
45
|
+
buttons:
|
|
46
|
+
- href: /base/badge
|
|
47
|
+
icon: code
|
|
48
|
+
text: View components
|
|
49
|
+
|
|
50
|
+
cta:
|
|
51
|
+
_bookshop_name: Cta
|
|
52
|
+
size: lg
|
|
53
|
+
variant: primary
|
|
54
|
+
heading: Build content websites in a fraction of time
|
|
55
|
+
text: A library of components and blocks to build content sites, fast.
|
|
56
|
+
buttons:
|
|
57
|
+
- text: Get Started
|
|
58
|
+
href: /overview/installation
|
|
59
|
+
color: brand
|
|
60
|
+
- text: Github
|
|
61
|
+
href: https://github.com/fulldotdev/ui
|
|
62
|
+
target: _blank
|
|
63
|
+
icon: brand-github
|
|
64
|
+
color: brand
|
|
65
|
+
---
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: PostLayout
|
|
3
|
+
settings: components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Frameworks
|
|
7
|
+
Fulldev UI is written in vanilla CSS and .astro files. It is framework agnostic.
|
|
8
|
+
|
|
9
|
+
## JS frameworks
|
|
10
|
+
|
|
11
|
+
All styles in Fulldev UI use regular CSS and classes. Classes use the following naming convention:
|
|
12
|
+
|
|
13
|
+
- Component classes are the same as the component name, like `button` for `<Button>`.
|
|
14
|
+
- Prop classes have the prop name as prefix, like `variant-primary` for `<Button variant="primary">`.
|
|
15
|
+
- If a prop is a boolean the class is added without a prefix, like `contrast`.
|
|
16
|
+
- To prevent conflicts, all styles only apply if there is a `full` class on the element too.
|
|
17
|
+
|
|
18
|
+
This means you can apply Fulldev UI styles to any framework component as follows:
|
|
19
|
+
|
|
20
|
+
```astro live
|
|
21
|
+
---
|
|
22
|
+
import Button from 'fulldev-ui/components/Button.astro'
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
<a class="full button variant-primary contrast radius-auto"> Button </a>
|
|
26
|
+
<Button contrast> Button </Button>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## CSS frameworks
|
|
30
|
+
|
|
31
|
+
A TailwindCSS plugin and UnoCSS preset is available.
|
|
32
|
+
|
|
33
|
+
### TailwindCSS
|
|
34
|
+
|
|
35
|
+
In your `tailwind.config.ts` add the following:
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
// tailwind.config.ts
|
|
39
|
+
import fulldevUI from 'fulldev-ui/tailwind'
|
|
40
|
+
|
|
41
|
+
export default defineConfig({
|
|
42
|
+
plugins: [fulldevUI],
|
|
43
|
+
})
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### UnoCSS
|
|
47
|
+
|
|
48
|
+
In your `uno.config.ts` add the following:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
// uno.config.ts
|
|
52
|
+
import fulldevUI from 'fulldev-ui/unocss'
|
|
53
|
+
|
|
54
|
+
export default defineConfig({
|
|
55
|
+
presets: [fulldevUI],
|
|
56
|
+
})
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
// uno.config.ts
|
|
62
|
+
import fulldevUI from 'fulldev-ui/unocss'
|
|
63
|
+
|
|
64
|
+
export default defineConfig({
|
|
65
|
+
presets: [fulldevUI],
|
|
66
|
+
})
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Utility classes
|
|
70
|
+
|
|
71
|
+
The following classes are available when using the Tailwind plugin or UnoCSS preset.
|
|
72
|
+
|
|
73
|
+
### Spacing
|
|
74
|
+
|
|
75
|
+
The following spacing classes are added to your tailwind/uno config.
|
|
76
|
+
|
|
77
|
+
You can use them like `p-space-1`, `m-space-1`, `h-space-1`, `w-space-1`, etc.
|
|
78
|
+
```ts
|
|
79
|
+
spacing: {
|
|
80
|
+
'space-1': 'var(--space-1)',
|
|
81
|
+
'space-2': 'var(--space-2)',
|
|
82
|
+
'space-3': 'var(--space-3)',
|
|
83
|
+
'space-4': 'var(--space-4)',
|
|
84
|
+
'space-5': 'var(--space-5)',
|
|
85
|
+
'space-6': 'var(--space-6)',
|
|
86
|
+
'space-7': 'var(--space-7)',
|
|
87
|
+
},
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Font size
|
|
91
|
+
|
|
92
|
+
The following spacing classes are added to your tailwind/uno config.
|
|
93
|
+
|
|
94
|
+
You can use them like `text-1`, `text-2`, `text-3`, etc.
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
fontSize: {
|
|
98
|
+
1: 'var(--text-1)',
|
|
99
|
+
2: 'var(--text-2)',
|
|
100
|
+
3: 'var(--text-3)',
|
|
101
|
+
4: 'var(--text-4)',
|
|
102
|
+
5: 'var(--text-5)',
|
|
103
|
+
6: 'var(--text-6)',
|
|
104
|
+
7: 'var(--text-7)',
|
|
105
|
+
8: 'var(--text-8)',
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Border radius
|
|
110
|
+
|
|
111
|
+
The following border radius classes are added to your tailwind/uno config.
|
|
112
|
+
|
|
113
|
+
You can use them like `rounded-1`, `rounded-2`, `rounded-3`, etc.
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
borderRadius: {
|
|
117
|
+
1: 'var(--radius-1)',
|
|
118
|
+
2: 'var(--radius-2)',
|
|
119
|
+
3: 'var(--radius-3)',
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Color classes
|
|
124
|
+
|
|
125
|
+
The following color classes are added to your tailwind/uno config.
|
|
126
|
+
|
|
127
|
+
You can use them like `bg-color-1`, `text-base-2`, `border-base-6`, etc.
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
colors: {
|
|
131
|
+
color: {
|
|
132
|
+
1: 'var(--color-1)',
|
|
133
|
+
2: 'var(--color-2)',
|
|
134
|
+
3: 'var(--color-3)',
|
|
135
|
+
4: 'var(--color-4)',
|
|
136
|
+
5: 'var(--color-5)',
|
|
137
|
+
6: 'var(--color-6)',
|
|
138
|
+
7: 'var(--color-7)',
|
|
139
|
+
8: 'var(--color-8)',
|
|
140
|
+
9: 'var(--color-9)',
|
|
141
|
+
10: 'var(--color-10)',
|
|
142
|
+
11: 'var(--color-11)',
|
|
143
|
+
12: 'var(--color-12)',
|
|
144
|
+
contrast: 'var(--color-contrast)',
|
|
145
|
+
background: 'var(--color-background)',
|
|
146
|
+
},
|
|
147
|
+
base: {
|
|
148
|
+
1: 'var(--color-base-1)',
|
|
149
|
+
2: 'var(--color-base-2)',
|
|
150
|
+
3: 'var(--color-base-3)',
|
|
151
|
+
4: 'var(--color-base-4)',
|
|
152
|
+
5: 'var(--color-base-5)',
|
|
153
|
+
6: 'var(--color-base-6)',
|
|
154
|
+
7: 'var(--color-base-7)',
|
|
155
|
+
8: 'var(--color-base-8)',
|
|
156
|
+
9: 'var(--color-base-9)',
|
|
157
|
+
10: 'var(--color-base-10)',
|
|
158
|
+
11: 'var(--color-base-11)',
|
|
159
|
+
12: 'var(--color-base-12)',
|
|
160
|
+
contrast: 'var(--color-base-contrast)',
|
|
161
|
+
background: 'var(--color-base-background)',
|
|
162
|
+
},
|
|
163
|
+
brand: {
|
|
164
|
+
1: 'var(--color-brand-1)',
|
|
165
|
+
2: 'var(--color-brand-2)',
|
|
166
|
+
3: 'var(--color-brand-3)',
|
|
167
|
+
4: 'var(--color-brand-4)',
|
|
168
|
+
5: 'var(--color-brand-5)',
|
|
169
|
+
6: 'var(--color-brand-6)',
|
|
170
|
+
7: 'var(--color-brand-7)',
|
|
171
|
+
8: 'var(--color-brand-8)',
|
|
172
|
+
9: 'var(--color-brand-9)',
|
|
173
|
+
10: 'var(--color-brand-10)',
|
|
174
|
+
11: 'var(--color-brand-11)',
|
|
175
|
+
12: 'var(--color-brand-12)',
|
|
176
|
+
contrast: 'var(--color-brand-contrast)',
|
|
177
|
+
background: 'var(--color-brand-background)',
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: PostLayout
|
|
3
|
+
settings: components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Installation
|
|
9
|
+
|
|
10
|
+
Install fulldev-ui with your favorite package manager and you are ready to go. To get started with the integration see the <Link href="/overview/integration">integration page.</Link>
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pnpm i fulldev-ui
|
|
14
|
+
# or
|
|
15
|
+
bun i fulldev-ui
|
|
16
|
+
# or
|
|
17
|
+
yarn add fulldev-ui
|
|
18
|
+
# or
|
|
19
|
+
npm i fulldev-ui
|
|
20
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: PostLayout
|
|
3
|
+
settings: components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Integration
|
|
9
|
+
|
|
10
|
+
After <Link href="/overview/installation">installation</Link> you can generate your color palettes via an Astro integration. You can optionally add a custom css file and define custom colors and other theming options, see the <Link href="/overview/theming">theming page</Link> for more information.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { defineConfig } from 'astro/config'
|
|
14
|
+
import fulldev from 'fulldev-ui/integration'
|
|
15
|
+
|
|
16
|
+
// https://astro.build/config
|
|
17
|
+
export default defineConfig({
|
|
18
|
+
integrations: [
|
|
19
|
+
fulldev({
|
|
20
|
+
css: '/src/css/custom.css',
|
|
21
|
+
colors: {
|
|
22
|
+
theme: 'dark',
|
|
23
|
+
dark: {
|
|
24
|
+
background: '#111110',
|
|
25
|
+
base: '#6F6D66',
|
|
26
|
+
brand: '#F50',
|
|
27
|
+
},
|
|
28
|
+
light: {
|
|
29
|
+
background: '#EEEEEC',
|
|
30
|
+
base: '#6F6D66',
|
|
31
|
+
brand: '#F50',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
}),
|
|
35
|
+
],
|
|
36
|
+
})
|
|
37
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: PostLayout
|
|
3
|
+
settings: components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Introduction
|
|
7
|
+
|
|
8
|
+
Fulldev UI focusses on content websites rather than applications.
|
|
9
|
+
|
|
10
|
+
##### Build entire websites with just components
|
|
11
|
+
|
|
12
|
+
Fulldev UI is unique in that it introduces larger components to build entire pages, and even websites. Like a Section component that just works.
|
|
13
|
+
|
|
14
|
+
##### Integrates with any JS / CSS framework
|
|
15
|
+
|
|
16
|
+
Want to use Tailwind, or something else? You can overwrite all styles. Need an interactive framework component? Styles can be applied with one simple class.
|
|
17
|
+
|
|
18
|
+
##### Automated colors, spacing and sizes
|
|
19
|
+
|
|
20
|
+
Everything is carefully designed to be fully responsive. Component adapt to their environment, like a Heading being different in a Section than in a Card. You can also customize via simple props.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: PostLayout
|
|
3
|
+
settings: components
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import Link from 'fulldev-ui/components/Link.astro'
|
|
7
|
+
|
|
8
|
+
# Theming
|
|
9
|
+
|
|
10
|
+
## Colors
|
|
11
|
+
|
|
12
|
+
The color theme is inspired by / compatible with <Link href="https://www.radix-ui.com/colors">Radix Colors.</Link>
|
|
13
|
+
|
|
14
|
+
### Automatic setup
|
|
15
|
+
|
|
16
|
+
With the fulldev-ui integration you can easily set a theme and generate a radix color palette. See the <Link href="/overview/integration">integration page</Link> for details.
|
|
17
|
+
|
|
18
|
+
### Manual setup
|
|
19
|
+
|
|
20
|
+
You can define a `base` and a `brand` theme, both with 12 steps and 1 contrast step for text on step 9. For a detailed explenation see <Link href="https://www.radix-ui.com/colors/docs/palette-composition/understanding-the-scale">this page</Link>.
|
|
21
|
+
|
|
22
|
+
```css
|
|
23
|
+
:root,
|
|
24
|
+
.theme-light {
|
|
25
|
+
--base-1: ;
|
|
26
|
+
--base-2: ;
|
|
27
|
+
--base-3: ;
|
|
28
|
+
--base-4: ;
|
|
29
|
+
--base-5: ;
|
|
30
|
+
--base-6: ;
|
|
31
|
+
--base-7: ;
|
|
32
|
+
--base-8: ;
|
|
33
|
+
--base-9: ;
|
|
34
|
+
--base-10: ;
|
|
35
|
+
--base-11: ;
|
|
36
|
+
--base-12: ;
|
|
37
|
+
--base-contrast: ;
|
|
38
|
+
|
|
39
|
+
--brand-1: ;
|
|
40
|
+
--brand-2: ;
|
|
41
|
+
--brand-3: ;
|
|
42
|
+
--brand-4: ;
|
|
43
|
+
--brand-5: ;
|
|
44
|
+
--brand-6: ;
|
|
45
|
+
--brand-7: ;
|
|
46
|
+
--brand-8: ;
|
|
47
|
+
--brand-9: ;
|
|
48
|
+
--brand-10: ;
|
|
49
|
+
--brand-11: ;
|
|
50
|
+
--brand-12: ;
|
|
51
|
+
--brand-contrast: ;
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Dark theme
|
|
56
|
+
|
|
57
|
+
Dark mode is set via a simple `.theme-dark` class.
|
|
58
|
+
|
|
59
|
+
If you want to use a dark theme by default, remove the `:root` selector from the light theme and add it to the dark theme.
|
|
60
|
+
|
|
61
|
+
Components in Fulldev UI that support theme switching have the `theme` prop available, which adds either the `theme-dark` or `theme-light` class
|
|
62
|
+
|
|
63
|
+
```css
|
|
64
|
+
.theme-dark {
|
|
65
|
+
/* Same variables here as above */
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Radius
|
|
70
|
+
|
|
71
|
+
The `--border-radius` variable is a multiplier applied to all radius values. The default value is `1`.
|
|
72
|
+
|
|
73
|
+
```css
|
|
74
|
+
:root {
|
|
75
|
+
--border-radius: 1;
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Other
|
|
80
|
+
|
|
81
|
+
Since Fulldev UI uses just regular CSS with low specificity, you can customize anything else using custom CSS.
|
|
82
|
+
|
|
83
|
+
We plan to add more customization via variables later.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
_layout: BlockLayout
|
|
3
|
+
title: Row
|
|
4
|
+
description: Structures children in a horizontal row. This component sizes dynamically, the margin between a heading and a paragraph is smaller than the margin between a paragraph an image.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```astro live
|
|
8
|
+
---
|
|
9
|
+
import DecorativeBox from 'fulldev-ui/components/docs/DecorativeBox.astro'
|
|
10
|
+
import Row from 'fulldev-ui/components/Row.astro'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<Row>
|
|
14
|
+
<DecorativeBox />
|
|
15
|
+
<DecorativeBox />
|
|
16
|
+
<DecorativeBox />
|
|
17
|
+
<DecorativeBox />
|
|
18
|
+
<DecorativeBox />
|
|
19
|
+
<DecorativeBox />
|
|
20
|
+
<DecorativeBox />
|
|
21
|
+
<DecorativeBox />
|
|
22
|
+
</Row>
|
|
23
|
+
```
|