fulldev-ui 0.4.27 → 0.4.29

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.
@@ -0,0 +1,2 @@
1
+ # Make silveltman code owners for the entire repository
2
+ * @silveltman
@@ -36,7 +36,7 @@ jobs:
36
36
  node-version: '20.x'
37
37
  registry-url: 'https://registry.npmjs.org'
38
38
 
39
- - name: Bump Version
39
+ - name: Bump Version and Create PR
40
40
  run: |
41
41
  VERSION=${GITHUB_REF#refs/tags/v}
42
42
  BRANCH_NAME="bump-version-${VERSION}"
@@ -45,34 +45,44 @@ jobs:
45
45
  git add package.json
46
46
  git commit -m "Bump to version $VERSION"
47
47
  git push origin $BRANCH_NAME
48
+ gh pr create --base main --head $BRANCH_NAME --title "Bump version to ${VERSION}" --body "Automated version bump to ${VERSION}"
49
+ gh pr merge --auto --merge $BRANCH_NAME
50
+ env:
51
+ GH_TOKEN: ${{ secrets.BOT_TOKEN }}
48
52
 
49
- - name: Create Pull Request
50
- id: cpr
51
- uses: peter-evans/create-pull-request@v5
52
- with:
53
- token: ${{ secrets.BOT_TOKEN }}
54
- branch: bump-version-${VERSION}
55
- base: main
56
- title: 'Bump version to $VERSION'
57
- body: 'Automated version bump to $VERSION'
58
- delete-branch: true
59
-
60
- - name: Enable Pull Request Automerge
61
- if: steps.cpr.outputs.pull-request-number
53
+ - name: Review PR
62
54
  run: |
63
- gh pr merge --auto --merge "${{ steps.cpr.outputs.pull-request-number }}"
55
+ gh pr review $BRANCH_NAME --approve --body "Automated approval for version bump"
64
56
  env:
65
- GH_TOKEN: ${{ secrets.BOT_TOKEN }}
57
+ GH_TOKEN: ${{ secrets.GHP_TOKEN }}
66
58
 
67
- - name: Wait for checks
68
- if: steps.cpr.outputs.pull-request-number
59
+ - name: Wait for PR to be merged
69
60
  run: |
70
- gh pr checks ${{ steps.cpr.outputs.pull-request-number }} --watch
61
+ PR_URL=$(gh pr view $BRANCH_NAME --json url -q .url)
62
+ for i in {1..3}; do
63
+ PR_STATE=$(gh pr view $BRANCH_NAME --json state -q .state)
64
+ if [ "$PR_STATE" = "MERGED" ]; then
65
+ echo "PR has been merged"
66
+ exit 0
67
+ elif [ "$PR_STATE" = "CLOSED" ]; then
68
+ echo "PR was closed without merging"
69
+ exit 1
70
+ fi
71
+ echo "Attempt $i: Waiting for PR to be merged..."
72
+ if [ $i -eq 3 ]; then
73
+ echo "PR not merged after 3 attempts. Exiting with failure."
74
+ exit 1
75
+ fi
76
+ sleep 60
77
+ done
71
78
  env:
72
79
  GH_TOKEN: ${{ secrets.BOT_TOKEN }}
73
80
 
74
81
  - name: Publish to npm
75
- run: npm publish --access public
82
+ run: |
83
+ git checkout main
84
+ git pull origin main
85
+ npm publish --access public
76
86
  env:
77
87
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
78
88
 
package/CHANGELOG.md CHANGED
@@ -1,100 +1,4 @@
1
- ### fulldev-ui@0.3.36
1
+ # Changelog
2
2
 
3
- ## What's Changed
3
+ ## [Click here to the releases](https://github.com/fulldotdev/ui/releases)
4
4
 
5
- Update theming.mdx by @spjpgrd in https://github.com/fulldotdev/ui/pull/41
6
-
7
- ## New Contributors
8
-
9
- @spjpgrd made their first contribution in https://github.com/fulldotdev/ui/pull/41
10
-
11
- ---
12
-
13
- ### fulldev-ui@0.3.28
14
-
15
- - removed some dependencies on scss, more to come
16
- - fixed color/contrast selector specificity
17
- - improved auto-spacing for structures and segments
18
- - added text-align to align prop on top of align-items
19
- - added missing size prop type to card
20
- - general minor fixes and improvements
21
-
22
- ---
23
-
24
- ### fulldev-ui@0.3.7
25
-
26
- This release includes minor fixes and improvements
27
-
28
- - z-index 1 to all components for img background
29
- - avatar size improved
30
- - button now accepts avatar
31
- - image mask-lg
32
- - rating accepts label and avatars
33
- - card only overflow when panel
34
- - section overflow-hidden when panel
35
- - child spacing fixes
36
-
37
- ---
38
-
39
- ### fulldev-ui@0.3.2
40
-
41
- - We have refactored the documentation of every single component for better understanding.
42
- - Component documentation now includes an interactive story-like preview. You can play around with live props and copy the code.
43
- - Added a search function to the header.
44
- - Props are now displayed more clearly with better examples using a table.
45
-
46
- ### Tailwind Plugin & UnoCSS Preset
47
-
48
- For more information on this, visit the [frameworks page](https://ui.full.dev/overview/frameworks/).
49
-
50
- ### Base Components
51
-
52
- - [Checkbox component](https://ui.full.dev/base/checkbox/) added
53
- - [Image component](https://ui.full.dev/base/image/) added
54
- - [Table component](https://ui.full.dev/base/table/) added
55
- - [Rating component](https://ui.full.dev/base/rating) added
56
- - [Select](https://ui.full.dev/base/select) and [Input](https://ui.full.dev/base/input) components have been modified to accept a label.
57
-
58
- ### Typography Components
59
-
60
- - [Text component](https://ui.full.dev/typography/text/) (renamed from Paragraph)
61
- - [Link Component](https://ui.full.dev/typography/link) now has an underline prop.
62
-
63
- ### Structure Components
64
-
65
- - [Wrap structure](https://ui.full.dev/structure/wrap/) added
66
- - Group structure removed, you can use Column, Row or Wrap directly
67
- - Stack has been renamed to Column
68
-
69
- ### Segment Components
70
-
71
- - [Header component](https://ui.full.dev/segment/header/) added
72
- - [Footer component](https://ui.full.dev/segment/footer/) added
73
- - Deck segment removed, you can use Grid, Carousel or Masonry directly
74
-
75
- Theming
76
- [Theming](https://ui.full.dev/overview/theming/) has been revamped. Please read the documentation.
77
-
78
- Props:
79
-
80
- - `density` has been replaced by a boolean prop called `compact`
81
- - `variant` has different values.
82
- - `contrast` has been added as a boolean prop. Formerly was included in variant
83
- - `color` prop added as part of the revamped theming system
84
-
85
- ## Migrating from v0.2
86
-
87
- Please go through the above specified changes and update you project accordingly. From this point on versions will have a lot less breaking changes. If they still do appear, we make sure to provide clear migration instructions.
88
-
89
- For any feedback, issues, or missing information, please create an [issue](https://github.com/fulldotdev/ui/issues/new/choose). We'd also love to hear what you think about this release and invite you to have a chat in our [Discord](https://discord.gg/CAqgtsgW).
90
-
91
- ---
92
-
93
- ## fulldev-ui@0.2.10
94
-
95
- In this release we focussed on showing and improving the things that make Fulldev UI unique.
96
-
97
- - Updated homepage to include examples and features
98
- - Updates default and docs color palette to be more like the Astro ecosystem
99
- - Added segment and structure components
100
- - Added support for usage with CSS/JS frameworks
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fulldev-ui",
3
- "version": "0.4.27",
3
+ "version": "0.4.29",
4
4
  "description": "A component library built for Astro",
5
5
  "homepage": "https://ui.full.dev",
6
6
  "bugs": "https://github.com/fulldotdev/ui/issues",
@@ -37,10 +37,8 @@ const {
37
37
  >
38
38
  <Avatar src={avatar} />
39
39
  <Icon name={icon} />
40
- <slot>
41
- <Fragment set:html={html} />
42
- <Fragment set:text={text} />
43
- </slot>
40
+ <Fragment set:html={html} />
41
+ <Fragment set:text={text} />
44
42
  </Root>
45
43
 
46
44
  <style is:global lang="scss">
@@ -15,6 +15,7 @@ const {
15
15
  contrast,
16
16
  icon,
17
17
  name,
18
+ id,
18
19
  placeholder,
19
20
  value,
20
21
  disabled,
@@ -32,16 +33,16 @@ const {
32
33
  <Root
33
34
  as="input"
34
35
  type="checkbox"
35
- id={name}
36
- if={name}
36
+ id={id ?? name ?? label}
37
+ if={id ?? name ?? label}
38
+ name={name ?? label ?? id}
37
39
  {disabled}
38
40
  {required}
39
41
  {checked}
40
- {name}
41
42
  {...rest}
42
43
  />
43
44
  <Label
44
- for={name}
45
+ for={id ?? name ?? label}
45
46
  html={label}
46
47
  {contrast}
47
48
  />
@@ -34,6 +34,7 @@ const {
34
34
  >
35
35
  <Card
36
36
  as="div"
37
+ frame="panel"
37
38
  {...rest}
38
39
  >
39
40
  <slot />
@@ -10,7 +10,7 @@ import Logo from 'fulldev-ui/components/experimental/Logo.astro'
10
10
  type Props<As extends HTMLTag = 'footer'> = Polymorphic<{ as: As }> & {
11
11
  structure?: 'spread' | 'row' | 'split' | 'column' | 'stack'
12
12
  variant?: 'base' | 'ghost' | 'subtle' | 'soft' | 'surface' | 'outline'
13
- frame?: 'fill' | 'panel' | 'contain'
13
+ frame?: 'fill' | 'panel' | 'contain' | 'none'
14
14
  align?: 'start' | 'center' | 'end'
15
15
  size?: 'sm' | 'md' | 'lg'
16
16
  theme?: 'light' | 'dark'
@@ -22,12 +22,10 @@ type Props<As extends HTMLTag = 'footer'> = Polymorphic<{ as: As }> & {
22
22
  description?: string
23
23
  text?: string
24
24
  html?: string
25
- columns?: [
26
- {
27
- heading: string
28
- links: ComponentProps<typeof Link<'a'>>[]
29
- },
30
- ]
25
+ columns?: {
26
+ heading: string
27
+ links: ComponentProps<typeof Link<'a'>>[]
28
+ }[]
31
29
  }
32
30
 
33
31
  const {
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  import Column from 'fulldev-ui/components/Column.astro'
3
3
  import Link from 'fulldev-ui/components/Link.astro'
4
+ import Card from './Card.astro'
4
5
  import Heading from './Heading.astro'
5
6
 
6
7
  const { toc, headings } = Astro.props
@@ -26,6 +27,21 @@ const { toc, headings } = Astro.props
26
27
  />
27
28
  )
28
29
  )}
30
+ <Card
31
+ size="sm"
32
+ frame="panel"
33
+ heading="Join our community Discord"
34
+ text="Get help, share your work and shape the future of fulldev-ui."
35
+ buttons={[
36
+ {
37
+ icon: 'brand-discord',
38
+ text: 'Join discord',
39
+ contrast: true,
40
+ href: '/discord',
41
+ size: 'sm',
42
+ },
43
+ ]}
44
+ />
29
45
  </>
30
46
  )
31
47
  }
@@ -50,6 +66,10 @@ const { toc, headings } = Astro.props
50
66
  @media (min-width: 1024px) {
51
67
  display: flex !important;
52
68
  }
69
+
70
+ .card .icon {
71
+ color: var(--base-1);
72
+ }
53
73
  }
54
74
  }
55
75
  </style>
@@ -0,0 +1,46 @@
1
+ ---
2
+ import type { Polymorphic } from 'astro/types'
3
+ import { uid } from 'radash'
4
+ import Button from './Button.astro'
5
+
6
+ type Props<As extends 'label'> = Polymorphic<{ as: As }> & {
7
+ color?: 'base' | 'brand' | undefined
8
+ id?: string | undefined
9
+ name?: string | undefined
10
+ icon?: string | undefined
11
+ html?: string | undefined
12
+ text?: string | undefined
13
+ toggled: boolean | undefined
14
+ }
15
+
16
+ const { id = uid(7), toggled, name, ...rest } = Astro.props
17
+ ---
18
+
19
+ <input
20
+ class="toggle-checkbox"
21
+ checked={toggled}
22
+ type="checkbox"
23
+ id={id}
24
+ name={name ?? id}
25
+ />
26
+
27
+ <Button
28
+ class:list="toggle"
29
+ variant="tertiary"
30
+ as="label"
31
+ for={id}
32
+ {...rest}
33
+ />
34
+
35
+ <style is:global lang="scss">
36
+ @layer fulldev {
37
+ .toggle-checkbox {
38
+ display: none;
39
+
40
+ &:checked + .toggle {
41
+ background-color: var(--color-5);
42
+ color: var(--base-12);
43
+ }
44
+ }
45
+ }
46
+ </style>
@@ -20,7 +20,7 @@ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
20
20
  import Checkbox from 'fulldev-ui/components/Checkbox.astro'
21
21
  ---
22
22
 
23
- <Checkbox label="Label" name="checkbox" color="base" />
23
+ <Checkbox label="My Checkbox" color="base" />
24
24
  ```
25
25
 
26
26
  ```astro live
@@ -28,8 +28,8 @@ import Checkbox from 'fulldev-ui/components/Checkbox.astro'
28
28
  import Checkbox from 'fulldev-ui/components/Checkbox.astro'
29
29
  ---
30
30
 
31
- <Checkbox name="checkbox" label="Base" color="base" />
32
- <Checkbox name="checkbox" label="Brand" color="brand" />
31
+ <Checkbox label="Base" color="base" />
32
+ <Checkbox label="Brand" color="brand" />
33
33
  ```
34
34
 
35
35
  ```astro live
@@ -37,7 +37,7 @@ import Checkbox from 'fulldev-ui/components/Checkbox.astro'
37
37
  import Checkbox from 'fulldev-ui/components/Checkbox.astro'
38
38
  ---
39
39
 
40
- <Checkbox name="checkbox" size="sm" />
41
- <Checkbox name="checkbox" size="md" />
42
- <Checkbox name="checkbox" size="lg" />
40
+ <Checkbox label="Small" size="sm" />
41
+ <Checkbox label="Medium" size="md" />
42
+ <Checkbox label="Large" size="lg" />
43
43
  ```
@@ -7,6 +7,8 @@ title: Icon
7
7
 
8
8
  # Icon
9
9
 
10
+ We use [Tabler Icons](https://tablericons.com/) under the hood, you can use any of those icons by having the `name` prop match one of the icon names.
11
+
10
12
  ```astro live
11
13
  ---
12
14
  import Icon from 'fulldev-ui/components/Icon.astro'
@@ -7,73 +7,31 @@ title: Section
7
7
 
8
8
  # Section
9
9
 
10
+ Please see the [blocks page](/blocks) for more examples, since they are built using sections.
11
+
10
12
  import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
11
13
 
12
14
  ```astro live
13
15
  ---
14
- import Button from 'fulldev-ui/components/Button.astro'
15
- import Heading from 'fulldev-ui/components/Heading.astro'
16
- import Image from 'fulldev-ui/components/Image.astro'
17
- import Row from 'fulldev-ui/components/Row.astro'
18
16
  import Section from 'fulldev-ui/components/Section.astro'
19
- import Text from 'fulldev-ui/components/Text.astro'
20
17
  ---
21
18
 
22
- <Section>
23
- <Heading> A section with equal columns </Heading>
24
- <Text>
25
- On mobile it's a single column, of course. All without having to think about
26
- responsiveness. It just works. Have a look at the code, it's down below.
27
- </Text>
28
- <Row>
29
- <Button href="/overview/installation">Installation</Button>
30
- <Button variant="soft" href="/structure/split"> Component </Button>
31
- </Row>
32
- <Image src="/images/placeholder-landscape.webp" />
33
- </Section>
19
+ <Section
20
+ heading="A section with equal columns"
21
+ text="On mobile it's a single column, of course. All without having to think about responsiveness. It just works. Have a look at the code, it's down below."
22
+ buttons={[
23
+ {
24
+ variant: 'primary',
25
+ href: '/overview/installation',
26
+ text: 'Installation',
27
+ contrast: true,
28
+ },
29
+ { variant: 'secondary', href: '/structure/split', text: 'Component' },
30
+ ]}
31
+ image={{ src: '/images/placeholder-landscape.webp' }}
32
+ />
34
33
  ```
35
34
 
36
35
  ## Props
37
36
 
38
37
  <PropsTable />
39
-
40
- ## Examples
41
-
42
- ```astro live
43
- ---
44
- import Button from 'fulldev-ui/components/Button.astro'
45
- import Heading from 'fulldev-ui/components/Heading.astro'
46
- import Section from 'fulldev-ui/components/Section.astro'
47
- import Text from 'fulldev-ui/components/Text.astro'
48
- ---
49
-
50
- <Section variant="ghost" frame="panel">
51
- <Heading> A section with a ghost variant </Heading>
52
- <Text> This section has a ghost variant. </Text>
53
- <Button> Button </Button>
54
- </Section>
55
-
56
- <Section variant="subtle" frame="panel">
57
- <Heading> A section with a subtle variant </Heading>
58
- <Text> This section has a subtle variant. </Text>
59
- <Button> Button </Button>
60
- </Section>
61
-
62
- <Section variant="outline" frame="panel">
63
- <Heading> A section with an outline variant </Heading>
64
- <Text> This section has an outline variant. </Text>
65
- <Button> Button </Button>
66
- </Section>
67
-
68
- <Section variant="soft" frame="panel">
69
- <Heading> A section with a soft variant </Heading>
70
- <Text> This section has a soft variant. </Text>
71
- <Button> Button </Button>
72
- </Section>
73
-
74
- <Section variant="surface" frame="panel">
75
- <Heading> A section with a surface variant </Heading>
76
- <Text> This section has a surface variant. </Text>
77
- <Button> Button </Button>
78
- </Section>
79
- ```
@@ -0,0 +1,32 @@
1
+ ---
2
+ _layout: ComponentLayout
3
+ settings: components
4
+
5
+ title: Toggle
6
+ ---
7
+
8
+ # Toggle
9
+
10
+ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
11
+
12
+ ```astro live
13
+ ---
14
+ import Toggle from 'fulldev-ui/components/Toggle.astro'
15
+ ---
16
+
17
+ <Toggle text="Click me" icon="click" />
18
+ ```
19
+
20
+ ## Props
21
+
22
+ <PropsTable />
23
+
24
+ ## Examples
25
+
26
+ ```astro live
27
+ ---
28
+ import Toggle from 'fulldev-ui/components/Toggle.astro'
29
+ ---
30
+
31
+ <Toggle icon={'code'} text="Auto save" toggled={true} />
32
+ ```
@@ -66,6 +66,14 @@ import Footer from 'fulldev-ui/components/Footer.astro'
66
66
  { href: '/blocks', text: 'Blocks' },
67
67
  ],
68
68
  },
69
+ {
70
+ heading: 'Pages',
71
+ links: [
72
+ { href: '/overview/introduction', text: 'Docs' },
73
+ { href: '/typography/heading', text: 'Components' },
74
+ { href: '/blocks', text: 'Blocks' },
75
+ ],
76
+ },
69
77
  ]}
70
78
  />
71
79
  ```
@@ -10,7 +10,7 @@ showcase:
10
10
  href: 'https://antislipprofiles.com'
11
11
  - heading: Fulldev UI
12
12
  image: /showcase/fulldev-ui.webp
13
- href: 'https://ui.ull.dev'
13
+ href: 'https://ui.full.dev'
14
14
  - heading: The Gym Haren
15
15
  image: /showcase/the-gym-haren.webp
16
16
  href: 'https://thegymharen.nl'
@@ -6,7 +6,7 @@ import { mergeEntries } from '../utils/mergeEntries'
6
6
 
7
7
  export async function getStaticPaths() {
8
8
  const pages = await getCollection('pages')
9
- return pages.map((page: any) => ({
9
+ return pages.map((page) => ({
10
10
  params: {
11
11
  page: page.slug === 'index' ? undefined : page.slug,
12
12
  },
@@ -14,7 +14,6 @@ export async function getStaticPaths() {
14
14
  }))
15
15
  }
16
16
 
17
- // @ts-ignore
18
17
  const { data, slug, ...rest } = Astro.props
19
18
 
20
19
  const merged = (await mergeEntries({ data, slug })) as any