@mastra/playground-ui 37.0.1-alpha.2 → 37.1.0-alpha.4
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 +28 -0
- package/dist/Avatar-BjYaEMp7.cjs +44 -0
- package/dist/Avatar-BjYaEMp7.cjs.map +1 -0
- package/dist/Avatar-C4iB6och.js +42 -0
- package/dist/Avatar-C4iB6och.js.map +1 -0
- package/dist/Badge-Ba_ltDdC.js +55 -0
- package/dist/Badge-Ba_ltDdC.js.map +1 -0
- package/dist/Badge-Cwp7HH1E.cjs +57 -0
- package/dist/Badge-Cwp7HH1E.cjs.map +1 -0
- package/dist/Breadcrumb-Bo79EXXr.js +34 -0
- package/dist/Breadcrumb-Bo79EXXr.js.map +1 -0
- package/dist/Breadcrumb-OaOfQ2cJ.cjs +37 -0
- package/dist/Breadcrumb-OaOfQ2cJ.cjs.map +1 -0
- package/dist/Button-66ghjQV8.cjs +108 -0
- package/dist/Button-66ghjQV8.cjs.map +1 -0
- package/dist/Button-Bq0VuEbC.js +105 -0
- package/dist/Button-Bq0VuEbC.js.map +1 -0
- package/dist/ErrorBoundary-Bsn4TF3z.js +154 -0
- package/dist/ErrorBoundary-Bsn4TF3z.js.map +1 -0
- package/dist/ErrorBoundary-DB5pfcAb.cjs +175 -0
- package/dist/ErrorBoundary-DB5pfcAb.cjs.map +1 -0
- package/dist/Notice-CiS1Dv3i.js +89 -0
- package/dist/Notice-CiS1Dv3i.js.map +1 -0
- package/dist/Notice-h63wsfzJ.cjs +91 -0
- package/dist/Notice-h63wsfzJ.cjs.map +1 -0
- package/dist/SessionExpired-Di89Q6es.js +45 -0
- package/dist/SessionExpired-Di89Q6es.js.map +1 -0
- package/dist/SessionExpired-PEHQGxqm.cjs +47 -0
- package/dist/SessionExpired-PEHQGxqm.cjs.map +1 -0
- package/dist/alert-dialog-B12mCQ0m.js +99 -0
- package/dist/alert-dialog-B12mCQ0m.js.map +1 -0
- package/dist/alert-dialog-C2_Vo4Cl.cjs +120 -0
- package/dist/alert-dialog-C2_Vo4Cl.cjs.map +1 -0
- package/dist/buttons-group-C0fJastT.cjs +185 -0
- package/dist/buttons-group-C0fJastT.cjs.map +1 -0
- package/dist/buttons-group-b6an6uao.js +161 -0
- package/dist/buttons-group-b6an6uao.js.map +1 -0
- package/dist/checkbox-CgdQc_vN.cjs +109 -0
- package/dist/checkbox-CgdQc_vN.cjs.map +1 -0
- package/dist/checkbox-Cot1EjeD.js +88 -0
- package/dist/checkbox-Cot1EjeD.js.map +1 -0
- package/dist/code-block-C3VKeb3t.js +84 -0
- package/dist/code-block-C3VKeb3t.js.map +1 -0
- package/dist/code-block-Cuj8dH9p.cjs +86 -0
- package/dist/code-block-Cuj8dH9p.cjs.map +1 -0
- package/dist/code-editor-BoBPNQhp.js +441 -0
- package/dist/code-editor-BoBPNQhp.js.map +1 -0
- package/dist/code-editor-DYfn9l8p.cjs +449 -0
- package/dist/code-editor-DYfn9l8p.cjs.map +1 -0
- package/dist/collapsible-CCV0eLl-.cjs +61 -0
- package/dist/collapsible-CCV0eLl-.cjs.map +1 -0
- package/dist/collapsible-CwP9t1xW.js +57 -0
- package/dist/collapsible-CwP9t1xW.js.map +1 -0
- package/dist/combobox-BceHZZ5n.js +223 -0
- package/dist/combobox-BceHZZ5n.js.map +1 -0
- package/dist/combobox-C3eqvELk.cjs +245 -0
- package/dist/combobox-C3eqvELk.cjs.map +1 -0
- package/dist/command-C9pUyBEf.cjs +194 -0
- package/dist/command-C9pUyBEf.cjs.map +1 -0
- package/dist/command-h1VbHGY1.js +165 -0
- package/dist/command-h1VbHGY1.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +1 -1
- package/dist/components/Breadcrumb.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +1 -1
- package/dist/components/ButtonsGroup.cjs.js +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Combobox.cjs.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +3 -3
- package/dist/components/DataDetailsPanel.es.js +3 -3
- package/dist/components/DataFilter.cjs.js +1 -1
- package/dist/components/DataFilter.es.js +1 -1
- package/dist/components/DataList.cjs.js +5 -4
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +4 -3
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +3 -3
- package/dist/components/FormFieldBlocks.es.js +3 -3
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/ItemList.cjs.js +1 -1
- package/dist/components/ItemList.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +4 -4
- package/dist/components/JSONSchemaForm.es.js +4 -4
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/Popover.cjs.js +1 -1
- package/dist/components/Popover.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +2 -2
- package/dist/components/PrevNextNav.es.js +2 -2
- package/dist/components/PropertyFilter.cjs.js +5 -4
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +2 -1
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.cjs.js +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +1 -1
- package/dist/components/RuleBuilder.es.js +1 -1
- package/dist/components/Searchbar.cjs.js +1 -1
- package/dist/components/Searchbar.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +8 -8
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +6 -6
- package/dist/components/Steps.cjs.js +1 -1
- package/dist/components/Steps.es.js +1 -1
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/Textarea.cjs.js +1 -1
- package/dist/components/Textarea.es.js +1 -1
- package/dist/components/ThemeToggle.cjs.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Tree.cjs.js +1 -1
- package/dist/components/Tree.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/copy-button-CJjjhHKN.js +44 -0
- package/dist/copy-button-CJjjhHKN.js.map +1 -0
- package/dist/copy-button-DN9mi_LV.cjs +46 -0
- package/dist/copy-button-DN9mi_LV.cjs.map +1 -0
- package/dist/data-code-section-0bn3tNrE.cjs +335 -0
- package/dist/data-code-section-0bn3tNrE.cjs.map +1 -0
- package/dist/data-code-section-4YyicSye.js +332 -0
- package/dist/data-code-section-4YyicSye.js.map +1 -0
- package/dist/data-list-D5uItcj6.js +110 -0
- package/dist/data-list-D5uItcj6.js.map +1 -0
- package/dist/data-list-DDQRmA6L.cjs +112 -0
- package/dist/data-list-DDQRmA6L.cjs.map +1 -0
- package/dist/data-list-row-wrapper-BGI6fq0a.cjs +61 -0
- package/dist/data-list-row-wrapper-BGI6fq0a.cjs.map +1 -0
- package/dist/data-list-row-wrapper-BLuze8Kz.js +58 -0
- package/dist/data-list-row-wrapper-BLuze8Kz.js.map +1 -0
- package/dist/data-list-skeleton-Du8Lshzl.cjs +32 -0
- package/dist/data-list-skeleton-Du8Lshzl.cjs.map +1 -0
- package/dist/data-list-skeleton-DuoPJD5w.js +30 -0
- package/dist/data-list-skeleton-DuoPJD5w.js.map +1 -0
- package/dist/data-list-subheading-BOq190dz.cjs +32 -0
- package/dist/data-list-subheading-BOq190dz.cjs.map +1 -0
- package/dist/data-list-subheading-DzU_t0V0.js +29 -0
- package/dist/data-list-subheading-DzU_t0V0.js.map +1 -0
- package/dist/data-list-top-cell-B27jd1HH.js +462 -0
- package/dist/data-list-top-cell-B27jd1HH.js.map +1 -0
- package/dist/data-list-top-cell-DummeYkE.cjs +491 -0
- package/dist/data-list-top-cell-DummeYkE.cjs.map +1 -0
- package/dist/data-panel-BxX4ohtd.js +87 -0
- package/dist/data-panel-BxX4ohtd.js.map +1 -0
- package/dist/data-panel-D7TbjekV.cjs +89 -0
- package/dist/data-panel-D7TbjekV.cjs.map +1 -0
- package/dist/date-time-picker-BJ5oHVVP.js +245 -0
- package/dist/date-time-picker-BJ5oHVVP.js.map +1 -0
- package/dist/date-time-picker-V8b9fyim.cjs +268 -0
- package/dist/date-time-picker-V8b9fyim.cjs.map +1 -0
- package/dist/date-time-range-picker-BL2NxcTo.js +168 -0
- package/dist/date-time-range-picker-BL2NxcTo.js.map +1 -0
- package/dist/date-time-range-picker-DY3GLaiu.cjs +170 -0
- package/dist/date-time-range-picker-DY3GLaiu.cjs.map +1 -0
- package/dist/dialog-D8GU9T3e.cjs +107 -0
- package/dist/dialog-D8GU9T3e.cjs.map +1 -0
- package/dist/dialog-ki0o-LSD.js +76 -0
- package/dist/dialog-ki0o-LSD.js.map +1 -0
- package/dist/domains/logs/components/log-details-view.cjs.js +131 -0
- package/dist/domains/logs/components/log-details-view.cjs.js.map +1 -0
- package/dist/domains/logs/components/log-details-view.d.ts +2 -0
- package/dist/domains/logs/components/log-details-view.es.js +127 -0
- package/dist/domains/logs/components/log-details-view.es.js.map +1 -0
- package/dist/domains/logs/components/logs-error-content.cjs.js +31 -0
- package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-error-content.d.ts +2 -0
- package/dist/domains/logs/components/logs-error-content.es.js +27 -0
- package/dist/domains/logs/components/logs-error-content.es.js.map +1 -0
- package/dist/domains/logs/components/logs-layout.cjs.js +36 -0
- package/dist/domains/logs/components/logs-layout.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-layout.d.ts +2 -0
- package/dist/domains/logs/components/logs-layout.es.js +32 -0
- package/dist/domains/logs/components/logs-layout.es.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +96 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.d.ts +2 -0
- package/dist/domains/logs/components/logs-list-view.es.js +92 -0
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -0
- package/dist/domains/logs/components/logs-toolbar.cjs.js +62 -0
- package/dist/domains/logs/components/logs-toolbar.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-toolbar.d.ts +2 -0
- package/dist/domains/logs/components/logs-toolbar.es.js +58 -0
- package/dist/domains/logs/components/logs-toolbar.es.js.map +1 -0
- package/dist/domains/logs/components/no-logs-info.cjs.js +71 -0
- package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -0
- package/dist/domains/logs/components/no-logs-info.d.ts +2 -0
- package/dist/domains/logs/components/no-logs-info.es.js +67 -0
- package/dist/domains/logs/components/no-logs-info.es.js.map +1 -0
- package/dist/domains/logs/components.cjs.js +20 -0
- package/dist/domains/logs/components.cjs.js.map +1 -0
- package/dist/domains/logs/components.d.ts +2 -0
- package/dist/domains/logs/components.es.js +7 -0
- package/dist/domains/logs/components.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +49 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +45 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.cjs.js +85 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.es.js +81 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js +198 -0
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-url-state.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs-url-state.es.js +194 -0
- package/dist/domains/logs/hooks/use-logs-url-state.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs.cjs.js +65 -0
- package/dist/domains/logs/hooks/use-logs.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs.es.js +60 -0
- package/dist/domains/logs/hooks/use-logs.es.js.map +1 -0
- package/dist/domains/logs/hooks.cjs.js +16 -0
- package/dist/domains/logs/hooks.cjs.js.map +1 -0
- package/dist/domains/logs/hooks.d.ts +2 -0
- package/dist/domains/logs/hooks.es.js +5 -0
- package/dist/domains/logs/hooks.es.js.map +1 -0
- package/dist/domains/logs/log-filters.cjs.js +356 -0
- package/dist/domains/logs/log-filters.cjs.js.map +1 -0
- package/dist/domains/logs/log-filters.d.ts +2 -0
- package/dist/domains/logs/log-filters.es.js +331 -0
- package/dist/domains/logs/log-filters.es.js.map +1 -0
- package/dist/domains/logs/types.cjs.js +3 -0
- package/dist/domains/logs/types.cjs.js.map +1 -0
- package/dist/domains/logs/types.d.ts +1 -0
- package/dist/domains/logs/types.es.js +2 -0
- package/dist/domains/logs/types.es.js.map +1 -0
- package/dist/domains/logs.cjs.js +51 -0
- package/dist/domains/logs.cjs.js.map +1 -0
- package/dist/domains/logs.d.ts +2 -0
- package/dist/domains/logs.es.js +12 -0
- package/dist/domains/logs.es.js.map +1 -0
- package/dist/domains/memory/components/flame-graph.cjs.js +479 -0
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -0
- package/dist/domains/memory/components/flame-graph.d.ts +2 -0
- package/dist/domains/memory/components/flame-graph.es.js +475 -0
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -0
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +107 -0
- package/dist/domains/memory/components/memory-studio-panel.cjs.js.map +1 -0
- package/dist/domains/memory/components/memory-studio-panel.d.ts +2 -0
- package/dist/domains/memory/components/memory-studio-panel.es.js +103 -0
- package/dist/domains/memory/components/memory-studio-panel.es.js.map +1 -0
- package/dist/domains/memory/components/observation-detail-view.cjs.js +232 -0
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -0
- package/dist/domains/memory/components/observation-detail-view.d.ts +2 -0
- package/dist/domains/memory/components/observation-detail-view.es.js +228 -0
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress-utils.cjs.js +14 -0
- package/dist/domains/memory/components/thread-context-progress-utils.cjs.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress-utils.d.ts +2 -0
- package/dist/domains/memory/components/thread-context-progress-utils.es.js +10 -0
- package/dist/domains/memory/components/thread-context-progress-utils.es.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress.cjs.js +48 -0
- package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress.d.ts +2 -0
- package/dist/domains/memory/components/thread-context-progress.es.js +44 -0
- package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -0
- package/dist/domains/memory/components.cjs.js +16 -0
- package/dist/domains/memory/components.cjs.js.map +1 -0
- package/dist/domains/memory/components.d.ts +2 -0
- package/dist/domains/memory/components.es.js +5 -0
- package/dist/domains/memory/components.es.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-status.cjs.js +22 -0
- package/dist/domains/memory/hooks/use-memory-status.cjs.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-status.d.ts +2 -0
- package/dist/domains/memory/hooks/use-memory-status.es.js +17 -0
- package/dist/domains/memory/hooks/use-memory-status.es.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js +22 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.d.ts +2 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js +17 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js.map +1 -0
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js +24 -0
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js.map +1 -0
- package/dist/domains/memory/hooks/use-observational-memory.d.ts +2 -0
- package/dist/domains/memory/hooks/use-observational-memory.es.js +19 -0
- package/dist/domains/memory/hooks/use-observational-memory.es.js.map +1 -0
- package/dist/domains/memory/hooks.cjs.js +17 -0
- package/dist/domains/memory/hooks.cjs.js.map +1 -0
- package/dist/domains/memory/hooks.d.ts +2 -0
- package/dist/domains/memory/hooks.es.js +4 -0
- package/dist/domains/memory/hooks.es.js.map +1 -0
- package/dist/domains/memory/lib/extract-markers.cjs.js +96 -0
- package/dist/domains/memory/lib/extract-markers.cjs.js.map +1 -0
- package/dist/domains/memory/lib/extract-markers.d.ts +2 -0
- package/dist/domains/memory/lib/extract-markers.es.js +92 -0
- package/dist/domains/memory/lib/extract-markers.es.js.map +1 -0
- package/dist/domains/memory/lib/replay-selection.cjs.js +35 -0
- package/dist/domains/memory/lib/replay-selection.cjs.js.map +1 -0
- package/dist/domains/memory/lib/replay-selection.d.ts +2 -0
- package/dist/domains/memory/lib/replay-selection.es.js +28 -0
- package/dist/domains/memory/lib/replay-selection.es.js.map +1 -0
- package/dist/domains/memory/lib/thread-context-window-state.cjs.js +31 -0
- package/dist/domains/memory/lib/thread-context-window-state.cjs.js.map +1 -0
- package/dist/domains/memory/lib/thread-context-window-state.d.ts +2 -0
- package/dist/domains/memory/lib/thread-context-window-state.es.js +27 -0
- package/dist/domains/memory/lib/thread-context-window-state.es.js.map +1 -0
- package/dist/domains/memory/lib/timeline.cjs.js +42 -0
- package/dist/domains/memory/lib/timeline.cjs.js.map +1 -0
- package/dist/domains/memory/lib/timeline.d.ts +2 -0
- package/dist/domains/memory/lib/timeline.es.js +34 -0
- package/dist/domains/memory/lib/timeline.es.js.map +1 -0
- package/dist/domains/memory/types.cjs.js +3 -0
- package/dist/domains/memory/types.cjs.js.map +1 -0
- package/dist/domains/memory/types.d.ts +2 -0
- package/dist/domains/memory/types.es.js +2 -0
- package/dist/domains/memory/types.es.js.map +1 -0
- package/dist/domains/memory.cjs.js +25 -0
- package/dist/domains/memory.cjs.js.map +1 -0
- package/dist/domains/memory.d.ts +2 -0
- package/dist/domains/memory.es.js +8 -0
- package/dist/domains/memory.es.js.map +1 -0
- package/dist/domains/metrics/components/bar-list.cjs.js +119 -0
- package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -0
- package/dist/domains/metrics/components/bar-list.d.ts +2 -0
- package/dist/domains/metrics/components/bar-list.es.js +114 -0
- package/dist/domains/metrics/components/bar-list.es.js.map +1 -0
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +40 -0
- package/dist/domains/metrics/components/card-action-buttons.cjs.js.map +1 -0
- package/dist/domains/metrics/components/card-action-buttons.d.ts +2 -0
- package/dist/domains/metrics/components/card-action-buttons.es.js +35 -0
- package/dist/domains/metrics/components/card-action-buttons.es.js.map +1 -0
- package/dist/domains/metrics/components/date-range-selector.cjs.js +79 -0
- package/dist/domains/metrics/components/date-range-selector.cjs.js.map +1 -0
- package/dist/domains/metrics/components/date-range-selector.d.ts +2 -0
- package/dist/domains/metrics/components/date-range-selector.es.js +75 -0
- package/dist/domains/metrics/components/date-range-selector.es.js.map +1 -0
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +18 -0
- package/dist/domains/metrics/components/kpi-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/kpi-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/kpi-card-view.es.js +14 -0
- package/dist/domains/metrics/components/kpi-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/latency-card-view.cjs.js +105 -0
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/latency-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/latency-card-view.es.js +101 -0
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/memory-card-view.cjs.js +103 -0
- package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/memory-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/memory-card-view.es.js +99 -0
- package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/metrics-utils.cjs.js +39 -0
- package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -0
- package/dist/domains/metrics/components/metrics-utils.d.ts +2 -0
- package/dist/domains/metrics/components/metrics-utils.es.js +32 -0
- package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +68 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +64 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/scores-card-view.cjs.js +65 -0
- package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/scores-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/scores-card-view.es.js +61 -0
- package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +94 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +90 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +92 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +88 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +116 -0
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/traces-volume-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +112 -0
- package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components.cjs.js +36 -0
- package/dist/domains/metrics/components.cjs.js.map +1 -0
- package/dist/domains/metrics/components.d.ts +2 -0
- package/dist/domains/metrics/components.es.js +13 -0
- package/dist/domains/metrics/components.es.js.map +1 -0
- package/dist/domains/metrics/drilldown.cjs.js +141 -0
- package/dist/domains/metrics/drilldown.cjs.js.map +1 -0
- package/dist/domains/metrics/drilldown.d.ts +2 -0
- package/dist/domains/metrics/drilldown.es.js +135 -0
- package/dist/domains/metrics/drilldown.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js +25 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js +21 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js +25 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js +21 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js +24 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js +20 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-drilldown.cjs.js +48 -0
- package/dist/domains/metrics/hooks/use-drilldown.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-drilldown.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-drilldown.es.js +44 -0
- package/dist/domains/metrics/hooks/use-drilldown.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js +50 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js +45 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js +46 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js +42 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics.cjs.js +105 -0
- package/dist/domains/metrics/hooks/use-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-metrics.es.js +97 -0
- package/dist/domains/metrics/hooks/use-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js +32 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js +28 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js +81 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js +77 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js +102 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js +98 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js +63 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js +59 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js +88 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js +84 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js +82 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js +78 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js +82 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js +78 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js +44 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js +40 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js +50 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js +46 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks.cjs.js +56 -0
- package/dist/domains/metrics/hooks.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks.d.ts +2 -0
- package/dist/domains/metrics/hooks.es.js +19 -0
- package/dist/domains/metrics/hooks.es.js.map +1 -0
- package/dist/domains/metrics/metrics-filters.cjs.js +254 -0
- package/dist/domains/metrics/metrics-filters.cjs.js.map +1 -0
- package/dist/domains/metrics/metrics-filters.d.ts +2 -0
- package/dist/domains/metrics/metrics-filters.es.js +237 -0
- package/dist/domains/metrics/metrics-filters.es.js.map +1 -0
- package/dist/domains/metrics.cjs.js +84 -0
- package/dist/domains/metrics.cjs.js.map +1 -0
- package/dist/domains/metrics.d.ts +2 -0
- package/dist/domains/metrics.es.js +31 -0
- package/dist/domains/metrics.es.js.map +1 -0
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js +70 -0
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js.map +1 -0
- package/dist/domains/traces/components/format-hierarchical-spans.d.ts +2 -0
- package/dist/domains/traces/components/format-hierarchical-spans.es.js +66 -0
- package/dist/domains/traces/components/format-hierarchical-spans.es.js.map +1 -0
- package/dist/domains/traces/components/no-traces-info.cjs.js +71 -0
- package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -0
- package/dist/domains/traces/components/no-traces-info.d.ts +2 -0
- package/dist/domains/traces/components/no-traces-info.es.js +67 -0
- package/dist/domains/traces/components/no-traces-info.es.js.map +1 -0
- package/dist/domains/traces/components/shared.cjs.js +77 -0
- package/dist/domains/traces/components/shared.cjs.js.map +1 -0
- package/dist/domains/traces/components/shared.d.ts +2 -0
- package/dist/domains/traces/components/shared.es.js +72 -0
- package/dist/domains/traces/components/shared.es.js.map +1 -0
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +279 -0
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-data-panel-view.d.ts +2 -0
- package/dist/domains/traces/components/span-data-panel-view.es.js +275 -0
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -0
- package/dist/domains/traces/components/span-details-view.cjs.js +81 -0
- package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-details-view.d.ts +2 -0
- package/dist/domains/traces/components/span-details-view.es.js +77 -0
- package/dist/domains/traces/components/span-details-view.es.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.cjs.js +94 -0
- package/dist/domains/traces/components/span-token-usage.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.d.ts +2 -0
- package/dist/domains/traces/components/span-token-usage.es.js +90 -0
- package/dist/domains/traces/components/span-token-usage.es.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js +30 -0
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.utils.d.ts +2 -0
- package/dist/domains/traces/components/span-token-usage.utils.es.js +26 -0
- package/dist/domains/traces/components/span-token-usage.utils.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-expand-col.cjs.js +89 -0
- package/dist/domains/traces/components/timeline-expand-col.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-expand-col.d.ts +2 -0
- package/dist/domains/traces/components/timeline-expand-col.es.js +85 -0
- package/dist/domains/traces/components/timeline-expand-col.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-name-col.cjs.js +63 -0
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-name-col.d.ts +2 -0
- package/dist/domains/traces/components/timeline-name-col.es.js +59 -0
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js +25 -0
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-structure-sign.d.ts +2 -0
- package/dist/domains/traces/components/timeline-structure-sign.es.js +21 -0
- package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +80 -0
- package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-timing-col.d.ts +2 -0
- package/dist/domains/traces/components/timeline-timing-col.es.js +76 -0
- package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -0
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +176 -0
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-data-panel-view.d.ts +2 -0
- package/dist/domains/traces/components/trace-data-panel-view.es.js +172 -0
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -0
- package/dist/domains/traces/components/trace-details-view.cjs.js +55 -0
- package/dist/domains/traces/components/trace-details-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-details-view.d.ts +2 -0
- package/dist/domains/traces/components/trace-details-view.es.js +51 -0
- package/dist/domains/traces/components/trace-details-view.es.js.map +1 -0
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js +46 -0
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-keys-and-values.d.ts +2 -0
- package/dist/domains/traces/components/trace-keys-and-values.es.js +42 -0
- package/dist/domains/traces/components/trace-keys-and-values.es.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline-span.cjs.js +170 -0
- package/dist/domains/traces/components/trace-timeline-span.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline-span.d.ts +2 -0
- package/dist/domains/traces/components/trace-timeline-span.es.js +166 -0
- package/dist/domains/traces/components/trace-timeline-span.es.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline.cjs.js +90 -0
- package/dist/domains/traces/components/trace-timeline.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline.d.ts +2 -0
- package/dist/domains/traces/components/trace-timeline.es.js +86 -0
- package/dist/domains/traces/components/trace-timeline.es.js.map +1 -0
- package/dist/domains/traces/components/traces-error-content.cjs.js +20 -0
- package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-error-content.d.ts +2 -0
- package/dist/domains/traces/components/traces-error-content.es.js +16 -0
- package/dist/domains/traces/components/traces-error-content.es.js.map +1 -0
- package/dist/domains/traces/components/traces-layout.cjs.js +45 -0
- package/dist/domains/traces/components/traces-layout.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-layout.d.ts +2 -0
- package/dist/domains/traces/components/traces-layout.es.js +41 -0
- package/dist/domains/traces/components/traces-layout.es.js.map +1 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +28 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.d.ts +2 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +24 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js.map +1 -0
- package/dist/domains/traces/components/traces-list-view.cjs.js +115 -0
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-list-view.d.ts +2 -0
- package/dist/domains/traces/components/traces-list-view.es.js +111 -0
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -0
- package/dist/domains/traces/components/traces-toolbar.cjs.js +73 -0
- package/dist/domains/traces/components/traces-toolbar.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-toolbar.d.ts +2 -0
- package/dist/domains/traces/components/traces-toolbar.es.js +69 -0
- package/dist/domains/traces/components/traces-toolbar.es.js.map +1 -0
- package/dist/domains/traces/components.cjs.js +49 -0
- package/dist/domains/traces/components.cjs.js.map +1 -0
- package/dist/domains/traces/components.d.ts +2 -0
- package/dist/domains/traces/components.es.js +21 -0
- package/dist/domains/traces/components.es.js.map +1 -0
- package/dist/domains/traces/hooks/get-all-span-ids.cjs.js +27 -0
- package/dist/domains/traces/hooks/get-all-span-ids.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/get-all-span-ids.d.ts +2 -0
- package/dist/domains/traces/hooks/get-all-span-ids.es.js +22 -0
- package/dist/domains/traces/hooks/get-all-span-ids.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-branch.cjs.js +33 -0
- package/dist/domains/traces/hooks/use-branch.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-branch.d.ts +2 -0
- package/dist/domains/traces/hooks/use-branch.es.js +29 -0
- package/dist/domains/traces/hooks/use-branch.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +28 -0
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-download-trace-json.d.ts +2 -0
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +24 -0
- package/dist/domains/traces/hooks/use-download-trace-json.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-entity-names.cjs.js +38 -0
- package/dist/domains/traces/hooks/use-entity-names.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-entity-names.d.ts +2 -0
- package/dist/domains/traces/hooks/use-entity-names.es.js +34 -0
- package/dist/domains/traces/hooks/use-entity-names.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-environments.cjs.js +25 -0
- package/dist/domains/traces/hooks/use-environments.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-environments.d.ts +2 -0
- package/dist/domains/traces/hooks/use-environments.es.js +21 -0
- package/dist/domains/traces/hooks/use-environments.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-service-names.cjs.js +25 -0
- package/dist/domains/traces/hooks/use-service-names.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-service-names.d.ts +2 -0
- package/dist/domains/traces/hooks/use-service-names.es.js +21 -0
- package/dist/domains/traces/hooks/use-service-names.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-span-detail.cjs.js +31 -0
- package/dist/domains/traces/hooks/use-span-detail.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-span-detail.d.ts +2 -0
- package/dist/domains/traces/hooks/use-span-detail.es.js +27 -0
- package/dist/domains/traces/hooks/use-span-detail.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-tags.cjs.js +25 -0
- package/dist/domains/traces/hooks/use-tags.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-tags.d.ts +2 -0
- package/dist/domains/traces/hooks/use-tags.es.js +21 -0
- package/dist/domains/traces/hooks/use-tags.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +49 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +45 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +33 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js +29 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js +22 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.es.js +18 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js +40 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js +36 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.cjs.js +18 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.es.js +14 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js +24 -0
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-spans.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-spans.es.js +20 -0
- package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +312 -0
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-url-state.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +308 -0
- package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-traces.cjs.js +316 -0
- package/dist/domains/traces/hooks/use-traces.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-traces.d.ts +2 -0
- package/dist/domains/traces/hooks/use-traces.es.js +306 -0
- package/dist/domains/traces/hooks/use-traces.es.js.map +1 -0
- package/dist/domains/traces/hooks.cjs.js +41 -0
- package/dist/domains/traces/hooks.cjs.js.map +1 -0
- package/dist/domains/traces/hooks.d.ts +2 -0
- package/dist/domains/traces/hooks.es.js +17 -0
- package/dist/domains/traces/hooks.es.js.map +1 -0
- package/dist/domains/traces/trace-filters.cjs.js +382 -0
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -0
- package/dist/domains/traces/trace-filters.d.ts +2 -0
- package/dist/domains/traces/trace-filters.es.js +351 -0
- package/dist/domains/traces/trace-filters.es.js.map +1 -0
- package/dist/domains/traces/types.cjs.js +29 -0
- package/dist/domains/traces/types.cjs.js.map +1 -0
- package/dist/domains/traces/types.d.ts +2 -0
- package/dist/domains/traces/types.es.js +25 -0
- package/dist/domains/traces/types.es.js.map +1 -0
- package/dist/domains/traces/utils/span-utils.cjs.js +61 -0
- package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -0
- package/dist/domains/traces/utils/span-utils.d.ts +2 -0
- package/dist/domains/traces/utils/span-utils.es.js +55 -0
- package/dist/domains/traces/utils/span-utils.es.js.map +1 -0
- package/dist/domains/traces/utils.cjs.js +12 -0
- package/dist/domains/traces/utils.cjs.js.map +1 -0
- package/dist/domains/traces/utils.d.ts +2 -0
- package/dist/domains/traces/utils.es.js +2 -0
- package/dist/domains/traces/utils.es.js.map +1 -0
- package/dist/domains/traces.cjs.js +117 -0
- package/dist/domains/traces.cjs.js.map +1 -0
- package/dist/domains/traces.d.ts +2 -0
- package/dist/domains/traces.es.js +40 -0
- package/dist/domains/traces.es.js.map +1 -0
- package/dist/downloadJson-DuPoMa_6.js +14 -0
- package/dist/downloadJson-DuPoMa_6.js.map +1 -0
- package/dist/downloadJson-PWUDbzkB.cjs +16 -0
- package/dist/downloadJson-PWUDbzkB.cjs.map +1 -0
- package/dist/drawer-Xyd1zBeV.js +326 -0
- package/dist/drawer-Xyd1zBeV.js.map +1 -0
- package/dist/drawer-xYzVLI5E.cjs +366 -0
- package/dist/drawer-xYzVLI5E.cjs.map +1 -0
- package/dist/dropdown-menu-CGei48WH.js +242 -0
- package/dist/dropdown-menu-CGei48WH.js.map +1 -0
- package/dist/dropdown-menu-pHJH-29Y.cjs +263 -0
- package/dist/dropdown-menu-pHJH-29Y.cjs.map +1 -0
- package/dist/ee/signals/components/signal-details-page.cjs.js +243 -0
- package/dist/ee/signals/components/signal-details-page.cjs.js.map +1 -0
- package/dist/ee/signals/components/signal-details-page.d.ts +2 -0
- package/dist/ee/signals/components/signal-details-page.es.js +234 -0
- package/dist/ee/signals/components/signal-details-page.es.js.map +1 -0
- package/dist/ee/signals/components/signal-details-utils.cjs.js +12 -0
- package/dist/ee/signals/components/signal-details-utils.cjs.js.map +1 -0
- package/dist/ee/signals/components/signal-details-utils.d.ts +2 -0
- package/dist/ee/signals/components/signal-details-utils.es.js +8 -0
- package/dist/ee/signals/components/signal-details-utils.es.js.map +1 -0
- package/dist/ee/signals/components/signals-overview-page.cjs.js +109 -0
- package/dist/ee/signals/components/signals-overview-page.cjs.js.map +1 -0
- package/dist/ee/signals/components/signals-overview-page.d.ts +2 -0
- package/dist/ee/signals/components/signals-overview-page.es.js +103 -0
- package/dist/ee/signals/components/signals-overview-page.es.js.map +1 -0
- package/dist/ee/signals/components.cjs.js +21 -0
- package/dist/ee/signals/components.cjs.js.map +1 -0
- package/dist/ee/signals/components.d.ts +2 -0
- package/dist/ee/signals/components.es.js +4 -0
- package/dist/ee/signals/components.es.js.map +1 -0
- package/dist/ee/signals/signals-chart-data.cjs.js +34 -0
- package/dist/ee/signals/signals-chart-data.cjs.js.map +1 -0
- package/dist/ee/signals/signals-chart-data.d.ts +2 -0
- package/dist/ee/signals/signals-chart-data.es.js +30 -0
- package/dist/ee/signals/signals-chart-data.es.js.map +1 -0
- package/dist/ee/signals/signals-data.cjs.js +199 -0
- package/dist/ee/signals/signals-data.cjs.js.map +1 -0
- package/dist/ee/signals/signals-data.d.ts +2 -0
- package/dist/ee/signals/signals-data.es.js +195 -0
- package/dist/ee/signals/signals-data.es.js.map +1 -0
- package/dist/ee/signals/types.cjs.js +3 -0
- package/dist/ee/signals/types.cjs.js.map +1 -0
- package/dist/ee/signals/types.d.ts +1 -0
- package/dist/ee/signals/types.es.js +2 -0
- package/dist/ee/signals/types.es.js.map +1 -0
- package/dist/ee/signals.cjs.js +25 -0
- package/dist/ee/signals.cjs.js.map +1 -0
- package/dist/ee/signals.d.ts +2 -0
- package/dist/ee/signals.es.js +6 -0
- package/dist/ee/signals.es.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +64 -0
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-details-panel.d.ts +2 -0
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +60 -0
- package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +60 -0
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-summary-list.d.ts +2 -0
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +56 -0
- package/dist/ee/topics/components/topic-trace-summary-list.es.js.map +1 -0
- package/dist/ee/topics/components/topics-layout.cjs.js +38 -0
- package/dist/ee/topics/components/topics-layout.cjs.js.map +1 -0
- package/dist/ee/topics/components/topics-layout.d.ts +2 -0
- package/dist/ee/topics/components/topics-layout.es.js +34 -0
- package/dist/ee/topics/components/topics-layout.es.js.map +1 -0
- package/dist/ee/topics/components.cjs.js +14 -0
- package/dist/ee/topics/components.cjs.js.map +1 -0
- package/dist/ee/topics/components.d.ts +2 -0
- package/dist/ee/topics/components.es.js +4 -0
- package/dist/ee/topics/components.es.js.map +1 -0
- package/dist/ee/topics/types.cjs.js +3 -0
- package/dist/ee/topics/types.cjs.js.map +1 -0
- package/dist/ee/topics/types.d.ts +1 -0
- package/dist/ee/topics/types.es.js +2 -0
- package/dist/ee/topics/types.es.js.map +1 -0
- package/dist/ee/topics/utils.cjs.js +95 -0
- package/dist/ee/topics/utils.cjs.js.map +1 -0
- package/dist/ee/topics/utils.d.ts +2 -0
- package/dist/ee/topics/utils.es.js +84 -0
- package/dist/ee/topics/utils.es.js.map +1 -0
- package/dist/ee/topics.cjs.js +23 -0
- package/dist/ee/topics.cjs.js.map +1 -0
- package/dist/ee/topics.d.ts +2 -0
- package/dist/ee/topics.es.js +5 -0
- package/dist/ee/topics.es.js.map +1 -0
- package/dist/environment-variables-editor-ClIjYd7T.cjs +519 -0
- package/dist/environment-variables-editor-ClIjYd7T.cjs.map +1 -0
- package/dist/environment-variables-editor-nfTOfzSi.js +517 -0
- package/dist/environment-variables-editor-nfTOfzSi.js.map +1 -0
- package/dist/helpers-3p9MxQbh.js +346 -0
- package/dist/helpers-3p9MxQbh.js.map +1 -0
- package/dist/helpers-DyNelEvl.cjs +352 -0
- package/dist/helpers-DyNelEvl.cjs.map +1 -0
- package/dist/index.cjs.js +476 -8331
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +192 -8060
- package/dist/index.es.js.map +1 -1
- package/dist/input-C54PDtiP.js +65 -0
- package/dist/input-C54PDtiP.js.map +1 -0
- package/dist/input-VzN7w_Xq.cjs +86 -0
- package/dist/input-VzN7w_Xq.cjs.map +1 -0
- package/dist/input-group-CF6DB97L.cjs +245 -0
- package/dist/input-group-CF6DB97L.cjs.map +1 -0
- package/dist/input-group-DvVwUJwx.js +219 -0
- package/dist/input-group-DvVwUJwx.js.map +1 -0
- package/dist/kbd-C4u0WGAT.js +27 -0
- package/dist/kbd-C4u0WGAT.js.map +1 -0
- package/dist/kbd-Ce0Ey3ov.cjs +29 -0
- package/dist/kbd-Ce0Ey3ov.cjs.map +1 -0
- package/dist/list-search-CP-Rp1di.cjs +59 -0
- package/dist/list-search-CP-Rp1di.cjs.map +1 -0
- package/dist/list-search-CgKiATMs.js +57 -0
- package/dist/list-search-CgKiATMs.js.map +1 -0
- package/dist/logs-data-list-C2EdoFp1.cjs +83 -0
- package/dist/logs-data-list-C2EdoFp1.cjs.map +1 -0
- package/dist/logs-data-list-DPfoIlE-.js +81 -0
- package/dist/logs-data-list-DPfoIlE-.js.map +1 -0
- package/dist/main-sidebar-A3VICg2t.js +772 -0
- package/dist/main-sidebar-A3VICg2t.js.map +1 -0
- package/dist/main-sidebar-fnewlFD3.cjs +781 -0
- package/dist/main-sidebar-fnewlFD3.cjs.map +1 -0
- package/dist/markdown-renderer-Bcrk5ZJO.js +86 -0
- package/dist/markdown-renderer-Bcrk5ZJO.js.map +1 -0
- package/dist/markdown-renderer-Ca-WbDb4.cjs +88 -0
- package/dist/markdown-renderer-Ca-WbDb4.cjs.map +1 -0
- package/dist/multi-column-DFh_hvkc.cjs +156 -0
- package/dist/multi-column-DFh_hvkc.cjs.map +1 -0
- package/dist/multi-column-RwdQ5PRt.js +152 -0
- package/dist/multi-column-RwdQ5PRt.js.map +1 -0
- package/dist/popover-CfOWA0et.js +95 -0
- package/dist/popover-CfOWA0et.js.map +1 -0
- package/dist/popover-fpyU6qei.cjs +119 -0
- package/dist/popover-fpyU6qei.cjs.map +1 -0
- package/dist/primitives/control-size.cjs.js +28 -0
- package/dist/primitives/control-size.cjs.js.map +1 -0
- package/dist/primitives/control-size.d.ts +2 -0
- package/dist/primitives/control-size.es.js +22 -0
- package/dist/primitives/control-size.es.js.map +1 -0
- package/dist/primitives/form-element.cjs.js +24 -0
- package/dist/primitives/form-element.cjs.js.map +1 -0
- package/dist/primitives/form-element.d.ts +2 -0
- package/dist/primitives/form-element.es.js +12 -0
- package/dist/primitives/form-element.es.js.map +1 -0
- package/dist/primitives/portal-container.cjs.js +41 -0
- package/dist/primitives/portal-container.cjs.js.map +1 -0
- package/dist/primitives/portal-container.d.ts +2 -0
- package/dist/primitives/portal-container.es.js +17 -0
- package/dist/primitives/portal-container.es.js.map +1 -0
- package/dist/primitives/resize-handle-indicator.cjs.js +26 -0
- package/dist/primitives/resize-handle-indicator.cjs.js.map +1 -0
- package/dist/primitives/resize-handle-indicator.d.ts +2 -0
- package/dist/primitives/resize-handle-indicator.es.js +22 -0
- package/dist/primitives/resize-handle-indicator.es.js.map +1 -0
- package/dist/primitives/transitions.cjs.js +41 -0
- package/dist/primitives/transitions.cjs.js.map +1 -0
- package/dist/primitives/transitions.d.ts +2 -0
- package/dist/primitives/transitions.es.js +35 -0
- package/dist/primitives/transitions.es.js.map +1 -0
- package/dist/primitives/visually-hidden.cjs.js +13 -0
- package/dist/primitives/visually-hidden.cjs.js.map +1 -0
- package/dist/primitives/visually-hidden.d.ts +2 -0
- package/dist/primitives/visually-hidden.es.js +2 -0
- package/dist/primitives/visually-hidden.es.js.map +1 -0
- package/dist/process-step-progress-bar-CdsJhTYk.js +136 -0
- package/dist/process-step-progress-bar-CdsJhTYk.js.map +1 -0
- package/dist/process-step-progress-bar-Cs7oK8-I.cjs +141 -0
- package/dist/process-step-progress-bar-Cs7oK8-I.cjs.map +1 -0
- package/dist/property-filter-applied-Ec6BkYiN.cjs +352 -0
- package/dist/property-filter-applied-Ec6BkYiN.cjs.map +1 -0
- package/dist/property-filter-applied-ZEuiswpb.js +348 -0
- package/dist/property-filter-applied-ZEuiswpb.js.map +1 -0
- package/dist/property-filter-creator-CODVtgIW.cjs +333 -0
- package/dist/property-filter-creator-CODVtgIW.cjs.map +1 -0
- package/dist/property-filter-creator-DAMPk-R0.js +331 -0
- package/dist/property-filter-creator-DAMPk-R0.js.map +1 -0
- package/dist/radio-group-CqIdYAai.cjs +77 -0
- package/dist/radio-group-CqIdYAai.cjs.map +1 -0
- package/dist/radio-group-YvD-Ple6.js +55 -0
- package/dist/radio-group-YvD-Ple6.js.map +1 -0
- package/dist/resize/collapsible-panel.cjs.js +261 -0
- package/dist/resize/collapsible-panel.cjs.js.map +1 -0
- package/dist/resize/collapsible-panel.d.ts +2 -0
- package/dist/resize/collapsible-panel.es.js +257 -0
- package/dist/resize/collapsible-panel.es.js.map +1 -0
- package/dist/resize/panel-drawer.cjs.js +34 -0
- package/dist/resize/panel-drawer.cjs.js.map +1 -0
- package/dist/resize/panel-drawer.d.ts +2 -0
- package/dist/resize/panel-drawer.es.js +30 -0
- package/dist/resize/panel-drawer.es.js.map +1 -0
- package/dist/resize/panel-edge-icon.cjs.js +25 -0
- package/dist/resize/panel-edge-icon.cjs.js.map +1 -0
- package/dist/resize/panel-edge-icon.d.ts +2 -0
- package/dist/resize/panel-edge-icon.es.js +21 -0
- package/dist/resize/panel-edge-icon.es.js.map +1 -0
- package/dist/resize/panel-icon-button.cjs.js +15 -0
- package/dist/resize/panel-icon-button.cjs.js.map +1 -0
- package/dist/resize/panel-icon-button.d.ts +2 -0
- package/dist/resize/panel-icon-button.es.js +11 -0
- package/dist/resize/panel-icon-button.es.js.map +1 -0
- package/dist/resize/separator.cjs.js +45 -0
- package/dist/resize/separator.cjs.js.map +1 -0
- package/dist/resize/separator.d.ts +2 -0
- package/dist/resize/separator.es.js +41 -0
- package/dist/resize/separator.es.js.map +1 -0
- package/dist/resize/use-clamped-element-cursor.cjs.js +56 -0
- package/dist/resize/use-clamped-element-cursor.cjs.js.map +1 -0
- package/dist/resize/use-clamped-element-cursor.d.ts +2 -0
- package/dist/resize/use-clamped-element-cursor.es.js +51 -0
- package/dist/resize/use-clamped-element-cursor.es.js.map +1 -0
- package/dist/rule-builder-B7J3z1Gd.js +563 -0
- package/dist/rule-builder-B7J3z1Gd.js.map +1 -0
- package/dist/rule-builder-CN5HwvJ3.cjs +594 -0
- package/dist/rule-builder-CN5HwvJ3.cjs.map +1 -0
- package/dist/scores-data-list-BfLOnfqe.js +45 -0
- package/dist/scores-data-list-BfLOnfqe.js.map +1 -0
- package/dist/scores-data-list-Dr1z54TV.cjs +47 -0
- package/dist/scores-data-list-Dr1z54TV.cjs.map +1 -0
- package/dist/search-field-block-BdEOohNh.js +115 -0
- package/dist/search-field-block-BdEOohNh.js.map +1 -0
- package/dist/search-field-block-MueLS5VO.cjs +117 -0
- package/dist/search-field-block-MueLS5VO.cjs.map +1 -0
- package/dist/searchbar-B42oQGrT.cjs +105 -0
- package/dist/searchbar-B42oQGrT.cjs.map +1 -0
- package/dist/searchbar-CY4dg-Im.js +102 -0
- package/dist/searchbar-CY4dg-Im.js.map +1 -0
- package/dist/select-BxSmi19p.cjs +188 -0
- package/dist/select-BxSmi19p.cjs.map +1 -0
- package/dist/select-CFB6QZ9B.js +162 -0
- package/dist/select-CFB6QZ9B.js.map +1 -0
- package/dist/select-data-filter-BasB6Wt3.cjs +194 -0
- package/dist/select-data-filter-BasB6Wt3.cjs.map +1 -0
- package/dist/select-data-filter-Cb6Exh7H.js +192 -0
- package/dist/select-data-filter-Cb6Exh7H.js.map +1 -0
- package/dist/select-field-block-C1I1FLvQ.js +48 -0
- package/dist/select-field-block-C1I1FLvQ.js.map +1 -0
- package/dist/select-field-block-Cb5-7wDy.cjs +50 -0
- package/dist/select-field-block-Cb5-7wDy.cjs.map +1 -0
- package/dist/src/domains/traces/index.d.ts +1 -3
- package/dist/src/domains/traces/types.d.ts +2 -0
- package/dist/store/playground-store.cjs.js +21 -0
- package/dist/store/playground-store.cjs.js.map +1 -0
- package/dist/store/playground-store.d.ts +2 -0
- package/dist/store/playground-store.es.js +17 -0
- package/dist/store/playground-store.es.js.map +1 -0
- package/dist/tabs-content--uzXt5ch.js +18 -0
- package/dist/tabs-content--uzXt5ch.js.map +1 -0
- package/dist/tabs-content-ohtjaVdC.cjs +20 -0
- package/dist/tabs-content-ohtjaVdC.cjs.map +1 -0
- package/dist/tabs-tab-B7Ziuuh8.cjs +122 -0
- package/dist/tabs-tab-B7Ziuuh8.cjs.map +1 -0
- package/dist/tabs-tab-XnMoa1fn.js +118 -0
- package/dist/tabs-tab-XnMoa1fn.js.map +1 -0
- package/dist/text-field-block-DnhYm_C2.cjs +50 -0
- package/dist/text-field-block-DnhYm_C2.cjs.map +1 -0
- package/dist/text-field-block-wLF3JlhE.js +48 -0
- package/dist/text-field-block-wLF3JlhE.js.map +1 -0
- package/dist/textarea-CEt75kZ1.cjs +83 -0
- package/dist/textarea-CEt75kZ1.cjs.map +1 -0
- package/dist/textarea-DnU5om-B.js +62 -0
- package/dist/textarea-DnU5om-B.js.map +1 -0
- package/dist/theme-toggle-0N1bVeCr.js +85 -0
- package/dist/theme-toggle-0N1bVeCr.js.map +1 -0
- package/dist/theme-toggle-DTRiM-8u.cjs +87 -0
- package/dist/theme-toggle-DTRiM-8u.cjs.map +1 -0
- package/dist/thread-list-6cywfaM3.js +72 -0
- package/dist/thread-list-6cywfaM3.js.map +1 -0
- package/dist/thread-list-jqmdJxUm.cjs +79 -0
- package/dist/thread-list-jqmdJxUm.cjs.map +1 -0
- package/dist/time-picker-D5qUadVb.cjs +113 -0
- package/dist/time-picker-D5qUadVb.cjs.map +1 -0
- package/dist/time-picker-ji6mao2A.js +110 -0
- package/dist/time-picker-ji6mao2A.js.map +1 -0
- package/dist/traces-data-list-BpQO8ZSH.cjs +85 -0
- package/dist/traces-data-list-BpQO8ZSH.cjs.map +1 -0
- package/dist/traces-data-list-DzqdihE7.js +83 -0
- package/dist/traces-data-list-DzqdihE7.js.map +1 -0
- package/dist/tree-CeGhDY_u.js +471 -0
- package/dist/tree-CeGhDY_u.js.map +1 -0
- package/dist/tree-CjUNJlMa.cjs +492 -0
- package/dist/tree-CjUNJlMa.cjs.map +1 -0
- package/dist/truncate-9TKOzqxZ.js +47 -0
- package/dist/truncate-9TKOzqxZ.js.map +1 -0
- package/dist/truncate-BiIUPM1q.cjs +49 -0
- package/dist/truncate-BiIUPM1q.cjs.map +1 -0
- package/dist/utils/file.cjs.js +3 -13
- package/dist/utils/file.cjs.js.map +1 -1
- package/dist/utils/file.es.js +3 -13
- package/dist/utils/file.es.js.map +1 -1
- package/package.json +57 -7
- package/dist/Avatar-DWt9SxCq.cjs +0 -44
- package/dist/Avatar-DWt9SxCq.cjs.map +0 -1
- package/dist/Avatar-t2EzDraN.js +0 -42
- package/dist/Avatar-t2EzDraN.js.map +0 -1
- package/dist/Badge-CIIPrVJ8.js +0 -55
- package/dist/Badge-CIIPrVJ8.js.map +0 -1
- package/dist/Badge-DhIGMqUf.cjs +0 -57
- package/dist/Badge-DhIGMqUf.cjs.map +0 -1
- package/dist/Breadcrumb-CArFRvVX.cjs +0 -37
- package/dist/Breadcrumb-CArFRvVX.cjs.map +0 -1
- package/dist/Breadcrumb-Ciy7FM3z.js +0 -34
- package/dist/Breadcrumb-Ciy7FM3z.js.map +0 -1
- package/dist/Button-Bj667lJx.cjs +0 -108
- package/dist/Button-Bj667lJx.cjs.map +0 -1
- package/dist/Button-DUxP65eY.js +0 -105
- package/dist/Button-DUxP65eY.js.map +0 -1
- package/dist/ErrorBoundary-Dzim3WH6.cjs +0 -175
- package/dist/ErrorBoundary-Dzim3WH6.cjs.map +0 -1
- package/dist/ErrorBoundary-UTpu5Qah.js +0 -154
- package/dist/ErrorBoundary-UTpu5Qah.js.map +0 -1
- package/dist/Notice-BJ6lke5l.js +0 -89
- package/dist/Notice-BJ6lke5l.js.map +0 -1
- package/dist/Notice-BoWYUdbS.cjs +0 -91
- package/dist/Notice-BoWYUdbS.cjs.map +0 -1
- package/dist/SessionExpired-1MYjtwiy.js +0 -45
- package/dist/SessionExpired-1MYjtwiy.js.map +0 -1
- package/dist/SessionExpired-DFE3cHmO.cjs +0 -47
- package/dist/SessionExpired-DFE3cHmO.cjs.map +0 -1
- package/dist/alert-dialog-BRvoYQwJ.js +0 -99
- package/dist/alert-dialog-BRvoYQwJ.js.map +0 -1
- package/dist/alert-dialog-k5-YzF6v.cjs +0 -120
- package/dist/alert-dialog-k5-YzF6v.cjs.map +0 -1
- package/dist/buttons-group-Cq0bhJ9W.cjs +0 -185
- package/dist/buttons-group-Cq0bhJ9W.cjs.map +0 -1
- package/dist/buttons-group-DoY6vWNX.js +0 -161
- package/dist/buttons-group-DoY6vWNX.js.map +0 -1
- package/dist/checkbox-CYy10J_9.js +0 -88
- package/dist/checkbox-CYy10J_9.js.map +0 -1
- package/dist/checkbox-D1vhO7CT.cjs +0 -109
- package/dist/checkbox-D1vhO7CT.cjs.map +0 -1
- package/dist/code-block-QAdMwht_.cjs +0 -86
- package/dist/code-block-QAdMwht_.cjs.map +0 -1
- package/dist/code-block-wIYnRia5.js +0 -84
- package/dist/code-block-wIYnRia5.js.map +0 -1
- package/dist/code-editor-Dy7xhPHz.js +0 -441
- package/dist/code-editor-Dy7xhPHz.js.map +0 -1
- package/dist/code-editor-PXyii7uq.cjs +0 -449
- package/dist/code-editor-PXyii7uq.cjs.map +0 -1
- package/dist/collapsible-BkPKxVw5.cjs +0 -61
- package/dist/collapsible-BkPKxVw5.cjs.map +0 -1
- package/dist/collapsible-C0LKBzLy.js +0 -57
- package/dist/collapsible-C0LKBzLy.js.map +0 -1
- package/dist/combobox-B3lIawbp.js +0 -223
- package/dist/combobox-B3lIawbp.js.map +0 -1
- package/dist/combobox-DPV6JFnR.cjs +0 -245
- package/dist/combobox-DPV6JFnR.cjs.map +0 -1
- package/dist/command-BT3bjfa0.cjs +0 -194
- package/dist/command-BT3bjfa0.cjs.map +0 -1
- package/dist/command-DnI0VT4j.js +0 -165
- package/dist/command-DnI0VT4j.js.map +0 -1
- package/dist/control-size-BdDLgGX4.js +0 -22
- package/dist/control-size-BdDLgGX4.js.map +0 -1
- package/dist/control-size-D67C0kPZ.cjs +0 -26
- package/dist/control-size-D67C0kPZ.cjs.map +0 -1
- package/dist/copy-button-CXn_T1Vi.js +0 -44
- package/dist/copy-button-CXn_T1Vi.js.map +0 -1
- package/dist/copy-button-UYec6W5c.cjs +0 -46
- package/dist/copy-button-UYec6W5c.cjs.map +0 -1
- package/dist/data-code-section-BUcQHFw2.js +0 -332
- package/dist/data-code-section-BUcQHFw2.js.map +0 -1
- package/dist/data-code-section-WbOdAr6i.cjs +0 -335
- package/dist/data-code-section-WbOdAr6i.cjs.map +0 -1
- package/dist/data-list-BZxmpMh8.cjs +0 -135
- package/dist/data-list-BZxmpMh8.cjs.map +0 -1
- package/dist/data-list-DDgI1bcK.js +0 -131
- package/dist/data-list-DDgI1bcK.js.map +0 -1
- package/dist/data-list-skeleton-CKtfnKu1.cjs +0 -32
- package/dist/data-list-skeleton-CKtfnKu1.cjs.map +0 -1
- package/dist/data-list-skeleton-DdII1DEa.js +0 -30
- package/dist/data-list-skeleton-DdII1DEa.js.map +0 -1
- package/dist/data-list-top-cell-GbxlrnjB.cjs +0 -540
- package/dist/data-list-top-cell-GbxlrnjB.cjs.map +0 -1
- package/dist/data-list-top-cell-qvCVWXs-.js +0 -513
- package/dist/data-list-top-cell-qvCVWXs-.js.map +0 -1
- package/dist/data-panel-C-Cw6JZU.js +0 -87
- package/dist/data-panel-C-Cw6JZU.js.map +0 -1
- package/dist/data-panel-Cfjo5g3E.cjs +0 -89
- package/dist/data-panel-Cfjo5g3E.cjs.map +0 -1
- package/dist/date-time-picker-CS4HSyCh.cjs +0 -268
- package/dist/date-time-picker-CS4HSyCh.cjs.map +0 -1
- package/dist/date-time-picker-CxYld6QS.js +0 -245
- package/dist/date-time-picker-CxYld6QS.js.map +0 -1
- package/dist/date-time-range-picker-C4zzA37w.cjs +0 -170
- package/dist/date-time-range-picker-C4zzA37w.cjs.map +0 -1
- package/dist/date-time-range-picker-lu44sN6F.js +0 -168
- package/dist/date-time-range-picker-lu44sN6F.js.map +0 -1
- package/dist/dialog-CFJARbIM.js +0 -76
- package/dist/dialog-CFJARbIM.js.map +0 -1
- package/dist/dialog-Lm_EDANe.cjs +0 -107
- package/dist/dialog-Lm_EDANe.cjs.map +0 -1
- package/dist/drawer-CiUjFp3u.js +0 -326
- package/dist/drawer-CiUjFp3u.js.map +0 -1
- package/dist/drawer-jT2bUkrJ.cjs +0 -366
- package/dist/drawer-jT2bUkrJ.cjs.map +0 -1
- package/dist/dropdown-menu-BvpUs54j.cjs +0 -263
- package/dist/dropdown-menu-BvpUs54j.cjs.map +0 -1
- package/dist/dropdown-menu-rYjDHlMP.js +0 -242
- package/dist/dropdown-menu-rYjDHlMP.js.map +0 -1
- package/dist/environment-variables-editor-DwkANgjj.cjs +0 -519
- package/dist/environment-variables-editor-DwkANgjj.cjs.map +0 -1
- package/dist/environment-variables-editor-PCGuUAIv.js +0 -517
- package/dist/environment-variables-editor-PCGuUAIv.js.map +0 -1
- package/dist/form-element-Cy7aV1Ds.cjs +0 -22
- package/dist/form-element-Cy7aV1Ds.cjs.map +0 -1
- package/dist/form-element-DUtZESwq.js +0 -12
- package/dist/form-element-DUtZESwq.js.map +0 -1
- package/dist/helpers-CsdqE6P2.js +0 -346
- package/dist/helpers-CsdqE6P2.js.map +0 -1
- package/dist/helpers-DZjuFmIz.cjs +0 -352
- package/dist/helpers-DZjuFmIz.cjs.map +0 -1
- package/dist/input-CmF5qOKQ.js +0 -65
- package/dist/input-CmF5qOKQ.js.map +0 -1
- package/dist/input-DL5-kqK-.cjs +0 -86
- package/dist/input-DL5-kqK-.cjs.map +0 -1
- package/dist/input-group-bzqIGNp3.cjs +0 -245
- package/dist/input-group-bzqIGNp3.cjs.map +0 -1
- package/dist/input-group-iZZD8Z65.js +0 -219
- package/dist/input-group-iZZD8Z65.js.map +0 -1
- package/dist/kbd-BAS3Kd2E.cjs +0 -29
- package/dist/kbd-BAS3Kd2E.cjs.map +0 -1
- package/dist/kbd-gp0Sr4mW.js +0 -27
- package/dist/kbd-gp0Sr4mW.js.map +0 -1
- package/dist/list-search-Cd7OGOdt.js +0 -57
- package/dist/list-search-Cd7OGOdt.js.map +0 -1
- package/dist/list-search-Cn23Rbyh.cjs +0 -59
- package/dist/list-search-Cn23Rbyh.cjs.map +0 -1
- package/dist/logs-data-list-CCaTeaUh.js +0 -80
- package/dist/logs-data-list-CCaTeaUh.js.map +0 -1
- package/dist/logs-data-list-Dwh8cMrt.cjs +0 -82
- package/dist/logs-data-list-Dwh8cMrt.cjs.map +0 -1
- package/dist/main-sidebar-DyA0N-zw.js +0 -788
- package/dist/main-sidebar-DyA0N-zw.js.map +0 -1
- package/dist/main-sidebar-Fa0x88X0.cjs +0 -798
- package/dist/main-sidebar-Fa0x88X0.cjs.map +0 -1
- package/dist/markdown-renderer-D_sNkQ-a.js +0 -86
- package/dist/markdown-renderer-D_sNkQ-a.js.map +0 -1
- package/dist/markdown-renderer-m0Qqa1u8.cjs +0 -88
- package/dist/markdown-renderer-m0Qqa1u8.cjs.map +0 -1
- package/dist/multi-column-BLp7eL6P.cjs +0 -136
- package/dist/multi-column-BLp7eL6P.cjs.map +0 -1
- package/dist/multi-column-DeSb1YDE.js +0 -132
- package/dist/multi-column-DeSb1YDE.js.map +0 -1
- package/dist/popover-BjnbSCQw.cjs +0 -119
- package/dist/popover-BjnbSCQw.cjs.map +0 -1
- package/dist/popover-DaFWFKma.js +0 -95
- package/dist/popover-DaFWFKma.js.map +0 -1
- package/dist/portal-container-BlQ6JKob.js +0 -17
- package/dist/portal-container-BlQ6JKob.js.map +0 -1
- package/dist/portal-container-BsvHZxj7.cjs +0 -39
- package/dist/portal-container-BsvHZxj7.cjs.map +0 -1
- package/dist/process-step-progress-bar-DKn_SWjH.js +0 -136
- package/dist/process-step-progress-bar-DKn_SWjH.js.map +0 -1
- package/dist/process-step-progress-bar-gMkvVzG1.cjs +0 -141
- package/dist/process-step-progress-bar-gMkvVzG1.cjs.map +0 -1
- package/dist/property-filter-creator-CdxTSrOs.cjs +0 -674
- package/dist/property-filter-creator-CdxTSrOs.cjs.map +0 -1
- package/dist/property-filter-creator-D60-FVBL.js +0 -669
- package/dist/property-filter-creator-D60-FVBL.js.map +0 -1
- package/dist/radio-group-DdMscZHh.js +0 -55
- package/dist/radio-group-DdMscZHh.js.map +0 -1
- package/dist/radio-group-rp_4ZkOj.cjs +0 -77
- package/dist/radio-group-rp_4ZkOj.cjs.map +0 -1
- package/dist/rule-builder-Zs6Ywp5-.js +0 -563
- package/dist/rule-builder-Zs6Ywp5-.js.map +0 -1
- package/dist/rule-builder-vwKEUlZU.cjs +0 -594
- package/dist/rule-builder-vwKEUlZU.cjs.map +0 -1
- package/dist/search-field-block-BkRBAVCC.cjs +0 -117
- package/dist/search-field-block-BkRBAVCC.cjs.map +0 -1
- package/dist/search-field-block-CJSnpu8G.js +0 -115
- package/dist/search-field-block-CJSnpu8G.js.map +0 -1
- package/dist/searchbar-DzOR_xnW.cjs +0 -105
- package/dist/searchbar-DzOR_xnW.cjs.map +0 -1
- package/dist/searchbar-SYpN7NP_.js +0 -102
- package/dist/searchbar-SYpN7NP_.js.map +0 -1
- package/dist/select-BSf4VfTX.js +0 -162
- package/dist/select-BSf4VfTX.js.map +0 -1
- package/dist/select-CA9x5WdL.cjs +0 -188
- package/dist/select-CA9x5WdL.cjs.map +0 -1
- package/dist/select-data-filter-B1ZSewKM.cjs +0 -194
- package/dist/select-data-filter-B1ZSewKM.cjs.map +0 -1
- package/dist/select-data-filter-CRsIOTuD.js +0 -192
- package/dist/select-data-filter-CRsIOTuD.js.map +0 -1
- package/dist/select-field-block-DuCz05gv.cjs +0 -50
- package/dist/select-field-block-DuCz05gv.cjs.map +0 -1
- package/dist/select-field-block-z5_ve898.js +0 -48
- package/dist/select-field-block-z5_ve898.js.map +0 -1
- package/dist/tabs-content-De3TzqG0.cjs +0 -20
- package/dist/tabs-content-De3TzqG0.cjs.map +0 -1
- package/dist/tabs-content-J4YUF8-A.js +0 -18
- package/dist/tabs-content-J4YUF8-A.js.map +0 -1
- package/dist/tabs-tab-CkHDocn9.cjs +0 -122
- package/dist/tabs-tab-CkHDocn9.cjs.map +0 -1
- package/dist/tabs-tab-D0Ydz5KC.js +0 -118
- package/dist/tabs-tab-D0Ydz5KC.js.map +0 -1
- package/dist/text-field-block-DPyUlRc-.cjs +0 -50
- package/dist/text-field-block-DPyUlRc-.cjs.map +0 -1
- package/dist/text-field-block-DybcFyt-.js +0 -48
- package/dist/text-field-block-DybcFyt-.js.map +0 -1
- package/dist/textarea-CdmDbgMg.cjs +0 -83
- package/dist/textarea-CdmDbgMg.cjs.map +0 -1
- package/dist/textarea-CvcSdBxC.js +0 -62
- package/dist/textarea-CvcSdBxC.js.map +0 -1
- package/dist/theme-toggle-BhMopYF0.cjs +0 -87
- package/dist/theme-toggle-BhMopYF0.cjs.map +0 -1
- package/dist/theme-toggle-Byu3F-Vt.js +0 -85
- package/dist/theme-toggle-Byu3F-Vt.js.map +0 -1
- package/dist/thread-list-DISOdCG1.cjs +0 -79
- package/dist/thread-list-DISOdCG1.cjs.map +0 -1
- package/dist/thread-list-DStSVzaX.js +0 -72
- package/dist/thread-list-DStSVzaX.js.map +0 -1
- package/dist/time-picker-CL4xWUGp.js +0 -110
- package/dist/time-picker-CL4xWUGp.js.map +0 -1
- package/dist/time-picker-CR4_fwUk.cjs +0 -113
- package/dist/time-picker-CR4_fwUk.cjs.map +0 -1
- package/dist/traces-data-list-C_7puLGo.cjs +0 -126
- package/dist/traces-data-list-C_7puLGo.cjs.map +0 -1
- package/dist/traces-data-list-D8pdf9Yu.js +0 -123
- package/dist/traces-data-list-D8pdf9Yu.js.map +0 -1
- package/dist/transitions-DpczSjmD.cjs +0 -39
- package/dist/transitions-DpczSjmD.cjs.map +0 -1
- package/dist/transitions-tFfqxz40.js +0 -35
- package/dist/transitions-tFfqxz40.js.map +0 -1
- package/dist/tree-DIW9AT9g.js +0 -471
- package/dist/tree-DIW9AT9g.js.map +0 -1
- package/dist/tree-TfjjoQWc.cjs +0 -492
- package/dist/tree-TfjjoQWc.cjs.map +0 -1
- package/dist/truncate-Dc4uvGy6.cjs +0 -49
- package/dist/truncate-Dc4uvGy6.cjs.map +0 -1
- package/dist/truncate-ReelyWbD.js +0 -47
- package/dist/truncate-ReelyWbD.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-CFB6QZ9B.js","sources":["../src/ds/components/Select/select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@base-ui/react/select';\nimport type { SelectPopupProps, SelectPositionerProps } from '@base-ui/react/select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport * as React from 'react';\n\nimport { buttonVariants } from '../Button/Button';\nimport type { TextButtonSize } from '../Button/Button';\nimport { controlTriggerOpenState } from '@/ds/primitives/control-size';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select migrated from `@radix-ui/react-select` to Base UI (`@base-ui/react/select`).\n *\n * The public API (`Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`,\n * `SelectContent`, `SelectItem`) is intentionally kept stable so existing\n * consumers do not need changes.\n *\n * Notable behavioral differences vs. Radix that consumers should be aware of:\n * - `onValueChange` now receives a second `eventDetails` argument. Existing\n * handlers typed as `(value: string) => void` keep working (extra arg ignored).\n * - The dropdown no longer overlaps the trigger by default\n * (`alignItemWithTrigger={false}`), matching the previous Radix `popper`\n * positioning behavior.\n *\n * Implementation note: unlike Radix, Base UI's `Select.Value` can only resolve\n * a selected value to its label once the popup has mounted (it reads labels\n * from rendered items). To preserve the Radix behavior where the trigger shows\n * the selected label even while closed, `Select` auto-derives an `items` map\n * from the `SelectItem`s declared inside `SelectContent` and passes it to\n * `Select.Root`. Consumers can still pass an explicit `items` prop to override.\n */\ntype SelectItemNode = React.ReactElement<{ value: unknown; children?: React.ReactNode }>;\n\nfunction isSelectItem(node: React.ReactNode): node is SelectItemNode {\n return React.isValidElement(node) && (node.type as { displayName?: string })?.displayName === 'SelectItem';\n}\n\n/** Recursively collect `{ value, label }` pairs from declared `SelectItem`s. */\nfunction collectItems(children: React.ReactNode, acc: Array<{ value: unknown; label: React.ReactNode }>): void {\n React.Children.forEach(children, child => {\n if (!React.isValidElement(child)) return;\n if (isSelectItem(child)) {\n acc.push({ value: child.props.value, label: child.props.children });\n return;\n }\n const nested = (child.props as { children?: React.ReactNode })?.children;\n if (nested != null) collectItems(nested, acc);\n });\n}\n\ntype SelectRootProps<Value> = SelectPrimitive.Root.Props<Value, false>;\ntype SelectChangeDetails = Parameters<NonNullable<SelectRootProps<unknown>['onValueChange']>>[1];\n\n/**\n * `onValueChange` is intentionally narrowed to a non-null value: these selects\n * always hold a value once changed, which keeps existing `(value) => void`\n * consumer handlers valid (Base UI's own callback type is `Value | null`).\n */\ntype SelectProps<Value = string> = Omit<SelectRootProps<Value>, 'onValueChange'> & {\n onValueChange?: (value: Value, eventDetails: SelectChangeDetails) => void;\n};\n\nfunction Select<Value = string>({ children, items, onValueChange, ...props }: SelectProps<Value>) {\n const derivedItems = React.useMemo(() => {\n if (items != null) return items;\n const acc: Array<{ value: unknown; label: React.ReactNode }> = [];\n collectItems(children, acc);\n return acc.length > 0 ? acc : undefined;\n }, [items, children]);\n\n return (\n <SelectPrimitive.Root\n items={derivedItems as SelectRootProps<Value>['items']}\n onValueChange={onValueChange ? (value, eventDetails) => onValueChange(value as Value, eventDetails) : undefined}\n {...props}\n >\n {children}\n </SelectPrimitive.Root>\n );\n}\nSelect.displayName = 'Select';\n\nconst SelectGroup = SelectPrimitive.Group;\n\nexport type SelectValueProps = Omit<SelectPrimitive.Value.Props, 'className'> & {\n className?: string;\n};\n\n/**\n * Displays the selected value. Radix's `Select.Value` took a `placeholder`\n * prop and rendered the selected item's text automatically; Base UI's\n * `Select.Value` behaves the same way (renders the value, falls back to\n * `placeholder` when nothing is selected), so this is a thin passthrough.\n */\nconst SelectValue = React.forwardRef<HTMLSpanElement, SelectValueProps>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value ref={ref} className={cn('truncate', className)} {...props} />\n));\nSelectValue.displayName = 'SelectValue';\n\n/**\n * A select is a form field, so it reuses the same button looks consumers see\n * everywhere: `default` (the Button's filled default surface — the default\n * here too), `outline` (bordered, transparent) and `ghost` (borderless, for\n * dense toolbars/inline pickers). The high-emphasis `primary` look is the only\n * one intentionally NOT offered (a field is not a call-to-action).\n */\nexport type SelectTriggerVariant = 'default' | 'outline' | 'ghost';\ntype SelectTriggerLegacyVariant = 'primary';\n\nexport type SelectTriggerProps = Omit<SelectPrimitive.Trigger.Props, 'className'> & {\n className?: string;\n size?: TextButtonSize;\n variant?: SelectTriggerVariant | SelectTriggerLegacyVariant;\n};\n\nfunction normalizeSelectTriggerVariant(\n variant: SelectTriggerVariant | SelectTriggerLegacyVariant,\n): SelectTriggerVariant {\n return variant === 'primary' ? 'default' : variant;\n}\n\nconst SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, size = 'md', variant = 'default', ...props }, ref) => {\n const visualVariant = normalizeSelectTriggerVariant(variant);\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n // A select = a button + a trailing chevron: reuse the Button recipe\n // (variant colors, size = height/text/padding/radius, unified border\n // focus, disabled) and layer only the select-specific extras.\n className={cn(\n buttonVariants({ variant: visualVariant, size }),\n // Fill the field and push the value left / chevron right (Button's\n // base centers its content with `justify-center`).\n 'w-full justify-between',\n // Read as \"active\" while the menu is open, per variant (see map above).\n controlTriggerOpenState[visualVariant],\n 'data-[placeholder]:text-neutral3',\n '[&>span]:truncate',\n className,\n )}\n {...props}\n >\n {children}\n {/* `SelectPrimitive.Icon` renders the provided element in place of its\n default `<span>`, so the chevron would land as a *direct* `<svg>`\n child of the trigger — where Button's `TEXT_MODE_ADORNMENTS`\n `[&>svg]` rules (negative `mx`, forced 50% opacity, 1.1em sizing)\n would distort and mis-position it. Wrapping it in a `<span>` keeps\n the svg one level deep so those rules can't reach it, leaving the\n chevron pinned at the right edge at its intended size and opacity. */}\n <SelectPrimitive.Icon\n render={\n <span className=\"flex shrink-0 items-center\">\n <ChevronDown className={cn('h-4 w-4 opacity-60', transitions.colors)} />\n </span>\n }\n />\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ntype SelectContentPositionerProps = Omit<SelectPositionerProps, keyof SelectPopupProps>;\n\nexport type SelectContentProps = Omit<SelectPopupProps, 'className'> &\n SelectContentPositionerProps & {\n className?: string;\n /**\n * Kept for API compatibility with the previous Radix API. Radix supported\n * `position=\"popper\" | \"item-aligned\"`; Base UI always uses popper-style\n * positioning so this prop is accepted but has no effect.\n */\n position?: 'popper' | 'item-aligned';\n /** Optional portal container, forwarded to `Select.Portal`. */\n container?: HTMLElement | null;\n };\n\nconst SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n className,\n children,\n position: _position,\n container,\n side = 'bottom',\n align = 'start',\n sideOffset = 4,\n alignItemWithTrigger = false,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n },\n ref,\n ) => {\n // Default to the nearest SideDialog/Drawer popup so the dropdown stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const positionerProps: SelectContentPositionerProps = {\n side,\n align,\n sideOffset,\n alignItemWithTrigger,\n anchor,\n positionMethod,\n alignOffset,\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n };\n\n return (\n <SelectPrimitive.Portal container={resolvedContainer}>\n <SelectPrimitive.Positioner className=\"z-50 outline-none\" {...positionerProps}>\n <SelectPrimitive.Popup\n ref={ref}\n className={cn(\n 'relative z-50 min-w-32 min-w-[var(--anchor-width)] max-h-dropdown-max-height max-h-[var(--available-height)] overflow-y-auto overflow-x-hidden rounded-xl border border-border1 bg-surface3 p-1 text-neutral4 shadow-dialog origin-[var(--transform-origin)]',\n 'data-[open]:animate-in data-[closed]:animate-out data-[closed]:fade-out-0 data-[open]:fade-in-0 data-[closed]:zoom-out-95 data-[open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',\n className,\n )}\n {...props}\n >\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n },\n);\nSelectContent.displayName = 'SelectContent';\n\nexport type SelectItemProps = Omit<SelectPrimitive.Item.Props, 'className'> & {\n className?: string;\n};\n\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-pointer select-none items-center gap-2.5 rounded-lg py-1.5 pl-2 pr-8 text-neutral4 text-ui-smd leading-ui-sm',\n 'outline-none focus:outline-none focus-visible:outline-none',\n transitions.colors,\n 'hover:bg-surface4 hover:text-neutral6',\n 'focus:bg-surface4 focus:text-neutral6',\n 'data-[highlighted]:bg-surface4 data-[highlighted]:text-neutral6',\n 'data-[selected]:text-neutral6',\n 'data-disabled:pointer-events-none data-disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4 text-neutral6\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = 'SelectItem';\n\nexport { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n"],"names":["SelectPrimitive"],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const lucideReact = require('lucide-react');
|
|
5
|
+
const React = require('react');
|
|
6
|
+
const Button = require('./Button-66ghjQV8.cjs');
|
|
7
|
+
const dropdownMenu = require('./dropdown-menu-pHJH-29Y.cjs');
|
|
8
|
+
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
9
|
+
|
|
10
|
+
const SUBMENU_SEARCH_THRESHOLD = 6;
|
|
11
|
+
function SubMenuSearch({
|
|
12
|
+
value,
|
|
13
|
+
onChange,
|
|
14
|
+
label = "Search"
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("px-2 pb-2"), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17
|
+
"div",
|
|
18
|
+
{
|
|
19
|
+
className: utils_cn.cn(
|
|
20
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
21
|
+
"focus-within:border-neutral2"
|
|
22
|
+
),
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: utils_cn.cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
25
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26
|
+
"input",
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
placeholder: "Search...",
|
|
30
|
+
"aria-label": label,
|
|
31
|
+
value,
|
|
32
|
+
onChange: (e) => onChange(e.target.value),
|
|
33
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
34
|
+
className: utils_cn.cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
) });
|
|
40
|
+
}
|
|
41
|
+
function SelectDataFilter({
|
|
42
|
+
categories,
|
|
43
|
+
value,
|
|
44
|
+
onChange,
|
|
45
|
+
disabled,
|
|
46
|
+
label = "Filter",
|
|
47
|
+
align = "end",
|
|
48
|
+
searchThreshold = SUBMENU_SEARCH_THRESHOLD
|
|
49
|
+
}) {
|
|
50
|
+
const [filterSearch, setFilterSearch] = React.useState("");
|
|
51
|
+
const [subSearch, setSubSearch] = React.useState("");
|
|
52
|
+
const resetSubSearch = React.useCallback((open) => {
|
|
53
|
+
if (!open) setSubSearch("");
|
|
54
|
+
}, []);
|
|
55
|
+
const activeFilterCount = React.useMemo(() => {
|
|
56
|
+
let count = 0;
|
|
57
|
+
for (const selections of Object.values(value)) {
|
|
58
|
+
if (selections.length > 0) count++;
|
|
59
|
+
}
|
|
60
|
+
return count;
|
|
61
|
+
}, [value]);
|
|
62
|
+
const grouped = React.useMemo(() => {
|
|
63
|
+
const q = filterSearch.toLowerCase();
|
|
64
|
+
const groups = [];
|
|
65
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
66
|
+
const ungrouped = [];
|
|
67
|
+
for (const cat of categories) {
|
|
68
|
+
if (cat.values.length === 0) continue;
|
|
69
|
+
if (q) {
|
|
70
|
+
const matchesLabel = cat.label.toLowerCase().includes(q);
|
|
71
|
+
const matchesValues = cat.values.some((v) => v.label.toLowerCase().includes(q));
|
|
72
|
+
if (!matchesLabel && !matchesValues) continue;
|
|
73
|
+
}
|
|
74
|
+
if (cat.group) {
|
|
75
|
+
let items = groupMap.get(cat.group);
|
|
76
|
+
if (!items) {
|
|
77
|
+
items = [];
|
|
78
|
+
groupMap.set(cat.group, items);
|
|
79
|
+
}
|
|
80
|
+
items.push(cat);
|
|
81
|
+
} else {
|
|
82
|
+
ungrouped.push(cat);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
for (const cat of ungrouped) {
|
|
86
|
+
groups.push({ key: cat.id, items: [cat] });
|
|
87
|
+
}
|
|
88
|
+
for (const [groupLabel, items] of groupMap) {
|
|
89
|
+
groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });
|
|
90
|
+
}
|
|
91
|
+
return groups;
|
|
92
|
+
}, [categories, filterSearch]);
|
|
93
|
+
const handleSelect = (categoryId, selectedValue, mode) => {
|
|
94
|
+
const current = value[categoryId] ?? [];
|
|
95
|
+
let next;
|
|
96
|
+
if (mode === "single") {
|
|
97
|
+
next = current.includes(selectedValue) ? [] : [selectedValue];
|
|
98
|
+
} else {
|
|
99
|
+
next = current.includes(selectedValue) ? current.filter((v) => v !== selectedValue) : [...current, selectedValue];
|
|
100
|
+
}
|
|
101
|
+
onChange({ ...value, [categoryId]: next });
|
|
102
|
+
};
|
|
103
|
+
const handleClearAll = () => {
|
|
104
|
+
onChange({});
|
|
105
|
+
};
|
|
106
|
+
const renderCategory = (cat) => {
|
|
107
|
+
const mode = cat.mode ?? "multi";
|
|
108
|
+
const selected = value[cat.id] ?? [];
|
|
109
|
+
const selectedCount = selected.length;
|
|
110
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Sub, { onOpenChange: resetSubSearch, children: [
|
|
111
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.SubTrigger, { children: [
|
|
112
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("truncate"), children: cat.label }),
|
|
113
|
+
selectedCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("ml-auto text-ui-sm text-accent1"), children: selectedCount })
|
|
114
|
+
] }),
|
|
115
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.SubContent, { className: utils_cn.cn("max-h-[20rem]"), children: [
|
|
116
|
+
cat.values.length >= searchThreshold && /* @__PURE__ */ jsxRuntime.jsx(SubMenuSearch, { value: subSearch, onChange: setSubSearch, label: `Search ${cat.label.toLowerCase()}` }),
|
|
117
|
+
mode === "single" ? /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.RadioGroup, { value: selected[0] ?? "", onValueChange: (val) => handleSelect(cat.id, val, mode), children: cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.RadioItem, { value: v.value, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("truncate"), children: v.label }) }, v.value)) }) : cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
+
dropdownMenu.DropdownMenu.CheckboxItem,
|
|
119
|
+
{
|
|
120
|
+
checked: selected.includes(v.value),
|
|
121
|
+
onCheckedChange: () => handleSelect(cat.id, v.value, mode),
|
|
122
|
+
onSelect: (e) => e.preventDefault(),
|
|
123
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("truncate"), children: v.label })
|
|
124
|
+
},
|
|
125
|
+
v.value
|
|
126
|
+
))
|
|
127
|
+
] })
|
|
128
|
+
] }, cat.id);
|
|
129
|
+
};
|
|
130
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { modal: false, children: [
|
|
131
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { variant: "outline", disabled, size: "md", children: [
|
|
132
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FilterIcon, {}),
|
|
133
|
+
label,
|
|
134
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
135
|
+
"span",
|
|
136
|
+
{
|
|
137
|
+
className: utils_cn.cn(
|
|
138
|
+
"ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"
|
|
139
|
+
),
|
|
140
|
+
children: activeFilterCount
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
] }) }),
|
|
144
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Content, { align, className: utils_cn.cn("min-w-[12rem]"), children: [
|
|
145
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("px-2 pb-2"), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
146
|
+
"div",
|
|
147
|
+
{
|
|
148
|
+
className: utils_cn.cn(
|
|
149
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
150
|
+
"focus-within:border-neutral2"
|
|
151
|
+
),
|
|
152
|
+
children: [
|
|
153
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: utils_cn.cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
154
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
+
"input",
|
|
156
|
+
{
|
|
157
|
+
type: "text",
|
|
158
|
+
placeholder: "Search filters...",
|
|
159
|
+
"aria-label": "Search filters",
|
|
160
|
+
value: filterSearch,
|
|
161
|
+
onChange: (e) => setFilterSearch(e.target.value),
|
|
162
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
163
|
+
className: utils_cn.cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
) }),
|
|
169
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Separator, {}),
|
|
170
|
+
grouped.map((group) => {
|
|
171
|
+
if (group.items.length === 1 && !group.label) {
|
|
172
|
+
return renderCategory(group.items[0]);
|
|
173
|
+
}
|
|
174
|
+
if (group.label && group.items.length === 1) {
|
|
175
|
+
return renderCategory(group.items[0]);
|
|
176
|
+
}
|
|
177
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Sub, { children: [
|
|
178
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.SubTrigger, { children: group.label }),
|
|
179
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.SubContent, { className: utils_cn.cn("max-h-[20rem]"), children: group.items.map((cat) => renderCategory(cat)) })
|
|
180
|
+
] }, group.key);
|
|
181
|
+
}),
|
|
182
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
183
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Separator, {}),
|
|
184
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Item, { onSelect: handleClearAll, children: [
|
|
185
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
|
|
186
|
+
"Clear all filters"
|
|
187
|
+
] })
|
|
188
|
+
] })
|
|
189
|
+
] })
|
|
190
|
+
] });
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
exports.SelectDataFilter = SelectDataFilter;
|
|
194
|
+
//# sourceMappingURL=select-data-filter-BasB6Wt3.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-data-filter-BasB6Wt3.cjs","sources":["../src/ds/components/DataFilter/select-data-filter.tsx"],"sourcesContent":["import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useState, useMemo, useCallback } from 'react';\n\nimport { Button } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** A single selectable value within a filter category */\nexport type SelectDataFilterValue = {\n value: string;\n label: string;\n};\n\n/** Selection mode for a filter category */\nexport type SelectDataFilterMode = 'single' | 'multi';\n\n/** A filter category that appears in the filter dropdown */\nexport type SelectDataFilterCategory = {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Optional group header (categories with the same group are nested under it) */\n group?: string;\n /** Available values to pick from */\n values: SelectDataFilterValue[];\n /** 'single' = radio, 'multi' = checkboxes. Defaults to 'multi'. */\n mode?: SelectDataFilterMode;\n};\n\n/** Current selected state: category id -> selected value(s) */\nexport type SelectDataFilterState = Record<string, string[]>;\n\nexport type SelectDataFilterProps = {\n /** Filter categories to display */\n categories: SelectDataFilterCategory[];\n /** Current filter selections */\n value: SelectDataFilterState;\n /** Called when selections change */\n onChange: (next: SelectDataFilterState) => void;\n /** Disable the trigger button */\n disabled?: boolean;\n /** Override the trigger label */\n label?: ReactNode;\n /** Content alignment */\n align?: 'start' | 'center' | 'end';\n /** Minimum items before showing search in a submenu */\n searchThreshold?: number;\n};\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\nconst SUBMENU_SEARCH_THRESHOLD = 6;\n\nfunction SubMenuSearch({\n value,\n onChange,\n label = 'Search',\n}: {\n value: string;\n onChange: (v: string) => void;\n label?: string;\n}) {\n return (\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n aria-label={label}\n value={value}\n onChange={e => onChange(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function SelectDataFilter({\n categories,\n value,\n onChange,\n disabled,\n label = 'Filter',\n align = 'end',\n searchThreshold = SUBMENU_SEARCH_THRESHOLD,\n}: SelectDataFilterProps) {\n const [filterSearch, setFilterSearch] = useState('');\n const [subSearch, setSubSearch] = useState('');\n\n const resetSubSearch = useCallback((open: boolean) => {\n if (!open) setSubSearch('');\n }, []);\n\n // Count active filters\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const selections of Object.values(value)) {\n if (selections.length > 0) count++;\n }\n return count;\n }, [value]);\n\n // Group categories\n const grouped = useMemo(() => {\n const q = filterSearch.toLowerCase();\n const groups: { key: string; label?: string; items: SelectDataFilterCategory[] }[] = [];\n const groupMap = new Map<string, SelectDataFilterCategory[]>();\n const ungrouped: SelectDataFilterCategory[] = [];\n\n for (const cat of categories) {\n if (cat.values.length === 0) continue;\n // Filter by search\n if (q) {\n const matchesLabel = cat.label.toLowerCase().includes(q);\n const matchesValues = cat.values.some(v => v.label.toLowerCase().includes(q));\n if (!matchesLabel && !matchesValues) continue;\n }\n if (cat.group) {\n let items = groupMap.get(cat.group);\n if (!items) {\n items = [];\n groupMap.set(cat.group, items);\n }\n items.push(cat);\n } else {\n ungrouped.push(cat);\n }\n }\n\n // Ungrouped items first\n for (const cat of ungrouped) {\n groups.push({ key: cat.id, items: [cat] });\n }\n // Then grouped\n for (const [groupLabel, items] of groupMap) {\n groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });\n }\n\n return groups;\n }, [categories, filterSearch]);\n\n const handleSelect = (categoryId: string, selectedValue: string, mode: SelectDataFilterMode) => {\n const current = value[categoryId] ?? [];\n let next: string[];\n\n if (mode === 'single') {\n next = current.includes(selectedValue) ? [] : [selectedValue];\n } else {\n next = current.includes(selectedValue) ? current.filter(v => v !== selectedValue) : [...current, selectedValue];\n }\n\n onChange({ ...value, [categoryId]: next });\n };\n\n const handleClearAll = () => {\n onChange({});\n };\n\n const renderCategory = (cat: SelectDataFilterCategory) => {\n const mode = cat.mode ?? 'multi';\n const selected = value[cat.id] ?? [];\n const selectedCount = selected.length;\n\n return (\n <DropdownMenu.Sub key={cat.id} onOpenChange={resetSubSearch}>\n <DropdownMenu.SubTrigger>\n <span className={cn('truncate')}>{cat.label}</span>\n {selectedCount > 0 && <span className={cn('ml-auto text-ui-sm text-accent1')}>{selectedCount}</span>}\n </DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {cat.values.length >= searchThreshold && (\n <SubMenuSearch value={subSearch} onChange={setSubSearch} label={`Search ${cat.label.toLowerCase()}`} />\n )}\n {mode === 'single' ? (\n <DropdownMenu.RadioGroup value={selected[0] ?? ''} onValueChange={val => handleSelect(cat.id, val, mode)}>\n {cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.RadioItem key={v.value} value={v.value}>\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n ) : (\n cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={() => handleSelect(cat.id, v.value, mode)}\n onSelect={e => e.preventDefault()}\n >\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.CheckboxItem>\n ))\n )}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n };\n\n return (\n <DropdownMenu modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant=\"outline\" disabled={disabled} size=\"md\">\n <FilterIcon />\n {label}\n {activeFilterCount > 0 && (\n <span\n className={cn(\n 'ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5',\n )}\n >\n {activeFilterCount}\n </span>\n )}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align={align} className={cn('min-w-[12rem]')}>\n {/* Search */}\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search filters...\"\n aria-label=\"Search filters\"\n value={filterSearch}\n onChange={e => setFilterSearch(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n\n <DropdownMenu.Separator />\n\n {grouped.map(group => {\n if (group.items.length === 1 && !group.label) {\n return renderCategory(group.items[0]);\n }\n\n if (group.label && group.items.length === 1) {\n // Single item in a named group — render directly with group as context\n return renderCategory(group.items[0]);\n }\n\n // Multiple items under a group label — nest under a sub-trigger\n return (\n <DropdownMenu.Sub key={group.key}>\n <DropdownMenu.SubTrigger>{group.label}</DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {group.items.map(cat => renderCategory(cat))}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n })}\n\n {/* Clear all */}\n {activeFilterCount > 0 && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item onSelect={handleClearAll}>\n <XIcon />\n Clear all filters\n </DropdownMenu.Item>\n </>\n )}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":["jsx","cn","jsxs","SearchIcon","useState","useCallback","useMemo","DropdownMenu","Button","FilterIcon","Fragment","XIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';
|
|
3
|
+
import { useState, useCallback, useMemo } from 'react';
|
|
4
|
+
import { B as Button } from './Button-Bq0VuEbC.js';
|
|
5
|
+
import { D as DropdownMenu } from './dropdown-menu-CGei48WH.js';
|
|
6
|
+
import { c as cn } from './cn-BakJzhuv.js';
|
|
7
|
+
|
|
8
|
+
const SUBMENU_SEARCH_THRESHOLD = 6;
|
|
9
|
+
function SubMenuSearch({
|
|
10
|
+
value,
|
|
11
|
+
onChange,
|
|
12
|
+
label = "Search"
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ jsx("div", { className: cn("px-2 pb-2"), children: /* @__PURE__ */ jsxs(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
className: cn(
|
|
18
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
19
|
+
"focus-within:border-neutral2"
|
|
20
|
+
),
|
|
21
|
+
children: [
|
|
22
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
23
|
+
/* @__PURE__ */ jsx(
|
|
24
|
+
"input",
|
|
25
|
+
{
|
|
26
|
+
type: "text",
|
|
27
|
+
placeholder: "Search...",
|
|
28
|
+
"aria-label": label,
|
|
29
|
+
value,
|
|
30
|
+
onChange: (e) => onChange(e.target.value),
|
|
31
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
32
|
+
className: cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
) });
|
|
38
|
+
}
|
|
39
|
+
function SelectDataFilter({
|
|
40
|
+
categories,
|
|
41
|
+
value,
|
|
42
|
+
onChange,
|
|
43
|
+
disabled,
|
|
44
|
+
label = "Filter",
|
|
45
|
+
align = "end",
|
|
46
|
+
searchThreshold = SUBMENU_SEARCH_THRESHOLD
|
|
47
|
+
}) {
|
|
48
|
+
const [filterSearch, setFilterSearch] = useState("");
|
|
49
|
+
const [subSearch, setSubSearch] = useState("");
|
|
50
|
+
const resetSubSearch = useCallback((open) => {
|
|
51
|
+
if (!open) setSubSearch("");
|
|
52
|
+
}, []);
|
|
53
|
+
const activeFilterCount = useMemo(() => {
|
|
54
|
+
let count = 0;
|
|
55
|
+
for (const selections of Object.values(value)) {
|
|
56
|
+
if (selections.length > 0) count++;
|
|
57
|
+
}
|
|
58
|
+
return count;
|
|
59
|
+
}, [value]);
|
|
60
|
+
const grouped = useMemo(() => {
|
|
61
|
+
const q = filterSearch.toLowerCase();
|
|
62
|
+
const groups = [];
|
|
63
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
64
|
+
const ungrouped = [];
|
|
65
|
+
for (const cat of categories) {
|
|
66
|
+
if (cat.values.length === 0) continue;
|
|
67
|
+
if (q) {
|
|
68
|
+
const matchesLabel = cat.label.toLowerCase().includes(q);
|
|
69
|
+
const matchesValues = cat.values.some((v) => v.label.toLowerCase().includes(q));
|
|
70
|
+
if (!matchesLabel && !matchesValues) continue;
|
|
71
|
+
}
|
|
72
|
+
if (cat.group) {
|
|
73
|
+
let items = groupMap.get(cat.group);
|
|
74
|
+
if (!items) {
|
|
75
|
+
items = [];
|
|
76
|
+
groupMap.set(cat.group, items);
|
|
77
|
+
}
|
|
78
|
+
items.push(cat);
|
|
79
|
+
} else {
|
|
80
|
+
ungrouped.push(cat);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
for (const cat of ungrouped) {
|
|
84
|
+
groups.push({ key: cat.id, items: [cat] });
|
|
85
|
+
}
|
|
86
|
+
for (const [groupLabel, items] of groupMap) {
|
|
87
|
+
groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });
|
|
88
|
+
}
|
|
89
|
+
return groups;
|
|
90
|
+
}, [categories, filterSearch]);
|
|
91
|
+
const handleSelect = (categoryId, selectedValue, mode) => {
|
|
92
|
+
const current = value[categoryId] ?? [];
|
|
93
|
+
let next;
|
|
94
|
+
if (mode === "single") {
|
|
95
|
+
next = current.includes(selectedValue) ? [] : [selectedValue];
|
|
96
|
+
} else {
|
|
97
|
+
next = current.includes(selectedValue) ? current.filter((v) => v !== selectedValue) : [...current, selectedValue];
|
|
98
|
+
}
|
|
99
|
+
onChange({ ...value, [categoryId]: next });
|
|
100
|
+
};
|
|
101
|
+
const handleClearAll = () => {
|
|
102
|
+
onChange({});
|
|
103
|
+
};
|
|
104
|
+
const renderCategory = (cat) => {
|
|
105
|
+
const mode = cat.mode ?? "multi";
|
|
106
|
+
const selected = value[cat.id] ?? [];
|
|
107
|
+
const selectedCount = selected.length;
|
|
108
|
+
return /* @__PURE__ */ jsxs(DropdownMenu.Sub, { onOpenChange: resetSubSearch, children: [
|
|
109
|
+
/* @__PURE__ */ jsxs(DropdownMenu.SubTrigger, { children: [
|
|
110
|
+
/* @__PURE__ */ jsx("span", { className: cn("truncate"), children: cat.label }),
|
|
111
|
+
selectedCount > 0 && /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-ui-sm text-accent1"), children: selectedCount })
|
|
112
|
+
] }),
|
|
113
|
+
/* @__PURE__ */ jsxs(DropdownMenu.SubContent, { className: cn("max-h-[20rem]"), children: [
|
|
114
|
+
cat.values.length >= searchThreshold && /* @__PURE__ */ jsx(SubMenuSearch, { value: subSearch, onChange: setSubSearch, label: `Search ${cat.label.toLowerCase()}` }),
|
|
115
|
+
mode === "single" ? /* @__PURE__ */ jsx(DropdownMenu.RadioGroup, { value: selected[0] ?? "", onValueChange: (val) => handleSelect(cat.id, val, mode), children: cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsx(DropdownMenu.RadioItem, { value: v.value, children: /* @__PURE__ */ jsx("span", { className: cn("truncate"), children: v.label }) }, v.value)) }) : cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsx(
|
|
116
|
+
DropdownMenu.CheckboxItem,
|
|
117
|
+
{
|
|
118
|
+
checked: selected.includes(v.value),
|
|
119
|
+
onCheckedChange: () => handleSelect(cat.id, v.value, mode),
|
|
120
|
+
onSelect: (e) => e.preventDefault(),
|
|
121
|
+
children: /* @__PURE__ */ jsx("span", { className: cn("truncate"), children: v.label })
|
|
122
|
+
},
|
|
123
|
+
v.value
|
|
124
|
+
))
|
|
125
|
+
] })
|
|
126
|
+
] }, cat.id);
|
|
127
|
+
};
|
|
128
|
+
return /* @__PURE__ */ jsxs(DropdownMenu, { modal: false, children: [
|
|
129
|
+
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", disabled, size: "md", children: [
|
|
130
|
+
/* @__PURE__ */ jsx(FilterIcon, {}),
|
|
131
|
+
label,
|
|
132
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsx(
|
|
133
|
+
"span",
|
|
134
|
+
{
|
|
135
|
+
className: cn(
|
|
136
|
+
"ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"
|
|
137
|
+
),
|
|
138
|
+
children: activeFilterCount
|
|
139
|
+
}
|
|
140
|
+
)
|
|
141
|
+
] }) }),
|
|
142
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Content, { align, className: cn("min-w-[12rem]"), children: [
|
|
143
|
+
/* @__PURE__ */ jsx("div", { className: cn("px-2 pb-2"), children: /* @__PURE__ */ jsxs(
|
|
144
|
+
"div",
|
|
145
|
+
{
|
|
146
|
+
className: cn(
|
|
147
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
148
|
+
"focus-within:border-neutral2"
|
|
149
|
+
),
|
|
150
|
+
children: [
|
|
151
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
152
|
+
/* @__PURE__ */ jsx(
|
|
153
|
+
"input",
|
|
154
|
+
{
|
|
155
|
+
type: "text",
|
|
156
|
+
placeholder: "Search filters...",
|
|
157
|
+
"aria-label": "Search filters",
|
|
158
|
+
value: filterSearch,
|
|
159
|
+
onChange: (e) => setFilterSearch(e.target.value),
|
|
160
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
161
|
+
className: cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
162
|
+
}
|
|
163
|
+
)
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
) }),
|
|
167
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
168
|
+
grouped.map((group) => {
|
|
169
|
+
if (group.items.length === 1 && !group.label) {
|
|
170
|
+
return renderCategory(group.items[0]);
|
|
171
|
+
}
|
|
172
|
+
if (group.label && group.items.length === 1) {
|
|
173
|
+
return renderCategory(group.items[0]);
|
|
174
|
+
}
|
|
175
|
+
return /* @__PURE__ */ jsxs(DropdownMenu.Sub, { children: [
|
|
176
|
+
/* @__PURE__ */ jsx(DropdownMenu.SubTrigger, { children: group.label }),
|
|
177
|
+
/* @__PURE__ */ jsx(DropdownMenu.SubContent, { className: cn("max-h-[20rem]"), children: group.items.map((cat) => renderCategory(cat)) })
|
|
178
|
+
] }, group.key);
|
|
179
|
+
}),
|
|
180
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
181
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
182
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Item, { onSelect: handleClearAll, children: [
|
|
183
|
+
/* @__PURE__ */ jsx(XIcon, {}),
|
|
184
|
+
"Clear all filters"
|
|
185
|
+
] })
|
|
186
|
+
] })
|
|
187
|
+
] })
|
|
188
|
+
] });
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { SelectDataFilter as S };
|
|
192
|
+
//# sourceMappingURL=select-data-filter-Cb6Exh7H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-data-filter-Cb6Exh7H.js","sources":["../src/ds/components/DataFilter/select-data-filter.tsx"],"sourcesContent":["import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useState, useMemo, useCallback } from 'react';\n\nimport { Button } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** A single selectable value within a filter category */\nexport type SelectDataFilterValue = {\n value: string;\n label: string;\n};\n\n/** Selection mode for a filter category */\nexport type SelectDataFilterMode = 'single' | 'multi';\n\n/** A filter category that appears in the filter dropdown */\nexport type SelectDataFilterCategory = {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Optional group header (categories with the same group are nested under it) */\n group?: string;\n /** Available values to pick from */\n values: SelectDataFilterValue[];\n /** 'single' = radio, 'multi' = checkboxes. Defaults to 'multi'. */\n mode?: SelectDataFilterMode;\n};\n\n/** Current selected state: category id -> selected value(s) */\nexport type SelectDataFilterState = Record<string, string[]>;\n\nexport type SelectDataFilterProps = {\n /** Filter categories to display */\n categories: SelectDataFilterCategory[];\n /** Current filter selections */\n value: SelectDataFilterState;\n /** Called when selections change */\n onChange: (next: SelectDataFilterState) => void;\n /** Disable the trigger button */\n disabled?: boolean;\n /** Override the trigger label */\n label?: ReactNode;\n /** Content alignment */\n align?: 'start' | 'center' | 'end';\n /** Minimum items before showing search in a submenu */\n searchThreshold?: number;\n};\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\nconst SUBMENU_SEARCH_THRESHOLD = 6;\n\nfunction SubMenuSearch({\n value,\n onChange,\n label = 'Search',\n}: {\n value: string;\n onChange: (v: string) => void;\n label?: string;\n}) {\n return (\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n aria-label={label}\n value={value}\n onChange={e => onChange(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function SelectDataFilter({\n categories,\n value,\n onChange,\n disabled,\n label = 'Filter',\n align = 'end',\n searchThreshold = SUBMENU_SEARCH_THRESHOLD,\n}: SelectDataFilterProps) {\n const [filterSearch, setFilterSearch] = useState('');\n const [subSearch, setSubSearch] = useState('');\n\n const resetSubSearch = useCallback((open: boolean) => {\n if (!open) setSubSearch('');\n }, []);\n\n // Count active filters\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const selections of Object.values(value)) {\n if (selections.length > 0) count++;\n }\n return count;\n }, [value]);\n\n // Group categories\n const grouped = useMemo(() => {\n const q = filterSearch.toLowerCase();\n const groups: { key: string; label?: string; items: SelectDataFilterCategory[] }[] = [];\n const groupMap = new Map<string, SelectDataFilterCategory[]>();\n const ungrouped: SelectDataFilterCategory[] = [];\n\n for (const cat of categories) {\n if (cat.values.length === 0) continue;\n // Filter by search\n if (q) {\n const matchesLabel = cat.label.toLowerCase().includes(q);\n const matchesValues = cat.values.some(v => v.label.toLowerCase().includes(q));\n if (!matchesLabel && !matchesValues) continue;\n }\n if (cat.group) {\n let items = groupMap.get(cat.group);\n if (!items) {\n items = [];\n groupMap.set(cat.group, items);\n }\n items.push(cat);\n } else {\n ungrouped.push(cat);\n }\n }\n\n // Ungrouped items first\n for (const cat of ungrouped) {\n groups.push({ key: cat.id, items: [cat] });\n }\n // Then grouped\n for (const [groupLabel, items] of groupMap) {\n groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });\n }\n\n return groups;\n }, [categories, filterSearch]);\n\n const handleSelect = (categoryId: string, selectedValue: string, mode: SelectDataFilterMode) => {\n const current = value[categoryId] ?? [];\n let next: string[];\n\n if (mode === 'single') {\n next = current.includes(selectedValue) ? [] : [selectedValue];\n } else {\n next = current.includes(selectedValue) ? current.filter(v => v !== selectedValue) : [...current, selectedValue];\n }\n\n onChange({ ...value, [categoryId]: next });\n };\n\n const handleClearAll = () => {\n onChange({});\n };\n\n const renderCategory = (cat: SelectDataFilterCategory) => {\n const mode = cat.mode ?? 'multi';\n const selected = value[cat.id] ?? [];\n const selectedCount = selected.length;\n\n return (\n <DropdownMenu.Sub key={cat.id} onOpenChange={resetSubSearch}>\n <DropdownMenu.SubTrigger>\n <span className={cn('truncate')}>{cat.label}</span>\n {selectedCount > 0 && <span className={cn('ml-auto text-ui-sm text-accent1')}>{selectedCount}</span>}\n </DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {cat.values.length >= searchThreshold && (\n <SubMenuSearch value={subSearch} onChange={setSubSearch} label={`Search ${cat.label.toLowerCase()}`} />\n )}\n {mode === 'single' ? (\n <DropdownMenu.RadioGroup value={selected[0] ?? ''} onValueChange={val => handleSelect(cat.id, val, mode)}>\n {cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.RadioItem key={v.value} value={v.value}>\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n ) : (\n cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={() => handleSelect(cat.id, v.value, mode)}\n onSelect={e => e.preventDefault()}\n >\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.CheckboxItem>\n ))\n )}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n };\n\n return (\n <DropdownMenu modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant=\"outline\" disabled={disabled} size=\"md\">\n <FilterIcon />\n {label}\n {activeFilterCount > 0 && (\n <span\n className={cn(\n 'ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5',\n )}\n >\n {activeFilterCount}\n </span>\n )}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align={align} className={cn('min-w-[12rem]')}>\n {/* Search */}\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search filters...\"\n aria-label=\"Search filters\"\n value={filterSearch}\n onChange={e => setFilterSearch(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n\n <DropdownMenu.Separator />\n\n {grouped.map(group => {\n if (group.items.length === 1 && !group.label) {\n return renderCategory(group.items[0]);\n }\n\n if (group.label && group.items.length === 1) {\n // Single item in a named group — render directly with group as context\n return renderCategory(group.items[0]);\n }\n\n // Multiple items under a group label — nest under a sub-trigger\n return (\n <DropdownMenu.Sub key={group.key}>\n <DropdownMenu.SubTrigger>{group.label}</DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {group.items.map(cat => renderCategory(cat))}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n })}\n\n {/* Clear all */}\n {activeFilterCount > 0 && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item onSelect={handleClearAll}>\n <XIcon />\n Clear all filters\n </DropdownMenu.Item>\n </>\n )}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { F as FieldBlock } from './field-block-CpRBHzQO.js';
|
|
3
|
+
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-CFB6QZ9B.js';
|
|
4
|
+
import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
|
|
5
|
+
|
|
6
|
+
function SelectFieldBlock({
|
|
7
|
+
name,
|
|
8
|
+
helpText,
|
|
9
|
+
errorMsg,
|
|
10
|
+
required = false,
|
|
11
|
+
disabled = false,
|
|
12
|
+
size = "md",
|
|
13
|
+
value,
|
|
14
|
+
label,
|
|
15
|
+
labelIsHidden = false,
|
|
16
|
+
layout = "vertical",
|
|
17
|
+
labelColumnWidth,
|
|
18
|
+
options,
|
|
19
|
+
placeholder = "Select an option",
|
|
20
|
+
onValueChange,
|
|
21
|
+
className
|
|
22
|
+
}) {
|
|
23
|
+
return /* @__PURE__ */ jsxs(FieldBlock.Layout, { layout, labelColumnWidth, className, children: [
|
|
24
|
+
layout === "horizontal" ? /* @__PURE__ */ jsx(FieldBlock.Column, { children: /* @__PURE__ */ jsx(FieldBlock.Label, { name, required, children: labelIsHidden ? /* @__PURE__ */ jsx(VisuallyHidden, { children: label }) : label }) }) : null,
|
|
25
|
+
/* @__PURE__ */ jsxs(FieldBlock.Column, { children: [
|
|
26
|
+
layout === "vertical" && label && !labelIsHidden ? /* @__PURE__ */ jsx(FieldBlock.Label, { name, required, children: label }) : null,
|
|
27
|
+
/* @__PURE__ */ jsxs(
|
|
28
|
+
Select,
|
|
29
|
+
{
|
|
30
|
+
"aria-label": labelIsHidden ? label : void 0,
|
|
31
|
+
name,
|
|
32
|
+
value,
|
|
33
|
+
onValueChange,
|
|
34
|
+
disabled,
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ jsx(SelectTrigger, { size, children: /* @__PURE__ */ jsx(SelectValue, { placeholder }) }),
|
|
37
|
+
/* @__PURE__ */ jsx(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
helpText && /* @__PURE__ */ jsx(FieldBlock.HelpText, { children: helpText }),
|
|
42
|
+
errorMsg && /* @__PURE__ */ jsx(FieldBlock.ErrorMsg, { children: errorMsg })
|
|
43
|
+
] })
|
|
44
|
+
] });
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { SelectFieldBlock as S };
|
|
48
|
+
//# sourceMappingURL=select-field-block-C1I1FLvQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-field-block-C1I1FLvQ.js","sources":["../src/ds/components/FormFieldBlocks/fields/select-field-block.tsx"],"sourcesContent":["import type { SelectTriggerProps } from '../../Select/select';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type SelectFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Pick<FieldBlockLabelProps, 'name' | 'required'> & {\n testId?: string;\n label?: string | null;\n labelIsHidden?: boolean;\n labelSize?: FieldBlockLabelProps['size'];\n disabled?: boolean;\n value?: string;\n options: { value: string; label: string }[];\n placeholder?: string;\n onValueChange: (value: string) => void;\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n error?: boolean;\n className?: string;\n size?: SelectTriggerProps['size'];\n };\n\nexport function SelectFieldBlock({\n name,\n helpText,\n errorMsg,\n required = false,\n disabled = false,\n size = 'md',\n value,\n label,\n labelIsHidden = false,\n layout = 'vertical',\n labelColumnWidth,\n options,\n placeholder = 'Select an option',\n onValueChange,\n className,\n}: SelectFieldBlockProps) {\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {layout === 'vertical' && label && !labelIsHidden ? (\n <FieldBlock.Label name={name} required={required}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <Select\n aria-label={labelIsHidden ? label : undefined}\n name={name}\n value={value}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectTrigger size={size}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map(option => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {helpText && <FieldBlock.HelpText>{helpText}</FieldBlock.HelpText>}\n {errorMsg && <FieldBlock.ErrorMsg>{errorMsg}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":[],"mappings":";;;;;AA2BO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,MAAA,GAAS,UAAA;AAAA,EACT,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,kBAAA;AAAA,EACd,aAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,4BACG,UAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,+BACV,GAAA,CAAC,UAAA,CAAW,QAAX,EACC,QAAA,kBAAA,GAAA,CAAC,WAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,0CAAgB,GAAA,CAAC,cAAA,EAAA,EAAgB,iBAAM,CAAA,GAAoB,KAAA,EAC9D,GACF,CAAA,GACE,IAAA;AAAA,oBACJ,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,KAAW,UAAA,IAAc,KAAA,IAAS,CAAC,aAAA,mBAClC,GAAA,CAAC,UAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA;AAAA,sBACJ,IAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,YAAA,EAAY,gBAAgB,KAAA,GAAQ,MAAA;AAAA,UACpC,IAAA;AAAA,UACA,KAAA;AAAA,UACA,aAAA;AAAA,UACA,QAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,aAAA,EAAA,EAAc,IAAA,EACb,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,aAA0B,CAAA,EACzC,CAAA;AAAA,4BACA,GAAA,CAAC,aAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,4BACX,GAAA,CAAC,UAAA,EAAA,EAA8B,KAAA,EAAO,MAAA,CAAO,OAC1C,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADO,MAAA,CAAO,KAExB,CACD,CAAA,EACH;AAAA;AAAA;AAAA,OACF;AAAA,MACC,QAAA,oBAAY,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,MAC3C,QAAA,oBAAY,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS;AAAA,KAAA,EAC9C;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const fieldBlock = require('./field-block-BR_ZD9QO.cjs');
|
|
5
|
+
const select = require('./select-BxSmi19p.cjs');
|
|
6
|
+
const reactVisuallyHidden = require('@radix-ui/react-visually-hidden');
|
|
7
|
+
|
|
8
|
+
function SelectFieldBlock({
|
|
9
|
+
name,
|
|
10
|
+
helpText,
|
|
11
|
+
errorMsg,
|
|
12
|
+
required = false,
|
|
13
|
+
disabled = false,
|
|
14
|
+
size = "md",
|
|
15
|
+
value,
|
|
16
|
+
label,
|
|
17
|
+
labelIsHidden = false,
|
|
18
|
+
layout = "vertical",
|
|
19
|
+
labelColumnWidth,
|
|
20
|
+
options,
|
|
21
|
+
placeholder = "Select an option",
|
|
22
|
+
onValueChange,
|
|
23
|
+
className
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(fieldBlock.FieldBlock.Layout, { layout, labelColumnWidth, className, children: [
|
|
26
|
+
layout === "horizontal" ? /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.Column, { children: /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.Label, { name, required, children: labelIsHidden ? /* @__PURE__ */ jsxRuntime.jsx(reactVisuallyHidden.VisuallyHidden, { children: label }) : label }) }) : null,
|
|
27
|
+
/* @__PURE__ */ jsxRuntime.jsxs(fieldBlock.FieldBlock.Column, { children: [
|
|
28
|
+
layout === "vertical" && label && !labelIsHidden ? /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.Label, { name, required, children: label }) : null,
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
30
|
+
select.Select,
|
|
31
|
+
{
|
|
32
|
+
"aria-label": labelIsHidden ? label : void 0,
|
|
33
|
+
name,
|
|
34
|
+
value,
|
|
35
|
+
onValueChange,
|
|
36
|
+
disabled,
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx(select.SelectTrigger, { size, children: /* @__PURE__ */ jsxRuntime.jsx(select.SelectValue, { placeholder }) }),
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx(select.SelectContent, { children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
helpText && /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.HelpText, { children: helpText }),
|
|
44
|
+
errorMsg && /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.ErrorMsg, { children: errorMsg })
|
|
45
|
+
] })
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
exports.SelectFieldBlock = SelectFieldBlock;
|
|
50
|
+
//# sourceMappingURL=select-field-block-Cb5-7wDy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-field-block-Cb5-7wDy.cjs","sources":["../src/ds/components/FormFieldBlocks/fields/select-field-block.tsx"],"sourcesContent":["import type { SelectTriggerProps } from '../../Select/select';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type SelectFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Pick<FieldBlockLabelProps, 'name' | 'required'> & {\n testId?: string;\n label?: string | null;\n labelIsHidden?: boolean;\n labelSize?: FieldBlockLabelProps['size'];\n disabled?: boolean;\n value?: string;\n options: { value: string; label: string }[];\n placeholder?: string;\n onValueChange: (value: string) => void;\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n error?: boolean;\n className?: string;\n size?: SelectTriggerProps['size'];\n };\n\nexport function SelectFieldBlock({\n name,\n helpText,\n errorMsg,\n required = false,\n disabled = false,\n size = 'md',\n value,\n label,\n labelIsHidden = false,\n layout = 'vertical',\n labelColumnWidth,\n options,\n placeholder = 'Select an option',\n onValueChange,\n className,\n}: SelectFieldBlockProps) {\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {layout === 'vertical' && label && !labelIsHidden ? (\n <FieldBlock.Label name={name} required={required}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <Select\n aria-label={labelIsHidden ? label : undefined}\n name={name}\n value={value}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectTrigger size={size}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map(option => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {helpText && <FieldBlock.HelpText>{helpText}</FieldBlock.HelpText>}\n {errorMsg && <FieldBlock.ErrorMsg>{errorMsg}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":["FieldBlock","jsx","VisuallyHidden","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectItem"],"mappings":";;;;;;;AA2BO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,MAAA,GAAS,UAAA;AAAA,EACT,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,kBAAA;AAAA,EACd,aAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,uCACGA,qBAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,+BACVC,cAAA,CAACD,qBAAA,CAAW,QAAX,EACC,QAAA,kBAAAC,cAAA,CAACD,sBAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,0CAAgBC,cAAA,CAACC,kCAAA,EAAA,EAAgB,iBAAM,CAAA,GAAoB,KAAA,EAC9D,GACF,CAAA,GACE,IAAA;AAAA,oBACJC,eAAA,CAACH,qBAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,KAAW,UAAA,IAAc,KAAA,IAAS,CAAC,aAAA,mBAClCC,cAAA,CAACD,qBAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA;AAAA,sBACJG,eAAA;AAAA,QAACC,aAAA;AAAA,QAAA;AAAA,UACC,YAAA,EAAY,gBAAgB,KAAA,GAAQ,MAAA;AAAA,UACpC,IAAA;AAAA,UACA,KAAA;AAAA,UACA,aAAA;AAAA,UACA,QAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAH,cAAA,CAACI,oBAAA,EAAA,EAAc,IAAA,EACb,QAAA,kBAAAJ,cAAA,CAACK,kBAAA,EAAA,EAAY,aAA0B,CAAA,EACzC,CAAA;AAAA,4BACAL,cAAA,CAACM,oBAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,4BACXN,cAAA,CAACO,iBAAA,EAAA,EAA8B,KAAA,EAAO,MAAA,CAAO,OAC1C,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADO,MAAA,CAAO,KAExB,CACD,CAAA,EACH;AAAA;AAAA;AAAA,OACF;AAAA,MACC,QAAA,oBAAYP,cAAA,CAACD,qBAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,MAC3C,QAAA,oBAAYC,cAAA,CAACD,qBAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS;AAAA,KAAA,EAC9C;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|