index.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charSet="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1" />
  7. <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
  8. <link rel="icon" type="image/png" sizes="32x32" href="https://headlessui.dev/favicon-32x32.png" />
  9. <link rel="icon" type="image/png" sizes="16x16" href="https://headlessui.dev/favicon-16x16.png" />
  10. <script src="/packages/intersect/dist/cdn.js" defer></script>
  11. <script src="/packages/morph/dist/cdn.js" defer></script>
  12. <script src="/packages/history/dist/cdn.js"></script>
  13. <script src="/packages/persist/dist/cdn.js"></script>
  14. <script src="/packages/focus/dist/cdn.js"></script>
  15. <script src="/packages/mask/dist/cdn.js"></script>
  16. <script src="/packages/ui/dist/cdn.js" defer></script>
  17. <script src="/packages/alpinejs/dist/cdn.js" defer></script>
  18. <script src="//cdn.tailwindcss.com"></script>
  19. <title>Listbox</title>
  20. </head>
  21. <body>
  22. <div class="flex flex-col h-screen overflow-hidden font-sans antialiased text-gray-900 bg-gray-700">
  23. <div x-data="{ selected: 'Wade Cooper' }" class="flex justify-center w-screen h-full p-12 bg-gray-50">
  24. <div class="w-full max-w-xs mx-auto">
  25. <div class="flex justify-between mb-8">
  26. <button class="underline" @click="selected = Arlene Mccoy">Change value</button>
  27. </div>
  28. <div x-listbox name="something" x-model="selected" class="space-y-1">
  29. <label x-listbox:label class="block text-sm font-medium leading-5 text-gray-700 mb-1">
  30. Assigned to
  31. </label>
  32. <div class="relative">
  33. <span class="inline-block w-full rounded-md shadow-sm">
  34. <button x-listbox:button class="relative w-full py-2 pl-3 pr-10 text-left transition duration-150 ease-in-out bg-white border border-gray-300 rounded-md cursor-default focus:outline-none focus:shadow-outline-blue focus:border-blue-300 sm:text-sm sm:leading-5">
  35. <span class="block truncate" x-text="selected"></span>
  36. <span class="absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none">
  37. <svg class="w-5 h-5 text-gray-400" viewBox="0 0 20 20" fill="none" stroke="currentColor">
  38. <path d="M7 7l3-3 3 3m0 6l-3 3-3-3" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
  39. </svg>
  40. </span>
  41. </button>
  42. </span>
  43. <div class="absolute w-full mt-1 bg-white rounded-md shadow-lg">
  44. <ul x-listbox:options class="py-1 overflow-auto text-base leading-6 rounded-md shadow-xs max-h-60 focus:outline-none sm:text-sm sm:leading-5">
  45. <li
  46. x-listbox:option value="Wade Cooper"
  47. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  48. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  49. >
  50. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Wade Cooper</span>
  51. <span
  52. x-show="$listboxOption.isSelected"
  53. class="absolute inset-y-0 right-0 flex items-center pr-4"
  54. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  55. >
  56. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  57. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  58. </svg>
  59. </span>
  60. </li>
  61. <li
  62. x-listbox:option value="Arlene Mccoy"
  63. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  64. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  65. >
  66. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Arlene Mccoy</span>
  67. <span
  68. x-show="$listboxOption.isSelected"
  69. class="absolute inset-y-0 right-0 flex items-center pr-4"
  70. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  71. >
  72. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  73. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  74. </svg>
  75. </span>
  76. </li>
  77. <li
  78. x-listbox:option value="Devon Webb"
  79. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  80. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  81. >
  82. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Devon Webb</span>
  83. <span
  84. x-show="$listboxOption.isSelected"
  85. class="absolute inset-y-0 right-0 flex items-center pr-4"
  86. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  87. >
  88. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  89. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  90. </svg>
  91. </span>
  92. </li>
  93. <li
  94. x-listbox:option value="Tom Cook"
  95. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  96. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  97. >
  98. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Tom Cook</span>
  99. <span
  100. x-show="$listboxOption.isSelected"
  101. class="absolute inset-y-0 right-0 flex items-center pr-4"
  102. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  103. >
  104. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  105. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  106. </svg>
  107. </span>
  108. </li>
  109. <li
  110. x-listbox:option value="Tanya Fox"
  111. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  112. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  113. >
  114. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Tanya Fox</span>
  115. <span
  116. x-show="$listboxOption.isSelected"
  117. class="absolute inset-y-0 right-0 flex items-center pr-4"
  118. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  119. >
  120. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  121. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  122. </svg>
  123. </span>
  124. </li>
  125. <li
  126. x-listbox:option value="Hellen Schmidt"
  127. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  128. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  129. >
  130. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Hellen Schmidt</span>
  131. <span
  132. x-show="$listboxOption.isSelected"
  133. class="absolute inset-y-0 right-0 flex items-center pr-4"
  134. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  135. >
  136. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  137. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  138. </svg>
  139. </span>
  140. </li>
  141. <li
  142. x-listbox:option value="Caroline Schultz"
  143. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  144. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  145. >
  146. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Caroline Schultz</span>
  147. <span
  148. x-show="$listboxOption.isSelected"
  149. class="absolute inset-y-0 right-0 flex items-center pr-4"
  150. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  151. >
  152. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  153. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  154. </svg>
  155. </span>
  156. </li>
  157. <li
  158. x-listbox:option value="Mason Heaney"
  159. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  160. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  161. >
  162. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Mason Heaney</span>
  163. <span
  164. x-show="$listboxOption.isSelected"
  165. class="absolute inset-y-0 right-0 flex items-center pr-4"
  166. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  167. >
  168. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  169. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  170. </svg>
  171. </span>
  172. </li>
  173. <li
  174. x-listbox:option value="Claudie Smitham"
  175. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  176. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  177. >
  178. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Claudie Smitham</span>
  179. <span
  180. x-show="$listboxOption.isSelected"
  181. class="absolute inset-y-0 right-0 flex items-center pr-4"
  182. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  183. >
  184. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  185. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  186. </svg>
  187. </span>
  188. </li>
  189. <li
  190. x-listbox:option value="Emil Schaefer"
  191. class="relative py-2 pl-3 cursor-default select-none pr-9 focus:outline-none"
  192. :class="[$listboxOption.isActive ? 'text-white bg-indigo-600' : 'text-gray-900'].filter(Boolean)"
  193. >
  194. <span class="block truncate" :class="$listboxOption.isSelected ? 'font-semibold' : 'font-normal'">Emil Schaefer</span>
  195. <span
  196. x-show="$listboxOption.isSelected"
  197. class="absolute inset-y-0 right-0 flex items-center pr-4"
  198. :class="$listboxOption.isActive ? 'text-white' : 'text-indigo-600'"
  199. >
  200. <svg class="w-5 h-5" viewbox="0 0 20 20" fill="currentColor">
  201. <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
  202. </svg>
  203. </span>
  204. </li>
  205. </ul>
  206. </div>
  207. </div>
  208. </div>
  209. </div>
  210. </div>
  211. </div>
  212. </body>
  213. </html>