@ismail-elkorchi/ui-primitives 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/README.md +216 -45
  2. package/dist/custom-elements.json +10838 -3418
  3. package/dist/index.d.ts +52 -28
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +41 -26
  6. package/dist/index.js.map +1 -1
  7. package/dist/register.d.ts +41 -26
  8. package/dist/register.d.ts.map +1 -1
  9. package/dist/register.js +41 -26
  10. package/dist/register.js.map +1 -1
  11. package/dist/src/atomic/content/uik-badge/element.d.ts +11 -2
  12. package/dist/src/atomic/content/uik-badge/element.d.ts.map +1 -1
  13. package/dist/src/atomic/content/uik-badge/element.js +14 -5
  14. package/dist/src/atomic/content/uik-badge/element.js.map +1 -1
  15. package/dist/src/atomic/content/uik-badge/index.d.ts +1 -1
  16. package/dist/src/atomic/content/uik-badge/index.d.ts.map +1 -1
  17. package/dist/src/atomic/content/uik-badge/index.js +1 -1
  18. package/dist/src/atomic/content/uik-badge/index.js.map +1 -1
  19. package/dist/src/atomic/content/uik-badge/styles.d.ts.map +1 -1
  20. package/dist/src/atomic/content/uik-badge/styles.js +6 -3
  21. package/dist/src/atomic/content/uik-badge/styles.js.map +1 -1
  22. package/dist/src/atomic/content/uik-code-block/element.d.ts +61 -0
  23. package/dist/src/atomic/content/uik-code-block/element.d.ts.map +1 -0
  24. package/dist/src/atomic/content/uik-code-block/element.js +153 -0
  25. package/dist/src/atomic/content/uik-code-block/element.js.map +1 -0
  26. package/dist/src/atomic/content/uik-code-block/index.d.ts +3 -0
  27. package/dist/src/atomic/content/uik-code-block/index.d.ts.map +1 -0
  28. package/dist/src/atomic/content/uik-code-block/index.js +2 -0
  29. package/dist/src/atomic/content/uik-code-block/index.js.map +1 -0
  30. package/dist/src/atomic/content/uik-code-block/styles.d.ts +2 -0
  31. package/dist/src/atomic/content/uik-code-block/styles.d.ts.map +1 -0
  32. package/dist/src/atomic/content/uik-code-block/styles.js +90 -0
  33. package/dist/src/atomic/content/uik-code-block/styles.js.map +1 -0
  34. package/dist/src/atomic/content/uik-description-list/element.d.ts +34 -0
  35. package/dist/src/atomic/content/uik-description-list/element.d.ts.map +1 -0
  36. package/dist/src/atomic/content/uik-description-list/element.js +54 -0
  37. package/dist/src/atomic/content/uik-description-list/element.js.map +1 -0
  38. package/dist/src/atomic/content/uik-description-list/index.d.ts +2 -0
  39. package/dist/src/atomic/content/uik-description-list/index.d.ts.map +1 -0
  40. package/dist/src/atomic/content/uik-description-list/index.js +2 -0
  41. package/dist/src/atomic/content/uik-description-list/index.js.map +1 -0
  42. package/dist/src/atomic/content/uik-description-list/styles.d.ts +2 -0
  43. package/dist/src/atomic/content/uik-description-list/styles.d.ts.map +1 -0
  44. package/dist/src/atomic/content/uik-description-list/styles.js +46 -0
  45. package/dist/src/atomic/content/uik-description-list/styles.js.map +1 -0
  46. package/dist/src/atomic/content/uik-heading/element.d.ts +14 -2
  47. package/dist/src/atomic/content/uik-heading/element.d.ts.map +1 -1
  48. package/dist/src/atomic/content/uik-heading/element.js +17 -5
  49. package/dist/src/atomic/content/uik-heading/element.js.map +1 -1
  50. package/dist/src/atomic/content/uik-heading/index.d.ts +1 -1
  51. package/dist/src/atomic/content/uik-heading/index.d.ts.map +1 -1
  52. package/dist/src/atomic/content/uik-heading/index.js +1 -1
  53. package/dist/src/atomic/content/uik-heading/index.js.map +1 -1
  54. package/dist/src/atomic/content/uik-heading/styles.js +13 -13
  55. package/dist/src/atomic/content/uik-heading/styles.js.map +1 -1
  56. package/dist/src/atomic/content/uik-icon/element.d.ts +13 -3
  57. package/dist/src/atomic/content/uik-icon/element.d.ts.map +1 -1
  58. package/dist/src/atomic/content/uik-icon/element.js +33 -14
  59. package/dist/src/atomic/content/uik-icon/element.js.map +1 -1
  60. package/dist/src/atomic/content/uik-icon/index.d.ts +1 -1
  61. package/dist/src/atomic/content/uik-icon/index.d.ts.map +1 -1
  62. package/dist/src/atomic/content/uik-icon/index.js +1 -1
  63. package/dist/src/atomic/content/uik-icon/index.js.map +1 -1
  64. package/dist/src/atomic/content/uik-icon/styles.js +10 -10
  65. package/dist/src/atomic/content/uik-icon/styles.js.map +1 -1
  66. package/dist/src/atomic/content/uik-text/element.d.ts +20 -5
  67. package/dist/src/atomic/content/uik-text/element.d.ts.map +1 -1
  68. package/dist/src/atomic/content/uik-text/element.js +27 -12
  69. package/dist/src/atomic/content/uik-text/element.js.map +1 -1
  70. package/dist/src/atomic/content/uik-text/index.d.ts +1 -1
  71. package/dist/src/atomic/content/uik-text/index.d.ts.map +1 -1
  72. package/dist/src/atomic/content/uik-text/index.js +1 -1
  73. package/dist/src/atomic/content/uik-text/index.js.map +1 -1
  74. package/dist/src/atomic/content/uik-text/styles.js +13 -13
  75. package/dist/src/atomic/content/uik-text/styles.js.map +1 -1
  76. package/dist/src/atomic/content/uik-visually-hidden/element.d.ts +7 -1
  77. package/dist/src/atomic/content/uik-visually-hidden/element.d.ts.map +1 -1
  78. package/dist/src/atomic/content/uik-visually-hidden/element.js +11 -7
  79. package/dist/src/atomic/content/uik-visually-hidden/element.js.map +1 -1
  80. package/dist/src/atomic/content/uik-visually-hidden/index.d.ts +1 -1
  81. package/dist/src/atomic/content/uik-visually-hidden/index.d.ts.map +1 -1
  82. package/dist/src/atomic/content/uik-visually-hidden/index.js +1 -1
  83. package/dist/src/atomic/content/uik-visually-hidden/index.js.map +1 -1
  84. package/dist/src/atomic/content/uik-visually-hidden/styles.d.ts.map +1 -1
  85. package/dist/src/atomic/content/uik-visually-hidden/styles.js +3 -2
  86. package/dist/src/atomic/content/uik-visually-hidden/styles.js.map +1 -1
  87. package/dist/src/atomic/control/uik-button/element.d.ts +42 -4
  88. package/dist/src/atomic/control/uik-button/element.d.ts.map +1 -1
  89. package/dist/src/atomic/control/uik-button/element.js +167 -23
  90. package/dist/src/atomic/control/uik-button/element.js.map +1 -1
  91. package/dist/src/atomic/control/uik-button/index.d.ts +1 -1
  92. package/dist/src/atomic/control/uik-button/index.d.ts.map +1 -1
  93. package/dist/src/atomic/control/uik-button/index.js +1 -1
  94. package/dist/src/atomic/control/uik-button/index.js.map +1 -1
  95. package/dist/src/atomic/control/uik-button/styles.d.ts.map +1 -1
  96. package/dist/src/atomic/control/uik-button/styles.js +56 -17
  97. package/dist/src/atomic/control/uik-button/styles.js.map +1 -1
  98. package/dist/src/atomic/control/uik-checkbox/element.d.ts +24 -1
  99. package/dist/src/atomic/control/uik-checkbox/element.d.ts.map +1 -1
  100. package/dist/src/atomic/control/uik-checkbox/element.js +69 -30
  101. package/dist/src/atomic/control/uik-checkbox/element.js.map +1 -1
  102. package/dist/src/atomic/control/uik-checkbox/index.d.ts +1 -1
  103. package/dist/src/atomic/control/uik-checkbox/index.d.ts.map +1 -1
  104. package/dist/src/atomic/control/uik-checkbox/index.js +1 -1
  105. package/dist/src/atomic/control/uik-checkbox/index.js.map +1 -1
  106. package/dist/src/atomic/control/uik-checkbox/styles.d.ts.map +1 -1
  107. package/dist/src/atomic/control/uik-checkbox/styles.js +5 -3
  108. package/dist/src/atomic/control/uik-checkbox/styles.js.map +1 -1
  109. package/dist/src/atomic/control/uik-input/element.d.ts +27 -1
  110. package/dist/src/atomic/control/uik-input/element.d.ts.map +1 -1
  111. package/dist/src/atomic/control/uik-input/element.js +90 -41
  112. package/dist/src/atomic/control/uik-input/element.js.map +1 -1
  113. package/dist/src/atomic/control/uik-input/index.d.ts +1 -1
  114. package/dist/src/atomic/control/uik-input/index.d.ts.map +1 -1
  115. package/dist/src/atomic/control/uik-input/index.js +1 -1
  116. package/dist/src/atomic/control/uik-input/index.js.map +1 -1
  117. package/dist/src/atomic/control/uik-input/styles.d.ts.map +1 -1
  118. package/dist/src/atomic/control/uik-input/styles.js +14 -5
  119. package/dist/src/atomic/control/uik-input/styles.js.map +1 -1
  120. package/dist/src/atomic/control/uik-link/element.d.ts +15 -1
  121. package/dist/src/atomic/control/uik-link/element.d.ts.map +1 -1
  122. package/dist/src/atomic/control/uik-link/element.js +31 -16
  123. package/dist/src/atomic/control/uik-link/element.js.map +1 -1
  124. package/dist/src/atomic/control/uik-link/index.d.ts +1 -1
  125. package/dist/src/atomic/control/uik-link/index.d.ts.map +1 -1
  126. package/dist/src/atomic/control/uik-link/index.js +1 -1
  127. package/dist/src/atomic/control/uik-link/index.js.map +1 -1
  128. package/dist/src/atomic/control/uik-link/styles.d.ts.map +1 -1
  129. package/dist/src/atomic/control/uik-link/styles.js +5 -3
  130. package/dist/src/atomic/control/uik-link/styles.js.map +1 -1
  131. package/dist/src/atomic/control/uik-pagination/element.d.ts +68 -0
  132. package/dist/src/atomic/control/uik-pagination/element.d.ts.map +1 -0
  133. package/dist/src/atomic/control/uik-pagination/element.js +222 -0
  134. package/dist/src/atomic/control/uik-pagination/element.js.map +1 -0
  135. package/dist/src/atomic/control/uik-pagination/index.d.ts +3 -0
  136. package/dist/src/atomic/control/uik-pagination/index.d.ts.map +1 -0
  137. package/dist/src/atomic/control/uik-pagination/index.js +2 -0
  138. package/dist/src/atomic/control/uik-pagination/index.js.map +1 -0
  139. package/dist/src/atomic/control/uik-pagination/styles.d.ts +2 -0
  140. package/dist/src/atomic/control/uik-pagination/styles.d.ts.map +1 -0
  141. package/dist/src/atomic/control/uik-pagination/styles.js +82 -0
  142. package/dist/src/atomic/control/uik-pagination/styles.js.map +1 -0
  143. package/dist/src/atomic/control/uik-radio/element.d.ts +22 -1
  144. package/dist/src/atomic/control/uik-radio/element.d.ts.map +1 -1
  145. package/dist/src/atomic/control/uik-radio/element.js +72 -33
  146. package/dist/src/atomic/control/uik-radio/element.js.map +1 -1
  147. package/dist/src/atomic/control/uik-radio/index.d.ts +1 -1
  148. package/dist/src/atomic/control/uik-radio/index.d.ts.map +1 -1
  149. package/dist/src/atomic/control/uik-radio/index.js +1 -1
  150. package/dist/src/atomic/control/uik-radio/index.js.map +1 -1
  151. package/dist/src/atomic/control/uik-radio/styles.d.ts.map +1 -1
  152. package/dist/src/atomic/control/uik-radio/styles.js +5 -3
  153. package/dist/src/atomic/control/uik-radio/styles.js.map +1 -1
  154. package/dist/src/atomic/control/uik-select/element.d.ts +21 -1
  155. package/dist/src/atomic/control/uik-select/element.d.ts.map +1 -1
  156. package/dist/src/atomic/control/uik-select/element.js +81 -39
  157. package/dist/src/atomic/control/uik-select/element.js.map +1 -1
  158. package/dist/src/atomic/control/uik-select/index.d.ts +1 -1
  159. package/dist/src/atomic/control/uik-select/index.d.ts.map +1 -1
  160. package/dist/src/atomic/control/uik-select/index.js +1 -1
  161. package/dist/src/atomic/control/uik-select/index.js.map +1 -1
  162. package/dist/src/atomic/control/uik-select/styles.d.ts.map +1 -1
  163. package/dist/src/atomic/control/uik-select/styles.js +7 -4
  164. package/dist/src/atomic/control/uik-select/styles.js.map +1 -1
  165. package/dist/src/atomic/control/uik-switch/element.d.ts +32 -1
  166. package/dist/src/atomic/control/uik-switch/element.d.ts.map +1 -1
  167. package/dist/src/atomic/control/uik-switch/element.js +78 -31
  168. package/dist/src/atomic/control/uik-switch/element.js.map +1 -1
  169. package/dist/src/atomic/control/uik-switch/index.d.ts +1 -1
  170. package/dist/src/atomic/control/uik-switch/index.d.ts.map +1 -1
  171. package/dist/src/atomic/control/uik-switch/index.js +1 -1
  172. package/dist/src/atomic/control/uik-switch/index.js.map +1 -1
  173. package/dist/src/atomic/control/uik-switch/styles.d.ts.map +1 -1
  174. package/dist/src/atomic/control/uik-switch/styles.js +12 -6
  175. package/dist/src/atomic/control/uik-switch/styles.js.map +1 -1
  176. package/dist/src/atomic/control/uik-textarea/element.d.ts +23 -1
  177. package/dist/src/atomic/control/uik-textarea/element.d.ts.map +1 -1
  178. package/dist/src/atomic/control/uik-textarea/element.js +77 -33
  179. package/dist/src/atomic/control/uik-textarea/element.js.map +1 -1
  180. package/dist/src/atomic/control/uik-textarea/index.d.ts +1 -1
  181. package/dist/src/atomic/control/uik-textarea/index.d.ts.map +1 -1
  182. package/dist/src/atomic/control/uik-textarea/index.js +1 -1
  183. package/dist/src/atomic/control/uik-textarea/index.js.map +1 -1
  184. package/dist/src/atomic/control/uik-textarea/styles.d.ts.map +1 -1
  185. package/dist/src/atomic/control/uik-textarea/styles.js +7 -4
  186. package/dist/src/atomic/control/uik-textarea/styles.js.map +1 -1
  187. package/dist/src/atomic/feedback/uik-alert/element.d.ts +13 -2
  188. package/dist/src/atomic/feedback/uik-alert/element.d.ts.map +1 -1
  189. package/dist/src/atomic/feedback/uik-alert/element.js +21 -8
  190. package/dist/src/atomic/feedback/uik-alert/element.js.map +1 -1
  191. package/dist/src/atomic/feedback/uik-alert/index.d.ts +1 -1
  192. package/dist/src/atomic/feedback/uik-alert/index.d.ts.map +1 -1
  193. package/dist/src/atomic/feedback/uik-alert/index.js +1 -1
  194. package/dist/src/atomic/feedback/uik-alert/index.js.map +1 -1
  195. package/dist/src/atomic/feedback/uik-alert/styles.d.ts.map +1 -1
  196. package/dist/src/atomic/feedback/uik-alert/styles.js +7 -6
  197. package/dist/src/atomic/feedback/uik-alert/styles.js.map +1 -1
  198. package/dist/src/atomic/feedback/uik-progress/element.d.ts +14 -1
  199. package/dist/src/atomic/feedback/uik-progress/element.d.ts.map +1 -1
  200. package/dist/src/atomic/feedback/uik-progress/element.js +27 -11
  201. package/dist/src/atomic/feedback/uik-progress/element.js.map +1 -1
  202. package/dist/src/atomic/feedback/uik-progress/index.d.ts +1 -1
  203. package/dist/src/atomic/feedback/uik-progress/index.d.ts.map +1 -1
  204. package/dist/src/atomic/feedback/uik-progress/index.js +1 -1
  205. package/dist/src/atomic/feedback/uik-progress/index.js.map +1 -1
  206. package/dist/src/atomic/feedback/uik-progress/styles.js +1 -1
  207. package/dist/src/atomic/feedback/uik-progress/styles.js.map +1 -1
  208. package/dist/src/atomic/feedback/uik-spinner/element.d.ts +13 -3
  209. package/dist/src/atomic/feedback/uik-spinner/element.d.ts.map +1 -1
  210. package/dist/src/atomic/feedback/uik-spinner/element.js +16 -6
  211. package/dist/src/atomic/feedback/uik-spinner/element.js.map +1 -1
  212. package/dist/src/atomic/feedback/uik-spinner/index.d.ts +1 -1
  213. package/dist/src/atomic/feedback/uik-spinner/index.d.ts.map +1 -1
  214. package/dist/src/atomic/feedback/uik-spinner/index.js +1 -1
  215. package/dist/src/atomic/feedback/uik-spinner/index.js.map +1 -1
  216. package/dist/src/atomic/feedback/uik-spinner/styles.d.ts.map +1 -1
  217. package/dist/src/atomic/feedback/uik-spinner/styles.js +13 -11
  218. package/dist/src/atomic/feedback/uik-spinner/styles.js.map +1 -1
  219. package/dist/src/atomic/layout/uik-box/element.d.ts +17 -2
  220. package/dist/src/atomic/layout/uik-box/element.d.ts.map +1 -1
  221. package/dist/src/atomic/layout/uik-box/element.js +20 -5
  222. package/dist/src/atomic/layout/uik-box/element.js.map +1 -1
  223. package/dist/src/atomic/layout/uik-box/index.d.ts +1 -1
  224. package/dist/src/atomic/layout/uik-box/index.d.ts.map +1 -1
  225. package/dist/src/atomic/layout/uik-box/index.js +1 -1
  226. package/dist/src/atomic/layout/uik-box/index.js.map +1 -1
  227. package/dist/src/atomic/layout/uik-box/styles.d.ts.map +1 -1
  228. package/dist/src/atomic/layout/uik-box/styles.js +14 -9
  229. package/dist/src/atomic/layout/uik-box/styles.js.map +1 -1
  230. package/dist/src/atomic/layout/uik-resizable-panels/element.d.ts +82 -0
  231. package/dist/src/atomic/layout/uik-resizable-panels/element.d.ts.map +1 -0
  232. package/dist/src/atomic/layout/uik-resizable-panels/element.js +422 -0
  233. package/dist/src/atomic/layout/uik-resizable-panels/element.js.map +1 -0
  234. package/dist/src/atomic/layout/uik-resizable-panels/index.d.ts +3 -0
  235. package/dist/src/atomic/layout/uik-resizable-panels/index.d.ts.map +1 -0
  236. package/dist/src/atomic/layout/uik-resizable-panels/index.js +2 -0
  237. package/dist/src/atomic/layout/uik-resizable-panels/index.js.map +1 -0
  238. package/dist/src/atomic/layout/uik-resizable-panels/styles.d.ts +2 -0
  239. package/dist/src/atomic/layout/uik-resizable-panels/styles.d.ts.map +1 -0
  240. package/dist/src/atomic/layout/uik-resizable-panels/styles.js +128 -0
  241. package/dist/src/atomic/layout/uik-resizable-panels/styles.js.map +1 -0
  242. package/dist/src/atomic/layout/uik-separator/element.d.ts +11 -2
  243. package/dist/src/atomic/layout/uik-separator/element.d.ts.map +1 -1
  244. package/dist/src/atomic/layout/uik-separator/element.js +21 -7
  245. package/dist/src/atomic/layout/uik-separator/element.js.map +1 -1
  246. package/dist/src/atomic/layout/uik-separator/index.d.ts +1 -1
  247. package/dist/src/atomic/layout/uik-separator/index.d.ts.map +1 -1
  248. package/dist/src/atomic/layout/uik-separator/index.js +1 -1
  249. package/dist/src/atomic/layout/uik-separator/index.js.map +1 -1
  250. package/dist/src/atomic/layout/uik-separator/styles.js +5 -5
  251. package/dist/src/atomic/layout/uik-separator/styles.js.map +1 -1
  252. package/dist/src/atomic/layout/uik-stack/element.d.ts +16 -5
  253. package/dist/src/atomic/layout/uik-stack/element.d.ts.map +1 -1
  254. package/dist/src/atomic/layout/uik-stack/element.js +19 -8
  255. package/dist/src/atomic/layout/uik-stack/element.js.map +1 -1
  256. package/dist/src/atomic/layout/uik-stack/index.d.ts +1 -1
  257. package/dist/src/atomic/layout/uik-stack/index.d.ts.map +1 -1
  258. package/dist/src/atomic/layout/uik-stack/index.js +1 -1
  259. package/dist/src/atomic/layout/uik-stack/index.js.map +1 -1
  260. package/dist/src/atomic/layout/uik-stack/styles.js +15 -15
  261. package/dist/src/atomic/layout/uik-stack/styles.js.map +1 -1
  262. package/dist/src/atomic/layout/uik-surface/element.d.ts +15 -2
  263. package/dist/src/atomic/layout/uik-surface/element.d.ts.map +1 -1
  264. package/dist/src/atomic/layout/uik-surface/element.js +18 -5
  265. package/dist/src/atomic/layout/uik-surface/element.js.map +1 -1
  266. package/dist/src/atomic/layout/uik-surface/index.d.ts +1 -1
  267. package/dist/src/atomic/layout/uik-surface/index.d.ts.map +1 -1
  268. package/dist/src/atomic/layout/uik-surface/index.js +1 -1
  269. package/dist/src/atomic/layout/uik-surface/index.js.map +1 -1
  270. package/dist/src/atomic/layout/uik-surface/styles.js +5 -5
  271. package/dist/src/atomic/layout/uik-surface/styles.js.map +1 -1
  272. package/dist/src/atomic/overlay/uik-dialog/element.d.ts +37 -1
  273. package/dist/src/atomic/overlay/uik-dialog/element.d.ts.map +1 -1
  274. package/dist/src/atomic/overlay/uik-dialog/element.js +101 -22
  275. package/dist/src/atomic/overlay/uik-dialog/element.js.map +1 -1
  276. package/dist/src/atomic/overlay/uik-dialog/index.d.ts +1 -1
  277. package/dist/src/atomic/overlay/uik-dialog/index.d.ts.map +1 -1
  278. package/dist/src/atomic/overlay/uik-dialog/index.js +1 -1
  279. package/dist/src/atomic/overlay/uik-dialog/index.js.map +1 -1
  280. package/dist/src/atomic/overlay/uik-dialog/styles.d.ts.map +1 -1
  281. package/dist/src/atomic/overlay/uik-dialog/styles.js +16 -11
  282. package/dist/src/atomic/overlay/uik-dialog/styles.js.map +1 -1
  283. package/dist/src/atomic/overlay/uik-popover/element.d.ts +34 -4
  284. package/dist/src/atomic/overlay/uik-popover/element.d.ts.map +1 -1
  285. package/dist/src/atomic/overlay/uik-popover/element.js +126 -42
  286. package/dist/src/atomic/overlay/uik-popover/element.js.map +1 -1
  287. package/dist/src/atomic/overlay/uik-popover/index.d.ts +1 -1
  288. package/dist/src/atomic/overlay/uik-popover/index.d.ts.map +1 -1
  289. package/dist/src/atomic/overlay/uik-popover/index.js +1 -1
  290. package/dist/src/atomic/overlay/uik-popover/index.js.map +1 -1
  291. package/dist/src/atomic/overlay/uik-popover/styles.d.ts +1 -1
  292. package/dist/src/atomic/overlay/uik-popover/styles.d.ts.map +1 -1
  293. package/dist/src/atomic/overlay/uik-popover/styles.js +24 -22
  294. package/dist/src/atomic/overlay/uik-popover/styles.js.map +1 -1
  295. package/dist/src/composed/collection/uik-listbox/combobox-styles.d.ts +2 -0
  296. package/dist/src/composed/collection/uik-listbox/combobox-styles.d.ts.map +1 -0
  297. package/dist/src/composed/collection/uik-listbox/combobox-styles.js +112 -0
  298. package/dist/src/composed/collection/uik-listbox/combobox-styles.js.map +1 -0
  299. package/dist/src/composed/collection/uik-listbox/element.d.ts +66 -0
  300. package/dist/src/composed/collection/uik-listbox/element.d.ts.map +1 -0
  301. package/dist/src/composed/collection/uik-listbox/element.js +348 -0
  302. package/dist/src/composed/collection/uik-listbox/element.js.map +1 -0
  303. package/dist/src/composed/collection/uik-listbox/index.d.ts +6 -0
  304. package/dist/src/composed/collection/uik-listbox/index.d.ts.map +1 -0
  305. package/dist/src/composed/collection/uik-listbox/index.js +4 -0
  306. package/dist/src/composed/collection/uik-listbox/index.js.map +1 -0
  307. package/dist/src/composed/collection/uik-listbox/option-styles.d.ts +2 -0
  308. package/dist/src/composed/collection/uik-listbox/option-styles.d.ts.map +1 -0
  309. package/dist/src/composed/collection/uik-listbox/option-styles.js +59 -0
  310. package/dist/src/composed/collection/uik-listbox/option-styles.js.map +1 -0
  311. package/dist/src/composed/collection/uik-listbox/styles.d.ts +2 -0
  312. package/dist/src/composed/collection/uik-listbox/styles.d.ts.map +1 -0
  313. package/dist/src/composed/collection/uik-listbox/styles.js +34 -0
  314. package/dist/src/composed/collection/uik-listbox/styles.js.map +1 -0
  315. package/dist/src/composed/collection/uik-listbox/uik-combobox.d.ts +95 -0
  316. package/dist/src/composed/collection/uik-listbox/uik-combobox.d.ts.map +1 -0
  317. package/dist/src/composed/collection/uik-listbox/uik-combobox.js +418 -0
  318. package/dist/src/composed/collection/uik-listbox/uik-combobox.js.map +1 -0
  319. package/dist/src/composed/collection/uik-listbox/uik-option.d.ts +31 -0
  320. package/dist/src/composed/collection/uik-listbox/uik-option.d.ts.map +1 -0
  321. package/dist/src/composed/collection/uik-listbox/uik-option.js +84 -0
  322. package/dist/src/composed/collection/uik-listbox/uik-option.js.map +1 -0
  323. package/dist/src/composed/collection/uik-menu/element.d.ts +82 -0
  324. package/dist/src/composed/collection/uik-menu/element.d.ts.map +1 -0
  325. package/dist/src/composed/collection/uik-menu/element.js +371 -0
  326. package/dist/src/composed/collection/uik-menu/element.js.map +1 -0
  327. package/dist/src/composed/collection/uik-menu/index.d.ts +4 -0
  328. package/dist/src/composed/collection/uik-menu/index.d.ts.map +1 -0
  329. package/dist/src/composed/collection/uik-menu/index.js +3 -0
  330. package/dist/src/composed/collection/uik-menu/index.js.map +1 -0
  331. package/dist/src/composed/collection/uik-menu/item-styles.d.ts +2 -0
  332. package/dist/src/composed/collection/uik-menu/item-styles.d.ts.map +1 -0
  333. package/dist/src/composed/collection/uik-menu/item-styles.js +54 -0
  334. package/dist/src/composed/collection/uik-menu/item-styles.js.map +1 -0
  335. package/dist/src/composed/collection/uik-menu/styles.d.ts +2 -0
  336. package/dist/src/composed/collection/uik-menu/styles.d.ts.map +1 -0
  337. package/dist/src/composed/collection/uik-menu/styles.js +27 -0
  338. package/dist/src/composed/collection/uik-menu/styles.js.map +1 -0
  339. package/dist/src/composed/collection/uik-menu/uik-menu-item.d.ts +29 -0
  340. package/dist/src/composed/collection/uik-menu/uik-menu-item.d.ts.map +1 -0
  341. package/dist/src/composed/collection/uik-menu/uik-menu-item.js +76 -0
  342. package/dist/src/composed/collection/uik-menu/uik-menu-item.js.map +1 -0
  343. package/dist/src/composed/collection/uik-menu.d.ts +2 -0
  344. package/dist/src/composed/collection/uik-menu.d.ts.map +1 -0
  345. package/dist/src/composed/collection/uik-menu.js +2 -0
  346. package/dist/src/composed/collection/uik-menu.js.map +1 -0
  347. package/dist/src/composed/collection/uik-menubar/element.d.ts +46 -0
  348. package/dist/src/composed/collection/uik-menubar/element.d.ts.map +1 -0
  349. package/dist/src/composed/collection/uik-menubar/element.js +332 -0
  350. package/dist/src/composed/collection/uik-menubar/element.js.map +1 -0
  351. package/dist/src/composed/collection/uik-menubar/index.d.ts +2 -0
  352. package/dist/src/composed/collection/uik-menubar/index.d.ts.map +1 -0
  353. package/dist/src/composed/collection/uik-menubar/index.js +2 -0
  354. package/dist/src/composed/collection/uik-menubar/index.js.map +1 -0
  355. package/dist/src/composed/collection/uik-menubar/styles.d.ts +2 -0
  356. package/dist/src/composed/collection/uik-menubar/styles.d.ts.map +1 -0
  357. package/dist/src/composed/collection/uik-menubar/styles.js +26 -0
  358. package/dist/src/composed/collection/uik-menubar/styles.js.map +1 -0
  359. package/dist/src/composed/collection/uik-nav/element.d.ts +21 -3
  360. package/dist/src/composed/collection/uik-nav/element.d.ts.map +1 -1
  361. package/dist/src/composed/collection/uik-nav/element.js +65 -35
  362. package/dist/src/composed/collection/uik-nav/element.js.map +1 -1
  363. package/dist/src/composed/collection/uik-nav/index.d.ts +2 -2
  364. package/dist/src/composed/collection/uik-nav/index.d.ts.map +1 -1
  365. package/dist/src/composed/collection/uik-nav/index.js +1 -1
  366. package/dist/src/composed/collection/uik-nav/index.js.map +1 -1
  367. package/dist/src/composed/collection/uik-nav/styles.d.ts.map +1 -1
  368. package/dist/src/composed/collection/uik-nav/styles.js +31 -26
  369. package/dist/src/composed/collection/uik-nav/styles.js.map +1 -1
  370. package/dist/src/composed/collection/uik-nav-rail/element.d.ts +62 -0
  371. package/dist/src/composed/collection/uik-nav-rail/element.d.ts.map +1 -0
  372. package/dist/src/composed/collection/uik-nav-rail/element.js +247 -0
  373. package/dist/src/composed/collection/uik-nav-rail/element.js.map +1 -0
  374. package/dist/src/composed/collection/uik-nav-rail/index.d.ts +3 -0
  375. package/dist/src/composed/collection/uik-nav-rail/index.d.ts.map +1 -0
  376. package/dist/src/composed/collection/uik-nav-rail/index.js +2 -0
  377. package/dist/src/composed/collection/uik-nav-rail/index.js.map +1 -0
  378. package/dist/src/composed/collection/uik-nav-rail/styles.d.ts +2 -0
  379. package/dist/src/composed/collection/uik-nav-rail/styles.d.ts.map +1 -0
  380. package/dist/src/composed/collection/uik-nav-rail/styles.js +63 -0
  381. package/dist/src/composed/collection/uik-nav-rail/styles.js.map +1 -0
  382. package/dist/src/composed/collection/uik-radio-group/element.d.ts +23 -2
  383. package/dist/src/composed/collection/uik-radio-group/element.d.ts.map +1 -1
  384. package/dist/src/composed/collection/uik-radio-group/element.js +93 -49
  385. package/dist/src/composed/collection/uik-radio-group/element.js.map +1 -1
  386. package/dist/src/composed/collection/uik-radio-group/index.d.ts +1 -1
  387. package/dist/src/composed/collection/uik-radio-group/index.d.ts.map +1 -1
  388. package/dist/src/composed/collection/uik-radio-group/index.js +1 -1
  389. package/dist/src/composed/collection/uik-radio-group/index.js.map +1 -1
  390. package/dist/src/composed/collection/uik-radio-group/styles.js +2 -2
  391. package/dist/src/composed/collection/uik-radio-group/styles.js.map +1 -1
  392. package/dist/src/composed/collection/uik-tabs/element.d.ts +52 -0
  393. package/dist/src/composed/collection/uik-tabs/element.d.ts.map +1 -0
  394. package/dist/src/composed/collection/uik-tabs/element.js +265 -0
  395. package/dist/src/composed/collection/uik-tabs/element.js.map +1 -0
  396. package/dist/src/composed/collection/uik-tabs/index.d.ts +5 -0
  397. package/dist/src/composed/collection/uik-tabs/index.d.ts.map +1 -0
  398. package/dist/src/composed/collection/uik-tabs/index.js +4 -0
  399. package/dist/src/composed/collection/uik-tabs/index.js.map +1 -0
  400. package/dist/src/composed/collection/uik-tabs/panel-styles.d.ts +2 -0
  401. package/dist/src/composed/collection/uik-tabs/panel-styles.d.ts.map +1 -0
  402. package/dist/src/composed/collection/uik-tabs/panel-styles.js +16 -0
  403. package/dist/src/composed/collection/uik-tabs/panel-styles.js.map +1 -0
  404. package/dist/src/composed/collection/uik-tabs/styles.d.ts +2 -0
  405. package/dist/src/composed/collection/uik-tabs/styles.d.ts.map +1 -0
  406. package/dist/src/composed/collection/uik-tabs/styles.js +27 -0
  407. package/dist/src/composed/collection/uik-tabs/styles.js.map +1 -0
  408. package/dist/src/composed/collection/uik-tabs/tab-styles.d.ts +2 -0
  409. package/dist/src/composed/collection/uik-tabs/tab-styles.d.ts.map +1 -0
  410. package/dist/src/composed/collection/uik-tabs/tab-styles.js +81 -0
  411. package/dist/src/composed/collection/uik-tabs/tab-styles.js.map +1 -0
  412. package/dist/src/composed/collection/uik-tabs/uik-tab-panel.d.ts +20 -0
  413. package/dist/src/composed/collection/uik-tabs/uik-tab-panel.d.ts.map +1 -0
  414. package/dist/src/composed/collection/uik-tabs/uik-tab-panel.js +42 -0
  415. package/dist/src/composed/collection/uik-tabs/uik-tab-panel.js.map +1 -0
  416. package/dist/src/composed/collection/uik-tabs/uik-tab.d.ts +29 -0
  417. package/dist/src/composed/collection/uik-tabs/uik-tab.d.ts.map +1 -0
  418. package/dist/src/composed/collection/uik-tabs/uik-tab.js +81 -0
  419. package/dist/src/composed/collection/uik-tabs/uik-tab.js.map +1 -0
  420. package/dist/src/composed/collection/uik-tree-view/element.d.ts +31 -20
  421. package/dist/src/composed/collection/uik-tree-view/element.d.ts.map +1 -1
  422. package/dist/src/composed/collection/uik-tree-view/element.js +139 -145
  423. package/dist/src/composed/collection/uik-tree-view/element.js.map +1 -1
  424. package/dist/src/composed/collection/uik-tree-view/index.d.ts +2 -2
  425. package/dist/src/composed/collection/uik-tree-view/index.d.ts.map +1 -1
  426. package/dist/src/composed/collection/uik-tree-view/index.js +1 -1
  427. package/dist/src/composed/collection/uik-tree-view/index.js.map +1 -1
  428. package/dist/src/composed/collection/uik-tree-view/styles.d.ts.map +1 -1
  429. package/dist/src/composed/collection/uik-tree-view/styles.js +30 -41
  430. package/dist/src/composed/collection/uik-tree-view/styles.js.map +1 -1
  431. package/dist/src/composed/overlay/uik-command-palette/element.d.ts +134 -0
  432. package/dist/src/composed/overlay/uik-command-palette/element.d.ts.map +1 -0
  433. package/dist/src/composed/overlay/uik-command-palette/element.js +701 -0
  434. package/dist/src/composed/overlay/uik-command-palette/element.js.map +1 -0
  435. package/dist/src/composed/overlay/uik-command-palette/index.d.ts +3 -0
  436. package/dist/src/composed/overlay/uik-command-palette/index.d.ts.map +1 -0
  437. package/dist/src/composed/overlay/uik-command-palette/index.js +2 -0
  438. package/dist/src/composed/overlay/uik-command-palette/index.js.map +1 -0
  439. package/dist/src/composed/overlay/uik-command-palette/styles.d.ts +2 -0
  440. package/dist/src/composed/overlay/uik-command-palette/styles.d.ts.map +1 -0
  441. package/dist/src/composed/overlay/uik-command-palette/styles.js +261 -0
  442. package/dist/src/composed/overlay/uik-command-palette/styles.js.map +1 -0
  443. package/dist/src/composed/overlay/uik-tooltip/element.d.ts +31 -3
  444. package/dist/src/composed/overlay/uik-tooltip/element.d.ts.map +1 -1
  445. package/dist/src/composed/overlay/uik-tooltip/element.js +128 -48
  446. package/dist/src/composed/overlay/uik-tooltip/element.js.map +1 -1
  447. package/dist/src/composed/overlay/uik-tooltip/index.d.ts +1 -1
  448. package/dist/src/composed/overlay/uik-tooltip/index.d.ts.map +1 -1
  449. package/dist/src/composed/overlay/uik-tooltip/index.js +1 -1
  450. package/dist/src/composed/overlay/uik-tooltip/index.js.map +1 -1
  451. package/dist/src/composed/overlay/uik-tooltip/styles.d.ts +1 -1
  452. package/dist/src/composed/overlay/uik-tooltip/styles.d.ts.map +1 -1
  453. package/dist/src/composed/overlay/uik-tooltip/styles.js +14 -8
  454. package/dist/src/composed/overlay/uik-tooltip/styles.js.map +1 -1
  455. package/dist/src/internal/collection/index.d.ts +2 -2
  456. package/dist/src/internal/collection/index.d.ts.map +1 -1
  457. package/dist/src/internal/collection/index.js +1 -1
  458. package/dist/src/internal/collection/index.js.map +1 -1
  459. package/dist/src/internal/collection/tree.d.ts +0 -3
  460. package/dist/src/internal/collection/tree.d.ts.map +1 -1
  461. package/dist/src/internal/collection/tree.js +7 -38
  462. package/dist/src/internal/collection/tree.js.map +1 -1
  463. package/dist/src/internal/dom/index.d.ts +1 -1
  464. package/dist/src/internal/dom/index.d.ts.map +1 -1
  465. package/dist/src/internal/dom/index.js +1 -1
  466. package/dist/src/internal/dom/index.js.map +1 -1
  467. package/dist/src/internal/form.d.ts +5 -0
  468. package/dist/src/internal/form.d.ts.map +1 -0
  469. package/dist/src/internal/form.js +27 -0
  470. package/dist/src/internal/form.js.map +1 -0
  471. package/dist/src/internal/index.d.ts +4 -4
  472. package/dist/src/internal/index.d.ts.map +1 -1
  473. package/dist/src/internal/index.js +3 -3
  474. package/dist/src/internal/index.js.map +1 -1
  475. package/dist/src/internal/overlay/dismiss.d.ts.map +1 -1
  476. package/dist/src/internal/overlay/dismiss.js +5 -2
  477. package/dist/src/internal/overlay/dismiss.js.map +1 -1
  478. package/dist/src/internal/overlay/positioning.d.ts +1 -1
  479. package/dist/src/internal/overlay/positioning.js +7 -7
  480. package/dist/src/internal/slots/index.d.ts +1 -1
  481. package/dist/src/internal/slots/index.d.ts.map +1 -1
  482. package/dist/src/internal/slots/index.js +1 -1
  483. package/dist/src/internal/slots/index.js.map +1 -1
  484. package/dist/src/internal/slots/slots.js +3 -3
  485. package/dist/src/internal/slots/slots.js.map +1 -1
  486. package/package.json +77 -2
package/README.md CHANGED
@@ -5,41 +5,56 @@ Shadow DOM web components backed by the shared token CSS variables from `@ismail
5
5
  ## Usage
6
6
 
7
7
  ```ts
8
- import '@ismail-elkorchi/ui-primitives/register'; // defines all elements
8
+ import "@ismail-elkorchi/ui-primitives/register"; // defines all elements
9
9
  // or import individual components for tree-shaking:
10
- import '@ismail-elkorchi/ui-primitives/uik-alert';
11
- import '@ismail-elkorchi/ui-primitives/uik-badge';
12
- import '@ismail-elkorchi/ui-primitives/uik-box';
13
- import '@ismail-elkorchi/ui-primitives/uik-button';
14
- import '@ismail-elkorchi/ui-primitives/uik-checkbox';
15
- import '@ismail-elkorchi/ui-primitives/uik-dialog';
16
- import '@ismail-elkorchi/ui-primitives/uik-heading';
17
- import '@ismail-elkorchi/ui-primitives/uik-icon';
18
- import '@ismail-elkorchi/ui-primitives/uik-input';
19
- import '@ismail-elkorchi/ui-primitives/uik-link';
20
- import '@ismail-elkorchi/ui-primitives/uik-nav';
21
- import '@ismail-elkorchi/ui-primitives/uik-tree-view';
22
- import '@ismail-elkorchi/ui-primitives/uik-popover';
23
- import '@ismail-elkorchi/ui-primitives/uik-progress';
24
- import '@ismail-elkorchi/ui-primitives/uik-radio';
25
- import '@ismail-elkorchi/ui-primitives/uik-radio-group';
26
- import '@ismail-elkorchi/ui-primitives/uik-select';
27
- import '@ismail-elkorchi/ui-primitives/uik-separator';
28
- import '@ismail-elkorchi/ui-primitives/uik-spinner';
29
- import '@ismail-elkorchi/ui-primitives/uik-stack';
30
- import '@ismail-elkorchi/ui-primitives/uik-surface';
31
- import '@ismail-elkorchi/ui-primitives/uik-switch';
32
- import '@ismail-elkorchi/ui-primitives/uik-text';
33
- import '@ismail-elkorchi/ui-primitives/uik-textarea';
34
- import '@ismail-elkorchi/ui-primitives/uik-tooltip';
35
- import '@ismail-elkorchi/ui-primitives/uik-visually-hidden';
10
+ import "@ismail-elkorchi/ui-primitives/uik-alert";
11
+ import "@ismail-elkorchi/ui-primitives/uik-badge";
12
+ import "@ismail-elkorchi/ui-primitives/uik-code-block";
13
+ import "@ismail-elkorchi/ui-primitives/uik-box";
14
+ import "@ismail-elkorchi/ui-primitives/uik-button";
15
+ import "@ismail-elkorchi/ui-primitives/uik-checkbox";
16
+ import "@ismail-elkorchi/ui-primitives/uik-description-list";
17
+ import "@ismail-elkorchi/ui-primitives/uik-dialog";
18
+ import "@ismail-elkorchi/ui-primitives/uik-command-palette";
19
+ import "@ismail-elkorchi/ui-primitives/uik-heading";
20
+ import "@ismail-elkorchi/ui-primitives/uik-icon";
21
+ import "@ismail-elkorchi/ui-primitives/uik-input";
22
+ import "@ismail-elkorchi/ui-primitives/uik-listbox";
23
+ import "@ismail-elkorchi/ui-primitives/uik-combobox";
24
+ import "@ismail-elkorchi/ui-primitives/uik-menu";
25
+ import "@ismail-elkorchi/ui-primitives/uik-menu-item";
26
+ import "@ismail-elkorchi/ui-primitives/uik-menubar";
27
+ import "@ismail-elkorchi/ui-primitives/uik-link";
28
+ import "@ismail-elkorchi/ui-primitives/uik-nav";
29
+ import "@ismail-elkorchi/ui-primitives/uik-nav-rail";
30
+ import "@ismail-elkorchi/ui-primitives/uik-option";
31
+ import "@ismail-elkorchi/ui-primitives/uik-tree-view";
32
+ import "@ismail-elkorchi/ui-primitives/uik-popover";
33
+ import "@ismail-elkorchi/ui-primitives/uik-pagination";
34
+ import "@ismail-elkorchi/ui-primitives/uik-progress";
35
+ import "@ismail-elkorchi/ui-primitives/uik-radio";
36
+ import "@ismail-elkorchi/ui-primitives/uik-radio-group";
37
+ import "@ismail-elkorchi/ui-primitives/uik-select";
38
+ import "@ismail-elkorchi/ui-primitives/uik-separator";
39
+ import "@ismail-elkorchi/ui-primitives/uik-resizable-panels";
40
+ import "@ismail-elkorchi/ui-primitives/uik-spinner";
41
+ import "@ismail-elkorchi/ui-primitives/uik-stack";
42
+ import "@ismail-elkorchi/ui-primitives/uik-surface";
43
+ import "@ismail-elkorchi/ui-primitives/uik-switch";
44
+ import "@ismail-elkorchi/ui-primitives/uik-tabs";
45
+ import "@ismail-elkorchi/ui-primitives/uik-tab";
46
+ import "@ismail-elkorchi/ui-primitives/uik-tab-panel";
47
+ import "@ismail-elkorchi/ui-primitives/uik-text";
48
+ import "@ismail-elkorchi/ui-primitives/uik-textarea";
49
+ import "@ismail-elkorchi/ui-primitives/uik-tooltip";
50
+ import "@ismail-elkorchi/ui-primitives/uik-visually-hidden";
36
51
  ```
37
52
 
38
53
  Ensure your app imports tokens before Tailwind so the theme variables exist:
39
54
 
40
55
  ```css
41
- @import '@ismail-elkorchi/ui-tokens/index.css';
42
- @import 'tailwindcss';
56
+ @import "@ismail-elkorchi/ui-tokens/index.css";
57
+ @import "tailwindcss";
43
58
  ```
44
59
 
45
60
  ## Parts (consistent strategy)
@@ -48,6 +63,31 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
48
63
  - Form-field primitives expose `part="control"` wrappers plus `part="label"`, `part="hint"`, and `part="error"` slots when slotted.
49
64
  - Layout and text primitives expose `part="base"` on their container or rendered tag.
50
65
 
66
+ ## Focus + roving focus contract
67
+
68
+ - Roving focus is implemented with a single `tabIndexValue=0` target and `tabIndexValue=-1` for the rest of the roving set (usually `uik-button` inside a composite widget).
69
+ - Arrow keys move focus within the roving set; `Home`/`End` jump to the first/last enabled item. `Enter`/`Space` activate the focused item per APG expectations.
70
+ - Focus state is tracked by item id and updated on focus and when the items list changes (falling back to the active or first enabled item).
71
+ - `uik-listbox` and `uik-tabs` use `uik-option` and `uik-tab` as the roving focus targets; `uik-listbox` can switch to `focus-mode="activedescendant"` for combobox-style inputs.
72
+ - `uik-menu` uses `uik-menu-item` for roving focus and returns focus to the trigger on close.
73
+ - Shell components must delegate roving focus to primitives such as `uik-nav-rail`/`uik-tree-view` instead of re-implementing keyboard logic.
74
+
75
+ ## Overlay contract
76
+
77
+ - Overlay primitives emit `overlay-close` with reason `escape | outside | programmatic | toggle`.
78
+ - Focus origin is captured on open for focus-taking overlays; `uik-dialog` restores focus to the opener on close. Hover surfaces (`uik-tooltip`) never move focus.
79
+ - Initial focus relies on native `<dialog>` behavior; popovers/tooltips leave focus on the trigger unless the host moves it.
80
+ - Outside-dismiss policy: click popovers dismiss on outside click when not using the native Popover API; tooltips close on pointer/blur; dialog cancel reports `escape`.
81
+
82
+ ## Form association fallback
83
+
84
+ Form-associated primitives use `ElementInternals` when available. When it is
85
+ unavailable, components fall back to reflecting their current value on the host
86
+ `value` attribute and continue to emit their normal change/input or
87
+ component-specific events. In fallback mode, the controls do not participate in
88
+ native form submission or constraint validation, so value collection and
89
+ validation must be handled by the host.
90
+
51
91
  ## Components and contracts
52
92
 
53
93
  ### `<uik-alert>`
@@ -80,8 +120,8 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
80
120
  - Sizing is enforced on the `:host`. The internal button fills the host (100% width/height).
81
121
  - `active`/`muted` props control stateful colors (especially for ghost variant).
82
122
  - `part="base"` allows overrides, but avoid fighting the host sizing.
83
- - **A11y**: `aria-label`/`aria-labelledby`/`aria-pressed` are forwarded to the internal `<button>` for icon-only buttons and toggle states.
84
- - **Forms**: `type="submit"` and `type="reset"` invoke `form.requestSubmit()`/`form.reset()` when inside a form.
123
+ - **A11y**: `aria-label`/`aria-labelledby`/`aria-describedby`/`aria-pressed`/`aria-haspopup`/`aria-expanded`/`aria-controls`/`role` are forwarded to the internal `<button>` for icon-only buttons and toggle states.
124
+ - **Forms**: `type="submit"` and `type="reset"` invoke `form.requestSubmit()`/`form.reset()` when inside a form (uses ElementInternals when available, otherwise the closest form).
85
125
 
86
126
  ### `<uik-checkbox>`
87
127
 
@@ -90,17 +130,47 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
90
130
  - **Parts**: `base`, `control`, `label`, `hint`, `error`.
91
131
  - **Events**: native `change` bubbles from the internal `<input>`.
92
132
  - **A11y**: label slot or `aria-label`; hint/error slots are announced via `aria-describedby`.
93
- - **Forms**: form-associated and participates in `FormData` when checked.
133
+ - **Forms**: form-associated and participates in `FormData` when checked (see Form association fallback).
94
134
  - **Custom properties**: `--uik-component-checkbox-accent`, `--uik-component-checkbox-size`.
95
135
 
136
+ ### `<uik-code-block>`
137
+
138
+ - **Attributes/props**: `copy` (boolean), `inline` (boolean), `copy-label`, `aria-label`, `aria-labelledby`.
139
+ - **Slots**: default slot for code content, `copy-label` for the copy button.
140
+ - **Parts**: `base`, `content`, `copy-button`, `inline`.
141
+ - **Events**: `code-block-copy` (`detail: {value, success}`).
142
+ - **Usage**: use `inline` for short values or commands; default mode renders a scrollable block.
143
+ - **A11y**: provide `aria-label`/`aria-labelledby` when the block needs a name; copy button uses `copy-label`.
144
+ - **Custom properties**: `--uik-component-code-block-*`, `--uik-component-code-block-copy-*`.
145
+
146
+ ### `<uik-description-list>`
147
+
148
+ - **Attributes/props**: `density` (`comfortable | compact`).
149
+ - **Slots**: default slot for `dt`/`dd` pairs.
150
+ - **Parts**: `base`.
151
+ - **Usage**: use one `dt` followed by one `dd` per row; inline values can use `uik-code-block`.
152
+ - **A11y**: use proper `dt`/`dd` pairs so assistive tech announces the term/value relationship.
153
+ - **Custom properties**: `--uik-component-description-list-*`.
154
+
96
155
  ### `<uik-dialog>`
97
156
 
98
157
  - **Attributes/props**: `open`, `modal` (boolean).
99
158
  - **Slots**: `title`, `description`, default slot for body, `actions`.
100
159
  - **Parts**: `base`, `panel`, `title`, `description`, `body`, `actions`.
101
- - **Events**: native `close`/`cancel` from `<dialog>` bubble.
102
- - **A11y**: uses native dialog semantics and forwards `aria-label`/`aria-labelledby`/`aria-describedby` to `<dialog>`.
160
+ - **Events**: native `close`/`cancel` from `<dialog>` bubble; `overlay-close` (`detail: {reason}`) with `escape | programmatic | toggle`.
161
+ - **A11y**: uses native dialog semantics and forwards `aria-label`/`aria-labelledby`/`aria-describedby` to `<dialog>`; Escape closes and focus returns to the opener.
103
162
  - **Methods**: `showModal()`, `show()`, `close()`.
163
+ - **Custom properties**: `--uik-component-dialog-bg`, `--uik-component-dialog-fg`, `--uik-component-dialog-border`, `--uik-component-dialog-radius`, `--uik-component-dialog-padding`, `--uik-component-dialog-shadow`, `--uik-component-dialog-max-width`, `--uik-component-dialog-title-fg`, `--uik-component-dialog-description-fg`, `--uik-component-dialog-actions-gap`.
164
+
165
+ ### `<uik-command-palette>`
166
+
167
+ - **Attributes/props**: `open`, `query`, `placeholder`, `loading`, `disabled`, `disableFilter`, `disableAutoClose`, `highlightMatches`, `inputLabel`, `virtualize`, `itemHeight`, `viewportHeight`, `overscan`.
168
+ - **Slots**: `title`, `description`, `label`, `empty`, `loading`, `footer`.
169
+ - **Parts**: `dialog`, `panel`, `header`, `title`, `description`, `label`, `input`, `list`, `group`, `group-label`, `item`, `item-label`, `item-description`, `item-shortcut`, `highlight`, `empty`, `loading`, `footer`.
170
+ - **Events**: `command-palette-open-change`, `command-palette-query-change`, `command-palette-select`.
171
+ - **A11y**: combobox + listbox with `aria-activedescendant`; input receives focus on open; Escape closes and focus returns to the opener.
172
+ - **Items**: set `.items` to `{ id, label, description?, value?, keywords?, shortcut?, group?, isDisabled? }[]`.
173
+ - **Custom properties**: `--uik-component-command-palette-*`.
104
174
 
105
175
  ### `<uik-heading>`
106
176
 
@@ -123,7 +193,7 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
123
193
  - **Slots**: `label`, `hint`, `error`.
124
194
  - **Events**: native `input` and `change` bubble from the internal `<input>` (no re-dispatch).
125
195
  - **A11y**: label slot associates via `for`, hint/error slot text is wired to `aria-describedby`, and `aria-invalid` is set when `invalid` or an error slot is present.
126
- - **Forms**: form-associated via `ElementInternals` and participates in `FormData` when `name` is set.
196
+ - **Forms**: form-associated via `ElementInternals` when available and participates in `FormData` when `name` is set (see Form association fallback).
127
197
 
128
198
  ### `<uik-link>`
129
199
 
@@ -134,13 +204,82 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
134
204
  - **A11y**: forwards `aria-label`/`aria-labelledby`/`aria-describedby` to `<a>`.
135
205
  - **Custom properties**: `--uik-component-link-fg-default`, `--uik-component-link-fg-hover`, `--uik-component-link-underline-offset`.
136
206
 
207
+ ### `<uik-listbox>`
208
+
209
+ - **Attributes/props**: `value`, `selectionMode` (`single | multiple`), `focusMode` (`roving | activedescendant`), `activeId`.
210
+ - **Slots**: default slot for `<uik-option>`.
211
+ - **Parts**: `base`.
212
+ - **Events**: `listbox-select` (`detail: {value, values, option}`), `listbox-active` (`detail: {id, value, option}`).
213
+ - **A11y**: `role="listbox"` with roving focus; `aria-multiselectable` when `selectionMode="multiple"`.
214
+ - **Custom properties**: `--uik-component-listbox-*`, `--uik-component-listbox-item-*`.
215
+
216
+ ### `<uik-option>`
217
+
218
+ - **Attributes/props**: `value`, `selected`, `disabled`, `active`, `tabIndexValue` (number).
219
+ - **Slots**: default slot for option label.
220
+ - **Parts**: `base`.
221
+ - **A11y**: `role="option"` with `aria-selected` + `aria-disabled`.
222
+ - **Custom properties**: `--uik-component-listbox-item-*`.
223
+
224
+ ### `<uik-combobox>`
225
+
226
+ - **Attributes/props**: `value`, `open` (boolean), `items` (array), `name`, `placeholder`, `disabled`, `required`, `readonly`, `invalid`.
227
+ - **Items**: `[{id, label, value?, isDisabled?}]` (`value` defaults to `id`).
228
+ - **Slots**: `label`, `hint`, `error`.
229
+ - **Parts**: `base`, `control`, `label`, `hint`, `error`, `panel`.
230
+ - **Events**: `combobox-select` (`detail: {value, item}`).
231
+ - **A11y**: input uses `role="combobox"` with `aria-controls` + `aria-activedescendant`; Arrow keys move active option.
232
+ - **Forms**: form-associated via `ElementInternals` when available (see Form association fallback).
233
+ - **Custom properties**: `--uik-component-combobox-base-*`, `--uik-component-combobox-panel-offset` plus listbox tokens.
234
+
235
+ ### `<uik-menu>`
236
+
237
+ - **Attributes/props**: `open`, `placement`, `popover`, `value`, `activeId`.
238
+ - **Slots**: `trigger`, default slot for `<uik-menu-item>`.
239
+ - **Parts**: `control`, `base`.
240
+ - **Events**: `menu-active` (`detail: {id, value, item}`), `menu-select` (`detail: {id, value, item}`), `menu-open`, `menu-close`.
241
+ - **A11y**: `role="menu"` with roving focus; `Escape` closes and returns focus to the trigger.
242
+ - **Custom properties**: `--uik-component-menu-*`, `--uik-component-menu-item-*`.
243
+
244
+ ### `<uik-menu-item>`
245
+
246
+ - **Attributes/props**: `value`, `disabled`, `active`, `tabIndexValue` (number).
247
+ - **Slots**: default slot for item label.
248
+ - **Parts**: `base`.
249
+ - **A11y**: `role="menuitem"` with `aria-disabled` when disabled.
250
+ - **Custom properties**: `--uik-component-menu-item-*`.
251
+
252
+ ### `<uik-menubar>`
253
+
254
+ - **Slots**: default slot for `<uik-menu>` children.
255
+ - **Parts**: `base`.
256
+ - **A11y**: `role="menubar"` with roving focus across triggers; ArrowLeft/ArrowRight + Home/End move; ArrowDown opens.
257
+ - **Custom properties**: `--uik-component-menubar-*`.
258
+
259
+ ### `<uik-tabs>`
260
+
261
+ - **Attributes/props**: `activeId`, `orientation` (`horizontal | vertical`), `activation` (`auto | manual`).
262
+ - **Slots**: `uik-tab` and `uik-tab-panel` children (slot names are applied automatically).
263
+ - **Pairs**: each `uik-tab` should share the same `value` as its `uik-tab-panel`.
264
+ - **Parts**: `tablist`, `panels`.
265
+ - **Events**: `tabs-select` (`detail: {id}`).
266
+ - **A11y**: roving focus within the tablist; manual activation uses `Enter`/`Space`.
267
+ - **Custom properties**: `--uik-component-tabs-*`.
268
+
269
+ ### `<uik-tab>` / `<uik-tab-panel>`
270
+
271
+ - **Attributes/props**: `value` on both; `selected`, `disabled`, `tabIndexValue` on `uik-tab`.
272
+ - **Slots**: default slots for tab label and panel content.
273
+ - **Parts**: `base` (tab + panel), `indicator` (tab).
274
+
137
275
  ### `<uik-tree-view>`
138
276
 
139
- - **Attributes/props**: `items` (array), `selectedIds` (string[]), `openIds` (string[]).
277
+ - **Attributes/props**: `items` (array), `openIds` (string[]), `currentId`.
140
278
  - **Slots**: none.
141
- - **Parts**: `base`, `item`, `toggle`, `selection`, `label`.
142
- - **Events**: `tree-view-select`, `tree-view-open`, `tree-view-toggle`.
143
- - **A11y**: `role="tree"` with roving focus; Space toggles selection, Enter opens/toggles; `aria-checked` reflects tri-state.
279
+ - **Parts**: `base`, `item`, `toggle`, `label`.
280
+ - **Events**: `tree-view-activate`, `tree-view-toggle`.
281
+ - **A11y**: `role="tree"` with roving focus; Arrow/Home/End + typeahead navigation; Enter/Space activates; `aria-current="page"` marks the current item.
282
+ - **Notes**: typeahead matches labels; selection patterns are app-owned; async loading listens for toggle/activate and updates `items`/`openIds`.
144
283
  - **Custom properties**: `--uik-component-tree-view-item-*`, `--uik-component-tree-view-indent`, `--uik-component-tree-view-text-*`, `--uik-component-tree-view-toggle-fg`.
145
284
 
146
285
  ### `<uik-nav>`
@@ -152,14 +291,34 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
152
291
  - **A11y**: renders links inside a `<nav>` element with `aria-current="page"` for the active item.
153
292
  - **Custom properties**: `--uik-component-nav-item-*`, `--uik-component-nav-indent`, `--uik-component-nav-text-*`, `--uik-component-nav-toggle-fg`.
154
293
 
294
+ ### `<uik-nav-rail>`
295
+
296
+ - **Attributes/props**: `items` (array), `activeId`, `orientation` (`vertical | horizontal`).
297
+ - **Slots**: none.
298
+ - **Parts**: `base`, `item`, `item-button`, `item-indicator`, `item-icon`.
299
+ - **Events**: `nav-rail-select`.
300
+ - **A11y**: toolbar role with roving focus; Arrow/Home/End move focus; Enter/Space activate items.
301
+ - **Custom properties**: `--uik-component-nav-rail-bg`, `--uik-component-nav-rail-fg`, `--uik-component-nav-rail-width`, `--uik-component-nav-rail-gap`, `--uik-component-nav-rail-padding-y`, `--uik-component-nav-rail-item-size`, `--uik-component-nav-rail-item-indicator-bg`, `--uik-component-nav-rail-item-indicator-radius`, `--uik-component-nav-rail-item-indicator-width`, `--uik-component-nav-rail-icon-size`.
302
+
155
303
  ### `<uik-popover>`
156
304
 
157
305
  - **Attributes/props**: `open`, `placement` (`bottom-start | bottom | bottom-end | top-start | top | top-end`), `popover` (`auto | manual | hint`).
158
306
  - **Slots**: `trigger`, default slot for panel content.
159
307
  - **Parts**: `control` (trigger wrapper), `base` (panel).
160
- - **Events**: native events bubble from slotted trigger; panel listens for `toggle` when supported.
308
+ - **Events**: native events bubble from slotted trigger; panel listens for `toggle` when supported; `overlay-close` (`detail: {reason}`) with `escape | outside | programmatic | toggle`.
161
309
  - **A11y**: forwards `aria-label`/`aria-labelledby`/`aria-describedby` to the panel.
162
310
  - **Behavior**: uses the Popover API when available; falls back to a positioned panel in Shadow DOM.
311
+ - **Custom properties**: `--uik-component-popover-bg`, `--uik-component-popover-fg`, `--uik-component-popover-border`, `--uik-component-popover-radius`, `--uik-component-popover-padding-x`, `--uik-component-popover-padding-y`, `--uik-component-popover-shadow`, `--uik-component-popover-offset`.
312
+
313
+ ### `<uik-pagination>`
314
+
315
+ - **Attributes/props**: `page`, `page-count`, `total`, `max-buttons`, `aria-label`, `aria-labelledby`.
316
+ - **Slots**: `summary`.
317
+ - **Parts**: `base`, `list`, `item`, `button`, `summary`, `ellipsis`.
318
+ - **Events**: `pagination-change` (`detail: {page}`).
319
+ - **Usage**: pair with tables or list views and drive `page`, `page-count`, and `total` from your data source; override `summary` for ranges like `1-20 of 240`.
320
+ - **A11y**: `aria-current="page"` marks the active page; label the nav with `aria-label`/`aria-labelledby`.
321
+ - **Custom properties**: `--uik-component-pagination-*`.
163
322
 
164
323
  ### `<uik-progress>`
165
324
 
@@ -176,7 +335,7 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
176
335
  - **Parts**: `base`, `control`, `label`, `hint`, `error`.
177
336
  - **Events**: native `change` bubbles from the internal `<input>`.
178
337
  - **A11y**: label slot or `aria-label`; hint/error slots are announced via `aria-describedby`.
179
- - **Forms**: form-associated; when inside `uik-radio-group`, the group manages the submitted value.
338
+ - **Forms**: form-associated; when inside `uik-radio-group`, the group manages the submitted value (see Form association fallback).
180
339
  - **Custom properties**: `--uik-component-radio-accent`, `--uik-component-radio-size`.
181
340
 
182
341
  ### `<uik-radio-group>`
@@ -187,7 +346,7 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
187
346
  - **Events**: native `change` bubbles from child radios.
188
347
  - **A11y**: label slot wires to `aria-labelledby`; hint/error are announced via `aria-describedby`.
189
348
  - **Keyboard**: arrow keys move selection within the group.
190
- - **Forms**: form-associated via `ElementInternals`.
349
+ - **Forms**: form-associated via `ElementInternals` when available (see Form association fallback).
191
350
  - **Custom properties**: `--uik-component-radio-group-gap`.
192
351
 
193
352
  ### `<uik-separator>`
@@ -196,6 +355,16 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
196
355
  - **Events**: none; presentational.
197
356
  - **Styling hooks**: token-driven color, `part="base"`. Horizontal renders as `<hr>`, vertical as `role="separator"`.
198
357
 
358
+ ### `<uik-resizable-panels>`
359
+
360
+ - **Attributes/props**: `orientation` (`horizontal | vertical`), `startSize`, `minStartSize`, `minEndSize`, `step`, `stepLarge` (px).
361
+ - **Slots**: `start`, `end`.
362
+ - **Parts**: `base`, `panel-start`, `panel-end`, `handle`, `handle-grip`.
363
+ - **Events**: `resizable-panels-resize` (`detail: {startSize, endSize, ratio, source, phase}`).
364
+ - **A11y**: handle uses `role="separator"` with keyboard resizing and `aria-valuenow`; label defaults to "Resize panels" unless `aria-label`/`aria-labelledby` is set.
365
+ - **Motion/contrast**: handle transitions use motion tokens; forced-colors uses system colors.
366
+ - **Custom properties**: `--uik-component-resizable-panels-panel-min-size`, `--uik-component-resizable-panels-panel-start-size`, `--uik-component-resizable-panels-handle-hit`, `--uik-component-resizable-panels-handle-size`, `--uik-component-resizable-panels-handle-bg`, `--uik-component-resizable-panels-handle-hover-bg`, `--uik-component-resizable-panels-handle-active-bg`, `--uik-component-resizable-panels-handle-radius`, `--uik-component-resizable-panels-step`, `--uik-component-resizable-panels-step-lg`.
367
+
199
368
  ### `<uik-select>`
200
369
 
201
370
  - **Attributes/props**: `name`, `value`, `disabled`, `required`, `invalid`.
@@ -203,7 +372,7 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
203
372
  - **Parts**: `base`, `control`, `label`, `hint`, `error`.
204
373
  - **Events**: native `change` bubbles from the internal `<select>`.
205
374
  - **A11y**: label slot or `aria-label`; hint/error slots are announced via `aria-describedby`.
206
- - **Forms**: form-associated via `ElementInternals`.
375
+ - **Forms**: form-associated via `ElementInternals` when available (see Form association fallback).
207
376
  - **Custom properties**: `--uik-component-select-base-*` (bg, border-default, border-hover, border-focus, fg, padding-x, padding-y, radius, shadow, font-size, line-height).
208
377
 
209
378
  ### `<uik-spinner>`
@@ -235,7 +404,7 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
235
404
  - **Parts**: `base`, `control`, `track`, `thumb`, `label`, `hint`, `error`.
236
405
  - **Events**: native `change` bubbles from the internal `<input>`.
237
406
  - **A11y**: `role="switch"` plus label slot or `aria-label`.
238
- - **Forms**: form-associated and participates in `FormData` when checked.
407
+ - **Forms**: form-associated and participates in `FormData` when checked (see Form association fallback).
239
408
  - **Custom properties**: `--uik-component-switch-height`, `--uik-component-switch-width`, `--uik-component-switch-padding`, `--uik-component-switch-thumb-size`, `--uik-component-switch-thumb-bg`, `--uik-component-switch-thumb-shadow`, `--uik-component-switch-track-bg-default`, `--uik-component-switch-track-bg-checked`, `--uik-component-switch-track-border-default`, `--uik-component-switch-track-border-checked`.
240
409
 
241
410
  ### `<uik-text>`
@@ -252,7 +421,7 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
252
421
  - **Parts**: `base`, `control`, `label`, `hint`, `error`.
253
422
  - **Events**: native `input` and `change` bubble from the internal `<textarea>`.
254
423
  - **A11y**: label slot or `aria-label`; hint/error slots are announced via `aria-describedby`.
255
- - **Forms**: form-associated via `ElementInternals`.
424
+ - **Forms**: form-associated via `ElementInternals` when available (see Form association fallback).
256
425
  - **Custom properties**: `--uik-component-textarea-base-*` (bg, border-default, border-hover, border-focus, fg, placeholder, padding-x, padding-y, radius, shadow, font-size, line-height, min-height).
257
426
 
258
427
  ### `<uik-tooltip>`
@@ -260,7 +429,9 @@ Ensure your app imports tokens before Tailwind so the theme variables exist:
260
429
  - **Attributes/props**: `open`, `placement`, `popover` (defaults to `popover="hint"`).
261
430
  - **Slots**: `trigger`, default slot for tooltip content.
262
431
  - **Parts**: `control` (trigger wrapper), `base` (panel).
432
+ - **Events**: `overlay-close` (`detail: {reason}`) with `escape | outside | programmatic | toggle`.
263
433
  - **A11y**: panel uses `role="tooltip"` and wires `aria-describedby` onto the trigger.
434
+ - **Custom properties**: `--uik-component-tooltip-bg`, `--uik-component-tooltip-fg`, `--uik-component-tooltip-radius`, `--uik-component-tooltip-padding-x`, `--uik-component-tooltip-padding-y`, `--uik-component-tooltip-shadow`, `--uik-component-tooltip-offset`.
264
435
 
265
436
  ### `<uik-visually-hidden>`
266
437