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,37 @@
1
+ <script setup lang="ts">
2
+ import { computed } from "vue"
3
+ import type { Props, Slots } from "./types.d.vue"
4
+
5
+ const {
6
+ as,
7
+ label,
8
+ multiline,
9
+ size,
10
+ variant = "tonal",
11
+ href,
12
+ } = defineProps<Props>()
13
+ defineSlots<Slots>()
14
+
15
+ const tag = computed(() => as || (href ? "a" : "div"))
16
+ </script>
17
+
18
+ <template>
19
+ <component
20
+ :is="tag"
21
+ :class="[
22
+ 'ui-chip',
23
+ {
24
+ 'ui-multiline': multiline,
25
+ },
26
+ size && `ui-${size}`,
27
+ variant && `ui-${variant}`,
28
+ $props.class,
29
+ ]"
30
+ :href="tag === 'a' ? href : undefined"
31
+ >
32
+ <slot name="start"></slot>
33
+ <slot></slot>
34
+ <span v-if="label" class="ui-text">{{ label }}</span>
35
+ <slot name="end"></slot>
36
+ </component>
37
+ </template>
@@ -0,0 +1,9 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props = Base.Props &
5
+ (
6
+ | ({ as?: "a" } & HTMLAttributes<"a">)
7
+ | ({ as?: "button" } & HTMLAttributes<"button">)
8
+ | ({ as?: "div" } & HTMLAttributes<"div">)
9
+ )
@@ -0,0 +1,10 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { Props as BaseProps, Slots as BaseSlots } from "./types"
3
+
4
+ export type Props = BaseProps & {
5
+ class?: HTMLAttributes["class"]
6
+ }
7
+
8
+ export type Slots = BaseSlots<Slot> & {
9
+ default?: Slot
10
+ }
@@ -0,0 +1,10 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props &
5
+ Partial<Base.Slots<JSX.Element>> &
6
+ (
7
+ | ({ as?: "a" } & JSX.AnchorHTMLAttributes<HTMLAnchorElement>)
8
+ | ({ as?: "button" } & JSX.ButtonHTMLAttributes<HTMLButtonElement>)
9
+ | ({ as?: "div" } & JSX.HTMLAttributes<HTMLDivElement>)
10
+ )
@@ -0,0 +1,14 @@
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
+ // prettier-ignore
8
+ export type Props = Base.Props &
9
+ Snippets &
10
+ (
11
+ | ({ as?: "a" } & SvelteHTMLElements["a"])
12
+ | ({ as?: "button" } & SvelteHTMLElements["button"])
13
+ | ({ as?: "div" } & SvelteHTMLElements["div"])
14
+ )
@@ -0,0 +1,13 @@
1
+ export type Props = {
2
+ [key: string]: any
3
+ as?: "a" | "button" | "div" | string
4
+ label?: string
5
+ multiline?: boolean
6
+ size?: "small"
7
+ variant?: "tonal" | "outlined"
8
+ }
9
+
10
+ export type Slots<S> = {
11
+ end?: S
12
+ start?: S
13
+ }
@@ -1,24 +1,5 @@
1
1
  ---
2
- type Item = {
3
- text: string
4
- value: any
5
- }
6
-
7
- type Props = {
8
- [key: string]: any
9
- class?: string
10
- disabled?: boolean
11
- error?: boolean
12
- id?: string
13
- items?: Item[]
14
- label?: string
15
- name?: string
16
- required?: boolean
17
- size?: "small"
18
- endText?: string
19
- value?: any
20
- variant?: "outlined" | "filled"
21
- }
2
+ import type { ClassicSelectProps as Props } from "./types.astro"
22
3
 
23
4
  export const title = "Classic Select"
24
5
 
@@ -56,8 +37,9 @@ const labelId = $id("select-label")
56
37
  >
57
38
  {
58
39
  label && (
59
- <!-- prettier-ignore -->
60
- <span class="ui-label" id={labelId}>{label}</span>
40
+ <span class="ui-label" id={labelId}>
41
+ {label}
42
+ </span>
61
43
  )
62
44
  }
63
45
  <span class="ui-field">
@@ -74,10 +56,5 @@ const labelId = $id("select-label")
74
56
  <slot />
75
57
  </select>
76
58
  </span>
77
- {
78
- endText && (
79
- <!-- prettier-ignore -->
80
- <span class="ui-end-text">{endText}</span>
81
- )
82
- }
59
+ {endText && <span class="ui-end-text">{endText}</span>}
83
60
  </label>
@@ -0,0 +1,54 @@
1
+ <script setup lang="ts">
2
+ import type { ClassicSelectProps, Slots } from "./types.d.vue"
3
+ import { useId } from "vue"
4
+
5
+ defineOptions({
6
+ inheritAttrs: false,
7
+ })
8
+
9
+ const props = withDefaults(defineProps<ClassicSelectProps>(), {
10
+ items: () => [],
11
+ variant: "outlined",
12
+ })
13
+ defineSlots<Slots>()
14
+ const modelValue = defineModel<string | number | (string | number)[]>()
15
+
16
+ const selectId = props.id || useId()
17
+ const labelId = useId()
18
+ </script>
19
+
20
+ <template>
21
+ <label
22
+ :class="[
23
+ 'ui-select',
24
+ props.size && `ui-${props.size}`,
25
+ {
26
+ 'ui-filled': props.variant === 'filled',
27
+ },
28
+ props.class,
29
+ ]"
30
+ :data-invalid="props.error || undefined"
31
+ >
32
+ <span v-if="props.label" class="ui-label" :id="labelId">{{
33
+ props.label
34
+ }}</span>
35
+ <span class="ui-field">
36
+ <select
37
+ :aria-labelledby="props.label ? labelId : undefined"
38
+ :id="selectId"
39
+ v-bind="$attrs"
40
+ v-model="modelValue"
41
+ >
42
+ <option
43
+ v-for="item in props.items"
44
+ :key="item.value"
45
+ :value="item.value"
46
+ >
47
+ {{ item.text }}
48
+ </option>
49
+ <slot></slot>
50
+ </select>
51
+ </span>
52
+ <span v-if="props.endText" class="ui-end-text">{{ props.endText }}</span>
53
+ </label>
54
+ </template>
@@ -0,0 +1,8 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type { Item } from "./types"
5
+
6
+ export type ClassicSelectProps = Base.ClassicSelectProps &
7
+ HTMLAttributes<"label"> &
8
+ HTMLAttributes<"select">
@@ -0,0 +1,10 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { ClassicSelectProps as BaseClassicSelectProps } from "./types"
3
+
4
+ export type ClassicSelectProps = BaseClassicSelectProps & {
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 ClassicSelectProps = Base.ClassicSelectProps &
5
+ Omit<JSX.SelectHTMLAttributes<HTMLSelectElement>, "size">
@@ -0,0 +1,5 @@
1
+ import type * as Base from "./types"
2
+ import type { SvelteHTMLElements } from "svelte/elements"
3
+
4
+ export type ClassicSelectProps = Base.ClassicSelectProps &
5
+ Omit<SvelteHTMLElements["select"], "size">
@@ -0,0 +1,15 @@
1
+ export type Item = {
2
+ text: string
3
+ value: any
4
+ }
5
+
6
+ export type ClassicSelectProps = {
7
+ [key: string]: any
8
+ error?: boolean
9
+ id?: string
10
+ items?: Item[]
11
+ label?: string
12
+ size?: "small"
13
+ endText?: string
14
+ variant?: "outlined" | "filled"
15
+ }
@@ -1,8 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- }
2
+ import type { DescriptionProps as Props } from "./types.astro"
6
3
 
7
4
  const { class: className, ...rest } = Astro.props
8
5
  ---
@@ -0,0 +1,12 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ defineProps<Props>()
5
+ defineSlots<Slots>()
6
+ </script>
7
+
8
+ <template>
9
+ <dd :class="['ui-description', $props.class]">
10
+ <slot></slot>
11
+ </dd>
12
+ </template>
@@ -1,9 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- bordered?: boolean | "dotted"
5
- class?: string
6
- }
2
+ import type { Props } from "./types.astro"
7
3
 
8
4
  export const title = "Description List"
9
5
 
@@ -0,0 +1,23 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ const { bordered } = defineProps<Props>()
5
+ defineSlots<Slots>()
6
+
7
+ defineOptions({
8
+ inheritAttrs: false,
9
+ })
10
+ </script>
11
+
12
+ <template>
13
+ <dl
14
+ :class="[
15
+ 'ui-description-list',
16
+ { 'ui-bordered': bordered, 'ui-dotted': bordered === 'dotted' },
17
+ $props.class,
18
+ ]"
19
+ v-bind="$attrs"
20
+ >
21
+ <slot></slot>
22
+ </dl>
23
+ </template>
@@ -1,8 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- }
2
+ import type { ItemProps as Props } from "./types.astro"
6
3
 
7
4
  const { class: className, ...rest } = Astro.props
8
5
  ---
@@ -0,0 +1,12 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ defineProps<Props>()
5
+ defineSlots<Slots>()
6
+ </script>
7
+
8
+ <template>
9
+ <div :class="['ui-item', $props.class]">
10
+ <slot></slot>
11
+ </div>
12
+ </template>
@@ -1,8 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- }
2
+ import type { TermProps as Props } from "./types.astro"
6
3
 
7
4
  const { class: className, ...rest } = Astro.props
8
5
  ---
@@ -0,0 +1,12 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ defineProps<Props>()
5
+ defineSlots<Slots>()
6
+ </script>
7
+
8
+ <template>
9
+ <dt :class="['ui-term', $props.class]">
10
+ <slot></slot>
11
+ </dt>
12
+ </template>
@@ -0,0 +1,10 @@
1
+ import type * as Base from "./types"
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ export type Props = Base.Props & HTMLAttributes<"dl">
5
+
6
+ export type TermProps = Base.Props & HTMLAttributes<"dt">
7
+
8
+ export type DescriptionProps = Base.Props & HTMLAttributes<"dd">
9
+
10
+ export type ItemProps = Base.Props & HTMLAttributes<"div">
@@ -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,4 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props & JSX.HTMLAttributes<HTMLDListElement>
@@ -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["dl"]
@@ -0,0 +1,3 @@
1
+ export type Props = {
2
+ bordered?: boolean | "dotted"
3
+ }
@@ -1,10 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- actionsAlign?: "start" | "end"
5
- class?: string
6
- closedby?: "any" | "closerequest" | "none"
7
- }
2
+ import type { Props } from "./types.astro"
8
3
 
9
4
  export const title = "Dialog"
10
5
 
@@ -0,0 +1,35 @@
1
+ <script setup lang="ts">
2
+ import type { Props, Slots } from "./types.d.vue"
3
+
4
+ const { actionsAlign } = defineProps<Props>()
5
+
6
+ defineOptions({
7
+ inheritAttrs: false,
8
+ })
9
+
10
+ const slots = defineSlots<Slots>()
11
+ </script>
12
+
13
+ <template>
14
+ <dialog
15
+ :class="['ui-dialog', 'ui-card', 'ui-elevated', $props.class]"
16
+ v-bind="$attrs"
17
+ >
18
+ <hgroup v-if="slots.header">
19
+ <slot name="header"></slot>
20
+ </hgroup>
21
+
22
+ <div v-if="slots.content" class="ui-content">
23
+ <slot name="content"></slot>
24
+ </div>
25
+
26
+ <slot></slot>
27
+
28
+ <div
29
+ v-if="slots.actions"
30
+ :class="['ui-actions', actionsAlign && `ui-align-${actionsAlign}`]"
31
+ >
32
+ <slot name="actions"></slot>
33
+ </div>
34
+ </dialog>
35
+ </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<"dialog">
@@ -0,0 +1,10 @@
1
+ import type { HTMLAttributes, Slot } from "vue"
2
+ import type { Props as BaseProps, Slots as BaseSlots } from "./types"
3
+
4
+ export type Props = BaseProps & {
5
+ class?: HTMLAttributes["class"]
6
+ }
7
+
8
+ export type Slots = BaseSlots<Slot> & {
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
+ Partial<Base.Slots<JSX.Element>> &
6
+ JSX.DialogHtmlAttributes<HTMLDialogElement> & {
7
+ closedby?: "any" | "none" | "closerequest"
8
+ }
@@ -0,0 +1,7 @@
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 & Snippets & SvelteHTMLElements["dialog"]
@@ -0,0 +1,10 @@
1
+ export type Props = {
2
+ actionsAlign?: "start" | "end"
3
+ }
4
+
5
+ export type Slots<S> = {
6
+ actions?: S
7
+ children?: S
8
+ content?: S
9
+ header?: string | S
10
+ }
@@ -1,11 +1,6 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- variant?: "tonal" | "filled" | "primary"
6
- }
7
-
8
2
  export const title = "Divider"
3
+ import type { Props } from "./types.astro"
9
4
 
10
5
  const { class: className, variant, ...rest } = Astro.props
11
6
  const variantClass = variant ? `border-${variant}` : ""
@@ -0,0 +1,12 @@
1
+ <script setup lang="ts">
2
+ import type { Props } from "./types.d.vue"
3
+
4
+ const { variant } = defineProps<Props>()
5
+ const variantClass = variant ? `border-${variant}` : ""
6
+ </script>
7
+
8
+ <template>
9
+ <hr
10
+ :class="['ui-divider', $props.class, variantClass && `ui-${variantClass}`]"
11
+ />
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<"hr">
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,4 @@
1
+ import type * as Base from "./types"
2
+ import type { JSX } from "solid-js"
3
+
4
+ export type Props = Base.Props & JSX.HTMLAttributes<HTMLHRElement>
@@ -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["hr"]
@@ -0,0 +1,3 @@
1
+ export type Props = {
2
+ variant?: "tonal" | "filled" | "primary"
3
+ }
@@ -1,13 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- backdrop?: "transparent" | "blurred"
5
- class?: string
6
- closedby?: "any" | "closerequest" | "none"
7
- id?: string
8
- scrollLock?: boolean
9
- side?: "inline-start" | "inline-end" | "block-start" | "block-end"
10
- }
2
+ import type { Props } from "./types.astro"
11
3
 
12
4
  export const title = "Drawer"
13
5
 
@@ -41,9 +33,15 @@ const drawerId = id || $id("drawer")
41
33
  >
42
34
  {Astro.slots.has("header") && <slot name="header" />}
43
35
 
44
- <div class="ui-content">
45
- <slot name="content" />
46
- </div>
36
+ {
37
+ Astro.slots.has("content") && (
38
+ <div class="ui-content">
39
+ <slot name="content" />
40
+ </div>
41
+ )
42
+ }
43
+
44
+ <slot />
47
45
 
48
46
  {Astro.slots.has("footer") && <slot name="footer" />}
49
47
  </dialog>
@@ -0,0 +1,46 @@
1
+ <script setup lang="ts">
2
+ import { useId } from "vue"
3
+ import type { DrawerSlots, Props } from "./types.d.vue"
4
+
5
+ const {
6
+ backdrop = "blurred",
7
+ closedby = "any",
8
+ id,
9
+ scrollLock = true,
10
+ side = "inline-start",
11
+ } = defineProps<Props>()
12
+ const slots = defineSlots<DrawerSlots>()
13
+
14
+ defineOptions({
15
+ inheritAttrs: false,
16
+ })
17
+
18
+ const drawerId = id || useId()
19
+ </script>
20
+
21
+ <template>
22
+ <dialog
23
+ :id="drawerId"
24
+ :class="[
25
+ 'ui-drawer',
26
+ side && `ui-${side}`,
27
+ {
28
+ 'ui-backdrop-transparent': backdrop === 'transparent',
29
+ 'ui-scroll-lock': scrollLock,
30
+ },
31
+ $props.class,
32
+ ]"
33
+ :closedby="closedby"
34
+ v-bind="$attrs"
35
+ >
36
+ <slot v-if="slots.header" name="header"></slot>
37
+
38
+ <div v-if="slots.content" class="ui-content">
39
+ <slot name="content"></slot>
40
+ </div>
41
+
42
+ <slot></slot>
43
+
44
+ <slot v-if="slots.footer" name="footer"></slot>
45
+ </dialog>
46
+ </template>
@@ -1,8 +1,5 @@
1
1
  ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- }
2
+ import type { DrawerFooterProps as Props } from "./types.astro"
6
3
 
7
4
  export const title = "Drawer Footer"
8
5