@krollins/blueprint 0.2.2 → 0.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 (1639) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +123 -123
  3. package/README.npm.md +123 -123
  4. package/dist/components/accordion/accordion.d.ts +6 -1
  5. package/dist/components/accordion/accordion.d.ts.map +1 -1
  6. package/dist/components/accordion/accordion.style.d.ts.map +1 -1
  7. package/dist/components/accordion.js +2 -394
  8. package/dist/components/alert/alert.d.ts +6 -1
  9. package/dist/components/alert/alert.d.ts.map +1 -1
  10. package/dist/components/alert/alert.style.d.ts.map +1 -1
  11. package/dist/components/alert.js +2 -219
  12. package/dist/components/avatar/avatar.d.ts +6 -1
  13. package/dist/components/avatar/avatar.d.ts.map +1 -1
  14. package/dist/components/avatar.js +2 -238
  15. package/dist/components/badge/badge.d.ts.map +1 -1
  16. package/dist/components/badge/badge.style.d.ts.map +1 -1
  17. package/dist/components/badge.js +2 -144
  18. package/dist/components/breadcrumb/breadcrumb.d.ts +6 -1
  19. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  20. package/dist/components/breadcrumb/breadcrumb.style.d.ts +9 -0
  21. package/dist/components/breadcrumb/breadcrumb.style.d.ts.map +1 -1
  22. package/dist/components/breadcrumb.js +2 -481
  23. package/dist/components/button/button.d.ts.map +1 -1
  24. package/dist/components/button.js +2 -192
  25. package/dist/components/card/card.d.ts.map +1 -1
  26. package/dist/components/card.js +2 -223
  27. package/dist/components/checkbox/checkbox.d.ts +7 -0
  28. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  29. package/dist/components/checkbox.js +2 -336
  30. package/dist/components/code-block/code-block.d.ts.map +1 -1
  31. package/dist/components/code-block.js +2 -585
  32. package/dist/components/color-picker/color-picker.d.ts +12 -1
  33. package/dist/components/color-picker/color-picker.d.ts.map +1 -1
  34. package/dist/components/color-picker/color-picker.style.d.ts.map +1 -1
  35. package/dist/components/color-picker/color-picker.utils.d.ts.map +1 -1
  36. package/dist/components/color-picker.js +2 -1660
  37. package/dist/components/combobox/combobox.d.ts +14 -1
  38. package/dist/components/combobox/combobox.d.ts.map +1 -1
  39. package/dist/components/combobox/combobox.style.d.ts.map +1 -1
  40. package/dist/components/combobox.js +2 -595
  41. package/dist/components/container/container.d.ts +26 -0
  42. package/dist/components/container/container.d.ts.map +1 -0
  43. package/dist/components/container/container.style.d.ts +2 -0
  44. package/dist/components/container/container.style.d.ts.map +1 -0
  45. package/dist/components/container.js +2 -0
  46. package/dist/components/date-picker/date-picker.d.ts +15 -1
  47. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  48. package/dist/components/date-picker/date-picker.style.d.ts.map +1 -1
  49. package/dist/components/date-picker.js +2 -726
  50. package/dist/components/divider/divider.d.ts.map +1 -1
  51. package/dist/components/divider.js +2 -214
  52. package/dist/components/drawer/drawer.d.ts +6 -1
  53. package/dist/components/drawer/drawer.d.ts.map +1 -1
  54. package/dist/components/drawer/drawer.style.d.ts.map +1 -1
  55. package/dist/components/drawer.js +2 -569
  56. package/dist/components/dropdown/dropdown.d.ts.map +1 -1
  57. package/dist/components/dropdown.js +2 -377
  58. package/dist/components/fieldset/fieldset.d.ts +54 -0
  59. package/dist/components/fieldset/fieldset.d.ts.map +1 -0
  60. package/dist/components/fieldset/fieldset.style.d.ts +2 -0
  61. package/dist/components/fieldset/fieldset.style.d.ts.map +1 -0
  62. package/dist/components/fieldset.js +2 -0
  63. package/dist/components/file-upload/file-upload.d.ts +13 -1
  64. package/dist/components/file-upload/file-upload.d.ts.map +1 -1
  65. package/dist/components/file-upload/file-upload.style.d.ts.map +1 -1
  66. package/dist/components/file-upload.js +2 -669
  67. package/dist/components/grid/grid.d.ts +37 -0
  68. package/dist/components/grid/grid.d.ts.map +1 -0
  69. package/dist/components/grid/grid.style.d.ts +2 -0
  70. package/dist/components/grid/grid.style.d.ts.map +1 -0
  71. package/dist/components/grid.js +2 -0
  72. package/dist/components/heading/heading.d.ts.map +1 -1
  73. package/dist/components/heading.js +2 -161
  74. package/dist/components/icon/icon.d.ts +1 -1
  75. package/dist/components/icon/icon.d.ts.map +1 -1
  76. package/dist/components/icon/icon.style.d.ts.map +1 -1
  77. package/dist/components/icon/icons/entries/airplay.d.ts.map +1 -1
  78. package/dist/components/icon/icons/entries/alarm-clock.d.ts.map +1 -1
  79. package/dist/components/icon/icons/entries/align-horizontal.d.ts.map +1 -1
  80. package/dist/components/icon/icons/entries/align-vertical.d.ts.map +1 -1
  81. package/dist/components/icon/icons/entries/angle.d.ts.map +1 -1
  82. package/dist/components/icon/icons/entries/archive.d.ts.map +1 -1
  83. package/dist/components/icon/icons/entries/arrow-bottom-left.d.ts.map +1 -1
  84. package/dist/components/icon/icons/entries/arrow-bottom-right.d.ts.map +1 -1
  85. package/dist/components/icon/icons/entries/arrow-down-circle.d.ts.map +1 -1
  86. package/dist/components/icon/icons/entries/arrow-down.d.ts.map +1 -1
  87. package/dist/components/icon/icons/entries/arrow-left-circle.d.ts.map +1 -1
  88. package/dist/components/icon/icons/entries/arrow-left.d.ts.map +1 -1
  89. package/dist/components/icon/icons/entries/arrow-right-circle.d.ts.map +1 -1
  90. package/dist/components/icon/icons/entries/arrow-right.d.ts.map +1 -1
  91. package/dist/components/icon/icons/entries/arrow-top-left.d.ts.map +1 -1
  92. package/dist/components/icon/icons/entries/arrow-top-right.d.ts.map +1 -1
  93. package/dist/components/icon/icons/entries/arrow-up-circle.d.ts.map +1 -1
  94. package/dist/components/icon/icons/entries/arrow-up.d.ts.map +1 -1
  95. package/dist/components/icon/icons/entries/audio-wave.d.ts.map +1 -1
  96. package/dist/components/icon/icons/entries/backspace.d.ts.map +1 -1
  97. package/dist/components/icon/icons/entries/backward.d.ts.map +1 -1
  98. package/dist/components/icon/icons/entries/bag.d.ts.map +1 -1
  99. package/dist/components/icon/icons/entries/battery-75.d.ts.map +1 -1
  100. package/dist/components/icon/icons/entries/battery-charging.d.ts.map +1 -1
  101. package/dist/components/icon/icons/entries/battery-empty.d.ts.map +1 -1
  102. package/dist/components/icon/icons/entries/battery-full.d.ts.map +1 -1
  103. package/dist/components/icon/icons/entries/battery-half.d.ts.map +1 -1
  104. package/dist/components/icon/icons/entries/battery-low.d.ts.map +1 -1
  105. package/dist/components/icon/icons/entries/bell-disabled.d.ts.map +1 -1
  106. package/dist/components/icon/icons/entries/bell-ringing.d.ts.map +1 -1
  107. package/dist/components/icon/icons/entries/bell-snooze.d.ts.map +1 -1
  108. package/dist/components/icon/icons/entries/bell.d.ts.map +1 -1
  109. package/dist/components/icon/icons/entries/bluetooth.d.ts.map +1 -1
  110. package/dist/components/icon/icons/entries/book-closed.d.ts.map +1 -1
  111. package/dist/components/icon/icons/entries/book-text.d.ts.map +1 -1
  112. package/dist/components/icon/icons/entries/book.d.ts.map +1 -1
  113. package/dist/components/icon/icons/entries/bookmark-book.d.ts.map +1 -1
  114. package/dist/components/icon/icons/entries/bookmark.d.ts.map +1 -1
  115. package/dist/components/icon/icons/entries/box-add.d.ts.map +1 -1
  116. package/dist/components/icon/icons/entries/box-download.d.ts.map +1 -1
  117. package/dist/components/icon/icons/entries/box-open.d.ts.map +1 -1
  118. package/dist/components/icon/icons/entries/box-remove.d.ts.map +1 -1
  119. package/dist/components/icon/icons/entries/box.d.ts.map +1 -1
  120. package/dist/components/icon/icons/entries/boxes.d.ts.map +1 -1
  121. package/dist/components/icon/icons/entries/branch.d.ts.map +1 -1
  122. package/dist/components/icon/icons/entries/briefcase.d.ts.map +1 -1
  123. package/dist/components/icon/icons/entries/browser-alt.d.ts.map +1 -1
  124. package/dist/components/icon/icons/entries/browser.d.ts.map +1 -1
  125. package/dist/components/icon/icons/entries/button-add.d.ts.map +1 -1
  126. package/dist/components/icon/icons/entries/button-minus.d.ts.map +1 -1
  127. package/dist/components/icon/icons/entries/calculator.d.ts.map +1 -1
  128. package/dist/components/icon/icons/entries/calendar-add.d.ts.map +1 -1
  129. package/dist/components/icon/icons/entries/calendar-date.d.ts.map +1 -1
  130. package/dist/components/icon/icons/entries/calendar-day.d.ts.map +1 -1
  131. package/dist/components/icon/icons/entries/calendar-days.d.ts.map +1 -1
  132. package/dist/components/icon/icons/entries/calendar-last-day.d.ts.map +1 -1
  133. package/dist/components/icon/icons/entries/calendar-month.d.ts.map +1 -1
  134. package/dist/components/icon/icons/entries/calendar-move.d.ts.map +1 -1
  135. package/dist/components/icon/icons/entries/calendar-remove.d.ts.map +1 -1
  136. package/dist/components/icon/icons/entries/calendar-split.d.ts.map +1 -1
  137. package/dist/components/icon/icons/entries/calendar-week.d.ts.map +1 -1
  138. package/dist/components/icon/icons/entries/calendar.d.ts.map +1 -1
  139. package/dist/components/icon/icons/entries/camera-alt.d.ts.map +1 -1
  140. package/dist/components/icon/icons/entries/camera-noflash-alt.d.ts.map +1 -1
  141. package/dist/components/icon/icons/entries/camera-noflash.d.ts.map +1 -1
  142. package/dist/components/icon/icons/entries/camera.d.ts.map +1 -1
  143. package/dist/components/icon/icons/entries/capture.d.ts.map +1 -1
  144. package/dist/components/icon/icons/entries/card-timeline.d.ts.map +1 -1
  145. package/dist/components/icon/icons/entries/card-view.d.ts.map +1 -1
  146. package/dist/components/icon/icons/entries/carousel.d.ts.map +1 -1
  147. package/dist/components/icon/icons/entries/cart.d.ts.map +1 -1
  148. package/dist/components/icon/icons/entries/cast.d.ts.map +1 -1
  149. package/dist/components/icon/icons/entries/chain.d.ts.map +1 -1
  150. package/dist/components/icon/icons/entries/chat-add.d.ts.map +1 -1
  151. package/dist/components/icon/icons/entries/check-circle-outside.d.ts.map +1 -1
  152. package/dist/components/icon/icons/entries/check-circle.d.ts.map +1 -1
  153. package/dist/components/icon/icons/entries/check.d.ts.map +1 -1
  154. package/dist/components/icon/icons/entries/checkbox-checked.d.ts.map +1 -1
  155. package/dist/components/icon/icons/entries/checkbox-empty.d.ts.map +1 -1
  156. package/dist/components/icon/icons/entries/chevron-close.d.ts.map +1 -1
  157. package/dist/components/icon/icons/entries/chevron-down-circle.d.ts.map +1 -1
  158. package/dist/components/icon/icons/entries/chevron-down-double.d.ts.map +1 -1
  159. package/dist/components/icon/icons/entries/chevron-down.d.ts.map +1 -1
  160. package/dist/components/icon/icons/entries/chevron-left-circle.d.ts.map +1 -1
  161. package/dist/components/icon/icons/entries/chevron-left-double.d.ts.map +1 -1
  162. package/dist/components/icon/icons/entries/chevron-left.d.ts.map +1 -1
  163. package/dist/components/icon/icons/entries/chevron-open.d.ts.map +1 -1
  164. package/dist/components/icon/icons/entries/chevron-right-circle.d.ts.map +1 -1
  165. package/dist/components/icon/icons/entries/chevron-right-double.d.ts.map +1 -1
  166. package/dist/components/icon/icons/entries/chevron-right.d.ts.map +1 -1
  167. package/dist/components/icon/icons/entries/chevron-up-circle.d.ts.map +1 -1
  168. package/dist/components/icon/icons/entries/chevron-up-double.d.ts.map +1 -1
  169. package/dist/components/icon/icons/entries/chevron-up.d.ts.map +1 -1
  170. package/dist/components/icon/icons/entries/circle-menu.d.ts.map +1 -1
  171. package/dist/components/icon/icons/entries/circle-split.d.ts.map +1 -1
  172. package/dist/components/icon/icons/entries/circle.d.ts.map +1 -1
  173. package/dist/components/icon/icons/entries/clipboard-add.d.ts.map +1 -1
  174. package/dist/components/icon/icons/entries/clipboard-check.d.ts.map +1 -1
  175. package/dist/components/icon/icons/entries/clipboard-copy.d.ts.map +1 -1
  176. package/dist/components/icon/icons/entries/clipboard-cross.d.ts.map +1 -1
  177. package/dist/components/icon/icons/entries/clipboard-notes.d.ts.map +1 -1
  178. package/dist/components/icon/icons/entries/clipboard-remove.d.ts.map +1 -1
  179. package/dist/components/icon/icons/entries/clipboard.d.ts.map +1 -1
  180. package/dist/components/icon/icons/entries/clock.d.ts.map +1 -1
  181. package/dist/components/icon/icons/entries/close.d.ts.map +1 -1
  182. package/dist/components/icon/icons/entries/cloud-disconnect.d.ts.map +1 -1
  183. package/dist/components/icon/icons/entries/cloud-download-alt.d.ts.map +1 -1
  184. package/dist/components/icon/icons/entries/cloud-download.d.ts.map +1 -1
  185. package/dist/components/icon/icons/entries/cloud-upload-alt.d.ts.map +1 -1
  186. package/dist/components/icon/icons/entries/cloud-upload.d.ts.map +1 -1
  187. package/dist/components/icon/icons/entries/cloud.d.ts.map +1 -1
  188. package/dist/components/icon/icons/entries/code.d.ts.map +1 -1
  189. package/dist/components/icon/icons/entries/coffee.d.ts.map +1 -1
  190. package/dist/components/icon/icons/entries/coin.d.ts.map +1 -1
  191. package/dist/components/icon/icons/entries/coins.d.ts.map +1 -1
  192. package/dist/components/icon/icons/entries/compass.d.ts.map +1 -1
  193. package/dist/components/icon/icons/entries/component-add.d.ts.map +1 -1
  194. package/dist/components/icon/icons/entries/contacts.d.ts.map +1 -1
  195. package/dist/components/icon/icons/entries/contract.d.ts.map +1 -1
  196. package/dist/components/icon/icons/entries/create.d.ts.map +1 -1
  197. package/dist/components/icon/icons/entries/credit-card.d.ts.map +1 -1
  198. package/dist/components/icon/icons/entries/crop.d.ts.map +1 -1
  199. package/dist/components/icon/icons/entries/cross-circle.d.ts.map +1 -1
  200. package/dist/components/icon/icons/entries/cross.d.ts.map +1 -1
  201. package/dist/components/icon/icons/entries/crosshair.d.ts.map +1 -1
  202. package/dist/components/icon/icons/entries/cube.d.ts.map +1 -1
  203. package/dist/components/icon/icons/entries/cubes.d.ts.map +1 -1
  204. package/dist/components/icon/icons/entries/cylinder.d.ts.map +1 -1
  205. package/dist/components/icon/icons/entries/database.d.ts.map +1 -1
  206. package/dist/components/icon/icons/entries/diamond.d.ts.map +1 -1
  207. package/dist/components/icon/icons/entries/directions.d.ts.map +1 -1
  208. package/dist/components/icon/icons/entries/disc.d.ts.map +1 -1
  209. package/dist/components/icon/icons/entries/display-alt.d.ts.map +1 -1
  210. package/dist/components/icon/icons/entries/display.d.ts.map +1 -1
  211. package/dist/components/icon/icons/entries/document-justified.d.ts.map +1 -1
  212. package/dist/components/icon/icons/entries/document-list.d.ts.map +1 -1
  213. package/dist/components/icon/icons/entries/document-stack.d.ts.map +1 -1
  214. package/dist/components/icon/icons/entries/document-words.d.ts.map +1 -1
  215. package/dist/components/icon/icons/entries/document.d.ts.map +1 -1
  216. package/dist/components/icon/icons/entries/door-alt.d.ts.map +1 -1
  217. package/dist/components/icon/icons/entries/door.d.ts.map +1 -1
  218. package/dist/components/icon/icons/entries/download-alt.d.ts.map +1 -1
  219. package/dist/components/icon/icons/entries/download.d.ts.map +1 -1
  220. package/dist/components/icon/icons/entries/downward.d.ts.map +1 -1
  221. package/dist/components/icon/icons/entries/drag-circle.d.ts.map +1 -1
  222. package/dist/components/icon/icons/entries/drag-vertical.d.ts.map +1 -1
  223. package/dist/components/icon/icons/entries/drag.d.ts.map +1 -1
  224. package/dist/components/icon/icons/entries/duplicate-alt.d.ts.map +1 -1
  225. package/dist/components/icon/icons/entries/duplicate.d.ts.map +1 -1
  226. package/dist/components/icon/icons/entries/enter-alt.d.ts.map +1 -1
  227. package/dist/components/icon/icons/entries/enter.d.ts.map +1 -1
  228. package/dist/components/icon/icons/entries/episodes.d.ts.map +1 -1
  229. package/dist/components/icon/icons/entries/exit-left.d.ts.map +1 -1
  230. package/dist/components/icon/icons/entries/exit-right.d.ts.map +1 -1
  231. package/dist/components/icon/icons/entries/expand-height.d.ts.map +1 -1
  232. package/dist/components/icon/icons/entries/expand-width.d.ts.map +1 -1
  233. package/dist/components/icon/icons/entries/expand.d.ts.map +1 -1
  234. package/dist/components/icon/icons/entries/external.d.ts.map +1 -1
  235. package/dist/components/icon/icons/entries/eye-closed.d.ts.map +1 -1
  236. package/dist/components/icon/icons/entries/eye-no.d.ts.map +1 -1
  237. package/dist/components/icon/icons/entries/eye.d.ts.map +1 -1
  238. package/dist/components/icon/icons/entries/face-delighted.d.ts.map +1 -1
  239. package/dist/components/icon/icons/entries/face-happy.d.ts.map +1 -1
  240. package/dist/components/icon/icons/entries/face-neutral.d.ts.map +1 -1
  241. package/dist/components/icon/icons/entries/face-sad.d.ts.map +1 -1
  242. package/dist/components/icon/icons/entries/file-download.d.ts.map +1 -1
  243. package/dist/components/icon/icons/entries/file-upload.d.ts.map +1 -1
  244. package/dist/components/icon/icons/entries/files-history.d.ts.map +1 -1
  245. package/dist/components/icon/icons/entries/files-multi.d.ts.map +1 -1
  246. package/dist/components/icon/icons/entries/files-stack.d.ts.map +1 -1
  247. package/dist/components/icon/icons/entries/film.d.ts.map +1 -1
  248. package/dist/components/icon/icons/entries/filter-circle.d.ts.map +1 -1
  249. package/dist/components/icon/icons/entries/filter-single.d.ts.map +1 -1
  250. package/dist/components/icon/icons/entries/filter.d.ts.map +1 -1
  251. package/dist/components/icon/icons/entries/filtering.d.ts.map +1 -1
  252. package/dist/components/icon/icons/entries/fingerprint.d.ts.map +1 -1
  253. package/dist/components/icon/icons/entries/flag.d.ts.map +1 -1
  254. package/dist/components/icon/icons/entries/flame-alt.d.ts.map +1 -1
  255. package/dist/components/icon/icons/entries/flame.d.ts.map +1 -1
  256. package/dist/components/icon/icons/entries/flip-view.d.ts.map +1 -1
  257. package/dist/components/icon/icons/entries/floppy.d.ts.map +1 -1
  258. package/dist/components/icon/icons/entries/folder-add.d.ts.map +1 -1
  259. package/dist/components/icon/icons/entries/folder-closed.d.ts.map +1 -1
  260. package/dist/components/icon/icons/entries/folder-minus.d.ts.map +1 -1
  261. package/dist/components/icon/icons/entries/folder-open.d.ts.map +1 -1
  262. package/dist/components/icon/icons/entries/fork-git.d.ts.map +1 -1
  263. package/dist/components/icon/icons/entries/forward.d.ts.map +1 -1
  264. package/dist/components/icon/icons/entries/frame.d.ts.map +1 -1
  265. package/dist/components/icon/icons/entries/fullscreen.d.ts.map +1 -1
  266. package/dist/components/icon/icons/entries/funnel.d.ts.map +1 -1
  267. package/dist/components/icon/icons/entries/gauge.d.ts.map +1 -1
  268. package/dist/components/icon/icons/entries/gift.d.ts.map +1 -1
  269. package/dist/components/icon/icons/entries/globe.d.ts.map +1 -1
  270. package/dist/components/icon/icons/entries/gps.d.ts.map +1 -1
  271. package/dist/components/icon/icons/entries/grab.d.ts.map +1 -1
  272. package/dist/components/icon/icons/entries/graph-bar.d.ts.map +1 -1
  273. package/dist/components/icon/icons/entries/graph-box.d.ts.map +1 -1
  274. package/dist/components/icon/icons/entries/graph-increase.d.ts.map +1 -1
  275. package/dist/components/icon/icons/entries/grid-circles-add.d.ts.map +1 -1
  276. package/dist/components/icon/icons/entries/grid-circles.d.ts.map +1 -1
  277. package/dist/components/icon/icons/entries/grid-small.d.ts.map +1 -1
  278. package/dist/components/icon/icons/entries/grid-squares-add.d.ts.map +1 -1
  279. package/dist/components/icon/icons/entries/grid-squares.d.ts.map +1 -1
  280. package/dist/components/icon/icons/entries/grid.d.ts.map +1 -1
  281. package/dist/components/icon/icons/entries/hand.d.ts.map +1 -1
  282. package/dist/components/icon/icons/entries/harddrive.d.ts.map +1 -1
  283. package/dist/components/icon/icons/entries/hash.d.ts.map +1 -1
  284. package/dist/components/icon/icons/entries/heart-rate.d.ts.map +1 -1
  285. package/dist/components/icon/icons/entries/heart-remove.d.ts.map +1 -1
  286. package/dist/components/icon/icons/entries/heart.d.ts.map +1 -1
  287. package/dist/components/icon/icons/entries/height.d.ts.map +1 -1
  288. package/dist/components/icon/icons/entries/hierarchy.d.ts.map +1 -1
  289. package/dist/components/icon/icons/entries/home-alt.d.ts.map +1 -1
  290. package/dist/components/icon/icons/entries/home-check.d.ts.map +1 -1
  291. package/dist/components/icon/icons/entries/home-door.d.ts.map +1 -1
  292. package/dist/components/icon/icons/entries/home.d.ts.map +1 -1
  293. package/dist/components/icon/icons/entries/import.d.ts.map +1 -1
  294. package/dist/components/icon/icons/entries/inbox-alt.d.ts.map +1 -1
  295. package/dist/components/icon/icons/entries/inbox.d.ts.map +1 -1
  296. package/dist/components/icon/icons/entries/info-circle.d.ts.map +1 -1
  297. package/dist/components/icon/icons/entries/iphone-landscape.d.ts.map +1 -1
  298. package/dist/components/icon/icons/entries/iphone-portrait.d.ts.map +1 -1
  299. package/dist/components/icon/icons/entries/jump-backward.d.ts.map +1 -1
  300. package/dist/components/icon/icons/entries/jump-forward.d.ts.map +1 -1
  301. package/dist/components/icon/icons/entries/jump-left.d.ts.map +1 -1
  302. package/dist/components/icon/icons/entries/jump-right.d.ts.map +1 -1
  303. package/dist/components/icon/icons/entries/keyboard.d.ts.map +1 -1
  304. package/dist/components/icon/icons/entries/laptop.d.ts.map +1 -1
  305. package/dist/components/icon/icons/entries/lightbulb-on.d.ts.map +1 -1
  306. package/dist/components/icon/icons/entries/lightbulb.d.ts.map +1 -1
  307. package/dist/components/icon/icons/entries/lightning-alt.d.ts.map +1 -1
  308. package/dist/components/icon/icons/entries/lightning.d.ts.map +1 -1
  309. package/dist/components/icon/icons/entries/lineweight.d.ts.map +1 -1
  310. package/dist/components/icon/icons/entries/link-alt.d.ts.map +1 -1
  311. package/dist/components/icon/icons/entries/link-broken.d.ts.map +1 -1
  312. package/dist/components/icon/icons/entries/link-horizontal.d.ts.map +1 -1
  313. package/dist/components/icon/icons/entries/link-vertical.d.ts.map +1 -1
  314. package/dist/components/icon/icons/entries/link.d.ts.map +1 -1
  315. package/dist/components/icon/icons/entries/list-add.d.ts.map +1 -1
  316. package/dist/components/icon/icons/entries/list-numbered.d.ts.map +1 -1
  317. package/dist/components/icon/icons/entries/list.d.ts.map +1 -1
  318. package/dist/components/icon/icons/entries/loader.d.ts.map +1 -1
  319. package/dist/components/icon/icons/entries/location.d.ts.map +1 -1
  320. package/dist/components/icon/icons/entries/lock-open.d.ts.map +1 -1
  321. package/dist/components/icon/icons/entries/lock.d.ts.map +1 -1
  322. package/dist/components/icon/icons/entries/mail-add.d.ts.map +1 -1
  323. package/dist/components/icon/icons/entries/mail-delete.d.ts.map +1 -1
  324. package/dist/components/icon/icons/entries/mail-minus.d.ts.map +1 -1
  325. package/dist/components/icon/icons/entries/mail-new.d.ts.map +1 -1
  326. package/dist/components/icon/icons/entries/mail-open.d.ts.map +1 -1
  327. package/dist/components/icon/icons/entries/mail-remove.d.ts.map +1 -1
  328. package/dist/components/icon/icons/entries/mail.d.ts.map +1 -1
  329. package/dist/components/icon/icons/entries/marquee.d.ts.map +1 -1
  330. package/dist/components/icon/icons/entries/maximise.d.ts.map +1 -1
  331. package/dist/components/icon/icons/entries/menu-hamburger.d.ts.map +1 -1
  332. package/dist/components/icon/icons/entries/menu-horizontal.d.ts.map +1 -1
  333. package/dist/components/icon/icons/entries/menu-vertical.d.ts.map +1 -1
  334. package/dist/components/icon/icons/entries/message-writing.d.ts.map +1 -1
  335. package/dist/components/icon/icons/entries/message.d.ts.map +1 -1
  336. package/dist/components/icon/icons/entries/microphone-disabled.d.ts.map +1 -1
  337. package/dist/components/icon/icons/entries/microphone-muted.d.ts.map +1 -1
  338. package/dist/components/icon/icons/entries/microphone.d.ts.map +1 -1
  339. package/dist/components/icon/icons/entries/midpoint.d.ts.map +1 -1
  340. package/dist/components/icon/icons/entries/mini-player.d.ts.map +1 -1
  341. package/dist/components/icon/icons/entries/minimise.d.ts.map +1 -1
  342. package/dist/components/icon/icons/entries/minus-circle.d.ts.map +1 -1
  343. package/dist/components/icon/icons/entries/minus.d.ts.map +1 -1
  344. package/dist/components/icon/icons/entries/moon.d.ts.map +1 -1
  345. package/dist/components/icon/icons/entries/move.d.ts.map +1 -1
  346. package/dist/components/icon/icons/entries/newspaper.d.ts.map +1 -1
  347. package/dist/components/icon/icons/entries/no-sign.d.ts.map +1 -1
  348. package/dist/components/icon/icons/entries/notebook.d.ts.map +1 -1
  349. package/dist/components/icon/icons/entries/notification.d.ts.map +1 -1
  350. package/dist/components/icon/icons/entries/nut.d.ts.map +1 -1
  351. package/dist/components/icon/icons/entries/pages.d.ts.map +1 -1
  352. package/dist/components/icon/icons/entries/panel-bottom.d.ts.map +1 -1
  353. package/dist/components/icon/icons/entries/panel-center.d.ts.map +1 -1
  354. package/dist/components/icon/icons/entries/panel-left.d.ts.map +1 -1
  355. package/dist/components/icon/icons/entries/panel-right.d.ts.map +1 -1
  356. package/dist/components/icon/icons/entries/panel-sectioned.d.ts.map +1 -1
  357. package/dist/components/icon/icons/entries/panel-top.d.ts.map +1 -1
  358. package/dist/components/icon/icons/entries/paper-folded.d.ts.map +1 -1
  359. package/dist/components/icon/icons/entries/paper-plane-alt.d.ts.map +1 -1
  360. package/dist/components/icon/icons/entries/paper-plane.d.ts.map +1 -1
  361. package/dist/components/icon/icons/entries/paper.d.ts.map +1 -1
  362. package/dist/components/icon/icons/entries/paperclip.d.ts.map +1 -1
  363. package/dist/components/icon/icons/entries/paragraph-center.d.ts.map +1 -1
  364. package/dist/components/icon/icons/entries/paragraph-end.d.ts.map +1 -1
  365. package/dist/components/icon/icons/entries/paragraph-left.d.ts.map +1 -1
  366. package/dist/components/icon/icons/entries/paragraph-right.d.ts.map +1 -1
  367. package/dist/components/icon/icons/entries/paragraph-start.d.ts.map +1 -1
  368. package/dist/components/icon/icons/entries/pen.d.ts.map +1 -1
  369. package/dist/components/icon/icons/entries/phone-landscape.d.ts.map +1 -1
  370. package/dist/components/icon/icons/entries/phone-portrait.d.ts.map +1 -1
  371. package/dist/components/icon/icons/entries/picture.d.ts.map +1 -1
  372. package/dist/components/icon/icons/entries/pie-half.d.ts.map +1 -1
  373. package/dist/components/icon/icons/entries/pie-quarter.d.ts.map +1 -1
  374. package/dist/components/icon/icons/entries/pie-third.d.ts.map +1 -1
  375. package/dist/components/icon/icons/entries/pill.d.ts.map +1 -1
  376. package/dist/components/icon/icons/entries/play-button.d.ts.map +1 -1
  377. package/dist/components/icon/icons/entries/plus-circle.d.ts.map +1 -1
  378. package/dist/components/icon/icons/entries/plus.d.ts.map +1 -1
  379. package/dist/components/icon/icons/entries/postcard.d.ts.map +1 -1
  380. package/dist/components/icon/icons/entries/printer.d.ts.map +1 -1
  381. package/dist/components/icon/icons/entries/projector.d.ts.map +1 -1
  382. package/dist/components/icon/icons/entries/pull-down.d.ts.map +1 -1
  383. package/dist/components/icon/icons/entries/pull-left.d.ts.map +1 -1
  384. package/dist/components/icon/icons/entries/pull-right.d.ts.map +1 -1
  385. package/dist/components/icon/icons/entries/pull-up.d.ts.map +1 -1
  386. package/dist/components/icon/icons/entries/push-down.d.ts.map +1 -1
  387. package/dist/components/icon/icons/entries/push-left.d.ts.map +1 -1
  388. package/dist/components/icon/icons/entries/push-right.d.ts.map +1 -1
  389. package/dist/components/icon/icons/entries/push-up.d.ts.map +1 -1
  390. package/dist/components/icon/icons/entries/question-circle.d.ts.map +1 -1
  391. package/dist/components/icon/icons/entries/radio-on.d.ts.map +1 -1
  392. package/dist/components/icon/icons/entries/receipt.d.ts.map +1 -1
  393. package/dist/components/icon/icons/entries/record.d.ts.map +1 -1
  394. package/dist/components/icon/icons/entries/redo.d.ts.map +1 -1
  395. package/dist/components/icon/icons/entries/refresh-alt.d.ts.map +1 -1
  396. package/dist/components/icon/icons/entries/refresh.d.ts.map +1 -1
  397. package/dist/components/icon/icons/entries/replicate-alt.d.ts.map +1 -1
  398. package/dist/components/icon/icons/entries/replicate.d.ts.map +1 -1
  399. package/dist/components/icon/icons/entries/reset-alt.d.ts.map +1 -1
  400. package/dist/components/icon/icons/entries/reset-forward.d.ts.map +1 -1
  401. package/dist/components/icon/icons/entries/reset-hard.d.ts.map +1 -1
  402. package/dist/components/icon/icons/entries/reset-temporary.d.ts.map +1 -1
  403. package/dist/components/icon/icons/entries/reset.d.ts.map +1 -1
  404. package/dist/components/icon/icons/entries/retweet.d.ts.map +1 -1
  405. package/dist/components/icon/icons/entries/reuse.d.ts.map +1 -1
  406. package/dist/components/icon/icons/entries/reverse-alt.d.ts.map +1 -1
  407. package/dist/components/icon/icons/entries/reverse.d.ts.map +1 -1
  408. package/dist/components/icon/icons/entries/revert.d.ts.map +1 -1
  409. package/dist/components/icon/icons/entries/rocket.d.ts.map +1 -1
  410. package/dist/components/icon/icons/entries/ruler.d.ts.map +1 -1
  411. package/dist/components/icon/icons/entries/scale-contract.d.ts.map +1 -1
  412. package/dist/components/icon/icons/entries/scale-extend.d.ts.map +1 -1
  413. package/dist/components/icon/icons/entries/scale.d.ts.map +1 -1
  414. package/dist/components/icon/icons/entries/scalpel.d.ts.map +1 -1
  415. package/dist/components/icon/icons/entries/search.d.ts.map +1 -1
  416. package/dist/components/icon/icons/entries/server.d.ts.map +1 -1
  417. package/dist/components/icon/icons/entries/settings.d.ts.map +1 -1
  418. package/dist/components/icon/icons/entries/share-alt.d.ts.map +1 -1
  419. package/dist/components/icon/icons/entries/share.d.ts.map +1 -1
  420. package/dist/components/icon/icons/entries/shuffle.d.ts.map +1 -1
  421. package/dist/components/icon/icons/entries/side-menu.d.ts.map +1 -1
  422. package/dist/components/icon/icons/entries/signal-full.d.ts.map +1 -1
  423. package/dist/components/icon/icons/entries/signal-low.d.ts.map +1 -1
  424. package/dist/components/icon/icons/entries/signal-medium.d.ts.map +1 -1
  425. package/dist/components/icon/icons/entries/signal-none.d.ts.map +1 -1
  426. package/dist/components/icon/icons/entries/slash-backward.d.ts.map +1 -1
  427. package/dist/components/icon/icons/entries/slash-forward.d.ts.map +1 -1
  428. package/dist/components/icon/icons/entries/sliders.d.ts.map +1 -1
  429. package/dist/components/icon/icons/entries/sort-alt.d.ts.map +1 -1
  430. package/dist/components/icon/icons/entries/sort.d.ts.map +1 -1
  431. package/dist/components/icon/icons/entries/speaker.d.ts.map +1 -1
  432. package/dist/components/icon/icons/entries/speech-bubble.d.ts.map +1 -1
  433. package/dist/components/icon/icons/entries/speech-typing.d.ts.map +1 -1
  434. package/dist/components/icon/icons/entries/split-three.d.ts.map +1 -1
  435. package/dist/components/icon/icons/entries/split.d.ts.map +1 -1
  436. package/dist/components/icon/icons/entries/star.d.ts.map +1 -1
  437. package/dist/components/icon/icons/entries/sun.d.ts.map +1 -1
  438. package/dist/components/icon/icons/entries/support.d.ts.map +1 -1
  439. package/dist/components/icon/icons/entries/swap.d.ts.map +1 -1
  440. package/dist/components/icon/icons/entries/switch.d.ts.map +1 -1
  441. package/dist/components/icon/icons/entries/table-header.d.ts.map +1 -1
  442. package/dist/components/icon/icons/entries/table.d.ts.map +1 -1
  443. package/dist/components/icon/icons/entries/tag-milestone.d.ts.map +1 -1
  444. package/dist/components/icon/icons/entries/tag.d.ts.map +1 -1
  445. package/dist/components/icon/icons/entries/tags.d.ts.map +1 -1
  446. package/dist/components/icon/icons/entries/target.d.ts.map +1 -1
  447. package/dist/components/icon/icons/entries/terminal.d.ts.map +1 -1
  448. package/dist/components/icon/icons/entries/thread.d.ts.map +1 -1
  449. package/dist/components/icon/icons/entries/thumbs-down.d.ts.map +1 -1
  450. package/dist/components/icon/icons/entries/thumbs-up.d.ts.map +1 -1
  451. package/dist/components/icon/icons/entries/ticket.d.ts.map +1 -1
  452. package/dist/components/icon/icons/entries/timeline.d.ts.map +1 -1
  453. package/dist/components/icon/icons/entries/todo.d.ts.map +1 -1
  454. package/dist/components/icon/icons/entries/toggle.d.ts.map +1 -1
  455. package/dist/components/icon/icons/entries/toggles.d.ts.map +1 -1
  456. package/dist/components/icon/icons/entries/translate.d.ts.map +1 -1
  457. package/dist/components/icon/icons/entries/trash-alt.d.ts.map +1 -1
  458. package/dist/components/icon/icons/entries/trash.d.ts.map +1 -1
  459. package/dist/components/icon/icons/entries/trophy.d.ts.map +1 -1
  460. package/dist/components/icon/icons/entries/tv-mode.d.ts.map +1 -1
  461. package/dist/components/icon/icons/entries/unarchive.d.ts.map +1 -1
  462. package/dist/components/icon/icons/entries/undo-history.d.ts.map +1 -1
  463. package/dist/components/icon/icons/entries/undo.d.ts.map +1 -1
  464. package/dist/components/icon/icons/entries/unlink-horizontal.d.ts.map +1 -1
  465. package/dist/components/icon/icons/entries/unlink-vertical.d.ts.map +1 -1
  466. package/dist/components/icon/icons/entries/upload-alt.d.ts.map +1 -1
  467. package/dist/components/icon/icons/entries/upload.d.ts.map +1 -1
  468. package/dist/components/icon/icons/entries/upward.d.ts.map +1 -1
  469. package/dist/components/icon/icons/entries/user-add.d.ts.map +1 -1
  470. package/dist/components/icon/icons/entries/user-circle.d.ts.map +1 -1
  471. package/dist/components/icon/icons/entries/user-male-circle.d.ts.map +1 -1
  472. package/dist/components/icon/icons/entries/user-male.d.ts.map +1 -1
  473. package/dist/components/icon/icons/entries/user-remove.d.ts.map +1 -1
  474. package/dist/components/icon/icons/entries/user.d.ts.map +1 -1
  475. package/dist/components/icon/icons/entries/users.d.ts.map +1 -1
  476. package/dist/components/icon/icons/entries/venn.d.ts.map +1 -1
  477. package/dist/components/icon/icons/entries/version.d.ts.map +1 -1
  478. package/dist/components/icon/icons/entries/versions.d.ts.map +1 -1
  479. package/dist/components/icon/icons/entries/video.d.ts.map +1 -1
  480. package/dist/components/icon/icons/entries/volume-0.d.ts.map +1 -1
  481. package/dist/components/icon/icons/entries/volume-add.d.ts.map +1 -1
  482. package/dist/components/icon/icons/entries/volume-disabled.d.ts.map +1 -1
  483. package/dist/components/icon/icons/entries/volume-high.d.ts.map +1 -1
  484. package/dist/components/icon/icons/entries/volume-low.d.ts.map +1 -1
  485. package/dist/components/icon/icons/entries/volume-minus.d.ts.map +1 -1
  486. package/dist/components/icon/icons/entries/volume-muted.d.ts.map +1 -1
  487. package/dist/components/icon/icons/entries/wallet.d.ts.map +1 -1
  488. package/dist/components/icon/icons/entries/warning-circle.d.ts.map +1 -1
  489. package/dist/components/icon/icons/entries/warning-hex.d.ts.map +1 -1
  490. package/dist/components/icon/icons/entries/warning-triangle.d.ts.map +1 -1
  491. package/dist/components/icon/icons/entries/waves.d.ts.map +1 -1
  492. package/dist/components/icon/icons/entries/width.d.ts.map +1 -1
  493. package/dist/components/icon/icons/entries/wifi-error.d.ts.map +1 -1
  494. package/dist/components/icon/icons/entries/wifi-none.d.ts.map +1 -1
  495. package/dist/components/icon/icons/entries/wifi.d.ts.map +1 -1
  496. package/dist/components/icon/icons/entries/window-collapse-left.d.ts.map +1 -1
  497. package/dist/components/icon/icons/entries/window-collapse-right.d.ts.map +1 -1
  498. package/dist/components/icon/icons/entries/window-content.d.ts.map +1 -1
  499. package/dist/components/icon/icons/entries/window.d.ts.map +1 -1
  500. package/dist/components/icon/icons/entries/wrap-back.d.ts.map +1 -1
  501. package/dist/components/icon/icons/entries/wrap-forward.d.ts.map +1 -1
  502. package/dist/components/icon/icons/entries/write.d.ts.map +1 -1
  503. package/dist/components/icon/icons/entries/zoom-cancel.d.ts.map +1 -1
  504. package/dist/components/icon/icons/entries/zoom-in.d.ts.map +1 -1
  505. package/dist/components/icon/icons/entries/zoom-out.d.ts.map +1 -1
  506. package/dist/components/icon/icons/entries/zoom-reset.d.ts.map +1 -1
  507. package/dist/components/icon-button/icon-button.d.ts +52 -0
  508. package/dist/components/icon-button/icon-button.d.ts.map +1 -0
  509. package/dist/components/icon-button/icon-button.style.d.ts +2 -0
  510. package/dist/components/icon-button/icon-button.style.d.ts.map +1 -0
  511. package/dist/components/icon-button.js +2 -0
  512. package/dist/components/icon.js +2 -196
  513. package/dist/components/index.d.ts +9 -0
  514. package/dist/components/index.d.ts.map +1 -1
  515. package/dist/components/input/input.d.ts +12 -2
  516. package/dist/components/input/input.d.ts.map +1 -1
  517. package/dist/components/input/input.style.d.ts.map +1 -1
  518. package/dist/components/input.js +2 -363
  519. package/dist/components/link/link.d.ts.map +1 -1
  520. package/dist/components/link.js +2 -178
  521. package/dist/components/menu/menu.d.ts.map +1 -1
  522. package/dist/components/menu.js +2 -331
  523. package/dist/components/modal/modal.d.ts.map +1 -1
  524. package/dist/components/modal.js +2 -317
  525. package/dist/components/multi-select/multi-select.d.ts +16 -1
  526. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  527. package/dist/components/multi-select/multi-select.style.d.ts.map +1 -1
  528. package/dist/components/multi-select.js +2 -642
  529. package/dist/components/notification/notification.d.ts +14 -2
  530. package/dist/components/notification/notification.d.ts.map +1 -1
  531. package/dist/components/notification/notification.style.d.ts.map +1 -1
  532. package/dist/components/notification-stack/notification-stack.d.ts +87 -0
  533. package/dist/components/notification-stack/notification-stack.d.ts.map +1 -0
  534. package/dist/components/notification-stack/notification-stack.style.d.ts +2 -0
  535. package/dist/components/notification-stack/notification-stack.style.d.ts.map +1 -0
  536. package/dist/components/notification-stack.js +2 -0
  537. package/dist/components/notification.js +2 -436
  538. package/dist/components/number-input/number-input.d.ts +18 -2
  539. package/dist/components/number-input/number-input.d.ts.map +1 -1
  540. package/dist/components/number-input/number-input.style.d.ts.map +1 -1
  541. package/dist/components/number-input.js +2 -556
  542. package/dist/components/pagination/pagination.d.ts.map +1 -1
  543. package/dist/components/pagination.js +2 -320
  544. package/dist/components/popover/popover.d.ts +6 -1
  545. package/dist/components/popover/popover.d.ts.map +1 -1
  546. package/dist/components/popover/popover.style.d.ts.map +1 -1
  547. package/dist/components/popover.js +2 -598
  548. package/dist/components/progress/progress.d.ts.map +1 -1
  549. package/dist/components/progress.js +2 -219
  550. package/dist/components/radio/radio.d.ts +12 -0
  551. package/dist/components/radio/radio.d.ts.map +1 -1
  552. package/dist/components/radio-group/radio-group.d.ts +87 -0
  553. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  554. package/dist/components/radio-group/radio-group.style.d.ts +2 -0
  555. package/dist/components/radio-group/radio-group.style.d.ts.map +1 -0
  556. package/dist/components/radio-group.js +2 -0
  557. package/dist/components/radio.js +2 -321
  558. package/dist/components/select/select.d.ts +12 -1
  559. package/dist/components/select/select.d.ts.map +1 -1
  560. package/dist/components/select/select.style.d.ts.map +1 -1
  561. package/dist/components/select.js +2 -498
  562. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  563. package/dist/components/skeleton.js +2 -240
  564. package/dist/components/slider/slider.d.ts +12 -1
  565. package/dist/components/slider/slider.d.ts.map +1 -1
  566. package/dist/components/slider/slider.style.d.ts.map +1 -1
  567. package/dist/components/slider.js +2 -9
  568. package/dist/components/spinner/spinner.d.ts.map +1 -1
  569. package/dist/components/spinner.js +2 -133
  570. package/dist/components/stack/stack.d.ts +37 -0
  571. package/dist/components/stack/stack.d.ts.map +1 -0
  572. package/dist/components/stack/stack.style.d.ts +2 -0
  573. package/dist/components/stack/stack.style.d.ts.map +1 -0
  574. package/dist/components/stack.js +2 -0
  575. package/dist/components/stepper/stepper.d.ts.map +1 -1
  576. package/dist/components/stepper/stepper.style.d.ts.map +1 -1
  577. package/dist/components/stepper.js +2 -812
  578. package/dist/components/switch/switch.d.ts +7 -0
  579. package/dist/components/switch/switch.d.ts.map +1 -1
  580. package/dist/components/switch.js +2 -379
  581. package/dist/components/table/table.d.ts +6 -1
  582. package/dist/components/table/table.d.ts.map +1 -1
  583. package/dist/components/table.js +2 -644
  584. package/dist/components/tabs/tabs.d.ts +6 -1
  585. package/dist/components/tabs/tabs.d.ts.map +1 -1
  586. package/dist/components/tabs.js +2 -547
  587. package/dist/components/tag/tag.d.ts +6 -1
  588. package/dist/components/tag/tag.d.ts.map +1 -1
  589. package/dist/components/tag/tag.style.d.ts.map +1 -1
  590. package/dist/components/tag.js +2 -292
  591. package/dist/components/text/text.d.ts.map +1 -1
  592. package/dist/components/text.js +2 -278
  593. package/dist/components/textarea/textarea.d.ts +11 -3
  594. package/dist/components/textarea/textarea.d.ts.map +1 -1
  595. package/dist/components/textarea/textarea.style.d.ts.map +1 -1
  596. package/dist/components/textarea.js +2 -380
  597. package/dist/components/time-picker/time-picker.d.ts +12 -1
  598. package/dist/components/time-picker/time-picker.d.ts.map +1 -1
  599. package/dist/components/time-picker/time-picker.style.d.ts.map +1 -1
  600. package/dist/components/time-picker.js +2 -457
  601. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  602. package/dist/components/tooltip.js +2 -239
  603. package/dist/components/tree/tree.d.ts +8 -2
  604. package/dist/components/tree/tree.d.ts.map +1 -1
  605. package/dist/components/tree.js +2 -583
  606. package/dist/icons/airplay.js +6 -6
  607. package/dist/icons/airplay.js.map +1 -1
  608. package/dist/icons/alarm-clock.js +6 -6
  609. package/dist/icons/alarm-clock.js.map +1 -1
  610. package/dist/icons/align-horizontal.js +6 -6
  611. package/dist/icons/align-horizontal.js.map +1 -1
  612. package/dist/icons/align-vertical.js +6 -6
  613. package/dist/icons/align-vertical.js.map +1 -1
  614. package/dist/icons/angle.js +6 -6
  615. package/dist/icons/angle.js.map +1 -1
  616. package/dist/icons/archive.js +6 -6
  617. package/dist/icons/archive.js.map +1 -1
  618. package/dist/icons/arrow-bottom-left.js +6 -6
  619. package/dist/icons/arrow-bottom-left.js.map +1 -1
  620. package/dist/icons/arrow-bottom-right.js +6 -6
  621. package/dist/icons/arrow-bottom-right.js.map +1 -1
  622. package/dist/icons/arrow-down-circle.js +6 -6
  623. package/dist/icons/arrow-down-circle.js.map +1 -1
  624. package/dist/icons/arrow-down.js +6 -6
  625. package/dist/icons/arrow-down.js.map +1 -1
  626. package/dist/icons/arrow-left-circle.js +6 -6
  627. package/dist/icons/arrow-left-circle.js.map +1 -1
  628. package/dist/icons/arrow-left.js +6 -6
  629. package/dist/icons/arrow-left.js.map +1 -1
  630. package/dist/icons/arrow-right-circle.js +6 -6
  631. package/dist/icons/arrow-right-circle.js.map +1 -1
  632. package/dist/icons/arrow-right.js +6 -6
  633. package/dist/icons/arrow-right.js.map +1 -1
  634. package/dist/icons/arrow-top-left.js +6 -6
  635. package/dist/icons/arrow-top-left.js.map +1 -1
  636. package/dist/icons/arrow-top-right.js +6 -6
  637. package/dist/icons/arrow-top-right.js.map +1 -1
  638. package/dist/icons/arrow-up-circle.js +6 -6
  639. package/dist/icons/arrow-up-circle.js.map +1 -1
  640. package/dist/icons/arrow-up.js +6 -6
  641. package/dist/icons/arrow-up.js.map +1 -1
  642. package/dist/icons/audio-wave.js +6 -6
  643. package/dist/icons/audio-wave.js.map +1 -1
  644. package/dist/icons/backspace.js +6 -6
  645. package/dist/icons/backspace.js.map +1 -1
  646. package/dist/icons/backward.js +6 -6
  647. package/dist/icons/backward.js.map +1 -1
  648. package/dist/icons/bag.js +6 -6
  649. package/dist/icons/bag.js.map +1 -1
  650. package/dist/icons/battery-75.js +6 -6
  651. package/dist/icons/battery-75.js.map +1 -1
  652. package/dist/icons/battery-charging.js +6 -6
  653. package/dist/icons/battery-charging.js.map +1 -1
  654. package/dist/icons/battery-empty.js +6 -6
  655. package/dist/icons/battery-empty.js.map +1 -1
  656. package/dist/icons/battery-full.js +6 -6
  657. package/dist/icons/battery-full.js.map +1 -1
  658. package/dist/icons/battery-half.js +6 -6
  659. package/dist/icons/battery-half.js.map +1 -1
  660. package/dist/icons/battery-low.js +6 -6
  661. package/dist/icons/battery-low.js.map +1 -1
  662. package/dist/icons/bell-disabled.js +6 -6
  663. package/dist/icons/bell-disabled.js.map +1 -1
  664. package/dist/icons/bell-ringing.js +6 -6
  665. package/dist/icons/bell-ringing.js.map +1 -1
  666. package/dist/icons/bell-snooze.js +6 -6
  667. package/dist/icons/bell-snooze.js.map +1 -1
  668. package/dist/icons/bell.js +6 -6
  669. package/dist/icons/bell.js.map +1 -1
  670. package/dist/icons/bluetooth.js +6 -6
  671. package/dist/icons/bluetooth.js.map +1 -1
  672. package/dist/icons/book-closed.js +6 -6
  673. package/dist/icons/book-closed.js.map +1 -1
  674. package/dist/icons/book-text.js +6 -6
  675. package/dist/icons/book-text.js.map +1 -1
  676. package/dist/icons/book.js +6 -6
  677. package/dist/icons/book.js.map +1 -1
  678. package/dist/icons/bookmark-book.js +6 -6
  679. package/dist/icons/bookmark-book.js.map +1 -1
  680. package/dist/icons/bookmark.js +6 -6
  681. package/dist/icons/bookmark.js.map +1 -1
  682. package/dist/icons/box-add.js +6 -6
  683. package/dist/icons/box-add.js.map +1 -1
  684. package/dist/icons/box-download.js +6 -6
  685. package/dist/icons/box-download.js.map +1 -1
  686. package/dist/icons/box-open.js +6 -6
  687. package/dist/icons/box-open.js.map +1 -1
  688. package/dist/icons/box-remove.js +6 -6
  689. package/dist/icons/box-remove.js.map +1 -1
  690. package/dist/icons/box.js +6 -6
  691. package/dist/icons/box.js.map +1 -1
  692. package/dist/icons/boxes.js +6 -6
  693. package/dist/icons/boxes.js.map +1 -1
  694. package/dist/icons/branch.js +6 -6
  695. package/dist/icons/branch.js.map +1 -1
  696. package/dist/icons/briefcase.js +6 -6
  697. package/dist/icons/briefcase.js.map +1 -1
  698. package/dist/icons/browser-alt.js +6 -6
  699. package/dist/icons/browser-alt.js.map +1 -1
  700. package/dist/icons/browser.js +6 -6
  701. package/dist/icons/browser.js.map +1 -1
  702. package/dist/icons/button-add.js +6 -6
  703. package/dist/icons/button-add.js.map +1 -1
  704. package/dist/icons/button-minus.js +6 -6
  705. package/dist/icons/button-minus.js.map +1 -1
  706. package/dist/icons/calculator.js +6 -6
  707. package/dist/icons/calculator.js.map +1 -1
  708. package/dist/icons/calendar-add.js +6 -6
  709. package/dist/icons/calendar-add.js.map +1 -1
  710. package/dist/icons/calendar-date.js +6 -6
  711. package/dist/icons/calendar-date.js.map +1 -1
  712. package/dist/icons/calendar-day.js +6 -6
  713. package/dist/icons/calendar-day.js.map +1 -1
  714. package/dist/icons/calendar-days.js +6 -6
  715. package/dist/icons/calendar-days.js.map +1 -1
  716. package/dist/icons/calendar-last-day.js +6 -6
  717. package/dist/icons/calendar-last-day.js.map +1 -1
  718. package/dist/icons/calendar-month.js +6 -6
  719. package/dist/icons/calendar-month.js.map +1 -1
  720. package/dist/icons/calendar-move.js +6 -6
  721. package/dist/icons/calendar-move.js.map +1 -1
  722. package/dist/icons/calendar-remove.js +6 -6
  723. package/dist/icons/calendar-remove.js.map +1 -1
  724. package/dist/icons/calendar-split.js +6 -6
  725. package/dist/icons/calendar-split.js.map +1 -1
  726. package/dist/icons/calendar-week.js +6 -6
  727. package/dist/icons/calendar-week.js.map +1 -1
  728. package/dist/icons/calendar.js +6 -6
  729. package/dist/icons/calendar.js.map +1 -1
  730. package/dist/icons/camera-alt.js +6 -6
  731. package/dist/icons/camera-alt.js.map +1 -1
  732. package/dist/icons/camera-noflash-alt.js +6 -6
  733. package/dist/icons/camera-noflash-alt.js.map +1 -1
  734. package/dist/icons/camera-noflash.js +6 -6
  735. package/dist/icons/camera-noflash.js.map +1 -1
  736. package/dist/icons/camera.js +6 -6
  737. package/dist/icons/camera.js.map +1 -1
  738. package/dist/icons/capture.js +6 -6
  739. package/dist/icons/capture.js.map +1 -1
  740. package/dist/icons/card-timeline.js +6 -6
  741. package/dist/icons/card-timeline.js.map +1 -1
  742. package/dist/icons/card-view.js +6 -6
  743. package/dist/icons/card-view.js.map +1 -1
  744. package/dist/icons/carousel.js +6 -6
  745. package/dist/icons/carousel.js.map +1 -1
  746. package/dist/icons/cart.js +6 -6
  747. package/dist/icons/cart.js.map +1 -1
  748. package/dist/icons/cast.js +6 -6
  749. package/dist/icons/cast.js.map +1 -1
  750. package/dist/icons/chain.js +6 -6
  751. package/dist/icons/chain.js.map +1 -1
  752. package/dist/icons/chat-add.js +6 -6
  753. package/dist/icons/chat-add.js.map +1 -1
  754. package/dist/icons/check-circle-outside.js +6 -6
  755. package/dist/icons/check-circle-outside.js.map +1 -1
  756. package/dist/icons/check-circle.js +6 -6
  757. package/dist/icons/check-circle.js.map +1 -1
  758. package/dist/icons/check.js +6 -6
  759. package/dist/icons/check.js.map +1 -1
  760. package/dist/icons/checkbox-checked.js +6 -6
  761. package/dist/icons/checkbox-checked.js.map +1 -1
  762. package/dist/icons/checkbox-empty.js +6 -6
  763. package/dist/icons/checkbox-empty.js.map +1 -1
  764. package/dist/icons/chevron-close.js +6 -6
  765. package/dist/icons/chevron-close.js.map +1 -1
  766. package/dist/icons/chevron-down-circle.js +6 -6
  767. package/dist/icons/chevron-down-circle.js.map +1 -1
  768. package/dist/icons/chevron-down-double.js +6 -6
  769. package/dist/icons/chevron-down-double.js.map +1 -1
  770. package/dist/icons/chevron-down.js +6 -6
  771. package/dist/icons/chevron-down.js.map +1 -1
  772. package/dist/icons/chevron-left-circle.js +6 -6
  773. package/dist/icons/chevron-left-circle.js.map +1 -1
  774. package/dist/icons/chevron-left-double.js +6 -6
  775. package/dist/icons/chevron-left-double.js.map +1 -1
  776. package/dist/icons/chevron-left.js +6 -6
  777. package/dist/icons/chevron-left.js.map +1 -1
  778. package/dist/icons/chevron-open.js +6 -6
  779. package/dist/icons/chevron-open.js.map +1 -1
  780. package/dist/icons/chevron-right-circle.js +6 -6
  781. package/dist/icons/chevron-right-circle.js.map +1 -1
  782. package/dist/icons/chevron-right-double.js +6 -6
  783. package/dist/icons/chevron-right-double.js.map +1 -1
  784. package/dist/icons/chevron-right.js +6 -6
  785. package/dist/icons/chevron-right.js.map +1 -1
  786. package/dist/icons/chevron-up-circle.js +6 -6
  787. package/dist/icons/chevron-up-circle.js.map +1 -1
  788. package/dist/icons/chevron-up-double.js +6 -6
  789. package/dist/icons/chevron-up-double.js.map +1 -1
  790. package/dist/icons/chevron-up.js +6 -6
  791. package/dist/icons/chevron-up.js.map +1 -1
  792. package/dist/icons/circle-menu.js +6 -6
  793. package/dist/icons/circle-menu.js.map +1 -1
  794. package/dist/icons/circle-split.js +6 -6
  795. package/dist/icons/circle-split.js.map +1 -1
  796. package/dist/icons/circle.js +6 -6
  797. package/dist/icons/circle.js.map +1 -1
  798. package/dist/icons/clipboard-add.js +6 -6
  799. package/dist/icons/clipboard-add.js.map +1 -1
  800. package/dist/icons/clipboard-check.js +6 -6
  801. package/dist/icons/clipboard-check.js.map +1 -1
  802. package/dist/icons/clipboard-copy.js +6 -6
  803. package/dist/icons/clipboard-copy.js.map +1 -1
  804. package/dist/icons/clipboard-cross.js +6 -6
  805. package/dist/icons/clipboard-cross.js.map +1 -1
  806. package/dist/icons/clipboard-notes.js +6 -6
  807. package/dist/icons/clipboard-notes.js.map +1 -1
  808. package/dist/icons/clipboard-remove.js +6 -6
  809. package/dist/icons/clipboard-remove.js.map +1 -1
  810. package/dist/icons/clipboard.js +6 -6
  811. package/dist/icons/clipboard.js.map +1 -1
  812. package/dist/icons/clock.js +6 -6
  813. package/dist/icons/clock.js.map +1 -1
  814. package/dist/icons/close.js +6 -6
  815. package/dist/icons/close.js.map +1 -1
  816. package/dist/icons/cloud-disconnect.js +6 -6
  817. package/dist/icons/cloud-disconnect.js.map +1 -1
  818. package/dist/icons/cloud-download-alt.js +6 -6
  819. package/dist/icons/cloud-download-alt.js.map +1 -1
  820. package/dist/icons/cloud-download.js +6 -6
  821. package/dist/icons/cloud-download.js.map +1 -1
  822. package/dist/icons/cloud-upload-alt.js +6 -6
  823. package/dist/icons/cloud-upload-alt.js.map +1 -1
  824. package/dist/icons/cloud-upload.js +6 -6
  825. package/dist/icons/cloud-upload.js.map +1 -1
  826. package/dist/icons/cloud.js +6 -6
  827. package/dist/icons/cloud.js.map +1 -1
  828. package/dist/icons/code.js +6 -6
  829. package/dist/icons/code.js.map +1 -1
  830. package/dist/icons/coffee.js +6 -6
  831. package/dist/icons/coffee.js.map +1 -1
  832. package/dist/icons/coin.js +6 -6
  833. package/dist/icons/coin.js.map +1 -1
  834. package/dist/icons/coins.js +6 -6
  835. package/dist/icons/coins.js.map +1 -1
  836. package/dist/icons/compass.js +6 -6
  837. package/dist/icons/compass.js.map +1 -1
  838. package/dist/icons/component-add.js +6 -6
  839. package/dist/icons/component-add.js.map +1 -1
  840. package/dist/icons/contacts.js +6 -6
  841. package/dist/icons/contacts.js.map +1 -1
  842. package/dist/icons/contract.js +6 -6
  843. package/dist/icons/contract.js.map +1 -1
  844. package/dist/icons/create.js +6 -13
  845. package/dist/icons/create.js.map +1 -1
  846. package/dist/icons/credit-card.js +6 -6
  847. package/dist/icons/credit-card.js.map +1 -1
  848. package/dist/icons/crop.js +6 -6
  849. package/dist/icons/crop.js.map +1 -1
  850. package/dist/icons/cross-circle.js +6 -6
  851. package/dist/icons/cross-circle.js.map +1 -1
  852. package/dist/icons/cross.js +6 -6
  853. package/dist/icons/cross.js.map +1 -1
  854. package/dist/icons/crosshair.js +6 -6
  855. package/dist/icons/crosshair.js.map +1 -1
  856. package/dist/icons/cube.js +6 -6
  857. package/dist/icons/cube.js.map +1 -1
  858. package/dist/icons/cubes.js +6 -6
  859. package/dist/icons/cubes.js.map +1 -1
  860. package/dist/icons/cylinder.js +6 -6
  861. package/dist/icons/cylinder.js.map +1 -1
  862. package/dist/icons/database.js +6 -6
  863. package/dist/icons/database.js.map +1 -1
  864. package/dist/icons/diamond.js +6 -6
  865. package/dist/icons/diamond.js.map +1 -1
  866. package/dist/icons/directions.js +6 -6
  867. package/dist/icons/directions.js.map +1 -1
  868. package/dist/icons/disc.js +6 -6
  869. package/dist/icons/disc.js.map +1 -1
  870. package/dist/icons/display-alt.js +6 -6
  871. package/dist/icons/display-alt.js.map +1 -1
  872. package/dist/icons/display.js +6 -6
  873. package/dist/icons/display.js.map +1 -1
  874. package/dist/icons/document-justified.js +6 -6
  875. package/dist/icons/document-justified.js.map +1 -1
  876. package/dist/icons/document-list.js +6 -6
  877. package/dist/icons/document-list.js.map +1 -1
  878. package/dist/icons/document-stack.js +6 -6
  879. package/dist/icons/document-stack.js.map +1 -1
  880. package/dist/icons/document-words.js +6 -6
  881. package/dist/icons/document-words.js.map +1 -1
  882. package/dist/icons/document.js +6 -6
  883. package/dist/icons/document.js.map +1 -1
  884. package/dist/icons/door-alt.js +6 -6
  885. package/dist/icons/door-alt.js.map +1 -1
  886. package/dist/icons/door.js +6 -6
  887. package/dist/icons/door.js.map +1 -1
  888. package/dist/icons/download-alt.js +6 -6
  889. package/dist/icons/download-alt.js.map +1 -1
  890. package/dist/icons/download.js +6 -6
  891. package/dist/icons/download.js.map +1 -1
  892. package/dist/icons/downward.js +6 -6
  893. package/dist/icons/downward.js.map +1 -1
  894. package/dist/icons/drag-circle.js +6 -6
  895. package/dist/icons/drag-circle.js.map +1 -1
  896. package/dist/icons/drag-vertical.js +6 -6
  897. package/dist/icons/drag-vertical.js.map +1 -1
  898. package/dist/icons/drag.js +6 -6
  899. package/dist/icons/drag.js.map +1 -1
  900. package/dist/icons/duplicate-alt.js +6 -6
  901. package/dist/icons/duplicate-alt.js.map +1 -1
  902. package/dist/icons/duplicate.js +6 -6
  903. package/dist/icons/duplicate.js.map +1 -1
  904. package/dist/icons/enter-alt.js +6 -6
  905. package/dist/icons/enter-alt.js.map +1 -1
  906. package/dist/icons/enter.js +6 -6
  907. package/dist/icons/enter.js.map +1 -1
  908. package/dist/icons/episodes.js +6 -6
  909. package/dist/icons/episodes.js.map +1 -1
  910. package/dist/icons/exit-left.js +6 -6
  911. package/dist/icons/exit-left.js.map +1 -1
  912. package/dist/icons/exit-right.js +6 -6
  913. package/dist/icons/exit-right.js.map +1 -1
  914. package/dist/icons/expand-height.js +6 -6
  915. package/dist/icons/expand-height.js.map +1 -1
  916. package/dist/icons/expand-width.js +6 -6
  917. package/dist/icons/expand-width.js.map +1 -1
  918. package/dist/icons/expand.js +6 -6
  919. package/dist/icons/expand.js.map +1 -1
  920. package/dist/icons/external.js +6 -6
  921. package/dist/icons/external.js.map +1 -1
  922. package/dist/icons/eye-closed.js +6 -6
  923. package/dist/icons/eye-closed.js.map +1 -1
  924. package/dist/icons/eye-no.js +6 -6
  925. package/dist/icons/eye-no.js.map +1 -1
  926. package/dist/icons/eye.js +6 -6
  927. package/dist/icons/eye.js.map +1 -1
  928. package/dist/icons/face-delighted.js +6 -6
  929. package/dist/icons/face-delighted.js.map +1 -1
  930. package/dist/icons/face-happy.js +6 -6
  931. package/dist/icons/face-happy.js.map +1 -1
  932. package/dist/icons/face-neutral.js +6 -6
  933. package/dist/icons/face-neutral.js.map +1 -1
  934. package/dist/icons/face-sad.js +6 -6
  935. package/dist/icons/face-sad.js.map +1 -1
  936. package/dist/icons/file-download.js +6 -6
  937. package/dist/icons/file-download.js.map +1 -1
  938. package/dist/icons/file-upload.js +6 -6
  939. package/dist/icons/file-upload.js.map +1 -1
  940. package/dist/icons/files-history.js +6 -6
  941. package/dist/icons/files-history.js.map +1 -1
  942. package/dist/icons/files-multi.js +6 -6
  943. package/dist/icons/files-multi.js.map +1 -1
  944. package/dist/icons/files-stack.js +6 -6
  945. package/dist/icons/files-stack.js.map +1 -1
  946. package/dist/icons/film.js +6 -6
  947. package/dist/icons/film.js.map +1 -1
  948. package/dist/icons/filter-circle.js +6 -6
  949. package/dist/icons/filter-circle.js.map +1 -1
  950. package/dist/icons/filter-single.js +6 -6
  951. package/dist/icons/filter-single.js.map +1 -1
  952. package/dist/icons/filter.js +6 -6
  953. package/dist/icons/filter.js.map +1 -1
  954. package/dist/icons/filtering.js +6 -6
  955. package/dist/icons/filtering.js.map +1 -1
  956. package/dist/icons/fingerprint.js +6 -6
  957. package/dist/icons/fingerprint.js.map +1 -1
  958. package/dist/icons/flag.js +6 -6
  959. package/dist/icons/flag.js.map +1 -1
  960. package/dist/icons/flame-alt.js +6 -6
  961. package/dist/icons/flame-alt.js.map +1 -1
  962. package/dist/icons/flame.js +6 -11
  963. package/dist/icons/flame.js.map +1 -1
  964. package/dist/icons/flip-view.js +6 -6
  965. package/dist/icons/flip-view.js.map +1 -1
  966. package/dist/icons/floppy.js +6 -6
  967. package/dist/icons/floppy.js.map +1 -1
  968. package/dist/icons/folder-add.js +6 -6
  969. package/dist/icons/folder-add.js.map +1 -1
  970. package/dist/icons/folder-closed.js +6 -6
  971. package/dist/icons/folder-closed.js.map +1 -1
  972. package/dist/icons/folder-minus.js +6 -6
  973. package/dist/icons/folder-minus.js.map +1 -1
  974. package/dist/icons/folder-open.js +6 -6
  975. package/dist/icons/folder-open.js.map +1 -1
  976. package/dist/icons/fork-git.js +6 -6
  977. package/dist/icons/fork-git.js.map +1 -1
  978. package/dist/icons/forward.js +6 -6
  979. package/dist/icons/forward.js.map +1 -1
  980. package/dist/icons/frame.js +6 -6
  981. package/dist/icons/frame.js.map +1 -1
  982. package/dist/icons/fullscreen.js +6 -6
  983. package/dist/icons/fullscreen.js.map +1 -1
  984. package/dist/icons/funnel.js +6 -6
  985. package/dist/icons/funnel.js.map +1 -1
  986. package/dist/icons/gauge.js +6 -6
  987. package/dist/icons/gauge.js.map +1 -1
  988. package/dist/icons/gift.js +6 -6
  989. package/dist/icons/gift.js.map +1 -1
  990. package/dist/icons/globe.js +6 -6
  991. package/dist/icons/globe.js.map +1 -1
  992. package/dist/icons/gps.js +6 -6
  993. package/dist/icons/gps.js.map +1 -1
  994. package/dist/icons/grab.js +6 -6
  995. package/dist/icons/grab.js.map +1 -1
  996. package/dist/icons/graph-bar.js +6 -6
  997. package/dist/icons/graph-bar.js.map +1 -1
  998. package/dist/icons/graph-box.js +6 -6
  999. package/dist/icons/graph-box.js.map +1 -1
  1000. package/dist/icons/graph-increase.js +6 -6
  1001. package/dist/icons/graph-increase.js.map +1 -1
  1002. package/dist/icons/grid-circles-add.js +6 -6
  1003. package/dist/icons/grid-circles-add.js.map +1 -1
  1004. package/dist/icons/grid-circles.js +6 -6
  1005. package/dist/icons/grid-circles.js.map +1 -1
  1006. package/dist/icons/grid-small.js +6 -6
  1007. package/dist/icons/grid-small.js.map +1 -1
  1008. package/dist/icons/grid-squares-add.js +6 -6
  1009. package/dist/icons/grid-squares-add.js.map +1 -1
  1010. package/dist/icons/grid-squares.js +6 -6
  1011. package/dist/icons/grid-squares.js.map +1 -1
  1012. package/dist/icons/grid.js +6 -6
  1013. package/dist/icons/grid.js.map +1 -1
  1014. package/dist/icons/hand.js +6 -6
  1015. package/dist/icons/hand.js.map +1 -1
  1016. package/dist/icons/harddrive.js +6 -6
  1017. package/dist/icons/harddrive.js.map +1 -1
  1018. package/dist/icons/hash.js +6 -6
  1019. package/dist/icons/hash.js.map +1 -1
  1020. package/dist/icons/heart-rate.js +6 -6
  1021. package/dist/icons/heart-rate.js.map +1 -1
  1022. package/dist/icons/heart-remove.js +6 -6
  1023. package/dist/icons/heart-remove.js.map +1 -1
  1024. package/dist/icons/heart.js +6 -6
  1025. package/dist/icons/heart.js.map +1 -1
  1026. package/dist/icons/height.js +6 -6
  1027. package/dist/icons/height.js.map +1 -1
  1028. package/dist/icons/hierarchy.js +6 -6
  1029. package/dist/icons/hierarchy.js.map +1 -1
  1030. package/dist/icons/home-alt.js +6 -6
  1031. package/dist/icons/home-alt.js.map +1 -1
  1032. package/dist/icons/home-check.js +6 -6
  1033. package/dist/icons/home-check.js.map +1 -1
  1034. package/dist/icons/home-door.js +6 -6
  1035. package/dist/icons/home-door.js.map +1 -1
  1036. package/dist/icons/home.js +6 -6
  1037. package/dist/icons/home.js.map +1 -1
  1038. package/dist/icons/import.js +6 -6
  1039. package/dist/icons/import.js.map +1 -1
  1040. package/dist/icons/inbox-alt.js +6 -6
  1041. package/dist/icons/inbox-alt.js.map +1 -1
  1042. package/dist/icons/inbox.js +6 -6
  1043. package/dist/icons/inbox.js.map +1 -1
  1044. package/dist/icons/info-circle.js +6 -6
  1045. package/dist/icons/info-circle.js.map +1 -1
  1046. package/dist/icons/iphone-landscape.js +6 -6
  1047. package/dist/icons/iphone-landscape.js.map +1 -1
  1048. package/dist/icons/iphone-portrait.js +6 -6
  1049. package/dist/icons/iphone-portrait.js.map +1 -1
  1050. package/dist/icons/jump-backward.js +6 -6
  1051. package/dist/icons/jump-backward.js.map +1 -1
  1052. package/dist/icons/jump-forward.js +6 -6
  1053. package/dist/icons/jump-forward.js.map +1 -1
  1054. package/dist/icons/jump-left.js +6 -6
  1055. package/dist/icons/jump-left.js.map +1 -1
  1056. package/dist/icons/jump-right.js +6 -6
  1057. package/dist/icons/jump-right.js.map +1 -1
  1058. package/dist/icons/keyboard.js +6 -6
  1059. package/dist/icons/keyboard.js.map +1 -1
  1060. package/dist/icons/laptop.js +6 -6
  1061. package/dist/icons/laptop.js.map +1 -1
  1062. package/dist/icons/lightbulb-on.js +6 -6
  1063. package/dist/icons/lightbulb-on.js.map +1 -1
  1064. package/dist/icons/lightbulb.js +6 -6
  1065. package/dist/icons/lightbulb.js.map +1 -1
  1066. package/dist/icons/lightning-alt.js +6 -6
  1067. package/dist/icons/lightning-alt.js.map +1 -1
  1068. package/dist/icons/lightning.js +6 -6
  1069. package/dist/icons/lightning.js.map +1 -1
  1070. package/dist/icons/lineweight.js +6 -6
  1071. package/dist/icons/lineweight.js.map +1 -1
  1072. package/dist/icons/link-alt.js +6 -6
  1073. package/dist/icons/link-alt.js.map +1 -1
  1074. package/dist/icons/link-broken.js +6 -6
  1075. package/dist/icons/link-broken.js.map +1 -1
  1076. package/dist/icons/link-horizontal.js +6 -6
  1077. package/dist/icons/link-horizontal.js.map +1 -1
  1078. package/dist/icons/link-vertical.js +6 -6
  1079. package/dist/icons/link-vertical.js.map +1 -1
  1080. package/dist/icons/link.js +6 -6
  1081. package/dist/icons/link.js.map +1 -1
  1082. package/dist/icons/list-add.js +6 -6
  1083. package/dist/icons/list-add.js.map +1 -1
  1084. package/dist/icons/list-numbered.js +6 -6
  1085. package/dist/icons/list-numbered.js.map +1 -1
  1086. package/dist/icons/list.js +6 -6
  1087. package/dist/icons/list.js.map +1 -1
  1088. package/dist/icons/loader.js +6 -6
  1089. package/dist/icons/loader.js.map +1 -1
  1090. package/dist/icons/location.js +6 -6
  1091. package/dist/icons/location.js.map +1 -1
  1092. package/dist/icons/lock-open.js +6 -6
  1093. package/dist/icons/lock-open.js.map +1 -1
  1094. package/dist/icons/lock.js +6 -6
  1095. package/dist/icons/lock.js.map +1 -1
  1096. package/dist/icons/mail-add.js +6 -6
  1097. package/dist/icons/mail-add.js.map +1 -1
  1098. package/dist/icons/mail-delete.js +6 -6
  1099. package/dist/icons/mail-delete.js.map +1 -1
  1100. package/dist/icons/mail-minus.js +6 -6
  1101. package/dist/icons/mail-minus.js.map +1 -1
  1102. package/dist/icons/mail-new.js +6 -6
  1103. package/dist/icons/mail-new.js.map +1 -1
  1104. package/dist/icons/mail-open.js +6 -6
  1105. package/dist/icons/mail-open.js.map +1 -1
  1106. package/dist/icons/mail-remove.js +6 -6
  1107. package/dist/icons/mail-remove.js.map +1 -1
  1108. package/dist/icons/mail.js +6 -6
  1109. package/dist/icons/mail.js.map +1 -1
  1110. package/dist/icons/marquee.js +6 -6
  1111. package/dist/icons/marquee.js.map +1 -1
  1112. package/dist/icons/maximise.js +6 -6
  1113. package/dist/icons/maximise.js.map +1 -1
  1114. package/dist/icons/menu-hamburger.js +6 -6
  1115. package/dist/icons/menu-hamburger.js.map +1 -1
  1116. package/dist/icons/menu-horizontal.js +6 -6
  1117. package/dist/icons/menu-horizontal.js.map +1 -1
  1118. package/dist/icons/menu-vertical.js +6 -6
  1119. package/dist/icons/menu-vertical.js.map +1 -1
  1120. package/dist/icons/message-writing.js +6 -6
  1121. package/dist/icons/message-writing.js.map +1 -1
  1122. package/dist/icons/message.js +6 -6
  1123. package/dist/icons/message.js.map +1 -1
  1124. package/dist/icons/microphone-disabled.js +6 -6
  1125. package/dist/icons/microphone-disabled.js.map +1 -1
  1126. package/dist/icons/microphone-muted.js +6 -6
  1127. package/dist/icons/microphone-muted.js.map +1 -1
  1128. package/dist/icons/microphone.js +6 -6
  1129. package/dist/icons/microphone.js.map +1 -1
  1130. package/dist/icons/midpoint.js +6 -6
  1131. package/dist/icons/midpoint.js.map +1 -1
  1132. package/dist/icons/mini-player.js +6 -6
  1133. package/dist/icons/mini-player.js.map +1 -1
  1134. package/dist/icons/minimise.js +6 -6
  1135. package/dist/icons/minimise.js.map +1 -1
  1136. package/dist/icons/minus-circle.js +6 -6
  1137. package/dist/icons/minus-circle.js.map +1 -1
  1138. package/dist/icons/minus.js +6 -6
  1139. package/dist/icons/minus.js.map +1 -1
  1140. package/dist/icons/moon.js +6 -6
  1141. package/dist/icons/moon.js.map +1 -1
  1142. package/dist/icons/move.js +6 -6
  1143. package/dist/icons/move.js.map +1 -1
  1144. package/dist/icons/newspaper.js +6 -6
  1145. package/dist/icons/newspaper.js.map +1 -1
  1146. package/dist/icons/no-sign.js +6 -6
  1147. package/dist/icons/no-sign.js.map +1 -1
  1148. package/dist/icons/notebook.js +6 -6
  1149. package/dist/icons/notebook.js.map +1 -1
  1150. package/dist/icons/notification.js +6 -6
  1151. package/dist/icons/notification.js.map +1 -1
  1152. package/dist/icons/nut.js +6 -6
  1153. package/dist/icons/nut.js.map +1 -1
  1154. package/dist/icons/pages.js +6 -6
  1155. package/dist/icons/pages.js.map +1 -1
  1156. package/dist/icons/panel-bottom.js +6 -6
  1157. package/dist/icons/panel-bottom.js.map +1 -1
  1158. package/dist/icons/panel-center.js +6 -6
  1159. package/dist/icons/panel-center.js.map +1 -1
  1160. package/dist/icons/panel-left.js +6 -6
  1161. package/dist/icons/panel-left.js.map +1 -1
  1162. package/dist/icons/panel-right.js +6 -6
  1163. package/dist/icons/panel-right.js.map +1 -1
  1164. package/dist/icons/panel-sectioned.js +6 -6
  1165. package/dist/icons/panel-sectioned.js.map +1 -1
  1166. package/dist/icons/panel-top.js +6 -6
  1167. package/dist/icons/panel-top.js.map +1 -1
  1168. package/dist/icons/paper-folded.js +6 -6
  1169. package/dist/icons/paper-folded.js.map +1 -1
  1170. package/dist/icons/paper-plane-alt.js +6 -6
  1171. package/dist/icons/paper-plane-alt.js.map +1 -1
  1172. package/dist/icons/paper-plane.js +6 -6
  1173. package/dist/icons/paper-plane.js.map +1 -1
  1174. package/dist/icons/paper.js +6 -6
  1175. package/dist/icons/paper.js.map +1 -1
  1176. package/dist/icons/paperclip.js +6 -6
  1177. package/dist/icons/paperclip.js.map +1 -1
  1178. package/dist/icons/paragraph-center.js +6 -6
  1179. package/dist/icons/paragraph-center.js.map +1 -1
  1180. package/dist/icons/paragraph-end.js +6 -6
  1181. package/dist/icons/paragraph-end.js.map +1 -1
  1182. package/dist/icons/paragraph-left.js +6 -6
  1183. package/dist/icons/paragraph-left.js.map +1 -1
  1184. package/dist/icons/paragraph-right.js +6 -6
  1185. package/dist/icons/paragraph-right.js.map +1 -1
  1186. package/dist/icons/paragraph-start.js +6 -6
  1187. package/dist/icons/paragraph-start.js.map +1 -1
  1188. package/dist/icons/pen.js +6 -6
  1189. package/dist/icons/pen.js.map +1 -1
  1190. package/dist/icons/phone-landscape.js +6 -6
  1191. package/dist/icons/phone-landscape.js.map +1 -1
  1192. package/dist/icons/phone-portrait.js +6 -6
  1193. package/dist/icons/phone-portrait.js.map +1 -1
  1194. package/dist/icons/picture.js +6 -6
  1195. package/dist/icons/picture.js.map +1 -1
  1196. package/dist/icons/pie-half.js +6 -6
  1197. package/dist/icons/pie-half.js.map +1 -1
  1198. package/dist/icons/pie-quarter.js +6 -6
  1199. package/dist/icons/pie-quarter.js.map +1 -1
  1200. package/dist/icons/pie-third.js +6 -6
  1201. package/dist/icons/pie-third.js.map +1 -1
  1202. package/dist/icons/pill.js +6 -6
  1203. package/dist/icons/pill.js.map +1 -1
  1204. package/dist/icons/play-button.js +6 -6
  1205. package/dist/icons/play-button.js.map +1 -1
  1206. package/dist/icons/plus-circle.js +6 -6
  1207. package/dist/icons/plus-circle.js.map +1 -1
  1208. package/dist/icons/plus.js +6 -6
  1209. package/dist/icons/plus.js.map +1 -1
  1210. package/dist/icons/postcard.js +6 -6
  1211. package/dist/icons/postcard.js.map +1 -1
  1212. package/dist/icons/printer.js +6 -6
  1213. package/dist/icons/printer.js.map +1 -1
  1214. package/dist/icons/projector.js +6 -6
  1215. package/dist/icons/projector.js.map +1 -1
  1216. package/dist/icons/pull-down.js +6 -6
  1217. package/dist/icons/pull-down.js.map +1 -1
  1218. package/dist/icons/pull-left.js +6 -6
  1219. package/dist/icons/pull-left.js.map +1 -1
  1220. package/dist/icons/pull-right.js +6 -6
  1221. package/dist/icons/pull-right.js.map +1 -1
  1222. package/dist/icons/pull-up.js +6 -6
  1223. package/dist/icons/pull-up.js.map +1 -1
  1224. package/dist/icons/push-down.js +6 -6
  1225. package/dist/icons/push-down.js.map +1 -1
  1226. package/dist/icons/push-left.js +6 -6
  1227. package/dist/icons/push-left.js.map +1 -1
  1228. package/dist/icons/push-right.js +6 -6
  1229. package/dist/icons/push-right.js.map +1 -1
  1230. package/dist/icons/push-up.js +6 -6
  1231. package/dist/icons/push-up.js.map +1 -1
  1232. package/dist/icons/question-circle.js +6 -6
  1233. package/dist/icons/question-circle.js.map +1 -1
  1234. package/dist/icons/radio-on.js +6 -6
  1235. package/dist/icons/radio-on.js.map +1 -1
  1236. package/dist/icons/receipt.js +6 -6
  1237. package/dist/icons/receipt.js.map +1 -1
  1238. package/dist/icons/record.js +6 -6
  1239. package/dist/icons/record.js.map +1 -1
  1240. package/dist/icons/redo.js +6 -6
  1241. package/dist/icons/redo.js.map +1 -1
  1242. package/dist/icons/refresh-alt.js +6 -6
  1243. package/dist/icons/refresh-alt.js.map +1 -1
  1244. package/dist/icons/refresh.js +6 -6
  1245. package/dist/icons/refresh.js.map +1 -1
  1246. package/dist/icons/replicate-alt.js +6 -6
  1247. package/dist/icons/replicate-alt.js.map +1 -1
  1248. package/dist/icons/replicate.js +6 -6
  1249. package/dist/icons/replicate.js.map +1 -1
  1250. package/dist/icons/reset-alt.js +6 -6
  1251. package/dist/icons/reset-alt.js.map +1 -1
  1252. package/dist/icons/reset-forward.js +6 -6
  1253. package/dist/icons/reset-forward.js.map +1 -1
  1254. package/dist/icons/reset-hard.js +6 -6
  1255. package/dist/icons/reset-hard.js.map +1 -1
  1256. package/dist/icons/reset-temporary.js +6 -6
  1257. package/dist/icons/reset-temporary.js.map +1 -1
  1258. package/dist/icons/reset.js +6 -6
  1259. package/dist/icons/reset.js.map +1 -1
  1260. package/dist/icons/resolver.js +439 -438
  1261. package/dist/icons/resolver.js.map +1 -1
  1262. package/dist/icons/retweet.js +6 -6
  1263. package/dist/icons/retweet.js.map +1 -1
  1264. package/dist/icons/reuse.js +6 -6
  1265. package/dist/icons/reuse.js.map +1 -1
  1266. package/dist/icons/reverse-alt.js +6 -6
  1267. package/dist/icons/reverse-alt.js.map +1 -1
  1268. package/dist/icons/reverse.js +6 -6
  1269. package/dist/icons/reverse.js.map +1 -1
  1270. package/dist/icons/revert.js +6 -6
  1271. package/dist/icons/revert.js.map +1 -1
  1272. package/dist/icons/rocket.js +6 -6
  1273. package/dist/icons/rocket.js.map +1 -1
  1274. package/dist/icons/ruler.js +6 -6
  1275. package/dist/icons/ruler.js.map +1 -1
  1276. package/dist/icons/scale-contract.js +6 -6
  1277. package/dist/icons/scale-contract.js.map +1 -1
  1278. package/dist/icons/scale-extend.js +6 -6
  1279. package/dist/icons/scale-extend.js.map +1 -1
  1280. package/dist/icons/scale.js +6 -6
  1281. package/dist/icons/scale.js.map +1 -1
  1282. package/dist/icons/scalpel.js +6 -6
  1283. package/dist/icons/scalpel.js.map +1 -1
  1284. package/dist/icons/search.js +6 -6
  1285. package/dist/icons/search.js.map +1 -1
  1286. package/dist/icons/server.js +6 -6
  1287. package/dist/icons/server.js.map +1 -1
  1288. package/dist/icons/settings.js +6 -6
  1289. package/dist/icons/settings.js.map +1 -1
  1290. package/dist/icons/share-alt.js +6 -6
  1291. package/dist/icons/share-alt.js.map +1 -1
  1292. package/dist/icons/share.js +6 -6
  1293. package/dist/icons/share.js.map +1 -1
  1294. package/dist/icons/shuffle.js +6 -6
  1295. package/dist/icons/shuffle.js.map +1 -1
  1296. package/dist/icons/side-menu.js +6 -6
  1297. package/dist/icons/side-menu.js.map +1 -1
  1298. package/dist/icons/signal-full.js +6 -6
  1299. package/dist/icons/signal-full.js.map +1 -1
  1300. package/dist/icons/signal-low.js +6 -6
  1301. package/dist/icons/signal-low.js.map +1 -1
  1302. package/dist/icons/signal-medium.js +6 -6
  1303. package/dist/icons/signal-medium.js.map +1 -1
  1304. package/dist/icons/signal-none.js +6 -6
  1305. package/dist/icons/signal-none.js.map +1 -1
  1306. package/dist/icons/slash-backward.js +6 -6
  1307. package/dist/icons/slash-backward.js.map +1 -1
  1308. package/dist/icons/slash-forward.js +6 -6
  1309. package/dist/icons/slash-forward.js.map +1 -1
  1310. package/dist/icons/sliders.js +6 -6
  1311. package/dist/icons/sliders.js.map +1 -1
  1312. package/dist/icons/sort-alt.js +6 -6
  1313. package/dist/icons/sort-alt.js.map +1 -1
  1314. package/dist/icons/sort.js +6 -6
  1315. package/dist/icons/sort.js.map +1 -1
  1316. package/dist/icons/speaker.js +6 -6
  1317. package/dist/icons/speaker.js.map +1 -1
  1318. package/dist/icons/speech-bubble.js +6 -6
  1319. package/dist/icons/speech-bubble.js.map +1 -1
  1320. package/dist/icons/speech-typing.js +6 -6
  1321. package/dist/icons/speech-typing.js.map +1 -1
  1322. package/dist/icons/split-three.js +6 -6
  1323. package/dist/icons/split-three.js.map +1 -1
  1324. package/dist/icons/split.js +6 -6
  1325. package/dist/icons/split.js.map +1 -1
  1326. package/dist/icons/star.js +6 -6
  1327. package/dist/icons/star.js.map +1 -1
  1328. package/dist/icons/sun.js +6 -6
  1329. package/dist/icons/sun.js.map +1 -1
  1330. package/dist/icons/support.js +6 -6
  1331. package/dist/icons/support.js.map +1 -1
  1332. package/dist/icons/swap.js +6 -6
  1333. package/dist/icons/swap.js.map +1 -1
  1334. package/dist/icons/switch.js +6 -6
  1335. package/dist/icons/switch.js.map +1 -1
  1336. package/dist/icons/table-header.js +6 -6
  1337. package/dist/icons/table-header.js.map +1 -1
  1338. package/dist/icons/table.js +6 -6
  1339. package/dist/icons/table.js.map +1 -1
  1340. package/dist/icons/tag-milestone.js +6 -6
  1341. package/dist/icons/tag-milestone.js.map +1 -1
  1342. package/dist/icons/tag.js +6 -6
  1343. package/dist/icons/tag.js.map +1 -1
  1344. package/dist/icons/tags.js +6 -6
  1345. package/dist/icons/tags.js.map +1 -1
  1346. package/dist/icons/target.js +6 -6
  1347. package/dist/icons/target.js.map +1 -1
  1348. package/dist/icons/terminal.js +6 -6
  1349. package/dist/icons/terminal.js.map +1 -1
  1350. package/dist/icons/thread.js +6 -6
  1351. package/dist/icons/thread.js.map +1 -1
  1352. package/dist/icons/thumbs-down.js +6 -6
  1353. package/dist/icons/thumbs-down.js.map +1 -1
  1354. package/dist/icons/thumbs-up.js +6 -6
  1355. package/dist/icons/thumbs-up.js.map +1 -1
  1356. package/dist/icons/ticket.js +6 -6
  1357. package/dist/icons/ticket.js.map +1 -1
  1358. package/dist/icons/timeline.js +6 -6
  1359. package/dist/icons/timeline.js.map +1 -1
  1360. package/dist/icons/todo.js +6 -6
  1361. package/dist/icons/todo.js.map +1 -1
  1362. package/dist/icons/toggle.js +6 -6
  1363. package/dist/icons/toggle.js.map +1 -1
  1364. package/dist/icons/toggles.js +6 -6
  1365. package/dist/icons/toggles.js.map +1 -1
  1366. package/dist/icons/translate.js +6 -6
  1367. package/dist/icons/translate.js.map +1 -1
  1368. package/dist/icons/trash-alt.js +6 -6
  1369. package/dist/icons/trash-alt.js.map +1 -1
  1370. package/dist/icons/trash.js +6 -6
  1371. package/dist/icons/trash.js.map +1 -1
  1372. package/dist/icons/trophy.js +6 -6
  1373. package/dist/icons/trophy.js.map +1 -1
  1374. package/dist/icons/tv-mode.js +6 -6
  1375. package/dist/icons/tv-mode.js.map +1 -1
  1376. package/dist/icons/unarchive.js +6 -6
  1377. package/dist/icons/unarchive.js.map +1 -1
  1378. package/dist/icons/undo-history.js +6 -6
  1379. package/dist/icons/undo-history.js.map +1 -1
  1380. package/dist/icons/undo.js +6 -6
  1381. package/dist/icons/undo.js.map +1 -1
  1382. package/dist/icons/unlink-horizontal.js +6 -6
  1383. package/dist/icons/unlink-horizontal.js.map +1 -1
  1384. package/dist/icons/unlink-vertical.js +6 -6
  1385. package/dist/icons/unlink-vertical.js.map +1 -1
  1386. package/dist/icons/upload-alt.js +6 -6
  1387. package/dist/icons/upload-alt.js.map +1 -1
  1388. package/dist/icons/upload.js +6 -6
  1389. package/dist/icons/upload.js.map +1 -1
  1390. package/dist/icons/upward.js +6 -6
  1391. package/dist/icons/upward.js.map +1 -1
  1392. package/dist/icons/user-add.js +6 -6
  1393. package/dist/icons/user-add.js.map +1 -1
  1394. package/dist/icons/user-circle.js +6 -6
  1395. package/dist/icons/user-circle.js.map +1 -1
  1396. package/dist/icons/user-male-circle.js +6 -6
  1397. package/dist/icons/user-male-circle.js.map +1 -1
  1398. package/dist/icons/user-male.js +6 -6
  1399. package/dist/icons/user-male.js.map +1 -1
  1400. package/dist/icons/user-remove.js +6 -6
  1401. package/dist/icons/user-remove.js.map +1 -1
  1402. package/dist/icons/user.js +6 -6
  1403. package/dist/icons/user.js.map +1 -1
  1404. package/dist/icons/users.js +6 -6
  1405. package/dist/icons/users.js.map +1 -1
  1406. package/dist/icons/venn.js +6 -6
  1407. package/dist/icons/venn.js.map +1 -1
  1408. package/dist/icons/version.js +6 -6
  1409. package/dist/icons/version.js.map +1 -1
  1410. package/dist/icons/versions.js +6 -6
  1411. package/dist/icons/versions.js.map +1 -1
  1412. package/dist/icons/video.js +6 -6
  1413. package/dist/icons/video.js.map +1 -1
  1414. package/dist/icons/volume-0.js +6 -6
  1415. package/dist/icons/volume-0.js.map +1 -1
  1416. package/dist/icons/volume-add.js +6 -6
  1417. package/dist/icons/volume-add.js.map +1 -1
  1418. package/dist/icons/volume-disabled.js +6 -6
  1419. package/dist/icons/volume-disabled.js.map +1 -1
  1420. package/dist/icons/volume-high.js +6 -6
  1421. package/dist/icons/volume-high.js.map +1 -1
  1422. package/dist/icons/volume-low.js +6 -6
  1423. package/dist/icons/volume-low.js.map +1 -1
  1424. package/dist/icons/volume-minus.js +6 -6
  1425. package/dist/icons/volume-minus.js.map +1 -1
  1426. package/dist/icons/volume-muted.js +6 -6
  1427. package/dist/icons/volume-muted.js.map +1 -1
  1428. package/dist/icons/wallet.js +6 -6
  1429. package/dist/icons/wallet.js.map +1 -1
  1430. package/dist/icons/warning-circle.js +6 -6
  1431. package/dist/icons/warning-circle.js.map +1 -1
  1432. package/dist/icons/warning-hex.js +6 -6
  1433. package/dist/icons/warning-hex.js.map +1 -1
  1434. package/dist/icons/warning-triangle.js +6 -6
  1435. package/dist/icons/warning-triangle.js.map +1 -1
  1436. package/dist/icons/waves.js +6 -6
  1437. package/dist/icons/waves.js.map +1 -1
  1438. package/dist/icons/width.js +6 -6
  1439. package/dist/icons/width.js.map +1 -1
  1440. package/dist/icons/wifi-error.js +6 -6
  1441. package/dist/icons/wifi-error.js.map +1 -1
  1442. package/dist/icons/wifi-none.js +6 -6
  1443. package/dist/icons/wifi-none.js.map +1 -1
  1444. package/dist/icons/wifi.js +6 -6
  1445. package/dist/icons/wifi.js.map +1 -1
  1446. package/dist/icons/window-collapse-left.js +6 -6
  1447. package/dist/icons/window-collapse-left.js.map +1 -1
  1448. package/dist/icons/window-collapse-right.js +6 -6
  1449. package/dist/icons/window-collapse-right.js.map +1 -1
  1450. package/dist/icons/window-content.js +6 -6
  1451. package/dist/icons/window-content.js.map +1 -1
  1452. package/dist/icons/window.js +6 -6
  1453. package/dist/icons/window.js.map +1 -1
  1454. package/dist/icons/wrap-back.js +6 -6
  1455. package/dist/icons/wrap-back.js.map +1 -1
  1456. package/dist/icons/wrap-forward.js +6 -6
  1457. package/dist/icons/wrap-forward.js.map +1 -1
  1458. package/dist/icons/write.js +6 -6
  1459. package/dist/icons/write.js.map +1 -1
  1460. package/dist/icons/zoom-cancel.js +6 -6
  1461. package/dist/icons/zoom-cancel.js.map +1 -1
  1462. package/dist/icons/zoom-in.js +6 -6
  1463. package/dist/icons/zoom-in.js.map +1 -1
  1464. package/dist/icons/zoom-out.js +6 -6
  1465. package/dist/icons/zoom-out.js.map +1 -1
  1466. package/dist/icons/zoom-reset.js +6 -6
  1467. package/dist/icons/zoom-reset.js.map +1 -1
  1468. package/dist/index.css +2 -1
  1469. package/dist/index.js +56 -99
  1470. package/dist/shared/accordion-DdjSWHBH.js +359 -0
  1471. package/dist/shared/accordion-DdjSWHBH.js.map +1 -0
  1472. package/dist/shared/alert-CZE6Ht5G.js +234 -0
  1473. package/dist/shared/alert-CZE6Ht5G.js.map +1 -0
  1474. package/dist/shared/avatar-DMc878aU.js +232 -0
  1475. package/dist/shared/avatar-DMc878aU.js.map +1 -0
  1476. package/dist/shared/badge-Bc661ppN.js +142 -0
  1477. package/dist/shared/badge-Bc661ppN.js.map +1 -0
  1478. package/dist/shared/boolean-converter-saxBDLhA.js +13 -0
  1479. package/dist/shared/boolean-converter-saxBDLhA.js.map +1 -0
  1480. package/dist/shared/breadcrumb-BUUBrakn.js +459 -0
  1481. package/dist/shared/breadcrumb-BUUBrakn.js.map +1 -0
  1482. package/dist/shared/button-BBmxCyz-.js +186 -0
  1483. package/dist/shared/button-BBmxCyz-.js.map +1 -0
  1484. package/dist/shared/card-Cm0X0KrG.js +216 -0
  1485. package/dist/shared/card-Cm0X0KrG.js.map +1 -0
  1486. package/dist/shared/checkbox-DVNGkHj-.js +322 -0
  1487. package/dist/shared/checkbox-DVNGkHj-.js.map +1 -0
  1488. package/dist/shared/code-block-9yvHd_mF.js +542 -0
  1489. package/dist/shared/code-block-9yvHd_mF.js.map +1 -0
  1490. package/dist/shared/color-picker-C3-0c3_0.js +1423 -0
  1491. package/dist/shared/color-picker-C3-0c3_0.js.map +1 -0
  1492. package/dist/shared/combobox-fcD23BVq.js +557 -0
  1493. package/dist/shared/combobox-fcD23BVq.js.map +1 -0
  1494. package/dist/shared/container-g5tWN0VG.js +85 -0
  1495. package/dist/shared/container-g5tWN0VG.js.map +1 -0
  1496. package/dist/shared/date-picker-CBtZk2uN.js +719 -0
  1497. package/dist/shared/date-picker-CBtZk2uN.js.map +1 -0
  1498. package/dist/shared/debounce-BOon6N4f.js +23 -0
  1499. package/dist/shared/debounce-BOon6N4f.js.map +1 -0
  1500. package/dist/shared/decorate-BJVyhdRd.js +9 -0
  1501. package/dist/shared/divider-Cs0fV9wg.js +205 -0
  1502. package/dist/shared/divider-Cs0fV9wg.js.map +1 -0
  1503. package/dist/shared/drawer-B_BgT3xH.js +533 -0
  1504. package/dist/shared/drawer-B_BgT3xH.js.map +1 -0
  1505. package/dist/shared/dropdown-DXT3zeCU.js +316 -0
  1506. package/dist/shared/dropdown-DXT3zeCU.js.map +1 -0
  1507. package/dist/shared/field-message-CPXPLd6z.js +46 -0
  1508. package/dist/shared/field-message-CPXPLd6z.js.map +1 -0
  1509. package/dist/shared/fieldset-BPRt4nC5.js +155 -0
  1510. package/dist/shared/fieldset-BPRt4nC5.js.map +1 -0
  1511. package/dist/shared/file-upload-Cn6JAJ2C.js +608 -0
  1512. package/dist/shared/file-upload-Cn6JAJ2C.js.map +1 -0
  1513. package/dist/shared/form-control-CBEBNz12.js +120 -0
  1514. package/dist/shared/form-control-CBEBNz12.js.map +1 -0
  1515. package/dist/shared/grid-BDSEzri7.js +88 -0
  1516. package/dist/shared/grid-BDSEzri7.js.map +1 -0
  1517. package/dist/shared/heading-9DjHVERY.js +150 -0
  1518. package/dist/shared/heading-9DjHVERY.js.map +1 -0
  1519. package/dist/shared/icon-SU3ebQcn.js +176 -0
  1520. package/dist/shared/icon-SU3ebQcn.js.map +1 -0
  1521. package/dist/shared/icon-button-BQJ44FGd.js +230 -0
  1522. package/dist/shared/icon-button-BQJ44FGd.js.map +1 -0
  1523. package/dist/shared/input-nV6RvTZq.js +329 -0
  1524. package/dist/shared/input-nV6RvTZq.js.map +1 -0
  1525. package/dist/shared/link-BlDSXjMo.js +174 -0
  1526. package/dist/shared/link-BlDSXjMo.js.map +1 -0
  1527. package/dist/shared/memoize-CpXRWhgJ.js +14 -0
  1528. package/dist/shared/memoize-CpXRWhgJ.js.map +1 -0
  1529. package/dist/shared/menu-Cr_E847O.js +291 -0
  1530. package/dist/shared/menu-Cr_E847O.js.map +1 -0
  1531. package/dist/shared/modal-BxL4EDMm.js +299 -0
  1532. package/dist/shared/modal-BxL4EDMm.js.map +1 -0
  1533. package/dist/shared/multi-select-BuU5RFrR.js +631 -0
  1534. package/dist/shared/multi-select-BuU5RFrR.js.map +1 -0
  1535. package/dist/shared/notification--jDZt64l.js +385 -0
  1536. package/dist/shared/notification--jDZt64l.js.map +1 -0
  1537. package/dist/shared/notification-stack-iVG35x2L.js +127 -0
  1538. package/dist/shared/notification-stack-iVG35x2L.js.map +1 -0
  1539. package/dist/shared/number-input-CnHIbGjG.js +474 -0
  1540. package/dist/shared/number-input-CnHIbGjG.js.map +1 -0
  1541. package/dist/shared/pagination-sPm2C9Gl.js +295 -0
  1542. package/dist/shared/pagination-sPm2C9Gl.js.map +1 -0
  1543. package/dist/shared/popover-BBmiWhfm.js +560 -0
  1544. package/dist/shared/popover-BBmiWhfm.js.map +1 -0
  1545. package/dist/shared/progress-BPsiJ-Bl.js +198 -0
  1546. package/dist/shared/progress-BPsiJ-Bl.js.map +1 -0
  1547. package/dist/shared/radio-DnuSzORk.js +306 -0
  1548. package/dist/shared/radio-DnuSzORk.js.map +1 -0
  1549. package/dist/shared/radio-group-Cey9Yz5s.js +163 -0
  1550. package/dist/shared/radio-group-Cey9Yz5s.js.map +1 -0
  1551. package/dist/shared/select-Dz52figi.js +465 -0
  1552. package/dist/shared/select-Dz52figi.js.map +1 -0
  1553. package/dist/shared/skeleton-BY6tANXI.js +206 -0
  1554. package/dist/shared/skeleton-BY6tANXI.js.map +1 -0
  1555. package/dist/shared/slider-6Q8ChlAS.js +425 -0
  1556. package/dist/shared/slider-6Q8ChlAS.js.map +1 -0
  1557. package/dist/shared/spinner-Bg4fErQA.js +129 -0
  1558. package/dist/shared/spinner-Bg4fErQA.js.map +1 -0
  1559. package/dist/shared/stack-BZslXtDg.js +113 -0
  1560. package/dist/shared/stack-BZslXtDg.js.map +1 -0
  1561. package/dist/shared/stepper-B42LunTc.js +713 -0
  1562. package/dist/shared/stepper-B42LunTc.js.map +1 -0
  1563. package/dist/shared/switch-Df-8K3aW.js +348 -0
  1564. package/dist/shared/switch-Df-8K3aW.js.map +1 -0
  1565. package/dist/shared/table-D2qrSuqf.js +575 -0
  1566. package/dist/shared/table-D2qrSuqf.js.map +1 -0
  1567. package/dist/shared/tabs-CDf79ZXn.js +523 -0
  1568. package/dist/shared/tabs-CDf79ZXn.js.map +1 -0
  1569. package/dist/shared/tag-CHVTSqVW.js +292 -0
  1570. package/dist/shared/tag-CHVTSqVW.js.map +1 -0
  1571. package/dist/shared/text-DpWMArti.js +272 -0
  1572. package/dist/shared/text-DpWMArti.js.map +1 -0
  1573. package/dist/shared/textarea-Cba7xnZw.js +346 -0
  1574. package/dist/shared/textarea-Cba7xnZw.js.map +1 -0
  1575. package/dist/shared/time-picker-B_KTAdhx.js +423 -0
  1576. package/dist/shared/time-picker-B_KTAdhx.js.map +1 -0
  1577. package/dist/shared/tooltip-DUXEHFzC.js +212 -0
  1578. package/dist/shared/tooltip-DUXEHFzC.js.map +1 -0
  1579. package/dist/shared/tree-Dm3oQey1.js +450 -0
  1580. package/dist/shared/tree-Dm3oQey1.js.map +1 -0
  1581. package/dist/utilities/field-message.d.ts +42 -0
  1582. package/dist/utilities/field-message.d.ts.map +1 -0
  1583. package/dist/utilities/form-control.d.ts +87 -0
  1584. package/dist/utilities/form-control.d.ts.map +1 -0
  1585. package/dist/utilities/index.d.ts +2 -0
  1586. package/dist/utilities/index.d.ts.map +1 -1
  1587. package/package.json +35 -29
  1588. package/dist/components/accordion.js.map +0 -1
  1589. package/dist/components/alert.js.map +0 -1
  1590. package/dist/components/avatar.js.map +0 -1
  1591. package/dist/components/badge.js.map +0 -1
  1592. package/dist/components/breadcrumb.js.map +0 -1
  1593. package/dist/components/button.js.map +0 -1
  1594. package/dist/components/card.js.map +0 -1
  1595. package/dist/components/checkbox.js.map +0 -1
  1596. package/dist/components/code-block.js.map +0 -1
  1597. package/dist/components/color-picker.js.map +0 -1
  1598. package/dist/components/combobox.js.map +0 -1
  1599. package/dist/components/date-picker.js.map +0 -1
  1600. package/dist/components/divider.js.map +0 -1
  1601. package/dist/components/drawer.js.map +0 -1
  1602. package/dist/components/dropdown.js.map +0 -1
  1603. package/dist/components/file-upload.js.map +0 -1
  1604. package/dist/components/heading.js.map +0 -1
  1605. package/dist/components/icon.js.map +0 -1
  1606. package/dist/components/input.js.map +0 -1
  1607. package/dist/components/link.js.map +0 -1
  1608. package/dist/components/menu.js.map +0 -1
  1609. package/dist/components/modal.js.map +0 -1
  1610. package/dist/components/multi-select.js.map +0 -1
  1611. package/dist/components/notification.js.map +0 -1
  1612. package/dist/components/number-input.js.map +0 -1
  1613. package/dist/components/pagination.js.map +0 -1
  1614. package/dist/components/popover.js.map +0 -1
  1615. package/dist/components/progress.js.map +0 -1
  1616. package/dist/components/radio.js.map +0 -1
  1617. package/dist/components/select.js.map +0 -1
  1618. package/dist/components/skeleton.js.map +0 -1
  1619. package/dist/components/slider.js.map +0 -1
  1620. package/dist/components/spinner.js.map +0 -1
  1621. package/dist/components/stepper.js.map +0 -1
  1622. package/dist/components/switch.js.map +0 -1
  1623. package/dist/components/table.js.map +0 -1
  1624. package/dist/components/tabs.js.map +0 -1
  1625. package/dist/components/tag.js.map +0 -1
  1626. package/dist/components/text.js.map +0 -1
  1627. package/dist/components/textarea.js.map +0 -1
  1628. package/dist/components/time-picker.js.map +0 -1
  1629. package/dist/components/tooltip.js.map +0 -1
  1630. package/dist/components/tree.js.map +0 -1
  1631. package/dist/index.js.map +0 -1
  1632. package/dist/shared/boolean-converter-XDGfS9LC.js +0 -12
  1633. package/dist/shared/boolean-converter-XDGfS9LC.js.map +0 -1
  1634. package/dist/shared/debounce-BckY30Sf.js +0 -23
  1635. package/dist/shared/debounce-BckY30Sf.js.map +0 -1
  1636. package/dist/shared/memoize-DlOFy-92.js +0 -16
  1637. package/dist/shared/memoize-DlOFy-92.js.map +0 -1
  1638. package/dist/shared/slider-BNt5TITl.js +0 -484
  1639. package/dist/shared/slider-BNt5TITl.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-picker.js","sources":["../../source/components/color-picker/color-picker.style.ts","../../source/components/color-picker/color-picker.utils.ts","../../source/components/color-picker/color-picker.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Color Picker Styles\n *\n * INTENTIONAL HARDCODED VALUES (functional, not themed):\n * - Checkerboard pattern (#ccc) - standard transparency visualization\n * - Hue gradient (hsl spectrum) - must be actual hue colors\n * - White (#fff) handles - must contrast on any color background\n * - Black (#000) gradient - value gradient for color area\n * - Component dimensions (280px, 160px) - not semantic spacing\n *\n * All other values use design tokens.\n */\nexport const colorPickerStyles = css`\n /* ─────────────────────────────────────────────────────────────────────────────\n * Base Styles\n * ───────────────────────────────────────────────────────────────────────────── */\n\n :host {\n /* Component-specific custom properties */\n /* stylelint-disable blueprint/no-hardcoded-values */\n --color-picker-width: 350px;\n --color-picker-area-height: 160px;\n --color-picker-swatch-size: var(--bp-spacing-lg);\n --color-picker-handle-size: var(--bp-spacing-md);\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n display: inline-block;\n position: relative;\n font-family: var(--bp-font-family);\n }\n\n :host([disabled]) {\n opacity: var(--bp-opacity-disabled);\n pointer-events: none;\n }\n\n .color-picker {\n position: relative;\n }\n\n /* Screen reader only text */\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Trigger Button\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .trigger {\n display: inline-flex;\n align-items: center;\n gap: var(--bp-spacing-sm);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--bp-font-size-base);\n color: var(--bp-color-text);\n transition:\n border-color var(--bp-transition-fast),\n box-shadow var(--bp-transition-fast);\n }\n\n .trigger:hover:not(:disabled) {\n border-color: var(--bp-color-border-strong);\n }\n\n .trigger:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .trigger:disabled {\n cursor: not-allowed;\n }\n\n .trigger-swatch {\n display: block;\n width: var(--color-picker-swatch-size);\n height: var(--color-picker-swatch-size);\n border-radius: var(--bp-border-radius-sm);\n border: var(--bp-border-width) solid var(--bp-color-border);\n /* Checkerboard pattern for transparency - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background-image:\n linear-gradient(45deg, #ccc 25%, transparent 25%),\n linear-gradient(-45deg, #ccc 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #ccc 75%),\n linear-gradient(-45deg, transparent 75%, #ccc 75%);\n background-size: var(--bp-spacing-sm) var(--bp-spacing-sm);\n background-position:\n 0 0,\n 0 calc(var(--bp-spacing-sm) / 2),\n calc(var(--bp-spacing-sm) / 2) calc(var(--bp-spacing-sm) / -2),\n calc(var(--bp-spacing-sm) / -2) 0;\n /* stylelint-enable blueprint/no-hardcoded-values */\n position: relative;\n }\n\n .trigger-swatch::after {\n content: '';\n position: absolute;\n inset: 0;\n background: inherit;\n border-radius: inherit;\n }\n\n .trigger-label {\n color: var(--bp-color-text);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Picker Panel\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .picker {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: var(--bp-spacing-xs);\n width: var(--color-picker-width);\n background-color: var(--bp-color-surface-elevated);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-lg);\n box-shadow: var(--bp-shadow-lg);\n z-index: var(--bp-z-popover);\n animation: fadeIn var(--bp-transition-fast) ease-out;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(calc(var(--bp-spacing-xs) * -1));\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n :host([inline]) .picker {\n position: static;\n margin-top: 0;\n box-shadow: none;\n }\n\n .picker-body {\n padding: var(--bp-spacing-md);\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-md);\n }\n\n .picker-main {\n display: flex;\n gap: var(--bp-spacing-sm);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Color Area (Saturation/Value)\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .color-area {\n flex: 1;\n height: var(--color-picker-area-height);\n position: relative;\n border-radius: var(--bp-border-radius-sm);\n background: var(--hue-color);\n cursor: crosshair;\n touch-action: none;\n user-select: none;\n }\n\n /* White-to-transparent and transparent-to-black gradients - functional for color picking */\n /* stylelint-disable blueprint/no-hardcoded-values */\n .color-area::before {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(to right, #fff, transparent);\n border-radius: inherit;\n }\n\n .color-area::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(to bottom, transparent, #000);\n border-radius: inherit;\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n .color-area:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* Slider handles use white borders for visibility on any color */\n /* stylelint-disable blueprint/no-hardcoded-values -- white border for contrast on any hue */\n .color-area-handle {\n position: absolute;\n width: var(--color-picker-handle-size);\n height: var(--color-picker-handle-size);\n border: var(--bp-border-width) solid #fff;\n border-radius: 50%;\n box-shadow: var(--bp-shadow-sm);\n transform: translate(-50%, -50%);\n z-index: 1;\n pointer-events: none;\n }\n\n /* Expand touch target to 44×44px minimum (WCAG 2.2) */\n .color-area-handle::after {\n content: '';\n position: absolute;\n /* 44px touch target with 12px visual handle = 16px padding each side */\n inset: calc(var(--bp-spacing-lg) * -1);\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Hue Slider\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .hue-slider {\n width: var(--bp-spacing-lg);\n height: var(--color-picker-area-height);\n position: relative;\n border-radius: var(--bp-border-radius-sm);\n /* Full hue spectrum gradient - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background: linear-gradient(\n to bottom,\n hsl(0, 100%, 50%),\n hsl(60, 100%, 50%),\n hsl(120, 100%, 50%),\n hsl(180, 100%, 50%),\n hsl(240, 100%, 50%),\n hsl(300, 100%, 50%),\n hsl(360, 100%, 50%)\n );\n /* stylelint-enable blueprint/no-hardcoded-values */\n cursor: pointer;\n touch-action: none;\n user-select: none;\n }\n\n .hue-slider:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* stylelint-disable blueprint/no-hardcoded-values -- white border for contrast on hue spectrum */\n .hue-slider-handle {\n position: absolute;\n left: calc(var(--bp-spacing-xs) * -0.5);\n right: calc(var(--bp-spacing-xs) * -0.5);\n height: var(--bp-spacing-sm);\n border: var(--bp-border-width) solid #fff;\n border-radius: var(--bp-border-radius-sm);\n box-shadow: var(--bp-shadow-sm);\n transform: translateY(-50%);\n pointer-events: none;\n }\n\n /* Expand touch target to 44×44px minimum (WCAG 2.2) */\n .hue-slider-handle::after {\n content: '';\n position: absolute;\n /* 44px touch target with 8px visual handle = 18px padding top/bottom */\n top: calc(var(--bp-spacing-lg) * -2.25);\n bottom: calc(var(--bp-spacing-lg) * -2.25);\n left: 0;\n right: 0;\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Alpha Slider\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .alpha-slider {\n height: var(--bp-spacing-md);\n position: relative;\n border-radius: var(--bp-border-radius-sm);\n /* Checkerboard pattern for transparency - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background-image:\n linear-gradient(45deg, #ccc 25%, transparent 25%),\n linear-gradient(-45deg, #ccc 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #ccc 75%),\n linear-gradient(-45deg, transparent 75%, #ccc 75%);\n background-size: var(--bp-spacing-sm) var(--bp-spacing-sm);\n background-position:\n 0 0,\n 0 calc(var(--bp-spacing-sm) / 2),\n calc(var(--bp-spacing-sm) / 2) calc(var(--bp-spacing-sm) / -2),\n calc(var(--bp-spacing-sm) / -2) 0;\n /* stylelint-enable blueprint/no-hardcoded-values */\n cursor: pointer;\n touch-action: none;\n user-select: none;\n }\n\n .alpha-slider::before {\n content: '';\n position: absolute;\n inset: 0;\n background: var(--alpha-gradient);\n border-radius: inherit;\n }\n\n .alpha-slider:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* stylelint-disable blueprint/no-hardcoded-values -- white border for contrast on alpha gradient */\n .alpha-slider-handle {\n position: absolute;\n top: calc(var(--bp-spacing-xs) * -0.5);\n bottom: calc(var(--bp-spacing-xs) * -0.5);\n width: var(--bp-spacing-sm);\n border: var(--bp-border-width) solid #fff;\n border-radius: var(--bp-border-radius-sm);\n box-shadow: var(--bp-shadow-sm);\n transform: translateX(-50%);\n pointer-events: none;\n }\n\n /* Expand touch target to 44×44px minimum (WCAG 2.2) */\n .alpha-slider-handle::after {\n content: '';\n position: absolute;\n /* 44px touch target with 8px visual handle = 18px padding left/right */\n left: calc(var(--bp-spacing-lg) * -2.25);\n right: calc(var(--bp-spacing-lg) * -2.25);\n top: 0;\n bottom: 0;\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Controls Row\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .picker-controls {\n display: flex;\n align-items: flex-start;\n gap: var(--bp-spacing-sm);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Preview\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .preview {\n display: flex;\n flex-direction: column;\n width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n border-radius: var(--bp-border-radius-sm);\n overflow: hidden;\n border: var(--bp-border-width) solid var(--bp-color-border);\n /* Checkerboard pattern for transparency - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background-image:\n linear-gradient(45deg, #ccc 25%, transparent 25%),\n linear-gradient(-45deg, #ccc 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #ccc 75%),\n linear-gradient(-45deg, transparent 75%, #ccc 75%);\n background-size: var(--bp-spacing-sm) var(--bp-spacing-sm);\n background-position:\n 0 0,\n 0 calc(var(--bp-spacing-sm) / 2),\n calc(var(--bp-spacing-sm) / 2) calc(var(--bp-spacing-sm) / -2),\n calc(var(--bp-spacing-sm) / -2) 0;\n /* stylelint-enable blueprint/no-hardcoded-values */\n }\n\n .preview-swatch {\n flex: 1;\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Inputs\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .inputs-container {\n flex: 1;\n display: flex;\n align-items: flex-start;\n gap: var(--bp-spacing-xs);\n }\n\n .input-row {\n display: flex;\n gap: var(--bp-spacing-xs);\n flex: 1;\n }\n\n .input-group {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-2xs);\n }\n\n .color-input {\n width: 100%;\n padding: var(--bp-spacing-xs);\n font-family: var(--bp-font-family-mono);\n font-size: var(--bp-font-size-sm);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text);\n text-align: center;\n box-sizing: border-box;\n }\n\n .color-input:focus {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n border-color: var(--bp-color-primary);\n }\n\n .color-input::-webkit-inner-spin-button,\n .color-input::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n .color-input[type='number'] {\n -moz-appearance: textfield;\n }\n\n .hex-input {\n text-transform: uppercase;\n }\n\n .input-label {\n font-size: var(--bp-font-size-xs);\n color: var(--bp-color-text-muted);\n text-align: center;\n text-transform: uppercase;\n }\n\n .format-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n padding: 0;\n margin-top: var(--bp-spacing-2xs);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .format-toggle:hover:not(:disabled) {\n background-color: var(--bp-color-surface-subdued);\n color: var(--bp-color-text);\n }\n\n .format-toggle:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .format-toggle svg {\n width: var(--bp-spacing-md);\n height: var(--bp-spacing-md);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Eyedropper\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .eyedropper-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n padding: 0;\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .eyedropper-button:hover:not(:disabled) {\n background-color: var(--bp-color-surface-subdued);\n color: var(--bp-color-text);\n }\n\n .eyedropper-button:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .eyedropper-button:disabled {\n cursor: not-allowed;\n }\n\n .eyedropper-button svg {\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Swatches\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .swatches-container {\n display: flex;\n flex-wrap: wrap;\n gap: var(--bp-spacing-xs);\n padding-top: var(--bp-spacing-sm);\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n }\n\n .swatch {\n width: var(--color-picker-swatch-size);\n height: var(--color-picker-swatch-size);\n padding: 0;\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition: transform var(--bp-transition-fast);\n }\n\n .swatch:hover:not(:disabled) {\n transform: scale(1.1);\n }\n\n .swatch:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .swatch:disabled {\n cursor: not-allowed;\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Sizes\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .color-picker--sm .trigger {\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n font-size: var(--bp-font-size-sm);\n }\n\n .color-picker--sm .trigger-swatch {\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n }\n\n .color-picker--lg .trigger {\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n font-size: var(--bp-font-size-lg);\n }\n\n .color-picker--lg .trigger-swatch {\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Reduced Motion\n * ───────────────────────────────────────────────────────────────────────────── */\n\n @media (prefers-reduced-motion: reduce) {\n @keyframes fadeIn {\n from,\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .trigger,\n .format-toggle,\n .eyedropper-button,\n .swatch,\n .color-input {\n transition: none;\n }\n }\n`;\n","/**\n * Color Picker Utilities\n *\n * Pure functions for color parsing, conversion, and formatting.\n * Supports HEX, RGB, HSL formats with alpha channel.\n */\n\n/**\n * Internal HSV color representation\n */\nexport interface HSVColor {\n h: number; // 0-360\n s: number; // 0-100\n v: number; // 0-100\n a: number; // 0-1\n}\n\n/**\n * RGB color representation\n */\nexport interface RGBColor {\n r: number; // 0-255\n g: number; // 0-255\n b: number; // 0-255\n a: number; // 0-1\n}\n\n/**\n * HSL color representation\n */\nexport interface HSLColor {\n h: number; // 0-360\n s: number; // 0-100\n l: number; // 0-100\n a: number; // 0-1\n}\n\n/**\n * Color output format\n */\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl';\n\n/**\n * Parses a color string and returns HSV representation\n * @param value Color string in hex, rgb, or hsl format\n * @returns HSV color object or null if parsing fails\n */\nexport function parseColor(value: string): HSVColor | null {\n if (!value) return null;\n\n value = value.trim().toLowerCase();\n\n // HEX format\n if (value.startsWith('#')) {\n return parseHex(value);\n }\n\n // RGB/RGBA format\n if (value.startsWith('rgb')) {\n return parseRgb(value);\n }\n\n // HSL/HSLA format\n if (value.startsWith('hsl')) {\n return parseHsl(value);\n }\n\n return null;\n}\n\n/**\n * Parses a hex color string to HSV\n * @param hex Hex color string (with or without #, 3/4/6/8 digits)\n * @returns HSV color object or null if invalid\n */\nexport function parseHex(hex: string): HSVColor | null {\n hex = hex.replace('#', '');\n\n let r: number,\n g: number,\n b: number,\n a = 1;\n\n if (hex.length === 3) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n } else if (hex.length === 4) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n a = parseInt(hex[3] + hex[3], 16) / 255;\n } else if (hex.length === 6) {\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n } else if (hex.length === 8) {\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n a = parseInt(hex.substring(6, 8), 16) / 255;\n } else {\n return null;\n }\n\n if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) {\n return null;\n }\n\n return rgbToHsv({ r, g, b, a });\n}\n\n/**\n * Parses an rgb/rgba color string to HSV\n * @param rgb RGB color string (e.g., 'rgb(255, 87, 51)' or 'rgba(255, 87, 51, 0.5)')\n * @returns HSV color object or null if invalid\n */\nexport function parseRgb(rgb: string): HSVColor | null {\n const match = rgb.match(\n /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?\\s*\\)/\n );\n if (!match) return null;\n\n const r = parseInt(match[1], 10);\n const g = parseInt(match[2], 10);\n const b = parseInt(match[3], 10);\n const a = match[4] !== undefined ? parseFloat(match[4]) : 1;\n\n return rgbToHsv({ r, g, b, a });\n}\n\n/**\n * Parses an hsl/hsla color string to HSV\n * @param hsl HSL color string (e.g., 'hsl(14, 100%, 60%)' or 'hsla(14, 100%, 60%, 0.5)')\n * @returns HSV color object or null if invalid\n */\nexport function parseHsl(hsl: string): HSVColor | null {\n const match = hsl.match(\n /hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%?\\s*,\\s*([\\d.]+)%?\\s*(?:,\\s*([\\d.]+))?\\s*\\)/\n );\n if (!match) return null;\n\n const h = parseFloat(match[1]);\n const s = parseFloat(match[2]);\n const l = parseFloat(match[3]);\n const a = match[4] !== undefined ? parseFloat(match[4]) : 1;\n\n return hslToHsv({ h, s, l, a });\n}\n\n/**\n * Converts RGB color to HSV color space\n * @param rgb RGB color object with r, g, b (0-255) and a (0-1)\n * @returns HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n */\nexport function rgbToHsv(rgb: RGBColor): HSVColor {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n\n let h = 0;\n const s = max === 0 ? 0 : (delta / max) * 100;\n const v = max * 100;\n\n if (delta !== 0) {\n if (max === r) {\n h = 60 * (((g - b) / delta) % 6);\n } else if (max === g) {\n h = 60 * ((b - r) / delta + 2);\n } else {\n h = 60 * ((r - g) / delta + 4);\n }\n }\n\n if (h < 0) h += 360;\n\n return { h, s, v, a: rgb.a };\n}\n\n/**\n * Converts HSV color to RGB color space\n * @param hsv HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n * @returns RGB color object with r, g, b (0-255) and a (0-1)\n */\nexport function hsvToRgb(hsv: HSVColor): RGBColor {\n const h = hsv.h;\n const s = hsv.s / 100;\n const v = hsv.v / 100;\n\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n\n let r = 0,\n g = 0,\n b = 0;\n\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n } else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n } else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n } else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n } else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n } else {\n r = c;\n g = 0;\n b = x;\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n a: hsv.a,\n };\n}\n\n/**\n * Converts HSL color to HSV color space\n * @param hsl HSL color object with h (0-360), s (0-100), l (0-100), a (0-1)\n * @returns HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n */\nexport function hslToHsv(hsl: HSLColor): HSVColor {\n const h = hsl.h;\n const s = hsl.s / 100;\n const l = hsl.l / 100;\n\n const v = l + s * Math.min(l, 1 - l);\n const sv = v === 0 ? 0 : 2 * (1 - l / v);\n\n return { h, s: sv * 100, v: v * 100, a: hsl.a };\n}\n\n/**\n * Converts HSV color to HSL color space\n * @param hsv HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n * @returns HSL color object with h (0-360), s (0-100), l (0-100), a (0-1)\n */\nexport function hsvToHsl(hsv: HSVColor): HSLColor {\n const h = hsv.h;\n const s = hsv.s / 100;\n const v = hsv.v / 100;\n\n const l = v * (1 - s / 2);\n const sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n\n return { h, s: sl * 100, l: l * 100, a: hsv.a };\n}\n\n/**\n * Rounds alpha value to 2 decimal places\n * @param a Alpha value (0-1)\n * @returns Rounded alpha value\n */\nexport function roundAlpha(a: number): number {\n return Math.round(a * 100) / 100;\n}\n\n/**\n * Formats an HSV color to the specified output format\n * @param hsv HSV color object\n * @param format Output format (hex, rgb, or hsl)\n * @param includeAlpha Whether to include alpha channel in output\n * @returns Formatted color string\n */\nexport function formatColorOutput(\n hsv: HSVColor,\n format: ColorFormat,\n includeAlpha: boolean\n): string {\n const rgb = hsvToRgb(hsv);\n const hsl = hsvToHsl(hsv);\n\n switch (format) {\n case 'rgb':\n if (includeAlpha && hsv.a < 1) {\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${roundAlpha(hsv.a)})`;\n }\n return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\n\n case 'hsl':\n if (includeAlpha && hsv.a < 1) {\n return `hsla(${Math.round(hsl.h)}, ${Math.round(hsl.s)}%, ${Math.round(hsl.l)}%, ${roundAlpha(hsv.a)})`;\n }\n return `hsl(${Math.round(hsl.h)}, ${Math.round(hsl.s)}%, ${Math.round(hsl.l)}%)`;\n\n case 'hex':\n default: {\n const hexR = rgb.r.toString(16).padStart(2, '0');\n const hexG = rgb.g.toString(16).padStart(2, '0');\n const hexB = rgb.b.toString(16).padStart(2, '0');\n if (includeAlpha && hsv.a < 1) {\n const hexA = Math.round(hsv.a * 255)\n .toString(16)\n .padStart(2, '0');\n return `#${hexR}${hexG}${hexB}${hexA}`;\n }\n return `#${hexR}${hexG}${hexB}`;\n }\n }\n}\n","import { LitElement, html, nothing, PropertyValues } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { colorPickerStyles } from './color-picker.style.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\nimport {\n type ColorFormat,\n type HSVColor,\n parseColor,\n hsvToRgb,\n hsvToHsl,\n formatColorOutput,\n} from './color-picker.utils.js';\n\n// Browser globals: PointerEvent and EyeDropper are available in modern browsers\n\n/**\n * Color picker size\n */\nexport type ColorPickerSize = 'sm' | 'md' | 'lg';\n\n/**\n * A color picker component that provides a consistent, accessible, and feature-rich\n * color selection experience. Supports HEX, RGB, and HSL formats with optional alpha channel.\n *\n * @element bp-color-picker\n *\n * @slot trigger - Custom trigger button content\n * @slot swatches - Custom swatch elements\n * @slot footer - Additional content below picker\n *\n * @csspart trigger - The popover trigger button\n * @csspart popover - The popover container\n * @csspart color-area - The 2D saturation/value gradient\n * @csspart hue-slider - The hue selection slider\n * @csspart alpha-slider - The alpha selection slider\n * @csspart preview - The color preview swatch\n * @csspart input - Text input fields\n * @csspart swatches - Swatches container\n * @csspart swatch - Individual swatch items\n *\n * @fires bp-change - Fired when value changes (on blur/confirm)\n * @fires bp-input - Fired on every input (live updates)\n * @fires bp-open - Popover opened\n * @fires bp-close - Popover closed\n */\n@customElement('bp-color-picker')\nexport class BpColorPicker extends LitElement {\n static styles = [colorPickerStyles];\n\n /** Current color value */\n @property({ type: String }) declare value: string;\n\n /** Output format for value */\n @property({ type: String }) declare format: ColorFormat;\n\n /** Enable alpha channel */\n @property({ converter: booleanConverter, reflect: true })\n declare alpha: boolean;\n\n /** Predefined swatch colors */\n @property({ type: Array }) declare swatches: string[];\n\n /** Render inline instead of popover */\n @property({ type: Boolean }) declare inline: boolean;\n\n /** Disable all interactions */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n /** Show value but prevent editing */\n @property({ type: Boolean, reflect: true }) declare readonly: boolean;\n\n /** Component size */\n @property({ type: String, reflect: true }) declare size: ColorPickerSize;\n\n /** Accessible label */\n @property({ type: String }) declare label: string;\n\n /** Form field name */\n @property({ type: String }) declare name: string;\n\n /** Placeholder for trigger */\n @property({ type: String }) declare placeholder: string;\n\n /** Whether the popover is open */\n @state() private _open = false;\n\n /** Internal HSV color state */\n @state() private _hsv: HSVColor = { h: 0, s: 0, v: 0, a: 1 };\n\n /** Original color when popover opened */\n @state() private _originalValue = '';\n\n /** Whether eyedropper is supported */\n @state() private _eyedropperSupported = false;\n\n /** Current input mode for format toggle */\n @state() private _inputMode: ColorFormat = 'hex';\n\n /** HEX input value for controlled input */\n @state() private _hexInputValue = '';\n\n /** Whether eyedropper is currently active */\n @state() private _isPickingColor = false;\n\n @query('.color-area') private _colorArea!: HTMLElement;\n @query('.hue-slider') private _hueSlider!: HTMLElement;\n @query('.alpha-slider') private _alphaSlider!: HTMLElement;\n\n private _isDraggingArea = false;\n private _isDraggingHue = false;\n private _isDraggingAlpha = false;\n\n constructor() {\n super();\n this.value = '#000000';\n this.format = 'hex';\n this.alpha = true;\n this.swatches = [];\n this.inline = false;\n this.disabled = false;\n this.readonly = false;\n this.size = 'md';\n this.label = '';\n this.name = '';\n this.placeholder = '';\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n // Check for EyeDropper API support\n this._eyedropperSupported = 'EyeDropper' in window;\n this._parseValue(this.value);\n this._hexInputValue = this._formatOutput('hex');\n this._inputMode = this.format;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._removeGlobalListeners();\n }\n\n protected willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('value') && !this._isDragging()) {\n this._parseValue(this.value);\n this._hexInputValue = this._formatOutput('hex');\n }\n if (changedProperties.has('format')) {\n this._inputMode = this.format;\n }\n }\n\n private _isDragging(): boolean {\n return this._isDraggingArea || this._isDraggingHue || this._isDraggingAlpha;\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Color Parsing & Conversion\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Parses a color value string and updates internal HSV state\n * @param value Color string in hex, rgb, or hsl format\n */\n private _parseValue(value: string): void {\n const parsed = parseColor(value);\n if (parsed) {\n this._hsv = parsed;\n }\n }\n\n /**\n * Formats the current HSV color to the specified output format\n * @param format Output format (hex, rgb, or hsl), defaults to this.format\n * @returns Formatted color string\n */\n private _formatOutput(format: ColorFormat = this.format): string {\n return formatColorOutput(this._hsv, format, this.alpha);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Event Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles click events on the trigger button\n * Toggles the picker popover open/closed state\n */\n private _handleTriggerClick(): void {\n if (this.disabled || this.readonly) return;\n this._toggleOpen();\n }\n\n /**\n * Handles keyboard events on the trigger button\n * Opens picker on Enter or Space key\n * @param event Keyboard event\n */\n private _handleTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._toggleOpen();\n }\n }\n\n /**\n * Toggles the picker popover between open and closed states\n * Saves original value when opening and emits bp-open/bp-close events\n */\n private _toggleOpen(): void {\n if (this._open) {\n this._close();\n } else {\n this._open = true;\n this._originalValue = this.value;\n this.dispatchEvent(\n new CustomEvent('bp-open', { bubbles: true, composed: true })\n );\n this._addGlobalListeners();\n }\n }\n\n /**\n * Closes the picker popover\n * Removes global event listeners and emits bp-close event\n */\n private _close(): void {\n this._open = false;\n this._removeGlobalListeners();\n this.dispatchEvent(\n new CustomEvent('bp-close', { bubbles: true, composed: true })\n );\n }\n\n private _handleOutsideClick = (event: MouseEvent): void => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n this._close();\n }\n };\n\n private _handleEscapeKey = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n // Restore original value\n this.value = this._originalValue;\n this._parseValue(this._originalValue);\n this._hexInputValue = this._formatOutput('hex');\n this._close();\n }\n };\n\n /**\n * Adds global document event listeners for outside clicks and escape key\n * Used when picker popover is open\n */\n private _addGlobalListeners(): void {\n document.addEventListener('click', this._handleOutsideClick);\n document.addEventListener('keydown', this._handleEscapeKey);\n }\n\n /**\n * Removes global document event listeners\n * Called when picker popover is closed\n */\n private _removeGlobalListeners(): void {\n document.removeEventListener('click', this._handleOutsideClick);\n document.removeEventListener('keydown', this._handleEscapeKey);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Color Area Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles pointer down events on the color area\n * Starts saturation/value drag interaction\n * @param event Pointer event\n */\n private _handleColorAreaPointerDown(event: PointerEvent): void {\n if (this.disabled || this.readonly) return;\n event.preventDefault();\n this._isDraggingArea = true;\n this._colorArea.setPointerCapture(event.pointerId);\n this._updateColorFromPointer(event);\n }\n\n /**\n * Handles pointer move events on the color area during drag\n * Updates color based on pointer position\n * @param event Pointer event\n */\n private _handleColorAreaPointerMove(event: PointerEvent): void {\n if (!this._isDraggingArea) return;\n this._updateColorFromPointer(event);\n }\n\n /**\n * Handles pointer up events on the color area\n * Ends drag interaction and emits change event\n * @param event Pointer event\n */\n private _handleColorAreaPointerUp(event: PointerEvent): void {\n if (!this._isDraggingArea) return;\n this._isDraggingArea = false;\n this._colorArea.releasePointerCapture(event.pointerId);\n this._emitChange();\n }\n\n /**\n * Updates color saturation and value based on pointer position in color area\n * @param event Pointer event with clientX/clientY coordinates\n */\n private _updateColorFromPointer(event: PointerEvent): void {\n const rect = this._colorArea.getBoundingClientRect();\n const x = Math.max(0, Math.min(event.clientX - rect.left, rect.width));\n const y = Math.max(0, Math.min(event.clientY - rect.top, rect.height));\n\n this._hsv = {\n ...this._hsv,\n s: (x / rect.width) * 100,\n v: 100 - (y / rect.height) * 100,\n };\n\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles keyboard navigation on the color area\n * Arrow keys adjust saturation/value, Shift increases step size\n * @param event Keyboard event\n */\n private _handleColorAreaKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n\n const step = event.shiftKey ? 10 : 1;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowRight':\n this._hsv = { ...this._hsv, s: Math.min(100, this._hsv.s + step) };\n handled = true;\n break;\n case 'ArrowLeft':\n this._hsv = { ...this._hsv, s: Math.max(0, this._hsv.s - step) };\n handled = true;\n break;\n case 'ArrowUp':\n this._hsv = { ...this._hsv, v: Math.min(100, this._hsv.v + step) };\n handled = true;\n break;\n case 'ArrowDown':\n this._hsv = { ...this._hsv, v: Math.max(0, this._hsv.v - step) };\n handled = true;\n break;\n case 'Home':\n this._hsv = { ...this._hsv, s: 0 };\n handled = true;\n break;\n case 'End':\n this._hsv = { ...this._hsv, s: 100 };\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Hue Slider Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles pointer down events on the hue slider\n * Starts hue drag interaction\n * @param event Pointer event\n */\n private _handleHuePointerDown(event: PointerEvent): void {\n if (this.disabled || this.readonly) return;\n event.preventDefault();\n this._isDraggingHue = true;\n this._hueSlider.setPointerCapture(event.pointerId);\n this._updateHueFromPointer(event);\n }\n\n /**\n * Handles pointer move events on the hue slider during drag\n * Updates hue based on pointer position\n * @param event Pointer event\n */\n private _handleHuePointerMove(event: PointerEvent): void {\n if (!this._isDraggingHue) return;\n this._updateHueFromPointer(event);\n }\n\n /**\n * Handles pointer up events on the hue slider\n * Ends drag interaction and emits change event\n * @param event Pointer event\n */\n private _handleHuePointerUp(event: PointerEvent): void {\n if (!this._isDraggingHue) return;\n this._isDraggingHue = false;\n this._hueSlider.releasePointerCapture(event.pointerId);\n this._emitChange();\n }\n\n /**\n * Updates hue based on pointer position in hue slider\n * @param event Pointer event with clientY coordinate\n */\n private _updateHueFromPointer(event: PointerEvent): void {\n const rect = this._hueSlider.getBoundingClientRect();\n const y = Math.max(0, Math.min(event.clientY - rect.top, rect.height));\n const hue = (y / rect.height) * 360;\n\n this._hsv = { ...this._hsv, h: hue };\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles keyboard navigation on the hue slider\n * Arrow keys adjust hue, Shift increases step size\n * @param event Keyboard event\n */\n private _handleHueKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n\n const step = event.shiftKey ? 10 : 1;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n this._hsv = { ...this._hsv, h: (this._hsv.h + step) % 360 };\n handled = true;\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n this._hsv = { ...this._hsv, h: (this._hsv.h - step + 360) % 360 };\n handled = true;\n break;\n case 'Home':\n this._hsv = { ...this._hsv, h: 0 };\n handled = true;\n break;\n case 'End':\n this._hsv = { ...this._hsv, h: 359 };\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Alpha Slider Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles pointer down events on the alpha slider\n * Starts alpha drag interaction\n * @param event Pointer event\n */\n private _handleAlphaPointerDown(event: PointerEvent): void {\n if (this.disabled || this.readonly) return;\n event.preventDefault();\n this._isDraggingAlpha = true;\n this._alphaSlider.setPointerCapture(event.pointerId);\n this._updateAlphaFromPointer(event);\n }\n\n /**\n * Handles pointer move events on the alpha slider during drag\n * Updates alpha based on pointer position\n * @param event Pointer event\n */\n private _handleAlphaPointerMove(event: PointerEvent): void {\n if (!this._isDraggingAlpha) return;\n this._updateAlphaFromPointer(event);\n }\n\n /**\n * Handles pointer up events on the alpha slider\n * Ends drag interaction and emits change event\n * @param event Pointer event\n */\n private _handleAlphaPointerUp(event: PointerEvent): void {\n if (!this._isDraggingAlpha) return;\n this._isDraggingAlpha = false;\n this._alphaSlider.releasePointerCapture(event.pointerId);\n this._emitChange();\n }\n\n /**\n * Updates alpha based on pointer position in alpha slider\n * @param event Pointer event with clientX coordinate\n */\n private _updateAlphaFromPointer(event: PointerEvent): void {\n const rect = this._alphaSlider.getBoundingClientRect();\n const x = Math.max(0, Math.min(event.clientX - rect.left, rect.width));\n const alpha = x / rect.width;\n\n this._hsv = { ...this._hsv, a: alpha };\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles keyboard navigation on the alpha slider\n * Arrow keys adjust alpha, Shift increases step size\n * @param event Keyboard event\n */\n private _handleAlphaKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n\n const step = event.shiftKey ? 0.1 : 0.01;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n this._hsv = { ...this._hsv, a: Math.min(1, this._hsv.a + step) };\n handled = true;\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n this._hsv = { ...this._hsv, a: Math.max(0, this._hsv.a - step) };\n handled = true;\n break;\n case 'Home':\n this._hsv = { ...this._hsv, a: 0 };\n handled = true;\n break;\n case 'End':\n this._hsv = { ...this._hsv, a: 1 };\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Input Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles input events on the hex input field\n * Updates controlled input value\n * @param event Input event\n */\n private _handleHexInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this._hexInputValue = input.value;\n }\n\n /**\n * Handles change events on the hex input field\n * Parses and applies hex color value, adds # prefix if missing\n * @param event Change event\n */\n private _handleHexChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n let value = input.value.trim();\n\n // Add # if missing\n if (value && !value.startsWith('#')) {\n value = '#' + value;\n }\n\n const parsed = parseColor(value);\n if (parsed) {\n this._hsv = parsed;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n } else {\n // Reset to current value if invalid\n this._hexInputValue = this._formatOutput('hex');\n }\n }\n\n /**\n * Handles input events on RGB channel inputs\n * Updates color based on red, green, or blue channel value\n * @param channel RGB channel to update ('r', 'g', or 'b')\n * @param event Input event\n */\n private _handleRgbInput(channel: 'r' | 'g' | 'b', event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = Math.max(0, Math.min(255, parseInt(input.value, 10) || 0));\n\n const rgb = hsvToRgb(this._hsv);\n rgb[channel] = value;\n this._hsv = parseColor(`rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${rgb.a})`)!;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles change events on RGB inputs\n * Emits bp-change event\n */\n private _handleRgbChange(): void {\n this._emitChange();\n }\n\n /**\n * Handles input events on HSL channel inputs\n * Updates color based on hue, saturation, or lightness value\n * @param channel HSL channel to update ('h', 's', or 'l')\n * @param event Input event\n */\n private _handleHslInput(channel: 'h' | 's' | 'l', event: Event): void {\n const input = event.target as HTMLInputElement;\n const hsl = hsvToHsl(this._hsv);\n\n if (channel === 'h') {\n hsl.h = Math.max(0, Math.min(360, parseInt(input.value, 10) || 0));\n } else {\n hsl[channel] = Math.max(0, Math.min(100, parseInt(input.value, 10) || 0));\n }\n\n this._hsv = parseColor(`hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${hsl.a})`)!;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles change events on HSL inputs\n * Emits bp-change event\n */\n private _handleHslChange(): void {\n this._emitChange();\n }\n\n /**\n * Handles input events on the alpha percentage input\n * Updates alpha channel (0-100%)\n * @param event Input event\n */\n private _handleAlphaInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = Math.max(0, Math.min(100, parseInt(input.value, 10) || 0));\n this._hsv = { ...this._hsv, a: value / 100 };\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles change events on alpha input\n * Emits bp-change event\n */\n private _handleAlphaInputChange(): void {\n this._emitChange();\n }\n\n /**\n * Handles format toggle button click\n * Cycles through hex → rgb → hsl input modes\n */\n private _handleFormatToggle(): void {\n const formats: ColorFormat[] = ['hex', 'rgb', 'hsl'];\n const currentIndex = formats.indexOf(this._inputMode);\n this._inputMode = formats[(currentIndex + 1) % formats.length];\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Swatch Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles click events on predefined color swatches\n * Updates color to the swatch value\n * @param color Color string to apply\n */\n private _handleSwatchClick(color: string): void {\n if (this.disabled || this.readonly) return;\n\n const parsed = parseColor(color);\n if (parsed) {\n this._hsv = parsed;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n /**\n * Handles keyboard events on swatch elements\n * Activates swatch on Enter or Space key\n * @param color Color string to apply\n * @param event Keyboard event\n */\n private _handleSwatchKeydown(color: string, event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._handleSwatchClick(color);\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Eyedropper\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles eyedropper button click\n * Opens native EyeDropper API to pick color from screen\n * Only available in browsers that support the EyeDropper API\n */\n private async _handleEyedropper(): Promise<void> {\n if (!this._eyedropperSupported || this.disabled || this.readonly) return;\n\n this._isPickingColor = true;\n try {\n // @ts-expect-error EyeDropper API is not in TypeScript types yet\n const eyeDropper = new EyeDropper();\n const result = await eyeDropper.open();\n\n if (result.sRGBHex) {\n const parsed = parseColor(result.sRGBHex);\n if (parsed) {\n this._hsv = parsed;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n } catch {\n // User cancelled or error occurred\n } finally {\n this._isPickingColor = false;\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Event Emission\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Emits bp-input event with current formatted color value\n * Fired during live color updates (dragging, typing)\n */\n private _emitInput(): void {\n const value = this._formatOutput();\n this.dispatchEvent(\n new CustomEvent('bp-input', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /**\n * Emits bp-change event and updates the value property\n * Fired on blur/confirm actions (drag end, input blur)\n */\n private _emitChange(): void {\n const value = this._formatOutput();\n this.value = value;\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Rendering\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Renders the 2D color area for saturation and value selection\n * @returns TemplateResult for color area with draggable handle\n */\n private _renderColorArea() {\n const hueColor = `hsl(${this._hsv.h}, 100%, 50%)`;\n const handleX = this._hsv.s;\n const handleY = 100 - this._hsv.v;\n\n return html`\n <div\n class=\"color-area\"\n part=\"color-area\"\n role=\"slider\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=\"Color selection\"\n aria-valuetext=\"Saturation ${Math.round(\n this._hsv.s\n )}%, Brightness ${Math.round(this._hsv.v)}%\"\n style=\"--hue-color: ${hueColor}\"\n @pointerdown=${this._handleColorAreaPointerDown}\n @pointermove=${this._handleColorAreaPointerMove}\n @pointerup=${this._handleColorAreaPointerUp}\n @keydown=${this._handleColorAreaKeydown}\n >\n <div\n class=\"color-area-handle\"\n style=\"left: ${handleX}%; top: ${handleY}%\"\n ></div>\n </div>\n `;\n }\n\n /**\n * Renders the vertical hue slider (0-360 degrees)\n * @returns TemplateResult for hue slider with draggable handle\n */\n private _renderHueSlider() {\n const handleY = (this._hsv.h / 360) * 100;\n\n return html`\n <div\n class=\"hue-slider\"\n part=\"hue-slider\"\n role=\"slider\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=\"Hue\"\n aria-valuenow=\"${Math.round(this._hsv.h)}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"360\"\n @pointerdown=${this._handleHuePointerDown}\n @pointermove=${this._handleHuePointerMove}\n @pointerup=${this._handleHuePointerUp}\n @keydown=${this._handleHueKeydown}\n >\n <div class=\"hue-slider-handle\" style=\"top: ${handleY}%\"></div>\n </div>\n `;\n }\n\n /**\n * Renders the horizontal alpha slider (0-100%)\n * Only shown when alpha property is true\n * @returns TemplateResult for alpha slider or nothing\n */\n private _renderAlphaSlider() {\n if (!this.alpha) return nothing;\n\n const rgb = hsvToRgb(this._hsv);\n const colorStart = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0)`;\n const colorEnd = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`;\n const handleX = this._hsv.a * 100;\n\n return html`\n <div\n class=\"alpha-slider\"\n part=\"alpha-slider\"\n role=\"slider\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=\"Opacity\"\n aria-valuenow=\"${Math.round(this._hsv.a * 100)}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n style=\"--alpha-gradient: linear-gradient(to right, ${colorStart}, ${colorEnd})\"\n @pointerdown=${this._handleAlphaPointerDown}\n @pointermove=${this._handleAlphaPointerMove}\n @pointerup=${this._handleAlphaPointerUp}\n @keydown=${this._handleAlphaKeydown}\n >\n <div class=\"alpha-slider-handle\" style=\"left: ${handleX}%\"></div>\n </div>\n `;\n }\n\n /**\n * Renders the color preview showing original and current colors\n * Displays side-by-side comparison with checkerboard background for transparency\n * @returns TemplateResult for preview swatches\n */\n private _renderPreview() {\n const rgb = hsvToRgb(this._hsv);\n const currentColor = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${this._hsv.a})`;\n const originalHsv = parseColor(this._originalValue);\n const originalColor = originalHsv\n ? (() => {\n const origRgb = hsvToRgb(originalHsv);\n return `rgba(${origRgb.r}, ${origRgb.g}, ${origRgb.b}, ${originalHsv.a})`;\n })()\n : currentColor;\n\n return html`\n <div class=\"preview\" part=\"preview\">\n <div\n class=\"preview-swatch preview-original\"\n style=\"background: ${originalColor}\"\n title=\"Original color\"\n aria-label=\"Original color\"\n ></div>\n <div\n class=\"preview-swatch preview-current\"\n style=\"background: ${currentColor}\"\n title=\"Current color\"\n aria-label=\"Current color\"\n ></div>\n </div>\n `;\n }\n\n /**\n * Renders the hex color input field\n * @returns TemplateResult for hex input group\n */\n private _renderHexInput() {\n return html`\n <div class=\"input-group\">\n <input\n type=\"text\"\n class=\"color-input hex-input\"\n part=\"input\"\n .value=${this._hexInputValue}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${this._handleHexInput}\n @change=${this._handleHexChange}\n aria-label=\"Hex color value\"\n />\n <span class=\"input-label\">HEX</span>\n </div>\n `;\n }\n\n /**\n * Renders RGB color input fields (R, G, B, and optionally A)\n * @returns TemplateResult for RGB input row\n */\n private _renderRgbInputs() {\n const rgb = hsvToRgb(this._hsv);\n\n return html`\n <div class=\"input-row\">\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"255\"\n .value=${String(rgb.r)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleRgbInput('r', e)}\n @change=${this._handleRgbChange}\n aria-label=\"Red\"\n />\n <span class=\"input-label\">R</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"255\"\n .value=${String(rgb.g)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleRgbInput('g', e)}\n @change=${this._handleRgbChange}\n aria-label=\"Green\"\n />\n <span class=\"input-label\">G</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"255\"\n .value=${String(rgb.b)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleRgbInput('b', e)}\n @change=${this._handleRgbChange}\n aria-label=\"Blue\"\n />\n <span class=\"input-label\">B</span>\n </div>\n ${this.alpha\n ? html`\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(this._hsv.a * 100))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${this._handleAlphaInput}\n @change=${this._handleAlphaInputChange}\n aria-label=\"Alpha\"\n />\n <span class=\"input-label\">A</span>\n </div>\n `\n : nothing}\n </div>\n `;\n }\n\n /**\n * Renders HSL color input fields (H, S, L, and optionally A)\n * @returns TemplateResult for HSL input row\n */\n private _renderHslInputs() {\n const hsl = hsvToHsl(this._hsv);\n\n return html`\n <div class=\"input-row\">\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"360\"\n .value=${String(Math.round(hsl.h))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleHslInput('h', e)}\n @change=${this._handleHslChange}\n aria-label=\"Hue\"\n />\n <span class=\"input-label\">H</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(hsl.s))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleHslInput('s', e)}\n @change=${this._handleHslChange}\n aria-label=\"Saturation\"\n />\n <span class=\"input-label\">S</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(hsl.l))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleHslInput('l', e)}\n @change=${this._handleHslChange}\n aria-label=\"Lightness\"\n />\n <span class=\"input-label\">L</span>\n </div>\n ${this.alpha\n ? html`\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(this._hsv.a * 100))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${this._handleAlphaInput}\n @change=${this._handleAlphaInputChange}\n aria-label=\"Alpha\"\n />\n <span class=\"input-label\">A</span>\n </div>\n `\n : nothing}\n </div>\n `;\n }\n\n /**\n * Renders the input controls container with format toggle button\n * Shows hex, rgb, or hsl inputs based on current input mode\n * @returns TemplateResult for inputs container\n */\n private _renderInputs() {\n return html`\n <div class=\"inputs-container\">\n ${this._inputMode === 'hex' ? this._renderHexInput() : nothing}\n ${this._inputMode === 'rgb' ? this._renderRgbInputs() : nothing}\n ${this._inputMode === 'hsl' ? this._renderHslInputs() : nothing}\n <button\n type=\"button\"\n class=\"format-toggle\"\n @click=${this._handleFormatToggle}\n ?disabled=${this.disabled}\n aria-label=\"Cycle color format (${this._inputMode.toUpperCase()})\"\n title=\"Cycle color format\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path\n d=\"M21.5 2v6h-6M2.5 22v-6h6M2 11.5a10 10 0 0 1 18.8-4.3M22 12.5a10 10 0 0 1-18.8 4.2\"\n />\n </svg>\n </button>\n </div>\n `;\n }\n\n /**\n * Renders predefined color swatches\n * Shows swatches from the swatches property or slotted content\n * @returns TemplateResult for swatches container or nothing\n */\n private _renderSwatches() {\n const hasSwatches = this.swatches.length > 0;\n const hasSlottedSwatches = this.querySelector('[slot=\"swatches\"]') !== null;\n\n if (!hasSwatches && !hasSlottedSwatches) return nothing;\n\n return html`\n <div\n class=\"swatches-container\"\n part=\"swatches\"\n role=\"listbox\"\n aria-label=\"Color swatches\"\n >\n <slot name=\"swatches\">\n ${this.swatches.map(\n (color) => html`\n <button\n type=\"button\"\n class=\"swatch\"\n part=\"swatch\"\n role=\"option\"\n style=\"background: ${color}\"\n @click=${() => this._handleSwatchClick(color)}\n @keydown=${(e: KeyboardEvent) =>\n this._handleSwatchKeydown(color, e)}\n ?disabled=${this.disabled}\n aria-label=\"${color}\"\n ></button>\n `\n )}\n </slot>\n </div>\n `;\n }\n\n /**\n * Renders the eyedropper button if API is supported\n * @returns TemplateResult for eyedropper button or nothing\n */\n private _renderEyedropper() {\n if (!this._eyedropperSupported) return nothing;\n\n return html`\n <button\n type=\"button\"\n class=\"eyedropper-button\"\n @click=${this._handleEyedropper}\n ?disabled=${this.disabled || this.readonly || this._isPickingColor}\n aria-label=\"Pick color from screen\"\n aria-busy=\"${this._isPickingColor}\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 22l1-1h3l9-9m-3-3l3-3 5 5-3 3m-5-5l5 5M12.5 6.5l5 5\" />\n </svg>\n </button>\n `;\n }\n\n /**\n * Renders the complete color picker panel\n * Includes color area, sliders, preview, inputs, and swatches\n * @returns TemplateResult for picker panel\n */\n private _renderPicker() {\n return html`\n <div\n class=\"picker\"\n part=\"popover\"\n role=\"dialog\"\n aria-label=\"${this.label || 'Color picker'}\"\n >\n <div class=\"picker-body\">\n <div class=\"picker-main\">\n ${this._renderColorArea()} ${this._renderHueSlider()}\n </div>\n ${this._renderAlphaSlider()}\n <div class=\"picker-controls\">\n ${this._renderPreview()} ${this._renderInputs()}\n ${this._renderEyedropper()}\n </div>\n ${this._renderSwatches()}\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * Renders the trigger button to open the picker popover\n * Shows current color swatch and optional label\n * @returns TemplateResult for trigger button\n */\n private _renderTrigger() {\n const rgb = hsvToRgb(this._hsv);\n const currentColor = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${this._hsv.a})`;\n const hasLabel = this.label || this.placeholder;\n\n return html`\n <button\n type=\"button\"\n class=\"trigger\"\n part=\"trigger\"\n role=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded=\"${this._open}\"\n aria-disabled=\"${this.disabled}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n ?disabled=${this.disabled}\n @click=${this._handleTriggerClick}\n @keydown=${this._handleTriggerKeydown}\n >\n <slot name=\"trigger\">\n <span\n class=\"trigger-swatch\"\n style=\"background: ${currentColor}\"\n ></span>\n ${hasLabel\n ? html`<span class=\"trigger-label\"\n >${this.label || this.placeholder}</span\n >`\n : nothing}\n </slot>\n </button>\n `;\n }\n\n render() {\n if (this.inline) {\n return this._renderPicker();\n }\n\n return html`\n <div class=\"color-picker color-picker--${this.size}\">\n ${this._renderTrigger()}\n ${this._open\n ? html`\n <div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\">\n Current color: ${this._formatOutput()}\n </div>\n ${this._renderPicker()}\n `\n : nothing}\n </div>\n ${this.name\n ? html`<input\n type=\"hidden\"\n name=\"${this.name}\"\n .value=${this._formatOutput()}\n />`\n : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-color-picker': BpColorPicker;\n }\n}\n"],"names":["colorPickerStyles","css","parseColor","value","parseHex","parseRgb","parseHsl","hex","r","g","b","a","rgbToHsv","rgb","match","hsl","h","s","l","hslToHsv","max","min","delta","v","hsvToRgb","hsv","c","x","m","sv","hsvToHsl","sl","roundAlpha","formatColorOutput","format","includeAlpha","hexR","hexG","hexB","hexA","BpColorPicker","LitElement","event","changedProperties","parsed","rect","y","step","handled","hue","alpha","input","channel","formats","currentIndex","color","result","hueColor","handleX","handleY","html","nothing","colorStart","colorEnd","currentColor","originalHsv","originalColor","origRgb","hasSwatches","hasSlottedSwatches","e","hasLabel","__decorateClass","property","booleanConverter","state","query","customElement"],"mappings":";;;AAcO,MAAMA,IAAoBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"combobox.js","sources":["../../source/components/combobox/combobox.style.ts","../../source/components/combobox/combobox.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const comboboxStyles = css`\n /* Base styles */\n :host {\n display: block;\n font-family: var(--bp-font-family);\n }\n\n .combobox {\n position: relative;\n width: 100%;\n }\n\n .combobox__control {\n display: flex;\n align-items: center;\n position: relative;\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n transition: border-color var(--bp-transition-fast);\n }\n\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-primary);\n }\n\n .combobox__control:focus-within {\n outline: var(--bp-focus-width) solid var(--bp-color-focus);\n outline-offset: var(--bp-focus-width);\n border-color: var(--bp-color-focus);\n }\n\n .combobox__input {\n flex: 1;\n min-width: 0;\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n background: transparent;\n border: none;\n outline: none;\n color: var(--bp-color-text);\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n }\n\n .combobox__input::placeholder {\n color: var(--bp-color-text-muted);\n }\n\n .combobox__input:disabled {\n cursor: not-allowed;\n }\n\n .combobox__indicators {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-xs);\n padding-right: var(--bp-spacing-sm);\n flex-shrink: 0;\n }\n\n .combobox__clear {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-6);\n height: var(--bp-spacing-6);\n padding: 0;\n background: transparent;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n font-size: var(--bp-font-size-xl);\n line-height: 1;\n transition: all var(--bp-transition-fast);\n }\n\n .combobox__clear:hover {\n color: var(--bp-color-primary);\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .combobox__clear:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .combobox__dropdown-indicator {\n color: var(--bp-color-text-muted);\n font-size: var(--bp-font-size-xs);\n transition: transform var(--bp-transition-fast);\n user-select: none;\n }\n\n .combobox--open .combobox__dropdown-indicator {\n transform: rotate(180deg);\n }\n\n .combobox__dropdown {\n position: absolute;\n top: calc(100% + var(--bp-spacing-xs));\n left: 0;\n right: 0;\n z-index: var(--bp-z-dropdown);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-top: calc(var(--bp-border-width) * 2) solid var(--bp-color-primary);\n border-radius: var(--bp-border-radius-md);\n box-shadow: var(--bp-shadow-md);\n max-height: calc(var(--bp-spacing-10) * 6);\n overflow-y: auto;\n opacity: 0;\n visibility: hidden;\n transform: translateY(calc(-1 * var(--bp-spacing-md)));\n transition:\n opacity var(--bp-transition-fast),\n transform var(--bp-transition-fast),\n visibility var(--bp-transition-fast);\n contain: layout style paint;\n }\n\n .combobox--open .combobox__dropdown {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n }\n\n .combobox__options {\n list-style: none;\n margin: 0;\n padding: var(--bp-spacing-2xs);\n }\n\n .combobox__option {\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n cursor: pointer;\n border-radius: var(--bp-border-radius-md);\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .combobox__option:hover {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .combobox__option--focused {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n outline: var(--bp-focus-width) solid var(--bp-color-primary);\n outline-offset: calc(-1 * var(--bp-focus-width));\n }\n\n .combobox__option--selected {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n color: var(--bp-color-primary);\n }\n\n .combobox__option--selected:hover,\n .combobox__option--selected.combobox__option--focused {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 12%,\n transparent\n );\n }\n\n .combobox__option--empty {\n color: var(--bp-color-text-muted);\n cursor: default;\n text-align: center;\n padding: var(--bp-spacing-lg) var(--bp-spacing-md);\n font-style: italic;\n }\n\n .combobox__option--empty:hover {\n background-color: transparent;\n }\n\n /* Sizes */\n .combobox--sm .combobox__input {\n padding: var(--bp-spacing-2xs) var(--bp-spacing-xs);\n font-size: var(--bp-font-size-sm);\n }\n\n .combobox--sm .combobox__indicators {\n padding-right: var(--bp-spacing-xs);\n }\n\n .combobox--lg .combobox__input {\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n font-size: var(--bp-font-size-lg);\n }\n\n .combobox--lg .combobox__indicators {\n padding-right: var(--bp-spacing-md);\n }\n\n /* Variants */\n .combobox--default .combobox__control {\n border-color: var(--bp-color-border);\n }\n\n .combobox--success .combobox__control {\n border-color: var(--bp-color-success);\n }\n\n .combobox--error .combobox__control {\n border-color: var(--bp-color-error);\n }\n\n .combobox--warning .combobox__control {\n border-color: var(--bp-color-warning);\n }\n\n .combobox--info .combobox__control {\n border-color: var(--bp-color-info);\n }\n\n .combobox--success\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-success);\n }\n\n .combobox--error\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-error);\n }\n\n .combobox--warning\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-warning);\n }\n\n .combobox--info\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-info);\n }\n\n /* States */\n .combobox--disabled .combobox__control {\n background-color: var(--bp-color-surface-subdued);\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .combobox--disabled .combobox__input {\n color: var(--bp-color-text-muted);\n }\n\n /* Hide slot */\n slot {\n display: none;\n }\n\n /* Hide hidden inputs */\n input[type='hidden'] {\n display: none;\n }\n\n /* iOS zoom prevention: ensure 16px minimum on touch devices */\n @media (max-width: 768px) {\n .combobox--sm .combobox__input {\n font-size: 16px;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { comboboxStyles } from './combobox.style.js';\nimport { debounce } from '../../utilities/debounce.js';\nimport { memoizeOne } from '../../utilities/memoize.js';\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\nexport type ComboboxVariant =\n | 'default'\n | 'success'\n | 'error'\n | 'warning'\n | 'info';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n}\n\n@customElement('bp-combobox')\nexport class BpCombobox extends LitElement {\n /** The current value of the combobox */\n @property({ type: String, reflect: true }) declare value: string;\n\n /** Name attribute for form submission */\n @property({ type: String }) declare name: string;\n\n /** Placeholder text when no value is selected */\n @property({ type: String }) declare placeholder: string;\n\n /** Whether the combobox is disabled */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n /** Whether the combobox is required */\n @property({ type: Boolean, reflect: true }) declare required: boolean;\n\n /** Size variant of the combobox */\n @property({ type: String, reflect: true }) declare size: ComboboxSize;\n\n /** Visual variant for validation states */\n @property({ type: String, reflect: true }) declare variant: ComboboxVariant;\n\n /** Whether to allow free-form input (not just from the options list) */\n @property({ type: Boolean }) declare allowCustomValue: boolean;\n\n /** Whether the dropdown is currently open */\n @state() private isOpen = false;\n\n /** Current search/filter text */\n @state() private searchText = '';\n\n /** Index of the focused option for keyboard navigation */\n @state() private focusedIndex = -1;\n\n /** Cached filtered options to avoid recomputation on every render */\n @state() private cachedFilteredOptions: ComboboxOption[] = [];\n\n /** Cached options from slotted elements */\n @state() private cachedOptions: ComboboxOption[] = [];\n\n /** Reference to the input element */\n @query('input[type=\"text\"]') private inputElement!: HTMLInputElement;\n\n /** Debounced filter computation for search input */\n private debouncedFilter = debounce(() => {\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n }, 150);\n\n /**\n * Memoized filter computation.\n * Returns cached result when options array and searchText are the same references.\n */\n private filterOptions = memoizeOne(\n (options: ComboboxOption[], searchText: string): ComboboxOption[] => {\n if (!searchText.trim()) {\n return options;\n }\n\n const searchLower = searchText.toLowerCase();\n return options.filter((option) =>\n option.label.toLowerCase().includes(searchLower)\n );\n }\n );\n\n static styles = [comboboxStyles];\n\n constructor() {\n super();\n this.value = '';\n this.name = '';\n this.placeholder = 'Search or select...';\n this.disabled = false;\n this.required = false;\n this.size = 'md';\n this.variant = 'default';\n this.allowCustomValue = false;\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this.handleDocumentClick, {\n passive: true,\n });\n // Initialize search text with selected label and populate cached filtered options\n this.updateComplete.then(() => {\n this.cachedOptions = this.getOptions();\n this.updateSearchText();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this.handleDocumentClick, {\n passive: true,\n } as EventListenerOptions);\n this.debouncedFilter.cancel();\n }\n\n private updateSearchText() {\n if (!this.value) {\n this.searchText = '';\n return;\n }\n\n const options =\n this.cachedOptions.length > 0 ? this.cachedOptions : this.getOptions();\n const selectedOption = options.find((opt) => opt.value === this.value);\n if (selectedOption) {\n this.searchText = selectedOption.label;\n }\n }\n\n private handleDocumentClick = (event: MouseEvent) => {\n if (!this.contains(event.target as globalThis.Node)) {\n this.closeDropdown();\n }\n };\n\n private closeDropdown() {\n this.isOpen = false;\n this.focusedIndex = -1;\n this.debouncedFilter.cancel();\n this.updateSearchText();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n }\n\n private getOptions(): ComboboxOption[] {\n const slot = this.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements() || [];\n const options = assignedElements.filter(\n (el): el is globalThis.HTMLOptionElement => el.tagName === 'OPTION'\n );\n\n return options.map((option) => ({\n value: option.value || option.textContent || '',\n label: option.textContent || '',\n }));\n }\n\n /**\n * Returns the cached filtered options for rendering and keyboard navigation.\n */\n private getFilteredOptions(): ComboboxOption[] {\n return this.cachedFilteredOptions;\n }\n\n /**\n * Handle slot changes by refreshing the cached options.\n */\n private handleSlotChange = () => {\n this.cachedOptions = this.getOptions();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n };\n\n private handleInputFocus = () => {\n if (this.disabled) return;\n this.isOpen = true;\n this.focusedIndex = -1;\n };\n\n private handleInputClick = (event: MouseEvent) => {\n event.stopPropagation();\n if (this.disabled) return;\n this.isOpen = true;\n };\n\n private handleInputChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.searchText = target.value;\n this.isOpen = true;\n this.focusedIndex = -1;\n\n // Debounce the filter computation for search input\n this.debouncedFilter();\n\n // If allowCustomValue is true, update value immediately\n if (this.allowCustomValue) {\n const previousValue = this.value;\n this.value = this.searchText;\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: this.value,\n previousValue,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n };\n\n private handleOptionClick = (option: ComboboxOption) => {\n if (this.disabled) return;\n\n const previousValue = this.value;\n this.value = option.value;\n this.searchText = option.label;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.debouncedFilter.cancel();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n\n // Dispatch change event\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: this.value,\n label: option.label,\n previousValue,\n },\n bubbles: true,\n composed: true,\n })\n );\n\n // Update hidden input for form submission\n const hiddenInput = this.shadowRoot?.querySelector('input[type=\"hidden\"]');\n if (hiddenInput) {\n (hiddenInput as HTMLInputElement).value = this.value;\n }\n\n // Return focus to input\n this.inputElement?.focus();\n };\n\n private handleInputKeyDown = (event: globalThis.KeyboardEvent) => {\n if (this.disabled) return;\n\n const filteredOptions = this.getFilteredOptions();\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) {\n this.isOpen = true;\n this.focusedIndex = 0;\n } else {\n this.focusedIndex = Math.min(\n this.focusedIndex + 1,\n filteredOptions.length - 1\n );\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isOpen) {\n this.isOpen = true;\n this.focusedIndex = filteredOptions.length - 1;\n } else {\n this.focusedIndex = Math.max(this.focusedIndex - 1, 0);\n }\n break;\n\n case 'Enter':\n event.preventDefault();\n if (this.isOpen && this.focusedIndex >= 0) {\n const option = filteredOptions[this.focusedIndex];\n if (option) {\n this.handleOptionClick(option);\n }\n } else if (!this.isOpen) {\n this.isOpen = true;\n }\n break;\n\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'Tab':\n // Allow tab to close dropdown\n this.closeDropdown();\n break;\n }\n };\n\n private handleClear = (event: MouseEvent) => {\n event.stopPropagation();\n if (this.disabled) return;\n\n const previousValue = this.value;\n this.value = '';\n this.searchText = '';\n this.debouncedFilter.cancel();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: '',\n previousValue,\n },\n bubbles: true,\n composed: true,\n })\n );\n\n this.inputElement?.focus();\n };\n\n private renderDropdown() {\n const filteredOptions = this.getFilteredOptions();\n\n return html`\n <div class=\"combobox__dropdown\" id=\"listbox\" part=\"dropdown\">\n <ul class=\"combobox__options\" role=\"listbox\">\n ${filteredOptions.length === 0\n ? html`<li\n class=\"combobox__option combobox__option--empty\"\n role=\"option\"\n >\n No results found\n </li>`\n : repeat(\n filteredOptions,\n (opt) => opt.value,\n (opt, index) => {\n const isSelected = opt.value === this.value;\n const isFocused = index === this.focusedIndex;\n return html`\n <li\n class=${classMap({\n combobox__option: true,\n 'combobox__option--selected': isSelected,\n 'combobox__option--focused': isFocused,\n })}\n role=\"option\"\n aria-selected=${isSelected}\n @click=${() => this.handleOptionClick(opt)}\n part=\"option ${isSelected ? 'option-selected' : ''}\"\n >\n ${opt.label}\n </li>\n `;\n }\n )}\n </ul>\n </div>\n `;\n }\n\n render() {\n const hasValue = Boolean(this.value || this.searchText);\n\n return html`\n <div\n class=${classMap({\n combobox: true,\n 'combobox--open': this.isOpen,\n 'combobox--disabled': this.disabled,\n [`combobox--${this.size}`]: true,\n [`combobox--${this.variant}`]: true,\n })}\n >\n <div class=\"combobox__control\" part=\"control\">\n <input\n type=\"text\"\n class=\"combobox__input\"\n .value=${this.searchText}\n placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @focus=${this.handleInputFocus}\n @click=${this.handleInputClick}\n @input=${this.handleInputChange}\n @keydown=${this.handleInputKeyDown}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.isOpen}\n aria-autocomplete=\"list\"\n aria-controls=\"listbox\"\n aria-disabled=${this.disabled}\n part=\"input\"\n />\n\n <div class=\"combobox__indicators\">\n ${hasValue\n ? html`\n <button\n type=\"button\"\n class=\"combobox__clear\"\n @click=${this.handleClear}\n aria-label=\"Clear selection\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n part=\"clear-button\"\n >\n ×\n </button>\n `\n : ''}\n <span class=\"combobox__dropdown-indicator\" part=\"indicator\">\n ▼\n </span>\n </div>\n </div>\n\n ${this.isOpen ? this.renderDropdown() : nothing}\n\n <!-- Hidden slot for options -->\n <slot @slotchange=${this.handleSlotChange}></slot>\n\n <!-- Hidden input for form submission -->\n ${this.name\n ? html`<input\n type=\"hidden\"\n name=\"${this.name}\"\n .value=${this.value}\n />`\n : ''}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-combobox': BpCombobox;\n }\n}\n"],"names":["comboboxStyles","css","BpCombobox","LitElement","debounce","memoizeOne","options","searchText","searchLower","option","event","target","previousValue","hiddenInput","filteredOptions","selectedOption","opt","el","html","repeat","index","isSelected","isFocused","classMap","hasValue","nothing","__decorateClass","property","state","query","customElement"],"mappings":";;;;;;AAEO,MAAMA,IAAiBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-picker.js","sources":["../../source/components/date-picker/date-picker.style.ts","../../source/components/date-picker/date-picker.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const datePickerStyles = css`\n /* Base */\n .date-picker {\n position: relative;\n width: 100%;\n }\n\n .date-picker__input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .date-picker__input {\n flex: 1;\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n padding-right: var(--bp-spacing-2xl);\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n color: var(--bp-color-text);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n cursor: pointer;\n transition:\n border-color var(--bp-transition-fast),\n box-shadow var(--bp-transition-fast);\n outline: none;\n }\n\n .date-picker__input:hover:not(:disabled) {\n border-color: var(--bp-color-primary);\n }\n\n .date-picker__input:focus {\n border-color: var(--bp-color-focus);\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-focus);\n }\n\n .date-picker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .date-picker__input::placeholder {\n color: var(--bp-color-text-muted);\n }\n\n .date-picker__clear {\n position: absolute;\n right: var(--bp-spacing-2xl);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n padding: 0;\n font-size: var(--bp-font-size-sm);\n color: var(--bp-color-text-muted);\n background: none;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition:\n color var(--bp-transition-fast),\n background-color var(--bp-transition-fast);\n }\n\n .date-picker__clear:hover {\n color: var(--bp-color-primary);\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .date-picker__indicator {\n position: absolute;\n right: var(--bp-spacing-md);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n color: var(--bp-color-text-muted);\n pointer-events: none;\n }\n\n /* Calendar */\n .date-picker__calendar {\n position: absolute;\n top: calc(100% + var(--bp-spacing-xs));\n left: 0;\n z-index: var(--bp-z-dropdown);\n min-width: var(--bp-spacing-2xl);\n padding: var(--bp-spacing-md);\n background-color: var(--bp-color-surface);\n border-top: calc(var(--bp-border-width) * 2) solid var(--bp-color-primary);\n border-right: var(--bp-border-width) solid var(--bp-color-border);\n border-bottom: var(--bp-border-width) solid var(--bp-color-border);\n border-left: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n box-shadow: var(--bp-shadow-md);\n }\n\n /* Header */\n .date-picker__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: var(--bp-spacing-sm);\n }\n\n .date-picker__nav-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n padding: 0;\n font-size: var(--bp-font-size-xl);\n color: var(--bp-color-text);\n background: none;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition: background-color var(--bp-transition-fast);\n }\n\n .date-picker__nav-button:hover {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .date-picker__month-year {\n flex: 1;\n font-size: var(--bp-font-size-base);\n font-weight: var(--bp-font-weight-semibold);\n color: var(--bp-color-text);\n text-align: center;\n }\n\n /* Weekdays */\n .date-picker__weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: var(--bp-spacing-xs);\n margin-bottom: var(--bp-spacing-xs);\n }\n\n .date-picker__weekday {\n padding: var(--bp-spacing-xs);\n font-size: var(--bp-font-size-xs);\n font-weight: var(--bp-font-weight-semibold);\n color: var(--bp-color-text-muted);\n text-align: center;\n text-transform: uppercase;\n }\n\n /* Days */\n .date-picker__days {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: var(--bp-spacing-xs);\n }\n\n .date-picker__day {\n aspect-ratio: 1;\n padding: var(--bp-spacing-xs);\n font-size: var(--bp-font-size-sm);\n color: var(--bp-color-text);\n background: none;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .date-picker__day:hover:not(:disabled) {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .date-picker__day--other-month {\n color: var(--bp-color-text-muted);\n opacity: 0.5;\n }\n\n .date-picker__day--today {\n font-weight: var(--bp-font-weight-bold);\n color: var(--bp-color-primary);\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 4%,\n transparent\n );\n }\n\n .date-picker__day--selected {\n color: var(--bp-color-text-inverse);\n background-color: var(--bp-color-primary);\n }\n\n .date-picker__day--selected:hover:not(:disabled) {\n background-color: var(--bp-color-primary-hover);\n }\n\n .date-picker__day--focused {\n outline: var(--bp-focus-width) solid var(--bp-color-primary);\n outline-offset: calc(-1 * var(--bp-focus-width));\n }\n\n .date-picker__day--disabled {\n color: var(--bp-color-text-muted);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Sizes */\n .date-picker--sm .date-picker__input {\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n padding-right: var(--bp-spacing-xl);\n font-size: var(--bp-font-size-sm);\n }\n\n .date-picker--sm .date-picker__indicator {\n right: var(--bp-spacing-xs);\n width: var(--bp-spacing-md);\n height: var(--bp-spacing-md);\n }\n\n .date-picker--sm .date-picker__clear {\n right: var(--bp-spacing-xl);\n width: var(--bp-spacing-md);\n height: var(--bp-spacing-md);\n }\n\n .date-picker--sm .date-picker__calendar {\n padding: var(--bp-spacing-sm);\n }\n\n .date-picker--sm .date-picker__nav-button {\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n font-size: var(--bp-font-size-lg);\n }\n\n .date-picker--sm .date-picker__month-year {\n font-size: var(--bp-font-size-sm);\n }\n\n .date-picker--sm .date-picker__header {\n margin-bottom: var(--bp-spacing-xs);\n }\n\n .date-picker--sm .date-picker__weekdays {\n gap: var(--bp-spacing-2xs);\n margin-bottom: var(--bp-spacing-2xs);\n }\n\n .date-picker--sm .date-picker__weekday {\n padding: var(--bp-spacing-2xs);\n font-size: var(--bp-font-size-xs);\n }\n\n .date-picker--sm .date-picker__days {\n gap: var(--bp-spacing-2xs);\n }\n\n .date-picker--sm .date-picker__day {\n padding: var(--bp-spacing-2xs);\n font-size: var(--bp-font-size-xs);\n }\n\n .date-picker--lg .date-picker__input {\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n padding-right: var(--bp-spacing-24);\n font-size: var(--bp-font-size-lg);\n }\n\n .date-picker--lg .date-picker__indicator {\n right: var(--bp-spacing-md);\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n }\n\n .date-picker--lg .date-picker__clear {\n right: var(--bp-spacing-24);\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n }\n\n .date-picker--lg .date-picker__calendar {\n padding: var(--bp-spacing-lg);\n }\n\n .date-picker--lg .date-picker__nav-button {\n width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n font-size: var(--bp-font-size-2xl);\n }\n\n .date-picker--lg .date-picker__month-year {\n font-size: var(--bp-font-size-lg);\n }\n\n .date-picker--lg .date-picker__header {\n margin-bottom: var(--bp-spacing-md);\n }\n\n .date-picker--lg .date-picker__weekdays {\n gap: var(--bp-spacing-sm);\n margin-bottom: var(--bp-spacing-sm);\n }\n\n .date-picker--lg .date-picker__weekday {\n padding: var(--bp-spacing-sm);\n font-size: var(--bp-font-size-sm);\n }\n\n .date-picker--lg .date-picker__days {\n gap: var(--bp-spacing-sm);\n }\n\n .date-picker--lg .date-picker__day {\n padding: var(--bp-spacing-sm);\n font-size: var(--bp-font-size-base);\n }\n\n /* States */\n .date-picker--disabled {\n opacity: 0.6;\n pointer-events: none;\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { datePickerStyles } from './date-picker.style.js';\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg';\n\n/**\n * A calendar-based date picker component.\n *\n * @element bp-date-picker\n *\n * @fires bp-change - Fired when the selected date changes\n *\n * @csspart control - The outer container\n * @csspart input - The text input field\n * @csspart indicator - The calendar icon\n * @csspart clear-button - The clear button\n * @csspart calendar - The calendar dropdown\n * @csspart header - The calendar header with navigation\n * @csspart nav-button - Month/year navigation buttons\n * @csspart month-year - Month and year display\n * @csspart weekday - Day of week header cell\n * @csspart day - Individual day cell\n */\n@customElement('bp-date-picker')\nexport class BpDatePicker extends LitElement {\n @property({ type: String, reflect: true }) declare value: string;\n @property({ type: String }) declare name: string;\n @property({ type: String }) declare label: string;\n @property({ type: String }) declare placeholder: string;\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n @property({ type: Boolean, reflect: true }) declare required: boolean;\n @property({ type: String, reflect: true }) declare size: DatePickerSize;\n @property({ type: String }) declare min: string;\n @property({ type: String }) declare max: string;\n @property({ type: String, attribute: 'first-day-of-week' })\n declare firstDayOfWeek: '0' | '1';\n\n @state() private isOpen = false;\n @state() private displayMonth = new Date().getMonth();\n @state() private displayYear = new Date().getFullYear();\n @state() private focusedDate: Date | null = null;\n\n static styles = [datePickerStyles];\n\n constructor() {\n super();\n this.value = '';\n this.name = '';\n this.label = '';\n this.placeholder = 'Select date...';\n this.disabled = false;\n this.required = false;\n this.size = 'md';\n this.min = '';\n this.max = '';\n this.firstDayOfWeek = '0';\n }\n\n private handleInputClick() {\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n private handlePreviousMonth() {\n if (this.displayMonth === 0) {\n this.displayMonth = 11;\n this.displayYear--;\n } else {\n this.displayMonth--;\n }\n }\n\n private handleNextMonth() {\n if (this.displayMonth === 11) {\n this.displayMonth = 0;\n this.displayYear++;\n } else {\n this.displayMonth++;\n }\n }\n\n private handleDateSelect(date: Date) {\n const previousValue = this.value;\n this.value = this.formatDate(date);\n this.isOpen = false;\n this.focusedDate = null;\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: this.value,\n previousValue,\n date,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleClear(e: Event) {\n e.stopPropagation();\n const previousValue = this.value;\n this.value = '';\n this.focusedDate = null;\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: '',\n previousValue,\n date: null,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleKeyDown(e: Event) {\n const event = e as globalThis.KeyboardEvent;\n if (!this.isOpen) {\n if (\n event.key === 'ArrowDown' ||\n event.key === 'Enter' ||\n event.key === ' '\n ) {\n event.preventDefault();\n this.isOpen = true;\n this.focusedDate = this.getSelectedDate() || this.getTodayDate();\n }\n return;\n }\n\n const currentFocus =\n this.focusedDate || this.getSelectedDate() || this.getTodayDate();\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.isOpen = false;\n this.focusedDate = null;\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, -1);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, 1);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, -7);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, 7);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusedDate = new Date(\n currentFocus.getFullYear(),\n currentFocus.getMonth(),\n 1\n );\n break;\n\n case 'End':\n event.preventDefault();\n this.focusedDate = new Date(\n currentFocus.getFullYear(),\n currentFocus.getMonth() + 1,\n 0\n );\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.focusedDate = this.addMonths(\n currentFocus,\n event.shiftKey ? -12 : -1\n );\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.focusedDate = this.addMonths(\n currentFocus,\n event.shiftKey ? 12 : 1\n );\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.focusedDate && !this.isDateDisabled(this.focusedDate)) {\n this.handleDateSelect(this.focusedDate);\n }\n break;\n }\n }\n\n private updateDisplayMonth(date: Date) {\n this.displayMonth = date.getMonth();\n this.displayYear = date.getFullYear();\n }\n\n private addDays(date: Date, days: number): Date {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n private addMonths(date: Date, months: number): Date {\n const result = new Date(date);\n result.setMonth(result.getMonth() + months);\n return result;\n }\n\n private formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n\n private parseDate(value: string): Date | null {\n if (!value) return null;\n // Parse YYYY-MM-DD format in local timezone to avoid UTC offset issues\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/);\n if (match) {\n const [, year, month, day] = match;\n const date = new Date(\n parseInt(year, 10),\n parseInt(month, 10) - 1,\n parseInt(day, 10)\n );\n date.setHours(0, 0, 0, 0);\n return date;\n }\n // Fallback for other formats\n const date = new Date(value);\n if (isNaN(date.getTime())) {\n console.warn(\n `bp-date-picker: Invalid date format \"${value}\". Expected YYYY-MM-DD.`\n );\n return null;\n }\n return date;\n }\n\n private getSelectedDate(): Date | null {\n return this.parseDate(this.value);\n }\n\n private getTodayDate(): Date {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return today;\n }\n\n private isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n private isDateDisabled(date: Date): boolean {\n if (this.min) {\n const minDate = this.parseDate(this.min);\n if (minDate && date < minDate) return true;\n }\n if (this.max) {\n const maxDate = this.parseDate(this.max);\n if (maxDate && date > maxDate) return true;\n }\n return false;\n }\n\n private getCalendarDays(): Date[] {\n const CALENDAR_GRID_SIZE = 42; // 6 weeks × 7 days for consistent grid\n const firstDay = new Date(this.displayYear, this.displayMonth, 1);\n const lastDay = new Date(this.displayYear, this.displayMonth + 1, 0);\n\n const startDayOfWeek = this.firstDayOfWeek === '1' ? 1 : 0;\n let dayOfWeek = firstDay.getDay() - startDayOfWeek;\n if (dayOfWeek < 0) dayOfWeek += 7;\n\n const days: Date[] = [];\n\n // Add previous month's days\n for (let i = dayOfWeek - 1; i >= 0; i--) {\n const date = new Date(this.displayYear, this.displayMonth, -i);\n days.push(date);\n }\n\n // Add current month's days\n for (let i = 1; i <= lastDay.getDate(); i++) {\n days.push(new Date(this.displayYear, this.displayMonth, i));\n }\n\n // Add next month's days to complete the grid\n const remainingDays = CALENDAR_GRID_SIZE - days.length;\n for (let i = 1; i <= remainingDays; i++) {\n days.push(new Date(this.displayYear, this.displayMonth + 1, i));\n }\n\n return days;\n }\n\n public checkValidity(): boolean {\n // Check required validation\n if (this.required && !this.value) {\n return false;\n }\n // Check min/max validation\n if (this.value) {\n const date = this.parseDate(this.value);\n if (date && this.isDateDisabled(date)) {\n return false;\n }\n }\n return true;\n }\n\n private getWeekdayNames(): string[] {\n const weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n if (this.firstDayOfWeek === '1') {\n return [...weekdays.slice(1), weekdays[0]];\n }\n return weekdays;\n }\n\n private getMonthName(month: number): string {\n return new Date(2000, month, 1).toLocaleString('default', {\n month: 'long',\n });\n }\n\n private getFormattedValue(): string {\n const selectedDate = this.getSelectedDate();\n if (!selectedDate) return '';\n return selectedDate.toLocaleDateString();\n }\n\n render() {\n const selectedDate = this.getSelectedDate();\n const today = this.getTodayDate();\n const calendarDays = this.getCalendarDays();\n const weekdays = this.getWeekdayNames();\n const hasValue = !!this.value;\n\n const datePickerClasses = {\n 'date-picker': true,\n 'date-picker--open': this.isOpen,\n 'date-picker--disabled': this.disabled,\n [`date-picker--${this.size}`]: true,\n };\n\n return html`\n <div class=${classMap(datePickerClasses)} part=\"control\">\n <div class=\"date-picker__input-wrapper\">\n <input\n type=\"text\"\n class=\"date-picker__input\"\n part=\"input\"\n .value=${this.getFormattedValue()}\n placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?required=${this.required}\n readonly\n @click=${this.handleInputClick}\n @keydown=${this.handleKeyDown}\n role=\"combobox\"\n aria-haspopup=\"grid\"\n aria-expanded=${this.isOpen}\n aria-disabled=${this.disabled}\n aria-label=${this.label || this.placeholder || 'Date picker'}\n />\n ${hasValue && !this.disabled\n ? html`\n <button\n type=\"button\"\n class=\"date-picker__clear\"\n part=\"clear-button\"\n @click=${this.handleClear}\n aria-label=\"Clear date\"\n tabindex=\"-1\"\n >\n ✕\n </button>\n `\n : ''}\n <div class=\"date-picker__indicator\" part=\"indicator\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5 2V4M11 2V4M3 6H13M4 4H12C12.5523 4 13 4.44772 13 5V13C13 13.5523 12.5523 14 12 14H4C3.44772 14 3 13.5523 3 13V5C3 4.44772 3.44772 4 4 4Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n ${this.isOpen\n ? html`\n <div class=\"date-picker__calendar\" part=\"calendar\" role=\"grid\">\n <div class=\"date-picker__header\" part=\"header\">\n <button\n type=\"button\"\n class=\"date-picker__nav-button\"\n part=\"nav-button\"\n @click=${this.handlePreviousMonth}\n aria-label=\"Previous month\"\n tabindex=\"-1\"\n >\n ‹\n </button>\n <div class=\"date-picker__month-year\" part=\"month-year\">\n ${this.getMonthName(this.displayMonth)} ${this.displayYear}\n </div>\n <button\n type=\"button\"\n class=\"date-picker__nav-button\"\n part=\"nav-button\"\n @click=${this.handleNextMonth}\n aria-label=\"Next month\"\n tabindex=\"-1\"\n >\n ›\n </button>\n </div>\n\n <div class=\"date-picker__weekdays\">\n ${weekdays.map(\n (day) => html`\n <div\n class=\"date-picker__weekday\"\n part=\"weekday\"\n role=\"columnheader\"\n >\n ${day}\n </div>\n `\n )}\n </div>\n\n <div class=\"date-picker__days\">\n ${calendarDays.map((date) => {\n const isCurrentMonth =\n date.getMonth() === this.displayMonth;\n const isSelected =\n selectedDate && this.isSameDay(date, selectedDate);\n const isToday = this.isSameDay(date, today);\n const isFocused =\n this.focusedDate &&\n this.isSameDay(date, this.focusedDate);\n const isDisabled = this.isDateDisabled(date);\n\n const dayClasses = {\n 'date-picker__day': true,\n 'date-picker__day--other-month': !isCurrentMonth,\n 'date-picker__day--selected': !!isSelected,\n 'date-picker__day--today': isToday,\n 'date-picker__day--focused': !!isFocused,\n 'date-picker__day--disabled': isDisabled,\n };\n\n return html`\n <button\n type=\"button\"\n class=${classMap(dayClasses)}\n part=\"day\"\n @click=${() =>\n !isDisabled && this.handleDateSelect(date)}\n ?disabled=${isDisabled}\n tabindex=\"-1\"\n role=\"gridcell\"\n aria-selected=${!!isSelected}\n aria-label=${date.toLocaleDateString()}\n >\n ${date.getDate()}\n </button>\n `;\n })}\n </div>\n </div>\n `\n : ''}\n ${this.name\n ? html`\n <input type=\"hidden\" name=${this.name} .value=${this.value} />\n `\n : ''}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-date-picker': BpDatePicker;\n }\n}\n"],"names":["datePickerStyles","css","BpDatePicker","LitElement","date","previousValue","event","currentFocus","days","result","months","year","month","day","value","match","today","date1","date2","minDate","maxDate","firstDay","lastDay","startDayOfWeek","dayOfWeek","i","remainingDays","weekdays","selectedDate","calendarDays","hasValue","datePickerClasses","html","classMap","isCurrentMonth","isSelected","isToday","isFocused","isDisabled","__decorateClass","property","state","customElement"],"mappings":";;;AAEO,MAAMA,IAAmBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"divider.js","sources":["../../source/components/divider/divider.style.ts","../../source/components/divider/divider.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const dividerStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n :host([orientation='vertical']) {\n display: inline-flex;\n height: 100%;\n }\n\n .divider {\n display: flex;\n align-items: center;\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-xs);\n color: var(--bp-color-text-muted);\n }\n\n .divider__line {\n flex: 1;\n border: none;\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n transition:\n border-color 150ms ease,\n border-width 150ms ease;\n }\n\n .divider__content {\n display: inline-flex;\n padding: 0 var(--bp-spacing-md);\n white-space: nowrap;\n min-width: fit-content;\n }\n\n .divider__content {\n font-weight: var(--bp-font-weight-semibold);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--bp-color-text-muted);\n }\n\n /* Orientations */\n .divider--horizontal {\n width: 100%;\n flex-direction: row;\n }\n\n .divider--vertical {\n height: 100%;\n flex-direction: column;\n align-self: stretch;\n }\n\n .divider--vertical .divider__line {\n width: var(--bp-border-width);\n height: auto;\n border-top: none;\n border-left: var(--bp-border-width) solid var(--bp-color-border);\n }\n\n /* Spacing */\n .divider--spacing-sm {\n margin: var(--bp-spacing-sm) 0;\n }\n\n .divider--spacing-sm.divider--vertical {\n margin: 0 var(--bp-spacing-sm);\n }\n\n .divider--spacing-md {\n margin: var(--bp-spacing-md) 0;\n }\n\n .divider--spacing-md.divider--vertical {\n margin: 0 var(--bp-spacing-md);\n }\n\n .divider--spacing-lg {\n margin: var(--bp-spacing-lg) 0;\n }\n\n .divider--spacing-lg.divider--vertical {\n margin: 0 var(--bp-spacing-lg);\n }\n\n /* Variants */\n .divider__line--dashed {\n border-top-style: dashed;\n }\n\n .divider__line--dotted {\n border-top-style: dotted;\n }\n\n .divider--vertical .divider__line--dashed {\n border-top-style: none;\n border-left-style: dashed;\n }\n\n .divider--vertical .divider__line--dotted {\n border-top-style: none;\n border-left-style: dotted;\n }\n\n /* Color variants */\n :host([color='default']) .divider__line {\n border-color: var(--bp-color-border);\n }\n\n :host([color='subtle']) .divider__line {\n border-color: var(--bp-color-border);\n opacity: 0.5;\n }\n\n :host([color='accent']) .divider__line {\n border-color: var(--bp-color-primary);\n }\n\n /* Weight variants */\n :host([weight='thin']) .divider__line {\n border-top-width: var(--bp-border-width);\n }\n\n :host([weight='medium']) .divider__line {\n border-top-width: calc(var(--bp-border-width) * 2);\n }\n\n :host([weight='thick']) .divider__line {\n border-top-width: calc(var(--bp-border-width) * 3);\n }\n\n :host([weight='thin'][orientation='vertical']) .divider__line {\n border-left-width: var(--bp-border-width);\n border-top-width: 0;\n }\n\n :host([weight='medium'][orientation='vertical']) .divider__line {\n border-left-width: calc(var(--bp-border-width) * 2);\n border-top-width: 0;\n }\n\n :host([weight='thick'][orientation='vertical']) .divider__line {\n border-left-width: calc(var(--bp-border-width) * 3);\n border-top-width: 0;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { dividerStyles } from './divider.style.js';\n\nexport type DividerOrientation = 'horizontal' | 'vertical';\nexport type DividerSpacing = 'sm' | 'md' | 'lg';\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\nexport type DividerColor = 'default' | 'subtle' | 'accent';\nexport type DividerWeight = 'thin' | 'medium' | 'thick';\n\n/**\n * A divider component that provides visual separation between content sections.\n * Supports both horizontal and vertical orientations with optional text labels.\n */\n@customElement('bp-divider')\nexport class BpDivider extends LitElement {\n /**\n * Orientation of the divider.\n * @type {'horizontal' | 'vertical'}\n * @default 'horizontal'\n */\n @property({ type: String, reflect: true })\n declare orientation: DividerOrientation;\n\n /**\n * Spacing variant for the divider.\n * @type {'sm' | 'md' | 'lg'}\n * @default 'md'\n */\n @property({ type: String, reflect: true }) declare spacing: DividerSpacing;\n\n /**\n * Visual variant of the divider line.\n * @type {'solid' | 'dashed' | 'dotted'}\n * @default 'solid'\n */\n @property({ type: String, reflect: true }) declare variant: DividerVariant;\n\n /**\n * Color variant for the divider line.\n * @type {'default' | 'subtle' | 'accent'}\n * @default 'default'\n */\n @property({ type: String, reflect: true }) declare color: DividerColor;\n\n /**\n * Border weight for the divider line.\n * @type {'thin' | 'medium' | 'thick'}\n * @default 'thin'\n */\n @property({ type: String, reflect: true }) declare weight: DividerWeight;\n\n /** Whether the default slot has content. */\n @property({ attribute: false }) declare hasContent: boolean;\n\n static styles = [dividerStyles];\n\n constructor() {\n super();\n this.orientation = 'horizontal';\n this.spacing = 'md';\n this.variant = 'solid';\n this.color = 'default';\n this.weight = 'thin';\n this.hasContent = false;\n }\n\n private handleSlotChange = (event: Event) => {\n const slot = event.target as HTMLElement & {\n assignedNodes: (options?: { flatten?: boolean }) => Node[];\n };\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasContent = nodes.some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n };\n\n render() {\n return html`\n <div\n class=\"divider divider--${this.orientation} divider--spacing-${this\n .spacing}\"\n role=\"separator\"\n aria-orientation=\"${this.orientation}\"\n part=\"divider\"\n >\n <span\n class=\"divider__line divider__line--${this.variant}\"\n part=\"line\"\n ></span>\n ${this.orientation === 'horizontal'\n ? html`\n ${this.hasContent\n ? html`<span class=\"divider__content\" part=\"content\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </span>\n <span\n class=\"divider__line divider__line--${this.variant}\"\n part=\"line\"\n ></span>`\n : html`<slot @slotchange=${this.handleSlotChange}></slot>`}\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-divider': BpDivider;\n }\n}\n"],"names":["dividerStyles","css","BpDivider","LitElement","event","nodes","node","html","nothing","__decorateClass","property","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawer.js","sources":["../../source/components/drawer/drawer.style.ts","../../source/components/drawer/drawer.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const drawerStyles = css`\n /* Base styles */\n :host {\n display: contents;\n }\n\n .drawer {\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n color: var(--bp-color-text);\n }\n\n /* Overlay mode */\n .drawer--overlay {\n position: fixed;\n inset: 0;\n z-index: var(--bp-z-modal);\n pointer-events: none;\n }\n\n .drawer--overlay.drawer--open {\n pointer-events: auto;\n }\n\n /* Backdrop */\n .backdrop {\n position: absolute;\n inset: 0;\n background-color: oklch(from var(--bp-color-text) l c h / 0.5);\n opacity: 0;\n transition: opacity var(--bp-transition-base) ease-out;\n }\n\n .backdrop--visible {\n opacity: 1;\n }\n\n /* Panel base */\n .panel {\n position: absolute;\n display: flex;\n flex-direction: column;\n background-color: var(--bp-color-surface);\n box-shadow: var(--bp-shadow-xl);\n transition: transform var(--bp-transition-base) ease-out;\n overflow: hidden;\n }\n\n .drawer--overlay .panel:focus {\n outline: none;\n }\n\n /* Horizontal drawers (left/right) */\n .drawer--horizontal .panel {\n top: 0;\n bottom: 0;\n height: 100%;\n }\n\n .drawer--left .panel {\n left: 0;\n transform: translateX(-100%);\n }\n\n .drawer--left .panel--open {\n transform: translateX(0);\n }\n\n .drawer--right .panel {\n right: 0;\n transform: translateX(100%);\n }\n\n .drawer--right .panel--open {\n transform: translateX(0);\n }\n\n /* Vertical drawers (top/bottom) */\n .drawer--vertical .panel {\n left: 0;\n right: 0;\n width: 100%;\n }\n\n .drawer--top .panel {\n top: 0;\n transform: translateY(-100%);\n }\n\n .drawer--top .panel--open {\n transform: translateY(0);\n }\n\n .drawer--bottom .panel {\n bottom: 0;\n transform: translateY(100%);\n }\n\n .drawer--bottom .panel--open {\n transform: translateY(0);\n }\n\n /* Sizes - horizontal (width) */\n .drawer--horizontal.drawer--sm .panel {\n width: calc(var(--bp-spacing-24) * 3);\n }\n\n .drawer--horizontal.drawer--md .panel {\n width: calc(var(--bp-spacing-24) * 4 + var(--bp-spacing-16));\n }\n\n .drawer--horizontal.drawer--lg .panel {\n width: var(--bp-breakpoint-sm);\n }\n\n .drawer--horizontal.drawer--full .panel {\n width: 100%;\n }\n\n /* Sizes - vertical (height) */\n .drawer--vertical.drawer--sm .panel {\n height: calc(var(--bp-spacing-24) * 2);\n }\n\n .drawer--vertical.drawer--md .panel {\n height: calc(var(--bp-spacing-24) * 3 + var(--bp-spacing-8));\n }\n\n .drawer--vertical.drawer--lg .panel {\n height: calc(var(--bp-spacing-24) * 5);\n }\n\n .drawer--vertical.drawer--full .panel {\n height: 100%;\n }\n\n /* Header */\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--bp-spacing-4);\n padding: var(--bp-spacing-4) var(--bp-spacing-5);\n border-bottom: var(--bp-border-width) solid var(--bp-color-border);\n flex-shrink: 0;\n }\n\n .header--empty {\n display: none;\n }\n\n .header ::slotted(*) {\n margin: 0;\n font-size: var(--bp-font-size-lg);\n font-weight: var(--bp-font-weight-semibold);\n }\n\n /* Body */\n .body {\n flex: 1;\n overflow-y: auto;\n padding: var(--bp-spacing-5);\n }\n\n /* Footer */\n .footer {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-4);\n padding: var(--bp-spacing-4) var(--bp-spacing-5);\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n flex-shrink: 0;\n }\n\n /* Close button */\n .close-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n padding: 0;\n margin-left: auto;\n background: transparent;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast),\n transform var(--bp-transition-fast);\n }\n\n .close-button:hover {\n background-color: var(--bp-color-surface-subdued);\n color: var(--bp-color-text);\n }\n\n .close-button:active {\n background-color: var(--bp-color-surface-pressed);\n transform: translateY(1px);\n }\n\n .close-button:focus {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .close-button:focus:not(:focus-visible) {\n outline: none;\n }\n\n .close-button:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* Inline mode - static sidebar */\n .drawer--inline {\n display: block;\n }\n\n .drawer--inline .panel {\n position: relative;\n transform: none;\n box-shadow: none;\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n }\n\n .drawer--inline.drawer--horizontal {\n height: 100%;\n }\n\n .drawer--inline.drawer--vertical {\n width: 100%;\n }\n\n /* Inline sizes - horizontal */\n .drawer--inline.drawer--horizontal.drawer--small {\n width: calc(var(--bp-spacing-24) * 3);\n }\n\n .drawer--inline.drawer--horizontal.drawer--medium {\n width: calc(var(--bp-spacing-24) * 4 + var(--bp-spacing-16));\n }\n\n .drawer--inline.drawer--horizontal.drawer--large {\n width: var(--bp-breakpoint-sm);\n }\n\n .drawer--inline.drawer--horizontal.drawer--full {\n width: 100%;\n }\n\n /* Inline sizes - vertical */\n .drawer--inline.drawer--vertical.drawer--small .panel {\n height: calc(var(--bp-spacing-24) * 2);\n }\n\n .drawer--inline.drawer--vertical.drawer--medium .panel {\n height: calc(var(--bp-spacing-24) * 3 + var(--bp-spacing-8));\n }\n\n .drawer--inline.drawer--vertical.drawer--large .panel {\n height: calc(var(--bp-spacing-24) * 5);\n }\n\n .drawer--inline.drawer--vertical.drawer--full .panel {\n height: auto;\n }\n\n /* Border positioning for inline drawers */\n .drawer--inline.drawer--left .panel {\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .drawer--inline.drawer--right .panel {\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .drawer--inline.drawer--top .panel {\n border-top: none;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n .drawer--inline.drawer--bottom .panel {\n border-bottom: none;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .panel {\n transition: none;\n }\n\n .backdrop {\n transition: none;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { drawerStyles } from './drawer.style.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\nimport { closeSvg } from '../icon/icons/entries/close.js';\nimport '../icon/icon.js';\n\nexport type DrawerPlacement = 'left' | 'right' | 'top' | 'bottom';\nexport type DrawerSize = 'sm' | 'md' | 'lg' | 'full';\n\n/**\n * A slide-in panel component that can appear from any edge of the viewport.\n *\n * @fires bp-open - Fired when the drawer opens\n * @fires bp-close - Fired when the drawer closes (includes reason: 'escape' | 'backdrop' | 'close-button' | 'api')\n * @fires bp-after-open - Fired after open animation completes\n * @fires bp-after-close - Fired after close animation completes\n *\n * @slot - Default slot for drawer content\n * @slot header - Optional header content\n * @slot footer - Optional footer content\n *\n * @csspart drawer - The drawer container\n * @csspart backdrop - The backdrop overlay (when not inline)\n * @csspart panel - The drawer panel\n * @csspart header - The header section\n * @csspart body - The body/content section\n * @csspart footer - The footer section\n * @csspart close-button - The close button\n */\n@customElement('bp-drawer')\nexport class BpDrawer extends LitElement {\n /** Whether the drawer is open */\n @property({ type: Boolean, reflect: true }) declare open: boolean;\n\n /** Which edge the drawer slides in from */\n @property({\n type: String,\n reflect: true,\n converter: {\n fromAttribute: (value: string | null) => {\n const valid = ['left', 'right', 'top', 'bottom'];\n return value && valid.includes(value)\n ? (value as DrawerPlacement)\n : 'left';\n },\n },\n })\n declare placement: DrawerPlacement;\n\n /** Size of the drawer (width for left/right, height for top/bottom) */\n @property({\n type: String,\n reflect: true,\n converter: {\n fromAttribute: (value: string | null) => {\n const valid = ['sm', 'md', 'lg', 'full'];\n return value && valid.includes(value) ? (value as DrawerSize) : 'md';\n },\n },\n })\n declare size: DrawerSize;\n\n /** Whether to show the close button */\n @property({\n converter: booleanConverter,\n attribute: 'show-close',\n reflect: true,\n })\n declare showClose: boolean;\n\n /** Whether clicking the backdrop closes the drawer */\n @property({\n converter: booleanConverter,\n attribute: 'close-on-backdrop',\n reflect: true,\n })\n declare closeOnBackdrop: boolean;\n\n /** Whether pressing Escape closes the drawer */\n @property({\n converter: booleanConverter,\n attribute: 'close-on-escape',\n reflect: true,\n })\n declare closeOnEscape: boolean;\n\n /** Whether to show the backdrop overlay */\n @property({\n converter: booleanConverter,\n attribute: 'show-backdrop',\n reflect: true,\n })\n declare showBackdrop: boolean;\n\n /** Accessible label for the drawer */\n @property({ type: String }) declare label: string;\n\n /**\n * Whether the drawer is rendered inline (always visible, part of document flow).\n * When true, the drawer acts as a static sidebar without overlay behavior.\n */\n @property({ type: Boolean, reflect: true }) declare inline: boolean;\n\n /** Whether the drawer has a header slot content */\n @property({ type: Boolean, attribute: false }) private hasHeader = false;\n\n /** Whether the drawer has a footer slot content */\n @property({ type: Boolean, attribute: false }) private hasFooter = false;\n\n private previouslyFocusedElement: HTMLElement | null = null;\n\n static styles = [drawerStyles];\n\n constructor() {\n super();\n this.open = false;\n this.placement = 'left';\n this.size = 'md';\n this.showClose = true;\n this.closeOnBackdrop = true;\n this.closeOnEscape = true;\n this.showBackdrop = true;\n this.label = '';\n this.inline = false;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this.handleKeyDown);\n }\n\n /**\n * Open the drawer.\n * Sets open property to true and manages focus/scroll behavior.\n *\n * @fires bp-open - Emitted when the drawer opens\n * @fires bp-after-open - Emitted after open animation completes\n */\n show(): void {\n if (this.open) return;\n this.open = true;\n }\n\n /**\n * Close the drawer.\n * Sets open property to false if bp-close event is not prevented.\n *\n * @param reason - The reason the drawer was closed\n * @fires bp-close - Emitted when the drawer closes (cancelable)\n * @fires bp-after-close - Emitted after close animation completes\n */\n hide(reason: 'escape' | 'backdrop' | 'close-button' | 'api' = 'api'): void {\n if (!this.open) return;\n\n const event = new CustomEvent('bp-close', {\n detail: { reason },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n\n this.dispatchEvent(event);\n\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n /**\n * Toggle the drawer open/closed state.\n * Calls hide() if open, show() if closed.\n */\n toggle(): void {\n if (this.open) {\n this.hide('api');\n } else {\n this.show();\n }\n }\n\n protected updated(changedProperties: Map<string, unknown>): void {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.handleOpen();\n } else {\n this.handleClose();\n }\n }\n }\n\n private handleOpen(): void {\n if (!this.inline) {\n // Store currently focused element\n this.previouslyFocusedElement = document.activeElement as HTMLElement;\n\n // Prevent body scroll\n document.body.style.overflow = 'hidden';\n }\n\n this.dispatchEvent(\n new CustomEvent('bp-open', {\n bubbles: true,\n composed: true,\n })\n );\n\n // Focus the drawer panel for accessibility\n this.updateComplete.then(() => {\n const panel = this.shadowRoot?.querySelector('.panel') as HTMLElement;\n panel?.focus();\n\n this.dispatchEvent(\n new CustomEvent('bp-after-open', {\n bubbles: true,\n composed: true,\n })\n );\n });\n }\n\n private handleClose(): void {\n if (!this.inline) {\n // Restore body scroll\n document.body.style.overflow = '';\n\n // Restore focus\n if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n\n this.updateComplete.then(() => {\n this.dispatchEvent(\n new CustomEvent('bp-after-close', {\n bubbles: true,\n composed: true,\n })\n );\n });\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (\n event.key === 'Escape' &&\n this.closeOnEscape &&\n this.open &&\n !this.inline\n ) {\n event.preventDefault();\n this.hide('escape');\n }\n };\n\n /**\n * Handles click events on the backdrop overlay.\n * Closes the drawer if closeOnBackdrop is true.\n */\n private handleBackdropClick = (): void => {\n if (this.closeOnBackdrop) {\n this.hide('backdrop');\n }\n };\n\n /**\n * Handles click events on the close button.\n * Closes the drawer with reason 'close-button'.\n */\n private handleCloseClick = (): void => {\n this.hide('close-button');\n };\n\n /**\n * Handles slot change events for the header slot.\n * Updates hasHeader state to control header visibility.\n *\n * @param event - The slotchange event\n */\n private handleHeaderSlotChange = (event: Event): void => {\n const slot = event.target as HTMLElement & {\n assignedNodes: (options?: { flatten?: boolean }) => Node[];\n };\n this.hasHeader = slot.assignedNodes({ flatten: true }).length > 0;\n };\n\n /**\n * Handles slot change events for the footer slot.\n * Updates hasFooter state to control footer visibility.\n *\n * @param event - The slotchange event\n */\n private handleFooterSlotChange = (event: Event): void => {\n const slot = event.target as HTMLElement & {\n assignedNodes: (options?: { flatten?: boolean }) => Node[];\n };\n this.hasFooter = slot.assignedNodes({ flatten: true }).length > 0;\n };\n\n render() {\n const isHorizontal =\n this.placement === 'left' || this.placement === 'right';\n\n // Inline mode: always visible, no backdrop, no overlay behavior\n if (this.inline) {\n return html`\n <aside\n class=\"drawer drawer--inline drawer--${this.placement} drawer--${this\n .size} ${isHorizontal ? 'drawer--horizontal' : 'drawer--vertical'}\"\n part=\"drawer\"\n role=\"complementary\"\n aria-label=${this.label || nothing}\n >\n <div class=\"panel\" part=\"panel\">\n ${this.hasHeader || this.showClose\n ? html`\n <header class=\"header\" part=\"header\">\n <slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>\n </header>\n `\n : html`<slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>`}\n <div class=\"body\" part=\"body\">\n <slot></slot>\n </div>\n ${this.hasFooter\n ? html`\n <footer class=\"footer\" part=\"footer\">\n <slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>\n </footer>\n `\n : html`<slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>`}\n </div>\n </aside>\n `;\n }\n\n // Overlay mode: slide-in panel with backdrop\n return html`\n <div\n class=\"drawer drawer--overlay drawer--${this.placement} drawer--${this\n .size} ${isHorizontal\n ? 'drawer--horizontal'\n : 'drawer--vertical'} ${this.open ? 'drawer--open' : ''}\"\n part=\"drawer\"\n >\n ${this.showBackdrop\n ? html`\n <div\n class=\"backdrop ${this.open ? 'backdrop--visible' : ''}\"\n part=\"backdrop\"\n @click=${this.handleBackdropClick}\n aria-hidden=\"true\"\n ></div>\n `\n : nothing}\n <aside\n class=\"panel ${this.open ? 'panel--open' : ''}\"\n part=\"panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=${this.label || nothing}\n tabindex=\"-1\"\n >\n <header\n class=\"header ${this.hasHeader || this.showClose\n ? ''\n : 'header--empty'}\"\n part=\"header\"\n >\n <slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>\n ${this.showClose\n ? html`\n <button\n class=\"close-button\"\n part=\"close-button\"\n type=\"button\"\n aria-label=\"Close drawer\"\n @click=${this.handleCloseClick}\n >\n <bp-icon .svg=${closeSvg} size=\"sm\"></bp-icon>\n </button>\n `\n : nothing}\n </header>\n <div class=\"body\" part=\"body\">\n <slot></slot>\n </div>\n ${this.hasFooter\n ? html`\n <footer class=\"footer\" part=\"footer\">\n <slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>\n </footer>\n `\n : html`<slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>`}\n </aside>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-drawer': BpDrawer;\n }\n}\n"],"names":["drawerStyles","css","BpDrawer","LitElement","event","slot","reason","changedProperties","isHorizontal","html","nothing","closeSvg","__decorateClass","property","value","booleanConverter","customElement"],"mappings":";;;;AAEO,MAAMA,IAAeC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown.js","sources":["../../source/components/dropdown/dropdown.style.ts","../../source/components/dropdown/dropdown.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const dropdownStyles = css`\n /* Base styles */\n :host {\n display: inline-block;\n position: relative;\n }\n\n .dropdown {\n position: relative;\n display: inline-block;\n }\n\n /* Trigger */\n .dropdown__trigger {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n outline: none;\n user-select: none;\n }\n\n .dropdown__trigger:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n border-radius: var(--bp-border-radius-sm);\n }\n\n /* Panel */\n .dropdown__panel {\n position: absolute;\n z-index: 1000; /* Overlay layer - above page content, below modals */\n min-width: 200px;\n background-color: var(--bp-color-surface-elevated);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-lg);\n box-shadow: var(--bp-shadow-lg);\n padding: var(--bp-spacing-sm);\n opacity: 0;\n will-change: opacity, transform;\n transition:\n opacity var(--bp-transition-fast) var(--bp-ease-out),\n transform var(--bp-transition-fast) var(--bp-ease-out);\n contain: layout style;\n }\n\n /* Placement: Bottom variants */\n .dropdown__panel--bottom-start {\n top: 100%;\n left: 0;\n margin-top: var(--dropdown-distance, 4px);\n transform: translateY(-8px);\n }\n\n .dropdown__panel--bottom-start.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n .dropdown__panel--bottom {\n top: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(-8px);\n margin-top: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--bottom.dropdown__panel--open {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n\n .dropdown__panel--bottom-end {\n top: 100%;\n right: 0;\n margin-top: var(--dropdown-distance, 4px);\n transform: translateY(-8px);\n }\n\n .dropdown__panel--bottom-end.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Placement: Top variants */\n .dropdown__panel--top-start {\n bottom: 100%;\n left: 0;\n margin-bottom: var(--dropdown-distance, 4px);\n transform: translateY(8px);\n }\n\n .dropdown__panel--top-start.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n .dropdown__panel--top {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(8px);\n margin-bottom: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--top.dropdown__panel--open {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n\n .dropdown__panel--top-end {\n bottom: 100%;\n right: 0;\n margin-bottom: var(--dropdown-distance, 4px);\n transform: translateY(8px);\n }\n\n .dropdown__panel--top-end.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Placement: Side variants */\n .dropdown__panel--left {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-right: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--left.dropdown__panel--open {\n opacity: 1;\n }\n\n .dropdown__panel--right {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--right.dropdown__panel--open {\n opacity: 1;\n }\n\n /* Arrow */\n .dropdown__arrow {\n position: absolute;\n width: 12px;\n height: 12px;\n background-color: var(--bp-color-surface-elevated);\n border: var(--bp-border-width) solid var(--bp-color-border);\n transform: rotate(45deg);\n border-bottom: none;\n border-right: none;\n }\n\n /* Arrow positioning: Bottom variants */\n .dropdown__panel--bottom .dropdown__arrow {\n top: -7px;\n left: 50%;\n margin-left: -6px;\n }\n\n .dropdown__panel--bottom-start .dropdown__arrow {\n top: -7px;\n left: 16px;\n }\n\n .dropdown__panel--bottom-end .dropdown__arrow {\n top: -7px;\n right: 16px;\n }\n\n /* Arrow positioning: Top variants */\n .dropdown__panel--top .dropdown__arrow {\n bottom: -7px;\n left: 50%;\n margin-left: -6px;\n transform: rotate(225deg);\n }\n\n .dropdown__panel--top-start .dropdown__arrow {\n bottom: -7px;\n left: 16px;\n transform: rotate(225deg);\n }\n\n .dropdown__panel--top-end .dropdown__arrow {\n bottom: -7px;\n right: 16px;\n transform: rotate(225deg);\n }\n\n /* Arrow positioning: Side variants */\n .dropdown__panel--left .dropdown__arrow {\n right: -7px;\n top: 50%;\n margin-top: -6px;\n transform: rotate(135deg);\n }\n\n .dropdown__panel--right .dropdown__arrow {\n left: -7px;\n top: 50%;\n margin-top: -6px;\n transform: rotate(-45deg);\n }\n\n /* Disabled state */\n .dropdown--disabled .dropdown__trigger {\n cursor: not-allowed;\n opacity: 0.6;\n filter: grayscale(50%);\n pointer-events: none;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { dropdownStyles } from './dropdown.style.js';\n\n/**\n * A generic dropdown component that displays content in a floating panel.\n *\n * @fires bp-show - Dispatched when the dropdown opens\n * @fires bp-hide - Dispatched when the dropdown closes\n * @fires bp-toggle - Dispatched when the dropdown toggles\n *\n * @slot - Default slot for the dropdown trigger element\n * @slot content - Content to display in the dropdown panel\n *\n * @csspart trigger - The trigger button container\n * @csspart panel - The dropdown panel container\n */\n@customElement('bp-dropdown')\nexport class BpDropdown extends LitElement {\n /** Whether the dropdown is open */\n @property({ type: Boolean, reflect: true }) declare open: boolean;\n\n /** Placement of the dropdown panel relative to the trigger */\n @property({ type: String }) declare placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'right';\n\n /** Whether the dropdown should close when clicking outside */\n @property({ type: Boolean }) declare closeOnClickOutside: boolean;\n\n /** Whether the dropdown should close when pressing Escape */\n @property({ type: Boolean }) declare closeOnEscape: boolean;\n\n /** Whether the dropdown should close when an item inside is clicked */\n @property({ type: Boolean }) declare closeOnSelect: boolean;\n\n /** Whether the dropdown is disabled */\n @property({ type: Boolean }) declare disabled: boolean;\n\n /** Distance in pixels between the trigger and the panel */\n @property({ type: Number }) declare distance: number;\n\n /** Whether to show an arrow pointing to the trigger */\n @property({ type: Boolean }) declare arrow: boolean;\n\n /** ARIA role for the dropdown panel */\n @property({ type: String }) declare panelRole: 'menu' | 'dialog' | 'listbox';\n\n @query('.dropdown__trigger') private triggerElement!: HTMLElement;\n\n private clickOutsideHandler = this.handleClickOutside.bind(this);\n private keydownHandler = this.handleKeydown.bind(this);\n\n static styles = [dropdownStyles];\n\n constructor() {\n super();\n this.open = false;\n this.placement = 'bottom-start';\n this.closeOnClickOutside = true;\n this.closeOnEscape = true;\n this.closeOnSelect = true;\n this.disabled = false;\n this.distance = 4;\n this.arrow = false;\n this.panelRole = 'menu';\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this.clickOutsideHandler, {\n passive: true,\n });\n document.addEventListener('keydown', this.keydownHandler);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this.clickOutsideHandler, {\n passive: true,\n } as EventListenerOptions);\n document.removeEventListener('keydown', this.keydownHandler);\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n if (changedProperties.has('open') && this.open) {\n // Trigger width available via this.triggerElement.offsetWidth if needed\n }\n }\n\n /** Show the dropdown */\n show() {\n if (this.disabled || this.open) return;\n\n this.open = true;\n this.dispatchEvent(\n new CustomEvent('bp-show', { bubbles: true, composed: true })\n );\n this.dispatchEvent(\n new CustomEvent('bp-toggle', {\n detail: { open: true },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /** Hide the dropdown */\n hide() {\n if (!this.open) return;\n\n this.open = false;\n this.dispatchEvent(\n new CustomEvent('bp-hide', { bubbles: true, composed: true })\n );\n this.dispatchEvent(\n new CustomEvent('bp-toggle', {\n detail: { open: false },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /** Toggle the dropdown open/closed */\n toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Toggles dropdown when trigger is clicked.\n * Stops propagation to prevent immediate outside click detection.\n */\n private handleTriggerClick(event: MouseEvent) {\n event.stopPropagation();\n if (!this.disabled) {\n this.toggle();\n }\n }\n\n /**\n * Handles keyboard interaction on the trigger.\n * Enter/Space toggle, ArrowDown opens when closed.\n */\n private handleTriggerKeydown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.toggle();\n } else if (event.key === 'ArrowDown' && !this.open) {\n event.preventDefault();\n this.show();\n }\n }\n\n /**\n * Closes the dropdown when user clicks outside the component.\n * Only runs if closeOnClickOutside is true and dropdown is open.\n */\n private handleClickOutside(event: MouseEvent) {\n if (!this.closeOnClickOutside || !this.open) return;\n\n const path = event.composedPath();\n if (!path.includes(this)) {\n this.hide();\n }\n }\n\n /**\n * Closes dropdown on Escape key and returns focus to trigger.\n * Only runs if closeOnEscape is true and dropdown is open.\n */\n private handleKeydown(event: KeyboardEvent) {\n if (!this.closeOnEscape || !this.open) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.hide();\n this.triggerElement?.focus();\n }\n }\n\n /**\n * Handles clicks inside the panel to auto-close on item selection.\n * Detects menu items or elements with data-dropdown-close attribute.\n */\n private handlePanelClick(event: MouseEvent) {\n if (this.closeOnSelect) {\n // Check if clicked element or its parent is a menu item or similar\n const target = event.target as HTMLElement;\n const isSelectableItem =\n target.closest('bp-menu-item') ||\n target.closest('[data-dropdown-close]') ||\n target.hasAttribute('data-dropdown-close');\n\n if (isSelectableItem) {\n this.hide();\n }\n }\n }\n\n render() {\n return html`\n <div\n class=\"dropdown ${this.open ? 'dropdown--open' : ''} ${this.disabled\n ? 'dropdown--disabled'\n : ''}\"\n >\n <div\n class=\"dropdown__trigger\"\n part=\"trigger\"\n tabindex=${this.disabled ? -1 : 0}\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=${this.open}\n aria-disabled=${this.disabled}\n @click=${this.handleTriggerClick}\n @keydown=${this.handleTriggerKeydown}\n >\n <slot></slot>\n </div>\n ${this.open\n ? html`\n <div\n class=\"dropdown__panel dropdown__panel--${this.placement} ${this\n .open\n ? 'dropdown__panel--open'\n : ''}\"\n part=\"panel\"\n role=${this.panelRole}\n style=\"--dropdown-distance: ${this.distance}px;\"\n @click=${this.handlePanelClick}\n >\n ${this.arrow\n ? html`<div class=\"dropdown__arrow\"></div>`\n : nothing}\n <slot name=\"content\"></slot>\n </div>\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-dropdown': BpDropdown;\n }\n}\n"],"names":["dropdownStyles","css","BpDropdown","LitElement","changedProperties","event","target","html","nothing","__decorateClass","property","query","customElement"],"mappings":"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"}