Skip to content

Commit 3d17717

Browse files
feat(fieldset): add fieldset component
1 parent a7a250a commit 3d17717

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

lib/input/fieldset/Fieldset.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import type { Component, JSXElement } from "solid-js"
2+
import { splitProps } from "solid-js"
3+
import { classMerge } from "~ui/utils/classMerge"
4+
import type { MayHaveChildren } from "~ui/utils/MayHaveChildren"
5+
import type { MayHaveSubtitle } from "~ui/utils/MayHaveSubtitle"
6+
import type { MayHaveTitle } from "~ui/utils/MayHaveTitle"
7+
import { classesFieldset } from "./classesFieldset"
8+
9+
export interface FieldsetProps extends MayHaveChildren, MayHaveTitle, MayHaveSubtitle {
10+
class?: string
11+
titleChildren?: JSXElement
12+
}
13+
14+
export const Fieldset: Component<FieldsetProps> = (p) => {
15+
const [s, rest] = splitProps(p, ["children", "title", "titleClass", "titleChildren", "subtitleClass", "class"])
16+
17+
return (
18+
<fieldset class={classMerge(classesFieldset, s.class)} {...rest}>
19+
<legend class={classMerge("px-1", s.titleClass)}>{s.titleChildren ?? s.title}</legend>
20+
{s.children}
21+
</fieldset>
22+
)
23+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const classesFieldset = "rounded-lg border border-solid border-gray-300 dark:border-gray-700 p-3"

0 commit comments

Comments
 (0)