@makinbakin/sdk 0.0.1-rc.4 → 0.0.1-rc.40

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 (342) hide show
  1. package/README.md +248 -3
  2. package/_internal/app/components/agent-avatar.d.ts +2 -1
  3. package/_internal/app/components/conversation/attention.d.ts +56 -0
  4. package/_internal/app/components/conversation/fold.d.ts +3 -0
  5. package/_internal/app/components/conversation/notification-sound.d.ts +8 -0
  6. package/_internal/app/components/conversation/reply-toast.d.ts +15 -0
  7. package/_internal/app/components/conversation/thread-id.d.ts +8 -0
  8. package/_internal/app/components/conversation/turn-recorder.d.ts +37 -0
  9. package/_internal/app/components/conversation/use-conversation-attention.d.ts +61 -0
  10. package/_internal/app/components/drawer.d.ts +27 -0
  11. package/_internal/app/components/ui/button.d.ts +2 -8
  12. package/_internal/app/components/ui/dialog.d.ts +2 -17
  13. package/_internal/app/components/ui/sheet.d.ts +2 -14
  14. package/_internal/app/core/conversation-turns.d.ts +229 -0
  15. package/_internal/app/core/logger.d.ts +1 -0
  16. package/_internal/app/core/tool-access.d.ts +42 -0
  17. package/_internal/app/hooks/use-available-models.d.ts +25 -0
  18. package/_internal/app/hooks/use-content-store.d.ts +0 -9
  19. package/_internal/app/hooks/use-history-back.d.ts +5 -0
  20. package/_internal/app/hooks/use-horizontal-resize.d.ts +21 -0
  21. package/_internal/app/hooks/use-json-fetch.d.ts +36 -0
  22. package/_internal/app/hooks/use-nav-badge.d.ts +13 -0
  23. package/_internal/app/hooks/use-plugin-event.d.ts +19 -0
  24. package/_internal/app/hooks/use-query-state.d.ts +3 -12
  25. package/_internal/app/hooks/use-resizable-pane.d.ts +35 -0
  26. package/_internal/app/hooks/use-runtime-status.d.ts +22 -6
  27. package/_internal/app/hooks/use-schedule.d.ts +47 -1
  28. package/_internal/app/hooks/use-search.d.ts +27 -8
  29. package/_internal/app/hooks/use-task-run-history.d.ts +26 -0
  30. package/_internal/app/hooks/use-toast.d.ts +13 -3
  31. package/_internal/app/lib/browser-notify.d.ts +12 -1
  32. package/_internal/app/types/index.d.ts +1 -105
  33. package/_internal/core/adapters/runtime/channels.d.ts +231 -0
  34. package/_internal/core/adapters/runtime/concepts.d.ts +794 -235
  35. package/_internal/core/adapters/runtime/errors.d.ts +105 -0
  36. package/_internal/core/adapters/runtime/helpers.d.ts +19 -0
  37. package/_internal/core/adapters/runtime/index.d.ts +8 -2
  38. package/_internal/core/adapters/runtime/skill-files.d.ts +12 -0
  39. package/_internal/core/adapters/runtime/testing.d.ts +99 -0
  40. package/_internal/core/adapters/runtime/turn-activity.d.ts +23 -0
  41. package/_internal/core/adapters/shared.d.ts +133 -12
  42. package/_internal/core/content-dir.d.ts +11 -0
  43. package/_internal/core/delivery/bridge.d.ts +36 -0
  44. package/_internal/core/docs/route.d.ts +1 -1
  45. package/_internal/core/format/structured.d.ts +44 -0
  46. package/_internal/core/format.d.ts +25 -1
  47. package/_internal/core/health/observation-builders.d.ts +42 -0
  48. package/_internal/core/media/downscale.d.ts +18 -0
  49. package/_internal/core/media/pin-data.d.ts +36 -0
  50. package/_internal/core/media/pin.d.ts +22 -0
  51. package/_internal/core/media/sharp-import.d.ts +10 -0
  52. package/_internal/core/media/sharp-loader.d.ts +41 -0
  53. package/_internal/core/media/store.d.ts +21 -0
  54. package/_internal/core/plugin-types.d.ts +248 -500
  55. package/_internal/core/routing/define.d.ts +33 -3
  56. package/_internal/core/routing/dispatcher.d.ts +15 -6
  57. package/_internal/core/routing/index.d.ts +1 -1
  58. package/_internal/core/routing/types.d.ts +13 -70
  59. package/_internal/core/storage/atomic-write.d.ts +11 -0
  60. package/_internal/core/tasks/store.d.ts +129 -0
  61. package/_internal/core/tasks/testing.d.ts +2 -0
  62. package/_internal/{plugins/workflows/lib → core/workflows}/notification-channel-registry.d.ts +1 -1
  63. package/_internal/host/ui/action-status.d.ts +13 -0
  64. package/_internal/host/ui/modals.d.ts +5 -0
  65. package/_internal/host/ui/resize.d.ts +2 -0
  66. package/_internal/plugins/team/types.d.ts +61 -4
  67. package/_internal/plugins/workflows/hooks/use-notification-channels.d.ts +1 -1
  68. package/_internal/ui/behaviors/clipboard.d.ts +10 -0
  69. package/_internal/ui/behaviors/resize-handle.d.ts +15 -0
  70. package/_internal/ui/behaviors/selection-navigation.d.ts +5 -0
  71. package/_internal/ui/behaviors/use-persisted-leading-edge-resize.d.ts +31 -0
  72. package/_internal/ui/charts/area-chart.d.ts +27 -0
  73. package/_internal/ui/charts/axis.d.ts +13 -0
  74. package/_internal/ui/charts/bar-chart.d.ts +21 -0
  75. package/_internal/ui/charts/chart-data-table.d.ts +61 -0
  76. package/_internal/ui/charts/chart-explainer.d.ts +4 -0
  77. package/_internal/ui/charts/chart-tooltip.d.ts +8 -0
  78. package/_internal/ui/charts/composition-bar.d.ts +46 -0
  79. package/_internal/ui/charts/index.d.ts +24 -0
  80. package/_internal/ui/charts/line-chart.d.ts +26 -0
  81. package/_internal/ui/charts/monotone-curve.d.ts +23 -0
  82. package/_internal/ui/charts/palette.d.ts +32 -0
  83. package/_internal/ui/charts/pie-chart.d.ts +80 -0
  84. package/_internal/ui/charts/ranked-bar-chart.d.ts +41 -0
  85. package/_internal/ui/charts/sparkline.d.ts +16 -0
  86. package/_internal/ui/charts/stacked-column-chart.d.ts +33 -0
  87. package/_internal/ui/content/code-block.d.ts +43 -0
  88. package/_internal/ui/content/index.d.ts +2 -0
  89. package/_internal/ui/conversation/activity-group.d.ts +27 -0
  90. package/_internal/ui/conversation/agent-turn.d.ts +47 -0
  91. package/_internal/ui/conversation/composer.d.ts +62 -0
  92. package/_internal/ui/conversation/context-meter.d.ts +37 -0
  93. package/_internal/ui/conversation/conversation-empty-state.d.ts +13 -0
  94. package/_internal/ui/conversation/conversation-header.d.ts +26 -0
  95. package/_internal/ui/conversation/conversation-panel.d.ts +61 -0
  96. package/_internal/ui/conversation/conversation.d.ts +37 -0
  97. package/_internal/ui/conversation/fold.d.ts +150 -0
  98. package/_internal/ui/conversation/glyphs.d.ts +30 -0
  99. package/_internal/ui/conversation/index.d.ts +31 -0
  100. package/_internal/ui/conversation/queued-message-list.d.ts +22 -0
  101. package/_internal/ui/conversation/relative-time.d.ts +8 -0
  102. package/_internal/ui/conversation/tool-call-drawer.d.ts +14 -0
  103. package/_internal/ui/conversation/turn-controls.d.ts +9 -0
  104. package/_internal/ui/conversation/turn-output.d.ts +42 -0
  105. package/_internal/ui/conversation/turn-usage.d.ts +16 -0
  106. package/_internal/ui/conversation/user-message.d.ts +13 -0
  107. package/_internal/ui/forms/field.d.ts +30 -0
  108. package/_internal/ui/forms/fieldset.d.ts +10 -0
  109. package/_internal/ui/forms/form.d.ts +19 -0
  110. package/_internal/ui/forms/index.d.ts +6 -0
  111. package/_internal/ui/index.d.ts +89 -0
  112. package/_internal/ui/layout/bounded-overflow.d.ts +42 -0
  113. package/_internal/ui/layout/disclosure-panel.d.ts +24 -0
  114. package/_internal/ui/layout/flow.d.ts +27 -0
  115. package/_internal/ui/layout/grid.d.ts +16 -0
  116. package/_internal/ui/layout/index.d.ts +14 -0
  117. package/_internal/ui/layout/page-shell.d.ts +11 -0
  118. package/_internal/ui/layout/panel.d.ts +28 -0
  119. package/_internal/ui/layout/section.d.ts +15 -0
  120. package/_internal/ui/layout/sticky-overflow-scrollbar.d.ts +11 -0
  121. package/_internal/ui/layout/utils.d.ts +1 -0
  122. package/_internal/ui/patterns/agent-filter.d.ts +21 -0
  123. package/_internal/ui/patterns/calendar-grid.d.ts +80 -0
  124. package/_internal/ui/patterns/calendar-item.d.ts +42 -0
  125. package/_internal/ui/patterns/calendar-nav.d.ts +21 -0
  126. package/_internal/ui/patterns/confirm-dialog.d.ts +29 -0
  127. package/_internal/ui/patterns/copy-button.d.ts +15 -0
  128. package/_internal/ui/patterns/danger-zone.d.ts +17 -0
  129. package/_internal/ui/patterns/data-table.d.ts +157 -0
  130. package/_internal/ui/patterns/drawer-section.d.ts +11 -0
  131. package/_internal/ui/patterns/facet-filter.d.ts +22 -0
  132. package/_internal/ui/patterns/filter-indicator.d.ts +3 -0
  133. package/_internal/ui/patterns/guide-card.d.ts +33 -0
  134. package/_internal/ui/patterns/index.d.ts +75 -0
  135. package/_internal/ui/patterns/inspector-panel.d.ts +39 -0
  136. package/_internal/ui/patterns/kanban.d.ts +70 -0
  137. package/_internal/ui/patterns/key-value.d.ts +35 -0
  138. package/_internal/ui/patterns/list-rows.d.ts +111 -0
  139. package/_internal/ui/patterns/nav-list.d.ts +41 -0
  140. package/_internal/ui/patterns/node-card.d.ts +37 -0
  141. package/_internal/ui/patterns/page-aside.d.ts +49 -0
  142. package/_internal/ui/patterns/page-body.d.ts +49 -0
  143. package/_internal/ui/patterns/page-canvas.d.ts +12 -0
  144. package/_internal/ui/patterns/page-composer.d.ts +8 -0
  145. package/_internal/ui/patterns/page-controls.d.ts +33 -0
  146. package/_internal/ui/patterns/page-header.d.ts +40 -0
  147. package/_internal/ui/patterns/page-timeline.d.ts +18 -0
  148. package/_internal/ui/patterns/page.d.ts +32 -0
  149. package/_internal/ui/patterns/pagination.d.ts +23 -0
  150. package/_internal/ui/patterns/save-bar.d.ts +21 -0
  151. package/_internal/ui/patterns/search-input.d.ts +20 -0
  152. package/_internal/ui/patterns/segmented-control.d.ts +22 -0
  153. package/_internal/ui/patterns/sortable-head.d.ts +13 -0
  154. package/_internal/ui/patterns/stat-group.d.ts +8 -0
  155. package/_internal/ui/patterns/stat-tile.d.ts +25 -0
  156. package/_internal/ui/patterns/status-badge.d.ts +15 -0
  157. package/_internal/ui/patterns/status-marker.d.ts +10 -0
  158. package/_internal/ui/patterns/timeline.d.ts +59 -0
  159. package/_internal/ui/patterns/unsaved-changes-dialog.d.ts +22 -0
  160. package/_internal/ui/patterns/workspace-page.d.ts +76 -0
  161. package/_internal/ui/primitives/alert.d.ts +17 -0
  162. package/_internal/ui/primitives/avatar.d.ts +13 -0
  163. package/_internal/ui/primitives/badge.d.ts +27 -0
  164. package/_internal/ui/primitives/button.d.ts +32 -0
  165. package/_internal/ui/primitives/card.d.ts +55 -0
  166. package/_internal/ui/primitives/checkbox.d.ts +3 -0
  167. package/_internal/ui/primitives/collapsible.d.ts +7 -0
  168. package/_internal/ui/primitives/color-input.d.ts +21 -0
  169. package/_internal/ui/primitives/combobox.d.ts +40 -0
  170. package/_internal/ui/primitives/command.d.ts +36 -0
  171. package/_internal/ui/primitives/control-styles.d.ts +10 -0
  172. package/_internal/ui/primitives/dialog.d.ts +31 -0
  173. package/_internal/ui/primitives/dropdown-menu.d.ts +54 -0
  174. package/_internal/ui/primitives/file-input.d.ts +33 -0
  175. package/_internal/ui/primitives/input-group.d.ts +30 -0
  176. package/_internal/ui/primitives/input.d.ts +10 -0
  177. package/_internal/ui/primitives/interactive-surface.d.ts +24 -0
  178. package/_internal/ui/primitives/label.d.ts +3 -0
  179. package/_internal/ui/primitives/modal-context.d.ts +9 -0
  180. package/_internal/ui/primitives/option-list.d.ts +10 -0
  181. package/_internal/ui/primitives/popover.d.ts +18 -0
  182. package/_internal/ui/primitives/portal-ownership.d.ts +11 -0
  183. package/_internal/ui/primitives/progress.d.ts +38 -0
  184. package/_internal/ui/primitives/radio-group.d.ts +12 -0
  185. package/_internal/ui/primitives/select.d.ts +35 -0
  186. package/_internal/ui/primitives/separator.d.ts +7 -0
  187. package/_internal/ui/primitives/sheet.d.ts +34 -0
  188. package/_internal/ui/primitives/shimmer-text.d.ts +13 -0
  189. package/_internal/ui/primitives/skeleton.d.ts +6 -0
  190. package/_internal/ui/primitives/spinner.d.ts +31 -0
  191. package/_internal/ui/primitives/switch.d.ts +6 -0
  192. package/_internal/{app/components/ui → ui/primitives}/tabs.d.ts +1 -1
  193. package/_internal/ui/primitives/text.d.ts +43 -0
  194. package/_internal/ui/primitives/textarea.d.ts +19 -0
  195. package/_internal/ui/primitives/tooltip.d.ts +14 -0
  196. package/_internal/ui/primitives/use-textarea-autosize.d.ts +3 -0
  197. package/_internal/ui/private-ui-boundary-probe.d.ts +9 -0
  198. package/_internal/ui/states/banner.d.ts +15 -0
  199. package/_internal/ui/states/index.d.ts +6 -0
  200. package/_internal/ui/states/system-state.d.ts +88 -0
  201. package/_internal/ui/states/toast.d.ts +26 -0
  202. package/_internal/ui/utils.d.ts +14 -0
  203. package/bin/bakin-plugin-test-ui.js +6854 -0
  204. package/charts/index.d.ts +3 -0
  205. package/charts/index.js +2 -0
  206. package/content/index.d.ts +14 -0
  207. package/content/index.js +38 -0
  208. package/content/markdown-comparison.d.ts +12 -0
  209. package/content/markdown-content.d.ts +18 -0
  210. package/content/markdown-document.d.ts +4 -0
  211. package/content/markdown-editor.d.ts +35 -0
  212. package/conversation/index.d.ts +50 -0
  213. package/conversation/index.js +4 -0
  214. package/conversation/use-conversation-thread.d.ts +73 -0
  215. package/hooks/index.d.ts +86 -11
  216. package/hooks/index.js +1 -1747
  217. package/hooks/router.d.ts +4 -36
  218. package/index.d.ts +30 -6
  219. package/index.js +10 -14210
  220. package/internal/index.d.ts +74 -0
  221. package/internal/index.js +2 -0
  222. package/internal/lazy.d.ts +58 -0
  223. package/internal/plugin-ownership.d.ts +18 -0
  224. package/internal/private-ui-boundary-probe.d.ts +2 -0
  225. package/layout/index.d.ts +9 -0
  226. package/layout/index.js +2 -0
  227. package/metadata/index.d.ts +14 -1
  228. package/metadata/index.js +1 -30
  229. package/navigation/history-back.d.ts +5 -0
  230. package/navigation/index.d.ts +23 -0
  231. package/navigation/index.js +2 -0
  232. package/navigation/plugin-link.d.ts +11 -0
  233. package/navigation/query-state.d.ts +7 -0
  234. package/navigation/router.d.ts +35 -0
  235. package/navigation/search-params.d.ts +7 -0
  236. package/navigation/unsaved-changes-guard.d.ts +35 -0
  237. package/package.json +63 -10
  238. package/patterns/agent-patterns.d.ts +81 -0
  239. package/patterns/asset-library-picker.d.ts +38 -0
  240. package/patterns/channel-patterns.d.ts +32 -0
  241. package/patterns/index.d.ts +40 -0
  242. package/patterns/index.js +47 -0
  243. package/patterns/picker-patterns.d.ts +108 -0
  244. package/patterns/plugin-settings-renderer.d.ts +41 -0
  245. package/patterns/presentation-color.d.ts +2 -0
  246. package/patterns/search-patterns.d.ts +51 -0
  247. package/register.d.ts +63 -9
  248. package/routing/index.d.ts +6 -1
  249. package/routing/index.js +10 -14014
  250. package/slots/index.d.ts +12 -24
  251. package/slots/index.js +1 -91
  252. package/slots/registry.d.ts +45 -0
  253. package/styles.css +2 -0
  254. package/testing/index.d.ts +122 -0
  255. package/testing/index.js +93 -0
  256. package/testing/ui/conformance/cli.d.ts +2 -0
  257. package/testing/ui/conformance/contracts.d.ts +73 -0
  258. package/testing/ui/conformance/index.d.ts +11 -0
  259. package/testing/ui/conformance/index.js +85 -0
  260. package/testing/ui/conformance/plugin-css.d.ts +37 -0
  261. package/testing/ui/conformance/plugin-id.d.ts +6 -0
  262. package/testing/ui/conformance/runner.d.ts +13 -0
  263. package/testing/ui/index.d.ts +24 -0
  264. package/testing/ui/index.js +2 -0
  265. package/testing/ui/plugin-ui-fixture-host.d.ts +36 -0
  266. package/testing/ui/runtime.d.ts +70 -0
  267. package/types/api-route.d.ts +89 -0
  268. package/types/context.d.ts +166 -0
  269. package/types/conversation-turns.d.ts +229 -0
  270. package/types/events.d.ts +10 -0
  271. package/types/health.d.ts +376 -0
  272. package/types/index.d.ts +19 -919
  273. package/types/index.js +1 -0
  274. package/types/manifest.d.ts +255 -0
  275. package/types/primitives.d.ts +33 -0
  276. package/types/registration.d.ts +281 -0
  277. package/types/runtime.d.ts +292 -0
  278. package/types/scheduled-events.d.ts +80 -0
  279. package/types/services.d.ts +599 -0
  280. package/ui/index.d.ts +73 -31
  281. package/ui/index.js +38 -28704
  282. package/utils/asset-id.d.ts +15 -0
  283. package/utils/index.d.ts +27 -7
  284. package/utils/index.js +4 -2098
  285. package/utils/plugin-fetch.d.ts +44 -0
  286. package/_internal/app/components/agent-filter.d.ts +0 -8
  287. package/_internal/app/components/agent-select.d.ts +0 -15
  288. package/_internal/app/components/agent-status.d.ts +0 -8
  289. package/_internal/app/components/bakin-drawer.d.ts +0 -23
  290. package/_internal/app/components/color-picker.d.ts +0 -7
  291. package/_internal/app/components/empty-state.d.ts +0 -10
  292. package/_internal/app/components/error-banner.d.ts +0 -6
  293. package/_internal/app/components/error-state.d.ts +0 -8
  294. package/_internal/app/components/facet-filter.d.ts +0 -17
  295. package/_internal/app/components/integrated-brainstorm/activity.d.ts +0 -23
  296. package/_internal/app/components/integrated-brainstorm/collapsed-header.d.ts +0 -14
  297. package/_internal/app/components/integrated-brainstorm/empty-state.d.ts +0 -5
  298. package/_internal/app/components/integrated-brainstorm/index.d.ts +0 -8
  299. package/_internal/app/components/integrated-brainstorm/input-row.d.ts +0 -16
  300. package/_internal/app/components/integrated-brainstorm/message-list.d.ts +0 -8
  301. package/_internal/app/components/integrated-brainstorm/session.d.ts +0 -16
  302. package/_internal/app/components/integrated-brainstorm/sse.d.ts +0 -8
  303. package/_internal/app/components/integrated-brainstorm/thinking-indicator.d.ts +0 -19
  304. package/_internal/app/components/integrated-brainstorm/types.d.ts +0 -63
  305. package/_internal/app/components/integrated-brainstorm/use-auto-grow.d.ts +0 -6
  306. package/_internal/app/components/integrated-brainstorm/use-brainstorm-state.d.ts +0 -21
  307. package/_internal/app/components/markdown-content.d.ts +0 -3
  308. package/_internal/app/components/markdown-editor.d.ts +0 -11
  309. package/_internal/app/components/model-select.d.ts +0 -9
  310. package/_internal/app/components/page-layout.d.ts +0 -9
  311. package/_internal/app/components/plugin-header.d.ts +0 -16
  312. package/_internal/app/components/plugin-settings-renderer.d.ts +0 -9
  313. package/_internal/app/components/sortable-head.d.ts +0 -13
  314. package/_internal/app/components/ui/alert.d.ts +0 -10
  315. package/_internal/app/components/ui/avatar.d.ts +0 -11
  316. package/_internal/app/components/ui/badge.d.ts +0 -7
  317. package/_internal/app/components/ui/card.d.ts +0 -11
  318. package/_internal/app/components/ui/checkbox.d.ts +0 -3
  319. package/_internal/app/components/ui/collapsible.d.ts +0 -5
  320. package/_internal/app/components/ui/command.d.ts +0 -19
  321. package/_internal/app/components/ui/dropdown-menu.d.ts +0 -29
  322. package/_internal/app/components/ui/form.d.ts +0 -23
  323. package/_internal/app/components/ui/input-group.d.ts +0 -18
  324. package/_internal/app/components/ui/input.d.ts +0 -3
  325. package/_internal/app/components/ui/label.d.ts +0 -3
  326. package/_internal/app/components/ui/popover.d.ts +0 -9
  327. package/_internal/app/components/ui/progress.d.ts +0 -7
  328. package/_internal/app/components/ui/select.d.ts +0 -15
  329. package/_internal/app/components/ui/separator.d.ts +0 -3
  330. package/_internal/app/components/ui/skeleton.d.ts +0 -2
  331. package/_internal/app/components/ui/switch.d.ts +0 -5
  332. package/_internal/app/components/ui/textarea.d.ts +0 -3
  333. package/_internal/app/components/ui/tooltip.d.ts +0 -6
  334. package/_internal/app/components/underline-tabs.d.ts +0 -15
  335. package/_internal/app/hooks/use-assets.d.ts +0 -25
  336. package/_internal/app/hooks/use-form-guard.d.ts +0 -5
  337. package/_internal/app/hooks/use-vertical-resize.d.ts +0 -22
  338. package/_internal/app/lib/utils.d.ts +0 -2
  339. package/_internal/plugins/workflows/hooks/channel-icon.d.ts +0 -6
  340. package/components/index.d.ts +0 -34
  341. package/components/index.js +0 -40175
  342. /package/_internal/{app/components/ui → ui/primitives}/table.d.ts +0 -0
package/utils/index.js CHANGED
@@ -1,2100 +1,6 @@
1
1
  // @bun
2
- // node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
3
- function r(e) {
4
- var t, f, n = "";
5
- if (typeof e == "string" || typeof e == "number")
6
- n += e;
7
- else if (typeof e == "object")
8
- if (Array.isArray(e)) {
9
- var o = e.length;
10
- for (t = 0;t < o; t++)
11
- e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
12
- } else
13
- for (f in e)
14
- e[f] && (n && (n += " "), n += f);
15
- return n;
16
- }
17
- function clsx() {
18
- for (var e, t, f = 0, n = "", o = arguments.length;f < o; f++)
19
- (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
20
- return n;
21
- }
2
+ function truncate(value,max){if(value.length<=max)return value;let end=max-1,last=value.charCodeAt(end-1);if(last>=55296&&last<=56319)end-=1;return`${value.slice(0,end)}\u2026`}var RESOURCE_LABEL_MAX=120,STABLE_ID_PATTERN=/^[a-z0-9][a-z0-9._:-]{0,127}$/;function normalizeResources(resources){return resources.map((resource)=>{let next={...resource};if(!STABLE_ID_PATTERN.test(next.id))next.id=healthResourceId(next.id);if(next.label!==void 0){let label=next.label.trim();if(label.length===0)delete next.label;else next.label=truncate(label,RESOURCE_LABEL_MAX)}return next})}function clampCopy(input){let clamped={...input},summary=clamped.summary.trim();if(clamped.summary=truncate(summary.length>0?summary:"(no summary provided)",500),clamped.detail!==void 0){let detail=clamped.detail.trim();if(detail.length===0)delete clamped.detail;else clamped.detail=truncate(detail,4000)}if(clamped.incident){let incident={...clamped.incident};if(incident.impact.length>500)incident.impact=truncate(incident.impact,500);if(incident.resources)incident.resources=normalizeResources(incident.resources);clamped.incident=incident}return clamped}function healthHealthy(input){return{...clampCopy(input),status:"healthy"}}function healthWarning(input){return{...clampCopy(input),status:"warning"}}function healthError(input){return{...clampCopy(input),status:"error"}}function healthUnknown(input){return{...clampCopy(input),status:"unknown"}}function healthObserved(observations){return{outcome:"observed",observations}}function healthNotApplicable(reason){return{outcome:"not_applicable",reason}}function healthResourceId(raw){let sanitized=raw.toLowerCase().replace(/[^a-z0-9._:-]+/g,"-").replace(/^[^a-z0-9]+/,"").replace(/-+$/,"").slice(0,128);return sanitized.length>0?sanitized:"unknown"}function r(e){var t,f,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}var concatArrays=(array1,array2)=>{let combinedArray=Array(array1.length+array2.length);for(let i=0;i<array1.length;i++)combinedArray[i]=array1[i];for(let i=0;i<array2.length;i++)combinedArray[array1.length+i]=array2[i];return combinedArray},createClassValidatorObject=(classGroupId,validator)=>({classGroupId,validator}),createClassPartObject=(nextPart=new Map,validators=null,classGroupId)=>({nextPart,validators,classGroupId});var EMPTY_CONFLICTS=[];var createClassGroupUtils=(config)=>{let classMap=createClassMap(config),{conflictingClassGroups,conflictingClassGroupModifiers}=config;return{getClassGroupId:(className)=>{if(className.startsWith("[")&&className.endsWith("]"))return getGroupIdForArbitraryProperty(className);let classParts=className.split("-"),startIndex=classParts[0]===""&&classParts.length>1?1:0;return getGroupRecursive(classParts,startIndex,classMap)},getConflictingClassGroupIds:(classGroupId,hasPostfixModifier)=>{if(hasPostfixModifier){let modifierConflicts=conflictingClassGroupModifiers[classGroupId],baseConflicts=conflictingClassGroups[classGroupId];if(modifierConflicts){if(baseConflicts)return concatArrays(baseConflicts,modifierConflicts);return modifierConflicts}return baseConflicts||EMPTY_CONFLICTS}return conflictingClassGroups[classGroupId]||EMPTY_CONFLICTS}}},getGroupRecursive=(classParts,startIndex,classPartObject)=>{if(classParts.length-startIndex===0)return classPartObject.classGroupId;let currentClassPart=classParts[startIndex],nextClassPartObject=classPartObject.nextPart.get(currentClassPart);if(nextClassPartObject){let result=getGroupRecursive(classParts,startIndex+1,nextClassPartObject);if(result)return result}let validators=classPartObject.validators;if(validators===null)return;let classRest=startIndex===0?classParts.join("-"):classParts.slice(startIndex).join("-"),validatorsLength=validators.length;for(let i=0;i<validatorsLength;i++){let validatorObj=validators[i];if(validatorObj.validator(classRest))return validatorObj.classGroupId}return},getGroupIdForArbitraryProperty=(className)=>className.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let content=className.slice(1,-1),colonIndex=content.indexOf(":"),property=content.slice(0,colonIndex);return property?"arbitrary.."+property:void 0})(),createClassMap=(config)=>{let{theme,classGroups}=config;return processClassGroups(classGroups,theme)},processClassGroups=(classGroups,theme)=>{let classMap=createClassPartObject();for(let classGroupId in classGroups){let group=classGroups[classGroupId];processClassesRecursively(group,classMap,classGroupId,theme)}return classMap},processClassesRecursively=(classGroup,classPartObject,classGroupId,theme)=>{let len=classGroup.length;for(let i=0;i<len;i++){let classDefinition=classGroup[i];processClassDefinition(classDefinition,classPartObject,classGroupId,theme)}},processClassDefinition=(classDefinition,classPartObject,classGroupId,theme)=>{if(typeof classDefinition==="string"){processStringDefinition(classDefinition,classPartObject,classGroupId);return}if(typeof classDefinition==="function"){processFunctionDefinition(classDefinition,classPartObject,classGroupId,theme);return}processObjectDefinition(classDefinition,classPartObject,classGroupId,theme)},processStringDefinition=(classDefinition,classPartObject,classGroupId)=>{let classPartObjectToEdit=classDefinition===""?classPartObject:getPart(classPartObject,classDefinition);classPartObjectToEdit.classGroupId=classGroupId},processFunctionDefinition=(classDefinition,classPartObject,classGroupId,theme)=>{if(isThemeGetter(classDefinition)){processClassesRecursively(classDefinition(theme),classPartObject,classGroupId,theme);return}if(classPartObject.validators===null)classPartObject.validators=[];classPartObject.validators.push(createClassValidatorObject(classGroupId,classDefinition))},processObjectDefinition=(classDefinition,classPartObject,classGroupId,theme)=>{let entries=Object.entries(classDefinition),len=entries.length;for(let i=0;i<len;i++){let[key,value]=entries[i];processClassesRecursively(value,getPart(classPartObject,key),classGroupId,theme)}},getPart=(classPartObject,path)=>{let current=classPartObject,parts=path.split("-"),len=parts.length;for(let i=0;i<len;i++){let part=parts[i],next=current.nextPart.get(part);if(!next)next=createClassPartObject(),current.nextPart.set(part,next);current=next}return current},isThemeGetter=(func)=>("isThemeGetter"in func)&&func.isThemeGetter===!0,createLruCache=(maxCacheSize)=>{if(maxCacheSize<1)return{get:()=>{return},set:()=>{}};let cacheSize=0,cache=Object.create(null),previousCache=Object.create(null),update=(key,value)=>{if(cache[key]=value,cacheSize++,cacheSize>maxCacheSize)cacheSize=0,previousCache=cache,cache=Object.create(null)};return{get(key){let value=cache[key];if(value!==void 0)return value;if((value=previousCache[key])!==void 0)return update(key,value),value},set(key,value){if(key in cache)cache[key]=value;else update(key,value)}}};var EMPTY_MODIFIERS=[],createResultObject=(modifiers,hasImportantModifier,baseClassName,maybePostfixModifierPosition,isExternal)=>({modifiers,hasImportantModifier,baseClassName,maybePostfixModifierPosition,isExternal}),createParseClassName=(config)=>{let{prefix,experimentalParseClassName}=config,parseClassName=(className)=>{let modifiers=[],bracketDepth=0,parenDepth=0,modifierStart=0,postfixModifierPosition,len=className.length;for(let index=0;index<len;index++){let currentCharacter=className[index];if(bracketDepth===0&&parenDepth===0){if(currentCharacter===":"){modifiers.push(className.slice(modifierStart,index)),modifierStart=index+1;continue}if(currentCharacter==="/"){postfixModifierPosition=index;continue}}if(currentCharacter==="[")bracketDepth++;else if(currentCharacter==="]")bracketDepth--;else if(currentCharacter==="(")parenDepth++;else if(currentCharacter===")")parenDepth--}let baseClassNameWithImportantModifier=modifiers.length===0?className:className.slice(modifierStart),baseClassName=baseClassNameWithImportantModifier,hasImportantModifier=!1;if(baseClassNameWithImportantModifier.endsWith("!"))baseClassName=baseClassNameWithImportantModifier.slice(0,-1),hasImportantModifier=!0;else if(baseClassNameWithImportantModifier.startsWith("!"))baseClassName=baseClassNameWithImportantModifier.slice(1),hasImportantModifier=!0;let maybePostfixModifierPosition=postfixModifierPosition&&postfixModifierPosition>modifierStart?postfixModifierPosition-modifierStart:void 0;return createResultObject(modifiers,hasImportantModifier,baseClassName,maybePostfixModifierPosition)};if(prefix){let fullPrefix=prefix+":",parseClassNameOriginal=parseClassName;parseClassName=(className)=>className.startsWith(fullPrefix)?parseClassNameOriginal(className.slice(fullPrefix.length)):createResultObject(EMPTY_MODIFIERS,!1,className,void 0,!0)}if(experimentalParseClassName){let parseClassNameOriginal=parseClassName;parseClassName=(className)=>experimentalParseClassName({className,parseClassName:parseClassNameOriginal})}return parseClassName},createSortModifiers=(config)=>{let modifierWeights=new Map;return config.orderSensitiveModifiers.forEach((mod,index)=>{modifierWeights.set(mod,1e6+index)}),(modifiers)=>{let result=[],currentSegment=[];for(let i=0;i<modifiers.length;i++){let modifier=modifiers[i],isArbitrary=modifier[0]==="[",isOrderSensitive=modifierWeights.has(modifier);if(isArbitrary||isOrderSensitive){if(currentSegment.length>0)currentSegment.sort(),result.push(...currentSegment),currentSegment=[];result.push(modifier)}else currentSegment.push(modifier)}if(currentSegment.length>0)currentSegment.sort(),result.push(...currentSegment);return result}},createConfigUtils=(config)=>({cache:createLruCache(config.cacheSize),parseClassName:createParseClassName(config),sortModifiers:createSortModifiers(config),...createClassGroupUtils(config)}),SPLIT_CLASSES_REGEX=/\s+/,mergeClassList=(classList,configUtils)=>{let{parseClassName,getClassGroupId,getConflictingClassGroupIds,sortModifiers}=configUtils,classGroupsInConflict=[],classNames=classList.trim().split(SPLIT_CLASSES_REGEX),result="";for(let index=classNames.length-1;index>=0;index-=1){let originalClassName=classNames[index],{isExternal,modifiers,hasImportantModifier,baseClassName,maybePostfixModifierPosition}=parseClassName(originalClassName);if(isExternal){result=originalClassName+(result.length>0?" "+result:result);continue}let hasPostfixModifier=!!maybePostfixModifierPosition,classGroupId=getClassGroupId(hasPostfixModifier?baseClassName.substring(0,maybePostfixModifierPosition):baseClassName);if(!classGroupId){if(!hasPostfixModifier){result=originalClassName+(result.length>0?" "+result:result);continue}if(classGroupId=getClassGroupId(baseClassName),!classGroupId){result=originalClassName+(result.length>0?" "+result:result);continue}hasPostfixModifier=!1}let variantModifier=modifiers.length===0?"":modifiers.length===1?modifiers[0]:sortModifiers(modifiers).join(":"),modifierId=hasImportantModifier?variantModifier+"!":variantModifier,classId=modifierId+classGroupId;if(classGroupsInConflict.indexOf(classId)>-1)continue;classGroupsInConflict.push(classId);let conflictGroups=getConflictingClassGroupIds(classGroupId,hasPostfixModifier);for(let i=0;i<conflictGroups.length;++i){let group=conflictGroups[i];classGroupsInConflict.push(modifierId+group)}result=originalClassName+(result.length>0?" "+result:result)}return result},twJoin=(...classLists)=>{let index=0,argument,resolvedValue,string="";while(index<classLists.length)if(argument=classLists[index++]){if(resolvedValue=toValue(argument))string&&(string+=" "),string+=resolvedValue}return string},toValue=(mix)=>{if(typeof mix==="string")return mix;let resolvedValue,string="";for(let k=0;k<mix.length;k++)if(mix[k]){if(resolvedValue=toValue(mix[k]))string&&(string+=" "),string+=resolvedValue}return string},createTailwindMerge=(createConfigFirst,...createConfigRest)=>{let configUtils,cacheGet,cacheSet,functionToCall,initTailwindMerge=(classList)=>{let config=createConfigRest.reduce((previousConfig,createConfigCurrent)=>createConfigCurrent(previousConfig),createConfigFirst());return configUtils=createConfigUtils(config),cacheGet=configUtils.cache.get,cacheSet=configUtils.cache.set,functionToCall=tailwindMerge,tailwindMerge(classList)},tailwindMerge=(classList)=>{let cachedResult=cacheGet(classList);if(cachedResult)return cachedResult;let result=mergeClassList(classList,configUtils);return cacheSet(classList,result),result};return functionToCall=initTailwindMerge,(...args)=>functionToCall(twJoin(...args))},fallbackThemeArr=[],fromTheme=(key)=>{let themeGetter=(theme)=>theme[key]||fallbackThemeArr;return themeGetter.isThemeGetter=!0,themeGetter},arbitraryValueRegex=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,arbitraryVariableRegex=/^\((?:(\w[\w-]*):)?(.+)\)$/i,fractionRegex=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,tshirtUnitRegex=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,lengthUnitRegex=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,colorFunctionRegex=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,shadowRegex=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,imageRegex=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,isFraction=(value)=>fractionRegex.test(value),isNumber=(value)=>!!value&&!Number.isNaN(Number(value)),isInteger=(value)=>!!value&&Number.isInteger(Number(value)),isPercent=(value)=>value.endsWith("%")&&isNumber(value.slice(0,-1)),isTshirtSize=(value)=>tshirtUnitRegex.test(value),isAny=()=>!0,isLengthOnly=(value)=>lengthUnitRegex.test(value)&&!colorFunctionRegex.test(value),isNever=()=>!1,isShadow=(value)=>shadowRegex.test(value),isImage=(value)=>imageRegex.test(value),isAnyNonArbitrary=(value)=>!isArbitraryValue(value)&&!isArbitraryVariable(value),isArbitrarySize=(value)=>getIsArbitraryValue(value,isLabelSize,isNever),isArbitraryValue=(value)=>arbitraryValueRegex.test(value),isArbitraryLength=(value)=>getIsArbitraryValue(value,isLabelLength,isLengthOnly),isArbitraryNumber=(value)=>getIsArbitraryValue(value,isLabelNumber,isNumber),isArbitraryWeight=(value)=>getIsArbitraryValue(value,isLabelWeight,isAny),isArbitraryFamilyName=(value)=>getIsArbitraryValue(value,isLabelFamilyName,isNever),isArbitraryPosition=(value)=>getIsArbitraryValue(value,isLabelPosition,isNever),isArbitraryImage=(value)=>getIsArbitraryValue(value,isLabelImage,isImage),isArbitraryShadow=(value)=>getIsArbitraryValue(value,isLabelShadow,isShadow),isArbitraryVariable=(value)=>arbitraryVariableRegex.test(value),isArbitraryVariableLength=(value)=>getIsArbitraryVariable(value,isLabelLength),isArbitraryVariableFamilyName=(value)=>getIsArbitraryVariable(value,isLabelFamilyName),isArbitraryVariablePosition=(value)=>getIsArbitraryVariable(value,isLabelPosition),isArbitraryVariableSize=(value)=>getIsArbitraryVariable(value,isLabelSize),isArbitraryVariableImage=(value)=>getIsArbitraryVariable(value,isLabelImage),isArbitraryVariableShadow=(value)=>getIsArbitraryVariable(value,isLabelShadow,!0),isArbitraryVariableWeight=(value)=>getIsArbitraryVariable(value,isLabelWeight,!0),getIsArbitraryValue=(value,testLabel,testValue)=>{let result=arbitraryValueRegex.exec(value);if(result){if(result[1])return testLabel(result[1]);return testValue(result[2])}return!1},getIsArbitraryVariable=(value,testLabel,shouldMatchNoLabel=!1)=>{let result=arbitraryVariableRegex.exec(value);if(result){if(result[1])return testLabel(result[1]);return shouldMatchNoLabel}return!1},isLabelPosition=(label)=>label==="position"||label==="percentage",isLabelImage=(label)=>label==="image"||label==="url",isLabelSize=(label)=>label==="length"||label==="size"||label==="bg-size",isLabelLength=(label)=>label==="length",isLabelNumber=(label)=>label==="number",isLabelFamilyName=(label)=>label==="family-name",isLabelWeight=(label)=>label==="number"||label==="weight",isLabelShadow=(label)=>label==="shadow";var getDefaultConfig=()=>{let themeColor=fromTheme("color"),themeFont=fromTheme("font"),themeText=fromTheme("text"),themeFontWeight=fromTheme("font-weight"),themeTracking=fromTheme("tracking"),themeLeading=fromTheme("leading"),themeBreakpoint=fromTheme("breakpoint"),themeContainer=fromTheme("container"),themeSpacing=fromTheme("spacing"),themeRadius=fromTheme("radius"),themeShadow=fromTheme("shadow"),themeInsetShadow=fromTheme("inset-shadow"),themeTextShadow=fromTheme("text-shadow"),themeDropShadow=fromTheme("drop-shadow"),themeBlur=fromTheme("blur"),themePerspective=fromTheme("perspective"),themeAspect=fromTheme("aspect"),themeEase=fromTheme("ease"),themeAnimate=fromTheme("animate"),scaleBreak=()=>["auto","avoid","all","avoid-page","page","left","right","column"],scalePosition=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],scalePositionWithArbitrary=()=>[...scalePosition(),isArbitraryVariable,isArbitraryValue],scaleOverflow=()=>["auto","hidden","clip","visible","scroll"],scaleOverscroll=()=>["auto","contain","none"],scaleUnambiguousSpacing=()=>[isArbitraryVariable,isArbitraryValue,themeSpacing],scaleInset=()=>[isFraction,"full","auto",...scaleUnambiguousSpacing()],scaleGridTemplateColsRows=()=>[isInteger,"none","subgrid",isArbitraryVariable,isArbitraryValue],scaleGridColRowStartAndEnd=()=>["auto",{span:["full",isInteger,isArbitraryVariable,isArbitraryValue]},isInteger,isArbitraryVariable,isArbitraryValue],scaleGridColRowStartOrEnd=()=>[isInteger,"auto",isArbitraryVariable,isArbitraryValue],scaleGridAutoColsRows=()=>["auto","min","max","fr",isArbitraryVariable,isArbitraryValue],scaleAlignPrimaryAxis=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],scaleAlignSecondaryAxis=()=>["start","end","center","stretch","center-safe","end-safe"],scaleMargin=()=>["auto",...scaleUnambiguousSpacing()],scaleSizing=()=>[isFraction,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...scaleUnambiguousSpacing()],scaleSizingInline=()=>[isFraction,"screen","full","dvw","lvw","svw","min","max","fit",...scaleUnambiguousSpacing()],scaleSizingBlock=()=>[isFraction,"screen","full","lh","dvh","lvh","svh","min","max","fit",...scaleUnambiguousSpacing()],scaleColor=()=>[themeColor,isArbitraryVariable,isArbitraryValue],scaleBgPosition=()=>[...scalePosition(),isArbitraryVariablePosition,isArbitraryPosition,{position:[isArbitraryVariable,isArbitraryValue]}],scaleBgRepeat=()=>["no-repeat",{repeat:["","x","y","space","round"]}],scaleBgSize=()=>["auto","cover","contain",isArbitraryVariableSize,isArbitrarySize,{size:[isArbitraryVariable,isArbitraryValue]}],scaleGradientStopPosition=()=>[isPercent,isArbitraryVariableLength,isArbitraryLength],scaleRadius=()=>["","none","full",themeRadius,isArbitraryVariable,isArbitraryValue],scaleBorderWidth=()=>["",isNumber,isArbitraryVariableLength,isArbitraryLength],scaleLineStyle=()=>["solid","dashed","dotted","double"],scaleBlendMode=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],scaleMaskImagePosition=()=>[isNumber,isPercent,isArbitraryVariablePosition,isArbitraryPosition],scaleBlur=()=>["","none",themeBlur,isArbitraryVariable,isArbitraryValue],scaleRotate=()=>["none",isNumber,isArbitraryVariable,isArbitraryValue],scaleScale=()=>["none",isNumber,isArbitraryVariable,isArbitraryValue],scaleSkew=()=>[isNumber,isArbitraryVariable,isArbitraryValue],scaleTranslate=()=>[isFraction,"full",...scaleUnambiguousSpacing()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[isTshirtSize],breakpoint:[isTshirtSize],color:[isAny],container:[isTshirtSize],"drop-shadow":[isTshirtSize],ease:["in","out","in-out"],font:[isAnyNonArbitrary],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[isTshirtSize],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[isTshirtSize],shadow:[isTshirtSize],spacing:["px",isNumber],text:[isTshirtSize],"text-shadow":[isTshirtSize],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",isFraction,isArbitraryValue,isArbitraryVariable,themeAspect]}],container:["container"],columns:[{columns:[isNumber,isArbitraryValue,isArbitraryVariable,themeContainer]}],"break-after":[{"break-after":scaleBreak()}],"break-before":[{"break-before":scaleBreak()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:scalePositionWithArbitrary()}],overflow:[{overflow:scaleOverflow()}],"overflow-x":[{"overflow-x":scaleOverflow()}],"overflow-y":[{"overflow-y":scaleOverflow()}],overscroll:[{overscroll:scaleOverscroll()}],"overscroll-x":[{"overscroll-x":scaleOverscroll()}],"overscroll-y":[{"overscroll-y":scaleOverscroll()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:scaleInset()}],"inset-x":[{"inset-x":scaleInset()}],"inset-y":[{"inset-y":scaleInset()}],start:[{"inset-s":scaleInset(),start:scaleInset()}],end:[{"inset-e":scaleInset(),end:scaleInset()}],"inset-bs":[{"inset-bs":scaleInset()}],"inset-be":[{"inset-be":scaleInset()}],top:[{top:scaleInset()}],right:[{right:scaleInset()}],bottom:[{bottom:scaleInset()}],left:[{left:scaleInset()}],visibility:["visible","invisible","collapse"],z:[{z:[isInteger,"auto",isArbitraryVariable,isArbitraryValue]}],basis:[{basis:[isFraction,"full","auto",themeContainer,...scaleUnambiguousSpacing()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[isNumber,isFraction,"auto","initial","none",isArbitraryValue]}],grow:[{grow:["",isNumber,isArbitraryVariable,isArbitraryValue]}],shrink:[{shrink:["",isNumber,isArbitraryVariable,isArbitraryValue]}],order:[{order:[isInteger,"first","last","none",isArbitraryVariable,isArbitraryValue]}],"grid-cols":[{"grid-cols":scaleGridTemplateColsRows()}],"col-start-end":[{col:scaleGridColRowStartAndEnd()}],"col-start":[{"col-start":scaleGridColRowStartOrEnd()}],"col-end":[{"col-end":scaleGridColRowStartOrEnd()}],"grid-rows":[{"grid-rows":scaleGridTemplateColsRows()}],"row-start-end":[{row:scaleGridColRowStartAndEnd()}],"row-start":[{"row-start":scaleGridColRowStartOrEnd()}],"row-end":[{"row-end":scaleGridColRowStartOrEnd()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":scaleGridAutoColsRows()}],"auto-rows":[{"auto-rows":scaleGridAutoColsRows()}],gap:[{gap:scaleUnambiguousSpacing()}],"gap-x":[{"gap-x":scaleUnambiguousSpacing()}],"gap-y":[{"gap-y":scaleUnambiguousSpacing()}],"justify-content":[{justify:[...scaleAlignPrimaryAxis(),"normal"]}],"justify-items":[{"justify-items":[...scaleAlignSecondaryAxis(),"normal"]}],"justify-self":[{"justify-self":["auto",...scaleAlignSecondaryAxis()]}],"align-content":[{content:["normal",...scaleAlignPrimaryAxis()]}],"align-items":[{items:[...scaleAlignSecondaryAxis(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...scaleAlignSecondaryAxis(),{baseline:["","last"]}]}],"place-content":[{"place-content":scaleAlignPrimaryAxis()}],"place-items":[{"place-items":[...scaleAlignSecondaryAxis(),"baseline"]}],"place-self":[{"place-self":["auto",...scaleAlignSecondaryAxis()]}],p:[{p:scaleUnambiguousSpacing()}],px:[{px:scaleUnambiguousSpacing()}],py:[{py:scaleUnambiguousSpacing()}],ps:[{ps:scaleUnambiguousSpacing()}],pe:[{pe:scaleUnambiguousSpacing()}],pbs:[{pbs:scaleUnambiguousSpacing()}],pbe:[{pbe:scaleUnambiguousSpacing()}],pt:[{pt:scaleUnambiguousSpacing()}],pr:[{pr:scaleUnambiguousSpacing()}],pb:[{pb:scaleUnambiguousSpacing()}],pl:[{pl:scaleUnambiguousSpacing()}],m:[{m:scaleMargin()}],mx:[{mx:scaleMargin()}],my:[{my:scaleMargin()}],ms:[{ms:scaleMargin()}],me:[{me:scaleMargin()}],mbs:[{mbs:scaleMargin()}],mbe:[{mbe:scaleMargin()}],mt:[{mt:scaleMargin()}],mr:[{mr:scaleMargin()}],mb:[{mb:scaleMargin()}],ml:[{ml:scaleMargin()}],"space-x":[{"space-x":scaleUnambiguousSpacing()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":scaleUnambiguousSpacing()}],"space-y-reverse":["space-y-reverse"],size:[{size:scaleSizing()}],"inline-size":[{inline:["auto",...scaleSizingInline()]}],"min-inline-size":[{"min-inline":["auto",...scaleSizingInline()]}],"max-inline-size":[{"max-inline":["none",...scaleSizingInline()]}],"block-size":[{block:["auto",...scaleSizingBlock()]}],"min-block-size":[{"min-block":["auto",...scaleSizingBlock()]}],"max-block-size":[{"max-block":["none",...scaleSizingBlock()]}],w:[{w:[themeContainer,"screen",...scaleSizing()]}],"min-w":[{"min-w":[themeContainer,"screen","none",...scaleSizing()]}],"max-w":[{"max-w":[themeContainer,"screen","none","prose",{screen:[themeBreakpoint]},...scaleSizing()]}],h:[{h:["screen","lh",...scaleSizing()]}],"min-h":[{"min-h":["screen","lh","none",...scaleSizing()]}],"max-h":[{"max-h":["screen","lh",...scaleSizing()]}],"font-size":[{text:["base",themeText,isArbitraryVariableLength,isArbitraryLength]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[themeFontWeight,isArbitraryVariableWeight,isArbitraryWeight]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",isPercent,isArbitraryValue]}],"font-family":[{font:[isArbitraryVariableFamilyName,isArbitraryFamilyName,themeFont]}],"font-features":[{"font-features":[isArbitraryValue]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[themeTracking,isArbitraryVariable,isArbitraryValue]}],"line-clamp":[{"line-clamp":[isNumber,"none",isArbitraryVariable,isArbitraryNumber]}],leading:[{leading:[themeLeading,...scaleUnambiguousSpacing()]}],"list-image":[{"list-image":["none",isArbitraryVariable,isArbitraryValue]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",isArbitraryVariable,isArbitraryValue]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:scaleColor()}],"text-color":[{text:scaleColor()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...scaleLineStyle(),"wavy"]}],"text-decoration-thickness":[{decoration:[isNumber,"from-font","auto",isArbitraryVariable,isArbitraryLength]}],"text-decoration-color":[{decoration:scaleColor()}],"underline-offset":[{"underline-offset":[isNumber,"auto",isArbitraryVariable,isArbitraryValue]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:scaleUnambiguousSpacing()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",isArbitraryVariable,isArbitraryValue]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",isArbitraryVariable,isArbitraryValue]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:scaleBgPosition()}],"bg-repeat":[{bg:scaleBgRepeat()}],"bg-size":[{bg:scaleBgSize()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},isInteger,isArbitraryVariable,isArbitraryValue],radial:["",isArbitraryVariable,isArbitraryValue],conic:[isInteger,isArbitraryVariable,isArbitraryValue]},isArbitraryVariableImage,isArbitraryImage]}],"bg-color":[{bg:scaleColor()}],"gradient-from-pos":[{from:scaleGradientStopPosition()}],"gradient-via-pos":[{via:scaleGradientStopPosition()}],"gradient-to-pos":[{to:scaleGradientStopPosition()}],"gradient-from":[{from:scaleColor()}],"gradient-via":[{via:scaleColor()}],"gradient-to":[{to:scaleColor()}],rounded:[{rounded:scaleRadius()}],"rounded-s":[{"rounded-s":scaleRadius()}],"rounded-e":[{"rounded-e":scaleRadius()}],"rounded-t":[{"rounded-t":scaleRadius()}],"rounded-r":[{"rounded-r":scaleRadius()}],"rounded-b":[{"rounded-b":scaleRadius()}],"rounded-l":[{"rounded-l":scaleRadius()}],"rounded-ss":[{"rounded-ss":scaleRadius()}],"rounded-se":[{"rounded-se":scaleRadius()}],"rounded-ee":[{"rounded-ee":scaleRadius()}],"rounded-es":[{"rounded-es":scaleRadius()}],"rounded-tl":[{"rounded-tl":scaleRadius()}],"rounded-tr":[{"rounded-tr":scaleRadius()}],"rounded-br":[{"rounded-br":scaleRadius()}],"rounded-bl":[{"rounded-bl":scaleRadius()}],"border-w":[{border:scaleBorderWidth()}],"border-w-x":[{"border-x":scaleBorderWidth()}],"border-w-y":[{"border-y":scaleBorderWidth()}],"border-w-s":[{"border-s":scaleBorderWidth()}],"border-w-e":[{"border-e":scaleBorderWidth()}],"border-w-bs":[{"border-bs":scaleBorderWidth()}],"border-w-be":[{"border-be":scaleBorderWidth()}],"border-w-t":[{"border-t":scaleBorderWidth()}],"border-w-r":[{"border-r":scaleBorderWidth()}],"border-w-b":[{"border-b":scaleBorderWidth()}],"border-w-l":[{"border-l":scaleBorderWidth()}],"divide-x":[{"divide-x":scaleBorderWidth()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":scaleBorderWidth()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...scaleLineStyle(),"hidden","none"]}],"divide-style":[{divide:[...scaleLineStyle(),"hidden","none"]}],"border-color":[{border:scaleColor()}],"border-color-x":[{"border-x":scaleColor()}],"border-color-y":[{"border-y":scaleColor()}],"border-color-s":[{"border-s":scaleColor()}],"border-color-e":[{"border-e":scaleColor()}],"border-color-bs":[{"border-bs":scaleColor()}],"border-color-be":[{"border-be":scaleColor()}],"border-color-t":[{"border-t":scaleColor()}],"border-color-r":[{"border-r":scaleColor()}],"border-color-b":[{"border-b":scaleColor()}],"border-color-l":[{"border-l":scaleColor()}],"divide-color":[{divide:scaleColor()}],"outline-style":[{outline:[...scaleLineStyle(),"none","hidden"]}],"outline-offset":[{"outline-offset":[isNumber,isArbitraryVariable,isArbitraryValue]}],"outline-w":[{outline:["",isNumber,isArbitraryVariableLength,isArbitraryLength]}],"outline-color":[{outline:scaleColor()}],shadow:[{shadow:["","none",themeShadow,isArbitraryVariableShadow,isArbitraryShadow]}],"shadow-color":[{shadow:scaleColor()}],"inset-shadow":[{"inset-shadow":["none",themeInsetShadow,isArbitraryVariableShadow,isArbitraryShadow]}],"inset-shadow-color":[{"inset-shadow":scaleColor()}],"ring-w":[{ring:scaleBorderWidth()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:scaleColor()}],"ring-offset-w":[{"ring-offset":[isNumber,isArbitraryLength]}],"ring-offset-color":[{"ring-offset":scaleColor()}],"inset-ring-w":[{"inset-ring":scaleBorderWidth()}],"inset-ring-color":[{"inset-ring":scaleColor()}],"text-shadow":[{"text-shadow":["none",themeTextShadow,isArbitraryVariableShadow,isArbitraryShadow]}],"text-shadow-color":[{"text-shadow":scaleColor()}],opacity:[{opacity:[isNumber,isArbitraryVariable,isArbitraryValue]}],"mix-blend":[{"mix-blend":[...scaleBlendMode(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":scaleBlendMode()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[isNumber]}],"mask-image-linear-from-pos":[{"mask-linear-from":scaleMaskImagePosition()}],"mask-image-linear-to-pos":[{"mask-linear-to":scaleMaskImagePosition()}],"mask-image-linear-from-color":[{"mask-linear-from":scaleColor()}],"mask-image-linear-to-color":[{"mask-linear-to":scaleColor()}],"mask-image-t-from-pos":[{"mask-t-from":scaleMaskImagePosition()}],"mask-image-t-to-pos":[{"mask-t-to":scaleMaskImagePosition()}],"mask-image-t-from-color":[{"mask-t-from":scaleColor()}],"mask-image-t-to-color":[{"mask-t-to":scaleColor()}],"mask-image-r-from-pos":[{"mask-r-from":scaleMaskImagePosition()}],"mask-image-r-to-pos":[{"mask-r-to":scaleMaskImagePosition()}],"mask-image-r-from-color":[{"mask-r-from":scaleColor()}],"mask-image-r-to-color":[{"mask-r-to":scaleColor()}],"mask-image-b-from-pos":[{"mask-b-from":scaleMaskImagePosition()}],"mask-image-b-to-pos":[{"mask-b-to":scaleMaskImagePosition()}],"mask-image-b-from-color":[{"mask-b-from":scaleColor()}],"mask-image-b-to-color":[{"mask-b-to":scaleColor()}],"mask-image-l-from-pos":[{"mask-l-from":scaleMaskImagePosition()}],"mask-image-l-to-pos":[{"mask-l-to":scaleMaskImagePosition()}],"mask-image-l-from-color":[{"mask-l-from":scaleColor()}],"mask-image-l-to-color":[{"mask-l-to":scaleColor()}],"mask-image-x-from-pos":[{"mask-x-from":scaleMaskImagePosition()}],"mask-image-x-to-pos":[{"mask-x-to":scaleMaskImagePosition()}],"mask-image-x-from-color":[{"mask-x-from":scaleColor()}],"mask-image-x-to-color":[{"mask-x-to":scaleColor()}],"mask-image-y-from-pos":[{"mask-y-from":scaleMaskImagePosition()}],"mask-image-y-to-pos":[{"mask-y-to":scaleMaskImagePosition()}],"mask-image-y-from-color":[{"mask-y-from":scaleColor()}],"mask-image-y-to-color":[{"mask-y-to":scaleColor()}],"mask-image-radial":[{"mask-radial":[isArbitraryVariable,isArbitraryValue]}],"mask-image-radial-from-pos":[{"mask-radial-from":scaleMaskImagePosition()}],"mask-image-radial-to-pos":[{"mask-radial-to":scaleMaskImagePosition()}],"mask-image-radial-from-color":[{"mask-radial-from":scaleColor()}],"mask-image-radial-to-color":[{"mask-radial-to":scaleColor()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":scalePosition()}],"mask-image-conic-pos":[{"mask-conic":[isNumber]}],"mask-image-conic-from-pos":[{"mask-conic-from":scaleMaskImagePosition()}],"mask-image-conic-to-pos":[{"mask-conic-to":scaleMaskImagePosition()}],"mask-image-conic-from-color":[{"mask-conic-from":scaleColor()}],"mask-image-conic-to-color":[{"mask-conic-to":scaleColor()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:scaleBgPosition()}],"mask-repeat":[{mask:scaleBgRepeat()}],"mask-size":[{mask:scaleBgSize()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",isArbitraryVariable,isArbitraryValue]}],filter:[{filter:["","none",isArbitraryVariable,isArbitraryValue]}],blur:[{blur:scaleBlur()}],brightness:[{brightness:[isNumber,isArbitraryVariable,isArbitraryValue]}],contrast:[{contrast:[isNumber,isArbitraryVariable,isArbitraryValue]}],"drop-shadow":[{"drop-shadow":["","none",themeDropShadow,isArbitraryVariableShadow,isArbitraryShadow]}],"drop-shadow-color":[{"drop-shadow":scaleColor()}],grayscale:[{grayscale:["",isNumber,isArbitraryVariable,isArbitraryValue]}],"hue-rotate":[{"hue-rotate":[isNumber,isArbitraryVariable,isArbitraryValue]}],invert:[{invert:["",isNumber,isArbitraryVariable,isArbitraryValue]}],saturate:[{saturate:[isNumber,isArbitraryVariable,isArbitraryValue]}],sepia:[{sepia:["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-filter":[{"backdrop-filter":["","none",isArbitraryVariable,isArbitraryValue]}],"backdrop-blur":[{"backdrop-blur":scaleBlur()}],"backdrop-brightness":[{"backdrop-brightness":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-contrast":[{"backdrop-contrast":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-grayscale":[{"backdrop-grayscale":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-invert":[{"backdrop-invert":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-opacity":[{"backdrop-opacity":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-saturate":[{"backdrop-saturate":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-sepia":[{"backdrop-sepia":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":scaleUnambiguousSpacing()}],"border-spacing-x":[{"border-spacing-x":scaleUnambiguousSpacing()}],"border-spacing-y":[{"border-spacing-y":scaleUnambiguousSpacing()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",isArbitraryVariable,isArbitraryValue]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[isNumber,"initial",isArbitraryVariable,isArbitraryValue]}],ease:[{ease:["linear","initial",themeEase,isArbitraryVariable,isArbitraryValue]}],delay:[{delay:[isNumber,isArbitraryVariable,isArbitraryValue]}],animate:[{animate:["none",themeAnimate,isArbitraryVariable,isArbitraryValue]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[themePerspective,isArbitraryVariable,isArbitraryValue]}],"perspective-origin":[{"perspective-origin":scalePositionWithArbitrary()}],rotate:[{rotate:scaleRotate()}],"rotate-x":[{"rotate-x":scaleRotate()}],"rotate-y":[{"rotate-y":scaleRotate()}],"rotate-z":[{"rotate-z":scaleRotate()}],scale:[{scale:scaleScale()}],"scale-x":[{"scale-x":scaleScale()}],"scale-y":[{"scale-y":scaleScale()}],"scale-z":[{"scale-z":scaleScale()}],"scale-3d":["scale-3d"],skew:[{skew:scaleSkew()}],"skew-x":[{"skew-x":scaleSkew()}],"skew-y":[{"skew-y":scaleSkew()}],transform:[{transform:[isArbitraryVariable,isArbitraryValue,"","none","gpu","cpu"]}],"transform-origin":[{origin:scalePositionWithArbitrary()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:scaleTranslate()}],"translate-x":[{"translate-x":scaleTranslate()}],"translate-y":[{"translate-y":scaleTranslate()}],"translate-z":[{"translate-z":scaleTranslate()}],"translate-none":["translate-none"],accent:[{accent:scaleColor()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:scaleColor()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",isArbitraryVariable,isArbitraryValue]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":scaleUnambiguousSpacing()}],"scroll-mx":[{"scroll-mx":scaleUnambiguousSpacing()}],"scroll-my":[{"scroll-my":scaleUnambiguousSpacing()}],"scroll-ms":[{"scroll-ms":scaleUnambiguousSpacing()}],"scroll-me":[{"scroll-me":scaleUnambiguousSpacing()}],"scroll-mbs":[{"scroll-mbs":scaleUnambiguousSpacing()}],"scroll-mbe":[{"scroll-mbe":scaleUnambiguousSpacing()}],"scroll-mt":[{"scroll-mt":scaleUnambiguousSpacing()}],"scroll-mr":[{"scroll-mr":scaleUnambiguousSpacing()}],"scroll-mb":[{"scroll-mb":scaleUnambiguousSpacing()}],"scroll-ml":[{"scroll-ml":scaleUnambiguousSpacing()}],"scroll-p":[{"scroll-p":scaleUnambiguousSpacing()}],"scroll-px":[{"scroll-px":scaleUnambiguousSpacing()}],"scroll-py":[{"scroll-py":scaleUnambiguousSpacing()}],"scroll-ps":[{"scroll-ps":scaleUnambiguousSpacing()}],"scroll-pe":[{"scroll-pe":scaleUnambiguousSpacing()}],"scroll-pbs":[{"scroll-pbs":scaleUnambiguousSpacing()}],"scroll-pbe":[{"scroll-pbe":scaleUnambiguousSpacing()}],"scroll-pt":[{"scroll-pt":scaleUnambiguousSpacing()}],"scroll-pr":[{"scroll-pr":scaleUnambiguousSpacing()}],"scroll-pb":[{"scroll-pb":scaleUnambiguousSpacing()}],"scroll-pl":[{"scroll-pl":scaleUnambiguousSpacing()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",isArbitraryVariable,isArbitraryValue]}],fill:[{fill:["none",...scaleColor()]}],"stroke-w":[{stroke:[isNumber,isArbitraryVariableLength,isArbitraryLength,isArbitraryNumber]}],stroke:[{stroke:["none",...scaleColor()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var twMerge=createTailwindMerge(getDefaultConfig);function cn(...inputs){return twMerge(clsx(inputs))}var focusRing="outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-bakin-focus-ring",focusRingInset="outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-bakin-focus-ring";var ASSET_ID_RE=/^(\d{4})(\d{2})(\d{2})-.+-[0-9a-f]{8}$/i;function yearMonthFromAssetId(assetId){let m=ASSET_ID_RE.exec(assetId);if(!m)return null;let year=parseInt(m[1],10),month=parseInt(m[2],10),day=parseInt(m[3],10);if(year<1970||year>9999)return null;if(month<1||month>12)return null;if(day<1||day>31)return null;return`${m[1]}-${m[2]}`}function isValidAssetId(assetId){return assetId.length>0&&!assetId.includes("/")&&!assetId.includes("\\")&&!assetId.includes("..")&&yearMonthFromAssetId(assetId)!==null}function humanizeKey(key){let spaced=key.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().trim();return spaced.charAt(0).toUpperCase()+spaced.slice(1)}function isScalar(value){return typeof value==="string"||typeof value==="number"||typeof value==="boolean"}function renderEntry(key,value,indent,markdown){let name=humanizeKey(key),label=`${indent}${markdown?`**${name}:**`:`${name}:`}`;if(value===null||value===void 0||value==="")return[];if(isScalar(value)){let text=String(value);return text.length>80?[label,`${indent}${text}`]:[`${label} ${text}`]}if(Array.isArray(value)){if(value.length===0)return[];if(value.every(isScalar))return[`${label} ${value.map(String).join(", ")}`];return[label,...value.flatMap((entry,i)=>renderEntry(String(i+1),entry,`${indent} `,markdown))]}if(typeof value==="object"){let children=Object.entries(value).flatMap(([childKey,child])=>renderEntry(childKey,child,`${indent} `,markdown));return children.length>0?[label,...children]:[]}return[]}function formatStructured(value,opts={}){if(value===null||value===void 0)return"";if(isScalar(value))return String(value);let markdown=opts.markdown??!1,entries=Array.isArray(value)?value.flatMap((entry,i)=>renderEntry(String(i+1),entry,"",markdown)):Object.entries(value).flatMap(([k,v])=>renderEntry(k,v,"",markdown));if(entries.length===0)return"";let rendered=entries.join(`
3
+ `),cap=opts.cap??1/0,body=rendered.length>cap?`${rendered.slice(0,cap)}
4
+ ...[truncated]`:rendered;if(opts.heading)return`${opts.heading}
22
5
 
23
- // node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
24
- var concatArrays = (array1, array2) => {
25
- const combinedArray = new Array(array1.length + array2.length);
26
- for (let i = 0;i < array1.length; i++) {
27
- combinedArray[i] = array1[i];
28
- }
29
- for (let i = 0;i < array2.length; i++) {
30
- combinedArray[array1.length + i] = array2[i];
31
- }
32
- return combinedArray;
33
- };
34
- var createClassValidatorObject = (classGroupId, validator) => ({
35
- classGroupId,
36
- validator
37
- });
38
- var createClassPartObject = (nextPart = new Map, validators = null, classGroupId) => ({
39
- nextPart,
40
- validators,
41
- classGroupId
42
- });
43
- var CLASS_PART_SEPARATOR = "-";
44
- var EMPTY_CONFLICTS = [];
45
- var ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
46
- var createClassGroupUtils = (config) => {
47
- const classMap = createClassMap(config);
48
- const {
49
- conflictingClassGroups,
50
- conflictingClassGroupModifiers
51
- } = config;
52
- const getClassGroupId = (className) => {
53
- if (className.startsWith("[") && className.endsWith("]")) {
54
- return getGroupIdForArbitraryProperty(className);
55
- }
56
- const classParts = className.split(CLASS_PART_SEPARATOR);
57
- const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
58
- return getGroupRecursive(classParts, startIndex, classMap);
59
- };
60
- const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
61
- if (hasPostfixModifier) {
62
- const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
63
- const baseConflicts = conflictingClassGroups[classGroupId];
64
- if (modifierConflicts) {
65
- if (baseConflicts) {
66
- return concatArrays(baseConflicts, modifierConflicts);
67
- }
68
- return modifierConflicts;
69
- }
70
- return baseConflicts || EMPTY_CONFLICTS;
71
- }
72
- return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
73
- };
74
- return {
75
- getClassGroupId,
76
- getConflictingClassGroupIds
77
- };
78
- };
79
- var getGroupRecursive = (classParts, startIndex, classPartObject) => {
80
- const classPathsLength = classParts.length - startIndex;
81
- if (classPathsLength === 0) {
82
- return classPartObject.classGroupId;
83
- }
84
- const currentClassPart = classParts[startIndex];
85
- const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
86
- if (nextClassPartObject) {
87
- const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
88
- if (result)
89
- return result;
90
- }
91
- const validators = classPartObject.validators;
92
- if (validators === null) {
93
- return;
94
- }
95
- const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
96
- const validatorsLength = validators.length;
97
- for (let i = 0;i < validatorsLength; i++) {
98
- const validatorObj = validators[i];
99
- if (validatorObj.validator(classRest)) {
100
- return validatorObj.classGroupId;
101
- }
102
- }
103
- return;
104
- };
105
- var getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? undefined : (() => {
106
- const content = className.slice(1, -1);
107
- const colonIndex = content.indexOf(":");
108
- const property = content.slice(0, colonIndex);
109
- return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;
110
- })();
111
- var createClassMap = (config) => {
112
- const {
113
- theme,
114
- classGroups
115
- } = config;
116
- return processClassGroups(classGroups, theme);
117
- };
118
- var processClassGroups = (classGroups, theme) => {
119
- const classMap = createClassPartObject();
120
- for (const classGroupId in classGroups) {
121
- const group = classGroups[classGroupId];
122
- processClassesRecursively(group, classMap, classGroupId, theme);
123
- }
124
- return classMap;
125
- };
126
- var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
127
- const len = classGroup.length;
128
- for (let i = 0;i < len; i++) {
129
- const classDefinition = classGroup[i];
130
- processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
131
- }
132
- };
133
- var processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
134
- if (typeof classDefinition === "string") {
135
- processStringDefinition(classDefinition, classPartObject, classGroupId);
136
- return;
137
- }
138
- if (typeof classDefinition === "function") {
139
- processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
140
- return;
141
- }
142
- processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
143
- };
144
- var processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
145
- const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
146
- classPartObjectToEdit.classGroupId = classGroupId;
147
- };
148
- var processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
149
- if (isThemeGetter(classDefinition)) {
150
- processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
151
- return;
152
- }
153
- if (classPartObject.validators === null) {
154
- classPartObject.validators = [];
155
- }
156
- classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
157
- };
158
- var processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
159
- const entries = Object.entries(classDefinition);
160
- const len = entries.length;
161
- for (let i = 0;i < len; i++) {
162
- const [key, value] = entries[i];
163
- processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
164
- }
165
- };
166
- var getPart = (classPartObject, path) => {
167
- let current = classPartObject;
168
- const parts = path.split(CLASS_PART_SEPARATOR);
169
- const len = parts.length;
170
- for (let i = 0;i < len; i++) {
171
- const part = parts[i];
172
- let next = current.nextPart.get(part);
173
- if (!next) {
174
- next = createClassPartObject();
175
- current.nextPart.set(part, next);
176
- }
177
- current = next;
178
- }
179
- return current;
180
- };
181
- var isThemeGetter = (func) => ("isThemeGetter" in func) && func.isThemeGetter === true;
182
- var createLruCache = (maxCacheSize) => {
183
- if (maxCacheSize < 1) {
184
- return {
185
- get: () => {
186
- return;
187
- },
188
- set: () => {}
189
- };
190
- }
191
- let cacheSize = 0;
192
- let cache = Object.create(null);
193
- let previousCache = Object.create(null);
194
- const update = (key, value) => {
195
- cache[key] = value;
196
- cacheSize++;
197
- if (cacheSize > maxCacheSize) {
198
- cacheSize = 0;
199
- previousCache = cache;
200
- cache = Object.create(null);
201
- }
202
- };
203
- return {
204
- get(key) {
205
- let value = cache[key];
206
- if (value !== undefined) {
207
- return value;
208
- }
209
- if ((value = previousCache[key]) !== undefined) {
210
- update(key, value);
211
- return value;
212
- }
213
- },
214
- set(key, value) {
215
- if (key in cache) {
216
- cache[key] = value;
217
- } else {
218
- update(key, value);
219
- }
220
- }
221
- };
222
- };
223
- var IMPORTANT_MODIFIER = "!";
224
- var MODIFIER_SEPARATOR = ":";
225
- var EMPTY_MODIFIERS = [];
226
- var createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
227
- modifiers,
228
- hasImportantModifier,
229
- baseClassName,
230
- maybePostfixModifierPosition,
231
- isExternal
232
- });
233
- var createParseClassName = (config) => {
234
- const {
235
- prefix,
236
- experimentalParseClassName
237
- } = config;
238
- let parseClassName = (className) => {
239
- const modifiers = [];
240
- let bracketDepth = 0;
241
- let parenDepth = 0;
242
- let modifierStart = 0;
243
- let postfixModifierPosition;
244
- const len = className.length;
245
- for (let index = 0;index < len; index++) {
246
- const currentCharacter = className[index];
247
- if (bracketDepth === 0 && parenDepth === 0) {
248
- if (currentCharacter === MODIFIER_SEPARATOR) {
249
- modifiers.push(className.slice(modifierStart, index));
250
- modifierStart = index + 1;
251
- continue;
252
- }
253
- if (currentCharacter === "/") {
254
- postfixModifierPosition = index;
255
- continue;
256
- }
257
- }
258
- if (currentCharacter === "[")
259
- bracketDepth++;
260
- else if (currentCharacter === "]")
261
- bracketDepth--;
262
- else if (currentCharacter === "(")
263
- parenDepth++;
264
- else if (currentCharacter === ")")
265
- parenDepth--;
266
- }
267
- const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
268
- let baseClassName = baseClassNameWithImportantModifier;
269
- let hasImportantModifier = false;
270
- if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
271
- baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
272
- hasImportantModifier = true;
273
- } else if (baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {
274
- baseClassName = baseClassNameWithImportantModifier.slice(1);
275
- hasImportantModifier = true;
276
- }
277
- const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
278
- return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
279
- };
280
- if (prefix) {
281
- const fullPrefix = prefix + MODIFIER_SEPARATOR;
282
- const parseClassNameOriginal = parseClassName;
283
- parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);
284
- }
285
- if (experimentalParseClassName) {
286
- const parseClassNameOriginal = parseClassName;
287
- parseClassName = (className) => experimentalParseClassName({
288
- className,
289
- parseClassName: parseClassNameOriginal
290
- });
291
- }
292
- return parseClassName;
293
- };
294
- var createSortModifiers = (config) => {
295
- const modifierWeights = new Map;
296
- config.orderSensitiveModifiers.forEach((mod, index) => {
297
- modifierWeights.set(mod, 1e6 + index);
298
- });
299
- return (modifiers) => {
300
- const result = [];
301
- let currentSegment = [];
302
- for (let i = 0;i < modifiers.length; i++) {
303
- const modifier = modifiers[i];
304
- const isArbitrary = modifier[0] === "[";
305
- const isOrderSensitive = modifierWeights.has(modifier);
306
- if (isArbitrary || isOrderSensitive) {
307
- if (currentSegment.length > 0) {
308
- currentSegment.sort();
309
- result.push(...currentSegment);
310
- currentSegment = [];
311
- }
312
- result.push(modifier);
313
- } else {
314
- currentSegment.push(modifier);
315
- }
316
- }
317
- if (currentSegment.length > 0) {
318
- currentSegment.sort();
319
- result.push(...currentSegment);
320
- }
321
- return result;
322
- };
323
- };
324
- var createConfigUtils = (config) => ({
325
- cache: createLruCache(config.cacheSize),
326
- parseClassName: createParseClassName(config),
327
- sortModifiers: createSortModifiers(config),
328
- ...createClassGroupUtils(config)
329
- });
330
- var SPLIT_CLASSES_REGEX = /\s+/;
331
- var mergeClassList = (classList, configUtils) => {
332
- const {
333
- parseClassName,
334
- getClassGroupId,
335
- getConflictingClassGroupIds,
336
- sortModifiers
337
- } = configUtils;
338
- const classGroupsInConflict = [];
339
- const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
340
- let result = "";
341
- for (let index = classNames.length - 1;index >= 0; index -= 1) {
342
- const originalClassName = classNames[index];
343
- const {
344
- isExternal,
345
- modifiers,
346
- hasImportantModifier,
347
- baseClassName,
348
- maybePostfixModifierPosition
349
- } = parseClassName(originalClassName);
350
- if (isExternal) {
351
- result = originalClassName + (result.length > 0 ? " " + result : result);
352
- continue;
353
- }
354
- let hasPostfixModifier = !!maybePostfixModifierPosition;
355
- let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
356
- if (!classGroupId) {
357
- if (!hasPostfixModifier) {
358
- result = originalClassName + (result.length > 0 ? " " + result : result);
359
- continue;
360
- }
361
- classGroupId = getClassGroupId(baseClassName);
362
- if (!classGroupId) {
363
- result = originalClassName + (result.length > 0 ? " " + result : result);
364
- continue;
365
- }
366
- hasPostfixModifier = false;
367
- }
368
- const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
369
- const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
370
- const classId = modifierId + classGroupId;
371
- if (classGroupsInConflict.indexOf(classId) > -1) {
372
- continue;
373
- }
374
- classGroupsInConflict.push(classId);
375
- const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
376
- for (let i = 0;i < conflictGroups.length; ++i) {
377
- const group = conflictGroups[i];
378
- classGroupsInConflict.push(modifierId + group);
379
- }
380
- result = originalClassName + (result.length > 0 ? " " + result : result);
381
- }
382
- return result;
383
- };
384
- var twJoin = (...classLists) => {
385
- let index = 0;
386
- let argument;
387
- let resolvedValue;
388
- let string = "";
389
- while (index < classLists.length) {
390
- if (argument = classLists[index++]) {
391
- if (resolvedValue = toValue(argument)) {
392
- string && (string += " ");
393
- string += resolvedValue;
394
- }
395
- }
396
- }
397
- return string;
398
- };
399
- var toValue = (mix) => {
400
- if (typeof mix === "string") {
401
- return mix;
402
- }
403
- let resolvedValue;
404
- let string = "";
405
- for (let k = 0;k < mix.length; k++) {
406
- if (mix[k]) {
407
- if (resolvedValue = toValue(mix[k])) {
408
- string && (string += " ");
409
- string += resolvedValue;
410
- }
411
- }
412
- }
413
- return string;
414
- };
415
- var createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
416
- let configUtils;
417
- let cacheGet;
418
- let cacheSet;
419
- let functionToCall;
420
- const initTailwindMerge = (classList) => {
421
- const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
422
- configUtils = createConfigUtils(config);
423
- cacheGet = configUtils.cache.get;
424
- cacheSet = configUtils.cache.set;
425
- functionToCall = tailwindMerge;
426
- return tailwindMerge(classList);
427
- };
428
- const tailwindMerge = (classList) => {
429
- const cachedResult = cacheGet(classList);
430
- if (cachedResult) {
431
- return cachedResult;
432
- }
433
- const result = mergeClassList(classList, configUtils);
434
- cacheSet(classList, result);
435
- return result;
436
- };
437
- functionToCall = initTailwindMerge;
438
- return (...args) => functionToCall(twJoin(...args));
439
- };
440
- var fallbackThemeArr = [];
441
- var fromTheme = (key) => {
442
- const themeGetter = (theme) => theme[key] || fallbackThemeArr;
443
- themeGetter.isThemeGetter = true;
444
- return themeGetter;
445
- };
446
- var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
447
- var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
448
- var fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
449
- var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
450
- var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
451
- var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
452
- var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
453
- var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
454
- var isFraction = (value) => fractionRegex.test(value);
455
- var isNumber = (value) => !!value && !Number.isNaN(Number(value));
456
- var isInteger = (value) => !!value && Number.isInteger(Number(value));
457
- var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
458
- var isTshirtSize = (value) => tshirtUnitRegex.test(value);
459
- var isAny = () => true;
460
- var isLengthOnly = (value) => lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
461
- var isNever = () => false;
462
- var isShadow = (value) => shadowRegex.test(value);
463
- var isImage = (value) => imageRegex.test(value);
464
- var isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
465
- var isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
466
- var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
467
- var isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
468
- var isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
469
- var isArbitraryWeight = (value) => getIsArbitraryValue(value, isLabelWeight, isAny);
470
- var isArbitraryFamilyName = (value) => getIsArbitraryValue(value, isLabelFamilyName, isNever);
471
- var isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
472
- var isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
473
- var isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
474
- var isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
475
- var isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
476
- var isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
477
- var isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
478
- var isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
479
- var isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
480
- var isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
481
- var isArbitraryVariableWeight = (value) => getIsArbitraryVariable(value, isLabelWeight, true);
482
- var getIsArbitraryValue = (value, testLabel, testValue) => {
483
- const result = arbitraryValueRegex.exec(value);
484
- if (result) {
485
- if (result[1]) {
486
- return testLabel(result[1]);
487
- }
488
- return testValue(result[2]);
489
- }
490
- return false;
491
- };
492
- var getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
493
- const result = arbitraryVariableRegex.exec(value);
494
- if (result) {
495
- if (result[1]) {
496
- return testLabel(result[1]);
497
- }
498
- return shouldMatchNoLabel;
499
- }
500
- return false;
501
- };
502
- var isLabelPosition = (label) => label === "position" || label === "percentage";
503
- var isLabelImage = (label) => label === "image" || label === "url";
504
- var isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
505
- var isLabelLength = (label) => label === "length";
506
- var isLabelNumber = (label) => label === "number";
507
- var isLabelFamilyName = (label) => label === "family-name";
508
- var isLabelWeight = (label) => label === "number" || label === "weight";
509
- var isLabelShadow = (label) => label === "shadow";
510
- var getDefaultConfig = () => {
511
- const themeColor = fromTheme("color");
512
- const themeFont = fromTheme("font");
513
- const themeText = fromTheme("text");
514
- const themeFontWeight = fromTheme("font-weight");
515
- const themeTracking = fromTheme("tracking");
516
- const themeLeading = fromTheme("leading");
517
- const themeBreakpoint = fromTheme("breakpoint");
518
- const themeContainer = fromTheme("container");
519
- const themeSpacing = fromTheme("spacing");
520
- const themeRadius = fromTheme("radius");
521
- const themeShadow = fromTheme("shadow");
522
- const themeInsetShadow = fromTheme("inset-shadow");
523
- const themeTextShadow = fromTheme("text-shadow");
524
- const themeDropShadow = fromTheme("drop-shadow");
525
- const themeBlur = fromTheme("blur");
526
- const themePerspective = fromTheme("perspective");
527
- const themeAspect = fromTheme("aspect");
528
- const themeEase = fromTheme("ease");
529
- const themeAnimate = fromTheme("animate");
530
- const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
531
- const scalePosition = () => [
532
- "center",
533
- "top",
534
- "bottom",
535
- "left",
536
- "right",
537
- "top-left",
538
- "left-top",
539
- "top-right",
540
- "right-top",
541
- "bottom-right",
542
- "right-bottom",
543
- "bottom-left",
544
- "left-bottom"
545
- ];
546
- const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
547
- const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
548
- const scaleOverscroll = () => ["auto", "contain", "none"];
549
- const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
550
- const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
551
- const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
552
- const scaleGridColRowStartAndEnd = () => ["auto", {
553
- span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
554
- }, isInteger, isArbitraryVariable, isArbitraryValue];
555
- const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
556
- const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
557
- const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
558
- const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
559
- const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
560
- const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
561
- const scaleSizingInline = () => [isFraction, "screen", "full", "dvw", "lvw", "svw", "min", "max", "fit", ...scaleUnambiguousSpacing()];
562
- const scaleSizingBlock = () => [isFraction, "screen", "full", "lh", "dvh", "lvh", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
563
- const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
564
- const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
565
- position: [isArbitraryVariable, isArbitraryValue]
566
- }];
567
- const scaleBgRepeat = () => ["no-repeat", {
568
- repeat: ["", "x", "y", "space", "round"]
569
- }];
570
- const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
571
- size: [isArbitraryVariable, isArbitraryValue]
572
- }];
573
- const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
574
- const scaleRadius = () => [
575
- "",
576
- "none",
577
- "full",
578
- themeRadius,
579
- isArbitraryVariable,
580
- isArbitraryValue
581
- ];
582
- const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
583
- const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
584
- const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
585
- const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
586
- const scaleBlur = () => [
587
- "",
588
- "none",
589
- themeBlur,
590
- isArbitraryVariable,
591
- isArbitraryValue
592
- ];
593
- const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
594
- const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
595
- const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
596
- const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
597
- return {
598
- cacheSize: 500,
599
- theme: {
600
- animate: ["spin", "ping", "pulse", "bounce"],
601
- aspect: ["video"],
602
- blur: [isTshirtSize],
603
- breakpoint: [isTshirtSize],
604
- color: [isAny],
605
- container: [isTshirtSize],
606
- "drop-shadow": [isTshirtSize],
607
- ease: ["in", "out", "in-out"],
608
- font: [isAnyNonArbitrary],
609
- "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
610
- "inset-shadow": [isTshirtSize],
611
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
612
- perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
613
- radius: [isTshirtSize],
614
- shadow: [isTshirtSize],
615
- spacing: ["px", isNumber],
616
- text: [isTshirtSize],
617
- "text-shadow": [isTshirtSize],
618
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
619
- },
620
- classGroups: {
621
- aspect: [{
622
- aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
623
- }],
624
- container: ["container"],
625
- columns: [{
626
- columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
627
- }],
628
- "break-after": [{
629
- "break-after": scaleBreak()
630
- }],
631
- "break-before": [{
632
- "break-before": scaleBreak()
633
- }],
634
- "break-inside": [{
635
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
636
- }],
637
- "box-decoration": [{
638
- "box-decoration": ["slice", "clone"]
639
- }],
640
- box: [{
641
- box: ["border", "content"]
642
- }],
643
- display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
644
- sr: ["sr-only", "not-sr-only"],
645
- float: [{
646
- float: ["right", "left", "none", "start", "end"]
647
- }],
648
- clear: [{
649
- clear: ["left", "right", "both", "none", "start", "end"]
650
- }],
651
- isolation: ["isolate", "isolation-auto"],
652
- "object-fit": [{
653
- object: ["contain", "cover", "fill", "none", "scale-down"]
654
- }],
655
- "object-position": [{
656
- object: scalePositionWithArbitrary()
657
- }],
658
- overflow: [{
659
- overflow: scaleOverflow()
660
- }],
661
- "overflow-x": [{
662
- "overflow-x": scaleOverflow()
663
- }],
664
- "overflow-y": [{
665
- "overflow-y": scaleOverflow()
666
- }],
667
- overscroll: [{
668
- overscroll: scaleOverscroll()
669
- }],
670
- "overscroll-x": [{
671
- "overscroll-x": scaleOverscroll()
672
- }],
673
- "overscroll-y": [{
674
- "overscroll-y": scaleOverscroll()
675
- }],
676
- position: ["static", "fixed", "absolute", "relative", "sticky"],
677
- inset: [{
678
- inset: scaleInset()
679
- }],
680
- "inset-x": [{
681
- "inset-x": scaleInset()
682
- }],
683
- "inset-y": [{
684
- "inset-y": scaleInset()
685
- }],
686
- start: [{
687
- "inset-s": scaleInset(),
688
- start: scaleInset()
689
- }],
690
- end: [{
691
- "inset-e": scaleInset(),
692
- end: scaleInset()
693
- }],
694
- "inset-bs": [{
695
- "inset-bs": scaleInset()
696
- }],
697
- "inset-be": [{
698
- "inset-be": scaleInset()
699
- }],
700
- top: [{
701
- top: scaleInset()
702
- }],
703
- right: [{
704
- right: scaleInset()
705
- }],
706
- bottom: [{
707
- bottom: scaleInset()
708
- }],
709
- left: [{
710
- left: scaleInset()
711
- }],
712
- visibility: ["visible", "invisible", "collapse"],
713
- z: [{
714
- z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
715
- }],
716
- basis: [{
717
- basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
718
- }],
719
- "flex-direction": [{
720
- flex: ["row", "row-reverse", "col", "col-reverse"]
721
- }],
722
- "flex-wrap": [{
723
- flex: ["nowrap", "wrap", "wrap-reverse"]
724
- }],
725
- flex: [{
726
- flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
727
- }],
728
- grow: [{
729
- grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
730
- }],
731
- shrink: [{
732
- shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
733
- }],
734
- order: [{
735
- order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
736
- }],
737
- "grid-cols": [{
738
- "grid-cols": scaleGridTemplateColsRows()
739
- }],
740
- "col-start-end": [{
741
- col: scaleGridColRowStartAndEnd()
742
- }],
743
- "col-start": [{
744
- "col-start": scaleGridColRowStartOrEnd()
745
- }],
746
- "col-end": [{
747
- "col-end": scaleGridColRowStartOrEnd()
748
- }],
749
- "grid-rows": [{
750
- "grid-rows": scaleGridTemplateColsRows()
751
- }],
752
- "row-start-end": [{
753
- row: scaleGridColRowStartAndEnd()
754
- }],
755
- "row-start": [{
756
- "row-start": scaleGridColRowStartOrEnd()
757
- }],
758
- "row-end": [{
759
- "row-end": scaleGridColRowStartOrEnd()
760
- }],
761
- "grid-flow": [{
762
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
763
- }],
764
- "auto-cols": [{
765
- "auto-cols": scaleGridAutoColsRows()
766
- }],
767
- "auto-rows": [{
768
- "auto-rows": scaleGridAutoColsRows()
769
- }],
770
- gap: [{
771
- gap: scaleUnambiguousSpacing()
772
- }],
773
- "gap-x": [{
774
- "gap-x": scaleUnambiguousSpacing()
775
- }],
776
- "gap-y": [{
777
- "gap-y": scaleUnambiguousSpacing()
778
- }],
779
- "justify-content": [{
780
- justify: [...scaleAlignPrimaryAxis(), "normal"]
781
- }],
782
- "justify-items": [{
783
- "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
784
- }],
785
- "justify-self": [{
786
- "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
787
- }],
788
- "align-content": [{
789
- content: ["normal", ...scaleAlignPrimaryAxis()]
790
- }],
791
- "align-items": [{
792
- items: [...scaleAlignSecondaryAxis(), {
793
- baseline: ["", "last"]
794
- }]
795
- }],
796
- "align-self": [{
797
- self: ["auto", ...scaleAlignSecondaryAxis(), {
798
- baseline: ["", "last"]
799
- }]
800
- }],
801
- "place-content": [{
802
- "place-content": scaleAlignPrimaryAxis()
803
- }],
804
- "place-items": [{
805
- "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
806
- }],
807
- "place-self": [{
808
- "place-self": ["auto", ...scaleAlignSecondaryAxis()]
809
- }],
810
- p: [{
811
- p: scaleUnambiguousSpacing()
812
- }],
813
- px: [{
814
- px: scaleUnambiguousSpacing()
815
- }],
816
- py: [{
817
- py: scaleUnambiguousSpacing()
818
- }],
819
- ps: [{
820
- ps: scaleUnambiguousSpacing()
821
- }],
822
- pe: [{
823
- pe: scaleUnambiguousSpacing()
824
- }],
825
- pbs: [{
826
- pbs: scaleUnambiguousSpacing()
827
- }],
828
- pbe: [{
829
- pbe: scaleUnambiguousSpacing()
830
- }],
831
- pt: [{
832
- pt: scaleUnambiguousSpacing()
833
- }],
834
- pr: [{
835
- pr: scaleUnambiguousSpacing()
836
- }],
837
- pb: [{
838
- pb: scaleUnambiguousSpacing()
839
- }],
840
- pl: [{
841
- pl: scaleUnambiguousSpacing()
842
- }],
843
- m: [{
844
- m: scaleMargin()
845
- }],
846
- mx: [{
847
- mx: scaleMargin()
848
- }],
849
- my: [{
850
- my: scaleMargin()
851
- }],
852
- ms: [{
853
- ms: scaleMargin()
854
- }],
855
- me: [{
856
- me: scaleMargin()
857
- }],
858
- mbs: [{
859
- mbs: scaleMargin()
860
- }],
861
- mbe: [{
862
- mbe: scaleMargin()
863
- }],
864
- mt: [{
865
- mt: scaleMargin()
866
- }],
867
- mr: [{
868
- mr: scaleMargin()
869
- }],
870
- mb: [{
871
- mb: scaleMargin()
872
- }],
873
- ml: [{
874
- ml: scaleMargin()
875
- }],
876
- "space-x": [{
877
- "space-x": scaleUnambiguousSpacing()
878
- }],
879
- "space-x-reverse": ["space-x-reverse"],
880
- "space-y": [{
881
- "space-y": scaleUnambiguousSpacing()
882
- }],
883
- "space-y-reverse": ["space-y-reverse"],
884
- size: [{
885
- size: scaleSizing()
886
- }],
887
- "inline-size": [{
888
- inline: ["auto", ...scaleSizingInline()]
889
- }],
890
- "min-inline-size": [{
891
- "min-inline": ["auto", ...scaleSizingInline()]
892
- }],
893
- "max-inline-size": [{
894
- "max-inline": ["none", ...scaleSizingInline()]
895
- }],
896
- "block-size": [{
897
- block: ["auto", ...scaleSizingBlock()]
898
- }],
899
- "min-block-size": [{
900
- "min-block": ["auto", ...scaleSizingBlock()]
901
- }],
902
- "max-block-size": [{
903
- "max-block": ["none", ...scaleSizingBlock()]
904
- }],
905
- w: [{
906
- w: [themeContainer, "screen", ...scaleSizing()]
907
- }],
908
- "min-w": [{
909
- "min-w": [
910
- themeContainer,
911
- "screen",
912
- "none",
913
- ...scaleSizing()
914
- ]
915
- }],
916
- "max-w": [{
917
- "max-w": [
918
- themeContainer,
919
- "screen",
920
- "none",
921
- "prose",
922
- {
923
- screen: [themeBreakpoint]
924
- },
925
- ...scaleSizing()
926
- ]
927
- }],
928
- h: [{
929
- h: ["screen", "lh", ...scaleSizing()]
930
- }],
931
- "min-h": [{
932
- "min-h": ["screen", "lh", "none", ...scaleSizing()]
933
- }],
934
- "max-h": [{
935
- "max-h": ["screen", "lh", ...scaleSizing()]
936
- }],
937
- "font-size": [{
938
- text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
939
- }],
940
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
941
- "font-style": ["italic", "not-italic"],
942
- "font-weight": [{
943
- font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]
944
- }],
945
- "font-stretch": [{
946
- "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
947
- }],
948
- "font-family": [{
949
- font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
950
- }],
951
- "font-features": [{
952
- "font-features": [isArbitraryValue]
953
- }],
954
- "fvn-normal": ["normal-nums"],
955
- "fvn-ordinal": ["ordinal"],
956
- "fvn-slashed-zero": ["slashed-zero"],
957
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
958
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
959
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
960
- tracking: [{
961
- tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
962
- }],
963
- "line-clamp": [{
964
- "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
965
- }],
966
- leading: [{
967
- leading: [
968
- themeLeading,
969
- ...scaleUnambiguousSpacing()
970
- ]
971
- }],
972
- "list-image": [{
973
- "list-image": ["none", isArbitraryVariable, isArbitraryValue]
974
- }],
975
- "list-style-position": [{
976
- list: ["inside", "outside"]
977
- }],
978
- "list-style-type": [{
979
- list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
980
- }],
981
- "text-alignment": [{
982
- text: ["left", "center", "right", "justify", "start", "end"]
983
- }],
984
- "placeholder-color": [{
985
- placeholder: scaleColor()
986
- }],
987
- "text-color": [{
988
- text: scaleColor()
989
- }],
990
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
991
- "text-decoration-style": [{
992
- decoration: [...scaleLineStyle(), "wavy"]
993
- }],
994
- "text-decoration-thickness": [{
995
- decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
996
- }],
997
- "text-decoration-color": [{
998
- decoration: scaleColor()
999
- }],
1000
- "underline-offset": [{
1001
- "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
1002
- }],
1003
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1004
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1005
- "text-wrap": [{
1006
- text: ["wrap", "nowrap", "balance", "pretty"]
1007
- }],
1008
- indent: [{
1009
- indent: scaleUnambiguousSpacing()
1010
- }],
1011
- "vertical-align": [{
1012
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
1013
- }],
1014
- whitespace: [{
1015
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1016
- }],
1017
- break: [{
1018
- break: ["normal", "words", "all", "keep"]
1019
- }],
1020
- wrap: [{
1021
- wrap: ["break-word", "anywhere", "normal"]
1022
- }],
1023
- hyphens: [{
1024
- hyphens: ["none", "manual", "auto"]
1025
- }],
1026
- content: [{
1027
- content: ["none", isArbitraryVariable, isArbitraryValue]
1028
- }],
1029
- "bg-attachment": [{
1030
- bg: ["fixed", "local", "scroll"]
1031
- }],
1032
- "bg-clip": [{
1033
- "bg-clip": ["border", "padding", "content", "text"]
1034
- }],
1035
- "bg-origin": [{
1036
- "bg-origin": ["border", "padding", "content"]
1037
- }],
1038
- "bg-position": [{
1039
- bg: scaleBgPosition()
1040
- }],
1041
- "bg-repeat": [{
1042
- bg: scaleBgRepeat()
1043
- }],
1044
- "bg-size": [{
1045
- bg: scaleBgSize()
1046
- }],
1047
- "bg-image": [{
1048
- bg: ["none", {
1049
- linear: [{
1050
- to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1051
- }, isInteger, isArbitraryVariable, isArbitraryValue],
1052
- radial: ["", isArbitraryVariable, isArbitraryValue],
1053
- conic: [isInteger, isArbitraryVariable, isArbitraryValue]
1054
- }, isArbitraryVariableImage, isArbitraryImage]
1055
- }],
1056
- "bg-color": [{
1057
- bg: scaleColor()
1058
- }],
1059
- "gradient-from-pos": [{
1060
- from: scaleGradientStopPosition()
1061
- }],
1062
- "gradient-via-pos": [{
1063
- via: scaleGradientStopPosition()
1064
- }],
1065
- "gradient-to-pos": [{
1066
- to: scaleGradientStopPosition()
1067
- }],
1068
- "gradient-from": [{
1069
- from: scaleColor()
1070
- }],
1071
- "gradient-via": [{
1072
- via: scaleColor()
1073
- }],
1074
- "gradient-to": [{
1075
- to: scaleColor()
1076
- }],
1077
- rounded: [{
1078
- rounded: scaleRadius()
1079
- }],
1080
- "rounded-s": [{
1081
- "rounded-s": scaleRadius()
1082
- }],
1083
- "rounded-e": [{
1084
- "rounded-e": scaleRadius()
1085
- }],
1086
- "rounded-t": [{
1087
- "rounded-t": scaleRadius()
1088
- }],
1089
- "rounded-r": [{
1090
- "rounded-r": scaleRadius()
1091
- }],
1092
- "rounded-b": [{
1093
- "rounded-b": scaleRadius()
1094
- }],
1095
- "rounded-l": [{
1096
- "rounded-l": scaleRadius()
1097
- }],
1098
- "rounded-ss": [{
1099
- "rounded-ss": scaleRadius()
1100
- }],
1101
- "rounded-se": [{
1102
- "rounded-se": scaleRadius()
1103
- }],
1104
- "rounded-ee": [{
1105
- "rounded-ee": scaleRadius()
1106
- }],
1107
- "rounded-es": [{
1108
- "rounded-es": scaleRadius()
1109
- }],
1110
- "rounded-tl": [{
1111
- "rounded-tl": scaleRadius()
1112
- }],
1113
- "rounded-tr": [{
1114
- "rounded-tr": scaleRadius()
1115
- }],
1116
- "rounded-br": [{
1117
- "rounded-br": scaleRadius()
1118
- }],
1119
- "rounded-bl": [{
1120
- "rounded-bl": scaleRadius()
1121
- }],
1122
- "border-w": [{
1123
- border: scaleBorderWidth()
1124
- }],
1125
- "border-w-x": [{
1126
- "border-x": scaleBorderWidth()
1127
- }],
1128
- "border-w-y": [{
1129
- "border-y": scaleBorderWidth()
1130
- }],
1131
- "border-w-s": [{
1132
- "border-s": scaleBorderWidth()
1133
- }],
1134
- "border-w-e": [{
1135
- "border-e": scaleBorderWidth()
1136
- }],
1137
- "border-w-bs": [{
1138
- "border-bs": scaleBorderWidth()
1139
- }],
1140
- "border-w-be": [{
1141
- "border-be": scaleBorderWidth()
1142
- }],
1143
- "border-w-t": [{
1144
- "border-t": scaleBorderWidth()
1145
- }],
1146
- "border-w-r": [{
1147
- "border-r": scaleBorderWidth()
1148
- }],
1149
- "border-w-b": [{
1150
- "border-b": scaleBorderWidth()
1151
- }],
1152
- "border-w-l": [{
1153
- "border-l": scaleBorderWidth()
1154
- }],
1155
- "divide-x": [{
1156
- "divide-x": scaleBorderWidth()
1157
- }],
1158
- "divide-x-reverse": ["divide-x-reverse"],
1159
- "divide-y": [{
1160
- "divide-y": scaleBorderWidth()
1161
- }],
1162
- "divide-y-reverse": ["divide-y-reverse"],
1163
- "border-style": [{
1164
- border: [...scaleLineStyle(), "hidden", "none"]
1165
- }],
1166
- "divide-style": [{
1167
- divide: [...scaleLineStyle(), "hidden", "none"]
1168
- }],
1169
- "border-color": [{
1170
- border: scaleColor()
1171
- }],
1172
- "border-color-x": [{
1173
- "border-x": scaleColor()
1174
- }],
1175
- "border-color-y": [{
1176
- "border-y": scaleColor()
1177
- }],
1178
- "border-color-s": [{
1179
- "border-s": scaleColor()
1180
- }],
1181
- "border-color-e": [{
1182
- "border-e": scaleColor()
1183
- }],
1184
- "border-color-bs": [{
1185
- "border-bs": scaleColor()
1186
- }],
1187
- "border-color-be": [{
1188
- "border-be": scaleColor()
1189
- }],
1190
- "border-color-t": [{
1191
- "border-t": scaleColor()
1192
- }],
1193
- "border-color-r": [{
1194
- "border-r": scaleColor()
1195
- }],
1196
- "border-color-b": [{
1197
- "border-b": scaleColor()
1198
- }],
1199
- "border-color-l": [{
1200
- "border-l": scaleColor()
1201
- }],
1202
- "divide-color": [{
1203
- divide: scaleColor()
1204
- }],
1205
- "outline-style": [{
1206
- outline: [...scaleLineStyle(), "none", "hidden"]
1207
- }],
1208
- "outline-offset": [{
1209
- "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
1210
- }],
1211
- "outline-w": [{
1212
- outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
1213
- }],
1214
- "outline-color": [{
1215
- outline: scaleColor()
1216
- }],
1217
- shadow: [{
1218
- shadow: [
1219
- "",
1220
- "none",
1221
- themeShadow,
1222
- isArbitraryVariableShadow,
1223
- isArbitraryShadow
1224
- ]
1225
- }],
1226
- "shadow-color": [{
1227
- shadow: scaleColor()
1228
- }],
1229
- "inset-shadow": [{
1230
- "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
1231
- }],
1232
- "inset-shadow-color": [{
1233
- "inset-shadow": scaleColor()
1234
- }],
1235
- "ring-w": [{
1236
- ring: scaleBorderWidth()
1237
- }],
1238
- "ring-w-inset": ["ring-inset"],
1239
- "ring-color": [{
1240
- ring: scaleColor()
1241
- }],
1242
- "ring-offset-w": [{
1243
- "ring-offset": [isNumber, isArbitraryLength]
1244
- }],
1245
- "ring-offset-color": [{
1246
- "ring-offset": scaleColor()
1247
- }],
1248
- "inset-ring-w": [{
1249
- "inset-ring": scaleBorderWidth()
1250
- }],
1251
- "inset-ring-color": [{
1252
- "inset-ring": scaleColor()
1253
- }],
1254
- "text-shadow": [{
1255
- "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
1256
- }],
1257
- "text-shadow-color": [{
1258
- "text-shadow": scaleColor()
1259
- }],
1260
- opacity: [{
1261
- opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
1262
- }],
1263
- "mix-blend": [{
1264
- "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
1265
- }],
1266
- "bg-blend": [{
1267
- "bg-blend": scaleBlendMode()
1268
- }],
1269
- "mask-clip": [{
1270
- "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
1271
- }, "mask-no-clip"],
1272
- "mask-composite": [{
1273
- mask: ["add", "subtract", "intersect", "exclude"]
1274
- }],
1275
- "mask-image-linear-pos": [{
1276
- "mask-linear": [isNumber]
1277
- }],
1278
- "mask-image-linear-from-pos": [{
1279
- "mask-linear-from": scaleMaskImagePosition()
1280
- }],
1281
- "mask-image-linear-to-pos": [{
1282
- "mask-linear-to": scaleMaskImagePosition()
1283
- }],
1284
- "mask-image-linear-from-color": [{
1285
- "mask-linear-from": scaleColor()
1286
- }],
1287
- "mask-image-linear-to-color": [{
1288
- "mask-linear-to": scaleColor()
1289
- }],
1290
- "mask-image-t-from-pos": [{
1291
- "mask-t-from": scaleMaskImagePosition()
1292
- }],
1293
- "mask-image-t-to-pos": [{
1294
- "mask-t-to": scaleMaskImagePosition()
1295
- }],
1296
- "mask-image-t-from-color": [{
1297
- "mask-t-from": scaleColor()
1298
- }],
1299
- "mask-image-t-to-color": [{
1300
- "mask-t-to": scaleColor()
1301
- }],
1302
- "mask-image-r-from-pos": [{
1303
- "mask-r-from": scaleMaskImagePosition()
1304
- }],
1305
- "mask-image-r-to-pos": [{
1306
- "mask-r-to": scaleMaskImagePosition()
1307
- }],
1308
- "mask-image-r-from-color": [{
1309
- "mask-r-from": scaleColor()
1310
- }],
1311
- "mask-image-r-to-color": [{
1312
- "mask-r-to": scaleColor()
1313
- }],
1314
- "mask-image-b-from-pos": [{
1315
- "mask-b-from": scaleMaskImagePosition()
1316
- }],
1317
- "mask-image-b-to-pos": [{
1318
- "mask-b-to": scaleMaskImagePosition()
1319
- }],
1320
- "mask-image-b-from-color": [{
1321
- "mask-b-from": scaleColor()
1322
- }],
1323
- "mask-image-b-to-color": [{
1324
- "mask-b-to": scaleColor()
1325
- }],
1326
- "mask-image-l-from-pos": [{
1327
- "mask-l-from": scaleMaskImagePosition()
1328
- }],
1329
- "mask-image-l-to-pos": [{
1330
- "mask-l-to": scaleMaskImagePosition()
1331
- }],
1332
- "mask-image-l-from-color": [{
1333
- "mask-l-from": scaleColor()
1334
- }],
1335
- "mask-image-l-to-color": [{
1336
- "mask-l-to": scaleColor()
1337
- }],
1338
- "mask-image-x-from-pos": [{
1339
- "mask-x-from": scaleMaskImagePosition()
1340
- }],
1341
- "mask-image-x-to-pos": [{
1342
- "mask-x-to": scaleMaskImagePosition()
1343
- }],
1344
- "mask-image-x-from-color": [{
1345
- "mask-x-from": scaleColor()
1346
- }],
1347
- "mask-image-x-to-color": [{
1348
- "mask-x-to": scaleColor()
1349
- }],
1350
- "mask-image-y-from-pos": [{
1351
- "mask-y-from": scaleMaskImagePosition()
1352
- }],
1353
- "mask-image-y-to-pos": [{
1354
- "mask-y-to": scaleMaskImagePosition()
1355
- }],
1356
- "mask-image-y-from-color": [{
1357
- "mask-y-from": scaleColor()
1358
- }],
1359
- "mask-image-y-to-color": [{
1360
- "mask-y-to": scaleColor()
1361
- }],
1362
- "mask-image-radial": [{
1363
- "mask-radial": [isArbitraryVariable, isArbitraryValue]
1364
- }],
1365
- "mask-image-radial-from-pos": [{
1366
- "mask-radial-from": scaleMaskImagePosition()
1367
- }],
1368
- "mask-image-radial-to-pos": [{
1369
- "mask-radial-to": scaleMaskImagePosition()
1370
- }],
1371
- "mask-image-radial-from-color": [{
1372
- "mask-radial-from": scaleColor()
1373
- }],
1374
- "mask-image-radial-to-color": [{
1375
- "mask-radial-to": scaleColor()
1376
- }],
1377
- "mask-image-radial-shape": [{
1378
- "mask-radial": ["circle", "ellipse"]
1379
- }],
1380
- "mask-image-radial-size": [{
1381
- "mask-radial": [{
1382
- closest: ["side", "corner"],
1383
- farthest: ["side", "corner"]
1384
- }]
1385
- }],
1386
- "mask-image-radial-pos": [{
1387
- "mask-radial-at": scalePosition()
1388
- }],
1389
- "mask-image-conic-pos": [{
1390
- "mask-conic": [isNumber]
1391
- }],
1392
- "mask-image-conic-from-pos": [{
1393
- "mask-conic-from": scaleMaskImagePosition()
1394
- }],
1395
- "mask-image-conic-to-pos": [{
1396
- "mask-conic-to": scaleMaskImagePosition()
1397
- }],
1398
- "mask-image-conic-from-color": [{
1399
- "mask-conic-from": scaleColor()
1400
- }],
1401
- "mask-image-conic-to-color": [{
1402
- "mask-conic-to": scaleColor()
1403
- }],
1404
- "mask-mode": [{
1405
- mask: ["alpha", "luminance", "match"]
1406
- }],
1407
- "mask-origin": [{
1408
- "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
1409
- }],
1410
- "mask-position": [{
1411
- mask: scaleBgPosition()
1412
- }],
1413
- "mask-repeat": [{
1414
- mask: scaleBgRepeat()
1415
- }],
1416
- "mask-size": [{
1417
- mask: scaleBgSize()
1418
- }],
1419
- "mask-type": [{
1420
- "mask-type": ["alpha", "luminance"]
1421
- }],
1422
- "mask-image": [{
1423
- mask: ["none", isArbitraryVariable, isArbitraryValue]
1424
- }],
1425
- filter: [{
1426
- filter: [
1427
- "",
1428
- "none",
1429
- isArbitraryVariable,
1430
- isArbitraryValue
1431
- ]
1432
- }],
1433
- blur: [{
1434
- blur: scaleBlur()
1435
- }],
1436
- brightness: [{
1437
- brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
1438
- }],
1439
- contrast: [{
1440
- contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
1441
- }],
1442
- "drop-shadow": [{
1443
- "drop-shadow": [
1444
- "",
1445
- "none",
1446
- themeDropShadow,
1447
- isArbitraryVariableShadow,
1448
- isArbitraryShadow
1449
- ]
1450
- }],
1451
- "drop-shadow-color": [{
1452
- "drop-shadow": scaleColor()
1453
- }],
1454
- grayscale: [{
1455
- grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1456
- }],
1457
- "hue-rotate": [{
1458
- "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
1459
- }],
1460
- invert: [{
1461
- invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1462
- }],
1463
- saturate: [{
1464
- saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
1465
- }],
1466
- sepia: [{
1467
- sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
1468
- }],
1469
- "backdrop-filter": [{
1470
- "backdrop-filter": [
1471
- "",
1472
- "none",
1473
- isArbitraryVariable,
1474
- isArbitraryValue
1475
- ]
1476
- }],
1477
- "backdrop-blur": [{
1478
- "backdrop-blur": scaleBlur()
1479
- }],
1480
- "backdrop-brightness": [{
1481
- "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
1482
- }],
1483
- "backdrop-contrast": [{
1484
- "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
1485
- }],
1486
- "backdrop-grayscale": [{
1487
- "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
1488
- }],
1489
- "backdrop-hue-rotate": [{
1490
- "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
1491
- }],
1492
- "backdrop-invert": [{
1493
- "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
1494
- }],
1495
- "backdrop-opacity": [{
1496
- "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
1497
- }],
1498
- "backdrop-saturate": [{
1499
- "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
1500
- }],
1501
- "backdrop-sepia": [{
1502
- "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
1503
- }],
1504
- "border-collapse": [{
1505
- border: ["collapse", "separate"]
1506
- }],
1507
- "border-spacing": [{
1508
- "border-spacing": scaleUnambiguousSpacing()
1509
- }],
1510
- "border-spacing-x": [{
1511
- "border-spacing-x": scaleUnambiguousSpacing()
1512
- }],
1513
- "border-spacing-y": [{
1514
- "border-spacing-y": scaleUnambiguousSpacing()
1515
- }],
1516
- "table-layout": [{
1517
- table: ["auto", "fixed"]
1518
- }],
1519
- caption: [{
1520
- caption: ["top", "bottom"]
1521
- }],
1522
- transition: [{
1523
- transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
1524
- }],
1525
- "transition-behavior": [{
1526
- transition: ["normal", "discrete"]
1527
- }],
1528
- duration: [{
1529
- duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
1530
- }],
1531
- ease: [{
1532
- ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
1533
- }],
1534
- delay: [{
1535
- delay: [isNumber, isArbitraryVariable, isArbitraryValue]
1536
- }],
1537
- animate: [{
1538
- animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
1539
- }],
1540
- backface: [{
1541
- backface: ["hidden", "visible"]
1542
- }],
1543
- perspective: [{
1544
- perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
1545
- }],
1546
- "perspective-origin": [{
1547
- "perspective-origin": scalePositionWithArbitrary()
1548
- }],
1549
- rotate: [{
1550
- rotate: scaleRotate()
1551
- }],
1552
- "rotate-x": [{
1553
- "rotate-x": scaleRotate()
1554
- }],
1555
- "rotate-y": [{
1556
- "rotate-y": scaleRotate()
1557
- }],
1558
- "rotate-z": [{
1559
- "rotate-z": scaleRotate()
1560
- }],
1561
- scale: [{
1562
- scale: scaleScale()
1563
- }],
1564
- "scale-x": [{
1565
- "scale-x": scaleScale()
1566
- }],
1567
- "scale-y": [{
1568
- "scale-y": scaleScale()
1569
- }],
1570
- "scale-z": [{
1571
- "scale-z": scaleScale()
1572
- }],
1573
- "scale-3d": ["scale-3d"],
1574
- skew: [{
1575
- skew: scaleSkew()
1576
- }],
1577
- "skew-x": [{
1578
- "skew-x": scaleSkew()
1579
- }],
1580
- "skew-y": [{
1581
- "skew-y": scaleSkew()
1582
- }],
1583
- transform: [{
1584
- transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
1585
- }],
1586
- "transform-origin": [{
1587
- origin: scalePositionWithArbitrary()
1588
- }],
1589
- "transform-style": [{
1590
- transform: ["3d", "flat"]
1591
- }],
1592
- translate: [{
1593
- translate: scaleTranslate()
1594
- }],
1595
- "translate-x": [{
1596
- "translate-x": scaleTranslate()
1597
- }],
1598
- "translate-y": [{
1599
- "translate-y": scaleTranslate()
1600
- }],
1601
- "translate-z": [{
1602
- "translate-z": scaleTranslate()
1603
- }],
1604
- "translate-none": ["translate-none"],
1605
- accent: [{
1606
- accent: scaleColor()
1607
- }],
1608
- appearance: [{
1609
- appearance: ["none", "auto"]
1610
- }],
1611
- "caret-color": [{
1612
- caret: scaleColor()
1613
- }],
1614
- "color-scheme": [{
1615
- scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
1616
- }],
1617
- cursor: [{
1618
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", isArbitraryVariable, isArbitraryValue]
1619
- }],
1620
- "field-sizing": [{
1621
- "field-sizing": ["fixed", "content"]
1622
- }],
1623
- "pointer-events": [{
1624
- "pointer-events": ["auto", "none"]
1625
- }],
1626
- resize: [{
1627
- resize: ["none", "", "y", "x"]
1628
- }],
1629
- "scroll-behavior": [{
1630
- scroll: ["auto", "smooth"]
1631
- }],
1632
- "scroll-m": [{
1633
- "scroll-m": scaleUnambiguousSpacing()
1634
- }],
1635
- "scroll-mx": [{
1636
- "scroll-mx": scaleUnambiguousSpacing()
1637
- }],
1638
- "scroll-my": [{
1639
- "scroll-my": scaleUnambiguousSpacing()
1640
- }],
1641
- "scroll-ms": [{
1642
- "scroll-ms": scaleUnambiguousSpacing()
1643
- }],
1644
- "scroll-me": [{
1645
- "scroll-me": scaleUnambiguousSpacing()
1646
- }],
1647
- "scroll-mbs": [{
1648
- "scroll-mbs": scaleUnambiguousSpacing()
1649
- }],
1650
- "scroll-mbe": [{
1651
- "scroll-mbe": scaleUnambiguousSpacing()
1652
- }],
1653
- "scroll-mt": [{
1654
- "scroll-mt": scaleUnambiguousSpacing()
1655
- }],
1656
- "scroll-mr": [{
1657
- "scroll-mr": scaleUnambiguousSpacing()
1658
- }],
1659
- "scroll-mb": [{
1660
- "scroll-mb": scaleUnambiguousSpacing()
1661
- }],
1662
- "scroll-ml": [{
1663
- "scroll-ml": scaleUnambiguousSpacing()
1664
- }],
1665
- "scroll-p": [{
1666
- "scroll-p": scaleUnambiguousSpacing()
1667
- }],
1668
- "scroll-px": [{
1669
- "scroll-px": scaleUnambiguousSpacing()
1670
- }],
1671
- "scroll-py": [{
1672
- "scroll-py": scaleUnambiguousSpacing()
1673
- }],
1674
- "scroll-ps": [{
1675
- "scroll-ps": scaleUnambiguousSpacing()
1676
- }],
1677
- "scroll-pe": [{
1678
- "scroll-pe": scaleUnambiguousSpacing()
1679
- }],
1680
- "scroll-pbs": [{
1681
- "scroll-pbs": scaleUnambiguousSpacing()
1682
- }],
1683
- "scroll-pbe": [{
1684
- "scroll-pbe": scaleUnambiguousSpacing()
1685
- }],
1686
- "scroll-pt": [{
1687
- "scroll-pt": scaleUnambiguousSpacing()
1688
- }],
1689
- "scroll-pr": [{
1690
- "scroll-pr": scaleUnambiguousSpacing()
1691
- }],
1692
- "scroll-pb": [{
1693
- "scroll-pb": scaleUnambiguousSpacing()
1694
- }],
1695
- "scroll-pl": [{
1696
- "scroll-pl": scaleUnambiguousSpacing()
1697
- }],
1698
- "snap-align": [{
1699
- snap: ["start", "end", "center", "align-none"]
1700
- }],
1701
- "snap-stop": [{
1702
- snap: ["normal", "always"]
1703
- }],
1704
- "snap-type": [{
1705
- snap: ["none", "x", "y", "both"]
1706
- }],
1707
- "snap-strictness": [{
1708
- snap: ["mandatory", "proximity"]
1709
- }],
1710
- touch: [{
1711
- touch: ["auto", "none", "manipulation"]
1712
- }],
1713
- "touch-x": [{
1714
- "touch-pan": ["x", "left", "right"]
1715
- }],
1716
- "touch-y": [{
1717
- "touch-pan": ["y", "up", "down"]
1718
- }],
1719
- "touch-pz": ["touch-pinch-zoom"],
1720
- select: [{
1721
- select: ["none", "text", "all", "auto"]
1722
- }],
1723
- "will-change": [{
1724
- "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
1725
- }],
1726
- fill: [{
1727
- fill: ["none", ...scaleColor()]
1728
- }],
1729
- "stroke-w": [{
1730
- stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
1731
- }],
1732
- stroke: [{
1733
- stroke: ["none", ...scaleColor()]
1734
- }],
1735
- "forced-color-adjust": [{
1736
- "forced-color-adjust": ["auto", "none"]
1737
- }]
1738
- },
1739
- conflictingClassGroups: {
1740
- overflow: ["overflow-x", "overflow-y"],
1741
- overscroll: ["overscroll-x", "overscroll-y"],
1742
- inset: ["inset-x", "inset-y", "inset-bs", "inset-be", "start", "end", "top", "right", "bottom", "left"],
1743
- "inset-x": ["right", "left"],
1744
- "inset-y": ["top", "bottom"],
1745
- flex: ["basis", "grow", "shrink"],
1746
- gap: ["gap-x", "gap-y"],
1747
- p: ["px", "py", "ps", "pe", "pbs", "pbe", "pt", "pr", "pb", "pl"],
1748
- px: ["pr", "pl"],
1749
- py: ["pt", "pb"],
1750
- m: ["mx", "my", "ms", "me", "mbs", "mbe", "mt", "mr", "mb", "ml"],
1751
- mx: ["mr", "ml"],
1752
- my: ["mt", "mb"],
1753
- size: ["w", "h"],
1754
- "font-size": ["leading"],
1755
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
1756
- "fvn-ordinal": ["fvn-normal"],
1757
- "fvn-slashed-zero": ["fvn-normal"],
1758
- "fvn-figure": ["fvn-normal"],
1759
- "fvn-spacing": ["fvn-normal"],
1760
- "fvn-fraction": ["fvn-normal"],
1761
- "line-clamp": ["display", "overflow"],
1762
- rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
1763
- "rounded-s": ["rounded-ss", "rounded-es"],
1764
- "rounded-e": ["rounded-se", "rounded-ee"],
1765
- "rounded-t": ["rounded-tl", "rounded-tr"],
1766
- "rounded-r": ["rounded-tr", "rounded-br"],
1767
- "rounded-b": ["rounded-br", "rounded-bl"],
1768
- "rounded-l": ["rounded-tl", "rounded-bl"],
1769
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
1770
- "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-bs", "border-w-be", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
1771
- "border-w-x": ["border-w-r", "border-w-l"],
1772
- "border-w-y": ["border-w-t", "border-w-b"],
1773
- "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-bs", "border-color-be", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
1774
- "border-color-x": ["border-color-r", "border-color-l"],
1775
- "border-color-y": ["border-color-t", "border-color-b"],
1776
- translate: ["translate-x", "translate-y", "translate-none"],
1777
- "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
1778
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mbs", "scroll-mbe", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
1779
- "scroll-mx": ["scroll-mr", "scroll-ml"],
1780
- "scroll-my": ["scroll-mt", "scroll-mb"],
1781
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pbs", "scroll-pbe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
1782
- "scroll-px": ["scroll-pr", "scroll-pl"],
1783
- "scroll-py": ["scroll-pt", "scroll-pb"],
1784
- touch: ["touch-x", "touch-y", "touch-pz"],
1785
- "touch-x": ["touch"],
1786
- "touch-y": ["touch"],
1787
- "touch-pz": ["touch"]
1788
- },
1789
- conflictingClassGroupModifiers: {
1790
- "font-size": ["leading"]
1791
- },
1792
- orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
1793
- };
1794
- };
1795
- var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
1796
-
1797
- // src/lib/utils.ts
1798
- function cn(...inputs) {
1799
- return twMerge(clsx(inputs));
1800
- }
1801
- // packages/core/src/format.ts
1802
- function formatAge(timestamp) {
1803
- const ms = Date.now() - new Date(timestamp).getTime();
1804
- const mins = Math.floor(ms / 60000);
1805
- if (mins < 1)
1806
- return "just now";
1807
- if (mins < 60)
1808
- return `${mins}m ago`;
1809
- const hours = Math.floor(mins / 60);
1810
- if (hours < 24)
1811
- return `${hours}h ago`;
1812
- const days = Math.floor(hours / 24);
1813
- return `${days}d ago`;
1814
- }
1815
- function formatSize(bytes) {
1816
- if (bytes < 1024)
1817
- return `${bytes} B`;
1818
- if (bytes < 1024 * 1024)
1819
- return `${(bytes / 1024).toFixed(1)} KB`;
1820
- if (bytes < 1024 * 1024 * 1024)
1821
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
1822
- return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
1823
- }
1824
- function isStale(timestamp, thresholdMs = 15 * 60 * 1000) {
1825
- return Date.now() - new Date(timestamp).getTime() > thresholdMs;
1826
- }
1827
- // src/components/integrated-brainstorm/session.ts
1828
- var ACTIVITY_CONTENT_MAX_CHARS = 500;
1829
- var ACTIVITY_PREVIEW_MAX_CHARS = 2000;
1830
- var ACTIVITY_METADATA_MAX_CHARS = 4000;
1831
- var ACTIVITY_DATA_MAX_KEYS = 24;
1832
- function brainstormThreadId(scope, entityId, agentId) {
1833
- return [scope, entityId, agentId].map(threadIdPart).join(":");
1834
- }
1835
- function normalizeBrainstormActivityForStorage(activity) {
1836
- const content = typeof activity.content === "string" ? truncate(activity.content.trim(), ACTIVITY_CONTENT_MAX_CHARS) : "";
1837
- if (!content)
1838
- return null;
1839
- const data = normalizeActivityData(activity.data);
1840
- return {
1841
- kind: typeof activity.kind === "string" && activity.kind ? activity.kind : "runtime_status",
1842
- content,
1843
- ...data !== undefined ? { data } : {}
1844
- };
1845
- }
1846
- function normalizeBrainstormActivityMessageForStorage(activity) {
1847
- const normalized = normalizeBrainstormActivityForStorage(activity);
1848
- if (!normalized)
1849
- return null;
1850
- return {
1851
- role: "activity",
1852
- kind: normalized.kind,
1853
- content: normalized.content,
1854
- ...normalized.data !== undefined ? { data: normalized.data } : {}
1855
- };
1856
- }
1857
- function threadIdPart(value) {
1858
- const trimmed = value.trim();
1859
- return encodeURIComponent(trimmed || "default");
1860
- }
1861
- function normalizeActivityData(data) {
1862
- if (data === undefined)
1863
- return;
1864
- if (!isRecord(data))
1865
- return normalizeActivityValue(data, "value");
1866
- const out = {};
1867
- let count = 0;
1868
- for (const [key, value] of Object.entries(data)) {
1869
- if (count >= ACTIVITY_DATA_MAX_KEYS) {
1870
- out.truncatedKeys = Object.keys(data).length - count;
1871
- break;
1872
- }
1873
- out[key] = normalizeActivityValue(value, key);
1874
- count += 1;
1875
- }
1876
- return out;
1877
- }
1878
- function normalizeActivityValue(value, key) {
1879
- if (typeof value === "string") {
1880
- const max = isPreviewKey(key) ? ACTIVITY_PREVIEW_MAX_CHARS : ACTIVITY_METADATA_MAX_CHARS;
1881
- return truncate(value, max);
1882
- }
1883
- if (typeof value === "number" || typeof value === "boolean" || value === null)
1884
- return value;
1885
- if (value === undefined)
1886
- return;
1887
- return truncate(stringify(value), ACTIVITY_METADATA_MAX_CHARS);
1888
- }
1889
- function isPreviewKey(key) {
1890
- return key === "inputPreview" || key === "argumentsPreview" || key === "outputPreview" || key === "resultPreview";
1891
- }
1892
- function stringify(value) {
1893
- try {
1894
- return JSON.stringify(value);
1895
- } catch {
1896
- return String(value);
1897
- }
1898
- }
1899
- function truncate(value, maxChars) {
1900
- if (value.length <= maxChars)
1901
- return value;
1902
- return `${value.slice(0, Math.max(0, maxChars - 3))}...`;
1903
- }
1904
- function isRecord(value) {
1905
- return Boolean(value && typeof value === "object" && !Array.isArray(value));
1906
- }
1907
-
1908
- // src/components/integrated-brainstorm/activity.ts
1909
- function newActivityId() {
1910
- return `act-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
1911
- }
1912
- function runtimeChunkToBrainstormActivity(chunk) {
1913
- if (chunk.type === "status") {
1914
- return {
1915
- kind: "runtime_status",
1916
- content: chunk.content || "Agent status update",
1917
- data: chunk.data
1918
- };
1919
- }
1920
- if (chunk.type === "tool") {
1921
- return {
1922
- kind: "tool_call",
1923
- content: chunk.content || "Tool call",
1924
- data: chunk.data
1925
- };
1926
- }
1927
- if (chunk.type === "error") {
1928
- return {
1929
- kind: "error",
1930
- content: chunk.content || "Runtime stream error",
1931
- data: chunk.data
1932
- };
1933
- }
1934
- return null;
1935
- }
1936
- function brainstormActivityMessageFromCustom(name, data) {
1937
- if (name !== "activity")
1938
- return null;
1939
- const payload = data && typeof data === "object" && "activity" in data ? data.activity : data;
1940
- if (!payload || typeof payload !== "object")
1941
- return null;
1942
- const activity = payload;
1943
- const content = typeof activity.content === "string" ? activity.content : "";
1944
- if (!content)
1945
- return null;
1946
- const normalized = normalizeBrainstormActivityForStorage({
1947
- kind: typeof activity.kind === "string" ? activity.kind : "runtime_status",
1948
- content,
1949
- data: activity.data
1950
- });
1951
- if (!normalized)
1952
- return null;
1953
- return {
1954
- id: typeof activity.id === "string" ? activity.id : newActivityId(),
1955
- role: "activity",
1956
- kind: normalized.kind,
1957
- content: normalized.content,
1958
- ...normalized.data !== undefined ? { data: normalized.data } : {},
1959
- timestamp: typeof activity.timestamp === "string" ? activity.timestamp : new Date().toISOString()
1960
- };
1961
- }
1962
- function toBrainstormTimeline(agentId, input) {
1963
- return [
1964
- ...input.messages.map((message) => ({
1965
- id: message.id,
1966
- role: message.role === "user" ? "user" : "assistant",
1967
- content: message.content,
1968
- agentId: message.role === "user" ? undefined : agentId,
1969
- timestamp: message.timestamp
1970
- })),
1971
- ...(input.activities ?? []).map((activity) => ({
1972
- id: activity.id,
1973
- role: "activity",
1974
- kind: activity.kind,
1975
- content: activity.content,
1976
- data: activity.data,
1977
- timestamp: activity.timestamp
1978
- }))
1979
- ].sort((a, b) => {
1980
- const aTime = a.timestamp ? Date.parse(a.timestamp) : 0;
1981
- const bTime = b.timestamp ? Date.parse(b.timestamp) : 0;
1982
- return aTime - bTime;
1983
- });
1984
- }
1985
- // src/components/integrated-brainstorm/sse.ts
1986
- async function readBrainstormSseResponse(response, ctx, options = {}) {
1987
- if (!response.ok || !response.body) {
1988
- const text = await response.text().catch(() => "");
1989
- throw new Error(text || `Server returned ${response.status}`);
1990
- }
1991
- const reader = response.body.getReader();
1992
- const abort = () => {
1993
- reader.cancel().catch(() => {});
1994
- };
1995
- ctx.signal.addEventListener("abort", abort, { once: true });
1996
- const decoder = new TextDecoder;
1997
- let buffer = "";
1998
- let accumulated = "";
1999
- let finalContent = "";
2000
- const dispatch = (frame) => {
2001
- if (frame.event === "token") {
2002
- const text = textField(frame.data, "text");
2003
- accumulated += text;
2004
- ctx.onToken(text);
2005
- return;
2006
- }
2007
- if (frame.event === "activity") {
2008
- ctx.onCustom?.("activity", frame.data);
2009
- return;
2010
- }
2011
- if (frame.event === "done") {
2012
- finalContent = textField(frame.data, "content") || accumulated;
2013
- return;
2014
- }
2015
- if (frame.event === "error") {
2016
- throw new Error(textField(frame.data, "message") || "Unknown error");
2017
- }
2018
- if (options.onCustomEvent?.(frame.event, frame.data) === true)
2019
- return;
2020
- ctx.onCustom?.(frame.event, frame.data);
2021
- };
2022
- try {
2023
- while (true) {
2024
- if (ctx.signal.aborted)
2025
- throw abortError();
2026
- const { done, value } = await reader.read();
2027
- if (done)
2028
- break;
2029
- buffer += decoder.decode(value, { stream: true });
2030
- const parsed2 = drainSseFrames(buffer);
2031
- buffer = parsed2.remainder;
2032
- for (const frame of parsed2.frames)
2033
- dispatch(frame);
2034
- }
2035
- buffer += decoder.decode();
2036
- const parsed = drainSseFrames(buffer, true);
2037
- for (const frame of parsed.frames)
2038
- dispatch(frame);
2039
- } finally {
2040
- ctx.signal.removeEventListener("abort", abort);
2041
- reader.releaseLock();
2042
- }
2043
- return { content: finalContent || accumulated };
2044
- }
2045
- function drainSseFrames(input, flush = false) {
2046
- const parts = input.split(/\r?\n\r?\n/);
2047
- const remainder = flush ? "" : parts.pop() ?? "";
2048
- const frames = parts.map(parseSseFrame).filter((frame) => frame !== null);
2049
- if (flush && parts.length === 0 && input.trim()) {
2050
- const frame = parseSseFrame(input);
2051
- if (frame)
2052
- frames.push(frame);
2053
- }
2054
- return { frames, remainder };
2055
- }
2056
- function parseSseFrame(frame) {
2057
- let event = "message";
2058
- const dataLines = [];
2059
- for (const rawLine of frame.split(/\r?\n/)) {
2060
- const line = rawLine.trimEnd();
2061
- if (line.startsWith("event:")) {
2062
- event = line.slice("event:".length).trim();
2063
- } else if (line.startsWith("data:")) {
2064
- dataLines.push(line.slice("data:".length).trimStart());
2065
- }
2066
- }
2067
- if (dataLines.length === 0)
2068
- return null;
2069
- const rawData = dataLines.join(`
2070
- `);
2071
- let data = rawData;
2072
- try {
2073
- data = JSON.parse(rawData);
2074
- } catch {}
2075
- return { event, data };
2076
- }
2077
- function textField(data, key) {
2078
- if (!data || typeof data !== "object")
2079
- return "";
2080
- const value = data[key];
2081
- return typeof value === "string" ? value : "";
2082
- }
2083
- function abortError() {
2084
- const err = new Error("Aborted");
2085
- err.name = "AbortError";
2086
- return err;
2087
- }
2088
- export {
2089
- toBrainstormTimeline,
2090
- runtimeChunkToBrainstormActivity,
2091
- readBrainstormSseResponse,
2092
- normalizeBrainstormActivityMessageForStorage,
2093
- normalizeBrainstormActivityForStorage,
2094
- isStale,
2095
- formatSize,
2096
- formatAge,
2097
- cn,
2098
- brainstormThreadId,
2099
- brainstormActivityMessageFromCustom
2100
- };
6
+ ${body}`;return body}var SUMMARY_FIELDS=["notice","summary","message","title","name","assetId","id"],NOISE_KEYS=new Set(["ok","success","status","version","taskid","via","duplicate"]);function summarizeStructured(value,cap=120){let clip=(text)=>text.length>cap?`${text.slice(0,cap-1)}\u2026`:text,v=unwrapToolResult(value);if(v===null||v===void 0)return"";if(isScalar(v))return clip(String(v));if(Array.isArray(v))return clip(`${v.length} item${v.length===1?"":"s"}`);let obj=v;if(obj.ok===!1||obj.success===!1){let err=obj.error??obj.message??obj.reason;if(isScalar(err)&&err!=="")return clip(`error: ${err}`);return"error"}if(isScalar(obj.error)&&obj.error!=="")return clip(`error: ${obj.error}`);for(let key of SUMMARY_FIELDS)if(isScalar(obj[key])&&obj[key]!=="")return clip(String(obj[key]));let parts=[];for(let[k,val]of Object.entries(obj)){if(NOISE_KEYS.has(k.toLowerCase()))continue;if(val===null||val===void 0||val==="")continue;if(Array.isArray(val))parts.push(`${val.length} ${humanizeKey(k).toLowerCase()}`);else if(isScalar(val))parts.push(`${humanizeKey(k)}: ${val}`);else parts.push(humanizeKey(k).toLowerCase())}if(parts.length>0)return clip(parts.join(", "));return obj.ok===!0||obj.success===!0?"done":""}function unwrapToolResult(value,depth=6){if(depth<=0)return value;if(typeof value==="string"){let parsed=maybeParseJson(value);return parsed===value?value:unwrapToolResult(parsed,depth-1)}if(!value||typeof value!=="object"||Array.isArray(value))return value;let content=value.content;if(Array.isArray(content)){let text=content.map((part)=>part&&typeof part==="object"&&part.type==="text"?String(part.text??""):"").join("").trim();if(text)return unwrapToolResult(text,depth-1)}return value}function maybeParseJson(text){let trimmed=text.trim();if(!(trimmed.startsWith("{")||trimmed.startsWith("[")))return text;try{return JSON.parse(trimmed)}catch{return text}}function formatAge(timestamp,options={}){let ms=Date.now()-new Date(timestamp).getTime();if(Number.isNaN(ms))return"just now";let seconds=Math.floor(ms/1000);if(options.precise){if(seconds<10)return"just now";if(seconds<60)return`${seconds}s ago`}let mins=Math.floor(ms/60000);if(mins<1)return"just now";if(mins<60)return`${mins}m ago`;let hours=Math.floor(mins/60);if(hours<24)return`${hours}h ago`;return`${Math.floor(hours/24)}d ago`}function formatDateTime(timestamp){let d=new Date(timestamp);if(isNaN(d.getTime()))return timestamp;let now=new Date,today=new Date(now.getFullYear(),now.getMonth(),now.getDate()),target=new Date(d.getFullYear(),d.getMonth(),d.getDate()),diffDays=Math.round((today.getTime()-target.getTime())/86400000),time=d.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"});if(diffDays===0)return`Today ${time}`;if(diffDays===1)return`Yesterday ${time}`;let sameYear=d.getFullYear()===now.getFullYear();return`${d.toLocaleDateString("en-US",{month:"short",day:"numeric",...sameYear?{}:{year:"numeric"}})} ${time}`}function formatDuration(ms){if(ms==null)return null;if(ms<1000)return`${ms}ms`;let s=Math.round(ms/1000);if(s<60)return`${s}s`;let m=Math.floor(s/60);if(m<60)return`${m}m ${s%60}s`;let h=Math.floor(m/60);if(h<24)return`${h}h ${m%60}m`;return`${Math.floor(h/24)}d ${h%24}h`}function formatSize(bytes){if(bytes<1024)return`${bytes} B`;if(bytes<1048576)return`${(bytes/1024).toFixed(1)} KB`;if(bytes<1073741824)return`${(bytes/1048576).toFixed(1)} MB`;return`${(bytes/1073741824).toFixed(1)} GB`}function isStale(timestamp,thresholdMs=900000){return Date.now()-new Date(timestamp).getTime()>thresholdMs}function conversationThreadId(scope,entityId,agentId){return[scope,entityId,agentId].map(threadIdPart).join(":")}function threadIdPart(value){let trimmed=value.trim();return encodeURIComponent(trimmed||"default")}var SUMMARY_MAX_CHARS=500,PREVIEW_MAX_CHARS=2000;function clip(value,max){if(value.length<=max)return{value,clipped:!1};return{value:`${value.slice(0,Math.max(0,max-1))}\u2026`,clipped:!0}}function createTurnRecorder({turnId,agentId,now}){let stamp=now??(()=>new Date().toISOString()),rows=[],callPhase=new Map,pendingText="",base=()=>({ts:stamp(),turnId,...agentId?{agentId}:{}}),flushText=()=>{if(!pendingText.trim()){pendingText="";return}rows.push({kind:"assistant",...base(),content:pendingText}),pendingText=""},ingest=(chunk)=>{switch(chunk.type){case"text":pendingText+=chunk.content;break;case"tool":{let data=chunk.data;if(!data?.toolName)break;if(data.phase==="call"){if(data.callId)callPhase.set(data.callId,data);break}flushText();let call=data.callId?callPhase.get(data.callId):void 0,summaryRaw=data.summary??call?.summary,inputRaw=data.inputPreview??call?.inputPreview,outputRaw=data.outputPreview,summary=summaryRaw?clip(summaryRaw,500):void 0,input=inputRaw?clip(inputRaw,2000):void 0,output=outputRaw?clip(outputRaw,2000):void 0,truncated=Boolean(summary?.clipped||input?.clipped||output?.clipped);rows.push({kind:"tool",...base(),...data.callId?{callId:data.callId}:{},toolName:data.toolName,status:data.status==="failed"?"failed":"completed",...summary?{summary:summary.value}:{},...input?{inputPreview:input.value}:{},...output?{outputPreview:output.value}:{},...data.durationMs!==void 0?{durationMs:data.durationMs}:{},...data.metadata||truncated?{metadata:{...data.metadata??{},...truncated?{truncated:!0}:{}}}:{}});break}case"error":flushText(),rows.push({kind:"error",...base(),message:chunk.content||"turn failed",...typeof chunk.data?.kind==="string"?{errorKind:chunk.data.kind}:{}});break;case"status":case"done":break}},drained=0;return{ingest,drain:()=>{let fresh=rows.slice(drained);return drained=rows.length,fresh},finish:()=>{flushText();let fresh=rows.slice(drained);return drained=rows.length,fresh}}}function pluginApiUrl(pluginId,path){let clean=path.startsWith("/")?path.slice(1):path;return`/api/plugins/${pluginId}/${clean}`}function pluginFetch(pluginId,path,init){let headers=new Headers(init?.headers);if(!headers.has("Accept"))headers.set("Accept","application/json");let body=init?.body;if(init?.body!==void 0&&init.body!==null&&typeof init.body==="object"&&!(init.body instanceof FormData)&&!(init.body instanceof Blob)&&!(init.body instanceof ArrayBuffer)&&!(init.body instanceof URLSearchParams)&&!(typeof ReadableStream<"u"&&init.body instanceof ReadableStream)){if(body=JSON.stringify(init.body),!headers.has("Content-Type"))headers.set("Content-Type","application/json")}return fetch(pluginApiUrl(pluginId,path),{...init,headers,body})}async function pluginFetchJson(pluginId,path,{timeoutMs,label=path,signal,init}){let controller=new AbortController,forwardAbort=()=>controller.abort();if(signal?.aborted)controller.abort();else signal?.addEventListener("abort",forwardAbort,{once:!0});let timedOut=!1,rejectDeadline=null,deadline=setTimeout(()=>{timedOut=!0,controller.abort(),rejectDeadline?.(Error("Request timed out"))},timeoutMs),request=pluginFetch(pluginId,path,{...init,signal:controller.signal}).then(async(res)=>{if(!res.ok)throw Error(`${label} fetch failed (${res.status})`);return await res.json()});try{return await Promise.race([request,new Promise((_resolve,reject)=>{rejectDeadline=reject})])}catch(err){if(timedOut)throw Error("Request timed out");throw err}finally{clearTimeout(deadline),rejectDeadline=null,signal?.removeEventListener("abort",forwardAbort)}}export{yearMonthFromAssetId,unwrapToolResult,summarizeStructured,pluginFetchJson,pluginFetch,isValidAssetId,isStale,humanizeKey,healthWarning,healthUnknown,healthResourceId,healthObserved,healthNotApplicable,healthHealthy,healthError,formatStructured,formatSize,formatDuration,formatDateTime,formatAge,focusRingInset,focusRing,createTurnRecorder,conversationThreadId,cn,SUMMARY_MAX_CHARS,PREVIEW_MAX_CHARS};