diff --git a/crates/leptos/src/chip.rs b/crates/leptos/src/chip.rs index 1e38387..ed87320 100644 --- a/crates/leptos/src/chip.rs +++ b/crates/leptos/src/chip.rs @@ -8,6 +8,7 @@ use crate::icons::{Location, StarBold}; pub enum Variant { #[default] Featured, + Official, Numeric, Description, Location, diff --git a/crates/leptos/src/input.rs b/crates/leptos/src/input.rs index aa7054e..9c1408e 100644 --- a/crates/leptos/src/input.rs +++ b/crates/leptos/src/input.rs @@ -12,7 +12,11 @@ pub fn Input( #[prop(into)] disabled: ReadSignal, #[prop(into, optional)] class: String, #[prop(into, optional)] error_message: String, - #[prop(into)] icon: Option, + #[prop(into, optional)] placeholder: String, + #[prop(into, optional, default = "text".to_string())] r#type: String, + #[prop(into, optional)] name: String, + #[prop(into, optional)] value: String, + #[prop(into, optional)] icon: Option, ) -> impl IntoView { let input_class = crate::tw!( concat!(BASE_CLASS, "-input"), @@ -29,6 +33,10 @@ pub fn Input( {has_error.get().then_some( diff --git a/js/react/lib/components/chip/chip.const.ts b/js/react/lib/components/chip/chip.const.ts index 33aaaee..90e465e 100644 --- a/js/react/lib/components/chip/chip.const.ts +++ b/js/react/lib/components/chip/chip.const.ts @@ -2,6 +2,7 @@ import { Location, StarBold } from "@/icons"; export const variants = { featured: "rustlanges-chip--featured", + official: "rustlanges-chip--official", numeric: "rustlanges-chip--numeric", description: "rustlanges-chip--description", location: "rustlanges-chip--location", @@ -12,6 +13,7 @@ export type ChipVariants = keyof typeof variants; export const icons = { featured: StarBold, + official: null, numeric: null, description: null, location: Location, diff --git a/js/react/lib/components/chip/chip.showcase.tsx b/js/react/lib/components/chip/chip.showcase.tsx index 0ab44af..6ae3cd8 100644 --- a/js/react/lib/components/chip/chip.showcase.tsx +++ b/js/react/lib/components/chip/chip.showcase.tsx @@ -6,7 +6,14 @@ registerCase("Chip", { variant: { kind: "string", default: "featured", - options: ["featured", "numeric", "description", "location", "small"], + options: [ + "featured", + "official", + "numeric", + "description", + "location", + "small", + ], }, label: { kind: "string", diff --git a/js/react/lib/components/input-search/input-search.component.tsx b/js/react/lib/components/input-search/input-search.component.tsx index 5423313..803fff9 100644 --- a/js/react/lib/components/input-search/input-search.component.tsx +++ b/js/react/lib/components/input-search/input-search.component.tsx @@ -4,94 +4,97 @@ import { Search } from "@/icons/search"; import { cn } from "@/utils/tw-merge"; import { Fragment } from "react/jsx-runtime"; import { Tag } from "../tag"; -import { InputHTMLAttributes } from "react"; +import { forwardRef, InputHTMLAttributes } from "react"; -type Option = { label: string; value: string }; -type InputSearchProps = { - filters?: Array