@blukavantui/community 0.0.0-stage → 1.1.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 (987) hide show
  1. package/LICENSE.txt +103 -0
  2. package/README.md +177 -2
  3. package/THIRD_PARTY_NOTICES.txt +58 -0
  4. package/assets/fonts/dm-sans-LICENSE.txt +93 -0
  5. package/assets/fonts/dm-sans-latin-ext-wght-italic.woff2 +0 -0
  6. package/assets/fonts/dm-sans-latin-ext-wght-normal.woff2 +0 -0
  7. package/assets/fonts/dm-sans-latin-wght-italic.woff2 +0 -0
  8. package/assets/fonts/dm-sans-latin-wght-normal.woff2 +0 -0
  9. package/assets/fonts/ibm-plex-mono-LICENSE.txt +93 -0
  10. package/assets/fonts/ibm-plex-mono-latin-100-italic.woff2 +0 -0
  11. package/assets/fonts/ibm-plex-mono-latin-100-normal.woff2 +0 -0
  12. package/assets/fonts/ibm-plex-mono-latin-200-italic.woff2 +0 -0
  13. package/assets/fonts/ibm-plex-mono-latin-200-normal.woff2 +0 -0
  14. package/assets/fonts/ibm-plex-mono-latin-300-italic.woff2 +0 -0
  15. package/assets/fonts/ibm-plex-mono-latin-300-normal.woff2 +0 -0
  16. package/assets/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
  17. package/assets/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  18. package/assets/fonts/ibm-plex-mono-latin-500-italic.woff2 +0 -0
  19. package/assets/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  20. package/assets/fonts/ibm-plex-mono-latin-600-italic.woff2 +0 -0
  21. package/assets/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  22. package/assets/fonts/ibm-plex-mono-latin-700-italic.woff2 +0 -0
  23. package/assets/fonts/ibm-plex-mono-latin-700-normal.woff2 +0 -0
  24. package/assets/fonts/ibm-plex-mono-latin-ext-100-italic.woff2 +0 -0
  25. package/assets/fonts/ibm-plex-mono-latin-ext-100-normal.woff2 +0 -0
  26. package/assets/fonts/ibm-plex-mono-latin-ext-200-italic.woff2 +0 -0
  27. package/assets/fonts/ibm-plex-mono-latin-ext-200-normal.woff2 +0 -0
  28. package/assets/fonts/ibm-plex-mono-latin-ext-300-italic.woff2 +0 -0
  29. package/assets/fonts/ibm-plex-mono-latin-ext-300-normal.woff2 +0 -0
  30. package/assets/fonts/ibm-plex-mono-latin-ext-400-italic.woff2 +0 -0
  31. package/assets/fonts/ibm-plex-mono-latin-ext-400-normal.woff2 +0 -0
  32. package/assets/fonts/ibm-plex-mono-latin-ext-500-italic.woff2 +0 -0
  33. package/assets/fonts/ibm-plex-mono-latin-ext-500-normal.woff2 +0 -0
  34. package/assets/fonts/ibm-plex-mono-latin-ext-600-italic.woff2 +0 -0
  35. package/assets/fonts/ibm-plex-mono-latin-ext-600-normal.woff2 +0 -0
  36. package/assets/fonts/ibm-plex-mono-latin-ext-700-italic.woff2 +0 -0
  37. package/assets/fonts/ibm-plex-mono-latin-ext-700-normal.woff2 +0 -0
  38. package/assets/fonts/inter-LICENSE.txt +93 -0
  39. package/assets/fonts/inter-latin-ext-wght-italic.woff2 +0 -0
  40. package/assets/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  41. package/assets/fonts/inter-latin-wght-italic.woff2 +0 -0
  42. package/assets/fonts/inter-latin-wght-normal.woff2 +0 -0
  43. package/assets/fonts/jetbrains-mono-LICENSE.txt +93 -0
  44. package/assets/fonts/jetbrains-mono-latin-ext-wght-italic.woff2 +0 -0
  45. package/assets/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  46. package/assets/fonts/jetbrains-mono-latin-wght-italic.woff2 +0 -0
  47. package/assets/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  48. package/assets/fonts/lora-LICENSE.txt +93 -0
  49. package/assets/fonts/lora-latin-ext-wght-italic.woff2 +0 -0
  50. package/assets/fonts/lora-latin-ext-wght-normal.woff2 +0 -0
  51. package/assets/fonts/lora-latin-wght-italic.woff2 +0 -0
  52. package/assets/fonts/lora-latin-wght-normal.woff2 +0 -0
  53. package/assets/fonts/manifest.json +618 -0
  54. package/assets/fonts/manrope-LICENSE.txt +93 -0
  55. package/assets/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  56. package/assets/fonts/manrope-latin-wght-normal.woff2 +0 -0
  57. package/assets/fonts/merriweather-LICENSE.txt +93 -0
  58. package/assets/fonts/merriweather-latin-ext-wght-italic.woff2 +0 -0
  59. package/assets/fonts/merriweather-latin-ext-wght-normal.woff2 +0 -0
  60. package/assets/fonts/merriweather-latin-wght-italic.woff2 +0 -0
  61. package/assets/fonts/merriweather-latin-wght-normal.woff2 +0 -0
  62. package/assets/fonts/montserrat-LICENSE.txt +93 -0
  63. package/assets/fonts/montserrat-latin-ext-wght-italic.woff2 +0 -0
  64. package/assets/fonts/montserrat-latin-ext-wght-normal.woff2 +0 -0
  65. package/assets/fonts/montserrat-latin-wght-italic.woff2 +0 -0
  66. package/assets/fonts/montserrat-latin-wght-normal.woff2 +0 -0
  67. package/assets/fonts/playfair-display-LICENSE.txt +93 -0
  68. package/assets/fonts/playfair-display-latin-ext-wght-italic.woff2 +0 -0
  69. package/assets/fonts/playfair-display-latin-ext-wght-normal.woff2 +0 -0
  70. package/assets/fonts/playfair-display-latin-wght-italic.woff2 +0 -0
  71. package/assets/fonts/playfair-display-latin-wght-normal.woff2 +0 -0
  72. package/assets/fonts/roboto-LICENSE.txt +93 -0
  73. package/assets/fonts/roboto-latin-ext-wght-italic.woff2 +0 -0
  74. package/assets/fonts/roboto-latin-ext-wght-normal.woff2 +0 -0
  75. package/assets/fonts/roboto-latin-wght-italic.woff2 +0 -0
  76. package/assets/fonts/roboto-latin-wght-normal.woff2 +0 -0
  77. package/assets/fonts/source-sans-3-LICENSE.txt +93 -0
  78. package/assets/fonts/source-sans-3-latin-ext-wght-italic.woff2 +0 -0
  79. package/assets/fonts/source-sans-3-latin-ext-wght-normal.woff2 +0 -0
  80. package/assets/fonts/source-sans-3-latin-wght-italic.woff2 +0 -0
  81. package/assets/fonts/source-sans-3-latin-wght-normal.woff2 +0 -0
  82. package/dist/advanced-types.d.ts +114 -0
  83. package/dist/app-layout.css +115 -0
  84. package/dist/app-layout.d.ts +2 -0
  85. package/dist/app-layout.js +1 -0
  86. package/dist/badge.css +131 -0
  87. package/dist/badge.d.ts +2 -0
  88. package/dist/badge.js +1 -0
  89. package/dist/bluui-community-grid.js +72 -0
  90. package/dist/bluui-community.js +1 -0
  91. package/dist/breadcrumbs.css +77 -0
  92. package/dist/breadcrumbs.d.ts +2 -0
  93. package/dist/breadcrumbs.js +1 -0
  94. package/dist/build-audit.json +516 -0
  95. package/dist/button.css +625 -0
  96. package/dist/button.d.ts +2 -0
  97. package/dist/button.js +1 -0
  98. package/dist/card.css +119 -0
  99. package/dist/card.d.ts +2 -0
  100. package/dist/card.js +1 -0
  101. package/dist/cascader.css +152 -0
  102. package/dist/cascader.d.ts +2 -0
  103. package/dist/cascader.js +1 -0
  104. package/dist/chat-widget.css +121 -0
  105. package/dist/chat-widget.d.ts +2 -0
  106. package/dist/chat-widget.js +1 -0
  107. package/dist/chat.css +66 -0
  108. package/dist/chat.d.ts +2 -0
  109. package/dist/chat.js +1 -0
  110. package/dist/checkbox.css +1 -0
  111. package/dist/checkbox.d.ts +2 -0
  112. package/dist/checkbox.js +1 -0
  113. package/dist/chip-group.css +44 -0
  114. package/dist/chip-group.d.ts +2 -0
  115. package/dist/chip-group.js +1 -0
  116. package/dist/chip.css +191 -0
  117. package/dist/chip.d.ts +2 -0
  118. package/dist/chip.js +1 -0
  119. package/dist/chunk-2HFI6CC6.js +0 -0
  120. package/dist/chunk-2MQNFEGJ.js +1 -0
  121. package/dist/chunk-3LWXPCWY.js +1 -0
  122. package/dist/chunk-3PNBQVYS.js +1 -0
  123. package/dist/chunk-3ZS5YITP.js +1 -0
  124. package/dist/chunk-4RM3B4L7.js +1 -0
  125. package/dist/chunk-4USJBOSC.js +1 -0
  126. package/dist/chunk-5ENZVZGF.js +0 -0
  127. package/dist/chunk-5TEIXA4R.js +1 -0
  128. package/dist/chunk-64LOE3FU.js +1 -0
  129. package/dist/chunk-6EHKOVZK.js +1 -0
  130. package/dist/chunk-6EJIIQNF.js +1 -0
  131. package/dist/chunk-6XOMFIPU.js +1 -0
  132. package/dist/chunk-75BQYII5.js +1 -0
  133. package/dist/chunk-7HXX66DB.js +3 -0
  134. package/dist/chunk-7KMRDQZG.js +0 -0
  135. package/dist/chunk-AICXIQKD.js +1 -0
  136. package/dist/chunk-AL2ETLJV.js +1 -0
  137. package/dist/chunk-BLDXIO7P.js +1 -0
  138. package/dist/chunk-BN3PDE5G.js +0 -0
  139. package/dist/chunk-C3CLLZH2.js +1 -0
  140. package/dist/chunk-CZXYS6CY.js +1 -0
  141. package/dist/chunk-EOKNLCNS.js +1 -0
  142. package/dist/chunk-EPZGLHPD.js +0 -0
  143. package/dist/chunk-FNX33PDD.js +0 -0
  144. package/dist/chunk-GEG3TNB4.js +1 -0
  145. package/dist/chunk-GK3INPAZ.js +1 -0
  146. package/dist/chunk-GXHANADL.js +1 -0
  147. package/dist/chunk-H5IEGCAK.js +72 -0
  148. package/dist/chunk-H7ETPJVW.js +1 -0
  149. package/dist/chunk-HO6CYWED.js +0 -0
  150. package/dist/chunk-IHKCC6WJ.js +1 -0
  151. package/dist/chunk-IIKSMXQE.js +1 -0
  152. package/dist/chunk-IJ62ILKE.js +0 -0
  153. package/dist/chunk-IO22GWON.js +0 -0
  154. package/dist/chunk-IZJN3EF7.js +1 -0
  155. package/dist/chunk-J7BV4KHG.js +1 -0
  156. package/dist/chunk-JVE6CXCJ.js +1 -0
  157. package/dist/chunk-K2P2BHV5.js +1 -0
  158. package/dist/chunk-KBOMPMSI.js +1 -0
  159. package/dist/chunk-KR3UUTB2.js +1 -0
  160. package/dist/chunk-LGJVLEAH.js +1 -0
  161. package/dist/chunk-LJ4O6YTN.js +1 -0
  162. package/dist/chunk-MBC4UVTS.js +1 -0
  163. package/dist/chunk-MCVO25PZ.js +1 -0
  164. package/dist/chunk-MEEQNPGM.js +1 -0
  165. package/dist/chunk-MSMNEIWA.js +0 -0
  166. package/dist/chunk-MYVLBALF.js +1 -0
  167. package/dist/chunk-MZBB5ROJ.js +1 -0
  168. package/dist/chunk-NB5PGEDY.js +1 -0
  169. package/dist/chunk-NTFHNL7T.js +1 -0
  170. package/dist/chunk-O3MRWAI5.js +1 -0
  171. package/dist/chunk-OPMD7QNV.js +1 -0
  172. package/dist/chunk-RGTLYBOY.js +3 -0
  173. package/dist/chunk-RWBLICYX.js +0 -0
  174. package/dist/chunk-RYD6RHRX.js +0 -0
  175. package/dist/chunk-RZ5YSY7Y.js +0 -0
  176. package/dist/chunk-SDMH2EVD.js +1 -0
  177. package/dist/chunk-SEJUHKS5.js +1 -0
  178. package/dist/chunk-SIU7DSOA.js +1 -0
  179. package/dist/chunk-T45UAWNI.js +3 -0
  180. package/dist/chunk-TIXCZTJ7.js +0 -0
  181. package/dist/chunk-U4ZP73V4.js +1 -0
  182. package/dist/chunk-U73BNLZ3.js +1 -0
  183. package/dist/chunk-UEOCR2C3.js +2 -0
  184. package/dist/chunk-UN2SLVFG.js +1 -0
  185. package/dist/chunk-UUZ4HU7L.js +0 -0
  186. package/dist/chunk-VBRSAI3K.js +1 -0
  187. package/dist/chunk-VJVFHL6P.js +0 -0
  188. package/dist/chunk-W27NAI62.js +1 -0
  189. package/dist/chunk-W4SW4RWX.js +1 -0
  190. package/dist/chunk-WHA6UO5X.js +1 -0
  191. package/dist/chunk-XIOI5PKM.js +1 -0
  192. package/dist/chunk-XWXEH3SW.js +1 -0
  193. package/dist/chunk-Y4TCT2K6.js +1 -0
  194. package/dist/chunk-Y4WEMSE4.js +0 -0
  195. package/dist/chunk-YCLR3IE3.js +0 -0
  196. package/dist/collection-layout.css +30 -0
  197. package/dist/collection-layout.d.ts +2 -0
  198. package/dist/collection-layout.js +1 -0
  199. package/dist/colors.d.ts +2 -0
  200. package/dist/columns2.css +1 -0
  201. package/dist/columns2.d.ts +2 -0
  202. package/dist/columns2.js +1 -0
  203. package/dist/columns3.css +1 -0
  204. package/dist/columns3.d.ts +2 -0
  205. package/dist/columns3.js +1 -0
  206. package/dist/columns4.css +1 -0
  207. package/dist/columns4.d.ts +2 -0
  208. package/dist/columns4.js +1 -0
  209. package/dist/command-palette.css +35 -0
  210. package/dist/command-palette.d.ts +2 -0
  211. package/dist/command-palette.js +1 -0
  212. package/dist/component-factories/app-layout.d.ts +2 -0
  213. package/dist/component-factories/breadcrumbs.d.ts +2 -0
  214. package/dist/component-factories/cascader.d.ts +2 -0
  215. package/dist/component-factories/chat-widget.d.ts +2 -0
  216. package/dist/component-factories/chat.d.ts +2 -0
  217. package/dist/component-factories/collection-layout.d.ts +2 -0
  218. package/dist/component-factories/command-palette.d.ts +2 -0
  219. package/dist/component-factories/content-carousel.d.ts +2 -0
  220. package/dist/component-factories/dashboard-canvas.d.ts +3 -0
  221. package/dist/component-factories/dashboard-panel.d.ts +3 -0
  222. package/dist/component-factories/date-picker.d.ts +2 -0
  223. package/dist/component-factories/date-range-picker.d.ts +2 -0
  224. package/dist/component-factories/date-time-picker.d.ts +2 -0
  225. package/dist/component-factories/descriptions.d.ts +2 -0
  226. package/dist/component-factories/drawer.d.ts +2 -0
  227. package/dist/component-factories/float-button.d.ts +2 -0
  228. package/dist/component-factories/font-provider.d.ts +2 -0
  229. package/dist/component-factories/hero-section.d.ts +2 -0
  230. package/dist/component-factories/image-compare.d.ts +2 -0
  231. package/dist/component-factories/logo-cloud.d.ts +2 -0
  232. package/dist/component-factories/media-card.d.ts +2 -0
  233. package/dist/component-factories/media-image.d.ts +2 -0
  234. package/dist/component-factories/modal.d.ts +2 -0
  235. package/dist/component-factories/notification-center.d.ts +3 -0
  236. package/dist/component-factories/notification.d.ts +5 -0
  237. package/dist/component-factories/page-header.d.ts +2 -0
  238. package/dist/component-factories/page-layout.d.ts +2 -0
  239. package/dist/component-factories/pagination.d.ts +2 -0
  240. package/dist/component-factories/profile-card.d.ts +2 -0
  241. package/dist/component-factories/qr-code.d.ts +2 -0
  242. package/dist/component-factories/quote-card.d.ts +2 -0
  243. package/dist/component-factories/shape-mask.d.ts +2 -0
  244. package/dist/component-factories/sidebar.d.ts +2 -0
  245. package/dist/component-factories/sparkline.d.ts +2 -0
  246. package/dist/component-factories/split-section.d.ts +2 -0
  247. package/dist/component-factories/splitter.d.ts +2 -0
  248. package/dist/component-factories/statistic.d.ts +2 -0
  249. package/dist/component-factories/text-highlight.d.ts +2 -0
  250. package/dist/component-factories/time-picker.d.ts +2 -0
  251. package/dist/component-factories/timeline.d.ts +2 -0
  252. package/dist/component-factories/tour.d.ts +2 -0
  253. package/dist/component-factories/transfer-list.d.ts +2 -0
  254. package/dist/component-factories/tree-select.d.ts +2 -0
  255. package/dist/component-factories/tree-view.d.ts +2 -0
  256. package/dist/component-factories/upload-manager.d.ts +2 -0
  257. package/dist/component-factories/video-lightbox.d.ts +2 -0
  258. package/dist/component-factories/video-player.d.ts +2 -0
  259. package/dist/component-runtime.d.ts +2 -0
  260. package/dist/content-carousel.css +34 -0
  261. package/dist/content-carousel.d.ts +2 -0
  262. package/dist/content-carousel.js +1 -0
  263. package/dist/content.css +2085 -0
  264. package/dist/content.d.ts +13 -0
  265. package/dist/content.js +1 -0
  266. package/dist/core.css +1070 -0
  267. package/dist/core.d.ts +6 -0
  268. package/dist/core.js +1 -0
  269. package/dist/dashboard-canvas.css +49 -0
  270. package/dist/dashboard-canvas.d.ts +2 -0
  271. package/dist/dashboard-canvas.js +1 -0
  272. package/dist/dashboard-panel.css +2 -0
  273. package/dist/dashboard-panel.d.ts +2 -0
  274. package/dist/dashboard-panel.js +1 -0
  275. package/dist/data.css +876 -0
  276. package/dist/data.d.ts +10 -0
  277. package/dist/data.js +1 -0
  278. package/dist/date-picker.css +78 -0
  279. package/dist/date-picker.d.ts +2 -0
  280. package/dist/date-picker.js +1 -0
  281. package/dist/date-range-picker.css +78 -0
  282. package/dist/date-range-picker.d.ts +2 -0
  283. package/dist/date-range-picker.js +1 -0
  284. package/dist/date-time-picker.css +78 -0
  285. package/dist/date-time-picker.d.ts +2 -0
  286. package/dist/date-time-picker.js +1 -0
  287. package/dist/descriptions.css +113 -0
  288. package/dist/descriptions.d.ts +2 -0
  289. package/dist/descriptions.js +1 -0
  290. package/dist/dom.d.ts +7 -0
  291. package/dist/draft-components.json +77 -0
  292. package/dist/drawer.css +215 -0
  293. package/dist/drawer.d.ts +2 -0
  294. package/dist/drawer.js +1 -0
  295. package/dist/empty-state.css +110 -0
  296. package/dist/empty-state.d.ts +2 -0
  297. package/dist/empty-state.js +1 -0
  298. package/dist/essentials.css +1295 -0
  299. package/dist/essentials.d.ts +11 -0
  300. package/dist/essentials.js +1 -0
  301. package/dist/feedback.css +1136 -0
  302. package/dist/feedback.d.ts +10 -0
  303. package/dist/feedback.js +1 -0
  304. package/dist/float-button.css +28 -0
  305. package/dist/float-button.d.ts +2 -0
  306. package/dist/float-button.js +1 -0
  307. package/dist/font-provider.css +5 -0
  308. package/dist/font-provider.d.ts +2 -0
  309. package/dist/font-provider.js +1 -0
  310. package/dist/fonts/dm-sans-LICENSE.txt +93 -0
  311. package/dist/fonts/dm-sans-latin-ext-wght-italic.woff2 +0 -0
  312. package/dist/fonts/dm-sans-latin-ext-wght-normal.woff2 +0 -0
  313. package/dist/fonts/dm-sans-latin-wght-italic.woff2 +0 -0
  314. package/dist/fonts/dm-sans-latin-wght-normal.woff2 +0 -0
  315. package/dist/fonts/ibm-plex-mono-LICENSE.txt +93 -0
  316. package/dist/fonts/ibm-plex-mono-latin-100-italic.woff2 +0 -0
  317. package/dist/fonts/ibm-plex-mono-latin-100-normal.woff2 +0 -0
  318. package/dist/fonts/ibm-plex-mono-latin-200-italic.woff2 +0 -0
  319. package/dist/fonts/ibm-plex-mono-latin-200-normal.woff2 +0 -0
  320. package/dist/fonts/ibm-plex-mono-latin-300-italic.woff2 +0 -0
  321. package/dist/fonts/ibm-plex-mono-latin-300-normal.woff2 +0 -0
  322. package/dist/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
  323. package/dist/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  324. package/dist/fonts/ibm-plex-mono-latin-500-italic.woff2 +0 -0
  325. package/dist/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  326. package/dist/fonts/ibm-plex-mono-latin-600-italic.woff2 +0 -0
  327. package/dist/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  328. package/dist/fonts/ibm-plex-mono-latin-700-italic.woff2 +0 -0
  329. package/dist/fonts/ibm-plex-mono-latin-700-normal.woff2 +0 -0
  330. package/dist/fonts/ibm-plex-mono-latin-ext-100-italic.woff2 +0 -0
  331. package/dist/fonts/ibm-plex-mono-latin-ext-100-normal.woff2 +0 -0
  332. package/dist/fonts/ibm-plex-mono-latin-ext-200-italic.woff2 +0 -0
  333. package/dist/fonts/ibm-plex-mono-latin-ext-200-normal.woff2 +0 -0
  334. package/dist/fonts/ibm-plex-mono-latin-ext-300-italic.woff2 +0 -0
  335. package/dist/fonts/ibm-plex-mono-latin-ext-300-normal.woff2 +0 -0
  336. package/dist/fonts/ibm-plex-mono-latin-ext-400-italic.woff2 +0 -0
  337. package/dist/fonts/ibm-plex-mono-latin-ext-400-normal.woff2 +0 -0
  338. package/dist/fonts/ibm-plex-mono-latin-ext-500-italic.woff2 +0 -0
  339. package/dist/fonts/ibm-plex-mono-latin-ext-500-normal.woff2 +0 -0
  340. package/dist/fonts/ibm-plex-mono-latin-ext-600-italic.woff2 +0 -0
  341. package/dist/fonts/ibm-plex-mono-latin-ext-600-normal.woff2 +0 -0
  342. package/dist/fonts/ibm-plex-mono-latin-ext-700-italic.woff2 +0 -0
  343. package/dist/fonts/ibm-plex-mono-latin-ext-700-normal.woff2 +0 -0
  344. package/dist/fonts/inter-LICENSE.txt +93 -0
  345. package/dist/fonts/inter-latin-ext-wght-italic.woff2 +0 -0
  346. package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  347. package/dist/fonts/inter-latin-wght-italic.woff2 +0 -0
  348. package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
  349. package/dist/fonts/jetbrains-mono-LICENSE.txt +93 -0
  350. package/dist/fonts/jetbrains-mono-latin-ext-wght-italic.woff2 +0 -0
  351. package/dist/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  352. package/dist/fonts/jetbrains-mono-latin-wght-italic.woff2 +0 -0
  353. package/dist/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  354. package/dist/fonts/lora-LICENSE.txt +93 -0
  355. package/dist/fonts/lora-latin-ext-wght-italic.woff2 +0 -0
  356. package/dist/fonts/lora-latin-ext-wght-normal.woff2 +0 -0
  357. package/dist/fonts/lora-latin-wght-italic.woff2 +0 -0
  358. package/dist/fonts/lora-latin-wght-normal.woff2 +0 -0
  359. package/dist/fonts/manifest.json +618 -0
  360. package/dist/fonts/manrope-LICENSE.txt +93 -0
  361. package/dist/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  362. package/dist/fonts/manrope-latin-wght-normal.woff2 +0 -0
  363. package/dist/fonts/merriweather-LICENSE.txt +93 -0
  364. package/dist/fonts/merriweather-latin-ext-wght-italic.woff2 +0 -0
  365. package/dist/fonts/merriweather-latin-ext-wght-normal.woff2 +0 -0
  366. package/dist/fonts/merriweather-latin-wght-italic.woff2 +0 -0
  367. package/dist/fonts/merriweather-latin-wght-normal.woff2 +0 -0
  368. package/dist/fonts/montserrat-LICENSE.txt +93 -0
  369. package/dist/fonts/montserrat-latin-ext-wght-italic.woff2 +0 -0
  370. package/dist/fonts/montserrat-latin-ext-wght-normal.woff2 +0 -0
  371. package/dist/fonts/montserrat-latin-wght-italic.woff2 +0 -0
  372. package/dist/fonts/montserrat-latin-wght-normal.woff2 +0 -0
  373. package/dist/fonts/playfair-display-LICENSE.txt +93 -0
  374. package/dist/fonts/playfair-display-latin-ext-wght-italic.woff2 +0 -0
  375. package/dist/fonts/playfair-display-latin-ext-wght-normal.woff2 +0 -0
  376. package/dist/fonts/playfair-display-latin-wght-italic.woff2 +0 -0
  377. package/dist/fonts/playfair-display-latin-wght-normal.woff2 +0 -0
  378. package/dist/fonts/roboto-LICENSE.txt +93 -0
  379. package/dist/fonts/roboto-latin-ext-wght-italic.woff2 +0 -0
  380. package/dist/fonts/roboto-latin-ext-wght-normal.woff2 +0 -0
  381. package/dist/fonts/roboto-latin-wght-italic.woff2 +0 -0
  382. package/dist/fonts/roboto-latin-wght-normal.woff2 +0 -0
  383. package/dist/fonts/source-sans-3-LICENSE.txt +93 -0
  384. package/dist/fonts/source-sans-3-latin-ext-wght-italic.woff2 +0 -0
  385. package/dist/fonts/source-sans-3-latin-ext-wght-normal.woff2 +0 -0
  386. package/dist/fonts/source-sans-3-latin-wght-italic.woff2 +0 -0
  387. package/dist/fonts/source-sans-3-latin-wght-normal.woff2 +0 -0
  388. package/dist/form-field.css +1 -0
  389. package/dist/form-field.d.ts +2 -0
  390. package/dist/form-field.js +1 -0
  391. package/dist/form-layout/choice.d.ts +15 -0
  392. package/dist/form-layout/layout.d.ts +12 -0
  393. package/dist/form-layout/select.d.ts +3 -0
  394. package/dist/form-layout/shared.d.ts +21 -0
  395. package/dist/form-layout/table.d.ts +20 -0
  396. package/dist/form-layout/text.d.ts +3 -0
  397. package/dist/form-layout/types.d.ts +151 -0
  398. package/dist/form-layout.css +62 -0
  399. package/dist/form-layout.d.ts +12 -0
  400. package/dist/form-layout.js +1 -0
  401. package/dist/grid-basic.css +12 -0
  402. package/dist/grid-basic.d.ts +10 -0
  403. package/dist/grid-basic.js +1 -0
  404. package/dist/grid-spec.d.ts +37 -0
  405. package/dist/grid.css +12 -0
  406. package/dist/grid.d.ts +1 -0
  407. package/dist/grid.js +1 -0
  408. package/dist/hero-section.css +41 -0
  409. package/dist/hero-section.d.ts +2 -0
  410. package/dist/hero-section.js +1 -0
  411. package/dist/image-compare.css +35 -0
  412. package/dist/image-compare.d.ts +2 -0
  413. package/dist/image-compare.js +1 -0
  414. package/dist/index.d.ts +57 -0
  415. package/dist/index.js +1 -0
  416. package/dist/inputs.css +1587 -0
  417. package/dist/inputs.d.ts +16 -0
  418. package/dist/inputs.js +1 -0
  419. package/dist/layout.css +907 -0
  420. package/dist/layout.d.ts +11 -0
  421. package/dist/layout.js +1 -0
  422. package/dist/logo-cloud.css +33 -0
  423. package/dist/logo-cloud.d.ts +2 -0
  424. package/dist/logo-cloud.js +1 -0
  425. package/dist/marketing-template-layout.css +30 -0
  426. package/dist/media-card.css +41 -0
  427. package/dist/media-card.d.ts +2 -0
  428. package/dist/media-card.js +1 -0
  429. package/dist/media-image.css +531 -0
  430. package/dist/media-image.d.ts +2 -0
  431. package/dist/media-image.js +1 -0
  432. package/dist/modal.css +210 -0
  433. package/dist/modal.d.ts +2 -0
  434. package/dist/modal.js +1 -0
  435. package/dist/native/app-layout.js +1 -0
  436. package/dist/native/cascader.js +1 -0
  437. package/dist/native/chat-widget.js +3 -0
  438. package/dist/native/chat.js +3 -0
  439. package/dist/native/collection-layout.js +1 -0
  440. package/dist/native/command-palette.js +1 -0
  441. package/dist/native/content-carousel.js +1 -0
  442. package/dist/native/dashboard-canvas.js +1 -0
  443. package/dist/native/date-picker.js +1 -0
  444. package/dist/native/date-range-picker.js +1 -0
  445. package/dist/native/date-time-picker.js +1 -0
  446. package/dist/native/descriptions.js +1 -0
  447. package/dist/native/drawer.js +1 -0
  448. package/dist/native/float-button.js +1 -0
  449. package/dist/native/font-provider.js +1 -0
  450. package/dist/native/form-layout.js +1 -0
  451. package/dist/native/hero-section.js +1 -0
  452. package/dist/native/image-compare.js +1 -0
  453. package/dist/native/logo-cloud.js +1 -0
  454. package/dist/native/media-card.js +1 -0
  455. package/dist/native/media-image.js +1 -0
  456. package/dist/native/modal.js +1 -0
  457. package/dist/native/notification-center.js +1 -0
  458. package/dist/native/notification.js +2 -0
  459. package/dist/native/page-layout.js +1 -0
  460. package/dist/native/pagination.js +1 -0
  461. package/dist/native/profile-card.js +1 -0
  462. package/dist/native/qr-code.js +3 -0
  463. package/dist/native/quote-card.js +1 -0
  464. package/dist/native/shape-mask.js +1 -0
  465. package/dist/native/sparkline.js +1 -0
  466. package/dist/native/split-section.js +1 -0
  467. package/dist/native/splitter.js +1 -0
  468. package/dist/native/statistic.js +1 -0
  469. package/dist/native/text-highlight.js +1 -0
  470. package/dist/native/time-picker.js +1 -0
  471. package/dist/native/timeline.js +1 -0
  472. package/dist/native/tour.js +1 -0
  473. package/dist/native/transfer-list.js +1 -0
  474. package/dist/native/tree-select.js +1 -0
  475. package/dist/native/tree-view.js +1 -0
  476. package/dist/native/upload-manager.js +1 -0
  477. package/dist/native/video-lightbox.js +1 -0
  478. package/dist/native/video-player.js +1 -0
  479. package/dist/native-base.d.ts +1 -0
  480. package/dist/native-components/app-layout.d.ts +1 -0
  481. package/dist/native-components/cascader.d.ts +1 -0
  482. package/dist/native-components/chat-widget.d.ts +1 -0
  483. package/dist/native-components/chat.d.ts +1 -0
  484. package/dist/native-components/collection-layout.d.ts +1 -0
  485. package/dist/native-components/command-palette.d.ts +1 -0
  486. package/dist/native-components/content-carousel.d.ts +1 -0
  487. package/dist/native-components/dashboard-canvas.d.ts +1 -0
  488. package/dist/native-components/date-picker.d.ts +1 -0
  489. package/dist/native-components/date-range-picker.d.ts +1 -0
  490. package/dist/native-components/date-time-picker.d.ts +1 -0
  491. package/dist/native-components/descriptions.d.ts +1 -0
  492. package/dist/native-components/drawer.d.ts +1 -0
  493. package/dist/native-components/float-button.d.ts +1 -0
  494. package/dist/native-components/font-provider.d.ts +1 -0
  495. package/dist/native-components/form-layout.d.ts +1 -0
  496. package/dist/native-components/hero-section.d.ts +1 -0
  497. package/dist/native-components/image-compare.d.ts +1 -0
  498. package/dist/native-components/logo-cloud.d.ts +1 -0
  499. package/dist/native-components/media-card.d.ts +1 -0
  500. package/dist/native-components/media-image.d.ts +1 -0
  501. package/dist/native-components/modal.d.ts +1 -0
  502. package/dist/native-components/notification-center.d.ts +1 -0
  503. package/dist/native-components/notification.d.ts +1 -0
  504. package/dist/native-components/page-layout.d.ts +1 -0
  505. package/dist/native-components/pagination.d.ts +1 -0
  506. package/dist/native-components/profile-card.d.ts +1 -0
  507. package/dist/native-components/qr-code.d.ts +1 -0
  508. package/dist/native-components/quote-card.d.ts +1 -0
  509. package/dist/native-components/shape-mask.d.ts +1 -0
  510. package/dist/native-components/sparkline.d.ts +1 -0
  511. package/dist/native-components/split-section.d.ts +1 -0
  512. package/dist/native-components/splitter.d.ts +1 -0
  513. package/dist/native-components/statistic.d.ts +1 -0
  514. package/dist/native-components/text-highlight.d.ts +1 -0
  515. package/dist/native-components/time-picker.d.ts +1 -0
  516. package/dist/native-components/timeline.d.ts +1 -0
  517. package/dist/native-components/tour.d.ts +1 -0
  518. package/dist/native-components/transfer-list.d.ts +1 -0
  519. package/dist/native-components/tree-select.d.ts +1 -0
  520. package/dist/native-components/tree-view.d.ts +1 -0
  521. package/dist/native-components/upload-manager.d.ts +1 -0
  522. package/dist/native-components/video-lightbox.d.ts +1 -0
  523. package/dist/native-components/video-player.d.ts +1 -0
  524. package/dist/native-grid.d.ts +1 -0
  525. package/dist/native.d.ts +1 -0
  526. package/dist/notification-center.css +49 -0
  527. package/dist/notification-center.d.ts +2 -0
  528. package/dist/notification-center.js +1 -0
  529. package/dist/notification.css +155 -0
  530. package/dist/notification.d.ts +2 -0
  531. package/dist/notification.js +1 -0
  532. package/dist/page-header.css +184 -0
  533. package/dist/page-header.d.ts +2 -0
  534. package/dist/page-header.js +1 -0
  535. package/dist/page-layout.css +117 -0
  536. package/dist/page-layout.d.ts +2 -0
  537. package/dist/page-layout.js +1 -0
  538. package/dist/pagination.css +127 -0
  539. package/dist/pagination.d.ts +2 -0
  540. package/dist/pagination.js +1 -0
  541. package/dist/primitives.d.ts +1 -0
  542. package/dist/profile-card.css +484 -0
  543. package/dist/profile-card.d.ts +2 -0
  544. package/dist/profile-card.js +1 -0
  545. package/dist/qr-code.css +125 -0
  546. package/dist/qr-code.d.ts +2 -0
  547. package/dist/qr-code.js +1 -0
  548. package/dist/quote-card.css +30 -0
  549. package/dist/quote-card.d.ts +2 -0
  550. package/dist/quote-card.js +1 -0
  551. package/dist/radio-button.css +1 -0
  552. package/dist/radio-button.d.ts +2 -0
  553. package/dist/radio-button.js +1 -0
  554. package/dist/radio-group.css +1 -0
  555. package/dist/radio-group.d.ts +2 -0
  556. package/dist/radio-group.js +1 -0
  557. package/dist/select.css +1 -0
  558. package/dist/select.d.ts +2 -0
  559. package/dist/select.js +1 -0
  560. package/dist/shape-mask.css +10 -0
  561. package/dist/shape-mask.d.ts +2 -0
  562. package/dist/shape-mask.js +1 -0
  563. package/dist/sidebar.css +183 -0
  564. package/dist/sidebar.d.ts +2 -0
  565. package/dist/sidebar.js +1 -0
  566. package/dist/sizes.json +1194 -0
  567. package/dist/skeleton.css +69 -0
  568. package/dist/skeleton.d.ts +2 -0
  569. package/dist/skeleton.js +1 -0
  570. package/dist/sparkline.css +38 -0
  571. package/dist/sparkline.d.ts +2 -0
  572. package/dist/sparkline.js +1 -0
  573. package/dist/split-section.css +34 -0
  574. package/dist/split-section.d.ts +2 -0
  575. package/dist/split-section.js +1 -0
  576. package/dist/splitter.css +32 -0
  577. package/dist/splitter.d.ts +2 -0
  578. package/dist/splitter.js +1 -0
  579. package/dist/statistic.css +107 -0
  580. package/dist/statistic.d.ts +2 -0
  581. package/dist/statistic.js +1 -0
  582. package/dist/styles.css +8945 -0
  583. package/dist/switch.css +1 -0
  584. package/dist/switch.d.ts +2 -0
  585. package/dist/switch.js +1 -0
  586. package/dist/table.css +1 -0
  587. package/dist/table.d.ts +2 -0
  588. package/dist/table.js +1 -0
  589. package/dist/text-area.css +1 -0
  590. package/dist/text-area.d.ts +2 -0
  591. package/dist/text-area.js +1 -0
  592. package/dist/text-highlight.css +49 -0
  593. package/dist/text-highlight.d.ts +2 -0
  594. package/dist/text-highlight.js +1 -0
  595. package/dist/text-input.css +1 -0
  596. package/dist/text-input.d.ts +2 -0
  597. package/dist/text-input.js +1 -0
  598. package/dist/theme-runtime.d.ts +1 -0
  599. package/dist/theme.css +1391 -0
  600. package/dist/theme.d.ts +10 -0
  601. package/dist/theme.js +1 -0
  602. package/dist/time-picker.css +78 -0
  603. package/dist/time-picker.d.ts +2 -0
  604. package/dist/time-picker.js +1 -0
  605. package/dist/timeline.css +126 -0
  606. package/dist/timeline.d.ts +2 -0
  607. package/dist/timeline.js +1 -0
  608. package/dist/tour.css +138 -0
  609. package/dist/tour.d.ts +2 -0
  610. package/dist/tour.js +1 -0
  611. package/dist/transfer-list.css +878 -0
  612. package/dist/transfer-list.d.ts +2 -0
  613. package/dist/transfer-list.js +1 -0
  614. package/dist/tree-select.css +135 -0
  615. package/dist/tree-select.d.ts +2 -0
  616. package/dist/tree-select.js +1 -0
  617. package/dist/tree-view.css +118 -0
  618. package/dist/tree-view.d.ts +2 -0
  619. package/dist/tree-view.js +1 -0
  620. package/dist/types.d.ts +1284 -0
  621. package/dist/upload-manager.css +40 -0
  622. package/dist/upload-manager.d.ts +2 -0
  623. package/dist/upload-manager.js +1 -0
  624. package/dist/video-lightbox.css +639 -0
  625. package/dist/video-lightbox.d.ts +2 -0
  626. package/dist/video-lightbox.js +1 -0
  627. package/dist/video-player.css +92 -0
  628. package/dist/video-player.d.ts +2 -0
  629. package/dist/video-player.js +1 -0
  630. package/docs/FORM-LAYOUT-ESSENTIALS.md +122 -0
  631. package/docs/PUBLISHING.md +129 -0
  632. package/draft-components.json +77 -0
  633. package/edition.json +282 -0
  634. package/npm-shrinkwrap.json +554 -0
  635. package/package.json +457 -4
  636. package/scripts/build.mjs +42 -0
  637. package/scripts/verify-package.mjs +136 -0
  638. package/src/advanced-types.ts +89 -0
  639. package/src/app-layout.ts +2 -0
  640. package/src/badge.ts +2 -0
  641. package/src/breadcrumbs.ts +2 -0
  642. package/src/button.ts +2 -0
  643. package/src/card.ts +2 -0
  644. package/src/cascader.ts +2 -0
  645. package/src/chat-widget.ts +2 -0
  646. package/src/chat.ts +2 -0
  647. package/src/checkbox.ts +2 -0
  648. package/src/chip-group.ts +2 -0
  649. package/src/chip.ts +2 -0
  650. package/src/collection-layout.ts +2 -0
  651. package/src/colors.ts +3 -0
  652. package/src/columns2.ts +2 -0
  653. package/src/columns3.ts +2 -0
  654. package/src/columns4.ts +2 -0
  655. package/src/command-palette.ts +2 -0
  656. package/src/component-factories/app-layout.ts +8 -0
  657. package/src/component-factories/breadcrumbs.ts +45 -0
  658. package/src/component-factories/cascader.ts +11 -0
  659. package/src/component-factories/chat-widget.ts +12 -0
  660. package/src/component-factories/chat.ts +10 -0
  661. package/src/component-factories/collection-layout.ts +5 -0
  662. package/src/component-factories/command-palette.ts +79 -0
  663. package/src/component-factories/content-carousel.ts +5 -0
  664. package/src/component-factories/dashboard-canvas.ts +11 -0
  665. package/src/component-factories/dashboard-panel.ts +9 -0
  666. package/src/component-factories/date-picker.ts +6 -0
  667. package/src/component-factories/date-range-picker.ts +6 -0
  668. package/src/component-factories/date-time-picker.ts +6 -0
  669. package/src/component-factories/descriptions.ts +11 -0
  670. package/src/component-factories/drawer.ts +12 -0
  671. package/src/component-factories/float-button.ts +7 -0
  672. package/src/component-factories/font-provider.ts +6 -0
  673. package/src/component-factories/hero-section.ts +5 -0
  674. package/src/component-factories/image-compare.ts +5 -0
  675. package/src/component-factories/logo-cloud.ts +5 -0
  676. package/src/component-factories/media-card.ts +5 -0
  677. package/src/component-factories/media-image.ts +5 -0
  678. package/src/component-factories/modal.ts +12 -0
  679. package/src/component-factories/notification-center.ts +13 -0
  680. package/src/component-factories/notification.ts +16 -0
  681. package/src/component-factories/page-header.ts +73 -0
  682. package/src/component-factories/page-layout.ts +8 -0
  683. package/src/component-factories/pagination.ts +11 -0
  684. package/src/component-factories/profile-card.ts +5 -0
  685. package/src/component-factories/qr-code.ts +11 -0
  686. package/src/component-factories/quote-card.ts +5 -0
  687. package/src/component-factories/shape-mask.ts +6 -0
  688. package/src/component-factories/sidebar.ts +98 -0
  689. package/src/component-factories/sparkline.ts +8 -0
  690. package/src/component-factories/split-section.ts +5 -0
  691. package/src/component-factories/splitter.ts +105 -0
  692. package/src/component-factories/statistic.ts +10 -0
  693. package/src/component-factories/text-highlight.ts +5 -0
  694. package/src/component-factories/time-picker.ts +6 -0
  695. package/src/component-factories/timeline.ts +11 -0
  696. package/src/component-factories/tour.ts +13 -0
  697. package/src/component-factories/transfer-list.ts +159 -0
  698. package/src/component-factories/tree-select.ts +83 -0
  699. package/src/component-factories/tree-view.ts +115 -0
  700. package/src/component-factories/upload-manager.ts +76 -0
  701. package/src/component-factories/video-lightbox.ts +5 -0
  702. package/src/component-factories/video-player.ts +5 -0
  703. package/src/component-runtime.ts +20 -0
  704. package/src/content-carousel.ts +2 -0
  705. package/src/content.ts +13 -0
  706. package/src/core.ts +6 -0
  707. package/src/dashboard-canvas.ts +2 -0
  708. package/src/dashboard-panel.ts +2 -0
  709. package/src/data.ts +10 -0
  710. package/src/date-picker.ts +2 -0
  711. package/src/date-range-picker.ts +2 -0
  712. package/src/date-time-picker.ts +2 -0
  713. package/src/descriptions.ts +2 -0
  714. package/src/dom.ts +65 -0
  715. package/src/drawer.ts +2 -0
  716. package/src/empty-state.ts +2 -0
  717. package/src/essentials.ts +180 -0
  718. package/src/feedback.ts +10 -0
  719. package/src/float-button.ts +2 -0
  720. package/src/font-provider.ts +2 -0
  721. package/src/form-field.ts +2 -0
  722. package/src/form-layout/choice.ts +66 -0
  723. package/src/form-layout/layout.ts +40 -0
  724. package/src/form-layout/select.ts +97 -0
  725. package/src/form-layout/shared.ts +57 -0
  726. package/src/form-layout/table.ts +86 -0
  727. package/src/form-layout/text.ts +73 -0
  728. package/src/form-layout/types.ts +59 -0
  729. package/src/form-layout.ts +12 -0
  730. package/src/grid-basic.ts +46 -0
  731. package/src/grid-spec.ts +93 -0
  732. package/src/grid.ts +1 -0
  733. package/src/hero-section.ts +2 -0
  734. package/src/image-compare.ts +2 -0
  735. package/src/index.ts +58 -0
  736. package/src/inputs.ts +16 -0
  737. package/src/layout.ts +11 -0
  738. package/src/logo-cloud.ts +2 -0
  739. package/src/media-card.ts +2 -0
  740. package/src/media-image.ts +2 -0
  741. package/src/modal.ts +2 -0
  742. package/src/native-base.ts +20 -0
  743. package/src/native-components/app-layout.ts +2 -0
  744. package/src/native-components/cascader.ts +2 -0
  745. package/src/native-components/chat-widget.ts +2 -0
  746. package/src/native-components/chat.ts +2 -0
  747. package/src/native-components/collection-layout.ts +2 -0
  748. package/src/native-components/command-palette.ts +2 -0
  749. package/src/native-components/content-carousel.ts +2 -0
  750. package/src/native-components/dashboard-canvas.ts +2 -0
  751. package/src/native-components/date-picker.ts +2 -0
  752. package/src/native-components/date-range-picker.ts +2 -0
  753. package/src/native-components/date-time-picker.ts +2 -0
  754. package/src/native-components/descriptions.ts +2 -0
  755. package/src/native-components/drawer.ts +2 -0
  756. package/src/native-components/float-button.ts +2 -0
  757. package/src/native-components/font-provider.ts +2 -0
  758. package/src/native-components/form-layout.ts +21 -0
  759. package/src/native-components/hero-section.ts +2 -0
  760. package/src/native-components/image-compare.ts +2 -0
  761. package/src/native-components/logo-cloud.ts +2 -0
  762. package/src/native-components/media-card.ts +2 -0
  763. package/src/native-components/media-image.ts +2 -0
  764. package/src/native-components/modal.ts +2 -0
  765. package/src/native-components/notification-center.ts +2 -0
  766. package/src/native-components/notification.ts +2 -0
  767. package/src/native-components/page-layout.ts +2 -0
  768. package/src/native-components/pagination.ts +2 -0
  769. package/src/native-components/profile-card.ts +2 -0
  770. package/src/native-components/qr-code.ts +2 -0
  771. package/src/native-components/quote-card.ts +2 -0
  772. package/src/native-components/shape-mask.ts +2 -0
  773. package/src/native-components/sparkline.ts +2 -0
  774. package/src/native-components/split-section.ts +2 -0
  775. package/src/native-components/splitter.ts +2 -0
  776. package/src/native-components/statistic.ts +2 -0
  777. package/src/native-components/text-highlight.ts +2 -0
  778. package/src/native-components/time-picker.ts +2 -0
  779. package/src/native-components/timeline.ts +2 -0
  780. package/src/native-components/tour.ts +2 -0
  781. package/src/native-components/transfer-list.ts +2 -0
  782. package/src/native-components/tree-select.ts +2 -0
  783. package/src/native-components/tree-view.ts +2 -0
  784. package/src/native-components/upload-manager.ts +2 -0
  785. package/src/native-components/video-lightbox.ts +2 -0
  786. package/src/native-components/video-player.ts +2 -0
  787. package/src/native-grid.ts +3 -0
  788. package/src/native.ts +3 -0
  789. package/src/notification-center.ts +2 -0
  790. package/src/notification.ts +2 -0
  791. package/src/page-header.ts +2 -0
  792. package/src/page-layout.ts +2 -0
  793. package/src/pagination.ts +2 -0
  794. package/src/primitives.ts +1 -0
  795. package/src/profile-card.ts +2 -0
  796. package/src/qr-code.ts +2 -0
  797. package/src/quote-card.ts +2 -0
  798. package/src/radio-button.ts +2 -0
  799. package/src/radio-group.ts +2 -0
  800. package/src/runtime/app-layout.d.ts +1 -0
  801. package/src/runtime/app-layout.js +168 -0
  802. package/src/runtime/cascader.d.ts +1 -0
  803. package/src/runtime/cascader.js +381 -0
  804. package/src/runtime/chat-widget.d.ts +1 -0
  805. package/src/runtime/chat-widget.js +630 -0
  806. package/src/runtime/chat.d.ts +1 -0
  807. package/src/runtime/chat.js +461 -0
  808. package/src/runtime/collection-layout.d.ts +1 -0
  809. package/src/runtime/collection-layout.js +269 -0
  810. package/src/runtime/command-palette.d.ts +1 -0
  811. package/src/runtime/command-palette.js +302 -0
  812. package/src/runtime/content-carousel.d.ts +1 -0
  813. package/src/runtime/content-carousel.js +282 -0
  814. package/src/runtime/dashboard-canvas.d.ts +1 -0
  815. package/src/runtime/dashboard-canvas.js +493 -0
  816. package/src/runtime/date-picker.d.ts +1 -0
  817. package/src/runtime/date-picker.js +826 -0
  818. package/src/runtime/date-range-picker.d.ts +1 -0
  819. package/src/runtime/date-range-picker.js +826 -0
  820. package/src/runtime/date-time-picker.d.ts +1 -0
  821. package/src/runtime/date-time-picker.js +826 -0
  822. package/src/runtime/descriptions.d.ts +1 -0
  823. package/src/runtime/descriptions.js +220 -0
  824. package/src/runtime/drawer.d.ts +1 -0
  825. package/src/runtime/drawer.js +287 -0
  826. package/src/runtime/empty-state.d.ts +1 -0
  827. package/src/runtime/empty-state.js +178 -0
  828. package/src/runtime/float-button.d.ts +1 -0
  829. package/src/runtime/float-button.js +171 -0
  830. package/src/runtime/font-provider.d.ts +1 -0
  831. package/src/runtime/font-provider.js +694 -0
  832. package/src/runtime/hero-section.d.ts +1 -0
  833. package/src/runtime/hero-section.js +186 -0
  834. package/src/runtime/image-compare.d.ts +1 -0
  835. package/src/runtime/image-compare.js +242 -0
  836. package/src/runtime/kernel.js +8 -0
  837. package/src/runtime/logo-cloud.d.ts +1 -0
  838. package/src/runtime/logo-cloud.js +163 -0
  839. package/src/runtime/media-card.d.ts +1 -0
  840. package/src/runtime/media-card.js +189 -0
  841. package/src/runtime/media-image.d.ts +1 -0
  842. package/src/runtime/media-image.js +480 -0
  843. package/src/runtime/modal.d.ts +1 -0
  844. package/src/runtime/modal.js +287 -0
  845. package/src/runtime/notification-center.d.ts +1 -0
  846. package/src/runtime/notification-center.js +417 -0
  847. package/src/runtime/notification.d.ts +1 -0
  848. package/src/runtime/notification.js +347 -0
  849. package/src/runtime/page-layout.d.ts +1 -0
  850. package/src/runtime/page-layout.js +105 -0
  851. package/src/runtime/pagination.d.ts +1 -0
  852. package/src/runtime/pagination.js +274 -0
  853. package/src/runtime/profile-card.d.ts +1 -0
  854. package/src/runtime/profile-card.js +512 -0
  855. package/src/runtime/qr-code.d.ts +1 -0
  856. package/src/runtime/qr-code.js +1942 -0
  857. package/src/runtime/quote-card.d.ts +1 -0
  858. package/src/runtime/quote-card.js +153 -0
  859. package/src/runtime/shape-mask.d.ts +1 -0
  860. package/src/runtime/shape-mask.js +211 -0
  861. package/src/runtime/sparkline.d.ts +1 -0
  862. package/src/runtime/sparkline.js +197 -0
  863. package/src/runtime/split-section.d.ts +1 -0
  864. package/src/runtime/split-section.js +148 -0
  865. package/src/runtime/splitter.d.ts +1 -0
  866. package/src/runtime/splitter.js +278 -0
  867. package/src/runtime/statistic.d.ts +1 -0
  868. package/src/runtime/statistic.js +204 -0
  869. package/src/runtime/text-highlight.d.ts +1 -0
  870. package/src/runtime/text-highlight.js +194 -0
  871. package/src/runtime/time-picker.d.ts +1 -0
  872. package/src/runtime/time-picker.js +826 -0
  873. package/src/runtime/timeline.d.ts +1 -0
  874. package/src/runtime/timeline.js +213 -0
  875. package/src/runtime/tour.d.ts +1 -0
  876. package/src/runtime/tour.js +412 -0
  877. package/src/runtime/transfer.d.ts +1 -0
  878. package/src/runtime/transfer.js +88 -0
  879. package/src/runtime/tree-select.d.ts +1 -0
  880. package/src/runtime/tree-select.js +420 -0
  881. package/src/runtime/tree.d.ts +1 -0
  882. package/src/runtime/tree.js +302 -0
  883. package/src/runtime/upload-manager.d.ts +1 -0
  884. package/src/runtime/upload-manager.js +408 -0
  885. package/src/runtime/video-lightbox.d.ts +1 -0
  886. package/src/runtime/video-lightbox.js +1117 -0
  887. package/src/runtime/video-player.d.ts +1 -0
  888. package/src/runtime/video-player.js +770 -0
  889. package/src/select.ts +2 -0
  890. package/src/shape-mask.ts +2 -0
  891. package/src/sidebar.ts +2 -0
  892. package/src/skeleton.ts +2 -0
  893. package/src/sparkline.ts +2 -0
  894. package/src/split-section.ts +2 -0
  895. package/src/splitter.ts +2 -0
  896. package/src/statistic.ts +2 -0
  897. package/src/switch.ts +2 -0
  898. package/src/table.ts +2 -0
  899. package/src/text-area.ts +2 -0
  900. package/src/text-highlight.ts +2 -0
  901. package/src/text-input.ts +2 -0
  902. package/src/theme-runtime.ts +70 -0
  903. package/src/theme.ts +32 -0
  904. package/src/time-picker.ts +2 -0
  905. package/src/timeline.ts +2 -0
  906. package/src/tour.ts +2 -0
  907. package/src/transfer-list.ts +2 -0
  908. package/src/tree-select.ts +2 -0
  909. package/src/tree-view.ts +2 -0
  910. package/src/types.ts +1287 -0
  911. package/src/upload-manager.ts +2 -0
  912. package/src/video-lightbox.ts +2 -0
  913. package/src/video-player.ts +2 -0
  914. package/styles/app-layout.css +115 -0
  915. package/styles/badge.css +131 -0
  916. package/styles/breadcrumbs.css +77 -0
  917. package/styles/button.css +625 -0
  918. package/styles/card.css +119 -0
  919. package/styles/cascader.css +152 -0
  920. package/styles/chat-widget.css +121 -0
  921. package/styles/chat.css +66 -0
  922. package/styles/checkbox.css +1 -0
  923. package/styles/chip-group.css +44 -0
  924. package/styles/chip.css +191 -0
  925. package/styles/collection-layout.css +30 -0
  926. package/styles/columns2.css +1 -0
  927. package/styles/columns3.css +1 -0
  928. package/styles/columns4.css +1 -0
  929. package/styles/command-palette.css +35 -0
  930. package/styles/content-carousel.css +34 -0
  931. package/styles/dashboard-canvas.css +49 -0
  932. package/styles/dashboard-panel.css +2 -0
  933. package/styles/date-picker.css +78 -0
  934. package/styles/date-range-picker.css +78 -0
  935. package/styles/date-time-picker.css +78 -0
  936. package/styles/descriptions.css +113 -0
  937. package/styles/drawer.css +215 -0
  938. package/styles/empty-state.css +110 -0
  939. package/styles/float-button.css +28 -0
  940. package/styles/font-provider.css +5 -0
  941. package/styles/form-field.css +1 -0
  942. package/styles/form-layout.css +62 -0
  943. package/styles/grid-basic.css +12 -0
  944. package/styles/hero-section.css +41 -0
  945. package/styles/image-compare.css +35 -0
  946. package/styles/logo-cloud.css +33 -0
  947. package/styles/marketing-template-layout.css +30 -0
  948. package/styles/media-card.css +41 -0
  949. package/styles/media-image.css +531 -0
  950. package/styles/modal.css +210 -0
  951. package/styles/notification-center.css +49 -0
  952. package/styles/notification.css +155 -0
  953. package/styles/page-header.css +184 -0
  954. package/styles/page-layout.css +117 -0
  955. package/styles/pagination.css +127 -0
  956. package/styles/profile-card.css +484 -0
  957. package/styles/qr-code.css +125 -0
  958. package/styles/quote-card.css +30 -0
  959. package/styles/radio-button.css +1 -0
  960. package/styles/radio-group.css +1 -0
  961. package/styles/select.css +1 -0
  962. package/styles/shape-mask.css +10 -0
  963. package/styles/sidebar.css +183 -0
  964. package/styles/skeleton.css +69 -0
  965. package/styles/sparkline.css +38 -0
  966. package/styles/split-section.css +34 -0
  967. package/styles/splitter.css +32 -0
  968. package/styles/statistic.css +107 -0
  969. package/styles/switch.css +1 -0
  970. package/styles/table.css +1 -0
  971. package/styles/text-area.css +1 -0
  972. package/styles/text-highlight.css +49 -0
  973. package/styles/text-input.css +1 -0
  974. package/styles/theme.css +1391 -0
  975. package/styles/time-picker.css +78 -0
  976. package/styles/timeline.css +126 -0
  977. package/styles/tour.css +138 -0
  978. package/styles/transfer-list.css +878 -0
  979. package/styles/tree-select.css +135 -0
  980. package/styles/tree-view.css +118 -0
  981. package/styles/upload-manager.css +40 -0
  982. package/styles/video-lightbox.css +639 -0
  983. package/styles/video-player.css +92 -0
  984. package/test/contracts.test.mjs +8 -0
  985. package/test/form-layout.test.mjs +28 -0
  986. package/test/isolation.test.mjs +36 -0
  987. package/tsconfig.json +20 -0
package/dist/modal.css ADDED
@@ -0,0 +1,210 @@
1
+ /* Shared controls used by this Block. Colors resolve through BluUITheme. */
2
+ .blu-common-button{
3
+ appearance:none;
4
+ display:inline-flex;
5
+ align-items:center;
6
+ justify-content:center;
7
+ gap:8px;
8
+ min-height:36px;
9
+ padding:7px 13px;
10
+ border:1px solid var(--bluui-border,#dce3ed);
11
+ border-radius:8px;
12
+ background:var(--bluui-surface,#fff);
13
+ color:var(--bluui-text,#182333);
14
+ font:inherit;
15
+ font-size:13px;
16
+ font-weight:600;
17
+ line-height:1.4;
18
+ white-space:nowrap;
19
+ cursor:pointer;
20
+ text-decoration:none;
21
+ box-shadow:none
22
+ }
23
+ .blu-common-button:hover:not(:disabled){
24
+ background:var(--bluui-surface-muted,#f4f6fa);
25
+ border-color:var(--bluui-primary,#5144ed)
26
+ }
27
+ .blu-common-button--primary{
28
+ background:var(--bluui-color-primary-solid,#5144ed);
29
+ color:var(--bluui-color-primary-contrast,#fff);
30
+ border-color:transparent
31
+ }
32
+ .blu-common-button--primary:hover:not(:disabled){
33
+ background:var(--bluui-color-primary-solid,#5144ed);
34
+ filter:brightness(.93)
35
+ }
36
+ .blu-common-button:disabled{
37
+ opacity:.45;
38
+ cursor:not-allowed
39
+ }
40
+ .blu-common-button:focus-visible,.blu-pagination input:focus-visible,.blu-pagination select:focus-visible{
41
+ outline:3px solid var(--bluui-primary,#5144ed);
42
+ outline-offset:2px
43
+ }
44
+ .blu-common-muted{
45
+ color:var(--bluui-text-muted,#68758b);
46
+ font-size:14px
47
+ }
48
+ .blu-common-error{
49
+ color:var(--bluui-color-error-text,#b42318);
50
+ font-size:13px;
51
+ margin:8px 0
52
+ }
53
+ .blu-common-error[hidden]{
54
+ display:none!important
55
+ }
56
+
57
+ /* Top-layer overlay. Native Content and Footer widgets stay alive while closed. */
58
+ .blu-overlay{
59
+ position:fixed;
60
+ inset:0;
61
+ width:100vw;
62
+ height:100dvh;
63
+ max-width:none;
64
+ max-height:none;
65
+ border:0;
66
+ margin:0;
67
+ padding:24px;
68
+ box-sizing:border-box;
69
+ background:rgba(8,14,27,.52);
70
+ backdrop-filter:blur(3px);
71
+ z-index:1100;
72
+ display:flex;
73
+ align-items:center;
74
+ justify-content:center;
75
+ color:var(--bluui-text)
76
+ }
77
+ .blu-overlay[hidden]{
78
+ display:none!important
79
+ }
80
+ .blu-overlay::backdrop{
81
+ background:transparent
82
+ }
83
+ .blu-overlay__panel{
84
+ width:min(560px,100%);
85
+ max-height:calc(100dvh - 48px);
86
+ display:flex;
87
+ flex-direction:column;
88
+ border:1px solid var(--bluui-border);
89
+ border-radius:18px;
90
+ background:var(--bluui-surface);
91
+ box-shadow:0 28px 90px #0005;
92
+ outline:none;
93
+ overflow:hidden
94
+ }
95
+ .blu-overlay[data-size=small] .blu-overlay__panel{
96
+ width:min(400px,100%)
97
+ }
98
+ .blu-overlay[data-size=large] .blu-overlay__panel{
99
+ width:min(800px,100%)
100
+ }
101
+ .blu-overlay__header{
102
+ position:relative;
103
+ padding:24px 64px 20px 24px;
104
+ border-bottom:1px solid var(--bluui-border)
105
+ }
106
+ .blu-overlay__header h2{
107
+ font-size:21px;
108
+ line-height:1.35;
109
+ letter-spacing:-.02em;
110
+ margin:0
111
+ }
112
+ .blu-overlay__description{
113
+ margin:8px 0 0;
114
+ font-size:14px;
115
+ line-height:1.6;
116
+ color:var(--bluui-text-muted)
117
+ }
118
+ .blu-overlay__description[hidden]{
119
+ display:none
120
+ }
121
+ .blu-overlay__close{
122
+ position:absolute;
123
+ right:18px;
124
+ top:20px;
125
+ padding:0;
126
+ width:34px;
127
+ min-height:34px;
128
+ font-size:23px;
129
+ border:0;
130
+ background:transparent
131
+ }
132
+ .blu-overlay__content{
133
+ padding:24px;
134
+ overflow:auto;
135
+ min-height:0;
136
+ line-height:1.6
137
+ }
138
+ .blu-overlay__footer{
139
+ display:flex;
140
+ align-items:center;
141
+ justify-content:space-between;
142
+ gap:12px;
143
+ flex-wrap:wrap;
144
+ padding:16px 24px;
145
+ background:var(--bluui-surface-muted);
146
+ border-top:1px solid var(--bluui-border)
147
+ }
148
+ .blu-overlay__footer[hidden]{
149
+ display:none
150
+ }
151
+ .blu-overlay__actions{
152
+ display:flex;
153
+ gap:8px;
154
+ margin-left:auto
155
+ }
156
+ .blu-overlay__actions[hidden]{
157
+ display:none
158
+ }
159
+ /* Drawer variations share the same overlay and focus behavior. */
160
+ .blu-overlay--drawer{
161
+ padding:0;
162
+ justify-content:flex-end;
163
+ align-items:stretch
164
+ }
165
+ .blu-overlay--drawer .blu-overlay__panel{
166
+ max-height:100dvh;
167
+ border-radius:18px 0 0 18px;
168
+ width:min(480px,calc(100vw - 24px))
169
+ }
170
+ .blu-overlay--drawer .blu-overlay__content{
171
+ flex:1
172
+ }
173
+ .blu-overlay--drawer[data-placement=left]{
174
+ justify-content:flex-start
175
+ }
176
+ .blu-overlay--drawer[data-placement=left] .blu-overlay__panel{
177
+ border-radius:0 18px 18px 0
178
+ }
179
+ .blu-overlay--drawer[data-placement=bottom]{
180
+ align-items:flex-end;
181
+ justify-content:center
182
+ }
183
+ .blu-overlay--drawer[data-placement=bottom] .blu-overlay__panel{
184
+ width:100%;
185
+ max-height:85dvh;
186
+ border-radius:18px 18px 0 0
187
+ }
188
+ @media(max-width:600px){.blu-overlay{
189
+ padding:12px
190
+ }
191
+ .blu-overlay--drawer{
192
+ padding:0
193
+ }
194
+ .blu-overlay__panel{
195
+ max-height:calc(100dvh - 24px)
196
+ }
197
+ .blu-overlay__header,.blu-overlay__content{
198
+ padding:20px
199
+ }
200
+ .blu-overlay__header{
201
+ padding-right:56px
202
+ }
203
+ .blu-overlay__footer{
204
+ padding:14px 20px
205
+ }}
206
+
207
+ /* Hide the canvas-only caption once this instance has initialized. */
208
+ .blu-modal-block:has([data-blu-ready]) > .blu-component-preview {
209
+ display: none;
210
+ }
@@ -0,0 +1,2 @@
1
+ export * from './component-factories/modal.js';
2
+ export type * from './types.js';
package/dist/modal.js ADDED
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-6EHKOVZK.js";import"./chunk-MEEQNPGM.js";import"./chunk-5TEIXA4R.js";import"./chunk-SDMH2EVD.js";export{a as createModal};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var u=typeof window=="undefined"?globalThis:window,w="__bluuiCommunityModulesV1",y=u[w]||(u[w]={families:Object.create(null)}),s=u.BluUICommunityRuntime&&!Object.isFrozen(u.BluUICommunityRuntime)?u.BluUICommunityRuntime:Object.assign({},u.BluUICommunityRuntime||{});u.BluUICommunityRuntime=s;function O(t,n){return y.families[t]||(y.families[t]=n())}function L(t,n){return s[t]||(s[t]=n())}var p=O("foundations",()=>({instances:new Map,serial:0}));function b(t,n,e){var o=document.createElement(t);return n&&(o.className=n),e!==void 0&&(o.textContent=e),o}function l(t,n,e){return t.setAttribute(n,String(e)),t}function v(t,n){return Array.from(t.host.children).find(function(e){return e.classList.contains("blu-common-slot--"+n.toLowerCase())})}function C(t,n,e){if(!(t.dead||!t.events[n]))try{Promise.resolve(t.events[n](e)).catch(function(o){g(t,o.message||String(o))})}catch(o){t.renderSignature=void 0,g(t,o.message||String(o))}}function g(t,n){if(t.error||(t.error=l(b("p","blu-common-error"),"role","alert"),t.host.append(t.error)),t.error.textContent=n,t.error.hidden=!n,n&&t.lastError!==n&&t.events.Error){t.lastError=n;try{t.events.Error(n)}catch(e){}}n||(t.lastError="")}function f(t,n,e,o){n.addEventListener(e,o),t.cleanup.push(function(){n.removeEventListener(e,o)})}function h(t){var n=p.instances.get(t);n&&(n.dead=!0,n.cleanup.forEach(function(e){e()}),n.owned.forEach(function(e){e.remove()}),n.host._bluFoundationOwner===t&&(delete n.host._bluFoundationOwner,n.host.removeAttribute("data-blu-ready")),p.instances.delete(t))}function E(t,n){return t.owned.push(n),n}function _(t){var n=t.options,e=v(t,"Navigation"),o=v(t,"Content"),c=v(t,"Footer");if(t.host.classList.add("blu-app-layout"),!e||!o)throw Error("AppLayout needs Navigation and Content slots.");t.host.classList.toggle("blu-app-layout--viewport",n.FitViewport!==!1),l(e,"aria-label",n.AccessibleLabel||"Application navigation"),l(e,"role","complementary"),l(o,"role","main"),l(o,"tabindex","-1"),o.id||(o.id=t.uid+"-content"),e.id||(e.id=t.uid+"-navigation"),c&&(c.hidden=!n.ShowFooter),t.toggle?t.lastRequested!==n.IsNavigationOpen&&(t.open=n.IsNavigationOpen!==!1,t.narrow||(t.desktopOpen=t.open)):(t.media=u.matchMedia("(max-width: 800px)"),t.narrow=t.media.matches,t.desktopOpen=n.IsNavigationOpen!==!1,t.open=t.narrow?!1:t.desktopOpen,t.skip=E(t,b("a","blu-app-layout__skip","Skip to content")),t.skip.href="#"+o.id,t.toggle=E(t,b("button","blu-app-layout__toggle","\u2630")),t.toggle.type="button",l(t.toggle,"aria-controls",e.id),l(t.toggle,"aria-label","Toggle navigation"),t.host.prepend(t.skip,t.toggle),t.paintNav=function(){e.hidden=!t.open,t.host.classList.toggle("blu-app-layout--closed",!t.open),l(t.toggle,"aria-expanded",t.open)},f(t,t.skip,"click",function(i){i.preventDefault(),o.focus()}),f(t,t.toggle,"click",function(){t.open=!t.open,t.narrow||(t.desktopOpen=t.open),t.paintNav(),C(t,"NavigationOpenChanged",t.open)}),f(t,e,"keydown",function(i){i.key==="Escape"&&t.narrow&&(t.open=!1,t.paintNav(),t.toggle.focus(),C(t,"NavigationOpenChanged",!1))}),f(t,t.media,"change",function(){t.narrow=t.media.matches,t.open=t.narrow?!1:t.desktopOpen,t.paintNav()})),t.lastRequested=n.IsNavigationOpen,t.paintNav()}function x(t,n){return{sync:function(e,o,c,i){var a=document.getElementById(e);if(!a)return"Component host was not found.";i=i||e;var r=p.instances.get(i);r&&r.host!==a&&(h(i),r=null),a._bluFoundationOwner&&a._bluFoundationOwner!==i&&h(a._bluFoundationOwner),r||(r={host:a,key:i,uid:"blu-foundation-"+ ++p.serial,owned:[],cleanup:[]},p.instances.set(i,r));var m=a.nextElementSibling;m&&m.classList.contains("blu-component-preview")&&(m.hidden=!0),a._bluFoundationOwner=i,r.options=o||{},r.events=c||{},l(a,"data-blu-ready","true");try{return n(r),g(r,""),""}catch(d){return r.renderSignature=void 0,g(r,d.message||String(d)),d.message||String(d)}},destroy:h}}function N(){return L("AppLayout",()=>x("AppLayout",_))}N();})();
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var v=typeof window=="undefined"?globalThis:window,A="__bluuiCommunityModulesV1",D=v[A]||(v[A]={families:Object.create(null)}),K=v.BluUICommunityRuntime&&!Object.isFrozen(v.BluUICommunityRuntime)?v.BluUICommunityRuntime:Object.assign({},v.BluUICommunityRuntime||{});v.BluUICommunityRuntime=K;function N(e,t){return D.families[e]||(D.families[e]=t())}function k(e,t){return K[e]||(K[e]=t())}var u=N("common",()=>({instances:new Map,hosts:new Map,serial:0,overlays:[],inertState:new Map,oldOverflow:void 0}));function m(e,t,n){var r=document.createElement(e);return t&&(r.className=t),n!==void 0&&(r.textContent=n),r}function f(e,t,n){return e.setAttribute(t,String(n)),e}function x(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function O(e,t,n,r,d){t.addEventListener(n,r,d),e.cleanup.push(function(){t.removeEventListener(n,r,d)})}function w(e,t,n){var r=m("button","blu-common-button"+(n?" blu-common-button--primary":""),e);return r.type="button",r.addEventListener("click",t),r}function q(e,t){var n=typeof e=="string"?JSON.parse(e||"[]"):e||[];if(!Array.isArray(n)||n.length>t)throw Error("Expected a list with at most "+t+" items.");return n}function F(e,t){var n=new Set;return q(e,t).map(function(r){if(!r||typeof r.Key!="string"||!r.Key.trim()||n.has(r.Key))throw Error("Every item needs a unique, nonempty Key.");return n.add(r.Key),r})}function B(e,t){if(!(e.dead||e.host._bluCommonOwner!==e.key||!e.events[t])){var n=Array.prototype.slice.call(arguments,2);try{Promise.resolve(e.events[t].apply(null,n)).catch(function(r){t!=="Error"&&S(e,r.message||String(r))})}catch(r){t!=="Error"&&S(e,r.message||String(r))}}}function S(e,t){e.error||(e.error=f(m("p","blu-common-error"),"role","alert"),e.host.append(e.error)),e.error.textContent=t,e.error.hidden=!t,t&&t!==e.lastError&&B(e,"Error",t),e.lastError=t}function R(e,t,n,r,d){var i=document.getElementById(e);if(!i)return null;r=r||e;var a=u.instances.get(r);return a&&a.host!==i&&(_(r),a=null),i._bluCommonOwner&&i._bluCommonOwner!==r&&_(i._bluCommonOwner),a||(a={host:i,key:r,kind:d,uid:"blu-common-"+ ++u.serial,cleanup:[],events:{},options:{}},u.instances.set(r,a)),i._bluCommonOwner=r,a.options=t||{},a.events=n||{},f(i,"data-blu-ready","true"),a}function _(e){var t=u.instances.get(e);t&&(t.dead=!0,J(t),t.dispose&&t.dispose(),t.cleanup.forEach(function(n){n()}),t.host._bluCommonOwner===e&&(delete t.host._bluCommonOwner,t.host.removeAttribute("data-blu-ready"),t.preserve||x(t.host)),u.instances.delete(e))}function T(e,t){return e.body||(e.body=m("div",t),e.host.append(e.body)),e.body}function j(){u.inertState.forEach(function(n,r){r.inert=n}),u.inertState.clear();var e=u.overlays[u.overlays.length-1];if(!e){u.oldOverflow!==void 0&&(document.body.style.overflow=u.oldOverflow),u.oldOverflow=void 0;return}u.oldOverflow===void 0&&(u.oldOverflow=document.body.style.overflow),document.body.style.overflow="hidden";for(var t=e.layer;t&&t.parentElement&&(Array.from(t.parentElement.children).forEach(function(n){n!==t&&n instanceof HTMLElement&&(u.inertState.set(n,n.inert),n.inert=!0)}),t=t.parentElement,t!==document.body););}function J(e){if(e.stopTracking&&e.stopTracking(),!!e.overlayOpen){e.overlayOpen=!1;var t=u.overlays[u.overlays.length-1]===e;if(u.overlays=u.overlays.filter(function(n){return n!==e}),document.removeEventListener("keydown",e.overlayKey,!0),document.removeEventListener("focusin",e.overlayFocus,!0),e.layer.hidePopover)try{e.layer.hidePopover()}catch(n){}e.layer.hidden=!0,j(),t&&e.returnFocus&&e.returnFocus.isConnected&&!e.returnFocus.closest("[inert],[hidden]")&&e.returnFocus.focus()}}function H(e){var t=F(e.NodesJson,5e3),n=new Map,r=new Map;r.set("",[]),t.forEach(function(a){if(typeof a.Label!="string")throw Error("Each node needs a Label.");n.set(a.Key,a),r.set(a.Key,[])}),t.forEach(function(a){var o=a.ParentKey||"";if(!r.has(o))throw Error("Unknown ParentKey: "+o);r.get(o).push(a)});var d=new Set;t.forEach(function(a){for(var o=new Set,c=a.Key;c&&!d.has(c);){if(o.has(c))throw Error("Hierarchy contains a cycle.");o.add(c),c=n.get(c).ParentKey||""}o.forEach(function(l){d.add(l)})});function i(a){for(var o=[];a;){var c=n.get(a);if(!c)throw Error("Unknown SelectedKey: "+a);o.push(c),a=c.ParentKey||""}return o.reverse()}return{rows:t,map:n,children:r,path:i}}function M(e){var t=e.options,n=typeof t.NodesJson=="string"?t.NodesJson:JSON.stringify(t.NodesJson),r=JSON.stringify([n,t.SelectedKey,t.LeavesOnly,t.IsDisabled,t.Placeholder,t.AccessibleLabel,t.IsClearable]);if(e.cascaderSignature!==r){var d=e.tree&&e.nodesKey===n?e.tree:H(t),i=t.SelectedKey?d.path(t.SelectedKey):[];if(e.tree=d,e.nodesKey=n,i.some(function(o){return o.IsDisabled})||i.length&&t.LeavesOnly!==!1&&d.children.get(t.SelectedKey).length)throw Error("SelectedKey must identify an enabled selectable node.");var a=T(e,"blu-cascader");e.ready||(e.trigger=w("",function(){e.options.IsDisabled||(e.open=!e.open,e.path=(e.options.SelectedKey?e.tree.path(e.options.SelectedKey):[]).map(function(o){return o.Key}),b(e),e.open&&requestAnimationFrame(function(){var o=e.columns.querySelector("button");o&&o.focus()}))}),e.trigger.classList.add("blu-cascader__trigger"),f(e.trigger,"aria-haspopup","dialog"),e.clearButton=w("\xD7",function(){L(e,"")}),f(e.clearButton,"aria-label","Clear selection"),e.popup=f(m("div","blu-cascader__popup"),"role","dialog"),e.popup.id=e.uid+"-popup",f(e.popup,"aria-label",t.AccessibleLabel||"Choose a path"),f(e.trigger,"aria-controls",e.popup.id),e.columns=m("div","blu-cascader__columns"),e.popup.append(e.columns),a.append(e.trigger,e.clearButton,e.popup),O(e,document,"pointerdown",function(o){e.open&&!a.contains(o.target)&&(e.open=!1,b(e))}),O(e,a,"keydown",function(o){o.key==="Escape"&&e.open&&(o.preventDefault(),e.open=!1,b(e),e.trigger.focus())}),O(e,a,"focusout",function(){setTimeout(function(){e.open&&!a.contains(document.activeElement)&&(e.open=!1,b(e))},0)}),e.ready=!0),e.trigger.textContent=i.length?i.map(function(o){return o.Label}).join(" / "):t.Placeholder||"Select a location\u2026",e.trigger.disabled=!!t.IsDisabled,f(e.trigger,"aria-label",(t.AccessibleLabel||"Choose a path")+": "+e.trigger.textContent),e.clearButton.hidden=!i.length||t.IsClearable===!1,e.clearButton.disabled=!!t.IsDisabled,t.IsDisabled&&(e.open=!1),e.path=(e.path||[]).filter(function(o){return d.map.has(o)}),b(e),e.cascaderSignature=r}}function L(e,t){var n=t?e.tree.path(t):[];e.options.SelectedKey=t,e.open=!1,e.path=n.map(function(r){return r.Key}),e.cascaderSignature=null,M(e),e.trigger.focus(),B(e,"SelectionChanged",t,JSON.stringify(e.path),JSON.stringify(n.map(function(r){return r.Label})))}function b(e){var t=document.activeElement,n=e.columns.contains(t)&&t.getAttribute("data-key");if(e.popup.hidden=!e.open,f(e.trigger,"aria-expanded",!!e.open),x(e.columns),!!e.open){for(var r="",d=0;e.tree.children.get(r)&&e.tree.children.get(r).length&&((function(a,o){var c=f(m("div","blu-cascader__column"),"role","group");f(c,"aria-label","Level "+(o+1)),e.tree.children.get(a).forEach(function(l){var g=e.tree.children.get(l.Key).length>0,E=m("div","blu-cascader__row"),y=w(l.Label+(g?" \u203A":""),function(){if(!l.IsDisabled){if(!g){L(e,l.Key);return}e.path=e.path.slice(0,o).concat(l.Key),b(e);var p=e.columns.children[o+1];if(p){p.scrollIntoView({block:"nearest",inline:"nearest"});var s=p.querySelector("button");s&&s.focus()}}});if(y.disabled=!!l.IsDisabled,f(y,"data-key",l.Key),e.path[o]===l.Key?f(y,"aria-expanded","true"):g&&f(y,"aria-expanded","false"),e.options.SelectedKey===l.Key&&f(y,"aria-pressed","true"),y.onkeydown=function(p){var s=Array.from(c.querySelectorAll(".blu-cascader__row > button:first-child")).filter(function(U){return!U.disabled}),I=s.indexOf(y),h;if(p.key==="ArrowDown"&&(h=s[Math.min(s.length-1,I+1)]),p.key==="ArrowUp"&&(h=s[Math.max(0,I-1)]),p.key==="Home"&&(h=s[0]),p.key==="End"&&(h=s[s.length-1]),p.key==="ArrowLeft"&&o&&(h=e.columns.children[o-1].querySelector('[data-key="'+CSS.escape(a)+'"]')),p.key==="ArrowRight"&&g){p.preventDefault(),y.click();return}h&&(p.preventDefault(),h.focus())},E.append(y),g&&e.options.LeavesOnly===!1){var C=w("\u2713",function(){L(e,l.Key)});f(C,"aria-label","Select "+l.Label),C.disabled=!!l.IsDisabled,E.append(C)}c.append(E)}),e.columns.append(c)})(r,d),r=e.path[d++],!!r););if(e.tree.rows.length||e.columns.append(m("p","blu-common-muted","No options available.")),n){var i=e.columns.querySelector('[data-key="'+CSS.escape(n)+'"]');i&&!i.disabled?i.focus():e.trigger.focus()}}}function V(e,t,n){return{sync:function(r,d,i,a){var o=R(r,d,i,a,e);if(o)try{var c=n?JSON.stringify(o.options):null;return(!n||o.renderSignature!==c)&&(t(o),o.renderSignature=c),S(o,""),""}catch(l){return o.renderSignature=void 0,o.cascaderSignature=null,J(o),S(o,l.message||String(l)),l.message||String(l)}},destroy:_}}function P(){return k("Cascader",()=>V("Cascader",M,!1))}P();})();
@@ -0,0 +1,3 @@
1
+ "use strict";(()=>{var y=typeof window=="undefined"?globalThis:window,L="__bluuiCommunityModulesV1",R=y[L]||(y[L]={families:Object.create(null)}),E=y.BluUICommunityRuntime&&!Object.isFrozen(y.BluUICommunityRuntime)?y.BluUICommunityRuntime:Object.assign({},y.BluUICommunityRuntime||{});y.BluUICommunityRuntime=E;function T(e,o){return R.families[e]||(R.families[e]=o())}function A(e,o){return E[e]||(E[e]=o())}var v=T("chat",()=>({instances:new Map,serial:0})),k=e=>e+"-"+ ++v.serial;function c(e,o,i){let r=document.createElement(e);return o&&(r.className=o),i!==void 0&&(r.textContent=String(i)),r}function s(e,o,i){return e.setAttribute(o,String(i)),e}function m(e,o,i="blu-chat__button"){let r=c("button",i,e);return r.type="button",r.addEventListener("click",o),r}function g(e,o,...i){if(!(e.dead||!e.events[o]))try{Promise.resolve(e.events[o](...i)).catch(r=>S(e,r))}catch(r){S(e,r)}}function S(e,o){if(e.dead)return;let i=(o==null?void 0:o.message)||String(o);e.notice.textContent=i,e.lastError!==i&&(e.lastError=i,g(e,"Error",i))}function b(e,o){e.notice.textContent=o}function M(e,o,i){let r=l=>{var n;let t=v.instances.get(l);!t||t.kind!==e||(t.dead=!0,(n=t.dispose)==null||n.call(t),t.root.remove(),t.notice.remove(),t.host._bluChatOwner===l&&delete t.host._bluChatOwner,v.instances.delete(l))};return A(e,()=>({sync(l,t={},n={},u){let a=document.getElementById(l);if(!a)return"Chat component host was not found.";let p=u||l,d=v.instances.get(p);d&&(d.host!==a||d.kind!==e)&&(d.destroy(d.key),d=null);let f=v.instances.get(a._bluChatOwner);if(f&&f!==d&&f.destroy(f.key),!d){d={key:p,host:a,kind:e,uid:k("blu-chat"),events:n,options:t,dead:!1,destroy:r},d.root=c("div"),d.notice=s(c("div","blu-chat-sr"),"role","status"),s(d.notice,"aria-atomic","true"),a.append(d.root,d.notice),v.instances.set(p,d),a._bluChatOwner=p;try{o(d)}catch(h){throw r(p),h}}d.events=n,d.options=t;try{return i(d),d.lastError="",a.dataset.bluRuntimeReady="true",""}catch(h){return S(d,h),h.message||String(h)}},destroy:r}))}function H(e,o){let i=typeof e=="string"?JSON.parse(e||"[]"):e||[];if(!Array.isArray(i))throw Error(o+" must be a list.");let r=new Set;return i.map(l=>{if(!l||typeof l.Key!="string"||!l.Key||r.has(l.Key))throw Error(o+" requires unique, nonempty Keys.");return r.add(l.Key),l})}function O(e){try{let o=new URL(String(e),document.baseURI);return["https:","http:","mailto:"].includes(o.protocol)?o.href:null}catch(o){return null}}function x(e){let o={Chat:"M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9H13a8.5 8.5 0 0 1 8 8v.5Z",Plus:"M12 5v14M5 12h14",Up:"m5 12 7-7 7 7M12 5v14",Help:"M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3m.1 4h.01M22 12a10 10 0 1 1-20 0 10 10 0 0 1 20 0",Feedback:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2ZM7 8h10M7 12h6",Close:"m6 6 12 12M6 18 18 6",Expand:"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5",Send:"m22 2-7 20-4-9-9-4 20-7ZM22 2 11 13",Stop:"M6 6h12v12H6Z"},i=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let[l,t]of Object.entries({viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}))i.setAttribute(l,t);let r=document.createElementNS(i.namespaceURI,"path");return r.setAttribute("d",o[e]||o.Chat),i.append(r),i}function U(e,o){let i=/(`[^`\n]+`|\*\*[^*\n]+\*\*|\*[^*\n]+\*|\[[^\]\n]+\]\([^\s)]+\))/g,r=0;for(let l of o.matchAll(i)){e.append(document.createTextNode(o.slice(r,l.index)));let t=l[0],n;if(t.startsWith("`"))n=c("code","",t.slice(1,-1));else if(t.startsWith("**"))n=c("strong","",t.slice(2,-2));else if(t.startsWith("*"))n=c("em","",t.slice(1,-1));else{let u=t.indexOf("]("),a=O(t.slice(u+2,-1));n=c(a?"a":"span","",t.slice(1,u)),a&&(n.href=a,n.target="_blank",n.rel="noopener noreferrer")}e.append(n),r=l.index+t.length}e.append(document.createTextNode(o.slice(r)))}function P(e,o,i=!0){e.replaceChildren();let r=String(o||"");if(!i){e.append(c("p","",r));return}let l=null,t=[],n=null,u=()=>{l&&(l.textContent=t.join(`
2
+ `),l=null,t=[])};for(let a of r.split(`
3
+ `)){if(/^\s*```/.test(a)){if(l)u();else{let h=c("pre");l=c("code"),h.append(l),e.append(h)}n=null;continue}if(l){t.push(a);continue}if(!a.trim()){n=null;continue}let p=/^\s*([-*]|\d+\.)\s+(.+)$/.exec(a);if(p){let h=/\d/.test(p[1])?"ol":"ul";(!n||n.tagName.toLowerCase()!==h)&&(n=c(h),e.append(n));let C=c("li");U(C,p[2]),n.append(C);continue}n=null;let d=/^#{1,6}\s+(.+)$/.exec(a),f=c(d?"h3":"p");U(f,d?d[1]:a),e.append(f)}u()}var w=e=>e.status==="Waiting"||e.status==="Streaming";function _(e,o,i=!1){if(e.options.IsDisabled||w(e)||!o.trim())return;let r=Math.max(1,Number(e.options.MaxLength)||4e3);if(o.length>r){b(e,"Message exceeds the character limit.");return}e.lastText=o.trim(),e.request=k("chat-request"),e.active=e.request,e.cancelled=!1,e.status="Waiting",e.error="",e.input.value="",e.input.style.height="",I(e),b(e,"Waiting for a response."),g(e,i?"Retry":"Send",e.request,e.lastText)}function I(e){let o=e.options,i=w(e),r=document.activeElement,l=r===e.send&&i||r===e.stop&&!i||e.failure.contains(r)&&e.status!=="Error"||e.suggestions.contains(r)&&i;e.input.disabled=!!o.IsDisabled,e.send.disabled=!!o.IsDisabled||i||!e.input.value.trim(),e.send.hidden=i,e.stop.hidden=!i,e.stop.disabled=!!o.IsDisabled,e.wait.hidden=!i,e.waitText.textContent=e.status==="Streaming"?"Writing a response":"Waiting for a response",e.failure.hidden=e.status!=="Error",e.errorText.textContent=e.error||"The response could not be completed.",e.retry.disabled=!!o.IsDisabled||!e.lastText,e.suggestions.querySelectorAll("button").forEach(t=>t.disabled=!!o.IsDisabled||i),s(e.list,"aria-busy",i),l&&!e.input.disabled&&e.input.focus({preventScroll:!0})}function B(e,o,i){let r=c("li","blu-chat__message");r.dataset.key=o.Key,r.dataset.role=o.Role,i&&r.classList.add("blu-chat__message--new");let l=c("span","blu-chat__avatar");s(l,"aria-hidden","true");let t=c("div","blu-chat__message-column"),n=c("div","blu-chat__meta"),u=c("strong"),a=c("span"),p=c("div","blu-chat__prose"),d=m("Copy",async()=>{try{if(await navigator.clipboard.writeText(r._message.Content),e.dead)return;b(e,"Message copied."),g(e,"Copy",r._message.Key)}catch(f){b(e,"Copy is unavailable. Select the message text to copy it.")}});return d.classList.add("blu-chat__copy"),n.append(u,a),t.append(n,p,d),r.append(l,t),{row:r,avatar:l,name:u,time:a,body:p,copy:d}}function W(e,o){let i=e.scroller.scrollHeight-e.scroller.scrollTop-e.scroller.clientHeight<64,r=document.activeElement,l=e.list.contains(r),t=new Set(o.map(n=>n.Key));for(let[n,u]of e.rows)t.has(n)||(u.row.remove(),e.rows.delete(n));o.forEach((n,u)=>{let a=e.rows.get(n.Key);a||(a=B(e,n,e.initialized&&e.options.Animate!==!1),e.rows.set(n.Key,a)),a.row._message=n,a.row.dataset.role=n.Role;let p=n.Name||(n.Role==="User"?"You":n.Role==="System"?"Notice":e.options.AssistantName||"Assistant");a.name.textContent=p,a.time.textContent=n.Timestamp||"",a.time.hidden=!e.options.ShowTimestamps||!n.Timestamp,a.avatar.hidden=e.options.ShowAvatars===!1;let d=n.AvatarUrl&&O(n.AvatarUrl),f=d||p;if(a.avatarSignature!==f)if(a.avatarSignature=f,a.avatar.replaceChildren(),d&&/^https?:/.test(d)){let C=c("img");C.src=d,C.alt="",a.avatar.append(C)}else a.avatar.textContent=p.slice(0,1).toUpperCase();let h=JSON.stringify([n.Content,e.options.EnableMarkdown]);a.signature!==h&&(a.signature=h,P(a.body,n.Content,e.options.EnableMarkdown!==!1)),a.copy.hidden=e.options.AllowCopy===!1||!n.Content,s(a.copy,"aria-label","Copy message from "+p),e.list.children[u]!==a.row&&e.list.insertBefore(a.row,e.list.children[u]||null)}),e.empty.hidden=!!o.length,l&&!r.isConnected&&e.input.focus({preventScroll:!0}),i||!e.initialized?(e.scroller.scrollTop=e.scroller.scrollHeight,e.jump.hidden=!0):e.jump.hidden=!1,e.initialized=!0}function q(){return M("Chat",e=>{e.root.className="blu-chat",e.rows=new Map,e.status="Idle",e.messages=[],e.suggestionSignature="";let o=c("header","blu-chat__header");e.heading=c("h2"),e.subtitle=c("p");let i=c("div");i.append(e.heading,e.subtitle),e.header=o,o.append(i),e.scroller=s(c("div","blu-chat__scroll"),"tabindex","0"),s(e.scroller,"role","region"),s(e.scroller,"aria-label","Conversation messages"),e.empty=c("div","blu-chat__empty"),e.empty.append(x("Chat")),e.welcome=c("h3"),e.description=c("p"),e.empty.append(e.welcome,e.description),e.list=s(c("ol","blu-chat__messages"),"aria-label","Messages"),e.scroller.append(e.empty,e.list),e.wait=c("div","blu-chat__waiting");let r=c("span","blu-chat__dots");s(r,"aria-hidden","true");for(let n=0;n<3;n++)r.append(c("i"));e.waitText=c("span"),e.wait.append(r,e.waitText),e.wait.hidden=!0,e.jump=m("\u2193 Latest messages",()=>{e.scroller.scrollTop=e.scroller.scrollHeight,e.jump.hidden=!0}),e.jump.classList.add("blu-chat__jump"),e.jump.hidden=!0,e.scroller.addEventListener("scroll",()=>{e.scroller.scrollHeight-e.scroller.scrollTop-e.scroller.clientHeight<64&&(e.jump.hidden=!0)}),e.failure=c("div","blu-chat__failure"),e.errorText=c("span"),e.retry=m("Retry",()=>_(e,e.lastText||"",!0)),e.failure.append(e.errorText,e.retry),e.failure.hidden=!0,e.suggestions=c("div","blu-chat__suggestions");let l=c("form","blu-chat__composer");e.input=s(c("textarea"),"aria-label","Message"),e.input.rows=2,e.input.placeholder="Write a message\u2026";let t=c("div","blu-chat__composer-actions");e.hint=c("span","blu-chat__hint","Enter to send \xB7 Shift+Enter for a new line"),e.send=m("Send",()=>{}),e.send.replaceChildren(x("Send")),s(e.send,"aria-label","Send message"),e.send.type="submit",e.send.classList.add("blu-chat__send"),e.stop=m("Stop",()=>{let n=e.active;n&&(e.active=null,e.cancelled=!0,e.status="Idle",I(e),b(e,"Response stopped."),g(e,"Stop",n),e.input.focus())}),e.stop.prepend(x("Stop")),e.stop.hidden=!0,t.append(e.hint,e.send,e.stop),l.append(e.input,t),l.addEventListener("submit",n=>{n.preventDefault(),_(e,e.input.value)}),e.input.addEventListener("input",()=>{e.input.style.height="auto",e.input.style.height=Math.min(160,e.input.scrollHeight)+"px",I(e)}),e.input.addEventListener("keydown",n=>{n.key==="Enter"&&!n.shiftKey&&!n.isComposing&&n.keyCode!==229&&(n.preventDefault(),_(e,e.input.value))}),e.root.append(o,e.scroller,e.jump,e.wait,e.failure,e.suggestions,l)},e=>{let o=e.options,i=e.status,r=e.reset!==o.ResetKey;r&&(e.request=null,e.active=null,e.cancelled=!1,e.lastText="",e.input.value="",e.initialized=!1,e.reset=o.ResetKey,b(e,""));let l=o.ResponseRequestId||"";if(l?l===e.request&&!e.cancelled:!e.active){let a=H(o.MessagesJson,"Messages").map(d=>{if(!["User","Assistant","System"].includes(d.Role)||typeof d.Content!="string")throw Error("Each message needs Role (User, Assistant, System) and Content.");return d}),p=["Waiting","Streaming","Error"].includes(o.Status)?o.Status:"Idle";e.messages=a,e.status=p,e.error=String(o.ErrorMessage||""),w(e)||(e.active=null)}e.root.dataset.animate=String(o.Animate!==!1),e.root.style.height=Math.max(280,Math.min(1200,Number(o.Height)||520))+"px",e.heading.textContent=o.Title||"Chat",e.subtitle.textContent=o.Subtitle||"",e.subtitle.hidden=!o.Subtitle,e.header.hidden=o.ShowHeader===!1,s(e.scroller,"aria-label",o.AccessibleLabel||(o.Title||"Chat")+" messages"),e.welcome.textContent=o.WelcomeTitle||"How can I help?",e.description.textContent=o.WelcomeMessage||"Ask a question to start a conversation.",e.input.placeholder=o.Placeholder||"Write a message\u2026",e.input.maxLength=Math.max(1,Number(o.MaxLength)||4e3);let n=H(o.SuggestionsJson,"Suggestions"),u=JSON.stringify(n);if(u!==e.suggestionSignature&&(e.suggestionSignature=u,e.suggestions.replaceChildren(),n.forEach(a=>{let p=m(a.Label||a.Text,()=>_(e,a.Text||a.Label));e.suggestions.append(p)})),W(e,e.messages),I(e),i!==e.status)if(e.status==="Error")b(e,e.error||"Response failed. Retry is available.");else if(!r&&!w(e)&&w({status:i})){let a=[...e.messages].reverse().find(p=>p.Role==="Assistant");b(e,a?"Assistant: "+a.Content:"Response complete.")}else e.status==="Waiting"&&b(e,"Waiting for a response.")})}function j(e){let o=e.options.Icon||"Chat",i=String(e.options.IconUrl||"").trim();if(e.iconName===o&&e.iconUrl===i||(e.iconImage&&(e.iconImage.onload=e.iconImage.onerror=null),e.iconName=o,e.iconUrl=i,e.iconImage=null,e.glyph.replaceChildren(x(o)),!i))return;let r;try{if(r=new URL(i,document.baseURI),!["https:","http:"].includes(r.protocol))throw Error()}catch(t){S(e,"FloatButton IconUrl must be an HTTP(S) or relative image URL. Using the built-in Icon.");return}let l=c("img");e.iconImage=l,l.alt="",l.width=24,l.height=24,l.draggable=!1,l.onload=()=>{!e.dead&&e.iconImage===l&&e.glyph.replaceChildren(l)},l.onerror=()=>{!e.dead&&e.iconImage===l&&S(e,"FloatButton could not load IconUrl. Using the built-in Icon.")},l.src=r.href}function K(){return M("FloatButton",e=>{e.root.className="blu-float",e.button=m("",()=>{e.options.IsDisabled||g(e,"Click")},"blu-float__button"),e.glyph=c("span","blu-float__icon"),e.label=c("span","blu-float__label"),e.badge=c("span","blu-float__badge"),s(e.glyph,"aria-hidden","true"),e.dispose=()=>{e.iconImage&&(e.iconImage.onload=e.iconImage.onerror=null)},s(e.badge,"aria-hidden","true"),e.button.append(e.glyph,e.label,e.badge),e.root.append(e.button)},e=>{let o=e.options,i=String(o.Label||"Open chat"),r=["BottomLeft","TopLeft","TopRight"].includes(o.Placement)?o.Placement:"BottomRight";e.root.dataset.placement=r,e.root.dataset.position=o.Position==="Container"?"Container":"Viewport",e.root.dataset.animate=String(o.Animate!==!1),e.root.dataset.shape=o.Shape==="Square"?"Square":"Circle",e.root.style.setProperty("--blu-float-offset",Math.max(8,Math.min(160,Number(o.Offset)||24))+"px");let l=String(o.Color||"Primary").toLowerCase().replace(/[^a-z]/g,"");e.root.style.setProperty("--blu-float-solid",`var(--bluui-color-${l}-solid,var(--bluui-color-primary-solid,#4f46e5))`),e.root.style.setProperty("--blu-float-contrast",`var(--bluui-color-${l}-contrast,#fff)`);let t=o.Position==="Container"?e.host:document.body;e.root.parentNode!==t&&t.append(e.root),e.button.disabled=!!o.IsDisabled,e.button.title=i;let n=Math.max(0,Math.floor(Number(o.BadgeCount)||0));s(e.button,"aria-label",i+(n?`, ${n} unread`:"")),e.label.textContent=i,e.label.hidden=!o.ShowLabel,e.badge.textContent=n>99?"99+":String(n),e.badge.hidden=!n,j(e)})}function N(){let e=q(),o=K();return M("ChatWidget",t=>{t.root.className="blu-chat-widget",t.panel=s(c("section","blu-chat-widget__panel"),"role","dialog"),t.panel.id=t.uid+"-panel",s(t.panel,"aria-modal","false");let n=c("header","blu-chat-widget__header");t.title=c("h2");let u=c("div");t.expand=m("",()=>r(t,!t.expanded)),t.expand.append(x("Expand")),s(t.expand,"aria-label","Expand chat"),t.close=m("",()=>i(t,!1,"Close")),t.close.append(x("Close")),s(t.close,"aria-label","Minimize chat"),u.append(t.expand,t.close),n.append(t.title,u),t.chatHost=c("div","blu-chat-widget__content"),t.chatHost.id=t.uid+"-chat",t.floatHost=c("div"),t.floatHost.id=t.uid+"-float",t.panel.append(n,t.chatHost),t.root.append(t.panel,t.floatHost),t.root.addEventListener("keydown",a=>{a.key==="Escape"&&t.open&&(a.preventDefault(),a.stopPropagation(),i(t,!1,"Escape"))}),t.dispose=()=>{e.destroy(t.uid+"-chat"),o.destroy(t.uid+"-float")}},t=>{let n=t.options;(t.open===void 0||n.IsOpen!==t.openInput)&&(t.openInput=n.IsOpen,t.open=!!n.IsOpen),n.IsExpanded!==t.expandedInput&&(t.expandedInput=n.IsExpanded,t.expanded=!!n.IsExpanded);let u=n.Position==="Container"?t.host:document.body;t.root.parentNode!==u&&u.append(t.root),t.root.dataset.position=n.Position==="Container"?"Container":"Viewport",t.root.dataset.placement=n.Placement==="BottomLeft"?"BottomLeft":"BottomRight",t.root.dataset.animate=String(n.Animate!==!1),t.root.style.setProperty("--blu-widget-offset",Math.max(8,Math.min(160,Number(n.Offset)||24))+"px"),t.title.textContent=n.Title||"Assistant",s(t.panel,"aria-label",n.Title||"Assistant");let a={};for(let d of["Send","Stop","Retry","Copy","Error"])a[d]=(...f)=>g(t,d,...f);e.sync(t.chatHost.id,{...n,ShowHeader:!1},a,t.uid+"-chat"),o.sync(t.floatHost.id,{Label:t.open?"Minimize chat":n.LauncherLabel||"Open chat",Icon:t.open?"Close":"Chat",BadgeCount:t.open?0:n.UnreadCount,Position:"Container",Placement:n.Placement,Offset:8,Animate:n.Animate,Color:n.Color},{Click:()=>i(t,!t.open,"Launcher"),Error:d=>g(t,"Error",d)},t.uid+"-float");let p=t.floatHost.querySelector("button");s(p,"aria-expanded",!!t.open),s(p,"aria-controls",t.panel.id),s(p,"aria-haspopup","dialog"),l(t)});function i(t,n,u){t.open=n,l(t),g(t,"OpenChanged",n,u)}function r(t,n){t.expanded=n,l(t),g(t,"ExpandedChanged",n)}function l(t){let n=t.lastOpen!==t.open;t.lastOpen=t.open,t.root.dataset.open=String(!!t.open),t.root.dataset.expanded=String(!!t.expanded),t.panel.inert=!t.open,s(t.panel,"aria-hidden",!t.open),s(t.expand,"aria-label",t.expanded?"Restore chat size":"Expand chat"),s(t.expand,"aria-pressed",!!t.expanded),o.sync(t.floatHost.id,{Label:t.open?"Minimize chat":t.options.LauncherLabel||"Open chat",Icon:t.open?"Close":"Chat",BadgeCount:t.open?0:t.options.UnreadCount,Position:"Container",Placement:t.options.Placement,Offset:8,Animate:t.options.Animate,Color:t.options.Color},{Click:()=>i(t,!t.open,"Launcher"),Error:a=>g(t,"Error",a)},t.uid+"-float");let u=t.floatHost.querySelector("button");if(u&&(s(u,"aria-expanded",!!t.open),s(u,"aria-controls",t.panel.id),s(u,"aria-haspopup","dialog")),n&&t.open){let a=t.chatHost.querySelector("textarea");(a&&!a.disabled?a:t.close).focus({preventScroll:!0})}else n&&t.open===!1&&t.panel.contains(document.activeElement)&&(u==null||u.focus({preventScroll:!0}))}}N();})();
@@ -0,0 +1,3 @@
1
+ "use strict";(()=>{var m=typeof window=="undefined"?globalThis:window,T="__bluuiCommunityModulesV1",R=m[T]||(m[T]={families:Object.create(null)}),x=m.BluUICommunityRuntime&&!Object.isFrozen(m.BluUICommunityRuntime)?m.BluUICommunityRuntime:Object.assign({},m.BluUICommunityRuntime||{});m.BluUICommunityRuntime=x;function A(e,t){return R.families[e]||(R.families[e]=t())}function k(e,t){return x[e]||(x[e]=t())}var y=A("chat",()=>({instances:new Map,serial:0})),U=e=>e+"-"+ ++y.serial;function l(e,t,r){let a=document.createElement(e);return t&&(a.className=t),r!==void 0&&(a.textContent=String(r)),a}function h(e,t,r){return e.setAttribute(t,String(r)),e}function v(e,t,r="blu-chat__button"){let a=l("button",r,e);return a.type="button",a.addEventListener("click",t),a}function S(e,t,...r){if(!(e.dead||!e.events[t]))try{Promise.resolve(e.events[t](...r)).catch(a=>E(e,a))}catch(a){E(e,a)}}function E(e,t){if(e.dead)return;let r=(t==null?void 0:t.message)||String(t);e.notice.textContent=r,e.lastError!==r&&(e.lastError=r,S(e,"Error",r))}function g(e,t){e.notice.textContent=t}function H(e,t,r){let a=o=>{var n;let s=y.instances.get(o);!s||s.kind!==e||(s.dead=!0,(n=s.dispose)==null||n.call(s),s.root.remove(),s.notice.remove(),s.host._bluChatOwner===o&&delete s.host._bluChatOwner,y.instances.delete(o))};return k(e,()=>({sync(o,s={},n={},d){let i=document.getElementById(o);if(!i)return"Chat component host was not found.";let u=d||o,c=y.instances.get(u);c&&(c.host!==i||c.kind!==e)&&(c.destroy(c.key),c=null);let f=y.instances.get(i._bluChatOwner);if(f&&f!==c&&f.destroy(f.key),!c){c={key:u,host:i,kind:e,uid:U("blu-chat"),events:n,options:s,dead:!1,destroy:a},c.root=l("div"),c.notice=h(l("div","blu-chat-sr"),"role","status"),h(c.notice,"aria-atomic","true"),i.append(c.root,c.notice),y.instances.set(u,c),i._bluChatOwner=u;try{t(c)}catch(p){throw a(u),p}}c.events=n,c.options=s;try{return r(c),c.lastError="",i.dataset.bluRuntimeReady="true",""}catch(p){return E(c,p),p.message||String(p)}},destroy:a}))}function I(e,t){let r=typeof e=="string"?JSON.parse(e||"[]"):e||[];if(!Array.isArray(r))throw Error(t+" must be a list.");let a=new Set;return r.map(o=>{if(!o||typeof o.Key!="string"||!o.Key||a.has(o.Key))throw Error(t+" requires unique, nonempty Keys.");return a.add(o.Key),o})}function N(e){try{let t=new URL(String(e),document.baseURI);return["https:","http:","mailto:"].includes(t.protocol)?t.href:null}catch(t){return null}}function M(e){let t={Chat:"M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9H13a8.5 8.5 0 0 1 8 8v.5Z",Plus:"M12 5v14M5 12h14",Up:"m5 12 7-7 7 7M12 5v14",Help:"M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3m.1 4h.01M22 12a10 10 0 1 1-20 0 10 10 0 0 1 20 0",Feedback:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2ZM7 8h10M7 12h6",Close:"m6 6 12 12M6 18 18 6",Expand:"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5",Send:"m22 2-7 20-4-9-9-4 20-7ZM22 2 11 13",Stop:"M6 6h12v12H6Z"},r=document.createElementNS("http://www.w3.org/2000/svg","svg");for(let[o,s]of Object.entries({viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}))r.setAttribute(o,s);let a=document.createElementNS(r.namespaceURI,"path");return a.setAttribute("d",t[e]||t.Chat),r.append(a),r}function L(e,t){let r=/(`[^`\n]+`|\*\*[^*\n]+\*\*|\*[^*\n]+\*|\[[^\]\n]+\]\([^\s)]+\))/g,a=0;for(let o of t.matchAll(r)){e.append(document.createTextNode(t.slice(a,o.index)));let s=o[0],n;if(s.startsWith("`"))n=l("code","",s.slice(1,-1));else if(s.startsWith("**"))n=l("strong","",s.slice(2,-2));else if(s.startsWith("*"))n=l("em","",s.slice(1,-1));else{let d=s.indexOf("]("),i=N(s.slice(d+2,-1));n=l(i?"a":"span","",s.slice(1,d)),i&&(n.href=i,n.target="_blank",n.rel="noopener noreferrer")}e.append(n),a=o.index+s.length}e.append(document.createTextNode(t.slice(a)))}function W(e,t,r=!0){e.replaceChildren();let a=String(t||"");if(!r){e.append(l("p","",a));return}let o=null,s=[],n=null,d=()=>{o&&(o.textContent=s.join(`
2
+ `),o=null,s=[])};for(let i of a.split(`
3
+ `)){if(/^\s*```/.test(i)){if(o)d();else{let p=l("pre");o=l("code"),p.append(o),e.append(p)}n=null;continue}if(o){s.push(i);continue}if(!i.trim()){n=null;continue}let u=/^\s*([-*]|\d+\.)\s+(.+)$/.exec(i);if(u){let p=/\d/.test(u[1])?"ol":"ul";(!n||n.tagName.toLowerCase()!==p)&&(n=l(p),e.append(n));let b=l("li");L(b,u[2]),n.append(b);continue}n=null;let c=/^#{1,6}\s+(.+)$/.exec(i),f=l(c?"h3":"p");L(f,c?c[1]:i),e.append(f)}d()}var w=e=>e.status==="Waiting"||e.status==="Streaming";function C(e,t,r=!1){if(e.options.IsDisabled||w(e)||!t.trim())return;let a=Math.max(1,Number(e.options.MaxLength)||4e3);if(t.length>a){g(e,"Message exceeds the character limit.");return}e.lastText=t.trim(),e.request=U("chat-request"),e.active=e.request,e.cancelled=!1,e.status="Waiting",e.error="",e.input.value="",e.input.style.height="",_(e),g(e,"Waiting for a response."),S(e,r?"Retry":"Send",e.request,e.lastText)}function _(e){let t=e.options,r=w(e),a=document.activeElement,o=a===e.send&&r||a===e.stop&&!r||e.failure.contains(a)&&e.status!=="Error"||e.suggestions.contains(a)&&r;e.input.disabled=!!t.IsDisabled,e.send.disabled=!!t.IsDisabled||r||!e.input.value.trim(),e.send.hidden=r,e.stop.hidden=!r,e.stop.disabled=!!t.IsDisabled,e.wait.hidden=!r,e.waitText.textContent=e.status==="Streaming"?"Writing a response":"Waiting for a response",e.failure.hidden=e.status!=="Error",e.errorText.textContent=e.error||"The response could not be completed.",e.retry.disabled=!!t.IsDisabled||!e.lastText,e.suggestions.querySelectorAll("button").forEach(s=>s.disabled=!!t.IsDisabled||r),h(e.list,"aria-busy",r),o&&!e.input.disabled&&e.input.focus({preventScroll:!0})}function K(e,t,r){let a=l("li","blu-chat__message");a.dataset.key=t.Key,a.dataset.role=t.Role,r&&a.classList.add("blu-chat__message--new");let o=l("span","blu-chat__avatar");h(o,"aria-hidden","true");let s=l("div","blu-chat__message-column"),n=l("div","blu-chat__meta"),d=l("strong"),i=l("span"),u=l("div","blu-chat__prose"),c=v("Copy",async()=>{try{if(await navigator.clipboard.writeText(a._message.Content),e.dead)return;g(e,"Message copied."),S(e,"Copy",a._message.Key)}catch(f){g(e,"Copy is unavailable. Select the message text to copy it.")}});return c.classList.add("blu-chat__copy"),n.append(d,i),s.append(n,u,c),a.append(o,s),{row:a,avatar:o,name:d,time:i,body:u,copy:c}}function O(e,t){let r=e.scroller.scrollHeight-e.scroller.scrollTop-e.scroller.clientHeight<64,a=document.activeElement,o=e.list.contains(a),s=new Set(t.map(n=>n.Key));for(let[n,d]of e.rows)s.has(n)||(d.row.remove(),e.rows.delete(n));t.forEach((n,d)=>{let i=e.rows.get(n.Key);i||(i=K(e,n,e.initialized&&e.options.Animate!==!1),e.rows.set(n.Key,i)),i.row._message=n,i.row.dataset.role=n.Role;let u=n.Name||(n.Role==="User"?"You":n.Role==="System"?"Notice":e.options.AssistantName||"Assistant");i.name.textContent=u,i.time.textContent=n.Timestamp||"",i.time.hidden=!e.options.ShowTimestamps||!n.Timestamp,i.avatar.hidden=e.options.ShowAvatars===!1;let c=n.AvatarUrl&&N(n.AvatarUrl),f=c||u;if(i.avatarSignature!==f)if(i.avatarSignature=f,i.avatar.replaceChildren(),c&&/^https?:/.test(c)){let b=l("img");b.src=c,b.alt="",i.avatar.append(b)}else i.avatar.textContent=u.slice(0,1).toUpperCase();let p=JSON.stringify([n.Content,e.options.EnableMarkdown]);i.signature!==p&&(i.signature=p,W(i.body,n.Content,e.options.EnableMarkdown!==!1)),i.copy.hidden=e.options.AllowCopy===!1||!n.Content,h(i.copy,"aria-label","Copy message from "+u),e.list.children[d]!==i.row&&e.list.insertBefore(i.row,e.list.children[d]||null)}),e.empty.hidden=!!t.length,o&&!a.isConnected&&e.input.focus({preventScroll:!0}),r||!e.initialized?(e.scroller.scrollTop=e.scroller.scrollHeight,e.jump.hidden=!0):e.jump.hidden=!1,e.initialized=!0}function j(){return H("Chat",e=>{e.root.className="blu-chat",e.rows=new Map,e.status="Idle",e.messages=[],e.suggestionSignature="";let t=l("header","blu-chat__header");e.heading=l("h2"),e.subtitle=l("p");let r=l("div");r.append(e.heading,e.subtitle),e.header=t,t.append(r),e.scroller=h(l("div","blu-chat__scroll"),"tabindex","0"),h(e.scroller,"role","region"),h(e.scroller,"aria-label","Conversation messages"),e.empty=l("div","blu-chat__empty"),e.empty.append(M("Chat")),e.welcome=l("h3"),e.description=l("p"),e.empty.append(e.welcome,e.description),e.list=h(l("ol","blu-chat__messages"),"aria-label","Messages"),e.scroller.append(e.empty,e.list),e.wait=l("div","blu-chat__waiting");let a=l("span","blu-chat__dots");h(a,"aria-hidden","true");for(let n=0;n<3;n++)a.append(l("i"));e.waitText=l("span"),e.wait.append(a,e.waitText),e.wait.hidden=!0,e.jump=v("\u2193 Latest messages",()=>{e.scroller.scrollTop=e.scroller.scrollHeight,e.jump.hidden=!0}),e.jump.classList.add("blu-chat__jump"),e.jump.hidden=!0,e.scroller.addEventListener("scroll",()=>{e.scroller.scrollHeight-e.scroller.scrollTop-e.scroller.clientHeight<64&&(e.jump.hidden=!0)}),e.failure=l("div","blu-chat__failure"),e.errorText=l("span"),e.retry=v("Retry",()=>C(e,e.lastText||"",!0)),e.failure.append(e.errorText,e.retry),e.failure.hidden=!0,e.suggestions=l("div","blu-chat__suggestions");let o=l("form","blu-chat__composer");e.input=h(l("textarea"),"aria-label","Message"),e.input.rows=2,e.input.placeholder="Write a message\u2026";let s=l("div","blu-chat__composer-actions");e.hint=l("span","blu-chat__hint","Enter to send \xB7 Shift+Enter for a new line"),e.send=v("Send",()=>{}),e.send.replaceChildren(M("Send")),h(e.send,"aria-label","Send message"),e.send.type="submit",e.send.classList.add("blu-chat__send"),e.stop=v("Stop",()=>{let n=e.active;n&&(e.active=null,e.cancelled=!0,e.status="Idle",_(e),g(e,"Response stopped."),S(e,"Stop",n),e.input.focus())}),e.stop.prepend(M("Stop")),e.stop.hidden=!0,s.append(e.hint,e.send,e.stop),o.append(e.input,s),o.addEventListener("submit",n=>{n.preventDefault(),C(e,e.input.value)}),e.input.addEventListener("input",()=>{e.input.style.height="auto",e.input.style.height=Math.min(160,e.input.scrollHeight)+"px",_(e)}),e.input.addEventListener("keydown",n=>{n.key==="Enter"&&!n.shiftKey&&!n.isComposing&&n.keyCode!==229&&(n.preventDefault(),C(e,e.input.value))}),e.root.append(t,e.scroller,e.jump,e.wait,e.failure,e.suggestions,o)},e=>{let t=e.options,r=e.status,a=e.reset!==t.ResetKey;a&&(e.request=null,e.active=null,e.cancelled=!1,e.lastText="",e.input.value="",e.initialized=!1,e.reset=t.ResetKey,g(e,""));let o=t.ResponseRequestId||"";if(o?o===e.request&&!e.cancelled:!e.active){let i=I(t.MessagesJson,"Messages").map(c=>{if(!["User","Assistant","System"].includes(c.Role)||typeof c.Content!="string")throw Error("Each message needs Role (User, Assistant, System) and Content.");return c}),u=["Waiting","Streaming","Error"].includes(t.Status)?t.Status:"Idle";e.messages=i,e.status=u,e.error=String(t.ErrorMessage||""),w(e)||(e.active=null)}e.root.dataset.animate=String(t.Animate!==!1),e.root.style.height=Math.max(280,Math.min(1200,Number(t.Height)||520))+"px",e.heading.textContent=t.Title||"Chat",e.subtitle.textContent=t.Subtitle||"",e.subtitle.hidden=!t.Subtitle,e.header.hidden=t.ShowHeader===!1,h(e.scroller,"aria-label",t.AccessibleLabel||(t.Title||"Chat")+" messages"),e.welcome.textContent=t.WelcomeTitle||"How can I help?",e.description.textContent=t.WelcomeMessage||"Ask a question to start a conversation.",e.input.placeholder=t.Placeholder||"Write a message\u2026",e.input.maxLength=Math.max(1,Number(t.MaxLength)||4e3);let n=I(t.SuggestionsJson,"Suggestions"),d=JSON.stringify(n);if(d!==e.suggestionSignature&&(e.suggestionSignature=d,e.suggestions.replaceChildren(),n.forEach(i=>{let u=v(i.Label||i.Text,()=>C(e,i.Text||i.Label));e.suggestions.append(u)})),O(e,e.messages),_(e),r!==e.status)if(e.status==="Error")g(e,e.error||"Response failed. Retry is available.");else if(!a&&!w(e)&&w({status:r})){let i=[...e.messages].reverse().find(u=>u.Role==="Assistant");g(e,i?"Assistant: "+i.Content:"Response complete.")}else e.status==="Waiting"&&g(e,"Waiting for a response.")})}j();})();
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var f=typeof window=="undefined"?globalThis:window,F="__bluuiCommunityModulesV1",z=f[F]||(f[F]={families:Object.create(null)}),g=f.BluUICommunityRuntime&&!Object.isFrozen(f.BluUICommunityRuntime)?f.BluUICommunityRuntime:Object.assign({},f.BluUICommunityRuntime||{});f.BluUICommunityRuntime=g;function I(t,e){return z.families[t]||(z.families[t]=e())}function P(t,e){return g[t]||(g[t]=e())}var v=I("rich",()=>({instances:new Map,serial:0}));function E(t,e,n){var a=document.createElement(t);return e&&(a.className=e),n!==void 0&&(a.textContent=n),a}function y(t,e,n){return t.setAttribute(e,String(n)),t}function x(t,e,n,a){return t=t===void 0?e:Number(t),Number.isFinite(t)?Math.min(a,Math.max(n,t)):e}function N(t,e,n){return e.indexOf(t)>=0?t:n}function W(t,e){var n=e?e.message||String(e):"";if(t.error.textContent=n,t.error.hidden=!n,n&&n!==t.lastError&&(t.lastError=n,t.events.Error))try{t.events.Error(n)}catch(a){}}function U(t,e,n){var a=t.slots[e];return a&&a.parentElement!==n&&n.append(a),a}function A(t){var e=v.instances.get(t);!e||e.destroying||(e.destroying=!0,e.beforeDestroy&&e.beforeDestroy(),e.dead=!0,e.cleanup.forEach(function(n){n()}),e.pause&&e.pause(),e.modal&&g.Modal.destroy(e.uid+"-modal"),e.observer&&e.observer.disconnect(),e.resize&&e.resize.disconnect(),e.frame&&cancelAnimationFrame(e.frame),Object.keys(e.slots).forEach(function(n){e.host.append(e.slots[n])}),e.root.remove(),e.modal&&e.modal.remove(),e.host._bluRichOwner===t&&delete e.host._bluRichOwner,v.instances.delete(t))}function j(t,e,n,a){return{sync:function(d,l,b,u){var c=document.getElementById(d);if(!c)return"Component host was not found.";u=u||d;var o=v.instances.get(u);o&&(o.host!==c||o.kind!==t)&&(A(u),o=null),c._bluRichOwner&&c._bluRichOwner!==u&&A(c._bluRichOwner),o||(o={host:c,key:u,kind:t,uid:"blu-rich-"+ ++v.serial,cleanup:[],slots:{},events:{},options:{}},Array.from(c.children).forEach(function(m){var p=m.className&&String(m.className).match(/blu-common-slot--(\w+)/);p&&(o.slots[p[1]]=m)}),o.root=E("div","blu-rich blu-"+e),o.body=E("div","blu-rich-body"),o.error=y(E("p","blu-rich-error"),"role","alert"),o.error.hidden=!0,o.root.append(o.body,o.error),c.append(o.root),v.instances.set(u,o),o.fresh=!0),c._bluRichOwner=u,o.options=l||{},o.events=b||{};var h=c.nextElementSibling;h&&h.classList.contains("blu-component-preview")&&(h.hidden=!0),o.options.AccessibleLabel?(y(o.root,"aria-label",o.options.AccessibleLabel),y(o.root,"role","group")):(o.root.removeAttribute("aria-label"),o.root.removeAttribute("role"));try{return o.fresh&&(n(o),o.fresh=!1),a(o),W(o,null),""}catch(m){return W(o,m),m.message||String(m)}},destroy:A}}function V(t){var e=[],n=t.children.length===1?t.firstElementChild:null;n&&!n.matches(".blu-rich,[data-block],.OSBlockWidget")&&(!n.id||t.hasAttribute("data-container")&&t.id.endsWith("ContentArea")&&n.id===t.id.slice(0,-4))&&n.children.length&&(n.classList.add("blu-rich-bridge"),t=n);function a(d){Array.from(d.children).forEach(function(l){l.classList.contains("list")||l.classList.contains("list-item")||l.hasAttribute("data-list")||l.hasAttribute("data-container")&&l.children.length===1&&!l.querySelector(".blu-rich")||l.classList.contains("OSBlockWidget")&&l.children.length===1&&l.firstElementChild&&l.firstElementChild.hasAttribute("data-list")?(l.classList.add("blu-rich-bridge"),a(l)):e.push(l)})}return a(t),e}function G(t,e){if(t.content=U(t,"content",t.body),!t.content)throw Error("Content slot is required.");t.observer=new MutationObserver(function(n){n.some(function(a){return a.type==="childList"})&&(t.frame&&cancelAnimationFrame(t.frame),t.frame=requestAnimationFrame(e))}),t.observer.observe(t.content,{childList:!0,subtree:!0}),t.resize=new ResizeObserver(function(){t.frame&&cancelAnimationFrame(t.frame),t.frame=requestAnimationFrame(e)}),t.resize.observe(t.content)}function M(t){t.collectionAnimations.forEach(function(e){e.cancel()}),t.collectionAnimations.clear()}function C(t){if(!t.dead){var e=t.options,n=V(t.content),a=N(e.Variant,["Grid","Staggered","Masonry"],"Grid");(t.items||[]).forEach(function(i){if(n.indexOf(i)<0){i.classList.remove("blu-collection-layout__item"),i.style.gridRowEnd="";var r=t.collectionAnimations.get(i);r&&(r.cancel(),t.collectionAnimations.delete(i))}}),t.items=n;var d=t.content.clientWidth,l=x(e.Gap,24,0,64),b=Math.min(x(e.Columns,3,1,6),Math.max(1,Math.floor((d+l)/(x(e.MinItemWidth,240,120,800)+l))));if(t.content.classList.add("blu-collection-layout__items"),t.content.style.setProperty("--blu-collection-columns",b),t.content.style.setProperty("--blu-collection-gap",l+"px"),y(t.root,"data-variant",a.toLowerCase()),n.forEach(function(i,r){i.classList.add("blu-collection-layout__item"),i.style.setProperty("--blu-stagger",b>1&&r%b===1?"40px":"0px"),i.style.gridRowEnd=""}),a==="Masonry"){t.content.style.gridAutoRows="4px";var u=n.map(function(i){var r=i.firstElementChild||i;return Math.max(1,Math.ceil((r.getBoundingClientRect().height+l)/(4+l)))});n.forEach(function(i,r){i.style.gridRowEnd="span "+u[r]})}else t.content.style.gridAutoRows="";var c=t.collectionPositions,o=new Map,h=!1;n.forEach(function(i){var r={x:i.offsetLeft,y:i.offsetTop,width:i.offsetWidth,height:i.offsetHeight,parent:i.offsetParent};o.set(i,r);var s=c.get(i);(!s||s.x!==r.x||s.y!==r.y||s.width!==r.width||s.height!==r.height)&&(h=!0)});var m=d>0&&a==="Masonry"&&t.collectionVariant==="Masonry"&&e.AnimateResize!==!1&&!(t.collectionMotion&&t.collectionMotion.matches);if(!m)M(t);else if(h){var p=new Map;t.collectionAnimations.forEach(function(i,r){p.set(r,r.getBoundingClientRect())}),M(t);var L=new Map;p.forEach(function(i,r){var s=r.getBoundingClientRect();L.set(r,{x:i.left-s.left,y:i.top-s.top})}),n.forEach(function(i){var r=c.get(i),s=o.get(i),R=L.get(i)||{x:0,y:0};if(!(!r||!r.width||!s.width||r.parent!==s.parent||typeof i.animate!="function")){var O=r.x+R.x-s.x,_=r.y+R.y-s.y;if(!(Math.abs(O)<.5&&Math.abs(_)<.5)){var B=getComputedStyle(i).transform,S=B==="none"?"":B,w=i.animate([{transform:"translate("+O+"px,"+_+"px) "+S},{transform:S||"none"}],{duration:240,easing:"cubic-bezier(.2,.7,.2,1)"});t.collectionAnimations.set(i,w),w.onfinish=function(){t.collectionAnimations.get(i)===w&&t.collectionAnimations.delete(i)}}}})}t.collectionPositions=d>0?o:new Map,t.collectionVariant=a}}function q(){return P("CollectionLayout",()=>j("CollectionLayout","collection-layout",function(t){t.collectionAnimations=new Map,t.collectionPositions=new Map,t.collectionMotion=f.matchMedia?f.matchMedia("(prefers-reduced-motion: reduce)"):null;var e=function(){t.collectionMotion.matches&&M(t)};t.collectionMotion&&(t.collectionMotion.addEventListener?t.collectionMotion.addEventListener("change",e):t.collectionMotion.addListener(e)),G(t,function(){C(t)});var n=function(){t.frame&&cancelAnimationFrame(t.frame),t.frame=requestAnimationFrame(function(){C(t)})};t.content.addEventListener("load",n,!0),t.cleanup.push(function(){M(t),t.collectionPositions.clear(),t.content.removeEventListener("load",n,!0),t.collectionMotion&&(t.collectionMotion.removeEventListener?t.collectionMotion.removeEventListener("change",e):t.collectionMotion.removeListener(e))})},C))}q();})();
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var f=typeof window=="undefined"?globalThis:window,C="__bluuiCommunityModulesV1",w=f[C]||(f[C]={families:Object.create(null)}),b=f.BluUICommunityRuntime&&!Object.isFrozen(f.BluUICommunityRuntime)?f.BluUICommunityRuntime:Object.assign({},f.BluUICommunityRuntime||{});f.BluUICommunityRuntime=b;function E(e,t){return w.families[e]||(w.families[e]=t())}function D(e,t){return b[e]||(b[e]=t())}var s=E("interactive",()=>({instances:new Map,nextId:0}));function u(e,t,i){var r=document.createElement(e);return t&&(r.className=t),i!==void 0&&(r.textContent=i),r}function l(e,t,i){return e.setAttribute(t,String(i)),e}function y(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function L(e,t,i,r){var n=u("button","blu-control "+(i||""),e);return n.type="button",n.disabled=!!r,n.addEventListener("click",t),n}function A(e,t,i,r){var n=u("input","blu-input");return n.type=e,n.value=t===void 0?"":String(t),l(n,"aria-label",i),r&&n.addEventListener("change",function(){r(n.value)}),n}function B(e,t){var i=typeof e=="string"?JSON.parse(e||"[]"):e;if(!Array.isArray(i))throw new Error(t+" must be a JSON array.");return i}function F(e,t){var i=new Map;if(e.length>2e3)throw new Error(t+" supports up to 2,000 local items.");return e.forEach(function(r){if(!r||typeof r.Key!="string"||!r.Key.trim()||typeof r.Label!="string"||!r.Label.trim())throw new Error(t+": every item needs a Key and Label.");if(i.has(r.Key))throw new Error("Duplicate key: "+r.Key);i.set(r.Key,r)}),i}function h(e,t){if(!(e.disposed||!e.events[t])){var i=Array.prototype.slice.call(arguments,2);try{Promise.resolve(e.events[t].apply(null,i)).catch(function(r){t!=="Error"&&h(e,"Error",r.message||String(r))})}catch(r){t!=="Error"&&h(e,"Error",r.message||String(r))}}}function _(e,t){e.error.textContent=t,e.error.hidden=!t,t&&h(e,"Error",t)}function k(e,t){e.root=u("div",t),e.error=l(u("div","blu-component-error"),"role","alert"),e.error.hidden=!0,y(e.host),e.host.appendChild(e.root),e.host.appendChild(e.error)}function m(e,t,i,r,n){t.addEventListener(i,r,n),e.cleanup.push(function(){t.removeEventListener(i,r,n)})}function O(e,t,i,r,n){var a=n||e,d=document.getElementById(e);if(!d)throw new Error(t+" host was not found.");var o=s.instances.get(a);o&&(o.kind!==t||o.host!==d)&&g(a);var c=s.instances.get(a);return c||(c={host:d,id:e,key:a,uid:"blu-interactive-"+ ++s.nextId,kind:t,cleanup:[],options:{},events:r||{},disposed:!1},s.instances.set(a,c)),d._bluOwnerKey=a,c.events=r||c.events,c}function g(e){var t=s.instances.get(e);t&&(t.disposed=!0,t.dispose&&t.dispose(),t.cleanup.forEach(function(i){i()}),t.host._bluOwnerKey===t.key&&(y(t.host),delete t.host._bluOwnerKey),s.instances.delete(e))}function R(e,t){return Object.freeze({sync:function(i,r,n,a){var d=a||i,o=O(i,e,r,n,a);try{return t(o,r),""}catch(c){return g(d),o=O(i,e,r,n,a),k(o,"blu-interactive"),_(o,c.message),c.message}},destroy:function(i){var r=s.instances.get(i);r&&r.kind===e&&g(i)}})}function p(e,t){e.options.IsDisabled&&(t=!1),t!==e.open&&(e.open=t,e.lastOpen=t,t?(e.returnFocus=document.activeElement,e.dialog.showModal(),e.search.value="",v(e),e.search.focus()):(e.dialog.close(),e.returnFocus&&e.returnFocus.isConnected&&e.returnFocus.focus()),h(e,"OpenChanged",t))}function I(e,t){!t||t.IsDisabled||e.options.IsDisabled||(p(e,!1),h(e,"Command",t.Key))}function v(e){var t=e.search.value.trim().toLocaleLowerCase();e.results=e.items.filter(function(n){return(n.Label+" "+(n.Description||"")+" "+(n.Keywords||"")+" "+(n.Group||"")).toLocaleLowerCase().indexOf(t)>=0}).slice(0,100),y(e.list);var i="",r=[];e.results.forEach(function(n,a){if(n.Group&&n.Group!==i){i=n.Group;var d=u("li","blu-command__group",i);l(d,"role","presentation"),e.list.appendChild(d)}var o=u("li","blu-command__option");o.id=e.uid+"-command-"+a,l(o,"role","option"),l(o,"aria-disabled",!!n.IsDisabled),o.dataset.index=a;var c=u("span","blu-command__copy");c.appendChild(u("strong","",n.Label)),n.Description&&c.appendChild(u("small","",n.Description)),o.appendChild(c),n.Shortcut&&o.appendChild(u("kbd","",n.Shortcut)),o.addEventListener("click",function(){I(e,n)}),e.list.appendChild(o),n.IsDisabled||r.push(a)}),e.enabled=r,e.active=r.length?r[0]:-1,e.results.length||e.list.appendChild(l(u("li","blu-interactive__empty",e.options.EmptyText||"No commands found."),"role","presentation")),e.count.textContent=e.results.length+" commands",S(e)}function S(e){Array.from(e.list.querySelectorAll('[role="option"]')).forEach(function(i){l(i,"aria-selected",Number(i.dataset.index)===e.active)});var t=e.list.querySelector('[data-index="'+e.active+'"]');t?(l(e.search,"aria-activedescendant",t.id),t.scrollIntoView({block:"nearest"})):e.search.removeAttribute("aria-activedescendant")}function P(e,t){var i=B(t.CommandsJson,"Commands");if(F(i,"Commands"),e.items=i,e.options=t,!e.ready){k(e,"blu-command"),e.open=!1,e.trigger=L(t.TriggerLabel||"Open command palette",function(){p(e,!0)}),e.root.appendChild(e.trigger),e.dialog=u("dialog","blu-command__dialog"),l(e.dialog,"aria-label",t.AccessibleLabel||"Command palette"),e.search=A("search","","Search commands"),e.search.placeholder="Search commands, pages, and actions\u2026",l(e.search,"role","combobox"),l(e.search,"aria-autocomplete","list"),l(e.search,"aria-expanded",!0),l(e.search,"aria-controls",e.uid+"-commands"),e.dialog.appendChild(e.search),e.list=l(u("ul","blu-command__list"),"role","listbox"),e.list.id=e.uid+"-commands",l(e.list,"aria-label","Commands"),e.dialog.appendChild(e.list);var r=u("div","blu-command__footer");e.count=l(u("span"),"aria-live","polite"),r.appendChild(e.count),r.appendChild(u("span","","\u2191 \u2193 Navigate \u21B5 Select Esc Close")),r.appendChild(L("Close",function(){p(e,!1)},"blu-control--quiet")),e.dialog.appendChild(r),e.root.appendChild(e.dialog),m(e,e.search,"input",function(){v(e)}),m(e,e.dialog,"cancel",function(n){n.preventDefault(),p(e,!1)}),m(e,e.dialog,"keydown",function(n){if(n.key==="Tab"){var a=Array.from(e.dialog.querySelectorAll('button:not(:disabled),input:not(:disabled),select:not(:disabled),a[href],[tabindex="0"]')).filter(function(c){return c.getClientRects().length}),d=a[0],o=a[a.length-1];n.shiftKey&&document.activeElement===d?(n.preventDefault(),o.focus()):!n.shiftKey&&document.activeElement===o&&(n.preventDefault(),d.focus())}}),m(e,e.dialog,"click",function(n){if(n.target===e.dialog){var a=e.dialog.getBoundingClientRect();(n.clientX<a.left||n.clientX>a.right||n.clientY<a.top||n.clientY>a.bottom)&&p(e,!1)}}),m(e,e.search,"keydown",function(n){if(n.key==="Enter"){n.preventDefault(),I(e,e.results[e.active]);return}var a=e.enabled.indexOf(e.active);if(n.key==="ArrowDown")a=(a+1)%e.enabled.length;else if(n.key==="ArrowUp")a=(a-1+e.enabled.length)%e.enabled.length;else if(n.key==="Home")a=0;else if(n.key==="End")a=e.enabled.length-1;else return;n.preventDefault(),e.active=e.enabled[a]===void 0?-1:e.enabled[a],S(e)}),m(e,document,"keydown",function(n){!e.options.EnableShortcut||e.options.IsDisabled||!e.host.getClientRects().length||n.repeat||(n.ctrlKey||n.metaKey)&&n.key.toLowerCase()==="k"&&(n.preventDefault(),n.stopImmediatePropagation(),p(e,!e.open))},!0),e.dispose=function(){e.open&&(e.dialog.close(),e.returnFocus&&e.returnFocus.isConnected&&e.returnFocus.focus())},e.ready=!0}e.trigger.textContent=t.TriggerLabel||"Open command palette",e.trigger.hidden=t.ShowTrigger===!1,e.trigger.disabled=!!t.IsDisabled,l(e.dialog,"aria-label",t.AccessibleLabel||"Command palette"),v(e),t.IsDisabled?p(e,!1):t.IsOpen!==e.lastOpen&&p(e,!!t.IsOpen),_(e,"")}function K(){return D("CommandPalette",()=>R("CommandPalette",P))}K();})();
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var m=typeof window=="undefined"?globalThis:window,C="__bluuiCommunityModulesV1",A=m[C]||(m[C]={families:Object.create(null)}),f=m.BluUICommunityRuntime&&!Object.isFrozen(m.BluUICommunityRuntime)?m.BluUICommunityRuntime:Object.assign({},m.BluUICommunityRuntime||{});m.BluUICommunityRuntime=f;function w(e,t){return A.families[e]||(A.families[e]=t())}function L(e,t){return f[e]||(f[e]=t())}var b=w("rich",()=>({instances:new Map,serial:0}));function d(e,t,n){var i=document.createElement(e);return t&&(i.className=t),n!==void 0&&(i.textContent=n),i}function l(e,t,n){return e.setAttribute(t,String(n)),e}function p(e,t,n,i){return e=e===void 0?t:Number(e),Number.isFinite(e)?Math.min(i,Math.max(n,e)):t}function E(e,t,n,i){t.addEventListener(n,i),e.cleanup.push(function(){t.removeEventListener(n,i)})}function M(e,t){if(!(e.dead||!e.events[t]))try{Promise.resolve(e.events[t].apply(null,Array.prototype.slice.call(arguments,2))).catch(function(n){g(e,n)})}catch(n){g(e,n)}}function g(e,t){var n=t?t.message||String(t):"";if(e.error.textContent=n,e.error.hidden=!n,n&&n!==e.lastError&&(e.lastError=n,e.events.Error))try{e.events.Error(n)}catch(i){}}function R(e,t,n){var i=d("button","blu-rich-button "+(n||""),e);return i.type="button",i.addEventListener("click",t),i}function B(e,t,n){var i=e.slots[t];return i&&i.parentElement!==n&&n.append(i),i}function y(e){var t=b.instances.get(e);!t||t.destroying||(t.destroying=!0,t.beforeDestroy&&t.beforeDestroy(),t.dead=!0,t.cleanup.forEach(function(n){n()}),t.pause&&t.pause(),t.modal&&f.Modal.destroy(t.uid+"-modal"),t.observer&&t.observer.disconnect(),t.resize&&t.resize.disconnect(),t.frame&&cancelAnimationFrame(t.frame),Object.keys(t.slots).forEach(function(n){t.host.append(t.slots[n])}),t.root.remove(),t.modal&&t.modal.remove(),t.host._bluRichOwner===e&&delete t.host._bluRichOwner,b.instances.delete(e))}function S(e,t,n,i){return{sync:function(a,o,I,c){var u=document.getElementById(a);if(!u)return"Component host was not found.";c=c||a;var r=b.instances.get(c);r&&(r.host!==u||r.kind!==e)&&(y(c),r=null),u._bluRichOwner&&u._bluRichOwner!==c&&y(u._bluRichOwner),r||(r={host:u,key:c,kind:e,uid:"blu-rich-"+ ++b.serial,cleanup:[],slots:{},events:{},options:{}},Array.from(u.children).forEach(function(s){var x=s.className&&String(s.className).match(/blu-common-slot--(\w+)/);x&&(r.slots[x[1]]=s)}),r.root=d("div","blu-rich blu-"+t),r.body=d("div","blu-rich-body"),r.error=l(d("p","blu-rich-error"),"role","alert"),r.error.hidden=!0,r.root.append(r.body,r.error),u.append(r.root),b.instances.set(c,r),r.fresh=!0),u._bluRichOwner=c,r.options=o||{},r.events=I||{};var v=u.nextElementSibling;v&&v.classList.contains("blu-component-preview")&&(v.hidden=!0),r.options.AccessibleLabel?(l(r.root,"aria-label",r.options.AccessibleLabel),l(r.root,"role","group")):(r.root.removeAttribute("aria-label"),r.root.removeAttribute("role"));try{return r.fresh&&(n(r),r.fresh=!1),i(r),g(r,null),""}catch(s){return g(r,s),s.message||String(s)}},destroy:y}}function q(e){var t=[],n=e.children.length===1?e.firstElementChild:null;n&&!n.matches(".blu-rich,[data-block],.OSBlockWidget")&&(!n.id||e.hasAttribute("data-container")&&e.id.endsWith("ContentArea")&&n.id===e.id.slice(0,-4))&&n.children.length&&(n.classList.add("blu-rich-bridge"),e=n);function i(a){Array.from(a.children).forEach(function(o){o.classList.contains("list")||o.classList.contains("list-item")||o.hasAttribute("data-list")||o.hasAttribute("data-container")&&o.children.length===1&&!o.querySelector(".blu-rich")||o.classList.contains("OSBlockWidget")&&o.children.length===1&&o.firstElementChild&&o.firstElementChild.hasAttribute("data-list")?(o.classList.add("blu-rich-bridge"),i(o)):t.push(o)})}return i(e),t}function N(e,t){if(e.content=B(e,"content",e.body),!e.content)throw Error("Content slot is required.");e.observer=new MutationObserver(function(n){n.some(function(i){return i.type==="childList"})&&(e.frame&&cancelAnimationFrame(e.frame),e.frame=requestAnimationFrame(t))}),e.observer.observe(e.content,{childList:!0,subtree:!0}),e.resize=new ResizeObserver(function(){e.frame&&cancelAnimationFrame(e.frame),e.frame=requestAnimationFrame(t)}),e.resize.observe(e.content)}function _(e){var t=e.items||[];e.items=q(e.content),t.forEach(function(a){e.items.indexOf(a)<0&&(a.classList.remove("blu-content-carousel__item"),a.removeAttribute("role"),a.removeAttribute("aria-roledescription"),a.removeAttribute("aria-label"))}),l(e.content,"role","group"),l(e.content,"aria-label",e.options.AccessibleLabel||"Carousel"),e.gap=p(e.options.Gap,24,0,64);var n=e.content.clientWidth,i=Math.min(p(e.options.ItemsVisible,3,1,6),n<540?1:n<850?2:6);e.content.style.setProperty("--blu-carousel-visible",i),e.content.style.setProperty("--blu-carousel-gap",e.gap+"px"),e.content.style.setProperty("--blu-carousel-peek",e.options.PeekNext===!1?"0px":"48px"),e.items.forEach(function(a,o){a.classList.add("blu-content-carousel__item"),l(a,"role","group"),l(a,"aria-roledescription","slide"),l(a,"aria-label",(e.options.ItemLabel||"Item")+" "+(o+1)+" of "+e.items.length)}),e.index=e.index||0,F(e)}function F(e){if(e.tools){var t=e.content.scrollLeft>=e.content.scrollWidth-e.content.clientWidth-3;e.previous.disabled=e.content.scrollLeft<3,e.next.disabled=t,e.previous.hidden=e.next.hidden=e.options.ShowArrows===!1,e.status.hidden=e.progress.hidden=e.options.ShowIndicators===!1,e.status.textContent=e.items.length?Math.min(e.index+1,e.items.length)+" / "+e.items.length:"No items",e.progress.max=Math.max(1,e.items.length),e.progress.value=e.index+1}}function h(e,t,n){if(!(!e.items||!e.items.length)){t=Math.round(p(t,0,0,e.items.length-1));var i=e.items[t],a=i.getBoundingClientRect().left-e.content.getBoundingClientRect().left+e.content.scrollLeft;e.content.scrollTo({left:a,behavior:n||matchMedia("(prefers-reduced-motion: reduce)").matches?"instant":"smooth"})}}function O(){return L("ContentCarousel",()=>S("ContentCarousel","content-carousel",function(e){N(e,function(){_(e)}),e.content.classList.add("blu-content-carousel__track"),l(e.content,"aria-roledescription","carousel"),e.content.tabIndex=0,e.tools=d("div","blu-content-carousel__controls"),e.previous=R("\u2190",function(){h(e,e.index-1)}),e.next=R("\u2192",function(){h(e,e.index+1)}),l(e.previous,"aria-label","Previous item"),l(e.next,"aria-label","Next item"),e.status=l(d("span","blu-content-carousel__status"),"aria-live","polite"),e.progress=d("progress"),l(e.progress,"aria-label","Carousel position"),e.tools.append(e.previous,e.progress,e.status,e.next),e.body.append(e.tools),E(e,e.content,"scroll",function(){e.scrollFrame&&cancelAnimationFrame(e.scrollFrame),e.scrollFrame=requestAnimationFrame(function(){e.scrollFrame=null;var t=e.items&&e.items[0];if(t){var n=Math.round(e.content.scrollLeft/(t.getBoundingClientRect().width+e.gap));n!==e.index&&(e.index=n,F(e),M(e,"IndexChanged",n))}})}),e.cleanup.push(function(){e.scrollFrame&&cancelAnimationFrame(e.scrollFrame)}),E(e,e.content,"keydown",function(t){t.target===e.content&&((t.key==="ArrowRight"||t.key==="ArrowLeft")&&(t.preventDefault(),h(e,e.index+(t.key==="ArrowRight"?1:-1))),(t.key==="Home"||t.key==="End")&&(t.preventDefault(),h(e,t.key==="Home"?0:e.items.length-1)))})},function(e){_(e);var t=p(e.options.ActiveIndex,0,0,9999);t!==e.lastRequested&&(e.lastRequested=t,h(e,t,!0))}))}O();})();
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var y=typeof window=="undefined"?globalThis:window,$="__bluuiCommunityModulesV1",V=y[$]||(y[$]={families:Object.create(null)}),D=y.BluUICommunityRuntime&&!Object.isFrozen(y.BluUICommunityRuntime)?y.BluUICommunityRuntime:Object.assign({},y.BluUICommunityRuntime||{});y.BluUICommunityRuntime=D;function Z(e,t){return V.families[e]||(V.families[e]=t())}function G(e,t){return D[e]||(D[e]=t())}var x=Z("platform",()=>({states:new Map,sequence:0}));function f(e,t,n){var r=document.createElement(e);return t&&(r.className=t),n!==void 0&&(r.textContent=String(n)),r}function h(e,t,n){return e.setAttribute(t,String(n)),e}function ie(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function k(e){return JSON.parse(JSON.stringify(e))}function I(e){return JSON.stringify(e)}function M(e){return e==null?"":String(e)}function K(e,t,n,r){var a=e==null?t:Number(e);if(!Number.isInteger(a)||a<n||a>r)throw Error("Expected a whole number from "+n+" to "+r+".");return a}function le(e,t,n){var r=typeof e=="string"?JSON.parse(e||"[]"):e||[];if(!Array.isArray(r)||r.length>(n||1e4))throw Error(t+" must be a list with at most "+(n||1e4)+" items.");return k(r)}function ue(e,t){var n=new Set;return e.forEach(function(r){if(!r||typeof r.Key!="string"||!r.Key||n.has(r.Key))throw Error(t+" needs unique, nonempty text keys.");n.add(r.Key)}),e}function ee(e){return e+"-"+Date.now().toString(36)+"-"+ ++x.sequence}function N(e,t,n,r,a){t.addEventListener(n,r,!!a),e.cleanup.push(function(){t.removeEventListener(n,r,!!a)})}function w(e,t){e.status.textContent=t||""}function O(e,t){var n=t&&t.message||M(t);if(e.error.textContent=n,e.error.hidden=!n,n&&e.lastError!==n&&(e.lastError=n,e.events.Error))try{Promise.resolve(e.events.Error(n)).catch(function(){})}catch(r){}n||(e.lastError="")}function te(e,t){if(!(e.dead||!e.events[t])){var n=Array.prototype.slice.call(arguments,2);try{Promise.resolve(e.events[t].apply(null,n)).catch(function(r){e.dead||O(e,r)})}catch(r){O(e,r)}}}function _(e,t,n,r){var a=f("button","blu-platform__button "+(r||""),e);return a.type="button",n&&h(a,"data-focus",n),a.addEventListener("click",t),a}function Q(e,t){var n=f("label","blu-platform__field");return n.append(f("span","blu-platform__label",e),t),n}function H(e,t,n,r,a){var l=f("select","blu-platform__input");return h(l,"aria-label",n),a&&h(l,"data-focus",a),e.forEach(function(d){var v=f("option","",typeof d=="string"?d:d.label);v.value=typeof d=="string"?d:d.value,l.append(v)}),l.value=M(t),l.addEventListener("change",function(){r(l.value)}),l}function de(e){var t=document.activeElement;return t&&e.contains(t)?{key:t.getAttribute("data-focus"),start:t.selectionStart,end:t.selectionEnd}:null}function se(e,t){if(!t||!t.key)return!1;var n=Array.from(e.querySelectorAll("[data-focus]")).find(function(a){return a.getAttribute("data-focus")===t.key});if(n&&!n.disabled&&!n.closest("[hidden]")){var r=n.closest("details");if(r&&(r.open=!0),n.focus({preventScroll:!0}),typeof n.setSelectionRange=="function"&&t.start!=null)try{n.setSelectionRange(t.start,t.end)}catch(a){}return!0}return!1}function g(e){return!!e.pending}function ce(e,t,n,r){if(!g(e)){var a=e.root.contains(document.activeElement);e.pending={id:ee("save"),data:k(t)},w(e,"Saving changes\u2026"),e.draw(),a&&(h(e.status,"tabindex","-1"),e.status.focus({preventScroll:!0})),te.apply(null,[e,n,e.pending.id].concat(r))}}function fe(e,t){var n=e.options;if(!(!e.pending||n.SaveResultRequestId!==e.pending.id)){var r=e.pending;e.pending=null,n.SaveResultSuccess?(e.baseline=k(r.data),t&&t(),w(e,n.SaveResultMessage||"Changes saved.")):w(e,n.SaveResultMessage||"Changes could not be saved. Your edits are retained.")}}function pe(e,t,n,r){var a=f("div","blu-platform__savebar");a.hidden=!t&&!g(e);var l=_(g(e)?"Saving\u2026":"Save changes",n,"save","blu-platform__button--primary");l.disabled=g(e);var d=_("Discard",r,"discard");return d.disabled=g(e),a.append(f("span","",t+(t===1?" change":" changes")),d,l),a}function T(e){var t=x.states.get(e);t&&(t.dead=!0,t.cleanup.forEach(function(n){n()}),t.destroy&&t.destroy(),t.root.remove(),t.host._bluPlatformOwner===e&&delete t.host._bluPlatformOwner,x.states.delete(e))}function be(e,t,n,r){return{sync:function(a,l,d,v){var s=document.getElementById(a);if(!s)return"Component host was not found.";var m=v||a,i=x.states.get(m);i&&(i.host!==s||i.kind!==e)&&(T(m),i=null),s._bluPlatformOwner&&s._bluPlatformOwner!==m&&T(s._bluPlatformOwner),i||(i={host:s,key:m,kind:e,uid:ee("blu-platform"),cleanup:[],events:{},options:{}},i.root=f("section","blu-platform "+t),i.body=f("div","blu-platform__body"),i.status=h(f("p","blu-platform__status"),"role","status"),h(i.status,"aria-live","polite"),i.error=h(f("p","blu-platform__error"),"role","alert"),i.error.hidden=!0,i.root.append(i.body,i.status,i.error),s.append(i.root),x.states.set(m,i),i.needsInit=!0),s._bluPlatformOwner=m,i.options=l||{},i.events=d||{},h(i.root,"aria-label",i.options.AccessibleLabel||e.replace(/([a-z])([A-Z])/g,"$1 $2"));var R=s.nextElementSibling;R&&R.classList.contains("blu-component-preview")&&(R.hidden=!0);try{return i.needsInit&&(n(i),i.needsInit=!1),r(i),O(i,""),""}catch(S){return O(i,S),S.message||String(S)}},destroy:T}}function ve(e,t){return ue(le(e,"Panels",200),"Panels").map(function(n){return{Key:n.Key,Title:M(n.Title)||n.Key,ColumnSpan:Math.min(t,K(n.ColumnSpan,6,1,12)),RowSpan:K(n.RowSpan,2,1,12),IsHidden:!!n.IsHidden}})}function he(e){if(e.editing=!1,e.panels=[],e.baseline=[],e.panelNodes=new Map,e.content=Array.from(e.host.children).find(function(r){return r.classList.contains("blu-common-slot--content")}),!e.content)throw Error("DashboardCanvas requires a Content slot containing DashboardPanel blocks.");e.content.classList.add("blu-dashboard-canvas__grid"),e.root.insertBefore(e.content,e.status),e.change=function(){e.draw(),te(e,"LayoutChanged",I(e.panels))},e.move=function(r,a){if(!(e.options.IsDisabled||g(e))){var l=e.panels.findIndex(function(d){return d.Key===r});l<0||a<0||a>=e.panels.length||l===a||(e.panels.splice(a,0,e.panels.splice(l,1)[0]),w(e,"Panel moved to position "+(a+1)+"."),e.change())}},e.draw=function(){var r=de(e.root),a=e.options,l=e.editing&&a.AllowEditing!==!1,d=!!a.IsDisabled||g(e);e.root.classList.toggle("blu-dashboard-canvas--editing",l),e.content.style.setProperty("--blu-dashboard-columns",e.columns),e.content.style.setProperty("--blu-dashboard-row",e.rowHeight+"px"),ie(e.body);var v=f("div","blu-platform__toolbar");if(v.append(f("span","blu-platform__muted",e.panels.filter(function(o){return!o.IsHidden}).length+" visible panels")),a.AllowEditing!==!1){var s=_(l?"Done editing":"Edit layout",function(){e.editing=!e.editing,e.draw()},"edit-layout");if(s.disabled=d,v.append(s),l){var m=e.panels.filter(function(o){return o.IsHidden});if(m.length){var i=H([{value:"",label:"Restore a hidden panel"}].concat(m.map(function(o){return{value:o.Key,label:o.Title}})),"","Restore a hidden panel",function(o){var u=e.panels.find(function(b){return b.Key===o});u&&(u.IsHidden=!1,e.change(),w(e,u.Title+" restored."))},"restore-panel");i.disabled=d,v.append(i)}}}e.body.append(v);var R=e.panels.reduce(function(o,u,b){return o+(I(u)!==I(e.baseline[b])?1:0)},0);e.body.append(pe(e,R,function(){ce(e,e.panels,"SaveRequested",[I(e.panels)])},function(){e.panels=k(e.baseline),e.change(),w(e,"Layout changes discarded.")}));var S=Array.from(e.content.querySelectorAll("[data-blu-panel-key]")).filter(function(o){return o.closest(".blu-dashboard-canvas")===e.root}),E=S.map(function(o){for(var u=o;u.parentElement!==e.content&&u.parentElement.querySelectorAll("[data-blu-panel-key]").length===1;)u=u.parentElement;return u});if(E.length&&E.every(function(o){return o.parentElement===E[0].parentElement})){var B=E[0].parentElement,J=E.slice().sort(function(o,u){return e.panels.findIndex(function(b){return b.Key===(o.matches("[data-blu-panel-key]")?o:o.querySelector("[data-blu-panel-key]")).getAttribute("data-blu-panel-key")})-e.panels.findIndex(function(b){return b.Key===(u.matches("[data-blu-panel-key]")?u:u.querySelector("[data-blu-panel-key]")).getAttribute("data-blu-panel-key")})}),ae=Array.from(B.children).filter(function(o){return E.indexOf(o)>=0});J.some(function(o,u){return o!==ae[u]})&&J.forEach(function(o){B.append(o)})}S.forEach(function(o){var u=o.getAttribute("data-blu-panel-key"),b=e.panels.findIndex(function(c){return c.Key===u}),p=e.panels[b],C=Array.from(o.children).find(function(c){return c.classList.contains("blu-dashboard-canvas__panel-header")});if(C&&C.remove(),o.classList.add("blu-dashboard-canvas__panel"),o.hidden=!p||p.IsHidden,!!p){e.panelNodes.set(u,o);for(var P=o.parentElement;P&&P!==e.content;)P.classList.add("blu-dashboard-canvas__bridge"),P=P.parentElement;if(o.style.order=String(b),o.style.setProperty("--blu-dashboard-span",p.ColumnSpan),o.style.setProperty("--blu-dashboard-rows",p.RowSpan),h(o,"role","group"),h(o,"aria-label",p.Title),C=f("div","blu-dashboard-canvas__panel-header"),C.append(f("h3","blu-dashboard-canvas__panel-title",p.Title)),l){var A=_("\u283F",function(){},"drag-"+u,"blu-dashboard-canvas__drag");h(A,"aria-label","Drag "+p.Title+"; use Layout options to move without dragging"),A.disabled=d,A.addEventListener("pointerdown",function(c){c.button!==0||d||(c.preventDefault(),e.drag={key:u,x:c.clientX,y:c.clientY,index:b,handle:A},A.setPointerCapture(c.pointerId))});var q=f("details","blu-dashboard-canvas__settings"),U=f("summary","","Layout options");h(U,"data-focus","settings-"+u),q.append(U);var F=f("div","blu-dashboard-canvas__settings-body"),Y=_("Move earlier",function(){e.move(u,b-1)},"earlier-"+u),j=_("Move later",function(){e.move(u,b+1)},"later-"+u);Y.disabled=d||b===0,j.disabled=d||b===e.panels.length-1;var re=Array.from({length:e.columns},function(c,L){return{value:String(L+1),label:L+1+" columns"}}),oe=Array.from({length:12},function(c,L){return{value:String(L+1),label:L+1+" row units"}}),X=H(re,p.ColumnSpan,"Width of "+p.Title,function(c){p.ColumnSpan=Number(c),e.change()},"width-"+u),z=H(oe,p.RowSpan,"Height of "+p.Title,function(c){p.RowSpan=Number(c),e.change()},"height-"+u);X.disabled=z.disabled=d;var W=_("Hide panel",function(){p.IsHidden=!0,e.change(),w(e,p.Title+" hidden.");var c=e.root.querySelector('[data-focus="restore-panel"]');c&&c.focus()},"hide-"+u);W.disabled=d,F.append(Y,j,Q("Width",X),Q("Height",z),W),q.append(F),C.append(A,q)}o.prepend(C)}}),se(e.root,r)},N(e,document,"pointermove",function(r){var a=e.drag;if(a){if(!a.ghost&&Math.hypot(r.clientX-a.x,r.clientY-a.y)>5){var l=e.panelNodes.get(a.key);a.ghost=l.cloneNode(!0),a.ghost.querySelectorAll("[id]").forEach(function(s){s.removeAttribute("id")}),a.ghost.removeAttribute("id"),a.ghost.className="blu-dashboard-canvas__ghost",h(a.ghost,"aria-hidden","true"),a.ghost.inert=!0,a.ghost.style.width=Math.min(l.getBoundingClientRect().width,360)+"px",document.body.append(a.ghost)}if(a.ghost){a.ghost.style.left=r.clientX+14+"px",a.ghost.style.top=r.clientY+14+"px";var d=document.elementFromPoint(r.clientX,r.clientY),v=d&&d.closest("[data-blu-panel-key]");e.panelNodes.forEach(function(s){s.classList.remove("blu-dashboard-canvas__drop")}),v&&e.content.contains(v)&&(a.index=e.panels.findIndex(function(s){return s.Key===v.getAttribute("data-blu-panel-key")}),v.classList.add("blu-dashboard-canvas__drop"))}}});function t(r){var a=e.drag;a&&(e.drag=null,a.ghost&&a.ghost.remove(),e.panelNodes.forEach(function(l){l.classList.remove("blu-dashboard-canvas__drop")}),r.type==="pointerup"&&a.ghost&&e.move(a.key,a.index))}N(e,document,"pointerup",t),N(e,document,"pointercancel",t),N(e,document,"keydown",function(r){r.key==="Escape"&&e.drag&&t({type:"pointercancel"})});var n=new MutationObserver(function(r){r.some(function(a){return Array.from(a.addedNodes).some(function(l){return l.nodeType===1&&(l.hasAttribute("data-blu-panel-key")||l.querySelector("[data-blu-panel-key]"))})})&&e.draw()});n.observe(e.content,{childList:!0,subtree:!0}),e.destroy=function(){n.disconnect(),e.drag&&e.drag.ghost&&e.drag.ghost.remove(),e.content.querySelectorAll(".blu-dashboard-canvas__panel-header").forEach(function(r){r.remove()}),e.host.insertBefore(e.content,e.root),e.content.classList.remove("blu-dashboard-canvas__grid")}}function me(e){var t=e.options;e.columns=K(t.Columns,12,1,12),e.rowHeight=K(t.RowHeight,100,60,320);var n=I(ve(t.PanelsJson,e.columns));e.lastPanels===void 0||e.resetKey!==t.ResetKey&&!g(e)?(e.panels=JSON.parse(n),e.baseline=k(e.panels),e.resetKey=t.ResetKey):n!==e.lastPanels&&!g(e)&&n!==I(e.panels)&&(e.panels=JSON.parse(n),e.baseline=k(e.panels)),e.lastPanels=n,fe(e),e.draw()}function ne(){return G("DashboardCanvas",()=>be("DashboardCanvas","blu-dashboard-canvas",he,me))}ne();})();
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var T=typeof window=="undefined"?globalThis:window,Z="__bluuiCommunityModulesV1",ee=T[Z]||(T[Z]={families:Object.create(null)}),W=T.BluUICommunityRuntime&&!Object.isFrozen(T.BluUICommunityRuntime)?T.BluUICommunityRuntime:Object.assign({},T.BluUICommunityRuntime||{});T.BluUICommunityRuntime=W;function te(e,t){return ee.families[e]||(ee.families[e]=t())}function ne(e,t){return W[e]||(W[e]=t())}var _=te("advanced",()=>({instances:new Map,serial:0})),ge=()=>`blu-advanced-${++_.serial}`;function l(e,t,n){let r=document.createElement(e);return t&&(r.className=t),n!==void 0&&(r.textContent=String(n)),r}function c(e,t,n){return n==null?e.removeAttribute(t):e.setAttribute(t,String(n)),e}function O(e,t,n="blu-picker__button"){let r=l("button",n,e);return r.type="button",r.addEventListener("click",t),r}function Y(e,t,...n){var r,i;if(!e.dead)try{Promise.resolve((i=(r=e.events)[t])==null?void 0:i.call(r,...n)).catch(a=>$(e,a))}catch(a){$(e,a)}}function $(e,t){if(e.dead)return;let n=(t==null?void 0:t.message)||String(t);e.notice.textContent=n,e.lastError!==n&&(e.lastError=n,Y(e,"Error",n))}function ae(e,t){let n=typeof e=="string"?JSON.parse(e||"[]"):e||[];if(!Array.isArray(n))throw Error(t+" must be a list.");return n}function ye(e,t,n){let r=i=>{var m;let a=_.instances.get(i);!a||a.kind!==e||(a.dead=!0,(m=a.dispose)==null||m.call(a),a.root.remove(),a.notice.remove(),a.host._bluAdvancedOwner===i&&delete a.host._bluAdvancedOwner,_.instances.delete(i))};return ne(e,()=>({sync(i,a={},m={},b){let d=document.getElementById(i);if(!d)return e+" host was not found.";let D=b||i,p=_.instances.get(D);p&&(p.host!==d||p.kind!==e)&&(p.destroy(p.key),p=null);let h=_.instances.get(d._bluAdvancedOwner);if(h&&h!==p&&h.destroy(h.key),!p){p={key:D,host:d,kind:e,uid:ge(),options:a,events:m,dead:!1,destroy:r},p.root=l("div"),p.notice=c(l("div","blu-advanced-sr"),"role","status"),c(p.notice,"aria-atomic","true"),d.append(p.root,p.notice),_.instances.set(D,p),d._bluAdvancedOwner=D;try{t(p)}catch(g){throw r(D),g}}p.options=a,p.events=m;try{return n(p),d.dataset.bluRuntimeReady="true",""}catch(g){return $(p,g),g.message||String(g)}},destroy:r}))}var w=e=>String(e).padStart(2,"0");function j(e){return String(e.getFullYear()).padStart(4,"0")+"-"+w(e.getMonth()+1)+"-"+w(e.getDate())}function v(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e));if(!t||+t[1]<1||+t[1]>9999)return null;let n=new Date(2e3,+t[2]-1,+t[3],12);return n.setFullYear(+t[1]),j(n)===e?n:null}function V(e){let t=/^(\d{2}):(\d{2})$/.exec(String(e));return t&&+t[1]<24&&+t[2]<60?t[1]+":"+t[2]:null}function re(e,t="YYYY-MM-DD"){if(e=String(e).trim(),!e)return"";let n=e;if(t!=="YYYY-MM-DD"){let r=/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.exec(e);if(!r)return null;n=r[3]+"-"+w(+(t==="DD/MM/YYYY"?r[2]:r[1]))+"-"+w(+(t==="DD/MM/YYYY"?r[1]:r[2]))}return v(n)?n:null}function ie(e,t="YYYY-MM-DD"){if(!e)return"";let n=e.split("-");return t==="MM/DD/YYYY"?n[1]+"/"+n[2]+"/"+n[0]:t==="DD/MM/YYYY"?n[2]+"/"+n[1]+"/"+n[0]:e}function be(e,t=24){if(e=String(e).trim(),!e)return"";let n=/^(\d{1,2}):(\d{2})(?:\s*(AM|PM))?$/i.exec(e);return!n||+n[2]>59||(t===12?!n[3]||+n[1]<1||+n[1]>12:n[3]||+n[1]>23)?null:w(n[3]?+n[1]%12+(n[3].toUpperCase()==="PM"?12:0):+n[1])+":"+n[2]}function I(e,t=24){if(!e)return"";let[n,r]=e.split(":").map(Number);return t===12?(n%12||12)+":"+w(r)+" "+(n<12?"AM":"PM"):w(n)+":"+w(r)}function oe(e,t){let n=v(e);return n.setDate(n.getDate()+t),j(n)}function ue(e,t){let n=v(e),r=n.getDate();return n.setDate(1),n.setMonth(n.getMonth()+t),n.setDate(Math.min(r,new Date(n.getFullYear(),n.getMonth()+1,0).getDate())),j(n)}function De(e,t){let n=v(e),r=v(t);return Math.round((r.getTime()-n.getTime())/864e5)}function G(e,t,n,r){return v(e)?t&&e<t?"Choose "+t+" or later.":n&&e>n?"Choose "+n+" or earlier.":r!=null&&r.has(e)?"This date is unavailable.":"":"Enter a real calendar date."}function ce(e,t,n={}){if(!e||!t)return"Choose both a start date and an end date.";let r=G(e,n.Min,n.Max,n.disabled)||G(t,n.Min,n.Max,n.disabled);if(r)return r;if(t<e)return"End date must be on or after start date.";let i=De(e,t)+1;if(n.MinRangeDays&&i<n.MinRangeDays)return"Choose at least "+n.MinRangeDays+" days.";if(n.MaxRangeDays&&i>n.MaxRangeDays)return"Choose no more than "+n.MaxRangeDays+" days.";if(n.disabled){for(let a of n.disabled)if(a>=e&&a<=t)return"The range includes an unavailable date."}return""}var ve=["YYYY-MM-DD","MM/DD/YYYY","DD/MM/YYYY"],U=()=>j(new Date),E=e=>String(e||"").split("T")[0],q=e=>String(e||"").split("T")[1]||"";function k(e,t){let n=v(t);return n?new Intl.DateTimeFormat(e.locale,{dateStyle:"full"}).format(n):t}function z(e,t,n=e.fields){e.error.textContent=t,e.error.hidden=!t||e.isOpen,e.dialogError&&(e.dialogError.textContent=e.isOpen?t:"");for(let i of e.fields)c(i.input,"aria-invalid",t&&n.includes(i)?"true":null);let r=!t;(e.valid!==r||e.validationMessage!==t)&&(e.valid=r,e.validationMessage=t,Y(e,"ValidationChanged",r,t))}function K(e,t){return G(t,E(e.options.Min),E(e.options.Max),e.disabledDates)}function Se(e,t,n){if(!V(t))return"Enter a valid time.";let r=e.dateTime?n+"T"+t:t,i=e.options.Min,a=e.options.Max;return i&&r<i?"Choose "+i+" or later.":a&&r>a?"Choose "+a+" or earlier.":""}function pe(e,t,n,r){if(e.range)return!t&&!n&&!e.options.IsRequired?"":ce(t,n,{...e.options,disabled:e.disabledDates});if(!t&&!r)return e.options.IsRequired?"A "+(e.timeOnly?"time":"date")+" is required.":"";if(!e.timeOnly){if(!t)return"Choose a date.";let i=K(e,t);if(i)return i}return e.hasTime?r?Se(e,r,t):"Choose a time.":""}function fe(e){e.timeOnly?e.fields[0].input.value=I(e.value,e.cycle):(e.fields[0].input.value=ie(e.range?e.start:E(e.value),e.format),e.range&&(e.fields[1].input.value=ie(e.end,e.format)),e.dateTime&&(e.fields[1].input.value=I(q(e.value),e.cycle)));let t=e.range?[e.start,e.end].filter(Boolean).join(" to "):e.value;e.typedDirty=!1,e.clearButton.hidden=e.options.ShowClear===!1||!t}function C(e,t=!0){var n;if(e.isOpen){e.isOpen=!1,e.dialog.hidePopover&&e.dialog.matches(":popover-open")&&e.dialog.hidePopover(),e.dialog.hidden=!0,e.error.hidden=!e.validationMessage;for(let{input:r}of e.fields)c(r,"aria-expanded","false");t&&((n=e.anchor)!=null&&n.isConnected)&&!e.anchor.disabled&&e.anchor.focus({preventScroll:!0}),Y(e,"OpenChanged",!1)}}function N(e){if(!e.isOpen||e.dead)return;let t=e.anchor.getBoundingClientRect(),n=window.visualViewport,r=(n==null?void 0:n.offsetLeft)||0,i=(n==null?void 0:n.offsetTop)||0,a=(n==null?void 0:n.width)||document.documentElement.clientWidth,m=(n==null?void 0:n.height)||window.innerHeight,b=6,d=8;if(t.bottom<=i||t.top>=i+m||t.right<=r||t.left>=r+a){C(e,!1);return}let D=e.dialog,p=Math.min(e.timeOnly?300:344,a-d*2);D.dataset.compact=String(m<420),D.style.width=p+"px",D.style.maxHeight="none";let h=Math.max(0,i+m-d-t.bottom-b),g=Math.max(0,t.top-b-i-d),y=D.scrollHeight+2,S=y>h&&g>h,u=Math.max(0,m-d*2);D.style.maxHeight=u+"px";let f=e.fieldRow.getBoundingClientRect();D.style.left=Math.max(r+d,Math.min(f.left+(f.width-p)/2,r+a-d-p))+"px";let M=S?t.top-b-y:t.bottom+b;D.style.top=Math.max(i+d,Math.min(M,i+m-d-Math.min(y,u)))+"px",D.dataset.placement=S?"top":"bottom"}function de(e){(e.timeOnly||e.dateTime&&e.anchor===e.fields[1].input?e.hours:e.calendar.querySelector('[data-date="'+e.focusDate+'"]')||e.monthSelect).focus({preventScroll:!0})}function J(e,t,n,r,i=!1){let a=pe(e,t,n,r);if(z(e,a),a)return e.dialogError.textContent=a,!1;let m=document.activeElement===e.clearButton&&!t&&!n&&!r,b=e.timeOnly?r:e.dateTime?t?t+"T"+r:"":t,d=e.range?e.start!==t||e.end!==n:e.value!==b;return e.range?(e.start=t,e.end=n,e.options.StartDate=t,e.options.EndDate=n):(e.value=b,e.options.Value=b),e.inputSignature=JSON.stringify(e.range?[e.start,e.end]:[e.value]),fe(e),i||C(e),m&&e.fields[0].input.focus({preventScroll:!0}),e.notice.textContent=e.range?t?k(e,t)+" to "+k(e,n):"Date range cleared":b?"Selected "+(e.timeOnly?I(b,e.cycle):k(e,t)+(e.hasTime?" at "+I(r,e.cycle):"")):"Selection cleared",d&&(e.range?Y(e,"Change",t,n):Y(e,"Change",b)),!0}function le(e,t=!1){if(e.options.IsDisabled||e.options.IsReadOnly)return;let n=e.timeOnly?"":re(e.fields[0].input.value,e.format),r=e.range?re(e.fields[1].input.value,e.format):"",i=e.hasTime?be(e.fields[e.timeOnly?0:1].input.value,e.cycle):"";if(n===null||r===null){z(e,"Enter a real date using "+e.format+".");return}if(i===null){z(e,e.cycle===12?"Enter a time such as 9:15 AM.":"Enter a time such as 14:30.");return}J(e,n,r,i,t)&&t&&(e.draftStart=n,e.draftEnd=r,e.draftTime=i,n&&(e.focusDate=n,e.month=n.slice(0,7)),A(e),Q(e),P(e),N(e))}function Me(e){let t=e.range||e.dateTime?2:1;e.fields=[];for(let n=0;n<t;n++){let r=l("div","blu-picker__field"),i=l("label"),a=l("input","blu-picker__input");a.type="text",a.id=e.uid+"-input-"+n,i.htmlFor=a.id,a.autocomplete="off",a.spellcheck=!1,c(a,"role","combobox"),c(a,"aria-haspopup","dialog"),c(a,"aria-expanded","false"),c(a,"aria-autocomplete","none"),c(a,"aria-controls",e.uid+"-dialog"),c(a,"aria-describedby",e.uid+"-hint "+e.uid+"-error "+e.uid+"-keyboard"),a.addEventListener("input",()=>{e.typedDirty=!0}),a.addEventListener("change",()=>le(e,e.isOpen)),a.addEventListener("pointerdown",d=>{d.pointerType==="mouse"&&(e.touchOpen=!1,a.inputMode="text"),(d.pointerType==="touch"||d.pointerType==="pen")&&e.manualInput!==a&&!e.options.IsDisabled&&!e.options.IsReadOnly&&(d.preventDefault(),e.touchOpen=!0,a.inputMode="none",B(e,a,!0))}),a.addEventListener("click",d=>{e.manualInput!==a&&(e.touchOpen?(d.preventDefault(),B(e,a,!0)):B(e,a,!1))}),a.addEventListener("blur",()=>{e.manualInput===a&&(e.manualInput=null)}),a.addEventListener("keydown",d=>{d.ctrlKey||d.metaKey||d.shiftKey||(d.key==="ArrowDown"&&(d.preventDefault(),B(e,a,!0)),d.key==="Enter"&&(d.preventDefault(),!e.isOpen&&!e.typedDirty?B(e,a,!0):le(e)),d.key==="Tab"&&C(e,!1))});let m=l("div","blu-picker__field-control"),b=c(l("span","blu-picker__field-icon"),"aria-hidden","true");b.innerHTML=e.timeOnly||e.dateTime&&n?'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><circle cx="12" cy="12" r="8.5"/><path d="M12 7v5l3 2"/></svg>':'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><rect x="4" y="5" width="16" height="16" rx="3"/><path d="M8 3v4m8-4v4M4 10h16m-11 4h2m3 0h2m-7 3h2"/></svg>',m.append(a,b),r.append(i,m),e.fields.push({field:r,label:i,input:a}),e.fieldRow.append(r)}}function s(e,t,n){let r=l("option","",n);return r.value=String(t),e.append(r),r}function F(e,t,n){let r=l("label","blu-picker__select-field"),i=l("span","blu-picker__select-caption",t),a=l("select","blu-picker__input");return a.id=e.uid+"-"+n,r.append(i,a),{wrap:r,select:a}}function we(e){var n,r;if(e.button!==0)return;let t=(r=(n=e.target).closest)==null?void 0:r.call(n,"button");!t||t.disabled||(e.preventDefault(),t.focus({preventScroll:!0}))}function H(e,t){var i;let n=E(e.options.Min)||"0001-01-01",r=E(e.options.Max)||"9999-12-31";t=t<n?n:t>r?r:t,v(t)&&(e.focusDate=t,e.month=t.slice(0,7),A(e),(i=e.calendar.querySelector('[data-date="'+t+'"]'))==null||i.focus({preventScroll:!0}))}function Ee(e,t,n){if(t.altKey||t.ctrlKey||t.metaKey)return;let r,i={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7};if(t.key in i)r=oe(n,i[t.key]);else if(t.key==="Home"||t.key==="End"){let a=(v(n).getDay()-e.firstDay+7)%7;r=oe(n,t.key==="Home"?-a:6-a)}else(t.key==="PageUp"||t.key==="PageDown")&&(r=ue(n,(t.key==="PageUp"?-1:1)*(t.shiftKey?12:1)));r&&(t.preventDefault(),H(e,r))}function me(e,t){var n;if(!K(e,t)){if(e.dialogError.textContent="",e.focusDate=t,e.range?e.rangeNext==="start"?(e.draftStart=t,e.draftEnd="",e.rangeNext="end"):(t<e.draftStart?(e.draftEnd=e.draftStart,e.draftStart=t):e.draftEnd=t,e.rangeNext="start"):e.draftStart=t,!e.hasTime&&!e.range){J(e,t,"","");return}A(e),(n=e.calendar.querySelector('[data-date="'+t+'"]'))==null||n.focus({preventScroll:!0}),P(e)}}function P(e){let t=e.range?e.draftStart?k(e,e.draftStart)+(e.draftEnd?" to "+k(e,e.draftEnd):" \u2014 choose an end date"):"Choose a start date":e.hasTime?(e.draftStart?k(e,e.draftStart)+" \xB7 ":"")+I(e.draftTime,e.cycle):"",n=r=>v(r)?new Intl.DateTimeFormat(e.locale,{month:"short",day:"numeric"}).format(v(r)):"";e.selectionSpeech.textContent=t,e.selectionVisual.textContent=e.range?e.draftStart?n(e.draftStart)+(e.draftEnd?" \u2013 "+n(e.draftEnd):" \u2014 choose end"):"Choose start date":e.dateTime?n(e.draftStart)+" \xB7 "+I(e.draftTime,e.cycle):e.timeOnly?I(e.draftTime,e.cycle):"",e.selection.hidden=!t}function A(e){let t=v(e.month+"-01");if(!t)return;let n=t.getFullYear(),r=t.getMonth(),i=Number(E(e.options.Min).slice(0,4))||1,a=Number(E(e.options.Max).slice(0,4))||9999;e.monthSelect.value=String(r),e.yearInput.value=String(n),c(e.yearInput,"aria-invalid",null),e.yearInput.min=String(i),e.yearInput.max=String(a);let m=new Intl.DateTimeFormat(e.locale,{month:"long",year:"numeric"}).format(t);e.caption.textContent!==m&&(e.caption.textContent=m);let b=(t.getDay()-e.firstDay+7)%7,d=new Date(n,r+1,0).getDate();if(e.focusDate.startsWith(e.month)||(e.focusDate=e.month+"-01"),!e.dayCells){let h=l("tbody");e.dayCells=[];for(let g=0;g<6;g++){let y=l("tr");for(let S=0;S<7;S++){let u=l("td"),f=O("",()=>me(e,f.dataset.date),"blu-picker__day");f.addEventListener("keydown",M=>Ee(e,M,f.dataset.date)),f.addEventListener("focus",()=>{e.focusDate=f.dataset.date;for(let M of e.dayCells)M.button.tabIndex=M.button===f?0:-1}),u.append(f),y.append(u),e.dayCells.push({cell:u,button:f})}h.append(y)}e.calendar.append(h)}for(let h=0;h<e.dayCells.length;h++){let{cell:g,button:y}=e.dayCells[h],S=h-b+1,u=S>0&&S<=d;if(y.hidden=!u,!u){y.tabIndex=-1,delete y.dataset.date,c(g,"aria-selected",null);continue}let f=e.month+"-"+w(S),M=f===e.draftStart||e.range&&f===e.draftEnd,R=e.range&&e.draftStart&&e.draftEnd&&f>e.draftStart&&f<e.draftEnd,o=K(e,f),x=!!(M||R),L=e.range&&M?f===e.draftStart?e.draftEnd?", range starts here; "+k(e,e.draftStart)+" to "+k(e,e.draftEnd):", start date; choose an end date":", range ends here; "+k(e,e.draftStart)+" to "+k(e,e.draftEnd):"",X=k(e,f)+(x?", selected":"")+L+(o?", unavailable":"");y.dataset.date=f,y.tabIndex=f===e.focusDate?0:-1,y.textContent!==String(S)&&(y.textContent=String(S)),y.getAttribute("aria-label")!==X&&c(y,"aria-label",X),c(g,"aria-selected",String(x)),c(y,"aria-disabled",o?"true":null),c(y,"aria-current",f===U()?"date":null),y.dataset.selected=String(M),y.dataset.between=String(!!R)}for(let h=0;h<6;h++)e.dayCells[h*7].cell.parentElement.hidden=h*7-b+1>d;let D=E(e.options.Min),p=E(e.options.Max);e.prev.disabled=!!D&&e.month<=D.slice(0,7)||n===1&&r===0,e.next.disabled=!!p&&e.month>=p.slice(0,7)||n===9999&&r===11,e.todayButton.hidden=e.timeOnly||e.options.ShowToday===!1,e.todayButton.disabled=!!K(e,U())}function Q(e){if(!e.hasTime)return;let[t,n]=(e.draftTime||"09:00").split(":").map(Number);e.hours.replaceChildren(),e.minutes.replaceChildren();for(let r=0;r<(e.cycle===12?12:24);r++)s(e.hours,e.cycle===12?r+1:r,w(e.cycle===12?r+1:r));for(let r=0;r<60;r+=e.step)s(e.minutes,r,w(r));n%e.step&&s(e.minutes,n,w(n)+" (entered)"),e.hours.value=String(e.cycle===12?t%12||12:t),e.minutes.value=String(n),e.period.value=t<12?"AM":"PM",e.periodField.hidden=e.cycle!==12,P(e)}function B(e,t=e.fields[0].input,n=!0){if(e.options.IsDisabled||e.options.IsReadOnly)return;if(e.anchor=t,e.manualInput=null,e.typeButton.hidden=!e.touchOpen,e.isOpen){e.range&&(e.rangeNext=t===e.fields[1].input&&e.draftStart?"end":"start"),N(e),n&&de(e);return}e.draftStart=e.timeOnly?"":e.range?e.start:E(e.value),e.draftEnd=e.end||"",e.draftTime=e.timeOnly?e.value:q(e.value),e.hasTime&&!V(e.draftTime)&&(e.draftTime="09:00"),e.rangeNext="start",e.range&&t===e.fields[1].input&&e.draftStart&&(e.rangeNext="end");let r=e.range&&e.rangeNext==="end"?e.draftEnd:e.draftStart;e.focusDate=v(r)?r:v(e.draftStart)?e.draftStart:U();let i=E(e.options.Min),a=E(e.options.Max);e.timeOnly||(i&&e.focusDate<i&&(e.focusDate=i),a&&e.focusDate>a&&(e.focusDate=a)),e.month=e.focusDate.slice(0,7),e.dialogError.textContent="",A(e),Q(e),P(e),e.isOpen=!0,e.dialog.hidden=!1,e.dialog.showPopover&&e.dialog.showPopover(),e.dialog.scrollTop=0;for(let{input:m}of e.fields)c(m,"aria-expanded","true");N(e),n&&e.isOpen&&de(e),Y(e,"OpenChanged",!0)}function xe(e){var y,S;e.range=e.kind==="DateRangePicker",e.timeOnly=e.kind==="TimePicker",e.dateTime=e.kind==="DateTimePicker",e.hasTime=e.timeOnly||e.dateTime,e.root.className="blu-picker",e.fieldRow=l("div","blu-picker__fields"),e.error=c(l("div","blu-picker__error"),"role","alert"),e.error.id=e.uid+"-error",e.error.hidden=!0,e.hint=l("div","blu-picker__hint"),e.hint.id=e.uid+"-hint",e.actions=l("div","blu-picker__actions"),e.clearButton=O("Clear",()=>J(e,"","","")),e.actions.append(e.clearButton),e.root.append(e.fieldRow,e.hint,e.actions,e.error),Me(e);let t=l("span","blu-advanced-sr","Click the field or press Down Arrow to browse. Escape closes the popup.");t.id=e.uid+"-keyboard",e.root.append(t),e.dialog=l("div","blu-picker__dialog blu-picker__popup"),e.dialog.id=e.uid+"-dialog",e.dialog.hidden=!0,c(e.dialog,"role","dialog"),c(e.dialog,"aria-labelledby",e.uid+"-title"),c(e.dialog,"aria-modal","false"),e.dialog.showPopover&&c(e.dialog,"popover","manual"),e.root.append(e.dialog),e.dialog.addEventListener("mousedown",we),e.title=l("h2","blu-advanced-sr"),e.title.id=e.uid+"-title",e.dialog.append(e.title),e.presets=l("div","blu-picker__presets"),e.dialog.append(e.presets),e.calendarArea=l("div","blu-picker__calendar-area"),e.calendarArea.hidden=e.timeOnly,e.dialog.append(e.calendarArea);let n=l("div","blu-picker__calendar-nav"),r=F(e,"Month","month");e.monthSelect=r.select;let i=l("label","blu-picker__select-field");i.append(l("span","blu-picker__select-caption","Year")),e.yearInput=l("input","blu-picker__input"),e.yearInput.type="number",e.yearInput.step="1",i.append(e.yearInput);let a=u=>{let f=ue(e.focusDate,u);H(e,f)};e.prev=O("\u2039",()=>a(-1)),c(e.prev,"aria-label","Previous month"),e.next=O("\u203A",()=>a(1)),c(e.next,"aria-label","Next month"),n.append(e.prev,r.wrap,i,e.next),e.calendarArea.append(n),e.monthSelect.addEventListener("change",()=>H(e,String(e.yearInput.value).padStart(4,"0")+"-"+w(+e.monthSelect.value+1)+"-01")),e.yearInput.addEventListener("change",()=>{let u=Number(e.yearInput.value);if(!Number.isInteger(u)||u<+e.yearInput.min||u>+e.yearInput.max){e.dialogError.textContent="Enter a year from "+e.yearInput.min+" to "+e.yearInput.max+".",c(e.yearInput,"aria-invalid","true");return}c(e.yearInput,"aria-invalid",null),e.dialogError.textContent="",H(e,String(u).padStart(4,"0")+"-"+w(+e.monthSelect.value+1)+"-01")}),e.caption=c(l("h3","blu-picker__caption blu-advanced-sr"),"aria-live","polite"),e.caption.id=e.uid+"-caption",e.calendarArea.append(e.caption),e.calendar=c(l("table","blu-picker__calendar"),"role","grid"),c(e.calendar,"aria-labelledby",e.caption.id),e.range&&c(e.calendar,"aria-multiselectable","true"),e.calendarArea.append(e.calendar),e.todayButton=O("Today",()=>{e.focusDate=U(),e.month=e.focusDate.slice(0,7),me(e,e.focusDate)}),e.calendarArea.append(l("p","blu-advanced-sr","Arrow keys move by day or week. Home/End move within the week. Page Up/Down change month; hold Shift to change year.")),e.timeArea=l("div","blu-picker__time-area"),e.timeArea.hidden=!e.hasTime,e.dialog.append(e.timeArea);let m=F(e,"Hour","hour"),b=F(e,"Minute","minute"),d=F(e,"AM / PM","period");e.hours=m.select,e.minutes=b.select,e.period=d.select,e.periodField=d.wrap,s(e.period,"AM","AM"),s(e.period,"PM","PM"),e.timeArea.append(m.wrap,b.wrap,d.wrap);for(let u of[e.hours,e.minutes,e.period])u.addEventListener("change",()=>{let f=+e.hours.value;e.cycle===12&&(f=f%12+(e.period.value==="PM"?12:0)),e.draftTime=w(f)+":"+w(+e.minutes.value),e.dialogError.textContent="",P(e)});e.selection=c(l("div","blu-picker__selection"),"role","status"),c(e.selection,"aria-atomic","true"),e.selectionSpeech=l("span","blu-advanced-sr"),e.selectionVisual=c(l("span"),"aria-hidden","true"),e.selection.append(e.selectionSpeech,e.selectionVisual),e.dialogError=c(l("div","blu-picker__error"),"role","alert"),e.dialogError.id=e.uid+"-dialog-error",c(e.yearInput,"aria-describedby",e.dialogError.id),e.apply=O("Apply",()=>J(e,e.draftStart,e.draftEnd,e.draftTime),"blu-picker__button blu-picker__button--primary"),e.apply.hidden=!e.range&&!e.hasTime,e.typeButton=O("Type",()=>{let u=e.anchor;C(e,!1),e.manualInput=u,u.inputMode="text",u.focus({preventScroll:!0})}),c(e.typeButton,"aria-label","Type a date or time"),e.typeButton.hidden=!0;let D=l("div","blu-picker__popup-actions");D.append(e.typeButton,e.todayButton,O("Cancel",()=>C(e)),e.apply),e.dialog.append(e.selection,e.dialogError,D);let p=u=>{e.isOpen&&!e.root.contains(u.target)&&C(e,!1)},h=u=>{e.isOpen&&u.key==="Escape"&&!u.defaultPrevented&&(u.preventDefault(),u.stopPropagation(),C(e))},g=u=>{!e.isOpen||e.dialog.contains(u==null?void 0:u.target)||(cancelAnimationFrame(e.positionFrame),e.positionFrame=requestAnimationFrame(()=>N(e)))};document.addEventListener("pointerdown",p,!0),document.addEventListener("focusin",p),e.root.addEventListener("keydown",h),window.addEventListener("resize",g),document.addEventListener("scroll",g,!0),(y=window.visualViewport)==null||y.addEventListener("resize",g),(S=window.visualViewport)==null||S.addEventListener("scroll",g),window.ResizeObserver&&(e.popupObserver=new ResizeObserver(()=>g()),e.popupObserver.observe(e.fieldRow),e.popupObserver.observe(e.dialog)),e.dispose=()=>{var u,f,M;C(e,!1),cancelAnimationFrame(e.positionFrame),(u=e.popupObserver)==null||u.disconnect(),document.removeEventListener("pointerdown",p,!0),document.removeEventListener("focusin",p),e.root.removeEventListener("keydown",h),window.removeEventListener("resize",g),document.removeEventListener("scroll",g,!0),(f=window.visualViewport)==null||f.removeEventListener("resize",g),(M=window.visualViewport)==null||M.removeEventListener("scroll",g)}}function ke(e){var h,g,y,S,u,f,M,R;let t=JSON.stringify(e.options);if(e.renderSignature===t)return;let n=e.isOpen?document.activeElement:null,r=(h=n==null?void 0:n.dataset)==null?void 0:h.date,i=n==null?void 0:n.id,a=e.options;if(e.label=String(a.Label||{DatePicker:"Date",TimePicker:"Time",DateTimePicker:"Date and time",DateRangePicker:"Date range"}[e.kind]),e.locale=String(a.Locale||"en-US"),new Intl.DateTimeFormat(e.locale),e.format=ve.includes(a.DateFormat)?a.DateFormat:"YYYY-MM-DD",e.cycle=Number(a.HourCycle)===12?12:24,e.step=Number((g=a.MinuteStep)!=null?g:15),!Number.isInteger(e.step)||e.step<1||e.step>60)throw Error("MinuteStep must be a whole number from 1 to 60.");if(e.firstDay=Number((y=a.FirstDayOfWeek)!=null?y:1),!Number.isInteger(e.firstDay)||e.firstDay<0||e.firstDay>6)throw Error("FirstDayOfWeek must be 0\u20136.");e.disabledDates=new Set(ae((S=a.DisabledDatesJson)!=null?S:a.DisabledDates,"DisabledDates").map(o=>typeof o=="string"?o:o.Date));for(let o of e.disabledDates)if(!v(o))throw Error("DisabledDates must contain ISO calendar dates.");for(let o of["Min","Max"])if(a[o]&&!(e.timeOnly?V(a[o]):v(E(a[o]))&&(!e.dateTime||V(q(a[o])))))throw Error(o+" must use the documented ISO value format.");if(a.Min&&a.Max&&a.Min>a.Max)throw Error("Min must be on or before Max.");for(let o of["MinRangeDays","MaxRangeDays"])if(a[o]!==void 0&&(!Number.isInteger(Number(a[o]))||Number(a[o])<0))throw Error(o+" must be a non-negative whole number.");if(a.MinRangeDays&&a.MaxRangeDays&&Number(a.MinRangeDays)>Number(a.MaxRangeDays))throw Error("MinRangeDays must not exceed MaxRangeDays.");let m=e.range?[String(a.StartDate||""),String(a.EndDate||"")]:[String(a.Value||"")],b=JSON.stringify(m),d=b!==e.inputSignature;if(e.inputSignature=b,e.range?(e.start=m[0],e.end=m[1]):e.value=m[0],e.fields.forEach((o,x)=>{o.label.textContent=e.range?e.label+(x?" \u2014 end":" \u2014 start"):e.dateTime?e.label+(x?" \u2014 time":" \u2014 date"):e.label,o.input.disabled=!!a.IsDisabled,o.input.readOnly=!!a.IsReadOnly,o.input.required=!!a.IsRequired,o.input.placeholder=String(a.Placeholder||(e.timeOnly||e.dateTime&&x?e.cycle===12?"9:00 AM":"09:00":e.format))}),e.hint.textContent=e.timeOnly?(e.cycle===12?"h:mm AM/PM":"HH:mm")+" \xB7 local time":e.format+(e.dateTime?" \xB7 "+(e.cycle===12?"h:mm AM/PM":"HH:mm")+" local time":""),e.title.textContent=e.label,e.clearButton.disabled=!!a.IsDisabled||!!a.IsReadOnly,d||e.previousFormat!==e.format||e.previousCycle!==e.cycle){fe(e);let o=m.some(Boolean);z(e,o?pe(e,e.timeOnly?"":e.range?e.start:E(e.value),e.end||"",e.timeOnly?e.value:q(e.value)):""),e.previousFormat=e.format,e.previousCycle=e.cycle}e.monthSelect.replaceChildren();for(let o=0;o<12;o++)s(e.monthSelect,o,new Intl.DateTimeFormat(e.locale,{month:"long"}).format(new Date(2024,o,1)));(u=e.calendar.tHead)==null||u.remove();let D=l("thead"),p=l("tr");for(let o=0;o<7;o++){let x=new Date(2024,0,7+(o+e.firstDay)%7),L=l("th","",new Intl.DateTimeFormat(e.locale,{weekday:"short"}).format(x));L.scope="col",L.abbr=new Intl.DateTimeFormat(e.locale,{weekday:"long"}).format(x),p.append(L)}if(D.append(p),e.calendar.prepend(D),e.presets.replaceChildren(),e.presets.hidden=!e.range,e.range)for(let o of ae((f=a.PresetsJson)!=null?f:a.Presets,"Presets")){if(!o.Label||!v(o.StartDate)||!v(o.EndDate))throw Error("Presets need Label, StartDate and EndDate.");let x=O(o.Label,()=>{e.draftStart=o.StartDate,e.draftEnd=o.EndDate,e.rangeNext="start",e.focusDate=e.draftStart,e.month=e.focusDate.slice(0,7),e.dialogError.textContent="",A(e),P(e)});x.disabled=!!ce(o.StartDate,o.EndDate,{...a,disabled:e.disabledDates}),e.presets.append(x)}e.isOpen&&(a.IsDisabled||a.IsReadOnly||d?C(e):(A(e),Q(e),r?(M=e.calendar.querySelector('[data-date="'+r+'"]'))==null||M.focus({preventScroll:!0}):i&&((R=document.getElementById(i))==null||R.focus({preventScroll:!0})),N(e))),e.renderSignature=t}var he=()=>ye("DatePicker",xe,ke);he();})();
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var T=typeof window=="undefined"?globalThis:window,Z="__bluuiCommunityModulesV1",ee=T[Z]||(T[Z]={families:Object.create(null)}),W=T.BluUICommunityRuntime&&!Object.isFrozen(T.BluUICommunityRuntime)?T.BluUICommunityRuntime:Object.assign({},T.BluUICommunityRuntime||{});T.BluUICommunityRuntime=W;function te(e,t){return ee.families[e]||(ee.families[e]=t())}function ne(e,t){return W[e]||(W[e]=t())}var _=te("advanced",()=>({instances:new Map,serial:0})),ge=()=>`blu-advanced-${++_.serial}`;function l(e,t,n){let r=document.createElement(e);return t&&(r.className=t),n!==void 0&&(r.textContent=String(n)),r}function c(e,t,n){return n==null?e.removeAttribute(t):e.setAttribute(t,String(n)),e}function O(e,t,n="blu-picker__button"){let r=l("button",n,e);return r.type="button",r.addEventListener("click",t),r}function Y(e,t,...n){var r,i;if(!e.dead)try{Promise.resolve((i=(r=e.events)[t])==null?void 0:i.call(r,...n)).catch(a=>$(e,a))}catch(a){$(e,a)}}function $(e,t){if(e.dead)return;let n=(t==null?void 0:t.message)||String(t);e.notice.textContent=n,e.lastError!==n&&(e.lastError=n,Y(e,"Error",n))}function ae(e,t){let n=typeof e=="string"?JSON.parse(e||"[]"):e||[];if(!Array.isArray(n))throw Error(t+" must be a list.");return n}function ye(e,t,n){let r=i=>{var m;let a=_.instances.get(i);!a||a.kind!==e||(a.dead=!0,(m=a.dispose)==null||m.call(a),a.root.remove(),a.notice.remove(),a.host._bluAdvancedOwner===i&&delete a.host._bluAdvancedOwner,_.instances.delete(i))};return ne(e,()=>({sync(i,a={},m={},b){let d=document.getElementById(i);if(!d)return e+" host was not found.";let D=b||i,p=_.instances.get(D);p&&(p.host!==d||p.kind!==e)&&(p.destroy(p.key),p=null);let h=_.instances.get(d._bluAdvancedOwner);if(h&&h!==p&&h.destroy(h.key),!p){p={key:D,host:d,kind:e,uid:ge(),options:a,events:m,dead:!1,destroy:r},p.root=l("div"),p.notice=c(l("div","blu-advanced-sr"),"role","status"),c(p.notice,"aria-atomic","true"),d.append(p.root,p.notice),_.instances.set(D,p),d._bluAdvancedOwner=D;try{t(p)}catch(g){throw r(D),g}}p.options=a,p.events=m;try{return n(p),d.dataset.bluRuntimeReady="true",""}catch(g){return $(p,g),g.message||String(g)}},destroy:r}))}var w=e=>String(e).padStart(2,"0");function j(e){return String(e.getFullYear()).padStart(4,"0")+"-"+w(e.getMonth()+1)+"-"+w(e.getDate())}function v(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e));if(!t||+t[1]<1||+t[1]>9999)return null;let n=new Date(2e3,+t[2]-1,+t[3],12);return n.setFullYear(+t[1]),j(n)===e?n:null}function V(e){let t=/^(\d{2}):(\d{2})$/.exec(String(e));return t&&+t[1]<24&&+t[2]<60?t[1]+":"+t[2]:null}function re(e,t="YYYY-MM-DD"){if(e=String(e).trim(),!e)return"";let n=e;if(t!=="YYYY-MM-DD"){let r=/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.exec(e);if(!r)return null;n=r[3]+"-"+w(+(t==="DD/MM/YYYY"?r[2]:r[1]))+"-"+w(+(t==="DD/MM/YYYY"?r[1]:r[2]))}return v(n)?n:null}function ie(e,t="YYYY-MM-DD"){if(!e)return"";let n=e.split("-");return t==="MM/DD/YYYY"?n[1]+"/"+n[2]+"/"+n[0]:t==="DD/MM/YYYY"?n[2]+"/"+n[1]+"/"+n[0]:e}function be(e,t=24){if(e=String(e).trim(),!e)return"";let n=/^(\d{1,2}):(\d{2})(?:\s*(AM|PM))?$/i.exec(e);return!n||+n[2]>59||(t===12?!n[3]||+n[1]<1||+n[1]>12:n[3]||+n[1]>23)?null:w(n[3]?+n[1]%12+(n[3].toUpperCase()==="PM"?12:0):+n[1])+":"+n[2]}function I(e,t=24){if(!e)return"";let[n,r]=e.split(":").map(Number);return t===12?(n%12||12)+":"+w(r)+" "+(n<12?"AM":"PM"):w(n)+":"+w(r)}function oe(e,t){let n=v(e);return n.setDate(n.getDate()+t),j(n)}function ue(e,t){let n=v(e),r=n.getDate();return n.setDate(1),n.setMonth(n.getMonth()+t),n.setDate(Math.min(r,new Date(n.getFullYear(),n.getMonth()+1,0).getDate())),j(n)}function De(e,t){let n=v(e),r=v(t);return Math.round((r.getTime()-n.getTime())/864e5)}function G(e,t,n,r){return v(e)?t&&e<t?"Choose "+t+" or later.":n&&e>n?"Choose "+n+" or earlier.":r!=null&&r.has(e)?"This date is unavailable.":"":"Enter a real calendar date."}function ce(e,t,n={}){if(!e||!t)return"Choose both a start date and an end date.";let r=G(e,n.Min,n.Max,n.disabled)||G(t,n.Min,n.Max,n.disabled);if(r)return r;if(t<e)return"End date must be on or after start date.";let i=De(e,t)+1;if(n.MinRangeDays&&i<n.MinRangeDays)return"Choose at least "+n.MinRangeDays+" days.";if(n.MaxRangeDays&&i>n.MaxRangeDays)return"Choose no more than "+n.MaxRangeDays+" days.";if(n.disabled){for(let a of n.disabled)if(a>=e&&a<=t)return"The range includes an unavailable date."}return""}var ve=["YYYY-MM-DD","MM/DD/YYYY","DD/MM/YYYY"],U=()=>j(new Date),E=e=>String(e||"").split("T")[0],q=e=>String(e||"").split("T")[1]||"";function k(e,t){let n=v(t);return n?new Intl.DateTimeFormat(e.locale,{dateStyle:"full"}).format(n):t}function z(e,t,n=e.fields){e.error.textContent=t,e.error.hidden=!t||e.isOpen,e.dialogError&&(e.dialogError.textContent=e.isOpen?t:"");for(let i of e.fields)c(i.input,"aria-invalid",t&&n.includes(i)?"true":null);let r=!t;(e.valid!==r||e.validationMessage!==t)&&(e.valid=r,e.validationMessage=t,Y(e,"ValidationChanged",r,t))}function K(e,t){return G(t,E(e.options.Min),E(e.options.Max),e.disabledDates)}function Se(e,t,n){if(!V(t))return"Enter a valid time.";let r=e.dateTime?n+"T"+t:t,i=e.options.Min,a=e.options.Max;return i&&r<i?"Choose "+i+" or later.":a&&r>a?"Choose "+a+" or earlier.":""}function pe(e,t,n,r){if(e.range)return!t&&!n&&!e.options.IsRequired?"":ce(t,n,{...e.options,disabled:e.disabledDates});if(!t&&!r)return e.options.IsRequired?"A "+(e.timeOnly?"time":"date")+" is required.":"";if(!e.timeOnly){if(!t)return"Choose a date.";let i=K(e,t);if(i)return i}return e.hasTime?r?Se(e,r,t):"Choose a time.":""}function fe(e){e.timeOnly?e.fields[0].input.value=I(e.value,e.cycle):(e.fields[0].input.value=ie(e.range?e.start:E(e.value),e.format),e.range&&(e.fields[1].input.value=ie(e.end,e.format)),e.dateTime&&(e.fields[1].input.value=I(q(e.value),e.cycle)));let t=e.range?[e.start,e.end].filter(Boolean).join(" to "):e.value;e.typedDirty=!1,e.clearButton.hidden=e.options.ShowClear===!1||!t}function C(e,t=!0){var n;if(e.isOpen){e.isOpen=!1,e.dialog.hidePopover&&e.dialog.matches(":popover-open")&&e.dialog.hidePopover(),e.dialog.hidden=!0,e.error.hidden=!e.validationMessage;for(let{input:r}of e.fields)c(r,"aria-expanded","false");t&&((n=e.anchor)!=null&&n.isConnected)&&!e.anchor.disabled&&e.anchor.focus({preventScroll:!0}),Y(e,"OpenChanged",!1)}}function N(e){if(!e.isOpen||e.dead)return;let t=e.anchor.getBoundingClientRect(),n=window.visualViewport,r=(n==null?void 0:n.offsetLeft)||0,i=(n==null?void 0:n.offsetTop)||0,a=(n==null?void 0:n.width)||document.documentElement.clientWidth,m=(n==null?void 0:n.height)||window.innerHeight,b=6,d=8;if(t.bottom<=i||t.top>=i+m||t.right<=r||t.left>=r+a){C(e,!1);return}let D=e.dialog,p=Math.min(e.timeOnly?300:344,a-d*2);D.dataset.compact=String(m<420),D.style.width=p+"px",D.style.maxHeight="none";let h=Math.max(0,i+m-d-t.bottom-b),g=Math.max(0,t.top-b-i-d),y=D.scrollHeight+2,S=y>h&&g>h,u=Math.max(0,m-d*2);D.style.maxHeight=u+"px";let f=e.fieldRow.getBoundingClientRect();D.style.left=Math.max(r+d,Math.min(f.left+(f.width-p)/2,r+a-d-p))+"px";let M=S?t.top-b-y:t.bottom+b;D.style.top=Math.max(i+d,Math.min(M,i+m-d-Math.min(y,u)))+"px",D.dataset.placement=S?"top":"bottom"}function de(e){(e.timeOnly||e.dateTime&&e.anchor===e.fields[1].input?e.hours:e.calendar.querySelector('[data-date="'+e.focusDate+'"]')||e.monthSelect).focus({preventScroll:!0})}function J(e,t,n,r,i=!1){let a=pe(e,t,n,r);if(z(e,a),a)return e.dialogError.textContent=a,!1;let m=document.activeElement===e.clearButton&&!t&&!n&&!r,b=e.timeOnly?r:e.dateTime?t?t+"T"+r:"":t,d=e.range?e.start!==t||e.end!==n:e.value!==b;return e.range?(e.start=t,e.end=n,e.options.StartDate=t,e.options.EndDate=n):(e.value=b,e.options.Value=b),e.inputSignature=JSON.stringify(e.range?[e.start,e.end]:[e.value]),fe(e),i||C(e),m&&e.fields[0].input.focus({preventScroll:!0}),e.notice.textContent=e.range?t?k(e,t)+" to "+k(e,n):"Date range cleared":b?"Selected "+(e.timeOnly?I(b,e.cycle):k(e,t)+(e.hasTime?" at "+I(r,e.cycle):"")):"Selection cleared",d&&(e.range?Y(e,"Change",t,n):Y(e,"Change",b)),!0}function le(e,t=!1){if(e.options.IsDisabled||e.options.IsReadOnly)return;let n=e.timeOnly?"":re(e.fields[0].input.value,e.format),r=e.range?re(e.fields[1].input.value,e.format):"",i=e.hasTime?be(e.fields[e.timeOnly?0:1].input.value,e.cycle):"";if(n===null||r===null){z(e,"Enter a real date using "+e.format+".");return}if(i===null){z(e,e.cycle===12?"Enter a time such as 9:15 AM.":"Enter a time such as 14:30.");return}J(e,n,r,i,t)&&t&&(e.draftStart=n,e.draftEnd=r,e.draftTime=i,n&&(e.focusDate=n,e.month=n.slice(0,7)),R(e),Q(e),A(e),N(e))}function Me(e){let t=e.range||e.dateTime?2:1;e.fields=[];for(let n=0;n<t;n++){let r=l("div","blu-picker__field"),i=l("label"),a=l("input","blu-picker__input");a.type="text",a.id=e.uid+"-input-"+n,i.htmlFor=a.id,a.autocomplete="off",a.spellcheck=!1,c(a,"role","combobox"),c(a,"aria-haspopup","dialog"),c(a,"aria-expanded","false"),c(a,"aria-autocomplete","none"),c(a,"aria-controls",e.uid+"-dialog"),c(a,"aria-describedby",e.uid+"-hint "+e.uid+"-error "+e.uid+"-keyboard"),a.addEventListener("input",()=>{e.typedDirty=!0}),a.addEventListener("change",()=>le(e,e.isOpen)),a.addEventListener("pointerdown",d=>{d.pointerType==="mouse"&&(e.touchOpen=!1,a.inputMode="text"),(d.pointerType==="touch"||d.pointerType==="pen")&&e.manualInput!==a&&!e.options.IsDisabled&&!e.options.IsReadOnly&&(d.preventDefault(),e.touchOpen=!0,a.inputMode="none",B(e,a,!0))}),a.addEventListener("click",d=>{e.manualInput!==a&&(e.touchOpen?(d.preventDefault(),B(e,a,!0)):B(e,a,!1))}),a.addEventListener("blur",()=>{e.manualInput===a&&(e.manualInput=null)}),a.addEventListener("keydown",d=>{d.ctrlKey||d.metaKey||d.shiftKey||(d.key==="ArrowDown"&&(d.preventDefault(),B(e,a,!0)),d.key==="Enter"&&(d.preventDefault(),!e.isOpen&&!e.typedDirty?B(e,a,!0):le(e)),d.key==="Tab"&&C(e,!1))});let m=l("div","blu-picker__field-control"),b=c(l("span","blu-picker__field-icon"),"aria-hidden","true");b.innerHTML=e.timeOnly||e.dateTime&&n?'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><circle cx="12" cy="12" r="8.5"/><path d="M12 7v5l3 2"/></svg>':'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><rect x="4" y="5" width="16" height="16" rx="3"/><path d="M8 3v4m8-4v4M4 10h16m-11 4h2m3 0h2m-7 3h2"/></svg>',m.append(a,b),r.append(i,m),e.fields.push({field:r,label:i,input:a}),e.fieldRow.append(r)}}function s(e,t,n){let r=l("option","",n);return r.value=String(t),e.append(r),r}function F(e,t,n){let r=l("label","blu-picker__select-field"),i=l("span","blu-picker__select-caption",t),a=l("select","blu-picker__input");return a.id=e.uid+"-"+n,r.append(i,a),{wrap:r,select:a}}function we(e){var n,r;if(e.button!==0)return;let t=(r=(n=e.target).closest)==null?void 0:r.call(n,"button");!t||t.disabled||(e.preventDefault(),t.focus({preventScroll:!0}))}function H(e,t){var i;let n=E(e.options.Min)||"0001-01-01",r=E(e.options.Max)||"9999-12-31";t=t<n?n:t>r?r:t,v(t)&&(e.focusDate=t,e.month=t.slice(0,7),R(e),(i=e.calendar.querySelector('[data-date="'+t+'"]'))==null||i.focus({preventScroll:!0}))}function Ee(e,t,n){if(t.altKey||t.ctrlKey||t.metaKey)return;let r,i={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7};if(t.key in i)r=oe(n,i[t.key]);else if(t.key==="Home"||t.key==="End"){let a=(v(n).getDay()-e.firstDay+7)%7;r=oe(n,t.key==="Home"?-a:6-a)}else(t.key==="PageUp"||t.key==="PageDown")&&(r=ue(n,(t.key==="PageUp"?-1:1)*(t.shiftKey?12:1)));r&&(t.preventDefault(),H(e,r))}function me(e,t){var n;if(!K(e,t)){if(e.dialogError.textContent="",e.focusDate=t,e.range?e.rangeNext==="start"?(e.draftStart=t,e.draftEnd="",e.rangeNext="end"):(t<e.draftStart?(e.draftEnd=e.draftStart,e.draftStart=t):e.draftEnd=t,e.rangeNext="start"):e.draftStart=t,!e.hasTime&&!e.range){J(e,t,"","");return}R(e),(n=e.calendar.querySelector('[data-date="'+t+'"]'))==null||n.focus({preventScroll:!0}),A(e)}}function A(e){let t=e.range?e.draftStart?k(e,e.draftStart)+(e.draftEnd?" to "+k(e,e.draftEnd):" \u2014 choose an end date"):"Choose a start date":e.hasTime?(e.draftStart?k(e,e.draftStart)+" \xB7 ":"")+I(e.draftTime,e.cycle):"",n=r=>v(r)?new Intl.DateTimeFormat(e.locale,{month:"short",day:"numeric"}).format(v(r)):"";e.selectionSpeech.textContent=t,e.selectionVisual.textContent=e.range?e.draftStart?n(e.draftStart)+(e.draftEnd?" \u2013 "+n(e.draftEnd):" \u2014 choose end"):"Choose start date":e.dateTime?n(e.draftStart)+" \xB7 "+I(e.draftTime,e.cycle):e.timeOnly?I(e.draftTime,e.cycle):"",e.selection.hidden=!t}function R(e){let t=v(e.month+"-01");if(!t)return;let n=t.getFullYear(),r=t.getMonth(),i=Number(E(e.options.Min).slice(0,4))||1,a=Number(E(e.options.Max).slice(0,4))||9999;e.monthSelect.value=String(r),e.yearInput.value=String(n),c(e.yearInput,"aria-invalid",null),e.yearInput.min=String(i),e.yearInput.max=String(a);let m=new Intl.DateTimeFormat(e.locale,{month:"long",year:"numeric"}).format(t);e.caption.textContent!==m&&(e.caption.textContent=m);let b=(t.getDay()-e.firstDay+7)%7,d=new Date(n,r+1,0).getDate();if(e.focusDate.startsWith(e.month)||(e.focusDate=e.month+"-01"),!e.dayCells){let h=l("tbody");e.dayCells=[];for(let g=0;g<6;g++){let y=l("tr");for(let S=0;S<7;S++){let u=l("td"),f=O("",()=>me(e,f.dataset.date),"blu-picker__day");f.addEventListener("keydown",M=>Ee(e,M,f.dataset.date)),f.addEventListener("focus",()=>{e.focusDate=f.dataset.date;for(let M of e.dayCells)M.button.tabIndex=M.button===f?0:-1}),u.append(f),y.append(u),e.dayCells.push({cell:u,button:f})}h.append(y)}e.calendar.append(h)}for(let h=0;h<e.dayCells.length;h++){let{cell:g,button:y}=e.dayCells[h],S=h-b+1,u=S>0&&S<=d;if(y.hidden=!u,!u){y.tabIndex=-1,delete y.dataset.date,c(g,"aria-selected",null);continue}let f=e.month+"-"+w(S),M=f===e.draftStart||e.range&&f===e.draftEnd,P=e.range&&e.draftStart&&e.draftEnd&&f>e.draftStart&&f<e.draftEnd,o=K(e,f),x=!!(M||P),L=e.range&&M?f===e.draftStart?e.draftEnd?", range starts here; "+k(e,e.draftStart)+" to "+k(e,e.draftEnd):", start date; choose an end date":", range ends here; "+k(e,e.draftStart)+" to "+k(e,e.draftEnd):"",X=k(e,f)+(x?", selected":"")+L+(o?", unavailable":"");y.dataset.date=f,y.tabIndex=f===e.focusDate?0:-1,y.textContent!==String(S)&&(y.textContent=String(S)),y.getAttribute("aria-label")!==X&&c(y,"aria-label",X),c(g,"aria-selected",String(x)),c(y,"aria-disabled",o?"true":null),c(y,"aria-current",f===U()?"date":null),y.dataset.selected=String(M),y.dataset.between=String(!!P)}for(let h=0;h<6;h++)e.dayCells[h*7].cell.parentElement.hidden=h*7-b+1>d;let D=E(e.options.Min),p=E(e.options.Max);e.prev.disabled=!!D&&e.month<=D.slice(0,7)||n===1&&r===0,e.next.disabled=!!p&&e.month>=p.slice(0,7)||n===9999&&r===11,e.todayButton.hidden=e.timeOnly||e.options.ShowToday===!1,e.todayButton.disabled=!!K(e,U())}function Q(e){if(!e.hasTime)return;let[t,n]=(e.draftTime||"09:00").split(":").map(Number);e.hours.replaceChildren(),e.minutes.replaceChildren();for(let r=0;r<(e.cycle===12?12:24);r++)s(e.hours,e.cycle===12?r+1:r,w(e.cycle===12?r+1:r));for(let r=0;r<60;r+=e.step)s(e.minutes,r,w(r));n%e.step&&s(e.minutes,n,w(n)+" (entered)"),e.hours.value=String(e.cycle===12?t%12||12:t),e.minutes.value=String(n),e.period.value=t<12?"AM":"PM",e.periodField.hidden=e.cycle!==12,A(e)}function B(e,t=e.fields[0].input,n=!0){if(e.options.IsDisabled||e.options.IsReadOnly)return;if(e.anchor=t,e.manualInput=null,e.typeButton.hidden=!e.touchOpen,e.isOpen){e.range&&(e.rangeNext=t===e.fields[1].input&&e.draftStart?"end":"start"),N(e),n&&de(e);return}e.draftStart=e.timeOnly?"":e.range?e.start:E(e.value),e.draftEnd=e.end||"",e.draftTime=e.timeOnly?e.value:q(e.value),e.hasTime&&!V(e.draftTime)&&(e.draftTime="09:00"),e.rangeNext="start",e.range&&t===e.fields[1].input&&e.draftStart&&(e.rangeNext="end");let r=e.range&&e.rangeNext==="end"?e.draftEnd:e.draftStart;e.focusDate=v(r)?r:v(e.draftStart)?e.draftStart:U();let i=E(e.options.Min),a=E(e.options.Max);e.timeOnly||(i&&e.focusDate<i&&(e.focusDate=i),a&&e.focusDate>a&&(e.focusDate=a)),e.month=e.focusDate.slice(0,7),e.dialogError.textContent="",R(e),Q(e),A(e),e.isOpen=!0,e.dialog.hidden=!1,e.dialog.showPopover&&e.dialog.showPopover(),e.dialog.scrollTop=0;for(let{input:m}of e.fields)c(m,"aria-expanded","true");N(e),n&&e.isOpen&&de(e),Y(e,"OpenChanged",!0)}function xe(e){var y,S;e.range=e.kind==="DateRangePicker",e.timeOnly=e.kind==="TimePicker",e.dateTime=e.kind==="DateTimePicker",e.hasTime=e.timeOnly||e.dateTime,e.root.className="blu-picker",e.fieldRow=l("div","blu-picker__fields"),e.error=c(l("div","blu-picker__error"),"role","alert"),e.error.id=e.uid+"-error",e.error.hidden=!0,e.hint=l("div","blu-picker__hint"),e.hint.id=e.uid+"-hint",e.actions=l("div","blu-picker__actions"),e.clearButton=O("Clear",()=>J(e,"","","")),e.actions.append(e.clearButton),e.root.append(e.fieldRow,e.hint,e.actions,e.error),Me(e);let t=l("span","blu-advanced-sr","Click the field or press Down Arrow to browse. Escape closes the popup.");t.id=e.uid+"-keyboard",e.root.append(t),e.dialog=l("div","blu-picker__dialog blu-picker__popup"),e.dialog.id=e.uid+"-dialog",e.dialog.hidden=!0,c(e.dialog,"role","dialog"),c(e.dialog,"aria-labelledby",e.uid+"-title"),c(e.dialog,"aria-modal","false"),e.dialog.showPopover&&c(e.dialog,"popover","manual"),e.root.append(e.dialog),e.dialog.addEventListener("mousedown",we),e.title=l("h2","blu-advanced-sr"),e.title.id=e.uid+"-title",e.dialog.append(e.title),e.presets=l("div","blu-picker__presets"),e.dialog.append(e.presets),e.calendarArea=l("div","blu-picker__calendar-area"),e.calendarArea.hidden=e.timeOnly,e.dialog.append(e.calendarArea);let n=l("div","blu-picker__calendar-nav"),r=F(e,"Month","month");e.monthSelect=r.select;let i=l("label","blu-picker__select-field");i.append(l("span","blu-picker__select-caption","Year")),e.yearInput=l("input","blu-picker__input"),e.yearInput.type="number",e.yearInput.step="1",i.append(e.yearInput);let a=u=>{let f=ue(e.focusDate,u);H(e,f)};e.prev=O("\u2039",()=>a(-1)),c(e.prev,"aria-label","Previous month"),e.next=O("\u203A",()=>a(1)),c(e.next,"aria-label","Next month"),n.append(e.prev,r.wrap,i,e.next),e.calendarArea.append(n),e.monthSelect.addEventListener("change",()=>H(e,String(e.yearInput.value).padStart(4,"0")+"-"+w(+e.monthSelect.value+1)+"-01")),e.yearInput.addEventListener("change",()=>{let u=Number(e.yearInput.value);if(!Number.isInteger(u)||u<+e.yearInput.min||u>+e.yearInput.max){e.dialogError.textContent="Enter a year from "+e.yearInput.min+" to "+e.yearInput.max+".",c(e.yearInput,"aria-invalid","true");return}c(e.yearInput,"aria-invalid",null),e.dialogError.textContent="",H(e,String(u).padStart(4,"0")+"-"+w(+e.monthSelect.value+1)+"-01")}),e.caption=c(l("h3","blu-picker__caption blu-advanced-sr"),"aria-live","polite"),e.caption.id=e.uid+"-caption",e.calendarArea.append(e.caption),e.calendar=c(l("table","blu-picker__calendar"),"role","grid"),c(e.calendar,"aria-labelledby",e.caption.id),e.range&&c(e.calendar,"aria-multiselectable","true"),e.calendarArea.append(e.calendar),e.todayButton=O("Today",()=>{e.focusDate=U(),e.month=e.focusDate.slice(0,7),me(e,e.focusDate)}),e.calendarArea.append(l("p","blu-advanced-sr","Arrow keys move by day or week. Home/End move within the week. Page Up/Down change month; hold Shift to change year.")),e.timeArea=l("div","blu-picker__time-area"),e.timeArea.hidden=!e.hasTime,e.dialog.append(e.timeArea);let m=F(e,"Hour","hour"),b=F(e,"Minute","minute"),d=F(e,"AM / PM","period");e.hours=m.select,e.minutes=b.select,e.period=d.select,e.periodField=d.wrap,s(e.period,"AM","AM"),s(e.period,"PM","PM"),e.timeArea.append(m.wrap,b.wrap,d.wrap);for(let u of[e.hours,e.minutes,e.period])u.addEventListener("change",()=>{let f=+e.hours.value;e.cycle===12&&(f=f%12+(e.period.value==="PM"?12:0)),e.draftTime=w(f)+":"+w(+e.minutes.value),e.dialogError.textContent="",A(e)});e.selection=c(l("div","blu-picker__selection"),"role","status"),c(e.selection,"aria-atomic","true"),e.selectionSpeech=l("span","blu-advanced-sr"),e.selectionVisual=c(l("span"),"aria-hidden","true"),e.selection.append(e.selectionSpeech,e.selectionVisual),e.dialogError=c(l("div","blu-picker__error"),"role","alert"),e.dialogError.id=e.uid+"-dialog-error",c(e.yearInput,"aria-describedby",e.dialogError.id),e.apply=O("Apply",()=>J(e,e.draftStart,e.draftEnd,e.draftTime),"blu-picker__button blu-picker__button--primary"),e.apply.hidden=!e.range&&!e.hasTime,e.typeButton=O("Type",()=>{let u=e.anchor;C(e,!1),e.manualInput=u,u.inputMode="text",u.focus({preventScroll:!0})}),c(e.typeButton,"aria-label","Type a date or time"),e.typeButton.hidden=!0;let D=l("div","blu-picker__popup-actions");D.append(e.typeButton,e.todayButton,O("Cancel",()=>C(e)),e.apply),e.dialog.append(e.selection,e.dialogError,D);let p=u=>{e.isOpen&&!e.root.contains(u.target)&&C(e,!1)},h=u=>{e.isOpen&&u.key==="Escape"&&!u.defaultPrevented&&(u.preventDefault(),u.stopPropagation(),C(e))},g=u=>{!e.isOpen||e.dialog.contains(u==null?void 0:u.target)||(cancelAnimationFrame(e.positionFrame),e.positionFrame=requestAnimationFrame(()=>N(e)))};document.addEventListener("pointerdown",p,!0),document.addEventListener("focusin",p),e.root.addEventListener("keydown",h),window.addEventListener("resize",g),document.addEventListener("scroll",g,!0),(y=window.visualViewport)==null||y.addEventListener("resize",g),(S=window.visualViewport)==null||S.addEventListener("scroll",g),window.ResizeObserver&&(e.popupObserver=new ResizeObserver(()=>g()),e.popupObserver.observe(e.fieldRow),e.popupObserver.observe(e.dialog)),e.dispose=()=>{var u,f,M;C(e,!1),cancelAnimationFrame(e.positionFrame),(u=e.popupObserver)==null||u.disconnect(),document.removeEventListener("pointerdown",p,!0),document.removeEventListener("focusin",p),e.root.removeEventListener("keydown",h),window.removeEventListener("resize",g),document.removeEventListener("scroll",g,!0),(f=window.visualViewport)==null||f.removeEventListener("resize",g),(M=window.visualViewport)==null||M.removeEventListener("scroll",g)}}function ke(e){var h,g,y,S,u,f,M,P;let t=JSON.stringify(e.options);if(e.renderSignature===t)return;let n=e.isOpen?document.activeElement:null,r=(h=n==null?void 0:n.dataset)==null?void 0:h.date,i=n==null?void 0:n.id,a=e.options;if(e.label=String(a.Label||{DatePicker:"Date",TimePicker:"Time",DateTimePicker:"Date and time",DateRangePicker:"Date range"}[e.kind]),e.locale=String(a.Locale||"en-US"),new Intl.DateTimeFormat(e.locale),e.format=ve.includes(a.DateFormat)?a.DateFormat:"YYYY-MM-DD",e.cycle=Number(a.HourCycle)===12?12:24,e.step=Number((g=a.MinuteStep)!=null?g:15),!Number.isInteger(e.step)||e.step<1||e.step>60)throw Error("MinuteStep must be a whole number from 1 to 60.");if(e.firstDay=Number((y=a.FirstDayOfWeek)!=null?y:1),!Number.isInteger(e.firstDay)||e.firstDay<0||e.firstDay>6)throw Error("FirstDayOfWeek must be 0\u20136.");e.disabledDates=new Set(ae((S=a.DisabledDatesJson)!=null?S:a.DisabledDates,"DisabledDates").map(o=>typeof o=="string"?o:o.Date));for(let o of e.disabledDates)if(!v(o))throw Error("DisabledDates must contain ISO calendar dates.");for(let o of["Min","Max"])if(a[o]&&!(e.timeOnly?V(a[o]):v(E(a[o]))&&(!e.dateTime||V(q(a[o])))))throw Error(o+" must use the documented ISO value format.");if(a.Min&&a.Max&&a.Min>a.Max)throw Error("Min must be on or before Max.");for(let o of["MinRangeDays","MaxRangeDays"])if(a[o]!==void 0&&(!Number.isInteger(Number(a[o]))||Number(a[o])<0))throw Error(o+" must be a non-negative whole number.");if(a.MinRangeDays&&a.MaxRangeDays&&Number(a.MinRangeDays)>Number(a.MaxRangeDays))throw Error("MinRangeDays must not exceed MaxRangeDays.");let m=e.range?[String(a.StartDate||""),String(a.EndDate||"")]:[String(a.Value||"")],b=JSON.stringify(m),d=b!==e.inputSignature;if(e.inputSignature=b,e.range?(e.start=m[0],e.end=m[1]):e.value=m[0],e.fields.forEach((o,x)=>{o.label.textContent=e.range?e.label+(x?" \u2014 end":" \u2014 start"):e.dateTime?e.label+(x?" \u2014 time":" \u2014 date"):e.label,o.input.disabled=!!a.IsDisabled,o.input.readOnly=!!a.IsReadOnly,o.input.required=!!a.IsRequired,o.input.placeholder=String(a.Placeholder||(e.timeOnly||e.dateTime&&x?e.cycle===12?"9:00 AM":"09:00":e.format))}),e.hint.textContent=e.timeOnly?(e.cycle===12?"h:mm AM/PM":"HH:mm")+" \xB7 local time":e.format+(e.dateTime?" \xB7 "+(e.cycle===12?"h:mm AM/PM":"HH:mm")+" local time":""),e.title.textContent=e.label,e.clearButton.disabled=!!a.IsDisabled||!!a.IsReadOnly,d||e.previousFormat!==e.format||e.previousCycle!==e.cycle){fe(e);let o=m.some(Boolean);z(e,o?pe(e,e.timeOnly?"":e.range?e.start:E(e.value),e.end||"",e.timeOnly?e.value:q(e.value)):""),e.previousFormat=e.format,e.previousCycle=e.cycle}e.monthSelect.replaceChildren();for(let o=0;o<12;o++)s(e.monthSelect,o,new Intl.DateTimeFormat(e.locale,{month:"long"}).format(new Date(2024,o,1)));(u=e.calendar.tHead)==null||u.remove();let D=l("thead"),p=l("tr");for(let o=0;o<7;o++){let x=new Date(2024,0,7+(o+e.firstDay)%7),L=l("th","",new Intl.DateTimeFormat(e.locale,{weekday:"short"}).format(x));L.scope="col",L.abbr=new Intl.DateTimeFormat(e.locale,{weekday:"long"}).format(x),p.append(L)}if(D.append(p),e.calendar.prepend(D),e.presets.replaceChildren(),e.presets.hidden=!e.range,e.range)for(let o of ae((f=a.PresetsJson)!=null?f:a.Presets,"Presets")){if(!o.Label||!v(o.StartDate)||!v(o.EndDate))throw Error("Presets need Label, StartDate and EndDate.");let x=O(o.Label,()=>{e.draftStart=o.StartDate,e.draftEnd=o.EndDate,e.rangeNext="start",e.focusDate=e.draftStart,e.month=e.focusDate.slice(0,7),e.dialogError.textContent="",R(e),A(e)});x.disabled=!!ce(o.StartDate,o.EndDate,{...a,disabled:e.disabledDates}),e.presets.append(x)}e.isOpen&&(a.IsDisabled||a.IsReadOnly||d?C(e):(R(e),Q(e),r?(M=e.calendar.querySelector('[data-date="'+r+'"]'))==null||M.focus({preventScroll:!0}):i&&((P=document.getElementById(i))==null||P.focus({preventScroll:!0})),N(e))),e.renderSignature=t}var he=()=>ye("DateRangePicker",xe,ke);he();})();