summaryrefslogtreecommitdiff
path: root/artifacts-from-claude/select-examples.html
blob: 2142fa0b4962a6dd56fb6d852ecfc8b180624cb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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>
  );
}