opui-css 5.1.2 → 5.3.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 (290) hide show
  1. package/CHANGELOG.md +18 -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/Accordion.vue +38 -0
  6. package/components/Accordion/types.astro.ts +4 -0
  7. package/components/Accordion/types.d.vue.ts +15 -0
  8. package/components/Accordion/types.solid.ts +6 -0
  9. package/components/Accordion/types.svelte.ts +7 -0
  10. package/components/Accordion/types.ts +10 -0
  11. package/components/Anchor/Anchor.astro +1 -7
  12. package/components/Anchor/Anchor.vue +41 -0
  13. package/components/Anchor/types.astro.ts +4 -0
  14. package/components/Anchor/types.d.vue.ts +10 -0
  15. package/components/Anchor/types.solid.ts +6 -0
  16. package/components/Anchor/types.svelte.ts +7 -0
  17. package/components/Anchor/types.ts +9 -0
  18. package/components/Avatar/Avatar.astro +4 -13
  19. package/components/Avatar/Avatar.vue +24 -0
  20. package/components/Avatar/types.astro.ts +10 -0
  21. package/components/Avatar/types.d.vue.ts +11 -0
  22. package/components/Avatar/types.solid.ts +11 -0
  23. package/components/Avatar/types.svelte.ts +12 -0
  24. package/components/Avatar/types.ts +29 -0
  25. package/components/Badge/Badge.astro +3 -11
  26. package/components/Badge/Badge.vue +39 -0
  27. package/components/Badge/types.astro.ts +4 -0
  28. package/components/Badge/types.d.vue.ts +10 -0
  29. package/components/Badge/types.solid.ts +4 -0
  30. package/components/Badge/types.svelte.ts +4 -0
  31. package/components/Badge/types.ts +8 -0
  32. package/components/Button/Button.astro +18 -27
  33. package/components/Button/Button.vue +27 -0
  34. package/components/Button/types.astro.ts +6 -0
  35. package/components/Button/types.d.vue.ts +10 -0
  36. package/components/Button/types.solid.ts +8 -0
  37. package/components/Button/types.svelte.ts +6 -0
  38. package/components/Button/types.ts +16 -0
  39. package/components/ButtonGroup/ButtonGroup.astro +1 -8
  40. package/components/ButtonGroup/ButtonGroup.vue +22 -0
  41. package/components/ButtonGroup/types.astro.ts +4 -0
  42. package/components/ButtonGroup/types.d.vue.ts +10 -0
  43. package/components/ButtonGroup/types.solid.ts +4 -0
  44. package/components/ButtonGroup/types.svelte.ts +4 -0
  45. package/components/ButtonGroup/types.ts +7 -0
  46. package/components/Callout/Callout.astro +10 -9
  47. package/components/Callout/Callout.vue +63 -0
  48. package/components/Callout/types.astro.ts +4 -0
  49. package/components/Callout/types.d.vue.ts +10 -0
  50. package/components/Callout/types.solid.ts +6 -0
  51. package/components/Callout/types.svelte.ts +7 -0
  52. package/components/Callout/types.ts +10 -0
  53. package/components/Card/Card.astro +1 -5
  54. package/components/Card/Card.vue +28 -0
  55. package/components/Card/types.astro.ts +4 -0
  56. package/components/Card/types.d.vue.ts +10 -0
  57. package/components/Card/types.solid.ts +6 -0
  58. package/components/Card/types.svelte.ts +7 -0
  59. package/components/Card/types.ts +11 -0
  60. package/components/Checkbox/Checkbox.astro +6 -36
  61. package/components/Checkbox/Checkbox.vue +43 -0
  62. package/components/Checkbox/CheckboxInput.astro +2 -18
  63. package/components/Checkbox/CheckboxInput.vue +32 -0
  64. package/components/Checkbox/types.astro.ts +8 -0
  65. package/components/Checkbox/types.d.vue.ts +11 -0
  66. package/components/Checkbox/types.solid.ts +9 -0
  67. package/components/Checkbox/types.svelte.ts +12 -0
  68. package/components/Checkbox/types.ts +16 -0
  69. package/components/Chip/Chip.astro +6 -12
  70. package/components/Chip/Chip.vue +37 -0
  71. package/components/Chip/types.astro.ts +9 -0
  72. package/components/Chip/types.d.vue.ts +10 -0
  73. package/components/Chip/types.solid.ts +10 -0
  74. package/components/Chip/types.svelte.ts +14 -0
  75. package/components/Chip/types.ts +13 -0
  76. package/components/ClassicSelect/ClassicSelect.astro +5 -28
  77. package/components/ClassicSelect/ClassicSelect.vue +54 -0
  78. package/components/ClassicSelect/types.astro.ts +8 -0
  79. package/components/ClassicSelect/types.d.vue.ts +10 -0
  80. package/components/ClassicSelect/types.solid.ts +5 -0
  81. package/components/ClassicSelect/types.svelte.ts +5 -0
  82. package/components/ClassicSelect/types.ts +15 -0
  83. package/components/DescriptionList/Description.astro +1 -4
  84. package/components/DescriptionList/Description.vue +12 -0
  85. package/components/DescriptionList/DescriptionList.astro +1 -5
  86. package/components/DescriptionList/DescriptionList.vue +23 -0
  87. package/components/DescriptionList/Item.astro +1 -4
  88. package/components/DescriptionList/Item.vue +12 -0
  89. package/components/DescriptionList/Term.astro +1 -4
  90. package/components/DescriptionList/Term.vue +12 -0
  91. package/components/DescriptionList/types.astro.ts +10 -0
  92. package/components/DescriptionList/types.d.vue.ts +10 -0
  93. package/components/DescriptionList/types.solid.ts +4 -0
  94. package/components/DescriptionList/types.svelte.ts +4 -0
  95. package/components/DescriptionList/types.ts +3 -0
  96. package/components/Dialog/Dialog.astro +1 -6
  97. package/components/Dialog/Dialog.vue +35 -0
  98. package/components/Dialog/types.astro.ts +4 -0
  99. package/components/Dialog/types.d.vue.ts +10 -0
  100. package/components/Dialog/types.solid.ts +8 -0
  101. package/components/Dialog/types.svelte.ts +7 -0
  102. package/components/Dialog/types.ts +10 -0
  103. package/components/Divider/Divider.astro +1 -6
  104. package/components/Divider/Divider.vue +12 -0
  105. package/components/Divider/types.astro.ts +4 -0
  106. package/components/Divider/types.d.vue.ts +6 -0
  107. package/components/Divider/types.solid.ts +4 -0
  108. package/components/Divider/types.svelte.ts +4 -0
  109. package/components/Divider/types.ts +3 -0
  110. package/components/Drawer/Drawer.astro +10 -12
  111. package/components/Drawer/Drawer.vue +46 -0
  112. package/components/Drawer/DrawerFooter.astro +1 -4
  113. package/components/Drawer/DrawerFooter.vue +16 -0
  114. package/components/Drawer/DrawerHeader.astro +1 -5
  115. package/components/Drawer/DrawerHeader.vue +36 -0
  116. package/components/Drawer/types.astro.ts +8 -0
  117. package/components/Drawer/types.d.vue.ts +31 -0
  118. package/components/Drawer/types.solid.ts +12 -0
  119. package/components/Drawer/types.svelte.ts +15 -0
  120. package/components/Drawer/types.ts +20 -0
  121. package/components/FieldDescription/FieldDescription.astro +1 -5
  122. package/components/FieldDescription/FieldDescription.vue +12 -0
  123. package/components/FieldDescription/types.astro.ts +4 -0
  124. package/components/FieldDescription/types.d.vue.ts +10 -0
  125. package/components/FieldDescription/types.solid.ts +5 -0
  126. package/components/FieldDescription/types.svelte.ts +4 -0
  127. package/components/FieldDescription/types.ts +1 -0
  128. package/components/FieldGroup/FieldGroup.astro +1 -8
  129. package/components/FieldGroup/FieldGroup.vue +25 -0
  130. package/components/FieldGroup/types.astro.ts +4 -0
  131. package/components/FieldGroup/types.d.vue.ts +12 -0
  132. package/components/FieldGroup/types.solid.ts +5 -0
  133. package/components/FieldGroup/types.svelte.ts +4 -0
  134. package/components/FieldGroup/types.ts +4 -0
  135. package/components/FieldLegend/FieldLegend.astro +4 -8
  136. package/components/FieldLegend/FieldLegend.vue +18 -0
  137. package/components/FieldLegend/types.astro.ts +6 -0
  138. package/components/FieldLegend/types.d.vue.ts +11 -0
  139. package/components/FieldLegend/types.solid.ts +5 -0
  140. package/components/FieldLegend/types.svelte.ts +6 -0
  141. package/components/FieldLegend/types.ts +1 -0
  142. package/components/FieldSet/FieldSet.astro +1 -5
  143. package/components/FieldSet/FieldSet.vue +18 -0
  144. package/components/FieldSet/types.astro.ts +6 -0
  145. package/components/FieldSet/types.d.vue.ts +11 -0
  146. package/components/FieldSet/types.solid.ts +5 -0
  147. package/components/FieldSet/types.svelte.ts +8 -0
  148. package/components/FieldSet/types.ts +5 -0
  149. package/components/Form/Form.astro +1 -6
  150. package/components/Form/Form.vue +14 -0
  151. package/components/Form/types.astro.ts +6 -0
  152. package/components/Form/types.d.vue.ts +11 -0
  153. package/components/Form/types.solid.ts +5 -0
  154. package/components/Form/types.svelte.ts +7 -0
  155. package/components/Form/types.ts +1 -0
  156. package/components/IconButton/IconButton.astro +18 -20
  157. package/components/IconButton/IconButton.vue +24 -0
  158. package/components/IconButton/types.astro.ts +6 -0
  159. package/components/IconButton/types.d.vue.ts +10 -0
  160. package/components/IconButton/types.solid.ts +8 -0
  161. package/components/IconButton/types.svelte.ts +6 -0
  162. package/components/IconButton/types.ts +16 -0
  163. package/components/List/List.astro +1 -8
  164. package/components/List/List.vue +28 -0
  165. package/components/List/types.astro.ts +4 -0
  166. package/components/List/types.d.vue.ts +10 -0
  167. package/components/List/types.solid.ts +4 -0
  168. package/components/List/types.svelte.ts +4 -0
  169. package/components/List/types.ts +7 -0
  170. package/components/ListItem/ListItem.astro +3 -13
  171. package/components/ListItem/ListItem.vue +98 -0
  172. package/components/ListItem/types.astro.ts +10 -0
  173. package/components/ListItem/types.d.vue.ts +10 -0
  174. package/components/ListItem/types.solid.ts +12 -0
  175. package/components/ListItem/types.svelte.ts +14 -0
  176. package/components/ListItem/types.ts +32 -0
  177. package/components/Progress/Progress.astro +1 -11
  178. package/components/Progress/Progress.vue +34 -0
  179. package/components/Progress/types.astro.ts +4 -0
  180. package/components/Progress/types.d.vue.ts +10 -0
  181. package/components/Progress/types.solid.ts +4 -0
  182. package/components/Progress/types.svelte.ts +4 -0
  183. package/components/Progress/types.ts +10 -0
  184. package/components/Radio/Radio.astro +6 -32
  185. package/components/Radio/Radio.vue +41 -0
  186. package/components/Radio/RadioInput.astro +3 -20
  187. package/components/Radio/RadioInput.vue +14 -0
  188. package/components/Radio/types.astro.ts +6 -0
  189. package/components/Radio/types.d.vue.ts +11 -0
  190. package/components/Radio/types.solid.ts +9 -0
  191. package/components/Radio/types.svelte.ts +12 -0
  192. package/components/Radio/types.ts +12 -0
  193. package/components/Range/Range.astro +23 -31
  194. package/components/Range/Range.vue +85 -0
  195. package/components/Range/types.astro.ts +6 -0
  196. package/components/Range/types.d.vue.ts +14 -0
  197. package/components/Range/types.solid.ts +6 -0
  198. package/components/Range/types.svelte.ts +9 -0
  199. package/components/Range/types.ts +25 -0
  200. package/components/Select/Select.astro +41 -39
  201. package/components/Select/Select.vue +85 -0
  202. package/components/Select/types.astro.ts +4 -0
  203. package/components/Select/types.d.vue.ts +17 -0
  204. package/components/Select/types.solid.ts +6 -0
  205. package/components/Select/types.svelte.ts +7 -0
  206. package/components/Select/types.ts +27 -0
  207. package/components/Switch/Switch.astro +14 -39
  208. package/components/Switch/Switch.vue +63 -0
  209. package/components/Switch/SwitchInput.astro +3 -21
  210. package/components/Switch/SwitchInput.vue +14 -0
  211. package/components/Switch/types.astro.ts +5 -0
  212. package/components/Switch/types.d.vue.ts +13 -0
  213. package/components/Switch/types.solid.ts +9 -0
  214. package/components/Switch/types.svelte.ts +9 -0
  215. package/components/Switch/types.ts +16 -0
  216. package/components/Table/Body.astro +1 -3
  217. package/components/Table/Body.vue +5 -0
  218. package/components/Table/Cell.astro +1 -3
  219. package/components/Table/Cell.vue +5 -0
  220. package/components/Table/Column.astro +1 -4
  221. package/components/Table/Column.vue +19 -0
  222. package/components/Table/ColumnGroup.astro +1 -3
  223. package/components/Table/ColumnGroup.vue +5 -0
  224. package/components/Table/Head.astro +1 -3
  225. package/components/Table/Head.vue +5 -0
  226. package/components/Table/HeaderCell.astro +1 -3
  227. package/components/Table/HeaderCell.vue +5 -0
  228. package/components/Table/Row.astro +1 -3
  229. package/components/Table/Row.vue +5 -0
  230. package/components/Table/Table.astro +1 -5
  231. package/components/Table/Table.vue +19 -0
  232. package/components/Table/types.astro.ts +16 -0
  233. package/components/Table/types.d.vue.ts +10 -0
  234. package/components/Table/types.solid.ts +8 -0
  235. package/components/Table/types.svelte.ts +11 -0
  236. package/components/Table/types.ts +9 -0
  237. package/components/Tabs/Tabs.astro +1 -5
  238. package/components/Tabs/Tabs.vue +20 -0
  239. package/components/Tabs/TabsItem.astro +1 -8
  240. package/components/Tabs/TabsItem.vue +39 -0
  241. package/components/Tabs/TabsPanel.astro +1 -6
  242. package/components/Tabs/TabsPanel.vue +31 -0
  243. package/components/Tabs/TabsTab.astro +1 -5
  244. package/components/Tabs/TabsTab.vue +24 -0
  245. package/components/Tabs/types.astro.ts +11 -0
  246. package/components/Tabs/types.d.vue.ts +31 -0
  247. package/components/Tabs/types.solid.ts +12 -0
  248. package/components/Tabs/types.svelte.ts +10 -0
  249. package/components/Tabs/types.ts +19 -0
  250. package/components/TextField/TextField.astro +45 -49
  251. package/components/TextField/TextField.vue +74 -0
  252. package/components/TextField/types.astro.ts +17 -0
  253. package/components/TextField/types.d.vue.ts +20 -0
  254. package/components/TextField/types.solid.ts +22 -0
  255. package/components/TextField/types.svelte.ts +22 -0
  256. package/components/TextField/types.ts +35 -0
  257. package/components/Textarea/Textarea.astro +50 -38
  258. package/components/Textarea/Textarea.vue +64 -0
  259. package/components/Textarea/types.astro.ts +10 -0
  260. package/components/Textarea/types.d.vue.ts +19 -0
  261. package/components/Textarea/types.solid.ts +6 -0
  262. package/components/Textarea/types.svelte.ts +21 -0
  263. package/components/Textarea/types.ts +33 -0
  264. package/components/Toast/Toast.vue +48 -0
  265. package/components/ToggleButton/ToggleButton.astro +1 -11
  266. package/components/ToggleButton/ToggleButton.vue +41 -0
  267. package/components/ToggleButton/types.astro.ts +4 -0
  268. package/components/ToggleButton/types.d.vue.ts +10 -0
  269. package/components/ToggleButton/types.solid.ts +7 -0
  270. package/components/ToggleButton/types.svelte.ts +7 -0
  271. package/components/ToggleButton/types.ts +10 -0
  272. package/components/ToggleGroup/ToggleGroup.astro +1 -8
  273. package/components/ToggleGroup/ToggleGroup.vue +36 -0
  274. package/components/ToggleGroup/types.astro.ts +4 -0
  275. package/components/ToggleGroup/types.d.vue.ts +15 -0
  276. package/components/ToggleGroup/types.solid.ts +4 -0
  277. package/components/ToggleGroup/types.svelte.ts +9 -0
  278. package/components/ToggleGroup/types.ts +15 -0
  279. package/components/Tooltip/Tooltip.astro +2 -9
  280. package/components/Tooltip/Tooltip.vue +22 -0
  281. package/components/Tooltip/types.astro.ts +4 -0
  282. package/components/Tooltip/types.d.vue.ts +10 -0
  283. package/components/Tooltip/types.solid.ts +6 -0
  284. package/components/Tooltip/types.svelte.ts +7 -0
  285. package/components/Tooltip/types.ts +11 -0
  286. package/css/theme.css +0 -1
  287. package/dist/opui.css +0 -1
  288. package/dist/opui.css.map +1 -1
  289. package/package.json +16 -7
  290. package/vue/index.ts +54 -0
@@ -0,0 +1,16 @@
1
+ <script setup lang="ts">
2
+ import type { DrawerFooterProps, DrawerFooterSlots } from "./types.d.vue"
3
+
4
+ defineProps<DrawerFooterProps>()
5
+ defineSlots<DrawerFooterSlots>()
6
+
7
+ defineOptions({
8
+ inheritAttrs: false,
9
+ })
10
+ </script>
11
+
12
+ <template>
13
+ <div :class="['ui-footer', $props.class]" v-bind="$attrs">
14
+ <slot></slot>
15
+ </div>
16
+ </template>
@@ -1,11 +1,7 @@
1
1
  ---
2
2
  import IconButton from "../IconButton/IconButton.astro"
3
3
 
4
- type Props = {
5
- [key: string]: any
6
- class?: string
7
- heading?: string
8
- }
4
+ import type { DrawerHeaderProps as Props } from "./types.astro"
9
5
 
10
6
  export const title = "Drawer Header"
11
7
 
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import IconButton from "../IconButton/IconButton.vue"
3
+ import type { DrawerHeaderProps, DrawerHeaderSlots } from "./types.d.vue"
4
+
5
+ const { heading } = defineProps<DrawerHeaderProps>()
6
+ defineSlots<DrawerHeaderSlots>()
7
+
8
+ defineOptions({
9
+ inheritAttrs: false,
10
+ })
11
+
12
+ const closeDrawer = (event: MouseEvent) => {
13
+ const target = event.currentTarget as HTMLElement | null
14
+ target?.closest("dialog")?.close()
15
+ }
16
+ </script>
17
+
18
+ <template>
19
+ <div :class="['ui-header', $props.class]" v-bind="$attrs">
20
+ <span v-if="heading">{{ heading }}</span>
21
+ <slot></slot>
22
+ <IconButton title="Close" @click="closeDrawer">
23
+ <svg
24
+ xmlns="http://www.w3.org/2000/svg"
25
+ width="32"
26
+ height="32"
27
+ viewBox="0 0 32 32"
28
+ >
29
+ <path
30
+ fill="currentColor"
31
+ d="M26.29 4.293a1 1 0 1 1 1.414 1.414L17.413 16l10.291 10.29a1 1 0 1 1-1.414 1.414L16 17.413L5.707 27.704a1 1 0 0 1-1.414-1.414L14.585 16L4.293 5.707a1 1 0 0 1 1.414-1.414L16 14.584z"
32
+ ></path>
33
+ </svg>
34
+ </IconButton>
35
+ </div>
36
+ </template>
@@ -0,0 +1,8 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props = Base.Props & HTMLAttributes<"dialog">
5
+
6
+ export type DrawerHeaderProps = Base.DrawerHeaderProps & HTMLAttributes<"div">
7
+
8
+ export type DrawerFooterProps = Base.DrawerFooterProps & HTMLAttributes<"div">
@@ -0,0 +1,31 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type {
3
+ DrawerFooterProps as BaseDrawerFooterProps,
4
+ DrawerHeaderProps as BaseDrawerHeaderProps,
5
+ Props as BaseProps,
6
+ Slots as BaseSlots,
7
+ } from "./types"
8
+
9
+ export type Props = BaseProps & {
10
+ class?: HTMLAttributes["class"]
11
+ }
12
+
13
+ export type DrawerHeaderProps = BaseDrawerHeaderProps & {
14
+ class?: HTMLAttributes["class"]
15
+ }
16
+
17
+ export type DrawerFooterProps = BaseDrawerFooterProps & {
18
+ class?: HTMLAttributes["class"]
19
+ }
20
+
21
+ export type DrawerSlots = BaseSlots<Slot> & {
22
+ default?: Slot
23
+ }
24
+
25
+ export type DrawerHeaderSlots = {
26
+ default?: Slot
27
+ }
28
+
29
+ export type DrawerFooterSlots = {
30
+ default?: Slot
31
+ }
@@ -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 &
5
+ Omit<JSX.DialogHtmlAttributes<HTMLDialogElement>, "id"> &
6
+ Partial<Base.Slots<JSX.Element>>
7
+
8
+ export type DrawerFooterProps = Base.DrawerFooterProps &
9
+ JSX.HTMLAttributes<HTMLDivElement>
10
+
11
+ export type DrawerHeaderProps = Base.DrawerHeaderProps &
12
+ JSX.HTMLAttributes<HTMLDivElement>
@@ -0,0 +1,15 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+ import type { Snippet } from "svelte"
4
+
5
+ type Snippets = Base.Slots<Snippet>
6
+
7
+ export type Props = Base.Props &
8
+ Omit<SvelteHTMLElements["dialog"], "id"> &
9
+ Snippets
10
+
11
+ export type DrawerFooterProps = Base.DrawerFooterProps &
12
+ SvelteHTMLElements["div"]
13
+
14
+ export type DrawerHeaderProps = Base.DrawerHeaderProps &
15
+ SvelteHTMLElements["div"]
@@ -0,0 +1,20 @@
1
+ export type Props = {
2
+ backdrop?: "transparent" | "blurred"
3
+ closedby?: "any" | "closerequest" | "none"
4
+ id?: string
5
+ scrollLock?: boolean
6
+ side?: "inline-start" | "inline-end" | "block-start" | "block-end"
7
+ }
8
+
9
+ export type DrawerHeaderProps = {
10
+ heading?: string
11
+ }
12
+
13
+ export type DrawerFooterProps = {}
14
+
15
+ export type Slots<S> = {
16
+ children?: S
17
+ content?: S
18
+ footer?: S
19
+ header?: S
20
+ }
@@ -1,13 +1,9 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- }
2
+ import type { Props } from "./types.astro"
6
3
 
7
4
  export const title = "Field Description"
8
5
 
9
6
  const { class: className, ...rest } = Astro.props
10
7
  ---
11
8
 
12
- <!-- prettier-ignore -->
13
9
  <p class:list={["ui-field-description", className]} {...rest}><slot /></p>
@@ -0,0 +1,12 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ const props = defineProps<Props>()
5
+ defineSlots<Slots>()
6
+ </script>
7
+
8
+ <template>
9
+ <p :class="['ui-field-description', props.class]" v-bind="$attrs">
10
+ <slot></slot>
11
+ </p>
12
+ </template>
@@ -0,0 +1,4 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props = Base.Props & HTMLAttributes<"p">
@@ -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,5 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props &
5
+ JSX.HTMLAttributes<any> & { as?: keyof JSX.IntrinsicElements }
@@ -0,0 +1,4 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ export type Props = Base.Props & SvelteHTMLElements["p"]
@@ -0,0 +1 @@
1
+ export type Props = {}
@@ -1,15 +1,8 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- direction?: "row" | "column"
6
- name?: string
7
- }
8
-
2
+ import type { Props } from "./types.astro"
9
3
  export const title = "Field Group"
10
4
 
11
5
  const { class: className, direction, name, ...rest } = Astro.props
12
-
13
6
  const originalName = Astro.locals.currentFieldName
14
7
  if (name) {
15
8
  Astro.locals.currentFieldName = name
@@ -0,0 +1,25 @@
1
+ <script setup lang="ts">
2
+ import { provide } from "vue"
3
+ import { CurrentFieldNameKey, type Props, type Slots } from "./types.d.vue"
4
+
5
+ const props = defineProps<Props>()
6
+ defineSlots<Slots>()
7
+
8
+ if (props.name) {
9
+ provide(CurrentFieldNameKey, props.name)
10
+ }
11
+ </script>
12
+
13
+ <template>
14
+ <div
15
+ :class="[
16
+ 'ui-field-group',
17
+ props.direction && `ui-${props.direction}`,
18
+ props.class,
19
+ ]"
20
+ v-bind="$attrs"
21
+ role="group"
22
+ >
23
+ <slot></slot>
24
+ </div>
25
+ </template>
@@ -0,0 +1,4 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props = Base.Props & HTMLAttributes<"div">
@@ -0,0 +1,12 @@
1
+ import type { HTMLAttributes, InjectionKey, 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
+ }
11
+
12
+ export const CurrentFieldNameKey = Symbol() as InjectionKey<string>
@@ -0,0 +1,5 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props &
5
+ JSX.HTMLAttributes<any> & { as?: keyof JSX.IntrinsicElements }
@@ -0,0 +1,4 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ export type Props = Base.Props & SvelteHTMLElements["div"]
@@ -0,0 +1,4 @@
1
+ export type Props = {
2
+ direction?: "row" | "column"
3
+ name?: string
4
+ }
@@ -1,15 +1,11 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "legend" | "p" | string
5
- class?: string
6
- }
7
-
2
+ import type { Props } from "./types.astro"
8
3
  export const title = "Field Legend"
9
4
 
10
5
  const { as: Tag = "legend", class: className, ...rest } = Astro.props
11
6
  const isLegend = Tag === "legend"
12
7
  ---
13
8
 
14
- <!-- prettier-ignore -->
15
- <Tag class:list={[{ "ui-legend": !isLegend }, className]} {...rest}><slot /></Tag>
9
+ <Tag class:list={[{ "ui-legend": !isLegend }, className]} {...rest}
10
+ ><slot /></Tag
11
+ >
@@ -0,0 +1,18 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ const props = withDefaults(defineProps<Props>(), {
5
+ as: "legend",
6
+ })
7
+ defineSlots<Slots>()
8
+ </script>
9
+
10
+ <template>
11
+ <component
12
+ :is="props.as"
13
+ :class="[{ 'ui-legend': props.as !== 'legend' }, props.class]"
14
+ v-bind="$attrs"
15
+ >
16
+ <slot></slot>
17
+ </component>
18
+ </template>
@@ -0,0 +1,6 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props =
5
+ | (Base.Props & { as?: "legend" } & HTMLAttributes<"legend">)
6
+ | (Base.Props & { as: "p" } & HTMLAttributes<"p">)
@@ -0,0 +1,11 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { Props as BaseProps } from "./types"
3
+
4
+ export type Props = BaseProps & {
5
+ as?: string
6
+ class?: HTMLAttributes["class"]
7
+ }
8
+
9
+ export type Slots = {
10
+ default?: Slot
11
+ }
@@ -0,0 +1,5 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props &
5
+ JSX.HTMLAttributes<any> & { as?: keyof JSX.IntrinsicElements }
@@ -0,0 +1,6 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ // prettier-ignore
5
+ export type Props<T extends keyof SvelteHTMLElements= "legend"> =
6
+ | (Base.Props & { as?: T } & SvelteHTMLElements[T])
@@ -0,0 +1 @@
1
+ export type Props = {}
@@ -1,9 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "fieldset" | "div" | string
5
- class?: string
6
- }
2
+ import type { Props } from "./types.astro"
7
3
 
8
4
  export const title = "Field Set"
9
5
 
@@ -0,0 +1,18 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ const props = withDefaults(defineProps<Props>(), {
5
+ as: "fieldset",
6
+ })
7
+ defineSlots<Slots>()
8
+ </script>
9
+
10
+ <template>
11
+ <component
12
+ :is="props.as"
13
+ :class="['ui-fieldset', props.class]"
14
+ v-bind="$attrs"
15
+ >
16
+ <slot></slot>
17
+ </component>
18
+ </template>
@@ -0,0 +1,6 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props =
5
+ | (Base.Props & { as?: "fieldset" } & HTMLAttributes<"fieldset">)
6
+ | (Base.Props & { as: "div" } & HTMLAttributes<"div">)
@@ -0,0 +1,11 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { Props as BaseProps } from "./types"
3
+
4
+ export type Props = BaseProps & {
5
+ as?: string
6
+ class?: HTMLAttributes["class"]
7
+ }
8
+
9
+ export type Slots = {
10
+ default?: Slot
11
+ }
@@ -0,0 +1,5 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props &
5
+ JSX.HTMLAttributes<any> & { as?: keyof JSX.IntrinsicElements }
@@ -0,0 +1,8 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ // prettier-ignore
5
+ export type Props<T extends keyof SvelteHTMLElements= "fieldset"> =
6
+ | (Base.Props & { as?: T } & SvelteHTMLElements[T])
7
+
8
+ export type Context = Base.Context
@@ -0,0 +1,5 @@
1
+ export type Props = {}
2
+ export type Context = {
3
+ name?: string | null
4
+ description?: string | null
5
+ }
@@ -1,10 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "form" | "div" | string
5
- class?: string
6
- }
7
-
2
+ import type { Props } from "./types.astro"
8
3
  export const title = "Form"
9
4
 
10
5
  const { as: Tag = "form", class: className, ...rest } = Astro.props
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ const props = withDefaults(defineProps<Props>(), {
5
+ as: "form",
6
+ })
7
+ defineSlots<Slots>()
8
+ </script>
9
+
10
+ <template>
11
+ <component :is="props.as" :class="['ui-form', props.class]" v-bind="$attrs">
12
+ <slot></slot>
13
+ </component>
14
+ </template>
@@ -0,0 +1,6 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props =
5
+ | (Base.Props & { as?: "form" } & HTMLAttributes<"form">)
6
+ | (Base.Props & { as: "div" } & HTMLAttributes<"div">)
@@ -0,0 +1,11 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { Props as BaseProps } from "./types"
3
+
4
+ export type Props = BaseProps & {
5
+ as?: string
6
+ class?: HTMLAttributes["class"]
7
+ }
8
+
9
+ export type Slots = {
10
+ default?: Slot
11
+ }
@@ -0,0 +1,5 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props &
5
+ JSX.HTMLAttributes<any> & { as?: keyof JSX.IntrinsicElements }
@@ -0,0 +1,7 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ // prettier-ignore
5
+ export type Props<T extends keyof SvelteHTMLElements = keyof SvelteHTMLElements> =
6
+ | (Base.Props & { as?: "form" } & SvelteHTMLElements['form'])
7
+ | (Base.Props & { as: T } & SvelteHTMLElements[T])
@@ -0,0 +1 @@
1
+ export type Props = {}
@@ -1,26 +1,24 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "a" | "button" | string
5
- class?: string
6
- color?: "critical" | "primary"
7
- href?: string
8
- size?: "small"
9
- variant?: "outlined" | "tonal" | "filled"
10
- }
2
+ import type { Props } from "./types.astro"
11
3
 
12
4
  export const title = "Icon Button"
13
5
 
14
- const {
15
- as: Tag = Astro.props.href ? "a" : "button",
16
- class: className,
17
- color,
18
- href,
19
- size,
20
- variant,
21
- ...rest
22
- } = Astro.props
6
+ const props = Astro.props as Props
7
+ const { as, class: className, color, size, variant, href, ...rest } = props
8
+
9
+ const Tag = as || (href ? "a" : "button")
23
10
  ---
24
11
 
25
- <!-- prettier-ignore -->
26
- <Tag class:list={["ui-icon-button", size && `ui-${size}`, variant && `ui-${variant}`, color && `ui-${color}`, className]} href={href} {...rest}><slot /></Tag>
12
+ <Tag
13
+ class:list={[
14
+ "ui-icon-button",
15
+ size && `ui-${size}`,
16
+ variant && `ui-${variant}`,
17
+ color && `ui-${color}`,
18
+ className,
19
+ ]}
20
+ href={href}
21
+ {...rest as any}
22
+ >
23
+ <slot />
24
+ </Tag>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ const { as, color, href, size, variant } = defineProps<Props>()
5
+ defineSlots<Slots>()
6
+
7
+ const Tag = as || (href ? "a" : "button")
8
+ </script>
9
+
10
+ <template>
11
+ <component
12
+ :is="Tag"
13
+ :class="[
14
+ 'ui-icon-button',
15
+ size && `ui-${size}`,
16
+ variant && `ui-${variant}`,
17
+ color && `ui-${color}`,
18
+ $props.class,
19
+ ]"
20
+ :href="href"
21
+ >
22
+ <slot></slot>
23
+ </component>
24
+ </template>
@@ -0,0 +1,6 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props =
5
+ | (Base.Props & { as?: "button" } & HTMLAttributes<"button">)
6
+ | (Base.Props & { as?: "a" } & HTMLAttributes<"a">)
@@ -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 &
5
+ (
6
+ | ({ as?: "button" } & JSX.ButtonHTMLAttributes<HTMLButtonElement>)
7
+ | ({ as: "a" } & JSX.AnchorHTMLAttributes<HTMLAnchorElement>)
8
+ )
@@ -0,0 +1,6 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ export type Props =
5
+ | (Base.Props & { as?: "button" } & SvelteHTMLElements["button"])
6
+ | (Base.Props & { as?: "a" } & SvelteHTMLElements["a"])