igniteui-webcomponents 7.3.0-beta.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/animations/player.d.ts +7 -2
  3. package/animations/player.js +1 -2
  4. package/animations/player.js.map +1 -1
  5. package/components/accordion/accordion.js +4 -16
  6. package/components/accordion/accordion.js.map +1 -1
  7. package/components/avatar/avatar.d.ts +0 -1
  8. package/components/avatar/avatar.js +5 -9
  9. package/components/avatar/avatar.js.map +1 -1
  10. package/components/badge/badge.d.ts +1 -3
  11. package/components/badge/badge.js +4 -8
  12. package/components/badge/badge.js.map +1 -1
  13. package/components/banner/banner.d.ts +6 -5
  14. package/components/banner/banner.js +19 -17
  15. package/components/banner/banner.js.map +1 -1
  16. package/components/button/button-base.d.ts +1 -1
  17. package/components/button/button-base.js.map +1 -1
  18. package/components/button-group/button-group.d.ts +0 -1
  19. package/components/button-group/button-group.js +12 -17
  20. package/components/button-group/button-group.js.map +1 -1
  21. package/components/calendar/base.d.ts +3 -13
  22. package/components/calendar/base.js +10 -31
  23. package/components/calendar/base.js.map +1 -1
  24. package/components/calendar/calendar.d.ts +2 -2
  25. package/components/calendar/months-view/months-view.d.ts +1 -1
  26. package/components/calendar/months-view/months-view.js.map +1 -1
  27. package/components/carousel/carousel-indicator.d.ts +1 -1
  28. package/components/carousel/carousel-indicator.js +13 -13
  29. package/components/carousel/carousel-indicator.js.map +1 -1
  30. package/components/carousel/carousel-slide.d.ts +0 -2
  31. package/components/carousel/carousel-slide.js +7 -9
  32. package/components/carousel/carousel-slide.js.map +1 -1
  33. package/components/carousel/carousel.d.ts +52 -35
  34. package/components/carousel/carousel.js +136 -122
  35. package/components/carousel/carousel.js.map +1 -1
  36. package/components/carousel/themes/carousel.base.css.js +1 -1
  37. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  38. package/components/chat/chat-input.d.ts +1 -1
  39. package/components/chat/chat-input.js +21 -21
  40. package/components/chat/chat-input.js.map +1 -1
  41. package/components/chat/chat.d.ts +0 -2
  42. package/components/chat/chat.js +6 -12
  43. package/components/chat/chat.js.map +1 -1
  44. package/components/checkbox/checkbox-base.d.ts +1 -1
  45. package/components/checkbox/checkbox.d.ts +3 -5
  46. package/components/checkbox/checkbox.js +33 -44
  47. package/components/checkbox/checkbox.js.map +1 -1
  48. package/components/checkbox/switch.d.ts +1 -1
  49. package/components/checkbox/switch.js +23 -34
  50. package/components/checkbox/switch.js.map +1 -1
  51. package/components/chip/chip.d.ts +1 -14
  52. package/components/chip/chip.js +12 -33
  53. package/components/chip/chip.js.map +1 -1
  54. package/components/color-picker/color-picker.d.ts +261 -0
  55. package/components/color-picker/color-picker.js +620 -0
  56. package/components/color-picker/color-picker.js.map +1 -0
  57. package/components/color-picker/common.d.ts +37 -0
  58. package/components/color-picker/common.js +55 -0
  59. package/components/color-picker/common.js.map +1 -0
  60. package/components/color-picker/converters.d.ts +18 -0
  61. package/components/color-picker/converters.js +173 -0
  62. package/components/color-picker/converters.js.map +1 -0
  63. package/components/color-picker/model.d.ts +120 -0
  64. package/components/color-picker/model.js +174 -0
  65. package/components/color-picker/model.js.map +1 -0
  66. package/components/color-picker/picker-canvas.d.ts +95 -0
  67. package/components/color-picker/picker-canvas.js +154 -0
  68. package/components/color-picker/picker-canvas.js.map +1 -0
  69. package/components/color-picker/themes/color-picker.base.css.d.ts +1 -0
  70. package/components/color-picker/themes/color-picker.base.css.js +3 -0
  71. package/components/color-picker/themes/color-picker.base.css.js.map +1 -0
  72. package/components/color-picker/themes/dark/color-picker.bootstrap.css.d.ts +1 -0
  73. package/components/color-picker/themes/dark/color-picker.bootstrap.css.js +3 -0
  74. package/components/color-picker/themes/dark/color-picker.bootstrap.css.js.map +1 -0
  75. package/components/color-picker/themes/dark/color-picker.fluent.css.d.ts +1 -0
  76. package/components/color-picker/themes/dark/color-picker.fluent.css.js +3 -0
  77. package/components/color-picker/themes/dark/color-picker.fluent.css.js.map +1 -0
  78. package/components/color-picker/themes/dark/color-picker.indigo.css.d.ts +1 -0
  79. package/components/color-picker/themes/dark/color-picker.indigo.css.js +3 -0
  80. package/components/color-picker/themes/dark/color-picker.indigo.css.js.map +1 -0
  81. package/components/color-picker/themes/dark/color-picker.material.css.d.ts +1 -0
  82. package/components/color-picker/themes/dark/color-picker.material.css.js +3 -0
  83. package/components/color-picker/themes/dark/color-picker.material.css.js.map +1 -0
  84. package/components/color-picker/themes/light/color-picker.bootstrap.css.d.ts +1 -0
  85. package/components/color-picker/themes/light/color-picker.bootstrap.css.js +3 -0
  86. package/components/color-picker/themes/light/color-picker.bootstrap.css.js.map +1 -0
  87. package/components/color-picker/themes/light/color-picker.fluent.css.d.ts +1 -0
  88. package/components/color-picker/themes/light/color-picker.fluent.css.js +3 -0
  89. package/components/color-picker/themes/light/color-picker.fluent.css.js.map +1 -0
  90. package/components/color-picker/themes/light/color-picker.indigo.css.d.ts +1 -0
  91. package/components/color-picker/themes/light/color-picker.indigo.css.js +3 -0
  92. package/components/color-picker/themes/light/color-picker.indigo.css.js.map +1 -0
  93. package/components/color-picker/themes/light/color-picker.material.css.d.ts +1 -0
  94. package/components/color-picker/themes/light/color-picker.material.css.js +3 -0
  95. package/components/color-picker/themes/light/color-picker.material.css.js.map +1 -0
  96. package/components/color-picker/themes/light/color-picker.shared.css.d.ts +1 -0
  97. package/components/color-picker/themes/light/color-picker.shared.css.js +3 -0
  98. package/components/color-picker/themes/light/color-picker.shared.css.js.map +1 -0
  99. package/components/color-picker/themes/picker-canvas.base.css.d.ts +1 -0
  100. package/components/color-picker/themes/picker-canvas.base.css.js +3 -0
  101. package/components/color-picker/themes/picker-canvas.base.css.js.map +1 -0
  102. package/components/color-picker/themes/shared/color-picker.bootstrap.css.d.ts +1 -0
  103. package/components/color-picker/themes/shared/color-picker.bootstrap.css.js +3 -0
  104. package/components/color-picker/themes/shared/color-picker.bootstrap.css.js.map +1 -0
  105. package/components/color-picker/themes/shared/color-picker.common.css.d.ts +1 -0
  106. package/components/color-picker/themes/shared/color-picker.common.css.js +3 -0
  107. package/components/color-picker/themes/shared/color-picker.common.css.js.map +1 -0
  108. package/components/color-picker/themes/shared/color-picker.fluent.css.d.ts +1 -0
  109. package/components/color-picker/themes/shared/color-picker.fluent.css.js +3 -0
  110. package/components/color-picker/themes/shared/color-picker.fluent.css.js.map +1 -0
  111. package/components/color-picker/themes/shared/color-picker.indigo.css.d.ts +1 -0
  112. package/components/color-picker/themes/shared/color-picker.indigo.css.js +3 -0
  113. package/components/color-picker/themes/shared/color-picker.indigo.css.js.map +1 -0
  114. package/components/color-picker/themes/shared/color-picker.material.css.d.ts +1 -0
  115. package/components/color-picker/themes/shared/color-picker.material.css.js +3 -0
  116. package/components/color-picker/themes/shared/color-picker.material.css.js.map +1 -0
  117. package/components/color-picker/themes/themes.d.ts +2 -0
  118. package/components/color-picker/themes/themes.js +50 -0
  119. package/components/color-picker/themes/themes.js.map +1 -0
  120. package/components/color-picker/validators.d.ts +3 -0
  121. package/components/color-picker/validators.js +5 -0
  122. package/components/color-picker/validators.js.map +1 -0
  123. package/components/combo/combo-item.d.ts +1 -3
  124. package/components/combo/combo-item.js +5 -12
  125. package/components/combo/combo-item.js.map +1 -1
  126. package/components/combo/combo.d.ts +7 -20
  127. package/components/combo/combo.js +59 -81
  128. package/components/combo/combo.js.map +1 -1
  129. package/components/date-picker/date-picker.base.d.ts +12 -9
  130. package/components/date-picker/date-picker.base.js +24 -31
  131. package/components/date-picker/date-picker.base.js.map +1 -1
  132. package/components/date-picker/date-picker.d.ts +1 -1
  133. package/components/date-picker/date-picker.js +3 -5
  134. package/components/date-picker/date-picker.js.map +1 -1
  135. package/components/date-range-picker/date-range-input.d.ts +2 -4
  136. package/components/date-range-picker/date-range-input.js +6 -37
  137. package/components/date-range-picker/date-range-input.js.map +1 -1
  138. package/components/date-range-picker/date-range-picker.d.ts +2 -5
  139. package/components/date-range-picker/date-range-picker.js +15 -28
  140. package/components/date-range-picker/date-range-picker.js.map +1 -1
  141. package/components/date-range-picker/predefined-ranges-area.d.ts +2 -2
  142. package/components/date-range-picker/predefined-ranges-area.js +4 -6
  143. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  144. package/components/date-range-picker/validators.d.ts +1 -1
  145. package/components/date-range-picker/validators.js +5 -18
  146. package/components/date-range-picker/validators.js.map +1 -1
  147. package/components/date-time-input/date-part.d.ts +2 -1
  148. package/components/date-time-input/date-part.js +38 -75
  149. package/components/date-time-input/date-part.js.map +1 -1
  150. package/components/date-time-input/date-time-input.base.d.ts +31 -12
  151. package/components/date-time-input/date-time-input.base.js +43 -11
  152. package/components/date-time-input/date-time-input.base.js.map +1 -1
  153. package/components/date-time-input/date-time-input.d.ts +1 -3
  154. package/components/date-time-input/date-time-input.js +7 -40
  155. package/components/date-time-input/date-time-input.js.map +1 -1
  156. package/components/date-time-input/datetime-mask-parser.d.ts +8 -0
  157. package/components/date-time-input/datetime-mask-parser.js +8 -8
  158. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  159. package/components/date-time-input/validators.js +3 -14
  160. package/components/date-time-input/validators.js.map +1 -1
  161. package/components/dialog/dialog.d.ts +6 -7
  162. package/components/dialog/dialog.js +21 -26
  163. package/components/dialog/dialog.js.map +1 -1
  164. package/components/divider/divider.d.ts +1 -4
  165. package/components/divider/divider.js +8 -17
  166. package/components/divider/divider.js.map +1 -1
  167. package/components/dropdown/dropdown-group.js +1 -6
  168. package/components/dropdown/dropdown-group.js.map +1 -1
  169. package/components/expansion-panel/expansion-panel.d.ts +15 -5
  170. package/components/expansion-panel/expansion-panel.js +23 -34
  171. package/components/expansion-panel/expansion-panel.js.map +1 -1
  172. package/components/file-input/file-input.d.ts +2 -14
  173. package/components/file-input/file-input.js +5 -23
  174. package/components/file-input/file-input.js.map +1 -1
  175. package/components/highlight/highlight.d.ts +6 -8
  176. package/components/highlight/highlight.js +12 -20
  177. package/components/highlight/highlight.js.map +1 -1
  178. package/components/icon/icon-references.js +1 -0
  179. package/components/icon/icon-references.js.map +1 -1
  180. package/components/icon/icon.d.ts +1 -1
  181. package/components/icon/internal-icons-lib.js +3 -0
  182. package/components/icon/internal-icons-lib.js.map +1 -1
  183. package/components/icon/registry/types.d.ts +1 -1
  184. package/components/icon/registry/types.js.map +1 -1
  185. package/components/input/input.d.ts +9 -19
  186. package/components/input/input.js +30 -60
  187. package/components/input/input.js.map +1 -1
  188. package/components/input/themes/shared/input.material.css.js +1 -1
  189. package/components/input/themes/shared/input.material.css.js.map +1 -1
  190. package/components/mask-input/mask-input.d.ts +1 -1
  191. package/components/mask-input/mask-input.js +2 -4
  192. package/components/mask-input/mask-input.js.map +1 -1
  193. package/components/nav-drawer/nav-drawer.d.ts +7 -7
  194. package/components/nav-drawer/nav-drawer.js +12 -23
  195. package/components/nav-drawer/nav-drawer.js.map +1 -1
  196. package/components/progress/base.d.ts +4 -7
  197. package/components/progress/base.js +21 -45
  198. package/components/progress/base.js.map +1 -1
  199. package/components/qr-code/qr-code.d.ts +1 -1
  200. package/components/qr-code/qr-code.js +3 -2
  201. package/components/qr-code/qr-code.js.map +1 -1
  202. package/components/qr-code/types.d.ts +1 -1
  203. package/components/qr-code/types.js.map +1 -1
  204. package/components/radio/controller.d.ts +2 -30
  205. package/components/radio/controller.js +8 -94
  206. package/components/radio/controller.js.map +1 -1
  207. package/components/radio/radio.d.ts +5 -5
  208. package/components/radio/radio.js +48 -58
  209. package/components/radio/radio.js.map +1 -1
  210. package/components/radio-group/radio-group.d.ts +1 -2
  211. package/components/radio-group/radio-group.js +2 -9
  212. package/components/radio-group/radio-group.js.map +1 -1
  213. package/components/rating/rating.d.ts +24 -12
  214. package/components/rating/rating.js +79 -73
  215. package/components/rating/rating.js.map +1 -1
  216. package/components/resize-container/default-ghost.js +4 -3
  217. package/components/resize-container/default-ghost.js.map +1 -1
  218. package/components/resize-container/resize-container.d.ts +1 -1
  219. package/components/resize-container/resize-container.js +5 -3
  220. package/components/resize-container/resize-container.js.map +1 -1
  221. package/components/resize-container/resize-controller.js +4 -3
  222. package/components/resize-container/resize-controller.js.map +1 -1
  223. package/components/select/select-group.d.ts +2 -1
  224. package/components/select/select-group.js +7 -11
  225. package/components/select/select-group.js.map +1 -1
  226. package/components/select/select.d.ts +3 -4
  227. package/components/select/select.js +23 -28
  228. package/components/select/select.js.map +1 -1
  229. package/components/slider/range-slider.d.ts +3 -2
  230. package/components/slider/range-slider.js +22 -70
  231. package/components/slider/range-slider.js.map +1 -1
  232. package/components/slider/slider-base.d.ts +9 -6
  233. package/components/slider/slider-base.js +27 -28
  234. package/components/slider/slider-base.js.map +1 -1
  235. package/components/slider/slider.js +9 -5
  236. package/components/slider/slider.js.map +1 -1
  237. package/components/splitter/splitter.d.ts +1 -1
  238. package/components/splitter/splitter.js.map +1 -1
  239. package/components/stepper/step.d.ts +3 -0
  240. package/components/stepper/step.js +9 -5
  241. package/components/stepper/step.js.map +1 -1
  242. package/components/stepper/stepper.d.ts +0 -11
  243. package/components/stepper/stepper.js +21 -86
  244. package/components/stepper/stepper.js.map +1 -1
  245. package/components/tabs/tab.d.ts +1 -1
  246. package/components/tabs/tab.js +6 -5
  247. package/components/tabs/tab.js.map +1 -1
  248. package/components/tabs/tabs.d.ts +1 -5
  249. package/components/tabs/tabs.js +12 -34
  250. package/components/tabs/tabs.js.map +1 -1
  251. package/components/textarea/textarea.d.ts +6 -7
  252. package/components/textarea/textarea.js +3 -10
  253. package/components/textarea/textarea.js.map +1 -1
  254. package/components/theme-provider/theme-provider.d.ts +2 -4
  255. package/components/theme-provider/theme-provider.js +11 -21
  256. package/components/theme-provider/theme-provider.js.map +1 -1
  257. package/components/tile-manager/tile-manager.d.ts +10 -21
  258. package/components/tile-manager/tile-manager.js +43 -74
  259. package/components/tile-manager/tile-manager.js.map +1 -1
  260. package/components/tile-manager/tile.d.ts +10 -18
  261. package/components/tile-manager/tile.js +50 -67
  262. package/components/tile-manager/tile.js.map +1 -1
  263. package/components/tooltip/tooltip.d.ts +4 -7
  264. package/components/tooltip/tooltip.js +20 -28
  265. package/components/tooltip/tooltip.js.map +1 -1
  266. package/components/tree/tree.d.ts +1 -14
  267. package/components/tree/tree.js +5 -23
  268. package/components/tree/tree.js.map +1 -1
  269. package/components/tree/tree.navigation.d.ts +1 -1
  270. package/components/tree/tree.navigation.js.map +1 -1
  271. package/components/types.d.ts +2 -0
  272. package/components/types.js.map +1 -1
  273. package/components/validation-container/validation-container.d.ts +1 -2
  274. package/components/validation-container/validation-container.js.map +1 -1
  275. package/components/virtualization/engine.d.ts +40 -38
  276. package/components/virtualization/engine.js.map +1 -1
  277. package/components/virtualization/types.d.ts +6 -5
  278. package/components/virtualization/types.js.map +1 -1
  279. package/components/virtualization/virtualization.d.ts +94 -80
  280. package/components/virtualization/virtualization.js +10 -2
  281. package/components/virtualization/virtualization.js.map +1 -1
  282. package/custom-elements.json +31948 -26708
  283. package/igniteui-webcomponents.css-data.json +1 -1
  284. package/igniteui-webcomponents.html-data.json +1 -1
  285. package/index.d.ts +1 -0
  286. package/index.js +1 -0
  287. package/index.js.map +1 -1
  288. package/internals/controllers/aria-projection.d.ts +6 -6
  289. package/internals/controllers/aria-projection.js.map +1 -1
  290. package/internals/controllers/context-provider.d.ts +48 -0
  291. package/internals/controllers/context-provider.js +29 -0
  292. package/internals/controllers/context-provider.js.map +1 -0
  293. package/internals/controllers/drag.js +6 -6
  294. package/internals/controllers/drag.js.map +1 -1
  295. package/internals/controllers/gestures.js +3 -0
  296. package/internals/controllers/gestures.js.map +1 -1
  297. package/internals/controllers/group.d.ts +64 -0
  298. package/internals/controllers/group.js +104 -0
  299. package/internals/controllers/group.js.map +1 -0
  300. package/internals/controllers/internals.d.ts +16 -3
  301. package/internals/controllers/internals.js +10 -3
  302. package/internals/controllers/internals.js.map +1 -1
  303. package/internals/controllers/key-bindings.d.ts +6 -0
  304. package/internals/controllers/key-bindings.js +3 -0
  305. package/internals/controllers/key-bindings.js.map +1 -1
  306. package/internals/controllers/roving-focus.d.ts +72 -0
  307. package/internals/controllers/roving-focus.js +61 -0
  308. package/internals/controllers/roving-focus.js.map +1 -0
  309. package/internals/controllers/slot.d.ts +8 -0
  310. package/internals/controllers/slot.js +4 -0
  311. package/internals/controllers/slot.js.map +1 -1
  312. package/internals/controllers/toggle.d.ts +96 -0
  313. package/internals/controllers/toggle.js +65 -0
  314. package/internals/controllers/toggle.js.map +1 -0
  315. package/internals/date/converters.js +2 -5
  316. package/internals/date/converters.js.map +1 -1
  317. package/internals/date/model.d.ts +4 -0
  318. package/internals/date/model.js +6 -0
  319. package/internals/date/model.js.map +1 -1
  320. package/internals/decorators/coerced-property.d.ts +47 -0
  321. package/internals/decorators/coerced-property.js +36 -0
  322. package/internals/decorators/coerced-property.js.map +1 -0
  323. package/internals/definitions/defineAllComponents.js +2 -0
  324. package/internals/definitions/defineAllComponents.js.map +1 -1
  325. package/internals/i18n/i18n-controller.d.ts +22 -3
  326. package/internals/i18n/i18n-controller.js +28 -6
  327. package/internals/i18n/i18n-controller.js.map +1 -1
  328. package/internals/mixins/alert.d.ts +1 -1
  329. package/internals/mixins/alert.js +5 -3
  330. package/internals/mixins/alert.js.map +1 -1
  331. package/internals/mixins/combo-box.d.ts +3 -12
  332. package/internals/mixins/combo-box.js +6 -32
  333. package/internals/mixins/combo-box.js.map +1 -1
  334. package/internals/mixins/forms/associated.js +18 -0
  335. package/internals/mixins/forms/associated.js.map +1 -1
  336. package/internals/mixins/forms/types.d.ts +20 -1
  337. package/internals/mixins/forms/types.js.map +1 -1
  338. package/internals/mixins/i18n.d.ts +31 -0
  339. package/internals/mixins/i18n.js +36 -0
  340. package/internals/mixins/i18n.js.map +1 -0
  341. package/internals/mixins/mask-behavior.d.ts +6 -5
  342. package/internals/mixins/mask-behavior.js +1 -2
  343. package/internals/mixins/mask-behavior.js.map +1 -1
  344. package/internals/mixins/option.js +4 -2
  345. package/internals/mixins/option.js.map +1 -1
  346. package/internals/templates/masked-input.d.ts +1 -1
  347. package/internals/templates/masked-input.js.map +1 -1
  348. package/internals/templates/slotted-icon.d.ts +32 -0
  349. package/internals/templates/slotted-icon.js +19 -0
  350. package/internals/templates/slotted-icon.js.map +1 -0
  351. package/internals/templates/toggle-shell.d.ts +46 -0
  352. package/internals/templates/toggle-shell.js +38 -0
  353. package/internals/templates/toggle-shell.js.map +1 -0
  354. package/internals/timing.d.ts +32 -0
  355. package/internals/timing.js +20 -0
  356. package/internals/timing.js.map +1 -0
  357. package/internals/utils/arrays.d.ts +2 -2
  358. package/internals/utils/arrays.js.map +1 -1
  359. package/internals/utils/dom.d.ts +22 -0
  360. package/internals/utils/dom.js +15 -1
  361. package/internals/utils/dom.js.map +1 -1
  362. package/internals/utils/math.d.ts +1 -1
  363. package/internals/utils/math.js.map +1 -1
  364. package/internals/utils/types.d.ts +1 -1
  365. package/internals/utils/types.js.map +1 -1
  366. package/internals/validators.d.ts +23 -0
  367. package/internals/validators.js +21 -0
  368. package/internals/validators.js.map +1 -1
  369. package/package.json +3 -1
  370. package/theming/theming-controller.d.ts +3 -3
  371. package/theming/theming-controller.js.map +1 -1
  372. package/web-types.json +2 -2
  373. package/internals/decorators/watch.d.ts +0 -5
  374. package/internals/decorators/watch.js +0 -19
  375. package/internals/decorators/watch.js.map +0 -1
@@ -0,0 +1,174 @@
1
+ import { clamp } from '#internals/utils/math.js';
2
+ import { isValidColor, normalizeColor, parseColor } from './common.js';
3
+ import { converter } from './converters.js';
4
+ function makeCanvasContext() {
5
+ let context;
6
+ return () => {
7
+ if (context)
8
+ return context;
9
+ try {
10
+ context = new OffscreenCanvas(0, 0).getContext('2d');
11
+ return context;
12
+ }
13
+ catch { }
14
+ return null;
15
+ };
16
+ }
17
+ export const getContext = makeCanvasContext();
18
+ export class ColorModel {
19
+ static default() {
20
+ return new ColorModel([0, 0, 0], 1);
21
+ }
22
+ static empty() {
23
+ const color = new ColorModel([255, 255, 255], 1);
24
+ color._empty = true;
25
+ return color;
26
+ }
27
+ static parse(color) {
28
+ const ctx = getContext();
29
+ const normalized = normalizeColor(color);
30
+ if (!isValidColor(normalized, ctx)) {
31
+ return ColorModel.empty();
32
+ }
33
+ const parsed = parseColor(normalized, ctx);
34
+ return new ColorModel(parsed.value, parsed.alpha);
35
+ }
36
+ static fromHSL(h, s, l, alpha = 1) {
37
+ return new ColorModel(converter.hsl.rgb([h, s, l]), alpha);
38
+ }
39
+ static fromHSV(h, s, v, alpha = 1) {
40
+ return new ColorModel(converter.hsv.rgb([h, s, v]), alpha);
41
+ }
42
+ constructor(value, alpha = 1) {
43
+ this._empty = false;
44
+ this._rgb = [value[0], value[1], value[2]];
45
+ this._hsl = converter.rgb.hsl(this._rgb);
46
+ this._hsv = converter.rgb.hsv(this._rgb);
47
+ this._alpha = clamp(alpha, 0, 1);
48
+ }
49
+ get isEmpty() {
50
+ return this._empty;
51
+ }
52
+ _syncFrom(space) {
53
+ switch (space) {
54
+ case 'rgb':
55
+ this._hsl = converter.rgb.hsl(this._rgb);
56
+ this._hsv = converter.rgb.hsv(this._rgb);
57
+ break;
58
+ case 'hsl':
59
+ this._rgb = converter.hsl.rgb(this._hsl);
60
+ this._hsv = converter.hsl.hsv(this._hsl);
61
+ break;
62
+ case 'hsv':
63
+ this._rgb = converter.hsv.rgb(this._hsv);
64
+ this._hsl = converter.hsv.hsl(this._hsv);
65
+ break;
66
+ }
67
+ }
68
+ _setChannel(space, index, value, max) {
69
+ this._empty = false;
70
+ const channels = space === 'rgb' ? this._rgb : space === 'hsl' ? this._hsl : this._hsv;
71
+ channels[index] = clamp(value, 0, max);
72
+ this._syncFrom(space);
73
+ }
74
+ get r() {
75
+ return this._rgb[0];
76
+ }
77
+ set r(value) {
78
+ this._setChannel('rgb', 0, value, 255);
79
+ }
80
+ get g() {
81
+ return this._rgb[1];
82
+ }
83
+ set g(value) {
84
+ this._setChannel('rgb', 1, value, 255);
85
+ }
86
+ get b() {
87
+ return this._rgb[2];
88
+ }
89
+ set b(value) {
90
+ this._setChannel('rgb', 2, value, 255);
91
+ }
92
+ get h() {
93
+ return this._hsl[0];
94
+ }
95
+ set h(value) {
96
+ this._setChannel('hsl', 0, value, 360);
97
+ }
98
+ get s() {
99
+ return this._hsl[1];
100
+ }
101
+ set s(value) {
102
+ this._setChannel('hsl', 1, value, 100);
103
+ }
104
+ get l() {
105
+ return this._hsl[2];
106
+ }
107
+ set l(value) {
108
+ this._setChannel('hsl', 2, value, 100);
109
+ }
110
+ get v() {
111
+ return this._hsv[2];
112
+ }
113
+ set v(value) {
114
+ this._setChannel('hsv', 2, value, 100);
115
+ }
116
+ get alpha() {
117
+ return this._alpha;
118
+ }
119
+ set alpha(value) {
120
+ this._empty = false;
121
+ this._alpha = clamp(value, 0, 1);
122
+ }
123
+ setSaturationAndValue(saturation, value) {
124
+ this._empty = false;
125
+ this._hsv[1] = clamp(saturation, 0, 100);
126
+ this._hsv[2] = clamp(value, 0, 100);
127
+ this._syncFrom('hsv');
128
+ }
129
+ asString(format, forceAlpha = false) {
130
+ if (this._empty) {
131
+ return '';
132
+ }
133
+ const alpha = this._alpha < 1 || forceAlpha ? this._alpha : null;
134
+ switch (format) {
135
+ case 'hex': {
136
+ const hex = converter.rgb.hex(this._rgb);
137
+ const suffix = alpha === null
138
+ ? ''
139
+ : Math.round(alpha * 255)
140
+ .toString(16)
141
+ .padStart(2, '0');
142
+ return `#${hex}${suffix}`;
143
+ }
144
+ case 'rgb': {
145
+ const [r, g, b] = this._rgb.map(Math.round);
146
+ return `rgb(${r} ${g} ${b}${alpha === null ? '' : ` / ${alpha}`})`;
147
+ }
148
+ case 'hsl': {
149
+ const [h, s, l] = this._hsl.map(Math.round);
150
+ return `hsl(${h} ${s}% ${l}%${alpha === null ? '' : ` / ${alpha}`})`;
151
+ }
152
+ }
153
+ }
154
+ clone() {
155
+ const color = new ColorModel(this._rgb, this._alpha);
156
+ color._empty = this._empty;
157
+ return color;
158
+ }
159
+ equals(other) {
160
+ return (this._empty === other._empty &&
161
+ this._alpha === other._alpha &&
162
+ this._rgb.every((channel, i) => channel === other._rgb[i]));
163
+ }
164
+ toRGB() {
165
+ return [...this._rgb];
166
+ }
167
+ toHSL() {
168
+ return [...this._hsl];
169
+ }
170
+ toHSV() {
171
+ return [...this._hsv];
172
+ }
173
+ }
174
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/components/color-picker/model.ts"],"names":[],"mappings":"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","sourcesContent":["import { clamp } from '#internals/utils/math.js';\nimport type { ColorFormat } from '../types.js';\nimport { isValidColor, normalizeColor, parseColor } from './common.js';\nimport { converter, type HSL, type HSV, type RGB } from './converters.js';\n\nexport type { ColorFormat };\n\n/** The color space a channel write is expressed in. */\ntype ColorSpace = 'rgb' | 'hsl' | 'hsv';\ntype Channel = 0 | 1 | 2;\n\nfunction makeCanvasContext() {\n let context: OffscreenCanvasRenderingContext2D | null;\n\n return () => {\n if (context) return context;\n\n try {\n context = new OffscreenCanvas(0, 0).getContext('2d');\n return context;\n } catch {}\n return null;\n };\n}\nexport const getContext = makeCanvasContext();\n\n/**\n * Represents a color with support for RGB, HSL, and HSV color spaces.\n * Automatically syncs between color spaces when properties are modified.\n *\n * @example\n * ```ts\n * // Create from RGB\n * const color = new ColorModel([255, 0, 0], 0.5);\n *\n * // Parse from string\n * const parsed = ColorModel.parse('#ff0000');\n *\n * // Modify and convert\n * color.h = 120;\n * console.log(color.asString('hsl')); // 'hsla(120, 100%, 50%, 0.5)'\n * ```\n */\nexport class ColorModel {\n private _rgb: RGB;\n private _hsl: HSL;\n private _hsv: HSV;\n private _alpha: number;\n private _empty = false;\n\n /** Creates a black color with full opacity. */\n public static default(): ColorModel {\n return new ColorModel([0, 0, 0], 1);\n }\n\n /**\n * Creates an empty color, representing a missing/undefined color value.\n * An empty color serializes to an empty string and is considered \"empty\"\n * until any of its channels are modified.\n *\n * Backed by white rather than black: an empty color still has to be drawn,\n * and white is HSV `[0, 0, 100]` - the origin of the saturation/value plane,\n * where a picker with nothing selected should start. Black would put the\n * marker in the opposite corner, on a color the user never chose.\n */\n public static empty(): ColorModel {\n const color = new ColorModel([255, 255, 255], 1);\n color._empty = true;\n return color;\n }\n\n /**\n * Parses a color string and creates a ColorModel instance.\n * Supports hex, rgb, rgba, hsl, hsla, and named color formats.\n *\n * Empty, whitespace-only, or otherwise invalid strings produce an empty\n * ColorModel instead of a stale/incorrect color.\n */\n public static parse(color: string): ColorModel {\n const ctx = getContext();\n // Normalized up front - validating the raw string would reject a hash-less\n // hex before `parseColor` ever got the chance to restore its `#`.\n const normalized = normalizeColor(color);\n\n if (!isValidColor(normalized, ctx)) {\n return ColorModel.empty();\n }\n\n const parsed = parseColor(normalized, ctx);\n return new ColorModel(parsed.value, parsed.alpha);\n }\n\n /** Creates a ColorModel from hue (0-360), saturation and lightness (0-100). */\n public static fromHSL(\n h: number,\n s: number,\n l: number,\n alpha = 1\n ): ColorModel {\n return new ColorModel(converter.hsl.rgb([h, s, l]), alpha);\n }\n\n /** Creates a ColorModel from hue (0-360), saturation and value (0-100). */\n public static fromHSV(\n h: number,\n s: number,\n v: number,\n alpha = 1\n ): ColorModel {\n return new ColorModel(converter.hsv.rgb([h, s, v]), alpha);\n }\n\n /**\n * @param value - RGB values as [r, g, b] tuple (0-255 each)\n * @param alpha - Alpha channel value (0-1)\n */\n constructor(value: RGB, alpha = 1) {\n // Copied to prevent external mutations.\n this._rgb = [value[0], value[1], value[2]];\n this._hsl = converter.rgb.hsl(this._rgb);\n this._hsv = converter.rgb.hsv(this._rgb);\n this._alpha = clamp(alpha, 0, 1);\n }\n\n /** Whether the color represents a missing/undefined value. */\n public get isEmpty(): boolean {\n return this._empty;\n }\n\n /** Rebuilds the two color spaces that were not the one just written to. */\n private _syncFrom(space: ColorSpace): void {\n switch (space) {\n case 'rgb':\n this._hsl = converter.rgb.hsl(this._rgb);\n this._hsv = converter.rgb.hsv(this._rgb);\n break;\n case 'hsl':\n this._rgb = converter.hsl.rgb(this._hsl);\n this._hsv = converter.hsl.hsv(this._hsl);\n break;\n case 'hsv':\n this._rgb = converter.hsv.rgb(this._hsv);\n this._hsl = converter.hsv.hsl(this._hsv);\n break;\n }\n }\n\n /**\n * Writes a single channel and brings the rest of the model back in sync.\n * Every channel setter goes through here, so no space is ever left stale.\n */\n private _setChannel(\n space: ColorSpace,\n index: Channel,\n value: number,\n max: number\n ): void {\n this._empty = false;\n\n // Safe to hold onto: `_syncFrom` only replaces the *other* two tuples.\n const channels =\n space === 'rgb' ? this._rgb : space === 'hsl' ? this._hsl : this._hsv;\n\n channels[index] = clamp(value, 0, max);\n this._syncFrom(space);\n }\n\n /** Red component (0-255) */\n public get r(): number {\n return this._rgb[0];\n }\n\n public set r(value: number) {\n this._setChannel('rgb', 0, value, 255);\n }\n\n /** Green component (0-255) */\n public get g(): number {\n return this._rgb[1];\n }\n\n public set g(value: number) {\n this._setChannel('rgb', 1, value, 255);\n }\n\n /** Blue component (0-255) */\n public get b(): number {\n return this._rgb[2];\n }\n\n public set b(value: number) {\n this._setChannel('rgb', 2, value, 255);\n }\n\n /** Hue component (0-360) */\n public get h(): number {\n return this._hsl[0];\n }\n\n public set h(value: number) {\n this._setChannel('hsl', 0, value, 360);\n }\n\n /** Saturation component from HSL (0-100) */\n public get s(): number {\n return this._hsl[1];\n }\n\n public set s(value: number) {\n this._setChannel('hsl', 1, value, 100);\n }\n\n /** Lightness component (0-100) */\n public get l(): number {\n return this._hsl[2];\n }\n\n public set l(value: number) {\n this._setChannel('hsl', 2, value, 100);\n }\n\n /** Value component from HSV (0-100) */\n public get v(): number {\n return this._hsv[2];\n }\n\n public set v(value: number) {\n this._setChannel('hsv', 2, value, 100);\n }\n\n /** Alpha/opacity channel (0-1) */\n public get alpha(): number {\n return this._alpha;\n }\n\n public set alpha(value: number) {\n this._empty = false;\n this._alpha = clamp(value, 0, 1);\n }\n\n /**\n * Sets the HSV saturation and value in a single atomic update, preserving\n * the current hue and alpha. Intended for the 2D saturation/value picker\n * area, where both components change together and setting them through the\n * individual `s` (HSL) and `v` (HSV) setters would be both incorrect\n * (mixing color spaces) and order-dependent.\n *\n * @param saturation - HSV saturation (0-100)\n * @param value - HSV value (0-100)\n */\n public setSaturationAndValue(saturation: number, value: number): void {\n this._empty = false;\n this._hsv[1] = clamp(saturation, 0, 100);\n this._hsv[2] = clamp(value, 0, 100);\n this._syncFrom('hsv');\n }\n\n /**\n * Converts the color to a CSS color string. An empty color renders as an\n * empty string.\n *\n * @param format - The output format ('hex', 'rgb', or 'hsl')\n * @param forceAlpha - Whether to always include the alpha channel\n */\n public asString(format: ColorFormat, forceAlpha = false): string {\n if (this._empty) {\n return '';\n }\n\n const alpha = this._alpha < 1 || forceAlpha ? this._alpha : null;\n\n switch (format) {\n case 'hex': {\n const hex = converter.rgb.hex(this._rgb);\n const suffix =\n alpha === null\n ? ''\n : Math.round(alpha * 255)\n .toString(16)\n .padStart(2, '0');\n return `#${hex}${suffix}`;\n }\n case 'rgb': {\n const [r, g, b] = this._rgb.map(Math.round);\n return `rgb(${r} ${g} ${b}${alpha === null ? '' : ` / ${alpha}`})`;\n }\n case 'hsl': {\n const [h, s, l] = this._hsl.map(Math.round);\n return `hsl(${h} ${s}% ${l}%${alpha === null ? '' : ` / ${alpha}`})`;\n }\n }\n }\n\n /** Creates a copy of this color model. */\n public clone(): ColorModel {\n const color = new ColorModel(this._rgb, this._alpha);\n color._empty = this._empty;\n return color;\n }\n\n /** Whether this color has the same channels and emptiness as `other`. */\n public equals(other: ColorModel): boolean {\n return (\n this._empty === other._empty &&\n this._alpha === other._alpha &&\n this._rgb.every((channel, i) => channel === other._rgb[i])\n );\n }\n\n /** Returns the RGB values as a tuple. */\n public toRGB(): RGB {\n return [...this._rgb];\n }\n\n /** Returns the HSL values as a tuple. */\n public toHSL(): HSL {\n return [...this._hsl];\n }\n\n /** Returns the HSV values as a tuple. */\n public toHSV(): HSV {\n return [...this._hsv];\n }\n}\n"]}
@@ -0,0 +1,95 @@
1
+ import { LitElement, type PropertyValues } from 'lit';
2
+ import type { AbstractConstructor } from '#internals/mixins/constructor.js';
3
+ export interface IgcPickerCanvasEventMap {
4
+ /**
5
+ * Emitted when the color is picked in the canvas. Does not bubble.
6
+ */
7
+ igcColorPicked: CustomEvent<PickerCanvasEventDetail>;
8
+ }
9
+ export type PickerCanvasEventDetail = {
10
+ x: number;
11
+ y: number;
12
+ };
13
+ declare const IgcPickerCanvasComponent_base: import("#internals/mixins/constructor.js").Constructor<import("#internals/mixins/event-emitter.js").EventEmitterInterface<IgcPickerCanvasEventMap>> & AbstractConstructor<LitElement>;
14
+ /**
15
+ * The saturation/value plane of {@link IgcColorPickerComponent} and the marker
16
+ * that moves across it.
17
+ *
18
+ * An internal building block of `igc-color-picker` - it is registered so the
19
+ * picker can render it, but it is not part of the public component surface and
20
+ * is not exported from the package entry point.
21
+ *
22
+ * @element igc-picker-canvas
23
+ *
24
+ * @fires igcColorPicked - Emitted when a color is picked on the canvas. Does not bubble.
25
+ *
26
+ * @csspart marker - The draggable marker indicating the picked saturation/value.
27
+ * @csspart dragging - Present on the marker while it is being dragged.
28
+ */
29
+ export default class IgcPickerCanvasComponent extends IgcPickerCanvasComponent_base {
30
+ static readonly tagName = "igc-picker-canvas";
31
+ static styles: import("lit").CSSResult;
32
+ static register(): void;
33
+ private readonly _marker?;
34
+ /** Geometry captured for the duration of a pointer drag. */
35
+ private _dragGeometry?;
36
+ /** Whether a pointer drag is currently in progress. */
37
+ private _dragging;
38
+ currentColor: string;
39
+ /**
40
+ * The color the marker is filled with.
41
+ *
42
+ * Distinct from `currentColor`: that one is the pure hue the saturation/value
43
+ * plane is built from, while this is the color actually picked out of it.
44
+ */
45
+ markerColor: string;
46
+ x: number;
47
+ y: number;
48
+ /**
49
+ * The HSV saturation the marker currently sits at (0-100).
50
+ *
51
+ * The canvas positions the marker in pixels and has no notion of the color
52
+ * space behind it, so the owning picker feeds the saturation/value pair back
53
+ * in purely to give the marker an announceable value.
54
+ */
55
+ saturation: number;
56
+ /**
57
+ * The HSV value the marker currently sits at (0-100).
58
+ *
59
+ * Named for the B of HSB rather than the V of HSV - on a custom element a
60
+ * bare `value` reads as a form value, which this is not.
61
+ */
62
+ brightness: number;
63
+ /** The accessible name of the marker. */
64
+ markerLabel: string;
65
+ constructor();
66
+ protected updated(properties: PropertyValues<this>): void;
67
+ /**
68
+ * The canvas box and half-marker offsets every interaction measures against.
69
+ *
70
+ * Both reads force a layout, so a drag takes this once on pointerdown rather
71
+ * than on each of the frames it spans.
72
+ */
73
+ private _measure;
74
+ /**
75
+ * Clamps the marker inside the canvas and reports the position it settled on
76
+ * as saturation/value percentages.
77
+ */
78
+ private _commitPosition;
79
+ private _onArrowKey;
80
+ private _move;
81
+ private _handlePointerDown;
82
+ private _handleLostPointerCapture;
83
+ private _handlePointerMove;
84
+ getMarkerDimensions(): {
85
+ width: number;
86
+ height: number;
87
+ };
88
+ protected render(): import("lit-html").TemplateResult<1>;
89
+ }
90
+ declare global {
91
+ interface HTMLElementTagNameMap {
92
+ 'igc-picker-canvas': IgcPickerCanvasComponent;
93
+ }
94
+ }
95
+ export {};
@@ -0,0 +1,154 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, LitElement } from 'lit';
8
+ import { property, query, state } from 'lit/decorators.js';
9
+ import { styleMap } from 'lit/directives/style-map.js';
10
+ import { addKeybindings, arrowDown, arrowLeft, arrowRight, arrowUp, } from '#internals/controllers/key-bindings.js';
11
+ import { registerComponent } from '#internals/definitions/register.js';
12
+ import { EventEmitterMixin } from '#internals/mixins/event-emitter.js';
13
+ import { partMap } from '#internals/part-map.js';
14
+ import { addSafeEventListener } from '#internals/utils/events.js';
15
+ import { asPercent, clamp } from '#internals/utils/math.js';
16
+ import { styles } from './themes/picker-canvas.base.css.js';
17
+ export default class IgcPickerCanvasComponent extends EventEmitterMixin(LitElement) {
18
+ static { this.tagName = 'igc-picker-canvas'; }
19
+ static { this.styles = styles; }
20
+ static register() {
21
+ registerComponent(IgcPickerCanvasComponent);
22
+ }
23
+ constructor() {
24
+ super();
25
+ this._dragging = false;
26
+ this.currentColor = '';
27
+ this.markerColor = '';
28
+ this.x = 0;
29
+ this.y = 0;
30
+ this.saturation = 0;
31
+ this.brightness = 0;
32
+ this.markerLabel = 'Saturation and value';
33
+ addSafeEventListener(this, 'pointerdown', this._handlePointerDown);
34
+ addSafeEventListener(this, 'lostpointercapture', this._handleLostPointerCapture);
35
+ addKeybindings(this, { bindingDefaults: { repeat: true } })
36
+ .set(arrowDown, this._onArrowKey.bind(this, { dx: 0, dy: 1 }))
37
+ .set(arrowUp, this._onArrowKey.bind(this, { dx: 0, dy: -1 }))
38
+ .set(arrowLeft, this._onArrowKey.bind(this, { dx: -1, dy: 0 }))
39
+ .set(arrowRight, this._onArrowKey.bind(this, { dx: 1, dy: 0 }));
40
+ }
41
+ updated(properties) {
42
+ if (properties.has('currentColor')) {
43
+ this.style.color = this.currentColor;
44
+ }
45
+ if (properties.has('markerColor')) {
46
+ this.style.setProperty('--_marker-fill', this.markerColor);
47
+ }
48
+ }
49
+ _measure() {
50
+ return {
51
+ rect: this.getBoundingClientRect(),
52
+ marker: this.getMarkerDimensions(),
53
+ };
54
+ }
55
+ _commitPosition(x, y, { rect, marker }) {
56
+ const nextX = clamp(x, -marker.width, rect.width - marker.width);
57
+ const nextY = clamp(y, -marker.height, rect.height - marker.height);
58
+ if (nextX === this.x && nextY === this.y) {
59
+ return;
60
+ }
61
+ this.x = nextX;
62
+ this.y = nextY;
63
+ this.emitEvent('igcColorPicked', {
64
+ detail: {
65
+ x: Math.round(asPercent(nextX + marker.width, rect.width)),
66
+ y: Math.round(asPercent(nextY + marker.height, rect.height)),
67
+ },
68
+ bubbles: false,
69
+ });
70
+ }
71
+ _onArrowKey({ dx, dy }) {
72
+ this._commitPosition(this.x + dx, this.y + dy, this._measure());
73
+ }
74
+ _move(event) {
75
+ event.preventDefault();
76
+ event.stopPropagation();
77
+ const geometry = this._dragGeometry ?? this._measure();
78
+ const { rect, marker } = geometry;
79
+ this._commitPosition(event.clientX - rect.x - marker.width, event.clientY - rect.y - marker.height, geometry);
80
+ }
81
+ _handlePointerDown(event) {
82
+ if (event.button !== 0)
83
+ return;
84
+ this.setPointerCapture(event.pointerId);
85
+ this.addEventListener('pointermove', this._handlePointerMove);
86
+ this._dragGeometry = this._measure();
87
+ this._dragging = true;
88
+ this._move(event);
89
+ }
90
+ _handleLostPointerCapture() {
91
+ this.removeEventListener('pointermove', this._handlePointerMove);
92
+ this._dragGeometry = undefined;
93
+ this._dragging = false;
94
+ this._marker?.focus();
95
+ }
96
+ _handlePointerMove(event) {
97
+ this._move(event);
98
+ }
99
+ getMarkerDimensions() {
100
+ const marker = this._marker;
101
+ return marker
102
+ ? { width: marker.offsetWidth / 2, height: marker.offsetHeight / 2 }
103
+ : { width: 0, height: 0 };
104
+ }
105
+ render() {
106
+ const styles = styleMap({
107
+ top: `${this.y}px`,
108
+ left: `${this.x}px`,
109
+ });
110
+ const saturation = Math.round(this.saturation);
111
+ const brightness = Math.round(this.brightness);
112
+ return html `
113
+ <div
114
+ part=${partMap({ marker: true, dragging: this._dragging })}
115
+ style=${styles}
116
+ tabindex="0"
117
+ role="slider"
118
+ aria-label=${this.markerLabel}
119
+ aria-valuemin="0"
120
+ aria-valuemax="100"
121
+ aria-valuenow=${saturation}
122
+ aria-valuetext="Saturation ${saturation}%, brightness ${brightness}%"
123
+ ></div>
124
+ `;
125
+ }
126
+ }
127
+ __decorate([
128
+ query('[part~="marker"]', true)
129
+ ], IgcPickerCanvasComponent.prototype, "_marker", void 0);
130
+ __decorate([
131
+ state()
132
+ ], IgcPickerCanvasComponent.prototype, "_dragging", void 0);
133
+ __decorate([
134
+ property()
135
+ ], IgcPickerCanvasComponent.prototype, "currentColor", void 0);
136
+ __decorate([
137
+ property()
138
+ ], IgcPickerCanvasComponent.prototype, "markerColor", void 0);
139
+ __decorate([
140
+ property({ attribute: false })
141
+ ], IgcPickerCanvasComponent.prototype, "x", void 0);
142
+ __decorate([
143
+ property({ attribute: false })
144
+ ], IgcPickerCanvasComponent.prototype, "y", void 0);
145
+ __decorate([
146
+ property({ type: Number, attribute: false })
147
+ ], IgcPickerCanvasComponent.prototype, "saturation", void 0);
148
+ __decorate([
149
+ property({ type: Number, attribute: false })
150
+ ], IgcPickerCanvasComponent.prototype, "brightness", void 0);
151
+ __decorate([
152
+ property()
153
+ ], IgcPickerCanvasComponent.prototype, "markerLabel", void 0);
154
+ //# sourceMappingURL=picker-canvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picker-canvas.js","sourceRoot":"","sources":["../../../src/components/color-picker/picker-canvas.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,GACR,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAiC5D,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,iBAAiB,CAGrE,UAAU,CAAC;aACY,YAAO,GAAG,mBAAmB,AAAtB,CAAuB;aACvC,WAAM,GAAG,MAAM,AAAT,CAAU;IAEvB,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAqDD;QACE,KAAK,EAAE,CAAC;QA5CF,cAAS,GAAG,KAAK,CAAC;QAGnB,iBAAY,GAAG,EAAE,CAAC;QASlB,gBAAW,GAAG,EAAE,CAAC;QAGjB,MAAC,GAAG,CAAC,CAAC;QAGN,MAAC,GAAG,CAAC,CAAC;QAUN,eAAU,GAAG,CAAC,CAAC;QASf,eAAU,GAAG,CAAC,CAAC;QAIf,gBAAW,GAAG,sBAAsB,CAAC;QAK1C,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnE,oBAAoB,CAClB,IAAI,EACJ,oBAAoB,EACpB,IAAI,CAAC,yBAAyB,CAC/B,CAAC;QAEF,cAAc,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;aACxD,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;aAC7D,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC5D,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;aAC9D,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAEkB,OAAO,CAAC,UAAgC;QACzD,IAAI,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,CAAC;QAKD,IAAI,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAQO,QAAQ;QACd,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAClC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;SACnC,CAAC;IACJ,CAAC;IAMO,eAAe,CACrB,CAAS,EACT,CAAS,EACT,EAAE,IAAI,EAAE,MAAM,EAAkB;QAEhC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpE,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QAEf,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YAC/B,MAAM,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1D,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC7D;YACD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAA8B;QACxD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,KAAmB;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAElC,IAAI,CAAC,eAAe,CAClB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EACrC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EACtC,QAAQ,CACT,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAmB;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IACxB,CAAC;IAEO,kBAAkB,CAAC,KAAmB;QAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAEM,mBAAmB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAK5B,OAAO,MAAM;YACX,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;YACpE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9B,CAAC;IAEkB,MAAM;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI;YAClB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI;SACpB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAK/C,OAAO,IAAI,CAAA;;eAEA,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClD,MAAM;;;qBAGD,IAAI,CAAC,WAAW;;;wBAGb,UAAU;qCACG,UAAU,iBAAiB,UAAU;;KAErE,CAAC;IACJ,CAAC;;AAnMgB;IADhB,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC;yDACU;AAOlC;IADP,KAAK,EAAE;2DACkB;AAGnB;IADN,QAAQ,EAAE;8DACc;AASlB;IADN,QAAQ,EAAE;6DACa;AAGjB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;mDAClB;AAGN;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;mDAClB;AAUN;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4DACvB;AASf;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4DACvB;AAIf;IADN,QAAQ,EAAE;6DACiC","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n} from '#internals/controllers/key-bindings.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { AbstractConstructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { partMap } from '#internals/part-map.js';\nimport { addSafeEventListener } from '#internals/utils/events.js';\nimport { asPercent, clamp } from '#internals/utils/math.js';\nimport { styles } from './themes/picker-canvas.base.css.js';\n\nexport interface IgcPickerCanvasEventMap {\n /**\n * Emitted when the color is picked in the canvas. Does not bubble.\n */\n igcColorPicked: CustomEvent<PickerCanvasEventDetail>;\n}\n\nexport type PickerCanvasEventDetail = { x: number; y: number };\n\n/** The measurements a marker position is resolved against. */\ntype CanvasGeometry = {\n rect: DOMRect;\n marker: { width: number; height: number };\n};\n\n/* blazorSuppress */\n/**\n * The saturation/value plane of {@link IgcColorPickerComponent} and the marker\n * that moves across it.\n *\n * An internal building block of `igc-color-picker` - it is registered so the\n * picker can render it, but it is not part of the public component surface and\n * is not exported from the package entry point.\n *\n * @element igc-picker-canvas\n *\n * @fires igcColorPicked - Emitted when a color is picked on the canvas. Does not bubble.\n *\n * @csspart marker - The draggable marker indicating the picked saturation/value.\n * @csspart dragging - Present on the marker while it is being dragged.\n */\nexport default class IgcPickerCanvasComponent extends EventEmitterMixin<\n IgcPickerCanvasEventMap,\n AbstractConstructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-picker-canvas';\n public static styles = styles;\n\n public static register(): void {\n registerComponent(IgcPickerCanvasComponent);\n }\n\n @query('[part~=\"marker\"]', true)\n private readonly _marker?: HTMLDivElement;\n\n /** Geometry captured for the duration of a pointer drag. */\n private _dragGeometry?: CanvasGeometry;\n\n /** Whether a pointer drag is currently in progress. */\n @state()\n private _dragging = false;\n\n @property()\n public currentColor = '';\n\n /**\n * The color the marker is filled with.\n *\n * Distinct from `currentColor`: that one is the pure hue the saturation/value\n * plane is built from, while this is the color actually picked out of it.\n */\n @property()\n public markerColor = '';\n\n @property({ attribute: false })\n public x = 0;\n\n @property({ attribute: false })\n public y = 0;\n\n /**\n * The HSV saturation the marker currently sits at (0-100).\n *\n * The canvas positions the marker in pixels and has no notion of the color\n * space behind it, so the owning picker feeds the saturation/value pair back\n * in purely to give the marker an announceable value.\n */\n @property({ type: Number, attribute: false })\n public saturation = 0;\n\n /**\n * The HSV value the marker currently sits at (0-100).\n *\n * Named for the B of HSB rather than the V of HSV - on a custom element a\n * bare `value` reads as a form value, which this is not.\n */\n @property({ type: Number, attribute: false })\n public brightness = 0;\n\n /** The accessible name of the marker. */\n @property()\n public markerLabel = 'Saturation and value';\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'pointerdown', this._handlePointerDown);\n addSafeEventListener(\n this,\n 'lostpointercapture',\n this._handleLostPointerCapture\n );\n\n addKeybindings(this, { bindingDefaults: { repeat: true } })\n .set(arrowDown, this._onArrowKey.bind(this, { dx: 0, dy: 1 }))\n .set(arrowUp, this._onArrowKey.bind(this, { dx: 0, dy: -1 }))\n .set(arrowLeft, this._onArrowKey.bind(this, { dx: -1, dy: 0 }))\n .set(arrowRight, this._onArrowKey.bind(this, { dx: 1, dy: 0 }));\n }\n\n protected override updated(properties: PropertyValues<this>): void {\n if (properties.has('currentColor')) {\n this.style.color = this.currentColor;\n }\n\n // Handed to the marker through a custom property rather than an inline\n // style on the marker itself, so that a consumer styling `::part(marker)`\n // can still win - an inline style could not be overridden.\n if (properties.has('markerColor')) {\n this.style.setProperty('--_marker-fill', this.markerColor);\n }\n }\n\n /**\n * The canvas box and half-marker offsets every interaction measures against.\n *\n * Both reads force a layout, so a drag takes this once on pointerdown rather\n * than on each of the frames it spans.\n */\n private _measure(): CanvasGeometry {\n return {\n rect: this.getBoundingClientRect(),\n marker: this.getMarkerDimensions(),\n };\n }\n\n /**\n * Clamps the marker inside the canvas and reports the position it settled on\n * as saturation/value percentages.\n */\n private _commitPosition(\n x: number,\n y: number,\n { rect, marker }: CanvasGeometry\n ): void {\n const nextX = clamp(x, -marker.width, rect.width - marker.width);\n const nextY = clamp(y, -marker.height, rect.height - marker.height);\n\n if (nextX === this.x && nextY === this.y) {\n return;\n }\n\n this.x = nextX;\n this.y = nextY;\n\n this.emitEvent('igcColorPicked', {\n detail: {\n x: Math.round(asPercent(nextX + marker.width, rect.width)),\n y: Math.round(asPercent(nextY + marker.height, rect.height)),\n },\n bubbles: false,\n });\n }\n\n private _onArrowKey({ dx, dy }: { dx: number; dy: number }): void {\n this._commitPosition(this.x + dx, this.y + dy, this._measure());\n }\n\n private _move(event: PointerEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const geometry = this._dragGeometry ?? this._measure();\n const { rect, marker } = geometry;\n\n this._commitPosition(\n event.clientX - rect.x - marker.width,\n event.clientY - rect.y - marker.height,\n geometry\n );\n }\n\n private _handlePointerDown(event: PointerEvent): void {\n if (event.button !== 0) return;\n this.setPointerCapture(event.pointerId);\n this.addEventListener('pointermove', this._handlePointerMove);\n this._dragGeometry = this._measure();\n this._dragging = true;\n this._move(event);\n }\n\n private _handleLostPointerCapture(): void {\n this.removeEventListener('pointermove', this._handlePointerMove);\n this._dragGeometry = undefined;\n this._dragging = false;\n this._marker?.focus();\n }\n\n private _handlePointerMove(event: PointerEvent): void {\n this._move(event);\n }\n\n public getMarkerDimensions(): { width: number; height: number } {\n const marker = this._marker;\n\n // Offsets rather than a client rect: the marker is scaled up while dragged\n // and a rect would report the transformed box, shifting every position\n // resolved against it.\n return marker\n ? { width: marker.offsetWidth / 2, height: marker.offsetHeight / 2 }\n : { width: 0, height: 0 };\n }\n\n protected override render() {\n const styles = styleMap({\n top: `${this.y}px`,\n left: `${this.x}px`,\n });\n\n const saturation = Math.round(this.saturation);\n const brightness = Math.round(this.brightness);\n\n // ARIA has no two-dimensional slider, so the marker is exposed as a single\n // slider tracking saturation, with `aria-valuetext` carrying both axes -\n // otherwise vertical movement would be announced as \"no change\".\n return html`\n <div\n part=${partMap({ marker: true, dragging: this._dragging })}\n style=${styles}\n tabindex=\"0\"\n role=\"slider\"\n aria-label=${this.markerLabel}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=${saturation}\n aria-valuetext=\"Saturation ${saturation}%, brightness ${brightness}%\"\n ></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-picker-canvas': IgcPickerCanvasComponent;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:inline-block}:host [part=color-picker]{display:inline-grid;grid-template-columns:auto auto 1fr;align-items:center}:host ::part(helper-text){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}:host slot[name=value-missing]{display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}:host input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}:host [part=main-row],:host [part=alpha-row],:host [part=inputs-row]{display:grid}:host [part=main-row]:empty,:host [part=alpha-row]:empty,:host [part=inputs-row]:empty{display:none}:host [part=main-row]{margin-block-end:max(var(--is-large, 1)*max(1rem, -1 * 1rem),var(--is-medium, 1)*max(0.75rem, -1 * 0.75rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem))}:host [part=main-row] input{grid-column:1/span 2}:host [part=alpha-row]{margin-block:var(--_alpha-row-spacing)}:host [part=alpha-row] input{grid-column:1/span 2}:host [part=alpha-input]{min-width:-moz-fit-content;min-width:fit-content}:host [part=inputs-row]{padding-block-end:var(--_input-row-spacing)}:host [part=inputs-row] igc-input{grid-column:1/-1}:host [part=inputs-row]:has(igc-select) igc-input{grid-column:2/-1}:host [part=buttons]{display:flex}:host [part=hue],:host [part=alpha]{grid-column:1/span 3}:host [part=picker]{display:grid;width:var(--_picker-popover-size);min-height:12rem}:host [part=picker]:has([part~=alpha-row]:not(:empty)) [part=main-row]{margin-block-end:0}:host [part=picker-canvas]{border-width:.0625rem;border-style:solid;margin-inline:1rem;margin-block:1rem max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1.25rem, -1 * 1.25rem),var(--is-small, 1)*max(1rem, -1 * 1rem))}:host [part=swatches]{display:grid;grid-column:1/-1;width:100%;padding:var(--_swatches-spacing);row-gap:var(--_swatches-row-gap);justify-content:space-between;overflow:hidden}:host [part~=anchor]{display:flex;align-items:center;justify-content:center;position:relative;aspect-ratio:1;padding:.25rem;margin:0}:host [part~=anchor]::before{content:"";-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;aspect-ratio:1;box-sizing:content-box}:host [part~=input-mode]::before{display:none}:host [part=label]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([required]) [part=label]::after{content:"*"}`;
3
+ //# sourceMappingURL=color-picker.base.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.base.css.js","sourceRoot":"","sources":["../../../../src/components/color-picker/themes/color-picker.base.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,+uHAA+uH,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:inline-block}:host [part=color-picker]{display:inline-grid;grid-template-columns:auto auto 1fr;align-items:center}:host ::part(helper-text){font-family:var(--ig-caption-font-family, var(--ig-font-family));font-size:var(--ig-caption-font-size);font-weight:var(--ig-caption-font-weight);font-style:var(--ig-caption-font-style);line-height:var(--ig-caption-line-height);letter-spacing:var(--ig-caption-letter-spacing);text-transform:var(--ig-caption-text-transform);margin-top:var(--ig-caption-margin-top);margin-bottom:var(--ig-caption-margin-bottom);display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}:host slot[name=value-missing]{display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}:host input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}:host [part=main-row],:host [part=alpha-row],:host [part=inputs-row]{display:grid}:host [part=main-row]:empty,:host [part=alpha-row]:empty,:host [part=inputs-row]:empty{display:none}:host [part=main-row]{margin-block-end:max(var(--is-large, 1)*max(1rem, -1 * 1rem),var(--is-medium, 1)*max(0.75rem, -1 * 0.75rem),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem))}:host [part=main-row] input{grid-column:1/span 2}:host [part=alpha-row]{margin-block:var(--_alpha-row-spacing)}:host [part=alpha-row] input{grid-column:1/span 2}:host [part=alpha-input]{min-width:-moz-fit-content;min-width:fit-content}:host [part=inputs-row]{padding-block-end:var(--_input-row-spacing)}:host [part=inputs-row] igc-input{grid-column:1/-1}:host [part=inputs-row]:has(igc-select) igc-input{grid-column:2/-1}:host [part=buttons]{display:flex}:host [part=hue],:host [part=alpha]{grid-column:1/span 3}:host [part=picker]{display:grid;width:var(--_picker-popover-size);min-height:12rem}:host [part=picker]:has([part~=alpha-row]:not(:empty)) [part=main-row]{margin-block-end:0}:host [part=picker-canvas]{border-width:.0625rem;border-style:solid;margin-inline:1rem;margin-block:1rem max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem),var(--is-medium, 1)*max(1.25rem, -1 * 1.25rem),var(--is-small, 1)*max(1rem, -1 * 1rem))}:host [part=swatches]{display:grid;grid-column:1/-1;width:100%;padding:var(--_swatches-spacing);row-gap:var(--_swatches-row-gap);justify-content:space-between;overflow:hidden}:host [part~=anchor]{display:flex;align-items:center;justify-content:center;position:relative;aspect-ratio:1;padding:.25rem;margin:0}:host [part~=anchor]::before{content:\"\";-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;aspect-ratio:1;box-sizing:content-box}:host [part~=input-mode]::before{display:none}:host [part=label]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([required]) [part=label]::after{content:\"*\"}`;\n "]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-300));--label-color-disabled: var(--ig-color-picker-label-color-disabled, var(--ig-gray-300));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-50));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-50));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, hsl(from var(--ig-primary-600) h s l/0.5));--anchor-border-color: var(--ig-color-picker-anchor-border-color, var(--ig-gray-700));--anchor-border-color-disabled: var(--ig-color-picker-anchor-border-color-disabled, var(--ig-gray-100));--picker-border-color: var(--ig-color-picker-picker-border-color, var(--ig-gray-300));--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-300));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-0));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(3rem, -1 * 3rem), var(--is-medium, 1) * max(2.375rem, -1 * 2.375rem), var(--is-small, 1) * max(2rem, -1 * 2rem)));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-50));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-100));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-100));--ig-theme: bootstrap;--ig-theme-variant: dark}`;
3
+ //# sourceMappingURL=color-picker.bootstrap.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/color-picker/themes/dark/color-picker.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,gwDAAgwD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-300));--label-color-disabled: var(--ig-color-picker-label-color-disabled, var(--ig-gray-300));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-50));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-50));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, hsl(from var(--ig-primary-600) h s l/0.5));--anchor-border-color: var(--ig-color-picker-anchor-border-color, var(--ig-gray-700));--anchor-border-color-disabled: var(--ig-color-picker-anchor-border-color-disabled, var(--ig-gray-100));--picker-border-color: var(--ig-color-picker-picker-border-color, var(--ig-gray-300));--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-300));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-0));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(3rem, -1 * 3rem), var(--is-medium, 1) * max(2.375rem, -1 * 2.375rem), var(--is-small, 1) * max(2rem, -1 * 2rem)));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-50));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-100));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-100));--ig-theme: bootstrap;--ig-theme-variant: dark}`;\n "]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-100));--label-color-disabled: var(--ig-color-picker-label-color-disabled, var(--ig-gray-300));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-50));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-50));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, var(--ig-gray-400));--anchor-border-color-disabled: var(--ig-color-picker-anchor-border-color-disabled, var(--ig-gray-100));--anchor-border-radius: var(--ig-color-picker-anchor-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--swatch-preview-border-color: var(--ig-color-picker-swatch-preview-border-color, var(--ig-gray-700));--picker-border-radius: var(--ig-color-picker-picker-border-radius, 0.125rem);--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--swatch-border-radius: var(--ig-color-picker-swatch-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-100));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-50));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-100));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-100));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2.375rem, -1 * 2.375rem), var(--is-medium, 1) * max(2rem, -1 * 2rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: fluent;--ig-theme-variant: dark}`;
3
+ //# sourceMappingURL=color-picker.fluent.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/color-picker/themes/dark/color-picker.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,mgEAAmgE,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-100));--label-color-disabled: var(--ig-color-picker-label-color-disabled, var(--ig-gray-300));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-50));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-50));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, var(--ig-gray-400));--anchor-border-color-disabled: var(--ig-color-picker-anchor-border-color-disabled, var(--ig-gray-100));--anchor-border-radius: var(--ig-color-picker-anchor-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--swatch-preview-border-color: var(--ig-color-picker-swatch-preview-border-color, var(--ig-gray-700));--picker-border-radius: var(--ig-color-picker-picker-border-radius, 0.125rem);--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--swatch-border-radius: var(--ig-color-picker-swatch-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-100));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-50));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-100));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-100));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2.375rem, -1 * 2.375rem), var(--is-medium, 1) * max(2rem, -1 * 2rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: fluent;--ig-theme-variant: dark}`;\n "]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--label-color: var(--ig-color-picker-label-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--label-color-invalid: var(--ig-color-picker-label-color-invalid, hsl(from var(--ig-gray-800) h s l/0.8));--label-color-disabled: var(--ig-color-picker-label-color-disabled, hsl(from var(--ig-gray-50-contrast) h s l/0.2));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, hsl(from var(--ig-gray-50-contrast) h s l/0.2));--anchor-border-color-disabled: var(--ig-color-picker-anchor-border-color-disabled, hsl(from var(--ig-gray-50-contrast) h s l/0.2));--picker-background: var(--ig-color-picker-picker-background, var(--ig-gray-50));--picker-border-radius: var(--ig-color-picker-picker-border-radius, 0.625rem);--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--swatch-separator-color: var(--ig-color-picker-swatch-separator-color, transparent);--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-400));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2rem, -1 * 2rem), var(--is-medium, 1) * max(1.75rem, -1 * 1.75rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: indigo;--ig-theme-variant: dark}`;
3
+ //# sourceMappingURL=color-picker.indigo.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/color-picker/themes/dark/color-picker.indigo.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ygEAAygE,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--label-color: var(--ig-color-picker-label-color, hsl(from var(--ig-gray-50-contrast) h s l/0.8));--label-color-invalid: var(--ig-color-picker-label-color-invalid, hsl(from var(--ig-gray-800) h s l/0.8));--label-color-disabled: var(--ig-color-picker-label-color-disabled, hsl(from var(--ig-gray-50-contrast) h s l/0.2));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, hsl(from var(--ig-gray-50-contrast) h s l/0.2));--anchor-border-color-disabled: var(--ig-color-picker-anchor-border-color-disabled, hsl(from var(--ig-gray-50-contrast) h s l/0.2));--picker-background: var(--ig-color-picker-picker-background, var(--ig-gray-50));--picker-border-radius: var(--ig-color-picker-picker-border-radius, 0.625rem);--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--swatch-separator-color: var(--ig-color-picker-swatch-separator-color, transparent);--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-400));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2rem, -1 * 2rem), var(--is-medium, 1) * max(1.75rem, -1 * 1.75rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: indigo;--ig-theme-variant: dark}`;\n "]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-500));--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-500));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, hsl(from var(--ig-gray-500) h s l/0.08));--anchor-background-active: var(--ig-color-picker-anchor-background-active, hsl(from var(--ig-gray-500) h s l/0.16));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, hsl(from var(--ig-gray-500) h s l/0.16));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, hsl(from var(--ig-gray-500) h s l/0.32));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: material;--ig-theme-variant: dark}`;
3
+ //# sourceMappingURL=color-picker.material.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.material.css.js","sourceRoot":"","sources":["../../../../../src/components/color-picker/themes/dark/color-picker.material.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,+qCAA+qC,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-500));--slider-thumb-border-color: var(--ig-color-picker-slider-thumb-border-color, var(--ig-gray-50-contrast));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-500));--marker-color: var(--ig-color-picker-marker-color, var(--ig-gray-50-contrast));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, hsl(from var(--ig-gray-500) h s l/0.08));--anchor-background-active: var(--ig-color-picker-anchor-background-active, hsl(from var(--ig-gray-500) h s l/0.16));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, hsl(from var(--ig-gray-500) h s l/0.16));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, hsl(from var(--ig-gray-500) h s l/0.32));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: material;--ig-theme-variant: dark}`;\n "]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-500));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-200));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-100));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, hsl(from var(--ig-primary-600) h s l/0.5));--anchor-border-color: var(--ig-color-picker-anchor-border-color, var(--ig-gray-700));--picker-border-color: var(--ig-color-picker-picker-border-color, var(--ig-gray-300));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-500));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-0));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(3rem, -1 * 3rem), var(--is-medium, 1) * max(2.375rem, -1 * 2.375rem), var(--is-small, 1) * max(2rem, -1 * 2rem)));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-200));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-300));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-300));--ig-theme: bootstrap;--ig-theme-variant: light}`;
3
+ //# sourceMappingURL=color-picker.bootstrap.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/color-picker/themes/light/color-picker.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,04CAA04C,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-500));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-200));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-100));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, hsl(from var(--ig-primary-600) h s l/0.5));--anchor-border-color: var(--ig-color-picker-anchor-border-color, var(--ig-gray-700));--picker-border-color: var(--ig-color-picker-picker-border-color, var(--ig-gray-300));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-500));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-0));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(3rem, -1 * 3rem), var(--is-medium, 1) * max(2.375rem, -1 * 2.375rem), var(--is-small, 1) * max(2rem, -1 * 2rem)));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-200));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-300));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-300));--ig-theme: bootstrap;--ig-theme-variant: light}`;\n "]}
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-500));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-200));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-100));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, var(--ig-gray-700));--anchor-border-radius: var(--ig-color-picker-anchor-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--swatch-preview-border-color: var(--ig-color-picker-swatch-preview-border-color, var(--ig-gray-700));--picker-border-radius: var(--ig-color-picker-picker-border-radius, 0.125rem);--swatch-border-radius: var(--ig-color-picker-swatch-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-500));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-200));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-300));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-300));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2.375rem, -1 * 2.375rem), var(--is-medium, 1) * max(2rem, -1 * 2rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: fluent;--ig-theme-variant: light}`;
3
+ //# sourceMappingURL=color-picker.fluent.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/color-picker/themes/light/color-picker.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,6oDAA6oD,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`:host{--label-color-invalid: var(--ig-color-picker-label-color-invalid, var(--ig-error-500));--anchor-background-focus-visible-hover: var(--ig-color-picker-anchor-background-focus-visible-hover, var(--ig-gray-200));--anchor-background-disabled: var(--ig-color-picker-anchor-background-disabled, var(--ig-gray-100));--anchor-outline-color: var(--ig-color-picker-anchor-outline-color, var(--ig-gray-700));--anchor-border-radius: var(--ig-color-picker-anchor-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--swatch-preview-border-color: var(--ig-color-picker-swatch-preview-border-color, var(--ig-gray-700));--picker-border-radius: var(--ig-color-picker-picker-border-radius, 0.125rem);--swatch-border-radius: var(--ig-color-picker-swatch-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.125rem), 0.125rem));--invalid-color: var(--ig-color-picker-invalid-color, var(--ig-error-500));--picker-elevation: var(--ig-color-picker-picker-elevation, var(--ig-elevation-24));--anchor-background-hover: var(--ig-color-picker-anchor-background-hover, var(--ig-gray-200));--anchor-background-focus-visible: var(--ig-color-picker-anchor-background-focus-visible, transparent);--anchor-background-active: var(--ig-color-picker-anchor-background-active, var(--ig-gray-300));--anchor-background-active-focus-visible: var(--ig-color-picker-anchor-background-active-focus-visible, var(--ig-gray-300));--trigger-size: var(--ig-color-picker-trigger-size, max(var(--is-large, 1) * max(2.375rem, -1 * 2.375rem), var(--is-medium, 1) * max(2rem, -1 * 2rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--ig-theme: fluent;--ig-theme-variant: light}`;\n "]}