@helixui/library 2.1.2-next.53 → 2.1.2-next.57

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 (753) hide show
  1. package/custom-elements.json +847 -1038
  2. package/dist/base/helix-element.d.ts +20 -8
  3. package/dist/base/helix-element.d.ts.map +1 -1
  4. package/dist/components/hx-accordion/hx-accordion-item.d.ts +7 -2
  5. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/hx-accordion.d.ts +3 -2
  7. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  8. package/dist/components/hx-accordion/index.d.ts +1 -0
  9. package/dist/components/hx-accordion/index.d.ts.map +1 -1
  10. package/dist/components/hx-accordion/index.js +1 -1
  11. package/dist/components/hx-action-bar/hx-action-bar.d.ts +2 -11
  12. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  13. package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
  14. package/dist/components/hx-action-bar/index.js +1 -1
  15. package/dist/components/hx-alert/hx-alert.d.ts +7 -2
  16. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  17. package/dist/components/hx-alert/index.d.ts +1 -0
  18. package/dist/components/hx-alert/index.d.ts.map +1 -1
  19. package/dist/components/hx-alert/index.js +1 -1
  20. package/dist/components/hx-avatar/hx-avatar.d.ts +3 -2
  21. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  22. package/dist/components/hx-avatar/index.js +1 -1
  23. package/dist/components/hx-badge/hx-badge.d.ts +2 -9
  24. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  25. package/dist/components/hx-badge/index.d.ts +1 -1
  26. package/dist/components/hx-badge/index.d.ts.map +1 -1
  27. package/dist/components/hx-badge/index.js +1 -1
  28. package/dist/components/hx-banner/hx-banner.d.ts +3 -2
  29. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  30. package/dist/components/hx-banner/index.js +1 -1
  31. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +2 -2
  32. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  33. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +9 -12
  34. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  35. package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts.map +1 -1
  36. package/dist/components/hx-breadcrumb/index.js +1 -1
  37. package/dist/components/hx-button/hx-button.d.ts +22 -0
  38. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  39. package/dist/components/hx-button/index.d.ts +1 -0
  40. package/dist/components/hx-button/index.d.ts.map +1 -1
  41. package/dist/components/hx-button/index.js +1 -1
  42. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -2
  43. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  44. package/dist/components/hx-button-group/hx-button-group.styles.d.ts.map +1 -1
  45. package/dist/components/hx-button-group/index.js +1 -1
  46. package/dist/components/hx-card/hx-card.d.ts +3 -2
  47. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  48. package/dist/components/hx-card/index.js +1 -1
  49. package/dist/components/hx-carousel/hx-carousel-item.d.ts +2 -2
  50. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  51. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts.map +1 -1
  52. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  53. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  54. package/dist/components/hx-carousel/index.js +1 -1
  55. package/dist/components/hx-checkbox/hx-checkbox.d.ts +44 -5
  56. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  57. package/dist/components/hx-checkbox/index.d.ts +1 -0
  58. package/dist/components/hx-checkbox/index.d.ts.map +1 -1
  59. package/dist/components/hx-checkbox/index.js +1 -1
  60. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +9 -13
  61. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  62. package/dist/components/hx-checkbox-group/index.d.ts +1 -0
  63. package/dist/components/hx-checkbox-group/index.d.ts.map +1 -1
  64. package/dist/components/hx-checkbox-group/index.js +1 -1
  65. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +0 -7
  66. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
  67. package/dist/components/hx-clinical-status/index.js +1 -1
  68. package/dist/components/hx-code-snippet/index.js +1 -1
  69. package/dist/components/hx-color-picker/hx-color-picker.d.ts +8 -11
  70. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  71. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  72. package/dist/components/hx-color-picker/index.d.ts +1 -0
  73. package/dist/components/hx-color-picker/index.d.ts.map +1 -1
  74. package/dist/components/hx-color-picker/index.js +1 -1
  75. package/dist/components/hx-combobox/hx-combobox.d.ts +32 -15
  76. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  77. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  78. package/dist/components/hx-combobox/index.d.ts +1 -0
  79. package/dist/components/hx-combobox/index.d.ts.map +1 -1
  80. package/dist/components/hx-combobox/index.js +1 -1
  81. package/dist/components/hx-container/hx-container.d.ts +2 -4
  82. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  83. package/dist/components/hx-container/hx-container.styles.d.ts.map +1 -1
  84. package/dist/components/hx-container/index.d.ts +0 -1
  85. package/dist/components/hx-container/index.d.ts.map +1 -1
  86. package/dist/components/hx-container/index.js +1 -1
  87. package/dist/components/hx-copy-button/hx-copy-button.d.ts +2 -2
  88. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  89. package/dist/components/hx-copy-button/index.js +1 -1
  90. package/dist/components/hx-counter/hx-counter.d.ts +3 -2
  91. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  92. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  93. package/dist/components/hx-counter/index.js +1 -1
  94. package/dist/components/hx-data-table/hx-data-table.d.ts +26 -2
  95. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  96. package/dist/components/hx-data-table/index.d.ts +1 -0
  97. package/dist/components/hx-data-table/index.d.ts.map +1 -1
  98. package/dist/components/hx-data-table/index.js +1 -1
  99. package/dist/components/hx-date-picker/hx-date-picker.d.ts +30 -19
  100. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  101. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  102. package/dist/components/hx-date-picker/index.d.ts +1 -0
  103. package/dist/components/hx-date-picker/index.d.ts.map +1 -1
  104. package/dist/components/hx-date-picker/index.js +1 -1
  105. package/dist/components/hx-dialog/hx-dialog.d.ts +37 -5
  106. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  107. package/dist/components/hx-dialog/index.js +1 -1
  108. package/dist/components/hx-divider/hx-divider.d.ts +3 -4
  109. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  110. package/dist/components/hx-divider/index.d.ts +0 -1
  111. package/dist/components/hx-divider/index.d.ts.map +1 -1
  112. package/dist/components/hx-divider/index.js +1 -1
  113. package/dist/components/hx-drawer/hx-drawer.d.ts +32 -2
  114. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  115. package/dist/components/hx-drawer/index.js +1 -1
  116. package/dist/components/hx-dropdown/hx-dropdown.d.ts +3 -2
  117. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  118. package/dist/components/hx-dropdown/index.js +1 -1
  119. package/dist/components/hx-field/hx-field.d.ts +4 -3
  120. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  121. package/dist/components/hx-field/index.js +1 -1
  122. package/dist/components/hx-field-label/hx-field-label.d.ts +2 -2
  123. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
  124. package/dist/components/hx-field-label/index.js +1 -1
  125. package/dist/components/hx-file-upload/hx-file-upload.d.ts +31 -5
  126. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  127. package/dist/components/hx-file-upload/index.d.ts +1 -0
  128. package/dist/components/hx-file-upload/index.d.ts.map +1 -1
  129. package/dist/components/hx-file-upload/index.js +1 -1
  130. package/dist/components/hx-form/hx-form.d.ts +2 -2
  131. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  132. package/dist/components/hx-form/hx-form.styles.d.ts +8 -0
  133. package/dist/components/hx-form/hx-form.styles.d.ts.map +1 -1
  134. package/dist/components/hx-form/index.js +1 -1
  135. package/dist/components/hx-format-date/hx-format-date.d.ts +2 -2
  136. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  137. package/dist/components/hx-format-date/hx-format-date.styles.d.ts.map +1 -1
  138. package/dist/components/hx-format-date/index.js +1 -1
  139. package/dist/components/hx-grid/hx-grid.d.ts +4 -3
  140. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  141. package/dist/components/hx-grid/hx-grid.styles.d.ts.map +1 -1
  142. package/dist/components/hx-grid/index.js +1 -1
  143. package/dist/components/hx-help-text/hx-help-text.d.ts +2 -4
  144. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  145. package/dist/components/hx-help-text/index.js +1 -1
  146. package/dist/components/hx-icon/hx-icon.d.ts +17 -2
  147. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  148. package/dist/components/hx-icon/index.js +1 -1
  149. package/dist/components/hx-icon-button/index.js +1 -1
  150. package/dist/components/hx-image/hx-image.d.ts +2 -2
  151. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  152. package/dist/components/hx-image/index.js +1 -1
  153. package/dist/components/hx-link/hx-link.d.ts +2 -2
  154. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  155. package/dist/components/hx-link/index.js +1 -1
  156. package/dist/components/hx-list/hx-list-item.d.ts +3 -2
  157. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  158. package/dist/components/hx-list/hx-list.d.ts +3 -2
  159. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  160. package/dist/components/hx-list/hx-list.styles.d.ts.map +1 -1
  161. package/dist/components/hx-list/index.js +1 -1
  162. package/dist/components/hx-menu/hx-menu-divider.d.ts +2 -2
  163. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  164. package/dist/components/hx-menu/hx-menu-item.d.ts +2 -2
  165. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  166. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  167. package/dist/components/hx-menu/hx-menu.d.ts +2 -2
  168. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  169. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  170. package/dist/components/hx-menu/index.js +1 -1
  171. package/dist/components/hx-meter/hx-meter.d.ts +3 -2
  172. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  173. package/dist/components/hx-meter/index.js +1 -1
  174. package/dist/components/hx-nav/hx-nav.d.ts +2 -4
  175. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  176. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  177. package/dist/components/hx-nav/index.d.ts +1 -1
  178. package/dist/components/hx-nav/index.d.ts.map +1 -1
  179. package/dist/components/hx-nav/index.js +1 -1
  180. package/dist/components/hx-number-input/hx-number-input.d.ts +9 -13
  181. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  182. package/dist/components/hx-number-input/index.d.ts +1 -0
  183. package/dist/components/hx-number-input/index.d.ts.map +1 -1
  184. package/dist/components/hx-number-input/index.js +1 -1
  185. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +2 -2
  186. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  187. package/dist/components/hx-overflow-menu/index.js +1 -1
  188. package/dist/components/hx-pagination/hx-pagination.d.ts +10 -2
  189. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  190. package/dist/components/hx-pagination/index.d.ts +1 -0
  191. package/dist/components/hx-pagination/index.d.ts.map +1 -1
  192. package/dist/components/hx-pagination/index.js +1 -1
  193. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +47 -5
  194. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -1
  195. package/dist/components/hx-patient-banner/index.js +1 -1
  196. package/dist/components/hx-phi-field/hx-phi-field.d.ts +85 -5
  197. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  198. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
  199. package/dist/components/hx-phi-field/index.js +1 -1
  200. package/dist/components/hx-popover/hx-popover.d.ts +3 -2
  201. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  202. package/dist/components/hx-popover/index.js +1 -1
  203. package/dist/components/hx-popup/hx-popup.d.ts +7 -2
  204. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  205. package/dist/components/hx-popup/index.js +1 -1
  206. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +3 -2
  207. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  208. package/dist/components/hx-progress-bar/index.js +1 -1
  209. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +3 -2
  210. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  211. package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts.map +1 -1
  212. package/dist/components/hx-progress-ring/index.js +1 -1
  213. package/dist/components/hx-prose/hx-prose.d.ts +3 -2
  214. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  215. package/dist/components/hx-prose/hx-prose.styles.d.ts +8 -0
  216. package/dist/components/hx-prose/hx-prose.styles.d.ts.map +1 -1
  217. package/dist/components/hx-prose/index.js +1 -1
  218. package/dist/components/hx-radio-group/hx-radio-group.d.ts +9 -29
  219. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  220. package/dist/components/hx-radio-group/hx-radio.d.ts +19 -4
  221. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  222. package/dist/components/hx-radio-group/index.d.ts +1 -0
  223. package/dist/components/hx-radio-group/index.d.ts.map +1 -1
  224. package/dist/components/hx-radio-group/index.js +1 -1
  225. package/dist/components/hx-rating/hx-rating.d.ts +4 -10
  226. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  227. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  228. package/dist/components/hx-rating/index.d.ts +1 -0
  229. package/dist/components/hx-rating/index.d.ts.map +1 -1
  230. package/dist/components/hx-rating/index.js +1 -1
  231. package/dist/components/hx-select/hx-select.d.ts +26 -25
  232. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  233. package/dist/components/hx-select/index.d.ts +1 -0
  234. package/dist/components/hx-select/index.d.ts.map +1 -1
  235. package/dist/components/hx-select/index.js +1 -1
  236. package/dist/components/hx-side-nav/hx-nav-item.d.ts +2 -2
  237. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  238. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  239. package/dist/components/hx-side-nav/hx-side-nav.d.ts +3 -2
  240. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  241. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  242. package/dist/components/hx-side-nav/index.js +1 -1
  243. package/dist/components/hx-skeleton/hx-skeleton.d.ts +3 -2
  244. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  245. package/dist/components/hx-skeleton/index.js +1 -1
  246. package/dist/components/hx-slider/hx-slider.d.ts +7 -11
  247. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  248. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  249. package/dist/components/hx-slider/index.d.ts +1 -0
  250. package/dist/components/hx-slider/index.d.ts.map +1 -1
  251. package/dist/components/hx-slider/index.js +1 -1
  252. package/dist/components/hx-spinner/hx-spinner.d.ts +2 -2
  253. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  254. package/dist/components/hx-spinner/index.js +1 -1
  255. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  256. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  257. package/dist/components/hx-split-button/index.js +1 -1
  258. package/dist/components/hx-split-panel/hx-split-panel.d.ts +12 -2
  259. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  260. package/dist/components/hx-split-panel/index.js +1 -1
  261. package/dist/components/hx-stack/hx-stack.d.ts +2 -2
  262. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
  263. package/dist/components/hx-stack/hx-stack.styles.d.ts.map +1 -1
  264. package/dist/components/hx-stack/index.js +1 -1
  265. package/dist/components/hx-stat/hx-stat.d.ts +3 -2
  266. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  267. package/dist/components/hx-stat/index.js +1 -1
  268. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +3 -2
  269. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  270. package/dist/components/hx-status-indicator/index.js +1 -1
  271. package/dist/components/hx-steps/hx-step.d.ts +3 -2
  272. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  273. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  274. package/dist/components/hx-steps/hx-steps.d.ts +11 -4
  275. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  276. package/dist/components/hx-steps/hx-steps.styles.d.ts.map +1 -1
  277. package/dist/components/hx-steps/index.js +1 -1
  278. package/dist/components/hx-structured-list/hx-structured-list.d.ts +3 -3
  279. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  280. package/dist/components/hx-structured-list/index.js +1 -1
  281. package/dist/components/hx-style-scope/hx-style-scope.d.ts +3 -2
  282. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -1
  283. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -1
  284. package/dist/components/hx-style-scope/index.js +1 -1
  285. package/dist/components/hx-switch/hx-switch.d.ts +20 -21
  286. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  287. package/dist/components/hx-switch/index.d.ts +2 -1
  288. package/dist/components/hx-switch/index.d.ts.map +1 -1
  289. package/dist/components/hx-switch/index.js +1 -1
  290. package/dist/components/hx-table/hx-table.d.ts +3 -2
  291. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  292. package/dist/components/hx-table/hx-tbody.d.ts +2 -2
  293. package/dist/components/hx-table/hx-tbody.d.ts.map +1 -1
  294. package/dist/components/hx-table/hx-td.d.ts +2 -2
  295. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  296. package/dist/components/hx-table/hx-tfoot.d.ts +2 -2
  297. package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -1
  298. package/dist/components/hx-table/hx-th.d.ts +2 -2
  299. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  300. package/dist/components/hx-table/hx-thead.d.ts +2 -2
  301. package/dist/components/hx-table/hx-thead.d.ts.map +1 -1
  302. package/dist/components/hx-table/hx-tr.d.ts +2 -2
  303. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  304. package/dist/components/hx-table/index.js +1 -1
  305. package/dist/components/hx-tabs/hx-tab-panel.d.ts +2 -2
  306. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  307. package/dist/components/hx-tabs/hx-tab.d.ts +2 -2
  308. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  309. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  310. package/dist/components/hx-tabs/hx-tabs.d.ts +8 -2
  311. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  312. package/dist/components/hx-tabs/index.d.ts +1 -0
  313. package/dist/components/hx-tabs/index.d.ts.map +1 -1
  314. package/dist/components/hx-tabs/index.js +1 -1
  315. package/dist/components/hx-tag/hx-tag.d.ts +2 -4
  316. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  317. package/dist/components/hx-tag/index.d.ts +0 -2
  318. package/dist/components/hx-tag/index.d.ts.map +1 -1
  319. package/dist/components/hx-tag/index.js +1 -1
  320. package/dist/components/hx-text/hx-text.d.ts +2 -2
  321. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  322. package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -1
  323. package/dist/components/hx-text/index.js +1 -1
  324. package/dist/components/hx-text-input/hx-text-input.d.ts +29 -13
  325. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  326. package/dist/components/hx-text-input/index.d.ts +1 -0
  327. package/dist/components/hx-text-input/index.d.ts.map +1 -1
  328. package/dist/components/hx-text-input/index.js +1 -1
  329. package/dist/components/hx-textarea/hx-textarea.d.ts +32 -24
  330. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  331. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  332. package/dist/components/hx-textarea/index.d.ts +1 -0
  333. package/dist/components/hx-textarea/index.d.ts.map +1 -1
  334. package/dist/components/hx-textarea/index.js +1 -1
  335. package/dist/components/hx-theme/hx-theme.d.ts +3 -11
  336. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  337. package/dist/components/hx-theme/hx-theme.styles.d.ts.map +1 -1
  338. package/dist/components/hx-theme/index.d.ts +0 -2
  339. package/dist/components/hx-theme/index.d.ts.map +1 -1
  340. package/dist/components/hx-theme/index.js +1 -1
  341. package/dist/components/hx-time-picker/hx-time-picker.d.ts +8 -15
  342. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  343. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  344. package/dist/components/hx-time-picker/index.d.ts +1 -0
  345. package/dist/components/hx-time-picker/index.d.ts.map +1 -1
  346. package/dist/components/hx-time-picker/index.js +1 -1
  347. package/dist/components/hx-toast/hx-toast-stack.d.ts +2 -2
  348. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  349. package/dist/components/hx-toast/hx-toast.d.ts +3 -2
  350. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  351. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  352. package/dist/components/hx-toast/index.js +1 -1
  353. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -0
  354. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  355. package/dist/components/hx-toggle-button/index.d.ts +1 -0
  356. package/dist/components/hx-toggle-button/index.d.ts.map +1 -1
  357. package/dist/components/hx-toggle-button/index.js +1 -1
  358. package/dist/components/hx-tooltip/hx-tooltip.d.ts +2 -2
  359. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  360. package/dist/components/hx-tooltip/index.js +1 -1
  361. package/dist/components/hx-top-nav/hx-top-nav.d.ts +2 -2
  362. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  363. package/dist/components/hx-top-nav/index.js +1 -1
  364. package/dist/components/hx-tree-view/hx-tree-item.d.ts +2 -4
  365. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  366. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  367. package/dist/components/hx-tree-view/hx-tree-view.d.ts +2 -4
  368. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  369. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  370. package/dist/components/hx-tree-view/index.d.ts +0 -4
  371. package/dist/components/hx-tree-view/index.d.ts.map +1 -1
  372. package/dist/components/hx-tree-view/index.js +1 -1
  373. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts +2 -2
  374. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -1
  375. package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts.map +1 -1
  376. package/dist/components/hx-visually-hidden/index.js +1 -1
  377. package/dist/css/helix-all.css +2232 -680
  378. package/dist/css/helix-core.css +107 -49
  379. package/dist/css/helix-data.css +17 -7
  380. package/dist/css/helix-feedback.css +82 -61
  381. package/dist/css/helix-forms.css +1456 -131
  382. package/dist/css/helix-layout.css +31 -1
  383. package/dist/css/helix-media.css +16 -16
  384. package/dist/css/helix-navigation.css +99 -48
  385. package/dist/css/helix-overlay.css +12 -12
  386. package/dist/css/helix-tokens.css +30 -11
  387. package/dist/css/helix-utility.css +53 -10
  388. package/dist/css/hx-accordion.css +1 -1
  389. package/dist/css/hx-action-bar.css +17 -3
  390. package/dist/css/hx-alert.css +18 -18
  391. package/dist/css/hx-avatar.css +1 -1
  392. package/dist/css/hx-badge.css +15 -15
  393. package/dist/css/hx-banner.css +18 -18
  394. package/dist/css/hx-breadcrumb.css +27 -0
  395. package/dist/css/hx-button-group.css +13 -0
  396. package/dist/css/hx-button.css +2 -2
  397. package/dist/css/hx-card.css +6 -6
  398. package/dist/css/hx-carousel.css +16 -16
  399. package/dist/css/hx-checkbox-group.css +4 -4
  400. package/dist/css/hx-checkbox.css +8 -8
  401. package/dist/css/hx-clinical-status.css +23 -23
  402. package/dist/css/hx-code-snippet.css +3 -3
  403. package/dist/css/hx-color-picker.css +276 -1
  404. package/dist/css/hx-combobox.css +391 -1
  405. package/dist/css/hx-container.css +10 -0
  406. package/dist/css/hx-copy-button.css +3 -3
  407. package/dist/css/hx-counter.css +9 -2
  408. package/dist/css/hx-data-table.css +1 -1
  409. package/dist/css/hx-date-picker.css +437 -1
  410. package/dist/css/hx-dialog.css +2 -2
  411. package/dist/css/hx-drawer.css +1 -1
  412. package/dist/css/hx-dropdown.css +1 -1
  413. package/dist/css/hx-field-label.css +2 -2
  414. package/dist/css/hx-field.css +3 -3
  415. package/dist/css/hx-file-upload.css +12 -12
  416. package/dist/css/hx-format-date.css +11 -0
  417. package/dist/css/hx-grid.css +10 -0
  418. package/dist/css/hx-help-text.css +5 -5
  419. package/dist/css/hx-image.css +3 -3
  420. package/dist/css/hx-link.css +5 -5
  421. package/dist/css/hx-list.css +10 -0
  422. package/dist/css/hx-menu.css +1 -2
  423. package/dist/css/hx-meter.css +9 -9
  424. package/dist/css/hx-nav.css +11 -12
  425. package/dist/css/hx-overflow-menu.css +10 -10
  426. package/dist/css/hx-pagination.css +13 -13
  427. package/dist/css/hx-patient-banner.css +10 -10
  428. package/dist/css/hx-phi-field.css +5 -2
  429. package/dist/css/hx-popover.css +4 -4
  430. package/dist/css/hx-progress-bar.css +1 -1
  431. package/dist/css/hx-progress-ring.css +23 -1
  432. package/dist/css/hx-radio-group.css +3 -3
  433. package/dist/css/hx-rating.css +6 -4
  434. package/dist/css/hx-select.css +7 -7
  435. package/dist/css/hx-side-nav.css +5 -0
  436. package/dist/css/hx-slider.css +16 -11
  437. package/dist/css/hx-split-button.css +2 -2
  438. package/dist/css/hx-stack.css +10 -0
  439. package/dist/css/hx-stat.css +5 -5
  440. package/dist/css/hx-status-indicator.css +2 -2
  441. package/dist/css/hx-steps.css +12 -0
  442. package/dist/css/hx-structured-list.css +2 -2
  443. package/dist/css/hx-style-scope.css +11 -0
  444. package/dist/css/hx-switch.css +4 -4
  445. package/dist/css/hx-table.css +1 -1
  446. package/dist/css/hx-tabs.css +3 -3
  447. package/dist/css/hx-tag.css +12 -12
  448. package/dist/css/hx-text-input.css +9 -9
  449. package/dist/css/hx-text.css +38 -5
  450. package/dist/css/hx-textarea.css +9 -15
  451. package/dist/css/hx-theme.css +11 -0
  452. package/dist/css/hx-time-picker.css +224 -1
  453. package/dist/css/hx-toast.css +6 -7
  454. package/dist/css/hx-toggle-button.css +3 -3
  455. package/dist/css/hx-tooltip.css +4 -4
  456. package/dist/css/hx-top-nav.css +8 -8
  457. package/dist/css/hx-tree-view.css +9 -0
  458. package/dist/css/hx-visually-hidden.css +12 -0
  459. package/dist/css/index.css +1 -1
  460. package/dist/css/manifest.json +39 -7
  461. package/dist/form-test-utils.d.ts +45 -0
  462. package/dist/form-test-utils.d.ts.map +1 -0
  463. package/dist/index.d.ts +28 -14
  464. package/dist/index.d.ts.map +1 -1
  465. package/dist/index.js +189 -177
  466. package/dist/index.js.map +1 -1
  467. package/dist/mixins/FormMixin.d.ts +24 -5
  468. package/dist/mixins/FormMixin.d.ts.map +1 -1
  469. package/dist/mixins/aria-delegation.d.ts +0 -2
  470. package/dist/mixins/aria-delegation.d.ts.map +1 -1
  471. package/dist/mixins/index.d.ts +3 -1
  472. package/dist/mixins/index.d.ts.map +1 -1
  473. package/dist/shared/{FormMixin-Bjvw20G5.js → FormMixin-B8PXk5RQ.js} +31 -14
  474. package/dist/shared/FormMixin-B8PXk5RQ.js.map +1 -0
  475. package/dist/shared/aria-delegation-Doq6RRUy.js.map +1 -1
  476. package/dist/shared/{helix-element-BJh1Ffvi.js → helix-element-BNEYeiys.js} +30 -24
  477. package/dist/shared/helix-element-BNEYeiys.js.map +1 -0
  478. package/dist/shared/{hx-accordion-SlwR2C6S.js → hx-accordion-Wt52OOZD.js} +49 -49
  479. package/dist/shared/hx-accordion-Wt52OOZD.js.map +1 -0
  480. package/dist/shared/{hx-action-bar-CNLYufVd.js → hx-action-bar-BKMADbHj.js} +89 -85
  481. package/dist/shared/hx-action-bar-BKMADbHj.js.map +1 -0
  482. package/dist/shared/{hx-alert-DdlSyJGk.js → hx-alert-D7n94HwI.js} +26 -26
  483. package/dist/shared/hx-alert-D7n94HwI.js.map +1 -0
  484. package/dist/shared/{hx-avatar-an-WsuLl.js → hx-avatar-iLYzu8MJ.js} +10 -10
  485. package/dist/shared/hx-avatar-iLYzu8MJ.js.map +1 -0
  486. package/dist/shared/{hx-badge-B_PzGlUo.js → hx-badge-CVCmMPyW.js} +27 -27
  487. package/dist/shared/hx-badge-CVCmMPyW.js.map +1 -0
  488. package/dist/shared/{hx-banner-D8AxkCfc.js → hx-banner-C_He7Tr4.js} +51 -51
  489. package/dist/shared/hx-banner-C_He7Tr4.js.map +1 -0
  490. package/dist/shared/{hx-breadcrumb-item-BCUIvpYX.js → hx-breadcrumb-item-CldCwD1d.js} +105 -82
  491. package/dist/shared/hx-breadcrumb-item-CldCwD1d.js.map +1 -0
  492. package/dist/shared/{hx-button-BzqsDHmZ.js → hx-button-Ddl-T6T-.js} +110 -84
  493. package/dist/shared/hx-button-Ddl-T6T-.js.map +1 -0
  494. package/dist/shared/{hx-button-group-a5Pb_9fU.js → hx-button-group-BJOGWoMa.js} +30 -17
  495. package/dist/shared/hx-button-group-BJOGWoMa.js.map +1 -0
  496. package/dist/shared/{hx-card-DYlaxQy0.js → hx-card-ycveujjL.js} +13 -13
  497. package/dist/shared/hx-card-ycveujjL.js.map +1 -0
  498. package/dist/shared/{hx-carousel-item-KQfCekKF.js → hx-carousel-item-D_dCv61-.js} +37 -28
  499. package/dist/shared/hx-carousel-item-D_dCv61-.js.map +1 -0
  500. package/dist/shared/{hx-checkbox-DyDbR1B9.js → hx-checkbox-DkkoWoye.js} +77 -60
  501. package/dist/shared/hx-checkbox-DkkoWoye.js.map +1 -0
  502. package/dist/shared/{hx-checkbox-group-C8TaFqy0.js → hx-checkbox-group-C3poJ-Zw.js} +55 -64
  503. package/dist/shared/hx-checkbox-group-C3poJ-Zw.js.map +1 -0
  504. package/dist/shared/{hx-clinical-status-dDyk5oj1.js → hx-clinical-status-BS5lcddT.js} +52 -53
  505. package/dist/shared/hx-clinical-status-BS5lcddT.js.map +1 -0
  506. package/dist/shared/{hx-code-snippet-DasrRF9k.js → hx-code-snippet-B7wUKzyb.js} +12 -13
  507. package/dist/shared/hx-code-snippet-B7wUKzyb.js.map +1 -0
  508. package/dist/shared/{hx-color-picker-zv6wtok4.js → hx-color-picker-DBaKTVLr.js} +318 -57
  509. package/dist/shared/hx-color-picker-DBaKTVLr.js.map +1 -0
  510. package/dist/shared/hx-combobox-BmgYT7Ar.js +929 -0
  511. package/dist/shared/hx-combobox-BmgYT7Ar.js.map +1 -0
  512. package/dist/shared/{hx-container-BwWbMPTH.js → hx-container-DVI7sxfX.js} +25 -15
  513. package/dist/shared/hx-container-DVI7sxfX.js.map +1 -0
  514. package/dist/shared/{hx-copy-button-DikpbhWY.js → hx-copy-button-8deNUdwP.js} +20 -20
  515. package/dist/shared/hx-copy-button-8deNUdwP.js.map +1 -0
  516. package/dist/shared/{hx-counter-_m4cq45V.js → hx-counter-CKfl_g8K.js} +36 -29
  517. package/dist/shared/hx-counter-CKfl_g8K.js.map +1 -0
  518. package/dist/shared/{hx-data-table-609C-e9w.js → hx-data-table-B6h0RPn0.js} +107 -101
  519. package/dist/shared/hx-data-table-B6h0RPn0.js.map +1 -0
  520. package/dist/shared/hx-date-picker-Dq2Nb68_.js +1077 -0
  521. package/dist/shared/hx-date-picker-Dq2Nb68_.js.map +1 -0
  522. package/dist/shared/{hx-dialog-D_DeqcNS.js → hx-dialog-CvIlY0Tc.js} +66 -54
  523. package/dist/shared/hx-dialog-CvIlY0Tc.js.map +1 -0
  524. package/dist/shared/{hx-divider-lfOMElo2.js → hx-divider-DwpOrzMW.js} +7 -7
  525. package/dist/shared/hx-divider-DwpOrzMW.js.map +1 -0
  526. package/dist/shared/{hx-drawer-NleCbKuN.js → hx-drawer-Cx2ZJhBe.js} +14 -14
  527. package/dist/shared/hx-drawer-Cx2ZJhBe.js.map +1 -0
  528. package/dist/shared/{hx-dropdown-CA9WYdhm.js → hx-dropdown-BjDrPUq5.js} +30 -31
  529. package/dist/shared/hx-dropdown-BjDrPUq5.js.map +1 -0
  530. package/dist/shared/{hx-field-Duiib9Bj.js → hx-field-Dp3qQMut.js} +15 -15
  531. package/dist/shared/hx-field-Dp3qQMut.js.map +1 -0
  532. package/dist/shared/{hx-field-label-Dud-psvE.js → hx-field-label-BC8QViXv.js} +8 -8
  533. package/dist/shared/hx-field-label-BC8QViXv.js.map +1 -0
  534. package/dist/shared/{hx-file-upload-CmCCAvej.js → hx-file-upload-B6Yl1u0i.js} +101 -84
  535. package/dist/shared/hx-file-upload-B6Yl1u0i.js.map +1 -0
  536. package/dist/shared/{hx-form-BM6PHsw3.js → hx-form-ButQFt9A.js} +12 -11
  537. package/dist/shared/hx-form-ButQFt9A.js.map +1 -0
  538. package/dist/shared/{hx-format-date-B7L9odbA.js → hx-format-date-CKnlQOmV.js} +20 -9
  539. package/dist/shared/hx-format-date-CKnlQOmV.js.map +1 -0
  540. package/dist/shared/{hx-grid-BIAR5h9m.js → hx-grid-CXZf3jeK.js} +28 -18
  541. package/dist/shared/hx-grid-CXZf3jeK.js.map +1 -0
  542. package/dist/shared/{hx-help-text-DARi-Pfp.js → hx-help-text-D7eytSim.js} +12 -12
  543. package/dist/shared/hx-help-text-D7eytSim.js.map +1 -0
  544. package/dist/shared/{hx-icon-jWcGmn66.js → hx-icon-CcyDPDYY.js} +96 -62
  545. package/dist/shared/hx-icon-CcyDPDYY.js.map +1 -0
  546. package/dist/shared/{hx-icon-button-BcZtVVtH.js → hx-icon-button-BHneqPCU.js} +2 -3
  547. package/dist/shared/{hx-icon-button-BcZtVVtH.js.map → hx-icon-button-BHneqPCU.js.map} +1 -1
  548. package/dist/shared/{hx-image-DOjPp-K5.js → hx-image-2gt14zZd.js} +9 -9
  549. package/dist/shared/hx-image-2gt14zZd.js.map +1 -0
  550. package/dist/shared/{hx-link-DCBct0f4.js → hx-link-BESrWK8M.js} +17 -17
  551. package/dist/shared/hx-link-BESrWK8M.js.map +1 -0
  552. package/dist/shared/{hx-list-Dnei26t4.js → hx-list-_9qVv02L.js} +32 -22
  553. package/dist/shared/hx-list-_9qVv02L.js.map +1 -0
  554. package/dist/shared/{hx-menu-divider-DVWER7iT.js → hx-menu-divider-Ck-9Os1t.js} +19 -19
  555. package/dist/shared/hx-menu-divider-Ck-9Os1t.js.map +1 -0
  556. package/dist/shared/{hx-meter-ChZdWNF2.js → hx-meter-TbROk-dw.js} +18 -18
  557. package/dist/shared/hx-meter-TbROk-dw.js.map +1 -0
  558. package/dist/shared/{hx-nav-CHX1JOWB.js → hx-nav-BcYDmjf7.js} +59 -60
  559. package/dist/shared/hx-nav-BcYDmjf7.js.map +1 -0
  560. package/dist/shared/{hx-nav-item-CRAESq9s.js → hx-nav-item-pqPasRUm.js} +33 -23
  561. package/dist/shared/hx-nav-item-pqPasRUm.js.map +1 -0
  562. package/dist/shared/{hx-number-input-Cm682AVP.js → hx-number-input-mOIZ3-46.js} +57 -66
  563. package/dist/shared/hx-number-input-mOIZ3-46.js.map +1 -0
  564. package/dist/shared/{hx-overflow-menu-BDl6QfUD.js → hx-overflow-menu-Dprb9lnT.js} +46 -47
  565. package/dist/shared/hx-overflow-menu-Dprb9lnT.js.map +1 -0
  566. package/dist/shared/{hx-pagination-BNtx-LG6.js → hx-pagination-AguTQjYC.js} +35 -35
  567. package/dist/shared/hx-pagination-AguTQjYC.js.map +1 -0
  568. package/dist/shared/{hx-patient-banner-B4IjHeTx.js → hx-patient-banner-uE6gqLpT.js} +16 -16
  569. package/dist/shared/hx-patient-banner-uE6gqLpT.js.map +1 -0
  570. package/dist/shared/{hx-phi-field-DD1qcBSO.js → hx-phi-field-BC_XowhC.js} +138 -56
  571. package/dist/shared/hx-phi-field-BC_XowhC.js.map +1 -0
  572. package/dist/shared/{hx-popover-ZGRFgBbx.js → hx-popover-B2_203ct.js} +25 -25
  573. package/dist/shared/hx-popover-B2_203ct.js.map +1 -0
  574. package/dist/shared/{hx-popup-Cc4qz89i.js → hx-popup-DZXpsJ1R.js} +77 -64
  575. package/dist/shared/hx-popup-DZXpsJ1R.js.map +1 -0
  576. package/dist/shared/{hx-progress-bar-BY1uE6bN.js → hx-progress-bar-KjEkEJLy.js} +19 -19
  577. package/dist/shared/hx-progress-bar-KjEkEJLy.js.map +1 -0
  578. package/dist/shared/{hx-progress-ring-Cs0WgWDJ.js → hx-progress-ring-3zMwvrwD.js} +53 -31
  579. package/dist/shared/hx-progress-ring-3zMwvrwD.js.map +1 -0
  580. package/dist/shared/{hx-prose-Ml_L2zje.js → hx-prose-BCtK7YL6.js} +48 -15
  581. package/dist/shared/{hx-prose-Ml_L2zje.js.map → hx-prose-BCtK7YL6.js.map} +1 -1
  582. package/dist/shared/{hx-radio-YEEsbUPN.js → hx-radio-BBC5qZgE.js} +99 -105
  583. package/dist/shared/hx-radio-BBC5qZgE.js.map +1 -0
  584. package/dist/shared/{hx-rating-DjUJTT0M.js → hx-rating-C3E3ENJb.js} +42 -56
  585. package/dist/shared/hx-rating-C3E3ENJb.js.map +1 -0
  586. package/dist/shared/{hx-select-DZ7wfcJx.js → hx-select-CixTo7jp.js} +105 -116
  587. package/dist/shared/hx-select-CixTo7jp.js.map +1 -0
  588. package/dist/shared/{hx-skeleton-aqa-gr1S.js → hx-skeleton-LxkI0pxr.js} +15 -15
  589. package/dist/shared/hx-skeleton-LxkI0pxr.js.map +1 -0
  590. package/dist/shared/{hx-slider-DAilFrR_.js → hx-slider-DFHuzF3N.js} +74 -89
  591. package/dist/shared/hx-slider-DFHuzF3N.js.map +1 -0
  592. package/dist/shared/{hx-spinner-Dw3cRY-9.js → hx-spinner-BKjuCdZB.js} +9 -9
  593. package/dist/shared/hx-spinner-BKjuCdZB.js.map +1 -0
  594. package/dist/shared/{hx-split-button-Dk-zMDDo.js → hx-split-button-CGcJMmCG.js} +14 -14
  595. package/dist/shared/hx-split-button-CGcJMmCG.js.map +1 -0
  596. package/dist/shared/{hx-split-panel-Kdp4BiLz.js → hx-split-panel-C-1R10Mc.js} +57 -47
  597. package/dist/shared/hx-split-panel-C-1R10Mc.js.map +1 -0
  598. package/dist/shared/{hx-stack-B76_1O6g.js → hx-stack-DGfcOfWJ.js} +21 -11
  599. package/dist/shared/hx-stack-DGfcOfWJ.js.map +1 -0
  600. package/dist/shared/{hx-stat-DKlyBL_K.js → hx-stat-BTpykQAt.js} +14 -14
  601. package/dist/shared/hx-stat-BTpykQAt.js.map +1 -0
  602. package/dist/shared/{hx-status-indicator-DWSM0Ctm.js → hx-status-indicator-X2QEWNFt.js} +13 -13
  603. package/dist/shared/hx-status-indicator-X2QEWNFt.js.map +1 -0
  604. package/dist/shared/{hx-step-CuoOvcI8.js → hx-step-CRNQlmSo.js} +47 -30
  605. package/dist/shared/hx-step-CRNQlmSo.js.map +1 -0
  606. package/dist/shared/{hx-structured-list-CQCD7bCT.js → hx-structured-list-CqNbaEXg.js} +12 -12
  607. package/dist/shared/hx-structured-list-CqNbaEXg.js.map +1 -0
  608. package/dist/shared/hx-style-scope-TDnR8H4O.js +251 -0
  609. package/dist/shared/hx-style-scope-TDnR8H4O.js.map +1 -0
  610. package/dist/shared/{hx-switch-BdxKN9WM.js → hx-switch-DqOD9JR7.js} +56 -72
  611. package/dist/shared/hx-switch-DqOD9JR7.js.map +1 -0
  612. package/dist/shared/{hx-tab-panel-CwClQoWP.js → hx-tab-panel-BIzKfW5i.js} +29 -28
  613. package/dist/shared/hx-tab-panel-BIzKfW5i.js.map +1 -0
  614. package/dist/shared/{hx-tag-BL5qJJCN.js → hx-tag-CgnrNnte.js} +23 -23
  615. package/dist/shared/hx-tag-CgnrNnte.js.map +1 -0
  616. package/dist/shared/{hx-td-CzSvVKdp.js → hx-td-Bra35cH4.js} +37 -37
  617. package/dist/shared/hx-td-Bra35cH4.js.map +1 -0
  618. package/dist/shared/{hx-text-DcWBqZwx.js → hx-text-DMC2CPlL.js} +74 -41
  619. package/dist/shared/hx-text-DMC2CPlL.js.map +1 -0
  620. package/dist/shared/{hx-text-input-BfMrvN9N.js → hx-text-input--q0GH78x.js} +19 -20
  621. package/dist/shared/hx-text-input--q0GH78x.js.map +1 -0
  622. package/dist/shared/{hx-textarea-C-i_Vam6.js → hx-textarea-CK621vSL.js} +28 -54
  623. package/dist/shared/hx-textarea-CK621vSL.js.map +1 -0
  624. package/dist/shared/{hx-theme-pc1V7dyL.js → hx-theme-DfEy-SJA.js} +72 -64
  625. package/dist/shared/hx-theme-DfEy-SJA.js.map +1 -0
  626. package/dist/shared/{hx-time-picker-MZyLQPW9.js → hx-time-picker-tPUfgElQ.js} +264 -35
  627. package/dist/shared/hx-time-picker-tPUfgElQ.js.map +1 -0
  628. package/dist/shared/{hx-toggle-button-ClyNYNVI.js → hx-toggle-button-L-uBJr-a.js} +9 -10
  629. package/dist/shared/hx-toggle-button-L-uBJr-a.js.map +1 -0
  630. package/dist/shared/{hx-tooltip-ByWT987R.js → hx-tooltip-B_zfKvwc.js} +22 -23
  631. package/dist/shared/hx-tooltip-B_zfKvwc.js.map +1 -0
  632. package/dist/shared/{hx-top-nav-k7hY78kt.js → hx-top-nav-CATbRvIv.js} +24 -22
  633. package/dist/shared/hx-top-nav-CATbRvIv.js.map +1 -0
  634. package/dist/shared/{hx-tree-item-D0ZphA45.js → hx-tree-item-A45WCiBu.js} +29 -9
  635. package/dist/shared/hx-tree-item-A45WCiBu.js.map +1 -0
  636. package/dist/shared/hx-visually-hidden-0bZKOWgT.js +66 -0
  637. package/dist/shared/hx-visually-hidden-0bZKOWgT.js.map +1 -0
  638. package/dist/shared/id-counter-DuX8vsui.js +11 -0
  639. package/dist/shared/{id-counter-PTgF-zcG.js.map → id-counter-DuX8vsui.js.map} +1 -1
  640. package/dist/shared/{toast-factory-Cwd0PihS.js → toast-factory-BPPnG3mM.js} +23 -24
  641. package/dist/shared/toast-factory-BPPnG3mM.js.map +1 -0
  642. package/dist/utilities/injectLightStyles.d.ts.map +1 -1
  643. package/dist/utilities/sanitizeCss.d.ts +43 -0
  644. package/dist/utilities/sanitizeCss.d.ts.map +1 -0
  645. package/package.json +29 -13
  646. package/dist/shared/FormMixin-Bjvw20G5.js.map +0 -1
  647. package/dist/shared/document-token-adoption-DuYNKd4k.js +0 -21
  648. package/dist/shared/document-token-adoption-DuYNKd4k.js.map +0 -1
  649. package/dist/shared/helix-element-BJh1Ffvi.js.map +0 -1
  650. package/dist/shared/hx-accordion-SlwR2C6S.js.map +0 -1
  651. package/dist/shared/hx-action-bar-CNLYufVd.js.map +0 -1
  652. package/dist/shared/hx-alert-DdlSyJGk.js.map +0 -1
  653. package/dist/shared/hx-avatar-an-WsuLl.js.map +0 -1
  654. package/dist/shared/hx-badge-B_PzGlUo.js.map +0 -1
  655. package/dist/shared/hx-banner-D8AxkCfc.js.map +0 -1
  656. package/dist/shared/hx-breadcrumb-item-BCUIvpYX.js.map +0 -1
  657. package/dist/shared/hx-button-BzqsDHmZ.js.map +0 -1
  658. package/dist/shared/hx-button-group-a5Pb_9fU.js.map +0 -1
  659. package/dist/shared/hx-card-DYlaxQy0.js.map +0 -1
  660. package/dist/shared/hx-carousel-item-KQfCekKF.js.map +0 -1
  661. package/dist/shared/hx-checkbox-DyDbR1B9.js.map +0 -1
  662. package/dist/shared/hx-checkbox-group-C8TaFqy0.js.map +0 -1
  663. package/dist/shared/hx-clinical-status-dDyk5oj1.js.map +0 -1
  664. package/dist/shared/hx-code-snippet-DasrRF9k.js.map +0 -1
  665. package/dist/shared/hx-color-picker-zv6wtok4.js.map +0 -1
  666. package/dist/shared/hx-combobox-C-DVLFpu.js +0 -535
  667. package/dist/shared/hx-combobox-C-DVLFpu.js.map +0 -1
  668. package/dist/shared/hx-container-BwWbMPTH.js.map +0 -1
  669. package/dist/shared/hx-copy-button-DikpbhWY.js.map +0 -1
  670. package/dist/shared/hx-counter-_m4cq45V.js.map +0 -1
  671. package/dist/shared/hx-data-table-609C-e9w.js.map +0 -1
  672. package/dist/shared/hx-date-picker-Bh8410Sf.js +0 -618
  673. package/dist/shared/hx-date-picker-Bh8410Sf.js.map +0 -1
  674. package/dist/shared/hx-dialog-D_DeqcNS.js.map +0 -1
  675. package/dist/shared/hx-divider-lfOMElo2.js.map +0 -1
  676. package/dist/shared/hx-drawer-NleCbKuN.js.map +0 -1
  677. package/dist/shared/hx-dropdown-CA9WYdhm.js.map +0 -1
  678. package/dist/shared/hx-field-Duiib9Bj.js.map +0 -1
  679. package/dist/shared/hx-field-label-Dud-psvE.js.map +0 -1
  680. package/dist/shared/hx-file-upload-CmCCAvej.js.map +0 -1
  681. package/dist/shared/hx-form-BM6PHsw3.js.map +0 -1
  682. package/dist/shared/hx-format-date-B7L9odbA.js.map +0 -1
  683. package/dist/shared/hx-grid-BIAR5h9m.js.map +0 -1
  684. package/dist/shared/hx-help-text-DARi-Pfp.js.map +0 -1
  685. package/dist/shared/hx-icon-jWcGmn66.js.map +0 -1
  686. package/dist/shared/hx-image-DOjPp-K5.js.map +0 -1
  687. package/dist/shared/hx-link-DCBct0f4.js.map +0 -1
  688. package/dist/shared/hx-list-Dnei26t4.js.map +0 -1
  689. package/dist/shared/hx-menu-divider-DVWER7iT.js.map +0 -1
  690. package/dist/shared/hx-meter-ChZdWNF2.js.map +0 -1
  691. package/dist/shared/hx-nav-CHX1JOWB.js.map +0 -1
  692. package/dist/shared/hx-nav-item-CRAESq9s.js.map +0 -1
  693. package/dist/shared/hx-number-input-Cm682AVP.js.map +0 -1
  694. package/dist/shared/hx-overflow-menu-BDl6QfUD.js.map +0 -1
  695. package/dist/shared/hx-pagination-BNtx-LG6.js.map +0 -1
  696. package/dist/shared/hx-patient-banner-B4IjHeTx.js.map +0 -1
  697. package/dist/shared/hx-phi-field-DD1qcBSO.js.map +0 -1
  698. package/dist/shared/hx-popover-ZGRFgBbx.js.map +0 -1
  699. package/dist/shared/hx-popup-Cc4qz89i.js.map +0 -1
  700. package/dist/shared/hx-progress-bar-BY1uE6bN.js.map +0 -1
  701. package/dist/shared/hx-progress-ring-Cs0WgWDJ.js.map +0 -1
  702. package/dist/shared/hx-radio-YEEsbUPN.js.map +0 -1
  703. package/dist/shared/hx-rating-DjUJTT0M.js.map +0 -1
  704. package/dist/shared/hx-select-DZ7wfcJx.js.map +0 -1
  705. package/dist/shared/hx-skeleton-aqa-gr1S.js.map +0 -1
  706. package/dist/shared/hx-slider-DAilFrR_.js.map +0 -1
  707. package/dist/shared/hx-spinner-Dw3cRY-9.js.map +0 -1
  708. package/dist/shared/hx-split-button-Dk-zMDDo.js.map +0 -1
  709. package/dist/shared/hx-split-panel-Kdp4BiLz.js.map +0 -1
  710. package/dist/shared/hx-stack-B76_1O6g.js.map +0 -1
  711. package/dist/shared/hx-stat-DKlyBL_K.js.map +0 -1
  712. package/dist/shared/hx-status-indicator-DWSM0Ctm.js.map +0 -1
  713. package/dist/shared/hx-step-CuoOvcI8.js.map +0 -1
  714. package/dist/shared/hx-structured-list-CQCD7bCT.js.map +0 -1
  715. package/dist/shared/hx-style-scope-CsQ2Phf_.js +0 -126
  716. package/dist/shared/hx-style-scope-CsQ2Phf_.js.map +0 -1
  717. package/dist/shared/hx-switch-BdxKN9WM.js.map +0 -1
  718. package/dist/shared/hx-tab-panel-CwClQoWP.js.map +0 -1
  719. package/dist/shared/hx-tag-BL5qJJCN.js.map +0 -1
  720. package/dist/shared/hx-td-CzSvVKdp.js.map +0 -1
  721. package/dist/shared/hx-text-DcWBqZwx.js.map +0 -1
  722. package/dist/shared/hx-text-input-BfMrvN9N.js.map +0 -1
  723. package/dist/shared/hx-textarea-C-i_Vam6.js.map +0 -1
  724. package/dist/shared/hx-theme-pc1V7dyL.js.map +0 -1
  725. package/dist/shared/hx-time-picker-MZyLQPW9.js.map +0 -1
  726. package/dist/shared/hx-toggle-button-ClyNYNVI.js.map +0 -1
  727. package/dist/shared/hx-tooltip-ByWT987R.js.map +0 -1
  728. package/dist/shared/hx-top-nav-k7hY78kt.js.map +0 -1
  729. package/dist/shared/hx-tree-item-D0ZphA45.js.map +0 -1
  730. package/dist/shared/hx-visually-hidden-vKX8QjeX.js +0 -54
  731. package/dist/shared/hx-visually-hidden-vKX8QjeX.js.map +0 -1
  732. package/dist/shared/id-counter-PTgF-zcG.js +0 -15
  733. package/dist/shared/toast-factory-Cwd0PihS.js.map +0 -1
  734. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts +0 -12
  735. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts.map +0 -1
  736. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts +0 -13
  737. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts.map +0 -1
  738. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts +0 -13
  739. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts.map +0 -1
  740. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts +0 -12
  741. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts.map +0 -1
  742. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts +0 -13
  743. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts.map +0 -1
  744. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts +0 -12
  745. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts.map +0 -1
  746. package/dist/tools/cem-a11y-analyzer/index.d.ts +0 -14
  747. package/dist/tools/cem-a11y-analyzer/index.d.ts.map +0 -1
  748. package/dist/tools/cem-a11y-analyzer/reporter.d.ts +0 -6
  749. package/dist/tools/cem-a11y-analyzer/reporter.d.ts.map +0 -1
  750. package/dist/tools/cem-a11y-analyzer/scorer.d.ts +0 -22
  751. package/dist/tools/cem-a11y-analyzer/scorer.d.ts.map +0 -1
  752. package/dist/tools/cem-a11y-analyzer/types.d.ts +0 -171
  753. package/dist/tools/cem-a11y-analyzer/types.d.ts.map +0 -1
@@ -18,7 +18,7 @@
18
18
  display: flex;
19
19
  flex-direction: column;
20
20
  gap: var(--hx-space-1, 0.25rem);
21
- font-family: var(--hx-font-family-sans, sans-serif);
21
+ font-family: var(--hx-checkbox-font-family, var(--hx-font-family-sans, sans-serif));
22
22
  }
23
23
 
24
24
  /* ─── Control (checkbox + label row) ─── */
@@ -60,7 +60,7 @@
60
60
  width: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
61
61
  height: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
62
62
  border: var(--hx-border-width-medium, 2px) solid
63
- var(--hx-checkbox-border-color, var(--hx-color-neutral-300, #ced4da));
63
+ var(--hx-checkbox-border-color, var(--hx-color-neutral-300, #cbd5e1));
64
64
  border-radius: var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, 0.25rem));
65
65
  background-color: var(--hx-checkbox-bg, var(--hx-color-neutral-0, #ffffff));
66
66
  transition:
@@ -98,13 +98,13 @@
98
98
  /* ─── Error State ─── */
99
99
 
100
100
  .checkbox--error .checkbox__box {
101
- border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
101
+ border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc2626));
102
102
  }
103
103
 
104
104
  .checkbox--error.checkbox--checked .checkbox__box,
105
105
  .checkbox--error.checkbox--indeterminate .checkbox__box {
106
- background-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
107
- border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
106
+ background-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc2626));
107
+ border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc2626));
108
108
  }
109
109
 
110
110
  /* ─── Hover ─── */
@@ -122,7 +122,7 @@
122
122
  }
123
123
 
124
124
  .checkbox--error .checkbox__control:hover .checkbox__box {
125
- border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
125
+ border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc2626));
126
126
  }
127
127
 
128
128
  /* ─── Checkmark Icon ─── */
@@ -151,7 +151,7 @@
151
151
  .checkbox__label {
152
152
  font-size: var(--hx-font-size-sm, 0.875rem);
153
153
  font-weight: var(--hx-font-weight-medium, 500);
154
- color: var(--hx-checkbox-label-color, var(--hx-color-neutral-700, #343a40));
154
+ color: var(--hx-checkbox-label-color, var(--hx-color-neutral-700, #334155));
155
155
  line-height: var(--hx-line-height-normal, 1.5);
156
156
  user-select: none;
157
157
  -webkit-user-select: none;
@@ -166,7 +166,7 @@
166
166
 
167
167
  .checkbox__help-text {
168
168
  font-size: var(--hx-font-size-xs, 0.75rem);
169
- color: var(--hx-checkbox-help-text-color, var(--hx-color-neutral-500, #6c757d));
169
+ color: var(--hx-checkbox-help-text-color, var(--hx-color-neutral-500, #64748b));
170
170
  line-height: var(--hx-line-height-normal, 1.5);
171
171
  padding-inline-start: calc(
172
172
  var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) + var(--hx-space-2, 0.5rem)
@@ -308,7 +308,7 @@
308
308
  display: flex;
309
309
  flex-direction: column;
310
310
  gap: var(--hx-space-2);
311
- font-family: var(--hx-font-family-sans);
311
+ font-family: var(--hx-checkbox-group-font-family, var(--hx-font-family-sans));
312
312
  }
313
313
 
314
314
  /* ─── Legend ─── */
@@ -325,81 +325,1182 @@
325
325
  margin-bottom: var(--hx-space-1);
326
326
  }
327
327
 
328
- .fieldset__required-marker {
329
- color: var(--hx-checkbox-group-error-color, var(--hx-color-error-500, #dc3545));
330
- font-weight: var(--hx-font-weight-bold);
328
+ .fieldset__required-marker {
329
+ color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
330
+ font-weight: var(--hx-font-weight-bold);
331
+ }
332
+
333
+ /* ─── Items Container ─── */
334
+
335
+ .fieldset__items {
336
+ display: flex;
337
+ flex-direction: column;
338
+ gap: var(--hx-checkbox-group-gap, var(--hx-space-3));
339
+ }
340
+
341
+ :host([orientation='horizontal']) .fieldset__items {
342
+ flex-direction: row;
343
+ flex-wrap: wrap;
344
+ }
345
+
346
+ /* ─── Error State ─── */
347
+
348
+ .fieldset--error .fieldset__legend {
349
+ color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
350
+ }
351
+
352
+ /* ─── Help Text & Error Messages ─── */
353
+
354
+ .fieldset__help-text {
355
+ font-size: var(--hx-font-size-xs);
356
+ color: var(--hx-checkbox-group-help-text-color, var(--hx-color-neutral-500));
357
+ line-height: var(--hx-line-height-normal);
358
+ }
359
+
360
+ .fieldset__error {
361
+ font-size: var(--hx-font-size-xs);
362
+ color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
363
+ line-height: var(--hx-line-height-normal);
364
+ }
365
+
366
+ /* ─── High Contrast Mode (forced-colors) ─── */
367
+
368
+ @media (forced-colors: active) {
369
+ .fieldset {
370
+ border: none;
371
+ }
372
+
373
+ .fieldset__legend {
374
+ color: CanvasText;
375
+ }
376
+
377
+ .fieldset--error .fieldset__legend {
378
+ color: LinkText;
379
+ }
380
+
381
+ :host([disabled]) {
382
+ opacity: 1;
383
+ }
384
+
385
+ :host([disabled]) .fieldset__legend {
386
+ color: GrayText;
387
+ }
388
+
389
+ .fieldset__help-text {
390
+ color: GrayText;
391
+ }
392
+
393
+ .fieldset__error {
394
+ color: LinkText;
395
+ }
396
+ }
397
+ /* ── hx-color-picker ── */
398
+ :host {
399
+ display: inline-block;
400
+ position: relative;
401
+ font-family: var(--hx-font-family-sans, sans-serif);
402
+ font-size: var(--hx-font-size-sm, 0.875rem);
403
+ }
404
+ :host([disabled]) {
405
+ pointer-events: none;
406
+ opacity: var(--hx-opacity-disabled, 0.5);
407
+ }
408
+ .trigger {
409
+ display: inline-flex;
410
+ align-items: center;
411
+ gap: var(--hx-space-2, 0.5rem);
412
+ padding: var(--hx-space-1, 0.25rem);
413
+ border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #cbd5e1);
414
+ border-radius: var(--hx-border-radius-md, 0.375rem);
415
+ background: var(--hx-color-neutral-0, #ffffff);
416
+ cursor: pointer;
417
+ transition: border-color var(--hx-transition-fast, 150ms ease);
418
+ }
419
+ .trigger:hover:not([disabled]) {
420
+ border-color: var(--hx-color-primary-500, #2563eb);
421
+ }
422
+ :is(.trigger, .gradient-grid, .slider-track, .swatch-btn, .format-btn):focus-visible {
423
+ outline: var(--hx-focus-ring-width, 2px) solid
424
+ var(--hx-focus-ring-color, var(--hx-color-primary-500));
425
+ outline-offset: var(--hx-focus-ring-offset, 2px);
426
+ }
427
+ .trigger-swatch {
428
+ width: 1.5rem;
429
+ height: 1.5rem;
430
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
431
+ border: var(--hx-border-width-thin, 1px) solid
432
+ var(--hx-color-picker-swatch-border, var(--hx-overlay-black-10, rgba(0, 0, 0, 0.1)));
433
+ background: var(--_preview-color, #000);
434
+ display: block;
435
+ flex-shrink: 0;
436
+ }
437
+ .trigger-label {
438
+ font-size: var(--hx-font-size-sm, 0.875rem);
439
+ color: var(--hx-color-neutral-700, #334155);
440
+ font-family: var(--hx-font-family-mono, monospace);
441
+ white-space: nowrap;
442
+ }
443
+ .panel {
444
+ position: absolute;
445
+ z-index: var(--hx-color-picker-z-index, 1000);
446
+ top: calc(100% + 4px);
447
+ left: 0;
448
+ background: var(--hx-color-neutral-0, #ffffff);
449
+ border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e2e8f0);
450
+ border-radius: var(--hx-border-radius-lg, 0.5rem);
451
+ box-shadow: 0 8px 24px
452
+ var(--hx-color-picker-panel-shadow, var(--hx-overlay-black-15, rgba(0, 0, 0, 0.15)));
453
+ padding: var(--hx-space-4, 1rem);
454
+ width: var(--hx-color-picker-width, 260px);
455
+ display: flex;
456
+ flex-direction: column;
457
+ gap: var(--hx-space-3, 0.75rem);
458
+ outline: none;
459
+ }
460
+ :host([inline]) .panel {
461
+ position: static;
462
+ box-shadow: none;
463
+ border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e2e8f0);
464
+ border-radius: var(--hx-border-radius-lg, 0.5rem);
465
+ }
466
+ .gradient-grid {
467
+ position: relative;
468
+ width: 100%;
469
+ height: var(--hx-color-picker-grid-height, 160px);
470
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
471
+ cursor: crosshair;
472
+ overflow: hidden;
473
+ touch-action: none;
474
+ flex-shrink: 0;
475
+ }
476
+ .gradient-grid-bg {
477
+ position: absolute;
478
+ inset: 0;
479
+ background:
480
+ linear-gradient(to bottom, transparent, #000),
481
+ linear-gradient(to right, #fff, var(--_hue-color, hsl(0, 100%, 50%)));
482
+ pointer-events: none;
483
+ }
484
+ .gradient-thumb {
485
+ position: absolute;
486
+ width: 12px;
487
+ height: 12px;
488
+ border-radius: 50%;
489
+ border: none;
490
+ box-shadow:
491
+ 0 0 0 2px var(--hx-color-picker-thumb-border, var(--hx-color-neutral-0, #ffffff)),
492
+ 0 0 0 3px var(--hx-color-picker-thumb-shadow, var(--hx-overlay-black-30, rgba(0, 0, 0, 0.3)));
493
+ transform: translate(-50%, -50%);
494
+ pointer-events: none;
495
+ top: var(--_thumb-y, 0%);
496
+ left: var(--_thumb-x, 100%);
497
+ }
498
+ .slider-track {
499
+ position: relative;
500
+ width: 100%;
501
+ height: 12px;
502
+ border-radius: 6px;
503
+ cursor: pointer;
504
+ touch-action: none;
505
+ flex-shrink: 0;
506
+ }
507
+ .hue-track {
508
+ background: linear-gradient(
509
+ to right,
510
+ red,
511
+ #ff8000,
512
+ #ff0,
513
+ #80ff00,
514
+ #0f0,
515
+ #00ff80,
516
+ #0ff,
517
+ #0080ff,
518
+ #00f,
519
+ #7f00ff,
520
+ #f0f,
521
+ #ff0080,
522
+ red
523
+ );
524
+ }
525
+ .opacity-track {
526
+ background-image:
527
+ linear-gradient(to right, transparent, var(--_hue-color, hsl(0, 100%, 50%))),
528
+ repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 0 0 / 12px 12px;
529
+ }
530
+ .slider-thumb {
531
+ position: absolute;
532
+ top: 50%;
533
+ width: 16px;
534
+ height: 16px;
535
+ border-radius: 50%;
536
+ border: none;
537
+ box-shadow:
538
+ 0 0 0 2px var(--hx-color-picker-thumb-border, var(--hx-color-neutral-0, #ffffff)),
539
+ 0 0 0 3px var(--hx-color-picker-thumb-shadow, var(--hx-overlay-black-30, rgba(0, 0, 0, 0.3)));
540
+ transform: translate(-50%, -50%);
541
+ pointer-events: none;
542
+ left: var(--_slider-pct, 0%);
543
+ background: var(--_thumb-color, hsl(0, 100%, 50%));
544
+ }
545
+ .swatches {
546
+ display: flex;
547
+ flex-wrap: wrap;
548
+ gap: var(--hx-space-1, 0.25rem);
549
+ }
550
+ .swatch-btn {
551
+ width: 20px;
552
+ height: 20px;
553
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
554
+ border: var(--hx-border-width-thin, 1px) solid
555
+ var(--hx-color-picker-swatch-border, var(--hx-overlay-black-10, rgba(0, 0, 0, 0.1)));
556
+ cursor: pointer;
557
+ padding: 0;
558
+ flex-shrink: 0;
559
+ transition: transform var(--hx-transition-fast, 150ms ease);
560
+ }
561
+ .swatch-btn:hover {
562
+ transform: scale(1.15);
563
+ border-color: var(
564
+ --hx-color-picker-swatch-border-hover,
565
+ var(--hx-overlay-black-30, rgba(0, 0, 0, 0.3))
566
+ );
567
+ }
568
+ .input-area {
569
+ display: flex;
570
+ align-items: center;
571
+ gap: var(--hx-space-2, 0.5rem);
572
+ }
573
+ .format-btn {
574
+ flex-shrink: 0;
575
+ padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
576
+ background: var(--hx-color-neutral-100, #f1f5f9);
577
+ border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #cbd5e1);
578
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
579
+ cursor: pointer;
580
+ font-size: var(--hx-font-size-xs, 0.75rem);
581
+ color: var(--hx-color-neutral-600, #475569);
582
+ text-transform: uppercase;
583
+ font-weight: var(--hx-font-weight-semibold, 600);
584
+ letter-spacing: 0.05em;
585
+ }
586
+ .color-input {
587
+ flex: 1;
588
+ min-width: 0;
589
+ padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
590
+ border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #cbd5e1);
591
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
592
+ font-family: var(--hx-font-family-mono, monospace);
593
+ font-size: var(--hx-font-size-sm, 0.875rem);
594
+ color: var(--hx-color-neutral-900, #0f172a);
595
+ background: var(--hx-color-neutral-0, #ffffff);
596
+ outline: none;
597
+ }
598
+ .color-input:focus-visible {
599
+ border-color: var(--hx-focus-ring-color, var(--hx-color-primary-500));
600
+ box-shadow: 0 0 0 2px
601
+ color-mix(in srgb, var(--hx-focus-ring-color, var(--hx-color-primary-500)) 20%, transparent);
602
+ }
603
+ .input-preview {
604
+ width: 24px;
605
+ height: 24px;
606
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
607
+ border: var(--hx-border-width-thin, 1px) solid
608
+ var(--hx-color-picker-swatch-border, var(--hx-overlay-black-10, rgba(0, 0, 0, 0.1)));
609
+ background: var(--_preview-color, #000);
610
+ flex-shrink: 0;
611
+ }
612
+ @media (prefers-reduced-motion: reduce) {
613
+ .trigger,
614
+ .swatch-btn {
615
+ transition: none;
616
+ }
617
+ }
618
+ @media (forced-colors: active) {
619
+ .trigger {
620
+ forced-color-adjust: none;
621
+ background-color: Field;
622
+ color: FieldText;
623
+ border: 2px solid ButtonText;
624
+ }
625
+ .trigger:hover:not([disabled]) {
626
+ border-color: Highlight;
627
+ }
628
+ :is(.trigger, .gradient-grid, .slider-track, .swatch-btn, .format-btn):focus-visible {
629
+ outline-color: Highlight;
630
+ }
631
+ .panel {
632
+ forced-color-adjust: none;
633
+ background-color: Canvas;
634
+ border: 2px solid CanvasText;
635
+ box-shadow: none;
636
+ }
637
+ .gradient-thumb,
638
+ .slider-thumb {
639
+ box-shadow: 0 0 0 2px CanvasText;
640
+ }
641
+ .swatch-btn {
642
+ border: 2px solid ButtonText;
643
+ }
644
+ .swatch-btn:hover {
645
+ border-color: Highlight;
646
+ }
647
+ .color-input {
648
+ forced-color-adjust: none;
649
+ background-color: Field;
650
+ color: FieldText;
651
+ border: 2px solid ButtonText;
652
+ }
653
+ .color-input:focus-visible {
654
+ border-color: Highlight;
655
+ box-shadow: none;
656
+ }
657
+ .format-btn {
658
+ forced-color-adjust: none;
659
+ background-color: ButtonFace;
660
+ color: ButtonText;
661
+ border: 2px solid ButtonText;
662
+ }
663
+ .trigger-label {
664
+ color: FieldText;
665
+ }
666
+ :host([disabled]) {
667
+ opacity: 1;
668
+ }
669
+ :host([disabled]) .trigger {
670
+ border-color: GrayText;
671
+ color: GrayText;
672
+ }
673
+ }
674
+ /* ── hx-combobox ── */
675
+ :host {
676
+ display: block;
677
+ }
678
+ :host([disabled]) {
679
+ opacity: var(--hx-opacity-disabled, 0.5);
680
+ pointer-events: none;
681
+ }
682
+ * {
683
+ box-sizing: border-box;
684
+ }
685
+ .field {
686
+ display: flex;
687
+ flex-direction: column;
688
+ gap: var(--hx-space-1, 0.25rem);
689
+ font-family: var(--hx-combobox-font-family, var(--hx-font-family-sans, sans-serif));
690
+ position: relative;
691
+ }
692
+ .field__label {
693
+ display: flex;
694
+ align-items: baseline;
695
+ gap: var(--hx-space-1, 0.25rem);
696
+ font-size: var(--hx-font-size-sm, 0.875rem);
697
+ font-weight: var(--hx-font-weight-medium, 500);
698
+ color: var(--hx-combobox-label-color, var(--hx-color-neutral-700, #334155));
699
+ line-height: var(--hx-line-height-normal, 1.5);
700
+ }
701
+ .field__required-marker {
702
+ color: var(--hx-combobox-error-color, var(--hx-color-error-text, #b91c1c));
703
+ font-weight: var(--hx-font-weight-bold, 700);
704
+ }
705
+ .field__input-wrapper {
706
+ position: relative;
707
+ display: flex;
708
+ align-items: center;
709
+ border: var(--hx-border-width-thin, 1px) solid
710
+ var(--hx-combobox-border-color, var(--hx-color-neutral-300, #cbd5e1));
711
+ border-radius: var(--hx-combobox-border-radius, var(--hx-border-radius-md, 0.375rem));
712
+ background-color: var(--hx-combobox-bg, var(--hx-color-neutral-0, #ffffff));
713
+ transition:
714
+ border-color var(--hx-transition-fast, 150ms ease),
715
+ box-shadow var(--hx-transition-fast, 150ms ease);
716
+ }
717
+ .field__input-wrapper:focus-within {
718
+ border-color: var(
719
+ --hx-combobox-focus-ring-color,
720
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
721
+ );
722
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
723
+ color-mix(
724
+ in srgb,
725
+ var(
726
+ --hx-combobox-focus-ring-color,
727
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
728
+ )
729
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
730
+ transparent
731
+ );
732
+ }
733
+ .field--error .field__input-wrapper {
734
+ border-color: var(--hx-combobox-error-color, var(--hx-color-error-500, #dc2626));
735
+ }
736
+ .field--error .field__input-wrapper:focus-within {
737
+ border-color: var(--hx-combobox-error-color, var(--hx-color-error-500, #dc2626));
738
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
739
+ color-mix(
740
+ in srgb,
741
+ var(--hx-combobox-error-color, var(--hx-color-error-500, #dc2626))
742
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
743
+ transparent
744
+ );
745
+ }
746
+ .field__prefix,
747
+ .field__suffix {
748
+ display: flex;
749
+ align-items: center;
750
+ padding: 0 var(--hx-space-2, 0.5rem);
751
+ color: var(--hx-color-neutral-500, #64748b);
752
+ flex-shrink: 0;
753
+ }
754
+ .field__input {
755
+ flex: 1;
756
+ min-width: 0;
757
+ min-height: var(--hx-input-height-md, var(--hx-size-10, 2.5rem));
758
+ border: none;
759
+ background: transparent;
760
+ outline: none;
761
+ font-family: inherit;
762
+ font-size: var(--hx-font-size-md, 1rem);
763
+ line-height: var(--hx-line-height-normal, 1.5);
764
+ color: var(--hx-combobox-color, var(--hx-color-neutral-800, #1e293b));
765
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
766
+ }
767
+ .field__input::placeholder {
768
+ color: var(--hx-color-neutral-400, #94a3b8);
769
+ }
770
+ .field__input--sm {
771
+ min-height: var(--hx-input-height-sm, var(--hx-size-8, 2rem));
772
+ font-size: var(--hx-font-size-sm, 0.875rem);
773
+ padding: var(--hx-space-1, 0.25rem) var(--hx-space-3, 0.75rem);
774
+ }
775
+ .field__input--lg {
776
+ min-height: var(--hx-input-height-lg, var(--hx-size-12, 3rem));
777
+ font-size: var(--hx-font-size-lg, 1.125rem);
778
+ padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);
779
+ }
780
+ .field__clear-button,
781
+ .field__loading-indicator {
782
+ display: flex;
783
+ align-items: center;
784
+ justify-content: center;
785
+ margin-inline-end: var(--hx-space-2, 0.5rem);
786
+ flex-shrink: 0;
787
+ color: var(--hx-color-neutral-400, #94a3b8);
788
+ }
789
+ .field__clear-button {
790
+ width: 1.25rem;
791
+ height: 1.25rem;
792
+ border: none;
793
+ background: transparent;
794
+ cursor: pointer;
795
+ padding: 0;
796
+ border-radius: var(--hx-border-radius-full, 9999px);
797
+ transition: color var(--hx-transition-fast, 150ms ease);
798
+ }
799
+ .field__clear-button:hover {
800
+ color: var(--hx-color-neutral-700, #334155);
801
+ }
802
+ .field__clear-button:focus-visible {
803
+ outline: var(--hx-focus-ring-width, 2px) solid
804
+ var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
805
+ outline-offset: var(--hx-focus-ring-offset, 2px);
806
+ }
807
+ .field__loading-indicator {
808
+ width: 1rem;
809
+ height: 1rem;
810
+ }
811
+ .field__loading-spinner {
812
+ width: 1rem;
813
+ height: 1rem;
814
+ border: 2px solid currentColor;
815
+ border-top-color: transparent;
816
+ border-radius: 50%;
817
+ animation: hx-spin 0.7s linear infinite;
818
+ }
819
+ @keyframes hx-spin {
820
+ to {
821
+ transform: rotate(360deg);
822
+ }
823
+ }
824
+ @media (prefers-reduced-motion: reduce) {
825
+ .field__loading-spinner {
826
+ animation: none;
827
+ }
828
+ }
829
+ .field__listbox {
830
+ position: absolute;
831
+ top: calc(100% + var(--hx-space-1, 0.25rem));
832
+ left: 0;
833
+ right: 0;
834
+ z-index: var(--hx-z-index-dropdown, 1000);
835
+ background-color: var(--hx-combobox-listbox-bg, var(--hx-color-neutral-0, #ffffff));
836
+ border: var(--hx-border-width-thin, 1px) solid
837
+ var(--hx-combobox-border-color, var(--hx-color-neutral-300, #cbd5e1));
838
+ border-radius: var(--hx-combobox-border-radius, var(--hx-border-radius-md, 0.375rem));
839
+ box-shadow: var(
840
+ --hx-combobox-listbox-shadow,
841
+ 0 4px 16px color-mix(in srgb, var(--hx-color-neutral-900, #0f172a) 12%, transparent)
842
+ );
843
+ max-height: var(--hx-combobox-listbox-max-height, 16rem);
844
+ overflow: hidden;
845
+ display: flex;
846
+ flex-direction: column;
847
+ }
848
+ .field__listbox[hidden] {
849
+ display: none;
850
+ }
851
+ .field__options {
852
+ overflow-y: auto;
853
+ flex: 1;
854
+ padding: var(--hx-space-1, 0.25rem) 0;
855
+ }
856
+ .field__option {
857
+ display: flex;
858
+ align-items: center;
859
+ gap: var(--hx-space-2, 0.5rem);
860
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
861
+ font-size: var(--hx-font-size-md, 1rem);
862
+ color: var(--hx-combobox-color, var(--hx-color-neutral-800, #1e293b));
863
+ cursor: pointer;
864
+ user-select: none;
865
+ -webkit-user-select: none;
866
+ transition: background-color var(--hx-transition-fast, 150ms ease);
867
+ }
868
+ .field__option:hover {
869
+ background-color: var(--hx-combobox-option-hover-bg, var(--hx-color-primary-50, #eff6ff));
870
+ }
871
+ .field__option--selected {
872
+ background-color: var(--hx-combobox-option-selected-bg, var(--hx-color-primary-100, #dbeafe));
873
+ font-weight: var(--hx-font-weight-medium, 500);
874
+ }
875
+ .field__option--focused {
876
+ background-color: var(--hx-combobox-option-hover-bg, var(--hx-color-primary-50, #eff6ff));
877
+ outline: var(--hx-focus-ring-width, 2px) solid
878
+ var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
879
+ outline-offset: var(--hx-combobox-option-focus-ring-offset, -2px);
880
+ }
881
+ .field__option--focused.field__option--selected {
882
+ background-color: var(--hx-combobox-option-selected-bg, var(--hx-color-primary-100, #dbeafe));
883
+ }
884
+ .field__option--disabled {
885
+ opacity: var(--hx-opacity-disabled, 0.5);
886
+ cursor: not-allowed;
887
+ pointer-events: none;
888
+ }
889
+ .field__option-label {
890
+ flex: 1;
891
+ white-space: nowrap;
892
+ overflow: hidden;
893
+ text-overflow: ellipsis;
894
+ }
895
+ .field__no-options {
896
+ padding: var(--hx-space-3, 0.75rem);
897
+ text-align: center;
898
+ color: var(--hx-color-neutral-400, #94a3b8);
899
+ font-size: var(--hx-font-size-sm, 0.875rem);
900
+ }
901
+ .field__sr-only {
902
+ position: absolute;
903
+ width: 1px;
904
+ height: 1px;
905
+ padding: 0;
906
+ margin: -1px;
907
+ overflow: hidden;
908
+ clip: rect(0, 0, 0, 0);
909
+ white-space: nowrap;
910
+ border: 0;
911
+ }
912
+ .field__help-text,
913
+ .field__error {
914
+ font-size: var(--hx-font-size-xs, 0.75rem);
915
+ line-height: var(--hx-line-height-normal, 1.5);
916
+ }
917
+ .field__help-text {
918
+ color: var(--hx-color-neutral-500, #64748b);
919
+ }
920
+ .field__error {
921
+ color: var(--hx-combobox-error-color, var(--hx-color-error-text, #b91c1c));
922
+ }
923
+ @media (prefers-reduced-motion: reduce) {
924
+ .field__input-wrapper,
925
+ .field__option,
926
+ .field__clear-button,
927
+ .field__chip-remove {
928
+ transition: none;
929
+ }
930
+ }
931
+ @media (forced-colors: active) {
932
+ .field__input-wrapper {
933
+ forced-color-adjust: none;
934
+ background-color: Field;
935
+ color: FieldText;
936
+ border: 2px solid ButtonText;
937
+ }
938
+ .field__input {
939
+ color: FieldText;
940
+ }
941
+ .field__input::placeholder {
942
+ color: GrayText;
943
+ }
944
+ .field__input-wrapper:focus-within {
945
+ border-color: Highlight;
946
+ box-shadow: none;
947
+ }
948
+ .field__listbox {
949
+ forced-color-adjust: none;
950
+ background-color: Canvas;
951
+ border: 2px solid CanvasText;
952
+ box-shadow: none;
953
+ }
954
+ .field__option {
955
+ color: CanvasText;
956
+ }
957
+ .field__option:hover {
958
+ background-color: Highlight;
959
+ color: HighlightText;
960
+ }
961
+ .field__option--selected {
962
+ background-color: Highlight;
963
+ color: HighlightText;
964
+ }
965
+ .field__option--focused {
966
+ outline-color: Highlight;
967
+ background-color: Highlight;
968
+ color: HighlightText;
969
+ }
970
+ .field__option--disabled {
971
+ color: GrayText;
972
+ opacity: 1;
973
+ }
974
+ .field__chip {
975
+ forced-color-adjust: none;
976
+ background-color: Highlight;
977
+ color: HighlightText;
978
+ border: 1px solid HighlightText;
979
+ }
980
+ .field__chip-remove:focus-visible {
981
+ outline-color: Highlight;
982
+ }
983
+ .field__clear-button:focus-visible {
984
+ outline-color: Highlight;
985
+ }
986
+ .field--error .field__input-wrapper {
987
+ border-color: LinkText;
988
+ }
989
+ :host([disabled]) {
990
+ opacity: 1;
991
+ }
992
+ :host([disabled]) .field__input-wrapper {
993
+ border-color: GrayText;
994
+ color: GrayText;
995
+ }
996
+ :host([disabled]) .field__input {
997
+ color: GrayText;
998
+ }
999
+ .field__label {
1000
+ color: CanvasText;
1001
+ }
1002
+ .field__help-text {
1003
+ color: GrayText;
1004
+ }
1005
+ .field__error {
1006
+ color: LinkText;
1007
+ }
1008
+ }
1009
+ :host([multiple]) .field__input-wrapper {
1010
+ flex-wrap: wrap;
1011
+ padding: var(--hx-space-1, 0.25rem);
1012
+ gap: var(--hx-space-1, 0.25rem);
1013
+ align-items: center;
1014
+ }
1015
+ :host([multiple]) .field__input {
1016
+ min-width: 8rem;
1017
+ padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
1018
+ flex-shrink: 1;
1019
+ }
1020
+ .field__chip {
1021
+ display: inline-flex;
1022
+ align-items: center;
1023
+ gap: var(--hx-space-1, 0.25rem);
1024
+ padding: 0 var(--hx-space-1, 0.25rem) 0 var(--hx-space-2, 0.5rem);
1025
+ height: 1.5rem;
1026
+ background-color: var(--hx-combobox-chip-bg, var(--hx-color-primary-100, #dbeafe));
1027
+ color: var(--hx-combobox-chip-color, var(--hx-color-primary-800, #1e3a8a));
1028
+ border-radius: var(--hx-border-radius-full, 9999px);
1029
+ font-size: var(--hx-font-size-sm, 0.875rem);
1030
+ white-space: nowrap;
1031
+ max-width: 12rem;
1032
+ flex-shrink: 0;
1033
+ }
1034
+ .field__chip-label {
1035
+ overflow: hidden;
1036
+ text-overflow: ellipsis;
1037
+ max-width: 8rem;
1038
+ }
1039
+ .field__chip-remove {
1040
+ display: inline-flex;
1041
+ align-items: center;
1042
+ justify-content: center;
1043
+ flex-shrink: 0;
1044
+ width: 1rem;
1045
+ height: 1rem;
1046
+ border: none;
1047
+ background: none;
1048
+ cursor: pointer;
1049
+ padding: 0;
1050
+ color: inherit;
1051
+ opacity: 0.7;
1052
+ border-radius: 50%;
1053
+ line-height: 1;
1054
+ transition: opacity var(--hx-transition-fast, 150ms ease);
1055
+ }
1056
+ .field__chip-remove:hover {
1057
+ opacity: 1;
1058
+ background-color: var(--hx-combobox-chip-remove-hover-bg, var(--hx-color-primary-200, #bfdbfe));
1059
+ }
1060
+ .field__chip-remove:focus-visible {
1061
+ outline: var(--hx-focus-ring-width, 2px) solid
1062
+ var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
1063
+ outline-offset: var(--hx-focus-ring-offset, 2px);
1064
+ opacity: 1;
1065
+ }
1066
+ /* ── hx-date-picker ── */
1067
+ /* ============================================================
1068
+ Host
1069
+ ============================================================ */
1070
+
1071
+ :host {
1072
+ display: block;
1073
+ position: relative;
1074
+ }
1075
+
1076
+ :host([disabled]) {
1077
+ opacity: var(--hx-opacity-disabled, 0.5);
1078
+ pointer-events: none;
1079
+ }
1080
+
1081
+ * {
1082
+ box-sizing: border-box;
1083
+ }
1084
+
1085
+ /* ============================================================
1086
+ Field layout
1087
+ ============================================================ */
1088
+
1089
+ .field {
1090
+ display: flex;
1091
+ flex-direction: column;
1092
+ gap: var(--hx-space-1, 0.25rem);
1093
+ font-family: var(--hx-date-picker-font-family, var(--hx-font-family-sans, sans-serif));
1094
+ position: relative;
1095
+ }
1096
+
1097
+ .field__label-wrapper {
1098
+ display: contents;
1099
+ }
1100
+
1101
+ .field__label {
1102
+ display: flex;
1103
+ align-items: baseline;
1104
+ gap: var(--hx-space-1, 0.25rem);
1105
+ font-size: var(--hx-font-size-sm, 0.875rem);
1106
+ font-weight: var(--hx-font-weight-medium, 500);
1107
+ color: var(--hx-date-picker-label-color, var(--hx-color-neutral-700, #334155));
1108
+ line-height: var(--hx-line-height-normal, 1.5);
1109
+ }
1110
+
1111
+ .field__required-marker {
1112
+ color: var(--hx-date-picker-error-color, var(--hx-color-error-text, #b91c1c));
1113
+ font-weight: var(--hx-font-weight-bold, 700);
1114
+ }
1115
+
1116
+ /* ============================================================
1117
+ Input wrapper
1118
+ ============================================================ */
1119
+
1120
+ .field__input-wrapper {
1121
+ display: flex;
1122
+ align-items: stretch;
1123
+ border: var(--hx-border-width-thin, 1px) solid
1124
+ var(--hx-date-picker-border-color, var(--hx-color-neutral-300, #cbd5e1));
1125
+ border-radius: var(--hx-date-picker-border-radius, var(--hx-border-radius-md, 0.375rem));
1126
+ background-color: var(--hx-date-picker-bg, var(--hx-color-neutral-0, #ffffff));
1127
+ transition:
1128
+ border-color var(--hx-transition-fast, 150ms ease),
1129
+ box-shadow var(--hx-transition-fast, 150ms ease);
1130
+ overflow: hidden;
1131
+ }
1132
+
1133
+ .field__input-wrapper:focus-within {
1134
+ border-color: var(
1135
+ --hx-date-picker-focus-ring-color,
1136
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
1137
+ );
1138
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
1139
+ color-mix(
1140
+ in srgb,
1141
+ var(
1142
+ --hx-date-picker-focus-ring-color,
1143
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
1144
+ )
1145
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
1146
+ transparent
1147
+ );
1148
+ }
1149
+
1150
+ .field--error .field__input-wrapper {
1151
+ border-color: var(--hx-date-picker-error-color, var(--hx-color-error-500, #dc2626));
1152
+ }
1153
+
1154
+ .field--error .field__input-wrapper:focus-within {
1155
+ border-color: var(--hx-date-picker-error-color, var(--hx-color-error-500, #dc2626));
1156
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
1157
+ color-mix(
1158
+ in srgb,
1159
+ var(--hx-date-picker-error-color, var(--hx-color-error-500, #dc2626))
1160
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
1161
+ transparent
1162
+ );
1163
+ }
1164
+
1165
+ /* ============================================================
1166
+ Input element
1167
+ ============================================================ */
1168
+
1169
+ .field__input {
1170
+ flex: 1;
1171
+ border: none;
1172
+ outline: none;
1173
+ background: transparent;
1174
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
1175
+ font-family: inherit;
1176
+ font-size: var(--hx-font-size-md, 1rem);
1177
+ color: var(--hx-date-picker-color, var(--hx-color-neutral-800, #1e293b));
1178
+ line-height: var(--hx-line-height-normal, 1.5);
1179
+ min-height: var(--hx-size-10, 2.5rem);
1180
+ width: 100%;
1181
+ cursor: default;
1182
+ }
1183
+
1184
+ .field__input::placeholder {
1185
+ color: var(--hx-color-neutral-400, #94a3b8);
1186
+ }
1187
+
1188
+ .field__input:disabled {
1189
+ cursor: not-allowed;
1190
+ }
1191
+
1192
+ /* ============================================================
1193
+ Calendar trigger button
1194
+ ============================================================ */
1195
+
1196
+ .field__trigger {
1197
+ display: flex;
1198
+ align-items: center;
1199
+ justify-content: center;
1200
+ padding: 0 var(--hx-space-3, 0.75rem);
1201
+ border: none;
1202
+ border-left: var(--hx-border-width-thin, 1px) solid
1203
+ var(--hx-date-picker-border-color, var(--hx-color-neutral-300, #cbd5e1));
1204
+ background: transparent;
1205
+ color: var(--hx-date-picker-trigger-color, var(--hx-color-neutral-500, #64748b));
1206
+ cursor: pointer;
1207
+ flex-shrink: 0;
1208
+ transition: color var(--hx-transition-fast, 150ms ease);
1209
+ outline: none;
1210
+ }
1211
+
1212
+ .field__trigger:focus-visible {
1213
+ color: var(
1214
+ --hx-date-picker-focus-ring-color,
1215
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
1216
+ );
1217
+ background-color: color-mix(
1218
+ in srgb,
1219
+ var(
1220
+ --hx-date-picker-focus-ring-color,
1221
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
1222
+ )
1223
+ 8%,
1224
+ transparent
1225
+ );
1226
+ }
1227
+
1228
+ .field__trigger:hover:not(:disabled) {
1229
+ color: var(--hx-date-picker-trigger-hover-color, var(--hx-color-neutral-700, #334155));
1230
+ background-color: color-mix(in srgb, var(--hx-color-neutral-900, #0f172a) 4%, transparent);
1231
+ }
1232
+
1233
+ .field__trigger:disabled {
1234
+ cursor: not-allowed;
1235
+ }
1236
+
1237
+ /* ============================================================
1238
+ Calendar popover
1239
+ ============================================================ */
1240
+
1241
+ .calendar {
1242
+ position: absolute;
1243
+ top: calc(100% + var(--hx-space-1, 0.25rem));
1244
+ left: 0;
1245
+ z-index: var(--hx-z-index-dropdown, 1000);
1246
+ min-width: var(--hx-date-picker-calendar-min-width, 18rem);
1247
+ background-color: var(--hx-date-picker-calendar-bg, var(--hx-color-neutral-0, #ffffff));
1248
+ border: var(--hx-border-width-thin, 1px) solid
1249
+ var(--hx-date-picker-calendar-border-color, var(--hx-color-neutral-200, #e2e8f0));
1250
+ border-radius: var(--hx-date-picker-calendar-border-radius, var(--hx-border-radius-lg, 0.5rem));
1251
+ box-shadow: var(
1252
+ --hx-date-picker-calendar-shadow,
1253
+ var(--hx-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1))
1254
+ );
1255
+ padding: var(--hx-space-3, 0.75rem);
1256
+ outline: none;
1257
+ }
1258
+
1259
+ @media (prefers-reduced-motion: no-preference) {
1260
+ .calendar {
1261
+ animation: calendar-appear var(--hx-transition-fast, 150ms ease) forwards;
1262
+ }
1263
+ }
1264
+
1265
+ @keyframes calendar-appear {
1266
+ 0% {
1267
+ opacity: 0;
1268
+ transform: translateY(-0.25rem);
1269
+ }
1270
+
1271
+ to {
1272
+ opacity: 1;
1273
+ transform: translateY(0);
1274
+ }
1275
+ }
1276
+
1277
+ /* ============================================================
1278
+ Calendar navigation
1279
+ ============================================================ */
1280
+
1281
+ .calendar__nav {
1282
+ display: flex;
1283
+ align-items: center;
1284
+ justify-content: space-between;
1285
+ margin-bottom: var(--hx-space-3, 0.75rem);
1286
+ }
1287
+
1288
+ :is(.calendar__nav-btn, .calendar__day, .calendar__day-cell, .calendar__weekday) {
1289
+ display: flex;
1290
+ align-items: center;
1291
+ justify-content: center;
1292
+ }
1293
+
1294
+ :is(.calendar__nav-btn, .calendar__day) {
1295
+ width: var(--hx-touch-target-min, 2.75rem);
1296
+ height: var(--hx-touch-target-min, 2.75rem);
1297
+ border: none;
1298
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
1299
+ background: transparent;
1300
+ cursor: pointer;
1301
+ outline: none;
1302
+ transition:
1303
+ background-color var(--hx-transition-fast, 150ms ease),
1304
+ color var(--hx-transition-fast, 150ms ease);
1305
+ }
1306
+
1307
+ .calendar__nav-btn {
1308
+ color: var(--hx-color-neutral-600, #475569);
1309
+ font-size: var(--hx-font-size-lg, 1.125rem);
1310
+ line-height: 1;
1311
+ }
1312
+
1313
+ .calendar__nav-btn:hover {
1314
+ background-color: var(--hx-color-neutral-100, #f1f5f9);
1315
+ color: var(--hx-color-neutral-900, #0f172a);
1316
+ }
1317
+
1318
+ :is(.calendar__nav-btn, .calendar__day):focus-visible {
1319
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
1320
+ var(
1321
+ --hx-date-picker-focus-ring-color,
1322
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
1323
+ );
1324
+ z-index: 1;
1325
+ }
1326
+
1327
+ .calendar__nav-btn:disabled {
1328
+ opacity: var(--hx-opacity-disabled, 0.5);
1329
+ cursor: not-allowed;
1330
+ pointer-events: none;
1331
+ }
1332
+
1333
+ .calendar__month-label {
1334
+ font-size: var(--hx-font-size-sm, 0.875rem);
1335
+ font-weight: var(--hx-font-weight-semibold, 600);
1336
+ color: var(--hx-color-neutral-800, #1e293b);
1337
+ flex: 1;
1338
+ text-align: center;
1339
+ }
1340
+
1341
+ /* ============================================================
1342
+ Calendar grid
1343
+ ============================================================ */
1344
+
1345
+ .calendar__grid {
1346
+ display: flex;
1347
+ flex-direction: column;
1348
+ gap: var(--hx-space-1, 0.25rem);
1349
+ }
1350
+
1351
+ .calendar__row {
1352
+ display: grid;
1353
+ grid-template-columns: repeat(7, 1fr);
1354
+ gap: var(--hx-space-1, 0.25rem);
1355
+ }
1356
+
1357
+ .calendar__weekday {
1358
+ height: var(--hx-size-8, 2rem);
1359
+ font-size: var(--hx-font-size-xs, 0.75rem);
1360
+ font-weight: var(--hx-font-weight-semibold, 600);
1361
+ color: var(--hx-color-neutral-500, #64748b);
1362
+ text-transform: uppercase;
1363
+ letter-spacing: 0.05em;
1364
+ }
1365
+
1366
+ /* ============================================================
1367
+ Calendar day cells
1368
+ ============================================================ */
1369
+
1370
+ .calendar__day {
1371
+ color: var(--hx-color-neutral-800, #1e293b);
1372
+ font-size: var(--hx-font-size-sm, 0.875rem);
1373
+ font-family: inherit;
1374
+ position: relative;
1375
+ }
1376
+
1377
+ .calendar__day:hover:not(.calendar__day--disabled):not(.calendar__day--selected) {
1378
+ background-color: var(--hx-color-neutral-100, #f1f5f9);
1379
+ color: var(--hx-color-neutral-900, #0f172a);
1380
+ }
1381
+
1382
+ .calendar__day--selected {
1383
+ background-color: var(--hx-date-picker-selected-bg, var(--hx-color-primary-500, #2563eb));
1384
+ color: var(--hx-date-picker-selected-color, var(--hx-color-neutral-0, #ffffff));
1385
+ font-weight: var(--hx-font-weight-semibold, 600);
1386
+ }
1387
+
1388
+ .calendar__day--selected:hover {
1389
+ background-color: var(--hx-date-picker-selected-hover-bg, var(--hx-color-primary-600, #1d4ed8));
331
1390
  }
332
1391
 
333
- /* ─── Items Container ─── */
1392
+ .calendar__day--today:not(.calendar__day--selected) {
1393
+ font-weight: var(--hx-font-weight-bold, 700);
1394
+ color: var(--hx-date-picker-today-color, var(--hx-color-primary-600, #1d4ed8));
1395
+ }
334
1396
 
335
- .fieldset__items {
336
- display: flex;
337
- flex-direction: column;
338
- gap: var(--hx-checkbox-group-gap, var(--hx-space-3));
1397
+ .calendar__day--today:not(.calendar__day--selected)::after {
1398
+ content: '';
1399
+ position: absolute;
1400
+ bottom: 0.2rem;
1401
+ left: 50%;
1402
+ transform: translate(-50%);
1403
+ width: 0.25rem;
1404
+ height: 0.25rem;
1405
+ border-radius: 50%;
1406
+ background-color: currentColor;
339
1407
  }
340
1408
 
341
- :host([orientation='horizontal']) .fieldset__items {
342
- flex-direction: row;
343
- flex-wrap: wrap;
1409
+ .calendar__day--disabled {
1410
+ opacity: var(--hx-opacity-disabled, 0.5);
1411
+ cursor: not-allowed;
1412
+ pointer-events: none;
344
1413
  }
345
1414
 
346
- /* ─── Error State ─── */
1415
+ /* ============================================================
1416
+ Live region (screen reader announcements)
1417
+ ============================================================ */
347
1418
 
348
- .fieldset--error .fieldset__legend {
349
- color: var(--hx-checkbox-group-error-color, var(--hx-color-error-500, #dc3545));
1419
+ .calendar__live-region {
1420
+ position: absolute;
1421
+ width: 1px;
1422
+ height: 1px;
1423
+ padding: 0;
1424
+ margin: -1px;
1425
+ overflow: hidden;
1426
+ clip: rect(0, 0, 0, 0);
1427
+ white-space: nowrap;
1428
+ border: 0;
350
1429
  }
351
1430
 
352
- /* ─── Help Text & Error Messages ─── */
1431
+ /* ============================================================
1432
+ Help text and error message
1433
+ ============================================================ */
353
1434
 
354
- .fieldset__help-text {
355
- font-size: var(--hx-font-size-xs);
356
- color: var(--hx-checkbox-group-help-text-color, var(--hx-color-neutral-500));
357
- line-height: var(--hx-line-height-normal);
1435
+ .field__help-text,
1436
+ .field__error {
1437
+ font-size: var(--hx-font-size-xs, 0.75rem);
1438
+ line-height: var(--hx-line-height-normal, 1.5);
358
1439
  }
359
1440
 
360
- .fieldset__error {
361
- font-size: var(--hx-font-size-xs);
362
- color: var(--hx-checkbox-group-error-color, var(--hx-color-error-500, #dc3545));
363
- line-height: var(--hx-line-height-normal);
1441
+ .field__help-text {
1442
+ color: var(--hx-color-neutral-500, #64748b);
364
1443
  }
365
1444
 
366
- /* ─── High Contrast Mode (forced-colors) ─── */
1445
+ .field__error {
1446
+ color: var(--hx-date-picker-error-color, var(--hx-color-error-text, #b91c1c));
1447
+ }
1448
+
1449
+ /* ============================================================
1450
+ Reduced motion
1451
+ ============================================================ */
1452
+
1453
+ @media (prefers-reduced-motion: reduce) {
1454
+ .field__input-wrapper,
1455
+ .field__trigger,
1456
+ .calendar__nav-btn,
1457
+ .calendar__day {
1458
+ transition: none;
1459
+ }
1460
+ }
1461
+
1462
+ /* ============================================================
1463
+ Forced colors (Windows High Contrast)
1464
+ ============================================================ */
367
1465
 
368
1466
  @media (forced-colors: active) {
369
- .fieldset {
370
- border: none;
1467
+ .field__input-wrapper {
1468
+ border: 1px solid ButtonText;
371
1469
  }
372
1470
 
373
- .fieldset__legend {
374
- color: CanvasText;
1471
+ .field__input-wrapper:focus-within {
1472
+ outline: 2px solid Highlight;
1473
+ outline-offset: 1px;
1474
+ box-shadow: none;
375
1475
  }
376
1476
 
377
- .fieldset--error .fieldset__legend {
378
- color: LinkText;
1477
+ :is(.calendar__day:focus-visible, .calendar__nav-btn:focus-visible) {
1478
+ outline: 2px solid Highlight;
1479
+ box-shadow: none;
379
1480
  }
380
1481
 
381
- :host([disabled]) {
382
- opacity: 1;
1482
+ .calendar__day--selected {
1483
+ background-color: Highlight;
1484
+ color: HighlightText;
1485
+ border: 1px solid Highlight;
383
1486
  }
384
1487
 
385
- :host([disabled]) .fieldset__legend {
386
- color: GrayText;
1488
+ .calendar__day--today:not(.calendar__day--selected) {
1489
+ border: 2px solid LinkText;
387
1490
  }
388
1491
 
389
- .fieldset__help-text {
1492
+ .calendar__day--today:not(.calendar__day--selected)::after {
1493
+ display: none;
1494
+ }
1495
+
1496
+ .calendar__day--disabled {
390
1497
  color: GrayText;
391
1498
  }
392
1499
 
393
- .fieldset__error {
394
- color: LinkText;
1500
+ .field--error .field__input-wrapper {
1501
+ border-color: LinkText;
395
1502
  }
396
1503
  }
397
- /* ── hx-color-picker ── */
398
- :host{display:inline-block;position:relative;font-family:var(--hx-font-family-sans, sans-serif);font-size:var(--hx-font-size-sm, .875rem)}:host([disabled]){pointer-events:none;opacity:var(--hx-opacity-disabled, .4)}.trigger{display:inline-flex;align-items:center;gap:var(--hx-space-2, .5rem);padding:var(--hx-space-1, .25rem);border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #d1d5db);border-radius:var(--hx-border-radius-md, .375rem);background:var(--hx-color-neutral-0, #fff);cursor:pointer;transition:border-color var(--hx-transition-fast, .15s ease)}.trigger:hover:not([disabled]){border-color:var(--hx-color-primary-500, #3b82f6)}:is(.trigger,.gradient-grid,.slider-track,.swatch-btn,.format-btn):focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, var(--hx-color-primary-500));outline-offset:var(--hx-focus-ring-offset, 2px)}.trigger-swatch{width:1.5rem;height:1.5rem;border-radius:var(--hx-border-radius-sm, .25rem);border:var(--hx-border-width-thin, 1px) solid var(--hx-color-picker-swatch-border, var(--hx-overlay-black-10, rgba(0, 0, 0, .1)));background:var(--_preview-color, #000);display:block;flex-shrink:0}.trigger-label{font-size:var(--hx-font-size-sm, .875rem);color:var(--hx-color-neutral-700, #374151);font-family:var(--hx-font-family-mono, monospace);white-space:nowrap}.panel{position:absolute;z-index:var(--hx-color-picker-z-index, 1000);top:calc(100% + 4px);left:0;background:var(--hx-color-neutral-0, #fff);border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e5e7eb);border-radius:var(--hx-border-radius-lg, .5rem);box-shadow:0 8px 24px var(--hx-color-picker-panel-shadow, var(--hx-overlay-black-15, rgba(0, 0, 0, .15)));padding:var(--hx-space-4, 1rem);width:var(--hx-color-picker-width, 260px);display:flex;flex-direction:column;gap:var(--hx-space-3, .75rem);outline:none}:host([inline]) .panel{position:static;box-shadow:none;border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e5e7eb);border-radius:var(--hx-border-radius-lg, .5rem)}.gradient-grid{position:relative;width:100%;height:var(--hx-color-picker-grid-height, 160px);border-radius:var(--hx-border-radius-sm, .25rem);cursor:crosshair;overflow:hidden;touch-action:none;flex-shrink:0}.gradient-grid-bg{position:absolute;inset:0;background:linear-gradient(to bottom,transparent,#000),linear-gradient(to right,#fff,var(--_hue-color, hsl(0, 100%, 50%)));pointer-events:none}.gradient-thumb{position:absolute;width:12px;height:12px;border-radius:50%;border:none;box-shadow:0 0 0 2px var(--hx-color-picker-thumb-border, var(--hx-color-neutral-0, #fff)),0 0 0 3px var(--hx-color-picker-thumb-shadow, var(--hx-overlay-black-30, rgba(0, 0, 0, .3)));transform:translate(-50%,-50%);pointer-events:none;top:var(--_thumb-y, 0%);left:var(--_thumb-x, 100%)}.slider-track{position:relative;width:100%;height:12px;border-radius:6px;cursor:pointer;touch-action:none;flex-shrink:0}.hue-track{background:linear-gradient(to right,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}.opacity-track{background-image:linear-gradient(to right,transparent,var(--_hue-color, hsl(0, 100%, 50%))),repeating-conic-gradient(#ccc 0% 25%,#fff 0% 50%) 0 0 / 12px 12px}.slider-thumb{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;border:none;box-shadow:0 0 0 2px var(--hx-color-picker-thumb-border, var(--hx-color-neutral-0, #fff)),0 0 0 3px var(--hx-color-picker-thumb-shadow, var(--hx-overlay-black-30, rgba(0, 0, 0, .3)));transform:translate(-50%,-50%);pointer-events:none;left:var(--_slider-pct, 0%);background:var(--_thumb-color, hsl(0, 100%, 50%))}.swatches{display:flex;flex-wrap:wrap;gap:var(--hx-space-1, .25rem)}.swatch-btn{width:20px;height:20px;border-radius:var(--hx-border-radius-sm, .25rem);border:var(--hx-border-width-thin, 1px) solid var(--hx-color-picker-swatch-border, var(--hx-overlay-black-10, rgba(0, 0, 0, .1)));cursor:pointer;padding:0;flex-shrink:0;transition:transform var(--hx-transition-fast, .15s ease)}.swatch-btn:hover{transform:scale(1.15);border-color:var( --hx-color-picker-swatch-border-hover, var(--hx-overlay-black-30, rgba(0, 0, 0, .3)) )}.input-area{display:flex;align-items:center;gap:var(--hx-space-2, .5rem)}.format-btn{flex-shrink:0;padding:var(--hx-space-1, .25rem) var(--hx-space-2, .5rem);background:var(--hx-color-neutral-100, #f3f4f6);border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #d1d5db);border-radius:var(--hx-border-radius-sm, .25rem);cursor:pointer;font-size:var(--hx-font-size-xs, .75rem);color:var(--hx-color-neutral-600, #4b5563);text-transform:uppercase;font-weight:var(--hx-font-weight-semibold, 600);letter-spacing:.05em}.color-input{flex:1;min-width:0;padding:var(--hx-space-1, .25rem) var(--hx-space-2, .5rem);border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #d1d5db);border-radius:var(--hx-border-radius-sm, .25rem);font-family:var(--hx-font-family-mono, monospace);font-size:var(--hx-font-size-sm, .875rem);color:var(--hx-color-neutral-900, #111827);background:var(--hx-color-neutral-0, #fff);outline:none}.color-input:focus-visible{border-color:var(--hx-focus-ring-color, var(--hx-color-primary-500));box-shadow:0 0 0 2px color-mix(in srgb,var(--hx-focus-ring-color, var(--hx-color-primary-500)) 20%,transparent)}.input-preview{width:24px;height:24px;border-radius:var(--hx-border-radius-sm, .25rem);border:var(--hx-border-width-thin, 1px) solid var(--hx-color-picker-swatch-border, var(--hx-overlay-black-10, rgba(0, 0, 0, .1)));background:var(--_preview-color, #000);flex-shrink:0}@media(prefers-reduced-motion:reduce){.trigger,.swatch-btn{transition:none}}@media(forced-colors:active){.trigger{forced-color-adjust:none;background-color:Field;color:FieldText;border:2px solid ButtonText}.trigger:hover:not([disabled]){border-color:Highlight}:is(.trigger,.gradient-grid,.slider-track,.swatch-btn,.format-btn):focus-visible{outline-color:Highlight}.panel{forced-color-adjust:none;background-color:Canvas;border:2px solid CanvasText;box-shadow:none}.gradient-thumb,.slider-thumb{box-shadow:0 0 0 2px CanvasText}.swatch-btn{border:2px solid ButtonText}.swatch-btn:hover{border-color:Highlight}.color-input{forced-color-adjust:none;background-color:Field;color:FieldText;border:2px solid ButtonText}.color-input:focus-visible{border-color:Highlight;box-shadow:none}.format-btn{forced-color-adjust:none;background-color:ButtonFace;color:ButtonText;border:2px solid ButtonText}.trigger-label{color:FieldText}:host([disabled]){opacity:1}:host([disabled]) .trigger{border-color:GrayText;color:GrayText}}
399
- /* ── hx-combobox ── */
400
- :host{display:block}:host([disabled]){opacity:var(--hx-opacity-disabled, .5);pointer-events:none}*{box-sizing:border-box}.field{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem);font-family:var(--hx-combobox-font-family, var(--hx-font-family-sans, sans-serif));position:relative}.field__label{display:flex;align-items:baseline;gap:var(--hx-space-1, .25rem);font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-combobox-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5)}.field__required-marker{color:var(--hx-combobox-error-color, var(--hx-color-error-text, #b91c1c));font-weight:var(--hx-font-weight-bold, 700)}.field__input-wrapper{position:relative;display:flex;align-items:center;border:var(--hx-border-width-thin, 1px) solid var(--hx-combobox-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-combobox-border-radius, var(--hx-border-radius-md, .375rem));background-color:var(--hx-combobox-bg, var(--hx-color-neutral-0, #ffffff));transition:border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease)}.field__input-wrapper:focus-within{border-color:var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa)));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}.field--error .field__input-wrapper{border-color:var(--hx-combobox-error-color, var(--hx-color-error-500, #dc3545))}.field--error .field__input-wrapper:focus-within{border-color:var(--hx-combobox-error-color, var(--hx-color-error-500, #dc3545));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-combobox-error-color, var(--hx-color-error-500, #dc3545)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}.field__prefix,.field__suffix{display:flex;align-items:center;padding:0 var(--hx-space-2, .5rem);color:var(--hx-color-neutral-500, #6c757d);flex-shrink:0}.field__input{flex:1;min-width:0;min-height:var(--hx-input-height-md, var(--hx-size-10, 2.5rem));border:none;background:transparent;outline:none;font-family:inherit;font-size:var(--hx-font-size-md, 1rem);line-height:var(--hx-line-height-normal, 1.5);color:var(--hx-combobox-color, var(--hx-color-neutral-800, #212529));padding:var(--hx-space-2, .5rem) var(--hx-space-3, .75rem)}.field__input::placeholder{color:var(--hx-color-neutral-400, #adb5bd)}.field__input--sm{min-height:var(--hx-input-height-sm, var(--hx-size-8, 2rem));font-size:var(--hx-font-size-sm, .875rem);padding:var(--hx-space-1, .25rem) var(--hx-space-3, .75rem)}.field__input--lg{min-height:var(--hx-input-height-lg, var(--hx-size-12, 3rem));font-size:var(--hx-font-size-lg, 1.125rem);padding:var(--hx-space-3, .75rem) var(--hx-space-4, 1rem)}.field__clear-button,.field__loading-indicator{display:flex;align-items:center;justify-content:center;margin-inline-end:var(--hx-space-2, .5rem);flex-shrink:0;color:var(--hx-color-neutral-400, #adb5bd)}.field__clear-button{width:1.25rem;height:1.25rem;border:none;background:transparent;cursor:pointer;padding:0;border-radius:var(--hx-border-radius-full, 9999px);transition:color var(--hx-transition-fast, .15s ease)}.field__clear-button:hover{color:var(--hx-color-neutral-700, #343a40)}.field__clear-button:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));outline-offset:var(--hx-focus-ring-offset, 2px)}.field__loading-indicator{width:1rem;height:1rem}.field__loading-spinner{width:1rem;height:1rem;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:hx-spin .7s linear infinite}@keyframes hx-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.field__loading-spinner{animation:none}}.field__listbox{position:absolute;top:calc(100% + var(--hx-space-1, .25rem));left:0;right:0;z-index:var(--hx-z-index-dropdown, 100);background-color:var(--hx-combobox-listbox-bg, var(--hx-color-neutral-0, #ffffff));border:var(--hx-border-width-thin, 1px) solid var(--hx-combobox-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-combobox-border-radius, var(--hx-border-radius-md, .375rem));box-shadow:var( --hx-combobox-listbox-shadow, 0 4px 16px color-mix(in srgb, var(--hx-color-neutral-900, #0d1117) 12%, transparent) );max-height:var(--hx-combobox-listbox-max-height, 16rem);overflow:hidden;display:flex;flex-direction:column}.field__listbox[hidden]{display:none}.field__options{overflow-y:auto;flex:1;padding:var(--hx-space-1, .25rem) 0}.field__option{display:flex;align-items:center;gap:var(--hx-space-2, .5rem);padding:var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-size:var(--hx-font-size-md, 1rem);color:var(--hx-combobox-color, var(--hx-color-neutral-800, #212529));cursor:pointer;user-select:none;-webkit-user-select:none;transition:background-color var(--hx-transition-fast, .15s ease)}.field__option:hover{background-color:var(--hx-combobox-option-hover-bg, var(--hx-color-primary-50, #eff6ff))}.field__option--selected{background-color:var(--hx-combobox-option-selected-bg, var(--hx-color-primary-100, #dbeafe));font-weight:var(--hx-font-weight-medium, 500)}.field__option--focused{background-color:var(--hx-combobox-option-hover-bg, var(--hx-color-primary-50, #eff6ff));outline:var(--hx-focus-ring-width, 2px) solid var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));outline-offset:var(--hx-combobox-option-focus-ring-offset, -2px)}.field__option--focused.field__option--selected{background-color:var(--hx-combobox-option-selected-bg, var(--hx-color-primary-100, #dbeafe))}.field__option--disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}.field__option-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field__no-options{padding:var(--hx-space-3, .75rem);text-align:center;color:var(--hx-color-neutral-400, #adb5bd);font-size:var(--hx-font-size-sm, .875rem)}.field__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.field__help-text,.field__error{font-size:var(--hx-font-size-xs, .75rem);line-height:var(--hx-line-height-normal, 1.5)}.field__help-text{color:var(--hx-color-neutral-500, #6c757d)}.field__error{color:var(--hx-combobox-error-color, var(--hx-color-error-text, #b91c1c))}@media(prefers-reduced-motion:reduce){.field__input-wrapper,.field__option,.field__clear-button,.field__chip-remove{transition:none}}@media(forced-colors:active){.field__input-wrapper{forced-color-adjust:none;background-color:Field;color:FieldText;border:2px solid ButtonText}.field__input{color:FieldText}.field__input::placeholder{color:GrayText}.field__input-wrapper:focus-within{border-color:Highlight;box-shadow:none}.field__listbox{forced-color-adjust:none;background-color:Canvas;border:2px solid CanvasText;box-shadow:none}.field__option{color:CanvasText}.field__option:hover{background-color:Highlight;color:HighlightText}.field__option--selected{background-color:Highlight;color:HighlightText}.field__option--focused{outline-color:Highlight;background-color:Highlight;color:HighlightText}.field__option--disabled{color:GrayText;opacity:1}.field__chip{forced-color-adjust:none;background-color:Highlight;color:HighlightText;border:1px solid HighlightText}.field__chip-remove:focus-visible{outline-color:Highlight}.field__clear-button:focus-visible{outline-color:Highlight}.field--error .field__input-wrapper{border-color:LinkText}:host([disabled]){opacity:1}:host([disabled]) .field__input-wrapper{border-color:GrayText;color:GrayText}:host([disabled]) .field__input{color:GrayText}.field__label{color:CanvasText}.field__help-text{color:GrayText}.field__error{color:LinkText}}:host([multiple]) .field__input-wrapper{flex-wrap:wrap;padding:var(--hx-space-1, .25rem);gap:var(--hx-space-1, .25rem);align-items:center}:host([multiple]) .field__input{min-width:8rem;padding:var(--hx-space-1, .25rem) var(--hx-space-2, .5rem);flex-shrink:1}.field__chip{display:inline-flex;align-items:center;gap:var(--hx-space-1, .25rem);padding:0 var(--hx-space-1, .25rem) 0 var(--hx-space-2, .5rem);height:1.5rem;background-color:var(--hx-combobox-chip-bg, var(--hx-color-primary-100, #dbeafe));color:var(--hx-combobox-chip-color, var(--hx-color-primary-800, #1e40af));border-radius:var(--hx-border-radius-full, 9999px);font-size:var(--hx-font-size-sm, .875rem);white-space:nowrap;max-width:12rem;flex-shrink:0}.field__chip-label{overflow:hidden;text-overflow:ellipsis;max-width:8rem}.field__chip-remove{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;border:none;background:none;cursor:pointer;padding:0;color:inherit;opacity:.7;border-radius:50%;line-height:1;transition:opacity var(--hx-transition-fast, .15s ease)}.field__chip-remove:hover{opacity:1;background-color:var(--hx-combobox-chip-remove-hover-bg, var(--hx-color-primary-200, #bfdbfe))}.field__chip-remove:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));outline-offset:var(--hx-focus-ring-offset, 2px);opacity:1}
401
- /* ── hx-date-picker ── */
402
- :host{display:block;position:relative}:host([disabled]){opacity:var(--hx-opacity-disabled, .5);pointer-events:none}*{box-sizing:border-box}.field{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem);font-family:var(--hx-date-picker-font-family, var(--hx-font-family-sans, sans-serif));position:relative}.field__label-wrapper{display:contents}.field__label{display:flex;align-items:baseline;gap:var(--hx-space-1, .25rem);font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-date-picker-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5)}.field__required-marker{color:var(--hx-date-picker-error-color, var(--hx-color-error-text, #b91c1c));font-weight:var(--hx-font-weight-bold, 700)}.field__input-wrapper{display:flex;align-items:stretch;border:var(--hx-border-width-thin, 1px) solid var(--hx-date-picker-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-date-picker-border-radius, var(--hx-border-radius-md, .375rem));background-color:var(--hx-date-picker-bg, var(--hx-color-neutral-0, #ffffff));transition:border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease);overflow:hidden}.field__input-wrapper:focus-within{border-color:var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa)));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}.field--error .field__input-wrapper{border-color:var(--hx-date-picker-error-color, var(--hx-color-error-500, #dc3545))}.field--error .field__input-wrapper:focus-within{border-color:var(--hx-date-picker-error-color, var(--hx-color-error-500, #dc3545));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-date-picker-error-color, var(--hx-color-error-500, #dc3545)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}.field__input{flex:1;border:none;outline:none;background:transparent;padding:var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-family:inherit;font-size:var(--hx-font-size-md, 1rem);color:var(--hx-date-picker-color, var(--hx-color-neutral-800, #212529));line-height:var(--hx-line-height-normal, 1.5);min-height:var(--hx-size-10, 2.5rem);width:100%;cursor:default}.field__input::placeholder{color:var(--hx-color-neutral-400, #adb5bd)}.field__input:disabled{cursor:not-allowed}.field__trigger{display:flex;align-items:center;justify-content:center;padding:0 var(--hx-space-3, .75rem);border:none;border-left:var(--hx-border-width-thin, 1px) solid var(--hx-date-picker-border-color, var(--hx-color-neutral-300, #ced4da));background:transparent;color:var(--hx-date-picker-trigger-color, var(--hx-color-neutral-500, #6c757d));cursor:pointer;flex-shrink:0;transition:color var(--hx-transition-fast, .15s ease);outline:none}.field__trigger:focus-visible{color:var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa)));background-color:color-mix(in srgb,var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))) 8%,transparent)}.field__trigger:hover:not(:disabled){color:var(--hx-date-picker-trigger-hover-color, var(--hx-color-neutral-700, #343a40));background-color:color-mix(in srgb,var(--hx-color-neutral-900, #212529) 4%,transparent)}.field__trigger:disabled{cursor:not-allowed}.calendar{position:absolute;top:calc(100% + var(--hx-space-1, .25rem));left:0;z-index:var(--hx-z-index-dropdown, 1000);min-width:var(--hx-date-picker-calendar-min-width, 18rem);background-color:var(--hx-date-picker-calendar-bg, var(--hx-color-neutral-0, #ffffff));border:var(--hx-border-width-thin, 1px) solid var(--hx-date-picker-calendar-border-color, var(--hx-color-neutral-200, #e9ecef));border-radius:var(--hx-date-picker-calendar-border-radius, var(--hx-border-radius-lg, .5rem));box-shadow:var( --hx-date-picker-calendar-shadow, 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1) );padding:var(--hx-space-3, .75rem);outline:none}@media(prefers-reduced-motion:no-preference){.calendar{animation:calendar-appear var(--hx-transition-fast, .15s ease) forwards}}@keyframes calendar-appear{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}.calendar__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--hx-space-3, .75rem)}:is(.calendar__nav-btn,.calendar__day,.calendar__day-cell,.calendar__weekday){display:flex;align-items:center;justify-content:center}:is(.calendar__nav-btn,.calendar__day){width:var(--hx-touch-target-min, 2.75rem);height:var(--hx-touch-target-min, 2.75rem);border:none;border-radius:var(--hx-border-radius-sm, .25rem);background:transparent;cursor:pointer;outline:none;transition:background-color var(--hx-transition-fast, .15s ease),color var(--hx-transition-fast, .15s ease)}.calendar__nav-btn{color:var(--hx-color-neutral-600, #495057);font-size:var(--hx-font-size-lg, 1.125rem);line-height:1}.calendar__nav-btn:hover{background-color:var(--hx-color-neutral-100, #f8f9fa);color:var(--hx-color-neutral-900, #212529)}:is(.calendar__nav-btn,.calendar__day):focus-visible{box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa)));z-index:1}.calendar__nav-btn:disabled{opacity:var(--hx-opacity-disabled, .4);cursor:not-allowed;pointer-events:none}.calendar__month-label{font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-semibold, 600);color:var(--hx-color-neutral-800, #212529);flex:1;text-align:center}.calendar__grid{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem)}.calendar__row{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--hx-space-1, .25rem)}.calendar__weekday{height:var(--hx-size-8, 2rem);font-size:var(--hx-font-size-xs, .75rem);font-weight:var(--hx-font-weight-semibold, 600);color:var(--hx-color-neutral-500, #6c757d);text-transform:uppercase;letter-spacing:.05em}.calendar__day{color:var(--hx-color-neutral-800, #212529);font-size:var(--hx-font-size-sm, .875rem);font-family:inherit;position:relative}.calendar__day:hover:not(.calendar__day--disabled):not(.calendar__day--selected){background-color:var(--hx-color-neutral-100, #f8f9fa);color:var(--hx-color-neutral-900, #212529)}.calendar__day--selected{background-color:var(--hx-date-picker-selected-bg, var(--hx-color-primary-500, #2563eb));color:var(--hx-date-picker-selected-color, var(--hx-color-neutral-0, #ffffff));font-weight:var(--hx-font-weight-semibold, 600)}.calendar__day--selected:hover{background-color:var(--hx-date-picker-selected-hover-bg, var(--hx-color-primary-600, #1d4ed8))}.calendar__day--today:not(.calendar__day--selected){font-weight:var(--hx-font-weight-bold, 700);color:var(--hx-date-picker-today-color, var(--hx-color-primary-600, #1d4ed8))}.calendar__day--today:not(.calendar__day--selected):after{content:"";position:absolute;bottom:.2rem;left:50%;transform:translate(-50%);width:.25rem;height:.25rem;border-radius:50%;background-color:currentColor}.calendar__day--disabled{opacity:var(--hx-opacity-disabled, .4);cursor:not-allowed;pointer-events:none}.calendar__live-region{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.field__help-text,.field__error{font-size:var(--hx-font-size-xs, .75rem);line-height:var(--hx-line-height-normal, 1.5)}.field__help-text{color:var(--hx-color-neutral-500, #6c757d)}.field__error{color:var(--hx-date-picker-error-color, var(--hx-color-error-text, #b91c1c))}@media(prefers-reduced-motion:reduce){.field__input-wrapper,.field__trigger,.calendar__nav-btn,.calendar__day{transition:none}}@media(forced-colors:active){.field__input-wrapper{border:1px solid ButtonText}.field__input-wrapper:focus-within{outline:2px solid Highlight;outline-offset:1px;box-shadow:none}:is(.calendar__day:focus-visible,.calendar__nav-btn:focus-visible){outline:2px solid Highlight;box-shadow:none}.calendar__day--selected{background-color:Highlight;color:HighlightText;border:1px solid Highlight}.calendar__day--today:not(.calendar__day--selected){border:2px solid LinkText}.calendar__day--today:not(.calendar__day--selected):after{display:none}.calendar__day--disabled{color:GrayText}.field--error .field__input-wrapper{border-color:LinkText}}
403
1504
  /* ── hx-field ── */
404
1505
  :host {
405
1506
  display: block;
@@ -448,7 +1549,7 @@
448
1549
  gap: var(--hx-space-1, 0.25rem);
449
1550
  font-size: var(--hx-font-size-sm, 0.875rem);
450
1551
  font-weight: var(--hx-font-weight-medium, 500);
451
- color: var(--hx-field-label-color, var(--hx-color-neutral-700, #374151));
1552
+ color: var(--hx-field-label-color, var(--hx-color-neutral-700, #334155));
452
1553
  line-height: var(--hx-line-height-normal, 1.5);
453
1554
  cursor: pointer;
454
1555
  }
@@ -498,7 +1599,7 @@
498
1599
 
499
1600
  .field__help-text {
500
1601
  font-size: var(--hx-font-size-xs, 0.75rem);
501
- color: var(--hx-field-help-text-color, var(--hx-color-neutral-500, #6b7280));
1602
+ color: var(--hx-field-help-text-color, var(--hx-color-neutral-500, #64748b));
502
1603
  line-height: var(--hx-line-height-normal, 1.5);
503
1604
  }
504
1605
 
@@ -515,7 +1616,7 @@
515
1616
  }
516
1617
 
517
1618
  .field--error .field__control {
518
- outline: 2px solid var(--hx-field-error-color, var(--hx-color-error-500, #ef4444));
1619
+ outline: 2px solid var(--hx-field-error-color, var(--hx-color-error-500, #dc2626));
519
1620
  outline-offset: var(--hx-focus-ring-offset, 2px);
520
1621
  border-radius: var(--hx-border-radius-sm, 0.25rem);
521
1622
  }
@@ -566,7 +1667,7 @@
566
1667
  gap: var(--hx-space-1, 0.25rem);
567
1668
  font-size: var(--hx-font-label-size, var(--hx-font-size-sm, 0.875rem));
568
1669
  font-weight: var(--hx-font-label-weight, var(--hx-font-weight-medium, 500));
569
- color: var(--hx-field-label-color, var(--hx-color-neutral-700, #374151));
1670
+ color: var(--hx-field-label-color, var(--hx-color-neutral-700, #334155));
570
1671
  line-height: var(--hx-font-label-line-height, var(--hx-line-height-normal, 1.5));
571
1672
  font-family: var(--hx-font-label-family, var(--hx-font-family-sans, sans-serif));
572
1673
  }
@@ -579,7 +1680,7 @@
579
1680
  .optional-indicator {
580
1681
  font-size: var(--hx-font-size-xs, 0.75rem);
581
1682
  font-weight: var(--hx-font-weight-normal, 400);
582
- color: var(--hx-color-neutral-500, #6b7280);
1683
+ color: var(--hx-color-neutral-500, #64748b);
583
1684
  }
584
1685
 
585
1686
  /* ─── High Contrast Mode (forced-colors) ─── */
@@ -627,7 +1728,7 @@
627
1728
  display: flex;
628
1729
  flex-direction: column;
629
1730
  gap: var(--hx-space-2, 0.5rem);
630
- font-family: var(--hx-font-family-sans, sans-serif);
1731
+ font-family: var(--hx-file-upload-font-family, var(--hx-font-family-sans, sans-serif));
631
1732
  }
632
1733
 
633
1734
  /* ─── Label ─── */
@@ -638,7 +1739,7 @@
638
1739
  gap: var(--hx-space-1, 0.25rem);
639
1740
  font-size: var(--hx-font-size-sm, 0.875rem);
640
1741
  font-weight: var(--hx-font-weight-medium, 500);
641
- color: var(--hx-color-neutral-700, #343a40);
1742
+ color: var(--hx-color-neutral-700, #334155);
642
1743
  line-height: var(--hx-line-height-normal, 1.5);
643
1744
  }
644
1745
 
@@ -653,9 +1754,9 @@
653
1754
  min-height: var(--hx-space-32, 8rem);
654
1755
  padding: var(--hx-space-6, 1.5rem) var(--hx-space-4, 1rem);
655
1756
  border: var(--hx-border-width-thin, 1px) dashed
656
- var(--hx-file-upload-dropzone-border-color, var(--hx-color-neutral-300, #ced4da));
1757
+ var(--hx-file-upload-dropzone-border-color, var(--hx-color-neutral-300, #cbd5e1));
657
1758
  border-radius: var(--hx-file-upload-dropzone-border-radius, var(--hx-border-radius-lg, 0.5rem));
658
- background-color: var(--hx-file-upload-dropzone-bg, var(--hx-color-neutral-50, #f8f9fa));
1759
+ background-color: var(--hx-file-upload-dropzone-bg, var(--hx-color-neutral-50, #f8fafc));
659
1760
  cursor: pointer;
660
1761
  text-align: center;
661
1762
  transition:
@@ -663,7 +1764,7 @@
663
1764
  background-color var(--hx-transition-fast, 150ms ease),
664
1765
  box-shadow var(--hx-transition-fast, 150ms ease);
665
1766
  user-select: none;
666
- color: var(--hx-color-neutral-600, #495057);
1767
+ color: var(--hx-color-neutral-600, #475569);
667
1768
  font-size: var(--hx-font-size-sm, 0.875rem);
668
1769
  }
669
1770
 
@@ -694,7 +1795,7 @@
694
1795
  }
695
1796
 
696
1797
  .dropzone--error {
697
- border-color: var(--hx-file-upload-error-color, var(--hx-color-error-500, #dc3545));
1798
+ border-color: var(--hx-file-upload-error-color, var(--hx-color-error-500, #dc2626));
698
1799
  }
699
1800
 
700
1801
  @media (prefers-reduced-motion: reduce) {
@@ -739,7 +1840,7 @@
739
1840
  flex-direction: column;
740
1841
  gap: var(--hx-space-1, 0.25rem);
741
1842
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
742
- border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e9ecef);
1843
+ border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e2e8f0);
743
1844
  border-radius: var(--hx-border-radius-md, 0.375rem);
744
1845
  background-color: var(--hx-color-neutral-0, #ffffff);
745
1846
  }
@@ -754,7 +1855,7 @@
754
1855
  flex: 1;
755
1856
  font-size: var(--hx-font-size-sm, 0.875rem);
756
1857
  font-weight: var(--hx-font-weight-medium, 500);
757
- color: var(--hx-color-neutral-800, #212529);
1858
+ color: var(--hx-color-neutral-800, #1e293b);
758
1859
  overflow: hidden;
759
1860
  text-overflow: ellipsis;
760
1861
  white-space: nowrap;
@@ -763,7 +1864,7 @@
763
1864
  .file-item__size {
764
1865
  flex-shrink: 0;
765
1866
  font-size: var(--hx-font-size-xs, 0.75rem);
766
- color: var(--hx-color-neutral-500, #6c757d);
1867
+ color: var(--hx-color-neutral-500, #64748b);
767
1868
  }
768
1869
 
769
1870
  .file-item__remove {
@@ -777,7 +1878,7 @@
777
1878
  border: none;
778
1879
  border-radius: var(--hx-border-radius-sm, 0.25rem);
779
1880
  background: transparent;
780
- color: var(--hx-color-neutral-500, #6c757d);
1881
+ color: var(--hx-color-neutral-500, #64748b);
781
1882
  cursor: pointer;
782
1883
  line-height: 1;
783
1884
  transition:
@@ -787,7 +1888,7 @@
787
1888
 
788
1889
  .file-item__remove:hover {
789
1890
  color: var(--hx-file-upload-error-color, var(--hx-color-error-text, #b91c1c));
790
- background-color: color-mix(in srgb, var(--hx-color-error-500, #dc3545) 8%, transparent);
1891
+ background-color: color-mix(in srgb, var(--hx-color-error-500, #dc2626) 8%, transparent);
791
1892
  }
792
1893
 
793
1894
  .file-item__remove:focus-visible {
@@ -810,7 +1911,7 @@
810
1911
  .progress-track {
811
1912
  width: 100%;
812
1913
  height: var(--hx-file-upload-progress-height, var(--hx-space-1, 0.25rem));
813
- background-color: var(--hx-color-neutral-200, #e9ecef);
1914
+ background-color: var(--hx-color-neutral-200, #e2e8f0);
814
1915
  border-radius: var(--hx-border-radius-full, 9999px);
815
1916
  overflow: hidden;
816
1917
  }
@@ -911,7 +2012,7 @@
911
2012
  font-size: var(--hx-help-text-font-size, var(--hx-font-size-sm, 0.875rem));
912
2013
  font-weight: var(--hx-help-text-font-weight, var(--hx-font-weight-normal, 400));
913
2014
  line-height: var(--hx-help-text-line-height, var(--hx-line-height-normal, 1.5));
914
- color: var(--hx-help-text-color, var(--hx-color-neutral-500, #6b7280));
2015
+ color: var(--hx-help-text-color, var(--hx-color-neutral-500, #64748b));
915
2016
  margin: 0;
916
2017
  }
917
2018
 
@@ -928,25 +2029,25 @@
928
2029
  /* ─── Variant: default ─── */
929
2030
 
930
2031
  .help-text--default {
931
- --hx-help-text-color: var(--hx-color-neutral-500, #6b7280);
2032
+ --hx-help-text-color: var(--hx-color-neutral-500, #64748b);
932
2033
  }
933
2034
 
934
2035
  /* ─── Variant: error ─── */
935
2036
 
936
2037
  .help-text--error {
937
- --hx-help-text-color: var(--hx-color-error-600, #dc2626);
2038
+ --hx-help-text-color: var(--hx-color-error-600, #b91c1c);
938
2039
  }
939
2040
 
940
2041
  /* ─── Variant: warning ─── */
941
2042
 
942
2043
  .help-text--warning {
943
- --hx-help-text-color: var(--hx-color-warning-700, #b45309);
2044
+ --hx-help-text-color: var(--hx-color-warning-700, #92400e);
944
2045
  }
945
2046
 
946
2047
  /* ─── Variant: success ─── */
947
2048
 
948
2049
  .help-text--success {
949
- --hx-help-text-color: var(--hx-color-success-700, #15803d);
2050
+ --hx-help-text-color: var(--hx-color-success-700, #166534);
950
2051
  }
951
2052
 
952
2053
  /* ─── High Contrast Mode (forced-colors) ─── */
@@ -1315,7 +2416,7 @@
1315
2416
  display: flex;
1316
2417
  flex-direction: column;
1317
2418
  gap: var(--hx-space-2, 0.5rem);
1318
- font-family: var(--hx-font-family-sans, sans-serif);
2419
+ font-family: var(--hx-radio-group-font-family, var(--hx-font-family-sans, sans-serif));
1319
2420
  }
1320
2421
 
1321
2422
  /* ─── Legend ─── */
@@ -1326,7 +2427,7 @@
1326
2427
  gap: var(--hx-space-1, 0.25rem);
1327
2428
  font-size: var(--hx-font-size-sm, 0.875rem);
1328
2429
  font-weight: var(--hx-font-weight-medium, 500);
1329
- color: var(--hx-radio-group-label-color, var(--hx-color-neutral-700, #343a40));
2430
+ color: var(--hx-radio-group-label-color, var(--hx-color-neutral-700, #334155));
1330
2431
  line-height: var(--hx-line-height-normal, 1.5);
1331
2432
  padding: 0;
1332
2433
  margin-bottom: var(--hx-space-1, 0.25rem);
@@ -1360,7 +2461,7 @@
1360
2461
 
1361
2462
  .fieldset__help-text {
1362
2463
  font-size: var(--hx-font-size-xs, 0.75rem);
1363
- color: var(--hx-radio-group-help-text-color, var(--hx-color-neutral-500, #6c757d));
2464
+ color: var(--hx-radio-group-help-text-color, var(--hx-color-neutral-500, #64748b));
1364
2465
  line-height: var(--hx-line-height-normal, 1.5);
1365
2466
  }
1366
2467
 
@@ -1436,16 +2537,18 @@
1436
2537
  justify-content: center;
1437
2538
  position: relative;
1438
2539
  cursor: pointer;
1439
- color: var(--hx-rating-empty-color, var(--hx-color-neutral-300, #d1d5db));
2540
+ color: var(--hx-rating-empty-color, var(--hx-color-neutral-300, #cbd5e1));
1440
2541
  line-height: 1;
1441
- transition: transform var(--hx-transition-fast, 0.15s ease);
2542
+ min-width: var(--hx-touch-target-min, 2.75rem);
2543
+ min-height: var(--hx-touch-target-min, 2.75rem);
2544
+ transition: transform var(--hx-transition-fast, 150ms ease);
1442
2545
  }
1443
2546
 
1444
2547
  .symbol:focus-visible {
1445
2548
  outline: var(--hx-focus-ring-width, 2px) solid
1446
2549
  var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));
1447
2550
  outline-offset: var(--hx-focus-ring-offset, 2px);
1448
- border-radius: var(--hx-border-radius-sm, 0.125rem);
2551
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
1449
2552
  }
1450
2553
 
1451
2554
  .symbol--full,
@@ -1485,7 +2588,7 @@
1485
2588
  position: absolute;
1486
2589
  left: 0;
1487
2590
  top: 0;
1488
- color: var(--hx-rating-empty-color, var(--hx-color-neutral-300, #d1d5db));
2591
+ color: var(--hx-rating-empty-color, var(--hx-color-neutral-300, #cbd5e1));
1489
2592
  /* Clip to right 50% for the empty half */
1490
2593
  clip-path: inset(0 0 0 50%);
1491
2594
  }
@@ -1543,14 +2646,14 @@
1543
2646
 
1544
2647
  /* Background & foreground */
1545
2648
  --_bg: var(--hx-select-bg, var(--hx-color-neutral-0, #ffffff));
1546
- --_color: var(--hx-select-color, var(--hx-color-neutral-800, #212529));
1547
- --_placeholder-color: var(--hx-select-placeholder-color, var(--hx-color-neutral-400, #adb5bd));
2649
+ --_color: var(--hx-select-color, var(--hx-color-neutral-800, #1e293b));
2650
+ --_placeholder-color: var(--hx-select-placeholder-color, var(--hx-color-neutral-400, #94a3b8));
1548
2651
 
1549
2652
  /* Label */
1550
- --_label-color: var(--hx-select-label-color, var(--hx-color-neutral-700, #343a40));
2653
+ --_label-color: var(--hx-select-label-color, var(--hx-color-neutral-700, #334155));
1551
2654
 
1552
2655
  /* Border */
1553
- --_border-color: var(--hx-select-border-color, var(--hx-color-neutral-300, #ced4da));
2656
+ --_border-color: var(--hx-select-border-color, var(--hx-color-neutral-300, #cbd5e1));
1554
2657
  --_border-radius: var(--hx-select-border-radius, var(--hx-border-radius-md, 0.375rem));
1555
2658
 
1556
2659
  /* Focus ring */
@@ -1560,10 +2663,10 @@
1560
2663
  );
1561
2664
 
1562
2665
  /* Error */
1563
- --_error-color: var(--hx-select-error-color, var(--hx-color-error-500, #dc3545));
2666
+ --_error-color: var(--hx-select-error-color, var(--hx-color-error-500, #dc2626));
1564
2667
 
1565
2668
  /* Chevron */
1566
- --_chevron-color: var(--hx-select-chevron-color, var(--hx-color-neutral-500, #6c757d));
2669
+ --_chevron-color: var(--hx-select-chevron-color, var(--hx-color-neutral-500, #64748b));
1567
2670
  --_chevron-size: var(--hx-select-chevron-size, 0.5rem);
1568
2671
 
1569
2672
  /* Listbox */
@@ -1815,7 +2918,7 @@
1815
2918
  }
1816
2919
 
1817
2920
  .field__help-text {
1818
- color: var(--hx-color-neutral-500, #6c757d);
2921
+ color: var(--hx-color-neutral-500, #64748b);
1819
2922
  }
1820
2923
 
1821
2924
  .field__error {
@@ -1931,7 +3034,7 @@
1931
3034
  display: flex;
1932
3035
  flex-direction: column;
1933
3036
  gap: var(--hx-space-1, 0.25rem);
1934
- font-family: var(--hx-font-family-sans, sans-serif);
3037
+ font-family: var(--hx-slider-font-family, var(--hx-font-family-sans, sans-serif));
1935
3038
  }
1936
3039
 
1937
3040
  /* ─── Label Row ─── */
@@ -1946,14 +3049,14 @@
1946
3049
  .slider__label {
1947
3050
  font-size: var(--hx-font-size-sm, 0.875rem);
1948
3051
  font-weight: var(--hx-font-weight-medium, 500);
1949
- color: var(--hx-slider-label-color, var(--hx-color-neutral-700, #343a40));
3052
+ color: var(--hx-slider-label-color, var(--hx-color-neutral-700, #334155));
1950
3053
  line-height: var(--hx-line-height-normal, 1.5);
1951
3054
  }
1952
3055
 
1953
3056
  .slider__value-display {
1954
3057
  font-size: var(--hx-font-size-sm, 0.875rem);
1955
3058
  font-weight: var(--hx-font-weight-medium, 500);
1956
- color: var(--hx-slider-value-color, var(--hx-color-neutral-600, #6c757d));
3059
+ color: var(--hx-slider-value-color, var(--hx-color-neutral-600, #475569));
1957
3060
  line-height: var(--hx-line-height-normal, 1.5);
1958
3061
  font-variant-numeric: tabular-nums;
1959
3062
  min-width: var(--hx-size-8, 2rem);
@@ -1971,7 +3074,7 @@
1971
3074
  position: relative;
1972
3075
  width: 100%;
1973
3076
  border-radius: var(--hx-border-radius-full, 9999px);
1974
- background-color: var(--hx-slider-track-bg, var(--hx-color-neutral-200, #e9ecef));
3077
+ background-color: var(--hx-slider-track-bg, var(--hx-color-neutral-200, #e2e8f0));
1975
3078
  overflow: visible;
1976
3079
  }
1977
3080
 
@@ -2049,8 +3152,13 @@
2049
3152
  background: transparent;
2050
3153
  border: none;
2051
3154
  outline: none;
2052
- /* Expand the hit area so the thumb is easy to grab */
2053
- padding-block: var(--hx-slider-input-padding-block, 0.75rem);
3155
+ /* Expand the hit area so the thumb meets WCAG 2.5.8 touch target (44px).
3156
+ The input's total height = track height + 2 * padding-block. With 0.75rem
3157
+ (~12px) padding on each side and a track of ~6px, the total target area is
3158
+ ~30px. We increase to 1rem (~16px) per side for a ~38px minimum, supplemented
3159
+ by the visual thumb size. */
3160
+ padding-block: var(--hx-slider-input-padding-block, 1rem);
3161
+ min-height: var(--hx-touch-target-min, 2.75rem);
2054
3162
  }
2055
3163
 
2056
3164
  /* In forced-color mode, restore native outline so the input remains focusable */
@@ -2166,7 +3274,7 @@
2166
3274
  top: 0;
2167
3275
  width: var(--hx-border-width-thin, 1px);
2168
3276
  height: 100%;
2169
- background-color: var(--hx-slider-tick-color, var(--hx-color-neutral-400, #adb5bd));
3277
+ background-color: var(--hx-slider-tick-color, var(--hx-color-neutral-400, #94a3b8));
2170
3278
  transform: translateX(-50%);
2171
3279
  }
2172
3280
 
@@ -2176,7 +3284,7 @@
2176
3284
  display: flex;
2177
3285
  justify-content: space-between;
2178
3286
  font-size: var(--hx-font-size-xs, 0.75rem);
2179
- color: var(--hx-slider-range-label-color, var(--hx-color-neutral-500, #6c757d));
3287
+ color: var(--hx-slider-range-label-color, var(--hx-color-neutral-500, #64748b));
2180
3288
  line-height: var(--hx-line-height-normal, 1.5);
2181
3289
  margin-top: var(--hx-space-0-5, 0.125rem);
2182
3290
  }
@@ -2185,18 +3293,18 @@
2185
3293
 
2186
3294
  .slider__help-text {
2187
3295
  font-size: var(--hx-font-size-xs, 0.75rem);
2188
- color: var(--hx-slider-help-text-color, var(--hx-color-neutral-500, #6c757d));
3296
+ color: var(--hx-slider-help-text-color, var(--hx-color-neutral-500, #64748b));
2189
3297
  line-height: var(--hx-line-height-normal, 1.5);
2190
3298
  }
2191
3299
 
2192
3300
  /* ─── Disabled state ─── */
2193
3301
 
2194
3302
  .slider--disabled .slider__fill {
2195
- background-color: var(--hx-color-neutral-400, #adb5bd);
3303
+ background-color: var(--hx-color-neutral-400, #94a3b8);
2196
3304
  }
2197
3305
 
2198
3306
  .slider--disabled .slider__thumb-visual {
2199
- border-color: var(--hx-color-neutral-400, #adb5bd);
3307
+ border-color: var(--hx-color-neutral-400, #94a3b8);
2200
3308
  }
2201
3309
  /* ── hx-switch ── */
2202
3310
  :host {
@@ -2218,7 +3326,7 @@
2218
3326
  display: flex;
2219
3327
  flex-direction: column;
2220
3328
  gap: var(--hx-space-1, 0.25rem);
2221
- font-family: var(--hx-font-family-sans, sans-serif);
3329
+ font-family: var(--hx-switch-font-family, var(--hx-font-family-sans, sans-serif));
2222
3330
  }
2223
3331
 
2224
3332
  /* WCAG 2.5.5 (healthcare mandate): minimum 44px touch target height.
@@ -2241,7 +3349,7 @@
2241
3349
  border: none;
2242
3350
  padding: 0;
2243
3351
  border-radius: var(--hx-border-radius-full, 9999px);
2244
- background-color: var(--hx-switch-track-bg, var(--hx-color-neutral-300, #ced4da));
3352
+ background-color: var(--hx-switch-track-bg, var(--hx-color-neutral-300, #cbd5e1));
2245
3353
  cursor: pointer;
2246
3354
  transition: background-color var(--hx-transition-fast, 150ms ease);
2247
3355
  outline: none;
@@ -2337,7 +3445,7 @@
2337
3445
  .switch__label {
2338
3446
  font-size: var(--hx-font-size-sm, 0.875rem);
2339
3447
  font-weight: var(--hx-font-weight-medium, 500);
2340
- color: var(--hx-switch-label-color, var(--hx-color-neutral-700, #343a40));
3448
+ color: var(--hx-switch-label-color, var(--hx-color-neutral-700, #334155));
2341
3449
  line-height: var(--hx-line-height-normal, 1.5);
2342
3450
  cursor: pointer;
2343
3451
  user-select: none;
@@ -2353,7 +3461,7 @@
2353
3461
 
2354
3462
  .switch__help-text {
2355
3463
  font-size: var(--hx-font-size-xs, 0.75rem);
2356
- color: var(--hx-switch-help-text-color, var(--hx-color-neutral-500, #6c757d));
3464
+ color: var(--hx-switch-help-text-color, var(--hx-color-neutral-500, #64748b));
2357
3465
  line-height: var(--hx-line-height-normal, 1.5);
2358
3466
  }
2359
3467
 
@@ -2503,7 +3611,7 @@
2503
3611
  gap: var(--hx-space-1, 0.25rem);
2504
3612
  font-size: var(--hx-font-size-sm, 0.875rem);
2505
3613
  font-weight: var(--hx-font-weight-medium, 500);
2506
- color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));
3614
+ color: var(--hx-input-label-color, var(--hx-color-neutral-700, #334155));
2507
3615
  line-height: var(--hx-line-height-normal, 1.5);
2508
3616
  }
2509
3617
 
@@ -2518,7 +3626,7 @@
2518
3626
  display: flex;
2519
3627
  align-items: center;
2520
3628
  border: var(--hx-border-width-thin, 1px) solid
2521
- var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));
3629
+ var(--hx-input-border-color, var(--hx-color-neutral-300, #cbd5e1));
2522
3630
  border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));
2523
3631
  background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));
2524
3632
  transition:
@@ -2547,15 +3655,15 @@
2547
3655
  /* ─── Error State ─── */
2548
3656
 
2549
3657
  .field--error .field__input-wrapper {
2550
- border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
3658
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc2626));
2551
3659
  }
2552
3660
 
2553
3661
  .field--error .field__input-wrapper:focus-within {
2554
- border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
3662
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc2626));
2555
3663
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2556
3664
  color-mix(
2557
3665
  in srgb,
2558
- var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))
3666
+ var(--hx-input-error-color, var(--hx-color-error-500, #dc2626))
2559
3667
  calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
2560
3668
  transparent
2561
3669
  );
@@ -2567,7 +3675,7 @@
2567
3675
  .field__suffix {
2568
3676
  display: flex;
2569
3677
  align-items: center;
2570
- color: var(--hx-color-neutral-500, #6c757d);
3678
+ color: var(--hx-color-neutral-500, #64748b);
2571
3679
  flex-shrink: 0;
2572
3680
  }
2573
3681
 
@@ -2590,14 +3698,14 @@
2590
3698
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
2591
3699
  font-family: inherit;
2592
3700
  font-size: var(--hx-font-size-md, 1rem);
2593
- color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));
3701
+ color: var(--hx-input-color, var(--hx-color-neutral-800, #1e293b));
2594
3702
  line-height: var(--hx-line-height-normal, 1.5);
2595
3703
  min-height: var(--hx-size-10, 2.5rem);
2596
3704
  width: 100%;
2597
3705
  }
2598
3706
 
2599
3707
  .field__input::placeholder {
2600
- color: var(--hx-color-neutral-400, #adb5bd);
3708
+ color: var(--hx-color-neutral-400, #94a3b8);
2601
3709
  }
2602
3710
 
2603
3711
  .field__input:focus-visible {
@@ -2630,7 +3738,7 @@
2630
3738
 
2631
3739
  .field__help-text {
2632
3740
  font-size: var(--hx-font-size-xs, 0.75rem);
2633
- color: var(--hx-color-neutral-500, #6c757d);
3741
+ color: var(--hx-color-neutral-500, #64748b);
2634
3742
  line-height: var(--hx-line-height-normal, 1.5);
2635
3743
  }
2636
3744
 
@@ -2738,7 +3846,7 @@
2738
3846
  gap: var(--hx-space-1, 0.25rem);
2739
3847
  font-size: var(--hx-font-size-sm, 0.875rem);
2740
3848
  font-weight: var(--hx-font-weight-medium, 500);
2741
- color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));
3849
+ color: var(--hx-input-label-color, var(--hx-color-neutral-700, #334155));
2742
3850
  line-height: var(--hx-line-height-normal, 1.5);
2743
3851
  }
2744
3852
 
@@ -2753,7 +3861,7 @@
2753
3861
  display: flex;
2754
3862
  flex-direction: column;
2755
3863
  border: var(--hx-border-width-thin, 1px) solid
2756
- var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));
3864
+ var(--hx-input-border-color, var(--hx-color-neutral-300, #cbd5e1));
2757
3865
  border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));
2758
3866
  background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));
2759
3867
  transition:
@@ -2767,9 +3875,6 @@
2767
3875
  --hx-input-focus-ring-color,
2768
3876
  var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
2769
3877
  );
2770
- /* Solid fallback for browsers without color-mix() (Chrome < 111, Safari < 16.2) — WCAG 1.4.11 */
2771
- box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2772
- rgba(37, 99, 235, var(--hx-focus-ring-opacity, 0.25));
2773
3878
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2774
3879
  color-mix(
2775
3880
  in srgb,
@@ -2785,18 +3890,15 @@
2785
3890
  /* --- Error State --- */
2786
3891
 
2787
3892
  .field--error .field__textarea-wrapper {
2788
- border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
3893
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc2626));
2789
3894
  }
2790
3895
 
2791
3896
  .field--error .field__textarea-wrapper:focus-within {
2792
- border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
2793
- /* Solid fallback for browsers without color-mix() — WCAG 1.4.11 */
2794
- box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2795
- rgba(220, 53, 69, var(--hx-focus-ring-opacity, 0.25));
3897
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc2626));
2796
3898
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2797
3899
  color-mix(
2798
3900
  in srgb,
2799
- var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))
3901
+ var(--hx-input-error-color, var(--hx-color-error-500, #dc2626))
2800
3902
  calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
2801
3903
  transparent
2802
3904
  );
@@ -2811,7 +3913,7 @@
2811
3913
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
2812
3914
  font-family: inherit;
2813
3915
  font-size: var(--hx-font-size-md, 1rem);
2814
- color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));
3916
+ color: var(--hx-input-color, var(--hx-color-neutral-800, #1e293b));
2815
3917
  line-height: var(--hx-line-height-normal, 1.5);
2816
3918
  min-height: var(--hx-textarea-min-height, var(--hx-size-20, 5rem));
2817
3919
  width: 100%;
@@ -2819,7 +3921,7 @@
2819
3921
  }
2820
3922
 
2821
3923
  .field__textarea::placeholder {
2822
- color: var(--hx-color-neutral-400, #adb5bd);
3924
+ color: var(--hx-color-neutral-400, #94a3b8);
2823
3925
  }
2824
3926
 
2825
3927
  .field__textarea:focus-visible {
@@ -2857,7 +3959,7 @@
2857
3959
 
2858
3960
  .field__counter {
2859
3961
  font-size: var(--hx-font-size-xs, 0.75rem);
2860
- color: var(--hx-color-neutral-500, #6c757d);
3962
+ color: var(--hx-color-neutral-500, #64748b);
2861
3963
  line-height: var(--hx-line-height-normal, 1.5);
2862
3964
  text-align: end;
2863
3965
  }
@@ -2880,7 +3982,7 @@
2880
3982
 
2881
3983
  .field__help-text {
2882
3984
  font-size: var(--hx-font-size-xs, 0.75rem);
2883
- color: var(--hx-color-neutral-500, #6c757d);
3985
+ color: var(--hx-color-neutral-500, #64748b);
2884
3986
  line-height: var(--hx-line-height-normal, 1.5);
2885
3987
  }
2886
3988
 
@@ -2948,7 +4050,230 @@
2948
4050
  }
2949
4051
  }
2950
4052
  /* ── hx-time-picker ── */
2951
- :host{display:block;position:relative}:host([disabled]){opacity:var(--hx-opacity-disabled, .5);pointer-events:none}*{box-sizing:border-box}.field{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem);font-family:var(--hx-time-picker-font-family, var(--hx-font-family-sans, sans-serif))}.field__label{display:flex;align-items:baseline;gap:var(--hx-space-1, .25rem);font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-time-picker-label-color, var(--hx-color-neutral-700));line-height:var(--hx-line-height-normal, 1.5)}.field__required-marker{color:var(--hx-time-picker-error-color, var(--hx-color-error-text, #b91c1c));font-weight:var(--hx-font-weight-bold, 700)}.field__combobox{position:relative;display:flex;align-items:center;border:var(--hx-border-width-thin, 1px) solid var(--hx-time-picker-border-color, var(--hx-color-neutral-300));border-radius:var(--hx-time-picker-border-radius, var(--hx-border-radius-md, .375rem));background-color:var(--hx-time-picker-bg, var(--hx-color-neutral-0));transition:border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease);overflow:visible}.field__combobox:focus-within{border-color:var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}.field--error .field__combobox{border-color:var(--hx-time-picker-error-color, var(--hx-color-error-500))}.field--error .field__combobox:focus-within{border-color:var(--hx-time-picker-error-color, var(--hx-color-error-500));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-time-picker-error-color, var(--hx-color-error-500)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}.field__input{flex:1;border:none;outline:none;background:transparent;padding:var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-family:inherit;font-size:var(--hx-font-size-md, 1rem);color:var(--hx-time-picker-color, var(--hx-color-neutral-800));line-height:var(--hx-line-height-normal, 1.5);min-height:var(--hx-size-10, 2.5rem);width:100%;cursor:text}.field__input::placeholder{color:var(--hx-color-neutral-400)}.field__input:disabled{cursor:not-allowed}.field__toggle{display:flex;align-items:center;justify-content:center;border:none;background:transparent;padding:0 var(--hx-space-3, .75rem);color:var(--hx-time-picker-chevron-color, var(--hx-color-neutral-500));cursor:pointer;height:100%;min-height:var(--hx-size-10, 2.5rem);flex-shrink:0;border-inline-start:var(--hx-border-width-thin, 1px) solid var(--hx-time-picker-border-color, var(--hx-color-neutral-300))}.field__toggle:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color));outline-offset:-2px;border-radius:0 var(--hx-time-picker-border-radius, var(--hx-border-radius-md, .375rem))}.field__listbox{position:absolute;top:calc(100% + var(--hx-space-1, .25rem));inset-inline-start:0;inset-inline-end:0;z-index:var(--hx-z-index-dropdown, 1000);background-color:var(--hx-time-picker-listbox-bg, var(--hx-color-neutral-0));border:var(--hx-border-width-thin, 1px) solid var(--hx-time-picker-border-color, var(--hx-color-neutral-300));border-radius:var(--hx-time-picker-border-radius, var(--hx-border-radius-md, .375rem));box-shadow:var( --hx-time-picker-listbox-shadow, 0 4px 16px color-mix(in srgb, var(--hx-color-neutral-900) 12%, transparent) );max-height:var(--hx-time-picker-listbox-max-height, 16rem);overflow-y:auto;padding:var(--hx-space-1, .25rem) 0;list-style:none;margin:0}@media(prefers-reduced-motion:no-preference){.field__listbox{animation:hx-listbox-enter var(--hx-transition-fast, .15s ease) forwards}}@keyframes hx-listbox-enter{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}.field__option{display:flex;align-items:center;padding:var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-size:var(--hx-font-size-md, 1rem);font-family:inherit;color:var(--hx-time-picker-option-color, var(--hx-color-neutral-800));cursor:pointer;transition:background-color var(--hx-transition-fast, .15s ease);line-height:var(--hx-line-height-normal, 1.5)}.field__option:hover,.field__option--active{background-color:var(--hx-time-picker-option-hover-bg, var(--hx-color-primary-50));color:var(--hx-time-picker-option-hover-color, var(--hx-color-primary-700))}.field__option--selected{background-color:var(--hx-time-picker-option-selected-bg, var(--hx-color-primary-100));color:var(--hx-time-picker-option-selected-color, var(--hx-color-primary-800));font-weight:var(--hx-font-weight-medium, 500)}.field__option--selected.field__option--active{background-color:var(--hx-time-picker-option-selected-bg, var(--hx-color-primary-100))}@media(prefers-reduced-motion:reduce){.field__combobox,.field__option{transition:none}}.field__help-text,.field__error{font-size:var(--hx-font-size-xs, .75rem);line-height:var(--hx-line-height-normal, 1.5)}.field__help-text{color:var(--hx-color-neutral-500)}.field__error{color:var(--hx-time-picker-error-color, var(--hx-color-error-text, #b91c1c))}
4053
+ :host {
4054
+ display: block;
4055
+ position: relative;
4056
+ }
4057
+ :host([disabled]) {
4058
+ opacity: var(--hx-opacity-disabled, 0.5);
4059
+ pointer-events: none;
4060
+ }
4061
+ * {
4062
+ box-sizing: border-box;
4063
+ }
4064
+ .field {
4065
+ display: flex;
4066
+ flex-direction: column;
4067
+ gap: var(--hx-space-1, 0.25rem);
4068
+ font-family: var(--hx-time-picker-font-family, var(--hx-font-family-sans, sans-serif));
4069
+ }
4070
+ .field__label {
4071
+ display: flex;
4072
+ align-items: baseline;
4073
+ gap: var(--hx-space-1, 0.25rem);
4074
+ font-size: var(--hx-font-size-sm, 0.875rem);
4075
+ font-weight: var(--hx-font-weight-medium, 500);
4076
+ color: var(--hx-time-picker-label-color, var(--hx-color-neutral-700));
4077
+ line-height: var(--hx-line-height-normal, 1.5);
4078
+ }
4079
+ .field__required-marker {
4080
+ color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #b91c1c));
4081
+ font-weight: var(--hx-font-weight-bold, 700);
4082
+ }
4083
+ .field__combobox {
4084
+ position: relative;
4085
+ display: flex;
4086
+ align-items: center;
4087
+ border: var(--hx-border-width-thin, 1px) solid
4088
+ var(--hx-time-picker-border-color, var(--hx-color-neutral-300));
4089
+ border-radius: var(--hx-time-picker-border-radius, var(--hx-border-radius-md, 0.375rem));
4090
+ background-color: var(--hx-time-picker-bg, var(--hx-color-neutral-0));
4091
+ transition:
4092
+ border-color var(--hx-transition-fast, 150ms ease),
4093
+ box-shadow var(--hx-transition-fast, 150ms ease);
4094
+ overflow: visible;
4095
+ }
4096
+ .field__combobox:focus-within {
4097
+ border-color: var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color));
4098
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
4099
+ color-mix(
4100
+ in srgb,
4101
+ var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color))
4102
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
4103
+ transparent
4104
+ );
4105
+ }
4106
+ .field--error .field__combobox {
4107
+ border-color: var(--hx-time-picker-error-color, var(--hx-color-error-500));
4108
+ }
4109
+ .field--error .field__combobox:focus-within {
4110
+ border-color: var(--hx-time-picker-error-color, var(--hx-color-error-500));
4111
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
4112
+ color-mix(
4113
+ in srgb,
4114
+ var(--hx-time-picker-error-color, var(--hx-color-error-500))
4115
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
4116
+ transparent
4117
+ );
4118
+ }
4119
+ .field__input {
4120
+ flex: 1;
4121
+ border: none;
4122
+ outline: none;
4123
+ background: transparent;
4124
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
4125
+ font-family: inherit;
4126
+ font-size: var(--hx-font-size-md, 1rem);
4127
+ color: var(--hx-time-picker-color, var(--hx-color-neutral-800));
4128
+ line-height: var(--hx-line-height-normal, 1.5);
4129
+ min-height: var(--hx-size-10, 2.5rem);
4130
+ width: 100%;
4131
+ cursor: text;
4132
+ }
4133
+ .field__input::placeholder {
4134
+ color: var(--hx-color-neutral-400);
4135
+ }
4136
+ .field__input:disabled {
4137
+ cursor: not-allowed;
4138
+ }
4139
+ .field__toggle {
4140
+ display: flex;
4141
+ align-items: center;
4142
+ justify-content: center;
4143
+ border: none;
4144
+ background: transparent;
4145
+ padding: 0 var(--hx-space-3, 0.75rem);
4146
+ color: var(--hx-time-picker-chevron-color, var(--hx-color-neutral-500));
4147
+ cursor: pointer;
4148
+ height: 100%;
4149
+ min-height: var(--hx-size-10, 2.5rem);
4150
+ flex-shrink: 0;
4151
+ border-inline-start: var(--hx-border-width-thin, 1px) solid
4152
+ var(--hx-time-picker-border-color, var(--hx-color-neutral-300));
4153
+ }
4154
+ .field__toggle:focus-visible {
4155
+ outline: var(--hx-focus-ring-width, 2px) solid
4156
+ var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color));
4157
+ outline-offset: -2px;
4158
+ border-radius: 0 var(--hx-time-picker-border-radius, var(--hx-border-radius-md, 0.375rem));
4159
+ }
4160
+ .field__listbox {
4161
+ position: absolute;
4162
+ top: calc(100% + var(--hx-space-1, 0.25rem));
4163
+ inset-inline-start: 0;
4164
+ inset-inline-end: 0;
4165
+ z-index: var(--hx-z-index-dropdown, 1000);
4166
+ background-color: var(--hx-time-picker-listbox-bg, var(--hx-color-neutral-0));
4167
+ border: var(--hx-border-width-thin, 1px) solid
4168
+ var(--hx-time-picker-border-color, var(--hx-color-neutral-300));
4169
+ border-radius: var(--hx-time-picker-border-radius, var(--hx-border-radius-md, 0.375rem));
4170
+ box-shadow: var(
4171
+ --hx-time-picker-listbox-shadow,
4172
+ 0 4px 16px color-mix(in srgb, var(--hx-color-neutral-900) 12%, transparent)
4173
+ );
4174
+ max-height: var(--hx-time-picker-listbox-max-height, 16rem);
4175
+ overflow-y: auto;
4176
+ padding: var(--hx-space-1, 0.25rem) 0;
4177
+ list-style: none;
4178
+ margin: 0;
4179
+ }
4180
+ @media (prefers-reduced-motion: no-preference) {
4181
+ .field__listbox {
4182
+ animation: hx-listbox-enter var(--hx-transition-fast, 150ms ease) forwards;
4183
+ }
4184
+ }
4185
+ @keyframes hx-listbox-enter {
4186
+ 0% {
4187
+ opacity: 0;
4188
+ transform: translateY(-0.25rem);
4189
+ }
4190
+ to {
4191
+ opacity: 1;
4192
+ transform: translateY(0);
4193
+ }
4194
+ }
4195
+ .field__option {
4196
+ display: flex;
4197
+ align-items: center;
4198
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
4199
+ font-size: var(--hx-font-size-md, 1rem);
4200
+ font-family: inherit;
4201
+ color: var(--hx-time-picker-option-color, var(--hx-color-neutral-800));
4202
+ cursor: pointer;
4203
+ transition: background-color var(--hx-transition-fast, 150ms ease);
4204
+ line-height: var(--hx-line-height-normal, 1.5);
4205
+ }
4206
+ .field__option:hover,
4207
+ .field__option--active {
4208
+ background-color: var(--hx-time-picker-option-hover-bg, var(--hx-color-primary-50));
4209
+ color: var(--hx-time-picker-option-hover-color, var(--hx-color-primary-700));
4210
+ }
4211
+ .field__option--selected {
4212
+ background-color: var(--hx-time-picker-option-selected-bg, var(--hx-color-primary-100));
4213
+ color: var(--hx-time-picker-option-selected-color, var(--hx-color-primary-800));
4214
+ font-weight: var(--hx-font-weight-medium, 500);
4215
+ }
4216
+ .field__option--selected.field__option--active {
4217
+ background-color: var(--hx-time-picker-option-selected-bg, var(--hx-color-primary-100));
4218
+ }
4219
+ @media (prefers-reduced-motion: reduce) {
4220
+ .field__combobox,
4221
+ .field__option {
4222
+ transition: none;
4223
+ }
4224
+ }
4225
+ .field__help-text,
4226
+ .field__error {
4227
+ font-size: var(--hx-font-size-xs, 0.75rem);
4228
+ line-height: var(--hx-line-height-normal, 1.5);
4229
+ }
4230
+ .field__help-text {
4231
+ color: var(--hx-color-neutral-500);
4232
+ }
4233
+ .field__error {
4234
+ color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #b91c1c));
4235
+ }
4236
+ @media (forced-colors: active) {
4237
+ .field__combobox {
4238
+ border-color: ButtonText;
4239
+ background-color: Canvas;
4240
+ }
4241
+ .field__combobox:focus-within {
4242
+ outline: 3px solid Highlight;
4243
+ outline-offset: 0;
4244
+ box-shadow: none;
4245
+ }
4246
+ .field--error .field__combobox {
4247
+ border-color: LinkText;
4248
+ }
4249
+ .field--error .field__combobox:focus-within {
4250
+ outline-color: Highlight;
4251
+ box-shadow: none;
4252
+ }
4253
+ .field__toggle:focus-visible {
4254
+ outline: 3px solid Highlight;
4255
+ outline-offset: 0;
4256
+ }
4257
+ .field__listbox {
4258
+ border-color: ButtonText;
4259
+ background-color: Canvas;
4260
+ box-shadow: none;
4261
+ }
4262
+ .field__option:hover,
4263
+ .field__option--active {
4264
+ background-color: Highlight;
4265
+ color: HighlightText;
4266
+ forced-color-adjust: none;
4267
+ }
4268
+ .field__option--selected {
4269
+ background-color: Highlight;
4270
+ color: HighlightText;
4271
+ forced-color-adjust: none;
4272
+ }
4273
+ .field__error {
4274
+ color: LinkText;
4275
+ }
4276
+ }
2952
4277
  /* ── hx-toggle-button ── */
2953
4278
  :host {
2954
4279
  display: inline-block;
@@ -3080,7 +4405,7 @@
3080
4405
  * to give clear visual feedback without introducing a new color.
3081
4406
  */
3082
4407
  .button--primary.button--pressed {
3083
- --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-700, #1d4ed8));
4408
+ --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-700, #1e40af));
3084
4409
  --hx-toggle-button-color: var(
3085
4410
  --hx-toggle-button-pressed-color,
3086
4411
  var(--hx-color-neutral-0, #ffffff)
@@ -3106,7 +4431,7 @@
3106
4431
  --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-100, #dbeafe));
3107
4432
  --hx-toggle-button-color: var(
3108
4433
  --hx-toggle-button-pressed-color,
3109
- var(--hx-color-primary-700, #1d4ed8)
4434
+ var(--hx-color-primary-700, #1e40af)
3110
4435
  );
3111
4436
  --hx-toggle-button-border-color: var(--hx-color-primary-400, #60a5fa);
3112
4437
  box-shadow: inset 0 0 0 1px var(--hx-color-primary-400, #60a5fa);
@@ -3117,7 +4442,7 @@
3117
4442
  --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-100, #dbeafe));
3118
4443
  --hx-toggle-button-color: var(
3119
4444
  --hx-toggle-button-pressed-color,
3120
- var(--hx-color-primary-700, #1d4ed8)
4445
+ var(--hx-color-primary-700, #1e40af)
3121
4446
  );
3122
4447
  --hx-toggle-button-border-color: transparent;
3123
4448
  }