opui-css 5.1.1 → 5.2.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.
Files changed (238) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +4 -5
  3. package/components/AGENTS.md +12 -13
  4. package/components/Accordion/Accordion.astro +5 -9
  5. package/components/Accordion/types.astro.ts +4 -0
  6. package/components/Accordion/types.d.vue.ts +15 -0
  7. package/components/Accordion/types.solid.ts +6 -0
  8. package/components/Accordion/types.svelte.ts +7 -0
  9. package/components/Accordion/types.ts +10 -0
  10. package/components/Anchor/Anchor.astro +1 -7
  11. package/components/Anchor/types.astro.ts +4 -0
  12. package/components/Anchor/types.d.vue.ts +10 -0
  13. package/components/Anchor/types.solid.ts +6 -0
  14. package/components/Anchor/types.svelte.ts +7 -0
  15. package/components/Anchor/types.ts +9 -0
  16. package/components/Avatar/Avatar.astro +4 -13
  17. package/components/Avatar/types.astro.ts +10 -0
  18. package/components/Avatar/types.d.vue.ts +11 -0
  19. package/components/Avatar/types.solid.ts +11 -0
  20. package/components/Avatar/types.svelte.ts +12 -0
  21. package/components/Avatar/types.ts +29 -0
  22. package/components/Badge/Badge.astro +3 -11
  23. package/components/Badge/types.astro.ts +4 -0
  24. package/components/Badge/types.d.vue.ts +10 -0
  25. package/components/Badge/types.solid.ts +4 -0
  26. package/components/Badge/types.svelte.ts +4 -0
  27. package/components/Badge/types.ts +8 -0
  28. package/components/Button/Button.astro +18 -27
  29. package/components/Button/types.astro.ts +6 -0
  30. package/components/Button/types.d.vue.ts +10 -0
  31. package/components/Button/types.solid.ts +8 -0
  32. package/components/Button/types.svelte.ts +6 -0
  33. package/components/Button/types.ts +19 -0
  34. package/components/ButtonGroup/ButtonGroup.astro +1 -8
  35. package/components/ButtonGroup/types.astro.ts +4 -0
  36. package/components/ButtonGroup/types.d.vue.ts +10 -0
  37. package/components/ButtonGroup/types.solid.ts +4 -0
  38. package/components/ButtonGroup/types.svelte.ts +4 -0
  39. package/components/ButtonGroup/types.ts +7 -0
  40. package/components/Callout/Callout.astro +10 -9
  41. package/components/Callout/types.astro.ts +4 -0
  42. package/components/Callout/types.d.vue.ts +10 -0
  43. package/components/Callout/types.solid.ts +6 -0
  44. package/components/Callout/types.svelte.ts +7 -0
  45. package/components/Callout/types.ts +10 -0
  46. package/components/Card/Card.astro +1 -5
  47. package/components/Card/types.astro.ts +4 -0
  48. package/components/Card/types.d.vue.ts +10 -0
  49. package/components/Card/types.solid.ts +6 -0
  50. package/components/Card/types.svelte.ts +7 -0
  51. package/components/Card/types.ts +10 -0
  52. package/components/Checkbox/Checkbox.astro +6 -36
  53. package/components/Checkbox/CheckboxInput.astro +2 -18
  54. package/components/Checkbox/types.astro.ts +8 -0
  55. package/components/Checkbox/types.d.vue.ts +11 -0
  56. package/components/Checkbox/types.solid.ts +9 -0
  57. package/components/Checkbox/types.svelte.ts +12 -0
  58. package/components/Checkbox/types.ts +17 -0
  59. package/components/Chip/Chip.astro +6 -12
  60. package/components/Chip/types.astro.ts +9 -0
  61. package/components/Chip/types.d.vue.ts +10 -0
  62. package/components/Chip/types.solid.ts +10 -0
  63. package/components/Chip/types.svelte.ts +14 -0
  64. package/components/Chip/types.ts +13 -0
  65. package/components/ClassicSelect/ClassicSelect.astro +5 -28
  66. package/components/ClassicSelect/types.astro.ts +8 -0
  67. package/components/ClassicSelect/types.d.vue.ts +10 -0
  68. package/components/ClassicSelect/types.solid.ts +5 -0
  69. package/components/ClassicSelect/types.svelte.ts +5 -0
  70. package/components/ClassicSelect/types.ts +19 -0
  71. package/components/DescriptionList/Description.astro +1 -4
  72. package/components/DescriptionList/DescriptionList.astro +1 -5
  73. package/components/DescriptionList/Item.astro +1 -4
  74. package/components/DescriptionList/Term.astro +1 -4
  75. package/components/DescriptionList/types.astro.ts +10 -0
  76. package/components/DescriptionList/types.d.vue.ts +10 -0
  77. package/components/DescriptionList/types.solid.ts +4 -0
  78. package/components/DescriptionList/types.svelte.ts +4 -0
  79. package/components/DescriptionList/types.ts +3 -0
  80. package/components/Dialog/Dialog.astro +1 -6
  81. package/components/Dialog/types.astro.ts +4 -0
  82. package/components/Dialog/types.d.vue.ts +10 -0
  83. package/components/Dialog/types.solid.ts +8 -0
  84. package/components/Dialog/types.svelte.ts +7 -0
  85. package/components/Dialog/types.ts +9 -0
  86. package/components/Divider/Divider.astro +1 -6
  87. package/components/Divider/types.astro.ts +4 -0
  88. package/components/Divider/types.d.vue.ts +6 -0
  89. package/components/Divider/types.solid.ts +4 -0
  90. package/components/Divider/types.svelte.ts +4 -0
  91. package/components/Divider/types.ts +3 -0
  92. package/components/Drawer/Drawer.astro +1 -9
  93. package/components/Drawer/DrawerFooter.astro +1 -4
  94. package/components/Drawer/DrawerHeader.astro +1 -5
  95. package/components/Drawer/types.astro.ts +8 -0
  96. package/components/Drawer/types.d.vue.ts +29 -0
  97. package/components/Drawer/types.solid.ts +12 -0
  98. package/components/Drawer/types.svelte.ts +15 -0
  99. package/components/Drawer/types.ts +19 -0
  100. package/components/FieldDescription/FieldDescription.astro +1 -5
  101. package/components/FieldDescription/types.astro.ts +4 -0
  102. package/components/FieldDescription/types.d.vue.ts +10 -0
  103. package/components/FieldDescription/types.solid.ts +5 -0
  104. package/components/FieldDescription/types.svelte.ts +4 -0
  105. package/components/FieldDescription/types.ts +1 -0
  106. package/components/FieldGroup/FieldGroup.astro +1 -8
  107. package/components/FieldGroup/types.astro.ts +4 -0
  108. package/components/FieldGroup/types.d.vue.ts +12 -0
  109. package/components/FieldGroup/types.solid.ts +5 -0
  110. package/components/FieldGroup/types.svelte.ts +4 -0
  111. package/components/FieldGroup/types.ts +4 -0
  112. package/components/FieldLegend/FieldLegend.astro +4 -8
  113. package/components/FieldLegend/types.astro.ts +6 -0
  114. package/components/FieldLegend/types.d.vue.ts +11 -0
  115. package/components/FieldLegend/types.solid.ts +5 -0
  116. package/components/FieldLegend/types.svelte.ts +6 -0
  117. package/components/FieldLegend/types.ts +1 -0
  118. package/components/FieldSet/FieldSet.astro +1 -5
  119. package/components/FieldSet/types.astro.ts +6 -0
  120. package/components/FieldSet/types.d.vue.ts +11 -0
  121. package/components/FieldSet/types.solid.ts +5 -0
  122. package/components/FieldSet/types.svelte.ts +8 -0
  123. package/components/FieldSet/types.ts +5 -0
  124. package/components/Form/Form.astro +1 -6
  125. package/components/Form/types.astro.ts +6 -0
  126. package/components/Form/types.d.vue.ts +11 -0
  127. package/components/Form/types.solid.ts +5 -0
  128. package/components/Form/types.svelte.ts +7 -0
  129. package/components/Form/types.ts +1 -0
  130. package/components/IconButton/IconButton.astro +18 -20
  131. package/components/IconButton/types.astro.ts +6 -0
  132. package/components/IconButton/types.d.vue.ts +10 -0
  133. package/components/IconButton/types.solid.ts +8 -0
  134. package/components/IconButton/types.svelte.ts +6 -0
  135. package/components/IconButton/types.ts +16 -0
  136. package/components/List/List.astro +1 -8
  137. package/components/List/types.astro.ts +4 -0
  138. package/components/List/types.d.vue.ts +10 -0
  139. package/components/List/types.solid.ts +4 -0
  140. package/components/List/types.svelte.ts +4 -0
  141. package/components/List/types.ts +7 -0
  142. package/components/ListItem/ListItem.astro +3 -13
  143. package/components/ListItem/types.astro.ts +10 -0
  144. package/components/ListItem/types.d.vue.ts +10 -0
  145. package/components/ListItem/types.solid.ts +12 -0
  146. package/components/ListItem/types.svelte.ts +14 -0
  147. package/components/ListItem/types.ts +32 -0
  148. package/components/Progress/Progress.astro +1 -11
  149. package/components/Progress/types.astro.ts +4 -0
  150. package/components/Progress/types.d.vue.ts +10 -0
  151. package/components/Progress/types.solid.ts +4 -0
  152. package/components/Progress/types.svelte.ts +4 -0
  153. package/components/Progress/types.ts +10 -0
  154. package/components/Radio/Radio.astro +6 -32
  155. package/components/Radio/RadioInput.astro +3 -20
  156. package/components/Radio/types.astro.ts +6 -0
  157. package/components/Radio/types.d.vue.ts +11 -0
  158. package/components/Radio/types.solid.ts +9 -0
  159. package/components/Radio/types.svelte.ts +12 -0
  160. package/components/Radio/types.ts +13 -0
  161. package/components/Range/Range.astro +23 -31
  162. package/components/Range/types.astro.ts +6 -0
  163. package/components/Range/types.d.vue.ts +14 -0
  164. package/components/Range/types.solid.ts +6 -0
  165. package/components/Range/types.svelte.ts +9 -0
  166. package/components/Range/types.ts +30 -0
  167. package/components/Select/Select.astro +42 -34
  168. package/components/Select/types.astro.ts +4 -0
  169. package/components/Select/types.d.vue.ts +17 -0
  170. package/components/Select/types.solid.ts +6 -0
  171. package/components/Select/types.svelte.ts +7 -0
  172. package/components/Select/types.ts +27 -0
  173. package/components/Switch/Switch.astro +14 -39
  174. package/components/Switch/SwitchInput.astro +3 -21
  175. package/components/Switch/types.astro.ts +5 -0
  176. package/components/Switch/types.d.vue.ts +13 -0
  177. package/components/Switch/types.solid.ts +9 -0
  178. package/components/Switch/types.svelte.ts +9 -0
  179. package/components/Switch/types.ts +16 -0
  180. package/components/Table/Body.astro +1 -3
  181. package/components/Table/Cell.astro +1 -3
  182. package/components/Table/Column.astro +1 -4
  183. package/components/Table/ColumnGroup.astro +1 -3
  184. package/components/Table/Head.astro +1 -3
  185. package/components/Table/HeaderCell.astro +1 -3
  186. package/components/Table/Row.astro +1 -3
  187. package/components/Table/Table.astro +1 -5
  188. package/components/Table/types.astro.ts +16 -0
  189. package/components/Table/types.d.vue.ts +10 -0
  190. package/components/Table/types.solid.ts +8 -0
  191. package/components/Table/types.svelte.ts +11 -0
  192. package/components/Table/types.ts +9 -0
  193. package/components/Tabs/Tabs.astro +1 -5
  194. package/components/Tabs/TabsItem.astro +1 -8
  195. package/components/Tabs/TabsPanel.astro +1 -6
  196. package/components/Tabs/TabsTab.astro +1 -5
  197. package/components/Tabs/types.astro.ts +11 -0
  198. package/components/Tabs/types.d.vue.ts +31 -0
  199. package/components/Tabs/types.solid.ts +12 -0
  200. package/components/Tabs/types.svelte.ts +10 -0
  201. package/components/Tabs/types.ts +19 -0
  202. package/components/TextField/TextField.astro +45 -49
  203. package/components/TextField/types.astro.ts +17 -0
  204. package/components/TextField/types.d.vue.ts +18 -0
  205. package/components/TextField/types.solid.ts +22 -0
  206. package/components/TextField/types.svelte.ts +22 -0
  207. package/components/TextField/types.ts +35 -0
  208. package/components/Textarea/Textarea.astro +50 -38
  209. package/components/Textarea/types.astro.ts +10 -0
  210. package/components/Textarea/types.d.vue.ts +18 -0
  211. package/components/Textarea/types.solid.ts +6 -0
  212. package/components/Textarea/types.svelte.ts +21 -0
  213. package/components/Textarea/types.ts +33 -0
  214. package/components/ToggleButton/ToggleButton.astro +1 -11
  215. package/components/ToggleButton/types.astro.ts +4 -0
  216. package/components/ToggleButton/types.d.vue.ts +10 -0
  217. package/components/ToggleButton/types.solid.ts +7 -0
  218. package/components/ToggleButton/types.svelte.ts +7 -0
  219. package/components/ToggleButton/types.ts +10 -0
  220. package/components/ToggleGroup/ToggleGroup.astro +1 -8
  221. package/components/ToggleGroup/types.astro.ts +4 -0
  222. package/components/ToggleGroup/types.d.vue.ts +15 -0
  223. package/components/ToggleGroup/types.solid.ts +4 -0
  224. package/components/ToggleGroup/types.svelte.ts +9 -0
  225. package/components/ToggleGroup/types.ts +15 -0
  226. package/components/Tooltip/Tooltip.astro +2 -9
  227. package/components/Tooltip/types.astro.ts +4 -0
  228. package/components/Tooltip/types.d.vue.ts +10 -0
  229. package/components/Tooltip/types.solid.ts +6 -0
  230. package/components/Tooltip/types.svelte.ts +7 -0
  231. package/components/Tooltip/types.ts +11 -0
  232. package/css/theme.css +0 -1
  233. package/dist/op.css +0 -21
  234. package/dist/op.css.map +1 -1
  235. package/dist/opui.css +0 -23
  236. package/dist/opui.css.map +1 -1
  237. package/open-props.css +0 -2
  238. package/package.json +4 -6
@@ -1,37 +1,17 @@
1
1
  ---
2
2
  import SwitchInput from "./SwitchInput.astro"
3
-
4
- type Props = {
5
- [key: string]: any
6
- checked?: boolean
7
- class?: string
8
- disabled?: boolean
9
- error?: boolean
10
- hideLabel?: boolean
11
- id?: string
12
- name?: string
13
- required?: boolean
14
- small?: boolean
15
- spread?: boolean
16
- stack?: boolean
17
- value?: string
18
- }
3
+ import type { SwitchProps as Props } from "./types.astro"
19
4
 
20
5
  export const title = "Switch"
21
6
 
22
7
  const {
23
- checked,
24
8
  class: className,
25
- disabled,
26
9
  error,
27
10
  hideLabel,
28
- id,
29
11
  name,
30
- required,
31
12
  small,
32
13
  spread,
33
14
  stack,
34
- value,
35
15
  ...rest
36
16
  } = Astro.props
37
17
 
@@ -47,7 +27,7 @@ if (
47
27
  !Astro.props["aria-labelledby"]
48
28
  ) {
49
29
  console.warn(
50
- "[OPUI Switch] Missing accessible name. Provide a default slot, `aria-label`, or `aria-labelledby`."
30
+ "[OPUI Switch] Missing accessible name. Provide a default slot, `aria-label`, or `aria-labelledby`.",
51
31
  )
52
32
  }
53
33
  ---
@@ -78,24 +58,19 @@ if (
78
58
  </span>
79
59
  )
80
60
  }
81
- <SwitchInput
82
- aria-describedby={endTextId}
83
- {checked}
84
- {disabled}
85
- {id}
86
- name={finalName}
87
- {required}
88
- {value}
89
- {...rest}
90
- />
61
+ <SwitchInput aria-describedby={endTextId} name={finalName} {...rest} />
91
62
  {
92
63
  Astro.slots.has("default") && (
93
- <!-- prettier-ignore --><span class:list={[hideLabel ? "ui-sr-only" : "ui-label"]}><slot /></span>)
64
+ <span class:list={[hideLabel ? "ui-sr-only" : "ui-label"]}>
65
+ <slot />
66
+ </span>
67
+ )
68
+ }
69
+ {
70
+ Astro.slots.has("end-text") && (
71
+ <span id={endTextId} class="ui-end-text">
72
+ <slot name="end-text" />
73
+ </span>
74
+ )
94
75
  }
95
- {
96
- Astro.slots.has("end-text") && (
97
- <!-- prettier-ignore -->
98
- <span id={endTextId} class="ui-end-text"><slot name="end-text" /></span>
99
- )
100
- }
101
76
  </label>
@@ -1,25 +1,7 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- checked?: boolean
5
- disabled?: boolean
6
- id?: string
7
- name?: string
8
- required?: boolean
9
- value?: string
10
- }
2
+ import type { SwitchInputProps as Props } from "./types.astro"
11
3
 
12
- const { checked, disabled, id, name, required, value, ...rest } = Astro.props
4
+ const { ...rest } = Astro.props
13
5
  ---
14
6
 
15
- <input
16
- type="checkbox"
17
- role="switch"
18
- {checked}
19
- {disabled}
20
- {id}
21
- {name}
22
- {required}
23
- {value}
24
- {...rest}
25
- />
7
+ <input type="checkbox" role="switch" {...rest} />
@@ -0,0 +1,5 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type SwitchProps = Base.SwitchProps & HTMLAttributes<"input">
5
+ export type SwitchInputProps = Base.SwitchInputProps & HTMLAttributes<"input">
@@ -0,0 +1,13 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { SwitchProps as BaseSwitchProps } from "./types"
3
+
4
+ export type SwitchProps = BaseSwitchProps & {
5
+ class?: HTMLAttributes["class"]
6
+ }
7
+
8
+ export type Slots = {
9
+ default?: Slot
10
+ "end-text"?: Slot
11
+ "icon-checked"?: Slot
12
+ "icon-unchecked"?: Slot
13
+ }
@@ -0,0 +1,9 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type SwitchProps = Base.SwitchProps &
5
+ JSX.InputHTMLAttributes<HTMLInputElement> &
6
+ Base.SwitchSlots<JSX.Element>
7
+
8
+ export type SwitchInputProps = Base.SwitchInputProps &
9
+ JSX.InputHTMLAttributes<HTMLInputElement>
@@ -0,0 +1,9 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+ import type { Snippet } from "svelte"
4
+
5
+ export type SwitchProps = Base.SwitchProps &
6
+ Base.SwitchSlots<Snippet> &
7
+ SvelteHTMLElements["input"]
8
+ export type SwitchInputProps = Base.SwitchInputProps &
9
+ SvelteHTMLElements["input"]
@@ -0,0 +1,16 @@
1
+ export type SwitchProps = {
2
+ error?: boolean
3
+ hideLabel?: boolean
4
+ small?: boolean
5
+ spread?: boolean
6
+ stack?: boolean
7
+ }
8
+
9
+ export type SwitchSlots<S> = {
10
+ children?: S
11
+ endText?: string | S
12
+ iconUnchecked?: S
13
+ iconChecked?: S
14
+ }
15
+
16
+ export type SwitchInputProps = {}
@@ -1,7 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- }
2
+ import type { SectionProps as Props } from "./types.astro"
5
3
 
6
4
  export const title = "Table Body"
7
5
 
@@ -1,7 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- }
2
+ import type { SectionProps as Props } from "./types.astro"
5
3
 
6
4
  export const title = "Table Cell"
7
5
 
@@ -1,8 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- width?: string
5
- }
2
+ import type { ColumnProps as Props } from "./types.astro"
6
3
 
7
4
  export const title = "Table Column"
8
5
 
@@ -1,7 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- }
2
+ import type { SectionProps as Props } from "./types.astro"
5
3
 
6
4
  export const title = "Table Column Group"
7
5
 
@@ -1,7 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- }
2
+ import type { SectionProps as Props } from "./types.astro"
5
3
 
6
4
  export const title = "Table Head"
7
5
 
@@ -1,7 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- }
2
+ import type { SectionProps as Props } from "./types.astro"
5
3
 
6
4
  export const title = "Table Header Cell"
7
5
 
@@ -1,7 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- }
2
+ import type { SectionProps as Props } from "./types.astro"
5
3
 
6
4
  export const title = "Table Row"
7
5
 
@@ -1,9 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- variant?: "dense" | "spacious"
6
- }
2
+ import type { Props } from "./types.astro"
7
3
 
8
4
  export const title = "Table"
9
5
 
@@ -0,0 +1,16 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props = Base.Props & HTMLAttributes<"table">
5
+
6
+ export type SectionProps = Base.SectionProps &
7
+ (
8
+ | HTMLAttributes<"tr">
9
+ | HTMLAttributes<"tbody">
10
+ | HTMLAttributes<"thead">
11
+ | HTMLAttributes<"th">
12
+ | HTMLAttributes<"td">
13
+ | HTMLAttributes<"colgroup">
14
+ )
15
+
16
+ export type ColumnProps = Base.ColumnProps & HTMLAttributes<"col">
@@ -0,0 +1,10 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { Props as BaseProps } from "./types"
3
+
4
+ export type Props = BaseProps & {
5
+ class?: HTMLAttributes["class"]
6
+ }
7
+
8
+ export type Slots = {
9
+ default?: Slot
10
+ }
@@ -0,0 +1,8 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props & JSX.HTMLAttributes<HTMLTableElement>
5
+ export type SectionProps = Base.SectionProps &
6
+ JSX.HTMLAttributes<HTMLTableSectionElement>
7
+ export type ColumnProps = Base.ColumnProps &
8
+ JSX.HTMLAttributes<HTMLTableColElement>
@@ -0,0 +1,11 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ export type ColumnProps = Base.ColumnProps & SvelteHTMLElements["col"]
5
+ export type Props = Base.Props & SvelteHTMLElements["table"]
6
+ export type SectionProps = Base.SectionProps &
7
+ (
8
+ | SvelteHTMLElements["tbody"]
9
+ | SvelteHTMLElements["tfoot"]
10
+ | SvelteHTMLElements["thead"]
11
+ )
@@ -0,0 +1,9 @@
1
+ export type Props = {
2
+ variant?: "dense" | "spacious"
3
+ }
4
+
5
+ export type SectionProps = {}
6
+
7
+ export type ColumnProps = {
8
+ width?: string
9
+ }
@@ -1,9 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- name?: string
6
- }
2
+ import type { Props } from "./types.astro"
7
3
 
8
4
  export const title = "Tabs"
9
5
 
@@ -1,12 +1,5 @@
1
1
  ---
2
- type Props = {
3
- class?: string
4
- name?: string
5
- open?: boolean
6
- tabId?: string
7
- panelId?: string
8
- [key: string]: any
9
- }
2
+ import type { TabsItemProps as Props } from "./types.astro"
10
3
 
11
4
  const { $id } = Astro.locals
12
5
  const {
@@ -1,10 +1,5 @@
1
1
  ---
2
- type Props = {
3
- class?: string
4
- panelId?: string
5
- tabId?: string
6
- [key: string]: any
7
- }
2
+ import type { TabsPanelProps as Props } from "./types.astro"
8
3
 
9
4
  const { class: className, panelId, tabId, ...rest } = Astro.props
10
5
  const { currentPanelId, currentTabId } = Astro.locals
@@ -1,9 +1,5 @@
1
1
  ---
2
- type Props = {
3
- class?: string
4
- tabId?: string
5
- [key: string]: any
6
- }
2
+ import type { TabsTabProps as Props } from "./types.astro"
7
3
 
8
4
  const { class: className, tabId, ...rest } = Astro.props
9
5
  const { currentTabId } = Astro.locals
@@ -0,0 +1,11 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props = Base.Props & HTMLAttributes<"div">
5
+
6
+ export type TabsItemProps = Base.TabsItemProps &
7
+ Omit<HTMLAttributes<"input">, "type">
8
+
9
+ export type TabsTabProps = Base.TabsTabProps & HTMLAttributes<"label">
10
+
11
+ export type TabsPanelProps = Base.TabsPanelProps & HTMLAttributes<"div">
@@ -0,0 +1,31 @@
1
+ import type { HTMLAttributes, InjectionKey, Slot } from "vue"
2
+ import type {
3
+ Props as BaseProps,
4
+ TabsItemProps as BaseTabsItemProps,
5
+ TabsPanelProps as BaseTabsPanelProps,
6
+ TabsTabProps as BaseTabsTabProps,
7
+ } from "./types"
8
+
9
+ export type Props = BaseProps & {
10
+ class?: HTMLAttributes["class"]
11
+ }
12
+
13
+ export type TabsItemProps = BaseTabsItemProps & {
14
+ class?: HTMLAttributes["class"]
15
+ }
16
+
17
+ export type TabsPanelProps = BaseTabsPanelProps & {
18
+ class?: HTMLAttributes["class"]
19
+ }
20
+
21
+ export type TabsTabProps = BaseTabsTabProps & {
22
+ class?: HTMLAttributes["class"]
23
+ }
24
+
25
+ export type Slots = {
26
+ default?: Slot
27
+ }
28
+
29
+ export const TabsGroupNameKey = Symbol() as InjectionKey<string>
30
+ export const CurrentTabIdKey = Symbol() as InjectionKey<string>
31
+ export const CurrentPanelIdKey = Symbol() as InjectionKey<string>
@@ -0,0 +1,12 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props & JSX.HTMLAttributes<HTMLDivElement>
5
+ export type TabsItemProps = Base.TabsItemProps &
6
+ JSX.InputHTMLAttributes<HTMLInputElement>
7
+ export type TabsTabProps = Base.TabsTabProps &
8
+ Omit<JSX.LabelHTMLAttributes<HTMLLabelElement>, "for"> & {
9
+ for?: string
10
+ }
11
+ export type TabsPanelProps = Base.TabsPanelProps &
12
+ JSX.HTMLAttributes<HTMLDivElement>
@@ -0,0 +1,10 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ export type Props = Base.Props & SvelteHTMLElements["div"]
5
+ export type TabsItemProps = Base.TabsItemProps & SvelteHTMLElements["input"]
6
+ export type TabsPanelProps = Base.TabsPanelProps & SvelteHTMLElements["div"]
7
+ export type TabsTabProps = Base.TabsTabProps &
8
+ Omit<SvelteHTMLElements["label"], "for"> & {
9
+ for?: string
10
+ }
@@ -0,0 +1,19 @@
1
+ export type Props = {
2
+ name?: string
3
+ }
4
+
5
+ export type TabsItemProps = {
6
+ name?: string
7
+ open?: boolean
8
+ panelId?: string
9
+ tabId?: string
10
+ }
11
+
12
+ export type TabsTabProps = {
13
+ tabId?: string
14
+ }
15
+
16
+ export type TabsPanelProps = {
17
+ panelId?: string
18
+ tabId?: string
19
+ }
@@ -1,42 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- autoFit?: boolean
5
- class?: string
6
- error?: boolean
7
- description?: string
8
- disabled?: boolean
9
- endText?: string
10
- filled?: boolean
11
- id?: string
12
- label?: string
13
- list?: string
14
- max?: number | string
15
- min?: number | string
16
- name?: string
17
- placeholder?: string
18
- required?: boolean
19
- small?: boolean
20
- spread?: boolean
21
- startText?: string
22
- step?: number | string
23
- type?:
24
- | "color"
25
- | "date"
26
- | "datetime-local"
27
- | "email"
28
- | "file"
29
- | "month"
30
- | "numeric"
31
- | "password"
32
- | "search"
33
- | "tel"
34
- | "text"
35
- | "time"
36
- | "url"
37
- | "week"
38
- value?: string | number
39
- }
2
+ import type { Props } from "./types.astro"
40
3
 
41
4
  export const title = "Text Field"
42
5
 
@@ -87,14 +50,18 @@ const fieldName = name || currentFieldName
87
50
  >
88
51
  {
89
52
  (label || Astro.slots.has("label")) && (
90
- <!-- prettier-ignore -->
91
- <span class="ui-label">{label}<slot name="label" /></span>
53
+ <span class="ui-label">
54
+ {label}
55
+ <slot name="label" />
56
+ </span>
92
57
  )
93
58
  }
94
59
  {
95
60
  (startTextValue || Astro.slots.has("description")) && (
96
- <!-- prettier-ignore -->
97
- <span class="ui-start-text">{startTextValue}<slot name="description" /></span>
61
+ <span class="ui-start-text">
62
+ {startTextValue}
63
+ <slot name="description" />
64
+ </span>
98
65
  )
99
66
  }
100
67
  <span class="ui-field">
@@ -113,15 +80,44 @@ const fieldName = name || currentFieldName
113
80
  type={type === "numeric" ? "text" : type}
114
81
  value={value}
115
82
  />
116
- {Astro.slots.has("prefix") && <span class="ui-prefix"><slot name="prefix" /></span>}
117
- {Astro.slots.has("suffix") && <span class="ui-suffix"><slot name="suffix" /></span>}
118
- {Astro.slots.has("header") && <span class="ui-header"><slot name="header" /></span>}
119
- {Astro.slots.has("footer") && <span class="ui-footer"><slot name="footer" /></span>}
83
+ {
84
+ Astro.slots.has("prefix") && (
85
+ <span class="ui-prefix">
86
+ <slot name="prefix" />
87
+ </span>
88
+ )
89
+ }
90
+ {
91
+ Astro.slots.has("suffix") && (
92
+ <span class="ui-suffix">
93
+ <slot name="suffix" />
94
+ </span>
95
+ )
96
+ }
97
+ {
98
+ Astro.slots.has("header") && (
99
+ <span class="ui-header">
100
+ <slot name="header" />
101
+ </span>
102
+ )
103
+ }
104
+ {
105
+ Astro.slots.has("footer") && (
106
+ <span class="ui-footer">
107
+ <slot name="footer" />
108
+ </span>
109
+ )
110
+ }
120
111
  </span>
121
112
  {
122
- (endText || Astro.slots.has("end-text") || Astro.slots.has("supporting-text")) && (
123
- <!-- prettier-ignore -->
124
- <span class="ui-end-text">{endText}<slot name="end-text" /><slot name="supporting-text" /></span>
113
+ (endText ||
114
+ Astro.slots.has("end-text") ||
115
+ Astro.slots.has("supporting-text")) && (
116
+ <span class="ui-end-text">
117
+ {endText}
118
+ <slot name="end-text" />
119
+ <slot name="supporting-text" />
120
+ </span>
125
121
  )
126
122
  }
127
123
  <slot />
@@ -0,0 +1,17 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ type InputProps = {
5
+ // Add 'numeric' as valid input type
6
+ type?: HTMLAttributes<"input">["type"] | "numeric"
7
+ } &
8
+ // include the rest
9
+ Pick<HTMLAttributes<"input">, Exclude<Base.InputProps, "type">>
10
+
11
+ export type Props =
12
+ // Unique component props
13
+ Base.Props &
14
+ // All html label attributes
15
+ HTMLAttributes<"label"> &
16
+ // Input attributes
17
+ InputProps
@@ -0,0 +1,18 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { Props as BaseProps } from "./types"
3
+
4
+ export type Props = BaseProps & {
5
+ class?: HTMLAttributes["class"]
6
+ }
7
+
8
+ export type Slots = {
9
+ default?: Slot
10
+ description?: Slot
11
+ "end-text"?: Slot
12
+ footer?: Slot
13
+ header?: Slot
14
+ label?: Slot
15
+ prefix?: Slot
16
+ "supporting-text"?: Slot
17
+ suffix?: Slot
18
+ }
@@ -0,0 +1,22 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props &
5
+ Omit<JSX.InputHTMLAttributes<HTMLInputElement>, "type"> & {
6
+ type?:
7
+ | "text"
8
+ | "password"
9
+ | "email"
10
+ | "number"
11
+ | "numeric"
12
+ | "search"
13
+ | "tel"
14
+ | "url"
15
+ | "date"
16
+ | "time"
17
+ | "datetime-local"
18
+ | "month"
19
+ | "week"
20
+ | "color"
21
+ | string
22
+ } & Partial<Base.Slots<JSX.Element>>
@@ -0,0 +1,22 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+ import type { Snippet } from "svelte"
4
+
5
+ type InputProps = {
6
+ // Add 'numeric' as valid input type
7
+ type?: SvelteHTMLElements["input"]["type"] | "numeric"
8
+ } &
9
+ // include the rest
10
+ Pick<SvelteHTMLElements["input"], Exclude<Base.InputProps, "type">>
11
+
12
+ type Snippets = Base.Slots<Snippet>
13
+
14
+ export type Props =
15
+ // Unique component props, except snippets
16
+ Omit<Base.Props, keyof Snippets> &
17
+ // All html label attributes, (except prefix)
18
+ Omit<SvelteHTMLElements["label"], "prefix"> &
19
+ // Input attributes
20
+ InputProps &
21
+ // Snippets
22
+ Snippets