fulldev-ui 0.2.12 → 0.3.0-beta.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.
Files changed (102) hide show
  1. package/.astro/settings.json +5 -0
  2. package/.astro/types.d.ts +3 -12
  3. package/.env +1 -0
  4. package/astro.config.mjs +1 -2
  5. package/package.json +4 -7
  6. package/src/_archive/Childmorphic.ts +8 -0
  7. package/src/_archive/getAllCollections.ts +10 -0
  8. package/src/_archive/getCollectionCascade.ts +33 -0
  9. package/src/_archive/getPathname.ts +18 -0
  10. package/src/_archive/staticPageSchema.ts +124 -0
  11. package/src/_archive/transform/transform.ts +25 -0
  12. package/src/_archive/transform/transformCasing.ts +24 -0
  13. package/src/_archive/transform/transformReferences.ts +54 -0
  14. package/src/_archive/transform/transformSelfs.ts +20 -0
  15. package/src/_archive/transform/transformUnderscores.ts +19 -0
  16. package/src/components/_Block.astro +2 -0
  17. package/src/components/{_Tag.astro → _Component.astro} +18 -9
  18. package/src/components/{segment → _archive}/Body.astro +7 -5
  19. package/src/components/{segment → _archive}/Main.astro +4 -4
  20. package/src/components/{segment → _archive}/Nav.astro +5 -5
  21. package/src/components/{structure → _archive}/Row.astro +4 -4
  22. package/src/components/_todo/Footer.astro +66 -0
  23. package/src/components/{segment → _todo}/Form.astro +6 -6
  24. package/src/components/{segment → _todo}/Prose.astro +20 -20
  25. package/src/components/{segment → _todo}/Writeup.astro +4 -4
  26. package/src/components/{segment → _todo}/todo.md +3 -1
  27. package/src/components/base/Badge.astro +6 -6
  28. package/src/components/base/Button.astro +37 -28
  29. package/src/components/base/Checkbox.astro +3 -4
  30. package/src/components/base/Icon.astro +5 -5
  31. package/src/components/base/Image.astro +19 -52
  32. package/src/components/base/Input.astro +12 -7
  33. package/src/components/base/Logo.astro +4 -4
  34. package/src/components/base/Radio.astro +3 -4
  35. package/src/components/base/Rating.astro +5 -5
  36. package/src/components/base/Select.astro +6 -6
  37. package/src/components/base/SelectOption.astro +1 -1
  38. package/src/components/base/Switch.astro +8 -7
  39. package/src/components/base/Textarea.astro +4 -3
  40. package/src/components/segment/Box.astro +41 -0
  41. package/src/components/segment/Card.astro +21 -35
  42. package/src/components/segment/Deck.astro +20 -16
  43. package/src/components/{structure → segment}/Group.astro +8 -7
  44. package/src/components/segment/Header.astro +18 -7
  45. package/src/components/segment/Section.astro +39 -37
  46. package/src/components/typography/Heading.astro +24 -26
  47. package/src/components/typography/Label.astro +17 -11
  48. package/src/components/typography/Link.astro +5 -5
  49. package/src/components/typography/List.astro +9 -6
  50. package/src/components/typography/ListItem.astro +5 -5
  51. package/src/components/typography/Paragraph.astro +17 -11
  52. package/src/components/typography/Tagline.astro +6 -5
  53. package/src/components/typography/Text.astro +40 -0
  54. package/src/{layouts → components/utility}/Layout.astro +6 -6
  55. package/src/content/config.ts +14 -0
  56. package/src/content/pages/index.md +1 -0
  57. package/src/css/color.css +88 -0
  58. package/src/css/props/align.scss +20 -0
  59. package/src/css/props/frame.scss +153 -0
  60. package/src/css/props/mask +1 -0
  61. package/src/css/props/position.scss +33 -0
  62. package/src/css/props/ratio +1 -0
  63. package/src/css/props/structure.scss +228 -0
  64. package/src/css/props/variant.scss +130 -0
  65. package/src/css/radix.css +281 -0
  66. package/src/css/size.css +334 -0
  67. package/src/css/styles.css +2 -2
  68. package/src/index.ts +13 -34
  69. package/src/integration/integration.ts +45 -0
  70. package/src/schemas/collection.ts +87 -0
  71. package/src/blocks/todo.md +0 -12
  72. package/src/components/_Plural.astro +0 -27
  73. package/src/components/base/Buttons.astro +0 -15
  74. package/src/components/base/Images.astro +0 -15
  75. package/src/components/segment/Footer.astro +0 -14
  76. package/src/components/structure/Bento.astro +0 -35
  77. package/src/components/structure/Carousel.astro +0 -43
  78. package/src/components/structure/Grid.astro +0 -30
  79. package/src/components/structure/Masonry.astro +0 -39
  80. package/src/components/structure/Split.astro +0 -41
  81. package/src/components/structure/Spread.astro +0 -48
  82. package/src/components/structure/Stack.astro +0 -90
  83. package/src/components/structure/todo.md +0 -5
  84. package/src/css/colors.css +0 -197
  85. package/src/css/main.css +0 -3
  86. package/src/css/sizes.css +0 -217
  87. package/src/layouts/todo.md +0 -2
  88. package/src/schemas/attributesSchema.ts +0 -125
  89. package/src/schemas/htmlAttributesSchema.ts +0 -126
  90. package/src/schemas/pageSchema.ts +0 -185
  91. package/src/schemas/staticPageSchema.ts +0 -124
  92. package/src/types/Childmorphic.ts +0 -8
  93. package/src/types/Pluralmorphic.ts +0 -7
  94. package/src/types/Structuremorphic.ts +0 -18
  95. package/src/utils/getAllCollections.ts +0 -10
  96. package/src/utils/getCollectionCascade.ts +0 -33
  97. package/src/utils/getPathname.ts +0 -18
  98. package/src/utils/transform/transform.ts +0 -25
  99. package/src/utils/transform/transformCasing.ts +0 -24
  100. package/src/utils/transform/transformReferences.ts +0 -54
  101. package/src/utils/transform/transformSelfs.ts +0 -20
  102. package/src/utils/transform/transformUnderscores.ts +0 -19
@@ -0,0 +1,66 @@
1
+ ---
2
+ import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
+ import Component from '../_Component.astro'
4
+
5
+ type Props<As extends HTMLTag = 'footer'> = Polymorphic<{ as: As }> &
6
+ ComponentProps<typeof Component> & {
7
+ structure?: 'spread'
8
+ position?: 'relative' | 'sticky' | 'fixed' | 'absolute'
9
+ variant?: 'base' | 'raised'
10
+ frame?: 'wrapper' | 'container' | 'panel'
11
+ align?: 'start' | 'center' | 'end'
12
+ }
13
+
14
+ const {
15
+ as = 'footer',
16
+ density = 'base',
17
+ frame = 'wrapper',
18
+ ...rest
19
+ } = Astro.props
20
+ ---
21
+
22
+ <Component
23
+ class:list={['footer']}
24
+ {as}
25
+ {density}
26
+ {frame}
27
+ {...rest}
28
+ >
29
+ <slot />
30
+ </Component>
31
+
32
+ <style is:global lang="scss">
33
+ @import '../../css/utils.scss';
34
+
35
+ @include component('footer') {
36
+ --inner: var(--element-3);
37
+
38
+ display: flex;
39
+ top: 0;
40
+ right: 0;
41
+ left: 0;
42
+ justify-content: space-between;
43
+ align-items: center;
44
+ z-index: 10;
45
+ background: var(--background);
46
+ padding-top: var(--element-3);
47
+ padding-bottom: var(--element-3);
48
+ width: 100%;
49
+
50
+ // &.panel {
51
+ // margin-top: var(--inner);
52
+ // }
53
+
54
+ &.position-fixed {
55
+ position: fixed;
56
+ }
57
+
58
+ &.position-absolute {
59
+ position: absolute;
60
+ }
61
+
62
+ &.position-sticky {
63
+ position: sticky;
64
+ }
65
+ }
66
+ </style>
@@ -1,23 +1,23 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Tag from '../_Tag.astro'
3
+ import Component from '../_Component.astro'
4
4
 
5
5
  type Props<As extends HTMLTag = 'form'> = Polymorphic<{ as: As }> &
6
- ComponentProps<typeof Tag> & {
7
- structure?: 'stack' | 'group'
6
+ ComponentProps<typeof Component> & {
7
+ structure?: 'column' | 'row' | 'group'
8
8
  }
9
9
 
10
- const { as = 'form', structure = 'stack', ...rest } = Astro.props
10
+ const { as = 'form', structure = 'column', ...rest } = Astro.props
11
11
  ---
12
12
 
13
- <Tag
13
+ <Component
14
14
  class:list={['form']}
15
15
  {as}
16
16
  {structure}
17
17
  {...rest}
18
18
  >
19
19
  <slot />
20
- </Tag>
20
+ </Component>
21
21
 
22
22
  <style is:global lang="scss">
23
23
  @import '../../css/utils.scss';
@@ -1,40 +1,40 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Tag from '../_Tag.astro'
3
+ import Component from '../_Component.astro'
4
4
 
5
5
  type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
6
- ComponentProps<typeof Tag>
6
+ ComponentProps<typeof Component>
7
7
 
8
8
  const { as = 'div', ...rest } = Astro.props
9
9
  ---
10
10
 
11
- <Tag
11
+ <Component
12
12
  class:list={['prose']}
13
13
  {as}
14
14
  {...rest}
15
15
  >
16
16
  <slot />
17
- </Tag>
17
+ </Component>
18
18
 
19
19
  <style is:global lang="scss">
20
20
  @import '../../css/utils.scss';
21
21
 
22
- @include component('prose') {
23
- @media (min-width: 768px) {
24
- padding-right: 15vw;
25
- padding-left: 15vw;
26
- }
27
- @media (min-width: 1024px) {
28
- padding-right: 25vw;
29
- padding-left: 25vw;
30
- }
31
- }
22
+ // @include component('prose') {
23
+ // @media (min-width: 768px) {
24
+ // padding-right: 15vw;
25
+ // padding-left: 15vw;
26
+ // }
27
+ // @media (min-width: 1024px) {
28
+ // padding-right: 25vw;
29
+ // padding-left: 25vw;
30
+ // }
31
+ // }
32
32
 
33
33
  // Tables
34
34
  .full.prose {
35
35
  color: var(--foreground);
36
36
  font-weight: var(--font-weight);
37
- font-size: var(--text-2);
37
+ font-size: var(--text-body);
38
38
  line-height: 1.625;
39
39
  font-family: var(--font-family);
40
40
 
@@ -51,7 +51,7 @@ const { as = 'div', ...rest } = Astro.props
51
51
  h5,
52
52
  h6 {
53
53
  margin: var(--space-2) 0;
54
- font: 600 var(--text-2) 'Saira';
54
+ font: 600 var(--text-body) 'Saira';
55
55
 
56
56
  & + p {
57
57
  color: var(--hue11);
@@ -77,7 +77,7 @@ const { as = 'div', ...rest } = Astro.props
77
77
  background: var(--raised-background) !important;
78
78
  color: var(--muted-foreground) !important;
79
79
  font-weight: 500 !important;
80
- font-size: var(--text-1) !important;
80
+ font-size: var(--text-label) !important;
81
81
  }
82
82
 
83
83
  td {
@@ -90,15 +90,15 @@ const { as = 'div', ...rest } = Astro.props
90
90
  }
91
91
 
92
92
  table a {
93
- color: var(--primary-background) !important;
94
- font-size: var(--text-1) !important;
93
+ color: var(--solid) !important;
94
+ font-size: var(--text-label) !important;
95
95
  line-height: 1 !important;
96
96
  white-space: nowrap;
97
97
  }
98
98
 
99
99
  h6 {
100
100
  margin: var(--space-2) 0;
101
- font-size: var(--text-2) !important;
101
+ font-size: var(--text-body) !important;
102
102
  }
103
103
 
104
104
  table a:hover {
@@ -1,20 +1,20 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Tag from '../_Tag.astro'
3
+ import Component from '../_Component.astro'
4
4
 
5
5
  type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
6
- ComponentProps<typeof Tag>
6
+ ComponentProps<typeof Component>
7
7
 
8
8
  const { as = 'div', ...rest } = Astro.props
9
9
  ---
10
10
 
11
- <Tag
11
+ <Component
12
12
  class:list={['writeup']}
13
13
  {as}
14
14
  {...rest}
15
15
  >
16
16
  <slot />
17
- </Tag>
17
+ </Component>
18
18
 
19
19
  <style is:global lang="scss">
20
20
  @import '../../css/utils.scss';
@@ -5,4 +5,6 @@
5
5
  - Header
6
6
  - Nav
7
7
  - Prose
8
- - Writeup
8
+ - Writeup
9
+ - Join
10
+ - Pile
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Tag from '../_Tag.astro'
3
+ import Component from '../_Component.astro'
4
4
  import Icon from './Icon.astro'
5
5
 
6
6
  type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
7
- ComponentProps<typeof Tag> & {
7
+ ComponentProps<typeof Component> & {
8
8
  html?: string
9
9
  text?: string
10
10
  variant?: 'primary' | 'raised' | 'muted' | 'accent' | 'outline'
@@ -14,13 +14,13 @@ type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
14
14
  const { icon, ...rest } = Astro.props
15
15
  ---
16
16
 
17
- <Tag
17
+ <Component
18
18
  class:list={['badge']}
19
19
  {...rest}
20
20
  >
21
21
  <slot />
22
22
  {typeof icon === 'string' ? <Icon name={icon} /> : <Icon {...icon} />}
23
- </Tag>
23
+ </Component>
24
24
 
25
25
  <style is:global lang="scss">
26
26
  @import '../../css/utils.scss';
@@ -38,10 +38,10 @@ const { icon, ...rest } = Astro.props
38
38
  background-color: var(--background);
39
39
  padding-right: var(--element-2);
40
40
  padding-left: var(--element-2);
41
- height: calc(var(--text-1) + 2 * var(--element-1));
41
+ height: calc(var(--text-label) + 2 * var(--element-1));
42
42
  color: var(--foreground);
43
43
  font-weight: var(--button-font-weight);
44
- font-size: var(--text-1);
44
+ font-size: var(--text-label);
45
45
  line-height: 1.625;
46
46
  font-family: var(--button-font-family);
47
47
  text-align: center;
@@ -1,33 +1,45 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Tag from '../_Tag.astro'
3
+ import Component from '../_Component.astro'
4
4
  import Icon from './Icon.astro'
5
5
 
6
6
  type Props<As extends HTMLTag = 'a'> = Polymorphic<{ as: As }> &
7
- ComponentProps<typeof Tag> & {
7
+ ComponentProps<typeof Component> & {
8
8
  html?: string
9
9
  text?: string
10
- variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'link'
10
+ variant?: 'solid' | 'soft' | 'surface' | 'outline' | 'ghost' | 'link'
11
+ color?: 'base' | 'brand'
11
12
  icon?: ComponentProps<typeof Icon> | ComponentProps<typeof Icon>['name']
12
13
  }
13
14
 
14
- const { as = 'a', variant = 'primary', icon, ...rest } = Astro.props
15
+ const {
16
+ as = 'a',
17
+ variant = 'solid',
18
+ color = variant === 'solid' ? 'brand' : 'base',
19
+ contrast,
20
+ icon,
21
+ ...rest
22
+ } = Astro.props
15
23
  ---
16
24
 
17
- <Tag
25
+ <Component
18
26
  class:list={['button']}
19
27
  {as}
20
28
  {variant}
29
+ {color}
30
+ {contrast}
21
31
  {...rest}
22
32
  >
23
33
  <slot />
24
34
  {typeof icon === 'string' ? <Icon name={icon} /> : <Icon {...icon} />}
25
- </Tag>
35
+ </Component>
26
36
 
27
37
  <style is:global lang="scss">
28
38
  @import '../../css/utils.scss';
29
39
 
30
40
  @include component('button') {
41
+ @import '../../css/props/variant.scss';
42
+
31
43
  display: inline-flex;
32
44
  flex-shrink: 0;
33
45
  justify-content: center;
@@ -37,49 +49,46 @@ const { as = 'a', variant = 'primary', icon, ...rest } = Astro.props
37
49
  transition: background-color var(--transition);
38
50
  cursor: pointer;
39
51
  outline: none !important;
40
- box-shadow: inset 0 0 0 1px var(--border);
41
52
  border: none;
42
53
  border-radius: var(--radius-1);
43
- background-color: var(--background);
44
54
  padding-right: var(--element-3);
45
55
  padding-left: var(--element-3);
46
- height: calc(var(--text-1) + 2 * var(--element-3));
56
+ height: calc(var(--text-label) + 2 * var(--element-3));
47
57
  color: var(--foreground);
48
58
  font-weight: var(--button-font-weight);
49
- font-size: var(--text-1);
59
+ font-size: var(--text-label);
50
60
  line-height: 1.625;
51
61
  font-family: var(--button-font-family);
52
62
  text-align: center;
53
63
  text-decoration: none;
54
64
  white-space: nowrap;
55
65
 
56
- &.variant-link {
57
- --background: transparent;
58
- --hover: transparent;
59
- box-shadow: none !important;
60
- border-color: transparent;
61
- background-color: transparent;
62
- padding: 0;
63
- font-weight: 400;
64
-
65
- &:hover {
66
- text-decoration: underline;
67
- }
68
- }
69
-
70
- &:hover {
71
- background-color: var(--hover);
72
- }
73
-
74
66
  &:focus-visible {
75
67
  outline: 2px solid var(--focus) !important;
76
68
  outline-offset: 2px;
77
69
  }
78
70
 
71
+ &.variant-solid {
72
+ color: var(--background);
73
+ }
74
+
79
75
  &:disabled {
80
76
  opacity: 0.5;
81
77
  cursor: not-allowed;
82
78
  pointer-events: none;
83
79
  }
80
+
81
+ &.variant-link {
82
+ box-shadow: none;
83
+ padding: 0;
84
+
85
+ &:hover {
86
+ text-decoration: underline;
87
+ }
88
+
89
+ &.contrast {
90
+ color: var(--foreground-contrast);
91
+ }
92
+ }
84
93
  }
85
94
  </style>
@@ -1,13 +1,12 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
- import Tag from '../_Tag.astro'
4
3
 
5
- type Props = ComponentProps<typeof Tag>
4
+ type Props = ComponentProps<typeof Component>
6
5
 
7
6
  const { as = 'input', type = 'checkbox', name, ...rest } = Astro.props
8
7
  ---
9
8
 
10
- <Tag
9
+ <Component
11
10
  class:list={['checkbox']}
12
11
  if={true}
13
12
  {as}
@@ -27,7 +26,7 @@ const { as = 'input', type = 'checkbox', name, ...rest } = Astro.props
27
26
  min-width: var(--element-2);
28
27
  color: var(--color);
29
28
  accent-color: var(--10);
30
- font-size: var(--text);
29
+ font-size: var(--text-body);
31
30
 
32
31
  &:hover {
33
32
  border: var(--border-color-hover);
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  import tablerIcons from '@iconify-json/tabler/icons.json'
3
3
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
4
- import Tag from '../_Tag.astro'
4
+ import Component from '../_Component.astro'
5
5
 
6
6
  type Props<As extends HTMLTag = 'i'> = Polymorphic<{ as: As }> &
7
- ComponentProps<typeof Tag> & {
7
+ ComponentProps<typeof Component> & {
8
8
  name?: string
9
9
  }
10
10
 
@@ -16,7 +16,7 @@ const icon = trimmedName
16
16
  : undefined
17
17
  ---
18
18
 
19
- <Tag
19
+ <Component
20
20
  class:list={['icon']}
21
21
  if={icon}
22
22
  {as}
@@ -31,7 +31,7 @@ const icon = trimmedName
31
31
  />
32
32
  )
33
33
  }
34
- </Tag>
34
+ </Component>
35
35
 
36
36
  <style is:global lang="scss">
37
37
  @import '../../css/utils.scss';
@@ -44,7 +44,7 @@ const icon = trimmedName
44
44
  width: 1em;
45
45
  height: 1em;
46
46
  color: var(--foreground);
47
- font-size: var(--text-2);
47
+ font-size: var(--text-body);
48
48
 
49
49
  svg {
50
50
  position: absolute;
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
3
  import { isString } from 'remeda'
4
- import Tag from '../_Tag.astro'
4
+ import Component from '../_Component.astro'
5
5
 
6
- interface Props extends ComponentProps<typeof Tag> {
7
- position?: 'background' | 'cover' | 'panel'
6
+ interface Props extends ComponentProps<typeof Component> {
7
+ position?: 'background' | 'cover'
8
8
  frame?: 'inset'
9
9
  }
10
10
 
@@ -54,7 +54,7 @@ const {
54
54
 
55
55
  {
56
56
  src && (
57
- <Tag
57
+ <Component
58
58
  class:list={['image']}
59
59
  if={src}
60
60
  {src}
@@ -71,53 +71,20 @@ const {
71
71
  @import '../../css/utils.scss';
72
72
 
73
73
  @include component('image') {
74
- display: block;
75
- border-radius: var(--radius-1);
76
- width: 100%;
77
- height: auto;
78
- object-fit: cover;
79
-
80
- &.position-background {
81
- position: absolute;
82
- top: 0;
83
- right: 0;
84
- bottom: 0;
85
- left: 0;
86
- order: 1;
87
- z-index: -1;
88
-
89
- /* TODO manier fixen zodat dit met custom classes kan */
90
- border-radius: 0;
91
- width: 100%;
92
- height: 100%;
93
- object-fit: cover;
94
-
95
- ~ .full {
96
- position: relative;
97
- z-index: 1;
98
- }
99
- }
100
-
101
- &.position-cover {
102
- width: 100%;
103
- height: 100%;
104
- object-fit: cover;
105
- }
106
-
107
- &.position-panel {
108
- height: 100%;
109
- object-fit: cover;
110
- }
111
-
112
- &.mask-sm {
113
- -webkit-mask-image: linear-gradient(to top, transparent 0%, black 30%);
114
- mask-image: linear-gradient(to top, transparent 0%, black 30%);
115
- }
116
-
117
- &.mask {
118
- -webkit-mask-image: linear-gradient(to top, transparent 0%, black 100%);
119
- mask-image: linear-gradient(to top, transparent 0%, black 100%);
120
- }
121
-
74
+ display: block;
75
+ border-radius: var(--radius-1);
76
+ width: 100%;
77
+ height: auto;
78
+ object-fit: cover;
79
+
80
+ &.mask-sm {
81
+ -webkit-mask-image: linear-gradient(to top, transparent 0%, black 30%);
82
+ mask-image: linear-gradient(to top, transparent 0%, black 30%);
83
+ }
84
+
85
+ &.mask {
86
+ -webkit-mask-image: linear-gradient(to top, transparent 0%, black 100%);
87
+ mask-image: linear-gradient(to top, transparent 0%, black 100%);
88
+ }
122
89
  }
123
90
  </style>
@@ -1,16 +1,16 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Tag from '../_Tag.astro'
3
+ import Component from '../_Component.astro'
4
4
 
5
5
  type Props<As extends HTMLTag = 'input'> = Polymorphic<{ as: As }> &
6
- ComponentProps<typeof Tag> & {
6
+ ComponentProps<typeof Component> & {
7
7
  variant?: 'outline'
8
8
  }
9
9
 
10
10
  const { as = 'input', variant = 'outline', ...rest } = Astro.props
11
11
  ---
12
12
 
13
- <Tag
13
+ <Component
14
14
  class:list={['input']}
15
15
  if={true}
16
16
  {as}
@@ -26,23 +26,28 @@ const { as = 'input', variant = 'outline', ...rest } = Astro.props
26
26
  position: relative;
27
27
  align-items: center;
28
28
  outline: none;
29
- box-shadow: inset 0 0 0 var(--border-width) var(--border);
29
+ box-shadow: inset 0 0 0 var(--border-width) var(--border-outline);
30
30
  border: 0px;
31
31
  border-radius: var(--radius-1);
32
32
  background-color: var(--input-background);
33
33
  padding: var(--element-2);
34
34
  width: 100%;
35
35
  min-width: var(--element-2);
36
- height: calc(var(--text-1) + 2 * var(--element-3));
36
+ height: calc(var(--text-label) + 2 * var(--element-3));
37
37
  color: var(--foreground);
38
38
  font-weight: var(--font-weight);
39
- font-size: var(--text-1);
39
+ font-size: var(--text-label);
40
40
  line-height: 1.25;
41
41
  font-family: var(--font-family);
42
42
 
43
+ &:hover {
44
+ outline: none;
45
+ box-shadow: inset 0 0 0 1px var(--border-hover);
46
+ }
47
+
43
48
  &:focus {
44
49
  outline: none;
45
- box-shadow: inset 0 0 0 2px var(--focus);
50
+ box-shadow: inset 0 0 0 3px var(--border-hover);
46
51
  }
47
52
 
48
53
  &:disabled {
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag } from 'astro/types'
3
3
  import Children from '../_Children.astro'
4
- import Tag from '../_Tag.astro'
4
+ import Component from '../_Component.astro'
5
5
 
6
- type Props<As extends HTMLTag = 'a'> = ComponentProps<typeof Tag> &
6
+ type Props<As extends HTMLTag = 'a'> = ComponentProps<typeof Component> &
7
7
  ComponentProps<typeof Children>
8
8
 
9
9
  const { as = 'a', href = '/', src, ...rest } = Astro.props
10
10
  ---
11
11
 
12
- <Tag
12
+ <Component
13
13
  class:list={['logo']}
14
14
  {href}
15
15
  {as}
@@ -18,7 +18,7 @@ const { as = 'a', href = '/', src, ...rest } = Astro.props
18
18
  <slot name="before" />
19
19
  <Children {...rest} />
20
20
  <slot />
21
- </Tag>
21
+ </Component>
22
22
 
23
23
  <style is:global lang="scss">
24
24
  @import '../../css/utils.scss';
@@ -1,13 +1,12 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
- import Tag from '../_Tag.astro'
4
3
 
5
- type Props = ComponentProps<typeof Tag>
4
+ type Props = ComponentProps<typeof Component>
6
5
 
7
6
  const { as = 'input', type = 'radio', name, ...rest } = Astro.props
8
7
  ---
9
8
 
10
- <Tag
9
+ <Component
11
10
  class:list={['radio']}
12
11
  if={true}
13
12
  {as}
@@ -25,7 +24,7 @@ const { as = 'input', type = 'radio', name, ...rest } = Astro.props
25
24
  background: var(--background);
26
25
  min-width: var(--element-2);
27
26
  accent-color: var(--10);
28
- font-size: var(--text);
27
+ font-size: var(--text-body);
29
28
 
30
29
  &:hover {
31
30
  border: var(--border-color-hover);
@@ -1,22 +1,22 @@
1
1
  ---
2
2
  import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
3
- import Tag from '../_Tag.astro'
3
+ import Component from '../_Component.astro'
4
4
  import Icon from './Icon.astro'
5
5
 
6
6
  type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
7
- ComponentProps<typeof Tag> & {
7
+ ComponentProps<typeof Component> & {
8
8
  value?: number | string
9
9
  }
10
10
 
11
- const { variant = 'accent', value = Astro.props.html, ...rest } = Astro.props
11
+ const { value = Astro.props.html, ...rest } = Astro.props
12
12
  ---
13
13
 
14
- <Tag
14
+ <Component
15
15
  class:list={['rating']}
16
16
  {...rest}
17
17
  >
18
18
  {value && [1, 2, 3, 4, 5].map(() => <Icon name="star-filled" />)}
19
- </Tag>
19
+ </Component>
20
20
 
21
21
  <style is:global lang="scss">
22
22
  @import '../../css/utils.scss';