@mastra/playground-ui 38.0.0-alpha.8 → 38.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/dist/{Entity-Bwbh0iLW.cjs → Entity-BYv3HxFw.cjs} +3 -2
- package/dist/{Entity-Bwbh0iLW.cjs.map → Entity-BYv3HxFw.cjs.map} +1 -1
- package/dist/{Entity-CyYGTYWL.js → Entity-Bm2Ej7Is.js} +3 -2
- package/dist/{Entity-CyYGTYWL.js.map → Entity-Bm2Ej7Is.js.map} +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Entity.cjs.js +1 -1
- package/dist/components/Entity.es.js +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +1 -1
- package/dist/components/RuleBuilder.es.js +1 -1
- package/dist/{entity-header-C8I47AfB.js → entity-header-0O1DTUKq.js} +2 -1
- package/dist/{entity-header-C8I47AfB.js.map → entity-header-0O1DTUKq.js.map} +1 -1
- package/dist/{entity-header-FXlDOgXp.cjs → entity-header-DqFtpiMx.cjs} +2 -1
- package/dist/{entity-header-FXlDOgXp.cjs.map → entity-header-DqFtpiMx.cjs.map} +1 -1
- package/dist/index.cjs.js +137 -137
- package/dist/index.es.js +66 -66
- package/dist/{multi-column-B5nBrjmh.cjs → multi-column-BaLTJpM1.cjs} +2 -1
- package/dist/{multi-column-B5nBrjmh.cjs.map → multi-column-BaLTJpM1.cjs.map} +1 -1
- package/dist/{multi-column-CUxbXyQp.js → multi-column-VYOIJrLB.js} +2 -1
- package/dist/{multi-column-CUxbXyQp.js.map → multi-column-VYOIJrLB.js.map} +1 -1
- package/dist/resize/collapsible-panel.cjs.js +1 -1
- package/dist/resize/collapsible-panel.es.js +1 -1
- package/dist/resize/panel-drawer.cjs.js +2 -1
- package/dist/resize/panel-drawer.cjs.js.map +1 -1
- package/dist/resize/panel-drawer.es.js +2 -1
- package/dist/resize/panel-drawer.es.js.map +1 -1
- package/dist/{rule-builder-CN5HwvJ3.cjs → rule-builder-BGlwYc1Q.cjs} +2 -2
- package/dist/{rule-builder-CN5HwvJ3.cjs.map → rule-builder-BGlwYc1Q.cjs.map} +1 -1
- package/dist/{rule-builder-B7J3z1Gd.js → rule-builder-DYON077L.js} +2 -2
- package/dist/{rule-builder-B7J3z1Gd.js.map → rule-builder-DYON077L.js.map} +1 -1
- package/dist/src/domains/memory/hooks/use-observational-memory.d.ts +40 -0
- package/package.json +8 -8
package/dist/index.es.js
CHANGED
|
@@ -6,7 +6,7 @@ export { B as Button, b as buttonVariants } from './Button-Bq0VuEbC.js';
|
|
|
6
6
|
export { C as CodeEditor, V as VARIABLE_PATTERN, c as codeLanguages, a as createVariableAutocomplete, f as flattenSchemaToVariables, u as useCodemirrorTheme, v as variableHighlight } from './code-editor-BoBPNQhp.js';
|
|
7
7
|
export { h as highlight } from './highlight-Dis62bkj.js';
|
|
8
8
|
export { E as EmptyState } from './EmptyState-Cy8hG1-a.js';
|
|
9
|
-
export { E as Entity, a as EntityContent, b as EntityDescription, c as EntityIcon, d as EntityName } from './Entity-
|
|
9
|
+
export { E as Entity, a as EntityContent, b as EntityDescription, c as EntityIcon, d as EntityName } from './Entity-Bm2Ej7Is.js';
|
|
10
10
|
export { P as PermissionDenied } from './PermissionDenied-DgS-ANHj.js';
|
|
11
11
|
export { S as SessionExpired } from './SessionExpired-Di89Q6es.js';
|
|
12
12
|
export { H as Header, a as HeaderAction, b as HeaderGroup, c as HeaderTitle } from './Header-DQvlg0Sf.js';
|
|
@@ -28,7 +28,7 @@ export { D as Dialog, a as DialogBody, b as DialogClose, c as DialogContent, d a
|
|
|
28
28
|
export { D as Drawer, a as DrawerBackdrop, b as DrawerBody, c as DrawerClose, d as DrawerContent, e as DrawerDescription, f as DrawerFooter, g as DrawerHeader, h as DrawerIndent, i as DrawerIndentBackground, j as DrawerInteractive, k as DrawerPopup, l as DrawerPortal, m as DrawerProvider, n as DrawerSwipeArea, o as DrawerTitle, p as DrawerTrigger, q as DrawerViewport, r as createDrawerHandle, u as useDrawerSide } from './drawer-Xyd1zBeV.js';
|
|
29
29
|
export { D as DropdownMenu } from './dropdown-menu-CGei48WH.js';
|
|
30
30
|
export { E as Entry } from './entry-Dn_tH23N.js';
|
|
31
|
-
export { E as EntityHeader } from './entity-header-
|
|
31
|
+
export { E as EntityHeader } from './entity-header-0O1DTUKq.js';
|
|
32
32
|
export { F as FieldBlock } from './field-block-CpRBHzQO.js';
|
|
33
33
|
export { F as FieldBlocksLayout } from './field-blocks-layout-CWb7D6dY.js';
|
|
34
34
|
export { T as TextFieldBlock } from './text-field-block-wLF3JlhE.js';
|
|
@@ -78,7 +78,7 @@ export { T as Tab, a as TabList, b as Tabs } from './tabs-tab-XnMoa1fn.js';
|
|
|
78
78
|
export { T as TabContent } from './tabs-content--uzXt5ch.js';
|
|
79
79
|
export { T as TextAndIcon, g as getShortId } from './get-short-id-ZED99MfC.js';
|
|
80
80
|
export { C as ContentBlock, a as ContentBlocks } from './content-block-BTpK7gPz.js';
|
|
81
|
-
export { C as Column, a as Columns, M as MultiColumn } from './multi-column-
|
|
81
|
+
export { C as Column, a as Columns, M as MultiColumn } from './multi-column-VYOIJrLB.js';
|
|
82
82
|
export { C as CodeDiff } from './code-diff-lktH1err.js';
|
|
83
83
|
export { I as ItemList, a as ItemListSkeleton, g as getItemListColumnTemplate, b as getToNextItemFn, c as getToPreviousItemFn } from './helpers-3p9MxQbh.js';
|
|
84
84
|
export { N as Notice } from './Notice-CiS1Dv3i.js';
|
|
@@ -107,6 +107,67 @@ export { H as HorizontalBars } from './horizontal-bars-D_1wypjd.js';
|
|
|
107
107
|
export { M as MetricsLineChart, a as MetricsLineChartTooltip } from './metrics-line-chart-BUUqDQPW.js';
|
|
108
108
|
export { S as ScatterPlotChart, a as ScatterPlotChartTooltip, f as formatScatterPlotAxisTick, g as getScatterPlotClickedPoint, b as getScatterPlotPointColor } from './scatter-plot-chart-B3hfFMKS.js';
|
|
109
109
|
export { S as StatusBadge } from './StatusBadge-RV2nOf-F.js';
|
|
110
|
+
export { AgentIcon } from './icons/AgentIcon.es.js';
|
|
111
|
+
export { AgentCoinIcon } from './icons/AgentCoinIcon.es.js';
|
|
112
|
+
export { AiIcon } from './icons/AiIcon.es.js';
|
|
113
|
+
export { ApiIcon } from './icons/ApiIcon.es.js';
|
|
114
|
+
export { BranchIcon } from './icons/BranchIcon.es.js';
|
|
115
|
+
export { CheckIcon } from './icons/CheckIcon.es.js';
|
|
116
|
+
export { ChevronIcon } from './icons/ChevronIcon.es.js';
|
|
117
|
+
export { CommitIcon } from './icons/CommitIcon.es.js';
|
|
118
|
+
export { CrossIcon } from './icons/CrossIcon.es.js';
|
|
119
|
+
export { DbIcon } from './icons/DbIcon.es.js';
|
|
120
|
+
export { DebugIcon } from './icons/DebugIcon.es.js';
|
|
121
|
+
export { DeploymentIcon } from './icons/DeploymentIcon.es.js';
|
|
122
|
+
export { DividerIcon } from './icons/DividerIcon.es.js';
|
|
123
|
+
export { DocsIcon } from './icons/DocsIcon.es.js';
|
|
124
|
+
export { EnvIcon } from './icons/EnvIcon.es.js';
|
|
125
|
+
export { FiltersIcon } from './icons/FiltersIcon.es.js';
|
|
126
|
+
export { GithubCoinIcon } from './icons/GithubCoinIcon.es.js';
|
|
127
|
+
export { GithubIcon } from './icons/GithubIcon.es.js';
|
|
128
|
+
export { GoogleIcon } from './icons/GoogleIcon.es.js';
|
|
129
|
+
export { RepoIcon } from './icons/RepoIcon.es.js';
|
|
130
|
+
export { HomeIcon } from './icons/HomeIcon.es.js';
|
|
131
|
+
export { Icon } from './icons/Icon.es.js';
|
|
132
|
+
export { InfoIcon } from './icons/InfoIcon.es.js';
|
|
133
|
+
export { JudgeIcon } from './icons/JudgeIcon.es.js';
|
|
134
|
+
export { LogsIcon } from './icons/LogsIcon.es.js';
|
|
135
|
+
export { MemoryIcon } from './icons/MemoryIcon.es.js';
|
|
136
|
+
export { OpenAIIcon } from './icons/OpenAIIcon.es.js';
|
|
137
|
+
export { PromptIcon } from './icons/PromptIcon.es.js';
|
|
138
|
+
export { SettingsIcon } from './icons/SettingsIcon.es.js';
|
|
139
|
+
export { SlashIcon } from './icons/SlashIcon.es.js';
|
|
140
|
+
export { ToolsIcon } from './icons/ToolsIcon.es.js';
|
|
141
|
+
export { SkillIcon } from './icons/SkillIcon.es.js';
|
|
142
|
+
export { TraceIcon } from './icons/TraceIcon.es.js';
|
|
143
|
+
export { TsIcon } from './icons/TsIcon.es.js';
|
|
144
|
+
export { VariablesIcon } from './icons/VariablesIcon.es.js';
|
|
145
|
+
export { WorkflowIcon } from './icons/WorkflowIcon.es.js';
|
|
146
|
+
export { WorkflowCoinIcon } from './icons/WorkflowCoinIcon.es.js';
|
|
147
|
+
export { LatencyIcon } from './icons/LatencyIcon.es.js';
|
|
148
|
+
export { McpServerIcon } from './icons/McpServerIcon.es.js';
|
|
149
|
+
export { FolderIcon } from './icons/FolderIcon.es.js';
|
|
150
|
+
export { McpCoinIcon } from './icons/McpCoinIcon.es.js';
|
|
151
|
+
export { ToolCoinIcon } from './icons/ToolCoinIcon.es.js';
|
|
152
|
+
export { AgentNetworkCoinIcon } from './icons/AgentNetworkCoinIcon.es.js';
|
|
153
|
+
export { ProcessorIcon } from './icons/ProcessorIcon.es.js';
|
|
154
|
+
export { AmazonIcon } from './icons/AmazonIcon.es.js';
|
|
155
|
+
export { AnthropicChatIcon } from './icons/AnthropicChatIcon.es.js';
|
|
156
|
+
export { AnthropicMessagesIcon } from './icons/AnthropicMessagesIcon.es.js';
|
|
157
|
+
export { AzureIcon } from './icons/AzureIcon.es.js';
|
|
158
|
+
export { CohereIcon } from './icons/CohereIcon.es.js';
|
|
159
|
+
export { GroqIcon } from './icons/GroqIcon.es.js';
|
|
160
|
+
export { MastraIcon } from './icons/MastraIcon.es.js';
|
|
161
|
+
export { MistralIcon } from './icons/MistralIcon.es.js';
|
|
162
|
+
export { NetlifyIcon } from './icons/NetlifyIcon.es.js';
|
|
163
|
+
export { OpenaiChatIcon } from './icons/OpenaiChatIcon.es.js';
|
|
164
|
+
export { XGroqIcon } from './icons/XGroqIcon.es.js';
|
|
165
|
+
export { WorkspacesIcon } from './icons/WorkspacesIcon.es.js';
|
|
166
|
+
export { RequestContextIcon } from './icons/RequestContextIcon.es.js';
|
|
167
|
+
export { ScorersIcon } from './icons/ScorersIcon.es.js';
|
|
168
|
+
export { DatasetsIcon } from './icons/DatasetsIcon.es.js';
|
|
169
|
+
export { ExperimentsIcon } from './icons/ExperimentsIcon.es.js';
|
|
170
|
+
export { MetricsIcon } from './icons/MetricsIcon.es.js';
|
|
110
171
|
export { Animations } from './tokens.es.js';
|
|
111
172
|
export { B as BorderColors, a as BorderRadius, C as Colors, F as FontSizes, G as Glows, L as LineHeights, S as Shadows, b as Sizes, c as Spacings } from './spacings-C87dXiT-.js';
|
|
112
173
|
export { controlHeight, controlSizeClasses, controlTriggerOpenState } from './primitives/control-size.es.js';
|
|
@@ -130,6 +191,7 @@ export { T as Toaster, t as toast } from './toast-BKsfnapA.js';
|
|
|
130
191
|
export { CollapsiblePanel } from './resize/collapsible-panel.es.js';
|
|
131
192
|
export { PanelSeparator } from './resize/separator.es.js';
|
|
132
193
|
export { PanelDrawer } from './resize/panel-drawer.es.js';
|
|
194
|
+
export { D as DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE, b as DuplicateEnvironmentVariableKeyError, E as ENV_FILE_MAX_SIZE, c as collectEnvironmentVariables, a as createEmptyEnvironmentVariableEntry, g as getDuplicateEnvironmentVariableKeys, p as parseEnvFileText, r as readEnvFile, d as rowsFromEnvironmentVariables, e as rowsToEnvFileText } from './env-file-BF23giwP.js';
|
|
133
195
|
export { usePlaygroundStore } from './store/playground-store.es.js';
|
|
134
196
|
export { DateRangeSelector } from './domains/metrics/components/date-range-selector.es.js';
|
|
135
197
|
export { CHART_COLORS, formatCompact, formatCost } from './domains/metrics/components/metrics-utils.es.js';
|
|
@@ -218,75 +280,13 @@ export { MemoryStudioPanel } from './domains/memory/components/memory-studio-pan
|
|
|
218
280
|
export { memoryThreadMessagesQueryKey, useMemoryThreadMessages } from './domains/memory/hooks/use-memory-thread-messages.es.js';
|
|
219
281
|
export { observationalMemoryQueryKey, useObservationalMemory } from './domains/memory/hooks/use-observational-memory.es.js';
|
|
220
282
|
export { memoryStatusQueryKey, useMemoryStatus } from './domains/memory/hooks/use-memory-status.es.js';
|
|
221
|
-
export { AgentCoinIcon } from './icons/AgentCoinIcon.es.js';
|
|
222
|
-
export { AgentIcon } from './icons/AgentIcon.es.js';
|
|
223
|
-
export { AgentNetworkCoinIcon } from './icons/AgentNetworkCoinIcon.es.js';
|
|
224
|
-
export { AiIcon } from './icons/AiIcon.es.js';
|
|
225
|
-
export { AmazonIcon } from './icons/AmazonIcon.es.js';
|
|
226
|
-
export { AnthropicChatIcon } from './icons/AnthropicChatIcon.es.js';
|
|
227
|
-
export { AnthropicMessagesIcon } from './icons/AnthropicMessagesIcon.es.js';
|
|
228
|
-
export { ApiIcon } from './icons/ApiIcon.es.js';
|
|
229
|
-
export { AzureIcon } from './icons/AzureIcon.es.js';
|
|
230
283
|
export { BROWSER_FETCHABLE_SCHEMES, EXTENSION_TO_MIME, NON_FETCHABLE_REMOTE_SCHEMES, REMOTE_URL_SCHEMES, fileToBase64, getFileContentType, isBrowserFetchableUrl, isNonFetchableRemoteUrl, isRemoteUrl } from './utils/file.es.js';
|
|
231
|
-
export {
|
|
232
|
-
export { CheckIcon } from './icons/CheckIcon.es.js';
|
|
233
|
-
export { ChevronIcon } from './icons/ChevronIcon.es.js';
|
|
234
|
-
export { CohereIcon } from './icons/CohereIcon.es.js';
|
|
235
|
-
export { CommitIcon } from './icons/CommitIcon.es.js';
|
|
236
|
-
export { CrossIcon } from './icons/CrossIcon.es.js';
|
|
237
|
-
export { D as DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE, b as DuplicateEnvironmentVariableKeyError, E as ENV_FILE_MAX_SIZE, c as collectEnvironmentVariables, a as createEmptyEnvironmentVariableEntry, g as getDuplicateEnvironmentVariableKeys, p as parseEnvFileText, r as readEnvFile, d as rowsFromEnvironmentVariables, e as rowsToEnvFileText } from './env-file-BF23giwP.js';
|
|
238
|
-
export { DatasetsIcon } from './icons/DatasetsIcon.es.js';
|
|
239
|
-
export { DbIcon } from './icons/DbIcon.es.js';
|
|
240
|
-
export { DebugIcon } from './icons/DebugIcon.es.js';
|
|
241
|
-
export { DeploymentIcon } from './icons/DeploymentIcon.es.js';
|
|
242
|
-
export { DividerIcon } from './icons/DividerIcon.es.js';
|
|
243
|
-
export { DocsIcon } from './icons/DocsIcon.es.js';
|
|
244
|
-
export { EnvIcon } from './icons/EnvIcon.es.js';
|
|
245
|
-
export { ExperimentsIcon } from './icons/ExperimentsIcon.es.js';
|
|
246
|
-
export { FiltersIcon } from './icons/FiltersIcon.es.js';
|
|
247
|
-
export { FolderIcon } from './icons/FolderIcon.es.js';
|
|
248
|
-
export { GithubCoinIcon } from './icons/GithubCoinIcon.es.js';
|
|
249
|
-
export { GithubIcon } from './icons/GithubIcon.es.js';
|
|
250
|
-
export { GoogleIcon } from './icons/GoogleIcon.es.js';
|
|
251
|
-
export { GroqIcon } from './icons/GroqIcon.es.js';
|
|
252
|
-
export { HomeIcon } from './icons/HomeIcon.es.js';
|
|
253
|
-
export { Icon } from './icons/Icon.es.js';
|
|
254
|
-
export { InfoIcon } from './icons/InfoIcon.es.js';
|
|
255
|
-
export { JudgeIcon } from './icons/JudgeIcon.es.js';
|
|
256
|
-
export { LatencyIcon } from './icons/LatencyIcon.es.js';
|
|
257
|
-
export { LogsIcon } from './icons/LogsIcon.es.js';
|
|
258
|
-
export { MastraIcon } from './icons/MastraIcon.es.js';
|
|
259
|
-
export { McpCoinIcon } from './icons/McpCoinIcon.es.js';
|
|
260
|
-
export { McpServerIcon } from './icons/McpServerIcon.es.js';
|
|
261
|
-
export { MemoryIcon } from './icons/MemoryIcon.es.js';
|
|
262
|
-
export { MetricsIcon } from './icons/MetricsIcon.es.js';
|
|
263
|
-
export { MistralIcon } from './icons/MistralIcon.es.js';
|
|
264
|
-
export { NetlifyIcon } from './icons/NetlifyIcon.es.js';
|
|
265
|
-
export { O as OPERATORS, a as OPERATOR_LABELS, R as RuleBuilder, b as RuleFieldSelect, c as RuleOperatorSelect, d as RuleRow, e as RuleValueInput, g as getChildFieldOptions, f as getFieldOptionAtPath, h as getFieldOptionsFromSchema, p as parseFieldPath } from './rule-builder-B7J3z1Gd.js';
|
|
266
|
-
export { OpenAIIcon } from './icons/OpenAIIcon.es.js';
|
|
267
|
-
export { OpenaiChatIcon } from './icons/OpenaiChatIcon.es.js';
|
|
268
|
-
export { ProcessorIcon } from './icons/ProcessorIcon.es.js';
|
|
269
|
-
export { PromptIcon } from './icons/PromptIcon.es.js';
|
|
270
|
-
export { RepoIcon } from './icons/RepoIcon.es.js';
|
|
271
|
-
export { RequestContextIcon } from './icons/RequestContextIcon.es.js';
|
|
272
|
-
export { ScorersIcon } from './icons/ScorersIcon.es.js';
|
|
273
|
-
export { SettingsIcon } from './icons/SettingsIcon.es.js';
|
|
284
|
+
export { O as OPERATORS, a as OPERATOR_LABELS, R as RuleBuilder, b as RuleFieldSelect, c as RuleOperatorSelect, d as RuleRow, e as RuleValueInput, g as getChildFieldOptions, f as getFieldOptionAtPath, h as getFieldOptionsFromSchema, p as parseFieldPath } from './rule-builder-DYON077L.js';
|
|
274
285
|
export { SignalChartTab, SignalClusterSidebar, SignalClusterTabs, SignalDetailsPage, SignalTraceDetailsPanel, SignalTraceListTab } from './ee/signals/components/signal-details-page.es.js';
|
|
275
286
|
export { SignalClusterCard, SignalSection, SignalsOverviewPage } from './ee/signals/components/signals-overview-page.es.js';
|
|
276
|
-
export { SkillIcon } from './icons/SkillIcon.es.js';
|
|
277
|
-
export { SlashIcon } from './icons/SlashIcon.es.js';
|
|
278
|
-
export { ToolCoinIcon } from './icons/ToolCoinIcon.es.js';
|
|
279
|
-
export { ToolsIcon } from './icons/ToolsIcon.es.js';
|
|
280
287
|
export { TopicTraceDetailsPanel } from './ee/topics/components/topic-trace-details-panel.es.js';
|
|
281
288
|
export { TopicTraceSummaryList } from './ee/topics/components/topic-trace-summary-list.es.js';
|
|
282
289
|
export { TopicsLayout } from './ee/topics/components/topics-layout.es.js';
|
|
283
|
-
export { TraceIcon } from './icons/TraceIcon.es.js';
|
|
284
|
-
export { TsIcon } from './icons/TsIcon.es.js';
|
|
285
|
-
export { VariablesIcon } from './icons/VariablesIcon.es.js';
|
|
286
|
-
export { WorkflowCoinIcon } from './icons/WorkflowCoinIcon.es.js';
|
|
287
|
-
export { WorkflowIcon } from './icons/WorkflowIcon.es.js';
|
|
288
|
-
export { WorkspacesIcon } from './icons/WorkspacesIcon.es.js';
|
|
289
|
-
export { XGroqIcon } from './icons/XGroqIcon.es.js';
|
|
290
290
|
export { aggregateTopics, filterTraceSummaries, getTopicColor, getTopicTraceCount, getTraceCount, getTraceShare, getVisibleTraceSummaries, sortTraceSummaries } from './ee/topics/utils.es.js';
|
|
291
291
|
export { countLeafRules, createDefaultRule, createDefaultRuleGroup, isRule, isRuleGroup } from './utils/rule-engine.es.js';
|
|
292
292
|
export { d as downloadJson } from './downloadJson-DuPoMa_6.js';
|
|
@@ -4,6 +4,7 @@ require('./index.css');const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
;/* empty css */
|
|
5
5
|
require('@base-ui/react/combobox');
|
|
6
6
|
require('./dropdown-menu-pHJH-29Y.cjs');
|
|
7
|
+
require('./popover-fpyU6qei.cjs');
|
|
7
8
|
const lucideReact = require('lucide-react');
|
|
8
9
|
const React = require('react');
|
|
9
10
|
require('./components/DataDetailsPanel.cjs.js');
|
|
@@ -153,4 +154,4 @@ function ScrollArrow({ direction, onClick }) {
|
|
|
153
154
|
exports.Column = Column;
|
|
154
155
|
exports.Columns = Columns;
|
|
155
156
|
exports.MultiColumn = MultiColumn;
|
|
156
|
-
//# sourceMappingURL=multi-column-
|
|
157
|
+
//# sourceMappingURL=multi-column-BaLTJpM1.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-column-B5nBrjmh.cjs","sources":["../src/ds/components/Columns/column-content.tsx","../src/ds/components/Columns/column-root.tsx","../src/ds/components/Columns/column-toolbar.tsx","../src/ds/components/Columns/column.tsx","../src/ds/components/Columns/columns.tsx","../src/ds/components/Columns/multi-column.tsx"],"sourcesContent":["import { cn } from '@/index';\n\nexport type ColumnProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnContent({ children, className }: ColumnProps) {\n return <div className={cn(`grid overflow-y-auto gap-8 content-start`, className)}>{children}</div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnProps = {\n children: React.ReactNode;\n className?: string;\n withRightSeparator?: boolean;\n withLeftSeparator?: boolean;\n};\n\nexport function ColumnRoot({ children, className, withLeftSeparator, withRightSeparator }: ColumnProps) {\n return (\n <div className=\"flex overflow-y-auto w-full\">\n {withLeftSeparator && <Separator />}\n\n <div className={cn(`grid gap-8 content-start w-full overflow-y-auto`, className)}>{children}</div>\n\n {withRightSeparator && <Separator />}\n </div>\n );\n}\n\nfunction Separator() {\n return <div className={cn('bg-surface5 w-[3px] shrink-0 mx-[1.5vw]')}></div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnToolbarProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnToolbar({ children, className }: ColumnToolbarProps) {\n return (\n <div className={cn(`flex items-center justify-between w-full flex-wrap gap-4 gap-x-6`, className)}>{children}</div>\n );\n}\n","import { ColumnContent } from './column-content';\nimport { ColumnRoot } from './column-root';\nimport { ColumnToolbar } from './column-toolbar';\n\nexport const Column = Object.assign(ColumnRoot, {\n Content: ColumnContent,\n Toolbar: ColumnToolbar,\n});\n","import { cn } from '@/index';\n\nexport type ColumnsProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function Columns({ children, className }: ColumnsProps) {\n return <div className={cn(`grid w-full h-full grid-cols-1 overflow-y-auto`, className)}>{children}</div>;\n}\n","'use client';\n\nimport { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button';\nimport { cn } from '@/lib/utils';\n\nexport type MultiColumnProps = {\n children?: React.ReactNode;\n numOfColumns?: number;\n minColumnWidth?: string;\n};\n\nexport function MultiColumn({ children, numOfColumns = 1, minColumnWidth }: MultiColumnProps): React.JSX.Element {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(false);\n const updateScrollState = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n const { scrollLeft, scrollWidth, clientWidth } = el;\n setCanScrollLeft(scrollLeft > 1);\n setCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n }, []);\n\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n\n updateScrollState();\n\n el.addEventListener('scroll', updateScrollState, { passive: true });\n\n const observer = new ResizeObserver(updateScrollState);\n observer.observe(el);\n\n return () => {\n el.removeEventListener('scroll', updateScrollState);\n observer.disconnect();\n };\n }, [updateScrollState]);\n\n const prevColumnsRef = useRef(numOfColumns);\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n if (numOfColumns > prevColumnsRef.current) {\n // New column added — scroll to the right end so it's visible\n requestAnimationFrame(() => {\n el.scrollTo({ left: el.scrollWidth, behavior: 'smooth' });\n });\n }\n prevColumnsRef.current = numOfColumns;\n }, [numOfColumns]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault();\n scrollToColumn(e.key === 'ArrowLeft' ? 'left' : 'right');\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, []);\n\n const scrollToColumn = (direction: 'left' | 'right') => {\n const el = scrollRef.current;\n if (!el) return;\n\n const columns = Array.from(el.children) as HTMLElement[];\n const containerLeft = el.scrollLeft;\n const containerRight = containerLeft + el.clientWidth;\n\n if (direction === 'right') {\n // Find the first column whose right edge is past the container's right edge\n const target = columns.find(col => col.offsetLeft + col.offsetWidth > containerRight + 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft + target.offsetWidth - el.clientWidth, behavior: 'smooth' });\n }\n } else {\n // Find the last column whose left edge is before the container's left edge\n const target = [...columns].reverse().find(col => col.offsetLeft < containerLeft - 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft, behavior: 'smooth' });\n }\n }\n };\n\n return (\n <div className={cn('MULTI_COLUMN relative w-full h-full overflow-hidden')}>\n {canScrollLeft && <ScrollArrow direction=\"left\" onClick={() => scrollToColumn('left')} />}\n {canScrollRight && <ScrollArrow direction=\"right\" onClick={() => scrollToColumn('right')} />}\n <div\n ref={scrollRef}\n className=\"grid overflow-x-auto w-full overflow-y-auto h-full\"\n style={{\n gridTemplateColumns: `repeat(${numOfColumns}, minmax(${minColumnWidth ?? '0'}, 1fr))`,\n }}\n >\n {children}\n </div>\n </div>\n );\n}\n\nfunction ScrollArrow({ direction, onClick }: { direction: 'left' | 'right'; onClick: () => void }) {\n const Icon = direction === 'left' ? ChevronLeftIcon : ChevronRightIcon;\n const isLeft = direction === 'left';\n\n return (\n <div\n className={cn(\n 'absolute top-0 bottom-0 z-20 w-20 flex items-center justify-center px-5 bg-surface2',\n isLeft ? 'left-0' : 'right-0',\n )}\n >\n <Button onClick={onClick} className=\"w-full h-full px-0\" aria-label={`Scroll ${direction}`}>\n <Icon />\n </Button>\n </div>\n );\n}\n"],"names":["cn","jsxs","jsx","useRef","useState","useCallback","useEffect","ChevronLeftIcon","ChevronRightIcon","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multi-column-BaLTJpM1.cjs","sources":["../src/ds/components/Columns/column-content.tsx","../src/ds/components/Columns/column-root.tsx","../src/ds/components/Columns/column-toolbar.tsx","../src/ds/components/Columns/column.tsx","../src/ds/components/Columns/columns.tsx","../src/ds/components/Columns/multi-column.tsx"],"sourcesContent":["import { cn } from '@/index';\n\nexport type ColumnProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnContent({ children, className }: ColumnProps) {\n return <div className={cn(`grid overflow-y-auto gap-8 content-start`, className)}>{children}</div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnProps = {\n children: React.ReactNode;\n className?: string;\n withRightSeparator?: boolean;\n withLeftSeparator?: boolean;\n};\n\nexport function ColumnRoot({ children, className, withLeftSeparator, withRightSeparator }: ColumnProps) {\n return (\n <div className=\"flex overflow-y-auto w-full\">\n {withLeftSeparator && <Separator />}\n\n <div className={cn(`grid gap-8 content-start w-full overflow-y-auto`, className)}>{children}</div>\n\n {withRightSeparator && <Separator />}\n </div>\n );\n}\n\nfunction Separator() {\n return <div className={cn('bg-surface5 w-[3px] shrink-0 mx-[1.5vw]')}></div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnToolbarProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnToolbar({ children, className }: ColumnToolbarProps) {\n return (\n <div className={cn(`flex items-center justify-between w-full flex-wrap gap-4 gap-x-6`, className)}>{children}</div>\n );\n}\n","import { ColumnContent } from './column-content';\nimport { ColumnRoot } from './column-root';\nimport { ColumnToolbar } from './column-toolbar';\n\nexport const Column = Object.assign(ColumnRoot, {\n Content: ColumnContent,\n Toolbar: ColumnToolbar,\n});\n","import { cn } from '@/index';\n\nexport type ColumnsProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function Columns({ children, className }: ColumnsProps) {\n return <div className={cn(`grid w-full h-full grid-cols-1 overflow-y-auto`, className)}>{children}</div>;\n}\n","'use client';\n\nimport { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button';\nimport { cn } from '@/lib/utils';\n\nexport type MultiColumnProps = {\n children?: React.ReactNode;\n numOfColumns?: number;\n minColumnWidth?: string;\n};\n\nexport function MultiColumn({ children, numOfColumns = 1, minColumnWidth }: MultiColumnProps): React.JSX.Element {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(false);\n const updateScrollState = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n const { scrollLeft, scrollWidth, clientWidth } = el;\n setCanScrollLeft(scrollLeft > 1);\n setCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n }, []);\n\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n\n updateScrollState();\n\n el.addEventListener('scroll', updateScrollState, { passive: true });\n\n const observer = new ResizeObserver(updateScrollState);\n observer.observe(el);\n\n return () => {\n el.removeEventListener('scroll', updateScrollState);\n observer.disconnect();\n };\n }, [updateScrollState]);\n\n const prevColumnsRef = useRef(numOfColumns);\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n if (numOfColumns > prevColumnsRef.current) {\n // New column added — scroll to the right end so it's visible\n requestAnimationFrame(() => {\n el.scrollTo({ left: el.scrollWidth, behavior: 'smooth' });\n });\n }\n prevColumnsRef.current = numOfColumns;\n }, [numOfColumns]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault();\n scrollToColumn(e.key === 'ArrowLeft' ? 'left' : 'right');\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, []);\n\n const scrollToColumn = (direction: 'left' | 'right') => {\n const el = scrollRef.current;\n if (!el) return;\n\n const columns = Array.from(el.children) as HTMLElement[];\n const containerLeft = el.scrollLeft;\n const containerRight = containerLeft + el.clientWidth;\n\n if (direction === 'right') {\n // Find the first column whose right edge is past the container's right edge\n const target = columns.find(col => col.offsetLeft + col.offsetWidth > containerRight + 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft + target.offsetWidth - el.clientWidth, behavior: 'smooth' });\n }\n } else {\n // Find the last column whose left edge is before the container's left edge\n const target = [...columns].reverse().find(col => col.offsetLeft < containerLeft - 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft, behavior: 'smooth' });\n }\n }\n };\n\n return (\n <div className={cn('MULTI_COLUMN relative w-full h-full overflow-hidden')}>\n {canScrollLeft && <ScrollArrow direction=\"left\" onClick={() => scrollToColumn('left')} />}\n {canScrollRight && <ScrollArrow direction=\"right\" onClick={() => scrollToColumn('right')} />}\n <div\n ref={scrollRef}\n className=\"grid overflow-x-auto w-full overflow-y-auto h-full\"\n style={{\n gridTemplateColumns: `repeat(${numOfColumns}, minmax(${minColumnWidth ?? '0'}, 1fr))`,\n }}\n >\n {children}\n </div>\n </div>\n );\n}\n\nfunction ScrollArrow({ direction, onClick }: { direction: 'left' | 'right'; onClick: () => void }) {\n const Icon = direction === 'left' ? ChevronLeftIcon : ChevronRightIcon;\n const isLeft = direction === 'left';\n\n return (\n <div\n className={cn(\n 'absolute top-0 bottom-0 z-20 w-20 flex items-center justify-center px-5 bg-surface2',\n isLeft ? 'left-0' : 'right-0',\n )}\n >\n <Button onClick={onClick} className=\"w-full h-full px-0\" aria-label={`Scroll ${direction}`}>\n <Icon />\n </Button>\n </div>\n );\n}\n"],"names":["cn","jsxs","jsx","useRef","useState","useCallback","useEffect","ChevronLeftIcon","ChevronRightIcon","Button"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import './index.css';/* empty css */
|
|
3
3
|
import '@base-ui/react/combobox';
|
|
4
4
|
import './dropdown-menu-CGei48WH.js';
|
|
5
|
+
import './popover-CfOWA0et.js';
|
|
5
6
|
import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';
|
|
6
7
|
import { useRef, useState, useCallback, useEffect } from 'react';
|
|
7
8
|
import './components/DataDetailsPanel.es.js';
|
|
@@ -149,4 +150,4 @@ function ScrollArrow({ direction, onClick }) {
|
|
|
149
150
|
}
|
|
150
151
|
|
|
151
152
|
export { Column as C, MultiColumn as M, Columns as a };
|
|
152
|
-
//# sourceMappingURL=multi-column-
|
|
153
|
+
//# sourceMappingURL=multi-column-VYOIJrLB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-column-CUxbXyQp.js","sources":["../src/ds/components/Columns/column-content.tsx","../src/ds/components/Columns/column-root.tsx","../src/ds/components/Columns/column-toolbar.tsx","../src/ds/components/Columns/column.tsx","../src/ds/components/Columns/columns.tsx","../src/ds/components/Columns/multi-column.tsx"],"sourcesContent":["import { cn } from '@/index';\n\nexport type ColumnProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnContent({ children, className }: ColumnProps) {\n return <div className={cn(`grid overflow-y-auto gap-8 content-start`, className)}>{children}</div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnProps = {\n children: React.ReactNode;\n className?: string;\n withRightSeparator?: boolean;\n withLeftSeparator?: boolean;\n};\n\nexport function ColumnRoot({ children, className, withLeftSeparator, withRightSeparator }: ColumnProps) {\n return (\n <div className=\"flex overflow-y-auto w-full\">\n {withLeftSeparator && <Separator />}\n\n <div className={cn(`grid gap-8 content-start w-full overflow-y-auto`, className)}>{children}</div>\n\n {withRightSeparator && <Separator />}\n </div>\n );\n}\n\nfunction Separator() {\n return <div className={cn('bg-surface5 w-[3px] shrink-0 mx-[1.5vw]')}></div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnToolbarProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnToolbar({ children, className }: ColumnToolbarProps) {\n return (\n <div className={cn(`flex items-center justify-between w-full flex-wrap gap-4 gap-x-6`, className)}>{children}</div>\n );\n}\n","import { ColumnContent } from './column-content';\nimport { ColumnRoot } from './column-root';\nimport { ColumnToolbar } from './column-toolbar';\n\nexport const Column = Object.assign(ColumnRoot, {\n Content: ColumnContent,\n Toolbar: ColumnToolbar,\n});\n","import { cn } from '@/index';\n\nexport type ColumnsProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function Columns({ children, className }: ColumnsProps) {\n return <div className={cn(`grid w-full h-full grid-cols-1 overflow-y-auto`, className)}>{children}</div>;\n}\n","'use client';\n\nimport { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button';\nimport { cn } from '@/lib/utils';\n\nexport type MultiColumnProps = {\n children?: React.ReactNode;\n numOfColumns?: number;\n minColumnWidth?: string;\n};\n\nexport function MultiColumn({ children, numOfColumns = 1, minColumnWidth }: MultiColumnProps): React.JSX.Element {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(false);\n const updateScrollState = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n const { scrollLeft, scrollWidth, clientWidth } = el;\n setCanScrollLeft(scrollLeft > 1);\n setCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n }, []);\n\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n\n updateScrollState();\n\n el.addEventListener('scroll', updateScrollState, { passive: true });\n\n const observer = new ResizeObserver(updateScrollState);\n observer.observe(el);\n\n return () => {\n el.removeEventListener('scroll', updateScrollState);\n observer.disconnect();\n };\n }, [updateScrollState]);\n\n const prevColumnsRef = useRef(numOfColumns);\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n if (numOfColumns > prevColumnsRef.current) {\n // New column added — scroll to the right end so it's visible\n requestAnimationFrame(() => {\n el.scrollTo({ left: el.scrollWidth, behavior: 'smooth' });\n });\n }\n prevColumnsRef.current = numOfColumns;\n }, [numOfColumns]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault();\n scrollToColumn(e.key === 'ArrowLeft' ? 'left' : 'right');\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, []);\n\n const scrollToColumn = (direction: 'left' | 'right') => {\n const el = scrollRef.current;\n if (!el) return;\n\n const columns = Array.from(el.children) as HTMLElement[];\n const containerLeft = el.scrollLeft;\n const containerRight = containerLeft + el.clientWidth;\n\n if (direction === 'right') {\n // Find the first column whose right edge is past the container's right edge\n const target = columns.find(col => col.offsetLeft + col.offsetWidth > containerRight + 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft + target.offsetWidth - el.clientWidth, behavior: 'smooth' });\n }\n } else {\n // Find the last column whose left edge is before the container's left edge\n const target = [...columns].reverse().find(col => col.offsetLeft < containerLeft - 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft, behavior: 'smooth' });\n }\n }\n };\n\n return (\n <div className={cn('MULTI_COLUMN relative w-full h-full overflow-hidden')}>\n {canScrollLeft && <ScrollArrow direction=\"left\" onClick={() => scrollToColumn('left')} />}\n {canScrollRight && <ScrollArrow direction=\"right\" onClick={() => scrollToColumn('right')} />}\n <div\n ref={scrollRef}\n className=\"grid overflow-x-auto w-full overflow-y-auto h-full\"\n style={{\n gridTemplateColumns: `repeat(${numOfColumns}, minmax(${minColumnWidth ?? '0'}, 1fr))`,\n }}\n >\n {children}\n </div>\n </div>\n );\n}\n\nfunction ScrollArrow({ direction, onClick }: { direction: 'left' | 'right'; onClick: () => void }) {\n const Icon = direction === 'left' ? ChevronLeftIcon : ChevronRightIcon;\n const isLeft = direction === 'left';\n\n return (\n <div\n className={cn(\n 'absolute top-0 bottom-0 z-20 w-20 flex items-center justify-center px-5 bg-surface2',\n isLeft ? 'left-0' : 'right-0',\n )}\n >\n <Button onClick={onClick} className=\"w-full h-full px-0\" aria-label={`Scroll ${direction}`}>\n <Icon />\n </Button>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multi-column-VYOIJrLB.js","sources":["../src/ds/components/Columns/column-content.tsx","../src/ds/components/Columns/column-root.tsx","../src/ds/components/Columns/column-toolbar.tsx","../src/ds/components/Columns/column.tsx","../src/ds/components/Columns/columns.tsx","../src/ds/components/Columns/multi-column.tsx"],"sourcesContent":["import { cn } from '@/index';\n\nexport type ColumnProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnContent({ children, className }: ColumnProps) {\n return <div className={cn(`grid overflow-y-auto gap-8 content-start`, className)}>{children}</div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnProps = {\n children: React.ReactNode;\n className?: string;\n withRightSeparator?: boolean;\n withLeftSeparator?: boolean;\n};\n\nexport function ColumnRoot({ children, className, withLeftSeparator, withRightSeparator }: ColumnProps) {\n return (\n <div className=\"flex overflow-y-auto w-full\">\n {withLeftSeparator && <Separator />}\n\n <div className={cn(`grid gap-8 content-start w-full overflow-y-auto`, className)}>{children}</div>\n\n {withRightSeparator && <Separator />}\n </div>\n );\n}\n\nfunction Separator() {\n return <div className={cn('bg-surface5 w-[3px] shrink-0 mx-[1.5vw]')}></div>;\n}\n","import { cn } from '@/index';\n\nexport type ColumnToolbarProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ColumnToolbar({ children, className }: ColumnToolbarProps) {\n return (\n <div className={cn(`flex items-center justify-between w-full flex-wrap gap-4 gap-x-6`, className)}>{children}</div>\n );\n}\n","import { ColumnContent } from './column-content';\nimport { ColumnRoot } from './column-root';\nimport { ColumnToolbar } from './column-toolbar';\n\nexport const Column = Object.assign(ColumnRoot, {\n Content: ColumnContent,\n Toolbar: ColumnToolbar,\n});\n","import { cn } from '@/index';\n\nexport type ColumnsProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function Columns({ children, className }: ColumnsProps) {\n return <div className={cn(`grid w-full h-full grid-cols-1 overflow-y-auto`, className)}>{children}</div>;\n}\n","'use client';\n\nimport { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Button } from '../Button';\nimport { cn } from '@/lib/utils';\n\nexport type MultiColumnProps = {\n children?: React.ReactNode;\n numOfColumns?: number;\n minColumnWidth?: string;\n};\n\nexport function MultiColumn({ children, numOfColumns = 1, minColumnWidth }: MultiColumnProps): React.JSX.Element {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [canScrollLeft, setCanScrollLeft] = useState(false);\n const [canScrollRight, setCanScrollRight] = useState(false);\n const updateScrollState = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n const { scrollLeft, scrollWidth, clientWidth } = el;\n setCanScrollLeft(scrollLeft > 1);\n setCanScrollRight(scrollLeft + clientWidth < scrollWidth - 1);\n }, []);\n\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n\n updateScrollState();\n\n el.addEventListener('scroll', updateScrollState, { passive: true });\n\n const observer = new ResizeObserver(updateScrollState);\n observer.observe(el);\n\n return () => {\n el.removeEventListener('scroll', updateScrollState);\n observer.disconnect();\n };\n }, [updateScrollState]);\n\n const prevColumnsRef = useRef(numOfColumns);\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n if (numOfColumns > prevColumnsRef.current) {\n // New column added — scroll to the right end so it's visible\n requestAnimationFrame(() => {\n el.scrollTo({ left: el.scrollWidth, behavior: 'smooth' });\n });\n }\n prevColumnsRef.current = numOfColumns;\n }, [numOfColumns]);\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault();\n scrollToColumn(e.key === 'ArrowLeft' ? 'left' : 'right');\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, []);\n\n const scrollToColumn = (direction: 'left' | 'right') => {\n const el = scrollRef.current;\n if (!el) return;\n\n const columns = Array.from(el.children) as HTMLElement[];\n const containerLeft = el.scrollLeft;\n const containerRight = containerLeft + el.clientWidth;\n\n if (direction === 'right') {\n // Find the first column whose right edge is past the container's right edge\n const target = columns.find(col => col.offsetLeft + col.offsetWidth > containerRight + 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft + target.offsetWidth - el.clientWidth, behavior: 'smooth' });\n }\n } else {\n // Find the last column whose left edge is before the container's left edge\n const target = [...columns].reverse().find(col => col.offsetLeft < containerLeft - 1);\n if (target) {\n el.scrollTo({ left: target.offsetLeft, behavior: 'smooth' });\n }\n }\n };\n\n return (\n <div className={cn('MULTI_COLUMN relative w-full h-full overflow-hidden')}>\n {canScrollLeft && <ScrollArrow direction=\"left\" onClick={() => scrollToColumn('left')} />}\n {canScrollRight && <ScrollArrow direction=\"right\" onClick={() => scrollToColumn('right')} />}\n <div\n ref={scrollRef}\n className=\"grid overflow-x-auto w-full overflow-y-auto h-full\"\n style={{\n gridTemplateColumns: `repeat(${numOfColumns}, minmax(${minColumnWidth ?? '0'}, 1fr))`,\n }}\n >\n {children}\n </div>\n </div>\n );\n}\n\nfunction ScrollArrow({ direction, onClick }: { direction: 'left' | 'right'; onClick: () => void }) {\n const Icon = direction === 'left' ? ChevronLeftIcon : ChevronRightIcon;\n const isLeft = direction === 'left';\n\n return (\n <div\n className={cn(\n 'absolute top-0 bottom-0 z-20 w-20 flex items-center justify-center px-5 bg-surface2',\n isLeft ? 'left-0' : 'right-0',\n )}\n >\n <Button onClick={onClick} className=\"w-full h-full px-0\" aria-label={`Scroll ${direction}`}>\n <Icon />\n </Button>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,8 @@ const reactResizablePanels = require('react-resizable-panels');
|
|
|
9
9
|
const resize_panelEdgeIcon = require('./panel-edge-icon.cjs.js');
|
|
10
10
|
const resize_panelIconButton = require('./panel-icon-button.cjs.js');
|
|
11
11
|
const resize_useClampedElementCursor = require('./use-clamped-element-cursor.cjs.js');
|
|
12
|
-
const utils_cn = require('../cn-vA5sWo9W.cjs');
|
|
13
12
|
const icons_Icon = require('../icons/Icon.cjs.js');
|
|
13
|
+
const utils_cn = require('../cn-vA5sWo9W.cjs');
|
|
14
14
|
|
|
15
15
|
const PILL_EDGE_MARGIN = 22;
|
|
16
16
|
const usePanelSizeTransitions = (elementRef) => {
|
|
@@ -5,8 +5,8 @@ import { usePanelRef, Panel } from 'react-resizable-panels';
|
|
|
5
5
|
import { PanelEdgeIcon } from './panel-edge-icon.es.js';
|
|
6
6
|
import { panelIconButtonClass } from './panel-icon-button.es.js';
|
|
7
7
|
import { useClampedElementCursor } from './use-clamped-element-cursor.es.js';
|
|
8
|
-
import { c as cn } from '../cn-BakJzhuv.js';
|
|
9
8
|
import { Icon } from '../icons/Icon.es.js';
|
|
9
|
+
import { c as cn } from '../cn-BakJzhuv.js';
|
|
10
10
|
|
|
11
11
|
const PILL_EDGE_MARGIN = 22;
|
|
12
12
|
const usePanelSizeTransitions = (elementRef) => {
|
|
@@ -6,8 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const resize_panelEdgeIcon = require('./panel-edge-icon.cjs.js');
|
|
7
7
|
const resize_panelIconButton = require('./panel-icon-button.cjs.js');
|
|
8
8
|
const drawer = require('../drawer-xYzVLI5E.cjs');
|
|
9
|
-
const utils_cn = require('../cn-vA5sWo9W.cjs');
|
|
10
9
|
const icons_Icon = require('../icons/Icon.cjs.js');
|
|
10
|
+
require('lucide-react');
|
|
11
|
+
const utils_cn = require('../cn-vA5sWo9W.cjs');
|
|
11
12
|
|
|
12
13
|
const PanelDrawer = ({ direction, label, children }) => {
|
|
13
14
|
return /* @__PURE__ */ jsxRuntime.jsxs(drawer.Drawer, { side: direction, children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-drawer.cjs.js","sources":["../../src/lib/resize/panel-drawer.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { PanelEdgeIcon } from './panel-edge-icon';\nimport { panelIconButtonClass } from './panel-icon-button';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { Icon } from '@/ds/icons';\nimport { cn } from '@/lib/utils';\n\nexport interface PanelDrawerProps {\n direction: 'left' | 'right';\n /** Accessible name for the trigger button and the drawer. */\n label: string;\n children: ReactNode;\n}\n\nexport const PanelDrawer = ({ direction, label, children }: PanelDrawerProps) => {\n return (\n <Drawer side={direction}>\n <DrawerTrigger asChild>\n <button\n type=\"button\"\n aria-label={label}\n className={cn(panelIconButtonClass, 'absolute top-2 z-10', direction === 'left' ? 'left-2' : 'right-2')}\n >\n <Icon>\n <PanelEdgeIcon side={direction} />\n </Icon>\n </button>\n </DrawerTrigger>\n\n <DrawerPortal keepMounted>\n <DrawerBackdrop />\n <DrawerViewport>\n <DrawerPopup className=\"w-[calc(100vw-2.5rem)] max-w-[28rem]\">\n <DrawerTitle className=\"sr-only\">{label}</DrawerTitle>\n <div className=\"flex min-h-0 flex-1 flex-col\">{children}</div>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n};\n"],"names":["jsxs","Drawer","jsx","DrawerTrigger","cn","panelIconButtonClass","Icon","PanelEdgeIcon","DrawerPortal","DrawerBackdrop","DrawerViewport","DrawerPopup","DrawerTitle"],"mappings":"
|
|
1
|
+
{"version":3,"file":"panel-drawer.cjs.js","sources":["../../src/lib/resize/panel-drawer.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { PanelEdgeIcon } from './panel-edge-icon';\nimport { panelIconButtonClass } from './panel-icon-button';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { Icon } from '@/ds/icons';\nimport { cn } from '@/lib/utils';\n\nexport interface PanelDrawerProps {\n direction: 'left' | 'right';\n /** Accessible name for the trigger button and the drawer. */\n label: string;\n children: ReactNode;\n}\n\nexport const PanelDrawer = ({ direction, label, children }: PanelDrawerProps) => {\n return (\n <Drawer side={direction}>\n <DrawerTrigger asChild>\n <button\n type=\"button\"\n aria-label={label}\n className={cn(panelIconButtonClass, 'absolute top-2 z-10', direction === 'left' ? 'left-2' : 'right-2')}\n >\n <Icon>\n <PanelEdgeIcon side={direction} />\n </Icon>\n </button>\n </DrawerTrigger>\n\n <DrawerPortal keepMounted>\n <DrawerBackdrop />\n <DrawerViewport>\n <DrawerPopup className=\"w-[calc(100vw-2.5rem)] max-w-[28rem]\">\n <DrawerTitle className=\"sr-only\">{label}</DrawerTitle>\n <div className=\"flex min-h-0 flex-1 flex-col\">{children}</div>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n};\n"],"names":["jsxs","Drawer","jsx","DrawerTrigger","cn","panelIconButtonClass","Icon","PanelEdgeIcon","DrawerPortal","DrawerBackdrop","DrawerViewport","DrawerPopup","DrawerTitle"],"mappings":";;;;;;;;;;;;AAsBO,MAAM,cAAc,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,UAAS,KAAwB;AAC/E,EAAA,uBACEA,eAAA,CAACC,aAAA,EAAA,EAAO,IAAA,EAAM,SAAA,EACZ,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,oBAAA,EAAA,EAAc,SAAO,IAAA,EACpB,QAAA,kBAAAD,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,KAAA;AAAA,QACZ,WAAWE,WAAA,CAAGC,2CAAA,EAAsB,uBAAuB,SAAA,KAAc,MAAA,GAAS,WAAW,SAAS,CAAA;AAAA,QAEtG,yCAACC,eAAA,EAAA,EACC,QAAA,kBAAAJ,cAAA,CAACK,kCAAA,EAAA,EAAc,IAAA,EAAM,WAAW,CAAA,EAClC;AAAA;AAAA,KACF,EACF,CAAA;AAAA,oBAEAP,eAAA,CAACQ,mBAAA,EAAA,EAAa,WAAA,EAAW,IAAA,EACvB,QAAA,EAAA;AAAA,sBAAAN,cAAA,CAACO,qBAAA,EAAA,EAAe,CAAA;AAAA,sBAChBP,cAAA,CAACQ,qBAAA,EAAA,EACC,QAAA,kBAAAV,eAAA,CAACW,kBAAA,EAAA,EAAY,WAAU,sCAAA,EACrB,QAAA,EAAA;AAAA,wBAAAT,cAAA,CAACU,kBAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBACxCV,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EAAgC,QAAA,EAAS;AAAA,OAAA,EAC1D,CAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -2,8 +2,9 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { PanelEdgeIcon } from './panel-edge-icon.es.js';
|
|
3
3
|
import { panelIconButtonClass } from './panel-icon-button.es.js';
|
|
4
4
|
import { D as Drawer, p as DrawerTrigger, l as DrawerPortal, a as DrawerBackdrop, q as DrawerViewport, k as DrawerPopup, o as DrawerTitle } from '../drawer-Xyd1zBeV.js';
|
|
5
|
-
import { c as cn } from '../cn-BakJzhuv.js';
|
|
6
5
|
import { Icon } from '../icons/Icon.es.js';
|
|
6
|
+
import 'lucide-react';
|
|
7
|
+
import { c as cn } from '../cn-BakJzhuv.js';
|
|
7
8
|
|
|
8
9
|
const PanelDrawer = ({ direction, label, children }) => {
|
|
9
10
|
return /* @__PURE__ */ jsxs(Drawer, { side: direction, children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-drawer.es.js","sources":["../../src/lib/resize/panel-drawer.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { PanelEdgeIcon } from './panel-edge-icon';\nimport { panelIconButtonClass } from './panel-icon-button';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { Icon } from '@/ds/icons';\nimport { cn } from '@/lib/utils';\n\nexport interface PanelDrawerProps {\n direction: 'left' | 'right';\n /** Accessible name for the trigger button and the drawer. */\n label: string;\n children: ReactNode;\n}\n\nexport const PanelDrawer = ({ direction, label, children }: PanelDrawerProps) => {\n return (\n <Drawer side={direction}>\n <DrawerTrigger asChild>\n <button\n type=\"button\"\n aria-label={label}\n className={cn(panelIconButtonClass, 'absolute top-2 z-10', direction === 'left' ? 'left-2' : 'right-2')}\n >\n <Icon>\n <PanelEdgeIcon side={direction} />\n </Icon>\n </button>\n </DrawerTrigger>\n\n <DrawerPortal keepMounted>\n <DrawerBackdrop />\n <DrawerViewport>\n <DrawerPopup className=\"w-[calc(100vw-2.5rem)] max-w-[28rem]\">\n <DrawerTitle className=\"sr-only\">{label}</DrawerTitle>\n <div className=\"flex min-h-0 flex-1 flex-col\">{children}</div>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"panel-drawer.es.js","sources":["../../src/lib/resize/panel-drawer.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { PanelEdgeIcon } from './panel-edge-icon';\nimport { panelIconButtonClass } from './panel-icon-button';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { Icon } from '@/ds/icons';\nimport { cn } from '@/lib/utils';\n\nexport interface PanelDrawerProps {\n direction: 'left' | 'right';\n /** Accessible name for the trigger button and the drawer. */\n label: string;\n children: ReactNode;\n}\n\nexport const PanelDrawer = ({ direction, label, children }: PanelDrawerProps) => {\n return (\n <Drawer side={direction}>\n <DrawerTrigger asChild>\n <button\n type=\"button\"\n aria-label={label}\n className={cn(panelIconButtonClass, 'absolute top-2 z-10', direction === 'left' ? 'left-2' : 'right-2')}\n >\n <Icon>\n <PanelEdgeIcon side={direction} />\n </Icon>\n </button>\n </DrawerTrigger>\n\n <DrawerPortal keepMounted>\n <DrawerBackdrop />\n <DrawerViewport>\n <DrawerPopup className=\"w-[calc(100vw-2.5rem)] max-w-[28rem]\">\n <DrawerTitle className=\"sr-only\">{label}</DrawerTitle>\n <div className=\"flex min-h-0 flex-1 flex-col\">{children}</div>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAsBO,MAAM,cAAc,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,UAAS,KAAwB;AAC/E,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAM,SAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,SAAO,IAAA,EACpB,QAAA,kBAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,KAAA;AAAA,QACZ,WAAW,EAAA,CAAG,oBAAA,EAAsB,uBAAuB,SAAA,KAAc,MAAA,GAAS,WAAW,SAAS,CAAA;AAAA,QAEtG,8BAAC,IAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,IAAA,EAAM,WAAW,CAAA,EAClC;AAAA;AAAA,KACF,EACF,CAAA;AAAA,oBAEA,IAAA,CAAC,YAAA,EAAA,EAAa,WAAA,EAAW,IAAA,EACvB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,CAAA;AAAA,sBAChB,GAAA,CAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,WAAA,EAAA,EAAY,WAAU,sCAAA,EACrB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBACxC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EAAgC,QAAA,EAAS;AAAA,OAAA,EAC1D,CAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -5,8 +5,8 @@ const lucideReact = require('lucide-react');
|
|
|
5
5
|
const React = require('react');
|
|
6
6
|
const utils_ruleEngine = require('./utils/rule-engine.cjs.js');
|
|
7
7
|
const select = require('./select-BxSmi19p.cjs');
|
|
8
|
-
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
9
8
|
const icons_Icon = require('./icons/Icon.cjs.js');
|
|
9
|
+
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
10
10
|
const input = require('./input-VzN7w_Xq.cjs');
|
|
11
11
|
const Button = require('./Button-66ghjQV8.cjs');
|
|
12
12
|
|
|
@@ -591,4 +591,4 @@ exports.getChildFieldOptions = getChildFieldOptions;
|
|
|
591
591
|
exports.getFieldOptionAtPath = getFieldOptionAtPath;
|
|
592
592
|
exports.getFieldOptionsFromSchema = getFieldOptionsFromSchema;
|
|
593
593
|
exports.parseFieldPath = parseFieldPath;
|
|
594
|
-
//# sourceMappingURL=rule-builder-
|
|
594
|
+
//# sourceMappingURL=rule-builder-BGlwYc1Q.cjs.map
|