diff options
Diffstat (limited to 'artifacts-from-claude/select-examples.html')
| -rw-r--r-- | artifacts-from-claude/select-examples.html | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/artifacts-from-claude/select-examples.html b/artifacts-from-claude/select-examples.html new file mode 100644 index 0000000..2142fa0 --- /dev/null +++ b/artifacts-from-claude/select-examples.html @@ -0,0 +1,126 @@ +import React, { useState } from 'react'; + +export default function SelectExamples() { + const [basicValue, setBasicValue] = useState(''); + const [multiValue, setMultiValue] = useState([]); + const [groupValue, setGroupValue] = useState(''); + + return ( + <div className="space-y-8 p-6 max-w-2xl mx-auto"> + {/* Basic Select */} + <div className="space-y-2"> + <h3 className="text-lg font-semibold">Basic Select</h3> + <select + value={basicValue} + onChange={(e) => setBasicValue(e.target.value)} + className="w-full p-2 border rounded" + > + <option value="">Choose an option...</option> + <option value="1">Option 1</option> + <option value="2" disabled>Option 2 (Disabled)</option> + <option value="3">Option 3</option> + <option value="4" selected>Option 4 (Pre-selected)</option> + </select> + <p className="text-sm text-gray-600">Selected value: {basicValue}</p> + + <pre className="bg-gray-100 p-4 rounded text-sm"> +{`<select> + <option value="">Choose an option...</option> + <option value="1">Option 1</option> + <option value="2" disabled>Option 2 (Disabled)</option> + <option value="3">Option 3</option> + <option value="4" selected>Option 4</option> +</select>`} + </pre> + </div> + + {/* Multiple Select */} + <div className="space-y-2"> + <h3 className="text-lg font-semibold">Multiple Select</h3> + <select + multiple + value={multiValue} + onChange={(e) => setMultiValue(Array.from(e.target.selectedOptions, option => option.value))} + className="w-full p-2 border rounded" + size="4" + > + <option value="red">Red</option> + <option value="blue">Blue</option> + <option value="green">Green</option> + <option value="yellow">Yellow</option> + </select> + <p className="text-sm text-gray-600">Selected values: {multiValue.join(', ')}</p> + + <pre className="bg-gray-100 p-4 rounded text-sm"> +{`<select multiple size="4"> + <option value="red">Red</option> + <option value="blue">Blue</option> + <option value="green">Green</option> + <option value="yellow">Yellow</option> +</select>`} + </pre> + </div> + + {/* Option Groups */} + <div className="space-y-2"> + <h3 className="text-lg font-semibold">Option Groups</h3> + <select + value={groupValue} + onChange={(e) => setGroupValue(e.target.value)} + className="w-full p-2 border rounded" + > + <option value="">Select a pet...</option> + <optgroup label="Dogs"> + <option value="labrador">Labrador</option> + <option value="poodle">Poodle</option> + <option value="bulldog">Bulldog</option> + </optgroup> + <optgroup label="Cats"> + <option value="siamese">Siamese</option> + <option value="persian">Persian</option> + <option value="maine-coon">Maine Coon</option> + </optgroup> + </select> + <p className="text-sm text-gray-600">Selected value: {groupValue}</p> + + <pre className="bg-gray-100 p-4 rounded text-sm"> +{`<select> + <option value="">Select a pet...</option> + <optgroup label="Dogs"> + <option value="labrador">Labrador</option> + <option value="poodle">Poodle</option> + <option value="bulldog">Bulldog</option> + </optgroup> + <optgroup label="Cats"> + <option value="siamese">Siamese</option> + <option value="persian">Persian</option> + <option value="maine-coon">Maine Coon</option> + </optgroup> +</select>`} + </pre> + </div> + + {/* Key Attributes Reference */} + <div className="space-y-2"> + <h3 className="text-lg font-semibold">Key Attributes Reference</h3> + <div className="bg-gray-100 p-4 rounded"> + <p className="font-medium">Select attributes:</p> + <ul className="list-disc list-inside space-y-1 text-sm"> + <li><code className="bg-gray-200 px-1">multiple</code> - Allow multiple selections</li> + <li><code className="bg-gray-200 px-1">size</code> - Number of visible options</li> + <li><code className="bg-gray-200 px-1">disabled</code> - Disable the entire select</li> + <li><code className="bg-gray-200 px-1">required</code> - Make selection required</li> + <li><code className="bg-gray-200 px-1">name</code> - Form field name</li> + </ul> + + <p className="font-medium mt-4">Option attributes:</p> + <ul className="list-disc list-inside space-y-1 text-sm"> + <li><code className="bg-gray-200 px-1">value</code> - Option's value</li> + <li><code className="bg-gray-200 px-1">selected</code> - Pre-select the option</li> + <li><code className="bg-gray-200 px-1">disabled</code> - Disable specific option</li> + </ul> + </div> + </div> + </div> + ); +}
\ No newline at end of file |
