@umbraco-ui/uui 2.0.0-rc.2 → 2.0.1

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 (635) hide show
  1. package/custom-elements.json +103 -1
  2. package/dist/_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js +9 -0
  3. package/dist/components/action-bar/action-bar.d.ts +0 -1
  4. package/dist/components/action-bar/action-bar.element.js +15 -12
  5. package/dist/components/action-bar/action-bar.element.js.map +1 -1
  6. package/dist/components/action-bar/action-bar.js +5 -5
  7. package/dist/components/action-bar/action-bar.js.map +1 -1
  8. package/dist/components/avatar/avatar.d.ts +0 -1
  9. package/dist/components/avatar/avatar.element.js +72 -86
  10. package/dist/components/avatar/avatar.element.js.map +1 -1
  11. package/dist/components/avatar/avatar.js +5 -5
  12. package/dist/components/avatar/avatar.js.map +1 -1
  13. package/dist/components/avatar-group/avatar-group.d.ts +0 -1
  14. package/dist/components/avatar-group/avatar-group.element.js +58 -68
  15. package/dist/components/avatar-group/avatar-group.element.js.map +1 -1
  16. package/dist/components/avatar-group/avatar-group.js +5 -5
  17. package/dist/components/avatar-group/avatar-group.js.map +1 -1
  18. package/dist/components/badge/badge.d.ts +0 -1
  19. package/dist/components/badge/badge.element.js +32 -38
  20. package/dist/components/badge/badge.element.js.map +1 -1
  21. package/dist/components/badge/badge.js +5 -5
  22. package/dist/components/badge/badge.js.map +1 -1
  23. package/dist/components/boolean-input/UUIBooleanInputEvent.js +15 -13
  24. package/dist/components/boolean-input/UUIBooleanInputEvent.js.map +1 -1
  25. package/dist/components/boolean-input/boolean-input.d.ts +0 -1
  26. package/dist/components/boolean-input/boolean-input.element.js +114 -134
  27. package/dist/components/boolean-input/boolean-input.element.js.map +1 -1
  28. package/dist/components/boolean-input/boolean-input.js +3 -0
  29. package/dist/components/box/box.d.ts +0 -1
  30. package/dist/components/box/box.element.js +74 -77
  31. package/dist/components/box/box.element.js.map +1 -1
  32. package/dist/components/box/box.js +5 -5
  33. package/dist/components/box/box.js.map +1 -1
  34. package/dist/components/breadcrumbs/breadcrumb-item.element.js +45 -50
  35. package/dist/components/breadcrumbs/breadcrumb-item.element.js.map +1 -1
  36. package/dist/components/breadcrumbs/breadcrumbs.d.ts +0 -1
  37. package/dist/components/breadcrumbs/breadcrumbs.element.js +40 -47
  38. package/dist/components/breadcrumbs/breadcrumbs.element.js.map +1 -1
  39. package/dist/components/breadcrumbs/breadcrumbs.js +5 -6
  40. package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -1
  41. package/dist/components/button/button.d.ts +0 -1
  42. package/dist/components/button/button.element.js +147 -199
  43. package/dist/components/button/button.element.js.map +1 -1
  44. package/dist/components/button/button.js +5 -5
  45. package/dist/components/button/button.js.map +1 -1
  46. package/dist/components/button-copy-text/UUICopyTextEvent.js +16 -12
  47. package/dist/components/button-copy-text/UUICopyTextEvent.js.map +1 -1
  48. package/dist/components/button-copy-text/button-copy-text.d.ts +0 -1
  49. package/dist/components/button-copy-text/button-copy-text.element.js +78 -93
  50. package/dist/components/button-copy-text/button-copy-text.element.js.map +1 -1
  51. package/dist/components/button-copy-text/button-copy-text.js +6 -7
  52. package/dist/components/button-copy-text/button-copy-text.js.map +1 -1
  53. package/dist/components/button-group/button-group.d.ts +0 -1
  54. package/dist/components/button-group/button-group.element.js +19 -14
  55. package/dist/components/button-group/button-group.element.js.map +1 -1
  56. package/dist/components/button-group/button-group.js +5 -5
  57. package/dist/components/button-group/button-group.js.map +1 -1
  58. package/dist/components/button-inline-create/UUIButtonInlineCreateEvent.js +16 -14
  59. package/dist/components/button-inline-create/UUIButtonInlineCreateEvent.js.map +1 -1
  60. package/dist/components/button-inline-create/button-inline-create.d.ts +0 -1
  61. package/dist/components/button-inline-create/button-inline-create.element.js +63 -88
  62. package/dist/components/button-inline-create/button-inline-create.element.js.map +1 -1
  63. package/dist/components/button-inline-create/button-inline-create.js +6 -7
  64. package/dist/components/button-inline-create/button-inline-create.js.map +1 -1
  65. package/dist/components/card/UUICardEvent.js +9 -7
  66. package/dist/components/card/UUICardEvent.js.map +1 -1
  67. package/dist/components/card/card.d.ts +0 -1
  68. package/dist/components/card/card.element.d.ts +7 -0
  69. package/dist/components/card/card.element.js +72 -69
  70. package/dist/components/card/card.element.js.map +1 -1
  71. package/dist/components/card/card.js +6 -7
  72. package/dist/components/card/card.js.map +1 -1
  73. package/dist/components/card-block-type/card-block-type.d.ts +0 -1
  74. package/dist/components/card-block-type/card-block-type.element.js +55 -74
  75. package/dist/components/card-block-type/card-block-type.element.js.map +1 -1
  76. package/dist/components/card-block-type/card-block-type.js +5 -5
  77. package/dist/components/card-block-type/card-block-type.js.map +1 -1
  78. package/dist/components/card-content-node/card-content-node.d.ts +0 -1
  79. package/dist/components/card-content-node/card-content-node.element.d.ts +1 -0
  80. package/dist/components/card-content-node/card-content-node.element.js +82 -83
  81. package/dist/components/card-content-node/card-content-node.element.js.map +1 -1
  82. package/dist/components/card-content-node/card-content-node.js +5 -5
  83. package/dist/components/card-content-node/card-content-node.js.map +1 -1
  84. package/dist/components/card-media/card-media.d.ts +0 -1
  85. package/dist/components/card-media/card-media.element.d.ts +4 -0
  86. package/dist/components/card-media/card-media.element.js +103 -89
  87. package/dist/components/card-media/card-media.element.js.map +1 -1
  88. package/dist/components/card-media/card-media.js +5 -5
  89. package/dist/components/card-media/card-media.js.map +1 -1
  90. package/dist/components/card-user/card-user.d.ts +0 -1
  91. package/dist/components/card-user/card-user.element.js +57 -72
  92. package/dist/components/card-user/card-user.element.js.map +1 -1
  93. package/dist/components/card-user/card-user.js +5 -5
  94. package/dist/components/card-user/card-user.js.map +1 -1
  95. package/dist/components/checkbox/checkbox.d.ts +0 -1
  96. package/dist/components/checkbox/checkbox.element.js +41 -22
  97. package/dist/components/checkbox/checkbox.element.js.map +1 -1
  98. package/dist/components/checkbox/checkbox.js +5 -5
  99. package/dist/components/checkbox/checkbox.js.map +1 -1
  100. package/dist/components/color-area/UUIColorAreaEvent.js +15 -13
  101. package/dist/components/color-area/UUIColorAreaEvent.js.map +1 -1
  102. package/dist/components/color-area/color-area.d.ts +0 -1
  103. package/dist/components/color-area/color-area.element.js +137 -174
  104. package/dist/components/color-area/color-area.element.js.map +1 -1
  105. package/dist/components/color-area/color-area.js +6 -7
  106. package/dist/components/color-area/color-area.js.map +1 -1
  107. package/dist/components/color-picker/UUIColorPickerEvent.js +15 -13
  108. package/dist/components/color-picker/UUIColorPickerEvent.js.map +1 -1
  109. package/dist/components/color-picker/color-picker.d.ts +0 -1
  110. package/dist/components/color-picker/color-picker.element.js +293 -334
  111. package/dist/components/color-picker/color-picker.element.js.map +1 -1
  112. package/dist/components/color-picker/color-picker.js +6 -7
  113. package/dist/components/color-picker/color-picker.js.map +1 -1
  114. package/dist/components/color-slider/UUIColorSliderEvent.js +15 -13
  115. package/dist/components/color-slider/UUIColorSliderEvent.js.map +1 -1
  116. package/dist/components/color-slider/color-slider.d.ts +0 -1
  117. package/dist/components/color-slider/color-slider.element.js +169 -219
  118. package/dist/components/color-slider/color-slider.element.js.map +1 -1
  119. package/dist/components/color-slider/color-slider.js +6 -7
  120. package/dist/components/color-slider/color-slider.js.map +1 -1
  121. package/dist/components/color-swatch/color-swatch.d.ts +0 -1
  122. package/dist/components/color-swatch/color-swatch.element.d.ts +1 -1
  123. package/dist/components/color-swatch/color-swatch.element.js +215 -201
  124. package/dist/components/color-swatch/color-swatch.element.js.map +1 -1
  125. package/dist/components/color-swatch/color-swatch.js +5 -5
  126. package/dist/components/color-swatch/color-swatch.js.map +1 -1
  127. package/dist/components/color-swatches/UUIColorSwatchesEvent.js +15 -13
  128. package/dist/components/color-swatches/UUIColorSwatchesEvent.js.map +1 -1
  129. package/dist/components/color-swatches/color-swatches.d.ts +0 -1
  130. package/dist/components/color-swatches/color-swatches.element.js +115 -132
  131. package/dist/components/color-swatches/color-swatches.element.js.map +1 -1
  132. package/dist/components/color-swatches/color-swatches.js +6 -7
  133. package/dist/components/color-swatches/color-swatches.js.map +1 -1
  134. package/dist/components/combobox/UUIComboboxEvent.js +18 -14
  135. package/dist/components/combobox/UUIComboboxEvent.js.map +1 -1
  136. package/dist/components/combobox/combobox.d.ts +0 -1
  137. package/dist/components/combobox/combobox.element.js +321 -425
  138. package/dist/components/combobox/combobox.element.js.map +1 -1
  139. package/dist/components/combobox/combobox.js +6 -7
  140. package/dist/components/combobox/combobox.js.map +1 -1
  141. package/dist/components/combobox-list/UUIComboboxListEvent.js +18 -14
  142. package/dist/components/combobox-list/UUIComboboxListEvent.js.map +1 -1
  143. package/dist/components/combobox-list/combobox-list-option.element.js +88 -80
  144. package/dist/components/combobox-list/combobox-list-option.element.js.map +1 -1
  145. package/dist/components/combobox-list/combobox-list.d.ts +0 -1
  146. package/dist/components/combobox-list/combobox-list.element.js +218 -275
  147. package/dist/components/combobox-list/combobox-list.element.js.map +1 -1
  148. package/dist/components/combobox-list/combobox-list.js +6 -8
  149. package/dist/components/combobox-list/combobox-list.js.map +1 -1
  150. package/dist/components/dialog/dialog.d.ts +0 -1
  151. package/dist/components/dialog/dialog.element.js +19 -14
  152. package/dist/components/dialog/dialog.element.js.map +1 -1
  153. package/dist/components/dialog/dialog.js +5 -5
  154. package/dist/components/dialog/dialog.js.map +1 -1
  155. package/dist/components/dialog-layout/dialog-layout.d.ts +0 -1
  156. package/dist/components/dialog-layout/dialog-layout.element.js +59 -64
  157. package/dist/components/dialog-layout/dialog-layout.element.js.map +1 -1
  158. package/dist/components/dialog-layout/dialog-layout.js +5 -5
  159. package/dist/components/dialog-layout/dialog-layout.js.map +1 -1
  160. package/dist/components/file-dropzone/UUIFileDropzoneEvent.js +18 -14
  161. package/dist/components/file-dropzone/UUIFileDropzoneEvent.js.map +1 -1
  162. package/dist/components/file-dropzone/file-dropzone.d.ts +0 -1
  163. package/dist/components/file-dropzone/file-dropzone.element.js +214 -257
  164. package/dist/components/file-dropzone/file-dropzone.element.js.map +1 -1
  165. package/dist/components/file-dropzone/file-dropzone.js +6 -7
  166. package/dist/components/file-dropzone/file-dropzone.js.map +1 -1
  167. package/dist/components/file-preview/UUIFileSize.js +46 -19
  168. package/dist/components/file-preview/UUIFileSize.js.map +1 -1
  169. package/dist/components/file-preview/file-preview.d.ts +0 -1
  170. package/dist/components/file-preview/file-preview.element.js +78 -103
  171. package/dist/components/file-preview/file-preview.element.js.map +1 -1
  172. package/dist/components/file-preview/file-preview.js +6 -5
  173. package/dist/components/file-preview/file-preview.js.map +1 -1
  174. package/dist/components/form/form.d.ts +0 -1
  175. package/dist/components/form/form.element.js +46 -46
  176. package/dist/components/form/form.element.js.map +1 -1
  177. package/dist/components/form/form.js +5 -5
  178. package/dist/components/form/form.js.map +1 -1
  179. package/dist/components/form-layout-item/form-layout-item.d.ts +0 -1
  180. package/dist/components/form-layout-item/form-layout-item.element.js +39 -45
  181. package/dist/components/form-layout-item/form-layout-item.element.js.map +1 -1
  182. package/dist/components/form-layout-item/form-layout-item.js +5 -5
  183. package/dist/components/form-layout-item/form-layout-item.js.map +1 -1
  184. package/dist/components/form-validation-message/form-validation-message.d.ts +0 -1
  185. package/dist/components/form-validation-message/form-validation-message.element.js +71 -89
  186. package/dist/components/form-validation-message/form-validation-message.element.js.map +1 -1
  187. package/dist/components/form-validation-message/form-validation-message.js +5 -5
  188. package/dist/components/form-validation-message/form-validation-message.js.map +1 -1
  189. package/dist/components/icon/UUIIconRequestEvent.js +21 -19
  190. package/dist/components/icon/UUIIconRequestEvent.js.map +1 -1
  191. package/dist/components/icon/icon.d.ts +0 -1
  192. package/dist/components/icon/icon.element.js +93 -117
  193. package/dist/components/icon/icon.element.js.map +1 -1
  194. package/dist/components/icon/icon.js +6 -7
  195. package/dist/components/icon/icon.js.map +1 -1
  196. package/dist/components/icon-registry/UUIIconHost.js +16 -17
  197. package/dist/components/icon-registry/UUIIconHost.js.map +1 -1
  198. package/dist/components/icon-registry/UUIIconRegistry.js +67 -77
  199. package/dist/components/icon-registry/UUIIconRegistry.js.map +1 -1
  200. package/dist/components/icon-registry/icon-registry.d.ts +0 -1
  201. package/dist/components/icon-registry/icon-registry.element.js +39 -48
  202. package/dist/components/icon-registry/icon-registry.element.js.map +1 -1
  203. package/dist/components/icon-registry/icon-registry.js +7 -6
  204. package/dist/components/icon-registry/icon-registry.js.map +1 -1
  205. package/dist/components/icon-registry-essential/UUIIconRegistryEssential.js +44 -42
  206. package/dist/components/icon-registry-essential/UUIIconRegistryEssential.js.map +1 -1
  207. package/dist/components/icon-registry-essential/icon-registry-essential.d.ts +0 -1
  208. package/dist/components/icon-registry-essential/icon-registry-essential.element.js +15 -9
  209. package/dist/components/icon-registry-essential/icon-registry-essential.element.js.map +1 -1
  210. package/dist/components/icon-registry-essential/icon-registry-essential.js +6 -39
  211. package/dist/components/icon-registry-essential/icon-registry-essential.js.map +1 -1
  212. package/dist/components/icon-registry-essential/svgs/iconAdd.js +6 -5
  213. package/dist/components/icon-registry-essential/svgs/iconAdd.js.map +1 -1
  214. package/dist/components/icon-registry-essential/svgs/iconAlert.js +6 -5
  215. package/dist/components/icon-registry-essential/svgs/iconAlert.js.map +1 -1
  216. package/dist/components/icon-registry-essential/svgs/iconAttachment.js +6 -5
  217. package/dist/components/icon-registry-essential/svgs/iconAttachment.js.map +1 -1
  218. package/dist/components/icon-registry-essential/svgs/iconCalendar.js +6 -5
  219. package/dist/components/icon-registry-essential/svgs/iconCalendar.js.map +1 -1
  220. package/dist/components/icon-registry-essential/svgs/iconCheck.js +6 -5
  221. package/dist/components/icon-registry-essential/svgs/iconCheck.js.map +1 -1
  222. package/dist/components/icon-registry-essential/svgs/iconClipboard.js +6 -5
  223. package/dist/components/icon-registry-essential/svgs/iconClipboard.js.map +1 -1
  224. package/dist/components/icon-registry-essential/svgs/iconCode.js +6 -5
  225. package/dist/components/icon-registry-essential/svgs/iconCode.js.map +1 -1
  226. package/dist/components/icon-registry-essential/svgs/iconColorPicker.js +6 -5
  227. package/dist/components/icon-registry-essential/svgs/iconColorPicker.js.map +1 -1
  228. package/dist/components/icon-registry-essential/svgs/iconCopy.js +6 -5
  229. package/dist/components/icon-registry-essential/svgs/iconCopy.js.map +1 -1
  230. package/dist/components/icon-registry-essential/svgs/iconDelete.js +6 -5
  231. package/dist/components/icon-registry-essential/svgs/iconDelete.js.map +1 -1
  232. package/dist/components/icon-registry-essential/svgs/iconDocument.js +6 -5
  233. package/dist/components/icon-registry-essential/svgs/iconDocument.js.map +1 -1
  234. package/dist/components/icon-registry-essential/svgs/iconDownload.js +6 -5
  235. package/dist/components/icon-registry-essential/svgs/iconDownload.js.map +1 -1
  236. package/dist/components/icon-registry-essential/svgs/iconDrag.js +6 -5
  237. package/dist/components/icon-registry-essential/svgs/iconDrag.js.map +1 -1
  238. package/dist/components/icon-registry-essential/svgs/iconEdit.js +6 -5
  239. package/dist/components/icon-registry-essential/svgs/iconEdit.js.map +1 -1
  240. package/dist/components/icon-registry-essential/svgs/iconFavorite.js +6 -5
  241. package/dist/components/icon-registry-essential/svgs/iconFavorite.js.map +1 -1
  242. package/dist/components/icon-registry-essential/svgs/iconFolder.js +6 -5
  243. package/dist/components/icon-registry-essential/svgs/iconFolder.js.map +1 -1
  244. package/dist/components/icon-registry-essential/svgs/iconForbidden.js +6 -5
  245. package/dist/components/icon-registry-essential/svgs/iconForbidden.js.map +1 -1
  246. package/dist/components/icon-registry-essential/svgs/iconInfo.js +6 -5
  247. package/dist/components/icon-registry-essential/svgs/iconInfo.js.map +1 -1
  248. package/dist/components/icon-registry-essential/svgs/iconLink.js +6 -5
  249. package/dist/components/icon-registry-essential/svgs/iconLink.js.map +1 -1
  250. package/dist/components/icon-registry-essential/svgs/iconLock.js +6 -5
  251. package/dist/components/icon-registry-essential/svgs/iconLock.js.map +1 -1
  252. package/dist/components/icon-registry-essential/svgs/iconPause.js +6 -5
  253. package/dist/components/icon-registry-essential/svgs/iconPause.js.map +1 -1
  254. package/dist/components/icon-registry-essential/svgs/iconPicture.js +6 -5
  255. package/dist/components/icon-registry-essential/svgs/iconPicture.js.map +1 -1
  256. package/dist/components/icon-registry-essential/svgs/iconPlay.js +6 -5
  257. package/dist/components/icon-registry-essential/svgs/iconPlay.js.map +1 -1
  258. package/dist/components/icon-registry-essential/svgs/iconRemove.js +6 -5
  259. package/dist/components/icon-registry-essential/svgs/iconRemove.js.map +1 -1
  260. package/dist/components/icon-registry-essential/svgs/iconSearch.js +6 -5
  261. package/dist/components/icon-registry-essential/svgs/iconSearch.js.map +1 -1
  262. package/dist/components/icon-registry-essential/svgs/iconSee.js +6 -5
  263. package/dist/components/icon-registry-essential/svgs/iconSee.js.map +1 -1
  264. package/dist/components/icon-registry-essential/svgs/iconSettings.js +6 -5
  265. package/dist/components/icon-registry-essential/svgs/iconSettings.js.map +1 -1
  266. package/dist/components/icon-registry-essential/svgs/iconSubtract.js +6 -5
  267. package/dist/components/icon-registry-essential/svgs/iconSubtract.js.map +1 -1
  268. package/dist/components/icon-registry-essential/svgs/iconSync.js +6 -5
  269. package/dist/components/icon-registry-essential/svgs/iconSync.js.map +1 -1
  270. package/dist/components/icon-registry-essential/svgs/iconUnlock.js +6 -5
  271. package/dist/components/icon-registry-essential/svgs/iconUnlock.js.map +1 -1
  272. package/dist/components/icon-registry-essential/svgs/iconUnsee.js +6 -5
  273. package/dist/components/icon-registry-essential/svgs/iconUnsee.js.map +1 -1
  274. package/dist/components/icon-registry-essential/svgs/iconWand.js +6 -5
  275. package/dist/components/icon-registry-essential/svgs/iconWand.js.map +1 -1
  276. package/dist/components/icon-registry-essential/svgs/iconWrong.js +6 -5
  277. package/dist/components/icon-registry-essential/svgs/iconWrong.js.map +1 -1
  278. package/dist/components/icon-registry-essential/svgs/index.js +34 -0
  279. package/dist/components/index.js +206 -0
  280. package/dist/components/input/UUIInputEvent.js +18 -14
  281. package/dist/components/input/UUIInputEvent.js.map +1 -1
  282. package/dist/components/input/input.d.ts +0 -1
  283. package/dist/components/input/input.element.js +176 -201
  284. package/dist/components/input/input.element.js.map +1 -1
  285. package/dist/components/input/input.js +6 -7
  286. package/dist/components/input/input.js.map +1 -1
  287. package/dist/components/input-file/input-file.d.ts +0 -1
  288. package/dist/components/input-file/input-file.element.js +137 -211
  289. package/dist/components/input-file/input-file.element.js.map +1 -1
  290. package/dist/components/input-file/input-file.js +5 -5
  291. package/dist/components/input-file/input-file.js.map +1 -1
  292. package/dist/components/input-lock/UUIInputLockEvent.js +15 -13
  293. package/dist/components/input-lock/UUIInputLockEvent.js.map +1 -1
  294. package/dist/components/input-lock/input-lock.d.ts +0 -1
  295. package/dist/components/input-lock/input-lock.element.js +69 -105
  296. package/dist/components/input-lock/input-lock.element.js.map +1 -1
  297. package/dist/components/input-lock/input-lock.js +6 -7
  298. package/dist/components/input-lock/input-lock.js.map +1 -1
  299. package/dist/components/input-password/input-password.d.ts +0 -1
  300. package/dist/components/input-password/input-password.element.js +45 -90
  301. package/dist/components/input-password/input-password.element.js.map +1 -1
  302. package/dist/components/input-password/input-password.js +5 -5
  303. package/dist/components/input-password/input-password.js.map +1 -1
  304. package/dist/components/keyboard-shortcut/key.element.js +19 -14
  305. package/dist/components/keyboard-shortcut/key.element.js.map +1 -1
  306. package/dist/components/keyboard-shortcut/keyboard-shortcut.d.ts +0 -1
  307. package/dist/components/keyboard-shortcut/keyboard-shortcut.element.js +19 -14
  308. package/dist/components/keyboard-shortcut/keyboard-shortcut.element.js.map +1 -1
  309. package/dist/components/keyboard-shortcut/keyboard-shortcut.js +5 -6
  310. package/dist/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  311. package/dist/components/label/label.d.ts +0 -1
  312. package/dist/components/label/label.element.js +52 -54
  313. package/dist/components/label/label.element.js.map +1 -1
  314. package/dist/components/label/label.js +5 -5
  315. package/dist/components/label/label.js.map +1 -1
  316. package/dist/components/loader/loader.d.ts +0 -1
  317. package/dist/components/loader/loader.element.js +18 -14
  318. package/dist/components/loader/loader.element.js.map +1 -1
  319. package/dist/components/loader/loader.js +5 -5
  320. package/dist/components/loader/loader.js.map +1 -1
  321. package/dist/components/loader-bar/loader-bar.d.ts +0 -1
  322. package/dist/components/loader-bar/loader-bar.element.js +55 -52
  323. package/dist/components/loader-bar/loader-bar.element.js.map +1 -1
  324. package/dist/components/loader-bar/loader-bar.js +5 -5
  325. package/dist/components/loader-bar/loader-bar.js.map +1 -1
  326. package/dist/components/loader-circle/loader-circle.d.ts +0 -1
  327. package/dist/components/loader-circle/loader-circle.element.js +52 -59
  328. package/dist/components/loader-circle/loader-circle.element.js.map +1 -1
  329. package/dist/components/loader-circle/loader-circle.js +5 -5
  330. package/dist/components/loader-circle/loader-circle.js.map +1 -1
  331. package/dist/components/menu-item/UUIMenuItemEvent.js +15 -9
  332. package/dist/components/menu-item/UUIMenuItemEvent.js.map +1 -1
  333. package/dist/components/menu-item/menu-item.d.ts +0 -1
  334. package/dist/components/menu-item/menu-item.element.js +136 -139
  335. package/dist/components/menu-item/menu-item.element.js.map +1 -1
  336. package/dist/components/menu-item/menu-item.js +6 -7
  337. package/dist/components/menu-item/menu-item.js.map +1 -1
  338. package/dist/components/modal/modal-container.js +86 -141
  339. package/dist/components/modal/modal-container.js.map +1 -1
  340. package/dist/components/modal/modal-dialog.element.js +14 -15
  341. package/dist/components/modal/modal-dialog.element.js.map +1 -1
  342. package/dist/components/modal/modal-sidebar.element.js +41 -64
  343. package/dist/components/modal/modal-sidebar.element.js.map +1 -1
  344. package/dist/components/modal/modal.d.ts +0 -1
  345. package/dist/components/modal/modal.element.js +89 -106
  346. package/dist/components/modal/modal.element.js.map +1 -1
  347. package/dist/components/modal/modal.js +6 -12
  348. package/dist/components/modal/modal.js.map +1 -1
  349. package/dist/components/pagination/UUIPaginationEvent.js +15 -13
  350. package/dist/components/pagination/UUIPaginationEvent.js.map +1 -1
  351. package/dist/components/pagination/pagination.d.ts +0 -1
  352. package/dist/components/pagination/pagination.element.js +188 -228
  353. package/dist/components/pagination/pagination.element.js.map +1 -1
  354. package/dist/components/pagination/pagination.js +6 -7
  355. package/dist/components/pagination/pagination.js.map +1 -1
  356. package/dist/components/popover-container/popover-container.d.ts +0 -1
  357. package/dist/components/popover-container/popover-container.element.d.ts +1 -0
  358. package/dist/components/popover-container/popover-container.element.js +290 -335
  359. package/dist/components/popover-container/popover-container.element.js.map +1 -1
  360. package/dist/components/popover-container/popover-container.js +5 -5
  361. package/dist/components/popover-container/popover-container.js.map +1 -1
  362. package/dist/components/progress-bar/progress-bar.d.ts +0 -1
  363. package/dist/components/progress-bar/progress-bar.element.js +41 -43
  364. package/dist/components/progress-bar/progress-bar.element.js.map +1 -1
  365. package/dist/components/progress-bar/progress-bar.js +5 -5
  366. package/dist/components/progress-bar/progress-bar.js.map +1 -1
  367. package/dist/components/radio/UUIRadioEvent.js +15 -13
  368. package/dist/components/radio/UUIRadioEvent.js.map +1 -1
  369. package/dist/components/radio/UUIRadioGroupEvent.js +15 -13
  370. package/dist/components/radio/UUIRadioGroupEvent.js.map +1 -1
  371. package/dist/components/radio/radio-group.element.js +224 -279
  372. package/dist/components/radio/radio-group.element.js.map +1 -1
  373. package/dist/components/radio/radio.d.ts +0 -1
  374. package/dist/components/radio/radio.element.js +100 -123
  375. package/dist/components/radio/radio.element.js.map +1 -1
  376. package/dist/components/radio/radio.js +7 -10
  377. package/dist/components/radio/radio.js.map +1 -1
  378. package/dist/components/range-slider/UUIRangeSliderEvent.js +18 -14
  379. package/dist/components/range-slider/UUIRangeSliderEvent.js.map +1 -1
  380. package/dist/components/range-slider/range-slider.d.ts +0 -1
  381. package/dist/components/range-slider/range-slider.element.js +439 -504
  382. package/dist/components/range-slider/range-slider.element.js.map +1 -1
  383. package/dist/components/range-slider/range-slider.js +6 -7
  384. package/dist/components/range-slider/range-slider.js.map +1 -1
  385. package/dist/components/ref/UUIRefEvent.js +9 -7
  386. package/dist/components/ref/UUIRefEvent.js.map +1 -1
  387. package/dist/components/ref/ref.d.ts +0 -1
  388. package/dist/components/ref/ref.element.js +55 -50
  389. package/dist/components/ref/ref.element.js.map +1 -1
  390. package/dist/components/ref/ref.js +6 -7
  391. package/dist/components/ref/ref.js.map +1 -1
  392. package/dist/components/ref-list/ref-list.d.ts +0 -1
  393. package/dist/components/ref-list/ref-list.element.js +17 -14
  394. package/dist/components/ref-list/ref-list.element.js.map +1 -1
  395. package/dist/components/ref-list/ref-list.js +5 -5
  396. package/dist/components/ref-list/ref-list.js.map +1 -1
  397. package/dist/components/ref-node/ref-node.d.ts +0 -1
  398. package/dist/components/ref-node/ref-node.element.js +91 -109
  399. package/dist/components/ref-node/ref-node.element.js.map +1 -1
  400. package/dist/components/ref-node/ref-node.js +5 -5
  401. package/dist/components/ref-node/ref-node.js.map +1 -1
  402. package/dist/components/ref-node-data-type/ref-node-data-type.d.ts +0 -1
  403. package/dist/components/ref-node-data-type/ref-node-data-type.element.js +30 -35
  404. package/dist/components/ref-node-data-type/ref-node-data-type.element.js.map +1 -1
  405. package/dist/components/ref-node-data-type/ref-node-data-type.js +5 -5
  406. package/dist/components/ref-node-data-type/ref-node-data-type.js.map +1 -1
  407. package/dist/components/ref-node-document-type/ref-node-document-type.d.ts +0 -1
  408. package/dist/components/ref-node-document-type/ref-node-document-type.element.js +30 -35
  409. package/dist/components/ref-node-document-type/ref-node-document-type.element.js.map +1 -1
  410. package/dist/components/ref-node-document-type/ref-node-document-type.js +5 -5
  411. package/dist/components/ref-node-document-type/ref-node-document-type.js.map +1 -1
  412. package/dist/components/ref-node-form/ref-node-form.d.ts +0 -1
  413. package/dist/components/ref-node-form/ref-node-form.element.js +21 -12
  414. package/dist/components/ref-node-form/ref-node-form.element.js.map +1 -1
  415. package/dist/components/ref-node-form/ref-node-form.js +5 -5
  416. package/dist/components/ref-node-form/ref-node-form.js.map +1 -1
  417. package/dist/components/ref-node-member/ref-node-member.d.ts +0 -1
  418. package/dist/components/ref-node-member/ref-node-member.element.js +33 -35
  419. package/dist/components/ref-node-member/ref-node-member.element.js.map +1 -1
  420. package/dist/components/ref-node-member/ref-node-member.js +5 -5
  421. package/dist/components/ref-node-member/ref-node-member.js.map +1 -1
  422. package/dist/components/ref-node-package/ref-node-package.d.ts +0 -1
  423. package/dist/components/ref-node-package/ref-node-package.element.js +33 -42
  424. package/dist/components/ref-node-package/ref-node-package.element.js.map +1 -1
  425. package/dist/components/ref-node-package/ref-node-package.js +5 -5
  426. package/dist/components/ref-node-package/ref-node-package.js.map +1 -1
  427. package/dist/components/ref-node-user/ref-node-user.d.ts +0 -1
  428. package/dist/components/ref-node-user/ref-node-user.element.js +33 -35
  429. package/dist/components/ref-node-user/ref-node-user.element.js.map +1 -1
  430. package/dist/components/ref-node-user/ref-node-user.js +5 -5
  431. package/dist/components/ref-node-user/ref-node-user.js.map +1 -1
  432. package/dist/components/responsive-container/responsive-container.d.ts +0 -1
  433. package/dist/components/responsive-container/responsive-container.element.js +186 -244
  434. package/dist/components/responsive-container/responsive-container.element.js.map +1 -1
  435. package/dist/components/responsive-container/responsive-container.js +5 -5
  436. package/dist/components/responsive-container/responsive-container.js.map +1 -1
  437. package/dist/components/scroll-container/scroll-container.d.ts +0 -1
  438. package/dist/components/scroll-container/scroll-container.element.js +35 -36
  439. package/dist/components/scroll-container/scroll-container.element.js.map +1 -1
  440. package/dist/components/scroll-container/scroll-container.js +5 -5
  441. package/dist/components/scroll-container/scroll-container.js.map +1 -1
  442. package/dist/components/select/UUISelectEvent.js +15 -13
  443. package/dist/components/select/UUISelectEvent.js.map +1 -1
  444. package/dist/components/select/select.d.ts +0 -1
  445. package/dist/components/select/select.element.js +134 -163
  446. package/dist/components/select/select.element.js.map +1 -1
  447. package/dist/components/select/select.js +6 -7
  448. package/dist/components/select/select.js.map +1 -1
  449. package/dist/components/slider/UUISliderEvent.js +18 -14
  450. package/dist/components/slider/UUISliderEvent.js.map +1 -1
  451. package/dist/components/slider/native-input.styles.js +6 -5
  452. package/dist/components/slider/native-input.styles.js.map +1 -1
  453. package/dist/components/slider/slider.d.ts +0 -1
  454. package/dist/components/slider/slider.element.d.ts +7 -0
  455. package/dist/components/slider/slider.element.js +197 -227
  456. package/dist/components/slider/slider.element.js.map +1 -1
  457. package/dist/components/slider/slider.js +6 -7
  458. package/dist/components/slider/slider.js.map +1 -1
  459. package/dist/components/symbol-drag-handle/symbol-drag-handle.d.ts +0 -1
  460. package/dist/components/symbol-drag-handle/symbol-drag-handle.element.js +19 -16
  461. package/dist/components/symbol-drag-handle/symbol-drag-handle.element.js.map +1 -1
  462. package/dist/components/symbol-drag-handle/symbol-drag-handle.js +5 -5
  463. package/dist/components/symbol-drag-handle/symbol-drag-handle.js.map +1 -1
  464. package/dist/components/symbol-expand/symbol-expand.d.ts +0 -1
  465. package/dist/components/symbol-expand/symbol-expand.element.js +27 -30
  466. package/dist/components/symbol-expand/symbol-expand.element.js.map +1 -1
  467. package/dist/components/symbol-expand/symbol-expand.js +5 -5
  468. package/dist/components/symbol-expand/symbol-expand.js.map +1 -1
  469. package/dist/components/symbol-file/symbol-file.d.ts +0 -1
  470. package/dist/components/symbol-file/symbol-file.element.js +24 -32
  471. package/dist/components/symbol-file/symbol-file.element.js.map +1 -1
  472. package/dist/components/symbol-file/symbol-file.js +5 -5
  473. package/dist/components/symbol-file/symbol-file.js.map +1 -1
  474. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.d.ts +0 -1
  475. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.element.js +26 -30
  476. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.element.js.map +1 -1
  477. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.js +5 -5
  478. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.js.map +1 -1
  479. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.d.ts +0 -1
  480. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.element.js +39 -95
  481. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.element.js.map +1 -1
  482. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.js +5 -5
  483. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.js.map +1 -1
  484. package/dist/components/symbol-folder/symbol-folder.d.ts +0 -1
  485. package/dist/components/symbol-folder/symbol-folder.element.js +17 -14
  486. package/dist/components/symbol-folder/symbol-folder.element.js.map +1 -1
  487. package/dist/components/symbol-folder/symbol-folder.js +5 -5
  488. package/dist/components/symbol-folder/symbol-folder.js.map +1 -1
  489. package/dist/components/symbol-lock/symbol-lock.d.ts +0 -1
  490. package/dist/components/symbol-lock/symbol-lock.element.js +26 -30
  491. package/dist/components/symbol-lock/symbol-lock.element.js.map +1 -1
  492. package/dist/components/symbol-lock/symbol-lock.js +5 -5
  493. package/dist/components/symbol-lock/symbol-lock.js.map +1 -1
  494. package/dist/components/symbol-more/symbol-more.d.ts +0 -1
  495. package/dist/components/symbol-more/symbol-more.element.js +17 -14
  496. package/dist/components/symbol-more/symbol-more.element.js.map +1 -1
  497. package/dist/components/symbol-more/symbol-more.js +5 -5
  498. package/dist/components/symbol-more/symbol-more.js.map +1 -1
  499. package/dist/components/symbol-sort/symbol-sort.d.ts +0 -1
  500. package/dist/components/symbol-sort/symbol-sort.element.js +29 -31
  501. package/dist/components/symbol-sort/symbol-sort.element.js.map +1 -1
  502. package/dist/components/symbol-sort/symbol-sort.js +5 -5
  503. package/dist/components/symbol-sort/symbol-sort.js.map +1 -1
  504. package/dist/components/table/table-cell.element.js +65 -71
  505. package/dist/components/table/table-cell.element.js.map +1 -1
  506. package/dist/components/table/table-column.element.js +14 -10
  507. package/dist/components/table/table-column.element.js.map +1 -1
  508. package/dist/components/table/table-head-cell.element.js +19 -16
  509. package/dist/components/table/table-head-cell.element.js.map +1 -1
  510. package/dist/components/table/table-head.element.js +23 -18
  511. package/dist/components/table/table-head.element.js.map +1 -1
  512. package/dist/components/table/table-row.element.js +41 -52
  513. package/dist/components/table/table-row.element.js.map +1 -1
  514. package/dist/components/table/table.d.ts +0 -1
  515. package/dist/components/table/table.element.js +31 -20
  516. package/dist/components/table/table.element.js.map +1 -1
  517. package/dist/components/table/table.js +5 -10
  518. package/dist/components/table/table.js.map +1 -1
  519. package/dist/components/tabs/UUITabEvent.js +6 -6
  520. package/dist/components/tabs/UUITabEvent.js.map +1 -1
  521. package/dist/components/tabs/UUITabGroupEvent.js +6 -6
  522. package/dist/components/tabs/UUITabGroupEvent.js.map +1 -1
  523. package/dist/components/tabs/tab-group.element.js +188 -251
  524. package/dist/components/tabs/tab-group.element.js.map +1 -1
  525. package/dist/components/tabs/tab.element.js +66 -56
  526. package/dist/components/tabs/tab.element.js.map +1 -1
  527. package/dist/components/tabs/tabs.d.ts +0 -1
  528. package/dist/components/tabs/tabs.js +7 -6
  529. package/dist/components/tabs/tabs.js.map +1 -1
  530. package/dist/components/tag/tag.d.ts +0 -1
  531. package/dist/components/tag/tag.element.js +32 -34
  532. package/dist/components/tag/tag.element.js.map +1 -1
  533. package/dist/components/tag/tag.js +5 -5
  534. package/dist/components/tag/tag.js.map +1 -1
  535. package/dist/components/textarea/UUITextareaEvent.js +18 -14
  536. package/dist/components/textarea/UUITextareaEvent.js.map +1 -1
  537. package/dist/components/textarea/textarea.d.ts +0 -1
  538. package/dist/components/textarea/textarea.element.d.ts +2 -0
  539. package/dist/components/textarea/textarea.element.js +153 -180
  540. package/dist/components/textarea/textarea.element.js.map +1 -1
  541. package/dist/components/textarea/textarea.js +6 -7
  542. package/dist/components/textarea/textarea.js.map +1 -1
  543. package/dist/components/toast-notification/UUIToastNotificationEvent.js +18 -10
  544. package/dist/components/toast-notification/UUIToastNotificationEvent.js.map +1 -1
  545. package/dist/components/toast-notification/toast-notification.d.ts +0 -1
  546. package/dist/components/toast-notification/toast-notification.element.js +155 -224
  547. package/dist/components/toast-notification/toast-notification.element.js.map +1 -1
  548. package/dist/components/toast-notification/toast-notification.js +6 -7
  549. package/dist/components/toast-notification/toast-notification.js.map +1 -1
  550. package/dist/components/toast-notification-container/toast-notification-container.d.ts +0 -1
  551. package/dist/components/toast-notification-container/toast-notification-container.element.js +98 -122
  552. package/dist/components/toast-notification-container/toast-notification-container.element.js.map +1 -1
  553. package/dist/components/toast-notification-container/toast-notification-container.js +6 -9
  554. package/dist/components/toast-notification-container/toast-notification-container.js.map +1 -1
  555. package/dist/components/toast-notification-layout/toast-notification-layout.d.ts +0 -1
  556. package/dist/components/toast-notification-layout/toast-notification-layout.element.js +33 -39
  557. package/dist/components/toast-notification-layout/toast-notification-layout.element.js.map +1 -1
  558. package/dist/components/toast-notification-layout/toast-notification-layout.js +6 -9
  559. package/dist/components/toast-notification-layout/toast-notification-layout.js.map +1 -1
  560. package/dist/components/toggle/toggle.d.ts +0 -1
  561. package/dist/components/toggle/toggle.element.js +43 -54
  562. package/dist/components/toggle/toggle.element.js.map +1 -1
  563. package/dist/components/toggle/toggle.js +5 -5
  564. package/dist/components/toggle/toggle.js.map +1 -1
  565. package/dist/components/visually-hidden/visually-hidden.d.ts +0 -1
  566. package/dist/components/visually-hidden/visually-hidden.element.js +17 -14
  567. package/dist/components/visually-hidden/visually-hidden.element.js.map +1 -1
  568. package/dist/components/visually-hidden/visually-hidden.js +5 -5
  569. package/dist/components/visually-hidden/visually-hidden.js.map +1 -1
  570. package/dist/index.js +115 -359
  571. package/dist/internal/animations/uui-blink.js +7 -7
  572. package/dist/internal/animations/uui-blink.js.map +1 -1
  573. package/dist/internal/animations/uui-pulse.js +7 -9
  574. package/dist/internal/animations/uui-pulse.js.map +1 -1
  575. package/dist/internal/animations/uui-shake.js +7 -9
  576. package/dist/internal/animations/uui-shake.js.map +1 -1
  577. package/dist/internal/events/UUIEvent.js +13 -9
  578. package/dist/internal/events/UUIEvent.js.map +1 -1
  579. package/dist/internal/events/UUIFormControlEvent.d.ts +2 -2
  580. package/dist/internal/events/UUIFormControlEvent.js +18 -14
  581. package/dist/internal/events/UUIFormControlEvent.js.map +1 -1
  582. package/dist/internal/events/UUISelectableEvent.js +19 -15
  583. package/dist/internal/events/UUISelectableEvent.js.map +1 -1
  584. package/dist/internal/mixins/ActiveMixin.js +24 -24
  585. package/dist/internal/mixins/ActiveMixin.js.map +1 -1
  586. package/dist/internal/mixins/FormControlMixin.d.ts +3 -3
  587. package/dist/internal/mixins/FormControlMixin.js +276 -339
  588. package/dist/internal/mixins/FormControlMixin.js.map +1 -1
  589. package/dist/internal/mixins/FormControlWithBasicsMixin.d.ts +19 -3
  590. package/dist/internal/mixins/FormControlWithBasicsMixin.js +54 -60
  591. package/dist/internal/mixins/FormControlWithBasicsMixin.js.map +1 -1
  592. package/dist/internal/mixins/LabelMixin.js +54 -57
  593. package/dist/internal/mixins/LabelMixin.js.map +1 -1
  594. package/dist/internal/mixins/PopoverTargetMixin.js +43 -47
  595. package/dist/internal/mixins/PopoverTargetMixin.js.map +1 -1
  596. package/dist/internal/mixins/SelectOnlyMixin.js +39 -33
  597. package/dist/internal/mixins/SelectOnlyMixin.js.map +1 -1
  598. package/dist/internal/mixins/SelectableMixin.js +109 -121
  599. package/dist/internal/mixins/SelectableMixin.js.map +1 -1
  600. package/dist/internal/registration/index.js +17 -20
  601. package/dist/internal/registration/index.js.map +1 -1
  602. package/dist/internal/types/InterfaceColor.js +11 -10
  603. package/dist/internal/types/InterfaceColor.js.map +1 -1
  604. package/dist/internal/types/InterfaceHeading.js +12 -11
  605. package/dist/internal/types/InterfaceHeading.js.map +1 -1
  606. package/dist/internal/types/InterfaceLook.js +11 -10
  607. package/dist/internal/types/InterfaceLook.js.map +1 -1
  608. package/dist/internal/utils/Timer.js +56 -61
  609. package/dist/internal/utils/Timer.js.map +1 -1
  610. package/dist/internal/utils/color.js +105 -74
  611. package/dist/internal/utils/color.js.map +1 -1
  612. package/dist/internal/utils/drag.js +27 -36
  613. package/dist/internal/utils/drag.js.map +1 -1
  614. package/dist/internal/utils/findAncestorByAttributeValue.js +22 -19
  615. package/dist/internal/utils/findAncestorByAttributeValue.js.map +1 -1
  616. package/dist/internal/utils/math.js +23 -13
  617. package/dist/internal/utils/math.js.map +1 -1
  618. package/dist/internal/utils/slotHasContent.js +6 -5
  619. package/dist/internal/utils/slotHasContent.js.map +1 -1
  620. package/dist/internal/version.js +10 -16
  621. package/dist/internal/version.js.map +1 -1
  622. package/dist/package.json.js +6 -5
  623. package/dist/package.json.js.map +1 -1
  624. package/dist/styles/uui-font.css +1 -1
  625. package/dist/styles/uui-text.css +1 -1
  626. package/dist/styles/uui-text.css.js +6 -5
  627. package/dist/styles/uui-text.css.js.map +1 -1
  628. package/dist/styles/uui-text.styles.js +7 -6
  629. package/dist/styles/uui-text.styles.js.map +1 -1
  630. package/dist/themes/dark.css +1 -1
  631. package/dist/themes/high-contrast.css +1 -1
  632. package/dist/themes/light.css +1 -1
  633. package/package.json +26 -25
  634. package/vscode.html-custom-data.json +36 -7
  635. package/dist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker.element.js","sources":["../../../src/components/color-picker/color-picker.element.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\n\nimport {\n parseColor,\n hslaToRgb,\n hslaToHsv,\n hslaToHex,\n type HslaColor,\n} from '../../internal/utils/index.js';\n\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { UUIColorAreaEvent } from '../color-area/color-area.js';\n\nimport type { UUIColorSliderEvent } from '../color-slider/color-slider.js';\n\nimport type {\n UUIColorSwatchesElement,\n UUIColorSwatchesEvent,\n} from '../color-swatches/color-swatches.js';\n\nimport type { UUIInputElement } from '../input/input.js';\nimport { UUIColorPickerChangeEvent } from './UUIColorPickerEvent.js';\nimport { LabelMixin } from '../../internal/mixins/index.js';\n\nimport '../color-area/color-area.js';\nimport '../color-slider/color-slider.js';\nimport '../input/input.js';\nimport '../button-group/button-group.js';\nimport '../button/button.js';\nimport '../icon-registry-essential/icon-registry-essential.js';\nimport '../icon/icon.js';\nimport '../color-swatches/color-swatches.js';\nimport '../color-swatch/color-swatch.js';\nimport '../popover-container/popover-container.js';\n\nconst hasEyeDropper = 'EyeDropper' in window;\n\ntype EyeDropperConstructor = new () => EyeDropperInterface;\n\ninterface EyeDropperInterface {\n open: () => Promise<{ sRGBHex: string }>;\n}\n\nexport type UUIColorPickerFormat = 'hex' | 'rgb' | 'hsl' | 'hsv';\nexport type UUIColorPickerFormatWithAlpha =\n | UUIColorPickerFormat\n | 'hexa'\n | 'rgba'\n | 'hsla'\n | 'hsva';\n\ndeclare const EyeDropper: EyeDropperConstructor;\n\ntype UUIColorPickerSize = 'small' | 'medium' | 'large';\n\n/**\n * @element uui-color-picker\n * @cssprop --uui-color-picker-width - The width of the color picker\n * @description\n * @fires {UUIColorPickerChangeEvent} change - Fired when the color changes\n */\nexport class UUIColorPickerElement extends LabelMixin('label', LitElement) {\n @query('[part=\"input\"]') private readonly _input!: UUIInputElement;\n @query('.color-picker__preview')\n private readonly _previewButton!: HTMLButtonElement;\n @query('#swatches') private readonly _swatches!: UUIColorSwatchesElement;\n\n private _value: string = '';\n\n @state() private inputValue = '';\n @state() private hue = 0;\n @state() private saturation = 0;\n @state() private lightness = 0;\n @state() private alpha = 100;\n @state() private _color: HslaColor = { h: 0, s: 0, l: 0, a: 1 };\n\n /**\n * The current color.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property()\n set value(value: string) {\n if (this.value !== value) {\n if (!this.setColor(value)) return;\n }\n this._value = value;\n }\n get value(): string {\n return this._value;\n }\n\n /**\n * The format to use for the display value. If opacity is enabled, these will translate to HEXA, RGBA, HSLA, and HSVA\n * respectively. The color picker will always accept user input in any format (including CSS color names) and convert\n * it to the desired format.\n * @attr\n * @type {UUIColorPickerFormat}\n * @default 'hex'\n */\n @property() format: UUIColorPickerFormat = 'hex';\n\n /**\n * The input's name attribute.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property() name = '';\n\n /**\n * Determines the size of the color picker's trigger. This has no effect on inline color pickers.\n * @attr\n * @type {UUIColorPickerSize}\n * @default 'medium'\n **/\n @property() size: UUIColorPickerSize = 'medium';\n\n /**\n * Removes the format toggle.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ attribute: 'no-format-toggle', type: Boolean }) noFormatToggle =\n false;\n\n /**\n * Renders the color picker inline rather than inside a dropdown.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) inline = false;\n\n /**\n * Sets the color picker to disabled.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Whether to show the opacity slider.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) opacity = false;\n\n /**\n * Sets the color picker to readonly mode.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * By default, the value will be set in lowercase. Set this to true to set it in uppercase instead.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) uppercase = false;\n\n /**\n * An array of predefined color swatches to display. Can include any format the color picker can parse, including\n * HEX(A), RGB(A), HSL(A), HSV(A), and CSS color names.\n */\n @property({ attribute: false }) swatches: string[] = [\n '#d0021b',\n '#f5a623',\n '#f8e71c',\n '#8b572a',\n '#7ed321',\n '#417505',\n '#bd10e0',\n '#9013fe',\n '#4a90e2',\n '#50e3c2',\n '#b8e986',\n '#000',\n '#444',\n '#888',\n '#ccc',\n '#fff',\n ];\n\n /** Returns the current value as a string in the specified format. */\n getFormattedValue(format: UUIColorPickerFormat) {\n const formatToUse = this.opacity ? `${format}a` : format;\n const { h, s, l, a } = this._color;\n const hexa = hslaToHex(h, s, l, a * 100);\n const hex = hexa.length > 7 ? hexa.substring(0, hexa.length - 2) : hexa;\n const { r, g, b } = hslaToRgb(h, s, l);\n const { s: sv, v } = hslaToHsv(h, s, l);\n\n switch (formatToUse) {\n case 'hex':\n return this.setLetterCase(hex);\n case 'hexa':\n return this.setLetterCase(hexa);\n case 'rgb':\n case 'rgba':\n return this.setLetterCase(`rgb(${r} ${g} ${b} / ${a})`);\n case 'hsl':\n case 'hsla':\n return this.setLetterCase(`hsl(${h} ${s}% ${l}% / ${a})`);\n case 'hsv':\n return this.setLetterCase(`hsv(${h}, ${sv}%, ${v}%)`);\n case 'hsva':\n return this.setLetterCase(`hsva(${h}, ${sv}%, ${v}%, ${a})`);\n default:\n return '';\n }\n }\n\n handleFormatToggle() {\n const formats = ['hex', 'rgb', 'hsl', 'hsv'];\n const nextIndex = (formats.indexOf(this.format) + 1) % formats.length;\n this.format = formats[nextIndex] as 'hex' | 'rgb' | 'hsl' | 'hsv';\n this._syncValues();\n }\n\n handleAlphaChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: Math.round(element.value) / 100,\n };\n this.setColor(newColor);\n }\n\n handleHueChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: element.value,\n s: this.saturation,\n l: this.lightness,\n a: this.alpha / 100,\n };\n this.setColor(newColor);\n }\n\n handleGridChange(event: UUIColorAreaEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: element.saturation,\n l: element.lightness,\n a: this.alpha / 100,\n };\n\n this.setColor(newColor);\n }\n\n handleInputChange(event: CustomEvent) {\n event.stopImmediatePropagation();\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n }\n\n handleInputKeyDown(event: KeyboardEvent) {\n event.stopImmediatePropagation();\n if (event.key === 'Enter') {\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n\n setTimeout(() => this._input.select());\n }\n }\n\n handleColorSwatchChange(event: UUIColorSwatchesEvent) {\n event.stopImmediatePropagation();\n\n const target = event.target;\n this.setColor(target.value);\n }\n\n handleCopy() {\n navigator.clipboard.writeText(this._input.value as string).then(() => {\n // Show copied animation\n this._previewButton.classList.add('color-picker__preview-color--copied');\n this._previewButton.addEventListener(\n 'animationend',\n () => {\n this._previewButton.classList.remove(\n 'color-picker__preview-color--copied',\n );\n },\n { once: true },\n );\n });\n }\n\n handleEyeDropper() {\n if (!hasEyeDropper) {\n return;\n }\n\n const eyeDropper = new EyeDropper();\n\n eyeDropper\n .open()\n .then(result => this.setColor(result.sRGBHex))\n .catch(() => {\n // The user canceled, do nothing\n });\n }\n\n setColor(colorString: string | HslaColor) {\n if (colorString === this.value) return;\n\n if (!colorString) {\n this.alpha = 100;\n this.inputValue = '';\n this._value = colorString;\n this._color = { h: 0, s: 0, l: 0, a: 1 };\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n\n return true;\n }\n\n const parsed = parseColor(colorString);\n if (!parsed) return false;\n\n const { h, s, l, a } = parsed;\n\n this.hue = h;\n this.saturation = Math.round(s);\n this.lightness = Math.round(l);\n this.alpha = this.opacity ? a * 100 : 100; // Convert to 0-100 range, and set alpha to 100 if opacity is disabled\n\n // Workaround as hue isn't correct after changing hue slider, but parseColor returns hue as zero when color is black.\n if (typeof colorString !== 'string' && colorString.h) {\n this.hue = colorString.h;\n }\n\n this._color = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: this.opacity ? a : 1,\n };\n\n this._syncValues();\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n return true;\n }\n\n setLetterCase(string: string) {\n if (typeof string !== 'string') {\n return '';\n }\n return this.uppercase ? string.toUpperCase() : string.toLowerCase();\n }\n\n private _syncValues() {\n this.inputValue = this.getFormattedValue(this.format);\n this._value = this.inputValue;\n }\n\n private _renderColorPicker() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`\n <div\n class=${classMap({\n 'color-picker': true,\n 'color-picker--inline': this.inline,\n 'color-picker--disabled': this.disabled,\n })}\n aria-disabled=${this.disabled ? 'true' : 'false'}>\n <uui-color-area\n .value=\"${this.value}\"\n .hue=\"${Math.round(this.hue)}\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleGridChange}>\n </uui-color-area>\n <div class=\"color-picker__controls\">\n <div class=\"color-picker__sliders\">\n <uui-color-slider\n hide-value-label\n label=\"hue\"\n class=\"hue-slider\"\n .value=${Math.round(this.hue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleHueChange}>\n </uui-color-slider>\n ${this.opacity\n ? html`\n <uui-color-slider\n hide-value-label\n label=\"alpha\"\n class=\"opacity-slider\"\n .value=${Math.round(this.alpha)}\n type=\"opacity\"\n .color=${hslaToHex(\n this.hue,\n this.saturation,\n this.lightness,\n )}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleAlphaChange}>\n </uui-color-slider>\n `\n : ''}\n </div>\n <button\n type=\"button\"\n part=\"preview\"\n class=\"color-picker__preview color-picker__transparent-bg\"\n title=\"Copy\"\n aria-label=\"Copy\"\n style=${styleMap({ '--preview-color': previewColor })}\n @click=${this.handleCopy}></button>\n </div>\n <div class=\"color-picker__user-input\" aria-live=\"polite\">\n <uui-input\n label=\"label\"\n type=\"text\"\n part=\"input\"\n name=${this.name}\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n .value=${live(this.inputValue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${this.handleInputKeyDown}\n @change=${this.handleInputChange}>\n <uui-button-group slot=\"append\">\n ${this.noFormatToggle\n ? ''\n : html`<uui-button\n label=\"Toggle color format\"\n @click=${this.handleFormatToggle}\n class=\"color-picker__toggle-format\"\n ?disabled=${this.disabled}\n compact>\n <span>${this.format}</span>\n </uui-button>`}\n ${hasEyeDropper\n ? html`<uui-button\n label=\"Select a color\"\n ?disabled=${this.disabled || this.readonly}\n @click=${this.handleEyeDropper}\n compact>\n <uui-icon-registry-essential>\n <uui-icon name=\"colorpicker\"></uui-icon>\n </uui-icon-registry-essential>\n </uui-button>`\n : ''}\n </uui-button-group>\n </uui-input>\n </div>\n ${this._renderSwatches()}\n </div>\n `;\n }\n\n private _renderSwatches() {\n if (!this.swatches?.length) return nothing;\n return html`<uui-color-swatches\n id=\"swatches\"\n class=\"color-picker__swatches\"\n label=\"Swatches\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleColorSwatchChange}>\n ${this.swatches.map(\n swatch =>\n html`<uui-color-swatch label=\"${swatch}\" .value=${swatch}>\n </uui-color-swatch>`,\n )}\n </uui-color-swatches>`;\n }\n\n private _renderPreviewButton() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`<button\n type=\"button\"\n part=\"trigger\"\n aria-label=\"${this.label || 'Open Color picker'}\"\n class=${classMap({\n 'color-picker__trigger': true,\n 'color-dropdown__trigger--disabled': this.disabled,\n 'color-dropdown__trigger--small': this.size === 'small',\n 'color-dropdown__trigger--medium': this.size === 'medium',\n 'color-dropdown__trigger--large': this.size === 'large',\n 'color-picker__transparent-bg': true,\n })}\n style=${styleMap({ '--preview-color': previewColor })}\n ?disabled=${this.disabled}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n popovertarget=\"color-picker-popover\"></button>\n <uui-popover-container id=\"color-picker-popover\">\n ${this._renderColorPicker()}\n </uui-popover-container>`;\n }\n\n render() {\n return this.inline\n ? this._renderColorPicker()\n : this._renderPreviewButton();\n }\n\n static override readonly styles = [\n css`\n :host {\n --uui-look-outline-border: #ddd;\n --uui-look-outline-border-hover: #aaa;\n --uui-color-area-border-radius: var(--uui-border-radius-2)\n var(--uui-border-radius-2) 0 0;\n font-size: 0.8rem;\n color: var(--uui-color-text);\n display: block;\n width: var(--uui-color-picker-width, 280px);\n }\n :host > button {\n cursor: pointer;\n }\n uui-popover-container {\n width: inherit;\n }\n .color-picker {\n width: 100%;\n background-color: var(--uui-color-surface);\n user-select: none;\n border: solid 1px var(--uui-color-border);\n border-radius: var(--uui-border-radius-2);\n }\n .color-picker__user-input {\n display: flex;\n padding: 0 0.75rem 0.75rem 0.75rem;\n }\n .color-picker__user-input uui-button {\n border-left: var(--uui-input-border-width, 1px) solid\n var(--uui-input-border-color, var(--uui-color-border));\n }\n .color-picker__preview,\n .color-picker__trigger {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 2.25rem;\n height: 2.25rem;\n border: none;\n border-radius: 50%;\n background: none;\n }\n .color-picker__preview {\n cursor: copy;\n margin-left: 0.75rem;\n border-radius: 50%;\n }\n .color-picker__trigger[disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n .color-picker__preview::before,\n .color-picker__trigger::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n /* We use a custom property in lieu of currentColor because of https://bugs.webkit.org/show_bug.cgi?id=216780 */\n background-color: var(--preview-color);\n }\n\n .color-dropdown__trigger--empty::before {\n background-color: transparent;\n }\n\n .color-picker__transparent-bg {\n border: 1px solid var(--uui-color-border);\n background-image:\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%);\n background-size: 10px 10px;\n background-position:\n 0 0,\n 0 0,\n -5px -5px,\n 5px 5px;\n }\n\n .color-picker__preview-color--copied {\n animation: pulse 0.75s;\n }\n\n @keyframes pulse {\n 0% {\n box-shadow: 0 0 0 0 var(--uui-palette-space-cadet-light);\n }\n 70% {\n box-shadow: 0 0 0 0.5rem transparent;\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n\n .color-picker__controls {\n padding: 0.75rem;\n display: flex;\n align-items: center;\n }\n .color-picker__sliders {\n flex: 1 1 auto;\n }\n\n uui-color-slider:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n\n .color-picker__toggle-format {\n min-width: 45px;\n --uui-button-font-size: 0.8rem;\n }\n .color-picker__toggle-format > span {\n text-transform: uppercase;\n }\n\n uui-color-swatches {\n border-top: solid 1px var(--uui-color-border);\n padding: 0.75rem;\n }\n\n button[slot='trigger'] {\n border-radius: 50%;\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n uui-input {\n /* lower the font size to avoid overflow with hlsa format */\n font-size: 0.85rem;\n box-sizing: content-box;\n flex: 1;\n }\n\n uui-button-group {\n height: 100%;\n }\n\n button.color-picker__trigger:focus-visible {\n outline: 2px solid var(--uui-color-focus);\n }\n\n uui-color-area {\n width: 100%;\n }\n `,\n ];\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color-picker.element.js","names":[],"sources":["../../../src/components/color-picker/color-picker.element.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\n\nimport {\n parseColor,\n hslaToRgb,\n hslaToHsv,\n hslaToHex,\n type HslaColor,\n} from '../../internal/utils/index.js';\n\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { UUIColorAreaEvent } from '../color-area/color-area.js';\n\nimport type { UUIColorSliderEvent } from '../color-slider/color-slider.js';\n\nimport type {\n UUIColorSwatchesElement,\n UUIColorSwatchesEvent,\n} from '../color-swatches/color-swatches.js';\n\nimport type { UUIInputElement } from '../input/input.js';\nimport { UUIColorPickerChangeEvent } from './UUIColorPickerEvent.js';\nimport { LabelMixin } from '../../internal/mixins/index.js';\n\nimport '../color-area/color-area.js';\nimport '../color-slider/color-slider.js';\nimport '../input/input.js';\nimport '../button-group/button-group.js';\nimport '../button/button.js';\nimport '../icon-registry-essential/icon-registry-essential.js';\nimport '../icon/icon.js';\nimport '../color-swatches/color-swatches.js';\nimport '../color-swatch/color-swatch.js';\nimport '../popover-container/popover-container.js';\n\nconst hasEyeDropper = 'EyeDropper' in window;\n\ntype EyeDropperConstructor = new () => EyeDropperInterface;\n\ninterface EyeDropperInterface {\n open: () => Promise<{ sRGBHex: string }>;\n}\n\nexport type UUIColorPickerFormat = 'hex' | 'rgb' | 'hsl' | 'hsv';\nexport type UUIColorPickerFormatWithAlpha =\n | UUIColorPickerFormat\n | 'hexa'\n | 'rgba'\n | 'hsla'\n | 'hsva';\n\ndeclare const EyeDropper: EyeDropperConstructor;\n\ntype UUIColorPickerSize = 'small' | 'medium' | 'large';\n\n/**\n * @element uui-color-picker\n * @cssprop --uui-color-picker-width - The width of the color picker\n * @description\n * @fires {UUIColorPickerChangeEvent} change - Fired when the color changes\n */\nexport class UUIColorPickerElement extends LabelMixin('label', LitElement) {\n @query('[part=\"input\"]') private readonly _input!: UUIInputElement;\n @query('.color-picker__preview')\n private readonly _previewButton!: HTMLButtonElement;\n @query('#swatches') private readonly _swatches!: UUIColorSwatchesElement;\n\n private _value: string = '';\n\n @state() private inputValue = '';\n @state() private hue = 0;\n @state() private saturation = 0;\n @state() private lightness = 0;\n @state() private alpha = 100;\n @state() private _color: HslaColor = { h: 0, s: 0, l: 0, a: 1 };\n\n /**\n * The current color.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property()\n set value(value: string) {\n if (this.value !== value) {\n if (!this.setColor(value)) return;\n }\n this._value = value;\n }\n get value(): string {\n return this._value;\n }\n\n /**\n * The format to use for the display value. If opacity is enabled, these will translate to HEXA, RGBA, HSLA, and HSVA\n * respectively. The color picker will always accept user input in any format (including CSS color names) and convert\n * it to the desired format.\n * @attr\n * @type {UUIColorPickerFormat}\n * @default 'hex'\n */\n @property() format: UUIColorPickerFormat = 'hex';\n\n /**\n * The input's name attribute.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property() name = '';\n\n /**\n * Determines the size of the color picker's trigger. This has no effect on inline color pickers.\n * @attr\n * @type {UUIColorPickerSize}\n * @default 'medium'\n **/\n @property() size: UUIColorPickerSize = 'medium';\n\n /**\n * Removes the format toggle.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ attribute: 'no-format-toggle', type: Boolean }) noFormatToggle =\n false;\n\n /**\n * Renders the color picker inline rather than inside a dropdown.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) inline = false;\n\n /**\n * Sets the color picker to disabled.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Whether to show the opacity slider.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) opacity = false;\n\n /**\n * Sets the color picker to readonly mode.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * By default, the value will be set in lowercase. Set this to true to set it in uppercase instead.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) uppercase = false;\n\n /**\n * An array of predefined color swatches to display. Can include any format the color picker can parse, including\n * HEX(A), RGB(A), HSL(A), HSV(A), and CSS color names.\n */\n @property({ attribute: false }) swatches: string[] = [\n '#d0021b',\n '#f5a623',\n '#f8e71c',\n '#8b572a',\n '#7ed321',\n '#417505',\n '#bd10e0',\n '#9013fe',\n '#4a90e2',\n '#50e3c2',\n '#b8e986',\n '#000',\n '#444',\n '#888',\n '#ccc',\n '#fff',\n ];\n\n /** Returns the current value as a string in the specified format. */\n getFormattedValue(format: UUIColorPickerFormat) {\n const formatToUse = this.opacity ? `${format}a` : format;\n const { h, s, l, a } = this._color;\n const hexa = hslaToHex(h, s, l, a * 100);\n const hex = hexa.length > 7 ? hexa.substring(0, hexa.length - 2) : hexa;\n const { r, g, b } = hslaToRgb(h, s, l);\n const { s: sv, v } = hslaToHsv(h, s, l);\n\n switch (formatToUse) {\n case 'hex':\n return this.setLetterCase(hex);\n case 'hexa':\n return this.setLetterCase(hexa);\n case 'rgb':\n case 'rgba':\n return this.setLetterCase(`rgb(${r} ${g} ${b} / ${a})`);\n case 'hsl':\n case 'hsla':\n return this.setLetterCase(`hsl(${h} ${s}% ${l}% / ${a})`);\n case 'hsv':\n return this.setLetterCase(`hsv(${h}, ${sv}%, ${v}%)`);\n case 'hsva':\n return this.setLetterCase(`hsva(${h}, ${sv}%, ${v}%, ${a})`);\n default:\n return '';\n }\n }\n\n handleFormatToggle() {\n const formats = ['hex', 'rgb', 'hsl', 'hsv'];\n const nextIndex = (formats.indexOf(this.format) + 1) % formats.length;\n this.format = formats[nextIndex] as 'hex' | 'rgb' | 'hsl' | 'hsv';\n this._syncValues();\n }\n\n handleAlphaChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: Math.round(element.value) / 100,\n };\n this.setColor(newColor);\n }\n\n handleHueChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: element.value,\n s: this.saturation,\n l: this.lightness,\n a: this.alpha / 100,\n };\n this.setColor(newColor);\n }\n\n handleGridChange(event: UUIColorAreaEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: element.saturation,\n l: element.lightness,\n a: this.alpha / 100,\n };\n\n this.setColor(newColor);\n }\n\n handleInputChange(event: CustomEvent) {\n event.stopImmediatePropagation();\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n }\n\n handleInputKeyDown(event: KeyboardEvent) {\n event.stopImmediatePropagation();\n if (event.key === 'Enter') {\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n\n setTimeout(() => this._input.select());\n }\n }\n\n handleColorSwatchChange(event: UUIColorSwatchesEvent) {\n event.stopImmediatePropagation();\n\n const target = event.target;\n this.setColor(target.value);\n }\n\n handleCopy() {\n navigator.clipboard.writeText(this._input.value as string).then(() => {\n // Show copied animation\n this._previewButton.classList.add('color-picker__preview-color--copied');\n this._previewButton.addEventListener(\n 'animationend',\n () => {\n this._previewButton.classList.remove(\n 'color-picker__preview-color--copied',\n );\n },\n { once: true },\n );\n });\n }\n\n handleEyeDropper() {\n if (!hasEyeDropper) {\n return;\n }\n\n const eyeDropper = new EyeDropper();\n\n eyeDropper\n .open()\n .then(result => this.setColor(result.sRGBHex))\n .catch(() => {\n // The user canceled, do nothing\n });\n }\n\n setColor(colorString: string | HslaColor) {\n if (colorString === this.value) return;\n\n if (!colorString) {\n this.alpha = 100;\n this.inputValue = '';\n this._value = colorString;\n this._color = { h: 0, s: 0, l: 0, a: 1 };\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n\n return true;\n }\n\n const parsed = parseColor(colorString);\n if (!parsed) return false;\n\n const { h, s, l, a } = parsed;\n\n this.hue = Math.round(h);\n this.saturation = Math.round(s);\n this.lightness = Math.round(l);\n this.alpha = this.opacity ? a * 100 : 100; // Convert to 0-100 range, and set alpha to 100 if opacity is disabled\n\n // Workaround as hue isn't correct after changing hue slider, but parseColor returns hue as zero when color is black.\n if (typeof colorString !== 'string' && colorString.h) {\n this.hue = Math.round(colorString.h);\n }\n\n this._color = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: this.opacity ? a : 1,\n };\n\n this._syncValues();\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n return true;\n }\n\n setLetterCase(string: string) {\n if (typeof string !== 'string') {\n return '';\n }\n return this.uppercase ? string.toUpperCase() : string.toLowerCase();\n }\n\n private _syncValues() {\n this.inputValue = this.getFormattedValue(this.format);\n this._value = this.inputValue;\n }\n\n private _renderColorPicker() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`\n <div\n class=${classMap({\n 'color-picker': true,\n 'color-picker--inline': this.inline,\n 'color-picker--disabled': this.disabled,\n })}\n aria-disabled=${this.disabled ? 'true' : 'false'}>\n <uui-color-area\n .value=\"${this.value}\"\n .hue=\"${Math.round(this.hue)}\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleGridChange}>\n </uui-color-area>\n <div class=\"color-picker__controls\">\n <div class=\"color-picker__sliders\">\n <uui-color-slider\n hide-value-label\n label=\"hue\"\n class=\"hue-slider\"\n .value=${Math.round(this.hue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleHueChange}>\n </uui-color-slider>\n ${this.opacity\n ? html`\n <uui-color-slider\n hide-value-label\n label=\"alpha\"\n class=\"opacity-slider\"\n .value=${Math.round(this.alpha)}\n type=\"opacity\"\n .color=${hslaToHex(\n this.hue,\n this.saturation,\n this.lightness,\n )}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleAlphaChange}>\n </uui-color-slider>\n `\n : ''}\n </div>\n <button\n type=\"button\"\n part=\"preview\"\n class=\"color-picker__preview color-picker__transparent-bg\"\n title=\"Copy\"\n aria-label=\"Copy\"\n style=${styleMap({ '--preview-color': previewColor })}\n @click=${this.handleCopy}></button>\n </div>\n <div class=\"color-picker__user-input\" aria-live=\"polite\">\n <uui-input\n label=\"label\"\n type=\"text\"\n part=\"input\"\n name=${this.name}\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n .value=${live(this.inputValue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${this.handleInputKeyDown}\n @change=${this.handleInputChange}>\n <uui-button-group slot=\"append\">\n ${this.noFormatToggle\n ? ''\n : html`<uui-button\n label=\"Toggle color format\"\n @click=${this.handleFormatToggle}\n class=\"color-picker__toggle-format\"\n ?disabled=${this.disabled}\n compact>\n <span>${this.format}</span>\n </uui-button>`}\n ${hasEyeDropper\n ? html`<uui-button\n label=\"Select a color\"\n ?disabled=${this.disabled || this.readonly}\n @click=${this.handleEyeDropper}\n compact>\n <uui-icon-registry-essential>\n <uui-icon name=\"colorpicker\"></uui-icon>\n </uui-icon-registry-essential>\n </uui-button>`\n : ''}\n </uui-button-group>\n </uui-input>\n </div>\n ${this._renderSwatches()}\n </div>\n `;\n }\n\n private _renderSwatches() {\n if (!this.swatches?.length) return nothing;\n return html`<uui-color-swatches\n id=\"swatches\"\n class=\"color-picker__swatches\"\n label=\"Swatches\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleColorSwatchChange}>\n ${this.swatches.map(\n swatch =>\n html`<uui-color-swatch label=\"${swatch}\" .value=${swatch}>\n </uui-color-swatch>`,\n )}\n </uui-color-swatches>`;\n }\n\n private _renderPreviewButton() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`<button\n type=\"button\"\n part=\"trigger\"\n aria-label=\"${this.label || 'Open Color picker'}\"\n class=${classMap({\n 'color-picker__trigger': true,\n 'color-dropdown__trigger--disabled': this.disabled,\n 'color-dropdown__trigger--small': this.size === 'small',\n 'color-dropdown__trigger--medium': this.size === 'medium',\n 'color-dropdown__trigger--large': this.size === 'large',\n 'color-picker__transparent-bg': true,\n })}\n style=${styleMap({ '--preview-color': previewColor })}\n ?disabled=${this.disabled}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n popovertarget=\"color-picker-popover\"></button>\n <uui-popover-container id=\"color-picker-popover\" no-scroll>\n ${this._renderColorPicker()}\n </uui-popover-container>`;\n }\n\n render() {\n return this.inline\n ? this._renderColorPicker()\n : this._renderPreviewButton();\n }\n\n static override readonly styles = [\n css`\n :host {\n --uui-look-outline-border: #ddd;\n --uui-look-outline-border-hover: #aaa;\n --uui-color-area-border-radius: var(--uui-border-radius-2)\n var(--uui-border-radius-2) 0 0;\n font-size: 0.8rem;\n color: var(--uui-color-text);\n display: block;\n width: var(--uui-color-picker-width, 280px);\n }\n :host > button {\n cursor: pointer;\n }\n uui-popover-container {\n width: inherit;\n }\n .color-picker {\n width: 100%;\n background-color: var(--uui-color-surface);\n user-select: none;\n border: solid 1px var(--uui-color-border);\n border-radius: var(--uui-border-radius-2);\n }\n .color-picker__user-input {\n display: flex;\n padding: 0 0.75rem 0.75rem 0.75rem;\n }\n .color-picker__user-input uui-button {\n border-left: var(--uui-input-border-width, 1px) solid\n var(--uui-input-border-color, var(--uui-color-border));\n }\n .color-picker__preview,\n .color-picker__trigger {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 2.25rem;\n height: 2.25rem;\n border: none;\n border-radius: 50%;\n background: none;\n }\n .color-picker__preview {\n cursor: copy;\n margin-left: 0.75rem;\n border-radius: 50%;\n }\n .color-picker__trigger[disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n .color-picker__preview::before,\n .color-picker__trigger::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n /* We use a custom property in lieu of currentColor because of https://bugs.webkit.org/show_bug.cgi?id=216780 */\n background-color: var(--preview-color);\n }\n\n .color-dropdown__trigger--empty::before {\n background-color: transparent;\n }\n\n .color-picker__transparent-bg {\n border: 1px solid var(--uui-color-border);\n background-image:\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%);\n background-size: 10px 10px;\n background-position:\n 0 0,\n 0 0,\n -5px -5px,\n 5px 5px;\n }\n\n .color-picker__preview-color--copied {\n animation: pulse 0.75s;\n }\n\n @keyframes pulse {\n 0% {\n box-shadow: 0 0 0 0 var(--uui-palette-space-cadet-light);\n }\n 70% {\n box-shadow: 0 0 0 0.5rem transparent;\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n\n .color-picker__controls {\n padding: 0.75rem;\n display: flex;\n align-items: center;\n }\n .color-picker__sliders {\n flex: 1 1 auto;\n }\n\n uui-color-slider:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n\n .color-picker__toggle-format {\n min-width: 45px;\n --uui-button-font-size: 0.8rem;\n }\n .color-picker__toggle-format > span {\n text-transform: uppercase;\n }\n\n uui-color-swatches {\n border-top: solid 1px var(--uui-color-border);\n padding: 0.75rem;\n }\n\n button[slot='trigger'] {\n border-radius: 50%;\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n uui-input {\n /* lower the font size to avoid overflow with hlsa format */\n font-size: 0.85rem;\n box-sizing: content-box;\n flex: 1;\n }\n\n uui-button-group {\n height: 100%;\n }\n\n button.color-picker__trigger:focus-visible {\n outline: calc(2px * var(--uui-show-focus-outline, 1)) solid\n var(--uui-color-focus);\n }\n\n uui-color-area {\n width: 100%;\n }\n `,\n ];\n}\n"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { defineElement } from "../../internal/registration/index.js";
2
- import { UUIColorPickerElement } from "./color-picker.element.js";
3
2
  import { UUIColorPickerChangeEvent } from "./UUIColorPickerEvent.js";
3
+ import { UUIColorPickerElement } from "./color-picker.element.js";
4
+ //#region src/components/color-picker/color-picker.ts
4
5
  defineElement("uui-color-picker", UUIColorPickerElement);
5
- export {
6
- UUIColorPickerChangeEvent,
7
- UUIColorPickerElement,
8
- UUIColorPickerElement as default
9
- };
10
- //# sourceMappingURL=color-picker.js.map
6
+ //#endregion
7
+ export { UUIColorPickerChangeEvent, UUIColorPickerElement };
8
+
9
+ //# sourceMappingURL=color-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker.js","sources":["../../../src/components/color-picker/color-picker.ts"],"sourcesContent":["import { defineElement } from '../../internal/registration/index.js';\nimport { UUIColorPickerElement } from './color-picker.element.js';\n\ndefineElement('uui-color-picker', UUIColorPickerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'uui-color-picker': UUIColorPickerElement;\n }\n}\n\nexport * from './color-picker.element.js';\nexport * from './UUIColorPickerEvent.js';\nexport { UUIColorPickerElement as default } from './color-picker.element.js';\n"],"names":[],"mappings":";;;AAGA,cAAc,oBAAoB,qBAAqB;"}
1
+ {"version":3,"file":"color-picker.js","names":[],"sources":["../../../src/components/color-picker/color-picker.ts"],"sourcesContent":["import { defineElement } from '../../internal/registration/index.js';\nimport { UUIColorPickerElement } from './color-picker.element.js';\n\ndefineElement('uui-color-picker', UUIColorPickerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'uui-color-picker': UUIColorPickerElement;\n }\n}\n\nexport * from './color-picker.element.js';\nexport * from './UUIColorPickerEvent.js';\n"],"mappings":";;;;AAGA,cAAc,oBAAoB,qBAAqB"}
@@ -1,15 +1,17 @@
1
1
  import { UUIEvent } from "../../internal/events/UUIEvent.js";
2
- const _UUIColorSliderEvent = class _UUIColorSliderEvent extends UUIEvent {
3
- constructor(evName, eventInit = {}) {
4
- super(evName, {
5
- bubbles: true,
6
- ...eventInit
7
- });
8
- }
2
+ //#region src/components/color-slider/UUIColorSliderEvent.ts
3
+ var UUIColorSliderEvent = class extends UUIEvent {
4
+ static {
5
+ this.CHANGE = "change";
6
+ }
7
+ constructor(evName, eventInit = {}) {
8
+ super(evName, {
9
+ bubbles: true,
10
+ ...eventInit
11
+ });
12
+ }
9
13
  };
10
- _UUIColorSliderEvent.CHANGE = "change";
11
- let UUIColorSliderEvent = _UUIColorSliderEvent;
12
- export {
13
- UUIColorSliderEvent
14
- };
15
- //# sourceMappingURL=UUIColorSliderEvent.js.map
14
+ //#endregion
15
+ export { UUIColorSliderEvent };
16
+
17
+ //# sourceMappingURL=UUIColorSliderEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UUIColorSliderEvent.js","sources":["../../../src/components/color-slider/UUIColorSliderEvent.ts"],"sourcesContent":["import { UUIEvent } from '../../internal/events/index.js';\nimport type { UUIColorSliderElement } from './color-slider.element.js';\n\nexport class UUIColorSliderEvent extends UUIEvent<{}, UUIColorSliderElement> {\n public static readonly CHANGE = 'change';\n\n constructor(evName: string, eventInit: any = {}) {\n super(evName, {\n bubbles: true,\n ...eventInit,\n });\n }\n}\n"],"names":[],"mappings":";AAGO,MAAM,uBAAN,MAAM,6BAA4B,SAAoC;AAAA,EAG3E,YAAY,QAAgB,YAAiB,IAAI;AAC/C,UAAM,QAAQ;AAAA,MACZ,SAAS;AAAA,MACT,GAAG;AAAA,IAAA,CACJ;AAAA,EACH;AACF;AARE,qBAAuB,SAAS;AAD3B,IAAM,sBAAN;"}
1
+ {"version":3,"file":"UUIColorSliderEvent.js","names":[],"sources":["../../../src/components/color-slider/UUIColorSliderEvent.ts"],"sourcesContent":["import { UUIEvent } from '../../internal/events/index.js';\nimport type { UUIColorSliderElement } from './color-slider.element.js';\n\nexport class UUIColorSliderEvent extends UUIEvent<{}, UUIColorSliderElement> {\n public static readonly CHANGE = 'change';\n\n constructor(evName: string, eventInit: any = {}) {\n super(evName, {\n bubbles: true,\n ...eventInit,\n });\n }\n}\n"],"mappings":";;AAGA,IAAa,sBAAb,cAAyC,SAAoC;;gBAC3C;;CAEhC,YAAY,QAAgB,YAAiB,CAAC,GAAG;EAC/C,MAAM,QAAQ;GACZ,SAAS;GACT,GAAG;EACL,CAAC;CACH;AACF"}
@@ -6,4 +6,3 @@ declare global {
6
6
  }
7
7
  export * from './color-slider.element.js';
8
8
  export * from './UUIColorSliderEvent.js';
9
- export { UUIColorSliderElement as default } from './color-slider.element.js';
@@ -1,163 +1,141 @@
1
- var __typeError = (msg) => {
2
- throw TypeError(msg);
3
- };
4
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
6
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
7
- var _UUIColorSliderElement_instances, updateGradients_fn;
8
- import { LitElement, html, css } from "lit";
9
- import { property } from "lit/decorators.js";
10
- import { styleMap } from "lit/directives/style-map.js";
11
- import { ifDefined } from "lit/directives/if-defined.js";
12
- import { UUIColorSliderEvent } from "./UUIColorSliderEvent.js";
13
- import { parseColor, hslaToRgb, hslaToHex } from "../../internal/utils/color.js";
14
- import { reverseNumberInRange, clamp } from "../../internal/utils/math.js";
1
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
15
2
  import { LabelMixin } from "../../internal/mixins/LabelMixin.js";
3
+ import { clamp, reverseNumberInRange } from "../../internal/utils/math.js";
4
+ import { hslaToHex, hslaToRgb, parseColor } from "../../internal/utils/color.js";
16
5
  import { drag } from "../../internal/utils/drag.js";
17
- var __defProp = Object.defineProperty;
18
- var __decorateClass = (decorators, target, key, kind) => {
19
- var result = void 0;
20
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
21
- if (decorator = decorators[i])
22
- result = decorator(target, key, result) || result;
23
- if (result) __defProp(target, key, result);
24
- return result;
25
- };
26
- const _UUIColorSliderElement = class _UUIColorSliderElement extends LabelMixin("label", LitElement) {
27
- constructor() {
28
- super(...arguments);
29
- __privateAdd(this, _UUIColorSliderElement_instances);
30
- this.type = "hue";
31
- this.color = "";
32
- this.min = 0;
33
- this.max = 100;
34
- this.precision = 1;
35
- this.vertical = false;
36
- this.value = 0;
37
- this.readonly = false;
38
- this.disabled = false;
39
- this.hideValueLabel = false;
40
- }
41
- willUpdate(changedProperties) {
42
- if (changedProperties.has("type")) {
43
- const typeMaxValues = {
44
- hue: 360,
45
- saturation: 100,
46
- lightness: 100,
47
- opacity: 100
48
- };
49
- this.max = typeMaxValues[this.type] ?? this.max;
50
- }
51
- if ((changedProperties.has("type") || changedProperties.has("color")) && this.color) {
52
- __privateMethod(this, _UUIColorSliderElement_instances, updateGradients_fn).call(this);
53
- }
54
- }
55
- firstUpdated() {
56
- this.container = this.shadowRoot.querySelector("#color-slider");
57
- this.handle = this.container.querySelector(
58
- "#color-slider__handle"
59
- );
60
- }
61
- handleDrag(event) {
62
- if (this.disabled || this.readonly || !this.container || !this.handle)
63
- return;
64
- const { width, height } = this.container.getBoundingClientRect();
65
- this.handle.focus();
66
- event.preventDefault();
67
- drag(this.container, {
68
- onMove: (x, y) => {
69
- if (this.vertical) {
70
- this.value = reverseNumberInRange(
71
- clamp(y / height * this.max, this.min, this.max),
72
- this.min,
73
- this.max
74
- );
75
- } else {
76
- this.value = clamp(x / width * this.max, this.min, this.max);
77
- }
78
- this.syncValues();
79
- },
80
- initialEvent: event
81
- });
82
- }
83
- handleClick(event) {
84
- if (this.disabled || this.readonly) return;
85
- this.value = this.getValueFromMousePosition(event);
86
- this.syncValues();
87
- }
88
- handleKeyDown(event) {
89
- const increment = event.shiftKey ? 10 : 1;
90
- if (event.key === "ArrowLeft" || event.key === "ArrowDown") {
91
- event.preventDefault();
92
- this.value = clamp(this.value - increment, this.min, this.max);
93
- this.syncValues();
94
- } else if (event.key === "ArrowRight" || event.key === "ArrowUp") {
95
- event.preventDefault();
96
- this.value = clamp(this.value + increment, this.min, this.max);
97
- this.syncValues();
98
- } else if (event.key === "Home") {
99
- event.preventDefault();
100
- this.value = this.min;
101
- this.syncValues();
102
- } else if (event.key === "End") {
103
- event.preventDefault();
104
- this.value = this.max;
105
- this.syncValues();
106
- }
107
- }
108
- getValueFromMousePosition(event) {
109
- if (this.vertical) {
110
- return this.getValueFromYCoordinate(event.clientY);
111
- }
112
- return this.getValueFromXCoordinate(event.clientX);
113
- }
114
- getValueFromTouchPosition(event) {
115
- if (this.vertical) {
116
- return this.getValueFromYCoordinate(event.touches[0].clientY);
117
- }
118
- return this.getValueFromXCoordinate(event.touches[0].clientX);
119
- }
120
- getValueFromXCoordinate(coordinate) {
121
- const { left, width } = this.container.getBoundingClientRect();
122
- return clamp(
123
- this.roundToPrecision((coordinate - left) / width * this.max),
124
- this.min,
125
- this.max
126
- );
127
- }
128
- getValueFromYCoordinate(coordinate) {
129
- const { top, height } = this.container.getBoundingClientRect();
130
- return clamp(
131
- this.roundToPrecision((coordinate - top) / height * this.max),
132
- this.min,
133
- this.max
134
- );
135
- }
136
- roundToPrecision(numberToRound) {
137
- const multiplier = 1 / this.precision;
138
- return Math.ceil(numberToRound * multiplier) / multiplier;
139
- }
140
- syncValues() {
141
- this.dispatchEvent(new UUIColorSliderEvent(UUIColorSliderEvent.CHANGE));
142
- }
143
- get cssPropCurrentValue() {
144
- if (this.value === 0) {
145
- return this.vertical ? 100 : 0;
146
- }
147
- const ratio = this.vertical ? this.max / reverseNumberInRange(this.value, this.min, this.max) : this.max / this.value;
148
- return 100 / ratio;
149
- }
150
- render() {
151
- return html`<div
6
+ import { UUIColorSliderEvent } from "./UUIColorSliderEvent.js";
7
+ import { LitElement, css, html } from "lit";
8
+ import { property } from "lit/decorators.js";
9
+ import { ifDefined } from "lit/directives/if-defined.js";
10
+ import { styleMap } from "lit/directives/style-map.js";
11
+ //#region src/components/color-slider/color-slider.element.ts
12
+ /**
13
+ * @element uui-color-slider
14
+ * @description A slider that is a part of uui-color-picker
15
+ * @fires {UUIColorSliderEvent} change - Fires when the value of the slider changes.
16
+ * @cssprop --uui-slider-height - The height of the slider.
17
+ * @cssprop --uui-slider-handle-size - The size of the slider handle.
18
+ * @cssprop --uui-slider-background-image - The background image of the slider.
19
+ * @cssprop --uui-slider-background-size - The background size of the slider.
20
+ * @cssprop --uui-slider-background-position - The background position of the slider.
21
+ */
22
+ var UUIColorSliderElement = class extends LabelMixin("label", LitElement) {
23
+ constructor(..._args) {
24
+ super(..._args);
25
+ this.type = "hue";
26
+ this.color = "";
27
+ this.min = 0;
28
+ this.max = 100;
29
+ this.precision = 1;
30
+ this.vertical = false;
31
+ this.value = 0;
32
+ this.readonly = false;
33
+ this.disabled = false;
34
+ this.hideValueLabel = false;
35
+ }
36
+ willUpdate(changedProperties) {
37
+ if (changedProperties.has("type")) {
38
+ const typeMaxValues = {
39
+ hue: 360,
40
+ saturation: 100,
41
+ lightness: 100,
42
+ opacity: 100
43
+ };
44
+ this.max = typeMaxValues[this.type] ?? this.max;
45
+ }
46
+ if ((changedProperties.has("type") || changedProperties.has("color")) && this.color) this.#updateGradients();
47
+ }
48
+ #updateGradients() {
49
+ const parsed = parseColor(this.color);
50
+ if (!parsed) return;
51
+ const { h, s, l } = parsed;
52
+ const { r, g, b } = hslaToRgb(h, s, l);
53
+ const direction = this.vertical ? "top" : "right";
54
+ const gradients = {
55
+ saturation: `linear-gradient(to ${direction}, hsl(${h} 0% ${l}%), hsl(${h} 100% ${l}%))`,
56
+ lightness: `linear-gradient(to ${direction}, hsl(${h} ${s}% 0%), hsl(${h} ${s}% 100%))`
57
+ };
58
+ const hueColor = this.type === "opacity" ? `linear-gradient(to ${direction}, transparent 0%, rgb(${r} ${g} ${b}) 100%)` : null;
59
+ this.style.setProperty("--uui-slider-background-image", gradients[this.type] ?? null);
60
+ this.style.setProperty("--uui-slider-hue-color", hueColor);
61
+ }
62
+ firstUpdated() {
63
+ this.container = this.shadowRoot.querySelector("#color-slider");
64
+ this.handle = this.container.querySelector("#color-slider__handle");
65
+ }
66
+ handleDrag(event) {
67
+ if (this.disabled || this.readonly || !this.container || !this.handle) return;
68
+ const { width, height } = this.container.getBoundingClientRect();
69
+ this.handle.focus();
70
+ event.preventDefault();
71
+ drag(this.container, {
72
+ onMove: (x, y) => {
73
+ if (this.vertical) this.value = reverseNumberInRange(clamp(y / height * this.max, this.min, this.max), this.min, this.max);
74
+ else this.value = clamp(x / width * this.max, this.min, this.max);
75
+ this.syncValues();
76
+ },
77
+ initialEvent: event
78
+ });
79
+ }
80
+ handleClick(event) {
81
+ if (this.disabled || this.readonly) return;
82
+ this.value = this.getValueFromMousePosition(event);
83
+ this.syncValues();
84
+ }
85
+ handleKeyDown(event) {
86
+ const increment = event.shiftKey ? 10 : 1;
87
+ if (event.key === "ArrowLeft" || event.key === "ArrowDown") {
88
+ event.preventDefault();
89
+ this.value = clamp(this.value - increment, this.min, this.max);
90
+ this.syncValues();
91
+ } else if (event.key === "ArrowRight" || event.key === "ArrowUp") {
92
+ event.preventDefault();
93
+ this.value = clamp(this.value + increment, this.min, this.max);
94
+ this.syncValues();
95
+ } else if (event.key === "Home") {
96
+ event.preventDefault();
97
+ this.value = this.min;
98
+ this.syncValues();
99
+ } else if (event.key === "End") {
100
+ event.preventDefault();
101
+ this.value = this.max;
102
+ this.syncValues();
103
+ }
104
+ }
105
+ getValueFromMousePosition(event) {
106
+ if (this.vertical) return this.getValueFromYCoordinate(event.clientY);
107
+ return this.getValueFromXCoordinate(event.clientX);
108
+ }
109
+ getValueFromTouchPosition(event) {
110
+ if (this.vertical) return this.getValueFromYCoordinate(event.touches[0].clientY);
111
+ return this.getValueFromXCoordinate(event.touches[0].clientX);
112
+ }
113
+ getValueFromXCoordinate(coordinate) {
114
+ const { left, width } = this.container.getBoundingClientRect();
115
+ return clamp(this.roundToPrecision((coordinate - left) / width * this.max), this.min, this.max);
116
+ }
117
+ getValueFromYCoordinate(coordinate) {
118
+ const { top, height } = this.container.getBoundingClientRect();
119
+ return clamp(this.roundToPrecision((coordinate - top) / height * this.max), this.min, this.max);
120
+ }
121
+ roundToPrecision(numberToRound) {
122
+ const multiplier = 1 / this.precision;
123
+ return Math.ceil(numberToRound * multiplier) / multiplier;
124
+ }
125
+ syncValues() {
126
+ this.dispatchEvent(new UUIColorSliderEvent(UUIColorSliderEvent.CHANGE));
127
+ }
128
+ get cssPropCurrentValue() {
129
+ if (this.value === 0) return this.vertical ? 100 : 0;
130
+ return 100 / (this.vertical ? this.max / reverseNumberInRange(this.value, this.min, this.max) : this.max / this.value);
131
+ }
132
+ render() {
133
+ return html`<div
152
134
  part="slider"
153
135
  id="color-slider"
154
136
  role="slider"
155
- aria-label=${ifDefined(
156
- this.getAttribute("aria-label") || this.label || void 0
157
- )}
158
- aria-labelledby=${ifDefined(
159
- this.getAttribute("aria-labelledby") || void 0
160
- )}
137
+ aria-label=${ifDefined(this.getAttribute("aria-label") || this.label || void 0)}
138
+ aria-labelledby=${ifDefined(this.getAttribute("aria-labelledby") || void 0)}
161
139
  aria-orientation="${this.vertical ? "vertical" : "horizontal"}"
162
140
  aria-valuemin="${Math.round(this.min)}"
163
141
  aria-valuemax="${Math.round(this.max)}"
@@ -168,42 +146,21 @@ const _UUIColorSliderElement = class _UUIColorSliderElement extends LabelMixin("
168
146
  @keydown=${this.handleKeyDown}>
169
147
  ${this.type === "opacity" ? html`<div
170
148
  id="current-hue"
171
- style=${styleMap({
172
- backgroundImage: `var(--uui-slider-hue-color)`
173
- })}></div>` : ""}
149
+ style=${styleMap({ backgroundImage: `var(--uui-slider-hue-color)` })}></div>` : ""}
174
150
  <!-- <slot name="detail"> </slot> -->
175
151
  <span
176
152
  id="color-slider__handle"
177
153
  style=${styleMap({
178
- "--current-value": `${this.cssPropCurrentValue}%`,
179
- backgroundColor: this.type === "hue" ? hslaToHex(Math.round(this.value), 100, 50) : void 0
180
- })}
154
+ "--current-value": `${this.cssPropCurrentValue}%`,
155
+ backgroundColor: this.type === "hue" ? hslaToHex(Math.round(this.value), 100, 50) : void 0
156
+ })}
181
157
  tabindex=${ifDefined(this.disabled ? void 0 : "0")}>
182
158
  </span>
183
159
  </div>
184
160
  ${this.hideValueLabel ? null : Math.round(this.value)}`;
185
- }
186
- };
187
- _UUIColorSliderElement_instances = new WeakSet();
188
- updateGradients_fn = function() {
189
- const parsed = parseColor(this.color);
190
- if (!parsed) return;
191
- const { h, s, l } = parsed;
192
- const { r, g, b } = hslaToRgb(h, s, l);
193
- const direction = this.vertical ? "top" : "right";
194
- const gradients = {
195
- saturation: `linear-gradient(to ${direction}, hsl(${h} 0% ${l}%), hsl(${h} 100% ${l}%))`,
196
- lightness: `linear-gradient(to ${direction}, hsl(${h} ${s}% 0%), hsl(${h} ${s}% 100%))`
197
- };
198
- const hueColor = this.type === "opacity" ? `linear-gradient(to ${direction}, transparent 0%, rgb(${r} ${g} ${b}) 100%)` : null;
199
- this.style.setProperty(
200
- "--uui-slider-background-image",
201
- gradients[this.type] ?? null
202
- );
203
- this.style.setProperty("--uui-slider-hue-color", hueColor);
204
- };
205
- _UUIColorSliderElement.styles = [
206
- css`
161
+ }
162
+ static {
163
+ this.styles = [css`
207
164
  :host {
208
165
  --uui-slider-height: 15px;
209
166
  --uui-slider-handle-size: 17px;
@@ -319,40 +276,33 @@ _UUIColorSliderElement.styles = [
319
276
  position: absolute;
320
277
  inset: 0 0 0 0;
321
278
  }
322
- `
323
- ];
324
- let UUIColorSliderElement = _UUIColorSliderElement;
325
- __decorateClass([
326
- property({ reflect: true })
327
- ], UUIColorSliderElement.prototype, "type");
328
- __decorateClass([
329
- property()
330
- ], UUIColorSliderElement.prototype, "color");
331
- __decorateClass([
332
- property({ type: Number })
333
- ], UUIColorSliderElement.prototype, "min");
334
- __decorateClass([
335
- property({ type: Number })
336
- ], UUIColorSliderElement.prototype, "max");
337
- __decorateClass([
338
- property({ type: Number })
339
- ], UUIColorSliderElement.prototype, "precision");
340
- __decorateClass([
341
- property({ type: Boolean, reflect: true })
342
- ], UUIColorSliderElement.prototype, "vertical");
343
- __decorateClass([
344
- property({ type: Number })
345
- ], UUIColorSliderElement.prototype, "value");
346
- __decorateClass([
347
- property({ type: Boolean, reflect: true })
348
- ], UUIColorSliderElement.prototype, "readonly");
349
- __decorateClass([
350
- property({ type: Boolean, reflect: true })
351
- ], UUIColorSliderElement.prototype, "disabled");
352
- __decorateClass([
353
- property({ type: Boolean, attribute: "hide-value-label", reflect: true })
354
- ], UUIColorSliderElement.prototype, "hideValueLabel");
355
- export {
356
- UUIColorSliderElement
279
+ `];
280
+ }
357
281
  };
358
- //# sourceMappingURL=color-slider.element.js.map
282
+ __decorate([property({ reflect: true })], UUIColorSliderElement.prototype, "type", void 0);
283
+ __decorate([property()], UUIColorSliderElement.prototype, "color", void 0);
284
+ __decorate([property({ type: Number })], UUIColorSliderElement.prototype, "min", void 0);
285
+ __decorate([property({ type: Number })], UUIColorSliderElement.prototype, "max", void 0);
286
+ __decorate([property({ type: Number })], UUIColorSliderElement.prototype, "precision", void 0);
287
+ __decorate([property({
288
+ type: Boolean,
289
+ reflect: true
290
+ })], UUIColorSliderElement.prototype, "vertical", void 0);
291
+ __decorate([property({ type: Number })], UUIColorSliderElement.prototype, "value", void 0);
292
+ __decorate([property({
293
+ type: Boolean,
294
+ reflect: true
295
+ })], UUIColorSliderElement.prototype, "readonly", void 0);
296
+ __decorate([property({
297
+ type: Boolean,
298
+ reflect: true
299
+ })], UUIColorSliderElement.prototype, "disabled", void 0);
300
+ __decorate([property({
301
+ type: Boolean,
302
+ attribute: "hide-value-label",
303
+ reflect: true
304
+ })], UUIColorSliderElement.prototype, "hideValueLabel", void 0);
305
+ //#endregion
306
+ export { UUIColorSliderElement };
307
+
308
+ //# sourceMappingURL=color-slider.element.js.map