summaryrefslogtreecommitdiff
path: root/artifacts-from-claude/select-examples.html
diff options
context:
space:
mode:
Diffstat (limited to 'artifacts-from-claude/select-examples.html')
-rw-r--r--artifacts-from-claude/select-examples.html126
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