@libreapps/ui 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. package/README.md +229 -0
  2. package/bin/cli.js +100 -0
  3. package/bin/create-registry.js +108 -0
  4. package/bin/mcp.js +403 -0
  5. package/bin/npx-registry-mcp.js +15 -0
  6. package/bin/registry-mcp-wrapper.sh +19 -0
  7. package/bin/registry-mcp.js +100 -0
  8. package/bin/start-mcp-server.sh +22 -0
  9. package/bin/test-mcp.sh +52 -0
  10. package/bin/update-registry.js +196 -0
  11. package/content/index.ts +26 -0
  12. package/dist/3d/button.js +298 -0
  13. package/dist/3d/button.mjs +273 -0
  14. package/dist/3d/card.js +234 -0
  15. package/dist/3d/card.mjs +207 -0
  16. package/dist/3d/carousel.js +371 -0
  17. package/dist/3d/carousel.mjs +344 -0
  18. package/dist/3d/grid.js +362 -0
  19. package/dist/3d/grid.mjs +337 -0
  20. package/dist/3d/index.js +1518 -0
  21. package/dist/3d/index.mjs +1472 -0
  22. package/dist/3d/marquee.js +352 -0
  23. package/dist/3d/marquee.mjs +327 -0
  24. package/dist/3d/pin.js +46 -0
  25. package/dist/3d/pin.mjs +24 -0
  26. package/dist/accordion.js +80 -0
  27. package/dist/accordion.mjs +55 -0
  28. package/dist/alert-dialog.js +225 -0
  29. package/dist/alert-dialog.mjs +192 -0
  30. package/dist/alert.js +98 -0
  31. package/dist/alert.mjs +92 -0
  32. package/dist/animation/animated-background.js +424 -0
  33. package/dist/animation/animated-background.mjs +418 -0
  34. package/dist/animation/animated-beam.js +119 -0
  35. package/dist/animation/animated-beam.mjs +97 -0
  36. package/dist/animation/animated-cursor.js +275 -0
  37. package/dist/animation/animated-cursor.mjs +270 -0
  38. package/dist/animation/animated-icon.js +357 -0
  39. package/dist/animation/animated-icon.mjs +351 -0
  40. package/dist/animation/animated-list.js +339 -0
  41. package/dist/animation/animated-list.mjs +333 -0
  42. package/dist/animation/animated-number.js +283 -0
  43. package/dist/animation/animated-number.mjs +277 -0
  44. package/dist/animation/animated-testimonials.js +97 -0
  45. package/dist/animation/animated-testimonials.mjs +75 -0
  46. package/dist/animation/animated-tooltip.js +67 -0
  47. package/dist/animation/animated-tooltip.mjs +45 -0
  48. package/dist/animation/apple-cards-carousel.js +308 -0
  49. package/dist/animation/apple-cards-carousel.mjs +285 -0
  50. package/dist/animation/apple-hello-effect.js +60 -0
  51. package/dist/animation/apple-hello-effect.mjs +38 -0
  52. package/dist/animation/index.js +1952 -0
  53. package/dist/animation/index.mjs +1921 -0
  54. package/dist/assets/ai-icons.d.ts +27 -0
  55. package/dist/assets/crypto.d.ts +6 -0
  56. package/dist/assets/file-type-icon.d.ts +6 -0
  57. package/dist/assets/file.d.ts +4 -0
  58. package/dist/assets/general.d.ts +219 -0
  59. package/dist/assets/index.d.ts +6 -0
  60. package/dist/assets/libreapps-logo.d.ts +3 -0
  61. package/dist/assets/llm-provider.d.ts +63 -0
  62. package/dist/avatar.js +71 -0
  63. package/dist/avatar.mjs +47 -0
  64. package/dist/badge.js +61 -0
  65. package/dist/badge.mjs +55 -0
  66. package/dist/blocks/auth/__tests__/forms.test.d.ts +12 -0
  67. package/dist/blocks/auth/index.d.ts +3 -0
  68. package/dist/blocks/auth/login/index.d.ts +5 -0
  69. package/dist/blocks/auth/login/login-01/components/login-form.d.ts +1 -0
  70. package/dist/blocks/auth/login/login-01/page.d.ts +1 -0
  71. package/dist/blocks/auth/login/login-02/components/login-form.d.ts +1 -0
  72. package/dist/blocks/auth/login/login-02/page.d.ts +1 -0
  73. package/dist/blocks/auth/login/login-03/components/login-form.d.ts +1 -0
  74. package/dist/blocks/auth/login/login-03/page.d.ts +1 -0
  75. package/dist/blocks/auth/login/login-04/components/login-form.d.ts +1 -0
  76. package/dist/blocks/auth/login/login-04/page.d.ts +1 -0
  77. package/dist/blocks/auth/login/login-05/components/login-form.d.ts +1 -0
  78. package/dist/blocks/auth/login/login-05/page.d.ts +1 -0
  79. package/dist/blocks/auth/otp/index.d.ts +5 -0
  80. package/dist/blocks/auth/otp/otp-01/components/otp-form.d.ts +2 -0
  81. package/dist/blocks/auth/otp/otp-01/page.d.ts +1 -0
  82. package/dist/blocks/auth/otp/otp-02/components/otp-form.d.ts +1 -0
  83. package/dist/blocks/auth/otp/otp-02/page.d.ts +1 -0
  84. package/dist/blocks/auth/otp/otp-03/components/otp-form.d.ts +2 -0
  85. package/dist/blocks/auth/otp/otp-03/page.d.ts +1 -0
  86. package/dist/blocks/auth/otp/otp-04/components/otp-form.d.ts +1 -0
  87. package/dist/blocks/auth/otp/otp-04/page.d.ts +1 -0
  88. package/dist/blocks/auth/otp/otp-05/components/otp-form.d.ts +1 -0
  89. package/dist/blocks/auth/otp/otp-05/page.d.ts +1 -0
  90. package/dist/blocks/auth/signup/index.d.ts +5 -0
  91. package/dist/blocks/auth/signup/signup-01/components/signup-form.d.ts +2 -0
  92. package/dist/blocks/auth/signup/signup-01/page.d.ts +1 -0
  93. package/dist/blocks/auth/signup/signup-02/components/signup-form.d.ts +1 -0
  94. package/dist/blocks/auth/signup/signup-02/page.d.ts +1 -0
  95. package/dist/blocks/auth/signup/signup-03/components/signup-form.d.ts +1 -0
  96. package/dist/blocks/auth/signup/signup-03/page.d.ts +1 -0
  97. package/dist/blocks/auth/signup/signup-04/components/signup-form.d.ts +1 -0
  98. package/dist/blocks/auth/signup/signup-04/page.d.ts +1 -0
  99. package/dist/blocks/auth/signup/signup-05/components/signup-form.d.ts +1 -0
  100. package/dist/blocks/auth/signup/signup-05/page.d.ts +1 -0
  101. package/dist/blocks/calendar/calendar-01.d.ts +1 -0
  102. package/dist/blocks/calendar/calendar-02.d.ts +1 -0
  103. package/dist/blocks/calendar/calendar-03.d.ts +1 -0
  104. package/dist/blocks/calendar/calendar-04.d.ts +1 -0
  105. package/dist/blocks/calendar/calendar-05.d.ts +1 -0
  106. package/dist/blocks/calendar/calendar-06.d.ts +1 -0
  107. package/dist/blocks/calendar/calendar-07.d.ts +1 -0
  108. package/dist/blocks/calendar/calendar-08.d.ts +1 -0
  109. package/dist/blocks/calendar/calendar-09.d.ts +1 -0
  110. package/dist/blocks/calendar/calendar-10.d.ts +1 -0
  111. package/dist/blocks/calendar/calendar-11.d.ts +1 -0
  112. package/dist/blocks/calendar/calendar-12.d.ts +1 -0
  113. package/dist/blocks/calendar/calendar-13.d.ts +1 -0
  114. package/dist/blocks/calendar/calendar-14.d.ts +1 -0
  115. package/dist/blocks/calendar/calendar-15.d.ts +1 -0
  116. package/dist/blocks/calendar/calendar-16.d.ts +1 -0
  117. package/dist/blocks/calendar/calendar-17.d.ts +1 -0
  118. package/dist/blocks/calendar/calendar-18.d.ts +1 -0
  119. package/dist/blocks/calendar/calendar-19.d.ts +1 -0
  120. package/dist/blocks/calendar/calendar-20.d.ts +1 -0
  121. package/dist/blocks/calendar/calendar-21.d.ts +1 -0
  122. package/dist/blocks/calendar/calendar-22.d.ts +1 -0
  123. package/dist/blocks/calendar/calendar-23.d.ts +1 -0
  124. package/dist/blocks/calendar/calendar-24.d.ts +1 -0
  125. package/dist/blocks/calendar/calendar-25.d.ts +1 -0
  126. package/dist/blocks/calendar/calendar-26.d.ts +1 -0
  127. package/dist/blocks/calendar/calendar-27.d.ts +1 -0
  128. package/dist/blocks/calendar/calendar-28.d.ts +1 -0
  129. package/dist/blocks/calendar/calendar-29.d.ts +1 -0
  130. package/dist/blocks/calendar/calendar-30.d.ts +1 -0
  131. package/dist/blocks/calendar/calendar-31.d.ts +1 -0
  132. package/dist/blocks/calendar/calendar-32.d.ts +1 -0
  133. package/dist/blocks/calendar/index.d.ts +32 -0
  134. package/dist/blocks/components/accordian-block.d.ts +4 -0
  135. package/dist/blocks/components/block-component-props.d.ts +7 -0
  136. package/dist/blocks/components/bullet-cards-block.d.ts +4 -0
  137. package/dist/blocks/components/card-block/index.d.ts +6 -0
  138. package/dist/blocks/components/card-block/link-out-button.d.ts +6 -0
  139. package/dist/blocks/components/card-block/util.d.ts +4 -0
  140. package/dist/blocks/components/carte-blanche-block/index.d.ts +4 -0
  141. package/dist/blocks/components/carte-blanche-block/variant-content-left.d.ts +10 -0
  142. package/dist/blocks/components/content.d.ts +10 -0
  143. package/dist/blocks/components/cta-block.d.ts +12 -0
  144. package/dist/blocks/components/enh-heading-block.d.ts +7 -0
  145. package/dist/blocks/components/grid-block/grid-block-mutator.d.ts +5 -0
  146. package/dist/blocks/components/grid-block/index.d.ts +9 -0
  147. package/dist/blocks/components/grid-block/mutator-registry.d.ts +3 -0
  148. package/dist/blocks/components/grid-block/table-borders.mutator.d.ts +3 -0
  149. package/dist/blocks/components/group-block.d.ts +7 -0
  150. package/dist/blocks/components/heading-block.d.ts +4 -0
  151. package/dist/blocks/components/image-block.d.ts +7 -0
  152. package/dist/blocks/components/index.d.ts +14 -0
  153. package/dist/blocks/components/screenful-block/content.d.ts +8 -0
  154. package/dist/blocks/components/screenful-block/index.d.ts +12 -0
  155. package/dist/blocks/components/screenful-block/poster-background.d.ts +7 -0
  156. package/dist/blocks/components/screenful-block/video-background.d.ts +8 -0
  157. package/dist/blocks/components/space-block.d.ts +4 -0
  158. package/dist/blocks/components/video-block.d.ts +9 -0
  159. package/dist/blocks/dashboard/dashboard-01/components/app-sidebar.d.ts +3 -0
  160. package/dist/blocks/dashboard/dashboard-01/components/chart-area-interactive.d.ts +2 -0
  161. package/dist/blocks/dashboard/dashboard-01/components/data-table.d.ts +13 -0
  162. package/dist/blocks/dashboard/dashboard-01/components/nav-documents.d.ts +8 -0
  163. package/dist/blocks/dashboard/dashboard-01/components/nav-main.d.ts +8 -0
  164. package/dist/blocks/dashboard/dashboard-01/components/nav-secondary.d.ts +10 -0
  165. package/dist/blocks/dashboard/dashboard-01/components/nav-user.d.ts +7 -0
  166. package/dist/blocks/dashboard/dashboard-01/components/section-cards.d.ts +1 -0
  167. package/dist/blocks/dashboard/dashboard-01/components/site-header.d.ts +1 -0
  168. package/dist/blocks/dashboard/dashboard-01/page.d.ts +1 -0
  169. package/dist/blocks/dashboard/index.d.ts +1 -0
  170. package/dist/blocks/def/accordian-block.d.ts +10 -0
  171. package/dist/blocks/def/block.d.ts +4 -0
  172. package/dist/blocks/def/bullet-cards-block.d.ts +17 -0
  173. package/dist/blocks/def/card-block.d.ts +17 -0
  174. package/dist/blocks/def/carte-blanche-block.d.ts +12 -0
  175. package/dist/blocks/def/cta-block.d.ts +8 -0
  176. package/dist/blocks/def/element-block.d.ts +7 -0
  177. package/dist/blocks/def/enh-heading-block.d.ts +22 -0
  178. package/dist/blocks/def/grid-block.d.ts +12 -0
  179. package/dist/blocks/def/group-block.d.ts +7 -0
  180. package/dist/blocks/def/heading-block.d.ts +11 -0
  181. package/dist/blocks/def/image-block.d.ts +26 -0
  182. package/dist/blocks/def/index.d.ts +17 -0
  183. package/dist/blocks/def/screenful-block.d.ts +41 -0
  184. package/dist/blocks/def/space-block.d.ts +47 -0
  185. package/dist/blocks/def/video-block.d.ts +5 -0
  186. package/dist/blocks/index-core.d.ts +2 -0
  187. package/dist/blocks/index.d.ts +6 -0
  188. package/dist/blocks/index.js +1685 -0
  189. package/dist/blocks/index.mjs +1646 -0
  190. package/dist/blocks/sidebar/index.d.ts +16 -0
  191. package/dist/blocks/sidebar/sidebar-01/components/app-sidebar.d.ts +3 -0
  192. package/dist/blocks/sidebar/sidebar-01/components/search-form.d.ts +1 -0
  193. package/dist/blocks/sidebar/sidebar-01/components/version-switcher.d.ts +4 -0
  194. package/dist/blocks/sidebar/sidebar-01/page.d.ts +1 -0
  195. package/dist/blocks/sidebar/sidebar-02/components/app-sidebar.d.ts +3 -0
  196. package/dist/blocks/sidebar/sidebar-02/components/search-form.d.ts +1 -0
  197. package/dist/blocks/sidebar/sidebar-02/components/version-switcher.d.ts +4 -0
  198. package/dist/blocks/sidebar/sidebar-02/page.d.ts +1 -0
  199. package/dist/blocks/sidebar/sidebar-03/components/app-sidebar.d.ts +3 -0
  200. package/dist/blocks/sidebar/sidebar-03/page.d.ts +1 -0
  201. package/dist/blocks/sidebar/sidebar-04/components/app-sidebar.d.ts +3 -0
  202. package/dist/blocks/sidebar/sidebar-04/page.d.ts +1 -0
  203. package/dist/blocks/sidebar/sidebar-05/components/app-sidebar.d.ts +3 -0
  204. package/dist/blocks/sidebar/sidebar-05/components/search-form.d.ts +1 -0
  205. package/dist/blocks/sidebar/sidebar-05/page.d.ts +1 -0
  206. package/dist/blocks/sidebar/sidebar-06/components/app-sidebar.d.ts +3 -0
  207. package/dist/blocks/sidebar/sidebar-06/components/nav-main.d.ts +13 -0
  208. package/dist/blocks/sidebar/sidebar-06/components/sidebar-opt-in-form.d.ts +1 -0
  209. package/dist/blocks/sidebar/sidebar-06/page.d.ts +1 -0
  210. package/dist/blocks/sidebar/sidebar-07/components/app-sidebar.d.ts +3 -0
  211. package/dist/blocks/sidebar/sidebar-07/components/nav-main.d.ts +13 -0
  212. package/dist/blocks/sidebar/sidebar-07/components/nav-projects.d.ts +8 -0
  213. package/dist/blocks/sidebar/sidebar-07/components/nav-user.d.ts +7 -0
  214. package/dist/blocks/sidebar/sidebar-07/components/team-switcher.d.ts +8 -0
  215. package/dist/blocks/sidebar/sidebar-07/page.d.ts +1 -0
  216. package/dist/blocks/sidebar/sidebar-08/components/app-sidebar.d.ts +3 -0
  217. package/dist/blocks/sidebar/sidebar-08/components/nav-main.d.ts +13 -0
  218. package/dist/blocks/sidebar/sidebar-08/components/nav-projects.d.ts +8 -0
  219. package/dist/blocks/sidebar/sidebar-08/components/nav-secondary.d.ts +10 -0
  220. package/dist/blocks/sidebar/sidebar-08/components/nav-user.d.ts +7 -0
  221. package/dist/blocks/sidebar/sidebar-08/page.d.ts +1 -0
  222. package/dist/blocks/sidebar/sidebar-09/components/app-sidebar.d.ts +3 -0
  223. package/dist/blocks/sidebar/sidebar-09/components/nav-user.d.ts +7 -0
  224. package/dist/blocks/sidebar/sidebar-09/page.d.ts +1 -0
  225. package/dist/blocks/sidebar/sidebar-10/components/app-sidebar.d.ts +3 -0
  226. package/dist/blocks/sidebar/sidebar-10/components/nav-actions.d.ts +1 -0
  227. package/dist/blocks/sidebar/sidebar-10/components/nav-favorites.d.ts +7 -0
  228. package/dist/blocks/sidebar/sidebar-10/components/nav-main.d.ts +9 -0
  229. package/dist/blocks/sidebar/sidebar-10/components/nav-secondary.d.ts +11 -0
  230. package/dist/blocks/sidebar/sidebar-10/components/nav-workspaces.d.ts +10 -0
  231. package/dist/blocks/sidebar/sidebar-10/components/team-switcher.d.ts +8 -0
  232. package/dist/blocks/sidebar/sidebar-10/page.d.ts +1 -0
  233. package/dist/blocks/sidebar/sidebar-11/components/app-sidebar.d.ts +3 -0
  234. package/dist/blocks/sidebar/sidebar-11/page.d.ts +1 -0
  235. package/dist/blocks/sidebar/sidebar-12/components/app-sidebar.d.ts +3 -0
  236. package/dist/blocks/sidebar/sidebar-12/components/calendars.d.ts +6 -0
  237. package/dist/blocks/sidebar/sidebar-12/components/date-picker.d.ts +1 -0
  238. package/dist/blocks/sidebar/sidebar-12/components/nav-user.d.ts +7 -0
  239. package/dist/blocks/sidebar/sidebar-12/page.d.ts +1 -0
  240. package/dist/blocks/sidebar/sidebar-13/components/settings-dialog.d.ts +1 -0
  241. package/dist/blocks/sidebar/sidebar-13/page.d.ts +1 -0
  242. package/dist/blocks/sidebar/sidebar-14/components/app-sidebar.d.ts +3 -0
  243. package/dist/blocks/sidebar/sidebar-14/page.d.ts +1 -0
  244. package/dist/blocks/sidebar/sidebar-15/components/calendars.d.ts +6 -0
  245. package/dist/blocks/sidebar/sidebar-15/components/date-picker.d.ts +1 -0
  246. package/dist/blocks/sidebar/sidebar-15/components/nav-favorites.d.ts +7 -0
  247. package/dist/blocks/sidebar/sidebar-15/components/nav-main.d.ts +9 -0
  248. package/dist/blocks/sidebar/sidebar-15/components/nav-secondary.d.ts +11 -0
  249. package/dist/blocks/sidebar/sidebar-15/components/nav-user.d.ts +7 -0
  250. package/dist/blocks/sidebar/sidebar-15/components/nav-workspaces.d.ts +10 -0
  251. package/dist/blocks/sidebar/sidebar-15/components/sidebar-left.d.ts +3 -0
  252. package/dist/blocks/sidebar/sidebar-15/components/sidebar-right.d.ts +3 -0
  253. package/dist/blocks/sidebar/sidebar-15/components/team-switcher.d.ts +8 -0
  254. package/dist/blocks/sidebar/sidebar-15/page.d.ts +1 -0
  255. package/dist/blocks/sidebar/sidebar-16/components/app-sidebar.d.ts +3 -0
  256. package/dist/blocks/sidebar/sidebar-16/components/nav-main.d.ts +13 -0
  257. package/dist/blocks/sidebar/sidebar-16/components/nav-projects.d.ts +8 -0
  258. package/dist/blocks/sidebar/sidebar-16/components/nav-secondary.d.ts +10 -0
  259. package/dist/blocks/sidebar/sidebar-16/components/nav-user.d.ts +7 -0
  260. package/dist/blocks/sidebar/sidebar-16/components/search-form.d.ts +1 -0
  261. package/dist/blocks/sidebar/sidebar-16/components/site-header.d.ts +1 -0
  262. package/dist/blocks/sidebar/sidebar-16/page.d.ts +3 -0
  263. package/dist/breadcrumb.js +107 -0
  264. package/dist/breadcrumb.mjs +99 -0
  265. package/dist/calendar-ext/index.js +208 -0
  266. package/dist/calendar-ext/index.mjs +170 -0
  267. package/dist/calendar.js +194 -0
  268. package/dist/calendar.mjs +169 -0
  269. package/dist/carousel.js +283 -0
  270. package/dist/carousel.mjs +254 -0
  271. package/dist/charts/index.js +5842 -0
  272. package/dist/charts/index.mjs +5751 -0
  273. package/dist/checkbox.js +60 -0
  274. package/dist/checkbox.mjs +35 -0
  275. package/dist/code/block.js +226 -0
  276. package/dist/code/block.mjs +203 -0
  277. package/dist/code/compare.js +446 -0
  278. package/dist/code/compare.mjs +423 -0
  279. package/dist/code/diff.js +430 -0
  280. package/dist/code/diff.mjs +407 -0
  281. package/dist/code/editor.js +243 -0
  282. package/dist/code/editor.mjs +218 -0
  283. package/dist/code/explorer.js +291 -0
  284. package/dist/code/explorer.mjs +268 -0
  285. package/dist/code/index.js +2551 -0
  286. package/dist/code/index.mjs +2510 -0
  287. package/dist/code/preview.js +400 -0
  288. package/dist/code/preview.mjs +377 -0
  289. package/dist/code/snippet.js +274 -0
  290. package/dist/code/snippet.mjs +250 -0
  291. package/dist/code/tabs.js +75 -0
  292. package/dist/code/tabs.mjs +53 -0
  293. package/dist/code/terminal.js +437 -0
  294. package/dist/code/terminal.mjs +414 -0
  295. package/dist/collapsible.js +33 -0
  296. package/dist/collapsible.mjs +9 -0
  297. package/dist/command.js +283 -0
  298. package/dist/command.mjs +252 -0
  299. package/dist/components/cal-embed.d.ts +10 -0
  300. package/dist/components/index.d.ts +2 -0
  301. package/dist/context-menu.js +207 -0
  302. package/dist/context-menu.mjs +171 -0
  303. package/dist/desktop/hooks.js +224 -0
  304. package/dist/desktop/hooks.mjs +199 -0
  305. package/dist/desktop/index.js +686 -0
  306. package/dist/desktop/index.mjs +658 -0
  307. package/dist/desktop/spotlight.js +261 -0
  308. package/dist/desktop/spotlight.mjs +236 -0
  309. package/dist/desktop/window.js +274 -0
  310. package/dist/desktop/window.mjs +248 -0
  311. package/dist/device/index.js +3 -0
  312. package/dist/device/index.mjs +2 -0
  313. package/dist/dialog.js +246 -0
  314. package/dist/dialog.mjs +214 -0
  315. package/dist/dock/basic.js +174 -0
  316. package/dist/dock/basic.mjs +151 -0
  317. package/dist/dock/index.js +648 -0
  318. package/dist/dock/index.mjs +621 -0
  319. package/dist/dock/limelight-nav.js +315 -0
  320. package/dist/dock/limelight-nav.mjs +294 -0
  321. package/dist/dock/macos.js +141 -0
  322. package/dist/dock/macos.mjs +118 -0
  323. package/dist/dock/menu.js +70 -0
  324. package/dist/dock/menu.mjs +48 -0
  325. package/dist/dock/message.js +149 -0
  326. package/dist/dock/message.mjs +127 -0
  327. package/dist/drawer.js +115 -0
  328. package/dist/drawer.mjs +103 -0
  329. package/dist/dropdown-menu.js +202 -0
  330. package/dist/dropdown-menu.mjs +166 -0
  331. package/dist/finance/AdvancedChart.js +48 -0
  332. package/dist/finance/AdvancedChart.mjs +46 -0
  333. package/dist/finance/CompanyProfile.js +48 -0
  334. package/dist/finance/CompanyProfile.mjs +46 -0
  335. package/dist/finance/CryptoScreener.js +45 -0
  336. package/dist/finance/CryptoScreener.mjs +43 -0
  337. package/dist/finance/Financials.js +52 -0
  338. package/dist/finance/Financials.mjs +50 -0
  339. package/dist/finance/ForexScreener.js +46 -0
  340. package/dist/finance/ForexScreener.mjs +44 -0
  341. package/dist/finance/MarketOverview.js +104 -0
  342. package/dist/finance/MarketOverview.mjs +102 -0
  343. package/dist/finance/NewsTimeline.js +44 -0
  344. package/dist/finance/NewsTimeline.mjs +42 -0
  345. package/dist/finance/OrderEntry.js +131 -0
  346. package/dist/finance/OrderEntry.mjs +129 -0
  347. package/dist/finance/OrdersHistory.js +64 -0
  348. package/dist/finance/OrdersHistory.mjs +62 -0
  349. package/dist/finance/PositionsList.js +80 -0
  350. package/dist/finance/PositionsList.mjs +78 -0
  351. package/dist/finance/StockScreener.js +46 -0
  352. package/dist/finance/StockScreener.mjs +44 -0
  353. package/dist/finance/SymbolInfo.js +46 -0
  354. package/dist/finance/SymbolInfo.mjs +44 -0
  355. package/dist/finance/TechnicalAnalysis.js +54 -0
  356. package/dist/finance/TechnicalAnalysis.mjs +52 -0
  357. package/dist/finance/TickerTape.js +56 -0
  358. package/dist/finance/TickerTape.mjs +54 -0
  359. package/dist/finance/TradingPanel.js +191 -0
  360. package/dist/finance/TradingPanel.mjs +189 -0
  361. package/dist/finance/index.js +930 -0
  362. package/dist/finance/index.mjs +914 -0
  363. package/dist/form/index.js +155 -0
  364. package/dist/form/index.mjs +125 -0
  365. package/dist/form.js +172 -0
  366. package/dist/form.mjs +142 -0
  367. package/dist/helpers/file.d.ts +6 -0
  368. package/dist/helpers/memoization.d.ts +8 -0
  369. package/dist/hover-card.js +58 -0
  370. package/dist/hover-card.mjs +34 -0
  371. package/dist/index.js +9650 -0
  372. package/dist/index.mjs +9234 -0
  373. package/dist/input-otp.js +79 -0
  374. package/dist/input-otp.mjs +54 -0
  375. package/dist/kanban/index.js +594 -0
  376. package/dist/kanban/index.mjs +572 -0
  377. package/dist/lib/utils.js +28 -0
  378. package/dist/lib/utils.mjs +24 -0
  379. package/dist/mermaid/index.js +281 -0
  380. package/dist/mermaid/index.mjs +254 -0
  381. package/dist/navigation/index.js +98 -0
  382. package/dist/navigation/index.mjs +79 -0
  383. package/dist/navigation-menu.js +149 -0
  384. package/dist/navigation-menu.mjs +116 -0
  385. package/dist/pattern/grid-pattern.js +333 -0
  386. package/dist/pattern/grid-pattern.mjs +310 -0
  387. package/dist/pattern/index.js +333 -0
  388. package/dist/pattern/index.mjs +310 -0
  389. package/dist/popover.js +63 -0
  390. package/dist/popover.mjs +37 -0
  391. package/dist/primitives/__tests__/core-primitives.test.d.ts +1 -0
  392. package/dist/primitives/accordion.d.ts +26 -0
  393. package/dist/primitives/action-button.d.ts +9 -0
  394. package/dist/primitives/alert-dialog.d.ts +56 -0
  395. package/dist/primitives/alert.d.ts +10 -0
  396. package/dist/primitives/apply-typography.d.ts +7 -0
  397. package/dist/primitives/aspect-ratio.d.ts +3 -0
  398. package/dist/primitives/avatar.d.ts +24 -0
  399. package/dist/primitives/background-beams.d.ts +4 -0
  400. package/dist/primitives/badge.d.ts +10 -0
  401. package/dist/primitives/breadcrumb.d.ts +50 -0
  402. package/dist/primitives/breakpoint-indicator.d.ts +3 -0
  403. package/dist/primitives/button-group.d.ts +11 -0
  404. package/dist/primitives/button.d.ts +13 -0
  405. package/dist/primitives/cal-embed.d.ts +10 -0
  406. package/dist/primitives/calendar.d.ts +10 -0
  407. package/dist/primitives/card.d.ts +9 -0
  408. package/dist/primitives/carousel.d.ts +18 -0
  409. package/dist/primitives/chart.d.ts +40 -0
  410. package/dist/primitives/charts/__tests__/charts.test.d.ts +9 -0
  411. package/dist/primitives/charts/area/chart-area-axes.d.ts +2 -0
  412. package/dist/primitives/charts/area/chart-area-default.d.ts +2 -0
  413. package/dist/primitives/charts/area/chart-area-gradient.d.ts +2 -0
  414. package/dist/primitives/charts/area/chart-area-icons.d.ts +2 -0
  415. package/dist/primitives/charts/area/chart-area-interactive.d.ts +2 -0
  416. package/dist/primitives/charts/area/chart-area-legend.d.ts +2 -0
  417. package/dist/primitives/charts/area/chart-area-linear.d.ts +2 -0
  418. package/dist/primitives/charts/area/chart-area-stacked-expand.d.ts +2 -0
  419. package/dist/primitives/charts/area/chart-area-stacked.d.ts +2 -0
  420. package/dist/primitives/charts/area/chart-area-step.d.ts +2 -0
  421. package/dist/primitives/charts/area/index.d.ts +10 -0
  422. package/dist/primitives/charts/bar/chart-bar-active.d.ts +2 -0
  423. package/dist/primitives/charts/bar/chart-bar-default.d.ts +2 -0
  424. package/dist/primitives/charts/bar/chart-bar-horizontal.d.ts +2 -0
  425. package/dist/primitives/charts/bar/chart-bar-interactive.d.ts +2 -0
  426. package/dist/primitives/charts/bar/chart-bar-label-custom.d.ts +2 -0
  427. package/dist/primitives/charts/bar/chart-bar-label.d.ts +2 -0
  428. package/dist/primitives/charts/bar/chart-bar-mixed.d.ts +2 -0
  429. package/dist/primitives/charts/bar/chart-bar-multiple.d.ts +2 -0
  430. package/dist/primitives/charts/bar/chart-bar-negative.d.ts +2 -0
  431. package/dist/primitives/charts/bar/chart-bar-stacked.d.ts +2 -0
  432. package/dist/primitives/charts/bar/index.d.ts +10 -0
  433. package/dist/primitives/charts/index.d.ts +7 -0
  434. package/dist/primitives/charts/line/chart-line-default.d.ts +2 -0
  435. package/dist/primitives/charts/line/chart-line-dots-colors.d.ts +2 -0
  436. package/dist/primitives/charts/line/chart-line-dots-custom.d.ts +2 -0
  437. package/dist/primitives/charts/line/chart-line-dots.d.ts +2 -0
  438. package/dist/primitives/charts/line/chart-line-interactive.d.ts +2 -0
  439. package/dist/primitives/charts/line/chart-line-label-custom.d.ts +2 -0
  440. package/dist/primitives/charts/line/chart-line-label.d.ts +2 -0
  441. package/dist/primitives/charts/line/chart-line-linear.d.ts +2 -0
  442. package/dist/primitives/charts/line/chart-line-multiple.d.ts +2 -0
  443. package/dist/primitives/charts/line/chart-line-step.d.ts +2 -0
  444. package/dist/primitives/charts/line/index.d.ts +10 -0
  445. package/dist/primitives/charts/pie/chart-pie-donut-active.d.ts +2 -0
  446. package/dist/primitives/charts/pie/chart-pie-donut-text.d.ts +2 -0
  447. package/dist/primitives/charts/pie/chart-pie-donut.d.ts +2 -0
  448. package/dist/primitives/charts/pie/chart-pie-interactive.d.ts +2 -0
  449. package/dist/primitives/charts/pie/chart-pie-label-custom.d.ts +2 -0
  450. package/dist/primitives/charts/pie/chart-pie-label-list.d.ts +2 -0
  451. package/dist/primitives/charts/pie/chart-pie-label.d.ts +2 -0
  452. package/dist/primitives/charts/pie/chart-pie-legend.d.ts +2 -0
  453. package/dist/primitives/charts/pie/chart-pie-separator-none.d.ts +2 -0
  454. package/dist/primitives/charts/pie/index.d.ts +9 -0
  455. package/dist/primitives/charts/radar/chart-radar-default.d.ts +2 -0
  456. package/dist/primitives/charts/radar/chart-radar-dots.d.ts +2 -0
  457. package/dist/primitives/charts/radar/chart-radar-grid-circle-fill.d.ts +2 -0
  458. package/dist/primitives/charts/radar/chart-radar-grid-circle-no-lines.d.ts +2 -0
  459. package/dist/primitives/charts/radar/chart-radar-grid-circle.d.ts +2 -0
  460. package/dist/primitives/charts/radar/chart-radar-grid-custom.d.ts +2 -0
  461. package/dist/primitives/charts/radar/chart-radar-grid-fill.d.ts +2 -0
  462. package/dist/primitives/charts/radar/chart-radar-grid-none.d.ts +2 -0
  463. package/dist/primitives/charts/radar/chart-radar-icons.d.ts +2 -0
  464. package/dist/primitives/charts/radar/index.d.ts +9 -0
  465. package/dist/primitives/charts/radial/chart-radial-grid.d.ts +2 -0
  466. package/dist/primitives/charts/radial/chart-radial-label.d.ts +2 -0
  467. package/dist/primitives/charts/radial/chart-radial-shape.d.ts +2 -0
  468. package/dist/primitives/charts/radial/chart-radial-simple.d.ts +2 -0
  469. package/dist/primitives/charts/radial/chart-radial-stacked.d.ts +2 -0
  470. package/dist/primitives/charts/radial/chart-radial-text.d.ts +2 -0
  471. package/dist/primitives/charts/radial/index.d.ts +6 -0
  472. package/dist/primitives/charts/tooltip/chart-tooltip-advanced.d.ts +2 -0
  473. package/dist/primitives/charts/tooltip/chart-tooltip-default.d.ts +4 -0
  474. package/dist/primitives/charts/tooltip/chart-tooltip-formatter.d.ts +2 -0
  475. package/dist/primitives/charts/tooltip/chart-tooltip-icons.d.ts +2 -0
  476. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-line.d.ts +4 -0
  477. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-none.d.ts +2 -0
  478. package/dist/primitives/charts/tooltip/chart-tooltip-label-custom.d.ts +2 -0
  479. package/dist/primitives/charts/tooltip/chart-tooltip-label-formatter.d.ts +2 -0
  480. package/dist/primitives/charts/tooltip/chart-tooltip-label-none.d.ts +2 -0
  481. package/dist/primitives/charts/tooltip/index.d.ts +9 -0
  482. package/dist/primitives/chat/chat-input-area.d.ts +23 -0
  483. package/dist/primitives/chat/chat-input.d.ts +12 -0
  484. package/dist/primitives/chat/files-preview.d.ts +12 -0
  485. package/dist/primitives/chat/index.d.ts +6 -0
  486. package/dist/primitives/chat/json-form.d.ts +3 -0
  487. package/dist/primitives/chat/message-list.d.ts +19 -0
  488. package/dist/primitives/chat/message.d.ts +29 -0
  489. package/dist/primitives/chat/sqlite-preview.d.ts +5 -0
  490. package/dist/primitives/checkbox.d.ts +11 -0
  491. package/dist/primitives/collapsible.d.ts +5 -0
  492. package/dist/primitives/combobox.d.ts +41 -0
  493. package/dist/primitives/command.d.ts +38 -0
  494. package/dist/primitives/context-menu.d.ts +53 -0
  495. package/dist/primitives/copy-to-clipboard-icon.d.ts +14 -0
  496. package/dist/primitives/dialog-video-controller.d.ts +3 -0
  497. package/dist/primitives/dialog.d.ts +17 -0
  498. package/dist/primitives/dot-pattern.d.ts +13 -0
  499. package/dist/primitives/dots-loader.d.ts +4 -0
  500. package/dist/primitives/drawer.d.ts +37 -0
  501. package/dist/primitives/dropdown-menu.d.ts +51 -0
  502. package/dist/primitives/empty.d.ts +11 -0
  503. package/dist/primitives/error-message.d.ts +6 -0
  504. package/dist/primitives/field.d.ts +9 -0
  505. package/dist/primitives/file-uploader.d.ts +19 -0
  506. package/dist/primitives/form.d.ts +39 -0
  507. package/dist/primitives/hover-card.d.ts +9 -0
  508. package/dist/primitives/icons/github.d.ts +4 -0
  509. package/dist/primitives/icons/index.d.ts +4 -0
  510. package/dist/primitives/icons/youtube-logo.d.ts +4 -0
  511. package/dist/primitives/index-blocks.d.ts +4 -0
  512. package/dist/primitives/index-common.d.ts +74 -0
  513. package/dist/primitives/index-core.d.ts +28 -0
  514. package/dist/primitives/index-next.d.ts +2 -0
  515. package/dist/primitives/index-selective.d.ts +51 -0
  516. package/dist/primitives/index-standard.d.ts +78 -0
  517. package/dist/primitives/index.d.ts +1 -0
  518. package/dist/primitives/index.js +9650 -0
  519. package/dist/primitives/index.mjs +9234 -0
  520. package/dist/primitives/input-group.d.ts +16 -0
  521. package/dist/primitives/input-otp.d.ts +34 -0
  522. package/dist/primitives/input.d.ts +14 -0
  523. package/dist/primitives/item.d.ts +23 -0
  524. package/dist/primitives/kbd.d.ts +4 -0
  525. package/dist/primitives/label.d.ts +10 -0
  526. package/dist/primitives/list-adaptor.d.ts +9 -0
  527. package/dist/primitives/list-box.d.ts +11 -0
  528. package/dist/primitives/loading-spinner.d.ts +5 -0
  529. package/dist/primitives/markdown-preview.d.ts +128 -0
  530. package/dist/primitives/menubar.d.ts +28 -0
  531. package/dist/primitives/mermaid.d.ts +7 -0
  532. package/dist/primitives/native-select.d.ts +8 -0
  533. package/dist/primitives/navigation-menu.d.ts +12 -0
  534. package/dist/primitives/next/image.d.ts +11 -0
  535. package/dist/primitives/next/index.d.ts +7 -0
  536. package/dist/primitives/next/inline-icon.d.ts +13 -0
  537. package/dist/primitives/next/link-element.d.ts +23 -0
  538. package/dist/primitives/next/mdx-link.d.ts +3 -0
  539. package/dist/primitives/next/media-stack.d.ts +8 -0
  540. package/dist/primitives/next/nav-items.d.ts +10 -0
  541. package/dist/primitives/next/youtube-embed.d.ts +11 -0
  542. package/dist/primitives/pagination.d.ts +34 -0
  543. package/dist/primitives/popover.d.ts +11 -0
  544. package/dist/primitives/pretty-json-print.d.ts +4 -0
  545. package/dist/primitives/progress.d.ts +8 -0
  546. package/dist/primitives/prompt-textarea.d.ts +18 -0
  547. package/dist/primitives/qr-code.d.ts +16 -0
  548. package/dist/primitives/radio-group.d.ts +11 -0
  549. package/dist/primitives/resizable.d.ts +23 -0
  550. package/dist/primitives/scroll-area.d.ts +13 -0
  551. package/dist/primitives/search-input.d.ts +13 -0
  552. package/dist/primitives/select.d.ts +26 -0
  553. package/dist/primitives/separator.d.ts +8 -0
  554. package/dist/primitives/sheet.d.ts +40 -0
  555. package/dist/primitives/sidebar.d.ts +69 -0
  556. package/dist/primitives/skeleton.d.ts +4 -0
  557. package/dist/primitives/slider.d.ts +5 -0
  558. package/dist/primitives/sonner.d.ts +5 -0
  559. package/dist/primitives/spinner.d.ts +2 -0
  560. package/dist/primitives/step-indicator.d.ts +9 -0
  561. package/dist/primitives/stepper.d.ts +48 -0
  562. package/dist/primitives/switch.d.ts +8 -0
  563. package/dist/primitives/table.d.ts +34 -0
  564. package/dist/primitives/tabs.d.ts +11 -0
  565. package/dist/primitives/text-area.d.ts +5 -0
  566. package/dist/primitives/text-link.d.ts +5 -0
  567. package/dist/primitives/textarea.d.ts +12 -0
  568. package/dist/primitives/textfield.d.ts +32 -0
  569. package/dist/primitives/toast.d.ts +5 -0
  570. package/dist/primitives/toggle-group.d.ts +13 -0
  571. package/dist/primitives/toggle.d.ts +12 -0
  572. package/dist/primitives/tooltip.d.ts +14 -0
  573. package/dist/primitives/video-player.d.ts +6 -0
  574. package/dist/primitives/youtube-pip-player.d.ts +32 -0
  575. package/dist/primitives-export.js +9650 -0
  576. package/dist/primitives-export.mjs +9234 -0
  577. package/dist/progress.js +62 -0
  578. package/dist/progress.mjs +37 -0
  579. package/dist/project/gantt.js +65 -0
  580. package/dist/project/gantt.mjs +43 -0
  581. package/dist/project/index.js +636 -0
  582. package/dist/project/index.mjs +611 -0
  583. package/dist/project/kanban.js +597 -0
  584. package/dist/project/kanban.mjs +572 -0
  585. package/dist/project/list.js +35 -0
  586. package/dist/project/list.mjs +12 -0
  587. package/dist/radio-group.js +68 -0
  588. package/dist/radio-group.mjs +45 -0
  589. package/dist/resizable.js +72 -0
  590. package/dist/resizable.mjs +48 -0
  591. package/dist/scroll-area.js +89 -0
  592. package/dist/scroll-area.mjs +66 -0
  593. package/dist/select.js +140 -0
  594. package/dist/select.mjs +111 -0
  595. package/dist/separator.js +59 -0
  596. package/dist/separator.mjs +34 -0
  597. package/dist/sheet.js +148 -0
  598. package/dist/sheet.mjs +117 -0
  599. package/dist/skeleton.js +32 -0
  600. package/dist/skeleton.mjs +27 -0
  601. package/dist/slider.js +99 -0
  602. package/dist/slider.mjs +73 -0
  603. package/dist/sonner.js +34 -0
  604. package/dist/sonner.mjs +29 -0
  605. package/dist/spline/index.js +211 -0
  606. package/dist/spline/index.mjs +202 -0
  607. package/dist/spline/media-stack.js +193 -0
  608. package/dist/spline/media-stack.mjs +185 -0
  609. package/dist/spline/player.js +37 -0
  610. package/dist/spline/player.mjs +31 -0
  611. package/dist/src/3d/button.d.ts +26 -0
  612. package/dist/src/3d/card.d.ts +28 -0
  613. package/dist/src/3d/carousel.d.ts +25 -0
  614. package/dist/src/3d/grid.d.ts +48 -0
  615. package/dist/src/3d/index.d.ts +6 -0
  616. package/dist/src/3d/marquee.d.ts +36 -0
  617. package/dist/src/3d/pin.d.ts +7 -0
  618. package/dist/src/animation/apple-cards-carousel.d.ts +35 -0
  619. package/dist/src/animation/apple-hello-effect.d.ts +7 -0
  620. package/dist/src/animation/background.d.ts +102 -0
  621. package/dist/src/animation/beam.d.ts +14 -0
  622. package/dist/src/animation/cursor.d.ts +69 -0
  623. package/dist/src/animation/icon.d.ts +118 -0
  624. package/dist/src/animation/index.d.ts +14 -0
  625. package/dist/src/animation/list.d.ts +125 -0
  626. package/dist/src/animation/number.d.ts +126 -0
  627. package/dist/src/animation/testimonials.d.ts +16 -0
  628. package/dist/src/animation/tooltip.d.ts +8 -0
  629. package/dist/src/avatar.d.ts +1 -0
  630. package/dist/src/badge.d.ts +1 -0
  631. package/dist/src/billing/components/index.d.ts +6 -0
  632. package/dist/src/billing/components/invoice-manager.d.ts +9 -0
  633. package/dist/src/billing/components/payment-manager.d.ts +12 -0
  634. package/dist/src/billing/components/subscription-portal.d.ts +14 -0
  635. package/dist/src/billing/index.d.ts +6 -0
  636. package/dist/src/billing/types/index.d.ts +99 -0
  637. package/dist/src/button.d.ts +1 -0
  638. package/dist/src/calendar-ext/index.d.ts +3 -0
  639. package/dist/src/charts/index.d.ts +64 -0
  640. package/dist/src/code/block.d.ts +21 -0
  641. package/dist/src/code/compare.d.ts +35 -0
  642. package/dist/src/code/diff.d.ts +29 -0
  643. package/dist/src/code/editor.d.ts +22 -0
  644. package/dist/src/code/explorer.d.ts +33 -0
  645. package/dist/src/code/index.d.ts +9 -0
  646. package/dist/src/code/preview.d.ts +30 -0
  647. package/dist/src/code/snippet.d.ts +28 -0
  648. package/dist/src/code/tabs.d.ts +11 -0
  649. package/dist/src/code/terminal.d.ts +33 -0
  650. package/dist/src/desktop/hooks.d.ts +74 -0
  651. package/dist/src/desktop/index.d.ts +6 -0
  652. package/dist/src/desktop/spotlight.d.ts +23 -0
  653. package/dist/src/desktop/window.d.ts +33 -0
  654. package/dist/src/device/index.d.ts +1 -0
  655. package/dist/src/dock/basic.d.ts +19 -0
  656. package/dist/src/dock/index.d.ts +5 -0
  657. package/dist/src/dock/limelight-nav.d.ts +9 -0
  658. package/dist/src/dock/macos.d.ts +16 -0
  659. package/dist/src/dock/menu.d.ts +13 -0
  660. package/dist/src/dock/message.d.ts +14 -0
  661. package/dist/src/form/form.d.ts +23 -0
  662. package/dist/src/form/index.d.ts +1 -0
  663. package/dist/src/hooks/index.d.ts +7 -0
  664. package/dist/src/hooks/use-click-away.d.ts +2 -0
  665. package/dist/src/hooks/use-combined-refs.d.ts +3 -0
  666. package/dist/src/hooks/use-copy-clipboard.d.ts +9 -0
  667. package/dist/src/hooks/use-debounce.d.ts +1 -0
  668. package/dist/src/hooks/use-fill-ids.d.ts +8 -0
  669. package/dist/src/hooks/use-map.d.ts +1 -0
  670. package/dist/src/hooks/use-measure.d.ts +8 -0
  671. package/dist/src/hooks/use-reverse-video-playback.d.ts +1 -0
  672. package/dist/src/hooks/use-scroll-restoration.d.ts +8 -0
  673. package/dist/src/kanban/index.d.ts +2 -0
  674. package/dist/src/mcp/enhanced-server.d.ts +7 -0
  675. package/dist/src/mcp/index.d.ts +6 -0
  676. package/dist/src/mermaid/index.d.ts +2 -0
  677. package/dist/src/navigation/advanced-navigation-bar.d.ts +1 -0
  678. package/dist/src/navigation/ai-model-selector-navigation-bar.d.ts +1 -0
  679. package/dist/src/navigation/app-switcher-navigation-bar.d.ts +1 -0
  680. package/dist/src/navigation/breadcrumb-and-filters-navigation-bar.d.ts +1 -0
  681. package/dist/src/navigation/breadcrumb-navigation-bar.d.ts +1 -0
  682. package/dist/src/navigation/centered-logo-navigation-bar.d.ts +1 -0
  683. package/dist/src/navigation/collaboration-navigation-bar.d.ts +1 -0
  684. package/dist/src/navigation/communication-navigation-bar.d.ts +1 -0
  685. package/dist/src/navigation/context-switcher-navigation-bar.d.ts +1 -0
  686. package/dist/src/navigation/dashboard-navigation-bar.d.ts +1 -0
  687. package/dist/src/navigation/e-commerce-navigation-bar.d.ts +1 -0
  688. package/dist/src/navigation/icon-navigation-bar.d.ts +1 -0
  689. package/dist/src/navigation/index.d.ts +18 -0
  690. package/dist/src/navigation/search-and-toggle-navigation-bar.d.ts +1 -0
  691. package/dist/src/navigation/simple-navigation-bar.d.ts +1 -0
  692. package/dist/src/navigation/status-dashboard-navigation-bar.d.ts +1 -0
  693. package/dist/src/navigation/team-switcher-navigation-bar.d.ts +1 -0
  694. package/dist/src/navigation/two-tier-navigation-bar.d.ts +1 -0
  695. package/dist/src/navigation/underline-navigation-bar.d.ts +1 -0
  696. package/dist/src/pattern/grid.d.ts +110 -0
  697. package/dist/src/pattern/index.d.ts +2 -0
  698. package/dist/src/primitives-export.d.ts +8 -0
  699. package/dist/src/project/gantt.d.ts +12 -0
  700. package/dist/src/project/index.d.ts +3 -0
  701. package/dist/src/project/kanban.d.ts +35 -0
  702. package/dist/src/project/list.d.ts +4 -0
  703. package/dist/src/registry/api.d.ts +37 -0
  704. package/dist/src/registry/index.d.ts +86 -0
  705. package/dist/src/spline/index.d.ts +2 -0
  706. package/dist/src/spline/media-stack.d.ts +14 -0
  707. package/dist/src/spline/player.d.ts +14 -0
  708. package/dist/src/ui/announcement.d.ts +8 -0
  709. package/dist/src/ui/avatar-group.d.ts +11 -0
  710. package/dist/src/ui/banner.d.ts +10 -0
  711. package/dist/src/ui/cursor.d.ts +8 -0
  712. package/dist/src/ui/index.d.ts +17 -0
  713. package/dist/src/ui/marquee.d.ts +9 -0
  714. package/dist/src/ui/pill.d.ts +10 -0
  715. package/dist/src/ui/spinner.d.ts +2 -0
  716. package/dist/src/ui/tags.d.ts +12 -0
  717. package/dist/src/ui/ticker.d.ts +9 -0
  718. package/dist/src/utils.d.ts +4 -0
  719. package/dist/style/theme-provider.d.ts +4 -0
  720. package/dist/switch.js +62 -0
  721. package/dist/switch.mjs +37 -0
  722. package/dist/table.js +110 -0
  723. package/dist/table.mjs +101 -0
  724. package/dist/tabs.js +128 -0
  725. package/dist/tabs.mjs +102 -0
  726. package/dist/tailwind/fontFamily.tailwind.d.ts +8 -0
  727. package/dist/tailwind/fontSize.tailwind.d.ts +36 -0
  728. package/dist/tailwind/index.d.ts +3 -0
  729. package/dist/tailwind/index.js +2023 -0
  730. package/dist/tailwind/index.mjs +2011 -0
  731. package/dist/tailwind/screens.tailwind.d.ts +9 -0
  732. package/dist/tailwind/tw-font-desc.d.ts +6 -0
  733. package/dist/textarea.js +78 -0
  734. package/dist/textarea.mjs +56 -0
  735. package/dist/toggle-group.js +118 -0
  736. package/dist/toggle-group.mjs +93 -0
  737. package/dist/toggle.js +71 -0
  738. package/dist/toggle.mjs +48 -0
  739. package/dist/tooltip.js +67 -0
  740. package/dist/tooltip.mjs +40 -0
  741. package/dist/types/animation-def.d.ts +2 -0
  742. package/dist/types/breakpoints.d.ts +4 -0
  743. package/dist/types/bullet-item.d.ts +6 -0
  744. package/dist/types/button-def.d.ts +29 -0
  745. package/dist/types/dimensions.d.ts +5 -0
  746. package/dist/types/grid-def.d.ts +36 -0
  747. package/dist/types/image-def.d.ts +27 -0
  748. package/dist/types/index.d.ts +14 -0
  749. package/dist/types/index.js +57 -0
  750. package/dist/types/index.mjs +51 -0
  751. package/dist/types/link-def.d.ts +44 -0
  752. package/dist/types/media-stack-def.d.ts +25 -0
  753. package/dist/types/t-shirt-size.d.ts +2 -0
  754. package/dist/types/tshirt-dimensions.d.ts +12 -0
  755. package/dist/types/video-def.d.ts +9 -0
  756. package/dist/ui/announcement.js +134 -0
  757. package/dist/ui/announcement.mjs +112 -0
  758. package/dist/ui/avatar-group.js +88 -0
  759. package/dist/ui/avatar-group.mjs +65 -0
  760. package/dist/ui/banner.js +85 -0
  761. package/dist/ui/banner.mjs +62 -0
  762. package/dist/ui/cursor.js +78 -0
  763. package/dist/ui/cursor.mjs +56 -0
  764. package/dist/ui/index.js +495 -0
  765. package/dist/ui/index.mjs +462 -0
  766. package/dist/ui/marquee.js +74 -0
  767. package/dist/ui/marquee.mjs +52 -0
  768. package/dist/ui/pill.js +85 -0
  769. package/dist/ui/pill.mjs +62 -0
  770. package/dist/ui/spinner.js +28 -0
  771. package/dist/ui/spinner.mjs +26 -0
  772. package/dist/ui/tags.js +117 -0
  773. package/dist/ui/tags.mjs +95 -0
  774. package/dist/ui/ticker.js +73 -0
  775. package/dist/ui/ticker.mjs +51 -0
  776. package/dist/util/blob.d.ts +2 -0
  777. package/dist/util/copy-to-clipboard.d.ts +1 -0
  778. package/dist/util/create-shadow-root.d.ts +7 -0
  779. package/dist/util/date.d.ts +28 -0
  780. package/dist/util/debounce.d.ts +1 -0
  781. package/dist/util/file.d.ts +3 -0
  782. package/dist/util/format-and-abbreviate-as-currency.d.ts +11 -0
  783. package/dist/util/format-text.d.ts +7 -0
  784. package/dist/util/format-to-max-char.d.ts +5 -0
  785. package/dist/util/index-client.d.ts +2 -0
  786. package/dist/util/index.d.ts +36 -0
  787. package/dist/util/index.js +463 -0
  788. package/dist/util/index.mjs +404 -0
  789. package/dist/util/number-abbreviate.d.ts +9 -0
  790. package/dist/util/specifier.d.ts +7 -0
  791. package/dist/util/spread-to-transform.d.ts +7 -0
  792. package/dist/util/step-animation.d.ts +5 -0
  793. package/dist/util/timing.d.ts +1 -0
  794. package/dist/util/toasts.d.ts +2 -0
  795. package/dist/util/two-way-map.d.ts +8 -0
  796. package/dist/util/use-mobile.d.ts +1 -0
  797. package/dist/utils.d.ts +3 -0
  798. package/docs/_registry/index.ts +426 -0
  799. package/docs/_registry/layout/docs-min.tsx +197 -0
  800. package/docs/_registry/layout/page-min.tsx +128 -0
  801. package/docs/components/accordion.tsx +118 -0
  802. package/docs/components/banner.tsx +144 -0
  803. package/docs/components/callout.tsx +112 -0
  804. package/docs/components/card.tsx +52 -0
  805. package/docs/components/codeblock.tsx +258 -0
  806. package/docs/components/dialog/search-algolia.tsx +132 -0
  807. package/docs/components/dialog/search-default.tsx +131 -0
  808. package/docs/components/dialog/search-orama.tsx +143 -0
  809. package/docs/components/dialog/search.tsx +529 -0
  810. package/docs/components/dynamic-codeblock.tsx +129 -0
  811. package/docs/components/files.tsx +81 -0
  812. package/docs/components/github-info.tsx +107 -0
  813. package/docs/components/heading.tsx +33 -0
  814. package/docs/components/image-zoom.css +77 -0
  815. package/docs/components/image-zoom.tsx +58 -0
  816. package/docs/components/index.ts +7 -0
  817. package/docs/components/inline-toc.tsx +48 -0
  818. package/docs/components/sidebar/base.tsx +451 -0
  819. package/docs/components/sidebar/link-item.tsx +65 -0
  820. package/docs/components/sidebar/page-tree.tsx +113 -0
  821. package/docs/components/sidebar/tabs/dropdown.tsx +109 -0
  822. package/docs/components/sidebar/tabs/index.tsx +89 -0
  823. package/docs/components/steps.tsx +9 -0
  824. package/docs/components/tabs.tsx +203 -0
  825. package/docs/components/toc/clerk.tsx +173 -0
  826. package/docs/components/toc/default.tsx +57 -0
  827. package/docs/components/toc/index.tsx +136 -0
  828. package/docs/components/type-table.tsx +174 -0
  829. package/docs/components/ui/accordion.tsx +88 -0
  830. package/docs/components/ui/button.tsx +28 -0
  831. package/docs/components/ui/collapsible.tsx +42 -0
  832. package/docs/components/ui/navigation-menu.tsx +83 -0
  833. package/docs/components/ui/popover.tsx +32 -0
  834. package/docs/components/ui/scroll-area.tsx +59 -0
  835. package/docs/components/ui/tabs.tsx +145 -0
  836. package/docs/contexts/i18n.tsx +56 -0
  837. package/docs/contexts/search.tsx +165 -0
  838. package/docs/contexts/tree.tsx +65 -0
  839. package/docs/css/aspen.css +39 -0
  840. package/docs/css/black.css +39 -0
  841. package/docs/css/catppuccin.css +49 -0
  842. package/docs/css/colors/index.css +51 -0
  843. package/docs/css/dusk.css +47 -0
  844. package/docs/css/emerald.css +39 -0
  845. package/docs/css/layouts/docs.css +1 -0
  846. package/docs/css/layouts/home.css +1 -0
  847. package/docs/css/layouts/notebook.css +1 -0
  848. package/docs/css/neutral.css +7 -0
  849. package/docs/css/ocean.css +48 -0
  850. package/docs/css/preset.css +305 -0
  851. package/docs/css/purple.css +39 -0
  852. package/docs/css/ruby.css +39 -0
  853. package/docs/css/shadcn.css +36 -0
  854. package/docs/css/shiki.css +90 -0
  855. package/docs/css/solar.css +75 -0
  856. package/docs/css/style.css +9 -0
  857. package/docs/css/vitepress.css +77 -0
  858. package/docs/i18n.tsx +30 -0
  859. package/docs/icons.tsx +354 -0
  860. package/docs/layouts/docs/client.tsx +129 -0
  861. package/docs/layouts/docs/index.tsx +321 -0
  862. package/docs/layouts/docs/page/client.tsx +376 -0
  863. package/docs/layouts/docs/page/index.tsx +251 -0
  864. package/docs/layouts/docs/sidebar.tsx +265 -0
  865. package/docs/layouts/home/client.tsx +375 -0
  866. package/docs/layouts/home/index.tsx +51 -0
  867. package/docs/layouts/home/navbar.tsx +55 -0
  868. package/docs/layouts/notebook/client.tsx +281 -0
  869. package/docs/layouts/notebook/index.tsx +461 -0
  870. package/docs/layouts/notebook/page/client.tsx +375 -0
  871. package/docs/layouts/notebook/page/index.tsx +251 -0
  872. package/docs/layouts/notebook/sidebar.tsx +248 -0
  873. package/docs/layouts/shared/index.tsx +89 -0
  874. package/docs/layouts/shared/language-toggle.tsx +66 -0
  875. package/docs/layouts/shared/link-item.tsx +119 -0
  876. package/docs/layouts/shared/search-toggle.tsx +78 -0
  877. package/docs/layouts/shared/theme-toggle.tsx +86 -0
  878. package/docs/mdx.server.tsx +37 -0
  879. package/docs/mdx.tsx +97 -0
  880. package/docs/og.tsx +101 -0
  881. package/docs/page.tsx +85 -0
  882. package/docs/provider/base.tsx +173 -0
  883. package/docs/provider/next.tsx +23 -0
  884. package/docs/provider/react-router.tsx +23 -0
  885. package/docs/provider/tanstack.tsx +23 -0
  886. package/docs/provider/waku.tsx +23 -0
  887. package/docs/source.ts +3 -0
  888. package/docs/theme/typography/LICENSE +21 -0
  889. package/docs/theme/typography/index.ts +201 -0
  890. package/docs/theme/typography/styles.ts +449 -0
  891. package/docs/utils/cn.ts +1 -0
  892. package/docs/utils/is-active.ts +23 -0
  893. package/docs/utils/merge-refs.ts +15 -0
  894. package/docs/utils/use-copy-button.ts +39 -0
  895. package/docs/utils/use-footer-items.ts +27 -0
  896. package/docs/utils/use-is-scroll-top.ts +21 -0
  897. package/finance/README.md +164 -0
  898. package/finance/components/AdvancedChart.tsx +58 -0
  899. package/finance/components/CompanyProfile.tsx +65 -0
  900. package/finance/components/CryptoScreener.tsx +55 -0
  901. package/finance/components/Financials.tsx +71 -0
  902. package/finance/components/ForexScreener.tsx +56 -0
  903. package/finance/components/MarketOverview.tsx +114 -0
  904. package/finance/components/NewsTimeline.tsx +54 -0
  905. package/finance/components/OrderEntry.tsx +157 -0
  906. package/finance/components/OrdersHistory.tsx +103 -0
  907. package/finance/components/PositionsList.tsx +85 -0
  908. package/finance/components/StockScreener.tsx +56 -0
  909. package/finance/components/SymbolInfo.tsx +62 -0
  910. package/finance/components/TechnicalAnalysis.tsx +74 -0
  911. package/finance/components/TickerTape.tsx +66 -0
  912. package/finance/components/TradingPanel.tsx +238 -0
  913. package/finance/components/index.ts +40 -0
  914. package/finance/index.ts +23 -0
  915. package/package.json +803 -0
  916. package/style/drawer.css +163 -0
  917. package/style/globals.css +146 -0
  918. package/style/libreapps-common.css +31 -0
  919. package/style/libreapps-default-colors.css +147 -0
  920. package/style/tailwind.css +200 -0
  921. package/style/theme-provider.tsx +20 -0
@@ -0,0 +1,1646 @@
1
+ "use client";
2
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
+ import { Loader2, ChevronDown, SunMedium, Moon, ArrowUpRight, Menu } from 'lucide-react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
+ import * as React4 from 'react';
8
+ import React4__default, { useState, useEffect, useLayoutEffect } from 'react';
9
+ import Image2 from 'next/image';
10
+ import { Slot } from '@radix-ui/react-slot';
11
+ import { cva } from 'class-variance-authority';
12
+ import Link from 'next/link';
13
+ import { useInView } from 'react-intersection-observer';
14
+
15
+ var __defProp = Object.defineProperty;
16
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
17
+ var __export = (target, all) => {
18
+ for (var name in all)
19
+ __defProp(target, name, { get: all[name], enumerable: true });
20
+ };
21
+
22
+ // blocks/def/space-block.ts
23
+ var SPACE_DEFAULTS = {
24
+ xs: 2,
25
+ sm: 4,
26
+ md: 5,
27
+ lg: 6,
28
+ xl: 8
29
+ };
30
+ function cn(...inputs) {
31
+ return twMerge(clsx(inputs));
32
+ }
33
+ __name(cn, "cn");
34
+ var Accordion = AccordionPrimitive.Root;
35
+ var AccordionItem = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ jsx(AccordionPrimitive.Item, { className: cn("", className), ref, ...props }), "AccordionItem");
36
+ AccordionItem.displayName = "AccordionItem";
37
+ var AccordionTrigger = /* @__PURE__ */ __name(({
38
+ className,
39
+ children,
40
+ hideArrow = false,
41
+ ref,
42
+ ...props
43
+ }) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
44
+ AccordionPrimitive.Trigger,
45
+ {
46
+ className: cn(
47
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
48
+ className
49
+ ),
50
+ ref,
51
+ ...props,
52
+ children: [
53
+ children,
54
+ hideArrow ? null : /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
55
+ ]
56
+ }
57
+ ) }), "AccordionTrigger");
58
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
59
+ var AccordionContent = /* @__PURE__ */ __name(({
60
+ className,
61
+ children,
62
+ ref,
63
+ ...props
64
+ }) => /* @__PURE__ */ jsx(
65
+ AccordionPrimitive.Content,
66
+ {
67
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down w-full overflow-hidden text-sm transition-all",
68
+ ref,
69
+ ...props,
70
+ children: /* @__PURE__ */ jsx("div", { className: cn("pt-0 pb-4", className), children })
71
+ }
72
+ ), "AccordionContent");
73
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
74
+ function Card({ className, ...props }) {
75
+ return /* @__PURE__ */ jsx(
76
+ "div",
77
+ {
78
+ "data-slot": "card",
79
+ className: cn(
80
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
81
+ className
82
+ ),
83
+ ...props
84
+ }
85
+ );
86
+ }
87
+ __name(Card, "Card");
88
+ function CardHeader({ className, ...props }) {
89
+ return /* @__PURE__ */ jsx(
90
+ "div",
91
+ {
92
+ "data-slot": "card-header",
93
+ className: cn(
94
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
95
+ className
96
+ ),
97
+ ...props
98
+ }
99
+ );
100
+ }
101
+ __name(CardHeader, "CardHeader");
102
+ function CardTitle({ className, ...props }) {
103
+ return /* @__PURE__ */ jsx(
104
+ "div",
105
+ {
106
+ "data-slot": "card-title",
107
+ className: cn("leading-none font-semibold", className),
108
+ ...props
109
+ }
110
+ );
111
+ }
112
+ __name(CardTitle, "CardTitle");
113
+ function CardDescription({ className, ...props }) {
114
+ return /* @__PURE__ */ jsx(
115
+ "div",
116
+ {
117
+ "data-slot": "card-description",
118
+ className: cn("text-muted-foreground text-sm", className),
119
+ ...props
120
+ }
121
+ );
122
+ }
123
+ __name(CardDescription, "CardDescription");
124
+ function CardContent({ className, ...props }) {
125
+ return /* @__PURE__ */ jsx(
126
+ "div",
127
+ {
128
+ "data-slot": "card-content",
129
+ className: cn("px-6", className),
130
+ ...props
131
+ }
132
+ );
133
+ }
134
+ __name(CardContent, "CardContent");
135
+ function CardFooter({ className, ...props }) {
136
+ return /* @__PURE__ */ jsx(
137
+ "div",
138
+ {
139
+ "data-slot": "card-footer",
140
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className),
141
+ ...props
142
+ }
143
+ );
144
+ }
145
+ __name(CardFooter, "CardFooter");
146
+
147
+ // util/specifier.ts
148
+ var getPrimaryStartingWith = /* @__PURE__ */ __name((s, toFind) => {
149
+ const tokenArray = s.split(" ");
150
+ return tokenArray.find((tok) => tok.startsWith(`${toFind}-`));
151
+ }, "getPrimaryStartingWith");
152
+ function getSpecifierData(main, getPrimary, getData, def) {
153
+ const primary = getPrimary(main);
154
+ if (primary) {
155
+ return getData(primary) ?? def;
156
+ }
157
+ return def ?? void 0;
158
+ }
159
+ __name(getSpecifierData, "getSpecifierData");
160
+
161
+ // util/index.ts
162
+ function constrain(value, minOrConstrainTo, max) {
163
+ if (typeof value === "number" && typeof minOrConstrainTo === "number" && typeof max === "number") {
164
+ return Math.min(Math.max(value, minOrConstrainTo), max);
165
+ }
166
+ if (typeof value === "object" && typeof minOrConstrainTo === "object") {
167
+ const dim = value;
168
+ const constrainTo = minOrConstrainTo;
169
+ const aspectRatio = dim.w / dim.h;
170
+ const constrainAspectRatio = constrainTo.w / constrainTo.h;
171
+ if (aspectRatio > constrainAspectRatio) {
172
+ return {
173
+ w: constrainTo.w,
174
+ h: constrainTo.w / aspectRatio
175
+ };
176
+ } else {
177
+ return {
178
+ w: constrainTo.h * aspectRatio,
179
+ h: constrainTo.h
180
+ };
181
+ }
182
+ }
183
+ throw new Error("Invalid parameters for constrain function");
184
+ }
185
+ __name(constrain, "constrain");
186
+ function containsToken(text, token) {
187
+ if (!text) return false;
188
+ return text.toLowerCase().includes(token.toLowerCase());
189
+ }
190
+ __name(containsToken, "containsToken");
191
+ function ldMerge(...objects) {
192
+ const result = {};
193
+ for (const obj of objects) {
194
+ if (obj && typeof obj === "object") {
195
+ Object.assign(result, obj);
196
+ }
197
+ }
198
+ return result;
199
+ }
200
+ __name(ldMerge, "ldMerge");
201
+ var ApplyTypography = /* @__PURE__ */ __name(({
202
+ children,
203
+ className = "",
204
+ asTag = "div",
205
+ size = "responsive",
206
+ ...rest
207
+ }) => {
208
+ let typoClasses = "typography gap-3 xs:typography-sm sm:typography sm:gap-4 lg:typography-lg lg:gap-5 xl:typography-xl xl:gap-6 typography-headings:font-heading ";
209
+ switch (size) {
210
+ case "sm":
211
+ {
212
+ typoClasses = "typography typography-sm gap-3 typography-headings:font-heading typography-p:text-sm ";
213
+ }
214
+ break;
215
+ case "base":
216
+ {
217
+ typoClasses = "typography gap-4 typography-headings:font-heading ";
218
+ }
219
+ break;
220
+ case "lg":
221
+ {
222
+ typoClasses = "typography typography-lg gap-5 typography-headings:font-heading typography-p:text-lg ";
223
+ }
224
+ break;
225
+ case "xl":
226
+ {
227
+ typoClasses = "typography typography-xl gap-6 typography-headings:font-heading typography-p:text-lg ";
228
+ }
229
+ break;
230
+ }
231
+ const Tag = asTag;
232
+ return /* @__PURE__ */ jsx(Tag, { ...rest, className: cn(typoClasses, className), children });
233
+ }, "ApplyTypography");
234
+ var VideoPlayer = React4__default.forwardRef(
235
+ ({
236
+ sources,
237
+ ...rest
238
+ }, ref) => {
239
+ return /* @__PURE__ */ jsx("video", { ref, ...rest, children: sources.map((source, index) => /* @__PURE__ */ jsx("source", { src: source }, index)) });
240
+ }
241
+ );
242
+ var video_player_default = VideoPlayer;
243
+ var AccordianBlockComponent = /* @__PURE__ */ __name(({
244
+ block,
245
+ className = ""
246
+ }) => {
247
+ if (block.blockType !== "accordian") {
248
+ return /* @__PURE__ */ jsx(Fragment, { children: "accordian block required" });
249
+ }
250
+ const accordian = block;
251
+ return /* @__PURE__ */ jsx(Accordion, { type: "single", collapsible: true, className: cn("w-full border rounded-xl overflow-hidden", className), children: accordian.items.map((item, index) => /* @__PURE__ */ jsxs(AccordionItem, { className: "border-b last:border-0 overflow-hidden", value: `value-${index}`, children: [
252
+ /* @__PURE__ */ jsx(AccordionTrigger, { className: "px-3 md:px-4 lg:px-6 hover:no-underline hover:bg-level-3", children: /* @__PURE__ */ jsx(ApplyTypography, { children: /* @__PURE__ */ jsx("h6", { className: "leading-[1.2] text-[1.05rem] font-semibold ", children: item.trigger }) }) }),
253
+ /* @__PURE__ */ jsx(AccordionContent, { className: "p-4 border-t bg-level-1", children: /* @__PURE__ */ jsx(ApplyTypography, { className: "flex flex-col justify-start items-start ", children: typeof item.content === "string" ? /* @__PURE__ */ jsx("p", { children: item.content }) : item.content }) })
254
+ ] }, index)) });
255
+ }, "AccordianBlockComponent");
256
+ var accordian_block_default = AccordianBlockComponent;
257
+ var InlineIcon = /* @__PURE__ */ __name(({
258
+ icon,
259
+ size,
260
+ agent,
261
+ className = ""
262
+ }) => {
263
+ if (!icon) return null;
264
+ const phone = agent === "phone";
265
+ if (typeof icon === "string") {
266
+ const _size = phone && size ? size * 0.75 : size;
267
+ return /* @__PURE__ */ jsx(Image2, { src: icon, width: _size, height: _size, alt: "icon", className });
268
+ }
269
+ return /* @__PURE__ */ jsx("div", { className, children: icon });
270
+ }, "InlineIcon");
271
+ var inline_icon_default = InlineIcon;
272
+
273
+ // blocks/components/grid-block/table-borders.mutator.ts
274
+ var getCellClx = /* @__PURE__ */ __name((cellIndex, cellCount, colCount) => {
275
+ const isFirstRow = /* @__PURE__ */ __name(() => cellIndex < colCount, "isFirstRow");
276
+ const isFirstColumn = /* @__PURE__ */ __name(() => cellIndex % colCount === 0, "isFirstColumn");
277
+ const isTLCorner = /* @__PURE__ */ __name(() => cellIndex === 0, "isTLCorner");
278
+ const isTRCorner = /* @__PURE__ */ __name(() => cellIndex === colCount - 1, "isTRCorner");
279
+ const isBLCorner = /* @__PURE__ */ __name(() => cellIndex === cellCount - colCount, "isBLCorner");
280
+ const isBRCorner = /* @__PURE__ */ __name(() => cellIndex === cellCount - 1, "isBRCorner");
281
+ let clx = "border-b md:border-r p-4 md:p-8 lg:p-12 ";
282
+ if (isFirstRow()) {
283
+ clx += "border-t ";
284
+ }
285
+ if (isFirstColumn()) {
286
+ clx += "md:border-l ";
287
+ }
288
+ if (isTLCorner()) {
289
+ clx += "border-t md:rounded-tl-lg ";
290
+ } else if (isTRCorner()) {
291
+ clx += "md:rounded-tr-lg ";
292
+ } else if (isBLCorner()) {
293
+ clx += "md:rounded-bl-lg ";
294
+ } else if (isBRCorner()) {
295
+ clx += "md:rounded-br-lg ";
296
+ }
297
+ return clx;
298
+ }, "getCellClx");
299
+ var gapClx = "gap-0 md:gap-0 xl:gap-0";
300
+ var table_borders_mutator_default = {
301
+ getCellClx,
302
+ gapClx
303
+ };
304
+
305
+ // blocks/components/grid-block/mutator-registry.ts
306
+ var map = /* @__PURE__ */ new Map();
307
+ map.set("style-table-borders", table_borders_mutator_default);
308
+ var mutator_registry_default = /* @__PURE__ */ __name((key) => map.get(key), "default");
309
+ var gridClx = /* @__PURE__ */ __name((d, prefix) => typeof d === "number" ? `${prefix ?? ""}grid-cols-${d} ` : `${prefix ?? ""}grid-cols-${d.columns} ${prefix ?? ""}gap-${d.gap} `, "gridClx");
310
+ var GridBlockComponent = /* @__PURE__ */ __name(({
311
+ block,
312
+ className = "",
313
+ agent,
314
+ children
315
+ }) => {
316
+ if (block.blockType !== "grid") {
317
+ return /* @__PURE__ */ jsx(Fragment, { children: "grid block required" });
318
+ }
319
+ const { cells, grid, specifiers } = block;
320
+ const specified = /* @__PURE__ */ __name((s) => containsToken(specifiers, s), "specified");
321
+ const mutator = specified("style-table-borders") ? mutator_registry_default("style-table-borders") : void 0;
322
+ let clx = "grid ";
323
+ if (agent === "phone") {
324
+ const d = grid.mobile ? grid.mobile : grid.at.xs ? grid.at.xs : grid.at.sm ?? 1;
325
+ clx += gridClx(d);
326
+ } else {
327
+ let defaultSet = false;
328
+ for (const [key, value] of Object.entries(grid.at)) {
329
+ if (!defaultSet) {
330
+ clx += gridClx(value);
331
+ defaultSet = true;
332
+ } else {
333
+ clx += gridClx(value, `${key}:`);
334
+ }
335
+ }
336
+ }
337
+ let getMutatorCellClx = /* @__PURE__ */ __name((ignore) => "", "getMutatorCellClx");
338
+ if (mutator?.getCellClx) {
339
+ const colCount = typeof grid.at.md === "number" ? grid.at.md : grid.at.md.columns;
340
+ const cellCount = cells?.length;
341
+ if (!colCount || !cellCount) {
342
+ throw new Error("GridBlockComponent: using mutator, but colCount and / or cellCount is invalid!");
343
+ }
344
+ getMutatorCellClx = /* @__PURE__ */ __name((cellIndex) => mutator.getCellClx(cellIndex, cellCount, colCount), "getMutatorCellClx");
345
+ }
346
+ return /* @__PURE__ */ jsx("div", { className: cn("grid gap-2 md:gap-4 xl:gap-6", clx, mutator?.gapClx ?? "", className), children: React4__default.Children.count(children) > 0 ? children : cells?.map((cell, index) => /* @__PURE__ */ jsx(ContentComponent, { blocks: cell, agent, className: getMutatorCellClx(index) }, `cell-${index}`)) });
347
+ }, "GridBlockComponent");
348
+ var grid_block_default = GridBlockComponent;
349
+ var BulletCardsBlockComponent = /* @__PURE__ */ __name(({
350
+ block,
351
+ className = "",
352
+ agent
353
+ }) => {
354
+ if (block.blockType !== "bullet-cards") {
355
+ return /* @__PURE__ */ jsx(Fragment, { children: "bullet cards block required" });
356
+ }
357
+ const b = block;
358
+ const specified = /* @__PURE__ */ __name((s) => containsToken(b.specifiers, s), "specified");
359
+ const noBorder = specified("no-card-border") ? "border-0" : "md:border";
360
+ const mobileTextXs = specified("mobile-small-text") ? "text-xs" : "text-sm";
361
+ const borderclx = specified("border-muted-3") ? "md:border-muted-3" : specified("border-muted-1") ? "md:border-muted-1" : "md:border-muted-2";
362
+ return /* @__PURE__ */ jsx(grid_block_default, { block: { blockType: "grid", grid: b.grid }, className, agent, children: b.cards.map((card, index) => /* @__PURE__ */ jsxs("div", { className: cn(
363
+ "px-0 sm:px-4 py-1 md:py-4 rounded-lg flex flex-row justify-start items-center not-typography text-foreground",
364
+ noBorder,
365
+ borderclx
366
+ ), children: [
367
+ /* @__PURE__ */ jsx(inline_icon_default, { icon: card.icon, size: b.iconSize ?? 28, agent, className: "shrink-0 mr-2 md:mr-4 " }),
368
+ /* @__PURE__ */ jsx("p", { className: cn("m-0 sm:text-base", mobileTextXs), children: card.text })
369
+ ] }, index)) });
370
+ }, "BulletCardsBlockComponent");
371
+ var bullet_cards_block_default = BulletCardsBlockComponent;
372
+ var buttonVariants = cva(
373
+ 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',
374
+ {
375
+ variants: {
376
+ variant: {
377
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
378
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
379
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
380
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
381
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
382
+ link: "text-primary underline-offset-4 hover:underline",
383
+ // Keep the additional LibreApps variants for backward compatibility
384
+ primary: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
385
+ linkFG: "text-primary underline-offset-4 hover:underline",
386
+ linkMuted: "text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"
387
+ },
388
+ size: {
389
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
390
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
391
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
392
+ icon: "size-9",
393
+ "icon-sm": "size-8",
394
+ "icon-lg": "size-10"
395
+ }
396
+ },
397
+ defaultVariants: {
398
+ variant: "default",
399
+ size: "default"
400
+ }
401
+ }
402
+ );
403
+ var Button = React4.forwardRef(
404
+ ({ className, variant = "default", size = "default", asChild = false, isLoading = false, children, ...props }, ref) => {
405
+ const Comp = asChild ? Slot : "button";
406
+ return /* @__PURE__ */ jsxs(
407
+ Comp,
408
+ {
409
+ "data-slot": "button",
410
+ "data-variant": variant,
411
+ "data-size": size,
412
+ className: cn(buttonVariants({ variant, size, className })),
413
+ ref,
414
+ ...props,
415
+ children: [
416
+ isLoading ? /* @__PURE__ */ jsx(
417
+ Loader2,
418
+ {
419
+ className: cn("h-4 w-4 animate-spin", size !== "icon" && size !== "icon-sm" && size !== "icon-lg" && "mr-2")
420
+ }
421
+ ) : null,
422
+ isLoading && (size === "icon" || size === "icon-sm" || size === "icon-lg") ? null : children
423
+ ]
424
+ }
425
+ );
426
+ }
427
+ );
428
+ Button.displayName = "Button";
429
+ var DialogVideoController = /* @__PURE__ */ __name(({
430
+ children
431
+ }) => {
432
+ const [open, setOpen] = useState(false);
433
+ const onOpenChange = /* @__PURE__ */ __name((b) => {
434
+ setOpen(b);
435
+ const videos = document.getElementsByTagName("video");
436
+ const videoArray = Array.from(videos);
437
+ videoArray.forEach((v) => {
438
+ if (b) {
439
+ v.pause();
440
+ } else {
441
+ v.play();
442
+ }
443
+ });
444
+ }, "onOpenChange");
445
+ const updatedChildren = React4__default.Children.map(
446
+ children,
447
+ (child) => React4__default.cloneElement(
448
+ child,
449
+ { open, onOpenChange }
450
+ )
451
+ );
452
+ return /* @__PURE__ */ jsx(Fragment, { children: updatedChildren });
453
+ }, "DialogVideoController");
454
+ var dialog_video_controller_default = DialogVideoController;
455
+ var ActionButton = /* @__PURE__ */ __name(({
456
+ def,
457
+ className = "",
458
+ ...rest
459
+ }) => {
460
+ if (def.action.type === "modal") {
461
+ const m = def.action.def;
462
+ const Modal = m.Comp;
463
+ return /* @__PURE__ */ jsx(dialog_video_controller_default, { children: /* @__PURE__ */ jsx(
464
+ Modal,
465
+ {
466
+ title: m.title,
467
+ byline: m.byline,
468
+ buttonText: def.text,
469
+ buttonProps: { ...def.props, ...rest, className: cn(def.props?.className ?? "", className) },
470
+ action: m.action,
471
+ actionEnclosure: m.actionEnclosure,
472
+ ...m.props
473
+ }
474
+ ) });
475
+ }
476
+ return /* @__PURE__ */ jsx(Fragment, {});
477
+ }, "ActionButton");
478
+ var action_button_default = ActionButton;
479
+
480
+ // primitives/icons/index.ts
481
+ var icons_exports = {};
482
+ __export(icons_exports, {
483
+ burger: () => Menu,
484
+ gitHub: () => github_default,
485
+ linkOut: () => ArrowUpRight,
486
+ moon: () => Moon,
487
+ sun: () => SunMedium,
488
+ youtube: () => youtube_logo_default
489
+ });
490
+ var YouTubeLogo = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsx(
491
+ "svg",
492
+ {
493
+ viewBox: "0 0 256 256",
494
+ xmlns: "http://www.w3.org/2000/svg",
495
+ ...props,
496
+ children: /* @__PURE__ */ jsxs(
497
+ "g",
498
+ {
499
+ style: {
500
+ stroke: "none",
501
+ strokeWidth: 0,
502
+ strokeDasharray: "none",
503
+ strokeLinecap: "butt",
504
+ strokeLinejoin: "miter",
505
+ strokeMiterlimit: 10,
506
+ fill: "none",
507
+ fillRule: "nonzero",
508
+ opacity: 1
509
+ },
510
+ transform: "translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)",
511
+ children: [
512
+ /* @__PURE__ */ jsx(
513
+ "path",
514
+ {
515
+ d: "M 88.119 23.338 c -1.035 -3.872 -4.085 -6.922 -7.957 -7.957 C 73.144 13.5 45 13.5 45 13.5 s -28.144 0 -35.162 1.881 c -3.872 1.035 -6.922 4.085 -7.957 7.957 C 0 30.356 0 45 0 45 s 0 14.644 1.881 21.662 c 1.035 3.872 4.085 6.922 7.957 7.957 C 16.856 76.5 45 76.5 45 76.5 s 28.144 0 35.162 -1.881 c 3.872 -1.035 6.922 -4.085 7.957 -7.957 C 90 59.644 90 45 90 45 S 90 30.356 88.119 23.338 z",
516
+ style: {
517
+ stroke: "none",
518
+ strokeWidth: 1,
519
+ strokeDasharray: "none",
520
+ strokeLinecap: "butt",
521
+ strokeLinejoin: "miter",
522
+ strokeMiterlimit: 10,
523
+ fill: "red",
524
+ fillRule: "nonzero",
525
+ opacity: 1
526
+ },
527
+ transform: " matrix(1 0 0 1 0 0) ",
528
+ strokeLinecap: "round"
529
+ }
530
+ ),
531
+ /* @__PURE__ */ jsx(
532
+ "polygon",
533
+ {
534
+ points: "36,58.5 59.38,45 36,31.5 ",
535
+ style: {
536
+ stroke: "none",
537
+ strokeWidth: 1,
538
+ strokeDasharray: "none",
539
+ strokeLinecap: "butt",
540
+ strokeLinejoin: "miter",
541
+ strokeMiterlimit: 10,
542
+ fill: "white",
543
+ fillRule: "nonzero",
544
+ opacity: 1
545
+ },
546
+ transform: "matrix(1 0 0 1 0 0)"
547
+ }
548
+ )
549
+ ]
550
+ }
551
+ )
552
+ }
553
+ ), "YouTubeLogo");
554
+ var youtube_logo_default = YouTubeLogo;
555
+ var GitHub = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 438.549 438.549", ...props, children: /* @__PURE__ */ jsx(
556
+ "path",
557
+ {
558
+ fill: "currentColor",
559
+ d: "M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"
560
+ }
561
+ ) }), "GitHub");
562
+ var github_default = GitHub;
563
+ var LinkElement = /* @__PURE__ */ __name(({
564
+ def,
565
+ // DO NOT provide a default to any of the props that also appear in def!
566
+ onClick,
567
+ size,
568
+ variant,
569
+ icon,
570
+ iconAfter,
571
+ className = "",
572
+ children
573
+ }) => {
574
+ const {
575
+ href,
576
+ newTab,
577
+ variant: defVariant,
578
+ size: defSize,
579
+ title
580
+ } = def;
581
+ const linkProps = {};
582
+ if (href.startsWith("http") || href.startsWith("mailto")) {
583
+ linkProps.rel = "noreferrer noopener";
584
+ if (newTab ?? true) {
585
+ linkProps.target = "_blank";
586
+ }
587
+ } else if (newTab) {
588
+ linkProps.target = "_blank";
589
+ }
590
+ const toSpread = {
591
+ href,
592
+ ...onClick ? { onClick } : {},
593
+ ...linkProps
594
+ };
595
+ const Contents = /* @__PURE__ */ __name(() => {
596
+ if (React4__default.Children.count(children) > 0) return children;
597
+ const _icon = icon ? icon : def.icon ? def.icon : void 0;
598
+ const _iconAfter = iconAfter ? iconAfter : def.iconAfter ? def.iconAfter : false;
599
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
600
+ _icon && !_iconAfter && /* @__PURE__ */ jsx("div", { className: "pr-1", children: _icon }),
601
+ title && /* @__PURE__ */ jsx("div", { children: title }),
602
+ _icon && _iconAfter && /* @__PURE__ */ jsx("div", { className: "pl-1", children: _icon })
603
+ ] });
604
+ }, "Contents");
605
+ return /* @__PURE__ */ jsx(
606
+ Link,
607
+ {
608
+ className: cn(
609
+ buttonVariants({
610
+ variant: variant ? variant : defVariant ? defVariant : "link",
611
+ size: size ? size : defSize || "default"
612
+ }),
613
+ // This is a "label only" LinkDef. cf: footer"
614
+ href.length > 0 || onClick ? "" : "pointer-events-none",
615
+ className
616
+ ),
617
+ ...toSpread,
618
+ children: /* @__PURE__ */ jsx(Contents, {})
619
+ }
620
+ );
621
+ }, "LinkElement");
622
+ var link_element_default = LinkElement;
623
+ var CtaBlockComponent = /* @__PURE__ */ __name(({
624
+ block,
625
+ className = "",
626
+ // assigned to each item
627
+ itemClasses = "",
628
+ itemSize,
629
+ // do not provide default. this is an override to the def
630
+ renderLink,
631
+ renderButton,
632
+ agent
633
+ }) => {
634
+ if (block.blockType !== "cta") {
635
+ return /* @__PURE__ */ jsx(Fragment, { children: "cta block required" });
636
+ }
637
+ const { elements, specifiers } = block;
638
+ let wrapperClasses = "";
639
+ let itemclx = "";
640
+ if (containsToken(specifiers, "fill")) {
641
+ wrapperClasses += "w-full ";
642
+ itemclx += "grow shrink !min-w-0";
643
+ } else if (containsToken(specifiers, "left")) {
644
+ wrapperClasses += "md:justify-start ";
645
+ } else if (containsToken(specifiers, "right")) {
646
+ wrapperClasses += "md:justify-end ";
647
+ } else {
648
+ wrapperClasses += "md:justify-center ";
649
+ }
650
+ const mobile2Columns = containsToken(specifiers, "mobile-2-columns");
651
+ const fillEvenly = !containsToken(specifiers, "desktop-dont-fill");
652
+ const mobileCenterFirstIfOdd = containsToken(specifiers, "mobile-center-first-if-odd");
653
+ const mobileOddFullWidth = containsToken(specifiers, "mobile-odd-full-width");
654
+ let layoutclx = void 0;
655
+ if (elements.length > 1) {
656
+ let resetMinWidth = false;
657
+ if (mobile2Columns) {
658
+ layoutclx = "grid grid-cols-2 gap-2 self-stretch ";
659
+ resetMinWidth = true;
660
+ }
661
+ if (fillEvenly) {
662
+ layoutclx = layoutclx ?? "grid grid-cols-2 gap-2 self-stretch";
663
+ resetMinWidth = true;
664
+ } else {
665
+ layoutclx = layoutclx ? layoutclx + "md:flex md:flex-row md:justify-center " : "flex flex-row justify-center ";
666
+ }
667
+ itemclx += resetMinWidth ? "!min-w-0 " : "";
668
+ }
669
+ layoutclx = layoutclx ?? "flex flex-col items-stretch gap-2 self-stretch md:flex-row sm:justify-center ";
670
+ const getMobileColSpanClx = /* @__PURE__ */ __name((index, total) => {
671
+ const indexToCenter = total % 2 === 0 ? -1 : mobileCenterFirstIfOdd ? 0 : total - 1;
672
+ const widthclx = mobileOddFullWidth ? "w-full " : "w-3/5 mx-auto ";
673
+ return agent === "phone" && mobile2Columns && index === indexToCenter ? "col-span-2 " + widthclx : "";
674
+ }, "getMobileColSpanClx");
675
+ return /* @__PURE__ */ jsx("div", { className: cn(
676
+ layoutclx,
677
+ wrapperClasses,
678
+ className
679
+ ), children: elements.map((element, index) => {
680
+ const twoColClx = getMobileColSpanClx(index, elements.length);
681
+ if (element.title) {
682
+ const def = element;
683
+ return renderLink ? renderLink(def, index) : /* @__PURE__ */ jsx(
684
+ link_element_default,
685
+ {
686
+ def,
687
+ size: itemSize,
688
+ className: cn(itemclx, itemClasses, twoColClx)
689
+ },
690
+ index
691
+ );
692
+ } else {
693
+ const def = element;
694
+ return renderButton ? renderButton(def, index) : /* @__PURE__ */ jsx(
695
+ action_button_default,
696
+ {
697
+ def,
698
+ size: itemSize,
699
+ className: cn(itemclx, itemClasses, twoColClx)
700
+ },
701
+ index
702
+ );
703
+ }
704
+ }) });
705
+ }, "CtaBlockComponent");
706
+ var cta_block_default = CtaBlockComponent;
707
+ var ImageBlockComponent = /* @__PURE__ */ __name(({
708
+ block,
709
+ className = "",
710
+ agent,
711
+ constraintTo
712
+ }) => {
713
+ if (block.blockType !== "image") {
714
+ return /* @__PURE__ */ jsx(Fragment, { children: "image block required" });
715
+ }
716
+ const {
717
+ src,
718
+ alt,
719
+ dim,
720
+ props,
721
+ sizes,
722
+ fullWidthOnMobile,
723
+ svgFillClass,
724
+ specifiers
725
+ } = block;
726
+ const specified = /* @__PURE__ */ __name((s) => containsToken(specifiers, s), "specified");
727
+ const toSpread = {};
728
+ if (props?.fill === void 0) {
729
+ const resolved = constraintTo ? constrain(dim, constraintTo) : dim;
730
+ toSpread.width = resolved.w;
731
+ toSpread.height = resolved.h;
732
+ }
733
+ let _alt;
734
+ if (alt) {
735
+ _alt = alt;
736
+ } else {
737
+ const tokens = src.split("/");
738
+ _alt = tokens.length > 0 ? tokens[tokens.length] : src;
739
+ }
740
+ const _svgFillClass = svgFillClass ?? "";
741
+ if (agent === "phone") {
742
+ if (specified("mobile-full-width") || fullWidthOnMobile) {
743
+ const toSpread2 = {
744
+ style: {
745
+ width: "100%",
746
+ height: "auto",
747
+ maxWidth: "420px"
748
+ },
749
+ sizes: "100vw"
750
+ };
751
+ toSpread2.width = dim.w;
752
+ toSpread2.height = dim.h;
753
+ return /* @__PURE__ */ jsx("div", { className: "flex flex-col items-center w-full", children: /* @__PURE__ */ jsx(Image2, { src, alt: _alt, ...toSpread2, className: cn(_svgFillClass, className) }) });
754
+ } else if (!specified("mobile-no-scale")) {
755
+ if (props?.style?.width === "auto" && typeof props.style.height === "number") {
756
+ props.style.height = props.style.height * 0.75;
757
+ } else if (props?.style?.height === "auto" && typeof props?.style?.width === "number") {
758
+ props.style.width = props.style.width * 0.75;
759
+ } else if (props?.style && !props?.style.width) {
760
+ toSpread.width = dim.w * 0.75;
761
+ toSpread.height = dim.h * 0.75;
762
+ }
763
+ }
764
+ }
765
+ if (sizes) {
766
+ toSpread.sizes = sizes;
767
+ }
768
+ const right = containsToken(specifiers, "right");
769
+ const center = containsToken(specifiers, "center");
770
+ const alignSelfClx = right ? "self-end" : center ? "self-center" : "self-start";
771
+ return props?.fill ? /* @__PURE__ */ jsx("div", { className: "relative w-full h-full", children: /* @__PURE__ */ jsx(Image2, { src, alt: _alt, ...toSpread, ...props, className: cn(_svgFillClass, "max-w-[70vw] mx-auto", className) }) }) : /* @__PURE__ */ jsx(Image2, { src, alt: _alt, ...toSpread, ...props, className: cn(alignSelfClx, _svgFillClass, "max-w-[70vw] mx-auto", className) });
772
+ }, "ImageBlockComponent");
773
+ var image_block_default = ImageBlockComponent;
774
+ var VideoBlockComponent = /* @__PURE__ */ __name(({
775
+ block,
776
+ className = "",
777
+ agent,
778
+ usePoster = false,
779
+ size = "md",
780
+ constrainTo
781
+ }) => {
782
+ const [_dim, setDim] = useState(void 0);
783
+ const onResize = /* @__PURE__ */ __name(() => {
784
+ setDim({
785
+ w: window.innerWidth,
786
+ h: window.innerHeight
787
+ });
788
+ }, "onResize");
789
+ const windowDefined = typeof window !== "undefined";
790
+ useEffect(() => {
791
+ if (window && agent === "desktop") {
792
+ window.addEventListener("resize", onResize);
793
+ return () => window.removeEventListener("resize", onResize);
794
+ }
795
+ }, [windowDefined]);
796
+ useLayoutEffect(() => {
797
+ onResize();
798
+ }, []);
799
+ if (block.blockType !== "video") {
800
+ return /* @__PURE__ */ jsx(Fragment, { children: "video block required" });
801
+ }
802
+ const b = block;
803
+ const ar = b.dim.md.w / b.dim.md.h;
804
+ if (agent === "phone") {
805
+ if (b.sizing?.mobile?.vw) {
806
+ if (!_dim) {
807
+ const width = `${b.sizing.mobile.vw}vw`;
808
+ return /* @__PURE__ */ jsx("div", { className: "dummy-div", style: {
809
+ maxWidth: "100%",
810
+ maxHeight: "100%",
811
+ width,
812
+ height: `calc(${width}/${ar})`,
813
+ backgroundImage: `url(${b.poster})`,
814
+ backgroundSize: "contain",
815
+ backgroundRepeat: "no-repeat"
816
+ } });
817
+ } else {
818
+ const width = b.sizing.mobile.vw / 100 * _dim.w;
819
+ const dim2 = {
820
+ h: width / ar,
821
+ w: width
822
+ };
823
+ return /* @__PURE__ */ jsx(
824
+ video_player_default,
825
+ {
826
+ className: cn("mx-auto", className),
827
+ sources: b.sources,
828
+ width: dim2.w,
829
+ height: dim2.h,
830
+ ...b.videoProps
831
+ }
832
+ );
833
+ }
834
+ }
835
+ } else if (b.sizing?.vh) {
836
+ if (!_dim) {
837
+ const height = `${b.sizing.vh}vh`;
838
+ return /* @__PURE__ */ jsx("div", { className: "dummy-div", style: {
839
+ maxWidth: "100%",
840
+ maxHeight: "100%",
841
+ height,
842
+ width: `calc(${height}*${ar})`,
843
+ backgroundImage: `url(${b.poster})`,
844
+ backgroundSize: "contain",
845
+ backgroundRepeat: "no-repeat"
846
+ } });
847
+ } else {
848
+ const height = b.sizing.vh / 100 * _dim.h;
849
+ const dim2 = {
850
+ h: height,
851
+ w: height * ar
852
+ };
853
+ return /* @__PURE__ */ jsx(
854
+ video_player_default,
855
+ {
856
+ className: cn("mx-auto", className),
857
+ sources: b.sources,
858
+ width: dim2.w,
859
+ height: dim2.h,
860
+ ...b.videoProps
861
+ }
862
+ );
863
+ }
864
+ }
865
+ const videoDims = b.dim;
866
+ const dim = size && size in videoDims ? videoDims[size] : videoDims.md;
867
+ const conDim = constrainTo ? constrain(dim, constrainTo) : dim;
868
+ return usePoster ? /* @__PURE__ */ jsx(Image2, { src: b.poster, alt: "image", width: conDim.w, height: conDim.h, className }) : /* @__PURE__ */ jsx(
869
+ video_player_default,
870
+ {
871
+ className: cn("mx-auto", className),
872
+ sources: b.sources,
873
+ width: conDim.w,
874
+ height: conDim.h,
875
+ ...b.videoProps
876
+ }
877
+ );
878
+ }, "VideoBlockComponent");
879
+ var video_block_default = VideoBlockComponent;
880
+
881
+ // blocks/components/card-block/util.ts
882
+ var getTypographySize = /* @__PURE__ */ __name((s) => getSpecifierData(
883
+ s,
884
+ (s2) => getPrimaryStartingWith(s2, "typography"),
885
+ (s2) => {
886
+ const subTokenArray = s2.split("-");
887
+ return subTokenArray[subTokenArray.length - 1];
888
+ },
889
+ "responsive"
890
+ ), "getTypographySize");
891
+ var ArrowLinkElement = /* @__PURE__ */ __name(({
892
+ def
893
+ }) => /* @__PURE__ */ jsx(
894
+ link_element_default,
895
+ {
896
+ def,
897
+ className: "justify-between",
898
+ variant: "link",
899
+ icon: /* @__PURE__ */ jsx(icons_exports.linkOut, { className: "w-[18px] h-[18px]" }),
900
+ iconAfter: true
901
+ }
902
+ ), "ArrowLinkElement");
903
+ var link_out_button_default = ArrowLinkElement;
904
+ var CardBlockComponent = /* @__PURE__ */ __name(({
905
+ block,
906
+ className = "",
907
+ contentClassName = ""
908
+ }) => {
909
+ if (block.blockType !== "card") {
910
+ return /* @__PURE__ */ jsx(Fragment, { children: "card block required" });
911
+ }
912
+ const card = block;
913
+ const has = /* @__PURE__ */ __name((s) => card.specifiers?.includes(s), "has");
914
+ const ghost = has("ghost");
915
+ const contentclx = (has("content-left") ? "items-start " : " items-center ") + (has("content-top") ? "!justify-start" : "") + contentClassName;
916
+ const disabledBorder = has("appear-disabled") ? " border-muted-4" : " border-muted-3";
917
+ const outerBorder = has("no-outer-border") || ghost ? " border-0" : "";
918
+ const innerBorder = ghost ? " border-0" : "";
919
+ const paddingclx = ghost ? " px-0 py-0" : " px-6 py-3";
920
+ const mainGap = ghost ? " gap-2" : "";
921
+ const disabledText = has("appear-disabled") ? " text-muted-2" : "";
922
+ const disabledTypoText = has("appear-disabled") ? " typography-p:text-muted-2" : "";
923
+ const bgclx = has("bg-card") ? " bg-level-1" : "";
924
+ const titleclx = (has("heading-style-title") ? " font-heading text-base leading-tight" : "") + (ghost ? " text-left md:text-xl" : "");
925
+ const typoSize = card.specifiers ? getTypographySize(card.specifiers) : "responsive";
926
+ const typoclx = typoSize === "sm" ? "typography-sm typography-p:text-sm " : typoSize === "lg" ? "typography-lg " : "";
927
+ const contentBefore = has("content-before");
928
+ const iconInline = has("icon-inline");
929
+ const contentOnHover = has("reveal-content-on-hover");
930
+ const Header2 = /* @__PURE__ */ __name(({
931
+ inContent = false,
932
+ className: className2 = ""
933
+ }) => card.title || card.byline || card.icon ? /* @__PURE__ */ jsxs(CardHeader, { className: "not-typography text-accent" + disabledText + paddingclx + innerBorder + className2, children: [
934
+ /* @__PURE__ */ jsxs("div", { className: iconInline || inContent ? "flex flex-row justify-start items-end my-3" : "", children: [
935
+ card.icon && !card.iconAfter && /* @__PURE__ */ jsx("div", { className: iconInline ? "mr-1" : "mb-2", children: card.icon }),
936
+ card.title && /* @__PURE__ */ jsx(CardTitle, { className: "text-center text-lg font-medium" + titleclx + (iconInline ? " md:text-xl/none" : ""), children: card.title }),
937
+ card.icon && card.iconAfter && /* @__PURE__ */ jsx("div", { className: iconInline ? "ml-1" : "my-1", children: card.icon })
938
+ ] }),
939
+ card.byline && /* @__PURE__ */ jsx(CardDescription, { children: card.byline })
940
+ ] }) : null, "Header");
941
+ const MediaAndContent = /* @__PURE__ */ __name(({
942
+ className: className2 = ""
943
+ }) => has("media-left") ? (
944
+ // media left layout
945
+ /* @__PURE__ */ jsxs(CardContent, { className: "flex flex-row justify-start items-stretch p-0 grow " + disabledBorder + bgclx + contentclx + className2, children: [
946
+ card.media && /* @__PURE__ */ jsx("div", { className: "box-content grow-0 not-typography" + paddingclx, style: {
947
+ // If this layout has been specified, assume media is video, and that the 'sm' dim exists.
948
+ width: card.media.dim.sm.w
949
+ }, children: /* @__PURE__ */ jsx(
950
+ video_block_default,
951
+ {
952
+ block: card.media,
953
+ usePoster: has("video-use-poster"),
954
+ size: "sm",
955
+ className: has("appear-disabled") ? "opacity-[0.6]" : ""
956
+ }
957
+ ) }),
958
+ card.content && /* @__PURE__ */ jsx(ApplyTypography, { className: "grow border-l flex flex-col justify-center " + disabledTypoText + paddingclx + disabledBorder + contentclx, size: typoSize, children: typeof card.content === "string" ? /* @__PURE__ */ jsx("p", { children: card.content }) : card.content })
959
+ ] })
960
+ ) : (
961
+ // default layout
962
+ /* @__PURE__ */ jsxs(CardContent, { className: "grow typography flex flex-col justify-center " + typoclx + disabledTypoText + bgclx + paddingclx + contentclx + (has("full-width") ? " p-0 " : " ") + className2, children: [
963
+ contentOnHover && /* @__PURE__ */ jsx(Header2, { inContent: true }),
964
+ card.content && contentBefore && (typeof card.content === "string" ? /* @__PURE__ */ jsx("p", { children: card.content }) : card.content),
965
+ card.media && (card.media.blockType === "image" ? /* @__PURE__ */ jsx(image_block_default, { block: card.media }) : /* @__PURE__ */ jsx(video_block_default, { block: card.media })),
966
+ card.content && !contentBefore && (typeof card.content === "string" ? /* @__PURE__ */ jsx("p", { children: card.content }) : card.content)
967
+ ] })
968
+ ), "MediaAndContent");
969
+ const Footer = /* @__PURE__ */ __name(() => !card.cta ? null : has("links-w-arrow") ? (
970
+ // links w arrow
971
+ /* @__PURE__ */ jsx(CardFooter, { className: "typography typography-a:text-muted-2 typography-a:hover:text-muted-1 typography-a:text-xs typography-a:no-underline typography-a:hover:underline flex flex-col justify-start items-stretch " + paddingclx, children: /* @__PURE__ */ jsx(
972
+ cta_block_default,
973
+ {
974
+ block: card.cta,
975
+ renderLink: (def, key) => /* @__PURE__ */ jsx(link_out_button_default, { def }, key)
976
+ }
977
+ ) })
978
+ ) : (
979
+ // default
980
+ /* @__PURE__ */ jsx(CardFooter, { className: "grid grid-cols-1 gap-2 md:flex md:flex-row md:justify-center " + paddingclx, children: /* @__PURE__ */ jsx(cta_block_default, { block: card.cta }) })
981
+ ), "Footer");
982
+ return /* @__PURE__ */ jsxs(Card, { className: cn(
983
+ "flex flex-col self-stretch " + (contentOnHover ? "group relative" : "") + disabledBorder + outerBorder + bgclx + mainGap,
984
+ className
985
+ ), children: [
986
+ /* @__PURE__ */ jsx(Header2, { className: contentOnHover ? " absolute top-[0px] left-[0px] w-full hidden " : "" }),
987
+ /* @__PURE__ */ jsx(MediaAndContent, { className: contentOnHover ? " bg-gradient-to-t from-secondary to-65% items-start justify-start rounded-lg p-4 transition-opacity duration-500 ease-out opacity-100 " : "" }),
988
+ /* @__PURE__ */ jsx(Footer, {})
989
+ ] });
990
+ }, "CardBlockComponent");
991
+ var card_block_default = CardBlockComponent;
992
+ var VariantContentLeft = /* @__PURE__ */ __name(({
993
+ block,
994
+ agent,
995
+ className,
996
+ headingclx,
997
+ contentclx,
998
+ footerclx
999
+ }) => {
1000
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1001
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
1002
+ block.topContent && /* @__PURE__ */ jsx(ContentComponent, { blocks: block.topContent, agent, className: "self-center ml-6 mt-6" }),
1003
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
1004
+ block.heading && /* @__PURE__ */ jsx(CardHeader, { className: cn("typography-img:m-0", headingclx), children: /* @__PURE__ */ jsx(enh_heading_block_default, { block: block.heading, className: "text-accent", agent }) }),
1005
+ block.content && /* @__PURE__ */ jsx(CardContent, { className: cn("typography flex flex-col justify-start", contentclx, className), children: /* @__PURE__ */ jsx(ContentComponent, { blocks: block.content, agent }) })
1006
+ ] })
1007
+ ] }),
1008
+ block.cta && /* @__PURE__ */ jsx(CardFooter, { className: cn("grid grid-cols-1 gap-2 md:flex md:flex-row md:justify-center mx-auto", footerclx), children: /* @__PURE__ */ jsx(cta_block_default, { block: block.cta, agent }) })
1009
+ ] });
1010
+ }, "VariantContentLeft");
1011
+ var variant_content_left_default = VariantContentLeft;
1012
+ var _getClx = /* @__PURE__ */ __name((specifier, section) => {
1013
+ let result = "";
1014
+ if (specifier === "big-padding") {
1015
+ switch (section) {
1016
+ // defaults: p-4 lg:p-6 xl:p-8
1017
+ case "header":
1018
+ {
1019
+ result = "md:p-8 lg:p-12 xl:p-16";
1020
+ }
1021
+ break;
1022
+ }
1023
+ }
1024
+ if (specifier === "big-padding-content") {
1025
+ switch (section) {
1026
+ case "content":
1027
+ {
1028
+ result = "md:p-8 lg:p-12 xl:p-16";
1029
+ }
1030
+ break;
1031
+ }
1032
+ } else if (specifier === "no-inner-borders") {
1033
+ switch (section) {
1034
+ case "header":
1035
+ {
1036
+ result = "border-none";
1037
+ }
1038
+ break;
1039
+ case "footer":
1040
+ {
1041
+ result = "border-t-0";
1042
+ }
1043
+ break;
1044
+ }
1045
+ }
1046
+ return result;
1047
+ }, "_getClx");
1048
+ var CarteBlancheBlockComponent = /* @__PURE__ */ __name(({
1049
+ block,
1050
+ className = "",
1051
+ agent
1052
+ }) => {
1053
+ if (block.blockType !== "carte-blanche") {
1054
+ return /* @__PURE__ */ jsx(Fragment, { children: "carte blanche block required" });
1055
+ }
1056
+ const b = block;
1057
+ const specified = /* @__PURE__ */ __name((s) => containsToken(b.specifiers, s), "specified");
1058
+ const getClx = /* @__PURE__ */ __name((specifier, section) => specified(specifier) ? _getClx(specifier, section) : "", "getClx");
1059
+ const headingclx = [
1060
+ getClx("big-padding", "header"),
1061
+ getClx("no-inner-borders", "header")
1062
+ ].join(" ");
1063
+ const contentclx = [
1064
+ getClx("big-padding-content", "content")
1065
+ ].join(" ");
1066
+ const footerclx = [
1067
+ getClx("no-inner-borders", "footer")
1068
+ ].join(" ");
1069
+ const noOuterBorders = specified("no-outer-borders");
1070
+ const contentLeft = specified("variant-content-left");
1071
+ const mobileContentLeft = specified("variant-mobile-content-left");
1072
+ return /* @__PURE__ */ jsx(Card, { className: cn("flex flex-col", className, noOuterBorders ? "border-none" : ""), children: contentLeft || mobileContentLeft && agent === "phone" ? /* @__PURE__ */ jsx(variant_content_left_default, { block: b, agent, className, headingclx, contentclx, footerclx }) : /* @__PURE__ */ jsxs(Fragment, { children: [
1073
+ (b.heading || b.topContent) && /* @__PURE__ */ jsxs(CardHeader, { className: cn("typography-img:m-0", headingclx), children: [
1074
+ b.topContent && /* @__PURE__ */ jsx(ContentComponent, { blocks: b.topContent, agent, className: "" }),
1075
+ b.heading && /* @__PURE__ */ jsx(enh_heading_block_default, { block: b.heading, className: "text-accent", agent })
1076
+ ] }),
1077
+ b.content && /* @__PURE__ */ jsx(CardContent, { className: cn("typography flex flex-col justify-center", contentclx, className), children: /* @__PURE__ */ jsx(ContentComponent, { blocks: b.content, agent }) }),
1078
+ b.cta && /* @__PURE__ */ jsx(CardFooter, { className: cn("grid grid-cols-1 gap-2 md:flex md:flex-row md:justify-center", footerclx), children: /* @__PURE__ */ jsx(cta_block_default, { block: b.cta, agent }) })
1079
+ ] }) });
1080
+ }, "CarteBlancheBlockComponent");
1081
+ var carte_blanche_block_default = CarteBlancheBlockComponent;
1082
+ var DEFAULTS = {
1083
+ preheading: {
1084
+ tag: "h4",
1085
+ mb: 2
1086
+ },
1087
+ heading: {
1088
+ tag: "h1",
1089
+ mb: 2
1090
+ },
1091
+ byline: {
1092
+ tag: "h6"
1093
+ }
1094
+ };
1095
+ var tagFromLevel = /* @__PURE__ */ __name((level) => {
1096
+ switch (level) {
1097
+ case 1: {
1098
+ return "h1";
1099
+ }
1100
+ case 2: {
1101
+ return "h2";
1102
+ }
1103
+ case 3: {
1104
+ return "h3";
1105
+ }
1106
+ case 4: {
1107
+ return "h4";
1108
+ }
1109
+ case 5: {
1110
+ return "h5";
1111
+ }
1112
+ case 6: {
1113
+ return "h6";
1114
+ }
1115
+ }
1116
+ return "p";
1117
+ }, "tagFromLevel");
1118
+ var Element = /* @__PURE__ */ __name(({
1119
+ asTag: Tag,
1120
+ text,
1121
+ icon,
1122
+ iconLeft = true,
1123
+ className: elClassName = ""
1124
+ }) => /* @__PURE__ */ jsx(Tag, { className: elClassName, children: text }), "Element");
1125
+ var getPositionClx = /* @__PURE__ */ __name((specified, agent) => {
1126
+ const mobileHeadingCentered = specified("mobile-heading-centered");
1127
+ const mobileHeadingLeft = specified("mobile-heading-left");
1128
+ const headingCentered = specified("center");
1129
+ const headingRight = specified("right");
1130
+ const bylineCentered = specified("byline-center");
1131
+ const bylineRight = specified("byline-right");
1132
+ const mobileBylineLeft = specified("mobile-byline-left");
1133
+ let headerclx = "";
1134
+ let bylineclx = bylineCentered ? "self-center !text-center" : bylineRight ? "self-end !text-right" : "self-start !text-left";
1135
+ if (agent === "phone") {
1136
+ if (mobileHeadingLeft) {
1137
+ headerclx = "self-start text-left";
1138
+ } else {
1139
+ headerclx = mobileHeadingCentered || headingCentered ? "self-center text-center" : headingRight ? "self-end text-right" : "self-start text-left";
1140
+ }
1141
+ if (mobileBylineLeft) {
1142
+ bylineclx = "self-start !text-left";
1143
+ }
1144
+ } else {
1145
+ const largerclx = headingCentered ? "self-center text-center" : headingRight ? "self-end text-right" : "self-start text-left";
1146
+ if (mobileHeadingCentered) {
1147
+ headerclx = "self-center text-center md:" + largerclx.split(" ").join(" md:");
1148
+ } else {
1149
+ headerclx = largerclx;
1150
+ }
1151
+ }
1152
+ return {
1153
+ preheading: headerclx,
1154
+ heading: headerclx,
1155
+ byline: bylineclx
1156
+ };
1157
+ }, "getPositionClx");
1158
+ var EnhHeadingBlockComponent = /* @__PURE__ */ __name(({
1159
+ block,
1160
+ className = "",
1161
+ agent,
1162
+ applyTypography = true,
1163
+ extraSpecifiers = ""
1164
+ }) => {
1165
+ if (block.blockType !== "enh-heading") {
1166
+ return /* @__PURE__ */ jsx(Fragment, { children: "enhance heading block required" });
1167
+ }
1168
+ const b = block;
1169
+ const specified = /* @__PURE__ */ __name((s) => containsToken(b.specifiers + extraSpecifiers, s), "specified");
1170
+ const preheadingHeadingFont = specified("preheading-heading-font");
1171
+ const phFontClx = preheadingHeadingFont ? "font-heading" : "";
1172
+ const alignMiddleClx = specified("align-middle") ? "my-auto" : "";
1173
+ const positionclx = getPositionClx(specified, agent);
1174
+ const Inner = /* @__PURE__ */ __name(() => {
1175
+ const toRender = [
1176
+ {
1177
+ tag: b.preheading ? b.preheading.level !== void 0 ? tagFromLevel(b.preheading.level) : DEFAULTS.preheading.tag : void 0,
1178
+ clx: b.preheading ? (b.preheading.mb !== void 0 ? `mb-${b.preheading.mb}` : `mb-${DEFAULTS.preheading.mb}`) + " " + positionclx.preheading + " " + phFontClx : positionclx.preheading + " " + phFontClx,
1179
+ text: b.preheading ? b.preheading.text : void 0
1180
+ },
1181
+ {
1182
+ tag: b.heading.level !== void 0 ? tagFromLevel(b.heading.level) : DEFAULTS.heading.tag,
1183
+ clx: (b.heading.mb !== void 0 ? `mb-${b.heading.mb}` : `mb-${DEFAULTS.heading.mb}`) + " " + positionclx.heading,
1184
+ text: b.heading.text
1185
+ },
1186
+ {
1187
+ tag: b.byline ? b.byline.level !== void 0 ? tagFromLevel(b.byline.level) : DEFAULTS.byline.tag : void 0,
1188
+ clx: positionclx.byline,
1189
+ text: b.byline ? b.byline.text : void 0
1190
+ }
1191
+ ];
1192
+ let iconRendered = false;
1193
+ return /* @__PURE__ */ jsx(Fragment, { children: toRender.map(({ tag, clx, text }, index) => {
1194
+ if (!tag) return null;
1195
+ if (b.icon && !iconRendered) {
1196
+ iconRendered = true;
1197
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-row items-center gap-2 sm:gap-4", clx), children: [
1198
+ /* @__PURE__ */ jsx(inline_icon_default, { icon: b.icon, size: b.iconSize ?? 32, agent }),
1199
+ /* @__PURE__ */ jsx(Element, { asTag: tag, text })
1200
+ ] }, `div-${index}`);
1201
+ }
1202
+ return /* @__PURE__ */ jsx(Element, { asTag: tag, text, className: clx }, `el-${index}`);
1203
+ }) });
1204
+ }, "Inner");
1205
+ return applyTypography ? /* @__PURE__ */ jsx(ApplyTypography, { className: cn("flex flex-col w-full !gap-0", className, alignMiddleClx), children: /* @__PURE__ */ jsx(Inner, {}) }) : /* @__PURE__ */ jsx("div", { className: cn("flex flex-col w-full gap-0", className, alignMiddleClx), children: /* @__PURE__ */ jsx(Inner, {}) });
1206
+ }, "EnhHeadingBlockComponent");
1207
+ var enh_heading_block_default = EnhHeadingBlockComponent;
1208
+ var HeadingBlockComponent = /* @__PURE__ */ __name(({
1209
+ block,
1210
+ className = ""
1211
+ }) => {
1212
+ if (block.blockType !== "heading") {
1213
+ return /* @__PURE__ */ jsx(Fragment, { children: "heading block required" });
1214
+ }
1215
+ const heading = block;
1216
+ let Tag;
1217
+ let BylineTag = void 0;
1218
+ switch (heading.bylineLevel) {
1219
+ case 0:
1220
+ {
1221
+ BylineTag = "p";
1222
+ }
1223
+ break;
1224
+ case 1:
1225
+ {
1226
+ BylineTag = "h1";
1227
+ }
1228
+ break;
1229
+ case 2:
1230
+ {
1231
+ BylineTag = "h2";
1232
+ }
1233
+ break;
1234
+ case 3:
1235
+ {
1236
+ BylineTag = "h3";
1237
+ }
1238
+ break;
1239
+ case 4:
1240
+ {
1241
+ BylineTag = "h4";
1242
+ }
1243
+ break;
1244
+ case 5:
1245
+ {
1246
+ BylineTag = "h5";
1247
+ }
1248
+ break;
1249
+ case 6:
1250
+ {
1251
+ BylineTag = "h6";
1252
+ }
1253
+ break;
1254
+ }
1255
+ switch (heading.level) {
1256
+ case 0:
1257
+ {
1258
+ Tag = "p";
1259
+ BylineTag = BylineTag ?? "p";
1260
+ }
1261
+ break;
1262
+ case 1:
1263
+ {
1264
+ Tag = "h1";
1265
+ BylineTag = BylineTag ?? "h3";
1266
+ }
1267
+ break;
1268
+ case 2:
1269
+ {
1270
+ Tag = "h2";
1271
+ BylineTag = BylineTag ?? "h4";
1272
+ }
1273
+ break;
1274
+ // 3 is default
1275
+ case 4:
1276
+ {
1277
+ Tag = "h4";
1278
+ BylineTag = BylineTag ?? "h6";
1279
+ }
1280
+ break;
1281
+ case 5:
1282
+ {
1283
+ Tag = "h5";
1284
+ BylineTag = BylineTag ?? "p";
1285
+ }
1286
+ break;
1287
+ case 6:
1288
+ {
1289
+ Tag = "h6";
1290
+ BylineTag = BylineTag ?? "p";
1291
+ }
1292
+ break;
1293
+ default: {
1294
+ Tag = "h3";
1295
+ BylineTag = BylineTag ?? "h5";
1296
+ }
1297
+ }
1298
+ return /* @__PURE__ */ jsxs(ApplyTypography, { className, children: [
1299
+ /* @__PURE__ */ jsx(Tag, { children: heading.heading }),
1300
+ heading.spaceBetween && /* @__PURE__ */ jsx("div", { className: `w-[1px] h-${heading.spaceBetween}` }),
1301
+ heading.byline && /* @__PURE__ */ jsx(BylineTag, { children: heading.byline }),
1302
+ heading.spaceAfter && /* @__PURE__ */ jsx("div", { className: `w-[1px] h-${heading.spaceAfter}` })
1303
+ ] });
1304
+ }, "HeadingBlockComponent");
1305
+ var heading_block_default = HeadingBlockComponent;
1306
+
1307
+ // tailwind/screens.tailwind.js
1308
+ var screens_tailwind_default = {
1309
+ xs: "0px",
1310
+ // <-- phone
1311
+ sm: "480px",
1312
+ // phone --><-- sm tablets / narrow
1313
+ md: "768px",
1314
+ // sm tablets / narrow -->
1315
+ lg: "1024px",
1316
+ xl: "1280px",
1317
+ "2xl": "1500px"
1318
+ };
1319
+
1320
+ // types/breakpoints.ts
1321
+ var Breakpoints = Object.keys(screens_tailwind_default);
1322
+ var getLayoutInfo = /* @__PURE__ */ __name((s) => {
1323
+ const tokenArray = s.split(" ");
1324
+ const layoutToken = tokenArray.find((tok) => tok.startsWith("layout-"));
1325
+ if (layoutToken) {
1326
+ const subtokens = layoutToken.split("-");
1327
+ const layout = subtokens[1];
1328
+ let spec = {};
1329
+ switch (layout) {
1330
+ case "grid":
1331
+ {
1332
+ const columns = parseInt(subtokens[2], 10);
1333
+ const starting = subtokens[4];
1334
+ if (Number.isNaN(columns) || columns < 2 || columns > 6 || !Breakpoints.includes(starting)) {
1335
+ return void 0;
1336
+ }
1337
+ spec = {
1338
+ columns,
1339
+ starting
1340
+ };
1341
+ }
1342
+ break;
1343
+ }
1344
+ return {
1345
+ layout,
1346
+ spec
1347
+ };
1348
+ }
1349
+ return void 0;
1350
+ }, "getLayoutInfo");
1351
+ var GroupBlockComponent = /* @__PURE__ */ __name(({
1352
+ block,
1353
+ className = ""
1354
+ }) => {
1355
+ if (block.blockType !== "group") {
1356
+ return /* @__PURE__ */ jsx(Fragment, { children: "group block required" });
1357
+ }
1358
+ const group = block;
1359
+ if (group.specifiers?.includes("layout")) {
1360
+ const layoutSpec = getLayoutInfo(group.specifiers);
1361
+ if (!layoutSpec) {
1362
+ return /* @__PURE__ */ jsx(Fragment, { children: "invalid or missing layout specifier in group block!" });
1363
+ }
1364
+ if (layoutSpec.layout === "grid") {
1365
+ const { elements } = group;
1366
+ const { spec: { starting, columns } } = layoutSpec;
1367
+ const clazzName = cn(
1368
+ "grid xs:grid-cols-1 gap-2 sm:gap-3",
1369
+ `${starting}:grid-cols-${columns} `,
1370
+ className
1371
+ );
1372
+ return /* @__PURE__ */ jsx("div", { className: clazzName, children: /* @__PURE__ */ jsx(ContentComponent, { blocks: elements }) });
1373
+ }
1374
+ }
1375
+ return null;
1376
+ }, "GroupBlockComponent");
1377
+ var group_block_default = GroupBlockComponent;
1378
+ var TAGS = [
1379
+ "div",
1380
+ "h1",
1381
+ "h2",
1382
+ "h3",
1383
+ "h4",
1384
+ "h5",
1385
+ "h6"
1386
+ ];
1387
+ var SpaceBlockComponent = /* @__PURE__ */ __name(({
1388
+ block,
1389
+ className = ""
1390
+ }) => {
1391
+ if (block && block.blockType !== "space") {
1392
+ return /* @__PURE__ */ jsx(Fragment, { children: "space block required" });
1393
+ }
1394
+ const b = block;
1395
+ if (!b.level) {
1396
+ if (typeof b.sizes == "number") {
1397
+ return /* @__PURE__ */ jsx("div", { className: cn(`invisible w-[1px] h-${b.sizes}`, className) });
1398
+ }
1399
+ const _sizes = {};
1400
+ ldMerge(_sizes, SPACE_DEFAULTS, b.sizes);
1401
+ let clx = "";
1402
+ for (const [key, value] of Object.entries(_sizes)) {
1403
+ clx += `${key}:h-${value} `;
1404
+ }
1405
+ if (b.test) {
1406
+ console.log(clx);
1407
+ }
1408
+ return /* @__PURE__ */ jsx("div", { className: cn("invisible w-[1px] " + clx, className) });
1409
+ }
1410
+ const Tag = TAGS[b.level];
1411
+ const heightClx = b.level === 0 ? "h-4" : "";
1412
+ return /* @__PURE__ */ jsx(ApplyTypography, { className, children: /* @__PURE__ */ jsx(Tag, { className: "invisible m-0 " + heightClx, children: "\xA0" }) });
1413
+ }, "SpaceBlockComponent");
1414
+ var space_block_default = SpaceBlockComponent;
1415
+ var map2 = /* @__PURE__ */ new Map();
1416
+ map2.set("accordian", accordian_block_default);
1417
+ map2.set("bullet-cards", bullet_cards_block_default);
1418
+ map2.set("card", card_block_default);
1419
+ map2.set("carte-blanche", carte_blanche_block_default);
1420
+ map2.set("cta", cta_block_default);
1421
+ map2.set("heading", heading_block_default);
1422
+ map2.set("enh-heading", enh_heading_block_default);
1423
+ map2.set("space", space_block_default);
1424
+ map2.set("image", image_block_default);
1425
+ map2.set("video", video_block_default);
1426
+ map2.set("group", group_block_default);
1427
+ map2.set("grid", grid_block_default);
1428
+ var registerBlockType = /* @__PURE__ */ __name((key, type) => {
1429
+ map2.set(key, type);
1430
+ }, "registerBlockType");
1431
+ var renderBlock = /* @__PURE__ */ __name((block, className, agent, keyStr) => {
1432
+ if (block.blockType === "element") {
1433
+ return block.element;
1434
+ }
1435
+ const CompType = map2.get(block.blockType);
1436
+ if (!CompType) return null;
1437
+ return /* @__PURE__ */ jsx(CompType, { block, className, agent }, keyStr ?? "");
1438
+ }, "renderBlock");
1439
+ var ContentComponent = /* @__PURE__ */ __name(({
1440
+ blocks,
1441
+ className = "",
1442
+ agent
1443
+ }) => {
1444
+ if (!blocks) return null;
1445
+ if (Array.isArray(blocks)) {
1446
+ return blocks.map((block, index) => renderBlock(block, className, agent, `content-block-${block.blockType}-${index}`));
1447
+ }
1448
+ return renderBlock(blocks, className, agent);
1449
+ }, "ContentComponent");
1450
+ var Poster = /* @__PURE__ */ __name(({
1451
+ children,
1452
+ banner,
1453
+ className = ""
1454
+ }) => banner ? /* @__PURE__ */ jsx(
1455
+ "div",
1456
+ {
1457
+ className: cn("relative", className),
1458
+ style: {
1459
+ height: "100%",
1460
+ width: "100%",
1461
+ backgroundImage: `url(${typeof banner === "string" ? banner : banner.poster})`,
1462
+ backgroundSize: "cover",
1463
+ backgroundRepeat: "no-repeat"
1464
+ },
1465
+ children
1466
+ }
1467
+ ) : /* @__PURE__ */ jsx("div", { className: cn("bg-transparent h-full w-full relative", className), children }), "Poster");
1468
+ var poster_background_default = Poster;
1469
+ var ContentColumn = /* @__PURE__ */ __name(({
1470
+ blocks,
1471
+ specifiers,
1472
+ agent,
1473
+ className = ""
1474
+ }) => {
1475
+ const specified = /* @__PURE__ */ __name((s) => containsToken(specifiers, s), "specified");
1476
+ let modifiers = "";
1477
+ if (agent !== "phone") {
1478
+ if (specified("right")) {
1479
+ modifiers += "items-end ";
1480
+ } else if (specified("center")) {
1481
+ modifiers += "items-center ";
1482
+ } else {
1483
+ modifiers += "items-start ";
1484
+ }
1485
+ } else {
1486
+ modifiers += "items-start ";
1487
+ }
1488
+ if (agent !== "phone") {
1489
+ if (specified("bottom")) {
1490
+ modifiers += "justify-end ";
1491
+ } else if (specified("vert-center")) {
1492
+ modifiers += "justify-center ";
1493
+ } else {
1494
+ modifiers += "justify-start ";
1495
+ }
1496
+ if (specified("text-align-right")) {
1497
+ modifiers += "text-right ";
1498
+ } else {
1499
+ modifiers += "text-left ";
1500
+ }
1501
+ } else {
1502
+ if (specified("mobile-vert-center")) {
1503
+ modifiers += "justify-center ";
1504
+ } else {
1505
+ modifiers += "justify-start ";
1506
+ }
1507
+ }
1508
+ if (agent === "phone" && specified("mobile-center-headings")) {
1509
+ modifiers += "typography-headings:text-center ";
1510
+ }
1511
+ return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-center h-full", modifiers, className), children: /* @__PURE__ */ jsx(ContentComponent, { blocks, agent }) });
1512
+ }, "ContentColumn");
1513
+ var Content2 = /* @__PURE__ */ __name(({
1514
+ block: b,
1515
+ agent,
1516
+ className = ""
1517
+ }) => {
1518
+ const layoutClx = "flex flex-col gap-2 sm:gap-4 h-full " + (agent !== "phone" ? `md:grid md:gap-8 md:grid-cols-${b.contentColumns.length} ` : "");
1519
+ const orderclx = /* @__PURE__ */ __name((columnIndex) => {
1520
+ const orderIndex = b.mobileOrder?.indexOf(columnIndex);
1521
+ return orderIndex && orderIndex >= 0 ? `order-${orderIndex} md:order-none` : "";
1522
+ }, "orderclx");
1523
+ return b.contentColumns.length == 1 ? /* @__PURE__ */ jsx(
1524
+ ContentColumn,
1525
+ {
1526
+ blocks: b.contentColumns[0],
1527
+ specifiers: b.columnSpecifiers?.[0],
1528
+ agent,
1529
+ className: cn(className)
1530
+ }
1531
+ ) : /* @__PURE__ */ jsx("div", { className: cn(layoutClx, className), children: b.contentColumns.map((column, index) => /* @__PURE__ */ jsx(
1532
+ ContentColumn,
1533
+ {
1534
+ blocks: column,
1535
+ specifiers: b.columnSpecifiers?.[index],
1536
+ agent,
1537
+ className: orderclx(index)
1538
+ },
1539
+ index
1540
+ )) });
1541
+ }, "Content");
1542
+ var content_default = Content2;
1543
+ var VideoBG = /* @__PURE__ */ __name(({
1544
+ block,
1545
+ className = "",
1546
+ initialInView
1547
+ }) => {
1548
+ const { ref, inView } = useInView({
1549
+ threshold: 0.75,
1550
+ initialInView
1551
+ });
1552
+ return block ? /* @__PURE__ */ jsx("div", { ref, className, children: inView && /* @__PURE__ */ jsx(
1553
+ "video",
1554
+ {
1555
+ autoPlay: true,
1556
+ loop: true,
1557
+ muted: true,
1558
+ style: {
1559
+ margin: 0,
1560
+ height: "100%",
1561
+ width: "100%",
1562
+ objectFit: "cover"
1563
+ },
1564
+ children: block.sources?.map((src, index) => /* @__PURE__ */ jsx("source", { src }, index))
1565
+ }
1566
+ ) }) : null;
1567
+ }, "VideoBG");
1568
+ var video_background_default = VideoBG;
1569
+ var Video = /* @__PURE__ */ __name((props) => {
1570
+ const [mounted, setMounted] = useState(false);
1571
+ useEffect(() => {
1572
+ setMounted(true);
1573
+ }, []);
1574
+ if (!mounted) return null;
1575
+ return /* @__PURE__ */ jsx(video_background_default, { ...props });
1576
+ }, "Video");
1577
+ var ScreenfulComponent = /* @__PURE__ */ __name(({
1578
+ block,
1579
+ agent,
1580
+ initialInView = false,
1581
+ snapTile = false,
1582
+ clx = "",
1583
+ contentClx = "",
1584
+ bottom
1585
+ }) => {
1586
+ if (block.blockType !== "screenful") {
1587
+ return /* @__PURE__ */ jsx(Fragment, { children: "screenful block required" });
1588
+ }
1589
+ const b = block;
1590
+ const hasBannerVideo = /* @__PURE__ */ __name(() => !!b.banner && typeof b.banner === "object", "hasBannerVideo");
1591
+ const tileHeight = agent === "desktop" ? "h-full " : "h-[100svh] ";
1592
+ const specified = /* @__PURE__ */ __name((s) => containsToken(b.specifiers, s), "specified");
1593
+ const narrowGutters = specified("narrow-gutters");
1594
+ const noGutters = specified("no-gutters");
1595
+ const fullScreenWidth = specified("full-screen-width");
1596
+ const vertCenter = specified("vert-center");
1597
+ const oneColumn = b.contentColumns.length === 1;
1598
+ const cwclx = [
1599
+ "xl:mx-auto overflow-y-hidden h-full",
1600
+ fullScreenWidth ? "" : "max-w-screen-xl",
1601
+ // desktop header: 80px / pt-20
1602
+ // mobile header: 44px / pt-11
1603
+ narrowGutters ? "px-6 lg:px-8 2xl:px-2 pb-4 lg:pb-6 xl:pb-8 " + (snapTile ? "pt-15 md:pt-26 lg:pt-28 " : "") : noGutters ? "px-0 pb-0 " + (snapTile ? "pt-11 lg:pt-20 " : "") : "px-[8vw] xl:px-[1vw] pb-[8vh] pt-[calc(44px+4vh)] md:pt-[calc(80px+6vh)] ",
1604
+ agent && agent !== "desktop" ? "pt-15 sm:pt-17 pb-0 px-3 sm:px-8" : ""
1605
+ ];
1606
+ return /* @__PURE__ */ jsxs("section", { ...b.anchorId ? { id: b.anchorId } : {}, className: cn(
1607
+ snapTile ? "snap-start snap-always h-[100vh]" : "min-h-screen",
1608
+ bottom ? "flex flex-col" : "",
1609
+ clx
1610
+ ), children: [
1611
+ /* @__PURE__ */ jsx(ApplyTypography, { className: cn(
1612
+ "w-full flex flex-row justify-center self-stretch",
1613
+ snapTile ? tileHeight : "",
1614
+ bottom ? "grow" : ""
1615
+ ), children: /* @__PURE__ */ jsxs(poster_background_default, { banner: b.banner, children: [
1616
+ hasBannerVideo() && /* @__PURE__ */ jsx(
1617
+ Video,
1618
+ {
1619
+ block: b.banner,
1620
+ className: "absolute top-0 left-0 bottom-0 right-0",
1621
+ initialInView
1622
+ }
1623
+ ),
1624
+ /* @__PURE__ */ jsxs(
1625
+ "div",
1626
+ {
1627
+ className: cn(
1628
+ ...cwclx,
1629
+ snapTile ? "absolute left-0 right-0 top-0 bottom-0 " : "flex min-h-screen w-full",
1630
+ contentClx,
1631
+ // TODO :aa py-0 breaks padding for header! Investigate why I would have done this!
1632
+ vertCenter ? "self-center " + (oneColumn ? "!py-0" : "") : ""
1633
+ ),
1634
+ children: [
1635
+ /* @__PURE__ */ jsx(content_default, { block: b, agent, className: "w-full" }),
1636
+ b.footer
1637
+ ]
1638
+ }
1639
+ )
1640
+ ] }) }),
1641
+ bottom
1642
+ ] });
1643
+ }, "ScreenfulComponent");
1644
+ var screenful_block_default = ScreenfulComponent;
1645
+
1646
+ export { accordian_block_default as AccordianBlockComponent, ContentComponent as BlocksComponent, cta_block_default as CTABlockComponent, card_block_default as CardBlockComponent, ContentComponent, enh_heading_block_default as EnhHeadingBlockComponent, group_block_default as GroupBlockComponent, heading_block_default as HeadingBlockComponent, image_block_default as ImageBlockComponent, SPACE_DEFAULTS, screenful_block_default as ScreenfulBlockComponent, space_block_default as SpaceBlockComponent, video_block_default as VideoBlockComponent, registerBlockType };