@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":"file-upload.js","sources":["../../source/components/file-upload/file-upload.style.ts","../../source/components/file-upload/file-upload.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const fileUploadStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n .file-upload {\n font-family: var(--bp-font-family);\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-md);\n }\n\n /* Hidden file input - standard sr-only pattern */\n input[type='file'] {\n position: absolute;\n width: var(--bp-spacing-0-5);\n height: var(--bp-spacing-0-5);\n padding: var(--bp-spacing-0);\n margin: calc(var(--bp-spacing-0-5) * -1);\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* Visually hidden but accessible - standard sr-only pattern */\n .visually-hidden {\n position: absolute;\n width: var(--bp-spacing-0-5);\n height: var(--bp-spacing-0-5);\n padding: var(--bp-spacing-0);\n margin: calc(var(--bp-spacing-0-5) * -1);\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* Dropzone */\n .file-upload__dropzone {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--bp-spacing-sm);\n padding: var(--bp-spacing-xl);\n border: var(--bp-focus-width) dashed var(--bp-color-border);\n border-radius: var(--bp-border-radius-lg);\n background-color: var(--bp-color-surface);\n cursor: pointer;\n transition:\n border-color var(--bp-transition-fast),\n background-color var(--bp-transition-fast);\n text-align: center;\n }\n\n .file-upload__dropzone:hover:not(.file-upload__dropzone--disabled) {\n border-color: var(--bp-color-primary);\n background-color: var(--bp-color-surface-elevated);\n }\n\n .file-upload__dropzone: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-color: var(--bp-color-primary);\n }\n\n .file-upload__dropzone:active:not(.file-upload__dropzone--disabled) {\n transform: scale(0.995);\n }\n\n /* Drag over state */\n .file-upload__dropzone--drag-over {\n border-color: var(--bp-color-primary);\n background-color: var(--bp-color-surface-elevated);\n border-style: solid;\n }\n\n /* Disabled state */\n .file-upload__dropzone--disabled {\n opacity: var(--bp-opacity-disabled);\n cursor: not-allowed;\n background-color: var(--bp-color-surface-subdued);\n }\n\n /* Icon */\n .file-upload__icon {\n width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n color: var(--bp-color-text-muted);\n transition: color var(--bp-transition-fast);\n }\n\n .file-upload__dropzone:hover:not(.file-upload__dropzone--disabled)\n .file-upload__icon,\n .file-upload__dropzone--drag-over .file-upload__icon {\n color: var(--bp-color-primary);\n }\n\n /* Label */\n .file-upload__label {\n font-size: var(--bp-font-size-base);\n font-weight: var(--bp-font-weight-medium);\n color: var(--bp-color-text);\n line-height: var(--bp-line-height-normal);\n }\n\n /* Description */\n .file-upload__description {\n font-size: var(--bp-font-size-sm);\n color: var(--bp-color-text-muted);\n line-height: var(--bp-line-height-normal);\n }\n\n /* Variants */\n .file-upload__dropzone--success {\n border-color: var(--bp-color-success);\n }\n\n .file-upload__dropzone--success:hover:not(.file-upload__dropzone--disabled) {\n border-color: var(--bp-color-success);\n }\n\n .file-upload__dropzone--error {\n border-color: var(--bp-color-error);\n }\n\n .file-upload__dropzone--error:hover:not(.file-upload__dropzone--disabled) {\n border-color: var(--bp-color-error);\n }\n\n .file-upload__dropzone--warning {\n border-color: var(--bp-color-warning);\n }\n\n .file-upload__dropzone--warning:hover:not(.file-upload__dropzone--disabled) {\n border-color: var(--bp-color-warning);\n }\n\n /* Size variants */\n .file-upload__dropzone--sm {\n padding: var(--bp-spacing-lg);\n gap: var(--bp-spacing-xs);\n }\n\n .file-upload__dropzone--sm .file-upload__icon {\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n }\n\n .file-upload__dropzone--sm .file-upload__label {\n font-size: var(--bp-font-size-sm);\n }\n\n .file-upload__dropzone--sm .file-upload__description {\n font-size: var(--bp-font-size-xs);\n }\n\n .file-upload__dropzone--md {\n padding: var(--bp-spacing-xl);\n }\n\n .file-upload__dropzone--lg {\n padding: var(--bp-spacing-2xl);\n gap: var(--bp-spacing-md);\n }\n\n .file-upload__dropzone--lg .file-upload__icon {\n width: var(--bp-spacing-10);\n height: var(--bp-spacing-10);\n }\n\n .file-upload__dropzone--lg .file-upload__label {\n font-size: var(--bp-font-size-lg);\n }\n\n /* File list */\n .file-upload__file-list {\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-sm);\n }\n\n .file-upload__file-item {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-md);\n padding: 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 transition:\n background-color var(--bp-transition-fast),\n border-color var(--bp-transition-fast),\n transform var(--bp-transition-fast);\n }\n\n .file-upload__file-item:hover {\n background-color: var(--bp-color-surface-elevated);\n border-color: var(--bp-color-border-strong);\n }\n\n .file-upload__file-item:active {\n transform: scale(0.99);\n }\n\n /* File preview */\n .file-upload__preview {\n width: var(--bp-spacing-10);\n height: var(--bp-spacing-10);\n object-fit: cover;\n border-radius: var(--bp-border-radius-sm);\n flex-shrink: 0;\n }\n\n .file-upload__file-icon {\n width: var(--bp-spacing-10);\n height: var(--bp-spacing-10);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--bp-color-text-muted);\n transition: color var(--bp-transition-fast);\n }\n\n .file-upload__file-icon svg {\n width: var(--bp-spacing-6);\n height: var(--bp-spacing-6);\n }\n\n /* File info */\n .file-upload__file-info {\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-2xs);\n flex: 1;\n min-width: 0;\n }\n\n .file-upload__file-name {\n font-size: var(--bp-font-size-sm);\n font-weight: var(--bp-font-weight-medium);\n color: var(--bp-color-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: var(--bp-line-height-normal);\n }\n\n .file-upload__file-size {\n font-size: var(--bp-font-size-xs);\n color: var(--bp-color-text-muted);\n line-height: var(--bp-line-height-normal);\n }\n\n /* Remove button */\n .file-upload__remove-button {\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 border: none;\n background: transparent;\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 flex-shrink: 0;\n }\n\n .file-upload__remove-button:hover:not(:disabled) {\n background-color: var(--bp-color-error);\n color: var(--bp-color-text-inverse);\n }\n\n .file-upload__remove-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 .file-upload__remove-button:disabled {\n cursor: not-allowed;\n opacity: var(--bp-opacity-disabled);\n }\n\n .file-upload__remove-button svg {\n width: var(--bp-spacing-4);\n height: var(--bp-spacing-4);\n }\n\n /* Message */\n .file-upload__message {\n font-size: var(--bp-font-size-sm);\n color: var(--bp-color-text-muted);\n line-height: var(--bp-line-height-normal);\n }\n\n .file-upload__message--success {\n color: var(--bp-color-success);\n }\n\n .file-upload__message--error {\n color: var(--bp-color-error);\n }\n\n .file-upload__message--warning {\n color: var(--bp-color-warning);\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 { fileUploadStyles } from './file-upload.style.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\n\n/**\n * File information object returned in events\n */\nexport interface FileInfo {\n /** Original File object */\n file: File;\n /** File name */\n name: string;\n /** File size in bytes */\n size: number;\n /** MIME type */\n type: string;\n /** Unique identifier */\n id: string;\n /** Preview URL for images */\n previewUrl?: string;\n /** Upload progress (0-100) */\n progress?: number;\n /** Upload status */\n status?: 'pending' | 'uploading' | 'complete' | 'error';\n /** Error message if upload failed */\n error?: string;\n}\n\n/**\n * A file upload component with drag-and-drop support.\n *\n * @element bp-file-upload\n *\n * @fires bp-change - Fired when files are added or removed\n * @fires bp-file-added - Fired when a file is added\n * @fires bp-file-removed - Fired when a file is removed\n * @fires bp-file-rejected - Fired when a file is rejected (wrong type/size)\n *\n * @csspart dropzone - The drop zone container\n * @csspart input - The hidden file input\n * @csspart label - The label text\n * @csspart description - The description text\n * @csspart icon - The upload icon\n * @csspart file-list - The file list container\n * @csspart file-item - Individual file item\n * @csspart file-name - File name text\n * @csspart file-size - File size text\n * @csspart file-remove - Remove file button\n */\n@customElement('bp-file-upload')\nexport class BpFileUpload extends LitElement {\n /** Name attribute for form submission */\n @property({ type: String }) declare name: string;\n\n /** Label text displayed in the drop zone */\n @property({ type: String }) declare label: string;\n\n /** Description text displayed below the label */\n @property({ type: String }) declare description: string;\n\n /** Accepted file types (comma-separated MIME types or extensions) */\n @property({ type: String }) declare accept: string;\n\n /** Whether multiple files can be selected */\n @property({ type: Boolean }) declare multiple: boolean;\n\n /** Maximum file size in bytes */\n @property({ type: Number }) declare maxSize: number;\n\n /** Maximum number of files allowed */\n @property({ type: Number }) declare maxFiles: number;\n\n /** Whether the component is disabled */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n /** Whether a file is required */\n @property({ type: Boolean }) declare required: boolean;\n\n /** Visual variant for validation states */\n @property({ type: String }) declare variant:\n | 'default'\n | 'success'\n | 'error'\n | 'warning';\n\n /** Helper or error message text */\n @property({ type: String }) declare message: string;\n\n /** Size variant */\n @property({ type: String }) declare size: 'sm' | 'md' | 'lg';\n\n /** Whether to show file previews for images */\n @property({ converter: booleanConverter, reflect: true })\n declare showPreviews: boolean;\n\n /** Whether drag is currently over the drop zone */\n @state() private isDragOver = false;\n\n /** List of selected files */\n @state() private files: FileInfo[] = [];\n\n /** Reference to the hidden file input */\n @query('input[type=\"file\"]') private fileInput!: HTMLInputElement;\n\n static styles = [fileUploadStyles];\n\n constructor() {\n super();\n this.name = '';\n this.label = 'Drop files here or click to upload';\n this.description = '';\n this.accept = '';\n this.multiple = false;\n this.maxSize = 0;\n this.maxFiles = 0;\n this.disabled = false;\n this.required = false;\n this.variant = 'default';\n this.message = '';\n this.size = 'md';\n this.showPreviews = true;\n }\n\n /**\n * Get the list of selected files\n */\n getFiles(): FileInfo[] {\n return [...this.files];\n }\n\n /**\n * Clear all selected files\n */\n clearFiles(): void {\n // Revoke object URLs to prevent memory leaks\n this.files.forEach((fileInfo) => {\n if (fileInfo.previewUrl) {\n URL.revokeObjectURL(fileInfo.previewUrl);\n }\n });\n this.files = [];\n if (this.fileInput) {\n this.fileInput.value = '';\n }\n this.dispatchChangeEvent();\n }\n\n /**\n * Remove a specific file by ID\n */\n removeFile(fileId: string): void {\n const fileIndex = this.files.findIndex((f) => f.id === fileId);\n if (fileIndex !== -1) {\n const removedFile = this.files[fileIndex];\n if (removedFile.previewUrl) {\n URL.revokeObjectURL(removedFile.previewUrl);\n }\n this.files = this.files.filter((f) => f.id !== fileId);\n this.dispatchEvent(\n new CustomEvent('bp-file-removed', {\n detail: { file: removedFile },\n bubbles: true,\n composed: true,\n })\n );\n this.dispatchChangeEvent();\n }\n }\n\n private handleClick(): void {\n if (!this.disabled) {\n this.fileInput?.click();\n }\n }\n\n private handleKeyDown(event: globalThis.KeyboardEvent): void {\n if (this.disabled) return;\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.fileInput?.click();\n }\n }\n\n private handleInputChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files) {\n this.processFiles(Array.from(input.files));\n }\n }\n\n private handleDragEnter(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n this.isDragOver = true;\n }\n }\n\n private handleDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled && event.dataTransfer) {\n event.dataTransfer.dropEffect = 'copy';\n }\n }\n\n private handleDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n // Only set isDragOver to false if we're leaving the dropzone entirely\n const relatedTarget = event.relatedTarget as Node | null;\n if (!this.contains(relatedTarget)) {\n this.isDragOver = false;\n }\n }\n\n private handleDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver = false;\n\n if (this.disabled) return;\n\n const dataTransfer = event.dataTransfer;\n if (dataTransfer?.files) {\n this.processFiles(Array.from(dataTransfer.files));\n }\n }\n\n private processFiles(newFiles: File[]): void {\n const validFiles: FileInfo[] = [];\n\n for (const file of newFiles) {\n // Check if max files limit is reached\n if (\n this.maxFiles > 0 &&\n this.files.length + validFiles.length >= this.maxFiles\n ) {\n this.dispatchRejectEvent(file, 'Maximum number of files exceeded');\n continue;\n }\n\n // Check file type\n if (this.accept && !this.isFileTypeAccepted(file)) {\n this.dispatchRejectEvent(file, 'File type not accepted');\n continue;\n }\n\n // Check file size\n if (this.maxSize > 0 && file.size > this.maxSize) {\n this.dispatchRejectEvent(file, 'File size exceeds limit');\n continue;\n }\n\n // Create file info object\n const fileInfo: FileInfo = {\n file,\n name: file.name,\n size: file.size,\n type: file.type,\n id: this.generateFileId(),\n status: 'pending',\n progress: 0,\n };\n\n // Generate preview for images\n if (this.showPreviews && file.type.startsWith('image/')) {\n fileInfo.previewUrl = URL.createObjectURL(file);\n }\n\n validFiles.push(fileInfo);\n\n this.dispatchEvent(\n new CustomEvent('bp-file-added', {\n detail: { file: fileInfo },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n if (validFiles.length > 0) {\n if (this.multiple) {\n this.files = [...this.files, ...validFiles];\n } else {\n // Single file mode - replace existing file\n this.files.forEach((existingFile) => {\n if (existingFile.previewUrl) {\n URL.revokeObjectURL(existingFile.previewUrl);\n }\n });\n this.files = validFiles.slice(0, 1);\n }\n this.dispatchChangeEvent();\n }\n }\n\n private isFileTypeAccepted(file: File): boolean {\n if (!this.accept) return true;\n\n const acceptedTypes = this.accept\n .split(',')\n .map((type) => type.trim().toLowerCase());\n const fileType = file.type.toLowerCase();\n const fileExtension = '.' + file.name.split('.').pop()?.toLowerCase();\n\n return acceptedTypes.some((accepted) => {\n // Check MIME type match\n if (accepted === fileType) return true;\n // Check extension match\n if (accepted === fileExtension) return true;\n // Check wildcard MIME type (e.g., image/*)\n if (accepted.endsWith('/*')) {\n const category = accepted.slice(0, -2);\n return fileType.startsWith(category + '/');\n }\n return false;\n });\n }\n\n private dispatchChangeEvent(): void {\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: { files: this.getFiles() },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private dispatchRejectEvent(file: File, reason: string): void {\n this.dispatchEvent(\n new CustomEvent('bp-file-rejected', {\n detail: { file, reason },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private generateFileId(): string {\n return `file-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n }\n\n private formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB'];\n const exponent = Math.min(\n Math.floor(Math.log(bytes) / Math.log(1024)),\n units.length - 1\n );\n const size = bytes / Math.pow(1024, exponent);\n return `${size.toFixed(exponent > 0 ? 1 : 0)} ${units[exponent]}`;\n }\n\n private handleRemoveFile(event: Event, fileId: string): void {\n event.stopPropagation();\n this.removeFile(fileId);\n }\n\n private renderUploadIcon() {\n return html`\n <svg\n class=\"file-upload__icon\"\n part=\"icon\"\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 aria-hidden=\"true\"\n >\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n </svg>\n `;\n }\n\n private renderFileList() {\n if (this.files.length === 0) return nothing;\n\n return html`\n <div\n class=\"file-upload__file-list\"\n part=\"file-list\"\n role=\"list\"\n aria-label=\"Selected files\"\n >\n ${this.files.map(\n (fileInfo) => html`\n <div\n class=\"file-upload__file-item\"\n part=\"file-item\"\n role=\"listitem\"\n >\n ${fileInfo.previewUrl\n ? html`\n <img\n class=\"file-upload__preview\"\n src=\"${fileInfo.previewUrl}\"\n alt=\"Preview of ${fileInfo.name}\"\n />\n `\n : html`\n <div class=\"file-upload__file-icon\" aria-hidden=\"true\">\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path\n d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\n />\n <polyline points=\"14 2 14 8 20 8\" />\n </svg>\n </div>\n `}\n <div class=\"file-upload__file-info\">\n <span class=\"file-upload__file-name\" part=\"file-name\"\n >${fileInfo.name}</span\n >\n <span class=\"file-upload__file-size\" part=\"file-size\"\n >${this.formatFileSize(fileInfo.size)}</span\n >\n </div>\n <button\n type=\"button\"\n class=\"file-upload__remove-button\"\n part=\"file-remove\"\n @click=${(e: Event) => this.handleRemoveFile(e, fileInfo.id)}\n aria-label=\"Remove ${fileInfo.name}\"\n ?disabled=${this.disabled}\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </div>\n `\n )}\n </div>\n `;\n }\n\n render() {\n const dropzoneClasses = {\n 'file-upload__dropzone': true,\n 'file-upload__dropzone--drag-over': this.isDragOver,\n 'file-upload__dropzone--disabled': this.disabled,\n 'file-upload__dropzone--has-files': this.files.length > 0,\n [`file-upload__dropzone--${this.variant}`]: this.variant !== 'default',\n [`file-upload__dropzone--${this.size}`]: true,\n };\n\n const acceptDescription = this.accept\n ? `Accepted file types: ${this.accept}`\n : '';\n const sizeDescription =\n this.maxSize > 0\n ? `Maximum file size: ${this.formatFileSize(this.maxSize)}`\n : '';\n\n return html`\n <div class=\"file-upload\">\n <div\n class=${classMap(dropzoneClasses)}\n part=\"dropzone\"\n role=\"button\"\n tabindex=${this.disabled ? -1 : 0}\n aria-disabled=${this.disabled}\n aria-describedby=\"file-upload-description\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n @dragenter=${this.handleDragEnter}\n @dragover=${this.handleDragOver}\n @dragleave=${this.handleDragLeave}\n @drop=${this.handleDrop}\n >\n <input\n type=\"file\"\n part=\"input\"\n .name=${this.name}\n .accept=${this.accept}\n ?multiple=${this.multiple}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @change=${this.handleInputChange}\n aria-hidden=\"true\"\n tabindex=\"-1\"\n />\n\n ${this.renderUploadIcon()}\n\n <span class=\"file-upload__label\" part=\"label\">${this.label}</span>\n\n ${this.description\n ? html`<span class=\"file-upload__description\" part=\"description\"\n >${this.description}</span\n >`\n : nothing}\n </div>\n\n <span id=\"file-upload-description\" class=\"visually-hidden\">\n ${acceptDescription} ${sizeDescription}\n </span>\n\n ${this.renderFileList()}\n ${this.message\n ? html`<div\n class=\"file-upload__message file-upload__message--${this.variant}\"\n part=\"message\"\n >\n ${this.message}\n </div>`\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-file-upload': BpFileUpload;\n }\n}\n"],"names":["fileUploadStyles","css","BpFileUpload","LitElement","fileInfo","fileId","fileIndex","f","removedFile","event","input","relatedTarget","dataTransfer","newFiles","validFiles","file","existingFile","acceptedTypes","type","fileType","fileExtension","accepted","category","reason","bytes","units","exponent","html","nothing","e","dropzoneClasses","acceptDescription","sizeDescription","classMap","__decorateClass","property","booleanConverter","state","query","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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACkDzB,IAAMC,IAAN,cAA2BC,EAAW;AAAA,EAwD3C,cAAc;AACZ,UAAA,GAXO,KAAQ,aAAa,IAGrB,KAAQ,QAAoB,CAAA,GASnC,KAAK,OAAO,IACZ,KAAK,QAAQ,sCACb,KAAK,cAAc,IACnB,KAAK,SAAS,IACd,KAAK,WAAW,IAChB,KAAK,UAAU,GACf,KAAK,WAAW,GAChB,KAAK,WAAW,IAChB,KAAK,WAAW,IAChB,KAAK,UAAU,WACf,KAAK,UAAU,IACf,KAAK,OAAO,MACZ,KAAK,eAAe;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,WAAuB;AACrB,WAAO,CAAC,GAAG,KAAK,KAAK;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AAEjB,SAAK,MAAM,QAAQ,CAACC,MAAa;AAC/B,MAAIA,EAAS,cACX,IAAI,gBAAgBA,EAAS,UAAU;AAAA,IAE3C,CAAC,GACD,KAAK,QAAQ,CAAA,GACT,KAAK,cACP,KAAK,UAAU,QAAQ,KAEzB,KAAK,oBAAA;AAAA,EACP;AAAA;AAAA;AAAA;AAAA,EAKA,WAAWC,GAAsB;AAC/B,UAAMC,IAAY,KAAK,MAAM,UAAU,CAACC,MAAMA,EAAE,OAAOF,CAAM;AAC7D,QAAIC,MAAc,IAAI;AACpB,YAAME,IAAc,KAAK,MAAMF,CAAS;AACxC,MAAIE,EAAY,cACd,IAAI,gBAAgBA,EAAY,UAAU,GAE5C,KAAK,QAAQ,KAAK,MAAM,OAAO,CAACD,MAAMA,EAAE,OAAOF,CAAM,GACrD,KAAK;AAAA,QACH,IAAI,YAAY,mBAAmB;AAAA,UACjC,QAAQ,EAAE,MAAMG,EAAA;AAAA,UAChB,SAAS;AAAA,UACT,UAAU;AAAA,QAAA,CACX;AAAA,MAAA,GAEH,KAAK,oBAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEQ,cAAoB;AAC1B,IAAK,KAAK,YACR,KAAK,WAAW,MAAA;AAAA,EAEpB;AAAA,EAEQ,cAAcC,GAAuC;AAC3D,IAAI,KAAK,aAELA,EAAM,QAAQ,WAAWA,EAAM,QAAQ,SACzCA,EAAM,eAAA,GACN,KAAK,WAAW,MAAA;AAAA,EAEpB;AAAA,EAEQ,kBAAkBA,GAAoB;AAC5C,UAAMC,IAAQD,EAAM;AACpB,IAAIC,EAAM,SACR,KAAK,aAAa,MAAM,KAAKA,EAAM,KAAK,CAAC;AAAA,EAE7C;AAAA,EAEQ,gBAAgBD,GAAwB;AAC9C,IAAAA,EAAM,eAAA,GACNA,EAAM,gBAAA,GACD,KAAK,aACR,KAAK,aAAa;AAAA,EAEtB;AAAA,EAEQ,eAAeA,GAAwB;AAC7C,IAAAA,EAAM,eAAA,GACNA,EAAM,gBAAA,GACF,CAAC,KAAK,YAAYA,EAAM,iBAC1BA,EAAM,aAAa,aAAa;AAAA,EAEpC;AAAA,EAEQ,gBAAgBA,GAAwB;AAC9C,IAAAA,EAAM,eAAA,GACNA,EAAM,gBAAA;AAEN,UAAME,IAAgBF,EAAM;AAC5B,IAAK,KAAK,SAASE,CAAa,MAC9B,KAAK,aAAa;AAAA,EAEtB;AAAA,EAEQ,WAAWF,GAAwB;AAKzC,QAJAA,EAAM,eAAA,GACNA,EAAM,gBAAA,GACN,KAAK,aAAa,IAEd,KAAK,SAAU;AAEnB,UAAMG,IAAeH,EAAM;AAC3B,IAAIG,GAAc,SAChB,KAAK,aAAa,MAAM,KAAKA,EAAa,KAAK,CAAC;AAAA,EAEpD;AAAA,EAEQ,aAAaC,GAAwB;AAC3C,UAAMC,IAAyB,CAAA;AAE/B,eAAWC,KAAQF,GAAU;AAE3B,UACE,KAAK,WAAW,KAChB,KAAK,MAAM,SAASC,EAAW,UAAU,KAAK,UAC9C;AACA,aAAK,oBAAoBC,GAAM,kCAAkC;AACjE;AAAA,MACF;AAGA,UAAI,KAAK,UAAU,CAAC,KAAK,mBAAmBA,CAAI,GAAG;AACjD,aAAK,oBAAoBA,GAAM,wBAAwB;AACvD;AAAA,MACF;AAGA,UAAI,KAAK,UAAU,KAAKA,EAAK,OAAO,KAAK,SAAS;AAChD,aAAK,oBAAoBA,GAAM,yBAAyB;AACxD;AAAA,MACF;AAGA,YAAMX,IAAqB;AAAA,QACzB,MAAAW;AAAA,QACA,MAAMA,EAAK;AAAA,QACX,MAAMA,EAAK;AAAA,QACX,MAAMA,EAAK;AAAA,QACX,IAAI,KAAK,eAAA;AAAA,QACT,QAAQ;AAAA,QACR,UAAU;AAAA,MAAA;AAIZ,MAAI,KAAK,gBAAgBA,EAAK,KAAK,WAAW,QAAQ,MACpDX,EAAS,aAAa,IAAI,gBAAgBW,CAAI,IAGhDD,EAAW,KAAKV,CAAQ,GAExB,KAAK;AAAA,QACH,IAAI,YAAY,iBAAiB;AAAA,UAC/B,QAAQ,EAAE,MAAMA,EAAA;AAAA,UAChB,SAAS;AAAA,UACT,UAAU;AAAA,QAAA,CACX;AAAA,MAAA;AAAA,IAEL;AAEA,IAAIU,EAAW,SAAS,MAClB,KAAK,WACP,KAAK,QAAQ,CAAC,GAAG,KAAK,OAAO,GAAGA,CAAU,KAG1C,KAAK,MAAM,QAAQ,CAACE,MAAiB;AACnC,MAAIA,EAAa,cACf,IAAI,gBAAgBA,EAAa,UAAU;AAAA,IAE/C,CAAC,GACD,KAAK,QAAQF,EAAW,MAAM,GAAG,CAAC,IAEpC,KAAK,oBAAA;AAAA,EAET;AAAA,EAEQ,mBAAmBC,GAAqB;AAC9C,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,UAAME,IAAgB,KAAK,OACxB,MAAM,GAAG,EACT,IAAI,CAACC,MAASA,EAAK,KAAA,EAAO,aAAa,GACpCC,IAAWJ,EAAK,KAAK,YAAA,GACrBK,IAAgB,MAAML,EAAK,KAAK,MAAM,GAAG,EAAE,IAAA,GAAO,YAAA;AAExD,WAAOE,EAAc,KAAK,CAACI,MAAa;AAItC,UAFIA,MAAaF,KAEbE,MAAaD,EAAe,QAAO;AAEvC,UAAIC,EAAS,SAAS,IAAI,GAAG;AAC3B,cAAMC,IAAWD,EAAS,MAAM,GAAG,EAAE;AACrC,eAAOF,EAAS,WAAWG,IAAW,GAAG;AAAA,MAC3C;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEQ,sBAA4B;AAClC,SAAK;AAAA,MACH,IAAI,YAAY,aAAa;AAAA,QAC3B,QAAQ,EAAE,OAAO,KAAK,WAAS;AAAA,QAC/B,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,oBAAoBP,GAAYQ,GAAsB;AAC5D,SAAK;AAAA,MACH,IAAI,YAAY,oBAAoB;AAAA,QAClC,QAAQ,EAAE,MAAAR,GAAM,QAAAQ,EAAA;AAAA,QAChB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,iBAAyB;AAC/B,WAAO,QAAQ,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAAA,EACzE;AAAA,EAEQ,eAAeC,GAAuB;AAC5C,QAAIA,MAAU,EAAG,QAAO;AACxB,UAAMC,IAAQ,CAAC,KAAK,MAAM,MAAM,IAAI,GAC9BC,IAAW,KAAK;AAAA,MACpB,KAAK,MAAM,KAAK,IAAIF,CAAK,IAAI,KAAK,IAAI,IAAI,CAAC;AAAA,MAC3CC,EAAM,SAAS;AAAA,IAAA;AAGjB,WAAO,IADMD,IAAQ,KAAK,IAAI,MAAME,CAAQ,GAC7B,QAAQA,IAAW,IAAI,IAAI,CAAC,CAAC,IAAID,EAAMC,CAAQ,CAAC;AAAA,EACjE;AAAA,EAEQ,iBAAiBjB,GAAcJ,GAAsB;AAC3D,IAAAI,EAAM,gBAAA,GACN,KAAK,WAAWJ,CAAM;AAAA,EACxB;AAAA,EAEQ,mBAAmB;AACzB,WAAOsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBT;AAAA,EAEQ,iBAAiB;AACvB,WAAI,KAAK,MAAM,WAAW,IAAUC,IAE7BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOD,KAAK,MAAM;AAAA,MACX,CAACvB,MAAauB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAMRvB,EAAS,aACPuB;AAAA;AAAA;AAAA,6BAGWvB,EAAS,UAAU;AAAA,wCACRA,EAAS,IAAI;AAAA;AAAA,sBAGnCuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAcC;AAAA;AAAA;AAAA,qBAGEvB,EAAS,IAAI;AAAA;AAAA;AAAA,qBAGb,KAAK,eAAeA,EAAS,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAO9B,CAACyB,MAAa,KAAK,iBAAiBA,GAAGzB,EAAS,EAAE,CAAC;AAAA,qCACvCA,EAAS,IAAI;AAAA,4BACtB,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAchC;AAAA;AAAA;AAAA,EAGP;AAAA,EAEA,SAAS;AACP,UAAM0B,IAAkB;AAAA,MACtB,yBAAyB;AAAA,MACzB,oCAAoC,KAAK;AAAA,MACzC,mCAAmC,KAAK;AAAA,MACxC,oCAAoC,KAAK,MAAM,SAAS;AAAA,MACxD,CAAC,0BAA0B,KAAK,OAAO,EAAE,GAAG,KAAK,YAAY;AAAA,MAC7D,CAAC,0BAA0B,KAAK,IAAI,EAAE,GAAG;AAAA,IAAA,GAGrCC,IAAoB,KAAK,SAC3B,wBAAwB,KAAK,MAAM,KACnC,IACEC,IACJ,KAAK,UAAU,IACX,sBAAsB,KAAK,eAAe,KAAK,OAAO,CAAC,KACvD;AAEN,WAAOL;AAAA;AAAA;AAAA,kBAGOM,EAASH,CAAe,CAAC;AAAA;AAAA;AAAA,qBAGtB,KAAK,WAAW,KAAK,CAAC;AAAA,0BACjB,KAAK,QAAQ;AAAA;AAAA,mBAEpB,KAAK,WAAW;AAAA,qBACd,KAAK,aAAa;AAAA,uBAChB,KAAK,eAAe;AAAA,sBACrB,KAAK,cAAc;AAAA,uBAClB,KAAK,eAAe;AAAA,kBACzB,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKb,KAAK,IAAI;AAAA,sBACP,KAAK,MAAM;AAAA,wBACT,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,sBACf,KAAK,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKhC,KAAK,kBAAkB;AAAA;AAAA,0DAEuB,KAAK,KAAK;AAAA;AAAA,YAExD,KAAK,cACHH;AAAA,mBACK,KAAK,WAAW;AAAA,mBAErBC,CAAO;AAAA;AAAA;AAAA;AAAA,YAITG,CAAiB,IAAIC,CAAe;AAAA;AAAA;AAAA,UAGtC,KAAK,gBAAgB;AAAA,UACrB,KAAK,UACHL;AAAA,kEACsD,KAAK,OAAO;AAAA;AAAA;AAAA,gBAG9D,KAAK,OAAO;AAAA,sBAEhBC,CAAO;AAAA;AAAA;AAAA,EAGjB;AACF;AA9da1B,EAsDJ,SAAS,CAACF,CAAgB;AApDGkC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAFfjC,EAEyB,WAAA,QAAA,CAAA;AAGAgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GALfjC,EAKyB,WAAA,SAAA,CAAA;AAGAgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GARfjC,EAQyB,WAAA,eAAA,CAAA;AAGAgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAXfjC,EAWyB,WAAA,UAAA,CAAA;AAGCgC,EAAA;AAAA,EAApCC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GAdhBjC,EAc0B,WAAA,YAAA,CAAA;AAGDgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAjBfjC,EAiByB,WAAA,WAAA,CAAA;AAGAgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GApBfjC,EAoByB,WAAA,YAAA,CAAA;AAGgBgC,EAAA;AAAA,EAAnDC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAvB/BjC,EAuByC,WAAA,YAAA,CAAA;AAGfgC,EAAA;AAAA,EAApCC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GA1BhBjC,EA0B0B,WAAA,YAAA,CAAA;AAGDgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA7BfjC,EA6ByB,WAAA,WAAA,CAAA;AAOAgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GApCfjC,EAoCyB,WAAA,WAAA,CAAA;AAGAgC,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAvCfjC,EAuCyB,WAAA,QAAA,CAAA;AAI5BgC,EAAA;AAAA,EADPC,EAAS,EAAE,WAAWC,GAAkB,SAAS,IAAM;AAAA,GA1C7ClC,EA2CH,WAAA,gBAAA,CAAA;AAGSgC,EAAA;AAAA,EAAhBG,EAAA;AAAM,GA9CInC,EA8CM,WAAA,cAAA,CAAA;AAGAgC,EAAA;AAAA,EAAhBG,EAAA;AAAM,GAjDInC,EAiDM,WAAA,SAAA,CAAA;AAGoBgC,EAAA;AAAA,EAApCI,EAAM,oBAAoB;AAAA,GApDhBpC,EAoD0B,WAAA,aAAA,CAAA;AApD1BA,IAANgC,EAAA;AAAA,EADNK,EAAc,gBAAgB;AAAA,GAClBrC,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"heading.js","sources":["../../source/components/heading/heading.style.ts","../../source/components/heading/heading.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const headingStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n .heading {\n margin: 0;\n padding: 0;\n color: var(--bp-color-text);\n font-family: var(--bp-font-family);\n }\n\n /* Sizes */\n .heading--xs {\n font-size: var(--bp-font-size-xs);\n line-height: 1.5;\n }\n\n .heading--sm {\n font-size: var(--bp-font-size-sm);\n line-height: 1.45;\n }\n\n .heading--md {\n font-size: var(--bp-font-size-base);\n line-height: 1.4;\n }\n\n .heading--lg {\n font-size: var(--bp-font-size-lg);\n line-height: 1.35;\n }\n\n .heading--xl {\n font-size: var(--bp-font-size-xl);\n line-height: 1.3;\n }\n\n .heading--2xl {\n font-size: var(--bp-font-size-2xl);\n line-height: 1.25;\n letter-spacing: -0.01em;\n }\n\n .heading--3xl {\n font-size: var(--bp-font-size-3xl);\n line-height: 1.2;\n letter-spacing: -0.015em;\n }\n\n .heading--4xl {\n font-size: var(--bp-font-size-4xl);\n line-height: 1.1;\n letter-spacing: -0.02em;\n }\n\n /* Font weights */\n .heading--light {\n font-weight: var(--bp-font-weight-light);\n }\n\n .heading--normal {\n font-weight: var(--bp-font-weight-normal);\n }\n\n .heading--medium {\n font-weight: var(--bp-font-weight-medium);\n }\n\n .heading--semibold {\n font-weight: var(--bp-font-weight-semibold);\n }\n\n .heading--bold {\n font-weight: var(--bp-font-weight-bold);\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { headingStyles } from './heading.style.js';\n\nexport type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\nexport type HeadingSize =\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | '4xl';\nexport type HeadingWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';\n\n/**\n * A typography component for semantic headings (h1-h6).\n *\n * @element bp-heading\n *\n * @property {HeadingLevel} level - The semantic heading level (h1-h6)\n * @property {HeadingSize} size - The visual size of the heading\n * @property {HeadingWeight} weight - The font weight of the heading\n *\n * @slot - The heading text content\n *\n * @cssprop --bp-heading-color - Custom color for the heading\n * @cssprop --bp-heading-font-family - Custom font family for the heading\n *\n * @csspart heading - The heading element (h1-h6)\n */\n@customElement('bp-heading')\nexport class BpHeading extends LitElement {\n /**\n * The semantic heading level (h1-h6).\n * Determines the actual HTML element rendered.\n */\n @property({ type: Number, reflect: true }) declare level: HeadingLevel;\n\n /**\n * The visual size of the heading.\n * Allows visual hierarchy independent of semantic level.\n * Defaults to match the level when not specified.\n */\n @property({ type: String, reflect: true }) declare size: HeadingSize;\n\n /**\n * The font weight of the heading.\n */\n @property({ type: String, reflect: true }) declare weight: HeadingWeight;\n\n static styles = [headingStyles];\n\n constructor() {\n super();\n this.level = 1;\n this.size = '4xl';\n this.weight = 'bold';\n }\n\n render() {\n const sizeClass = `heading--${this.size}`;\n const weightClass = `heading--${this.weight}`;\n\n // Using a switch to create the proper heading element\n switch (this.level) {\n case 1:\n return html`<h1\n part=\"heading\"\n class=\"heading ${sizeClass} ${weightClass}\"\n >\n <slot></slot>\n </h1>`;\n case 2:\n return html`<h2\n part=\"heading\"\n class=\"heading ${sizeClass} ${weightClass}\"\n >\n <slot></slot>\n </h2>`;\n case 3:\n return html`<h3\n part=\"heading\"\n class=\"heading ${sizeClass} ${weightClass}\"\n >\n <slot></slot>\n </h3>`;\n case 4:\n return html`<h4\n part=\"heading\"\n class=\"heading ${sizeClass} ${weightClass}\"\n >\n <slot></slot>\n </h4>`;\n case 5:\n return html`<h5\n part=\"heading\"\n class=\"heading ${sizeClass} ${weightClass}\"\n >\n <slot></slot>\n </h5>`;\n case 6:\n return html`<h6\n part=\"heading\"\n class=\"heading ${sizeClass} ${weightClass}\"\n >\n <slot></slot>\n </h6>`;\n default:\n return html`<h1\n part=\"heading\"\n class=\"heading ${sizeClass} ${weightClass}\"\n >\n <slot></slot>\n </h1>`;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-heading': BpHeading;\n }\n}\n"],"names":["headingStyles","css","BpHeading","LitElement","sizeClass","weightClass","html","__decorateClass","property","customElement"],"mappings":";;AAEO,MAAMA,IAAgBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;AC+BtB,IAAMC,IAAN,cAAwBC,EAAW;AAAA,EAqBxC,cAAc;AACZ,UAAA,GACA,KAAK,QAAQ,GACb,KAAK,OAAO,OACZ,KAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAAS;AACP,UAAMC,IAAY,YAAY,KAAK,IAAI,IACjCC,IAAc,YAAY,KAAK,MAAM;AAG3C,YAAQ,KAAK,OAAA;AAAA,MACX,KAAK;AACH,eAAOC;AAAA;AAAA,2BAEYF,CAAS,IAAIC,CAAW;AAAA;AAAA;AAAA;AAAA,MAI7C,KAAK;AACH,eAAOC;AAAA;AAAA,2BAEYF,CAAS,IAAIC,CAAW;AAAA;AAAA;AAAA;AAAA,MAI7C,KAAK;AACH,eAAOC;AAAA;AAAA,2BAEYF,CAAS,IAAIC,CAAW;AAAA;AAAA;AAAA;AAAA,MAI7C,KAAK;AACH,eAAOC;AAAA;AAAA,2BAEYF,CAAS,IAAIC,CAAW;AAAA;AAAA;AAAA;AAAA,MAI7C,KAAK;AACH,eAAOC;AAAA;AAAA,2BAEYF,CAAS,IAAIC,CAAW;AAAA;AAAA;AAAA;AAAA,MAI7C,KAAK;AACH,eAAOC;AAAA;AAAA,2BAEYF,CAAS,IAAIC,CAAW;AAAA;AAAA;AAAA;AAAA,MAI7C;AACE,eAAOC;AAAA;AAAA,2BAEYF,CAAS,IAAIC,CAAW;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,EAKjD;AACF;AArFaH,EAmBJ,SAAS,CAACF,CAAa;AAdqBO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAL9BN,EAKwC,WAAA,SAAA,CAAA;AAOAK,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAZ9BN,EAYwC,WAAA,QAAA,CAAA;AAKAK,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAjB9BN,EAiBwC,WAAA,UAAA,CAAA;AAjBxCA,IAANK,EAAA;AAAA,EADNE,EAAc,YAAY;AAAA,GACdP,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon.js","sources":["../../source/components/icon/icon.style.ts","../../source/components/icon/icon-registry.ts","../../source/components/icon/icon.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const iconStyles = css`\n /* Base styles */\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n }\n\n :host([size='full']) {\n display: flex;\n width: 100%;\n height: 100%;\n }\n\n .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n color: var(--bp-color-text);\n }\n\n .icon svg,\n .icon ::slotted(svg) {\n width: 100%;\n height: 100%;\n display: block;\n fill: currentColor;\n }\n\n /* Color variants */\n .icon--default {\n color: var(--bp-color-text);\n }\n\n .icon--primary {\n color: var(--bp-color-primary);\n }\n\n .icon--success {\n color: var(--bp-color-success);\n }\n\n .icon--warning {\n color: var(--bp-color-warning);\n }\n\n .icon--error {\n color: var(--bp-color-error);\n }\n\n .icon--muted {\n color: var(--bp-color-text-muted);\n }\n\n /* Size variants */\n .icon--xs {\n width: var(--bp-icon-size-xs);\n height: var(--bp-icon-size-xs);\n }\n\n .icon--sm {\n width: var(--bp-icon-size-sm);\n height: var(--bp-icon-size-sm);\n }\n\n .icon--md {\n width: var(--bp-icon-size-md);\n height: var(--bp-icon-size-md);\n }\n\n .icon--lg {\n width: var(--bp-icon-size-lg);\n height: var(--bp-icon-size-lg);\n }\n\n .icon--xl {\n width: var(--bp-icon-size-xl);\n height: var(--bp-icon-size-xl);\n }\n\n .icon--2xl {\n width: var(--bp-icon-size-2xl);\n height: var(--bp-icon-size-2xl);\n }\n\n .icon--3xl {\n width: var(--bp-icon-size-3xl);\n height: var(--bp-icon-size-3xl);\n }\n\n .icon--4xl {\n width: var(--bp-icon-size-4xl);\n height: var(--bp-icon-size-4xl);\n }\n\n .icon--full {\n width: 100%;\n height: 100%;\n }\n`;\n","/**\r\n * Shared icon registry — runtime singleton.\r\n *\r\n * Serves two roles:\r\n * 1. **Lazy-load cache** — When `<bp-icon name=\"...\">` dynamically imports\r\n * an icon entry module, the SVG is stored here so subsequent renders of\r\n * the same icon name are instant.\r\n * 2. **Bulk registration** — `all.ts` imports every icon entry and calls\r\n * `registerIcon()` for each one (used by Storybook / dev tools).\r\n *\r\n * Internal Blueprint components bypass the registry entirely. They import\r\n * SVG data as value bindings and pass them directly via the `svg` property,\r\n * which guarantees the data survives bundler tree-shaking.\r\n */\r\n\r\nconst registry = new Map<string, string>();\r\n\r\n/**\r\n * Register an icon's SVG content by name.\r\n * Duplicate registrations silently overwrite (idempotent).\r\n */\r\nexport function registerIcon(name: string, svg: string): void {\r\n registry.set(name, svg);\r\n}\r\n\r\n/**\r\n * Retrieve the raw SVG string for a registered icon.\r\n * Returns undefined if the icon has not been registered.\r\n */\r\nexport function getIconSvg(name: string): string | undefined {\r\n return registry.get(name);\r\n}\r\n\r\n\r\n","import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { iconStyles } from './icon.style.js';\nimport { getIconSvg, registerIcon } from './icon-registry.js';\nimport type { IconName } from './icons/icon-name.generated.js';\n\nexport type { IconName } from './icons/icon-name.generated.js';\n\nexport type IconSize =\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | '4xl'\n | 'full';\nexport type IconColor =\n | 'default'\n | 'primary'\n | 'success'\n | 'warning'\n | 'error'\n | 'muted';\n\n/**\n * Icon component - SVG icon wrapper with size variants\n *\n * Supports both named icons from the System UI Icons library and custom SVG content via slot.\n *\n * @slot - Custom SVG content to display (used when `name` is not provided)\n *\n * @csspart icon - The icon container element\n *\n * @example\n * ```html\n * <!-- Using named icon from library -->\n * <bp-icon name=\"create\" size=\"md\" color=\"primary\"></bp-icon>\n *\n * <!-- Using custom SVG content -->\n * <bp-icon size=\"md\">\n * <svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n * <path d=\"M12 2L2 7v10c0 5.5 3.8 10.6 10 12 6.2-1.4 10-6.5 10-12V7l-10-5z\"/>\n * </svg>\n * </bp-icon>\n * ```\n */\n@customElement('bp-icon')\nexport class BpIcon extends LitElement {\n /**\n * Name of the icon from the System UI Icons library.\n * When set (and `svg` is empty), the component lazy-loads the icon's\n * entry module at runtime and caches the SVG for subsequent renders.\n * Ignored when the `svg` property is set.\n * @type {IconName}\n */\n @property({ type: String }) declare name: IconName | '';\n\n /**\n * Raw SVG string to render directly. When set, the `name` property is\n * ignored. This is the preferred way for internal Blueprint components\n * to supply icon data because it survives bundler tree-shaking.\n * @type {string}\n */\n @property({ type: String }) declare svg: string;\n\n /**\n * Size variant of the icon\n * @type {IconSize}\n */\n @property({ type: String, reflect: true }) declare size: IconSize;\n\n /**\n * Color variant of the icon\n * @type {IconColor}\n */\n @property({ type: String }) declare color: IconColor;\n\n /**\n * ARIA label for accessibility\n * @type {string}\n */\n @property({ type: String, attribute: 'aria-label' })\n declare ariaLabel: string;\n\n /** SVG content resolved by lazy-loading an icon entry module. */\n @state() private _loadedSvg = '';\n\n /** Tracks which icon name is currently being loaded to avoid races. */\n private _loadingName = '';\n\n constructor() {\n super();\n this.name = '';\n this.svg = '';\n this.size = 'md';\n this.color = 'default';\n this.ariaLabel = '';\n }\n\n static styles = [iconStyles];\n\n willUpdate(changedProps: PropertyValues) {\n // When the name changes and no direct svg is provided, lazy-load the icon.\n if (changedProps.has('name') || changedProps.has('svg')) {\n if (this.svg) {\n // Direct svg takes priority — clear any lazy-loaded content.\n this._loadedSvg = '';\n this._loadingName = '';\n return;\n }\n\n if (this.name && changedProps.has('name')) {\n this._loadIcon(this.name);\n }\n }\n }\n\n /**\n * Lazy-load an icon entry module by name.\n *\n * First checks the sync registry cache (populated by `all.ts` or a\n * previous load). If the icon isn't cached, dynamically imports the\n * generated resolver module which contains static `import()` paths for\n * every icon. Static paths let the consumer's bundler (Vite, Rollup,\n * esbuild) analyse and rewrite them at build time — unlike computed\n * URLs which break when the bundler reorganises the file layout.\n */\n private async _loadIcon(name: string) {\n this._loadingName = name;\n\n // Fast path: icon already in the registry (e.g. tests import all.ts).\n const cached = getIconSvg(name);\n if (cached) {\n this._loadedSvg = cached;\n return;\n }\n\n try {\n const { loadIconByName } = await import(\n './icons/resolver.generated.js'\n );\n const svg = await loadIconByName(name);\n\n if (svg && this._loadingName === name) {\n registerIcon(name, svg); // Cache for next time.\n this._loadedSvg = svg;\n }\n } catch {\n if (this._loadingName === name) {\n this._loadedSvg = '';\n }\n }\n }\n\n render() {\n const classes = ['icon', `icon--${this.size}`, `icon--${this.color}`].join(\n ' '\n );\n\n // Priority: svg property → lazy-loaded → slot fallback\n const svgContent = this.svg || this._loadedSvg || null;\n\n return html`\n <span\n class=${classes}\n part=\"icon\"\n role=${this.ariaLabel ? 'img' : 'presentation'}\n aria-label=${ifDefined(this.ariaLabel || undefined)}\n >\n ${svgContent ? html`${unsafeHTML(svgContent)}` : html`<slot></slot>`}\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-icon': BpIcon;\n }\n}\n"],"names":["iconStyles","css","registry","registerIcon","name","svg","getIconSvg","BpIcon","LitElement","changedProps","cached","loadIconByName","classes","svgContent","html","ifDefined","unsafeHTML","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","sources":["../../source/components/input/input.style.ts","../../source/components/input/input.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const inputStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-xs);\n }\n\n .input-label {\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-sm);\n font-weight: var(--bp-font-weight-medium);\n color: var(--bp-color-text);\n line-height: var(--bp-line-height-normal);\n }\n\n .input-required {\n color: var(--bp-color-error);\n margin-left: var(--bp-spacing-xs);\n }\n\n .input {\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n line-height: var(--bp-line-height-normal);\n color: var(--bp-color-text);\n background-color: var(--bp-color-background);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n box-shadow: inset 0 1px 2px oklch(0 0 0 / 0.05);\n transition:\n border-color var(--bp-transition-fast),\n box-shadow var(--bp-transition-fast);\n width: 100%;\n box-sizing: border-box;\n }\n\n .input::placeholder {\n color: var(--bp-color-text-muted);\n opacity: var(--bp-opacity-subtle);\n }\n\n /* Variants */\n .input--default {\n border-color: var(--bp-color-border);\n }\n\n .input--success {\n border-color: var(--bp-color-success);\n }\n\n .input--error {\n border-color: var(--bp-color-error);\n }\n\n .input--warning {\n border-color: var(--bp-color-warning);\n }\n\n .input--info {\n border-color: var(--bp-color-info);\n }\n\n /* Sizes */\n .input--sm {\n font-size: var(--bp-font-size-sm);\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n }\n\n .input--md {\n font-size: var(--bp-font-size-base);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n }\n\n .input--lg {\n font-size: var(--bp-font-size-lg);\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n }\n\n /* States */\n .input:hover:not(:disabled):not(:focus) {\n border-color: var(--bp-color-border-strong);\n }\n\n .input:focus {\n outline: none;\n border-color: var(--bp-color-focus);\n box-shadow: 0 0 0 var(--bp-focus-offset) var(--bp-color-focus);\n }\n\n .input:focus-visible {\n outline: none;\n border-color: var(--bp-color-focus);\n box-shadow: 0 0 0 var(--bp-focus-offset) var(--bp-color-focus);\n }\n\n .input:disabled {\n opacity: var(--bp-opacity-disabled);\n cursor: not-allowed;\n background-color: var(--bp-color-surface-subdued);\n }\n\n .input:read-only {\n background-color: var(--bp-color-surface);\n cursor: default;\n }\n\n /* Variant-specific focus states */\n .input--success:focus,\n .input--success:focus-visible {\n border-color: var(--bp-color-success);\n box-shadow: 0 0 0 var(--bp-focus-offset) var(--bp-color-success);\n }\n\n .input--error:focus,\n .input--error:focus-visible {\n border-color: var(--bp-color-error);\n box-shadow: 0 0 0 var(--bp-focus-offset) var(--bp-color-error);\n }\n\n .input--warning:focus,\n .input--warning:focus-visible {\n border-color: var(--bp-color-warning);\n box-shadow: 0 0 0 var(--bp-focus-offset) var(--bp-color-warning);\n }\n\n .input--info:focus,\n .input--info:focus-visible {\n border-color: var(--bp-color-info);\n box-shadow: 0 0 0 var(--bp-focus-offset) var(--bp-color-info);\n }\n\n /* Messages */\n .input-message {\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-sm);\n line-height: var(--bp-line-height-normal);\n color: var(--bp-color-text-muted);\n }\n\n .input-message--error {\n color: var(--bp-color-error);\n }\n\n /* iOS zoom prevention: ensure 16px minimum on touch devices */\n @media (max-width: 768px) {\n .input--sm {\n font-size: 16px;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { inputStyles } from './input.style.js';\nimport { debounce } from '../../utilities/debounce.js';\n\nexport type InputVariant = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport type InputSize = 'sm' | 'md' | 'lg';\nexport type InputType =\n | 'text'\n | 'email'\n | 'password'\n | 'number'\n | 'tel'\n | 'url'\n | 'search';\n\nexport type InputModeType =\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search';\n\nexport type AutocompleteType =\n | 'on'\n | 'off'\n | 'name'\n | 'email'\n | 'username'\n | 'new-password'\n | 'current-password'\n | 'tel'\n | 'url'\n | 'street-address'\n | 'address-line1'\n | 'address-line2'\n | 'address-line3'\n | 'address-level1'\n | 'address-level2'\n | 'address-level3'\n | 'address-level4'\n | 'country'\n | 'country-name'\n | 'postal-code'\n | 'cc-name'\n | 'cc-given-name'\n | 'cc-additional-name'\n | 'cc-family-name'\n | 'cc-number'\n | 'cc-exp'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-csc'\n | 'cc-type'\n | 'transaction-currency'\n | 'transaction-amount'\n | 'language'\n | 'bday'\n | 'bday-day'\n | 'bday-month'\n | 'bday-year'\n | 'sex'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-area-code'\n | 'tel-local'\n | 'tel-extension'\n | 'organization'\n | 'organization-title';\n\n@customElement('bp-input')\nexport class BpInput extends LitElement {\n @property({ type: String, reflect: true }) variant: InputVariant = 'default';\n @property({ type: String, reflect: true }) size: InputSize = 'md';\n @property({ type: String, reflect: true }) type: InputType = 'text';\n @property({ type: String, reflect: true }) value: string = '';\n @property({ type: String, reflect: true }) placeholder?: string;\n @property({ type: String, reflect: true }) label?: string;\n @property({ type: String, reflect: true }) helperText?: string;\n @property({ type: String, reflect: true }) errorMessage?: string;\n @property({ type: Boolean, reflect: true }) disabled: boolean = false;\n @property({ type: Boolean, reflect: true }) required: boolean = false;\n @property({ type: Boolean, reflect: true }) readonly: boolean = false;\n @property({ type: String, reflect: true }) name?: string;\n @property({ type: String, reflect: true }) autocomplete?: AutocompleteType;\n @property({ type: Number, reflect: true }) minlength?: number;\n @property({ type: Number, reflect: true }) maxlength?: number;\n @property({ type: String, reflect: true }) pattern?: string;\n @property({ type: Number, reflect: true }) step?: number;\n @property({ type: Number, reflect: true }) min?: number;\n @property({ type: Number, reflect: true }) max?: number;\n @property({ type: String, reflect: true }) inputmode?: InputModeType;\n\n @query('input') private inputElement?: HTMLInputElement;\n\n private debouncedDispatchInput = debounce(\n (value: string, originalEvent: InputEvent) => {\n this.dispatchEvent(\n new CustomEvent('bp-input', {\n detail: { value, originalEvent },\n bubbles: true,\n composed: true,\n })\n );\n },\n 150\n );\n\n static styles = [inputStyles];\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.debouncedDispatchInput.cancel();\n }\n\n private handleInput(e: InputEvent) {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.debouncedDispatchInput(this.value, e);\n }\n\n private handleChange(e: Event) {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: { value: this.value, originalEvent: e },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleFocus(e: FocusEvent) {\n this.dispatchEvent(\n new CustomEvent('bp-focus', {\n detail: { originalEvent: e },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleBlur(e: FocusEvent) {\n this.debouncedDispatchInput.flush();\n this.dispatchEvent(\n new CustomEvent('bp-blur', {\n detail: { originalEvent: e },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /**\n * Focuses the input element\n */\n public focus() {\n this.inputElement?.focus();\n }\n\n /**\n * Blurs the input element\n */\n public blur() {\n this.inputElement?.blur();\n }\n\n /**\n * Selects the text in the input\n */\n public select() {\n this.inputElement?.select();\n }\n\n private get messageId(): string {\n const showError = this.variant === 'error' && this.errorMessage;\n const showHelper = this.helperText && !showError;\n if (showError) return 'error-message';\n if (showHelper) return 'helper-text';\n return '';\n }\n\n render() {\n const showError = this.variant === 'error' && this.errorMessage;\n const showHelper = this.helperText && !showError;\n\n return html`\n <div class=\"input-wrapper\">\n ${this.label\n ? html`\n <label class=\"input-label\" for=\"input\">\n ${this.label}\n ${this.required\n ? html`<span class=\"input-required\">*</span>`\n : ''}\n </label>\n `\n : ''}\n\n <input\n part=\"input\"\n id=\"input\"\n class=\"input input--${this.variant} input--${this.size}\"\n type=${this.type}\n .value=${live(this.value)}\n placeholder=${ifDefined(this.placeholder)}\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?readonly=${this.readonly}\n name=${ifDefined(this.name)}\n autocomplete=${ifDefined(this.autocomplete)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n pattern=${ifDefined(this.pattern)}\n step=${ifDefined(this.step)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n inputmode=${ifDefined(this.inputmode)}\n aria-invalid=${this.variant === 'error' ? 'true' : 'false'}\n aria-describedby=${this.messageId || nothing}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${showError\n ? html`\n <div\n id=\"error-message\"\n class=\"input-message input-message--error\"\n role=\"alert\"\n >\n ${this.errorMessage}\n </div>\n `\n : ''}\n ${showHelper\n ? html`<div id=\"helper-text\" class=\"input-message\">\n ${this.helperText}\n </div>`\n : ''}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-input': BpInput;\n }\n}\n"],"names":["inputStyles","css","BpInput","LitElement","debounce","value","originalEvent","e","target","showError","showHelper","html","live","ifDefined","nothing","__decorateClass","property","query","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.js","sources":["../../source/components/link/link.style.ts","../../source/components/link/link.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const linkStyles = css`\n /* Base styles */\n :host {\n display: inline;\n }\n\n .link {\n display: inline;\n font-family: var(--bp-font-family);\n font-size: inherit;\n font-weight: inherit;\n color: var(--bp-color-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color var(--bp-transition-fast);\n }\n\n .link:hover {\n color: var(--bp-color-primary-hover);\n }\n\n .link:active {\n color: var(--bp-color-primary-active);\n transform: translateY(var(--bp-spacing-0-5));\n }\n\n .link:visited {\n color: var(--bp-color-primary);\n }\n\n .link:visited:hover {\n color: var(--bp-color-primary-hover);\n }\n\n .link:focus-visible {\n outline: var(--bp-focus-width) solid var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n border-radius: var(--bp-border-radius-sm);\n }\n\n .link[aria-disabled='true'] {\n color: var(--bp-color-text-muted);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Variants */\n .link--primary {\n font-weight: var(--bp-font-weight-semibold);\n }\n\n .link--muted {\n color: var(--bp-color-text-muted);\n }\n\n .link--muted:hover {\n color: var(--bp-color-text);\n }\n\n .link--muted:active {\n color: var(--bp-color-text);\n }\n\n .link--muted:visited {\n color: var(--bp-color-text-muted);\n }\n\n /* Underline variants */\n .link--underline-always {\n text-decoration: underline;\n }\n\n .link--underline-hover {\n text-decoration: underline;\n text-decoration-color: transparent;\n transition: text-decoration-color var(--bp-transition-fast);\n }\n\n .link--underline-hover:hover {\n text-decoration-color: currentColor;\n }\n\n .link--underline-none {\n text-decoration: none;\n }\n\n .link--underline-none:hover {\n text-decoration: none;\n }\n\n /* Size variants */\n .link--size-sm {\n font-size: var(--bp-font-size-sm);\n }\n\n .link--size-md {\n font-size: inherit;\n }\n\n .link--size-lg {\n font-size: var(--bp-font-size-lg);\n }\n\n /* External link indicator */\n .link[target='_blank']::after {\n content: '↗';\n margin-left: var(--bp-spacing-1);\n vertical-align: super;\n line-height: 0;\n opacity: 0.75;\n transition: opacity var(--bp-transition-fast);\n }\n\n .link[target='_blank']:hover::after {\n opacity: 1;\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { linkStyles } from './link.style.js';\n\nexport type LinkVariant = 'default' | 'primary' | 'muted';\nexport type LinkUnderline = 'always' | 'hover' | 'none';\nexport type LinkSize = 'sm' | 'md' | 'lg';\n\n/**\n * A link component that provides styled anchor elements with variants.\n * Supports internal and external links with accessibility features.\n */\n@customElement('bp-link')\nexport class BpLink extends LitElement {\n /**\n * The URL the link points to.\n * @type {string}\n * @default ''\n */\n @property({ type: String, reflect: true }) declare href: string;\n\n /**\n * Where to display the linked URL (same semantics as anchor target).\n * @type {string}\n * @default ''\n */\n @property({ type: String, reflect: true }) declare target: string;\n\n /**\n * Relationship of the linked URL (same semantics as anchor rel).\n * @type {string}\n * @default ''\n */\n @property({ type: String, reflect: true }) declare rel: string;\n\n /**\n * Visual variant of the link.\n * @type {'default' | 'primary' | 'muted'}\n * @default 'default'\n */\n @property({ type: String, reflect: true }) declare variant: LinkVariant;\n\n /**\n * Underline style for the link.\n * @type {'always' | 'hover' | 'none'}\n * @default 'hover'\n */\n @property({ type: String, reflect: true }) declare underline: LinkUnderline;\n\n /**\n * Size of the link text.\n * @type {'sm' | 'md' | 'lg'}\n * @default 'md'\n */\n @property({ type: String, reflect: true }) declare size: LinkSize;\n\n /**\n * Whether the link is disabled.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n static styles = [linkStyles];\n\n constructor() {\n super();\n this.href = '';\n this.target = '';\n this.rel = '';\n this.variant = 'default';\n this.underline = 'hover';\n this.size = 'md';\n this.disabled = false;\n }\n\n private handleClick(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n render() {\n const isExternal = this.target === '_blank';\n const computedRel =\n this.rel || (isExternal ? 'noopener noreferrer' : undefined);\n\n return html`\n <a\n class=\"link link--${this.variant} link--underline-${this\n .underline} link--size-${this.size}\"\n href=${ifDefined(this.disabled ? undefined : this.href || undefined)}\n target=${ifDefined(this.target || undefined)}\n rel=${ifDefined(computedRel)}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n @click=${this.handleClick}\n part=\"link\"\n >\n <slot></slot>\n </a>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-link': BpLink;\n }\n}\n"],"names":["linkStyles","css","BpLink","LitElement","event","isExternal","computedRel","html","ifDefined","__decorateClass","property","customElement"],"mappings":";;;AAEO,MAAMA,IAAaC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACYnB,IAAMC,IAAN,cAAqBC,EAAW;AAAA,EAoDrC,cAAc;AACZ,UAAA,GACA,KAAK,OAAO,IACZ,KAAK,SAAS,IACd,KAAK,MAAM,IACX,KAAK,UAAU,WACf,KAAK,YAAY,SACjB,KAAK,OAAO,MACZ,KAAK,WAAW;AAAA,EAClB;AAAA,EAEQ,YAAYC,GAAmB;AACrC,IAAI,KAAK,YACPA,EAAM,eAAA;AAAA,EAEV;AAAA,EAEA,SAAS;AACP,UAAMC,IAAa,KAAK,WAAW,UAC7BC,IACJ,KAAK,QAAQD,IAAa,wBAAwB;AAEpD,WAAOE;AAAA;AAAA,4BAEiB,KAAK,OAAO,oBAAoB,KACjD,SAAS,eAAe,KAAK,IAAI;AAAA,eAC7BC,EAAU,KAAK,WAAW,SAAY,KAAK,QAAQ,MAAS,CAAC;AAAA,iBAC3DA,EAAU,KAAK,UAAU,MAAS,CAAC;AAAA,cACtCA,EAAUF,CAAW,CAAC;AAAA,wBACZ,KAAK,WAAW,SAAS,OAAO;AAAA,iBACvC,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B;AACF;AAzFaJ,EAkDJ,SAAS,CAACF,CAAU;AA5CwBS,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAN9BR,EAMwC,WAAA,QAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAb9BR,EAawC,WAAA,UAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GApB9BR,EAoBwC,WAAA,OAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GA3B9BR,EA2BwC,WAAA,WAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAlC9BR,EAkCwC,WAAA,aAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAzC9BR,EAyCwC,WAAA,QAAA,CAAA;AAOCO,EAAA;AAAA,EAAnDC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAhD/BR,EAgDyC,WAAA,YAAA,CAAA;AAhDzCA,IAANO,EAAA;AAAA,EADNE,EAAc,SAAS;AAAA,GACXT,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu.js","sources":["../../source/components/menu/menu.style.ts","../../source/components/menu/menu.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const menuStyles = css`\n /* Base styles - Menu Container */\n :host {\n display: block;\n }\n\n .menu {\n display: flex;\n flex-direction: column;\n min-width: 200px;\n padding: var(--bp-spacing-xs) 0;\n margin: 0;\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-md);\n box-shadow: var(--bp-shadow-lg);\n font-family: var(--bp-font-sans);\n list-style: none;\n outline: none;\n }\n\n /* Menu Sizes */\n .menu--sm {\n min-width: 160px;\n }\n\n .menu--lg {\n min-width: 280px;\n }\n\n /* Menu Item Base */\n .menu-item {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-sm);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n margin: 0 var(--bp-spacing-xs);\n min-height: 40px;\n border-radius: var(--bp-border-radius-sm);\n background-color: transparent;\n color: var(--bp-color-text);\n font-family: var(--bp-font-sans);\n font-size: var(--bp-font-size-base);\n font-weight: var(--bp-font-weight-normal);\n line-height: var(--bp-line-height-normal);\n text-decoration: none;\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n transform var(--bp-transition-fast);\n user-select: none;\n outline: none;\n }\n\n /* Menu Item Sizes */\n .menu-item--sm {\n padding: var(--bp-spacing-sm) var(--bp-spacing-sm);\n min-height: 36px;\n font-size: var(--bp-font-size-sm);\n }\n\n .menu-item--lg {\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n min-height: 48px;\n font-size: var(--bp-font-size-lg);\n }\n\n /* Menu Item States */\n .menu-item:hover:not(.menu-item--disabled) {\n background-color: var(--bp-color-surface);\n }\n\n .menu-item:focus-visible:not(.menu-item--disabled) {\n background-color: var(--bp-color-surface);\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-primary);\n outline-offset: var(--bp-focus-offset);\n }\n\n .menu-item:active:not(.menu-item--disabled) {\n background-color: var(--bp-color-surface);\n transform: scale(0.98);\n }\n\n .menu-item--selected {\n background-color: var(--bp-color-surface);\n font-weight: var(--bp-font-weight-medium);\n }\n\n .menu-item--selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n background-color: var(--bp-color-primary);\n border-radius: 0 var(--bp-border-radius-sm) var(--bp-border-radius-sm) 0;\n }\n\n .menu-item--disabled {\n color: var(--bp-color-text-muted);\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Menu Item Parts */\n .menu-item__prefix {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n .menu-item__prefix:empty {\n display: none;\n }\n\n .menu-item__label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .menu-item__suffix {\n display: inline-flex;\n align-items: center;\n gap: var(--bp-spacing-sm);\n flex-shrink: 0;\n margin-left: auto;\n }\n\n .menu-item__suffix:empty {\n display: none;\n }\n\n .menu-item__shortcut {\n color: var(--bp-color-text-muted);\n font-size: var(--bp-font-size-sm);\n font-family: var(--bp-font-mono);\n padding: 2px var(--bp-spacing-xs);\n background-color: var(--bp-color-surface);\n border-radius: var(--bp-border-radius-sm);\n border: var(--bp-border-width) solid var(--bp-color-border);\n }\n\n .menu-item__arrow {\n color: var(--bp-color-text-muted);\n font-size: var(--bp-font-size-lg);\n line-height: 1;\n }\n\n /* Menu Divider */\n .menu-divider {\n height: var(--bp-border-width);\n margin: var(--bp-spacing-sm) var(--bp-spacing-sm);\n background-color: var(--bp-color-border);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { menuStyles } from './menu.style.js';\n\nexport type MenuSize = 'sm' | 'md' | 'lg';\n\n/**\n * A menu container component for displaying a list of actions or options.\n *\n * @fires bp-menu-select - Dispatched when a menu item is selected\n *\n * @slot - Menu items (bp-menu-item, bp-menu-divider)\n *\n * @csspart container - The menu container element\n */\n@customElement('bp-menu')\nexport class BpMenu extends LitElement {\n /** Size variant for all menu items */\n @property({ type: String }) declare size: MenuSize;\n\n /** Current focused item index for keyboard navigation */\n @state() private focusedIndex = -1;\n\n static styles = [menuStyles];\n\n constructor() {\n super();\n this.size = 'md';\n }\n\n private handleFocusIn = (event: FocusEvent) => {\n const target = event.target as BpMenuItem;\n const items = this.menuItems;\n this.focusedIndex = items.indexOf(target);\n };\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('focusin', this.handleFocusIn);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('focusin', this.handleFocusIn);\n }\n\n /**\n * Gets all non-divider menu items from the default slot.\n * @returns Array of bp-menu-item elements\n */\n private get menuItems(): BpMenuItem[] {\n const slot = this.shadowRoot?.querySelector('slot');\n if (!slot) return [];\n return slot\n .assignedElements()\n .filter((el): el is BpMenuItem => el.tagName === 'BP-MENU-ITEM');\n }\n\n /**\n * Handles keyboard navigation within the menu.\n * Supports ArrowDown, ArrowUp, Home, and End keys.\n */\n private handleKeyDown(event: KeyboardEvent) {\n const items = this.menuItems.filter((item) => !item.disabled);\n if (items.length === 0) return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.focusedIndex = Math.min(this.focusedIndex + 1, items.length - 1);\n items[this.focusedIndex]?.focus();\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusedIndex = Math.max(this.focusedIndex - 1, 0);\n items[this.focusedIndex]?.focus();\n break;\n case 'Home':\n event.preventDefault();\n this.focusedIndex = 0;\n items[0]?.focus();\n break;\n case 'End':\n event.preventDefault();\n this.focusedIndex = items.length - 1;\n items[items.length - 1]?.focus();\n break;\n }\n }\n\n private handleSlotChange() {\n // Update size on all menu items\n this.menuItems.forEach((item) => {\n item.size = this.size;\n });\n }\n\n render() {\n return html`\n <div\n class=\"menu menu--${this.size}\"\n part=\"container\"\n role=\"menu\"\n @keydown=${this.handleKeyDown}\n >\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n `;\n }\n}\n\n/**\n * A menu item component for use within bp-menu.\n *\n * @fires bp-select - Dispatched when the item is selected\n *\n * @slot - Item label content\n * @slot prefix - Content before the label (typically an icon)\n * @slot suffix - Content after the label (typically a shortcut or arrow)\n *\n * @csspart base - The menu item container\n * @csspart prefix - The prefix slot container\n * @csspart label - The label container\n * @csspart suffix - The suffix slot container\n */\n@customElement('bp-menu-item')\nexport class BpMenuItem extends LitElement {\n /** The value associated with this menu item */\n @property({ type: String }) declare value: string;\n\n /** Whether the item is disabled */\n @property({ type: Boolean }) declare disabled: boolean;\n\n /** Whether the item is selected/active */\n @property({ type: Boolean }) declare selected: boolean;\n\n /** Whether the item has a submenu */\n @property({ type: Boolean, attribute: 'has-submenu' })\n declare hasSubmenu: boolean;\n\n /** Size variant (inherited from parent menu) */\n @property({ type: String }) declare size: MenuSize;\n\n /** Keyboard shortcut hint to display */\n @property({ type: String }) declare shortcut: string;\n\n static styles = [menuStyles];\n\n constructor() {\n super();\n this.value = '';\n this.disabled = false;\n this.selected = false;\n this.hasSubmenu = false;\n this.size = 'md';\n this.shortcut = '';\n }\n\n focus() {\n const button = this.shadowRoot?.querySelector('.menu-item') as HTMLElement;\n button?.focus();\n }\n\n private handleActivate() {\n if (this.disabled) return;\n\n this.dispatchEvent(\n new CustomEvent('bp-menu-select', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleClick(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.handleActivate();\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleActivate();\n }\n }\n\n render() {\n return html`\n <div\n class=\"menu-item menu-item--${this.size} ${this.disabled\n ? 'menu-item--disabled'\n : ''} ${this.selected ? 'menu-item--selected' : ''}\"\n part=\"base\"\n role=\"menuitem\"\n tabindex=${this.disabled ? -1 : 0}\n aria-disabled=${this.disabled}\n aria-current=${this.selected ? 'page' : 'false'}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <span class=\"menu-item__prefix\" part=\"prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n <span class=\"menu-item__label\" part=\"label\">\n <slot></slot>\n </span>\n <span class=\"menu-item__suffix\" part=\"suffix\">\n ${this.shortcut\n ? html`<span class=\"menu-item__shortcut\">${this.shortcut}</span>`\n : nothing}\n <slot name=\"suffix\"></slot>\n ${this.hasSubmenu\n ? html`<span class=\"menu-item__arrow\">›</span>`\n : nothing}\n </span>\n </div>\n `;\n }\n}\n\n/**\n * A divider for visually separating menu items.\n *\n * @csspart divider - The divider element\n */\n@customElement('bp-menu-divider')\nexport class BpMenuDivider extends LitElement {\n static styles = [menuStyles];\n\n render() {\n return html`<div\n class=\"menu-divider\"\n part=\"divider\"\n role=\"separator\"\n ></div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-menu': BpMenu;\n 'bp-menu-item': BpMenuItem;\n 'bp-menu-divider': BpMenuDivider;\n }\n}\n"],"names":["menuStyles","css","BpMenu","LitElement","event","target","items","slot","el","item","html","__decorateClass","property","state","customElement","BpMenuItem","nothing","BpMenuDivider"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.js","sources":["../../source/components/modal/modal.style.ts","../../source/components/modal/modal.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const modalStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n :host([open]) {\n display: block;\n }\n\n :host(:not([open])) {\n display: none;\n }\n\n /* Backdrop */\n .modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: var(--bp-z-modal);\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--bp-color-backdrop);\n animation: fadeIn var(--bp-duration-fast) var(--bp-ease-out);\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes slideUp {\n from {\n transform: translateY(var(--bp-spacing-8));\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n /* Dialog */\n .modal-dialog {\n position: relative;\n background-color: var(--bp-color-surface-elevated);\n border-radius: var(--bp-border-radius-lg);\n box-shadow: var(--bp-shadow-xl);\n max-height: 90vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: slideUp var(--bp-duration-normal) var(--bp-ease-out);\n outline: none;\n }\n\n /* Header */\n .modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--bp-spacing-md);\n padding: var(--bp-spacing-6);\n border-bottom: var(--bp-border-width) solid var(--bp-color-border);\n font-family: var(--bp-font-family);\n }\n\n ::slotted([slot='header']) {\n flex: 1;\n font-size: var(--bp-font-size-xl);\n font-weight: var(--bp-font-weight-semibold);\n color: var(--bp-color-text-strong);\n line-height: var(--bp-line-height-tight);\n margin: 0;\n }\n\n /* Close button */\n .modal-close {\n appearance: none;\n background: transparent;\n border: none;\n padding: var(--bp-spacing-2);\n cursor: pointer;\n color: var(--bp-color-text-muted);\n border-radius: var(--bp-border-radius-md);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all var(--bp-transition-fast);\n flex-shrink: 0;\n }\n\n .modal-close:hover {\n background-color: var(--bp-color-surface);\n color: var(--bp-color-text);\n }\n\n .modal-close:focus-visible {\n outline: var(--bp-focus-ring);\n outline-offset: var(--bp-focus-offset);\n }\n\n .modal-close svg {\n display: block;\n }\n\n /* Body */\n .modal-body {\n flex: 1;\n padding: var(--bp-spacing-6);\n overflow-y: auto;\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n line-height: var(--bp-line-height-relaxed);\n color: var(--bp-color-text);\n }\n\n /* Footer */\n .modal-footer {\n padding: var(--bp-spacing-6);\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n display: flex;\n gap: var(--bp-spacing-3);\n justify-content: flex-end;\n align-items: center;\n }\n\n .modal-footer:empty {\n display: none;\n }\n\n /* Sizes */\n .modal-dialog--sm {\n width: 90%;\n max-width: calc(var(--bp-spacing-24) * 4 + var(--bp-spacing-16));\n }\n\n .modal-dialog--md {\n width: 90%;\n max-width: var(--bp-breakpoint-sm);\n }\n\n .modal-dialog--lg {\n width: 90%;\n max-width: var(--bp-breakpoint-md);\n }\n\n /* States */\n .modal-dialog:focus {\n outline: none;\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { modalStyles } from './modal.style.js';\n\nexport type ModalSize = 'sm' | 'md' | 'lg';\n\n@customElement('bp-modal')\nexport class BpModal extends LitElement {\n /** Whether the modal is currently open */\n @property({ type: Boolean, reflect: true }) declare open: boolean;\n\n /** Size variant of the modal */\n @property({ type: String, reflect: true }) declare size: ModalSize;\n\n /** ID for aria-labelledby attribute - should match header content */\n @property({ type: String, attribute: 'aria-labelledby' })\n declare ariaLabelledby: string;\n\n /** Dialog element reference for focus management */\n @query('.modal-dialog') private dialogElement!: HTMLElement;\n\n /** Store the element that had focus before modal opened */\n @state() private previouslyFocusedElement: HTMLElement | null = null;\n\n /** Track if body scroll is prevented */\n @state() private bodyScrollPrevented = false;\n\n static styles = [modalStyles];\n\n constructor() {\n super();\n this.open = false;\n this.size = 'md';\n this.ariaLabelledby = '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this.handleKeyDown);\n this.restoreFocus();\n this.restoreBodyScroll();\n }\n\n updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.handleOpen();\n } else {\n this.handleClose();\n }\n }\n }\n\n private handleOpen() {\n // Store previously focused element\n this.previouslyFocusedElement = document.activeElement as HTMLElement;\n\n // Prevent body scroll\n this.preventBodyScroll();\n\n // Set focus to dialog after it's rendered\n this.updateComplete.then(() => {\n this.setFocusToDialog();\n });\n }\n\n private handleClose() {\n this.restoreFocus();\n this.restoreBodyScroll();\n }\n\n private preventBodyScroll() {\n if (!this.bodyScrollPrevented) {\n document.body.style.overflow = 'hidden';\n this.bodyScrollPrevented = true;\n }\n }\n\n private restoreBodyScroll() {\n if (this.bodyScrollPrevented) {\n document.body.style.overflow = '';\n this.bodyScrollPrevented = false;\n }\n }\n\n private setFocusToDialog() {\n if (this.dialogElement) {\n this.dialogElement.focus();\n }\n }\n\n private restoreFocus() {\n if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n\n private handleKeyDown = (event: globalThis.KeyboardEvent) => {\n if (event.key === 'Escape' && this.open) {\n event.preventDefault();\n this.close();\n }\n\n // Trap focus within modal\n if (event.key === 'Tab' && this.open) {\n this.trapFocus(event);\n }\n };\n\n private trapFocus(event: globalThis.KeyboardEvent) {\n const focusableElements = this.getFocusableElements();\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n if (event.shiftKey) {\n // Shift + Tab\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else {\n // Tab\n if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (!this.shadowRoot) return [];\n\n const focusableSelectors = [\n 'button:not([disabled])',\n 'a[href]',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ];\n\n const elements = this.shadowRoot.querySelectorAll(\n focusableSelectors.join(',')\n );\n return Array.from(elements) as HTMLElement[];\n }\n\n private handleBackdropClick = (event: MouseEvent) => {\n // Only close if clicking directly on backdrop (not bubbled from dialog)\n if (event.target === event.currentTarget) {\n this.close();\n }\n };\n\n private handleCloseButtonClick = () => {\n this.close();\n };\n\n private close() {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent('bp-close', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n render() {\n if (!this.open) {\n return html``;\n }\n\n const dialogClasses = {\n 'modal-dialog': true,\n [`modal-dialog--${this.size}`]: true,\n };\n\n return html`\n <div\n class=\"modal-backdrop\"\n part=\"backdrop\"\n @click=${this.handleBackdropClick}\n >\n <div\n class=${classMap(dialogClasses)}\n part=\"dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=${this.ariaLabelledby || 'modal-header'}\n tabindex=\"-1\"\n >\n <div class=\"modal-header\" part=\"header\">\n <slot name=\"header\"></slot>\n <button\n class=\"modal-close\"\n part=\"close-button\"\n type=\"button\"\n aria-label=\"Close\"\n @click=${this.handleCloseButtonClick}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\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 <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n <div class=\"modal-body\" part=\"body\">\n <slot></slot>\n </div>\n <div class=\"modal-footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-modal': BpModal;\n }\n}\n"],"names":["modalStyles","css","BpModal","LitElement","event","changedProperties","focusableElements","firstElement","lastElement","focusableSelectors","elements","html","dialogClasses","classMap","__decorateClass","property","query","state","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-select.js","sources":["../../source/components/multi-select/multi-select.style.ts","../../source/components/multi-select/multi-select.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const multiSelectStyles = css`\n /* Base styles */\n :host {\n display: block;\n font-family: var(--bp-font-family);\n }\n\n .multi-select {\n position: relative;\n width: 100%;\n }\n\n .multi-select__control {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--bp-spacing-sm);\n min-height: var(--bp-spacing-10);\n padding: var(--bp-spacing-xs) var(--bp-spacing-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-md);\n cursor: pointer;\n transition: border-color var(--bp-transition-fast);\n }\n\n .multi-select__control:hover:not(\n .multi-select--disabled .multi-select__control\n ) {\n border-color: var(--bp-color-primary);\n }\n\n .multi-select__control:focus-visible {\n outline: var(--bp-focus-width) solid var(--bp-color-focus);\n outline-offset: var(--bp-focus-width);\n }\n\n .multi-select__value-container {\n display: flex;\n flex-wrap: wrap;\n gap: var(--bp-spacing-xs);\n flex: 1;\n min-width: 0;\n }\n\n .multi-select__placeholder {\n color: var(--bp-color-text-muted);\n user-select: none;\n }\n\n .multi-select__tag {\n display: inline-flex;\n align-items: center;\n gap: var(--bp-spacing-xs);\n padding: var(--bp-spacing-2xs) var(--bp-spacing-xs);\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n color: var(--bp-color-primary);\n border: none;\n border-radius: var(--bp-border-radius-md);\n font-size: var(--bp-font-size-sm);\n max-width: 100%;\n }\n\n .multi-select__tag-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .multi-select__tag-remove {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-4);\n height: var(--bp-spacing-4);\n padding: 0;\n background: transparent;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-primary);\n cursor: pointer;\n font-size: var(--bp-font-size-lg);\n line-height: 1;\n transition: all var(--bp-transition-fast);\n }\n\n .multi-select__tag-remove:hover {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 15%,\n transparent\n );\n color: var(--bp-color-primary);\n }\n\n .multi-select__tag-remove:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .multi-select__indicators {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-xs);\n flex-shrink: 0;\n }\n\n .multi-select__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 .multi-select__clear:hover {\n background-color: var(--bp-color-surface-subdued);\n color: var(--bp-color-text);\n }\n\n .multi-select__clear:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .multi-select__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 .multi-select--open .multi-select__dropdown-indicator {\n transform: rotate(180deg);\n }\n\n .multi-select__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-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 .multi-select--open .multi-select__dropdown {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n }\n\n .multi-select__options {\n list-style: none;\n margin: 0;\n padding: var(--bp-spacing-2xs);\n }\n\n .multi-select__option {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-sm);\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 .multi-select__option:hover {\n background-color: var(--bp-color-surface-elevated);\n }\n\n .multi-select__option--focused {\n background-color: var(--bp-color-surface-subdued);\n outline: var(--bp-focus-width) solid var(--bp-color-primary);\n outline-offset: calc(-1 * var(--bp-focus-width));\n }\n\n .multi-select__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 .multi-select__option--selected:hover {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 12%,\n transparent\n );\n }\n\n .multi-select__option--empty {\n color: var(--bp-color-text-muted);\n cursor: default;\n text-align: center;\n padding: var(--bp-spacing-xl) var(--bp-spacing-lg);\n font-style: italic;\n }\n\n .multi-select__checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-4);\n height: var(--bp-spacing-4);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n font-size: var(--bp-font-size-xs);\n flex-shrink: 0;\n transition: all var(--bp-transition-fast);\n }\n\n .multi-select__option--selected .multi-select__checkbox {\n border-color: var(--bp-color-primary);\n background-color: var(--bp-color-primary);\n color: var(--bp-color-text-inverse);\n }\n\n .multi-select__option-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* Sizes */\n .multi-select--sm .multi-select__control {\n min-height: var(--bp-spacing-8);\n padding: var(--bp-spacing-2xs) var(--bp-spacing-xs);\n font-size: var(--bp-font-size-sm);\n }\n\n .multi-select--sm .multi-select__tag {\n padding: var(--bp-spacing-0-5) var(--bp-spacing-2xs);\n font-size: var(--bp-font-size-xs);\n }\n\n .multi-select--lg .multi-select__control {\n min-height: var(--bp-spacing-12);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n font-size: var(--bp-font-size-lg);\n }\n\n .multi-select--lg .multi-select__tag {\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n font-size: var(--bp-font-size-base);\n }\n\n /* Variants */\n .multi-select--default .multi-select__control {\n border-color: var(--bp-color-border);\n }\n\n .multi-select--success .multi-select__control {\n border-color: var(--bp-color-success);\n }\n\n .multi-select--error .multi-select__control {\n border-color: var(--bp-color-error);\n }\n\n .multi-select--warning .multi-select__control {\n border-color: var(--bp-color-warning);\n }\n\n .multi-select--info .multi-select__control {\n border-color: var(--bp-color-info);\n }\n\n .multi-select--success\n .multi-select__control:hover:not(\n .multi-select--disabled .multi-select__control\n ) {\n border-color: var(--bp-color-success);\n }\n\n .multi-select--error\n .multi-select__control:hover:not(\n .multi-select--disabled .multi-select__control\n ) {\n border-color: var(--bp-color-error);\n }\n\n .multi-select--warning\n .multi-select__control:hover:not(\n .multi-select--disabled .multi-select__control\n ) {\n border-color: var(--bp-color-warning);\n }\n\n .multi-select--info\n .multi-select__control:hover:not(\n .multi-select--disabled .multi-select__control\n ) {\n border-color: var(--bp-color-info);\n }\n\n /* States */\n .multi-select--disabled .multi-select__control {\n background-color: var(--bp-color-surface-subdued);\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .multi-select--disabled .multi-select__placeholder {\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","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { multiSelectStyles } from './multi-select.style.js';\nimport { memoizeOne } from '../../utilities/memoize.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\n\nexport type MultiSelectSize = 'sm' | 'md' | 'lg';\nexport type MultiSelectVariant =\n | 'default'\n | 'success'\n | 'error'\n | 'warning'\n | 'info';\n\nexport interface MultiSelectOption {\n value: string;\n label: string;\n}\n\n@customElement('bp-multi-select')\nexport class BpMultiSelect extends LitElement {\n /** The current selected values as an array */\n @property({ type: Array }) declare value: string[];\n\n /** Name attribute for form submission */\n @property({ type: String }) declare name: string;\n\n /** Placeholder text when no values are selected */\n @property({ type: String }) declare placeholder: string;\n\n /** Whether the multi-select is disabled */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n /** Whether the multi-select is required */\n @property({ type: Boolean, reflect: true }) declare required: boolean;\n\n /** Size variant of the multi-select */\n @property({ type: String, reflect: true }) declare size: MultiSelectSize;\n\n /** Visual variant for validation states */\n @property({ type: String, reflect: true })\n declare variant: MultiSelectVariant;\n\n /** Maximum number of selections allowed (0 = unlimited) */\n @property({ type: Number, attribute: 'max-selections' })\n declare maxSelections: number;\n\n /** Whether to show a clear all button */\n @property({ converter: booleanConverter }) declare clearable: boolean;\n\n /** Whether the dropdown is currently open */\n @state() private isOpen = false;\n\n /** Index of the focused option for keyboard navigation */\n @state() private focusedIndex = -1;\n\n /** Cached options from slotted elements */\n @state() private cachedOptions: MultiSelectOption[] = [];\n\n /**\n * Memoized label lookup map for efficient tag rendering.\n * Only recomputes when cachedOptions reference changes.\n */\n private computeLabelMap = memoizeOne(\n (options: MultiSelectOption[]): Map<string, string> => {\n const map = new Map<string, string>();\n for (const opt of options) {\n map.set(opt.value, opt.label);\n }\n return map;\n }\n );\n\n static styles = [multiSelectStyles];\n\n constructor() {\n super();\n this.value = [];\n this.name = '';\n this.placeholder = 'Select options';\n this.disabled = false;\n this.required = false;\n this.size = 'md';\n this.variant = 'default';\n this.maxSelections = 0;\n this.clearable = true;\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this.handleDocumentClick, {\n passive: true,\n });\n // Initialize cached options and pre-selected values after first render\n this.updateComplete.then(() => {\n this.cachedOptions = this.getOptions();\n this.initializeSelectedValues();\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this.handleDocumentClick, {\n passive: true,\n } as EventListenerOptions);\n }\n\n private handleDocumentClick = (event: MouseEvent) => {\n if (!this.contains(event.target as globalThis.Node)) {\n this.isOpen = false;\n this.focusedIndex = -1;\n }\n };\n\n private handleToggle = (event?: Event) => {\n event?.stopPropagation();\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.focusedIndex = 0;\n }\n };\n\n private getOptions(): MultiSelectOption[] {\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 * Handle slot changes by refreshing the cached options.\n */\n private handleSlotChange = () => {\n this.cachedOptions = this.getOptions();\n this.initializeSelectedValues();\n };\n\n /**\n * Read the `selected` attribute from slotted <option> elements\n * and set the initial value array if no values are already set.\n */\n private initializeSelectedValues() {\n if (this.value.length > 0) return;\n\n const slot = this.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements() || [];\n const selectedValues = assignedElements\n .filter(\n (el): el is globalThis.HTMLOptionElement =>\n el.tagName === 'OPTION' && el.hasAttribute('selected')\n )\n .map((el) => el.value || el.textContent || '');\n\n if (selectedValues.length > 0) {\n this.value = selectedValues;\n }\n }\n\n private isSelected(value: string): boolean {\n return this.value.includes(value);\n }\n\n private dispatchChangeEvent(newValue: string[], previousValue: string[]) {\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: newValue,\n previousValue,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleOptionClick = (option: MultiSelectOption) => {\n if (this.disabled) return;\n\n const previousValue = [...this.value];\n let newValue: string[];\n\n if (this.isSelected(option.value)) {\n // Deselect — but prevent removing the last item when not clearable\n newValue = this.value.filter((v) => v !== option.value);\n if (!this.clearable && newValue.length === 0) {\n return;\n }\n } else {\n // Select (check max selections)\n if (this.maxSelections > 0 && this.value.length >= this.maxSelections) {\n return;\n }\n newValue = [...this.value, option.value];\n }\n\n this.value = newValue;\n this.dispatchChangeEvent(newValue, previousValue);\n };\n\n private handleRemoveTag = (value: string, event: Event) => {\n event.stopPropagation();\n if (this.disabled) return;\n\n const previousValue = [...this.value];\n const newValue = this.value.filter((v) => v !== value);\n this.value = newValue;\n this.dispatchChangeEvent(newValue, previousValue);\n };\n\n private handleClearAll = (event: Event) => {\n event.stopPropagation();\n if (this.disabled) return;\n\n const previousValue = [...this.value];\n const newValue: string[] = [];\n this.value = newValue;\n this.dispatchChangeEvent(newValue, previousValue);\n };\n\n private handleKeyDown = (event: globalThis.KeyboardEvent) => {\n if (this.disabled) return;\n\n const options = this.cachedOptions;\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.isOpen && this.focusedIndex >= 0) {\n const option = options[this.focusedIndex];\n if (option) {\n this.handleOptionClick(option);\n }\n } else {\n this.handleToggle();\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.isOpen = false;\n this.focusedIndex = -1;\n break;\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 options.length - 1\n );\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isOpen) {\n this.isOpen = true;\n this.focusedIndex = options.length - 1;\n } else {\n this.focusedIndex = Math.max(this.focusedIndex - 1, 0);\n }\n break;\n }\n };\n\n private getLabelForValue(value: string): string {\n const labelMap = this.computeLabelMap(this.cachedOptions);\n return labelMap.get(value) || value;\n }\n\n private renderDropdown() {\n const options = this.cachedOptions;\n\n return html`\n <div class=\"multi-select__dropdown\" part=\"dropdown\">\n <ul\n class=\"multi-select__options\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n >\n ${options.length === 0\n ? html`<li class=\"multi-select__option multi-select__option--empty\">\n No options available\n </li>`\n : repeat(\n options,\n (opt) => opt.value,\n (opt, index) => {\n const selected = this.isSelected(opt.value);\n const focused = index === this.focusedIndex;\n return html`\n <li\n class=${classMap({\n 'multi-select__option': true,\n 'multi-select__option--selected': selected,\n 'multi-select__option--focused': focused,\n })}\n role=\"option\"\n aria-selected=${selected}\n @click=${() => this.handleOptionClick(opt)}\n part=\"option ${selected ? 'option-selected' : ''}\"\n >\n <span class=\"multi-select__checkbox\">\n ${selected ? '\\u2713' : ''}\n </span>\n <span class=\"multi-select__option-label\"\n >${opt.label}</span\n >\n </li>\n `;\n }\n )}\n </ul>\n </div>\n `;\n }\n\n render() {\n const hasSelection = this.value.length > 0;\n\n return html`\n <div\n class=${classMap({\n 'multi-select': true,\n 'multi-select--open': this.isOpen,\n 'multi-select--disabled': this.disabled,\n [`multi-select--${this.size}`]: true,\n [`multi-select--${this.variant}`]: true,\n })}\n >\n <div\n class=\"multi-select__control\"\n @click=${this.handleToggle}\n @keydown=${this.handleKeyDown}\n tabindex=${this.disabled ? '-1' : '0'}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.isOpen}\n aria-disabled=${this.disabled}\n part=\"control\"\n >\n <div class=\"multi-select__value-container\">\n ${hasSelection\n ? repeat(\n this.value,\n (v) => v,\n (v) => html`\n <span class=\"multi-select__tag\" part=\"tag\">\n <span class=\"multi-select__tag-label\">\n ${this.getLabelForValue(v)}\n </span>\n ${this.clearable\n ? html`<button\n type=\"button\"\n class=\"multi-select__tag-remove\"\n @click=${(e: Event) => this.handleRemoveTag(v, e)}\n aria-label=\"Remove ${this.getLabelForValue(v)}\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n >\n ×\n </button>`\n : nothing}\n </span>\n `\n )\n : html`<span class=\"multi-select__placeholder\"\n >${this.placeholder}</span\n >`}\n </div>\n\n <div class=\"multi-select__indicators\">\n ${this.clearable && hasSelection\n ? html`\n <button\n type=\"button\"\n class=\"multi-select__clear\"\n @click=${this.handleClearAll}\n aria-label=\"Clear all selections\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n part=\"clear-button\"\n >\n ×\n </button>\n `\n : ''}\n <span class=\"multi-select__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 inputs for form submission -->\n ${this.value.map(\n (v) => html`\n <input type=\"hidden\" name=\"${this.name}\" value=\"${v}\" />\n `\n )}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-multi-select': BpMultiSelect;\n }\n}\n"],"names":["multiSelectStyles","css","BpMultiSelect","LitElement","memoizeOne","options","map","opt","event","option","previousValue","newValue","v","value","el","selectedValues","html","repeat","index","selected","focused","classMap","hasSelection","e","nothing","__decorateClass","property","booleanConverter","state","customElement"],"mappings":";;;;;;AAEO,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;A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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification.js","sources":["../../source/components/notification/notification.style.ts","../../source/components/notification/notification.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const notificationStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n .notification {\n display: flex;\n align-items: flex-start;\n gap: var(--bp-spacing-3);\n padding: var(--bp-spacing-4);\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 font-family: var(--bp-font-sans);\n font-size: var(--bp-font-size-sm);\n line-height: var(--bp-line-height-normal);\n color: var(--bp-color-text);\n max-width: 400px;\n min-width: 300px;\n animation: notification-slide-in var(--bp-duration-fast) var(--bp-ease-out);\n }\n\n @keyframes notification-slide-in {\n from {\n opacity: 0;\n transform: translateY(calc(-1 * var(--bp-spacing-2)));\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n @keyframes notification-slide-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(calc(-1 * var(--bp-spacing-2)));\n }\n }\n\n .notification--exiting {\n animation: notification-slide-out var(--bp-duration-fast) var(--bp-ease-in)\n forwards;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .notification {\n animation: none;\n }\n\n .notification--exiting {\n animation: none;\n opacity: 0;\n }\n }\n\n /* Icon */\n .notification__icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification__icon svg {\n width: 100%;\n height: 100%;\n }\n\n /* Content */\n .notification__content {\n flex: 1;\n min-width: 0;\n }\n\n .notification__title {\n font-weight: var(--bp-font-weight-semibold);\n margin-bottom: var(--bp-spacing-1);\n color: var(--bp-color-text-strong);\n }\n\n .notification__message {\n color: var(--bp-color-text-muted);\n }\n\n /* Action */\n .notification__action {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-1);\n }\n\n .notification__action:empty {\n display: none;\n }\n\n /* Close button */\n .notification__close {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-11);\n height: var(--bp-spacing-11);\n padding: 0;\n margin: calc(-1 * var(--bp-spacing-2));\n background: none;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n color var(--bp-transition-fast),\n background-color var(--bp-transition-fast);\n }\n\n .notification__close:hover {\n color: var(--bp-color-text);\n background-color: var(--bp-color-surface-subdued);\n }\n\n .notification__close: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 .notification__close svg {\n width: var(--bp-spacing-4);\n height: var(--bp-spacing-4);\n }\n\n /* Variants */\n .notification--info {\n border-left: var(--bp-spacing-1) solid var(--bp-color-info);\n }\n\n .notification--info .notification__icon {\n color: var(--bp-color-info);\n }\n\n .notification--success {\n border-left: var(--bp-spacing-1) solid var(--bp-color-success);\n }\n\n .notification--success .notification__icon {\n color: var(--bp-color-success);\n }\n\n .notification--warning {\n border-left: var(--bp-spacing-1) solid var(--bp-color-warning);\n }\n\n .notification--warning .notification__icon {\n color: var(--bp-color-warning);\n }\n\n .notification--error {\n border-left: var(--bp-spacing-1) solid var(--bp-color-error);\n }\n\n .notification--error .notification__icon {\n color: var(--bp-color-error);\n }\n\n /* Position variants */\n .notification--top-left,\n .notification--top-center,\n .notification--top-right,\n .notification--bottom-left,\n .notification--bottom-center,\n .notification--bottom-right {\n position: fixed;\n z-index: 10000;\n margin: var(--bp-spacing-4);\n }\n\n .notification--top-left {\n top: 0;\n left: 0;\n }\n\n .notification--top-center {\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .notification--top-right {\n top: 0;\n right: 0;\n }\n\n .notification--bottom-left {\n bottom: 0;\n left: 0;\n }\n\n .notification--bottom-center {\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .notification--bottom-right {\n bottom: 0;\n right: 0;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { notificationStyles } from './notification.style.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\nimport { checkSvg } from '../icon/icons/entries/check.js';\nimport { warningCircleSvg } from '../icon/icons/entries/warning-circle.js';\nimport { crossSvg } from '../icon/icons/entries/cross.js';\nimport { infoCircleSvg } from '../icon/icons/entries/info-circle.js';\nimport '../icon/icon.js';\n\n/**\n * A notification/toast component for displaying non-blocking messages.\n * Notifications can be dismissed manually or auto-close after a duration.\n *\n * @fires bp-close - Dispatched when the notification is closed\n * @fires bp-show - Dispatched when the notification becomes visible\n * @fires bp-hide - Dispatched when the notification is hidden\n *\n * @slot - Default slot for notification content\n * @slot icon - Custom icon to display\n * @slot action - Action buttons or links\n *\n * @csspart base - The notification container\n * @csspart icon - The icon container\n * @csspart content - The content area\n * @csspart message - The message text container\n * @csspart action - The action slot container\n * @csspart close-button - The close button\n */\n@customElement('bp-notification')\nexport class BpNotification extends LitElement {\n /** The notification variant */\n @property({\n type: String,\n reflect: true,\n converter: {\n fromAttribute: (value: string | null) => {\n const valid = ['info', 'success', 'warning', 'error'];\n return value && valid.includes(value) ? value : 'info';\n },\n },\n })\n declare variant: 'info' | 'success' | 'warning' | 'error';\n\n /** Whether the notification is visible */\n @property({ type: Boolean, reflect: true }) declare open: boolean;\n\n /** Whether the notification can be dismissed */\n @property({ converter: booleanConverter, reflect: true })\n declare closable: boolean;\n\n /** Duration in milliseconds before auto-close (0 = no auto-close) */\n @property({ type: Number }) declare duration: number;\n\n /** Title of the notification */\n @property({ type: String }) declare title: string;\n\n /** Message content of the notification */\n @property({ type: String }) declare message: string;\n\n /**\n * Position of the notification on screen.\n * Note: For multiple notifications, consider using a container component.\n */\n @property({\n type: String,\n converter: {\n fromAttribute: (value: string | null) => {\n const valid = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n ];\n return value && valid.includes(value) ? value : 'top-right';\n },\n },\n })\n declare position:\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\n @state() private autoCloseTimer: number | null = null;\n @state() private remainingTime: number = 0;\n @state() private timerPaused: boolean = false;\n @state() private isExiting: boolean = false;\n\n static styles = [notificationStyles];\n\n constructor() {\n super();\n this.variant = 'info';\n this.open = false;\n this.closable = true;\n this.duration = 0;\n this.title = '';\n this.message = '';\n this.position = 'top-right';\n }\n\n updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.handleOpen();\n } else {\n this.handleClose();\n }\n }\n\n if (changedProperties.has('duration') && this.open) {\n this.startAutoCloseTimer();\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.clearAutoCloseTimer();\n }\n\n /** Show the notification */\n show() {\n if (this.open) return;\n this.open = true;\n }\n\n /** Hide the notification */\n hide() {\n if (!this.open) return;\n this.open = false;\n }\n\n /**\n * Handles the notification opening.\n * Dispatches bp-show event, starts auto-close timer, and manages focus.\n */\n private handleOpen() {\n this.isExiting = false;\n this.dispatchEvent(\n new CustomEvent('bp-show', { bubbles: true, composed: true })\n );\n this.startAutoCloseTimer();\n\n // Focus close button for accessibility\n this.updateComplete.then(() => {\n if (this.closable) {\n const closeButton = this.shadowRoot?.querySelector(\n '.notification__close'\n ) as HTMLElement;\n closeButton?.focus();\n }\n });\n }\n\n /**\n * Handles the notification closing.\n * Clears auto-close timer and dispatches bp-hide event.\n */\n private handleClose() {\n this.clearAutoCloseTimer();\n this.dispatchEvent(\n new CustomEvent('bp-hide', { bubbles: true, composed: true })\n );\n }\n\n /**\n * Starts the auto-close timer based on the duration property.\n * Timer can be paused/resumed with pauseAutoCloseTimer/resumeAutoCloseTimer.\n */\n private startAutoCloseTimer() {\n this.clearAutoCloseTimer();\n\n if (this.duration > 0 && !this.timerPaused) {\n this.remainingTime = this.duration;\n this.autoCloseTimer = window.setTimeout(() => {\n this.hide();\n }, this.duration);\n }\n }\n\n /**\n * Clears the auto-close timer if it exists.\n */\n private clearAutoCloseTimer() {\n if (this.autoCloseTimer) {\n window.clearTimeout(this.autoCloseTimer);\n this.autoCloseTimer = null;\n }\n }\n\n /**\n * Pauses the auto-close timer when user hovers or focuses.\n * Allows users to read content or interact with actions.\n */\n private pauseAutoCloseTimer() {\n if (this.autoCloseTimer && this.duration > 0) {\n this.timerPaused = true;\n window.clearTimeout(this.autoCloseTimer);\n this.autoCloseTimer = null;\n }\n }\n\n /**\n * Resumes the auto-close timer with remaining time.\n */\n private resumeAutoCloseTimer() {\n if (this.timerPaused && this.duration > 0) {\n this.timerPaused = false;\n this.autoCloseTimer = window.setTimeout(() => {\n this.hide();\n }, this.remainingTime);\n }\n }\n\n /**\n * Handles close button click.\n * Hides notification and dispatches bp-close event.\n */\n private handleCloseClick() {\n this.hide();\n this.dispatchEvent(\n new CustomEvent('bp-close', { bubbles: true, composed: true })\n );\n }\n\n /**\n * Handles keyboard events.\n * Closes notification on Escape key if closable.\n */\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.closable) {\n this.handleCloseClick();\n }\n }\n\n /**\n * Returns the default icon for the notification variant.\n * Uses the bp-icon component for consistency with the design system.\n */\n private getDefaultIcon() {\n const variantIconSvg: Record<string, string> = {\n success: checkSvg,\n warning: warningCircleSvg,\n error: crossSvg,\n info: infoCircleSvg,\n };\n return html`<bp-icon\n .svg=${variantIconSvg[this.variant]}\n size=\"md\"\n ></bp-icon>`;\n }\n\n render() {\n if (!this.open) {\n return nothing;\n }\n\n return html`\n <div\n class=\"notification notification--${this.variant} notification--${this\n .position} ${this.isExiting\n ? 'notification--exiting'\n : 'notification--entering'}\"\n part=\"base\"\n role=\"alert\"\n aria-live=${this.variant === 'error' ? 'assertive' : 'polite'}\n @keydown=${this.handleKeydown}\n @mouseenter=${this.pauseAutoCloseTimer}\n @mouseleave=${this.resumeAutoCloseTimer}\n @focusin=${this.pauseAutoCloseTimer}\n @focusout=${this.resumeAutoCloseTimer}\n >\n <div class=\"notification__icon\" part=\"icon\">\n <slot name=\"icon\">${this.getDefaultIcon()}</slot>\n </div>\n\n <div class=\"notification__content\" part=\"content\">\n ${this.title\n ? html`<div class=\"notification__title\">${this.title}</div>`\n : nothing}\n <div class=\"notification__message\" part=\"message\">\n ${this.message || html`<slot></slot>`}\n </div>\n </div>\n\n <div class=\"notification__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n\n ${this.closable\n ? html`\n <button\n type=\"button\"\n class=\"notification__close\"\n part=\"close-button\"\n aria-label=\"Close notification\"\n @click=${this.handleCloseClick}\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-notification': BpNotification;\n }\n}\n"],"names":["notificationStyles","css","BpNotification","LitElement","changedProperties","event","html","checkSvg","warningCircleSvg","crossSvg","infoCircleSvg","nothing","__decorateClass","property","value","booleanConverter","state","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"number-input.js","sources":["../../source/components/number-input/number-input.style.ts","../../source/components/number-input/number-input.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const numberInputStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n .number-input {\n font-family: var(--bp-font-family);\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-xs);\n }\n\n .number-input__label {\n font-size: var(--bp-font-size-sm);\n font-weight: var(--bp-font-weight-medium);\n color: var(--bp-color-text);\n line-height: var(--bp-line-height-normal);\n }\n\n .number-input__required {\n color: var(--bp-color-error);\n margin-left: var(--bp-spacing-xs);\n }\n\n .number-input__container {\n display: flex;\n align-items: stretch;\n }\n\n .number-input__input {\n flex: 1;\n min-width: 0;\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n line-height: var(--bp-line-height-normal);\n color: var(--bp-color-text);\n background-color: var(--bp-color-background);\n border: var(--bp-border-width) solid var(--bp-color-border);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n text-align: center;\n font-variant-numeric: tabular-nums;\n transition:\n border-color var(--bp-transition-fast),\n box-shadow var(--bp-transition-fast);\n }\n\n .number-input__input::placeholder {\n color: var(--bp-color-text-muted);\n opacity: var(--bp-opacity-subtle);\n }\n\n .number-input__input:hover:not(:disabled):not(:readonly) {\n border-color: var(--bp-color-border-strong);\n }\n\n .number-input__input:focus {\n outline: none;\n border-color: var(--bp-color-focus);\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-focus);\n }\n\n .number-input__input:focus-visible {\n outline: none;\n border-color: var(--bp-color-focus);\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-focus);\n }\n\n /* Button styling */\n .number-input__button {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n color: var(--bp-color-text);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n border-color var(--bp-transition-fast);\n padding: 0;\n }\n\n .number-input__button:hover:not(:disabled) {\n background-color: var(--bp-color-surface-elevated);\n border-color: var(--bp-color-border-strong);\n }\n\n .number-input__button:active:not(:disabled) {\n background-color: var(--bp-color-surface-subdued);\n }\n\n .number-input__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 z-index: 1;\n }\n\n .number-input__button:disabled {\n opacity: var(--bp-opacity-disabled);\n background-color: var(--bp-color-surface-subdued);\n cursor: not-allowed;\n }\n\n .number-input__button--decrement {\n border-right: none;\n border-radius: var(--bp-border-radius-md) 0 0 var(--bp-border-radius-md);\n }\n\n .number-input__button--increment {\n border-left: none;\n border-radius: 0 var(--bp-border-radius-md) var(--bp-border-radius-md) 0;\n }\n\n .number-input__button-icon {\n font-size: var(--bp-font-size-lg);\n font-weight: var(--bp-font-weight-bold);\n line-height: 1;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Input border radius adjustment when buttons visible */\n .number-input:not(.number-input--hide-buttons) .number-input__input {\n border-radius: 0;\n }\n\n .number-input--hide-buttons .number-input__input {\n border-radius: var(--bp-border-radius-md);\n }\n\n /* Size variants */\n .number-input--sm .number-input__input {\n font-size: var(--bp-font-size-sm);\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n }\n\n .number-input--sm .number-input__button {\n width: var(--bp-spacing-8);\n }\n\n .number-input--sm .number-input__button-icon {\n font-size: var(--bp-font-size-base);\n }\n\n .number-input--md .number-input__input {\n font-size: var(--bp-font-size-base);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n }\n\n .number-input--md .number-input__button {\n width: var(--bp-spacing-10);\n }\n\n .number-input--lg .number-input__input {\n font-size: var(--bp-font-size-lg);\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n }\n\n .number-input--lg .number-input__button {\n width: var(--bp-spacing-12);\n }\n\n .number-input--lg .number-input__button-icon {\n font-size: var(--bp-font-size-xl);\n }\n\n /* Variant styles */\n .number-input__input--default {\n border-color: var(--bp-color-border);\n }\n\n .number-input__input--success {\n border-color: var(--bp-color-success);\n }\n\n .number-input__input--success:focus,\n .number-input__input--success:focus-visible {\n border-color: var(--bp-color-success);\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-success);\n }\n\n .number-input__input--error {\n border-color: var(--bp-color-error);\n }\n\n .number-input__input--error:focus,\n .number-input__input--error:focus-visible {\n border-color: var(--bp-color-error);\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-error);\n }\n\n .number-input__input--warning {\n border-color: var(--bp-color-warning);\n }\n\n .number-input__input--warning:focus,\n .number-input__input--warning:focus-visible {\n border-color: var(--bp-color-warning);\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-warning);\n }\n\n /* Match button border color to input variant */\n .number-input--success .number-input__button {\n border-color: var(--bp-color-success);\n }\n\n .number-input--error .number-input__button {\n border-color: var(--bp-color-error);\n }\n\n .number-input--warning .number-input__button {\n border-color: var(--bp-color-warning);\n }\n\n /* States */\n .number-input--disabled {\n pointer-events: none;\n }\n\n .number-input--disabled .number-input__input {\n opacity: var(--bp-opacity-disabled);\n background-color: var(--bp-color-surface-subdued);\n cursor: not-allowed;\n }\n\n .number-input--disabled .number-input__label {\n opacity: var(--bp-opacity-disabled);\n }\n\n .number-input--readonly .number-input__input {\n background-color: var(--bp-color-surface-subdued);\n cursor: default;\n }\n\n .number-input--readonly .number-input__button {\n background-color: var(--bp-color-surface-subdued);\n pointer-events: none;\n }\n\n /* Message styles */\n .number-input__message {\n font-size: var(--bp-font-size-sm);\n line-height: var(--bp-line-height-normal);\n color: var(--bp-color-text-muted);\n }\n\n .number-input__message--error {\n color: var(--bp-color-error);\n }\n\n .number-input__message--success {\n color: var(--bp-color-success);\n }\n\n .number-input__message--warning {\n color: var(--bp-color-warning);\n }\n\n /* iOS zoom prevention: ensure 16px minimum on touch devices */\n @media (max-width: 768px) {\n .number-input--sm .number-input__input {\n font-size: 16px;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { numberInputStyles } from './number-input.style.js';\n\n/**\n * Size variants for the number input\n */\nexport type NumberInputSize = 'sm' | 'md' | 'lg';\n\n/**\n * Validation variant for the number input\n */\nexport type NumberInputVariant = 'default' | 'success' | 'error' | 'warning';\n\n/**\n * A number input component with increment/decrement buttons.\n *\n * @element bp-number-input\n *\n * @fires bp-input - Fired when the value changes during input\n * @fires bp-change - Fired when the value changes (on blur or button click)\n *\n * @csspart input - The native input element\n * @csspart decrement - The decrement button\n * @csspart increment - The increment button\n * @csspart label - The label element\n * @csspart message - The help/error message element\n */\n@customElement('bp-number-input')\nexport class BpNumberInput extends LitElement {\n /**\n * Current value of the input\n */\n @property({ type: Number }) declare value: number | null;\n\n /**\n * Minimum allowed value\n */\n @property({ type: Number }) declare min: number | undefined;\n\n /**\n * Maximum allowed value\n */\n @property({ type: Number }) declare max: number | undefined;\n\n /**\n * Step increment for buttons and arrow keys\n */\n @property({ type: Number }) declare step: number;\n\n /**\n * Name attribute for form association\n */\n @property({ type: String }) declare name: string;\n\n /**\n * Label text for the input\n */\n @property({ type: String }) declare label: string;\n\n /**\n * Placeholder text when empty\n */\n @property({ type: String }) declare placeholder: string;\n\n /**\n * Whether the input is disabled\n */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n /**\n * Whether the input is required\n */\n @property({ type: Boolean, reflect: true }) declare required: boolean;\n\n /**\n * Whether the input is readonly\n */\n @property({ type: Boolean, reflect: true }) declare readonly: boolean;\n\n /**\n * Size variant\n */\n @property({ type: String }) declare size: NumberInputSize;\n\n /**\n * Validation variant\n */\n @property({ type: String }) declare variant: NumberInputVariant;\n\n /**\n * Help or error message to display\n */\n @property({ type: String }) declare message: string;\n\n /**\n * Number of decimal places to display\n */\n @property({ type: Number }) declare precision: number | undefined;\n\n /**\n * Hide the increment/decrement buttons\n */\n @property({ type: Boolean, attribute: 'hide-buttons' })\n declare hideButtons: boolean;\n\n @query('input') private inputElement!: HTMLInputElement;\n\n static styles = [numberInputStyles];\n\n constructor() {\n super();\n this.value = null;\n this.min = undefined;\n this.max = undefined;\n this.step = 1;\n this.name = '';\n this.label = '';\n this.placeholder = '';\n this.disabled = false;\n this.required = false;\n this.readonly = false;\n this.size = 'md';\n this.variant = 'default';\n this.message = '';\n this.precision = undefined;\n this.hideButtons = false;\n }\n\n /**\n * Check if decrement is allowed\n */\n private get canDecrement(): boolean {\n if (this.disabled || this.readonly) return false;\n if (this.value === null) return true;\n if (this.min !== undefined) return this.value > this.min;\n return true;\n }\n\n /**\n * Check if increment is allowed\n */\n private get canIncrement(): boolean {\n if (this.disabled || this.readonly) return false;\n if (this.value === null) return true;\n if (this.max !== undefined) return this.value < this.max;\n return true;\n }\n\n /**\n * Format value for display\n */\n private formatValue(value: number | null): string {\n if (value === null) return '';\n if (this.precision !== undefined) {\n return value.toFixed(this.precision);\n }\n return String(value);\n }\n\n /**\n * Clamp value to min/max range\n */\n private clampValue(value: number): number {\n let result = value;\n if (this.min !== undefined) result = Math.max(this.min, result);\n if (this.max !== undefined) result = Math.min(this.max, result);\n return result;\n }\n\n /**\n * Round value to step precision\n */\n private roundToStep(value: number): number {\n if (this.precision !== undefined) {\n const factor = Math.pow(10, this.precision);\n return Math.round(value * factor) / factor;\n }\n // Handle floating point precision for step\n const stepDecimals = (String(this.step).split('.')[1] || '').length;\n const factor = Math.pow(10, stepDecimals);\n return Math.round(value * factor) / factor;\n }\n\n /**\n * Update value and emit events\n */\n private updateValue(\n newValue: number | null,\n emitChange: boolean = true\n ): void {\n const oldValue = this.value;\n\n if (newValue !== null) {\n newValue = this.clampValue(newValue);\n newValue = this.roundToStep(newValue);\n }\n\n if (newValue !== oldValue) {\n this.value = newValue;\n\n this.dispatchEvent(\n new CustomEvent('bp-input', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n\n if (emitChange) {\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n }\n\n /**\n * Handle increment button click\n */\n private handleIncrement(): void {\n if (!this.canIncrement) return;\n const currentValue = this.value ?? this.min ?? 0;\n this.updateValue(currentValue + this.step);\n }\n\n /**\n * Handle decrement button click\n */\n private handleDecrement(): void {\n if (!this.canDecrement) return;\n const currentValue = this.value ?? this.max ?? 0;\n this.updateValue(currentValue - this.step);\n }\n\n /**\n * Handle direct input\n */\n private handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n const inputValue = input.value.trim();\n\n if (inputValue === '') {\n this.updateValue(null, false);\n return;\n }\n\n const numValue = parseFloat(inputValue);\n if (!isNaN(numValue)) {\n // Don't clamp during input, only on blur\n this.value = numValue;\n this.dispatchEvent(\n new CustomEvent('bp-input', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n\n /**\n * Handle blur - validate and clamp\n */\n private handleBlur(): void {\n if (this.value !== null) {\n const clampedValue = this.clampValue(this.value);\n const roundedValue = this.roundToStep(clampedValue);\n\n if (roundedValue !== this.value) {\n this.value = roundedValue;\n }\n\n // Update input display\n if (this.inputElement) {\n this.inputElement.value = this.formatValue(this.value);\n }\n }\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /**\n * Handle keyboard navigation\n */\n private handleKeyDown(event: globalThis.KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.handleIncrement();\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.handleDecrement();\n break;\n case 'PageUp':\n event.preventDefault();\n if (this.canIncrement) {\n const currentValue = this.value ?? this.min ?? 0;\n this.updateValue(currentValue + this.step * 10);\n }\n break;\n case 'PageDown':\n event.preventDefault();\n if (this.canDecrement) {\n const currentValue = this.value ?? this.max ?? 0;\n this.updateValue(currentValue - this.step * 10);\n }\n break;\n case 'Home':\n event.preventDefault();\n if (this.min !== undefined) {\n this.updateValue(this.min);\n }\n break;\n case 'End':\n event.preventDefault();\n if (this.max !== undefined) {\n this.updateValue(this.max);\n }\n break;\n }\n }\n\n render() {\n const wrapperClasses = {\n 'number-input': true,\n [`number-input--${this.size}`]: true,\n [`number-input--${this.variant}`]: true,\n 'number-input--disabled': this.disabled,\n 'number-input--readonly': this.readonly,\n 'number-input--hide-buttons': this.hideButtons,\n };\n\n const inputClasses = {\n 'number-input__input': true,\n [`number-input__input--${this.variant}`]: true,\n };\n\n return html`\n <div class=${classMap(wrapperClasses)}>\n ${this.label\n ? html`\n <label class=\"number-input__label\" part=\"label\">\n ${this.label}\n ${this.required\n ? html`<span class=\"number-input__required\">*</span>`\n : nothing}\n </label>\n `\n : nothing}\n\n <div class=\"number-input__container\">\n ${!this.hideButtons\n ? html`\n <button\n type=\"button\"\n class=\"number-input__button number-input__button--decrement\"\n part=\"decrement\"\n tabindex=\"-1\"\n ?disabled=${!this.canDecrement}\n aria-label=\"Decrease value\"\n @click=${this.handleDecrement}\n >\n <span class=\"number-input__button-icon\">−</span>\n </button>\n `\n : nothing}\n\n <input\n type=\"text\"\n inputmode=\"decimal\"\n class=${classMap(inputClasses)}\n part=\"input\"\n .value=${this.formatValue(this.value)}\n name=${this.name || nothing}\n placeholder=${this.placeholder || nothing}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n aria-valuemin=${this.min ?? nothing}\n aria-valuemax=${this.max ?? nothing}\n aria-valuenow=${this.value ?? nothing}\n aria-invalid=${this.variant === 'error' ? 'true' : nothing}\n @input=${this.handleInput}\n @blur=${this.handleBlur}\n @keydown=${this.handleKeyDown}\n />\n\n ${!this.hideButtons\n ? html`\n <button\n type=\"button\"\n class=\"number-input__button number-input__button--increment\"\n part=\"increment\"\n tabindex=\"-1\"\n ?disabled=${!this.canIncrement}\n aria-label=\"Increase value\"\n @click=${this.handleIncrement}\n >\n <span class=\"number-input__button-icon\">+</span>\n </button>\n `\n : nothing}\n </div>\n\n ${this.message\n ? html`\n <div\n class=\"number-input__message number-input__message--${this\n .variant}\"\n part=\"message\"\n >\n ${this.message}\n </div>\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-number-input': BpNumberInput;\n }\n}\n"],"names":["numberInputStyles","css","BpNumberInput","LitElement","value","result","factor","stepDecimals","newValue","emitChange","oldValue","currentValue","event","inputValue","numValue","clampedValue","roundedValue","wrapperClasses","inputClasses","html","classMap","nothing","__decorateClass","property","query","customElement"],"mappings":";;;AAEO,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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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.js","sources":["../../source/components/pagination/pagination.style.ts","../../source/components/pagination/pagination.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const paginationStyles = css`\n /* Base styles */\n :host {\n display: inline-block;\n }\n\n .pagination {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-sm);\n font-family: var(--bp-font-sans);\n }\n\n .pagination__button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--bp-spacing-10);\n height: var(--bp-spacing-10);\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n background-color: var(--bp-color-background);\n color: var(--bp-color-text);\n font-family: var(--bp-font-sans);\n font-size: var(--bp-font-size-base);\n font-weight: var(--bp-font-weight-medium);\n line-height: var(--bp-line-height-tight);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n border-color var(--bp-transition-fast),\n color var(--bp-transition-fast),\n transform var(--bp-transition-fast);\n user-select: none;\n }\n\n .pagination__button:hover:not(:disabled) {\n background-color: var(--bp-color-surface);\n border-color: var(--bp-color-border-strong);\n color: var(--bp-color-text);\n }\n\n .pagination__button:active:not(:disabled) {\n background-color: var(--bp-color-surface);\n border-color: var(--bp-color-border-strong);\n transform: translateY(1px) scale(0.98);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n }\n\n .pagination__button:focus-visible {\n outline: var(--bp-border-width) solid var(--bp-color-primary);\n outline-offset: var(--bp-spacing-0-5);\n }\n\n .pagination__button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .pagination__button--active {\n background-color: var(--bp-color-primary);\n border-color: var(--bp-color-primary);\n color: var(--bp-color-text-inverse);\n font-weight: var(--bp-font-weight-semibold);\n }\n\n .pagination__button--active:hover:not(:disabled) {\n background-color: var(--bp-color-primary-hover);\n border-color: var(--bp-color-primary-hover);\n }\n\n .pagination__button--active:focus-visible {\n outline: 2px solid var(--bp-color-text-inverse);\n outline-offset: 2px;\n }\n\n /* Navigation buttons (first, last, prev, next) - ghost style for visual hierarchy */\n .pagination__button--first,\n .pagination__button--last,\n .pagination__button--prev,\n .pagination__button--next {\n color: var(--bp-color-text-muted);\n background-color: transparent;\n }\n\n .pagination__button--first:hover:not(:disabled),\n .pagination__button--last:hover:not(:disabled),\n .pagination__button--prev:hover:not(:disabled),\n .pagination__button--next:hover:not(:disabled) {\n color: var(--bp-color-text);\n background-color: var(--bp-color-surface);\n }\n\n .pagination__ellipsis {\n display: inline-flex;\n align-items: end;\n justify-content: center;\n min-width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n color: var(--bp-color-text-muted);\n font-size: var(--bp-font-size-base);\n user-select: none;\n }\n\n .pagination__info {\n margin-left: var(--bp-spacing-lg);\n color: var(--bp-color-text-muted);\n font-size: var(--bp-font-size-sm);\n white-space: nowrap;\n }\n\n /* Sizes */\n .pagination--sm .pagination__button {\n min-width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n padding: var(--bp-spacing-2xs) var(--bp-spacing-xs);\n font-size: var(--bp-font-size-sm);\n }\n\n .pagination--sm .pagination__ellipsis {\n min-width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n font-size: var(--bp-font-size-sm);\n }\n\n .pagination--sm .pagination__info {\n font-size: var(--bp-font-size-xs);\n }\n\n .pagination--lg .pagination__button {\n min-width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n font-size: var(--bp-font-size-lg);\n }\n\n .pagination--lg .pagination__ellipsis {\n min-width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n font-size: var(--bp-font-size-lg);\n }\n\n .pagination--lg .pagination__info {\n font-size: var(--bp-font-size-base);\n }\n\n .pagination--lg {\n gap: var(--bp-spacing-md);\n }\n\n /* Touch target size: ensure 44x44px minimum on touch devices */\n @media (pointer: coarse) {\n .pagination__button {\n min-width: 44px;\n min-height: 44px;\n }\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { paginationStyles } from './pagination.style.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\n\n/**\n * A pagination component for navigating through multiple pages of content.\n *\n * @fires bp-page-change - Dispatched when the page changes\n *\n * @slot - Default slot for custom content (not typically used)\n *\n * @csspart container - The main pagination container\n * @csspart button - All pagination buttons\n * @csspart button-first - The first page button\n * @csspart button-prev - The previous page button\n * @csspart button-next - The next page button\n * @csspart button-last - The last page button\n * @csspart button-page - Individual page number buttons\n * @csspart button-ellipsis - Ellipsis indicators\n * @csspart info - The page info text\n */\n@customElement('bp-pagination')\nexport class BpPagination extends LitElement {\n /** Current page number (1-indexed) */\n @property({ type: Number, attribute: 'current-page' })\n declare currentPage: number;\n\n /** Total number of pages */\n @property({ type: Number, attribute: 'total-pages' })\n declare totalPages: number;\n\n /** Number of page buttons to show around the current page */\n @property({ type: Number, attribute: 'sibling-count' })\n declare siblingCount: number;\n\n /** Number of page buttons to show at the start and end */\n @property({ type: Number, attribute: 'boundary-count' })\n declare boundaryCount: number;\n\n /** Show first/last page buttons */\n @property({\n converter: booleanConverter,\n reflect: true,\n attribute: 'show-first-last',\n })\n declare showFirstLast: boolean;\n\n /** Show previous/next page buttons */\n @property({\n converter: booleanConverter,\n reflect: true,\n attribute: 'show-prev-next',\n })\n declare showPrevNext: boolean;\n\n /** Show page info text (e.g., \"Page 1 of 10\") */\n @property({ type: Boolean, attribute: 'show-info' })\n declare showInfo: boolean;\n\n /** Disable all pagination controls */\n @property({ type: Boolean }) declare disabled: boolean;\n\n /** Size variant */\n @property({ type: String }) declare size: 'sm' | 'md' | 'lg';\n\n static styles = [paginationStyles];\n\n constructor() {\n super();\n this.currentPage = 1;\n this.totalPages = 1;\n this.siblingCount = 1;\n this.boundaryCount = 1;\n this.showFirstLast = true;\n this.showPrevNext = true;\n this.showInfo = false;\n this.disabled = false;\n this.size = 'md';\n }\n\n private handlePageChange(newPage: number) {\n if (\n this.disabled ||\n newPage < 1 ||\n newPage > this.totalPages ||\n newPage === this.currentPage\n ) {\n return;\n }\n\n this.currentPage = newPage;\n this.dispatchEvent(\n new CustomEvent('bp-page-change', {\n detail: { page: newPage },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private getPageNumbers(): (number | 'ellipsis')[] {\n const pages: (number | 'ellipsis')[] = [];\n const totalCount = this.totalPages;\n const currentPageNum = this.currentPage;\n const siblingCountNum = this.siblingCount;\n const boundaryCountNum = this.boundaryCount;\n\n // Calculate range around current page\n const startPage = Math.max(1, currentPageNum - siblingCountNum);\n const endPage = Math.min(totalCount, currentPageNum + siblingCountNum);\n\n // Add boundary pages at start\n for (let i = 1; i <= Math.min(boundaryCountNum, totalCount); i++) {\n pages.push(i);\n }\n\n // Add ellipsis after boundary if needed\n if (startPage > boundaryCountNum + 1) {\n pages.push('ellipsis');\n }\n\n // Add pages around current page\n for (let i = startPage; i <= endPage; i++) {\n if (i > boundaryCountNum && i <= totalCount - boundaryCountNum) {\n pages.push(i);\n }\n }\n\n // Add ellipsis before end boundary if needed\n if (endPage < totalCount - boundaryCountNum) {\n pages.push('ellipsis');\n }\n\n // Add boundary pages at end\n for (\n let i = Math.max(totalCount - boundaryCountNum + 1, boundaryCountNum + 1);\n i <= totalCount;\n i++\n ) {\n if (!pages.includes(i)) {\n pages.push(i);\n }\n }\n\n // Remove duplicates while preserving order\n return pages.filter((page, index, self) => self.indexOf(page) === index);\n }\n\n render() {\n const pageNumbers = this.getPageNumbers();\n const isFirstPage = this.currentPage === 1;\n const isLastPage = this.currentPage === this.totalPages;\n\n return html`\n <nav\n class=\"pagination pagination--${this.size}\"\n part=\"container\"\n aria-label=\"Pagination\"\n >\n ${this.showFirstLast\n ? html`\n <button\n class=\"pagination__button pagination__button--first\"\n part=\"button button-first\"\n ?disabled=${this.disabled || isFirstPage}\n @click=${() => this.handlePageChange(1)}\n aria-label=\"First page\"\n >\n «\n </button>\n `\n : ''}\n ${this.showPrevNext\n ? html`\n <button\n class=\"pagination__button pagination__button--prev\"\n part=\"button button-prev\"\n ?disabled=${this.disabled || isFirstPage}\n @click=${() => this.handlePageChange(this.currentPage - 1)}\n aria-label=\"Previous page\"\n >\n ‹\n </button>\n `\n : ''}\n ${repeat(\n pageNumbers,\n (page, index) => (page === 'ellipsis' ? `ellipsis-${index}` : page),\n (page) =>\n page === 'ellipsis'\n ? html`\n <span\n class=\"pagination__ellipsis\"\n part=\"button-ellipsis\"\n aria-hidden=\"true\"\n >…</span\n >\n `\n : html`\n <button\n class=\"pagination__button pagination__button--page ${page ===\n this.currentPage\n ? 'pagination__button--active'\n : ''}\"\n part=\"button button-page\"\n ?disabled=${this.disabled}\n @click=${() => this.handlePageChange(page)}\n aria-label=\"Page ${page}\"\n aria-current=${page === this.currentPage ? 'page' : 'false'}\n >\n ${page}\n </button>\n `\n )}\n ${this.showPrevNext\n ? html`\n <button\n class=\"pagination__button pagination__button--next\"\n part=\"button button-next\"\n ?disabled=${this.disabled || isLastPage}\n @click=${() => this.handlePageChange(this.currentPage + 1)}\n aria-label=\"Next page\"\n >\n ›\n </button>\n `\n : ''}\n ${this.showFirstLast\n ? html`\n <button\n class=\"pagination__button pagination__button--last\"\n part=\"button button-last\"\n ?disabled=${this.disabled || isLastPage}\n @click=${() => this.handlePageChange(this.totalPages)}\n aria-label=\"Last page\"\n >\n »\n </button>\n `\n : ''}\n ${this.showInfo\n ? html`\n <span class=\"pagination__info\" part=\"info\" aria-live=\"polite\">\n Page ${this.currentPage} of ${this.totalPages}\n </span>\n `\n : ''}\n </nav>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-pagination': BpPagination;\n }\n}\n"],"names":["paginationStyles","css","BpPagination","LitElement","newPage","pages","totalCount","currentPageNum","siblingCountNum","boundaryCountNum","startPage","endPage","i","page","index","self","pageNumbers","isFirstPage","isLastPage","html","repeat","__decorateClass","property","booleanConverter","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;;;;;;ACsBzB,IAAMC,IAAN,cAA2BC,EAAW;AAAA,EA6C3C,cAAc;AACZ,UAAA,GACA,KAAK,cAAc,GACnB,KAAK,aAAa,GAClB,KAAK,eAAe,GACpB,KAAK,gBAAgB,GACrB,KAAK,gBAAgB,IACrB,KAAK,eAAe,IACpB,KAAK,WAAW,IAChB,KAAK,WAAW,IAChB,KAAK,OAAO;AAAA,EACd;AAAA,EAEQ,iBAAiBC,GAAiB;AACxC,IACE,KAAK,YACLA,IAAU,KACVA,IAAU,KAAK,cACfA,MAAY,KAAK,gBAKnB,KAAK,cAAcA,GACnB,KAAK;AAAA,MACH,IAAI,YAAY,kBAAkB;AAAA,QAChC,QAAQ,EAAE,MAAMA,EAAA;AAAA,QAChB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,iBAA0C;AAChD,UAAMC,IAAiC,CAAA,GACjCC,IAAa,KAAK,YAClBC,IAAiB,KAAK,aACtBC,IAAkB,KAAK,cACvBC,IAAmB,KAAK,eAGxBC,IAAY,KAAK,IAAI,GAAGH,IAAiBC,CAAe,GACxDG,IAAU,KAAK,IAAIL,GAAYC,IAAiBC,CAAe;AAGrE,aAASI,IAAI,GAAGA,KAAK,KAAK,IAAIH,GAAkBH,CAAU,GAAGM;AAC3D,MAAAP,EAAM,KAAKO,CAAC;AAId,IAAIF,IAAYD,IAAmB,KACjCJ,EAAM,KAAK,UAAU;AAIvB,aAASO,IAAIF,GAAWE,KAAKD,GAASC;AACpC,MAAIA,IAAIH,KAAoBG,KAAKN,IAAaG,KAC5CJ,EAAM,KAAKO,CAAC;AAKhB,IAAID,IAAUL,IAAaG,KACzBJ,EAAM,KAAK,UAAU;AAIvB,aACMO,IAAI,KAAK,IAAIN,IAAaG,IAAmB,GAAGA,IAAmB,CAAC,GACxEG,KAAKN,GACLM;AAEA,MAAKP,EAAM,SAASO,CAAC,KACnBP,EAAM,KAAKO,CAAC;AAKhB,WAAOP,EAAM,OAAO,CAACQ,GAAMC,GAAOC,MAASA,EAAK,QAAQF,CAAI,MAAMC,CAAK;AAAA,EACzE;AAAA,EAEA,SAAS;AACP,UAAME,IAAc,KAAK,eAAA,GACnBC,IAAc,KAAK,gBAAgB,GACnCC,IAAa,KAAK,gBAAgB,KAAK;AAE7C,WAAOC;AAAA;AAAA,wCAE6B,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA,UAIvC,KAAK,gBACHA;AAAA;AAAA;AAAA;AAAA,4BAIgB,KAAK,YAAYF,CAAW;AAAA,yBAC/B,MAAM,KAAK,iBAAiB,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAM3C,EAAE;AAAA,UACJ,KAAK,eACHE;AAAA;AAAA;AAAA;AAAA,4BAIgB,KAAK,YAAYF,CAAW;AAAA,yBAC/B,MAAM,KAAK,iBAAiB,KAAK,cAAc,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAM9D,EAAE;AAAA,UACJG;AAAA,MACAJ;AAAA,MACA,CAACH,GAAMC,MAAWD,MAAS,aAAa,YAAYC,CAAK,KAAKD;AAAA,MAC9D,CAACA,MACCA,MAAS,aACLM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQAA;AAAA;AAAA,yEAEyDN,MACrD,KAAK,cACD,+BACA,EAAE;AAAA;AAAA,gCAEM,KAAK,QAAQ;AAAA,6BAChB,MAAM,KAAK,iBAAiBA,CAAI,CAAC;AAAA,uCACvBA,CAAI;AAAA,mCACRA,MAAS,KAAK,cAAc,SAAS,OAAO;AAAA;AAAA,sBAEzDA,CAAI;AAAA;AAAA;AAAA,IAAA,CAGjB;AAAA,UACC,KAAK,eACHM;AAAA;AAAA;AAAA;AAAA,4BAIgB,KAAK,YAAYD,CAAU;AAAA,yBAC9B,MAAM,KAAK,iBAAiB,KAAK,cAAc,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAM9D,EAAE;AAAA,UACJ,KAAK,gBACHC;AAAA;AAAA;AAAA;AAAA,4BAIgB,KAAK,YAAYD,CAAU;AAAA,yBAC9B,MAAM,KAAK,iBAAiB,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,gBAMzD,EAAE;AAAA,UACJ,KAAK,WACHC;AAAA;AAAA,uBAEW,KAAK,WAAW,OAAO,KAAK,UAAU;AAAA;AAAA,gBAGjD,EAAE;AAAA;AAAA;AAAA,EAGZ;AACF;AApOajB,EA2CJ,SAAS,CAACF,CAAgB;AAxCzBqB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ,WAAW,gBAAgB;AAAA,GAF1CpB,EAGH,WAAA,eAAA,CAAA;AAIAmB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ,WAAW,eAAe;AAAA,GANzCpB,EAOH,WAAA,cAAA,CAAA;AAIAmB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ,WAAW,iBAAiB;AAAA,GAV3CpB,EAWH,WAAA,gBAAA,CAAA;AAIAmB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ,WAAW,kBAAkB;AAAA,GAd5CpB,EAeH,WAAA,iBAAA,CAAA;AAQAmB,EAAA;AAAA,EALPC,EAAS;AAAA,IACR,WAAWC;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA,EAAA,CACZ;AAAA,GAtBUrB,EAuBH,WAAA,iBAAA,CAAA;AAQAmB,EAAA;AAAA,EALPC,EAAS;AAAA,IACR,WAAWC;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA,EAAA,CACZ;AAAA,GA9BUrB,EA+BH,WAAA,gBAAA,CAAA;AAIAmB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,SAAS,WAAW,aAAa;AAAA,GAlCxCpB,EAmCH,WAAA,YAAA,CAAA;AAG6BmB,EAAA;AAAA,EAApCC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GAtChBpB,EAsC0B,WAAA,YAAA,CAAA;AAGDmB,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAzCfpB,EAyCyB,WAAA,QAAA,CAAA;AAzCzBA,IAANmB,EAAA;AAAA,EADNG,EAAc,eAAe;AAAA,GACjBtB,CAAA;"}