@flanksource/clicky-ui 0.2.1 → 0.2.3
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.
- package/NOTICE.md +516 -0
- package/README.md +12 -13
- package/dist/clicky.cjs +7 -0
- package/dist/clicky.cjs.map +1 -0
- package/dist/clicky.d.ts +1 -1
- package/dist/clicky.d.ts.map +1 -1
- package/dist/clicky.js +4 -2
- package/dist/components/DateField.cjs +17 -0
- package/dist/components/DateField.cjs.map +1 -0
- package/dist/components/DateField.d.ts +35 -0
- package/dist/components/DateField.d.ts.map +1 -0
- package/dist/components/DateField.js +17 -0
- package/dist/components/DateField.js.map +1 -0
- package/dist/components/DatePicker.cjs +65 -0
- package/dist/components/DatePicker.cjs.map +1 -0
- package/dist/components/DatePicker.d.ts.map +1 -1
- package/dist/components/DatePicker.js +3 -1
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/DateTimePicker.cjs +85 -0
- package/dist/components/DateTimePicker.cjs.map +1 -0
- package/dist/components/DateTimePicker.d.ts.map +1 -1
- package/dist/components/DateTimePicker.js +2 -1
- package/dist/components/DateTimePicker.js.map +1 -1
- package/dist/components/FilterBar.cjs +2120 -0
- package/dist/components/FilterBar.cjs.map +1 -0
- package/dist/components/FilterBar.d.ts +86 -4
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +716 -281
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/MultiSelect.cjs +139 -0
- package/dist/components/MultiSelect.cjs.map +1 -0
- package/dist/components/MultiSelect.d.ts +12 -0
- package/dist/components/MultiSelect.d.ts.map +1 -1
- package/dist/components/MultiSelect.js +3 -7
- package/dist/components/MultiSelect.js.map +1 -1
- package/dist/components/RangeSlider.cjs +92 -0
- package/dist/components/RangeSlider.cjs.map +1 -0
- package/dist/components/TimeRange.cjs +698 -0
- package/dist/components/TimeRange.cjs.map +1 -0
- package/dist/components/TimeRange.d.ts +69 -0
- package/dist/components/TimeRange.d.ts.map +1 -0
- package/dist/components/TimeRange.js +698 -0
- package/dist/components/TimeRange.js.map +1 -0
- package/dist/components/button.cjs +126 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.ts +6 -0
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/density-switcher.cjs +35 -0
- package/dist/components/density-switcher.cjs.map +1 -0
- package/dist/components/density-switcher.d.ts +3 -0
- package/dist/components/density-switcher.d.ts.map +1 -1
- package/dist/components/density-switcher.js +6 -3
- package/dist/components/density-switcher.js.map +1 -1
- package/dist/components/icon-menu-picker.cjs +183 -0
- package/dist/components/icon-menu-picker.cjs.map +1 -0
- package/dist/components/icon-menu-picker.d.ts +3 -1
- package/dist/components/icon-menu-picker.d.ts.map +1 -1
- package/dist/components/icon-menu-picker.js +7 -5
- package/dist/components/icon-menu-picker.js.map +1 -1
- package/dist/components/select.cjs +40 -0
- package/dist/components/select.cjs.map +1 -0
- package/dist/components/select.d.ts.map +1 -1
- package/dist/components/select.js +2 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/theme-switcher.cjs +45 -0
- package/dist/components/theme-switcher.cjs.map +1 -0
- package/dist/components/theme-switcher.d.ts +3 -0
- package/dist/components/theme-switcher.d.ts.map +1 -1
- package/dist/components/theme-switcher.js +7 -4
- package/dist/components/theme-switcher.js.map +1 -1
- package/dist/components.cjs +39 -0
- package/dist/components.cjs.map +1 -0
- package/dist/components.d.ts +4 -0
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +8 -0
- package/dist/components.js.map +1 -1
- package/dist/data/AnsiHtml.cjs +71 -0
- package/dist/data/AnsiHtml.cjs.map +1 -0
- package/dist/data/AnsiHtml.d.ts +3 -0
- package/dist/data/AnsiHtml.d.ts.map +1 -1
- package/dist/data/AnsiHtml.js.map +1 -1
- package/dist/data/Avatar.cjs +201 -0
- package/dist/data/Avatar.cjs.map +1 -0
- package/dist/data/Avatar.d.ts +10 -0
- package/dist/data/Avatar.d.ts.map +1 -1
- package/dist/data/Avatar.js.map +1 -1
- package/dist/data/AvatarBadge.cjs +104 -0
- package/dist/data/AvatarBadge.cjs.map +1 -0
- package/dist/data/AvatarBadge.d.ts +2 -2
- package/dist/data/AvatarBadge.d.ts.map +1 -1
- package/dist/data/AvatarBadge.js +1 -1
- package/dist/data/AvatarBadge.js.map +1 -1
- package/dist/data/Badge.cjs +679 -0
- package/dist/data/Badge.cjs.map +1 -0
- package/dist/data/Badge.d.ts +26 -2
- package/dist/data/Badge.d.ts.map +1 -1
- package/dist/data/Badge.js +14 -2
- package/dist/data/Badge.js.map +1 -1
- package/dist/data/Clicky.cjs +1965 -0
- package/dist/data/Clicky.cjs.map +1 -0
- package/dist/data/Clicky.d.ts +48 -1
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.js +123 -118
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/CodeBlock.cjs +72 -0
- package/dist/data/CodeBlock.cjs.map +1 -0
- package/dist/data/CodeBlock.d.ts +14 -0
- package/dist/data/CodeBlock.d.ts.map +1 -0
- package/dist/data/CodeBlock.js +72 -0
- package/dist/data/CodeBlock.js.map +1 -0
- package/dist/data/DataTable.cjs +1735 -0
- package/dist/data/DataTable.cjs.map +1 -0
- package/dist/data/DataTable.d.ts +153 -3
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +464 -193
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/FilterPill.cjs +175 -0
- package/dist/data/FilterPill.cjs.map +1 -0
- package/dist/data/FilterPill.d.ts +12 -1
- package/dist/data/FilterPill.d.ts.map +1 -1
- package/dist/data/FilterPill.js +47 -25
- package/dist/data/FilterPill.js.map +1 -1
- package/dist/data/Gauge.cjs +75 -0
- package/dist/data/Gauge.cjs.map +1 -0
- package/dist/data/Gauge.d.ts +2 -1
- package/dist/data/Gauge.d.ts.map +1 -1
- package/dist/data/Gauge.js +13 -1
- package/dist/data/Gauge.js.map +1 -1
- package/dist/data/Icon.cjs +129 -0
- package/dist/data/Icon.cjs.map +1 -0
- package/dist/data/Icon.d.ts +28 -12
- package/dist/data/Icon.d.ts.map +1 -1
- package/dist/data/Icon.js +51 -37
- package/dist/data/Icon.js.map +1 -1
- package/dist/data/JsonView.cjs +74 -0
- package/dist/data/JsonView.cjs.map +1 -0
- package/dist/data/JsonView.d.ts +4 -0
- package/dist/data/JsonView.d.ts.map +1 -1
- package/dist/data/JsonView.js.map +1 -1
- package/dist/data/KeyValueList.cjs +33 -0
- package/dist/data/KeyValueList.cjs.map +1 -0
- package/dist/data/LogViewer.cjs +46 -0
- package/dist/data/LogViewer.cjs.map +1 -0
- package/dist/data/LogViewer.d.ts +6 -0
- package/dist/data/LogViewer.d.ts.map +1 -1
- package/dist/data/LogViewer.js.map +1 -1
- package/dist/data/LogsTable.cjs +452 -0
- package/dist/data/LogsTable.cjs.map +1 -0
- package/dist/data/LogsTable.d.ts +5 -6
- package/dist/data/LogsTable.d.ts.map +1 -1
- package/dist/data/LogsTable.js +88 -216
- package/dist/data/LogsTable.js.map +1 -1
- package/dist/data/Markdown.cjs +81 -0
- package/dist/data/Markdown.cjs.map +1 -0
- package/dist/data/Markdown.d.ts +2 -0
- package/dist/data/Markdown.d.ts.map +1 -1
- package/dist/data/Markdown.js.map +1 -1
- package/dist/data/MatrixTable.cjs +164 -0
- package/dist/data/MatrixTable.cjs.map +1 -0
- package/dist/data/MethodBadge.cjs +18 -0
- package/dist/data/MethodBadge.cjs.map +1 -0
- package/dist/data/MethodBadge.d.ts +2 -0
- package/dist/data/MethodBadge.d.ts.map +1 -1
- package/dist/data/MethodBadge.js.map +1 -1
- package/dist/data/ProgressBar.cjs +34 -0
- package/dist/data/ProgressBar.cjs.map +1 -0
- package/dist/data/ProgressBar.d.ts +7 -0
- package/dist/data/ProgressBar.d.ts.map +1 -1
- package/dist/data/ProgressBar.js.map +1 -1
- package/dist/data/Properties.cjs +146 -0
- package/dist/data/Properties.cjs.map +1 -0
- package/dist/data/Properties.d.ts +63 -0
- package/dist/data/Properties.d.ts.map +1 -0
- package/dist/data/Properties.js +146 -0
- package/dist/data/Properties.js.map +1 -0
- package/dist/data/SignedDeltaBar.cjs +58 -0
- package/dist/data/SignedDeltaBar.cjs.map +1 -0
- package/dist/data/SignedDeltaBar.d.ts +25 -0
- package/dist/data/SignedDeltaBar.d.ts.map +1 -0
- package/dist/data/SignedDeltaBar.js +58 -0
- package/dist/data/SignedDeltaBar.js.map +1 -0
- package/dist/data/SortableHeader.cjs +33 -0
- package/dist/data/SortableHeader.cjs.map +1 -0
- package/dist/data/SortableHeader.d.ts +6 -0
- package/dist/data/SortableHeader.d.ts.map +1 -1
- package/dist/data/SortableHeader.js.map +1 -1
- package/dist/data/TabButton.cjs +45 -0
- package/dist/data/TabButton.cjs.map +1 -0
- package/dist/data/TabButton.d.ts +9 -1
- package/dist/data/TabButton.d.ts.map +1 -1
- package/dist/data/TabButton.js +1 -1
- package/dist/data/TabButton.js.map +1 -1
- package/dist/data/Tree.cjs +240 -0
- package/dist/data/Tree.cjs.map +1 -0
- package/dist/data/Tree.d.ts +5 -0
- package/dist/data/Tree.d.ts.map +1 -1
- package/dist/data/Tree.js +8 -4
- package/dist/data/Tree.js.map +1 -1
- package/dist/data/TreeGroupHeader.cjs +43 -0
- package/dist/data/TreeGroupHeader.cjs.map +1 -0
- package/dist/data/TreeGroupHeader.d.ts +8 -1
- package/dist/data/TreeGroupHeader.d.ts.map +1 -1
- package/dist/data/TreeGroupHeader.js +4 -2
- package/dist/data/TreeGroupHeader.js.map +1 -1
- package/dist/data/TreeNode.cjs +109 -0
- package/dist/data/TreeNode.cjs.map +1 -0
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +11 -2
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/cells/StatusDot.cjs +38 -0
- package/dist/data/cells/StatusDot.cjs.map +1 -0
- package/dist/data/cells/TagList.cjs +332 -0
- package/dist/data/cells/TagList.cjs.map +1 -0
- package/dist/data/cells/TagList.d.ts +15 -1
- package/dist/data/cells/TagList.d.ts.map +1 -1
- package/dist/data/cells/TagList.js +92 -17
- package/dist/data/cells/TagList.js.map +1 -1
- package/dist/data/cells/Timestamp.cjs +195 -0
- package/dist/data/cells/Timestamp.cjs.map +1 -0
- package/dist/data/cells/Timestamp.d.ts +12 -2
- package/dist/data/cells/Timestamp.d.ts.map +1 -1
- package/dist/data/cells/Timestamp.js +51 -2
- package/dist/data/cells/Timestamp.js.map +1 -1
- package/dist/data/cells/status-mapping.cjs +44 -0
- package/dist/data/cells/status-mapping.cjs.map +1 -0
- package/dist/data/code-highlight.cjs +115 -0
- package/dist/data/code-highlight.cjs.map +1 -0
- package/dist/data/code-highlight.d.ts +2 -2
- package/dist/data/code-highlight.d.ts.map +1 -1
- package/dist/data/code-highlight.js +73 -8
- package/dist/data/code-highlight.js.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +446 -0
- package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -0
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +4 -0
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js +11 -10
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.cjs +81 -0
- package/dist/data/diagnostics/DiagnosticsTree.cjs.map +1 -0
- package/dist/data/diagnostics/DiagnosticsTree.d.ts +4 -0
- package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -1
- package/dist/data/diagnostics/DiagnosticsTree.js +6 -3
- package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.cjs +166 -0
- package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -0
- package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.js +15 -6
- package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
- package/dist/data/diagnostics/GoroutineCard.cjs +78 -0
- package/dist/data/diagnostics/GoroutineCard.cjs.map +1 -0
- package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
- package/dist/data/diagnostics/GoroutineCard.js +4 -1
- package/dist/data/diagnostics/GoroutineCard.js.map +1 -1
- package/dist/data/diagnostics/JvmStackTrace.cjs +32 -0
- package/dist/data/diagnostics/JvmStackTrace.cjs.map +1 -0
- package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
- package/dist/data/diagnostics/JvmStackTrace.js +8 -2
- package/dist/data/diagnostics/JvmStackTrace.js.map +1 -1
- package/dist/data/diagnostics/RenderedStackTrace.cjs +240 -0
- package/dist/data/diagnostics/RenderedStackTrace.cjs.map +1 -0
- package/dist/data/diagnostics/RenderedStackTrace.d.ts +11 -0
- package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
- package/dist/data/diagnostics/RenderedStackTrace.js +9 -4
- package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -1
- package/dist/data/diagnostics/ThreadCard.cjs +78 -0
- package/dist/data/diagnostics/ThreadCard.cjs.map +1 -0
- package/dist/data/diagnostics/error-diagnostics.cjs +108 -0
- package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -0
- package/dist/data/diagnostics/jvm-stacktrace.cjs +190 -0
- package/dist/data/diagnostics/jvm-stacktrace.cjs.map +1 -0
- package/dist/data/diagnostics/stacktrace-parse.cjs +87 -0
- package/dist/data/diagnostics/stacktrace-parse.cjs.map +1 -0
- package/dist/data/diagnostics/stacktrace.cjs +119 -0
- package/dist/data/diagnostics/stacktrace.cjs.map +1 -0
- package/dist/data/diagnostics/utils.cjs +65 -0
- package/dist/data/diagnostics/utils.cjs.map +1 -0
- package/dist/data/diagnostics/utils.d.ts +2 -1
- package/dist/data/diagnostics/utils.d.ts.map +1 -1
- package/dist/data/diagnostics/utils.js +12 -6
- package/dist/data/diagnostics/utils.js.map +1 -1
- package/dist/data/har/HarPanel.cjs +175 -0
- package/dist/data/har/HarPanel.cjs.map +1 -0
- package/dist/data/har/HarPanel.d.ts +4 -0
- package/dist/data/har/HarPanel.d.ts.map +1 -1
- package/dist/data/har/HarPanel.js.map +1 -1
- package/dist/data/html-utils.cjs +14 -0
- package/dist/data/html-utils.cjs.map +1 -0
- package/dist/data/html-utils.d.ts +3 -0
- package/dist/data/html-utils.d.ts.map +1 -0
- package/dist/data/html-utils.js +14 -0
- package/dist/data/html-utils.js.map +1 -0
- package/dist/data/properties-utils.cjs +7 -0
- package/dist/data/properties-utils.cjs.map +1 -0
- package/dist/data/properties-utils.d.ts +2 -0
- package/dist/data/properties-utils.d.ts.map +1 -0
- package/dist/data/properties-utils.js +7 -0
- package/dist/data/properties-utils.js.map +1 -0
- package/dist/data.cjs +868 -0
- package/dist/data.cjs.map +1 -0
- package/dist/data.d.ts +6 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +759 -0
- package/dist/data.js.map +1 -1
- package/dist/hooks/use-density.cjs +63 -0
- package/dist/hooks/use-density.cjs.map +1 -0
- package/dist/hooks/use-density.d.ts +11 -0
- package/dist/hooks/use-density.d.ts.map +1 -1
- package/dist/hooks/use-density.js +10 -1
- package/dist/hooks/use-density.js.map +1 -1
- package/dist/hooks/use-history-route.cjs +31 -0
- package/dist/hooks/use-history-route.cjs.map +1 -0
- package/dist/hooks/use-sort.cjs +42 -0
- package/dist/hooks/use-sort.cjs.map +1 -0
- package/dist/hooks/use-theme.cjs +90 -0
- package/dist/hooks/use-theme.cjs.map +1 -0
- package/dist/hooks/use-theme.d.ts +2 -0
- package/dist/hooks/use-theme.d.ts.map +1 -1
- package/dist/hooks/use-theme.js +23 -1
- package/dist/hooks/use-theme.js.map +1 -1
- package/dist/hooks.cjs +16 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +3 -1
- package/dist/icons/changeIconAliases.cjs +66 -0
- package/dist/icons/changeIconAliases.cjs.map +1 -0
- package/dist/icons/changeIconAliases.d.ts +17 -0
- package/dist/icons/changeIconAliases.d.ts.map +1 -0
- package/dist/icons/changeIconAliases.js +66 -0
- package/dist/icons/changeIconAliases.js.map +1 -0
- package/dist/icons/components/UiActivity.cjs +10 -0
- package/dist/icons/components/UiActivity.cjs.map +1 -0
- package/dist/icons/components/UiActivity.d.ts +9 -0
- package/dist/icons/components/UiActivity.d.ts.map +1 -0
- package/dist/icons/components/UiActivity.js +10 -0
- package/dist/icons/components/UiActivity.js.map +1 -0
- package/dist/icons/components/UiAdd.cjs +15 -0
- package/dist/icons/components/UiAdd.cjs.map +1 -0
- package/dist/icons/components/UiAdd.d.ts +15 -0
- package/dist/icons/components/UiAdd.d.ts.map +1 -0
- package/dist/icons/components/UiAdd.js +15 -0
- package/dist/icons/components/UiAdd.js.map +1 -0
- package/dist/icons/components/UiArchive.cjs +15 -0
- package/dist/icons/components/UiArchive.cjs.map +1 -0
- package/dist/icons/components/UiArchive.d.ts +15 -0
- package/dist/icons/components/UiArchive.d.ts.map +1 -0
- package/dist/icons/components/UiArchive.js +15 -0
- package/dist/icons/components/UiArchive.js.map +1 -0
- package/dist/icons/components/UiArray.cjs +13 -0
- package/dist/icons/components/UiArray.cjs.map +1 -0
- package/dist/icons/components/UiArray.d.ts +9 -0
- package/dist/icons/components/UiArray.d.ts.map +1 -0
- package/dist/icons/components/UiArray.js +13 -0
- package/dist/icons/components/UiArray.js.map +1 -0
- package/dist/icons/components/UiArrowDown.cjs +15 -0
- package/dist/icons/components/UiArrowDown.cjs.map +1 -0
- package/dist/icons/components/UiArrowDown.d.ts +15 -0
- package/dist/icons/components/UiArrowDown.d.ts.map +1 -0
- package/dist/icons/components/UiArrowDown.js +15 -0
- package/dist/icons/components/UiArrowDown.js.map +1 -0
- package/dist/icons/components/UiArrowDownRight.cjs +10 -0
- package/dist/icons/components/UiArrowDownRight.cjs.map +1 -0
- package/dist/icons/components/UiArrowDownRight.d.ts +9 -0
- package/dist/icons/components/UiArrowDownRight.d.ts.map +1 -0
- package/dist/icons/components/UiArrowDownRight.js +10 -0
- package/dist/icons/components/UiArrowDownRight.js.map +1 -0
- package/dist/icons/components/UiArrowLeft.cjs +15 -0
- package/dist/icons/components/UiArrowLeft.cjs.map +1 -0
- package/dist/icons/components/UiArrowLeft.d.ts +15 -0
- package/dist/icons/components/UiArrowLeft.d.ts.map +1 -0
- package/dist/icons/components/UiArrowLeft.js +15 -0
- package/dist/icons/components/UiArrowLeft.js.map +1 -0
- package/dist/icons/components/UiArrowRight.cjs +15 -0
- package/dist/icons/components/UiArrowRight.cjs.map +1 -0
- package/dist/icons/components/UiArrowRight.d.ts +15 -0
- package/dist/icons/components/UiArrowRight.d.ts.map +1 -0
- package/dist/icons/components/UiArrowRight.js +15 -0
- package/dist/icons/components/UiArrowRight.js.map +1 -0
- package/dist/icons/components/UiArrowUp.cjs +15 -0
- package/dist/icons/components/UiArrowUp.cjs.map +1 -0
- package/dist/icons/components/UiArrowUp.d.ts +15 -0
- package/dist/icons/components/UiArrowUp.d.ts.map +1 -0
- package/dist/icons/components/UiArrowUp.js +15 -0
- package/dist/icons/components/UiArrowUp.js.map +1 -0
- package/dist/icons/components/UiArrowUpRight.cjs +10 -0
- package/dist/icons/components/UiArrowUpRight.cjs.map +1 -0
- package/dist/icons/components/UiArrowUpRight.d.ts +9 -0
- package/dist/icons/components/UiArrowUpRight.d.ts.map +1 -0
- package/dist/icons/components/UiArrowUpRight.js +10 -0
- package/dist/icons/components/UiArrowUpRight.js.map +1 -0
- package/dist/icons/components/UiAsyncFn.cjs +10 -0
- package/dist/icons/components/UiAsyncFn.cjs.map +1 -0
- package/dist/icons/components/UiAsyncFn.d.ts +9 -0
- package/dist/icons/components/UiAsyncFn.d.ts.map +1 -0
- package/dist/icons/components/UiAsyncFn.js +10 -0
- package/dist/icons/components/UiAsyncFn.js.map +1 -0
- package/dist/icons/components/UiAt.cjs +15 -0
- package/dist/icons/components/UiAt.cjs.map +1 -0
- package/dist/icons/components/UiAt.d.ts +15 -0
- package/dist/icons/components/UiAt.d.ts.map +1 -0
- package/dist/icons/components/UiAt.js +15 -0
- package/dist/icons/components/UiAt.js.map +1 -0
- package/dist/icons/components/UiBeaker.cjs +15 -0
- package/dist/icons/components/UiBeaker.cjs.map +1 -0
- package/dist/icons/components/UiBeaker.d.ts +15 -0
- package/dist/icons/components/UiBeaker.d.ts.map +1 -0
- package/dist/icons/components/UiBeaker.js +15 -0
- package/dist/icons/components/UiBeaker.js.map +1 -0
- package/dist/icons/components/UiBell.cjs +15 -0
- package/dist/icons/components/UiBell.cjs.map +1 -0
- package/dist/icons/components/UiBell.d.ts +15 -0
- package/dist/icons/components/UiBell.d.ts.map +1 -0
- package/dist/icons/components/UiBell.js +15 -0
- package/dist/icons/components/UiBell.js.map +1 -0
- package/dist/icons/components/UiBellSlash.cjs +15 -0
- package/dist/icons/components/UiBellSlash.cjs.map +1 -0
- package/dist/icons/components/UiBellSlash.d.ts +15 -0
- package/dist/icons/components/UiBellSlash.d.ts.map +1 -0
- package/dist/icons/components/UiBellSlash.js +15 -0
- package/dist/icons/components/UiBellSlash.js.map +1 -0
- package/dist/icons/components/UiBinary.cjs +15 -0
- package/dist/icons/components/UiBinary.cjs.map +1 -0
- package/dist/icons/components/UiBinary.d.ts +15 -0
- package/dist/icons/components/UiBinary.d.ts.map +1 -0
- package/dist/icons/components/UiBinary.js +15 -0
- package/dist/icons/components/UiBinary.js.map +1 -0
- package/dist/icons/components/UiBox.cjs +15 -0
- package/dist/icons/components/UiBox.cjs.map +1 -0
- package/dist/icons/components/UiBox.d.ts +15 -0
- package/dist/icons/components/UiBox.d.ts.map +1 -0
- package/dist/icons/components/UiBox.js +15 -0
- package/dist/icons/components/UiBox.js.map +1 -0
- package/dist/icons/components/UiBoxes.cjs +19 -0
- package/dist/icons/components/UiBoxes.cjs.map +1 -0
- package/dist/icons/components/UiBoxes.d.ts +15 -0
- package/dist/icons/components/UiBoxes.d.ts.map +1 -0
- package/dist/icons/components/UiBoxes.js +19 -0
- package/dist/icons/components/UiBoxes.js.map +1 -0
- package/dist/icons/components/UiBraces.cjs +10 -0
- package/dist/icons/components/UiBraces.cjs.map +1 -0
- package/dist/icons/components/UiBraces.d.ts +9 -0
- package/dist/icons/components/UiBraces.d.ts.map +1 -0
- package/dist/icons/components/UiBraces.js +10 -0
- package/dist/icons/components/UiBraces.js.map +1 -0
- package/dist/icons/components/UiBrain.cjs +15 -0
- package/dist/icons/components/UiBrain.cjs.map +1 -0
- package/dist/icons/components/UiBrain.d.ts +15 -0
- package/dist/icons/components/UiBrain.d.ts.map +1 -0
- package/dist/icons/components/UiBrain.js +15 -0
- package/dist/icons/components/UiBrain.js.map +1 -0
- package/dist/icons/components/UiBroadcast.cjs +15 -0
- package/dist/icons/components/UiBroadcast.cjs.map +1 -0
- package/dist/icons/components/UiBroadcast.d.ts +15 -0
- package/dist/icons/components/UiBroadcast.d.ts.map +1 -0
- package/dist/icons/components/UiBroadcast.js +15 -0
- package/dist/icons/components/UiBroadcast.js.map +1 -0
- package/dist/icons/components/UiBug.cjs +15 -0
- package/dist/icons/components/UiBug.cjs.map +1 -0
- package/dist/icons/components/UiBug.d.ts +15 -0
- package/dist/icons/components/UiBug.d.ts.map +1 -0
- package/dist/icons/components/UiBug.js +15 -0
- package/dist/icons/components/UiBug.js.map +1 -0
- package/dist/icons/components/UiCalculator.cjs +13 -0
- package/dist/icons/components/UiCalculator.cjs.map +1 -0
- package/dist/icons/components/UiCalculator.d.ts +9 -0
- package/dist/icons/components/UiCalculator.d.ts.map +1 -0
- package/dist/icons/components/UiCalculator.js +13 -0
- package/dist/icons/components/UiCalculator.js.map +1 -0
- package/dist/icons/components/UiCalendar.cjs +15 -0
- package/dist/icons/components/UiCalendar.cjs.map +1 -0
- package/dist/icons/components/UiCalendar.d.ts +15 -0
- package/dist/icons/components/UiCalendar.d.ts.map +1 -0
- package/dist/icons/components/UiCalendar.js +15 -0
- package/dist/icons/components/UiCalendar.js.map +1 -0
- package/dist/icons/components/UiCalendarBlank.cjs +15 -0
- package/dist/icons/components/UiCalendarBlank.cjs.map +1 -0
- package/dist/icons/components/UiCalendarBlank.d.ts +15 -0
- package/dist/icons/components/UiCalendarBlank.d.ts.map +1 -0
- package/dist/icons/components/UiCalendarBlank.js +15 -0
- package/dist/icons/components/UiCalendarBlank.js.map +1 -0
- package/dist/icons/components/UiCamera.cjs +15 -0
- package/dist/icons/components/UiCamera.cjs.map +1 -0
- package/dist/icons/components/UiCamera.d.ts +15 -0
- package/dist/icons/components/UiCamera.d.ts.map +1 -0
- package/dist/icons/components/UiCamera.js +15 -0
- package/dist/icons/components/UiCamera.js.map +1 -0
- package/dist/icons/components/UiCancel.cjs +15 -0
- package/dist/icons/components/UiCancel.cjs.map +1 -0
- package/dist/icons/components/UiCancel.d.ts +15 -0
- package/dist/icons/components/UiCancel.d.ts.map +1 -0
- package/dist/icons/components/UiCancel.js +15 -0
- package/dist/icons/components/UiCancel.js.map +1 -0
- package/dist/icons/components/UiChartBar.cjs +15 -0
- package/dist/icons/components/UiChartBar.cjs.map +1 -0
- package/dist/icons/components/UiChartBar.d.ts +15 -0
- package/dist/icons/components/UiChartBar.d.ts.map +1 -0
- package/dist/icons/components/UiChartBar.js +15 -0
- package/dist/icons/components/UiChartBar.js.map +1 -0
- package/dist/icons/components/UiChartPie.cjs +15 -0
- package/dist/icons/components/UiChartPie.cjs.map +1 -0
- package/dist/icons/components/UiChartPie.d.ts +15 -0
- package/dist/icons/components/UiChartPie.d.ts.map +1 -0
- package/dist/icons/components/UiChartPie.js +15 -0
- package/dist/icons/components/UiChartPie.js.map +1 -0
- package/dist/icons/components/UiCheck.cjs +23 -0
- package/dist/icons/components/UiCheck.cjs.map +1 -0
- package/dist/icons/components/UiCheck.d.ts +17 -0
- package/dist/icons/components/UiCheck.d.ts.map +1 -0
- package/dist/icons/components/UiCheck.js +23 -0
- package/dist/icons/components/UiCheck.js.map +1 -0
- package/dist/icons/components/UiChevronDown.cjs +15 -0
- package/dist/icons/components/UiChevronDown.cjs.map +1 -0
- package/dist/icons/components/UiChevronDown.d.ts +15 -0
- package/dist/icons/components/UiChevronDown.d.ts.map +1 -0
- package/dist/icons/components/UiChevronDown.js +15 -0
- package/dist/icons/components/UiChevronDown.js.map +1 -0
- package/dist/icons/components/UiChevronRight.cjs +15 -0
- package/dist/icons/components/UiChevronRight.cjs.map +1 -0
- package/dist/icons/components/UiChevronRight.d.ts +15 -0
- package/dist/icons/components/UiChevronRight.d.ts.map +1 -0
- package/dist/icons/components/UiChevronRight.js +15 -0
- package/dist/icons/components/UiChevronRight.js.map +1 -0
- package/dist/icons/components/UiChevronUp.cjs +15 -0
- package/dist/icons/components/UiChevronUp.cjs.map +1 -0
- package/dist/icons/components/UiChevronUp.d.ts +15 -0
- package/dist/icons/components/UiChevronUp.d.ts.map +1 -0
- package/dist/icons/components/UiChevronUp.js +15 -0
- package/dist/icons/components/UiChevronUp.js.map +1 -0
- package/dist/icons/components/UiChevronsDown.cjs +15 -0
- package/dist/icons/components/UiChevronsDown.cjs.map +1 -0
- package/dist/icons/components/UiChevronsDown.d.ts +15 -0
- package/dist/icons/components/UiChevronsDown.d.ts.map +1 -0
- package/dist/icons/components/UiChevronsDown.js +15 -0
- package/dist/icons/components/UiChevronsDown.js.map +1 -0
- package/dist/icons/components/UiChevronsUp.cjs +15 -0
- package/dist/icons/components/UiChevronsUp.cjs.map +1 -0
- package/dist/icons/components/UiChevronsUp.d.ts +15 -0
- package/dist/icons/components/UiChevronsUp.d.ts.map +1 -0
- package/dist/icons/components/UiChevronsUp.js +15 -0
- package/dist/icons/components/UiChevronsUp.js.map +1 -0
- package/dist/icons/components/UiChip.cjs +15 -0
- package/dist/icons/components/UiChip.cjs.map +1 -0
- package/dist/icons/components/UiChip.d.ts +15 -0
- package/dist/icons/components/UiChip.d.ts.map +1 -0
- package/dist/icons/components/UiChip.js +15 -0
- package/dist/icons/components/UiChip.js.map +1 -0
- package/dist/icons/components/UiCircleFilled.cjs +15 -0
- package/dist/icons/components/UiCircleFilled.cjs.map +1 -0
- package/dist/icons/components/UiCircleFilled.d.ts +15 -0
- package/dist/icons/components/UiCircleFilled.d.ts.map +1 -0
- package/dist/icons/components/UiCircleFilled.js +15 -0
- package/dist/icons/components/UiCircleFilled.js.map +1 -0
- package/dist/icons/components/UiCircleOutline.cjs +15 -0
- package/dist/icons/components/UiCircleOutline.cjs.map +1 -0
- package/dist/icons/components/UiCircleOutline.d.ts +15 -0
- package/dist/icons/components/UiCircleOutline.d.ts.map +1 -0
- package/dist/icons/components/UiCircleOutline.js +15 -0
- package/dist/icons/components/UiCircleOutline.js.map +1 -0
- package/dist/icons/components/UiCircleX.cjs +23 -0
- package/dist/icons/components/UiCircleX.cjs.map +1 -0
- package/dist/icons/components/UiCircleX.d.ts +17 -0
- package/dist/icons/components/UiCircleX.d.ts.map +1 -0
- package/dist/icons/components/UiCircleX.js +23 -0
- package/dist/icons/components/UiCircleX.js.map +1 -0
- package/dist/icons/components/UiClass.cjs +13 -0
- package/dist/icons/components/UiClass.cjs.map +1 -0
- package/dist/icons/components/UiClass.d.ts +9 -0
- package/dist/icons/components/UiClass.d.ts.map +1 -0
- package/dist/icons/components/UiClass.js +13 -0
- package/dist/icons/components/UiClass.js.map +1 -0
- package/dist/icons/components/UiClock.cjs +15 -0
- package/dist/icons/components/UiClock.cjs.map +1 -0
- package/dist/icons/components/UiClock.d.ts +15 -0
- package/dist/icons/components/UiClock.d.ts.map +1 -0
- package/dist/icons/components/UiClock.js +15 -0
- package/dist/icons/components/UiClock.js.map +1 -0
- package/dist/icons/components/UiClose.cjs +15 -0
- package/dist/icons/components/UiClose.cjs.map +1 -0
- package/dist/icons/components/UiClose.d.ts +15 -0
- package/dist/icons/components/UiClose.d.ts.map +1 -0
- package/dist/icons/components/UiClose.js +15 -0
- package/dist/icons/components/UiClose.js.map +1 -0
- package/dist/icons/components/UiCloud.cjs +15 -0
- package/dist/icons/components/UiCloud.cjs.map +1 -0
- package/dist/icons/components/UiCloud.d.ts +15 -0
- package/dist/icons/components/UiCloud.d.ts.map +1 -0
- package/dist/icons/components/UiCloud.js +15 -0
- package/dist/icons/components/UiCloud.js.map +1 -0
- package/dist/icons/components/UiCloudDownload.cjs +15 -0
- package/dist/icons/components/UiCloudDownload.cjs.map +1 -0
- package/dist/icons/components/UiCloudDownload.d.ts +15 -0
- package/dist/icons/components/UiCloudDownload.d.ts.map +1 -0
- package/dist/icons/components/UiCloudDownload.js +15 -0
- package/dist/icons/components/UiCloudDownload.js.map +1 -0
- package/dist/icons/components/UiCode2.cjs +15 -0
- package/dist/icons/components/UiCode2.cjs.map +1 -0
- package/dist/icons/components/UiCode2.d.ts +15 -0
- package/dist/icons/components/UiCode2.d.ts.map +1 -0
- package/dist/icons/components/UiCode2.js +15 -0
- package/dist/icons/components/UiCode2.js.map +1 -0
- package/dist/icons/components/UiCog.cjs +15 -0
- package/dist/icons/components/UiCog.cjs.map +1 -0
- package/dist/icons/components/UiCog.d.ts +15 -0
- package/dist/icons/components/UiCog.d.ts.map +1 -0
- package/dist/icons/components/UiCog.js +15 -0
- package/dist/icons/components/UiCog.js.map +1 -0
- package/dist/icons/components/UiCollapseAll.cjs +13 -0
- package/dist/icons/components/UiCollapseAll.cjs.map +1 -0
- package/dist/icons/components/UiCollapseAll.d.ts +9 -0
- package/dist/icons/components/UiCollapseAll.d.ts.map +1 -0
- package/dist/icons/components/UiCollapseAll.js +13 -0
- package/dist/icons/components/UiCollapseAll.js.map +1 -0
- package/dist/icons/components/UiColumns.cjs +15 -0
- package/dist/icons/components/UiColumns.cjs.map +1 -0
- package/dist/icons/components/UiColumns.d.ts +15 -0
- package/dist/icons/components/UiColumns.d.ts.map +1 -0
- package/dist/icons/components/UiColumns.js +15 -0
- package/dist/icons/components/UiColumns.js.map +1 -0
- package/dist/icons/components/UiCommand.cjs +15 -0
- package/dist/icons/components/UiCommand.cjs.map +1 -0
- package/dist/icons/components/UiCommand.d.ts +15 -0
- package/dist/icons/components/UiCommand.d.ts.map +1 -0
- package/dist/icons/components/UiCommand.js +15 -0
- package/dist/icons/components/UiCommand.js.map +1 -0
- package/dist/icons/components/UiComment.cjs +16 -0
- package/dist/icons/components/UiComment.cjs.map +1 -0
- package/dist/icons/components/UiComment.d.ts +9 -0
- package/dist/icons/components/UiComment.d.ts.map +1 -0
- package/dist/icons/components/UiComment.js +16 -0
- package/dist/icons/components/UiComment.js.map +1 -0
- package/dist/icons/components/UiConfig.cjs +15 -0
- package/dist/icons/components/UiConfig.cjs.map +1 -0
- package/dist/icons/components/UiConfig.d.ts +15 -0
- package/dist/icons/components/UiConfig.d.ts.map +1 -0
- package/dist/icons/components/UiConfig.js +15 -0
- package/dist/icons/components/UiConfig.js.map +1 -0
- package/dist/icons/components/UiConstant.cjs +14 -0
- package/dist/icons/components/UiConstant.cjs.map +1 -0
- package/dist/icons/components/UiConstant.d.ts +9 -0
- package/dist/icons/components/UiConstant.d.ts.map +1 -0
- package/dist/icons/components/UiConstant.js +14 -0
- package/dist/icons/components/UiConstant.js.map +1 -0
- package/dist/icons/components/UiConstructor.cjs +15 -0
- package/dist/icons/components/UiConstructor.cjs.map +1 -0
- package/dist/icons/components/UiConstructor.d.ts +9 -0
- package/dist/icons/components/UiConstructor.d.ts.map +1 -0
- package/dist/icons/components/UiConstructor.js +15 -0
- package/dist/icons/components/UiConstructor.js.map +1 -0
- package/dist/icons/components/UiCopy.cjs +15 -0
- package/dist/icons/components/UiCopy.cjs.map +1 -0
- package/dist/icons/components/UiCopy.d.ts +15 -0
- package/dist/icons/components/UiCopy.d.ts.map +1 -0
- package/dist/icons/components/UiCopy.js +15 -0
- package/dist/icons/components/UiCopy.js.map +1 -0
- package/dist/icons/components/UiDatabase.cjs +257 -0
- package/dist/icons/components/UiDatabase.cjs.map +1 -0
- package/dist/icons/components/UiDatabase.d.ts +147 -0
- package/dist/icons/components/UiDatabase.d.ts.map +1 -0
- package/dist/icons/components/UiDatabase.js +257 -0
- package/dist/icons/components/UiDatabase.js.map +1 -0
- package/dist/icons/components/UiDatabaseZap.cjs +14 -0
- package/dist/icons/components/UiDatabaseZap.cjs.map +1 -0
- package/dist/icons/components/UiDatabaseZap.d.ts +9 -0
- package/dist/icons/components/UiDatabaseZap.d.ts.map +1 -0
- package/dist/icons/components/UiDatabaseZap.js +14 -0
- package/dist/icons/components/UiDatabaseZap.js.map +1 -0
- package/dist/icons/components/UiDebug.cjs +15 -0
- package/dist/icons/components/UiDebug.cjs.map +1 -0
- package/dist/icons/components/UiDebug.d.ts +15 -0
- package/dist/icons/components/UiDebug.d.ts.map +1 -0
- package/dist/icons/components/UiDebug.js +15 -0
- package/dist/icons/components/UiDebug.js.map +1 -0
- package/dist/icons/components/UiDebugSmall.cjs +10 -0
- package/dist/icons/components/UiDebugSmall.cjs.map +1 -0
- package/dist/icons/components/UiDebugSmall.d.ts +9 -0
- package/dist/icons/components/UiDebugSmall.d.ts.map +1 -0
- package/dist/icons/components/UiDebugSmall.js +10 -0
- package/dist/icons/components/UiDebugSmall.js.map +1 -0
- package/dist/icons/components/UiDebugStepOver.cjs +10 -0
- package/dist/icons/components/UiDebugStepOver.cjs.map +1 -0
- package/dist/icons/components/UiDebugStepOver.d.ts +9 -0
- package/dist/icons/components/UiDebugStepOver.d.ts.map +1 -0
- package/dist/icons/components/UiDebugStepOver.js +10 -0
- package/dist/icons/components/UiDebugStepOver.js.map +1 -0
- package/dist/icons/components/UiDecorator.cjs +13 -0
- package/dist/icons/components/UiDecorator.cjs.map +1 -0
- package/dist/icons/components/UiDecorator.d.ts +9 -0
- package/dist/icons/components/UiDecorator.d.ts.map +1 -0
- package/dist/icons/components/UiDecorator.js +13 -0
- package/dist/icons/components/UiDecorator.js.map +1 -0
- package/dist/icons/components/UiDesktop.cjs +15 -0
- package/dist/icons/components/UiDesktop.cjs.map +1 -0
- package/dist/icons/components/UiDesktop.d.ts +15 -0
- package/dist/icons/components/UiDesktop.d.ts.map +1 -0
- package/dist/icons/components/UiDesktop.js +15 -0
- package/dist/icons/components/UiDesktop.js.map +1 -0
- package/dist/icons/components/UiDiff.cjs +10 -0
- package/dist/icons/components/UiDiff.cjs.map +1 -0
- package/dist/icons/components/UiDiff.d.ts +9 -0
- package/dist/icons/components/UiDiff.d.ts.map +1 -0
- package/dist/icons/components/UiDiff.js +10 -0
- package/dist/icons/components/UiDiff.js.map +1 -0
- package/dist/icons/components/UiDotsVertical.cjs +15 -0
- package/dist/icons/components/UiDotsVertical.cjs.map +1 -0
- package/dist/icons/components/UiDotsVertical.d.ts +15 -0
- package/dist/icons/components/UiDotsVertical.d.ts.map +1 -0
- package/dist/icons/components/UiDotsVertical.js +15 -0
- package/dist/icons/components/UiDotsVertical.js.map +1 -0
- package/dist/icons/components/UiDownload.cjs +15 -0
- package/dist/icons/components/UiDownload.cjs.map +1 -0
- package/dist/icons/components/UiDownload.d.ts +15 -0
- package/dist/icons/components/UiDownload.d.ts.map +1 -0
- package/dist/icons/components/UiDownload.js +15 -0
- package/dist/icons/components/UiDownload.js.map +1 -0
- package/dist/icons/components/UiEdit.cjs +15 -0
- package/dist/icons/components/UiEdit.cjs.map +1 -0
- package/dist/icons/components/UiEdit.d.ts +15 -0
- package/dist/icons/components/UiEdit.d.ts.map +1 -0
- package/dist/icons/components/UiEdit.js +15 -0
- package/dist/icons/components/UiEdit.js.map +1 -0
- package/dist/icons/components/UiEllipsis.cjs +15 -0
- package/dist/icons/components/UiEllipsis.cjs.map +1 -0
- package/dist/icons/components/UiEllipsis.d.ts +15 -0
- package/dist/icons/components/UiEllipsis.d.ts.map +1 -0
- package/dist/icons/components/UiEllipsis.js +15 -0
- package/dist/icons/components/UiEllipsis.js.map +1 -0
- package/dist/icons/components/UiEndpoint.cjs +10 -0
- package/dist/icons/components/UiEndpoint.cjs.map +1 -0
- package/dist/icons/components/UiEndpoint.d.ts +9 -0
- package/dist/icons/components/UiEndpoint.d.ts.map +1 -0
- package/dist/icons/components/UiEndpoint.js +10 -0
- package/dist/icons/components/UiEndpoint.js.map +1 -0
- package/dist/icons/components/UiEnum.cjs +13 -0
- package/dist/icons/components/UiEnum.cjs.map +1 -0
- package/dist/icons/components/UiEnum.d.ts +9 -0
- package/dist/icons/components/UiEnum.d.ts.map +1 -0
- package/dist/icons/components/UiEnum.js +13 -0
- package/dist/icons/components/UiEnum.js.map +1 -0
- package/dist/icons/components/UiEnumMember.cjs +19 -0
- package/dist/icons/components/UiEnumMember.cjs.map +1 -0
- package/dist/icons/components/UiEnumMember.d.ts +9 -0
- package/dist/icons/components/UiEnumMember.d.ts.map +1 -0
- package/dist/icons/components/UiEnumMember.js +19 -0
- package/dist/icons/components/UiEnumMember.js.map +1 -0
- package/dist/icons/components/UiEnvelope.cjs +15 -0
- package/dist/icons/components/UiEnvelope.cjs.map +1 -0
- package/dist/icons/components/UiEnvelope.d.ts +15 -0
- package/dist/icons/components/UiEnvelope.d.ts.map +1 -0
- package/dist/icons/components/UiEnvelope.js +15 -0
- package/dist/icons/components/UiEnvelope.js.map +1 -0
- package/dist/icons/components/UiError.cjs +14 -0
- package/dist/icons/components/UiError.cjs.map +1 -0
- package/dist/icons/components/UiError.d.ts +10 -0
- package/dist/icons/components/UiError.d.ts.map +1 -0
- package/dist/icons/components/UiError.js +14 -0
- package/dist/icons/components/UiError.js.map +1 -0
- package/dist/icons/components/UiEvent.cjs +13 -0
- package/dist/icons/components/UiEvent.cjs.map +1 -0
- package/dist/icons/components/UiEvent.d.ts +9 -0
- package/dist/icons/components/UiEvent.d.ts.map +1 -0
- package/dist/icons/components/UiEvent.js +13 -0
- package/dist/icons/components/UiEvent.js.map +1 -0
- package/dist/icons/components/UiExpandAll.cjs +13 -0
- package/dist/icons/components/UiExpandAll.cjs.map +1 -0
- package/dist/icons/components/UiExpandAll.d.ts +9 -0
- package/dist/icons/components/UiExpandAll.d.ts.map +1 -0
- package/dist/icons/components/UiExpandAll.js +13 -0
- package/dist/icons/components/UiExpandAll.js.map +1 -0
- package/dist/icons/components/UiExport.cjs +13 -0
- package/dist/icons/components/UiExport.cjs.map +1 -0
- package/dist/icons/components/UiExport.d.ts +9 -0
- package/dist/icons/components/UiExport.d.ts.map +1 -0
- package/dist/icons/components/UiExport.js +13 -0
- package/dist/icons/components/UiExport.js.map +1 -0
- package/dist/icons/components/UiExternalLink.cjs +10 -0
- package/dist/icons/components/UiExternalLink.cjs.map +1 -0
- package/dist/icons/components/UiExternalLink.d.ts +9 -0
- package/dist/icons/components/UiExternalLink.d.ts.map +1 -0
- package/dist/icons/components/UiExternalLink.js +10 -0
- package/dist/icons/components/UiExternalLink.js.map +1 -0
- package/dist/icons/components/UiEye.cjs +15 -0
- package/dist/icons/components/UiEye.cjs.map +1 -0
- package/dist/icons/components/UiEye.d.ts +15 -0
- package/dist/icons/components/UiEye.d.ts.map +1 -0
- package/dist/icons/components/UiEye.js +15 -0
- package/dist/icons/components/UiEye.js.map +1 -0
- package/dist/icons/components/UiEyeClosed.cjs +15 -0
- package/dist/icons/components/UiEyeClosed.cjs.map +1 -0
- package/dist/icons/components/UiEyeClosed.d.ts +15 -0
- package/dist/icons/components/UiEyeClosed.d.ts.map +1 -0
- package/dist/icons/components/UiEyeClosed.js +15 -0
- package/dist/icons/components/UiEyeClosed.js.map +1 -0
- package/dist/icons/components/UiField.cjs +13 -0
- package/dist/icons/components/UiField.cjs.map +1 -0
- package/dist/icons/components/UiField.d.ts +9 -0
- package/dist/icons/components/UiField.d.ts.map +1 -0
- package/dist/icons/components/UiField.js +13 -0
- package/dist/icons/components/UiField.js.map +1 -0
- package/dist/icons/components/UiFile.cjs +15 -0
- package/dist/icons/components/UiFile.cjs.map +1 -0
- package/dist/icons/components/UiFile.d.ts +15 -0
- package/dist/icons/components/UiFile.d.ts.map +1 -0
- package/dist/icons/components/UiFile.js +15 -0
- package/dist/icons/components/UiFile.js.map +1 -0
- package/dist/icons/components/UiFileCode.cjs +15 -0
- package/dist/icons/components/UiFileCode.cjs.map +1 -0
- package/dist/icons/components/UiFileCode.d.ts +15 -0
- package/dist/icons/components/UiFileCode.d.ts.map +1 -0
- package/dist/icons/components/UiFileCode.js +15 -0
- package/dist/icons/components/UiFileCode.js.map +1 -0
- package/dist/icons/components/UiFileCog.cjs +13 -0
- package/dist/icons/components/UiFileCog.cjs.map +1 -0
- package/dist/icons/components/UiFileCog.d.ts +9 -0
- package/dist/icons/components/UiFileCog.d.ts.map +1 -0
- package/dist/icons/components/UiFileCog.js +13 -0
- package/dist/icons/components/UiFileCog.js.map +1 -0
- package/dist/icons/components/UiFileJson.cjs +13 -0
- package/dist/icons/components/UiFileJson.cjs.map +1 -0
- package/dist/icons/components/UiFileJson.d.ts +9 -0
- package/dist/icons/components/UiFileJson.d.ts.map +1 -0
- package/dist/icons/components/UiFileJson.js +13 -0
- package/dist/icons/components/UiFileJson.js.map +1 -0
- package/dist/icons/components/UiFileSearch.cjs +15 -0
- package/dist/icons/components/UiFileSearch.cjs.map +1 -0
- package/dist/icons/components/UiFileSearch.d.ts +9 -0
- package/dist/icons/components/UiFileSearch.d.ts.map +1 -0
- package/dist/icons/components/UiFileSearch.js +15 -0
- package/dist/icons/components/UiFileSearch.js.map +1 -0
- package/dist/icons/components/UiFileSpreadsheet.cjs +13 -0
- package/dist/icons/components/UiFileSpreadsheet.cjs.map +1 -0
- package/dist/icons/components/UiFileSpreadsheet.d.ts +9 -0
- package/dist/icons/components/UiFileSpreadsheet.d.ts.map +1 -0
- package/dist/icons/components/UiFileSpreadsheet.js +13 -0
- package/dist/icons/components/UiFileSpreadsheet.js.map +1 -0
- package/dist/icons/components/UiFileText.cjs +15 -0
- package/dist/icons/components/UiFileText.cjs.map +1 -0
- package/dist/icons/components/UiFileText.d.ts +15 -0
- package/dist/icons/components/UiFileText.d.ts.map +1 -0
- package/dist/icons/components/UiFileText.js +15 -0
- package/dist/icons/components/UiFileText.js.map +1 -0
- package/dist/icons/components/UiFileType.cjs +13 -0
- package/dist/icons/components/UiFileType.cjs.map +1 -0
- package/dist/icons/components/UiFileType.d.ts +9 -0
- package/dist/icons/components/UiFileType.d.ts.map +1 -0
- package/dist/icons/components/UiFileType.js +13 -0
- package/dist/icons/components/UiFileType.js.map +1 -0
- package/dist/icons/components/UiFilter.cjs +15 -0
- package/dist/icons/components/UiFilter.cjs.map +1 -0
- package/dist/icons/components/UiFilter.d.ts +15 -0
- package/dist/icons/components/UiFilter.d.ts.map +1 -0
- package/dist/icons/components/UiFilter.js +15 -0
- package/dist/icons/components/UiFilter.js.map +1 -0
- package/dist/icons/components/UiFingerprint.cjs +15 -0
- package/dist/icons/components/UiFingerprint.cjs.map +1 -0
- package/dist/icons/components/UiFingerprint.d.ts +15 -0
- package/dist/icons/components/UiFingerprint.d.ts.map +1 -0
- package/dist/icons/components/UiFingerprint.js +15 -0
- package/dist/icons/components/UiFingerprint.js.map +1 -0
- package/dist/icons/components/UiFolder.cjs +15 -0
- package/dist/icons/components/UiFolder.cjs.map +1 -0
- package/dist/icons/components/UiFolder.d.ts +15 -0
- package/dist/icons/components/UiFolder.d.ts.map +1 -0
- package/dist/icons/components/UiFolder.js +15 -0
- package/dist/icons/components/UiFolder.js.map +1 -0
- package/dist/icons/components/UiFolderGit.cjs +15 -0
- package/dist/icons/components/UiFolderGit.cjs.map +1 -0
- package/dist/icons/components/UiFolderGit.d.ts +15 -0
- package/dist/icons/components/UiFolderGit.d.ts.map +1 -0
- package/dist/icons/components/UiFolderGit.js +15 -0
- package/dist/icons/components/UiFolderGit.js.map +1 -0
- package/dist/icons/components/UiFolderGit2.cjs +24 -0
- package/dist/icons/components/UiFolderGit2.cjs.map +1 -0
- package/dist/icons/components/UiFolderGit2.d.ts +15 -0
- package/dist/icons/components/UiFolderGit2.d.ts.map +1 -0
- package/dist/icons/components/UiFolderGit2.js +24 -0
- package/dist/icons/components/UiFolderGit2.js.map +1 -0
- package/dist/icons/components/UiForm.cjs +15 -0
- package/dist/icons/components/UiForm.cjs.map +1 -0
- package/dist/icons/components/UiForm.d.ts +15 -0
- package/dist/icons/components/UiForm.d.ts.map +1 -0
- package/dist/icons/components/UiForm.js +15 -0
- package/dist/icons/components/UiForm.js.map +1 -0
- package/dist/icons/components/UiFullscreen.cjs +15 -0
- package/dist/icons/components/UiFullscreen.cjs.map +1 -0
- package/dist/icons/components/UiFullscreen.d.ts +15 -0
- package/dist/icons/components/UiFullscreen.d.ts.map +1 -0
- package/dist/icons/components/UiFullscreen.js +15 -0
- package/dist/icons/components/UiFullscreen.js.map +1 -0
- package/dist/icons/components/UiFunction.cjs +13 -0
- package/dist/icons/components/UiFunction.cjs.map +1 -0
- package/dist/icons/components/UiFunction.d.ts +9 -0
- package/dist/icons/components/UiFunction.d.ts.map +1 -0
- package/dist/icons/components/UiFunction.js +13 -0
- package/dist/icons/components/UiFunction.js.map +1 -0
- package/dist/icons/components/UiFunctionSquare.cjs +18 -0
- package/dist/icons/components/UiFunctionSquare.cjs.map +1 -0
- package/dist/icons/components/UiFunctionSquare.d.ts +15 -0
- package/dist/icons/components/UiFunctionSquare.d.ts.map +1 -0
- package/dist/icons/components/UiFunctionSquare.js +18 -0
- package/dist/icons/components/UiFunctionSquare.js.map +1 -0
- package/dist/icons/components/UiFunnelData.cjs +15 -0
- package/dist/icons/components/UiFunnelData.cjs.map +1 -0
- package/dist/icons/components/UiFunnelData.d.ts +15 -0
- package/dist/icons/components/UiFunnelData.d.ts.map +1 -0
- package/dist/icons/components/UiFunnelData.js +15 -0
- package/dist/icons/components/UiFunnelData.js.map +1 -0
- package/dist/icons/components/UiGitBranch.cjs +15 -0
- package/dist/icons/components/UiGitBranch.cjs.map +1 -0
- package/dist/icons/components/UiGitBranch.d.ts +15 -0
- package/dist/icons/components/UiGitBranch.d.ts.map +1 -0
- package/dist/icons/components/UiGitBranch.js +15 -0
- package/dist/icons/components/UiGitBranch.js.map +1 -0
- package/dist/icons/components/UiGitGraph.cjs +15 -0
- package/dist/icons/components/UiGitGraph.cjs.map +1 -0
- package/dist/icons/components/UiGitGraph.d.ts +15 -0
- package/dist/icons/components/UiGitGraph.d.ts.map +1 -0
- package/dist/icons/components/UiGitGraph.js +15 -0
- package/dist/icons/components/UiGitGraph.js.map +1 -0
- package/dist/icons/components/UiGitMerge.cjs +15 -0
- package/dist/icons/components/UiGitMerge.cjs.map +1 -0
- package/dist/icons/components/UiGitMerge.d.ts +15 -0
- package/dist/icons/components/UiGitMerge.d.ts.map +1 -0
- package/dist/icons/components/UiGitMerge.js +15 -0
- package/dist/icons/components/UiGitMerge.js.map +1 -0
- package/dist/icons/components/UiGitPr.cjs +15 -0
- package/dist/icons/components/UiGitPr.cjs.map +1 -0
- package/dist/icons/components/UiGitPr.d.ts +15 -0
- package/dist/icons/components/UiGitPr.d.ts.map +1 -0
- package/dist/icons/components/UiGitPr.js +15 -0
- package/dist/icons/components/UiGitPr.js.map +1 -0
- package/dist/icons/components/UiGlobe.cjs +10 -0
- package/dist/icons/components/UiGlobe.cjs.map +1 -0
- package/dist/icons/components/UiGlobe.d.ts +9 -0
- package/dist/icons/components/UiGlobe.d.ts.map +1 -0
- package/dist/icons/components/UiGlobe.js +10 -0
- package/dist/icons/components/UiGlobe.js.map +1 -0
- package/dist/icons/components/UiGraph.cjs +15 -0
- package/dist/icons/components/UiGraph.cjs.map +1 -0
- package/dist/icons/components/UiGraph.d.ts +15 -0
- package/dist/icons/components/UiGraph.d.ts.map +1 -0
- package/dist/icons/components/UiGraph.js +15 -0
- package/dist/icons/components/UiGraph.js.map +1 -0
- package/dist/icons/components/UiGrid.cjs +15 -0
- package/dist/icons/components/UiGrid.cjs.map +1 -0
- package/dist/icons/components/UiGrid.d.ts +15 -0
- package/dist/icons/components/UiGrid.d.ts.map +1 -0
- package/dist/icons/components/UiGrid.js +15 -0
- package/dist/icons/components/UiGrid.js.map +1 -0
- package/dist/icons/components/UiHardDrive.cjs +10 -0
- package/dist/icons/components/UiHardDrive.cjs.map +1 -0
- package/dist/icons/components/UiHardDrive.d.ts +9 -0
- package/dist/icons/components/UiHardDrive.d.ts.map +1 -0
- package/dist/icons/components/UiHardDrive.js +10 -0
- package/dist/icons/components/UiHardDrive.js.map +1 -0
- package/dist/icons/components/UiHistory.cjs +15 -0
- package/dist/icons/components/UiHistory.cjs.map +1 -0
- package/dist/icons/components/UiHistory.d.ts +15 -0
- package/dist/icons/components/UiHistory.d.ts.map +1 -0
- package/dist/icons/components/UiHistory.js +15 -0
- package/dist/icons/components/UiHistory.js.map +1 -0
- package/dist/icons/components/UiHome.cjs +15 -0
- package/dist/icons/components/UiHome.cjs.map +1 -0
- package/dist/icons/components/UiHome.d.ts +15 -0
- package/dist/icons/components/UiHome.d.ts.map +1 -0
- package/dist/icons/components/UiHome.js +15 -0
- package/dist/icons/components/UiHome.js.map +1 -0
- package/dist/icons/components/UiHourglass.cjs +15 -0
- package/dist/icons/components/UiHourglass.cjs.map +1 -0
- package/dist/icons/components/UiHourglass.d.ts +15 -0
- package/dist/icons/components/UiHourglass.d.ts.map +1 -0
- package/dist/icons/components/UiHourglass.js +15 -0
- package/dist/icons/components/UiHourglass.js.map +1 -0
- package/dist/icons/components/UiHubot.cjs +15 -0
- package/dist/icons/components/UiHubot.cjs.map +1 -0
- package/dist/icons/components/UiHubot.d.ts +15 -0
- package/dist/icons/components/UiHubot.d.ts.map +1 -0
- package/dist/icons/components/UiHubot.js +15 -0
- package/dist/icons/components/UiHubot.js.map +1 -0
- package/dist/icons/components/UiImage.cjs +15 -0
- package/dist/icons/components/UiImage.cjs.map +1 -0
- package/dist/icons/components/UiImage.d.ts +15 -0
- package/dist/icons/components/UiImage.d.ts.map +1 -0
- package/dist/icons/components/UiImage.js +15 -0
- package/dist/icons/components/UiImage.js.map +1 -0
- package/dist/icons/components/UiImport.cjs +13 -0
- package/dist/icons/components/UiImport.cjs.map +1 -0
- package/dist/icons/components/UiImport.d.ts +9 -0
- package/dist/icons/components/UiImport.d.ts.map +1 -0
- package/dist/icons/components/UiImport.js +13 -0
- package/dist/icons/components/UiImport.js.map +1 -0
- package/dist/icons/components/UiInbox.cjs +15 -0
- package/dist/icons/components/UiInbox.cjs.map +1 -0
- package/dist/icons/components/UiInbox.d.ts +15 -0
- package/dist/icons/components/UiInbox.d.ts.map +1 -0
- package/dist/icons/components/UiInbox.js +15 -0
- package/dist/icons/components/UiInbox.js.map +1 -0
- package/dist/icons/components/UiInfo.cjs +23 -0
- package/dist/icons/components/UiInfo.cjs.map +1 -0
- package/dist/icons/components/UiInfo.d.ts +17 -0
- package/dist/icons/components/UiInfo.d.ts.map +1 -0
- package/dist/icons/components/UiInfo.js +23 -0
- package/dist/icons/components/UiInfo.js.map +1 -0
- package/dist/icons/components/UiInsightAvailability.cjs +15 -0
- package/dist/icons/components/UiInsightAvailability.cjs.map +1 -0
- package/dist/icons/components/UiInsightAvailability.d.ts +15 -0
- package/dist/icons/components/UiInsightAvailability.d.ts.map +1 -0
- package/dist/icons/components/UiInsightAvailability.js +15 -0
- package/dist/icons/components/UiInsightAvailability.js.map +1 -0
- package/dist/icons/components/UiInsightCompliance.cjs +10 -0
- package/dist/icons/components/UiInsightCompliance.cjs.map +1 -0
- package/dist/icons/components/UiInsightCompliance.d.ts +9 -0
- package/dist/icons/components/UiInsightCompliance.d.ts.map +1 -0
- package/dist/icons/components/UiInsightCompliance.js +10 -0
- package/dist/icons/components/UiInsightCompliance.js.map +1 -0
- package/dist/icons/components/UiInsightCost.cjs +15 -0
- package/dist/icons/components/UiInsightCost.cjs.map +1 -0
- package/dist/icons/components/UiInsightCost.d.ts +15 -0
- package/dist/icons/components/UiInsightCost.d.ts.map +1 -0
- package/dist/icons/components/UiInsightCost.js +15 -0
- package/dist/icons/components/UiInsightCost.js.map +1 -0
- package/dist/icons/components/UiInsightIntegration.cjs +10 -0
- package/dist/icons/components/UiInsightIntegration.cjs.map +1 -0
- package/dist/icons/components/UiInsightIntegration.d.ts +9 -0
- package/dist/icons/components/UiInsightIntegration.d.ts.map +1 -0
- package/dist/icons/components/UiInsightIntegration.js +10 -0
- package/dist/icons/components/UiInsightIntegration.js.map +1 -0
- package/dist/icons/components/UiInsightPerformance.cjs +15 -0
- package/dist/icons/components/UiInsightPerformance.cjs.map +1 -0
- package/dist/icons/components/UiInsightPerformance.d.ts +15 -0
- package/dist/icons/components/UiInsightPerformance.d.ts.map +1 -0
- package/dist/icons/components/UiInsightPerformance.js +15 -0
- package/dist/icons/components/UiInsightPerformance.js.map +1 -0
- package/dist/icons/components/UiInsightRecommendation.cjs +15 -0
- package/dist/icons/components/UiInsightRecommendation.cjs.map +1 -0
- package/dist/icons/components/UiInsightRecommendation.d.ts +15 -0
- package/dist/icons/components/UiInsightRecommendation.d.ts.map +1 -0
- package/dist/icons/components/UiInsightRecommendation.js +15 -0
- package/dist/icons/components/UiInsightRecommendation.js.map +1 -0
- package/dist/icons/components/UiInsightReliability.cjs +15 -0
- package/dist/icons/components/UiInsightReliability.cjs.map +1 -0
- package/dist/icons/components/UiInsightReliability.d.ts +15 -0
- package/dist/icons/components/UiInsightReliability.d.ts.map +1 -0
- package/dist/icons/components/UiInsightReliability.js +15 -0
- package/dist/icons/components/UiInsightReliability.js.map +1 -0
- package/dist/icons/components/UiInsightSecurity.cjs +15 -0
- package/dist/icons/components/UiInsightSecurity.cjs.map +1 -0
- package/dist/icons/components/UiInsightSecurity.d.ts +15 -0
- package/dist/icons/components/UiInsightSecurity.d.ts.map +1 -0
- package/dist/icons/components/UiInsightSecurity.js +15 -0
- package/dist/icons/components/UiInsightSecurity.js.map +1 -0
- package/dist/icons/components/UiInsightTechnicalDebt.cjs +15 -0
- package/dist/icons/components/UiInsightTechnicalDebt.cjs.map +1 -0
- package/dist/icons/components/UiInsightTechnicalDebt.d.ts +15 -0
- package/dist/icons/components/UiInsightTechnicalDebt.d.ts.map +1 -0
- package/dist/icons/components/UiInsightTechnicalDebt.js +15 -0
- package/dist/icons/components/UiInsightTechnicalDebt.js.map +1 -0
- package/dist/icons/components/UiInterface.cjs +13 -0
- package/dist/icons/components/UiInterface.cjs.map +1 -0
- package/dist/icons/components/UiInterface.d.ts +9 -0
- package/dist/icons/components/UiInterface.d.ts.map +1 -0
- package/dist/icons/components/UiInterface.js +13 -0
- package/dist/icons/components/UiInterface.js.map +1 -0
- package/dist/icons/components/UiJson.cjs +10 -0
- package/dist/icons/components/UiJson.cjs.map +1 -0
- package/dist/icons/components/UiJson.d.ts +9 -0
- package/dist/icons/components/UiJson.d.ts.map +1 -0
- package/dist/icons/components/UiJson.js +10 -0
- package/dist/icons/components/UiJson.js.map +1 -0
- package/dist/icons/components/UiKanban.cjs +15 -0
- package/dist/icons/components/UiKanban.cjs.map +1 -0
- package/dist/icons/components/UiKanban.d.ts +15 -0
- package/dist/icons/components/UiKanban.d.ts.map +1 -0
- package/dist/icons/components/UiKanban.js +15 -0
- package/dist/icons/components/UiKanban.js.map +1 -0
- package/dist/icons/components/UiKey.cjs +15 -0
- package/dist/icons/components/UiKey.cjs.map +1 -0
- package/dist/icons/components/UiKey.d.ts +15 -0
- package/dist/icons/components/UiKey.d.ts.map +1 -0
- package/dist/icons/components/UiKey.js +15 -0
- package/dist/icons/components/UiKey.js.map +1 -0
- package/dist/icons/components/UiKeyword.cjs +10 -0
- package/dist/icons/components/UiKeyword.cjs.map +1 -0
- package/dist/icons/components/UiKeyword.d.ts +9 -0
- package/dist/icons/components/UiKeyword.d.ts.map +1 -0
- package/dist/icons/components/UiKeyword.js +10 -0
- package/dist/icons/components/UiKeyword.js.map +1 -0
- package/dist/icons/components/UiLambda.cjs +13 -0
- package/dist/icons/components/UiLambda.cjs.map +1 -0
- package/dist/icons/components/UiLambda.d.ts +9 -0
- package/dist/icons/components/UiLambda.d.ts.map +1 -0
- package/dist/icons/components/UiLambda.js +13 -0
- package/dist/icons/components/UiLambda.js.map +1 -0
- package/dist/icons/components/UiLayers.cjs +14 -0
- package/dist/icons/components/UiLayers.cjs.map +1 -0
- package/dist/icons/components/UiLayers.d.ts +9 -0
- package/dist/icons/components/UiLayers.d.ts.map +1 -0
- package/dist/icons/components/UiLayers.js +14 -0
- package/dist/icons/components/UiLayers.js.map +1 -0
- package/dist/icons/components/UiLayoutDashboard.cjs +15 -0
- package/dist/icons/components/UiLayoutDashboard.cjs.map +1 -0
- package/dist/icons/components/UiLayoutDashboard.d.ts +15 -0
- package/dist/icons/components/UiLayoutDashboard.d.ts.map +1 -0
- package/dist/icons/components/UiLayoutDashboard.js +15 -0
- package/dist/icons/components/UiLayoutDashboard.js.map +1 -0
- package/dist/icons/components/UiLightbulb.cjs +15 -0
- package/dist/icons/components/UiLightbulb.cjs.map +1 -0
- package/dist/icons/components/UiLightbulb.d.ts +15 -0
- package/dist/icons/components/UiLightbulb.d.ts.map +1 -0
- package/dist/icons/components/UiLightbulb.js +15 -0
- package/dist/icons/components/UiLightbulb.js.map +1 -0
- package/dist/icons/components/UiLink.cjs +15 -0
- package/dist/icons/components/UiLink.cjs.map +1 -0
- package/dist/icons/components/UiLink.d.ts +15 -0
- package/dist/icons/components/UiLink.d.ts.map +1 -0
- package/dist/icons/components/UiLink.js +15 -0
- package/dist/icons/components/UiLink.js.map +1 -0
- package/dist/icons/components/UiLinkExternal.cjs +15 -0
- package/dist/icons/components/UiLinkExternal.cjs.map +1 -0
- package/dist/icons/components/UiLinkExternal.d.ts +15 -0
- package/dist/icons/components/UiLinkExternal.d.ts.map +1 -0
- package/dist/icons/components/UiLinkExternal.js +15 -0
- package/dist/icons/components/UiLinkExternal.js.map +1 -0
- package/dist/icons/components/UiListDashes.cjs +15 -0
- package/dist/icons/components/UiListDashes.cjs.map +1 -0
- package/dist/icons/components/UiListDashes.d.ts +15 -0
- package/dist/icons/components/UiListDashes.d.ts.map +1 -0
- package/dist/icons/components/UiListDashes.js +15 -0
- package/dist/icons/components/UiListDashes.js.map +1 -0
- package/dist/icons/components/UiListFlat.cjs +15 -0
- package/dist/icons/components/UiListFlat.cjs.map +1 -0
- package/dist/icons/components/UiListFlat.d.ts +15 -0
- package/dist/icons/components/UiListFlat.d.ts.map +1 -0
- package/dist/icons/components/UiListFlat.js +15 -0
- package/dist/icons/components/UiListFlat.js.map +1 -0
- package/dist/icons/components/UiListOrdered.cjs +10 -0
- package/dist/icons/components/UiListOrdered.cjs.map +1 -0
- package/dist/icons/components/UiListOrdered.d.ts +9 -0
- package/dist/icons/components/UiListOrdered.d.ts.map +1 -0
- package/dist/icons/components/UiListOrdered.js +10 -0
- package/dist/icons/components/UiListOrdered.js.map +1 -0
- package/dist/icons/components/UiListTree.cjs +15 -0
- package/dist/icons/components/UiListTree.cjs.map +1 -0
- package/dist/icons/components/UiListTree.d.ts +15 -0
- package/dist/icons/components/UiListTree.d.ts.map +1 -0
- package/dist/icons/components/UiListTree.js +15 -0
- package/dist/icons/components/UiListTree.js.map +1 -0
- package/dist/icons/components/UiLoader.cjs +23 -0
- package/dist/icons/components/UiLoader.cjs.map +1 -0
- package/dist/icons/components/UiLoader.d.ts +17 -0
- package/dist/icons/components/UiLoader.d.ts.map +1 -0
- package/dist/icons/components/UiLoader.js +23 -0
- package/dist/icons/components/UiLoader.js.map +1 -0
- package/dist/icons/components/UiLocation.cjs +15 -0
- package/dist/icons/components/UiLocation.cjs.map +1 -0
- package/dist/icons/components/UiLocation.d.ts +15 -0
- package/dist/icons/components/UiLocation.d.ts.map +1 -0
- package/dist/icons/components/UiLocation.js +15 -0
- package/dist/icons/components/UiLocation.js.map +1 -0
- package/dist/icons/components/UiLock.cjs +15 -0
- package/dist/icons/components/UiLock.cjs.map +1 -0
- package/dist/icons/components/UiLock.d.ts +15 -0
- package/dist/icons/components/UiLock.d.ts.map +1 -0
- package/dist/icons/components/UiLock.js +15 -0
- package/dist/icons/components/UiLock.js.map +1 -0
- package/dist/icons/components/UiLockOpen.cjs +15 -0
- package/dist/icons/components/UiLockOpen.cjs.map +1 -0
- package/dist/icons/components/UiLockOpen.d.ts +15 -0
- package/dist/icons/components/UiLockOpen.d.ts.map +1 -0
- package/dist/icons/components/UiLockOpen.js +15 -0
- package/dist/icons/components/UiLockOpen.js.map +1 -0
- package/dist/icons/components/UiMagicWand.cjs +15 -0
- package/dist/icons/components/UiMagicWand.cjs.map +1 -0
- package/dist/icons/components/UiMagicWand.d.ts +15 -0
- package/dist/icons/components/UiMagicWand.d.ts.map +1 -0
- package/dist/icons/components/UiMagicWand.js +15 -0
- package/dist/icons/components/UiMagicWand.js.map +1 -0
- package/dist/icons/components/UiMarkdown.cjs +13 -0
- package/dist/icons/components/UiMarkdown.cjs.map +1 -0
- package/dist/icons/components/UiMarkdown.d.ts +9 -0
- package/dist/icons/components/UiMarkdown.d.ts.map +1 -0
- package/dist/icons/components/UiMarkdown.js +13 -0
- package/dist/icons/components/UiMarkdown.js.map +1 -0
- package/dist/icons/components/UiMemoryStick.cjs +13 -0
- package/dist/icons/components/UiMemoryStick.cjs.map +1 -0
- package/dist/icons/components/UiMemoryStick.d.ts +9 -0
- package/dist/icons/components/UiMemoryStick.d.ts.map +1 -0
- package/dist/icons/components/UiMemoryStick.js +13 -0
- package/dist/icons/components/UiMemoryStick.js.map +1 -0
- package/dist/icons/components/UiMenu.cjs +15 -0
- package/dist/icons/components/UiMenu.cjs.map +1 -0
- package/dist/icons/components/UiMenu.d.ts +15 -0
- package/dist/icons/components/UiMenu.d.ts.map +1 -0
- package/dist/icons/components/UiMenu.js +15 -0
- package/dist/icons/components/UiMenu.js.map +1 -0
- package/dist/icons/components/UiMethod.cjs +13 -0
- package/dist/icons/components/UiMethod.cjs.map +1 -0
- package/dist/icons/components/UiMethod.d.ts +9 -0
- package/dist/icons/components/UiMethod.d.ts.map +1 -0
- package/dist/icons/components/UiMethod.js +13 -0
- package/dist/icons/components/UiMethod.js.map +1 -0
- package/dist/icons/components/UiModule.cjs +14 -0
- package/dist/icons/components/UiModule.cjs.map +1 -0
- package/dist/icons/components/UiModule.d.ts +9 -0
- package/dist/icons/components/UiModule.d.ts.map +1 -0
- package/dist/icons/components/UiModule.js +14 -0
- package/dist/icons/components/UiModule.js.map +1 -0
- package/dist/icons/components/UiMoon.cjs +15 -0
- package/dist/icons/components/UiMoon.cjs.map +1 -0
- package/dist/icons/components/UiMoon.d.ts +15 -0
- package/dist/icons/components/UiMoon.d.ts.map +1 -0
- package/dist/icons/components/UiMoon.js +15 -0
- package/dist/icons/components/UiMoon.js.map +1 -0
- package/dist/icons/components/UiNamespace.cjs +16 -0
- package/dist/icons/components/UiNamespace.cjs.map +1 -0
- package/dist/icons/components/UiNamespace.d.ts +9 -0
- package/dist/icons/components/UiNamespace.d.ts.map +1 -0
- package/dist/icons/components/UiNamespace.js +16 -0
- package/dist/icons/components/UiNamespace.js.map +1 -0
- package/dist/icons/components/UiNetwork.cjs +15 -0
- package/dist/icons/components/UiNetwork.cjs.map +1 -0
- package/dist/icons/components/UiNetwork.d.ts +15 -0
- package/dist/icons/components/UiNetwork.d.ts.map +1 -0
- package/dist/icons/components/UiNetwork.js +15 -0
- package/dist/icons/components/UiNetwork.js.map +1 -0
- package/dist/icons/components/UiNull.cjs +14 -0
- package/dist/icons/components/UiNull.cjs.map +1 -0
- package/dist/icons/components/UiNull.d.ts +9 -0
- package/dist/icons/components/UiNull.d.ts.map +1 -0
- package/dist/icons/components/UiNull.js +14 -0
- package/dist/icons/components/UiNull.js.map +1 -0
- package/dist/icons/components/UiNumeric.cjs +14 -0
- package/dist/icons/components/UiNumeric.cjs.map +1 -0
- package/dist/icons/components/UiNumeric.d.ts +9 -0
- package/dist/icons/components/UiNumeric.d.ts.map +1 -0
- package/dist/icons/components/UiNumeric.js +14 -0
- package/dist/icons/components/UiNumeric.js.map +1 -0
- package/dist/icons/components/UiObject.cjs +13 -0
- package/dist/icons/components/UiObject.cjs.map +1 -0
- package/dist/icons/components/UiObject.d.ts +9 -0
- package/dist/icons/components/UiObject.d.ts.map +1 -0
- package/dist/icons/components/UiObject.js +13 -0
- package/dist/icons/components/UiObject.js.map +1 -0
- package/dist/icons/components/UiOperator.cjs +10 -0
- package/dist/icons/components/UiOperator.cjs.map +1 -0
- package/dist/icons/components/UiOperator.d.ts +9 -0
- package/dist/icons/components/UiOperator.d.ts.map +1 -0
- package/dist/icons/components/UiOperator.js +10 -0
- package/dist/icons/components/UiOperator.js.map +1 -0
- package/dist/icons/components/UiOrganization.cjs +103 -0
- package/dist/icons/components/UiOrganization.cjs.map +1 -0
- package/dist/icons/components/UiOrganization.d.ts +63 -0
- package/dist/icons/components/UiOrganization.d.ts.map +1 -0
- package/dist/icons/components/UiOrganization.js +103 -0
- package/dist/icons/components/UiOrganization.js.map +1 -0
- package/dist/icons/components/UiPackage.cjs +15 -0
- package/dist/icons/components/UiPackage.cjs.map +1 -0
- package/dist/icons/components/UiPackage.d.ts +15 -0
- package/dist/icons/components/UiPackage.d.ts.map +1 -0
- package/dist/icons/components/UiPackage.js +15 -0
- package/dist/icons/components/UiPackage.js.map +1 -0
- package/dist/icons/components/UiParameter.cjs +13 -0
- package/dist/icons/components/UiParameter.cjs.map +1 -0
- package/dist/icons/components/UiParameter.d.ts +9 -0
- package/dist/icons/components/UiParameter.d.ts.map +1 -0
- package/dist/icons/components/UiParameter.js +13 -0
- package/dist/icons/components/UiParameter.js.map +1 -0
- package/dist/icons/components/UiPass.cjs +23 -0
- package/dist/icons/components/UiPass.cjs.map +1 -0
- package/dist/icons/components/UiPass.d.ts +17 -0
- package/dist/icons/components/UiPass.d.ts.map +1 -0
- package/dist/icons/components/UiPass.js +23 -0
- package/dist/icons/components/UiPass.js.map +1 -0
- package/dist/icons/components/UiPause.cjs +13 -0
- package/dist/icons/components/UiPause.cjs.map +1 -0
- package/dist/icons/components/UiPause.d.ts +9 -0
- package/dist/icons/components/UiPause.d.ts.map +1 -0
- package/dist/icons/components/UiPause.js +13 -0
- package/dist/icons/components/UiPause.js.map +1 -0
- package/dist/icons/components/UiPhone.cjs +15 -0
- package/dist/icons/components/UiPhone.cjs.map +1 -0
- package/dist/icons/components/UiPhone.d.ts +15 -0
- package/dist/icons/components/UiPhone.d.ts.map +1 -0
- package/dist/icons/components/UiPhone.js +15 -0
- package/dist/icons/components/UiPhone.js.map +1 -0
- package/dist/icons/components/UiPlay.cjs +10 -0
- package/dist/icons/components/UiPlay.cjs.map +1 -0
- package/dist/icons/components/UiPlay.d.ts +9 -0
- package/dist/icons/components/UiPlay.d.ts.map +1 -0
- package/dist/icons/components/UiPlay.js +10 -0
- package/dist/icons/components/UiPlay.js.map +1 -0
- package/dist/icons/components/UiPlayCircle.cjs +15 -0
- package/dist/icons/components/UiPlayCircle.cjs.map +1 -0
- package/dist/icons/components/UiPlayCircle.d.ts +15 -0
- package/dist/icons/components/UiPlayCircle.d.ts.map +1 -0
- package/dist/icons/components/UiPlayCircle.js +15 -0
- package/dist/icons/components/UiPlayCircle.js.map +1 -0
- package/dist/icons/components/UiPlaybook.cjs +10 -0
- package/dist/icons/components/UiPlaybook.cjs.map +1 -0
- package/dist/icons/components/UiPlaybook.d.ts +9 -0
- package/dist/icons/components/UiPlaybook.d.ts.map +1 -0
- package/dist/icons/components/UiPlaybook.js +10 -0
- package/dist/icons/components/UiPlaybook.js.map +1 -0
- package/dist/icons/components/UiPlug.cjs +10 -0
- package/dist/icons/components/UiPlug.cjs.map +1 -0
- package/dist/icons/components/UiPlug.d.ts +9 -0
- package/dist/icons/components/UiPlug.d.ts.map +1 -0
- package/dist/icons/components/UiPlug.js +10 -0
- package/dist/icons/components/UiPlug.js.map +1 -0
- package/dist/icons/components/UiProperty.cjs +13 -0
- package/dist/icons/components/UiProperty.cjs.map +1 -0
- package/dist/icons/components/UiProperty.d.ts +9 -0
- package/dist/icons/components/UiProperty.d.ts.map +1 -0
- package/dist/icons/components/UiProperty.js +13 -0
- package/dist/icons/components/UiProperty.js.map +1 -0
- package/dist/icons/components/UiPulse.cjs +15 -0
- package/dist/icons/components/UiPulse.cjs.map +1 -0
- package/dist/icons/components/UiPulse.d.ts +15 -0
- package/dist/icons/components/UiPulse.d.ts.map +1 -0
- package/dist/icons/components/UiPulse.js +15 -0
- package/dist/icons/components/UiPulse.js.map +1 -0
- package/dist/icons/components/UiPuzzle.cjs +15 -0
- package/dist/icons/components/UiPuzzle.cjs.map +1 -0
- package/dist/icons/components/UiPuzzle.d.ts +15 -0
- package/dist/icons/components/UiPuzzle.d.ts.map +1 -0
- package/dist/icons/components/UiPuzzle.js +15 -0
- package/dist/icons/components/UiPuzzle.js.map +1 -0
- package/dist/icons/components/UiQuestion.cjs +15 -0
- package/dist/icons/components/UiQuestion.cjs.map +1 -0
- package/dist/icons/components/UiQuestion.d.ts +15 -0
- package/dist/icons/components/UiQuestion.d.ts.map +1 -0
- package/dist/icons/components/UiQuestion.js +15 -0
- package/dist/icons/components/UiQuestion.js.map +1 -0
- package/dist/icons/components/UiQueue.cjs +15 -0
- package/dist/icons/components/UiQueue.cjs.map +1 -0
- package/dist/icons/components/UiQueue.d.ts +15 -0
- package/dist/icons/components/UiQueue.d.ts.map +1 -0
- package/dist/icons/components/UiQueue.js +15 -0
- package/dist/icons/components/UiQueue.js.map +1 -0
- package/dist/icons/components/UiRecord.cjs +13 -0
- package/dist/icons/components/UiRecord.cjs.map +1 -0
- package/dist/icons/components/UiRecord.d.ts +9 -0
- package/dist/icons/components/UiRecord.d.ts.map +1 -0
- package/dist/icons/components/UiRecord.js +13 -0
- package/dist/icons/components/UiRecord.js.map +1 -0
- package/dist/icons/components/UiRefresh.cjs +15 -0
- package/dist/icons/components/UiRefresh.cjs.map +1 -0
- package/dist/icons/components/UiRefresh.d.ts +15 -0
- package/dist/icons/components/UiRefresh.d.ts.map +1 -0
- package/dist/icons/components/UiRefresh.js +15 -0
- package/dist/icons/components/UiRefresh.js.map +1 -0
- package/dist/icons/components/UiRemove.cjs +15 -0
- package/dist/icons/components/UiRemove.cjs.map +1 -0
- package/dist/icons/components/UiRemove.d.ts +15 -0
- package/dist/icons/components/UiRemove.d.ts.map +1 -0
- package/dist/icons/components/UiRemove.js +15 -0
- package/dist/icons/components/UiRemove.js.map +1 -0
- package/dist/icons/components/UiResizeVertical.cjs +15 -0
- package/dist/icons/components/UiResizeVertical.cjs.map +1 -0
- package/dist/icons/components/UiResizeVertical.d.ts +15 -0
- package/dist/icons/components/UiResizeVertical.d.ts.map +1 -0
- package/dist/icons/components/UiResizeVertical.js +15 -0
- package/dist/icons/components/UiResizeVertical.js.map +1 -0
- package/dist/icons/components/UiRestart.cjs +10 -0
- package/dist/icons/components/UiRestart.cjs.map +1 -0
- package/dist/icons/components/UiRestart.d.ts +9 -0
- package/dist/icons/components/UiRestart.d.ts.map +1 -0
- package/dist/icons/components/UiRestart.js +10 -0
- package/dist/icons/components/UiRestart.js.map +1 -0
- package/dist/icons/components/UiRobotAi.cjs +15 -0
- package/dist/icons/components/UiRobotAi.cjs.map +1 -0
- package/dist/icons/components/UiRobotAi.d.ts +15 -0
- package/dist/icons/components/UiRobotAi.d.ts.map +1 -0
- package/dist/icons/components/UiRobotAi.js +15 -0
- package/dist/icons/components/UiRobotAi.js.map +1 -0
- package/dist/icons/components/UiRocket.cjs +15 -0
- package/dist/icons/components/UiRocket.cjs.map +1 -0
- package/dist/icons/components/UiRocket.d.ts +15 -0
- package/dist/icons/components/UiRocket.d.ts.map +1 -0
- package/dist/icons/components/UiRocket.js +15 -0
- package/dist/icons/components/UiRocket.js.map +1 -0
- package/dist/icons/components/UiRoute.cjs +15 -0
- package/dist/icons/components/UiRoute.cjs.map +1 -0
- package/dist/icons/components/UiRoute.d.ts +15 -0
- package/dist/icons/components/UiRoute.d.ts.map +1 -0
- package/dist/icons/components/UiRoute.js +15 -0
- package/dist/icons/components/UiRoute.js.map +1 -0
- package/dist/icons/components/UiRows.cjs +15 -0
- package/dist/icons/components/UiRows.cjs.map +1 -0
- package/dist/icons/components/UiRows.d.ts +15 -0
- package/dist/icons/components/UiRows.d.ts.map +1 -0
- package/dist/icons/components/UiRows.js +15 -0
- package/dist/icons/components/UiRows.js.map +1 -0
- package/dist/icons/components/UiSave.cjs +15 -0
- package/dist/icons/components/UiSave.cjs.map +1 -0
- package/dist/icons/components/UiSave.d.ts +15 -0
- package/dist/icons/components/UiSave.d.ts.map +1 -0
- package/dist/icons/components/UiSave.js +15 -0
- package/dist/icons/components/UiSave.js.map +1 -0
- package/dist/icons/components/UiScale.cjs +13 -0
- package/dist/icons/components/UiScale.cjs.map +1 -0
- package/dist/icons/components/UiScale.d.ts +9 -0
- package/dist/icons/components/UiScale.d.ts.map +1 -0
- package/dist/icons/components/UiScale.js +13 -0
- package/dist/icons/components/UiScale.js.map +1 -0
- package/dist/icons/components/UiSealCheck.cjs +15 -0
- package/dist/icons/components/UiSealCheck.cjs.map +1 -0
- package/dist/icons/components/UiSealCheck.d.ts +15 -0
- package/dist/icons/components/UiSealCheck.d.ts.map +1 -0
- package/dist/icons/components/UiSealCheck.js +15 -0
- package/dist/icons/components/UiSealCheck.js.map +1 -0
- package/dist/icons/components/UiSearch.cjs +10 -0
- package/dist/icons/components/UiSearch.cjs.map +1 -0
- package/dist/icons/components/UiSearch.d.ts +9 -0
- package/dist/icons/components/UiSearch.d.ts.map +1 -0
- package/dist/icons/components/UiSearch.js +10 -0
- package/dist/icons/components/UiSearch.js.map +1 -0
- package/dist/icons/components/UiSelect.cjs +15 -0
- package/dist/icons/components/UiSelect.cjs.map +1 -0
- package/dist/icons/components/UiSelect.d.ts +15 -0
- package/dist/icons/components/UiSelect.d.ts.map +1 -0
- package/dist/icons/components/UiSelect.js +15 -0
- package/dist/icons/components/UiSelect.js.map +1 -0
- package/dist/icons/components/UiServer.cjs +10 -0
- package/dist/icons/components/UiServer.cjs.map +1 -0
- package/dist/icons/components/UiServer.d.ts +9 -0
- package/dist/icons/components/UiServer.d.ts.map +1 -0
- package/dist/icons/components/UiServer.js +10 -0
- package/dist/icons/components/UiServer.js.map +1 -0
- package/dist/icons/components/UiServerProcess.cjs +15 -0
- package/dist/icons/components/UiServerProcess.cjs.map +1 -0
- package/dist/icons/components/UiServerProcess.d.ts +15 -0
- package/dist/icons/components/UiServerProcess.d.ts.map +1 -0
- package/dist/icons/components/UiServerProcess.js +15 -0
- package/dist/icons/components/UiServerProcess.js.map +1 -0
- package/dist/icons/components/UiSeverityBlocker.cjs +23 -0
- package/dist/icons/components/UiSeverityBlocker.cjs.map +1 -0
- package/dist/icons/components/UiSeverityBlocker.d.ts +17 -0
- package/dist/icons/components/UiSeverityBlocker.d.ts.map +1 -0
- package/dist/icons/components/UiSeverityBlocker.js +23 -0
- package/dist/icons/components/UiSeverityBlocker.js.map +1 -0
- package/dist/icons/components/UiSeverityCritical.cjs +23 -0
- package/dist/icons/components/UiSeverityCritical.cjs.map +1 -0
- package/dist/icons/components/UiSeverityCritical.d.ts +17 -0
- package/dist/icons/components/UiSeverityCritical.d.ts.map +1 -0
- package/dist/icons/components/UiSeverityCritical.js +23 -0
- package/dist/icons/components/UiSeverityCritical.js.map +1 -0
- package/dist/icons/components/UiSeverityHigh.cjs +23 -0
- package/dist/icons/components/UiSeverityHigh.cjs.map +1 -0
- package/dist/icons/components/UiSeverityHigh.d.ts +17 -0
- package/dist/icons/components/UiSeverityHigh.d.ts.map +1 -0
- package/dist/icons/components/UiSeverityHigh.js +23 -0
- package/dist/icons/components/UiSeverityHigh.js.map +1 -0
- package/dist/icons/components/UiSeverityInfo.cjs +23 -0
- package/dist/icons/components/UiSeverityInfo.cjs.map +1 -0
- package/dist/icons/components/UiSeverityInfo.d.ts +17 -0
- package/dist/icons/components/UiSeverityInfo.d.ts.map +1 -0
- package/dist/icons/components/UiSeverityInfo.js +23 -0
- package/dist/icons/components/UiSeverityInfo.js.map +1 -0
- package/dist/icons/components/UiSeverityLow.cjs +23 -0
- package/dist/icons/components/UiSeverityLow.cjs.map +1 -0
- package/dist/icons/components/UiSeverityLow.d.ts +17 -0
- package/dist/icons/components/UiSeverityLow.d.ts.map +1 -0
- package/dist/icons/components/UiSeverityLow.js +23 -0
- package/dist/icons/components/UiSeverityLow.js.map +1 -0
- package/dist/icons/components/UiSeverityMedium.cjs +23 -0
- package/dist/icons/components/UiSeverityMedium.cjs.map +1 -0
- package/dist/icons/components/UiSeverityMedium.d.ts +17 -0
- package/dist/icons/components/UiSeverityMedium.d.ts.map +1 -0
- package/dist/icons/components/UiSeverityMedium.js +23 -0
- package/dist/icons/components/UiSeverityMedium.js.map +1 -0
- package/dist/icons/components/UiSeverityWarning.cjs +23 -0
- package/dist/icons/components/UiSeverityWarning.cjs.map +1 -0
- package/dist/icons/components/UiSeverityWarning.d.ts +17 -0
- package/dist/icons/components/UiSeverityWarning.d.ts.map +1 -0
- package/dist/icons/components/UiSeverityWarning.js +23 -0
- package/dist/icons/components/UiSeverityWarning.js.map +1 -0
- package/dist/icons/components/UiShare.cjs +15 -0
- package/dist/icons/components/UiShare.cjs.map +1 -0
- package/dist/icons/components/UiShare.d.ts +15 -0
- package/dist/icons/components/UiShare.d.ts.map +1 -0
- package/dist/icons/components/UiShare.js +15 -0
- package/dist/icons/components/UiShare.js.map +1 -0
- package/dist/icons/components/UiShield.cjs +127 -0
- package/dist/icons/components/UiShield.cjs.map +1 -0
- package/dist/icons/components/UiShield.d.ts +99 -0
- package/dist/icons/components/UiShield.d.ts.map +1 -0
- package/dist/icons/components/UiShield.js +127 -0
- package/dist/icons/components/UiShield.js.map +1 -0
- package/dist/icons/components/UiShipWheel.cjs +14 -0
- package/dist/icons/components/UiShipWheel.cjs.map +1 -0
- package/dist/icons/components/UiShipWheel.d.ts +9 -0
- package/dist/icons/components/UiShipWheel.d.ts.map +1 -0
- package/dist/icons/components/UiShipWheel.js +14 -0
- package/dist/icons/components/UiShipWheel.js.map +1 -0
- package/dist/icons/components/UiSidebar.cjs +15 -0
- package/dist/icons/components/UiSidebar.cjs.map +1 -0
- package/dist/icons/components/UiSidebar.d.ts +15 -0
- package/dist/icons/components/UiSidebar.d.ts.map +1 -0
- package/dist/icons/components/UiSidebar.js +15 -0
- package/dist/icons/components/UiSidebar.js.map +1 -0
- package/dist/icons/components/UiSigma.cjs +10 -0
- package/dist/icons/components/UiSigma.cjs.map +1 -0
- package/dist/icons/components/UiSigma.d.ts +9 -0
- package/dist/icons/components/UiSigma.d.ts.map +1 -0
- package/dist/icons/components/UiSigma.js +10 -0
- package/dist/icons/components/UiSigma.js.map +1 -0
- package/dist/icons/components/UiSignIn.cjs +15 -0
- package/dist/icons/components/UiSignIn.cjs.map +1 -0
- package/dist/icons/components/UiSignIn.d.ts +15 -0
- package/dist/icons/components/UiSignIn.d.ts.map +1 -0
- package/dist/icons/components/UiSignIn.js +15 -0
- package/dist/icons/components/UiSignIn.js.map +1 -0
- package/dist/icons/components/UiSignOut.cjs +15 -0
- package/dist/icons/components/UiSignOut.cjs.map +1 -0
- package/dist/icons/components/UiSignOut.d.ts +15 -0
- package/dist/icons/components/UiSignOut.d.ts.map +1 -0
- package/dist/icons/components/UiSignOut.js +15 -0
- package/dist/icons/components/UiSignOut.js.map +1 -0
- package/dist/icons/components/UiSiren.cjs +23 -0
- package/dist/icons/components/UiSiren.cjs.map +1 -0
- package/dist/icons/components/UiSiren.d.ts +17 -0
- package/dist/icons/components/UiSiren.d.ts.map +1 -0
- package/dist/icons/components/UiSiren.js +23 -0
- package/dist/icons/components/UiSiren.js.map +1 -0
- package/dist/icons/components/UiSkipForward.cjs +15 -0
- package/dist/icons/components/UiSkipForward.cjs.map +1 -0
- package/dist/icons/components/UiSkipForward.d.ts +15 -0
- package/dist/icons/components/UiSkipForward.d.ts.map +1 -0
- package/dist/icons/components/UiSkipForward.js +15 -0
- package/dist/icons/components/UiSkipForward.js.map +1 -0
- package/dist/icons/components/UiSkull.cjs +23 -0
- package/dist/icons/components/UiSkull.cjs.map +1 -0
- package/dist/icons/components/UiSkull.d.ts +17 -0
- package/dist/icons/components/UiSkull.d.ts.map +1 -0
- package/dist/icons/components/UiSkull.js +23 -0
- package/dist/icons/components/UiSkull.js.map +1 -0
- package/dist/icons/components/UiSliders.cjs +15 -0
- package/dist/icons/components/UiSliders.cjs.map +1 -0
- package/dist/icons/components/UiSliders.d.ts +15 -0
- package/dist/icons/components/UiSliders.d.ts.map +1 -0
- package/dist/icons/components/UiSliders.js +15 -0
- package/dist/icons/components/UiSliders.js.map +1 -0
- package/dist/icons/components/UiSparkles.cjs +15 -0
- package/dist/icons/components/UiSparkles.cjs.map +1 -0
- package/dist/icons/components/UiSparkles.d.ts +15 -0
- package/dist/icons/components/UiSparkles.d.ts.map +1 -0
- package/dist/icons/components/UiSparkles.js +15 -0
- package/dist/icons/components/UiSparkles.js.map +1 -0
- package/dist/icons/components/UiSpeaker.cjs +15 -0
- package/dist/icons/components/UiSpeaker.cjs.map +1 -0
- package/dist/icons/components/UiSpeaker.d.ts +15 -0
- package/dist/icons/components/UiSpeaker.d.ts.map +1 -0
- package/dist/icons/components/UiSpeaker.js +15 -0
- package/dist/icons/components/UiSpeaker.js.map +1 -0
- package/dist/icons/components/UiSqlArray.cjs +13 -0
- package/dist/icons/components/UiSqlArray.cjs.map +1 -0
- package/dist/icons/components/UiSqlArray.d.ts +9 -0
- package/dist/icons/components/UiSqlArray.d.ts.map +1 -0
- package/dist/icons/components/UiSqlArray.js +13 -0
- package/dist/icons/components/UiSqlArray.js.map +1 -0
- package/dist/icons/components/UiSqlColumn.cjs +13 -0
- package/dist/icons/components/UiSqlColumn.cjs.map +1 -0
- package/dist/icons/components/UiSqlColumn.d.ts +9 -0
- package/dist/icons/components/UiSqlColumn.d.ts.map +1 -0
- package/dist/icons/components/UiSqlColumn.js +13 -0
- package/dist/icons/components/UiSqlColumn.js.map +1 -0
- package/dist/icons/components/UiSqlConstraint.cjs +10 -0
- package/dist/icons/components/UiSqlConstraint.cjs.map +1 -0
- package/dist/icons/components/UiSqlConstraint.d.ts +9 -0
- package/dist/icons/components/UiSqlConstraint.d.ts.map +1 -0
- package/dist/icons/components/UiSqlConstraint.js +10 -0
- package/dist/icons/components/UiSqlConstraint.js.map +1 -0
- package/dist/icons/components/UiSqlDatabase.cjs +14 -0
- package/dist/icons/components/UiSqlDatabase.cjs.map +1 -0
- package/dist/icons/components/UiSqlDatabase.d.ts +9 -0
- package/dist/icons/components/UiSqlDatabase.d.ts.map +1 -0
- package/dist/icons/components/UiSqlDatabase.js +14 -0
- package/dist/icons/components/UiSqlDatabase.js.map +1 -0
- package/dist/icons/components/UiSqlForeignKey.cjs +13 -0
- package/dist/icons/components/UiSqlForeignKey.cjs.map +1 -0
- package/dist/icons/components/UiSqlForeignKey.d.ts +9 -0
- package/dist/icons/components/UiSqlForeignKey.d.ts.map +1 -0
- package/dist/icons/components/UiSqlForeignKey.js +13 -0
- package/dist/icons/components/UiSqlForeignKey.js.map +1 -0
- package/dist/icons/components/UiSqlFunction.cjs +13 -0
- package/dist/icons/components/UiSqlFunction.cjs.map +1 -0
- package/dist/icons/components/UiSqlFunction.d.ts +9 -0
- package/dist/icons/components/UiSqlFunction.d.ts.map +1 -0
- package/dist/icons/components/UiSqlFunction.js +13 -0
- package/dist/icons/components/UiSqlFunction.js.map +1 -0
- package/dist/icons/components/UiSqlIndex.cjs +13 -0
- package/dist/icons/components/UiSqlIndex.cjs.map +1 -0
- package/dist/icons/components/UiSqlIndex.d.ts +9 -0
- package/dist/icons/components/UiSqlIndex.d.ts.map +1 -0
- package/dist/icons/components/UiSqlIndex.js +13 -0
- package/dist/icons/components/UiSqlIndex.js.map +1 -0
- package/dist/icons/components/UiSqlPrimaryKey.cjs +13 -0
- package/dist/icons/components/UiSqlPrimaryKey.cjs.map +1 -0
- package/dist/icons/components/UiSqlPrimaryKey.d.ts +9 -0
- package/dist/icons/components/UiSqlPrimaryKey.d.ts.map +1 -0
- package/dist/icons/components/UiSqlPrimaryKey.js +13 -0
- package/dist/icons/components/UiSqlPrimaryKey.js.map +1 -0
- package/dist/icons/components/UiSqlQuery.cjs +10 -0
- package/dist/icons/components/UiSqlQuery.cjs.map +1 -0
- package/dist/icons/components/UiSqlQuery.d.ts +9 -0
- package/dist/icons/components/UiSqlQuery.d.ts.map +1 -0
- package/dist/icons/components/UiSqlQuery.js +10 -0
- package/dist/icons/components/UiSqlQuery.js.map +1 -0
- package/dist/icons/components/UiSqlSchema.cjs +13 -0
- package/dist/icons/components/UiSqlSchema.cjs.map +1 -0
- package/dist/icons/components/UiSqlSchema.d.ts +9 -0
- package/dist/icons/components/UiSqlSchema.d.ts.map +1 -0
- package/dist/icons/components/UiSqlSchema.js +13 -0
- package/dist/icons/components/UiSqlSchema.js.map +1 -0
- package/dist/icons/components/UiSqlSequence.cjs +14 -0
- package/dist/icons/components/UiSqlSequence.cjs.map +1 -0
- package/dist/icons/components/UiSqlSequence.d.ts +9 -0
- package/dist/icons/components/UiSqlSequence.d.ts.map +1 -0
- package/dist/icons/components/UiSqlSequence.js +14 -0
- package/dist/icons/components/UiSqlSequence.js.map +1 -0
- package/dist/icons/components/UiSqlStoredProc.cjs +13 -0
- package/dist/icons/components/UiSqlStoredProc.cjs.map +1 -0
- package/dist/icons/components/UiSqlStoredProc.d.ts +9 -0
- package/dist/icons/components/UiSqlStoredProc.d.ts.map +1 -0
- package/dist/icons/components/UiSqlStoredProc.js +13 -0
- package/dist/icons/components/UiSqlStoredProc.js.map +1 -0
- package/dist/icons/components/UiSqlTable.cjs +20 -0
- package/dist/icons/components/UiSqlTable.cjs.map +1 -0
- package/dist/icons/components/UiSqlTable.d.ts +15 -0
- package/dist/icons/components/UiSqlTable.d.ts.map +1 -0
- package/dist/icons/components/UiSqlTable.js +20 -0
- package/dist/icons/components/UiSqlTable.js.map +1 -0
- package/dist/icons/components/UiSqlTrigger.cjs +10 -0
- package/dist/icons/components/UiSqlTrigger.cjs.map +1 -0
- package/dist/icons/components/UiSqlTrigger.d.ts +9 -0
- package/dist/icons/components/UiSqlTrigger.d.ts.map +1 -0
- package/dist/icons/components/UiSqlTrigger.js +10 -0
- package/dist/icons/components/UiSqlTrigger.js.map +1 -0
- package/dist/icons/components/UiSqlView.cjs +15 -0
- package/dist/icons/components/UiSqlView.cjs.map +1 -0
- package/dist/icons/components/UiSqlView.d.ts +9 -0
- package/dist/icons/components/UiSqlView.d.ts.map +1 -0
- package/dist/icons/components/UiSqlView.js +15 -0
- package/dist/icons/components/UiSqlView.js.map +1 -0
- package/dist/icons/components/UiSquare.cjs +15 -0
- package/dist/icons/components/UiSquare.cjs.map +1 -0
- package/dist/icons/components/UiSquare.d.ts +15 -0
- package/dist/icons/components/UiSquare.d.ts.map +1 -0
- package/dist/icons/components/UiSquare.js +15 -0
- package/dist/icons/components/UiSquare.js.map +1 -0
- package/dist/icons/components/UiStackFrameDot.cjs +10 -0
- package/dist/icons/components/UiStackFrameDot.cjs.map +1 -0
- package/dist/icons/components/UiStackFrameDot.d.ts +9 -0
- package/dist/icons/components/UiStackFrameDot.d.ts.map +1 -0
- package/dist/icons/components/UiStackFrameDot.js +10 -0
- package/dist/icons/components/UiStackFrameDot.js.map +1 -0
- package/dist/icons/components/UiStar.cjs +15 -0
- package/dist/icons/components/UiStar.cjs.map +1 -0
- package/dist/icons/components/UiStar.d.ts +15 -0
- package/dist/icons/components/UiStar.d.ts.map +1 -0
- package/dist/icons/components/UiStar.js +15 -0
- package/dist/icons/components/UiStar.js.map +1 -0
- package/dist/icons/components/UiStop.cjs +10 -0
- package/dist/icons/components/UiStop.cjs.map +1 -0
- package/dist/icons/components/UiStop.d.ts +9 -0
- package/dist/icons/components/UiStop.d.ts.map +1 -0
- package/dist/icons/components/UiStop.js +10 -0
- package/dist/icons/components/UiStop.js.map +1 -0
- package/dist/icons/components/UiString.cjs +13 -0
- package/dist/icons/components/UiString.cjs.map +1 -0
- package/dist/icons/components/UiString.d.ts +9 -0
- package/dist/icons/components/UiString.d.ts.map +1 -0
- package/dist/icons/components/UiString.js +13 -0
- package/dist/icons/components/UiString.js.map +1 -0
- package/dist/icons/components/UiStruct.cjs +13 -0
- package/dist/icons/components/UiStruct.cjs.map +1 -0
- package/dist/icons/components/UiStruct.d.ts +9 -0
- package/dist/icons/components/UiStruct.d.ts.map +1 -0
- package/dist/icons/components/UiStruct.js +13 -0
- package/dist/icons/components/UiStruct.js.map +1 -0
- package/dist/icons/components/UiSun.cjs +15 -0
- package/dist/icons/components/UiSun.cjs.map +1 -0
- package/dist/icons/components/UiSun.d.ts +15 -0
- package/dist/icons/components/UiSun.d.ts.map +1 -0
- package/dist/icons/components/UiSun.js +15 -0
- package/dist/icons/components/UiSun.js.map +1 -0
- package/dist/icons/components/UiSwap.cjs +15 -0
- package/dist/icons/components/UiSwap.cjs.map +1 -0
- package/dist/icons/components/UiSwap.d.ts +9 -0
- package/dist/icons/components/UiSwap.d.ts.map +1 -0
- package/dist/icons/components/UiSwap.js +15 -0
- package/dist/icons/components/UiSwap.js.map +1 -0
- package/dist/icons/components/UiSync.cjs +10 -0
- package/dist/icons/components/UiSync.cjs.map +1 -0
- package/dist/icons/components/UiSync.d.ts +9 -0
- package/dist/icons/components/UiSync.d.ts.map +1 -0
- package/dist/icons/components/UiSync.js +10 -0
- package/dist/icons/components/UiSync.js.map +1 -0
- package/dist/icons/components/UiTable.cjs +15 -0
- package/dist/icons/components/UiTable.cjs.map +1 -0
- package/dist/icons/components/UiTable.d.ts +15 -0
- package/dist/icons/components/UiTable.d.ts.map +1 -0
- package/dist/icons/components/UiTable.js +15 -0
- package/dist/icons/components/UiTable.js.map +1 -0
- package/dist/icons/components/UiTableProperties.cjs +15 -0
- package/dist/icons/components/UiTableProperties.cjs.map +1 -0
- package/dist/icons/components/UiTableProperties.d.ts +15 -0
- package/dist/icons/components/UiTableProperties.d.ts.map +1 -0
- package/dist/icons/components/UiTableProperties.js +15 -0
- package/dist/icons/components/UiTableProperties.js.map +1 -0
- package/dist/icons/components/UiTag.cjs +15 -0
- package/dist/icons/components/UiTag.cjs.map +1 -0
- package/dist/icons/components/UiTag.d.ts +15 -0
- package/dist/icons/components/UiTag.d.ts.map +1 -0
- package/dist/icons/components/UiTag.js +15 -0
- package/dist/icons/components/UiTag.js.map +1 -0
- package/dist/icons/components/UiTerminal.cjs +15 -0
- package/dist/icons/components/UiTerminal.cjs.map +1 -0
- package/dist/icons/components/UiTerminal.d.ts +15 -0
- package/dist/icons/components/UiTerminal.d.ts.map +1 -0
- package/dist/icons/components/UiTerminal.js +15 -0
- package/dist/icons/components/UiTerminal.js.map +1 -0
- package/dist/icons/components/UiTest.cjs +13 -0
- package/dist/icons/components/UiTest.cjs.map +1 -0
- package/dist/icons/components/UiTest.d.ts +9 -0
- package/dist/icons/components/UiTest.d.ts.map +1 -0
- package/dist/icons/components/UiTest.js +13 -0
- package/dist/icons/components/UiTest.js.map +1 -0
- package/dist/icons/components/UiThumbsDown.cjs +15 -0
- package/dist/icons/components/UiThumbsDown.cjs.map +1 -0
- package/dist/icons/components/UiThumbsDown.d.ts +15 -0
- package/dist/icons/components/UiThumbsDown.d.ts.map +1 -0
- package/dist/icons/components/UiThumbsDown.js +15 -0
- package/dist/icons/components/UiThumbsDown.js.map +1 -0
- package/dist/icons/components/UiThumbsUp.cjs +15 -0
- package/dist/icons/components/UiThumbsUp.cjs.map +1 -0
- package/dist/icons/components/UiThumbsUp.d.ts +15 -0
- package/dist/icons/components/UiThumbsUp.d.ts.map +1 -0
- package/dist/icons/components/UiThumbsUp.js +15 -0
- package/dist/icons/components/UiThumbsUp.js.map +1 -0
- package/dist/icons/components/UiToggleOff.cjs +15 -0
- package/dist/icons/components/UiToggleOff.cjs.map +1 -0
- package/dist/icons/components/UiToggleOff.d.ts +15 -0
- package/dist/icons/components/UiToggleOff.d.ts.map +1 -0
- package/dist/icons/components/UiToggleOff.js +15 -0
- package/dist/icons/components/UiToggleOff.js.map +1 -0
- package/dist/icons/components/UiToggleOn.cjs +15 -0
- package/dist/icons/components/UiToggleOn.cjs.map +1 -0
- package/dist/icons/components/UiToggleOn.d.ts +15 -0
- package/dist/icons/components/UiToggleOn.d.ts.map +1 -0
- package/dist/icons/components/UiToggleOn.js +15 -0
- package/dist/icons/components/UiToggleOn.js.map +1 -0
- package/dist/icons/components/UiTrait.cjs +13 -0
- package/dist/icons/components/UiTrait.cjs.map +1 -0
- package/dist/icons/components/UiTrait.d.ts +9 -0
- package/dist/icons/components/UiTrait.d.ts.map +1 -0
- package/dist/icons/components/UiTrait.js +13 -0
- package/dist/icons/components/UiTrait.js.map +1 -0
- package/dist/icons/components/UiTrash.cjs +15 -0
- package/dist/icons/components/UiTrash.cjs.map +1 -0
- package/dist/icons/components/UiTrash.d.ts +15 -0
- package/dist/icons/components/UiTrash.d.ts.map +1 -0
- package/dist/icons/components/UiTrash.js +15 -0
- package/dist/icons/components/UiTrash.js.map +1 -0
- package/dist/icons/components/UiTrendDown.cjs +15 -0
- package/dist/icons/components/UiTrendDown.cjs.map +1 -0
- package/dist/icons/components/UiTrendDown.d.ts +15 -0
- package/dist/icons/components/UiTrendDown.d.ts.map +1 -0
- package/dist/icons/components/UiTrendDown.js +15 -0
- package/dist/icons/components/UiTrendDown.js.map +1 -0
- package/dist/icons/components/UiTrendUp.cjs +15 -0
- package/dist/icons/components/UiTrendUp.cjs.map +1 -0
- package/dist/icons/components/UiTrendUp.d.ts +15 -0
- package/dist/icons/components/UiTrendUp.d.ts.map +1 -0
- package/dist/icons/components/UiTrendUp.js +15 -0
- package/dist/icons/components/UiTrendUp.js.map +1 -0
- package/dist/icons/components/UiTypeAlias.cjs +15 -0
- package/dist/icons/components/UiTypeAlias.cjs.map +1 -0
- package/dist/icons/components/UiTypeAlias.d.ts +9 -0
- package/dist/icons/components/UiTypeAlias.d.ts.map +1 -0
- package/dist/icons/components/UiTypeAlias.js +15 -0
- package/dist/icons/components/UiTypeAlias.js.map +1 -0
- package/dist/icons/components/UiTypeParameter.cjs +14 -0
- package/dist/icons/components/UiTypeParameter.cjs.map +1 -0
- package/dist/icons/components/UiTypeParameter.d.ts +9 -0
- package/dist/icons/components/UiTypeParameter.d.ts.map +1 -0
- package/dist/icons/components/UiTypeParameter.js +14 -0
- package/dist/icons/components/UiTypeParameter.js.map +1 -0
- package/dist/icons/components/UiUnknown.cjs +13 -0
- package/dist/icons/components/UiUnknown.cjs.map +1 -0
- package/dist/icons/components/UiUnknown.d.ts +9 -0
- package/dist/icons/components/UiUnknown.d.ts.map +1 -0
- package/dist/icons/components/UiUnknown.js +13 -0
- package/dist/icons/components/UiUnknown.js.map +1 -0
- package/dist/icons/components/UiUpload.cjs +15 -0
- package/dist/icons/components/UiUpload.cjs.map +1 -0
- package/dist/icons/components/UiUpload.d.ts +15 -0
- package/dist/icons/components/UiUpload.d.ts.map +1 -0
- package/dist/icons/components/UiUpload.js +15 -0
- package/dist/icons/components/UiUpload.js.map +1 -0
- package/dist/icons/components/UiUser.cjs +81 -0
- package/dist/icons/components/UiUser.cjs.map +1 -0
- package/dist/icons/components/UiUser.d.ts +51 -0
- package/dist/icons/components/UiUser.d.ts.map +1 -0
- package/dist/icons/components/UiUser.js +81 -0
- package/dist/icons/components/UiUser.js.map +1 -0
- package/dist/icons/components/UiUserCircle.cjs +81 -0
- package/dist/icons/components/UiUserCircle.cjs.map +1 -0
- package/dist/icons/components/UiUserCircle.d.ts +51 -0
- package/dist/icons/components/UiUserCircle.d.ts.map +1 -0
- package/dist/icons/components/UiUserCircle.js +81 -0
- package/dist/icons/components/UiUserCircle.js.map +1 -0
- package/dist/icons/components/UiUserCog.cjs +14 -0
- package/dist/icons/components/UiUserCog.cjs.map +1 -0
- package/dist/icons/components/UiUserCog.d.ts +9 -0
- package/dist/icons/components/UiUserCog.d.ts.map +1 -0
- package/dist/icons/components/UiUserCog.js +14 -0
- package/dist/icons/components/UiUserCog.js.map +1 -0
- package/dist/icons/components/UiUsersThree.cjs +103 -0
- package/dist/icons/components/UiUsersThree.cjs.map +1 -0
- package/dist/icons/components/UiUsersThree.d.ts +63 -0
- package/dist/icons/components/UiUsersThree.d.ts.map +1 -0
- package/dist/icons/components/UiUsersThree.js +103 -0
- package/dist/icons/components/UiUsersThree.js.map +1 -0
- package/dist/icons/components/UiVariable.cjs +13 -0
- package/dist/icons/components/UiVariable.cjs.map +1 -0
- package/dist/icons/components/UiVariable.d.ts +9 -0
- package/dist/icons/components/UiVariable.d.ts.map +1 -0
- package/dist/icons/components/UiVariable.js +13 -0
- package/dist/icons/components/UiVariable.js.map +1 -0
- package/dist/icons/components/UiVideo.cjs +15 -0
- package/dist/icons/components/UiVideo.cjs.map +1 -0
- package/dist/icons/components/UiVideo.d.ts +15 -0
- package/dist/icons/components/UiVideo.d.ts.map +1 -0
- package/dist/icons/components/UiVideo.js +15 -0
- package/dist/icons/components/UiVideo.js.map +1 -0
- package/dist/icons/components/UiWarningCircle.cjs +23 -0
- package/dist/icons/components/UiWarningCircle.cjs.map +1 -0
- package/dist/icons/components/UiWarningCircle.d.ts +17 -0
- package/dist/icons/components/UiWarningCircle.d.ts.map +1 -0
- package/dist/icons/components/UiWarningCircle.js +23 -0
- package/dist/icons/components/UiWarningCircle.js.map +1 -0
- package/dist/icons/components/UiWarningTriangle.cjs +23 -0
- package/dist/icons/components/UiWarningTriangle.cjs.map +1 -0
- package/dist/icons/components/UiWarningTriangle.d.ts +17 -0
- package/dist/icons/components/UiWarningTriangle.d.ts.map +1 -0
- package/dist/icons/components/UiWarningTriangle.js +23 -0
- package/dist/icons/components/UiWarningTriangle.js.map +1 -0
- package/dist/icons/components/UiWatch.cjs +15 -0
- package/dist/icons/components/UiWatch.cjs.map +1 -0
- package/dist/icons/components/UiWatch.d.ts +15 -0
- package/dist/icons/components/UiWatch.d.ts.map +1 -0
- package/dist/icons/components/UiWatch.js +15 -0
- package/dist/icons/components/UiWatch.js.map +1 -0
- package/dist/icons/components/UiWorkflow.cjs +10 -0
- package/dist/icons/components/UiWorkflow.cjs.map +1 -0
- package/dist/icons/components/UiWorkflow.d.ts +9 -0
- package/dist/icons/components/UiWorkflow.d.ts.map +1 -0
- package/dist/icons/components/UiWorkflow.js +10 -0
- package/dist/icons/components/UiWorkflow.js.map +1 -0
- package/dist/icons/components/UiWrench.cjs +15 -0
- package/dist/icons/components/UiWrench.cjs.map +1 -0
- package/dist/icons/components/UiWrench.d.ts +15 -0
- package/dist/icons/components/UiWrench.d.ts.map +1 -0
- package/dist/icons/components/UiWrench.js +15 -0
- package/dist/icons/components/UiWrench.js.map +1 -0
- package/dist/icons/components/UiZap.cjs +15 -0
- package/dist/icons/components/UiZap.cjs.map +1 -0
- package/dist/icons/components/UiZap.d.ts +15 -0
- package/dist/icons/components/UiZap.d.ts.map +1 -0
- package/dist/icons/components/UiZap.js +15 -0
- package/dist/icons/components/UiZap.js.map +1 -0
- package/dist/icons/components/UiZoomIn.cjs +15 -0
- package/dist/icons/components/UiZoomIn.cjs.map +1 -0
- package/dist/icons/components/UiZoomIn.d.ts +15 -0
- package/dist/icons/components/UiZoomIn.d.ts.map +1 -0
- package/dist/icons/components/UiZoomIn.js +15 -0
- package/dist/icons/components/UiZoomIn.js.map +1 -0
- package/dist/icons/components/UiZoomOut.cjs +15 -0
- package/dist/icons/components/UiZoomOut.cjs.map +1 -0
- package/dist/icons/components/UiZoomOut.d.ts +15 -0
- package/dist/icons/components/UiZoomOut.d.ts.map +1 -0
- package/dist/icons/components/UiZoomOut.js +15 -0
- package/dist/icons/components/UiZoomOut.js.map +1 -0
- package/dist/icons/index.d.ts +493 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/types.d.ts +21 -0
- package/dist/icons/types.d.ts.map +1 -0
- package/dist/icons.cjs +754 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.d.ts +2 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +754 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +966 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +775 -2
- package/dist/index.js.map +1 -1
- package/dist/layout/Section.cjs +81 -0
- package/dist/layout/Section.cjs.map +1 -0
- package/dist/layout/Section.d.ts +18 -2
- package/dist/layout/Section.d.ts.map +1 -1
- package/dist/layout/Section.js +11 -3
- package/dist/layout/Section.js.map +1 -1
- package/dist/layout/SplitPane.cjs +72 -0
- package/dist/layout/SplitPane.cjs.map +1 -0
- package/dist/layout/SplitPane.d.ts +8 -0
- package/dist/layout/SplitPane.d.ts.map +1 -1
- package/dist/layout/SplitPane.js.map +1 -1
- package/dist/lib/palette.cjs +35 -0
- package/dist/lib/palette.cjs.map +1 -0
- package/dist/lib/size.cjs +14 -0
- package/dist/lib/size.cjs.map +1 -0
- package/dist/lib/utils.cjs +9 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/overlay/DropdownMenu.cjs +98 -0
- package/dist/overlay/DropdownMenu.cjs.map +1 -0
- package/dist/overlay/DropdownMenu.d.ts +43 -0
- package/dist/overlay/DropdownMenu.d.ts.map +1 -0
- package/dist/overlay/DropdownMenu.js +98 -0
- package/dist/overlay/DropdownMenu.js.map +1 -0
- package/dist/overlay/HoverCard.cjs +170 -0
- package/dist/overlay/HoverCard.cjs.map +1 -0
- package/dist/overlay/HoverCard.d.ts +7 -0
- package/dist/overlay/HoverCard.d.ts.map +1 -1
- package/dist/overlay/HoverCard.js.map +1 -1
- package/dist/overlay/Modal.cjs +108 -0
- package/dist/overlay/Modal.cjs.map +1 -0
- package/dist/overlay/Modal.d.ts +14 -1
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +22 -5
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/rpc/AcceptPicker.cjs +128 -0
- package/dist/rpc/AcceptPicker.cjs.map +1 -0
- package/dist/rpc/AcceptPicker.d.ts.map +1 -1
- package/dist/rpc/AcceptPicker.js +4 -2
- package/dist/rpc/AcceptPicker.js.map +1 -1
- package/dist/rpc/CommandForm.cjs +357 -0
- package/dist/rpc/CommandForm.cjs.map +1 -0
- package/dist/rpc/CommandForm.d.ts.map +1 -1
- package/dist/rpc/CommandForm.js +3 -2
- package/dist/rpc/CommandForm.js.map +1 -1
- package/dist/rpc/CommandOutput.cjs +203 -0
- package/dist/rpc/CommandOutput.cjs.map +1 -0
- package/dist/rpc/CommandOutput.d.ts +5 -1
- package/dist/rpc/CommandOutput.d.ts.map +1 -1
- package/dist/rpc/CommandOutput.js +12 -4
- package/dist/rpc/CommandOutput.js.map +1 -1
- package/dist/rpc/EndpointList.cjs +56 -0
- package/dist/rpc/EndpointList.cjs.map +1 -0
- package/dist/rpc/EntityExplorerApp.cjs +358 -0
- package/dist/rpc/EntityExplorerApp.cjs.map +1 -0
- package/dist/rpc/EntityExplorerApp.d.ts +3 -5
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.js +99 -23
- package/dist/rpc/EntityExplorerApp.js.map +1 -1
- package/dist/rpc/ExecutionResult.cjs +85 -0
- package/dist/rpc/ExecutionResult.cjs.map +1 -0
- package/dist/rpc/ExecutionResult.d.ts +10 -1
- package/dist/rpc/ExecutionResult.d.ts.map +1 -1
- package/dist/rpc/ExecutionResult.js +36 -2
- package/dist/rpc/ExecutionResult.js.map +1 -1
- package/dist/rpc/FilterForm.cjs +375 -0
- package/dist/rpc/FilterForm.cjs.map +1 -0
- package/dist/rpc/FilterForm.d.ts.map +1 -1
- package/dist/rpc/FilterForm.js +20 -37
- package/dist/rpc/FilterForm.js.map +1 -1
- package/dist/rpc/InlineError.cjs +49 -0
- package/dist/rpc/InlineError.cjs.map +1 -0
- package/dist/rpc/InlineError.d.ts.map +1 -1
- package/dist/rpc/InlineError.js +2 -7
- package/dist/rpc/InlineError.js.map +1 -1
- package/dist/rpc/OperationActionDialog.cjs +106 -0
- package/dist/rpc/OperationActionDialog.cjs.map +1 -0
- package/dist/rpc/OperationActionDialog.d.ts.map +1 -1
- package/dist/rpc/OperationActionDialog.js +2 -1
- package/dist/rpc/OperationActionDialog.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +342 -0
- package/dist/rpc/OperationCatalog.cjs.map +1 -0
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +32 -29
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationCommandPage.cjs +476 -0
- package/dist/rpc/OperationCommandPage.cjs.map +1 -0
- package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
- package/dist/rpc/OperationCommandPage.js +119 -127
- package/dist/rpc/OperationCommandPage.js.map +1 -1
- package/dist/rpc/OperationEntityPage.cjs +221 -0
- package/dist/rpc/OperationEntityPage.cjs.map +1 -0
- package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
- package/dist/rpc/OperationEntityPage.js +4 -1
- package/dist/rpc/OperationEntityPage.js.map +1 -1
- package/dist/rpc/classify.cjs +76 -0
- package/dist/rpc/classify.cjs.map +1 -0
- package/dist/rpc/clickyMetadata.cjs +71 -0
- package/dist/rpc/clickyMetadata.cjs.map +1 -0
- package/dist/rpc/formMetadata.cjs +308 -0
- package/dist/rpc/formMetadata.cjs.map +1 -0
- package/dist/rpc/formMetadata.d.ts +11 -1
- package/dist/rpc/formMetadata.d.ts.map +1 -1
- package/dist/rpc/formMetadata.js +61 -3
- package/dist/rpc/formMetadata.js.map +1 -1
- package/dist/rpc/types.cjs +8 -0
- package/dist/rpc/types.cjs.map +1 -0
- package/dist/rpc/types.d.ts +14 -0
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/rpc/useOperations.cjs +31 -0
- package/dist/rpc/useOperations.cjs.map +1 -0
- package/dist/rpc.cjs +39 -0
- package/dist/rpc.cjs.map +1 -0
- package/dist/rpc.d.ts +1 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -0
- package/dist/rpc.js.map +1 -1
- package/dist/styles.cjs +3 -0
- package/dist/styles.cjs.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +65 -62
- package/dist/tailwind-preset.cjs.map +1 -1
- package/dist/utils.cjs +12 -0
- package/dist/utils.cjs.map +1 -0
- package/package.json +41 -27
- package/dist/api-explorer.d.ts +0 -5
- package/dist/api-explorer.d.ts.map +0 -1
- package/dist/api-explorer.js +0 -25
- package/dist/api-explorer.js.map +0 -1
- package/dist/rpc/ApiExplorer.d.ts +0 -11
- package/dist/rpc/ApiExplorer.d.ts.map +0 -1
- package/dist/rpc/ApiExplorer.js +0 -37
- package/dist/rpc/ApiExplorer.js.map +0 -1
- package/dist/tailwind-preset.d.cts +0 -6
- package/dist/tailwind-preset.d.cts.map +0 -1
package/dist/data/Clicky.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clicky.js","sources":["../../src/data/Clicky.tsx"],"sourcesContent":["import { QueryClient, QueryClientProvider, useQuery } from \"@tanstack/react-query\";\nimport {\n createContext,\n Fragment,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentProps,\n type CSSProperties,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { FilterForm } from \"../rpc/FilterForm\";\nimport { parseJsonBody } from \"../rpc/classify\";\nimport {\n packParameterValues,\n pruneParameterValues,\n type ParameterValues,\n} from \"../rpc/formMetadata\";\nimport {\n type ExecutionResponse,\n isPositionalParam,\n type OpenAPIParameter,\n type ResolvedOperation,\n} from \"../rpc/types\";\nimport { type OperationsApiClient, useOperations } from \"../rpc/useOperations\";\nimport { cn } from \"../lib/utils\";\nimport { DataTable, type DataTableColumn, type DataTableRowDetailContext } from \"./DataTable\";\nimport { Tree } from \"./Tree\";\nimport { Icon } from \"./Icon\";\nimport { JsonView } from \"./JsonView\";\nimport { highlightCode } from \"./code-highlight\";\nimport { StackTrace } from \"./diagnostics/RenderedStackTrace\";\nimport type { ParsedStackFrame } from \"./diagnostics/stacktrace-parse\";\nimport { Badge, type BadgeShape } from \"./Badge\";\nimport { HoverCard } from \"../overlay/HoverCard\";\nimport { Modal } from \"../overlay/Modal\";\nimport {\n TagActionsProvider,\n TagList,\n normalizeTags,\n type NormalizedTag,\n type TagsValue,\n} from \"./cells/TagList\";\n\nexport type ClickyStyle = {\n className?: string;\n color?: string;\n backgroundColor?: string;\n bold?: boolean;\n faint?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n textTransform?: string;\n maxWidth?: number;\n maxLines?: number;\n truncateMode?: \"suffix\" | \"prefix\" | \"headtail\";\n monospace?: boolean;\n};\n\nexport type ClickyField = {\n name: string;\n label?: string;\n value: ClickyNode;\n};\n\nexport type ClickyColumn = {\n name: string;\n label?: string;\n header?: ClickyNode;\n align?: \"left\" | \"right\" | \"center\";\n sortable?: boolean;\n filterable?: boolean;\n grow?: boolean;\n shrink?: boolean;\n kind?: \"timestamp\" | \"tags\" | \"status\";\n};\n\nexport type ClickyRow = {\n cells: Record<string, ClickyNode>;\n detail?: ClickyNode;\n};\n\nexport type ClickyTreeItem = {\n id: string;\n label: ClickyNode;\n children?: ClickyTreeItem[];\n};\n\nexport type ClickyNode = {\n kind:\n | \"text\"\n | \"link\"\n | \"link-command\"\n | \"icon\"\n | \"list\"\n | \"map\"\n | \"table\"\n | \"tree\"\n | \"code\"\n | \"collapsed\"\n | \"stacktrace\"\n | \"button\"\n | \"button-group\"\n | \"html\"\n | \"comment\"\n | \"badge\";\n plain?: string;\n style?: ClickyStyle;\n text?: string;\n children?: ClickyNode[];\n tooltip?: ClickyNode;\n html?: string;\n inline?: boolean;\n ordered?: boolean;\n unstyled?: boolean;\n bullet?: ClickyNode;\n items?: ClickyNode[];\n fields?: ClickyField[];\n columns?: ClickyColumn[];\n rows?: ClickyRow[];\n autoFilter?: boolean;\n roots?: ClickyTreeItem[];\n label?: ClickyNode;\n content?: ClickyNode;\n href?: string;\n target?: ClickyLinkTarget;\n command?: string;\n args?: string[];\n flags?: Record<string, string>;\n autoRun?: boolean;\n id?: string;\n payload?: string;\n variant?: string;\n iconify?: string;\n unicode?: string;\n language?: string;\n source?: string;\n highlightedHtml?: string;\n exceptionClass?: string;\n message?: string;\n causedBy?: string[];\n frames?: ParsedStackFrame[];\n // LabelBadge fields, set when kind === \"badge\".\n badgeLabel?: string;\n badgeValue?: string;\n badgeColor?: string;\n badgeText?: string;\n badgeShape?: string;\n badgeIcon?: string;\n};\n\nexport type ClickyDocument = {\n version: 1;\n node: ClickyNode;\n};\n\nexport type ClickyLinkTarget =\n | \"Dialog\"\n | \"Hover\"\n | \"Expand\"\n | \"_clicky\"\n | \"_self\"\n | \"_window\"\n | \"_tab\";\n\nexport type ClickyCommandRequest = {\n command: string;\n args?: string[];\n flags?: Record<string, string>;\n target?: ClickyLinkTarget;\n autoRun?: boolean;\n};\n\nexport type ClickyResolvedCommand = {\n request: ClickyCommandRequest;\n operation: ResolvedOperation | undefined;\n};\n\nexport type ClickyCommandRuntime = {\n client: OperationsApiClient;\n resolveCommand?: (\n request: ClickyCommandRequest,\n operations: ResolvedOperation[],\n ) => ResolvedOperation | undefined;\n hrefForCommand?: (resolved: ClickyResolvedCommand) => string | undefined;\n onNavigate?: (resolved: ClickyResolvedCommand) => void;\n};\n\nexport type ClickyTableRowClick = (row: ClickyRow) => void;\nexport type ClickyTableRowHref = (row: ClickyRow) => string | undefined;\nexport type ClickyTableRowPredicate = (row: ClickyRow) => boolean;\n\nconst CLICKY_PRIMARY_VIEW_FORMATS = [\"clicky\", \"json\"] as const;\nconst CLICKY_OVERFLOW_VIEW_FORMATS = [\n \"pdf\",\n \"html\",\n \"markdown\",\n \"yaml\",\n \"csv\",\n \"pretty\",\n \"excel\",\n \"slack\",\n] as const;\nconst CLICKY_DOWNLOAD_FORMATS = [\"json\", \"clicky\", ...CLICKY_OVERFLOW_VIEW_FORMATS] as const;\n\nexport type ClickyPrimaryViewFormat = (typeof CLICKY_PRIMARY_VIEW_FORMATS)[number];\nexport type ClickyOverflowViewFormat = (typeof CLICKY_OVERFLOW_VIEW_FORMATS)[number];\nexport type ClickyRemoteFormat = ClickyPrimaryViewFormat | ClickyOverflowViewFormat;\n\nexport type ClickyViewOptions = Partial<Record<ClickyRemoteFormat, boolean>>;\n\nexport type ClickyViewConfig = ClickyViewOptions | ClickyRemoteFormat[];\n\nexport type ClickyDownloadOptions = {\n all?: boolean;\n label?: string;\n};\n\nexport type ClickyProps = {\n data?: ClickyDocument | ClickyNode | string;\n url?: string;\n view?: ClickyViewConfig;\n download?: ClickyDownloadOptions;\n commandRuntime?: ClickyCommandRuntime;\n onTableRowClick?: ClickyTableRowClick;\n getTableRowHref?: ClickyTableRowHref;\n isTableRowClickable?: ClickyTableRowPredicate;\n className?: string;\n};\n\ntype ParsedClicky =\n | { ok: true; document: ClickyDocument }\n | { ok: false; message: string; raw: string };\n\ntype ClickyRemoteResponse =\n | { kind: \"text\"; text: string; contentType: string }\n | { kind: \"blob\"; blob: Blob; contentType: string };\n\ntype JsonTreeNode = {\n id: string;\n key: string;\n value: unknown;\n preview: string;\n children?: JsonTreeNode[];\n};\n\ntype ClickyRuntimeContextValue = {\n commandRuntime?: ClickyCommandRuntime | undefined;\n onTableRowClick?: ClickyTableRowClick | undefined;\n getTableRowHref?: ClickyTableRowHref | undefined;\n isTableRowClickable?: ClickyTableRowPredicate | undefined;\n operations: ResolvedOperation[];\n operationsLoading: boolean;\n};\n\nconst clickyRuntimeContextDefault: ClickyRuntimeContextValue = {\n operations: [],\n operationsLoading: false,\n};\n\nconst ClickyRuntimeContext = createContext<ClickyRuntimeContextValue>(clickyRuntimeContextDefault);\n\nexport function Clicky(props: ClickyProps) {\n const [queryClient] = useState(\n () =>\n new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 30_000,\n retry: 1,\n },\n },\n }),\n );\n\n const content = (\n <ClickyRuntimeProvider\n {...(props.commandRuntime ? { commandRuntime: props.commandRuntime } : {})}\n {...(props.onTableRowClick ? { onTableRowClick: props.onTableRowClick } : {})}\n {...(props.getTableRowHref ? { getTableRowHref: props.getTableRowHref } : {})}\n {...(props.isTableRowClickable ? { isTableRowClickable: props.isTableRowClickable } : {})}\n >\n {props.url ? (\n <ClickyRemoteRenderer {...props} url={props.url} />\n ) : (\n <ClickyContent\n data={props.data}\n {...(props.className ? { className: props.className } : {})}\n />\n )}\n </ClickyRuntimeProvider>\n );\n\n if (props.url || props.commandRuntime) {\n return <QueryClientProvider client={queryClient}>{content}</QueryClientProvider>;\n }\n\n return content;\n}\n\nfunction ClickyRuntimeProvider({\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n children,\n}: {\n commandRuntime?: ClickyCommandRuntime | undefined;\n onTableRowClick?: ClickyTableRowClick | undefined;\n getTableRowHref?: ClickyTableRowHref | undefined;\n isTableRowClickable?: ClickyTableRowPredicate | undefined;\n children: ReactNode;\n}) {\n if (!commandRuntime) {\n return (\n <ClickyRuntimeContext.Provider\n value={\n onTableRowClick || getTableRowHref || isTableRowClickable\n ? {\n ...clickyRuntimeContextDefault,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n }\n : clickyRuntimeContextDefault\n }\n >\n {children}\n </ClickyRuntimeContext.Provider>\n );\n }\n\n return (\n <ClickyCommandRuntimeProvider\n commandRuntime={commandRuntime}\n {...(onTableRowClick ? { onTableRowClick } : {})}\n {...(getTableRowHref ? { getTableRowHref } : {})}\n {...(isTableRowClickable ? { isTableRowClickable } : {})}\n >\n {children}\n </ClickyCommandRuntimeProvider>\n );\n}\n\nfunction ClickyCommandRuntimeProvider({\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n children,\n}: {\n commandRuntime: ClickyCommandRuntime;\n onTableRowClick?: ClickyTableRowClick | undefined;\n getTableRowHref?: ClickyTableRowHref | undefined;\n isTableRowClickable?: ClickyTableRowPredicate | undefined;\n children: ReactNode;\n}) {\n const { operations, isLoading } = useOperations(commandRuntime.client);\n const value = useMemo(\n () => ({\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n operations,\n operationsLoading: isLoading,\n }),\n [commandRuntime, getTableRowHref, isLoading, isTableRowClickable, onTableRowClick, operations],\n );\n\n return <ClickyRuntimeContext.Provider value={value}>{children}</ClickyRuntimeContext.Provider>;\n}\n\nfunction ClickyContent({\n data,\n className,\n}: {\n data: ClickyProps[\"data\"];\n className?: string | undefined;\n}) {\n if (data === undefined) {\n return (\n <ClickyNotice\n className={className}\n title=\"No Clicky data\"\n message=\"Provide either a local data payload or a URL.\"\n />\n );\n }\n\n const parsed = parseClickyData(data);\n\n if (!parsed.ok) {\n return <ClickyInvalidPayload parsed={parsed} className={className} />;\n }\n\n return (\n <div className={className}>\n <ClickyNodeRenderer node={parsed.document.node} />\n </div>\n );\n}\n\nfunction ClickyRemoteRenderer({\n data,\n url,\n view,\n download,\n className,\n}: ClickyProps & { url: string }) {\n const availableViews = useMemo(() => getAvailableViews({ data, url, view }), [data, url, view]);\n const primaryViews = useMemo(() => availableViews.filter(isPrimaryViewFormat), [availableViews]);\n const overflowViews = useMemo(\n () => availableViews.filter(isOverflowViewFormat),\n [availableViews],\n );\n const downloadFormats = useMemo(() => getDownloadFormats({ url, download }), [download, url]);\n const [activeView, setActiveView] = useState<ClickyRemoteFormat>(\n () => availableViews[0] ?? \"clicky\",\n );\n\n useEffect(() => {\n if (!availableViews.includes(activeView)) {\n setActiveView(availableViews[0] ?? \"clicky\");\n }\n }, [activeView, availableViews]);\n\n const formattedUrl = buildFormatUrl(url, activeView);\n const activeQuery = useQuery({\n queryKey: [\"clicky\", activeView, formattedUrl],\n enabled: shouldFetchRemoteView(activeView),\n queryFn: async () => fetchRemoteFormat(formattedUrl, activeView),\n });\n const effectiveClickyData =\n activeView === \"clicky\" && activeQuery.data?.kind === \"text\" ? activeQuery.data.text : data;\n const fallbackJsonData = useMemo(() => parseJsonValue(data), [data]);\n const effectiveJsonData =\n activeView === \"json\" && activeQuery.data?.kind === \"text\"\n ? parseJsonValue(activeQuery.data.text)\n : fallbackJsonData;\n const activeOverflowView = isOverflowViewFormat(activeView) ? activeView : null;\n const canDownload = downloadFormats.length > 0;\n const loadingMessage = `Fetching ${formattedUrl}`;\n\n return (\n <div className={cn(\"space-y-density-3\", className)}>\n <div className=\"flex flex-wrap items-center gap-2 rounded-md border border-border bg-muted/20 px-density-3 py-density-2\">\n {primaryViews.length > 1 && (\n <div role=\"radiogroup\" aria-label=\"Clicky view mode\" className=\"flex flex-wrap gap-1\">\n {primaryViews.map((mode) => (\n <button\n key={mode}\n type=\"button\"\n role=\"radio\"\n aria-checked={activeView === mode}\n onClick={() => setActiveView(mode)}\n className={cn(\n \"rounded-md border px-2.5 py-1 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n activeView === mode\n ? \"border-foreground/20 bg-accent text-foreground\"\n : \"border-transparent text-muted-foreground hover:border-foreground/20 hover:text-foreground\",\n )}\n >\n {formatViewLabel(mode)}\n </button>\n ))}\n </div>\n )}\n\n {overflowViews.length > 0 && (\n <ClickyViewMenu\n activeFormat={activeOverflowView}\n formats={overflowViews}\n onSelect={setActiveView}\n />\n )}\n\n <div className=\"ml-auto flex items-center gap-2\">\n {shouldFetchRemoteView(activeView) && activeQuery.isFetching && (\n <span className=\"text-xs text-muted-foreground\">Refreshing…</span>\n )}\n\n {canDownload && (\n <ClickyDownloadMenu url={url} formats={downloadFormats} label={download?.label} />\n )}\n </div>\n </div>\n\n {activeView === \"pdf\" ? (\n <ClickyPdfPreview src={formattedUrl} />\n ) : activeView === \"html\" ? (\n <ClickyHtmlPreview src={formattedUrl} />\n ) : activeView === \"excel\" ? (\n <ClickyUnsupportedPreview\n title=\"Excel preview\"\n message=\"Excel output is available for download, but not inline preview.\"\n href={formattedUrl}\n />\n ) : activeView === \"clicky\" ? (\n activeQuery.isPending && effectiveClickyData === undefined ? (\n <ClickyNotice title=\"Loading Clicky\" message={loadingMessage} />\n ) : activeQuery.isError && effectiveClickyData === undefined ? (\n <ClickyNotice\n title=\"Clicky request failed\"\n message={\n activeQuery.error instanceof Error ? activeQuery.error.message : \"Request failed\"\n }\n tone=\"destructive\"\n />\n ) : (\n <>\n {activeQuery.isError && data !== undefined && (\n <ClickyNotice\n title=\"Remote refresh failed\"\n message=\"Showing the local fallback payload instead.\"\n tone=\"warning\"\n />\n )}\n <ClickyContent data={effectiveClickyData} />\n </>\n )\n ) : activeView === \"json\" ? (\n activeQuery.isPending && effectiveJsonData === undefined ? (\n <ClickyNotice title=\"Loading JSON\" message={loadingMessage} />\n ) : activeQuery.isError && effectiveJsonData === undefined ? (\n <ClickyNotice\n title=\"JSON request failed\"\n message={\n activeQuery.error instanceof Error ? activeQuery.error.message : \"Request failed\"\n }\n tone=\"destructive\"\n />\n ) : (\n <>\n {activeQuery.isError && fallbackJsonData !== undefined && (\n <ClickyNotice\n title=\"Remote refresh failed\"\n message=\"Showing the local fallback payload instead.\"\n tone=\"warning\"\n />\n )}\n <ClickyJsonTree value={effectiveJsonData} />\n </>\n )\n ) : activeQuery.isPending ? (\n <ClickyNotice title={`Loading ${formatViewLabel(activeView)}`} message={loadingMessage} />\n ) : activeQuery.isError ? (\n <ClickyNotice\n title={`${formatViewLabel(activeView)} request failed`}\n message={\n activeQuery.error instanceof Error ? activeQuery.error.message : \"Request failed\"\n }\n tone=\"destructive\"\n />\n ) : (\n <ClickyRemotePreview format={activeView} response={activeQuery.data} />\n )}\n </div>\n );\n}\n\nfunction ClickyViewMenu({\n activeFormat,\n formats,\n onSelect,\n}: {\n activeFormat: ClickyOverflowViewFormat | null;\n formats: ClickyOverflowViewFormat[];\n onSelect: (format: ClickyRemoteFormat) => void;\n}) {\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n\n useDismissablePopup(open, rootRef, triggerRef, () => setOpen(false));\n\n return (\n <div ref={rootRef} className=\"relative\">\n <button\n ref={triggerRef}\n type=\"button\"\n aria-label=\"Open additional view menu\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n aria-pressed={activeFormat != null}\n className={cn(\n \"inline-flex h-[34px] w-[34px] items-center justify-center rounded-md border border-input bg-background text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n activeFormat && \"border-foreground/20 bg-accent text-foreground\",\n )}\n onClick={() => setOpen((current) => !current)}\n >\n <Icon name=\"codicon:ellipsis\" className=\"text-sm\" />\n </button>\n\n {open && (\n <div\n role=\"menu\"\n className=\"absolute left-0 top-[calc(100%+0.375rem)] z-50 min-w-[18rem] rounded-md border border-border bg-popover p-1.5 text-popover-foreground shadow-lg shadow-black/5\"\n >\n {formats.map((format) => {\n const active = format === activeFormat;\n const meta = getRemoteFormatMeta(format);\n return (\n <button\n key={format}\n type=\"button\"\n role=\"menuitemradio\"\n aria-checked={active}\n className={cn(\n \"flex w-full items-start gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none\",\n active && \"bg-accent/70\",\n )}\n onClick={() => {\n onSelect(format);\n setOpen(false);\n }}\n >\n <Icon\n name={meta.icon}\n className={cn(\n \"mt-0.5 shrink-0 text-base text-muted-foreground\",\n active && \"text-foreground\",\n )}\n />\n <span className=\"min-w-0 flex-1\">\n <span className=\"flex items-center justify-between gap-3\">\n <span className=\"font-medium\">{meta.label}</span>\n {active && (\n <Icon name=\"codicon:check\" className=\"text-xs text-muted-foreground\" />\n )}\n </span>\n <span className=\"mt-0.5 block text-xs text-muted-foreground\">\n {meta.description}\n </span>\n </span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n\nfunction ClickyDownloadMenu({\n url,\n formats,\n label,\n}: {\n url: string;\n formats: ClickyRemoteFormat[];\n label?: string | undefined;\n}) {\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n const primaryFormat: ClickyRemoteFormat = \"json\";\n const primaryMeta = getRemoteFormatMeta(primaryFormat);\n\n useDismissablePopup(open, rootRef, triggerRef, () => setOpen(false));\n\n return (\n <div ref={rootRef} className=\"relative\">\n <div className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n aria-label={\n label ? `Download ${primaryMeta.label} ${label}` : `Download ${primaryMeta.label}`\n }\n className=\"inline-flex items-center gap-2 rounded-md border border-input bg-background px-3 py-1.5 text-xs font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={() => submitDownloadRequest(buildFormatUrl(url, primaryFormat))}\n >\n <Icon name=\"codicon:cloud-download\" className=\"text-sm\" />\n <span>{`Download ${primaryMeta.label}`}</span>\n </button>\n <button\n ref={triggerRef}\n type=\"button\"\n aria-label=\"Open download menu\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n className=\"inline-flex h-[34px] w-[34px] items-center justify-center rounded-md border border-input bg-background text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={() => setOpen((current) => !current)}\n >\n <Icon name={open ? \"codicon:chevron-up\" : \"codicon:chevron-down\"} className=\"text-sm\" />\n </button>\n </div>\n\n {open && (\n <div\n role=\"menu\"\n className=\"absolute right-0 top-[calc(100%+0.375rem)] z-50 min-w-[18rem] rounded-md border border-border bg-popover p-1.5 text-popover-foreground shadow-lg shadow-black/5\"\n >\n {formats.map((format) => {\n const meta = getRemoteFormatMeta(format);\n return (\n <button\n key={format}\n type=\"button\"\n role=\"menuitem\"\n className={cn(\n \"flex w-full items-start gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none\",\n )}\n onClick={() => {\n submitDownloadRequest(buildFormatUrl(url, format));\n setOpen(false);\n }}\n >\n <Icon\n name={meta.icon}\n className=\"mt-0.5 shrink-0 text-base text-muted-foreground\"\n />\n <span className=\"min-w-0 flex-1\">\n <span className=\"font-medium\">{meta.label}</span>\n <span className=\"mt-0.5 block text-xs text-muted-foreground\">\n {meta.description}\n </span>\n </span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n\nfunction useDismissablePopup(\n open: boolean,\n rootRef: RefObject<HTMLElement | null>,\n triggerRef: RefObject<HTMLElement | null>,\n onClose: () => void,\n) {\n useEffect(() => {\n if (!open) return;\n\n const onPointerDown = (event: MouseEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n onClose();\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onClose();\n triggerRef.current?.focus();\n }\n };\n\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [onClose, open, rootRef, triggerRef]);\n}\n\nexport function parseClickyData(data: ClickyProps[\"data\"]): ParsedClicky {\n if (typeof data === \"string\") {\n try {\n return normalizeClickyDocument(JSON.parse(data) as unknown);\n } catch (error) {\n return {\n ok: false,\n message: error instanceof Error ? error.message : \"Failed to parse JSON\",\n raw: data,\n };\n }\n }\n\n return normalizeClickyDocument(data);\n}\n\nfunction fetchRemoteFormat(url: string, format: ClickyRemoteFormat): Promise<ClickyRemoteResponse> {\n return fetch(url, {\n headers: {\n Accept: getRemoteFormatMeta(format).accept,\n },\n }).then(async (response) => {\n if (!response.ok) {\n throw new Error(`Request failed with ${response.status} ${response.statusText}`.trim());\n }\n\n const contentType = response.headers.get(\"Content-Type\") ?? \"\";\n\n if (format === \"excel\") {\n return {\n kind: \"blob\",\n blob: await response.blob(),\n contentType,\n };\n }\n\n return {\n kind: \"text\",\n text: await response.text(),\n contentType,\n };\n });\n}\n\nfunction ClickyInvalidPayload({\n parsed,\n className,\n}: {\n parsed: Extract<ParsedClicky, { ok: false }>;\n className?: string | undefined;\n}) {\n return (\n <div\n className={cn(\n \"rounded-md border border-destructive/30 bg-destructive/5 p-density-3\",\n className,\n )}\n >\n <div className=\"text-sm font-medium text-destructive\">Invalid Clicky payload</div>\n <pre className=\"mt-2 whitespace-pre-wrap break-all text-xs text-muted-foreground\">\n {parsed.message}\n {parsed.raw ? `\\n\\n${parsed.raw}` : \"\"}\n </pre>\n </div>\n );\n}\n\nfunction ClickyNotice({\n title,\n message,\n tone = \"default\",\n className,\n}: {\n title: string;\n message: ReactNode;\n tone?: \"default\" | \"warning\" | \"destructive\";\n className?: string | undefined;\n}) {\n return (\n <div\n className={cn(\n \"rounded-md border p-density-3\",\n tone === \"destructive\" && \"border-destructive/30 bg-destructive/5\",\n tone === \"warning\" && \"border-yellow-500/30 bg-yellow-500/5\",\n tone === \"default\" && \"border-border bg-muted/30\",\n className,\n )}\n >\n <div\n className={cn(\n \"text-sm font-medium\",\n tone === \"destructive\" && \"text-destructive\",\n tone === \"warning\" && \"text-yellow-700 dark:text-yellow-400\",\n )}\n >\n {title}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">{message}</div>\n </div>\n );\n}\n\nfunction ClickyPdfPreview({ src }: { src: string }) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"flex items-center justify-between border-b border-border px-3 py-2 text-xs text-muted-foreground\">\n <span>PDF preview</span>\n <a href={src} target=\"_blank\" rel=\"noreferrer\" className=\"text-primary hover:underline\">\n Open in new tab\n </a>\n </div>\n <iframe title=\"Clicky PDF preview\" src={src} className=\"h-[720px] w-full bg-white\" />\n </div>\n );\n}\n\nfunction ClickyHtmlPreview({ src }: { src: string }) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"flex items-center justify-between border-b border-border px-3 py-2 text-xs text-muted-foreground\">\n <span>HTML preview</span>\n <a href={src} target=\"_blank\" rel=\"noreferrer\" className=\"text-primary hover:underline\">\n Open in new tab\n </a>\n </div>\n <iframe\n title=\"Clicky HTML preview\"\n src={src}\n className=\"h-[720px] w-full bg-white\"\n sandbox=\"allow-same-origin\"\n />\n </div>\n );\n}\n\nfunction ClickyUnsupportedPreview({\n title,\n message,\n href,\n}: {\n title: string;\n message: string;\n href: string;\n}) {\n return (\n <ClickyNotice\n title={title}\n message={\n <>\n <span>{message} </span>\n <a href={href} target=\"_blank\" rel=\"noreferrer\" className=\"text-primary hover:underline\">\n Open format\n </a>\n </>\n }\n />\n );\n}\n\nfunction ClickyRemotePreview({\n format,\n response,\n}: {\n format: ClickyOverflowViewFormat;\n response: ClickyRemoteResponse | undefined;\n}) {\n const meta = getRemoteFormatMeta(format);\n\n if (format === \"slack\") {\n const parsed = response?.kind === \"text\" ? parseJsonValue(response.text) : undefined;\n return <ClickyJsonTree value={parsed} emptyLabel={meta.label} />;\n }\n\n return (\n <ClickyTextPreview\n title={`${meta.label} output`}\n content={response?.kind === \"text\" ? response.text : \"\"}\n />\n );\n}\n\nfunction ClickyTextPreview({ title, content }: { title: string; content: string }) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"border-b border-border px-3 py-2 text-xs text-muted-foreground\">{title}</div>\n <pre\n aria-label=\"Clicky text preview\"\n className=\"overflow-auto whitespace-pre-wrap break-words px-3 py-3 font-mono text-xs text-foreground\"\n >\n {content || \"No content\"}\n </pre>\n </div>\n );\n}\n\nfunction ClickyJsonTree({ value, emptyLabel = \"JSON\" }: { value: unknown; emptyLabel?: string }) {\n const roots = useMemo(() => buildJsonTree(value), [value]);\n\n if (value === undefined) {\n return (\n <ClickyNotice\n title={`No ${emptyLabel} payload`}\n message=\"The response did not include a JSON body to inspect.\"\n />\n );\n }\n\n return (\n <div\n aria-label=\"JSON tree\"\n className=\"overflow-hidden rounded-md border border-border bg-background\"\n >\n <Tree<JsonTreeNode>\n roots={roots}\n className=\"min-h-[12rem]\"\n showControls={roots.some((node) => (node.children?.length ?? 0) > 0)}\n getKey={(node) => node.id}\n getChildren={(node) => node.children}\n renderRow={({ node }) => <ClickyJsonTreeRow node={node} />}\n rowClass={() => \"hover:bg-accent\"}\n empty={<div className=\"px-3 py-4 text-sm text-muted-foreground\">No JSON fields.</div>}\n toolbarClassName=\"pl-3\"\n />\n </div>\n );\n}\n\nfunction ClickyJsonTreeRow({ node }: { node: JsonTreeNode }) {\n const primitiveClass =\n typeof node.value === \"string\"\n ? \"text-emerald-700 dark:text-emerald-400\"\n : typeof node.value === \"number\"\n ? \"text-sky-700 dark:text-sky-400\"\n : typeof node.value === \"boolean\" || node.value === null\n ? \"text-violet-700 dark:text-violet-400\"\n : \"text-muted-foreground\";\n\n return (\n <div className=\"flex min-w-0 items-start gap-2 font-mono text-xs\">\n <span className=\"shrink-0 text-foreground\">{node.key}</span>\n <span className=\"shrink-0 text-muted-foreground\">:</span>\n <span className={cn(\"min-w-0 break-words\", primitiveClass)}>{node.preview}</span>\n </div>\n );\n}\n\nfunction getAvailableViews({\n data,\n url,\n view,\n}: {\n data: ClickyProps[\"data\"] | undefined;\n url?: string | undefined;\n view?: ClickyViewConfig | undefined;\n}): ClickyRemoteFormat[] {\n const allowClicky = resolveViewConfigFlag(view, \"clicky\", data, url);\n const allowJson = resolveViewConfigFlag(view, \"json\", data, url);\n const next: ClickyRemoteFormat[] = [];\n\n if (allowClicky && (url || data !== undefined)) {\n next.push(\"clicky\");\n }\n\n if (allowJson && (url || data !== undefined)) {\n next.push(\"json\");\n }\n\n for (const format of CLICKY_OVERFLOW_VIEW_FORMATS) {\n if (resolveViewConfigFlag(view, format, data, url) && url) {\n next.push(format);\n }\n }\n\n if (next.length === 0 && (url || data !== undefined)) {\n next.push(\"clicky\");\n }\n\n return next;\n}\n\nfunction getDownloadFormats({\n url,\n download,\n}: {\n url?: string | undefined;\n download?: ClickyDownloadOptions | undefined;\n}): ClickyRemoteFormat[] {\n const enabled = download ? (download.all ?? true) : !!url;\n\n if (!enabled || !url) {\n return [];\n }\n\n return [...CLICKY_DOWNLOAD_FORMATS];\n}\n\nfunction getRemoteFormatMeta(format: ClickyRemoteFormat) {\n switch (format) {\n case \"clicky\":\n return {\n label: \"Clicky\",\n description: \"Rendered Clicky JSON with the rich Clicky viewer\",\n icon: \"codicon:preview\",\n accept:\n \"application/json+clicky, application/clicky+json;q=0.9, application/json;q=0.8,*/*;q=0.7\",\n };\n case \"json\":\n return {\n label: \"JSON\",\n description: \"Plain JSON for inspecting the raw response body\",\n icon: \"vscode-icons:file-type-json\",\n accept: \"application/json, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"pdf\":\n return {\n label: \"PDF\",\n description: \"Portable document for sharing and printing\",\n icon: \"vscode-icons:file-type-pdf2\",\n accept: \"application/pdf, */*;q=0.7\",\n };\n case \"html\":\n return {\n label: \"HTML\",\n description: \"Browser-ready HTML preview of the formatted output\",\n icon: \"vscode-icons:file-type-html\",\n accept: \"text/html, */*;q=0.7\",\n };\n case \"markdown\":\n return {\n label: \"Markdown\",\n description: \"Markdown formatted for docs, comments, and chat\",\n icon: \"vscode-icons:file-type-markdown\",\n accept: \"text/markdown, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"yaml\":\n return {\n label: \"YAML\",\n description: \"YAML for config-friendly inspection and export\",\n icon: \"vscode-icons:file-type-yaml\",\n accept: \"application/yaml, text/yaml;q=0.9, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"csv\":\n return {\n label: \"CSV\",\n description: \"Comma-separated values for spreadsheets and imports\",\n icon: \"codicon:table\",\n accept: \"text/csv, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"pretty\":\n return {\n label: \"Pretty\",\n description: \"Human-readable plain text output from the formatter\",\n icon: \"codicon:file-code\",\n accept: \"text/plain, */*;q=0.7\",\n };\n case \"excel\":\n return {\n label: \"Excel\",\n description: \"Spreadsheet workbook for offline analysis\",\n icon: \"codicon:table\",\n accept: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, */*;q=0.7\",\n };\n case \"slack\":\n return {\n label: \"Slack\",\n description: \"Slack Block Kit JSON for chat-native output\",\n icon: \"codicon:comment-discussion\",\n accept: \"application/vnd.slack.block-kit+json, application/json;q=0.8,*/*;q=0.7\",\n };\n }\n}\n\nfunction formatViewLabel(mode: ClickyRemoteFormat) {\n return getRemoteFormatMeta(mode).label;\n}\n\nfunction buildFormatUrl(url: string, format: ClickyRemoteFormat) {\n const base = typeof window === \"undefined\" ? \"http://localhost\" : window.location.origin;\n const resolved = new URL(url, base);\n resolved.searchParams.set(\"format\", format === \"clicky\" ? \"clicky-json\" : format);\n\n if (isAbsoluteUrl(url)) {\n return resolved.toString();\n }\n\n return `${resolved.pathname}${resolved.search}${resolved.hash}`;\n}\n\nfunction shouldFetchRemoteView(format: ClickyRemoteFormat) {\n return format !== \"pdf\" && format !== \"html\" && format !== \"excel\";\n}\n\nfunction isPrimaryViewFormat(format: ClickyRemoteFormat): format is ClickyPrimaryViewFormat {\n return (CLICKY_PRIMARY_VIEW_FORMATS as readonly string[]).includes(format);\n}\n\nfunction isOverflowViewFormat(format: ClickyRemoteFormat): format is ClickyOverflowViewFormat {\n return (CLICKY_OVERFLOW_VIEW_FORMATS as readonly string[]).includes(format);\n}\n\nfunction resolveViewConfigFlag(\n view: ClickyViewConfig | undefined,\n format: ClickyRemoteFormat,\n data: ClickyProps[\"data\"],\n url?: string,\n) {\n const defaultEnabled =\n format === \"clicky\" || format === \"json\" ? url != null || data !== undefined : !!url;\n\n if (view === undefined) {\n return defaultEnabled;\n }\n\n if (Array.isArray(view)) {\n if (view.length === 0) {\n return false;\n }\n\n if (format === \"clicky\") {\n return view.includes(\"clicky\") || view.includes(\"json\");\n }\n\n return view.includes(format);\n }\n\n if (format in view) {\n return Boolean(view[format]);\n }\n\n if (format === \"clicky\" && view.json === true) {\n return true;\n }\n\n return defaultEnabled;\n}\n\nfunction parseJsonValue(data: ClickyProps[\"data\"]): unknown {\n if (data === undefined) {\n return undefined;\n }\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const trimmed = data.trim();\n if (!trimmed) {\n return \"\";\n }\n\n try {\n return JSON.parse(trimmed) as unknown;\n } catch {\n return data;\n }\n}\n\nfunction buildJsonTree(value: unknown): JsonTreeNode[] {\n if (Array.isArray(value)) {\n return value.map((entry, index) => buildJsonTreeNode(String(index), entry, `$[${index}]`));\n }\n\n if (isPlainObject(value)) {\n return Object.entries(value).map(([key, entry]) => buildJsonTreeNode(key, entry, `$.${key}`));\n }\n\n if (value === undefined) {\n return [];\n }\n\n return [buildJsonTreeNode(\"$\", value, \"$\")];\n}\n\nfunction buildJsonTreeNode(key: string, value: unknown, id: string): JsonTreeNode {\n const children = getJsonChildren(value, id);\n return {\n id,\n key,\n value,\n preview: summarizeJsonValue(value),\n ...(children ? { children } : {}),\n };\n}\n\nfunction getJsonChildren(value: unknown, path: string) {\n if (Array.isArray(value)) {\n return value.map((entry, index) =>\n buildJsonTreeNode(String(index), entry, `${path}[${index}]`),\n );\n }\n\n if (isPlainObject(value)) {\n return Object.entries(value).map(([key, entry]) =>\n buildJsonTreeNode(key, entry, `${path}.${key}`),\n );\n }\n\n return undefined;\n}\n\nfunction summarizeJsonValue(value: unknown) {\n if (Array.isArray(value)) {\n return `[${value.length} item${value.length === 1 ? \"\" : \"s\"}]`;\n }\n\n if (isPlainObject(value)) {\n const count = Object.keys(value).length;\n return `{${count} key${count === 1 ? \"\" : \"s\"}}`;\n }\n\n if (typeof value === \"string\") {\n return JSON.stringify(value);\n }\n\n if (value === undefined) {\n return \"undefined\";\n }\n\n return String(value);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction submitDownloadRequest(url: string) {\n if (typeof document === \"undefined\") return;\n\n const form = document.createElement(\"form\");\n form.method = \"GET\";\n form.action = url;\n form.style.display = \"none\";\n document.body.appendChild(form);\n form.submit();\n document.body.removeChild(form);\n}\n\nfunction isAbsoluteUrl(url: string) {\n return /^[a-z][a-z\\d+\\-.]*:/i.test(url) || url.startsWith(\"//\");\n}\n\nfunction normalizeClickyDocument(data: unknown): ParsedClicky {\n if (!data || typeof data !== \"object\") {\n return {\n ok: false,\n message: \"Payload must be an object\",\n raw: String(data ?? \"\"),\n };\n }\n\n const candidate = data as Partial<ClickyDocument> & Partial<ClickyNode>;\n if (\n \"version\" in candidate &&\n candidate.version === 1 &&\n candidate.node &&\n isClickyNode(candidate.node)\n ) {\n return { ok: true, document: candidate as ClickyDocument };\n }\n\n if (isClickyNode(candidate)) {\n return { ok: true, document: { version: 1, node: candidate } };\n }\n\n return {\n ok: false,\n message: \"Payload is neither a Clicky document nor a Clicky node\",\n raw: JSON.stringify(data, null, 2),\n };\n}\n\nfunction isClickyNode(value: unknown): value is ClickyNode {\n return (\n !!value && typeof value === \"object\" && typeof (value as { kind?: unknown }).kind === \"string\"\n );\n}\n\nfunction ClickyNodeRenderer({ node }: { node: ClickyNode | null | undefined }) {\n if (!node) return null;\n\n switch (node.kind) {\n case \"text\":\n return <ClickyText node={node} />;\n case \"link\":\n return <ClickyLinkNode node={node} />;\n case \"link-command\":\n return <ClickyLinkCommandNode node={node} />;\n case \"icon\":\n return <ClickyIconNode node={node} />;\n case \"list\":\n return <ClickyList node={node} />;\n case \"map\":\n return <ClickyMap node={node} />;\n case \"table\":\n return <ClickyTable node={node} />;\n case \"tree\":\n return <ClickyTreeNode node={node} />;\n case \"code\":\n return <ClickyCodeBlock node={node} />;\n case \"collapsed\":\n return <ClickyCollapsed node={node} />;\n case \"stacktrace\":\n return <ClickyStackTraceNode node={node} />;\n case \"button\":\n return <ClickyButtonNode node={node} />;\n case \"button-group\":\n return <ClickyButtonGroup node={node} />;\n case \"html\":\n return <ClickyHtmlNode node={node} />;\n case \"comment\":\n return <ClickyComment node={node} />;\n case \"badge\":\n return <ClickyBadgeNode node={node} />;\n default:\n return (\n <pre className=\"rounded-md border border-border bg-muted p-density-3 text-xs\">\n {JSON.stringify(node, null, 2)}\n </pre>\n );\n }\n}\n\nfunction ClickyComment({ node }: { node: ClickyNode }) {\n const text = node.text ?? node.plain;\n const content = <ClickyInlineContent node={node} />;\n const maxWidth =\n node.style?.maxWidth && node.style.maxWidth > 0 ? Math.min(node.style.maxWidth, 50) : 50;\n const maxLines =\n node.style?.maxLines && node.style.maxLines > 0 ? Math.min(node.style.maxLines, 3) : 3;\n const inlineStyle = toInlineStyle(\n {\n ...node.style,\n maxWidth,\n maxLines,\n },\n text,\n );\n\n if (!text && !node.children?.length) return null;\n\n return (\n <div\n className={cn(\"mt-1 text-xs leading-snug text-muted-foreground\", node.style?.className)}\n style={inlineStyle}\n title={node.tooltip?.plain ?? text}\n >\n {content}\n </div>\n );\n}\n\nfunction ClickyText({ node }: { node: ClickyNode }) {\n const inlineStyle = toInlineStyle(node.style, node.text ?? node.plain);\n const content = <ClickyInlineContent node={node} />;\n\n if (!node.style && !node.tooltip) {\n return <>{content}</>;\n }\n\n return (\n <span\n style={inlineStyle}\n title={node.tooltip?.plain}\n className={cn(\n node.style?.className,\n (node.text ?? \"\").includes(\"\\n\") && \"whitespace-pre-wrap\",\n )}\n >\n {content}\n </span>\n );\n}\n\nfunction ClickyInlineContent({ node }: { node: ClickyNode }) {\n return (\n <>\n {node.text}\n {node.children?.map((child, index) => (\n <Fragment key={index}>\n <ClickyNodeRenderer node={child} />\n </Fragment>\n ))}\n </>\n );\n}\n\nfunction ClickyLinkNode({ node }: { node: ClickyNode }) {\n const content = <ClickyInlineContent node={node} />;\n const inlineStyle = toInlineStyle(node.style, node.text ?? node.plain);\n const target = browserAnchorTarget(node.target);\n const rel = target === \"_blank\" ? \"noopener noreferrer\" : undefined;\n\n if (!node.href) {\n return <span style={inlineStyle}>{content}</span>;\n }\n\n return (\n <a\n href={node.href}\n target={target}\n rel={rel}\n title={node.tooltip?.plain}\n style={inlineStyle}\n className={cn(node.style?.className, \"inline cursor-pointer\")}\n >\n {content}\n </a>\n );\n}\n\nfunction ClickyLinkCommandNode({ node }: { node: ClickyNode }) {\n const runtime = useContext(ClickyRuntimeContext);\n const request = useMemo(() => clickyNodeToCommandRequest(node), [node]);\n const resolved = useMemo(\n () => resolveClickyCommand(request, runtime.commandRuntime, runtime.operations),\n [request, runtime.commandRuntime, runtime.operations],\n );\n const target = request.target ?? \"Dialog\";\n const hasRuntime = runtime.commandRuntime != null;\n const [dialogOpen, setDialogOpen] = useState(false);\n const [expanded, setExpanded] = useState(false);\n\n if (!hasRuntime) {\n return (\n <span title={node.tooltip?.plain} className={cn(node.style?.className)}>\n <ClickyInlineContent node={node} />\n </span>\n );\n }\n\n if (target === \"_self\" || target === \"_window\" || target === \"_tab\") {\n const href =\n runtime.commandRuntime?.hrefForCommand?.(resolved) ?? buildCommandExecutionHref(resolved);\n\n if (!href) {\n return (\n <span title={node.tooltip?.plain} className={cn(node.style?.className)}>\n <ClickyInlineContent node={node} />\n </span>\n );\n }\n\n return (\n <a\n href={href}\n target={browserAnchorTarget(target)}\n rel={target === \"_self\" ? undefined : \"noopener noreferrer\"}\n title={node.tooltip?.plain}\n style={toInlineStyle(node.style, node.text ?? node.plain)}\n className={cn(node.style?.className, \"inline cursor-pointer\")}\n >\n <ClickyInlineContent node={node} />\n </a>\n );\n }\n\n if (target === \"_clicky\") {\n return (\n <ClickyLinkCommandTrigger\n node={node}\n onClick={() => runtime.commandRuntime?.onNavigate?.(resolved)}\n />\n );\n }\n\n if (target === \"Hover\") {\n return (\n <HoverCard\n delay={75}\n cardClassName=\"w-[28rem] max-w-[calc(100vw-2rem)] whitespace-normal p-0\"\n trigger={<ClickyLinkCommandTrigger node={node} />}\n >\n <div className=\"max-h-[26rem] overflow-auto p-density-3\">\n <ClickyAsyncCommandResult resolved={resolved} />\n </div>\n </HoverCard>\n );\n }\n\n if (target === \"Expand\") {\n return (\n <span className=\"inline\">\n <ClickyLinkCommandTrigger\n node={node}\n ariaExpanded={expanded}\n onClick={() => setExpanded((current) => !current)}\n />\n {expanded && (\n <div className=\"mt-2 rounded-md border border-border bg-background p-density-3\">\n <ClickyAsyncCommandResult resolved={resolved} />\n </div>\n )}\n </span>\n );\n }\n\n return (\n <>\n <ClickyLinkCommandTrigger\n node={node}\n ariaExpanded={dialogOpen}\n onClick={() => setDialogOpen(true)}\n />\n <ClickyCommandDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n resolved={resolved}\n />\n </>\n );\n}\n\nfunction ClickyLinkCommandTrigger({\n node,\n onClick,\n ariaExpanded,\n}: {\n node: ClickyNode;\n onClick?: () => void;\n ariaExpanded?: boolean;\n}) {\n const inlineStyle = toInlineStyle(node.style, node.text ?? node.plain);\n\n const handleClick = (event: ReactMouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n onClick?.();\n };\n\n return (\n <button\n type=\"button\"\n title={node.tooltip?.plain}\n aria-expanded={ariaExpanded}\n onClick={handleClick}\n style={inlineStyle}\n className={cn(\n \"inline cursor-pointer appearance-none border-0 bg-transparent p-0 text-left align-baseline text-inherit\",\n node.style?.className,\n )}\n >\n <ClickyInlineContent node={node} />\n </button>\n );\n}\n\nfunction ClickyCommandDialog({\n open,\n onClose,\n resolved,\n}: {\n open: boolean;\n onClose: () => void;\n resolved: ClickyResolvedCommand;\n}) {\n const runtime = useContext(ClickyRuntimeContext);\n const operation = resolved.operation;\n const parameters = operation?.operation.parameters ?? [];\n const initialValues = useMemo(\n () => buildCommandParameterValues(parameters, resolved.request),\n [parameters, resolved.request],\n );\n const [result, setResult] = useState<unknown>(null);\n const [error, setError] = useState(\"\");\n const [isExecuting, setIsExecuting] = useState(false);\n const [hasAutoStarted, setHasAutoStarted] = useState(false);\n const shouldAutoRun =\n open &&\n resolved.request.autoRun === true &&\n operation != null &&\n missingRequiredParameters(parameters, initialValues).length === 0;\n\n useEffect(() => {\n if (!open) {\n setHasAutoStarted(false);\n setResult(null);\n setError(\"\");\n }\n }, [open, resolved.request.command]);\n\n async function runCommand(values: ParameterValues) {\n if (!runtime.commandRuntime || !operation) {\n return;\n }\n\n setIsExecuting(true);\n setError(\"\");\n\n try {\n const response = await executeClickyCommand(runtime.commandRuntime.client, operation, values);\n setResult(response);\n } catch (err) {\n setResult(null);\n setError(err instanceof Error ? err.message : String(err ?? \"Unknown error\"));\n } finally {\n setIsExecuting(false);\n }\n }\n\n useEffect(() => {\n if (!shouldAutoRun || hasAutoStarted) {\n return;\n }\n\n setHasAutoStarted(true);\n void runCommand(initialValues);\n }, [hasAutoStarted, initialValues, shouldAutoRun]);\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n title={operation?.operation.summary || resolved.request.command}\n size=\"xl\"\n >\n <div className=\"space-y-4\">\n {operation ? (\n <div className=\"flex flex-wrap items-center gap-3 text-xs text-muted-foreground\">\n <span className=\"rounded-md border border-border bg-muted px-2 py-1 font-medium uppercase\">\n {operation.method}\n </span>\n <code>{operation.path}</code>\n </div>\n ) : runtime.operationsLoading ? (\n <ClickyNotice title=\"Loading commands\" message=\"Resolving the command definition.\" />\n ) : (\n <ClickyNotice\n title=\"Unknown command\"\n message={`No operation matched \"${resolved.request.command}\".`}\n tone=\"destructive\"\n />\n )}\n\n {operation && (\n <div className=\"rounded-md border border-border bg-muted/20 p-density-3\">\n <FilterForm\n client={runtime.commandRuntime!.client}\n path={operation.path}\n method={operation.method}\n parameters={parameters}\n initialValues={initialValues}\n isSubmitting={isExecuting}\n submitLabel=\"Run command\"\n submittingLabel=\"Running…\"\n onSubmit={runCommand}\n />\n </div>\n )}\n\n {error ? (\n <ClickyNotice title=\"Command failed\" message={error} tone=\"destructive\" />\n ) : (\n <ClickyCommandResponse\n response={result}\n pending={isExecuting}\n emptyMessage=\"Run the command to load a Clicky response.\"\n />\n )}\n </div>\n </Modal>\n );\n}\n\nfunction ClickyAsyncCommandResult({ resolved }: { resolved: ClickyResolvedCommand }) {\n const runtime = useContext(ClickyRuntimeContext);\n const operation = resolved.operation;\n const parameters = operation?.operation.parameters ?? [];\n const initialValues = useMemo(\n () => buildCommandParameterValues(parameters, resolved.request),\n [parameters, resolved.request],\n );\n const missing = useMemo(\n () => missingRequiredParameters(parameters, initialValues),\n [initialValues, parameters],\n );\n\n const query = useQuery({\n queryKey: [\n \"clicky-command\",\n resolved.request.command,\n operation?.method,\n operation?.path,\n initialValues,\n ],\n enabled: runtime.commandRuntime != null && operation != null && missing.length === 0,\n retry: 0,\n queryFn: async () =>\n executeClickyCommand(runtime.commandRuntime!.client, operation!, initialValues),\n });\n\n if (!runtime.commandRuntime) {\n return (\n <ClickyNotice\n title=\"Command runtime unavailable\"\n message=\"This Clicky view was rendered without a command runtime.\"\n tone=\"warning\"\n />\n );\n }\n\n if (!operation) {\n if (runtime.operationsLoading) {\n return <ClickyNotice title=\"Loading commands\" message=\"Resolving the command definition.\" />;\n }\n return (\n <ClickyNotice\n title=\"Unknown command\"\n message={`No operation matched \"${resolved.request.command}\".`}\n tone=\"destructive\"\n />\n );\n }\n\n if (missing.length > 0) {\n return (\n <ClickyNotice\n title=\"Missing required parameters\"\n message={`This link is missing: ${missing.map((param) => prettifyName(param.name)).join(\", \")}.`}\n tone=\"warning\"\n />\n );\n }\n\n if (query.isPending) {\n return <ClickyNotice title=\"Running command\" message=\"Loading Clicky response…\" />;\n }\n\n if (query.isError) {\n return (\n <ClickyNotice\n title=\"Command failed\"\n message={query.error instanceof Error ? query.error.message : \"Request failed\"}\n tone=\"destructive\"\n />\n );\n }\n\n return <ClickyCommandResponse response={query.data} emptyMessage=\"No response body returned.\" />;\n}\n\nfunction ClickyCommandResponse({\n response,\n pending = false,\n emptyMessage,\n}: {\n response: unknown;\n pending?: boolean;\n emptyMessage: string;\n}) {\n if (pending) {\n return <ClickyNotice title=\"Running command\" message=\"Loading Clicky response…\" />;\n }\n\n if (!response) {\n return <ClickyNotice title=\"No response\" message={emptyMessage} />;\n }\n\n const parsedPayload = isExecutionResponse(response)\n ? (response.parsed ?? parseJsonBody(response))\n : response;\n const rawText = isExecutionResponse(response)\n ? response.stdout || response.output || response.message || \"\"\n : typeof response === \"string\"\n ? response\n : JSON.stringify(response, null, 2);\n const clickyPayload =\n typeof parsedPayload === \"string\" ||\n (parsedPayload != null && typeof parsedPayload === \"object\")\n ? parsedPayload\n : rawText;\n const parsedClicky =\n clickyPayload === \"\" ? null : parseClickyData(clickyPayload as ClickyProps[\"data\"]);\n\n if (parsedClicky?.ok) {\n return (\n <div className=\"rounded-md border border-border bg-background p-density-3\">\n <ClickyNodeRenderer node={parsedClicky.document.node} />\n </div>\n );\n }\n\n if (parsedPayload != null && typeof parsedPayload === \"object\") {\n return <ClickyJsonTree value={parsedPayload} />;\n }\n\n return <ClickyTextPreview title=\"Response body\" content={rawText} />;\n}\n\nfunction ClickyIconNode({ node }: { node: ClickyNode }) {\n const inlineStyle = toInlineStyle(node.style, node.plain ?? node.unicode);\n\n return (\n <span style={inlineStyle} title={node.tooltip?.plain} className=\"inline-flex items-center\">\n {node.iconify ? <Icon name={node.iconify} /> : <span>{node.unicode ?? node.plain}</span>}\n </span>\n );\n}\n\nfunction ClickyList({ node }: { node: ClickyNode }) {\n const items = node.items ?? [];\n if (items.length === 0) return null;\n\n if (node.inline) {\n return (\n <span className=\"inline-flex flex-wrap items-start gap-1\">\n {items.map((item, index) => (\n <Fragment key={index}>\n {index > 0 && <span className=\"text-muted-foreground\">,</span>}\n <span className=\"inline-flex items-center gap-1\">\n {!node.ordered && node.bullet && <ClickyNodeRenderer node={node.bullet} />}\n {node.ordered && <span className=\"text-muted-foreground\">{index + 1}.</span>}\n <ClickyNodeRenderer node={item} />\n </span>\n </Fragment>\n ))}\n </span>\n );\n }\n\n if (node.unstyled) {\n return (\n <div className=\"space-y-1\">\n {items.map((item, index) => (\n <div key={index} className=\"flex items-start gap-2\">\n {!node.ordered && node.bullet && <ClickyNodeRenderer node={node.bullet} />}\n {node.ordered && <span className=\"text-muted-foreground\">{index + 1}.</span>}\n <div className=\"min-w-0 flex-1\">\n <ClickyNodeRenderer node={item} />\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n const Tag = node.ordered ? \"ol\" : \"ul\";\n const listClass = node.ordered ? \"list-decimal\" : \"list-disc\";\n\n return (\n <Tag className={cn(\"ml-5 space-y-1 text-sm\", listClass)}>\n {items.map((item, index) => (\n <li key={index}>\n <ClickyNodeRenderer node={item} />\n </li>\n ))}\n </Tag>\n );\n}\n\nfunction ClickyMap({ node }: { node: ClickyNode }) {\n const fields = node.fields ?? [];\n if (fields.length === 0) return null;\n\n const inlineFields = fields.filter((field) => isInlineNode(field.value));\n const blockFields = fields.filter((field) => !isInlineNode(field.value));\n\n return (\n <div className=\"space-y-density-4\">\n {inlineFields.length > 0 && (\n <dl className=\"grid gap-density-3 md:grid-cols-2\">\n {inlineFields.map((field) => (\n <div key={field.name}>\n <dt className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {field.label || prettifyName(field.name)}\n </dt>\n <dd className=\"mt-1 text-sm text-foreground\">\n <ClickyNodeRenderer node={field.value} />\n </dd>\n </div>\n ))}\n </dl>\n )}\n\n {blockFields.map((field) => (\n <section key={field.name} className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {field.label || prettifyName(field.name)}\n </div>\n <div className=\"rounded-md border border-border bg-background p-density-3\">\n <ClickyNodeRenderer node={field.value} />\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nfunction ClickyTable({ node }: { node: ClickyNode }) {\n const runtime = useContext(ClickyRuntimeContext);\n const columns = node.columns ?? [];\n const rows = node.rows ?? [];\n\n if (columns.length === 0 || rows.length === 0) {\n return <div className=\"text-sm text-muted-foreground\">No data</div>;\n }\n\n if (shouldRenderRowsAsCollapsedStructs(columns, rows)) {\n return <ClickyCollapsedStructRows columns={columns} rows={rows} />;\n }\n\n const tableColumns: DataTableColumn<ClickyRow>[] = columns.map((column) => {\n const tagColumn = isClickyTagColumn(column);\n const base: DataTableColumn<ClickyRow> = {\n key: `cells.${column.name}`,\n label: column.header ? (\n <ClickyNodeRenderer node={column.header} />\n ) : (\n column.label || prettifyName(column.name)\n ),\n ...(column.align ? { align: column.align } : {}),\n ...(column.sortable !== undefined ? { sortable: column.sortable } : {}),\n ...(column.filterable !== undefined ? { filterable: column.filterable } : {}),\n ...(column.grow !== undefined ? { grow: column.grow } : {}),\n ...(column.shrink !== undefined ? { shrink: column.shrink } : {}),\n };\n\n if (tagColumn) {\n return {\n ...base,\n kind: \"tags\",\n render: (value) => {\n const tags = clickyNodeTags(value as ClickyNode, column);\n return <TagList tags={tags} maxVisible={3} />;\n },\n sortValue: (value) => clickyNodeTags(value as ClickyNode, column).length,\n filterValue: (value) => clickyNodeTags(value as ClickyNode, column).map((tag) => tag.token),\n };\n }\n\n return {\n ...base,\n ...(column.kind ? { kind: column.kind } : {}),\n render: (value) => <ClickyNodeRenderer node={value as ClickyNode} />,\n sortValue: (value) => clickyNodeText(value as ClickyNode),\n filterValue: (value) => clickyNodeText(value as ClickyNode),\n };\n });\n\n const defaultSortColumn = columns.find((column) => column.sortable !== false) ?? columns[0];\n\n return (\n <DataTable<ClickyRow>\n data={rows}\n columns={tableColumns}\n {...(node.autoFilter !== undefined ? { autoFilter: node.autoFilter } : {})}\n {...(defaultSortColumn\n ? { defaultSort: { key: `cells.${defaultSortColumn.name}`, dir: \"asc\" as const } }\n : {})}\n getRowId={(row, index) =>\n `${index}-${columns\n .map((column) => clickyNodeText(row.cells[column.name]))\n .filter(Boolean)\n .join(\"|\")}`\n }\n renderExpandedRow={(row, context) => (\n <ClickyTableRowDetail row={row} columns={columns} context={context} />\n )}\n {...(runtime.onTableRowClick ? { onRowClick: runtime.onTableRowClick } : {})}\n {...(runtime.getTableRowHref ? { getRowHref: runtime.getTableRowHref } : {})}\n {...(runtime.onTableRowClick && (runtime.isTableRowClickable || runtime.getTableRowHref)\n ? {\n isRowClickable:\n runtime.isTableRowClickable ?? ((row) => Boolean(runtime.getTableRowHref?.(row))),\n }\n : {})}\n />\n );\n}\n\nfunction ClickyTableRowDetail({\n row,\n columns,\n context,\n}: {\n row: ClickyRow;\n columns: ClickyColumn[];\n context: DataTableRowDetailContext<ClickyRow>;\n}) {\n const tagFields = columns\n .map((column) => ({\n column,\n tags: clickyNodeTags(row.cells[column.name], column),\n tableKey: `cells.${column.name}`,\n }))\n .filter((field) => field.tags.length > 0);\n\n return (\n <div className=\"space-y-3\">\n {tagFields.length > 0 && (\n <section className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Tags\n </div>\n <div className=\"grid gap-2\">\n {tagFields.map(({ column, tags, tableKey }) => {\n const tagActions = context.tagActionsByColumn[tableKey];\n const content = <TagList tags={tags} maxVisible={tags.length} actions=\"inline\" />;\n\n return (\n <div\n key={column.name}\n className=\"grid gap-2 rounded-md border border-border bg-background p-2 md:grid-cols-[9rem_minmax(0,1fr)]\"\n >\n <div className=\"text-xs font-medium uppercase tracking-wide text-muted-foreground\">\n {column.label || prettifyName(column.name)}\n </div>\n <div className=\"min-w-0\">\n {tagActions ? (\n <TagActionsProvider value={tagActions}>{content}</TagActionsProvider>\n ) : (\n content\n )}\n </div>\n </div>\n );\n })}\n </div>\n </section>\n )}\n\n <section className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Fields\n </div>\n <dl className=\"grid gap-2 md:grid-cols-2\">\n {columns.map((column) => (\n <div key={column.name} className=\"rounded-md border border-border bg-background p-2\">\n <dt className=\"text-xs font-medium uppercase tracking-wide text-muted-foreground\">\n {column.label || prettifyName(column.name)}\n </dt>\n <dd className=\"mt-1 min-w-0 text-sm text-foreground\">\n <ClickyNodeRenderer node={row.cells[column.name]} />\n </dd>\n </div>\n ))}\n </dl>\n </section>\n\n {row.detail && (\n <section className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Detail\n </div>\n <div className=\"rounded-md border border-border bg-background p-density-3\">\n <ClickyNodeRenderer node={row.detail} />\n </div>\n </section>\n )}\n </div>\n );\n}\n\nfunction ClickyCollapsedStructRows({\n columns,\n rows,\n}: {\n columns: ClickyColumn[];\n rows: ClickyRow[];\n}) {\n return (\n <div className=\"space-y-2\">\n {rows.map((row, index) => {\n const label = rowStructLabel(row, columns, index);\n const content = rowAsMap(row, columns);\n\n return (\n <details\n key={rowStructKey(row, columns, index)}\n className=\"rounded-md border border-border bg-background\"\n >\n <summary className=\"cursor-pointer px-3 py-2 text-sm font-medium text-foreground\">\n {label}\n </summary>\n <div className=\"border-t border-border p-3\">\n <ClickyMap node={content} />\n </div>\n </details>\n );\n })}\n </div>\n );\n}\n\nfunction shouldRenderRowsAsCollapsedStructs(columns: ClickyColumn[], rows: ClickyRow[]) {\n if (rows.length === 0) return false;\n\n return rows.every((row) => {\n const cells = columns.map((column) => row.cells[column.name]).filter(Boolean);\n if (cells.length === 0) return false;\n\n const complexCells = cells.filter(isStructCellNode);\n return complexCells.length > 0 && complexCells.length === cells.length;\n });\n}\n\nfunction isClickyTagColumn(column: ClickyColumn) {\n if (column.kind === \"tags\") return true;\n\n const normalized = column.name.toLowerCase();\n return /(^|[._-])(tags?|labels?|annotations?)$/.test(normalized);\n}\n\nfunction clickyNodeTags(node: ClickyNode | undefined, column: ClickyColumn): NormalizedTag[] {\n if (!isClickyTagColumn(column)) return [];\n\n const value = clickyNodeTagsValue(node);\n return normalizeTags(value);\n}\n\nfunction clickyNodeTagsValue(node: ClickyNode | undefined): TagsValue {\n if (!node) return [];\n\n if (node.kind === \"map\" && node.fields?.length) {\n return Object.fromEntries(\n node.fields\n .map((field) => [field.name, clickyNodeText(field.value)] as const)\n .filter(([, value]) => value.trim() !== \"\"),\n );\n }\n\n if (node.kind === \"list\" && node.items?.length) {\n return node.items.map((item) => clickyNodeText(item)).filter(Boolean);\n }\n\n const text = clickyNodeText(node).trim();\n if (!text) return [];\n\n return text\n .split(/[,\\s]+/)\n .map((value) => value.trim())\n .filter(Boolean);\n}\n\nfunction isStructCellNode(node: ClickyNode | undefined) {\n if (!node) return false;\n if (node.kind === \"map\") return (node.fields ?? []).length > 0;\n if (node.kind === \"table\") return (node.rows ?? []).length > 0;\n if (node.kind !== \"list\") return false;\n\n const items = node.items ?? [];\n return items.length > 0 && items.every(isStructCellNode);\n}\n\nfunction rowAsMap(row: ClickyRow, columns: ClickyColumn[]): ClickyNode {\n return {\n kind: \"map\",\n fields: columns.flatMap((column) => {\n const value = row.cells[column.name];\n if (!value) return [];\n return [\n {\n name: column.name,\n label: clickyNodeText(column.header) || column.label || prettifyName(column.name),\n value,\n },\n ];\n }),\n };\n}\n\nfunction rowStructLabel(row: ClickyRow, columns: ClickyColumn[], index: number) {\n const entityLabel = singularizeLabel(\n columns.find((column) => hasMeaningfulText(row.cells[column.name]))?.label ??\n columns[0]?.label ??\n columns[0]?.name ??\n \"Item\",\n );\n const title = rowTitle(row, columns);\n return title ? `${entityLabel} ${index + 1}: ${title}` : `${entityLabel} ${index + 1}`;\n}\n\nfunction rowStructKey(row: ClickyRow, columns: ClickyColumn[], index: number) {\n const title = rowTitle(row, columns);\n return `${index}-${title || columns.map((column) => clickyNodeText(row.cells[column.name])).join(\"|\")}`;\n}\n\nfunction rowTitle(row: ClickyRow, columns: ClickyColumn[]) {\n const preferredFieldNames = [\n \"name\",\n \"title\",\n \"agreementname\",\n \"companyname\",\n \"customernumber\",\n \"id\",\n \"guid\",\n ];\n\n for (const preferred of preferredFieldNames) {\n for (const column of columns) {\n const candidate = findFieldText(row.cells[column.name], preferred);\n if (candidate) return candidate;\n }\n }\n\n for (const column of columns) {\n const candidate = clickyNodeText(row.cells[column.name]).trim();\n if (candidate) return candidate;\n }\n\n return \"\";\n}\n\nfunction findFieldText(node: ClickyNode | undefined, preferredName: string): string {\n if (!node) return \"\";\n\n if (node.kind === \"map\") {\n for (const field of node.fields ?? []) {\n if (normalizeFieldName(field.name) === preferredName) {\n const text = clickyNodeText(field.value).trim();\n if (text) return text;\n }\n }\n }\n\n for (const field of node.fields ?? []) {\n const text = findFieldText(field.value, preferredName);\n if (text) return text;\n }\n\n for (const item of node.items ?? []) {\n const text = findFieldText(item, preferredName);\n if (text) return text;\n }\n\n return \"\";\n}\n\nfunction hasMeaningfulText(node: ClickyNode | undefined) {\n return Boolean(clickyNodeText(node).trim() || (node?.fields ?? []).length > 0);\n}\n\nfunction normalizeFieldName(name: string) {\n return name.toLowerCase().replace(/[^a-z0-9]/g, \"\");\n}\n\nfunction singularizeLabel(label: string) {\n const normalized = prettifyName(label).trim();\n return normalized.endsWith(\"s\") ? normalized.slice(0, -1) : normalized;\n}\n\nfunction ClickyTreeNode({ node }: { node: ClickyNode }) {\n const roots = node.roots ?? [];\n if (roots.length === 0) return null;\n\n return (\n <Tree<ClickyTreeItem>\n roots={roots}\n getChildren={(item) => item.children}\n getKey={(item) => item.id}\n defaultOpen={(_, depth) => depth < 1}\n renderRow={({ node: item }) => (\n <div className=\"min-w-0 flex-1 truncate\">\n <ClickyNodeRenderer node={item.label} />\n </div>\n )}\n />\n );\n}\n\nfunction ClickyCodeBlock({ node }: { node: ClickyNode }) {\n const language = (node.language ?? \"\").toLowerCase().replace(/^\\.+/, \"\");\n const source = node.source ?? node.plain ?? \"\";\n const chromaHtml = node.highlightedHtml ? sanitizeHtml(node.highlightedHtml) : \"\";\n\n // JSON gets the interactive collapsible viewer instead of raw chroma\n // output — operators read structured payloads (intake XMLData decoded\n // to JSON, OpenAPI responses, etc.) far faster when the viewer lets\n // them fold deep objects rather than scroll through highlighted text.\n // Falls back to the chroma / Shiki path when the source can't be parsed\n // (truncated payload, intentional pretty-printed-with-comments, etc.).\n const parsedJson = useMemo(\n () => (language === \"json\" ? tryParseJson(source) : JSON_PARSE_FAILED),\n [language, source],\n );\n\n // Hooks below must run unconditionally regardless of which render branch\n // wins, so they live above any early returns.\n const [shikiHtml, setShikiHtml] = useState<string | null>(null);\n const wantsClientHighlight = !chromaHtml && !!language && !!source;\n\n useEffect(() => {\n if (!wantsClientHighlight) {\n setShikiHtml(null);\n return;\n }\n let cancelled = false;\n highlightCode(source, { lang: language }).then((out) => {\n if (!cancelled) setShikiHtml(out);\n });\n return () => {\n cancelled = true;\n };\n }, [wantsClientHighlight, language, source]);\n\n if (parsedJson !== JSON_PARSE_FAILED) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-muted/40\">\n <div className=\"border-b border-border px-3 py-1.5 text-[11px] uppercase tracking-wide text-muted-foreground\">\n json\n </div>\n <div className=\"overflow-auto p-3 text-xs\">\n <JsonView data={parsedJson} defaultOpenDepth={2} />\n </div>\n </div>\n );\n }\n\n // XML gets a tighter Tailwind ruleset that targets chroma's class names\n // (the chroma html formatter emits .nt for tags, .na for attribute\n // names, .s for strings, .c for comments). Without this, XML renders\n // identically to plain text and operators reading large stacks or\n // walked AsActivity payloads can't visually pick out the structure.\n const xmlClasses =\n language === \"xml\" || language === \"xslt\" || language === \"html\"\n ? \" [&_.chroma_.nt]:text-pink-700 [&_.chroma_.nt]:dark:text-pink-300 [&_.chroma_.nt]:font-semibold\" +\n \" [&_.chroma_.na]:text-amber-700 [&_.chroma_.na]:dark:text-amber-300\" +\n \" [&_.chroma_.s]:text-emerald-700 [&_.chroma_.s]:dark:text-emerald-300\" +\n \" [&_.chroma_.c]:text-slate-500 [&_.chroma_.c]:italic\" +\n \" [&_.chroma_.cp]:text-slate-500 [&_.chroma_.cp]:italic\" +\n \" [&_pre]:leading-relaxed\"\n : \"\";\n\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-muted/40\">\n <div className=\"border-b border-border px-3 py-1.5 text-[11px] uppercase tracking-wide text-muted-foreground\">\n {node.language || \"text\"}\n </div>\n {chromaHtml ? (\n <div\n className={\n \"overflow-auto p-3 text-xs font-mono [&_.chroma]:bg-transparent [&_pre]:m-0 [&_pre]:whitespace-pre-wrap [&_pre]:bg-transparent\" +\n xmlClasses\n }\n dangerouslySetInnerHTML={{ __html: chromaHtml }}\n />\n ) : shikiHtml ? (\n <div\n className=\"overflow-auto p-3 text-xs font-mono [&_pre]:m-0 [&_pre.shiki]:!bg-transparent [&_pre]:whitespace-pre-wrap\"\n dangerouslySetInnerHTML={{ __html: shikiHtml }}\n />\n ) : (\n <pre className=\"overflow-auto whitespace-pre-wrap break-words p-3 text-xs font-mono text-foreground\">\n {source}\n </pre>\n )}\n </div>\n );\n}\n\n// JSON_PARSE_FAILED is a sentinel distinct from any value that valid\n// JSON can produce (`undefined` is not legal JSON, but a JSON document\n// could legitimately parse to `null`, `false`, `0`, `\"\"`, etc.). Using a\n// fresh object reference lets the caller branch with strict equality.\nconst JSON_PARSE_FAILED: unique symbol = Symbol(\"json-parse-failed\");\n\nfunction tryParseJson(source: string): unknown | typeof JSON_PARSE_FAILED {\n const trimmed = source.trim();\n if (!trimmed) return JSON_PARSE_FAILED;\n try {\n return JSON.parse(trimmed);\n } catch {\n return JSON_PARSE_FAILED;\n }\n}\n\nfunction isBadgeShape(value: string | undefined): value is BadgeShape {\n return value === \"pill\" || value === \"rounded\" || value === \"square\";\n}\n\nfunction ClickyBadgeNode({ node }: { node: ClickyNode }) {\n const props: ComponentProps<typeof Badge> = { variant: \"label\" };\n if (node.badgeLabel !== undefined) props.label = node.badgeLabel;\n if (node.badgeValue !== undefined) props.value = node.badgeValue;\n if (node.badgeColor !== undefined) props.color = node.badgeColor;\n if (node.badgeText !== undefined) props.textColor = node.badgeText;\n if (node.badgeIcon !== undefined) props.icon = node.badgeIcon;\n if (isBadgeShape(node.badgeShape)) props.shape = node.badgeShape;\n return <Badge {...props} />;\n}\n\nfunction ClickyStackTraceNode({ node }: { node: ClickyNode }) {\n const input = {\n causedBy: node.causedBy ?? [],\n frames: node.frames ?? [],\n language: \"java\" as const,\n ...(node.exceptionClass !== undefined ? { exceptionClass: node.exceptionClass } : {}),\n ...(node.message !== undefined ? { message: node.message } : {}),\n };\n\n return <StackTrace input={input} className=\"space-y-1\" />;\n}\n\nfunction ClickyCollapsed({ node }: { node: ClickyNode }) {\n return (\n <details className=\"rounded-md border border-border bg-background\">\n <summary className=\"cursor-pointer px-3 py-2 text-sm font-medium text-foreground\">\n <ClickyNodeRenderer node={node.label} />\n </summary>\n {node.content && (\n <div className=\"border-t border-border px-3 py-3\">\n <ClickyNodeRenderer node={node.content} />\n </div>\n )}\n </details>\n );\n}\n\nfunction ClickyButtonNode({ node }: { node: ClickyNode }) {\n const title = [node.id, node.payload].filter(Boolean).join(\"\\n\") || undefined;\n const content = node.label ? <ClickyNodeRenderer node={node.label} /> : node.text;\n\n if (node.href) {\n return (\n <a\n href={node.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title={title}\n className=\"inline-flex items-center rounded-md border border-border bg-background px-3 py-1.5 text-sm font-medium text-foreground hover:bg-accent\"\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n title={title}\n className=\"inline-flex items-center rounded-md border border-border bg-muted px-3 py-1.5 text-sm font-medium text-foreground\"\n >\n {content}\n </button>\n );\n}\n\nfunction ClickyButtonGroup({ node }: { node: ClickyNode }) {\n const items = node.items ?? [];\n if (items.length === 0) return null;\n\n return (\n <div className=\"flex flex-wrap gap-2\">\n {items.map((item, index) => (\n <ClickyNodeRenderer key={index} node={item} />\n ))}\n </div>\n );\n}\n\nfunction ClickyHtmlNode({ node }: { node: ClickyNode }) {\n const sanitized = sanitizeHtml(node.html ?? \"\");\n if (!sanitized) return null;\n\n const Tag = isBlockHtml(sanitized) ? \"div\" : \"span\";\n return <Tag dangerouslySetInnerHTML={{ __html: sanitized }} />;\n}\n\nfunction toInlineStyle(style?: ClickyStyle, text?: string): CSSProperties | undefined {\n if (!style) return text?.includes(\"\\n\") ? { whiteSpace: \"pre-wrap\" } : undefined;\n\n const inlineStyle: CSSProperties = {};\n\n if (style.color) inlineStyle.color = style.color;\n if (style.backgroundColor) inlineStyle.backgroundColor = style.backgroundColor;\n if (style.bold) inlineStyle.fontWeight = 700;\n if (style.faint) inlineStyle.opacity = 0.7;\n if (style.italic) inlineStyle.fontStyle = \"italic\";\n\n const decorations: string[] = [];\n if (style.underline) decorations.push(\"underline\");\n if (style.strikethrough) decorations.push(\"line-through\");\n if (decorations.length > 0) inlineStyle.textDecoration = decorations.join(\" \");\n\n if (\n style.textTransform === \"uppercase\" ||\n style.textTransform === \"lowercase\" ||\n style.textTransform === \"capitalize\"\n ) {\n inlineStyle.textTransform = style.textTransform;\n }\n\n if (style.maxWidth && style.maxWidth > 0) {\n inlineStyle.maxWidth = `${style.maxWidth}ch`;\n }\n\n if (style.maxLines && style.maxLines > 0) {\n inlineStyle.display = \"-webkit-box\";\n inlineStyle.overflow = \"hidden\";\n inlineStyle.WebkitLineClamp = style.maxLines;\n inlineStyle.WebkitBoxOrient = \"vertical\";\n inlineStyle.whiteSpace = \"pre-wrap\";\n }\n\n if (\n style.truncateMode === \"suffix\" &&\n style.maxWidth &&\n (!style.maxLines || style.maxLines <= 1)\n ) {\n inlineStyle.overflow = \"hidden\";\n inlineStyle.textOverflow = \"ellipsis\";\n inlineStyle.whiteSpace = \"nowrap\";\n inlineStyle.display = \"inline-block\";\n inlineStyle.verticalAlign = \"bottom\";\n }\n\n if (style.monospace) {\n inlineStyle.fontFamily =\n 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace';\n }\n\n if (!inlineStyle.whiteSpace && text?.includes(\"\\n\")) {\n inlineStyle.whiteSpace = \"pre-wrap\";\n }\n\n return Object.keys(inlineStyle).length > 0 ? inlineStyle : undefined;\n}\n\nfunction sanitizeHtml(raw: string): string {\n if (!raw) return \"\";\n\n if (typeof DOMParser === \"undefined\") {\n return raw\n .replace(/<script[\\s\\S]*?>[\\s\\S]*?<\\/script>/gi, \"\")\n .replace(/\\son\\w+=\"[^\"]*\"/gi, \"\")\n .replace(/\\son\\w+='[^']*'/gi, \"\");\n }\n\n const doc = new DOMParser().parseFromString(raw, \"text/html\");\n\n doc.querySelectorAll(\"script,iframe,object,embed,form\").forEach((element) => element.remove());\n\n doc.querySelectorAll(\"*\").forEach((element) => {\n Array.from(element.attributes).forEach((attribute) => {\n const name = attribute.name.toLowerCase();\n const value = attribute.value.trim().toLowerCase();\n\n if (name.startsWith(\"on\") || name === \"srcdoc\") {\n element.removeAttribute(attribute.name);\n }\n\n if ((name === \"href\" || name === \"src\") && value.startsWith(\"javascript:\")) {\n element.removeAttribute(attribute.name);\n }\n });\n });\n\n return doc.body.innerHTML;\n}\n\nfunction prettifyName(name: string): string {\n return name\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (value) => value.toUpperCase());\n}\n\nfunction clickyNodeToCommandRequest(node: ClickyNode): ClickyCommandRequest {\n return {\n command: node.command ?? \"\",\n args: node.args ?? [],\n flags: node.flags ?? {},\n target: node.target ?? \"Dialog\",\n autoRun: node.autoRun ?? false,\n };\n}\n\nfunction resolveClickyCommand(\n request: ClickyCommandRequest,\n runtime: ClickyCommandRuntime | undefined,\n operations: ResolvedOperation[],\n): ClickyResolvedCommand {\n const resolved =\n runtime?.resolveCommand?.(request, operations) ??\n defaultResolveClickyCommand(request, operations);\n return { request, operation: resolved };\n}\n\nfunction defaultResolveClickyCommand(\n request: ClickyCommandRequest,\n operations: ResolvedOperation[],\n): ResolvedOperation | undefined {\n const wanted = normalizeCommandPath(request.command);\n if (!wanted) return undefined;\n\n return operations.find((operation) => {\n const metaCommand = normalizeCommandPath(operation.operation[\"x-clicky\"]?.command);\n if (metaCommand && metaCommand === wanted) {\n return true;\n }\n\n const operationId = normalizeCommandPath(operation.operation.operationId?.replaceAll(\"_\", \"/\"));\n return operationId === wanted;\n });\n}\n\nfunction normalizeCommandPath(value: string | undefined) {\n return (value ?? \"\")\n .trim()\n .replace(/^\\//, \"\")\n .replace(/\\s+/g, \"/\")\n .replace(/\\/+/g, \"/\")\n .toLowerCase();\n}\n\nfunction buildCommandParameterValues(\n parameters: OpenAPIParameter[],\n request: ClickyCommandRequest,\n): ParameterValues {\n const values: ParameterValues = { ...request.flags };\n const args = [...(request.args ?? [])];\n const positionalParams = parameters.filter((param) => isPositionalParam(param));\n let argIndex = 0;\n\n for (const param of positionalParams) {\n if (param.name === \"args\") {\n const remaining = args.slice(argIndex);\n if (remaining.length > 0) {\n values.args = remaining.join(\",\");\n }\n argIndex = args.length;\n continue;\n }\n\n if (argIndex < args.length) {\n values[param.name] = args[argIndex] ?? \"\";\n argIndex += 1;\n }\n }\n\n return values;\n}\n\nfunction missingRequiredParameters(parameters: OpenAPIParameter[], values: ParameterValues) {\n return parameters.filter((param) => param.required && (values[param.name] ?? \"\").trim() === \"\");\n}\n\nasync function executeClickyCommand(\n client: OperationsApiClient,\n operation: ResolvedOperation,\n values: ParameterValues,\n) {\n return client.executeCommand(\n operation.path,\n operation.method,\n packParameterValues(pruneParameterValues(values), operation.operation.parameters ?? []),\n { Accept: \"application/json+clicky\" },\n );\n}\n\nfunction buildCommandExecutionHref(resolved: ClickyResolvedCommand): string | undefined {\n const operation = resolved.operation;\n if (!operation) {\n return undefined;\n }\n\n const values = buildCommandParameterValues(\n operation.operation.parameters ?? [],\n resolved.request,\n );\n const params = packParameterValues(\n pruneParameterValues(values),\n operation.operation.parameters ?? [],\n );\n const url = substituteOperationPath(operation.path, params);\n\n if (operation.method.toUpperCase() !== \"GET\") {\n return url;\n }\n\n return url;\n}\n\nfunction substituteOperationPath(path: string, params: Record<string, string>) {\n const url = new URL(path, \"http://localhost\");\n const remaining = { ...params };\n\n for (const [key, value] of Object.entries(params)) {\n if (url.pathname.includes(`{${key}}`)) {\n url.pathname = url.pathname.replace(`{${key}}`, encodeURIComponent(value));\n delete remaining[key];\n }\n }\n\n for (const [key, value] of Object.entries(remaining)) {\n url.searchParams.set(key, value);\n }\n\n return `${url.pathname}${url.search}`;\n}\n\nfunction browserAnchorTarget(target: ClickyLinkTarget | undefined) {\n if (target === \"_self\") {\n return \"_self\";\n }\n\n if (target === \"_window\" || target === \"_tab\") {\n return \"_blank\";\n }\n\n return undefined;\n}\n\nfunction isExecutionResponse(value: unknown): value is ExecutionResponse {\n return (\n value != null &&\n typeof value === \"object\" &&\n (\"stdout\" in value || \"output\" in value || \"message\" in value)\n );\n}\n\nfunction clickyNodeText(node: ClickyNode | null | undefined): string {\n if (!node) return \"\";\n if (node.plain) return node.plain;\n if (node.text) return node.text;\n if (node.kind === \"html\")\n return sanitizeHtml(node.html ?? \"\")\n .replace(/<[^>]+>/g, \" \")\n .trim();\n if (node.kind === \"code\") return node.source ?? \"\";\n if ((node.kind === \"link\" || node.kind === \"link-command\") && node.children?.length) {\n return [node.text, ...node.children.map((child) => clickyNodeText(child))].join(\"\");\n }\n if (node.kind === \"button\" && node.label) return clickyNodeText(node.label);\n if (node.kind === \"button-group\") {\n return (node.items ?? []).map((item) => clickyNodeText(item)).join(\" \");\n }\n if (node.kind === \"text\" && node.children?.length) {\n return [node.text, ...node.children.map((child) => clickyNodeText(child))].join(\"\");\n }\n return \"\";\n}\n\nfunction isInlineNode(node: ClickyNode): boolean {\n return (\n node.kind === \"text\" ||\n node.kind === \"link\" ||\n node.kind === \"link-command\" ||\n node.kind === \"icon\" ||\n node.kind === \"html\" ||\n node.kind === \"button\" ||\n node.kind === \"button-group\"\n );\n}\n\nfunction isBlockHtml(html: string): boolean {\n return /<(div|p|pre|table|ul|ol|li|details|blockquote|h[1-6])/i.test(html);\n}\n"],"names":["Fragment","_b","_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Clicky.js","sources":["../../src/data/Clicky.tsx"],"sourcesContent":["import { QueryClient, QueryClientProvider, useQuery } from \"@tanstack/react-query\";\nimport {\n createContext,\n Fragment,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentProps,\n type CSSProperties,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { FilterForm } from \"../rpc/FilterForm\";\nimport { parseJsonBody } from \"../rpc/classify\";\nimport {\n packParameterValues,\n pruneParameterValues,\n type ParameterValues,\n} from \"../rpc/formMetadata\";\nimport {\n type ExecutionResponse,\n isPositionalParam,\n type OpenAPIParameter,\n type ResolvedOperation,\n} from \"../rpc/types\";\nimport { type OperationsApiClient, useOperations } from \"../rpc/useOperations\";\nimport { cn } from \"../lib/utils\";\nimport {\n DataTable,\n type DataTableColumn,\n type DataTablePagination,\n type DataTableRowDetailContext,\n} from \"./DataTable\";\nimport type {\n FilterBarFilter,\n FilterBarRangeProps,\n FilterBarSearchProps,\n} from \"../components/FilterBar\";\nimport { Tree } from \"./Tree\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport {\n UiCheck,\n UiChevronDown,\n UiChevronUp,\n UiCloudDownload,\n UiComment,\n UiEllipsis,\n UiFileCode,\n UiEye,\n UiTable,\n} from \"../icons\";\nimport { CodeBlock } from \"./CodeBlock\";\nimport { isBlockHtml, sanitizeHtml } from \"./html-utils\";\nimport { StackTrace } from \"./diagnostics/RenderedStackTrace\";\nimport type { ParsedStackFrame } from \"./diagnostics/stacktrace-parse\";\nimport { Badge, type BadgeShape } from \"./Badge\";\nimport { HoverCard } from \"../overlay/HoverCard\";\nimport { Modal } from \"../overlay/Modal\";\nimport {\n TagActionsProvider,\n TagList,\n normalizeTags,\n type NormalizedTag,\n type TagsValue,\n} from \"./cells/TagList\";\n\nexport type ClickyStyle = {\n className?: string;\n color?: string;\n backgroundColor?: string;\n bold?: boolean;\n faint?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n textTransform?: string;\n maxWidth?: number;\n maxLines?: number;\n truncateMode?: \"suffix\" | \"prefix\" | \"headtail\";\n monospace?: boolean;\n};\n\nexport type ClickyField = {\n name: string;\n label?: string;\n value: ClickyNode;\n};\n\nexport type ClickyColumn = {\n name: string;\n label?: string;\n header?: ClickyNode;\n align?: \"left\" | \"right\" | \"center\";\n sortable?: boolean;\n filterable?: boolean;\n grow?: boolean;\n shrink?: boolean;\n kind?: \"timestamp\" | \"tags\" | \"status\";\n};\n\nexport type ClickyRow = {\n cells: Record<string, ClickyNode>;\n detail?: ClickyNode;\n};\n\nexport type ClickyTreeItem = {\n id: string;\n label: ClickyNode;\n children?: ClickyTreeItem[];\n};\n\nexport type ClickyNode = {\n kind:\n | \"text\"\n | \"link\"\n | \"link-command\"\n | \"icon\"\n | \"list\"\n | \"map\"\n | \"table\"\n | \"tree\"\n | \"code\"\n | \"collapsed\"\n | \"stacktrace\"\n | \"button\"\n | \"button-group\"\n | \"html\"\n | \"comment\"\n | \"badge\";\n plain?: string;\n style?: ClickyStyle;\n text?: string;\n children?: ClickyNode[];\n tooltip?: ClickyNode;\n html?: string;\n inline?: boolean;\n ordered?: boolean;\n unstyled?: boolean;\n bullet?: ClickyNode;\n items?: ClickyNode[];\n fields?: ClickyField[];\n columns?: ClickyColumn[];\n rows?: ClickyRow[];\n autoFilter?: boolean;\n roots?: ClickyTreeItem[];\n label?: ClickyNode;\n content?: ClickyNode;\n href?: string;\n target?: ClickyLinkTarget;\n command?: string;\n args?: string[];\n flags?: Record<string, string>;\n autoRun?: boolean;\n id?: string;\n payload?: string;\n variant?: string;\n iconify?: string;\n unicode?: string;\n language?: string;\n source?: string;\n highlightedHtml?: string;\n exceptionClass?: string;\n message?: string;\n causedBy?: string[];\n frames?: ParsedStackFrame[];\n // LabelBadge fields, set when kind === \"badge\".\n badgeLabel?: string;\n badgeValue?: string;\n badgeColor?: string;\n badgeText?: string;\n badgeShape?: string;\n badgeIcon?: string;\n};\n\nexport type ClickyDocument = {\n version: 1;\n node: ClickyNode;\n};\n\nexport type ClickyLinkTarget =\n | \"Dialog\"\n | \"Hover\"\n | \"Expand\"\n | \"_clicky\"\n | \"_self\"\n | \"_window\"\n | \"_tab\";\n\nexport type ClickyCommandRequest = {\n command: string;\n args?: string[];\n flags?: Record<string, string>;\n target?: ClickyLinkTarget;\n autoRun?: boolean;\n};\n\nexport type ClickyResolvedCommand = {\n request: ClickyCommandRequest;\n operation: ResolvedOperation | undefined;\n};\n\nexport type ClickyCommandRuntime = {\n client: OperationsApiClient;\n resolveCommand?: (\n request: ClickyCommandRequest,\n operations: ResolvedOperation[],\n ) => ResolvedOperation | undefined;\n hrefForCommand?: (resolved: ClickyResolvedCommand) => string | undefined;\n onNavigate?: (resolved: ClickyResolvedCommand) => void;\n};\n\nexport type ClickyTableRowClick = (row: ClickyRow) => void;\nexport type ClickyTableRowHref = (row: ClickyRow) => string | undefined;\nexport type ClickyTableRowPredicate = (row: ClickyRow) => boolean;\n\nconst CLICKY_PRIMARY_VIEW_FORMATS = [\"clicky\", \"json\"] as const;\nconst CLICKY_OVERFLOW_VIEW_FORMATS = [\n \"pdf\",\n \"html\",\n \"markdown\",\n \"yaml\",\n \"csv\",\n \"pretty\",\n \"excel\",\n \"slack\",\n] as const;\nconst CLICKY_DOWNLOAD_FORMATS = [\"json\", \"clicky\", ...CLICKY_OVERFLOW_VIEW_FORMATS] as const;\n\nexport type ClickyPrimaryViewFormat = (typeof CLICKY_PRIMARY_VIEW_FORMATS)[number];\nexport type ClickyOverflowViewFormat = (typeof CLICKY_OVERFLOW_VIEW_FORMATS)[number];\nexport type ClickyRemoteFormat = ClickyPrimaryViewFormat | ClickyOverflowViewFormat;\n\nexport type ClickyViewOptions = Partial<Record<ClickyRemoteFormat, boolean>>;\n\nexport type ClickyViewConfig = ClickyViewOptions | ClickyRemoteFormat[];\n\nexport type ClickyDownloadOptions = {\n /** Show all advertised download formats in the overflow menu. */\n all?: boolean;\n /** Override the download menu label. */\n label?: string;\n};\n\nexport type ClickyProps = {\n /** Clicky document, node, or JSON string to render. */\n data?: ClickyDocument | ClickyNode | string;\n /** Remote URL to fetch when `data` is not provided. */\n url?: string;\n /** Enabled remote view/download formats. */\n view?: ClickyViewConfig;\n /** Download menu configuration. */\n download?: ClickyDownloadOptions;\n /** Runtime used by link-command nodes. */\n commandRuntime?: ClickyCommandRuntime;\n /** Called when an embedded table row is clicked. */\n onTableRowClick?: ClickyTableRowClick;\n /** Optional href factory for embedded table rows. */\n getTableRowHref?: ClickyTableRowHref;\n /** Predicate controlling whether embedded table rows are clickable. */\n isTableRowClickable?: ClickyTableRowPredicate;\n /** Classes applied to the renderer root. */\n className?: string;\n // search, externalFilters and pagination flow through to the embedded\n // DataTable so operation pages can publish their query parameters as the\n // table's search box, native filter pills, and pagination footer without\n // re-implementing them per page.\n search?: FilterBarSearchProps;\n externalFilters?: FilterBarFilter[];\n /** Time-range control published into the first embedded table's FilterBar. */\n timeRange?: FilterBarRangeProps;\n /** Pagination footer configuration for the first embedded table. */\n pagination?: DataTablePagination;\n};\n\nexport type ClickyNodeViewProps = {\n /** Node to render; null and undefined render nothing. */\n node: ClickyNode | null | undefined;\n};\n\nexport type ClickyTableProps = {\n /** Clicky table column definitions. */\n columns: ClickyColumn[];\n /** Clicky table rows. */\n rows: ClickyRow[];\n /** Enable generated filters for filterable columns. */\n autoFilter?: boolean | undefined;\n /** Called when a row is clicked. */\n onTableRowClick?: ClickyTableRowClick | undefined;\n /** Optional href factory for row links. */\n getTableRowHref?: ClickyTableRowHref | undefined;\n /** Predicate controlling whether a row is clickable. */\n isTableRowClickable?: ClickyTableRowPredicate | undefined;\n /** Dedicated search input rendered in the table's FilterBar. */\n search?: FilterBarSearchProps | undefined;\n /** Time-range control rendered in the table's FilterBar. */\n timeRange?: FilterBarRangeProps | undefined;\n /** Extra FilterBar controls rendered before generated filters. */\n externalFilters?: FilterBarFilter[] | undefined;\n /** Pagination footer configuration. */\n pagination?: DataTablePagination | undefined;\n};\n\ntype ParsedClicky =\n | { ok: true; document: ClickyDocument }\n | { ok: false; message: string; raw: string };\n\ntype ClickyRemoteResponse =\n | { kind: \"text\"; text: string; contentType: string }\n | { kind: \"blob\"; blob: Blob; contentType: string };\n\ntype JsonTreeNode = {\n id: string;\n key: string;\n value: unknown;\n preview: string;\n children?: JsonTreeNode[];\n};\n\ntype ClickyRuntimeContextValue = {\n commandRuntime?: ClickyCommandRuntime | undefined;\n onTableRowClick?: ClickyTableRowClick | undefined;\n getTableRowHref?: ClickyTableRowHref | undefined;\n isTableRowClickable?: ClickyTableRowPredicate | undefined;\n // tableSearch + tableExternalFilters + tablePagination flow caller-owned\n // widgets into the FIRST ClickyTable rendered inside this runtime. The wiring\n // sits on the context rather than being threaded through every node so\n // OperationCommand page-style callers don't need to know how deep the table\n // is rendered.\n tableSearch?: FilterBarSearchProps | undefined;\n tableTimeRange?: FilterBarRangeProps | undefined;\n tableExternalFilters?: FilterBarFilter[] | undefined;\n tablePagination?: DataTablePagination | undefined;\n operations: ResolvedOperation[];\n operationsLoading: boolean;\n};\n\nconst clickyRuntimeContextDefault: ClickyRuntimeContextValue = {\n operations: [],\n operationsLoading: false,\n};\n\nconst ClickyRuntimeContext = createContext<ClickyRuntimeContextValue>(clickyRuntimeContextDefault);\n\nexport function Clicky(props: ClickyProps) {\n const [queryClient] = useState(\n () =>\n new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 30_000,\n retry: 1,\n },\n },\n }),\n );\n\n const content = (\n <ClickyRuntimeProvider\n {...(props.commandRuntime ? { commandRuntime: props.commandRuntime } : {})}\n {...(props.onTableRowClick ? { onTableRowClick: props.onTableRowClick } : {})}\n {...(props.getTableRowHref ? { getTableRowHref: props.getTableRowHref } : {})}\n {...(props.isTableRowClickable ? { isTableRowClickable: props.isTableRowClickable } : {})}\n {...(props.search ? { tableSearch: props.search } : {})}\n {...(props.timeRange ? { tableTimeRange: props.timeRange } : {})}\n {...(props.externalFilters ? { tableExternalFilters: props.externalFilters } : {})}\n {...(props.pagination ? { tablePagination: props.pagination } : {})}\n >\n {props.url ? (\n <ClickyRemoteRenderer {...props} url={props.url} />\n ) : (\n <ClickyContent\n data={props.data}\n {...(props.className ? { className: props.className } : {})}\n />\n )}\n </ClickyRuntimeProvider>\n );\n\n if (props.url || props.commandRuntime) {\n return <QueryClientProvider client={queryClient}>{content}</QueryClientProvider>;\n }\n\n return content;\n}\n\nfunction ClickyRuntimeProvider({\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n tableSearch,\n tableTimeRange,\n tableExternalFilters,\n tablePagination,\n children,\n}: {\n commandRuntime?: ClickyCommandRuntime | undefined;\n onTableRowClick?: ClickyTableRowClick | undefined;\n getTableRowHref?: ClickyTableRowHref | undefined;\n isTableRowClickable?: ClickyTableRowPredicate | undefined;\n tableSearch?: FilterBarSearchProps | undefined;\n tableTimeRange?: FilterBarRangeProps | undefined;\n tableExternalFilters?: FilterBarFilter[] | undefined;\n tablePagination?: DataTablePagination | undefined;\n children: ReactNode;\n}) {\n if (!commandRuntime) {\n const hasOverrides =\n onTableRowClick ||\n getTableRowHref ||\n isTableRowClickable ||\n tableSearch ||\n tableTimeRange ||\n tableExternalFilters ||\n tablePagination;\n return (\n <ClickyRuntimeContext.Provider\n value={\n hasOverrides\n ? {\n ...clickyRuntimeContextDefault,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n tableSearch,\n tableTimeRange,\n tableExternalFilters,\n tablePagination,\n }\n : clickyRuntimeContextDefault\n }\n >\n {children}\n </ClickyRuntimeContext.Provider>\n );\n }\n\n return (\n <ClickyCommandRuntimeProvider\n commandRuntime={commandRuntime}\n {...(onTableRowClick ? { onTableRowClick } : {})}\n {...(getTableRowHref ? { getTableRowHref } : {})}\n {...(isTableRowClickable ? { isTableRowClickable } : {})}\n {...(tableSearch ? { tableSearch } : {})}\n {...(tableTimeRange ? { tableTimeRange } : {})}\n {...(tableExternalFilters ? { tableExternalFilters } : {})}\n {...(tablePagination ? { tablePagination } : {})}\n >\n {children}\n </ClickyCommandRuntimeProvider>\n );\n}\n\nfunction ClickyCommandRuntimeProvider({\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n tableSearch,\n tableTimeRange,\n tableExternalFilters,\n tablePagination,\n children,\n}: {\n commandRuntime: ClickyCommandRuntime;\n onTableRowClick?: ClickyTableRowClick | undefined;\n getTableRowHref?: ClickyTableRowHref | undefined;\n isTableRowClickable?: ClickyTableRowPredicate | undefined;\n tableSearch?: FilterBarSearchProps | undefined;\n tableTimeRange?: FilterBarRangeProps | undefined;\n tableExternalFilters?: FilterBarFilter[] | undefined;\n tablePagination?: DataTablePagination | undefined;\n children: ReactNode;\n}) {\n const { operations, isLoading } = useOperations(commandRuntime.client);\n const value = useMemo(\n () => ({\n commandRuntime,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n tableSearch,\n tableTimeRange,\n tableExternalFilters,\n tablePagination,\n operations,\n operationsLoading: isLoading,\n }),\n [\n commandRuntime,\n getTableRowHref,\n isLoading,\n isTableRowClickable,\n onTableRowClick,\n operations,\n tableSearch,\n tableTimeRange,\n tableExternalFilters,\n tablePagination,\n ],\n );\n\n return <ClickyRuntimeContext.Provider value={value}>{children}</ClickyRuntimeContext.Provider>;\n}\n\nfunction ClickyContent({\n data,\n className,\n}: {\n data: ClickyProps[\"data\"];\n className?: string | undefined;\n}) {\n if (data === undefined) {\n return (\n <ClickyNotice\n className={className}\n title=\"No Clicky data\"\n message=\"Provide either a local data payload or a URL.\"\n />\n );\n }\n\n const parsed = parseClickyData(data);\n\n if (!parsed.ok) {\n return <ClickyInvalidPayload parsed={parsed} className={className} />;\n }\n\n return (\n <div className={className}>\n <ClickyNodeRenderer node={parsed.document.node} />\n </div>\n );\n}\n\nfunction ClickyRemoteRenderer({\n data,\n url,\n view,\n download,\n className,\n}: ClickyProps & { url: string }) {\n const availableViews = useMemo(() => getAvailableViews({ data, url, view }), [data, url, view]);\n const primaryViews = useMemo(() => availableViews.filter(isPrimaryViewFormat), [availableViews]);\n const overflowViews = useMemo(\n () => availableViews.filter(isOverflowViewFormat),\n [availableViews],\n );\n const downloadFormats = useMemo(() => getDownloadFormats({ url, download }), [download, url]);\n const [activeView, setActiveView] = useState<ClickyRemoteFormat>(\n () => availableViews[0] ?? \"clicky\",\n );\n\n useEffect(() => {\n if (!availableViews.includes(activeView)) {\n setActiveView(availableViews[0] ?? \"clicky\");\n }\n }, [activeView, availableViews]);\n\n const formattedUrl = buildFormatUrl(url, activeView);\n const activeQuery = useQuery({\n queryKey: [\"clicky\", activeView, formattedUrl],\n enabled: shouldFetchRemoteView(activeView),\n queryFn: async () => fetchRemoteFormat(formattedUrl, activeView),\n });\n const effectiveClickyData =\n activeView === \"clicky\" && activeQuery.data?.kind === \"text\" ? activeQuery.data.text : data;\n const fallbackJsonData = useMemo(() => parseJsonValue(data), [data]);\n const effectiveJsonData =\n activeView === \"json\" && activeQuery.data?.kind === \"text\"\n ? parseJsonValue(activeQuery.data.text)\n : fallbackJsonData;\n const activeOverflowView = isOverflowViewFormat(activeView) ? activeView : null;\n const canDownload = downloadFormats.length > 0;\n const loadingMessage = `Fetching ${formattedUrl}`;\n\n return (\n <div className={cn(\"space-y-density-3\", className)}>\n <div className=\"flex flex-wrap items-center gap-2 rounded-md border border-border bg-muted/20 px-density-3 py-density-2\">\n {primaryViews.length > 1 && (\n <div role=\"radiogroup\" aria-label=\"Clicky view mode\" className=\"flex flex-wrap gap-1\">\n {primaryViews.map((mode) => (\n <button\n key={mode}\n type=\"button\"\n role=\"radio\"\n aria-checked={activeView === mode}\n onClick={() => setActiveView(mode)}\n className={cn(\n \"rounded-md border px-2.5 py-1 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n activeView === mode\n ? \"border-foreground/20 bg-accent text-foreground\"\n : \"border-transparent text-muted-foreground hover:border-foreground/20 hover:text-foreground\",\n )}\n >\n {formatViewLabel(mode)}\n </button>\n ))}\n </div>\n )}\n\n {overflowViews.length > 0 && (\n <ClickyViewMenu\n activeFormat={activeOverflowView}\n formats={overflowViews}\n onSelect={setActiveView}\n />\n )}\n\n <div className=\"ml-auto flex items-center gap-2\">\n {shouldFetchRemoteView(activeView) && activeQuery.isFetching && (\n <span className=\"text-xs text-muted-foreground\">Refreshing…</span>\n )}\n\n {canDownload && (\n <ClickyDownloadMenu url={url} formats={downloadFormats} label={download?.label} />\n )}\n </div>\n </div>\n\n {activeView === \"pdf\" ? (\n <ClickyPdfPreview src={formattedUrl} />\n ) : activeView === \"html\" ? (\n <ClickyHtmlPreview src={formattedUrl} />\n ) : activeView === \"excel\" ? (\n <ClickyUnsupportedPreview\n title=\"Excel preview\"\n message=\"Excel output is available for download, but not inline preview.\"\n href={formattedUrl}\n />\n ) : activeView === \"clicky\" ? (\n activeQuery.isPending && effectiveClickyData === undefined ? (\n <ClickyNotice title=\"Loading Clicky\" message={loadingMessage} />\n ) : activeQuery.isError && effectiveClickyData === undefined ? (\n <ClickyNotice\n title=\"Clicky request failed\"\n message={\n activeQuery.error instanceof Error ? activeQuery.error.message : \"Request failed\"\n }\n tone=\"destructive\"\n />\n ) : (\n <>\n {activeQuery.isError && data !== undefined && (\n <ClickyNotice\n title=\"Remote refresh failed\"\n message=\"Showing the local fallback payload instead.\"\n tone=\"warning\"\n />\n )}\n <ClickyContent data={effectiveClickyData} />\n </>\n )\n ) : activeView === \"json\" ? (\n activeQuery.isPending && effectiveJsonData === undefined ? (\n <ClickyNotice title=\"Loading JSON\" message={loadingMessage} />\n ) : activeQuery.isError && effectiveJsonData === undefined ? (\n <ClickyNotice\n title=\"JSON request failed\"\n message={\n activeQuery.error instanceof Error ? activeQuery.error.message : \"Request failed\"\n }\n tone=\"destructive\"\n />\n ) : (\n <>\n {activeQuery.isError && fallbackJsonData !== undefined && (\n <ClickyNotice\n title=\"Remote refresh failed\"\n message=\"Showing the local fallback payload instead.\"\n tone=\"warning\"\n />\n )}\n <ClickyJsonTree value={effectiveJsonData} />\n </>\n )\n ) : activeQuery.isPending ? (\n <ClickyNotice title={`Loading ${formatViewLabel(activeView)}`} message={loadingMessage} />\n ) : activeQuery.isError ? (\n <ClickyNotice\n title={`${formatViewLabel(activeView)} request failed`}\n message={\n activeQuery.error instanceof Error ? activeQuery.error.message : \"Request failed\"\n }\n tone=\"destructive\"\n />\n ) : (\n <ClickyRemotePreview format={activeView} response={activeQuery.data} />\n )}\n </div>\n );\n}\n\nfunction ClickyViewMenu({\n activeFormat,\n formats,\n onSelect,\n}: {\n activeFormat: ClickyOverflowViewFormat | null;\n formats: ClickyOverflowViewFormat[];\n onSelect: (format: ClickyRemoteFormat) => void;\n}) {\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n\n useDismissablePopup(open, rootRef, triggerRef, () => setOpen(false));\n\n return (\n <div ref={rootRef} className=\"relative\">\n <button\n ref={triggerRef}\n type=\"button\"\n aria-label=\"Open additional view menu\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n aria-pressed={activeFormat != null}\n className={cn(\n \"inline-flex h-[34px] w-[34px] items-center justify-center rounded-md border border-input bg-background text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n activeFormat && \"border-foreground/20 bg-accent text-foreground\",\n )}\n onClick={() => setOpen((current) => !current)}\n >\n <Icon icon={UiEllipsis} className=\"text-sm\" />\n </button>\n\n {open && (\n <div\n role=\"menu\"\n className=\"absolute left-0 top-[calc(100%+0.375rem)] z-50 min-w-[18rem] rounded-md border border-border bg-popover p-1.5 text-popover-foreground shadow-lg shadow-black/5\"\n >\n {formats.map((format) => {\n const active = format === activeFormat;\n const meta = getRemoteFormatMeta(format);\n return (\n <button\n key={format}\n type=\"button\"\n role=\"menuitemradio\"\n aria-checked={active}\n className={cn(\n \"flex w-full items-start gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none\",\n active && \"bg-accent/70\",\n )}\n onClick={() => {\n onSelect(format);\n setOpen(false);\n }}\n >\n <Icon\n icon={meta.icon}\n className={cn(\n \"mt-0.5 shrink-0 text-base text-muted-foreground\",\n active && \"text-foreground\",\n )}\n />\n <span className=\"min-w-0 flex-1\">\n <span className=\"flex items-center justify-between gap-3\">\n <span className=\"font-medium\">{meta.label}</span>\n {active && <Icon icon={UiCheck} className=\"text-xs text-muted-foreground\" />}\n </span>\n <span className=\"mt-0.5 block text-xs text-muted-foreground\">\n {meta.description}\n </span>\n </span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n\nfunction ClickyDownloadMenu({\n url,\n formats,\n label,\n}: {\n url: string;\n formats: ClickyRemoteFormat[];\n label?: string | undefined;\n}) {\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n const primaryFormat: ClickyRemoteFormat = \"json\";\n const primaryMeta = getRemoteFormatMeta(primaryFormat);\n\n useDismissablePopup(open, rootRef, triggerRef, () => setOpen(false));\n\n return (\n <div ref={rootRef} className=\"relative\">\n <div className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n aria-label={\n label ? `Download ${primaryMeta.label} ${label}` : `Download ${primaryMeta.label}`\n }\n className=\"inline-flex items-center gap-2 rounded-md border border-input bg-background px-3 py-1.5 text-xs font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={() => submitDownloadRequest(buildFormatUrl(url, primaryFormat))}\n >\n <Icon icon={UiCloudDownload} className=\"text-sm\" />\n <span>{`Download ${primaryMeta.label}`}</span>\n </button>\n <button\n ref={triggerRef}\n type=\"button\"\n aria-label=\"Open download menu\"\n aria-haspopup=\"menu\"\n aria-expanded={open}\n className=\"inline-flex h-[34px] w-[34px] items-center justify-center rounded-md border border-input bg-background text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n onClick={() => setOpen((current) => !current)}\n >\n <Icon icon={open ? UiChevronUp : UiChevronDown} className=\"text-sm\" />\n </button>\n </div>\n\n {open && (\n <div\n role=\"menu\"\n className=\"absolute right-0 top-[calc(100%+0.375rem)] z-50 min-w-[18rem] rounded-md border border-border bg-popover p-1.5 text-popover-foreground shadow-lg shadow-black/5\"\n >\n {formats.map((format) => {\n const meta = getRemoteFormatMeta(format);\n return (\n <button\n key={format}\n type=\"button\"\n role=\"menuitem\"\n className={cn(\n \"flex w-full items-start gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:outline-none\",\n )}\n onClick={() => {\n submitDownloadRequest(buildFormatUrl(url, format));\n setOpen(false);\n }}\n >\n <Icon\n icon={meta.icon}\n className=\"mt-0.5 shrink-0 text-base text-muted-foreground\"\n />\n <span className=\"min-w-0 flex-1\">\n <span className=\"font-medium\">{meta.label}</span>\n <span className=\"mt-0.5 block text-xs text-muted-foreground\">\n {meta.description}\n </span>\n </span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n\nfunction useDismissablePopup(\n open: boolean,\n rootRef: RefObject<HTMLElement | null>,\n triggerRef: RefObject<HTMLElement | null>,\n onClose: () => void,\n) {\n useEffect(() => {\n if (!open) return;\n\n const onPointerDown = (event: MouseEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n onClose();\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onClose();\n triggerRef.current?.focus();\n }\n };\n\n document.addEventListener(\"mousedown\", onPointerDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onPointerDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [onClose, open, rootRef, triggerRef]);\n}\n\nexport function parseClickyData(data: ClickyProps[\"data\"]): ParsedClicky {\n if (typeof data === \"string\") {\n try {\n return normalizeClickyDocument(JSON.parse(data) as unknown);\n } catch (error) {\n return {\n ok: false,\n message: error instanceof Error ? error.message : \"Failed to parse JSON\",\n raw: data,\n };\n }\n }\n\n return normalizeClickyDocument(data);\n}\n\nfunction fetchRemoteFormat(url: string, format: ClickyRemoteFormat): Promise<ClickyRemoteResponse> {\n return fetch(url, {\n headers: {\n Accept: getRemoteFormatMeta(format).accept,\n },\n }).then(async (response) => {\n if (!response.ok) {\n throw new Error(`Request failed with ${response.status} ${response.statusText}`.trim());\n }\n\n const contentType = response.headers.get(\"Content-Type\") ?? \"\";\n\n if (format === \"excel\") {\n return {\n kind: \"blob\",\n blob: await response.blob(),\n contentType,\n };\n }\n\n return {\n kind: \"text\",\n text: await response.text(),\n contentType,\n };\n });\n}\n\nfunction ClickyInvalidPayload({\n parsed,\n className,\n}: {\n parsed: Extract<ParsedClicky, { ok: false }>;\n className?: string | undefined;\n}) {\n return (\n <div\n className={cn(\n \"rounded-md border border-destructive/30 bg-destructive/5 p-density-3\",\n className,\n )}\n >\n <div className=\"text-sm font-medium text-destructive\">Invalid Clicky payload</div>\n <pre className=\"mt-2 whitespace-pre-wrap break-all text-xs text-muted-foreground\">\n {parsed.message}\n {parsed.raw ? `\\n\\n${parsed.raw}` : \"\"}\n </pre>\n </div>\n );\n}\n\nfunction ClickyNotice({\n title,\n message,\n tone = \"default\",\n className,\n}: {\n title: string;\n message: ReactNode;\n tone?: \"default\" | \"warning\" | \"destructive\";\n className?: string | undefined;\n}) {\n return (\n <div\n className={cn(\n \"rounded-md border p-density-3\",\n tone === \"destructive\" && \"border-destructive/30 bg-destructive/5\",\n tone === \"warning\" && \"border-yellow-500/30 bg-yellow-500/5\",\n tone === \"default\" && \"border-border bg-muted/30\",\n className,\n )}\n >\n <div\n className={cn(\n \"text-sm font-medium\",\n tone === \"destructive\" && \"text-destructive\",\n tone === \"warning\" && \"text-yellow-700 dark:text-yellow-400\",\n )}\n >\n {title}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">{message}</div>\n </div>\n );\n}\n\nfunction ClickyPdfPreview({ src }: { src: string }) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"flex items-center justify-between border-b border-border px-3 py-2 text-xs text-muted-foreground\">\n <span>PDF preview</span>\n <a href={src} target=\"_blank\" rel=\"noreferrer\" className=\"text-primary hover:underline\">\n Open in new tab\n </a>\n </div>\n <iframe title=\"Clicky PDF preview\" src={src} className=\"h-[720px] w-full bg-white\" />\n </div>\n );\n}\n\nfunction ClickyHtmlPreview({ src }: { src: string }) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"flex items-center justify-between border-b border-border px-3 py-2 text-xs text-muted-foreground\">\n <span>HTML preview</span>\n <a href={src} target=\"_blank\" rel=\"noreferrer\" className=\"text-primary hover:underline\">\n Open in new tab\n </a>\n </div>\n <iframe\n title=\"Clicky HTML preview\"\n src={src}\n className=\"h-[720px] w-full bg-white\"\n sandbox=\"allow-same-origin\"\n />\n </div>\n );\n}\n\nfunction ClickyUnsupportedPreview({\n title,\n message,\n href,\n}: {\n title: string;\n message: string;\n href: string;\n}) {\n return (\n <ClickyNotice\n title={title}\n message={\n <>\n <span>{message} </span>\n <a href={href} target=\"_blank\" rel=\"noreferrer\" className=\"text-primary hover:underline\">\n Open format\n </a>\n </>\n }\n />\n );\n}\n\nfunction ClickyRemotePreview({\n format,\n response,\n}: {\n format: ClickyOverflowViewFormat;\n response: ClickyRemoteResponse | undefined;\n}) {\n const meta = getRemoteFormatMeta(format);\n\n if (format === \"slack\") {\n const parsed = response?.kind === \"text\" ? parseJsonValue(response.text) : undefined;\n return <ClickyJsonTree value={parsed} emptyLabel={meta.label} />;\n }\n\n return (\n <ClickyTextPreview\n title={`${meta.label} output`}\n content={response?.kind === \"text\" ? response.text : \"\"}\n />\n );\n}\n\nfunction ClickyTextPreview({ title, content }: { title: string; content: string }) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"border-b border-border px-3 py-2 text-xs text-muted-foreground\">{title}</div>\n <pre\n aria-label=\"Clicky text preview\"\n className=\"overflow-auto whitespace-pre-wrap break-words px-3 py-3 font-mono text-xs text-foreground\"\n >\n {content || \"No content\"}\n </pre>\n </div>\n );\n}\n\nfunction ClickyJsonTree({ value, emptyLabel = \"JSON\" }: { value: unknown; emptyLabel?: string }) {\n const roots = useMemo(() => buildJsonTree(value), [value]);\n\n if (value === undefined) {\n return (\n <ClickyNotice\n title={`No ${emptyLabel} payload`}\n message=\"The response did not include a JSON body to inspect.\"\n />\n );\n }\n\n return (\n <div\n aria-label=\"JSON tree\"\n className=\"overflow-hidden rounded-md border border-border bg-background\"\n >\n <Tree<JsonTreeNode>\n roots={roots}\n className=\"min-h-[12rem]\"\n showControls={roots.some((node) => (node.children?.length ?? 0) > 0)}\n getKey={(node) => node.id}\n getChildren={(node) => node.children}\n renderRow={({ node }) => <ClickyJsonTreeRow node={node} />}\n rowClass={() => \"hover:bg-accent\"}\n empty={<div className=\"px-3 py-4 text-sm text-muted-foreground\">No JSON fields.</div>}\n toolbarClassName=\"pl-3\"\n />\n </div>\n );\n}\n\nfunction ClickyJsonTreeRow({ node }: { node: JsonTreeNode }) {\n const primitiveClass =\n typeof node.value === \"string\"\n ? \"text-emerald-700 dark:text-emerald-400\"\n : typeof node.value === \"number\"\n ? \"text-sky-700 dark:text-sky-400\"\n : typeof node.value === \"boolean\" || node.value === null\n ? \"text-violet-700 dark:text-violet-400\"\n : \"text-muted-foreground\";\n\n return (\n <div className=\"flex min-w-0 items-start gap-2 font-mono text-xs\">\n <span className=\"shrink-0 text-foreground\">{node.key}</span>\n <span className=\"shrink-0 text-muted-foreground\">:</span>\n <span className={cn(\"min-w-0 break-words\", primitiveClass)}>{node.preview}</span>\n </div>\n );\n}\n\nfunction getAvailableViews({\n data,\n url,\n view,\n}: {\n data: ClickyProps[\"data\"] | undefined;\n url?: string | undefined;\n view?: ClickyViewConfig | undefined;\n}): ClickyRemoteFormat[] {\n const allowClicky = resolveViewConfigFlag(view, \"clicky\", data, url);\n const allowJson = resolveViewConfigFlag(view, \"json\", data, url);\n const next: ClickyRemoteFormat[] = [];\n\n if (allowClicky && (url || data !== undefined)) {\n next.push(\"clicky\");\n }\n\n if (allowJson && (url || data !== undefined)) {\n next.push(\"json\");\n }\n\n for (const format of CLICKY_OVERFLOW_VIEW_FORMATS) {\n if (resolveViewConfigFlag(view, format, data, url) && url) {\n next.push(format);\n }\n }\n\n if (next.length === 0 && (url || data !== undefined)) {\n next.push(\"clicky\");\n }\n\n return next;\n}\n\nfunction getDownloadFormats({\n url,\n download,\n}: {\n url?: string | undefined;\n download?: ClickyDownloadOptions | undefined;\n}): ClickyRemoteFormat[] {\n const enabled = download ? (download.all ?? true) : !!url;\n\n if (!enabled || !url) {\n return [];\n }\n\n return [...CLICKY_DOWNLOAD_FORMATS];\n}\n\nfunction getRemoteFormatMeta(format: ClickyRemoteFormat): {\n label: string;\n description: string;\n icon: StaticIconComponent;\n accept: string;\n} {\n switch (format) {\n case \"clicky\":\n return {\n label: \"Clicky\",\n description: \"Rendered Clicky JSON with the rich Clicky viewer\",\n icon: UiEye,\n accept:\n \"application/json+clicky, application/clicky+json;q=0.9, application/json;q=0.8,*/*;q=0.7\",\n };\n case \"json\":\n return {\n label: \"JSON\",\n description: \"Plain JSON for inspecting the raw response body\",\n icon: UiFileCode,\n accept: \"application/json, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"pdf\":\n return {\n label: \"PDF\",\n description: \"Portable document for sharing and printing\",\n icon: UiFileCode,\n accept: \"application/pdf, */*;q=0.7\",\n };\n case \"html\":\n return {\n label: \"HTML\",\n description: \"Browser-ready HTML preview of the formatted output\",\n icon: UiFileCode,\n accept: \"text/html, */*;q=0.7\",\n };\n case \"markdown\":\n return {\n label: \"Markdown\",\n description: \"Markdown formatted for docs, comments, and chat\",\n icon: UiFileCode,\n accept: \"text/markdown, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"yaml\":\n return {\n label: \"YAML\",\n description: \"YAML for config-friendly inspection and export\",\n icon: UiFileCode,\n accept: \"application/yaml, text/yaml;q=0.9, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"csv\":\n return {\n label: \"CSV\",\n description: \"Comma-separated values for spreadsheets and imports\",\n icon: UiTable,\n accept: \"text/csv, text/plain;q=0.8,*/*;q=0.7\",\n };\n case \"pretty\":\n return {\n label: \"Pretty\",\n description: \"Human-readable plain text output from the formatter\",\n icon: UiFileCode,\n accept: \"text/plain, */*;q=0.7\",\n };\n case \"excel\":\n return {\n label: \"Excel\",\n description: \"Spreadsheet workbook for offline analysis\",\n icon: UiTable,\n accept: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, */*;q=0.7\",\n };\n case \"slack\":\n return {\n label: \"Slack\",\n description: \"Slack Block Kit JSON for chat-native output\",\n icon: UiComment,\n accept: \"application/vnd.slack.block-kit+json, application/json;q=0.8,*/*;q=0.7\",\n };\n }\n}\n\nfunction formatViewLabel(mode: ClickyRemoteFormat) {\n return getRemoteFormatMeta(mode).label;\n}\n\nfunction buildFormatUrl(url: string, format: ClickyRemoteFormat) {\n const base = typeof window === \"undefined\" ? \"http://localhost\" : window.location.origin;\n const resolved = new URL(url, base);\n resolved.searchParams.set(\"format\", format === \"clicky\" ? \"clicky-json\" : format);\n\n if (isAbsoluteUrl(url)) {\n return resolved.toString();\n }\n\n return `${resolved.pathname}${resolved.search}${resolved.hash}`;\n}\n\nfunction shouldFetchRemoteView(format: ClickyRemoteFormat) {\n return format !== \"pdf\" && format !== \"html\" && format !== \"excel\";\n}\n\nfunction isPrimaryViewFormat(format: ClickyRemoteFormat): format is ClickyPrimaryViewFormat {\n return (CLICKY_PRIMARY_VIEW_FORMATS as readonly string[]).includes(format);\n}\n\nfunction isOverflowViewFormat(format: ClickyRemoteFormat): format is ClickyOverflowViewFormat {\n return (CLICKY_OVERFLOW_VIEW_FORMATS as readonly string[]).includes(format);\n}\n\nfunction resolveViewConfigFlag(\n view: ClickyViewConfig | undefined,\n format: ClickyRemoteFormat,\n data: ClickyProps[\"data\"],\n url?: string,\n) {\n const defaultEnabled =\n format === \"clicky\" || format === \"json\" ? url != null || data !== undefined : !!url;\n\n if (view === undefined) {\n return defaultEnabled;\n }\n\n if (Array.isArray(view)) {\n if (view.length === 0) {\n return false;\n }\n\n if (format === \"clicky\") {\n return view.includes(\"clicky\") || view.includes(\"json\");\n }\n\n return view.includes(format);\n }\n\n if (format in view) {\n return Boolean(view[format]);\n }\n\n if (format === \"clicky\" && view.json === true) {\n return true;\n }\n\n return defaultEnabled;\n}\n\nfunction parseJsonValue(data: ClickyProps[\"data\"]): unknown {\n if (data === undefined) {\n return undefined;\n }\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const trimmed = data.trim();\n if (!trimmed) {\n return \"\";\n }\n\n try {\n return JSON.parse(trimmed) as unknown;\n } catch {\n return data;\n }\n}\n\nfunction buildJsonTree(value: unknown): JsonTreeNode[] {\n if (Array.isArray(value)) {\n return value.map((entry, index) => buildJsonTreeNode(String(index), entry, `$[${index}]`));\n }\n\n if (isPlainObject(value)) {\n return Object.entries(value).map(([key, entry]) => buildJsonTreeNode(key, entry, `$.${key}`));\n }\n\n if (value === undefined) {\n return [];\n }\n\n return [buildJsonTreeNode(\"$\", value, \"$\")];\n}\n\nfunction buildJsonTreeNode(key: string, value: unknown, id: string): JsonTreeNode {\n const children = getJsonChildren(value, id);\n return {\n id,\n key,\n value,\n preview: summarizeJsonValue(value),\n ...(children ? { children } : {}),\n };\n}\n\nfunction getJsonChildren(value: unknown, path: string) {\n if (Array.isArray(value)) {\n return value.map((entry, index) =>\n buildJsonTreeNode(String(index), entry, `${path}[${index}]`),\n );\n }\n\n if (isPlainObject(value)) {\n return Object.entries(value).map(([key, entry]) =>\n buildJsonTreeNode(key, entry, `${path}.${key}`),\n );\n }\n\n return undefined;\n}\n\nfunction summarizeJsonValue(value: unknown) {\n if (Array.isArray(value)) {\n return `[${value.length} item${value.length === 1 ? \"\" : \"s\"}]`;\n }\n\n if (isPlainObject(value)) {\n const count = Object.keys(value).length;\n return `{${count} key${count === 1 ? \"\" : \"s\"}}`;\n }\n\n if (typeof value === \"string\") {\n return JSON.stringify(value);\n }\n\n if (value === undefined) {\n return \"undefined\";\n }\n\n return String(value);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction submitDownloadRequest(url: string) {\n if (typeof document === \"undefined\") return;\n\n const form = document.createElement(\"form\");\n form.method = \"GET\";\n form.action = url;\n form.style.display = \"none\";\n document.body.appendChild(form);\n form.submit();\n document.body.removeChild(form);\n}\n\nfunction isAbsoluteUrl(url: string) {\n return /^[a-z][a-z\\d+\\-.]*:/i.test(url) || url.startsWith(\"//\");\n}\n\nfunction normalizeClickyDocument(data: unknown): ParsedClicky {\n if (!data || typeof data !== \"object\") {\n return {\n ok: false,\n message: \"Payload must be an object\",\n raw: String(data ?? \"\"),\n };\n }\n\n const candidate = data as Partial<ClickyDocument> & Partial<ClickyNode>;\n if (\n \"version\" in candidate &&\n candidate.version === 1 &&\n candidate.node &&\n isClickyNode(candidate.node)\n ) {\n return { ok: true, document: candidate as ClickyDocument };\n }\n\n if (isClickyNode(candidate)) {\n return { ok: true, document: { version: 1, node: candidate } };\n }\n\n return {\n ok: false,\n message: \"Payload is neither a Clicky document nor a Clicky node\",\n raw: JSON.stringify(data, null, 2),\n };\n}\n\nfunction isClickyNode(value: unknown): value is ClickyNode {\n return (\n !!value && typeof value === \"object\" && typeof (value as { kind?: unknown }).kind === \"string\"\n );\n}\n\nfunction ClickyNodeRenderer({ node }: ClickyNodeViewProps) {\n if (!node) return null;\n\n switch (node.kind) {\n case \"text\":\n return <ClickyText node={node} />;\n case \"link\":\n return <ClickyLinkNode node={node} />;\n case \"link-command\":\n return <ClickyLinkCommandNode node={node} />;\n case \"icon\":\n return <ClickyIconNode node={node} />;\n case \"list\":\n return <ClickyList node={node} />;\n case \"map\":\n return <ClickyMap node={node} />;\n case \"table\":\n return <ClickyTableNode node={node} />;\n case \"tree\":\n return <ClickyTreeNode node={node} />;\n case \"code\":\n return (\n <CodeBlock\n language={node.language}\n source={node.source ?? node.plain ?? \"\"}\n highlightedHtml={node.highlightedHtml}\n />\n );\n case \"collapsed\":\n return <ClickyCollapsed node={node} />;\n case \"stacktrace\":\n return <ClickyStackTraceNode node={node} />;\n case \"button\":\n return <ClickyButtonNode node={node} />;\n case \"button-group\":\n return <ClickyButtonGroup node={node} />;\n case \"html\":\n return <ClickyHtmlNode node={node} />;\n case \"comment\":\n return <ClickyComment node={node} />;\n case \"badge\":\n return <ClickyBadgeNode node={node} />;\n default:\n return (\n <pre className=\"rounded-md border border-border bg-muted p-density-3 text-xs\">\n {JSON.stringify(node, null, 2)}\n </pre>\n );\n }\n}\n\nexport { ClickyNodeRenderer as ClickyNodeView };\n\nfunction ClickyComment({ node }: { node: ClickyNode }) {\n const text = node.text ?? node.plain;\n const content = <ClickyInlineContent node={node} />;\n const maxWidth =\n node.style?.maxWidth && node.style.maxWidth > 0 ? Math.min(node.style.maxWidth, 50) : 50;\n const maxLines =\n node.style?.maxLines && node.style.maxLines > 0 ? Math.min(node.style.maxLines, 3) : 3;\n const inlineStyle = toInlineStyle(\n {\n ...node.style,\n maxWidth,\n maxLines,\n },\n text,\n );\n\n if (!text && !node.children?.length) return null;\n\n return (\n <div\n className={cn(\"mt-1 text-xs leading-snug text-muted-foreground\", node.style?.className)}\n style={inlineStyle}\n title={node.tooltip?.plain ?? text}\n >\n {content}\n </div>\n );\n}\n\nfunction ClickyText({ node }: { node: ClickyNode }) {\n const inlineStyle = toInlineStyle(node.style, node.text ?? node.plain);\n const content = <ClickyInlineContent node={node} />;\n\n if (!node.style && !node.tooltip) {\n return <>{content}</>;\n }\n\n return (\n <span\n style={inlineStyle}\n title={node.tooltip?.plain}\n className={cn(\n node.style?.className,\n (node.text ?? \"\").includes(\"\\n\") && \"whitespace-pre-wrap\",\n )}\n >\n {content}\n </span>\n );\n}\n\nfunction ClickyInlineContent({ node }: { node: ClickyNode }) {\n return (\n <>\n {node.text}\n {node.children?.map((child, index) => (\n <Fragment key={index}>\n <ClickyNodeRenderer node={child} />\n </Fragment>\n ))}\n </>\n );\n}\n\nfunction ClickyLinkNode({ node }: { node: ClickyNode }) {\n const content = <ClickyInlineContent node={node} />;\n const inlineStyle = toInlineStyle(node.style, node.text ?? node.plain);\n const target = browserAnchorTarget(node.target);\n const rel = target === \"_blank\" ? \"noopener noreferrer\" : undefined;\n\n if (!node.href) {\n return <span style={inlineStyle}>{content}</span>;\n }\n\n return (\n <a\n href={node.href}\n target={target}\n rel={rel}\n title={node.tooltip?.plain}\n style={inlineStyle}\n className={cn(node.style?.className, \"inline cursor-pointer\")}\n >\n {content}\n </a>\n );\n}\n\nfunction ClickyLinkCommandNode({ node }: { node: ClickyNode }) {\n const runtime = useContext(ClickyRuntimeContext);\n const request = useMemo(() => clickyNodeToCommandRequest(node), [node]);\n const resolved = useMemo(\n () => resolveClickyCommand(request, runtime.commandRuntime, runtime.operations),\n [request, runtime.commandRuntime, runtime.operations],\n );\n const target = request.target ?? \"Dialog\";\n const hasRuntime = runtime.commandRuntime != null;\n const [dialogOpen, setDialogOpen] = useState(false);\n const [expanded, setExpanded] = useState(false);\n\n if (!hasRuntime) {\n return (\n <span title={node.tooltip?.plain} className={cn(node.style?.className)}>\n <ClickyInlineContent node={node} />\n </span>\n );\n }\n\n if (target === \"_self\" || target === \"_window\" || target === \"_tab\") {\n const href =\n runtime.commandRuntime?.hrefForCommand?.(resolved) ?? buildCommandExecutionHref(resolved);\n\n if (!href) {\n return (\n <span title={node.tooltip?.plain} className={cn(node.style?.className)}>\n <ClickyInlineContent node={node} />\n </span>\n );\n }\n\n return (\n <a\n href={href}\n target={browserAnchorTarget(target)}\n rel={target === \"_self\" ? undefined : \"noopener noreferrer\"}\n title={node.tooltip?.plain}\n style={toInlineStyle(node.style, node.text ?? node.plain)}\n className={cn(node.style?.className, \"inline cursor-pointer\")}\n >\n <ClickyInlineContent node={node} />\n </a>\n );\n }\n\n if (target === \"_clicky\") {\n return (\n <ClickyLinkCommandTrigger\n node={node}\n onClick={() => runtime.commandRuntime?.onNavigate?.(resolved)}\n />\n );\n }\n\n if (target === \"Hover\") {\n return (\n <HoverCard\n delay={75}\n cardClassName=\"w-[28rem] max-w-[calc(100vw-2rem)] whitespace-normal p-0\"\n trigger={<ClickyLinkCommandTrigger node={node} />}\n >\n <div className=\"max-h-[26rem] overflow-auto p-density-3\">\n <ClickyAsyncCommandResult resolved={resolved} />\n </div>\n </HoverCard>\n );\n }\n\n if (target === \"Expand\") {\n return (\n <span className=\"inline\">\n <ClickyLinkCommandTrigger\n node={node}\n ariaExpanded={expanded}\n onClick={() => setExpanded((current) => !current)}\n />\n {expanded && (\n <div className=\"mt-2 rounded-md border border-border bg-background p-density-3\">\n <ClickyAsyncCommandResult resolved={resolved} />\n </div>\n )}\n </span>\n );\n }\n\n return (\n <>\n <ClickyLinkCommandTrigger\n node={node}\n ariaExpanded={dialogOpen}\n onClick={() => setDialogOpen(true)}\n />\n <ClickyCommandDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n resolved={resolved}\n />\n </>\n );\n}\n\nfunction ClickyLinkCommandTrigger({\n node,\n onClick,\n ariaExpanded,\n}: {\n node: ClickyNode;\n onClick?: () => void;\n ariaExpanded?: boolean;\n}) {\n const inlineStyle = toInlineStyle(node.style, node.text ?? node.plain);\n\n const handleClick = (event: ReactMouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n onClick?.();\n };\n\n return (\n <button\n type=\"button\"\n title={node.tooltip?.plain}\n aria-expanded={ariaExpanded}\n onClick={handleClick}\n style={inlineStyle}\n className={cn(\n \"inline cursor-pointer appearance-none border-0 bg-transparent p-0 text-left align-baseline text-inherit\",\n node.style?.className,\n )}\n >\n <ClickyInlineContent node={node} />\n </button>\n );\n}\n\nfunction ClickyCommandDialog({\n open,\n onClose,\n resolved,\n}: {\n open: boolean;\n onClose: () => void;\n resolved: ClickyResolvedCommand;\n}) {\n const runtime = useContext(ClickyRuntimeContext);\n const operation = resolved.operation;\n const parameters = operation?.operation.parameters ?? [];\n const initialValues = useMemo(\n () => buildCommandParameterValues(parameters, resolved.request),\n [parameters, resolved.request],\n );\n const [result, setResult] = useState<unknown>(null);\n const [error, setError] = useState(\"\");\n const [isExecuting, setIsExecuting] = useState(false);\n const [hasAutoStarted, setHasAutoStarted] = useState(false);\n const shouldAutoRun =\n open &&\n resolved.request.autoRun === true &&\n operation != null &&\n missingRequiredParameters(parameters, initialValues).length === 0;\n\n useEffect(() => {\n if (!open) {\n setHasAutoStarted(false);\n setResult(null);\n setError(\"\");\n }\n }, [open, resolved.request.command]);\n\n async function runCommand(values: ParameterValues) {\n if (!runtime.commandRuntime || !operation) {\n return;\n }\n\n setIsExecuting(true);\n setError(\"\");\n\n try {\n const response = await executeClickyCommand(runtime.commandRuntime.client, operation, values);\n setResult(response);\n } catch (err) {\n setResult(null);\n setError(err instanceof Error ? err.message : String(err ?? \"Unknown error\"));\n } finally {\n setIsExecuting(false);\n }\n }\n\n useEffect(() => {\n if (!shouldAutoRun || hasAutoStarted) {\n return;\n }\n\n setHasAutoStarted(true);\n void runCommand(initialValues);\n }, [hasAutoStarted, initialValues, shouldAutoRun]);\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n title={operation?.operation.summary || resolved.request.command}\n size=\"xl\"\n >\n <div className=\"space-y-4\">\n {operation ? (\n <div className=\"flex flex-wrap items-center gap-3 text-xs text-muted-foreground\">\n <span className=\"rounded-md border border-border bg-muted px-2 py-1 font-medium uppercase\">\n {operation.method}\n </span>\n <code>{operation.path}</code>\n </div>\n ) : runtime.operationsLoading ? (\n <ClickyNotice title=\"Loading commands\" message=\"Resolving the command definition.\" />\n ) : (\n <ClickyNotice\n title=\"Unknown command\"\n message={`No operation matched \"${resolved.request.command}\".`}\n tone=\"destructive\"\n />\n )}\n\n {operation && (\n <div className=\"rounded-md border border-border bg-muted/20 p-density-3\">\n <FilterForm\n client={runtime.commandRuntime!.client}\n path={operation.path}\n method={operation.method}\n parameters={parameters}\n initialValues={initialValues}\n isSubmitting={isExecuting}\n submitLabel=\"Run command\"\n submittingLabel=\"Running…\"\n onSubmit={runCommand}\n />\n </div>\n )}\n\n {error ? (\n <ClickyNotice title=\"Command failed\" message={error} tone=\"destructive\" />\n ) : (\n <ClickyCommandResponse\n response={result}\n pending={isExecuting}\n emptyMessage=\"Run the command to load a Clicky response.\"\n />\n )}\n </div>\n </Modal>\n );\n}\n\nfunction ClickyAsyncCommandResult({ resolved }: { resolved: ClickyResolvedCommand }) {\n const runtime = useContext(ClickyRuntimeContext);\n const operation = resolved.operation;\n const parameters = operation?.operation.parameters ?? [];\n const initialValues = useMemo(\n () => buildCommandParameterValues(parameters, resolved.request),\n [parameters, resolved.request],\n );\n const missing = useMemo(\n () => missingRequiredParameters(parameters, initialValues),\n [initialValues, parameters],\n );\n\n const query = useQuery({\n queryKey: [\n \"clicky-command\",\n resolved.request.command,\n operation?.method,\n operation?.path,\n initialValues,\n ],\n enabled: runtime.commandRuntime != null && operation != null && missing.length === 0,\n retry: 0,\n queryFn: async () =>\n executeClickyCommand(runtime.commandRuntime!.client, operation!, initialValues),\n });\n\n if (!runtime.commandRuntime) {\n return (\n <ClickyNotice\n title=\"Command runtime unavailable\"\n message=\"This Clicky view was rendered without a command runtime.\"\n tone=\"warning\"\n />\n );\n }\n\n if (!operation) {\n if (runtime.operationsLoading) {\n return <ClickyNotice title=\"Loading commands\" message=\"Resolving the command definition.\" />;\n }\n return (\n <ClickyNotice\n title=\"Unknown command\"\n message={`No operation matched \"${resolved.request.command}\".`}\n tone=\"destructive\"\n />\n );\n }\n\n if (missing.length > 0) {\n return (\n <ClickyNotice\n title=\"Missing required parameters\"\n message={`This link is missing: ${missing.map((param) => prettifyName(param.name)).join(\", \")}.`}\n tone=\"warning\"\n />\n );\n }\n\n if (query.isPending) {\n return <ClickyNotice title=\"Running command\" message=\"Loading Clicky response…\" />;\n }\n\n if (query.isError) {\n return (\n <ClickyNotice\n title=\"Command failed\"\n message={query.error instanceof Error ? query.error.message : \"Request failed\"}\n tone=\"destructive\"\n />\n );\n }\n\n return <ClickyCommandResponse response={query.data} emptyMessage=\"No response body returned.\" />;\n}\n\nfunction ClickyCommandResponse({\n response,\n pending = false,\n emptyMessage,\n}: {\n response: unknown;\n pending?: boolean;\n emptyMessage: string;\n}) {\n if (pending) {\n return <ClickyNotice title=\"Running command\" message=\"Loading Clicky response…\" />;\n }\n\n if (!response) {\n return <ClickyNotice title=\"No response\" message={emptyMessage} />;\n }\n\n const parsedPayload = isExecutionResponse(response)\n ? (response.parsed ?? parseJsonBody(response))\n : response;\n const rawText = isExecutionResponse(response)\n ? response.stdout || response.output || response.message || \"\"\n : typeof response === \"string\"\n ? response\n : JSON.stringify(response, null, 2);\n const clickyPayload =\n typeof parsedPayload === \"string\" ||\n (parsedPayload != null && typeof parsedPayload === \"object\")\n ? parsedPayload\n : rawText;\n const parsedClicky =\n clickyPayload === \"\" ? null : parseClickyData(clickyPayload as ClickyProps[\"data\"]);\n\n if (parsedClicky?.ok) {\n return (\n <div className=\"rounded-md border border-border bg-background p-density-3\">\n <ClickyNodeRenderer node={parsedClicky.document.node} />\n </div>\n );\n }\n\n if (parsedPayload != null && typeof parsedPayload === \"object\") {\n return <ClickyJsonTree value={parsedPayload} />;\n }\n\n return <ClickyTextPreview title=\"Response body\" content={rawText} />;\n}\n\nfunction ClickyIconNode({ node }: { node: ClickyNode }) {\n const inlineStyle = toInlineStyle(node.style, node.plain ?? node.unicode);\n\n return (\n <span style={inlineStyle} title={node.tooltip?.plain} className=\"inline-flex items-center\">\n {node.iconify ? <Icon name={node.iconify} /> : <span>{node.unicode ?? node.plain}</span>}\n </span>\n );\n}\n\nfunction ClickyList({ node }: { node: ClickyNode }) {\n const items = node.items ?? [];\n if (items.length === 0) return null;\n\n if (node.inline) {\n return (\n <span className=\"inline-flex flex-wrap items-start gap-1\">\n {items.map((item, index) => (\n <Fragment key={index}>\n {index > 0 && <span className=\"text-muted-foreground\">,</span>}\n <span className=\"inline-flex items-center gap-1\">\n {!node.ordered && node.bullet && <ClickyNodeRenderer node={node.bullet} />}\n {node.ordered && <span className=\"text-muted-foreground\">{index + 1}.</span>}\n <ClickyNodeRenderer node={item} />\n </span>\n </Fragment>\n ))}\n </span>\n );\n }\n\n if (node.unstyled) {\n return (\n <div className=\"space-y-1\">\n {items.map((item, index) => (\n <div key={index} className=\"flex items-start gap-2\">\n {!node.ordered && node.bullet && <ClickyNodeRenderer node={node.bullet} />}\n {node.ordered && <span className=\"text-muted-foreground\">{index + 1}.</span>}\n <div className=\"min-w-0 flex-1\">\n <ClickyNodeRenderer node={item} />\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n const Tag = node.ordered ? \"ol\" : \"ul\";\n const listClass = node.ordered ? \"list-decimal\" : \"list-disc\";\n\n return (\n <Tag className={cn(\"ml-5 space-y-1 text-sm\", listClass)}>\n {items.map((item, index) => (\n <li key={index}>\n <ClickyNodeRenderer node={item} />\n </li>\n ))}\n </Tag>\n );\n}\n\nfunction ClickyMap({ node }: { node: ClickyNode }) {\n const fields = node.fields ?? [];\n if (fields.length === 0) return null;\n\n const inlineFields = fields.filter((field) => isInlineNode(field.value));\n const blockFields = fields.filter((field) => !isInlineNode(field.value));\n\n return (\n <div className=\"space-y-density-4\">\n {inlineFields.length > 0 && (\n <dl className=\"grid gap-density-3 md:grid-cols-2\">\n {inlineFields.map((field) => (\n <div key={field.name}>\n <dt className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {field.label || prettifyName(field.name)}\n </dt>\n <dd className=\"mt-1 text-sm text-foreground\">\n <ClickyNodeRenderer node={field.value} />\n </dd>\n </div>\n ))}\n </dl>\n )}\n\n {blockFields.map((field) => (\n <section key={field.name} className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {field.label || prettifyName(field.name)}\n </div>\n <div className=\"rounded-md border border-border bg-background p-density-3\">\n <ClickyNodeRenderer node={field.value} />\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nfunction ClickyTableNode({ node }: { node: ClickyNode }) {\n return (\n <ClickyTable\n columns={node.columns ?? []}\n rows={node.rows ?? []}\n {...(node.autoFilter !== undefined ? { autoFilter: node.autoFilter } : {})}\n />\n );\n}\n\nexport function ClickyTable({\n columns,\n rows,\n autoFilter,\n onTableRowClick,\n getTableRowHref,\n isTableRowClickable,\n search,\n timeRange,\n externalFilters,\n pagination,\n}: ClickyTableProps) {\n const runtime = useContext(ClickyRuntimeContext);\n const rowClick = onTableRowClick ?? runtime.onTableRowClick;\n const rowHref = getTableRowHref ?? runtime.getTableRowHref;\n const rowClickable = isTableRowClickable ?? runtime.isTableRowClickable;\n const effectiveSearch = search ?? runtime.tableSearch;\n const effectiveTimeRange = timeRange ?? runtime.tableTimeRange;\n const effectiveExternalFilters = externalFilters ?? runtime.tableExternalFilters;\n const effectivePagination = pagination ?? runtime.tablePagination;\n\n if (columns.length === 0 || rows.length === 0) {\n return <div className=\"text-sm text-muted-foreground\">No data</div>;\n }\n\n if (shouldRenderRowsAsCollapsedStructs(columns, rows)) {\n return <ClickyCollapsedStructRows columns={columns} rows={rows} />;\n }\n\n const tableColumns: DataTableColumn<ClickyRow>[] = columns.map((column) => {\n const tagColumn = isClickyTagColumn(column);\n const base: DataTableColumn<ClickyRow> = {\n key: `cells.${column.name}`,\n label: column.header ? (\n <ClickyNodeRenderer node={column.header} />\n ) : (\n column.label || prettifyName(column.name)\n ),\n ...(column.align ? { align: column.align } : {}),\n ...(column.sortable !== undefined ? { sortable: column.sortable } : {}),\n ...(column.filterable !== undefined ? { filterable: column.filterable } : {}),\n ...(column.grow !== undefined ? { grow: column.grow } : {}),\n ...(column.shrink !== undefined ? { shrink: column.shrink } : {}),\n };\n\n if (tagColumn) {\n return {\n ...base,\n kind: \"tags\",\n render: (value) => {\n const tags = clickyNodeTags(value as ClickyNode, column);\n return <TagList tags={tags} maxVisible={3} />;\n },\n sortValue: (value) => clickyNodeTags(value as ClickyNode, column).length,\n filterValue: (value) => clickyNodeTags(value as ClickyNode, column).map((tag) => tag.token),\n };\n }\n\n return {\n ...base,\n ...(column.kind ? { kind: column.kind } : {}),\n render: (value) => <ClickyNodeRenderer node={value as ClickyNode} />,\n sortValue: (value) => clickyNodeText(value as ClickyNode),\n filterValue: (value) => clickyNodeText(value as ClickyNode),\n };\n });\n\n const defaultSortColumn = columns.find((column) => column.sortable !== false) ?? columns[0];\n\n return (\n <DataTable<ClickyRow>\n data={rows}\n columns={tableColumns}\n {...(autoFilter !== undefined ? { autoFilter } : {})}\n {...(defaultSortColumn\n ? {\n defaultSort: {\n key: `cells.${defaultSortColumn.name}`,\n dir: \"asc\" as const,\n },\n }\n : {})}\n getRowId={(row, index) =>\n `${index}-${columns\n .map((column) => clickyNodeText(row.cells[column.name]))\n .filter(Boolean)\n .join(\"|\")}`\n }\n renderExpandedRow={(row, context) => (\n <ClickyTableRowDetail row={row} columns={columns} context={context} />\n )}\n {...(rowClick ? { onRowClick: rowClick } : {})}\n {...(rowHref ? { getRowHref: rowHref } : {})}\n {...(rowClick && (rowClickable || rowHref)\n ? {\n isRowClickable: rowClickable ?? ((row) => Boolean(rowHref?.(row))),\n }\n : {})}\n {...(effectiveSearch ? { externalSearch: effectiveSearch } : {})}\n {...(effectiveTimeRange ? { externalTimeRange: effectiveTimeRange } : {})}\n {...(effectiveExternalFilters ? { externalFilters: effectiveExternalFilters } : {})}\n {...(effectivePagination ? { pagination: effectivePagination } : {})}\n />\n );\n}\n\nfunction ClickyTableRowDetail({\n row,\n columns,\n context,\n}: {\n row: ClickyRow;\n columns: ClickyColumn[];\n context: DataTableRowDetailContext<ClickyRow>;\n}) {\n const tagFields = columns\n .map((column) => ({\n column,\n tags: clickyNodeTags(row.cells[column.name], column),\n tableKey: `cells.${column.name}`,\n }))\n .filter((field) => field.tags.length > 0);\n\n return (\n <div className=\"space-y-3\">\n {tagFields.length > 0 && (\n <section className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Tags\n </div>\n <div className=\"grid gap-2\">\n {tagFields.map(({ column, tags, tableKey }) => {\n const tagActions = context.tagActionsByColumn[tableKey];\n const content = <TagList tags={tags} maxVisible={tags.length} actions=\"inline\" />;\n\n return (\n <div\n key={column.name}\n className=\"grid gap-2 rounded-md border border-border bg-background p-2 md:grid-cols-[9rem_minmax(0,1fr)]\"\n >\n <div className=\"text-xs font-medium uppercase tracking-wide text-muted-foreground\">\n {column.label || prettifyName(column.name)}\n </div>\n <div className=\"min-w-0\">\n {tagActions ? (\n <TagActionsProvider value={tagActions}>{content}</TagActionsProvider>\n ) : (\n content\n )}\n </div>\n </div>\n );\n })}\n </div>\n </section>\n )}\n\n <section className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Fields\n </div>\n <dl className=\"grid gap-2 md:grid-cols-2\">\n {columns.map((column) => (\n <div key={column.name} className=\"rounded-md border border-border bg-background p-2\">\n <dt className=\"text-xs font-medium uppercase tracking-wide text-muted-foreground\">\n {column.label || prettifyName(column.name)}\n </dt>\n <dd className=\"mt-1 min-w-0 text-sm text-foreground\">\n <ClickyNodeRenderer node={row.cells[column.name]} />\n </dd>\n </div>\n ))}\n </dl>\n </section>\n\n {row.detail && (\n <section className=\"space-y-2\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Detail\n </div>\n <div className=\"rounded-md border border-border bg-background p-density-3\">\n <ClickyNodeRenderer node={row.detail} />\n </div>\n </section>\n )}\n </div>\n );\n}\n\nfunction ClickyCollapsedStructRows({\n columns,\n rows,\n}: {\n columns: ClickyColumn[];\n rows: ClickyRow[];\n}) {\n return (\n <div className=\"space-y-2\">\n {rows.map((row, index) => {\n const label = rowStructLabel(row, columns, index);\n const content = rowAsMap(row, columns);\n\n return (\n <details\n key={rowStructKey(row, columns, index)}\n className=\"rounded-md border border-border bg-background\"\n >\n <summary className=\"cursor-pointer px-3 py-2 text-sm font-medium text-foreground\">\n {label}\n </summary>\n <div className=\"border-t border-border p-3\">\n <ClickyMap node={content} />\n </div>\n </details>\n );\n })}\n </div>\n );\n}\n\nfunction shouldRenderRowsAsCollapsedStructs(columns: ClickyColumn[], rows: ClickyRow[]) {\n if (rows.length === 0) return false;\n\n return rows.every((row) => {\n const cells = columns.map((column) => row.cells[column.name]).filter(Boolean);\n if (cells.length === 0) return false;\n\n const complexCells = cells.filter(isStructCellNode);\n return complexCells.length > 0 && complexCells.length === cells.length;\n });\n}\n\nfunction isClickyTagColumn(column: ClickyColumn) {\n if (column.kind === \"tags\") return true;\n\n const normalized = column.name.toLowerCase();\n return /(^|[._-])(tags?|labels?|annotations?)$/.test(normalized);\n}\n\nfunction clickyNodeTags(node: ClickyNode | undefined, column: ClickyColumn): NormalizedTag[] {\n if (!isClickyTagColumn(column)) return [];\n\n const value = clickyNodeTagsValue(node);\n return normalizeTags(value);\n}\n\nfunction clickyNodeTagsValue(node: ClickyNode | undefined): TagsValue {\n if (!node) return [];\n\n if (node.kind === \"map\" && node.fields?.length) {\n return Object.fromEntries(\n node.fields\n .map((field) => [field.name, clickyNodeText(field.value)] as const)\n .filter(([, value]) => value.trim() !== \"\"),\n );\n }\n\n if (node.kind === \"list\" && node.items?.length) {\n return node.items.map((item) => clickyNodeText(item)).filter(Boolean);\n }\n\n const text = clickyNodeText(node).trim();\n if (!text) return [];\n\n return text\n .split(/[,\\s]+/)\n .map((value) => value.trim())\n .filter(Boolean);\n}\n\nfunction isStructCellNode(node: ClickyNode | undefined) {\n if (!node) return false;\n if (node.kind === \"map\") return (node.fields ?? []).length > 0;\n if (node.kind === \"table\") return (node.rows ?? []).length > 0;\n if (node.kind !== \"list\") return false;\n\n const items = node.items ?? [];\n return items.length > 0 && items.every(isStructCellNode);\n}\n\nfunction rowAsMap(row: ClickyRow, columns: ClickyColumn[]): ClickyNode {\n return {\n kind: \"map\",\n fields: columns.flatMap((column) => {\n const value = row.cells[column.name];\n if (!value) return [];\n return [\n {\n name: column.name,\n label: clickyNodeText(column.header) || column.label || prettifyName(column.name),\n value,\n },\n ];\n }),\n };\n}\n\nfunction rowStructLabel(row: ClickyRow, columns: ClickyColumn[], index: number) {\n const entityLabel = singularizeLabel(\n columns.find((column) => hasMeaningfulText(row.cells[column.name]))?.label ??\n columns[0]?.label ??\n columns[0]?.name ??\n \"Item\",\n );\n const title = rowTitle(row, columns);\n return title ? `${entityLabel} ${index + 1}: ${title}` : `${entityLabel} ${index + 1}`;\n}\n\nfunction rowStructKey(row: ClickyRow, columns: ClickyColumn[], index: number) {\n const title = rowTitle(row, columns);\n return `${index}-${title || columns.map((column) => clickyNodeText(row.cells[column.name])).join(\"|\")}`;\n}\n\nfunction rowTitle(row: ClickyRow, columns: ClickyColumn[]) {\n const preferredFieldNames = [\n \"name\",\n \"title\",\n \"agreementname\",\n \"companyname\",\n \"customernumber\",\n \"id\",\n \"guid\",\n ];\n\n for (const preferred of preferredFieldNames) {\n for (const column of columns) {\n const candidate = findFieldText(row.cells[column.name], preferred);\n if (candidate) return candidate;\n }\n }\n\n for (const column of columns) {\n const candidate = clickyNodeText(row.cells[column.name]).trim();\n if (candidate) return candidate;\n }\n\n return \"\";\n}\n\nfunction findFieldText(node: ClickyNode | undefined, preferredName: string): string {\n if (!node) return \"\";\n\n if (node.kind === \"map\") {\n for (const field of node.fields ?? []) {\n if (normalizeFieldName(field.name) === preferredName) {\n const text = clickyNodeText(field.value).trim();\n if (text) return text;\n }\n }\n }\n\n for (const field of node.fields ?? []) {\n const text = findFieldText(field.value, preferredName);\n if (text) return text;\n }\n\n for (const item of node.items ?? []) {\n const text = findFieldText(item, preferredName);\n if (text) return text;\n }\n\n return \"\";\n}\n\nfunction hasMeaningfulText(node: ClickyNode | undefined) {\n return Boolean(clickyNodeText(node).trim() || (node?.fields ?? []).length > 0);\n}\n\nfunction normalizeFieldName(name: string) {\n return name.toLowerCase().replace(/[^a-z0-9]/g, \"\");\n}\n\nfunction singularizeLabel(label: string) {\n const normalized = prettifyName(label).trim();\n return normalized.endsWith(\"s\") ? normalized.slice(0, -1) : normalized;\n}\n\nfunction ClickyTreeNode({ node }: { node: ClickyNode }) {\n const roots = node.roots ?? [];\n if (roots.length === 0) return null;\n\n return (\n <Tree<ClickyTreeItem>\n roots={roots}\n getChildren={(item) => item.children}\n getKey={(item) => item.id}\n defaultOpen={(_, depth) => depth < 1}\n renderRow={({ node: item }) => (\n <div className=\"min-w-0 flex-1 truncate\">\n <ClickyNodeRenderer node={item.label} />\n </div>\n )}\n />\n );\n}\n\nfunction isBadgeShape(value: string | undefined): value is BadgeShape {\n return value === \"pill\" || value === \"rounded\" || value === \"square\";\n}\n\nfunction ClickyBadgeNode({ node }: { node: ClickyNode }) {\n const props: ComponentProps<typeof Badge> = { variant: \"label\" };\n if (node.badgeLabel !== undefined) props.label = node.badgeLabel;\n if (node.badgeValue !== undefined) props.value = node.badgeValue;\n if (node.badgeColor !== undefined) props.color = node.badgeColor;\n if (node.badgeText !== undefined) props.textColor = node.badgeText;\n if (node.badgeIcon !== undefined) props.icon = node.badgeIcon;\n if (isBadgeShape(node.badgeShape)) props.shape = node.badgeShape;\n return <Badge {...props} />;\n}\n\nfunction ClickyStackTraceNode({ node }: { node: ClickyNode }) {\n const input = {\n causedBy: node.causedBy ?? [],\n frames: node.frames ?? [],\n language: \"java\" as const,\n ...(node.exceptionClass !== undefined ? { exceptionClass: node.exceptionClass } : {}),\n ...(node.message !== undefined ? { message: node.message } : {}),\n };\n\n return <StackTrace input={input} className=\"space-y-1\" />;\n}\n\nfunction ClickyCollapsed({ node }: { node: ClickyNode }) {\n return (\n <details className=\"rounded-md border border-border bg-background\">\n <summary className=\"cursor-pointer px-3 py-2 text-sm font-medium text-foreground\">\n <ClickyNodeRenderer node={node.label} />\n </summary>\n {node.content && (\n <div className=\"border-t border-border px-3 py-3\">\n <ClickyNodeRenderer node={node.content} />\n </div>\n )}\n </details>\n );\n}\n\nfunction ClickyButtonNode({ node }: { node: ClickyNode }) {\n const title = [node.id, node.payload].filter(Boolean).join(\"\\n\") || undefined;\n const content = node.label ? <ClickyNodeRenderer node={node.label} /> : node.text;\n\n if (node.href) {\n return (\n <a\n href={node.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title={title}\n className=\"inline-flex items-center rounded-md border border-border bg-background px-3 py-1.5 text-sm font-medium text-foreground hover:bg-accent\"\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n title={title}\n className=\"inline-flex items-center rounded-md border border-border bg-muted px-3 py-1.5 text-sm font-medium text-foreground\"\n >\n {content}\n </button>\n );\n}\n\nfunction ClickyButtonGroup({ node }: { node: ClickyNode }) {\n const items = node.items ?? [];\n if (items.length === 0) return null;\n\n return (\n <div className=\"flex flex-wrap gap-2\">\n {items.map((item, index) => (\n <ClickyNodeRenderer key={index} node={item} />\n ))}\n </div>\n );\n}\n\nfunction ClickyHtmlNode({ node }: { node: ClickyNode }) {\n const sanitized = sanitizeHtml(node.html ?? \"\");\n if (!sanitized) return null;\n\n const Tag = isBlockHtml(sanitized) ? \"div\" : \"span\";\n return <Tag dangerouslySetInnerHTML={{ __html: sanitized }} />;\n}\n\nfunction toInlineStyle(style?: ClickyStyle, text?: string): CSSProperties | undefined {\n if (!style) return text?.includes(\"\\n\") ? { whiteSpace: \"pre-wrap\" } : undefined;\n\n const inlineStyle: CSSProperties = {};\n\n if (style.color) inlineStyle.color = style.color;\n if (style.backgroundColor) inlineStyle.backgroundColor = style.backgroundColor;\n if (style.bold) inlineStyle.fontWeight = 700;\n if (style.faint) inlineStyle.opacity = 0.7;\n if (style.italic) inlineStyle.fontStyle = \"italic\";\n\n const decorations: string[] = [];\n if (style.underline) decorations.push(\"underline\");\n if (style.strikethrough) decorations.push(\"line-through\");\n if (decorations.length > 0) inlineStyle.textDecoration = decorations.join(\" \");\n\n if (\n style.textTransform === \"uppercase\" ||\n style.textTransform === \"lowercase\" ||\n style.textTransform === \"capitalize\"\n ) {\n inlineStyle.textTransform = style.textTransform;\n }\n\n if (style.maxWidth && style.maxWidth > 0) {\n inlineStyle.maxWidth = `${style.maxWidth}ch`;\n }\n\n if (style.maxLines && style.maxLines > 0) {\n inlineStyle.display = \"-webkit-box\";\n inlineStyle.overflow = \"hidden\";\n inlineStyle.WebkitLineClamp = style.maxLines;\n inlineStyle.WebkitBoxOrient = \"vertical\";\n inlineStyle.whiteSpace = \"pre-wrap\";\n }\n\n if (\n style.truncateMode === \"suffix\" &&\n style.maxWidth &&\n (!style.maxLines || style.maxLines <= 1)\n ) {\n inlineStyle.overflow = \"hidden\";\n inlineStyle.textOverflow = \"ellipsis\";\n inlineStyle.whiteSpace = \"nowrap\";\n inlineStyle.display = \"inline-block\";\n inlineStyle.verticalAlign = \"bottom\";\n }\n\n if (style.monospace) {\n inlineStyle.fontFamily =\n 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace';\n }\n\n if (!inlineStyle.whiteSpace && text?.includes(\"\\n\")) {\n inlineStyle.whiteSpace = \"pre-wrap\";\n }\n\n return Object.keys(inlineStyle).length > 0 ? inlineStyle : undefined;\n}\n\nfunction prettifyName(name: string): string {\n return name\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (value) => value.toUpperCase());\n}\n\nfunction clickyNodeToCommandRequest(node: ClickyNode): ClickyCommandRequest {\n return {\n command: node.command ?? \"\",\n args: node.args ?? [],\n flags: node.flags ?? {},\n target: node.target ?? \"Dialog\",\n autoRun: node.autoRun ?? false,\n };\n}\n\nfunction resolveClickyCommand(\n request: ClickyCommandRequest,\n runtime: ClickyCommandRuntime | undefined,\n operations: ResolvedOperation[],\n): ClickyResolvedCommand {\n const resolved =\n runtime?.resolveCommand?.(request, operations) ??\n defaultResolveClickyCommand(request, operations);\n return { request, operation: resolved };\n}\n\nfunction defaultResolveClickyCommand(\n request: ClickyCommandRequest,\n operations: ResolvedOperation[],\n): ResolvedOperation | undefined {\n const wanted = normalizeCommandPath(request.command);\n if (!wanted) return undefined;\n\n return operations.find((operation) => {\n const metaCommand = normalizeCommandPath(operation.operation[\"x-clicky\"]?.command);\n if (metaCommand && metaCommand === wanted) {\n return true;\n }\n\n const operationId = normalizeCommandPath(operation.operation.operationId?.replaceAll(\"_\", \"/\"));\n return operationId === wanted;\n });\n}\n\nfunction normalizeCommandPath(value: string | undefined) {\n return (value ?? \"\")\n .trim()\n .replace(/^\\//, \"\")\n .replace(/\\s+/g, \"/\")\n .replace(/\\/+/g, \"/\")\n .toLowerCase();\n}\n\nfunction buildCommandParameterValues(\n parameters: OpenAPIParameter[],\n request: ClickyCommandRequest,\n): ParameterValues {\n const values: ParameterValues = { ...request.flags };\n const args = [...(request.args ?? [])];\n const positionalParams = parameters.filter((param) => isPositionalParam(param));\n let argIndex = 0;\n\n for (const param of positionalParams) {\n if (param.name === \"args\") {\n const remaining = args.slice(argIndex);\n if (remaining.length > 0) {\n values.args = remaining.join(\",\");\n }\n argIndex = args.length;\n continue;\n }\n\n if (argIndex < args.length) {\n values[param.name] = args[argIndex] ?? \"\";\n argIndex += 1;\n }\n }\n\n return values;\n}\n\nfunction missingRequiredParameters(parameters: OpenAPIParameter[], values: ParameterValues) {\n return parameters.filter((param) => param.required && (values[param.name] ?? \"\").trim() === \"\");\n}\n\nasync function executeClickyCommand(\n client: OperationsApiClient,\n operation: ResolvedOperation,\n values: ParameterValues,\n) {\n return client.executeCommand(\n operation.path,\n operation.method,\n packParameterValues(pruneParameterValues(values), operation.operation.parameters ?? []),\n { Accept: \"application/json+clicky\" },\n );\n}\n\nfunction buildCommandExecutionHref(resolved: ClickyResolvedCommand): string | undefined {\n const operation = resolved.operation;\n if (!operation) {\n return undefined;\n }\n\n const values = buildCommandParameterValues(\n operation.operation.parameters ?? [],\n resolved.request,\n );\n const params = packParameterValues(\n pruneParameterValues(values),\n operation.operation.parameters ?? [],\n );\n const url = substituteOperationPath(operation.path, params);\n\n if (operation.method.toUpperCase() !== \"GET\") {\n return url;\n }\n\n return url;\n}\n\nfunction substituteOperationPath(path: string, params: Record<string, string>) {\n const url = new URL(path, \"http://localhost\");\n const remaining = { ...params };\n\n for (const [key, value] of Object.entries(params)) {\n if (url.pathname.includes(`{${key}}`)) {\n url.pathname = url.pathname.replace(`{${key}}`, encodeURIComponent(value));\n delete remaining[key];\n }\n }\n\n for (const [key, value] of Object.entries(remaining)) {\n url.searchParams.set(key, value);\n }\n\n return `${url.pathname}${url.search}`;\n}\n\nfunction browserAnchorTarget(target: ClickyLinkTarget | undefined) {\n if (target === \"_self\") {\n return \"_self\";\n }\n\n if (target === \"_window\" || target === \"_tab\") {\n return \"_blank\";\n }\n\n return undefined;\n}\n\nfunction isExecutionResponse(value: unknown): value is ExecutionResponse {\n return (\n value != null &&\n typeof value === \"object\" &&\n (\"stdout\" in value || \"output\" in value || \"message\" in value)\n );\n}\n\nfunction clickyNodeText(node: ClickyNode | null | undefined): string {\n if (!node) return \"\";\n if (node.plain) return node.plain;\n if (node.text) return node.text;\n if (node.kind === \"html\")\n return sanitizeHtml(node.html ?? \"\")\n .replace(/<[^>]+>/g, \" \")\n .trim();\n if (node.kind === \"code\") return node.source ?? \"\";\n if ((node.kind === \"link\" || node.kind === \"link-command\") && node.children?.length) {\n return [node.text, ...node.children.map((child) => clickyNodeText(child))].join(\"\");\n }\n if (node.kind === \"button\" && node.label) return clickyNodeText(node.label);\n if (node.kind === \"button-group\") {\n return (node.items ?? []).map((item) => clickyNodeText(item)).join(\" \");\n }\n if (node.kind === \"text\" && node.children?.length) {\n return [node.text, ...node.children.map((child) => clickyNodeText(child))].join(\"\");\n }\n return \"\";\n}\n\nfunction isInlineNode(node: ClickyNode): boolean {\n return (\n node.kind === \"text\" ||\n node.kind === \"link\" ||\n node.kind === \"link-command\" ||\n node.kind === \"icon\" ||\n node.kind === \"html\" ||\n node.kind === \"button\" ||\n node.kind === \"button-group\"\n );\n}\n"],"names":["Fragment","_b","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0NA,MAAM,8BAA8B,CAAC,UAAU,MAAM;AACrD,MAAM,+BAA+B;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,MAAM,0BAA0B,CAAC,QAAQ,UAAU,GAAG,4BAA4B;AA8GlF,MAAM,8BAAyD;AAAA,EAC7D,YAAY,CAAA;AAAA,EACZ,mBAAmB;AACrB;AAEA,MAAM,uBAAuB,cAAyC,2BAA2B;AAE1F,SAAS,OAAO,OAAoB;AACzC,QAAM,CAAC,WAAW,IAAI;AAAA,IACpB,MACE,IAAI,YAAY;AAAA,MACd,gBAAgB;AAAA,QACd,SAAS;AAAA,UACP,WAAW;AAAA,UACX,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,IACF,CACD;AAAA,EAAA;AAGL,QAAM,UACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAI,MAAM,iBAAiB,EAAE,gBAAgB,MAAM,eAAA,IAAmB,CAAA;AAAA,MACtE,GAAI,MAAM,kBAAkB,EAAE,iBAAiB,MAAM,gBAAA,IAAoB,CAAA;AAAA,MACzE,GAAI,MAAM,kBAAkB,EAAE,iBAAiB,MAAM,gBAAA,IAAoB,CAAA;AAAA,MACzE,GAAI,MAAM,sBAAsB,EAAE,qBAAqB,MAAM,oBAAA,IAAwB,CAAA;AAAA,MACrF,GAAI,MAAM,SAAS,EAAE,aAAa,MAAM,OAAA,IAAW,CAAA;AAAA,MACnD,GAAI,MAAM,YAAY,EAAE,gBAAgB,MAAM,UAAA,IAAc,CAAA;AAAA,MAC5D,GAAI,MAAM,kBAAkB,EAAE,sBAAsB,MAAM,gBAAA,IAAoB,CAAA;AAAA,MAC9E,GAAI,MAAM,aAAa,EAAE,iBAAiB,MAAM,WAAA,IAAe,CAAA;AAAA,MAE/D,UAAA,MAAM,MACL,oBAAC,sBAAA,EAAsB,GAAG,OAAO,KAAK,MAAM,IAAA,CAAK,IAEjD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM,MAAM;AAAA,UACX,GAAI,MAAM,YAAY,EAAE,WAAW,MAAM,UAAA,IAAc,CAAA;AAAA,QAAC;AAAA,MAAA;AAAA,IAC3D;AAAA,EAAA;AAKN,MAAI,MAAM,OAAO,MAAM,gBAAgB;AACrC,WAAO,oBAAC,qBAAA,EAAoB,QAAQ,aAAc,UAAA,SAAQ;AAAA,EAC5D;AAEA,SAAO;AACT;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAUG;AACD,MAAI,CAAC,gBAAgB;AACnB,UAAM,eACJ,mBACA,mBACA,uBACA,eACA,kBACA,wBACA;AACF,WACE;AAAA,MAAC,qBAAqB;AAAA,MAArB;AAAA,QACC,OACE,eACI;AAAA,UACE,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,IAEF;AAAA,QAGL;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACC,GAAI,kBAAkB,EAAE,gBAAA,IAAoB,CAAA;AAAA,MAC5C,GAAI,kBAAkB,EAAE,gBAAA,IAAoB,CAAA;AAAA,MAC5C,GAAI,sBAAsB,EAAE,oBAAA,IAAwB,CAAA;AAAA,MACpD,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,MACpC,GAAI,iBAAiB,EAAE,eAAA,IAAmB,CAAA;AAAA,MAC1C,GAAI,uBAAuB,EAAE,qBAAA,IAAyB,CAAA;AAAA,MACtD,GAAI,kBAAkB,EAAE,gBAAA,IAAoB,CAAA;AAAA,MAE5C;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS,6BAA6B;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAUG;AACD,QAAM,EAAE,YAAY,UAAA,IAAc,cAAc,eAAe,MAAM;AACrE,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,IAAA;AAAA,IAErB;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,SAAO,oBAAC,qBAAqB,UAArB,EAA8B,OAAe,SAAA,CAAS;AAChE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AACF,GAGG;AACD,MAAI,SAAS,QAAW;AACtB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,OAAM;AAAA,QACN,SAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGd;AAEA,QAAM,SAAS,gBAAgB,IAAI;AAEnC,MAAI,CAAC,OAAO,IAAI;AACd,WAAO,oBAAC,sBAAA,EAAqB,QAAgB,UAAA,CAAsB;AAAA,EACrE;AAEA,SACE,oBAAC,SAAI,WACH,UAAA,oBAAC,sBAAmB,MAAM,OAAO,SAAS,KAAA,CAAM,EAAA,CAClD;AAEJ;AAEA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAkC;;AAChC,QAAM,iBAAiB,QAAQ,MAAM,kBAAkB,EAAE,MAAM,KAAK,KAAA,CAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC;AAC9F,QAAM,eAAe,QAAQ,MAAM,eAAe,OAAO,mBAAmB,GAAG,CAAC,cAAc,CAAC;AAC/F,QAAM,gBAAgB;AAAA,IACpB,MAAM,eAAe,OAAO,oBAAoB;AAAA,IAChD,CAAC,cAAc;AAAA,EAAA;AAEjB,QAAM,kBAAkB,QAAQ,MAAM,mBAAmB,EAAE,KAAK,SAAA,CAAU,GAAG,CAAC,UAAU,GAAG,CAAC;AAC5F,QAAM,CAAC,YAAY,aAAa,IAAI;AAAA,IAClC,MAAM,eAAe,CAAC,KAAK;AAAA,EAAA;AAG7B,YAAU,MAAM;AACd,QAAI,CAAC,eAAe,SAAS,UAAU,GAAG;AACxC,oBAAc,eAAe,CAAC,KAAK,QAAQ;AAAA,IAC7C;AAAA,EACF,GAAG,CAAC,YAAY,cAAc,CAAC;AAE/B,QAAM,eAAe,eAAe,KAAK,UAAU;AACnD,QAAM,cAAc,SAAS;AAAA,IAC3B,UAAU,CAAC,UAAU,YAAY,YAAY;AAAA,IAC7C,SAAS,sBAAsB,UAAU;AAAA,IACzC,SAAS,YAAY,kBAAkB,cAAc,UAAU;AAAA,EAAA,CAChE;AACD,QAAM,sBACJ,eAAe,cAAY,iBAAY,SAAZ,mBAAkB,UAAS,SAAS,YAAY,KAAK,OAAO;AACzF,QAAM,mBAAmB,QAAQ,MAAM,eAAe,IAAI,GAAG,CAAC,IAAI,CAAC;AACnE,QAAM,oBACJ,eAAe,YAAU,iBAAY,SAAZ,mBAAkB,UAAS,SAChD,eAAe,YAAY,KAAK,IAAI,IACpC;AACN,QAAM,qBAAqB,qBAAqB,UAAU,IAAI,aAAa;AAC3E,QAAM,cAAc,gBAAgB,SAAS;AAC7C,QAAM,iBAAiB,YAAY,YAAY;AAE/C,8BACG,OAAA,EAAI,WAAW,GAAG,qBAAqB,SAAS,GAC/C,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,2GACZ,UAAA;AAAA,MAAA,aAAa,SAAS,KACrB,oBAAC,OAAA,EAAI,MAAK,cAAa,cAAW,oBAAmB,WAAU,wBAC5D,UAAA,aAAa,IAAI,CAAC,SACjB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,MAAK;AAAA,UACL,MAAK;AAAA,UACL,gBAAc,eAAe;AAAA,UAC7B,SAAS,MAAM,cAAc,IAAI;AAAA,UACjC,WAAW;AAAA,YACT;AAAA,YACA,eAAe,OACX,mDACA;AAAA,UAAA;AAAA,UAGL,0BAAgB,IAAI;AAAA,QAAA;AAAA,QAZhB;AAAA,MAAA,CAcR,GACH;AAAA,MAGD,cAAc,SAAS,KACtB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAc;AAAA,UACd,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAId,qBAAC,OAAA,EAAI,WAAU,mCACZ,UAAA;AAAA,QAAA,sBAAsB,UAAU,KAAK,YAAY,kCAC/C,QAAA,EAAK,WAAU,iCAAgC,UAAA,cAAA,CAAW;AAAA,QAG5D,mCACE,oBAAA,EAAmB,KAAU,SAAS,iBAAiB,OAAO,qCAAU,MAAA,CAAO;AAAA,MAAA,EAAA,CAEpF;AAAA,IAAA,GACF;AAAA,IAEC,eAAe,QACd,oBAAC,kBAAA,EAAiB,KAAK,aAAA,CAAc,IACnC,eAAe,6BAChB,mBAAA,EAAkB,KAAK,aAAA,CAAc,IACpC,eAAe,UACjB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,IAAA,IAEN,eAAe,WACjB,YAAY,aAAa,wBAAwB,SAC/C,oBAAC,cAAA,EAAa,OAAM,kBAAiB,SAAS,gBAAgB,IAC5D,YAAY,WAAW,wBAAwB,SACjD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SACE,YAAY,iBAAiB,QAAQ,YAAY,MAAM,UAAU;AAAA,QAEnE,MAAK;AAAA,MAAA;AAAA,IAAA,IAGP,qBAAA,UAAA,EACG,UAAA;AAAA,MAAA,YAAY,WAAW,SAAS,UAC/B;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,SAAQ;AAAA,UACR,MAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAGT,oBAAC,eAAA,EAAc,MAAM,oBAAA,CAAqB;AAAA,IAAA,GAC5C,IAEA,eAAe,SACjB,YAAY,aAAa,sBAAsB,SAC7C,oBAAC,cAAA,EAAa,OAAM,gBAAe,SAAS,eAAA,CAAgB,IAC1D,YAAY,WAAW,sBAAsB,SAC/C;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SACE,YAAY,iBAAiB,QAAQ,YAAY,MAAM,UAAU;AAAA,QAEnE,MAAK;AAAA,MAAA;AAAA,IAAA,IAGP,qBAAA,UAAA,EACG,UAAA;AAAA,MAAA,YAAY,WAAW,qBAAqB,UAC3C;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,SAAQ;AAAA,UACR,MAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAGT,oBAAC,gBAAA,EAAe,OAAO,kBAAA,CAAmB;AAAA,IAAA,EAAA,CAC5C,IAEA,YAAY,YACd,oBAAC,gBAAa,OAAO,WAAW,gBAAgB,UAAU,CAAC,IAAI,SAAS,eAAA,CAAgB,IACtF,YAAY,UACd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,GAAG,gBAAgB,UAAU,CAAC;AAAA,QACrC,SACE,YAAY,iBAAiB,QAAQ,YAAY,MAAM,UAAU;AAAA,QAEnE,MAAK;AAAA,MAAA;AAAA,IAAA,IAGP,oBAAC,qBAAA,EAAoB,QAAQ,YAAY,UAAU,YAAY,KAAA,CAAM;AAAA,EAAA,GAEzE;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,UAAU,OAAuB,IAAI;AAC3C,QAAM,aAAa,OAA0B,IAAI;AACjD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AAEtC,sBAAoB,MAAM,SAAS,YAAY,MAAM,QAAQ,KAAK,CAAC;AAEnE,SACE,qBAAC,OAAA,EAAI,KAAK,SAAS,WAAU,YAC3B,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,MAAK;AAAA,QACL,cAAW;AAAA,QACX,iBAAc;AAAA,QACd,iBAAe;AAAA,QACf,gBAAc,gBAAgB;AAAA,QAC9B,WAAW;AAAA,UACT;AAAA,UACA,gBAAgB;AAAA,QAAA;AAAA,QAElB,SAAS,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO;AAAA,QAE5C,UAAA,oBAAC,MAAA,EAAK,MAAM,YAAY,WAAU,UAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAG7C,QACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QAET,UAAA,QAAQ,IAAI,CAAC,WAAW;AACvB,gBAAM,SAAS,WAAW;AAC1B,gBAAM,OAAO,oBAAoB,MAAM;AACvC,iBACE;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,MAAK;AAAA,cACL,MAAK;AAAA,cACL,gBAAc;AAAA,cACd,WAAW;AAAA,gBACT;AAAA,gBACA,UAAU;AAAA,cAAA;AAAA,cAEZ,SAAS,MAAM;AACb,yBAAS,MAAM;AACf,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEA,UAAA;AAAA,gBAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAM,KAAK;AAAA,oBACX,WAAW;AAAA,sBACT;AAAA,sBACA,UAAU;AAAA,oBAAA;AAAA,kBACZ;AAAA,gBAAA;AAAA,gBAEF,qBAAC,QAAA,EAAK,WAAU,kBACd,UAAA;AAAA,kBAAA,qBAAC,QAAA,EAAK,WAAU,2CACd,UAAA;AAAA,oBAAA,oBAAC,QAAA,EAAK,WAAU,eAAe,UAAA,KAAK,OAAM;AAAA,oBACzC,UAAU,oBAAC,MAAA,EAAK,MAAM,SAAS,WAAU,gCAAA,CAAgC;AAAA,kBAAA,GAC5E;AAAA,kBACA,oBAAC,QAAA,EAAK,WAAU,8CACb,eAAK,YAAA,CACR;AAAA,gBAAA,EAAA,CACF;AAAA,cAAA;AAAA,YAAA;AAAA,YA5BK;AAAA,UAAA;AAAA,QA+BX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GAEJ;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,UAAU,OAAuB,IAAI;AAC3C,QAAM,aAAa,OAA0B,IAAI;AACjD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,gBAAoC;AAC1C,QAAM,cAAc,oBAAoB,aAAa;AAErD,sBAAoB,MAAM,SAAS,YAAY,MAAM,QAAQ,KAAK,CAAC;AAEnE,SACE,qBAAC,OAAA,EAAI,KAAK,SAAS,WAAU,YAC3B,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,cACE,QAAQ,YAAY,YAAY,KAAK,IAAI,KAAK,KAAK,YAAY,YAAY,KAAK;AAAA,UAElF,WAAU;AAAA,UACV,SAAS,MAAM,sBAAsB,eAAe,KAAK,aAAa,CAAC;AAAA,UAEvE,UAAA;AAAA,YAAA,oBAAC,MAAA,EAAK,MAAM,iBAAiB,WAAU,WAAU;AAAA,YACjD,oBAAC,QAAA,EAAM,UAAA,YAAY,YAAY,KAAK,GAAA,CAAG;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEzC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK;AAAA,UACL,MAAK;AAAA,UACL,cAAW;AAAA,UACX,iBAAc;AAAA,UACd,iBAAe;AAAA,UACf,WAAU;AAAA,UACV,SAAS,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO;AAAA,UAE5C,8BAAC,MAAA,EAAK,MAAM,OAAO,cAAc,eAAe,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACtE,GACF;AAAA,IAEC,QACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QAET,UAAA,QAAQ,IAAI,CAAC,WAAW;AACvB,gBAAM,OAAO,oBAAoB,MAAM;AACvC,iBACE;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,MAAK;AAAA,cACL,MAAK;AAAA,cACL,WAAW;AAAA,gBACT;AAAA,cAAA;AAAA,cAEF,SAAS,MAAM;AACb,sCAAsB,eAAe,KAAK,MAAM,CAAC;AACjD,wBAAQ,KAAK;AAAA,cACf;AAAA,cAEA,UAAA;AAAA,gBAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAM,KAAK;AAAA,oBACX,WAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEZ,qBAAC,QAAA,EAAK,WAAU,kBACd,UAAA;AAAA,kBAAA,oBAAC,QAAA,EAAK,WAAU,eAAe,UAAA,KAAK,OAAM;AAAA,kBAC1C,oBAAC,QAAA,EAAK,WAAU,8CACb,eAAK,YAAA,CACR;AAAA,gBAAA,EAAA,CACF;AAAA,cAAA;AAAA,YAAA;AAAA,YApBK;AAAA,UAAA;AAAA,QAuBX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GAEJ;AAEJ;AAEA,SAAS,oBACP,MACA,SACA,YACA,SACA;AACA,YAAU,MAAM;AACd,QAAI,CAAC,KAAM;AAEX,UAAM,gBAAgB,CAAC,UAAsB;;AAC3C,UAAI,GAAC,aAAQ,YAAR,mBAAiB,SAAS,MAAM,UAAiB;AACpD,gBAAA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,YAAY,CAAC,UAAyB;;AAC1C,UAAI,MAAM,QAAQ,UAAU;AAC1B,gBAAA;AACA,yBAAW,YAAX,mBAAoB;AAAA,MACtB;AAAA,IACF;AAEA,aAAS,iBAAiB,aAAa,aAAa;AACpD,aAAS,iBAAiB,WAAW,SAAS;AAC9C,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,aAAa;AACvD,eAAS,oBAAoB,WAAW,SAAS;AAAA,IACnD;AAAA,EACF,GAAG,CAAC,SAAS,MAAM,SAAS,UAAU,CAAC;AACzC;AAEO,SAAS,gBAAgB,MAAyC;AACvE,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI;AACF,aAAO,wBAAwB,KAAK,MAAM,IAAI,CAAY;AAAA,IAC5D,SAAS,OAAO;AACd,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,SAAS,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QAClD,KAAK;AAAA,MAAA;AAAA,IAET;AAAA,EACF;AAEA,SAAO,wBAAwB,IAAI;AACrC;AAEA,SAAS,kBAAkB,KAAa,QAA2D;AACjG,SAAO,MAAM,KAAK;AAAA,IAChB,SAAS;AAAA,MACP,QAAQ,oBAAoB,MAAM,EAAE;AAAA,IAAA;AAAA,EACtC,CACD,EAAE,KAAK,OAAO,aAAa;AAC1B,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,IAAI,SAAS,UAAU,GAAG,KAAA,CAAM;AAAA,IACxF;AAEA,UAAM,cAAc,SAAS,QAAQ,IAAI,cAAc,KAAK;AAE5D,QAAI,WAAW,SAAS;AACtB,aAAO;AAAA,QACL,MAAM;AAAA,QACN,MAAM,MAAM,SAAS,KAAA;AAAA,QACrB;AAAA,MAAA;AAAA,IAEJ;AAEA,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,MAAM,SAAS,KAAA;AAAA,MACrB;AAAA,IAAA;AAAA,EAEJ,CAAC;AACH;AAEA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA;AACF,GAGG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,oBAAC,OAAA,EAAI,WAAU,wCAAuC,UAAA,0BAAsB;AAAA,QAC5E,qBAAC,OAAA,EAAI,WAAU,oEACZ,UAAA;AAAA,UAAA,OAAO;AAAA,UACP,OAAO,MAAM;AAAA;AAAA,EAAO,OAAO,GAAG,KAAK;AAAA,QAAA,EAAA,CACtC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AACF,GAKG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,SAAS,iBAAiB;AAAA,QAC1B,SAAS,aAAa;AAAA,QACtB,SAAS,aAAa;AAAA,QACtB;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,SAAS,iBAAiB;AAAA,cAC1B,SAAS,aAAa;AAAA,YAAA;AAAA,YAGvB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEH,oBAAC,OAAA,EAAI,WAAU,sCAAsC,UAAA,QAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnE;AAEA,SAAS,iBAAiB,EAAE,OAAwB;AAClD,SACE,qBAAC,OAAA,EAAI,WAAU,iEACb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,oGACb,UAAA;AAAA,MAAA,oBAAC,UAAK,UAAA,cAAA,CAAW;AAAA,MACjB,oBAAC,KAAA,EAAE,MAAM,KAAK,QAAO,UAAS,KAAI,cAAa,WAAU,gCAA+B,UAAA,kBAAA,CAExF;AAAA,IAAA,GACF;AAAA,wBACC,UAAA,EAAO,OAAM,sBAAqB,KAAU,WAAU,4BAAA,CAA4B;AAAA,EAAA,GACrF;AAEJ;AAEA,SAAS,kBAAkB,EAAE,OAAwB;AACnD,SACE,qBAAC,OAAA,EAAI,WAAU,iEACb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,oGACb,UAAA;AAAA,MAAA,oBAAC,UAAK,UAAA,eAAA,CAAY;AAAA,MAClB,oBAAC,KAAA,EAAE,MAAM,KAAK,QAAO,UAAS,KAAI,cAAa,WAAU,gCAA+B,UAAA,kBAAA,CAExF;AAAA,IAAA,GACF;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN;AAAA,QACA,WAAU;AAAA,QACV,SAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EACV,GACF;AAEJ;AAEA,SAAS,yBAAyB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,SACE,qBAAA,UAAA,EACE,UAAA;AAAA,QAAA,qBAAC,QAAA,EAAM,UAAA;AAAA,UAAA;AAAA,UAAQ;AAAA,QAAA,GAAC;AAAA,QAChB,oBAAC,OAAE,MAAY,QAAO,UAAS,KAAI,cAAa,WAAU,gCAA+B,UAAA,cAAA,CAEzF;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA;AACF,GAGG;AACD,QAAM,OAAO,oBAAoB,MAAM;AAEvC,MAAI,WAAW,SAAS;AACtB,UAAM,UAAS,qCAAU,UAAS,SAAS,eAAe,SAAS,IAAI,IAAI;AAC3E,+BAAQ,gBAAA,EAAe,OAAO,QAAQ,YAAY,KAAK,OAAO;AAAA,EAChE;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,GAAG,KAAK,KAAK;AAAA,MACpB,UAAS,qCAAU,UAAS,SAAS,SAAS,OAAO;AAAA,IAAA;AAAA,EAAA;AAG3D;AAEA,SAAS,kBAAkB,EAAE,OAAO,WAA+C;AACjF,SACE,qBAAC,OAAA,EAAI,WAAU,iEACb,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,kEAAkE,UAAA,OAAM;AAAA,IACvF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAW;AAAA,QACX,WAAU;AAAA,QAET,UAAA,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EACd,GACF;AAEJ;AAEA,SAAS,eAAe,EAAE,OAAO,aAAa,UAAmD;AAC/F,QAAM,QAAQ,QAAQ,MAAM,cAAc,KAAK,GAAG,CAAC,KAAK,CAAC;AAEzD,MAAI,UAAU,QAAW;AACvB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM,UAAU;AAAA,QACvB,SAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGd;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,cAAW;AAAA,MACX,WAAU;AAAA,MAEV,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,WAAU;AAAA,UACV,cAAc,MAAM,KAAK,CAAC;;AAAU,gCAAK,aAAL,mBAAe,WAAU,KAAK;AAAA,WAAC;AAAA,UACnE,QAAQ,CAAC,SAAS,KAAK;AAAA,UACvB,aAAa,CAAC,SAAS,KAAK;AAAA,UAC5B,WAAW,CAAC,EAAE,WAAW,oBAAC,qBAAkB,MAAY;AAAA,UACxD,UAAU,MAAM;AAAA,UAChB,OAAO,oBAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,mBAAe;AAAA,UAC/E,kBAAiB;AAAA,QAAA;AAAA,MAAA;AAAA,IACnB;AAAA,EAAA;AAGN;AAEA,SAAS,kBAAkB,EAAE,QAAgC;AAC3D,QAAM,iBACJ,OAAO,KAAK,UAAU,WAClB,2CACA,OAAO,KAAK,UAAU,WACpB,mCACA,OAAO,KAAK,UAAU,aAAa,KAAK,UAAU,OAChD,yCACA;AAEV,SACE,qBAAC,OAAA,EAAI,WAAU,oDACb,UAAA;AAAA,IAAA,oBAAC,QAAA,EAAK,WAAU,4BAA4B,UAAA,KAAK,KAAI;AAAA,IACrD,oBAAC,QAAA,EAAK,WAAU,kCAAiC,UAAA,KAAC;AAAA,IAClD,oBAAC,UAAK,WAAW,GAAG,uBAAuB,cAAc,GAAI,eAAK,QAAA,CAAQ;AAAA,EAAA,GAC5E;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,GAIyB;AACvB,QAAM,cAAc,sBAAsB,MAAM,UAAU,MAAM,GAAG;AACnE,QAAM,YAAY,sBAAsB,MAAM,QAAQ,MAAM,GAAG;AAC/D,QAAM,OAA6B,CAAA;AAEnC,MAAI,gBAAgB,OAAO,SAAS,SAAY;AAC9C,SAAK,KAAK,QAAQ;AAAA,EACpB;AAEA,MAAI,cAAc,OAAO,SAAS,SAAY;AAC5C,SAAK,KAAK,MAAM;AAAA,EAClB;AAEA,aAAW,UAAU,8BAA8B;AACjD,QAAI,sBAAsB,MAAM,QAAQ,MAAM,GAAG,KAAK,KAAK;AACzD,WAAK,KAAK,MAAM;AAAA,IAClB;AAAA,EACF;AAEA,MAAI,KAAK,WAAW,MAAM,OAAO,SAAS,SAAY;AACpD,SAAK,KAAK,QAAQ;AAAA,EACpB;AAEA,SAAO;AACT;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AACF,GAGyB;AACvB,QAAM,UAAU,WAAY,SAAS,OAAO,OAAQ,CAAC,CAAC;AAEtD,MAAI,CAAC,WAAW,CAAC,KAAK;AACpB,WAAO,CAAA;AAAA,EACT;AAEA,SAAO,CAAC,GAAG,uBAAuB;AACpC;AAEA,SAAS,oBAAoB,QAK3B;AACA,UAAQ,QAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QACE;AAAA,MAAA;AAAA,IAEN,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAEZ,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,EACV;AAEN;AAEA,SAAS,gBAAgB,MAA0B;AACjD,SAAO,oBAAoB,IAAI,EAAE;AACnC;AAEA,SAAS,eAAe,KAAa,QAA4B;AAC/D,QAAM,OAAO,OAAO,WAAW,cAAc,qBAAqB,OAAO,SAAS;AAClF,QAAM,WAAW,IAAI,IAAI,KAAK,IAAI;AAClC,WAAS,aAAa,IAAI,UAAU,WAAW,WAAW,gBAAgB,MAAM;AAEhF,MAAI,cAAc,GAAG,GAAG;AACtB,WAAO,SAAS,SAAA;AAAA,EAClB;AAEA,SAAO,GAAG,SAAS,QAAQ,GAAG,SAAS,MAAM,GAAG,SAAS,IAAI;AAC/D;AAEA,SAAS,sBAAsB,QAA4B;AACzD,SAAO,WAAW,SAAS,WAAW,UAAU,WAAW;AAC7D;AAEA,SAAS,oBAAoB,QAA+D;AAC1F,SAAQ,4BAAkD,SAAS,MAAM;AAC3E;AAEA,SAAS,qBAAqB,QAAgE;AAC5F,SAAQ,6BAAmD,SAAS,MAAM;AAC5E;AAEA,SAAS,sBACP,MACA,QACA,MACA,KACA;AACA,QAAM,iBACJ,WAAW,YAAY,WAAW,SAAS,OAAO,QAAQ,SAAS,SAAY,CAAC,CAAC;AAEnF,MAAI,SAAS,QAAW;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,QAAI,KAAK,WAAW,GAAG;AACrB,aAAO;AAAA,IACT;AAEA,QAAI,WAAW,UAAU;AACvB,aAAO,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,MAAM;AAAA,IACxD;AAEA,WAAO,KAAK,SAAS,MAAM;AAAA,EAC7B;AAEA,MAAI,UAAU,MAAM;AAClB,WAAO,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC7B;AAEA,MAAI,WAAW,YAAY,KAAK,SAAS,MAAM;AAC7C,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,MAAoC;AAC1D,MAAI,SAAS,QAAW;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,KAAK,KAAA;AACrB,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,MAAI;AACF,WAAO,KAAK,MAAM,OAAO;AAAA,EAC3B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,cAAc,OAAgC;AACrD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,OAAO,UAAU,kBAAkB,OAAO,KAAK,GAAG,OAAO,KAAK,KAAK,GAAG,CAAC;AAAA,EAC3F;AAEA,MAAI,cAAc,KAAK,GAAG;AACxB,WAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,kBAAkB,KAAK,OAAO,KAAK,GAAG,EAAE,CAAC;AAAA,EAC9F;AAEA,MAAI,UAAU,QAAW;AACvB,WAAO,CAAA;AAAA,EACT;AAEA,SAAO,CAAC,kBAAkB,KAAK,OAAO,GAAG,CAAC;AAC5C;AAEA,SAAS,kBAAkB,KAAa,OAAgB,IAA0B;AAChF,QAAM,WAAW,gBAAgB,OAAO,EAAE;AAC1C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,mBAAmB,KAAK;AAAA,IACjC,GAAI,WAAW,EAAE,aAAa,CAAA;AAAA,EAAC;AAEnC;AAEA,SAAS,gBAAgB,OAAgB,MAAc;AACrD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM;AAAA,MAAI,CAAC,OAAO,UACvB,kBAAkB,OAAO,KAAK,GAAG,OAAO,GAAG,IAAI,IAAI,KAAK,GAAG;AAAA,IAAA;AAAA,EAE/D;AAEA,MAAI,cAAc,KAAK,GAAG;AACxB,WAAO,OAAO,QAAQ,KAAK,EAAE;AAAA,MAAI,CAAC,CAAC,KAAK,KAAK,MAC3C,kBAAkB,KAAK,OAAO,GAAG,IAAI,IAAI,GAAG,EAAE;AAAA,IAAA;AAAA,EAElD;AAEA,SAAO;AACT;AAEA,SAAS,mBAAmB,OAAgB;AAC1C,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,IAAI,MAAM,MAAM,QAAQ,MAAM,WAAW,IAAI,KAAK,GAAG;AAAA,EAC9D;AAEA,MAAI,cAAc,KAAK,GAAG;AACxB,UAAM,QAAQ,OAAO,KAAK,KAAK,EAAE;AACjC,WAAO,IAAI,KAAK,OAAO,UAAU,IAAI,KAAK,GAAG;AAAA,EAC/C;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,KAAK,UAAU,KAAK;AAAA,EAC7B;AAEA,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,KAAK;AACrB;AAEA,SAAS,cAAc,OAAkD;AACvE,SAAO,SAAS,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC3E;AAEA,SAAS,sBAAsB,KAAa;AAC1C,MAAI,OAAO,aAAa,YAAa;AAErC,QAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,OAAK,SAAS;AACd,OAAK,SAAS;AACd,OAAK,MAAM,UAAU;AACrB,WAAS,KAAK,YAAY,IAAI;AAC9B,OAAK,OAAA;AACL,WAAS,KAAK,YAAY,IAAI;AAChC;AAEA,SAAS,cAAc,KAAa;AAClC,SAAO,uBAAuB,KAAK,GAAG,KAAK,IAAI,WAAW,IAAI;AAChE;AAEA,SAAS,wBAAwB,MAA6B;AAC5D,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,KAAK,OAAO,QAAQ,EAAE;AAAA,IAAA;AAAA,EAE1B;AAEA,QAAM,YAAY;AAClB,MACE,aAAa,aACb,UAAU,YAAY,KACtB,UAAU,QACV,aAAa,UAAU,IAAI,GAC3B;AACA,WAAO,EAAE,IAAI,MAAM,UAAU,UAAA;AAAA,EAC/B;AAEA,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,EAAE,IAAI,MAAM,UAAU,EAAE,SAAS,GAAG,MAAM,YAAU;AAAA,EAC7D;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,KAAK,KAAK,UAAU,MAAM,MAAM,CAAC;AAAA,EAAA;AAErC;AAEA,SAAS,aAAa,OAAqC;AACzD,SACE,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,OAAQ,MAA6B,SAAS;AAE1F;AAEA,SAAS,mBAAmB,EAAE,QAA6B;AACzD,MAAI,CAAC,KAAM,QAAO;AAElB,UAAQ,KAAK,MAAA;AAAA,IACX,KAAK;AACH,aAAO,oBAAC,cAAW,MAAY;AAAA,IACjC,KAAK;AACH,aAAO,oBAAC,kBAAe,MAAY;AAAA,IACrC,KAAK;AACH,aAAO,oBAAC,yBAAsB,MAAY;AAAA,IAC5C,KAAK;AACH,aAAO,oBAAC,kBAAe,MAAY;AAAA,IACrC,KAAK;AACH,aAAO,oBAAC,cAAW,MAAY;AAAA,IACjC,KAAK;AACH,aAAO,oBAAC,aAAU,MAAY;AAAA,IAChC,KAAK;AACH,aAAO,oBAAC,mBAAgB,MAAY;AAAA,IACtC,KAAK;AACH,aAAO,oBAAC,kBAAe,MAAY;AAAA,IACrC,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAU,KAAK;AAAA,UACf,QAAQ,KAAK,UAAU,KAAK,SAAS;AAAA,UACrC,iBAAiB,KAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IAG5B,KAAK;AACH,aAAO,oBAAC,mBAAgB,MAAY;AAAA,IACtC,KAAK;AACH,aAAO,oBAAC,wBAAqB,MAAY;AAAA,IAC3C,KAAK;AACH,aAAO,oBAAC,oBAAiB,MAAY;AAAA,IACvC,KAAK;AACH,aAAO,oBAAC,qBAAkB,MAAY;AAAA,IACxC,KAAK;AACH,aAAO,oBAAC,kBAAe,MAAY;AAAA,IACrC,KAAK;AACH,aAAO,oBAAC,iBAAc,MAAY;AAAA,IACpC,KAAK;AACH,aAAO,oBAAC,mBAAgB,MAAY;AAAA,IACtC;AACE,aACE,oBAAC,SAAI,WAAU,gEACZ,eAAK,UAAU,MAAM,MAAM,CAAC,EAAA,CAC/B;AAAA,EAAA;AAGR;AAIA,SAAS,cAAc,EAAE,QAA8B;;AACrD,QAAM,OAAO,KAAK,QAAQ,KAAK;AAC/B,QAAM,UAAU,oBAAC,qBAAA,EAAoB,KAAA,CAAY;AACjD,QAAM,aACJ,UAAK,UAAL,mBAAY,aAAY,KAAK,MAAM,WAAW,IAAI,KAAK,IAAI,KAAK,MAAM,UAAU,EAAE,IAAI;AACxF,QAAM,aACJ,UAAK,UAAL,mBAAY,aAAY,KAAK,MAAM,WAAW,IAAI,KAAK,IAAI,KAAK,MAAM,UAAU,CAAC,IAAI;AACvF,QAAM,cAAc;AAAA,IAClB;AAAA,MACE,GAAG,KAAK;AAAA,MACR;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,EAAA;AAGF,MAAI,CAAC,QAAQ,GAAC,UAAK,aAAL,mBAAe,QAAQ,QAAO;AAE5C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,oDAAmD,UAAK,UAAL,mBAAY,SAAS;AAAA,MACtF,OAAO;AAAA,MACP,SAAO,UAAK,YAAL,mBAAc,UAAS;AAAA,MAE7B,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS,WAAW,EAAE,QAA8B;;AAClD,QAAM,cAAc,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,KAAK;AACrE,QAAM,UAAU,oBAAC,qBAAA,EAAoB,KAAA,CAAY;AAEjD,MAAI,CAAC,KAAK,SAAS,CAAC,KAAK,SAAS;AAChC,2CAAU,UAAA,QAAA,CAAQ;AAAA,EACpB;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,QAAO,UAAK,YAAL,mBAAc;AAAA,MACrB,WAAW;AAAA,SACT,UAAK,UAAL,mBAAY;AAAA,SACX,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK;AAAA,MAAA;AAAA,MAGrC,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS,oBAAoB,EAAE,QAA8B;;AAC3D,SACE,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA,KAAK;AAAA,KACL,UAAK,aAAL,mBAAe,IAAI,CAAC,OAAO,UAC1B,oBAACA,YAAA,EACC,8BAAC,oBAAA,EAAmB,MAAM,MAAA,CAAO,EAAA,GADpB,KAEf;AAAA,EACD,GACH;AAEJ;AAEA,SAAS,eAAe,EAAE,QAA8B;;AACtD,QAAM,UAAU,oBAAC,qBAAA,EAAoB,KAAA,CAAY;AACjD,QAAM,cAAc,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,KAAK;AACrE,QAAM,SAAS,oBAAoB,KAAK,MAAM;AAC9C,QAAM,MAAM,WAAW,WAAW,wBAAwB;AAE1D,MAAI,CAAC,KAAK,MAAM;AACd,WAAO,oBAAC,QAAA,EAAK,OAAO,aAAc,UAAA,SAAQ;AAAA,EAC5C;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA,QAAO,UAAK,YAAL,mBAAc;AAAA,MACrB,OAAO;AAAA,MACP,WAAW,IAAG,UAAK,UAAL,mBAAY,WAAW,uBAAuB;AAAA,MAE3D,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS,sBAAsB,EAAE,QAA8B;;AAC7D,QAAM,UAAU,WAAW,oBAAoB;AAC/C,QAAM,UAAU,QAAQ,MAAM,2BAA2B,IAAI,GAAG,CAAC,IAAI,CAAC;AACtE,QAAM,WAAW;AAAA,IACf,MAAM,qBAAqB,SAAS,QAAQ,gBAAgB,QAAQ,UAAU;AAAA,IAC9E,CAAC,SAAS,QAAQ,gBAAgB,QAAQ,UAAU;AAAA,EAAA;AAEtD,QAAM,SAAS,QAAQ,UAAU;AACjC,QAAM,aAAa,QAAQ,kBAAkB;AAC7C,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,MAAI,CAAC,YAAY;AACf,WACE,oBAAC,QAAA,EAAK,QAAO,UAAK,YAAL,mBAAc,OAAO,WAAW,IAAG,UAAK,UAAL,mBAAY,SAAS,GACnE,UAAA,oBAAC,qBAAA,EAAoB,MAAY,GACnC;AAAA,EAEJ;AAEA,MAAI,WAAW,WAAW,WAAW,aAAa,WAAW,QAAQ;AACnE,UAAM,SACJ,mBAAQ,mBAAR,mBAAwB,mBAAxB,4BAAyC,cAAa,0BAA0B,QAAQ;AAE1F,QAAI,CAAC,MAAM;AACT,aACE,oBAAC,QAAA,EAAK,QAAO,UAAK,YAAL,mBAAc,OAAO,WAAW,IAAG,UAAK,UAAL,mBAAY,SAAS,GACnE,UAAA,oBAAC,qBAAA,EAAoB,MAAY,GACnC;AAAA,IAEJ;AAEA,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,QAAQ,oBAAoB,MAAM;AAAA,QAClC,KAAK,WAAW,UAAU,SAAY;AAAA,QACtC,QAAO,UAAK,YAAL,mBAAc;AAAA,QACrB,OAAO,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,KAAK;AAAA,QACxD,WAAW,IAAG,UAAK,UAAL,mBAAY,WAAW,uBAAuB;AAAA,QAE5D,UAAA,oBAAC,uBAAoB,KAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAGvC;AAEA,MAAI,WAAW,WAAW;AACxB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAS,MAAA;;AAAM,kBAAAC,OAAAC,MAAA,QAAQ,mBAAR,gBAAAA,IAAwB,eAAxB,gBAAAD,IAAA,KAAAC,KAAqC;AAAA;AAAA,MAAQ;AAAA,IAAA;AAAA,EAGlE;AAEA,MAAI,WAAW,SAAS;AACtB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,eAAc;AAAA,QACd,SAAS,oBAAC,0BAAA,EAAyB,KAAA,CAAY;AAAA,QAE/C,8BAAC,OAAA,EAAI,WAAU,2CACb,UAAA,oBAAC,0BAAA,EAAyB,UAAoB,EAAA,CAChD;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAEA,MAAI,WAAW,UAAU;AACvB,WACE,qBAAC,QAAA,EAAK,WAAU,UACd,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,cAAc;AAAA,UACd,SAAS,MAAM,YAAY,CAAC,YAAY,CAAC,OAAO;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjD,gCACE,OAAA,EAAI,WAAU,kEACb,UAAA,oBAAC,0BAAA,EAAyB,UAAoB,EAAA,CAChD;AAAA,IAAA,GAEJ;AAAA,EAEJ;AAEA,SACE,qBAAA,UAAA,EACE,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,cAAc;AAAA,QACd,SAAS,MAAM,cAAc,IAAI;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS,MAAM,cAAc,KAAK;AAAA,QAClC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AAEA,SAAS,yBAAyB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACF,GAIG;;AACD,QAAM,cAAc,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,KAAK;AAErE,QAAM,cAAc,CAAC,UAA8C;AACjE,UAAM,eAAA;AACN;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,QAAO,UAAK,YAAL,mBAAc;AAAA,MACrB,iBAAe;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,MACP,WAAW;AAAA,QACT;AAAA,SACA,UAAK,UAAL,mBAAY;AAAA,MAAA;AAAA,MAGd,UAAA,oBAAC,uBAAoB,KAAA,CAAY;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,UAAU,WAAW,oBAAoB;AAC/C,QAAM,YAAY,SAAS;AAC3B,QAAM,cAAa,uCAAW,UAAU,eAAc,CAAA;AACtD,QAAM,gBAAgB;AAAA,IACpB,MAAM,4BAA4B,YAAY,SAAS,OAAO;AAAA,IAC9D,CAAC,YAAY,SAAS,OAAO;AAAA,EAAA;AAE/B,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB,IAAI;AAClD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AACrC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AACpD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,gBACJ,QACA,SAAS,QAAQ,YAAY,QAC7B,aAAa,QACb,0BAA0B,YAAY,aAAa,EAAE,WAAW;AAElE,YAAU,MAAM;AACd,QAAI,CAAC,MAAM;AACT,wBAAkB,KAAK;AACvB,gBAAU,IAAI;AACd,eAAS,EAAE;AAAA,IACb;AAAA,EACF,GAAG,CAAC,MAAM,SAAS,QAAQ,OAAO,CAAC;AAEnC,iBAAe,WAAW,QAAyB;AACjD,QAAI,CAAC,QAAQ,kBAAkB,CAAC,WAAW;AACzC;AAAA,IACF;AAEA,mBAAe,IAAI;AACnB,aAAS,EAAE;AAEX,QAAI;AACF,YAAM,WAAW,MAAM,qBAAqB,QAAQ,eAAe,QAAQ,WAAW,MAAM;AAC5F,gBAAU,QAAQ;AAAA,IACpB,SAAS,KAAK;AACZ,gBAAU,IAAI;AACd,eAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,OAAO,eAAe,CAAC;AAAA,IAC9E,UAAA;AACE,qBAAe,KAAK;AAAA,IACtB;AAAA,EACF;AAEA,YAAU,MAAM;AACd,QAAI,CAAC,iBAAiB,gBAAgB;AACpC;AAAA,IACF;AAEA,sBAAkB,IAAI;AACtB,SAAK,WAAW,aAAa;AAAA,EAC/B,GAAG,CAAC,gBAAgB,eAAe,aAAa,CAAC;AAEjD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,QAAO,uCAAW,UAAU,YAAW,SAAS,QAAQ;AAAA,MACxD,MAAK;AAAA,MAEL,UAAA,qBAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,QAAA,YACC,qBAAC,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAK,WAAU,4EACb,UAAA,UAAU,QACb;AAAA,UACA,oBAAC,QAAA,EAAM,UAAA,UAAU,KAAA,CAAK;AAAA,QAAA,EAAA,CACxB,IACE,QAAQ,oBACV,oBAAC,gBAAa,OAAM,oBAAmB,SAAQ,oCAAA,CAAoC,IAEnF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAS,yBAAyB,SAAS,QAAQ,OAAO;AAAA,YAC1D,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,QAIR,aACC,oBAAC,OAAA,EAAI,WAAU,2DACb,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,QAAQ,QAAQ,eAAgB;AAAA,YAChC,MAAM,UAAU;AAAA,YAChB,QAAQ,UAAU;AAAA,YAClB;AAAA,YACA;AAAA,YACA,cAAc;AAAA,YACd,aAAY;AAAA,YACZ,iBAAgB;AAAA,YAChB,UAAU;AAAA,UAAA;AAAA,QAAA,GAEd;AAAA,QAGD,4BACE,cAAA,EAAa,OAAM,kBAAiB,SAAS,OAAO,MAAK,cAAA,CAAc,IAExE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,UAAU;AAAA,YACV,SAAS;AAAA,YACT,cAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MACf,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAAS,yBAAyB,EAAE,YAAiD;AACnF,QAAM,UAAU,WAAW,oBAAoB;AAC/C,QAAM,YAAY,SAAS;AAC3B,QAAM,cAAa,uCAAW,UAAU,eAAc,CAAA;AACtD,QAAM,gBAAgB;AAAA,IACpB,MAAM,4BAA4B,YAAY,SAAS,OAAO;AAAA,IAC9D,CAAC,YAAY,SAAS,OAAO;AAAA,EAAA;AAE/B,QAAM,UAAU;AAAA,IACd,MAAM,0BAA0B,YAAY,aAAa;AAAA,IACzD,CAAC,eAAe,UAAU;AAAA,EAAA;AAG5B,QAAM,QAAQ,SAAS;AAAA,IACrB,UAAU;AAAA,MACR;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,uCAAW;AAAA,MACX,uCAAW;AAAA,MACX;AAAA,IAAA;AAAA,IAEF,SAAS,QAAQ,kBAAkB,QAAQ,aAAa,QAAQ,QAAQ,WAAW;AAAA,IACnF,OAAO;AAAA,IACP,SAAS,YACP,qBAAqB,QAAQ,eAAgB,QAAQ,WAAY,aAAa;AAAA,EAAA,CACjF;AAED,MAAI,CAAC,QAAQ,gBAAgB;AAC3B,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAGX;AAEA,MAAI,CAAC,WAAW;AACd,QAAI,QAAQ,mBAAmB;AAC7B,aAAO,oBAAC,cAAA,EAAa,OAAM,oBAAmB,SAAQ,qCAAoC;AAAA,IAC5F;AACA,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS,yBAAyB,SAAS,QAAQ,OAAO;AAAA,QAC1D,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAGX;AAEA,MAAI,QAAQ,SAAS,GAAG;AACtB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS,yBAAyB,QAAQ,IAAI,CAAC,UAAU,aAAa,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC;AAAA,QAC7F,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAGX;AAEA,MAAI,MAAM,WAAW;AACnB,WAAO,oBAAC,cAAA,EAAa,OAAM,mBAAkB,SAAQ,4BAA2B;AAAA,EAClF;AAEA,MAAI,MAAM,SAAS;AACjB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAS,MAAM,iBAAiB,QAAQ,MAAM,MAAM,UAAU;AAAA,QAC9D,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAGX;AAEA,6BAAQ,uBAAA,EAAsB,UAAU,MAAM,MAAM,cAAa,8BAA6B;AAChG;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA,UAAU;AAAA,EACV;AACF,GAIG;AACD,MAAI,SAAS;AACX,WAAO,oBAAC,cAAA,EAAa,OAAM,mBAAkB,SAAQ,4BAA2B;AAAA,EAClF;AAEA,MAAI,CAAC,UAAU;AACb,WAAO,oBAAC,cAAA,EAAa,OAAM,eAAc,SAAS,cAAc;AAAA,EAClE;AAEA,QAAM,gBAAgB,oBAAoB,QAAQ,IAC7C,SAAS,UAAU,cAAc,QAAQ,IAC1C;AACJ,QAAM,UAAU,oBAAoB,QAAQ,IACxC,SAAS,UAAU,SAAS,UAAU,SAAS,WAAW,KAC1D,OAAO,aAAa,WAClB,WACA,KAAK,UAAU,UAAU,MAAM,CAAC;AACtC,QAAM,gBACJ,OAAO,kBAAkB,YACxB,iBAAiB,QAAQ,OAAO,kBAAkB,WAC/C,gBACA;AACN,QAAM,eACJ,kBAAkB,KAAK,OAAO,gBAAgB,aAAoC;AAEpF,MAAI,6CAAc,IAAI;AACpB,WACE,oBAAC,OAAA,EAAI,WAAU,6DACb,UAAA,oBAAC,sBAAmB,MAAM,aAAa,SAAS,KAAA,CAAM,EAAA,CACxD;AAAA,EAEJ;AAEA,MAAI,iBAAiB,QAAQ,OAAO,kBAAkB,UAAU;AAC9D,WAAO,oBAAC,gBAAA,EAAe,OAAO,cAAA,CAAe;AAAA,EAC/C;AAEA,SAAO,oBAAC,mBAAA,EAAkB,OAAM,iBAAgB,SAAS,SAAS;AACpE;AAEA,SAAS,eAAe,EAAE,QAA8B;;AACtD,QAAM,cAAc,cAAc,KAAK,OAAO,KAAK,SAAS,KAAK,OAAO;AAExE,SACE,oBAAC,QAAA,EAAK,OAAO,aAAa,QAAO,UAAK,YAAL,mBAAc,OAAO,WAAU,4BAC7D,UAAA,KAAK,8BAAW,MAAA,EAAK,MAAM,KAAK,QAAA,CAAS,IAAK,oBAAC,UAAM,UAAA,KAAK,WAAW,KAAK,MAAA,CAAM,EAAA,CACnF;AAEJ;AAEA,SAAS,WAAW,EAAE,QAA8B;AAClD,QAAM,QAAQ,KAAK,SAAS,CAAA;AAC5B,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,MAAI,KAAK,QAAQ;AACf,WACE,oBAAC,QAAA,EAAK,WAAU,2CACb,UAAA,MAAM,IAAI,CAAC,MAAM,UAChB,qBAACF,YAAA,EACE,UAAA;AAAA,MAAA,QAAQ,KAAK,oBAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA,KAAC;AAAA,MACvD,qBAAC,QAAA,EAAK,WAAU,kCACb,UAAA;AAAA,QAAA,CAAC,KAAK,WAAW,KAAK,8BAAW,oBAAA,EAAmB,MAAM,KAAK,QAAQ;AAAA,QACvE,KAAK,WAAW,qBAAC,QAAA,EAAK,WAAU,yBAAyB,UAAA;AAAA,UAAA,QAAQ;AAAA,UAAE;AAAA,QAAA,GAAC;AAAA,QACrE,oBAAC,oBAAA,EAAmB,MAAM,KAAA,CAAM;AAAA,MAAA,EAAA,CAClC;AAAA,IAAA,KANa,KAOf,CACD,GACH;AAAA,EAEJ;AAEA,MAAI,KAAK,UAAU;AACjB,WACE,oBAAC,OAAA,EAAI,WAAU,aACZ,UAAA,MAAM,IAAI,CAAC,MAAM,UAChB,qBAAC,OAAA,EAAgB,WAAU,0BACxB,UAAA;AAAA,MAAA,CAAC,KAAK,WAAW,KAAK,8BAAW,oBAAA,EAAmB,MAAM,KAAK,QAAQ;AAAA,MACvE,KAAK,WAAW,qBAAC,QAAA,EAAK,WAAU,yBAAyB,UAAA;AAAA,QAAA,QAAQ;AAAA,QAAE;AAAA,MAAA,GAAC;AAAA,MACrE,oBAAC,SAAI,WAAU,kBACb,8BAAC,oBAAA,EAAmB,MAAM,MAAM,EAAA,CAClC;AAAA,IAAA,KALQ,KAMV,CACD,GACH;AAAA,EAEJ;AAEA,QAAM,MAAM,KAAK,UAAU,OAAO;AAClC,QAAM,YAAY,KAAK,UAAU,iBAAiB;AAElD,SACE,oBAAC,OAAI,WAAW,GAAG,0BAA0B,SAAS,GACnD,gBAAM,IAAI,CAAC,MAAM,UAChB,oBAAC,QACC,UAAA,oBAAC,oBAAA,EAAmB,MAAM,KAAA,CAAM,EAAA,GADzB,KAET,CACD,EAAA,CACH;AAEJ;AAEA,SAAS,UAAU,EAAE,QAA8B;AACjD,QAAM,SAAS,KAAK,UAAU,CAAA;AAC9B,MAAI,OAAO,WAAW,EAAG,QAAO;AAEhC,QAAM,eAAe,OAAO,OAAO,CAAC,UAAU,aAAa,MAAM,KAAK,CAAC;AACvE,QAAM,cAAc,OAAO,OAAO,CAAC,UAAU,CAAC,aAAa,MAAM,KAAK,CAAC;AAEvE,SACE,qBAAC,OAAA,EAAI,WAAU,qBACZ,UAAA;AAAA,IAAA,aAAa,SAAS,KACrB,oBAAC,MAAA,EAAG,WAAU,qCACX,UAAA,aAAa,IAAI,CAAC,UACjB,qBAAC,OAAA,EACC,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAG,WAAU,uEACX,UAAA,MAAM,SAAS,aAAa,MAAM,IAAI,EAAA,CACzC;AAAA,MACA,oBAAC,QAAG,WAAU,gCACZ,8BAAC,oBAAA,EAAmB,MAAM,MAAM,MAAA,CAAO,EAAA,CACzC;AAAA,IAAA,EAAA,GANQ,MAAM,IAOhB,CACD,GACH;AAAA,IAGD,YAAY,IAAI,CAAC,UAChB,qBAAC,WAAA,EAAyB,WAAU,aAClC,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAI,WAAU,uEACZ,UAAA,MAAM,SAAS,aAAa,MAAM,IAAI,EAAA,CACzC;AAAA,MACA,oBAAC,SAAI,WAAU,6DACb,8BAAC,oBAAA,EAAmB,MAAM,MAAM,MAAA,CAAO,EAAA,CACzC;AAAA,IAAA,EAAA,GANY,MAAM,IAOpB,CACD;AAAA,EAAA,GACH;AAEJ;AAEA,SAAS,gBAAgB,EAAE,QAA8B;AACvD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,KAAK,WAAW,CAAA;AAAA,MACzB,MAAM,KAAK,QAAQ,CAAA;AAAA,MAClB,GAAI,KAAK,eAAe,SAAY,EAAE,YAAY,KAAK,eAAe,CAAA;AAAA,IAAC;AAAA,EAAA;AAG9E;AAEO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAqB;AACnB,QAAM,UAAU,WAAW,oBAAoB;AAC/C,QAAM,WAAW,mBAAmB,QAAQ;AAC5C,QAAM,UAAU,mBAAmB,QAAQ;AAC3C,QAAM,eAAe,uBAAuB,QAAQ;AACpD,QAAM,kBAAkB,UAAU,QAAQ;AAC1C,QAAM,qBAAqB,aAAa,QAAQ;AAChD,QAAM,2BAA2B,mBAAmB,QAAQ;AAC5D,QAAM,sBAAsB,cAAc,QAAQ;AAElD,MAAI,QAAQ,WAAW,KAAK,KAAK,WAAW,GAAG;AAC7C,WAAO,oBAAC,OAAA,EAAI,WAAU,iCAAgC,UAAA,WAAO;AAAA,EAC/D;AAEA,MAAI,mCAAmC,SAAS,IAAI,GAAG;AACrD,WAAO,oBAAC,2BAAA,EAA0B,SAAkB,KAAA,CAAY;AAAA,EAClE;AAEA,QAAM,eAA6C,QAAQ,IAAI,CAAC,WAAW;AACzE,UAAM,YAAY,kBAAkB,MAAM;AAC1C,UAAM,OAAmC;AAAA,MACvC,KAAK,SAAS,OAAO,IAAI;AAAA,MACzB,OAAO,OAAO,SACZ,oBAAC,oBAAA,EAAmB,MAAM,OAAO,OAAA,CAAQ,IAEzC,OAAO,SAAS,aAAa,OAAO,IAAI;AAAA,MAE1C,GAAI,OAAO,QAAQ,EAAE,OAAO,OAAO,MAAA,IAAU,CAAA;AAAA,MAC7C,GAAI,OAAO,aAAa,SAAY,EAAE,UAAU,OAAO,SAAA,IAAa,CAAA;AAAA,MACpE,GAAI,OAAO,eAAe,SAAY,EAAE,YAAY,OAAO,WAAA,IAAe,CAAA;AAAA,MAC1E,GAAI,OAAO,SAAS,SAAY,EAAE,MAAM,OAAO,KAAA,IAAS,CAAA;AAAA,MACxD,GAAI,OAAO,WAAW,SAAY,EAAE,QAAQ,OAAO,WAAW,CAAA;AAAA,IAAC;AAGjE,QAAI,WAAW;AACb,aAAO;AAAA,QACL,GAAG;AAAA,QACH,MAAM;AAAA,QACN,QAAQ,CAAC,UAAU;AACjB,gBAAM,OAAO,eAAe,OAAqB,MAAM;AACvD,iBAAO,oBAAC,SAAA,EAAQ,MAAY,YAAY,EAAA,CAAG;AAAA,QAC7C;AAAA,QACA,WAAW,CAAC,UAAU,eAAe,OAAqB,MAAM,EAAE;AAAA,QAClE,aAAa,CAAC,UAAU,eAAe,OAAqB,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;AAAA,MAAA;AAAA,IAE9F;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAI,OAAO,OAAO,EAAE,MAAM,OAAO,KAAA,IAAS,CAAA;AAAA,MAC1C,QAAQ,CAAC,UAAU,oBAAC,oBAAA,EAAmB,MAAM,OAAqB;AAAA,MAClE,WAAW,CAAC,UAAU,eAAe,KAAmB;AAAA,MACxD,aAAa,CAAC,UAAU,eAAe,KAAmB;AAAA,IAAA;AAAA,EAE9D,CAAC;AAED,QAAM,oBAAoB,QAAQ,KAAK,CAAC,WAAW,OAAO,aAAa,KAAK,KAAK,QAAQ,CAAC;AAE1F,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,SAAS;AAAA,MACR,GAAI,eAAe,SAAY,EAAE,WAAA,IAAe,CAAA;AAAA,MAChD,GAAI,oBACD;AAAA,QACE,aAAa;AAAA,UACX,KAAK,SAAS,kBAAkB,IAAI;AAAA,UACpC,KAAK;AAAA,QAAA;AAAA,MACP,IAEF,CAAA;AAAA,MACJ,UAAU,CAAC,KAAK,UACd,GAAG,KAAK,IAAI,QACT,IAAI,CAAC,WAAW,eAAe,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC,EACtD,OAAO,OAAO,EACd,KAAK,GAAG,CAAC;AAAA,MAEd,mBAAmB,CAAC,KAAK,gCACtB,sBAAA,EAAqB,KAAU,SAAkB,SAAkB;AAAA,MAErE,GAAI,WAAW,EAAE,YAAY,SAAA,IAAa,CAAA;AAAA,MAC1C,GAAI,UAAU,EAAE,YAAY,QAAA,IAAY,CAAA;AAAA,MACxC,GAAI,aAAa,gBAAgB,WAC9B;AAAA,QACE,gBAAgB,iBAAiB,CAAC,QAAQ,QAAQ,mCAAU,IAAI;AAAA,MAAA,IAElE,CAAA;AAAA,MACH,GAAI,kBAAkB,EAAE,gBAAgB,gBAAA,IAAoB,CAAA;AAAA,MAC5D,GAAI,qBAAqB,EAAE,mBAAmB,mBAAA,IAAuB,CAAA;AAAA,MACrE,GAAI,2BAA2B,EAAE,iBAAiB,yBAAA,IAA6B,CAAA;AAAA,MAC/E,GAAI,sBAAsB,EAAE,YAAY,wBAAwB,CAAA;AAAA,IAAC;AAAA,EAAA;AAGxE;AAEA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,YAAY,QACf,IAAI,CAAC,YAAY;AAAA,IAChB;AAAA,IACA,MAAM,eAAe,IAAI,MAAM,OAAO,IAAI,GAAG,MAAM;AAAA,IACnD,UAAU,SAAS,OAAO,IAAI;AAAA,EAAA,EAC9B,EACD,OAAO,CAAC,UAAU,MAAM,KAAK,SAAS,CAAC;AAE1C,SACE,qBAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,IAAA,UAAU,SAAS,KAClB,qBAAC,WAAA,EAAQ,WAAU,aACjB,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAI,WAAU,uEAAsE,UAAA,QAErF;AAAA,MACA,oBAAC,OAAA,EAAI,WAAU,cACZ,UAAA,UAAU,IAAI,CAAC,EAAE,QAAQ,MAAM,SAAA,MAAe;AAC7C,cAAM,aAAa,QAAQ,mBAAmB,QAAQ;AACtD,cAAM,8BAAW,SAAA,EAAQ,MAAY,YAAY,KAAK,QAAQ,SAAQ,UAAS;AAE/E,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,oBAAC,OAAA,EAAI,WAAU,qEACZ,UAAA,OAAO,SAAS,aAAa,OAAO,IAAI,EAAA,CAC3C;AAAA,cACA,oBAAC,OAAA,EAAI,WAAU,WACZ,UAAA,aACC,oBAAC,oBAAA,EAAmB,OAAO,YAAa,UAAA,QAAA,CAAQ,IAEhD,QAAA,CAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,UAZK,OAAO;AAAA,QAAA;AAAA,MAelB,CAAC,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAGF,qBAAC,WAAA,EAAQ,WAAU,aACjB,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAI,WAAU,uEAAsE,UAAA,UAErF;AAAA,MACA,oBAAC,MAAA,EAAG,WAAU,6BACX,UAAA,QAAQ,IAAI,CAAC,WACZ,qBAAC,OAAA,EAAsB,WAAU,qDAC/B,UAAA;AAAA,QAAA,oBAAC,MAAA,EAAG,WAAU,qEACX,UAAA,OAAO,SAAS,aAAa,OAAO,IAAI,EAAA,CAC3C;AAAA,QACA,oBAAC,MAAA,EAAG,WAAU,wCACZ,UAAA,oBAAC,oBAAA,EAAmB,MAAM,IAAI,MAAM,OAAO,IAAI,EAAA,CAAG,EAAA,CACpD;AAAA,MAAA,KANQ,OAAO,IAOjB,CACD,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAEC,IAAI,UACH,qBAAC,WAAA,EAAQ,WAAU,aACjB,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAI,WAAU,uEAAsE,UAAA,UAErF;AAAA,MACA,oBAAC,SAAI,WAAU,6DACb,8BAAC,oBAAA,EAAmB,MAAM,IAAI,OAAA,CAAQ,EAAA,CACxC;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAAS,0BAA0B;AAAA,EACjC;AAAA,EACA;AACF,GAGG;AACD,SACE,oBAAC,SAAI,WAAU,aACZ,eAAK,IAAI,CAAC,KAAK,UAAU;AACxB,UAAM,QAAQ,eAAe,KAAK,SAAS,KAAK;AAChD,UAAM,UAAU,SAAS,KAAK,OAAO;AAErC,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,oBAAC,WAAA,EAAQ,WAAU,gEAChB,UAAA,OACH;AAAA,UACA,oBAAC,SAAI,WAAU,8BACb,8BAAC,WAAA,EAAU,MAAM,SAAS,EAAA,CAC5B;AAAA,QAAA;AAAA,MAAA;AAAA,MARK,aAAa,KAAK,SAAS,KAAK;AAAA,IAAA;AAAA,EAW3C,CAAC,EAAA,CACH;AAEJ;AAEA,SAAS,mCAAmC,SAAyB,MAAmB;AACtF,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,SAAO,KAAK,MAAM,CAAC,QAAQ;AACzB,UAAM,QAAQ,QAAQ,IAAI,CAAC,WAAW,IAAI,MAAM,OAAO,IAAI,CAAC,EAAE,OAAO,OAAO;AAC5E,QAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,UAAM,eAAe,MAAM,OAAO,gBAAgB;AAClD,WAAO,aAAa,SAAS,KAAK,aAAa,WAAW,MAAM;AAAA,EAClE,CAAC;AACH;AAEA,SAAS,kBAAkB,QAAsB;AAC/C,MAAI,OAAO,SAAS,OAAQ,QAAO;AAEnC,QAAM,aAAa,OAAO,KAAK,YAAA;AAC/B,SAAO,yCAAyC,KAAK,UAAU;AACjE;AAEA,SAAS,eAAe,MAA8B,QAAuC;AAC3F,MAAI,CAAC,kBAAkB,MAAM,UAAU,CAAA;AAEvC,QAAM,QAAQ,oBAAoB,IAAI;AACtC,SAAO,cAAc,KAAK;AAC5B;AAEA,SAAS,oBAAoB,MAAyC;;AACpE,MAAI,CAAC,KAAM,QAAO,CAAA;AAElB,MAAI,KAAK,SAAS,WAAS,UAAK,WAAL,mBAAa,SAAQ;AAC9C,WAAO,OAAO;AAAA,MACZ,KAAK,OACF,IAAI,CAAC,UAAU,CAAC,MAAM,MAAM,eAAe,MAAM,KAAK,CAAC,CAAU,EACjE,OAAO,CAAC,CAAA,EAAG,KAAK,MAAM,MAAM,KAAA,MAAW,EAAE;AAAA,IAAA;AAAA,EAEhD;AAEA,MAAI,KAAK,SAAS,YAAU,UAAK,UAAL,mBAAY,SAAQ;AAC9C,WAAO,KAAK,MAAM,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,EAAE,OAAO,OAAO;AAAA,EACtE;AAEA,QAAM,OAAO,eAAe,IAAI,EAAE,KAAA;AAClC,MAAI,CAAC,KAAM,QAAO,CAAA;AAElB,SAAO,KACJ,MAAM,QAAQ,EACd,IAAI,CAAC,UAAU,MAAM,KAAA,CAAM,EAC3B,OAAO,OAAO;AACnB;AAEA,SAAS,iBAAiB,MAA8B;AACtD,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI,KAAK,SAAS,MAAO,SAAQ,KAAK,UAAU,IAAI,SAAS;AAC7D,MAAI,KAAK,SAAS,QAAS,SAAQ,KAAK,QAAQ,IAAI,SAAS;AAC7D,MAAI,KAAK,SAAS,OAAQ,QAAO;AAEjC,QAAM,QAAQ,KAAK,SAAS,CAAA;AAC5B,SAAO,MAAM,SAAS,KAAK,MAAM,MAAM,gBAAgB;AACzD;AAEA,SAAS,SAAS,KAAgB,SAAqC;AACrE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,QAAQ,QAAQ,CAAC,WAAW;AAClC,YAAM,QAAQ,IAAI,MAAM,OAAO,IAAI;AACnC,UAAI,CAAC,MAAO,QAAO,CAAA;AACnB,aAAO;AAAA,QACL;AAAA,UACE,MAAM,OAAO;AAAA,UACb,OAAO,eAAe,OAAO,MAAM,KAAK,OAAO,SAAS,aAAa,OAAO,IAAI;AAAA,UAChF;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ,CAAC;AAAA,EAAA;AAEL;AAEA,SAAS,eAAe,KAAgB,SAAyB,OAAe;;AAC9E,QAAM,cAAc;AAAA,MAClB,aAAQ,KAAK,CAAC,WAAW,kBAAkB,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC,MAAlE,mBAAqE,YACnE,aAAQ,CAAC,MAAT,mBAAY,YACZ,aAAQ,CAAC,MAAT,mBAAY,SACZ;AAAA,EAAA;AAEJ,QAAM,QAAQ,SAAS,KAAK,OAAO;AACnC,SAAO,QAAQ,GAAG,WAAW,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,GAAG,WAAW,IAAI,QAAQ,CAAC;AACtF;AAEA,SAAS,aAAa,KAAgB,SAAyB,OAAe;AAC5E,QAAM,QAAQ,SAAS,KAAK,OAAO;AACnC,SAAO,GAAG,KAAK,IAAI,SAAS,QAAQ,IAAI,CAAC,WAAW,eAAe,IAAI,MAAM,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC;AACvG;AAEA,SAAS,SAAS,KAAgB,SAAyB;AACzD,QAAM,sBAAsB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,aAAW,aAAa,qBAAqB;AAC3C,eAAW,UAAU,SAAS;AAC5B,YAAM,YAAY,cAAc,IAAI,MAAM,OAAO,IAAI,GAAG,SAAS;AACjE,UAAI,UAAW,QAAO;AAAA,IACxB;AAAA,EACF;AAEA,aAAW,UAAU,SAAS;AAC5B,UAAM,YAAY,eAAe,IAAI,MAAM,OAAO,IAAI,CAAC,EAAE,KAAA;AACzD,QAAI,UAAW,QAAO;AAAA,EACxB;AAEA,SAAO;AACT;AAEA,SAAS,cAAc,MAA8B,eAA+B;AAClF,MAAI,CAAC,KAAM,QAAO;AAElB,MAAI,KAAK,SAAS,OAAO;AACvB,eAAW,SAAS,KAAK,UAAU,CAAA,GAAI;AACrC,UAAI,mBAAmB,MAAM,IAAI,MAAM,eAAe;AACpD,cAAM,OAAO,eAAe,MAAM,KAAK,EAAE,KAAA;AACzC,YAAI,KAAM,QAAO;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAEA,aAAW,SAAS,KAAK,UAAU,CAAA,GAAI;AACrC,UAAM,OAAO,cAAc,MAAM,OAAO,aAAa;AACrD,QAAI,KAAM,QAAO;AAAA,EACnB;AAEA,aAAW,QAAQ,KAAK,SAAS,CAAA,GAAI;AACnC,UAAM,OAAO,cAAc,MAAM,aAAa;AAC9C,QAAI,KAAM,QAAO;AAAA,EACnB;AAEA,SAAO;AACT;AAEA,SAAS,kBAAkB,MAA8B;AACvD,SAAO,QAAQ,eAAe,IAAI,EAAE,KAAA,OAAW,6BAAM,WAAU,IAAI,SAAS,CAAC;AAC/E;AAEA,SAAS,mBAAmB,MAAc;AACxC,SAAO,KAAK,YAAA,EAAc,QAAQ,cAAc,EAAE;AACpD;AAEA,SAAS,iBAAiB,OAAe;AACvC,QAAM,aAAa,aAAa,KAAK,EAAE,KAAA;AACvC,SAAO,WAAW,SAAS,GAAG,IAAI,WAAW,MAAM,GAAG,EAAE,IAAI;AAC9D;AAEA,SAAS,eAAe,EAAE,QAA8B;AACtD,QAAM,QAAQ,KAAK,SAAS,CAAA;AAC5B,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,aAAa,CAAC,SAAS,KAAK;AAAA,MAC5B,QAAQ,CAAC,SAAS,KAAK;AAAA,MACvB,aAAa,CAAC,GAAG,UAAU,QAAQ;AAAA,MACnC,WAAW,CAAC,EAAE,MAAM,WAClB,oBAAC,OAAA,EAAI,WAAU,2BACb,UAAA,oBAAC,oBAAA,EAAmB,MAAM,KAAK,OAAO,EAAA,CACxC;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,SAAS,aAAa,OAAgD;AACpE,SAAO,UAAU,UAAU,UAAU,aAAa,UAAU;AAC9D;AAEA,SAAS,gBAAgB,EAAE,QAA8B;AACvD,QAAM,QAAsC,EAAE,SAAS,QAAA;AACvD,MAAI,KAAK,eAAe,OAAW,OAAM,QAAQ,KAAK;AACtD,MAAI,KAAK,eAAe,OAAW,OAAM,QAAQ,KAAK;AACtD,MAAI,KAAK,eAAe,OAAW,OAAM,QAAQ,KAAK;AACtD,MAAI,KAAK,cAAc,OAAW,OAAM,YAAY,KAAK;AACzD,MAAI,KAAK,cAAc,OAAW,OAAM,OAAO,KAAK;AACpD,MAAI,aAAa,KAAK,UAAU,EAAG,OAAM,QAAQ,KAAK;AACtD,SAAO,oBAAC,OAAA,EAAO,GAAG,MAAA,CAAO;AAC3B;AAEA,SAAS,qBAAqB,EAAE,QAA8B;AAC5D,QAAM,QAAQ;AAAA,IACZ,UAAU,KAAK,YAAY,CAAA;AAAA,IAC3B,QAAQ,KAAK,UAAU,CAAA;AAAA,IACvB,UAAU;AAAA,IACV,GAAI,KAAK,mBAAmB,SAAY,EAAE,gBAAgB,KAAK,eAAA,IAAmB,CAAA;AAAA,IAClF,GAAI,KAAK,YAAY,SAAY,EAAE,SAAS,KAAK,YAAY,CAAA;AAAA,EAAC;AAGhE,SAAO,oBAAC,YAAA,EAAW,OAAc,WAAU,YAAA,CAAY;AACzD;AAEA,SAAS,gBAAgB,EAAE,QAA8B;AACvD,SACE,qBAAC,WAAA,EAAQ,WAAU,iDACjB,UAAA;AAAA,IAAA,oBAAC,WAAA,EAAQ,WAAU,gEACjB,UAAA,oBAAC,sBAAmB,MAAM,KAAK,OAAO,EAAA,CACxC;AAAA,IACC,KAAK,WACJ,oBAAC,OAAA,EAAI,WAAU,oCACb,UAAA,oBAAC,oBAAA,EAAmB,MAAM,KAAK,QAAA,CAAS,EAAA,CAC1C;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAAS,iBAAiB,EAAE,QAA8B;AACxD,QAAM,QAAQ,CAAC,KAAK,IAAI,KAAK,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,KAAK;AACpE,QAAM,UAAU,KAAK,QAAQ,oBAAC,sBAAmB,MAAM,KAAK,OAAO,IAAK,KAAK;AAE7E,MAAI,KAAK,MAAM;AACb,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,KAAK;AAAA,QACX,QAAO;AAAA,QACP,KAAI;AAAA,QACJ;AAAA,QACA,WAAU;AAAA,QAET,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA,WAAU;AAAA,MAET,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAAS,kBAAkB,EAAE,QAA8B;AACzD,QAAM,QAAQ,KAAK,SAAS,CAAA;AAC5B,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,SACE,oBAAC,OAAA,EAAI,WAAU,wBACZ,gBAAM,IAAI,CAAC,MAAM,8BACf,oBAAA,EAA+B,MAAM,QAAb,KAAmB,CAC7C,GACH;AAEJ;AAEA,SAAS,eAAe,EAAE,QAA8B;AACtD,QAAM,YAAY,aAAa,KAAK,QAAQ,EAAE;AAC9C,MAAI,CAAC,UAAW,QAAO;AAEvB,QAAM,MAAM,YAAY,SAAS,IAAI,QAAQ;AAC7C,6BAAQ,KAAA,EAAI,yBAAyB,EAAE,QAAQ,aAAa;AAC9D;AAEA,SAAS,cAAc,OAAqB,MAA0C;AACpF,MAAI,CAAC,MAAO,SAAO,6BAAM,SAAS,SAAQ,EAAE,YAAY,WAAA,IAAe;AAEvE,QAAM,cAA6B,CAAA;AAEnC,MAAI,MAAM,MAAO,aAAY,QAAQ,MAAM;AAC3C,MAAI,MAAM,gBAAiB,aAAY,kBAAkB,MAAM;AAC/D,MAAI,MAAM,KAAM,aAAY,aAAa;AACzC,MAAI,MAAM,MAAO,aAAY,UAAU;AACvC,MAAI,MAAM,OAAQ,aAAY,YAAY;AAE1C,QAAM,cAAwB,CAAA;AAC9B,MAAI,MAAM,UAAW,aAAY,KAAK,WAAW;AACjD,MAAI,MAAM,cAAe,aAAY,KAAK,cAAc;AACxD,MAAI,YAAY,SAAS,eAAe,iBAAiB,YAAY,KAAK,GAAG;AAE7E,MACE,MAAM,kBAAkB,eACxB,MAAM,kBAAkB,eACxB,MAAM,kBAAkB,cACxB;AACA,gBAAY,gBAAgB,MAAM;AAAA,EACpC;AAEA,MAAI,MAAM,YAAY,MAAM,WAAW,GAAG;AACxC,gBAAY,WAAW,GAAG,MAAM,QAAQ;AAAA,EAC1C;AAEA,MAAI,MAAM,YAAY,MAAM,WAAW,GAAG;AACxC,gBAAY,UAAU;AACtB,gBAAY,WAAW;AACvB,gBAAY,kBAAkB,MAAM;AACpC,gBAAY,kBAAkB;AAC9B,gBAAY,aAAa;AAAA,EAC3B;AAEA,MACE,MAAM,iBAAiB,YACvB,MAAM,aACL,CAAC,MAAM,YAAY,MAAM,YAAY,IACtC;AACA,gBAAY,WAAW;AACvB,gBAAY,eAAe;AAC3B,gBAAY,aAAa;AACzB,gBAAY,UAAU;AACtB,gBAAY,gBAAgB;AAAA,EAC9B;AAEA,MAAI,MAAM,WAAW;AACnB,gBAAY,aACV;AAAA,EACJ;AAEA,MAAI,CAAC,YAAY,eAAc,6BAAM,SAAS,QAAO;AACnD,gBAAY,aAAa;AAAA,EAC3B;AAEA,SAAO,OAAO,KAAK,WAAW,EAAE,SAAS,IAAI,cAAc;AAC7D;AAEA,SAAS,aAAa,MAAsB;AAC1C,SAAO,KACJ,QAAQ,mBAAmB,OAAO,EAClC,QAAQ,MAAM,GAAG,EACjB,QAAQ,SAAS,CAAC,UAAU,MAAM,aAAa;AACpD;AAEA,SAAS,2BAA2B,MAAwC;AAC1E,SAAO;AAAA,IACL,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK,QAAQ,CAAA;AAAA,IACnB,OAAO,KAAK,SAAS,CAAA;AAAA,IACrB,QAAQ,KAAK,UAAU;AAAA,IACvB,SAAS,KAAK,WAAW;AAAA,EAAA;AAE7B;AAEA,SAAS,qBACP,SACA,SACA,YACuB;;AACvB,QAAM,aACJ,wCAAS,mBAAT,iCAA0B,SAAS,gBACnC,4BAA4B,SAAS,UAAU;AACjD,SAAO,EAAE,SAAS,WAAW,SAAA;AAC/B;AAEA,SAAS,4BACP,SACA,YAC+B;AAC/B,QAAM,SAAS,qBAAqB,QAAQ,OAAO;AACnD,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO,WAAW,KAAK,CAAC,cAAc;;AACpC,UAAM,cAAc,sBAAqB,eAAU,UAAU,UAAU,MAA9B,mBAAiC,OAAO;AACjF,QAAI,eAAe,gBAAgB,QAAQ;AACzC,aAAO;AAAA,IACT;AAEA,UAAM,cAAc,sBAAqB,eAAU,UAAU,gBAApB,mBAAiC,WAAW,KAAK,IAAI;AAC9F,WAAO,gBAAgB;AAAA,EACzB,CAAC;AACH;AAEA,SAAS,qBAAqB,OAA2B;AACvD,UAAQ,SAAS,IACd,KAAA,EACA,QAAQ,OAAO,EAAE,EACjB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,QAAQ,GAAG,EACnB,YAAA;AACL;AAEA,SAAS,4BACP,YACA,SACiB;AACjB,QAAM,SAA0B,EAAE,GAAG,QAAQ,MAAA;AAC7C,QAAM,OAAO,CAAC,GAAI,QAAQ,QAAQ,CAAA,CAAG;AACrC,QAAM,mBAAmB,WAAW,OAAO,CAAC,UAAU,kBAAkB,KAAK,CAAC;AAC9E,MAAI,WAAW;AAEf,aAAW,SAAS,kBAAkB;AACpC,QAAI,MAAM,SAAS,QAAQ;AACzB,YAAM,YAAY,KAAK,MAAM,QAAQ;AACrC,UAAI,UAAU,SAAS,GAAG;AACxB,eAAO,OAAO,UAAU,KAAK,GAAG;AAAA,MAClC;AACA,iBAAW,KAAK;AAChB;AAAA,IACF;AAEA,QAAI,WAAW,KAAK,QAAQ;AAC1B,aAAO,MAAM,IAAI,IAAI,KAAK,QAAQ,KAAK;AACvC,kBAAY;AAAA,IACd;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,0BAA0B,YAAgC,QAAyB;AAC1F,SAAO,WAAW,OAAO,CAAC,UAAU,MAAM,aAAa,OAAO,MAAM,IAAI,KAAK,IAAI,KAAA,MAAW,EAAE;AAChG;AAEA,eAAe,qBACb,QACA,WACA,QACA;AACA,SAAO,OAAO;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,oBAAoB,qBAAqB,MAAM,GAAG,UAAU,UAAU,cAAc,EAAE;AAAA,IACtF,EAAE,QAAQ,0BAAA;AAAA,EAA0B;AAExC;AAEA,SAAS,0BAA0B,UAAqD;AACtF,QAAM,YAAY,SAAS;AAC3B,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,QAAM,SAAS;AAAA,IACb,UAAU,UAAU,cAAc,CAAA;AAAA,IAClC,SAAS;AAAA,EAAA;AAEX,QAAM,SAAS;AAAA,IACb,qBAAqB,MAAM;AAAA,IAC3B,UAAU,UAAU,cAAc,CAAA;AAAA,EAAC;AAErC,QAAM,MAAM,wBAAwB,UAAU,MAAM,MAAM;AAE1D,MAAI,UAAU,OAAO,YAAA,MAAkB,OAAO;AAC5C,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,wBAAwB,MAAc,QAAgC;AAC7E,QAAM,MAAM,IAAI,IAAI,MAAM,kBAAkB;AAC5C,QAAM,YAAY,EAAE,GAAG,OAAA;AAEvB,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,QAAI,IAAI,SAAS,SAAS,IAAI,GAAG,GAAG,GAAG;AACrC,UAAI,WAAW,IAAI,SAAS,QAAQ,IAAI,GAAG,KAAK,mBAAmB,KAAK,CAAC;AACzE,aAAO,UAAU,GAAG;AAAA,IACtB;AAAA,EACF;AAEA,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD,QAAI,aAAa,IAAI,KAAK,KAAK;AAAA,EACjC;AAEA,SAAO,GAAG,IAAI,QAAQ,GAAG,IAAI,MAAM;AACrC;AAEA,SAAS,oBAAoB,QAAsC;AACjE,MAAI,WAAW,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,aAAa,WAAW,QAAQ;AAC7C,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,oBAAoB,OAA4C;AACvE,SACE,SAAS,QACT,OAAO,UAAU,aAChB,YAAY,SAAS,YAAY,SAAS,aAAa;AAE5D;AAEA,SAAS,eAAe,MAA6C;;AACnE,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI,KAAK,MAAO,QAAO,KAAK;AAC5B,MAAI,KAAK,KAAM,QAAO,KAAK;AAC3B,MAAI,KAAK,SAAS;AAChB,WAAO,aAAa,KAAK,QAAQ,EAAE,EAChC,QAAQ,YAAY,GAAG,EACvB,KAAA;AACL,MAAI,KAAK,SAAS,OAAQ,QAAO,KAAK,UAAU;AAChD,OAAK,KAAK,SAAS,UAAU,KAAK,SAAS,qBAAmB,UAAK,aAAL,mBAAe,SAAQ;AACnF,WAAO,CAAC,KAAK,MAAM,GAAG,KAAK,SAAS,IAAI,CAAC,UAAU,eAAe,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE;AAAA,EACpF;AACA,MAAI,KAAK,SAAS,YAAY,KAAK,MAAO,QAAO,eAAe,KAAK,KAAK;AAC1E,MAAI,KAAK,SAAS,gBAAgB;AAChC,YAAQ,KAAK,SAAS,CAAA,GAAI,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EACxE;AACA,MAAI,KAAK,SAAS,YAAU,UAAK,aAAL,mBAAe,SAAQ;AACjD,WAAO,CAAC,KAAK,MAAM,GAAG,KAAK,SAAS,IAAI,CAAC,UAAU,eAAe,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE;AAAA,EACpF;AACA,SAAO;AACT;AAEA,SAAS,aAAa,MAA2B;AAC/C,SACE,KAAK,SAAS,UACd,KAAK,SAAS,UACd,KAAK,SAAS,kBACd,KAAK,SAAS,UACd,KAAK,SAAS,UACd,KAAK,SAAS,YACd,KAAK,SAAS;AAElB;"}
|