@refraction-ui/react 0.19.1 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-533MCMSU.js +2355 -0
- package/dist/chunk-533MCMSU.js.map +7 -0
- package/dist/chunk-AMK4VCBG.js +250 -0
- package/dist/chunk-AMK4VCBG.js.map +7 -0
- package/dist/chunk-BOLFYVI6.js +90 -0
- package/dist/chunk-BOLFYVI6.js.map +7 -0
- package/dist/chunk-F7B64KT3.js +187 -0
- package/dist/chunk-F7B64KT3.js.map +7 -0
- package/dist/chunk-FD37DFCC.js +77 -0
- package/dist/chunk-FD37DFCC.js.map +7 -0
- package/dist/chunk-H54FLNAF.js +132 -0
- package/dist/chunk-H54FLNAF.js.map +7 -0
- package/dist/chunk-INP46354.js +664 -0
- package/dist/chunk-INP46354.js.map +7 -0
- package/dist/chunk-ONACRMG4.js +116 -0
- package/dist/chunk-ONACRMG4.js.map +7 -0
- package/dist/chunk-SDZ3LROZ.js +7 -0
- package/dist/chunk-SDZ3LROZ.js.map +7 -0
- package/dist/chunk-TOZBR4GL.js +154 -0
- package/dist/chunk-TOZBR4GL.js.map +7 -0
- package/dist/chunk-UNEM2TRI.js +225 -0
- package/dist/chunk-UNEM2TRI.js.map +7 -0
- package/dist/chunk-VK3EQ34F.js +92 -0
- package/dist/chunk-VK3EQ34F.js.map +7 -0
- package/dist/chunk-WK2IIUFO.js +316 -0
- package/dist/chunk-WK2IIUFO.js.map +7 -0
- package/dist/chunk-WSPJTQAV.js +59 -0
- package/dist/chunk-WSPJTQAV.js.map +7 -0
- package/dist/chunk-XWP763SH.js +3 -2
- package/dist/chunk-XWP763SH.js.map +7 -1
- package/dist/chunk-Y2FNNAIL.js +80 -0
- package/dist/chunk-Y2FNNAIL.js.map +1 -0
- package/dist/{chunk-4A4BW3GR.js → chunk-ZF3OHCGV.js} +28 -5
- package/dist/chunk-ZF3OHCGV.js.map +7 -0
- package/dist/form.cjs +5 -11
- package/dist/form.cjs.map +1 -1
- package/dist/form.js +6 -12
- package/dist/form.js.map +1 -1
- package/dist/index.cjs +2879 -33936
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +126 -28780
- package/dist/internal/react-app-shell/index.d.cts +2 -22
- package/dist/internal/react-app-shell/index.d.ts +2 -22
- package/dist/internal/react-badge/index.d.cts +5 -0
- package/dist/internal/react-badge/index.d.ts +5 -0
- package/dist/internal/react-callout/index.d.cts +4 -0
- package/dist/internal/react-callout/index.d.ts +4 -0
- package/dist/internal/react-card/index.d.cts +8 -1
- package/dist/internal/react-card/index.d.ts +8 -1
- package/dist/internal/react-collapsible/index.d.cts +0 -3
- package/dist/internal/react-collapsible/index.d.ts +0 -3
- package/dist/internal/react-combobox/index.d.cts +0 -3
- package/dist/internal/react-combobox/index.d.ts +0 -3
- package/dist/internal/react-command/index.d.cts +0 -3
- package/dist/internal/react-command/index.d.ts +0 -3
- package/dist/internal/react-data-table/index.d.cts +0 -3
- package/dist/internal/react-data-table/index.d.ts +0 -3
- package/dist/internal/react-dialog/index.d.cts +0 -3
- package/dist/internal/react-dialog/index.d.ts +0 -3
- package/dist/internal/react-dropdown-menu/index.d.cts +0 -3
- package/dist/internal/react-dropdown-menu/index.d.ts +0 -3
- package/dist/internal/react-feedback-dialog/index.d.cts +0 -3
- package/dist/internal/react-feedback-dialog/index.d.ts +0 -3
- package/dist/internal/react-form/index.d.cts +2 -21
- package/dist/internal/react-form/index.d.ts +2 -21
- package/dist/internal/react-keyboard-shortcut/index.d.cts +0 -6
- package/dist/internal/react-keyboard-shortcut/index.d.ts +0 -6
- package/dist/internal/react-link-card/index.d.cts +8 -2
- package/dist/internal/react-link-card/index.d.ts +8 -2
- package/dist/internal/react-popover/index.d.cts +0 -3
- package/dist/internal/react-popover/index.d.ts +0 -3
- package/dist/internal/react-sheet/index.d.cts +0 -3
- package/dist/internal/react-sheet/index.d.ts +0 -3
- package/dist/internal/react-slot/index.d.cts +23 -0
- package/dist/internal/react-slot/index.d.ts +23 -0
- package/dist/internal/react-toast/index.d.cts +0 -3
- package/dist/internal/react-toast/index.d.ts +0 -3
- package/dist/internal/react-tooltip/index.d.cts +0 -3
- package/dist/internal/react-tooltip/index.d.ts +0 -3
- package/dist/react-accordion.js +125 -0
- package/dist/react-accordion.js.map +7 -0
- package/dist/react-ai.js +257 -0
- package/dist/react-ai.js.map +7 -0
- package/dist/react-analytics.js +1698 -0
- package/dist/react-analytics.js.map +7 -0
- package/dist/react-animated-text.js +164 -0
- package/dist/react-animated-text.js.map +7 -0
- package/dist/react-app-shell.js +631 -0
- package/dist/react-app-shell.js.map +7 -0
- package/dist/react-audience-feature-card.js +53 -0
- package/dist/react-audience-feature-card.js.map +7 -0
- package/dist/react-audio-room.js +166 -0
- package/dist/react-audio-room.js.map +7 -0
- package/dist/react-auth.js +211 -0
- package/dist/react-auth.js.map +7 -0
- package/dist/react-avatar-group.js +154 -0
- package/dist/react-avatar-group.js.map +7 -0
- package/dist/react-avatar.js +168 -0
- package/dist/react-avatar.js.map +7 -0
- package/dist/react-badge.js +86 -0
- package/dist/react-badge.js.map +7 -0
- package/dist/react-bottom-nav.js +67 -0
- package/dist/react-bottom-nav.js.map +7 -0
- package/dist/react-brand-network-cell.js +92 -0
- package/dist/react-brand-network-cell.js.map +7 -0
- package/dist/react-breadcrumbs.js +104 -0
- package/dist/react-breadcrumbs.js.map +7 -0
- package/dist/react-browser-chrome-mock.js +89 -0
- package/dist/react-browser-chrome-mock.js.map +7 -0
- package/dist/react-button.js +13 -0
- package/dist/react-button.js.map +7 -0
- package/dist/react-calendar.js +301 -0
- package/dist/react-calendar.js.map +7 -0
- package/dist/react-call-controls.js +113 -0
- package/dist/react-call-controls.js.map +7 -0
- package/dist/react-callout.js +152 -0
- package/dist/react-callout.js.map +7 -0
- package/dist/react-card-grid.js +34 -0
- package/dist/react-card-grid.js.map +7 -0
- package/dist/react-card.js +200 -0
- package/dist/react-card.js.map +7 -0
- package/dist/react-carousel.js +132 -0
- package/dist/react-carousel.js.map +7 -0
- package/dist/react-charts.js +509 -0
- package/dist/react-charts.js.map +7 -0
- package/dist/react-checkbox.js +156 -0
- package/dist/react-checkbox.js.map +7 -0
- package/dist/react-checklist.js +168 -0
- package/dist/react-checklist.js.map +7 -0
- package/dist/react-code-block.js +78 -0
- package/dist/react-code-block.js.map +7 -0
- package/dist/react-code-editor.js +184 -0
- package/dist/react-code-editor.js.map +7 -0
- package/dist/react-collapsible.js +192 -0
- package/dist/react-collapsible.js.map +7 -0
- package/dist/react-combobox.js +609 -0
- package/dist/react-combobox.js.map +7 -0
- package/dist/react-command-input.js +202 -0
- package/dist/react-command-input.js.map +7 -0
- package/dist/react-command.js +364 -0
- package/dist/react-command.js.map +7 -0
- package/dist/react-composer.js +2036 -0
- package/dist/react-composer.js.map +7 -0
- package/dist/react-content-protection.js +133 -0
- package/dist/react-content-protection.js.map +7 -0
- package/dist/react-conversation.js +1226 -0
- package/dist/react-conversation.js.map +7 -0
- package/dist/react-cookie-consent.js +291 -0
- package/dist/react-cookie-consent.js.map +7 -0
- package/dist/react-data-table.js +310 -0
- package/dist/react-data-table.js.map +7 -0
- package/dist/react-date-picker.js +95 -0
- package/dist/react-date-picker.js.map +7 -0
- package/dist/react-device-frame.js +137 -0
- package/dist/react-device-frame.js.map +7 -0
- package/dist/react-dialog.js +218 -0
- package/dist/react-dialog.js.map +7 -0
- package/dist/react-diff-viewer.js +460 -0
- package/dist/react-diff-viewer.js.map +7 -0
- package/dist/react-dropdown-menu.js +292 -0
- package/dist/react-dropdown-menu.js.map +7 -0
- package/dist/react-editor-status-bar.js +148 -0
- package/dist/react-editor-status-bar.js.map +7 -0
- package/dist/react-editor-tabs.js +159 -0
- package/dist/react-editor-tabs.js.map +7 -0
- package/dist/react-emoji-picker.js +238 -0
- package/dist/react-emoji-picker.js.map +7 -0
- package/dist/react-empty-state.js +90 -0
- package/dist/react-empty-state.js.map +7 -0
- package/dist/react-feedback-dialog.js +275 -0
- package/dist/react-feedback-dialog.js.map +7 -0
- package/dist/react-file-tree.js +376 -0
- package/dist/react-file-tree.js.map +7 -0
- package/dist/react-file-upload.js +360 -0
- package/dist/react-file-upload.js.map +7 -0
- package/dist/react-floating-reactions.js +124 -0
- package/dist/react-floating-reactions.js.map +7 -0
- package/dist/react-flow-editor.js +198 -0
- package/dist/react-flow-editor.js.map +7 -0
- package/dist/react-footer.js +67 -0
- package/dist/react-footer.js.map +7 -0
- package/dist/react-graph-view.js +197 -0
- package/dist/react-graph-view.js.map +7 -0
- package/dist/react-icon-system.js +9 -0
- package/dist/react-icon-system.js.map +7 -0
- package/dist/react-infinite-canvas.js +8 -0
- package/dist/react-infinite-canvas.js.map +7 -0
- package/dist/react-inline-editor.js +216 -0
- package/dist/react-inline-editor.js.map +7 -0
- package/dist/react-input-group.js +150 -0
- package/dist/react-input-group.js.map +7 -0
- package/dist/react-input.js +10 -0
- package/dist/react-input.js.map +7 -0
- package/dist/react-install-prompt.js +132 -0
- package/dist/react-install-prompt.js.map +7 -0
- package/dist/react-kanban-board.js +198 -0
- package/dist/react-kanban-board.js.map +7 -0
- package/dist/react-keyboard-shortcut.js +36 -0
- package/dist/react-keyboard-shortcut.js.map +7 -0
- package/dist/react-language-selector.js +311 -0
- package/dist/react-language-selector.js.map +7 -0
- package/dist/react-link-card.js +48 -0
- package/dist/react-link-card.js.map +7 -0
- package/dist/react-live-captions.js +92 -0
- package/dist/react-live-captions.js.map +7 -0
- package/dist/react-live-cursors.js +145 -0
- package/dist/react-live-cursors.js.map +7 -0
- package/dist/react-live-transcript.js +117 -0
- package/dist/react-live-transcript.js.map +7 -0
- package/dist/react-location-selector.js +252 -0
- package/dist/react-location-selector.js.map +7 -0
- package/dist/react-logger.js +415 -0
- package/dist/react-logger.js.map +7 -0
- package/dist/react-markdown-renderer.js +12 -0
- package/dist/react-markdown-renderer.js.map +7 -0
- package/dist/react-marquee-strip.js +62 -0
- package/dist/react-marquee-strip.js.map +7 -0
- package/dist/react-mascot.js +367 -0
- package/dist/react-mascot.js.map +7 -0
- package/dist/react-mastery-bar.js +97 -0
- package/dist/react-mastery-bar.js.map +7 -0
- package/dist/react-mini-map.js +207 -0
- package/dist/react-mini-map.js.map +7 -0
- package/dist/react-mobile-nav.js +216 -0
- package/dist/react-mobile-nav.js.map +7 -0
- package/dist/react-navbar.js +96 -0
- package/dist/react-navbar.js.map +7 -0
- package/dist/react-numbered-steps.js +67 -0
- package/dist/react-numbered-steps.js.map +7 -0
- package/dist/react-otp-input.js +318 -0
- package/dist/react-otp-input.js.map +7 -0
- package/dist/react-pagination.js +199 -0
- package/dist/react-pagination.js.map +7 -0
- package/dist/react-password-input.js +104 -0
- package/dist/react-password-input.js.map +7 -0
- package/dist/react-payment.js +81 -0
- package/dist/react-payment.js.map +7 -0
- package/dist/react-popover.js +176 -0
- package/dist/react-popover.js.map +7 -0
- package/dist/react-pre-call-lobby.js +309 -0
- package/dist/react-pre-call-lobby.js.map +7 -0
- package/dist/react-presence-indicator.js +86 -0
- package/dist/react-presence-indicator.js.map +7 -0
- package/dist/react-pricing-card.js +142 -0
- package/dist/react-pricing-card.js.map +7 -0
- package/dist/react-progress-display.js +188 -0
- package/dist/react-progress-display.js.map +7 -0
- package/dist/react-radial-gauge.js +193 -0
- package/dist/react-radial-gauge.js.map +7 -0
- package/dist/react-radio.js +169 -0
- package/dist/react-radio.js.map +7 -0
- package/dist/react-rating-scale.js +171 -0
- package/dist/react-rating-scale.js.map +7 -0
- package/dist/react-reaction-bar.js +111 -0
- package/dist/react-reaction-bar.js.map +7 -0
- package/dist/react-resizable-layout.js +298 -0
- package/dist/react-resizable-layout.js.map +7 -0
- package/dist/react-rich-editor.js +1 -0
- package/dist/react-rich-editor.js.map +7 -0
- package/dist/react-search-bar.js +285 -0
- package/dist/react-search-bar.js.map +7 -0
- package/dist/react-section-head.js +65 -0
- package/dist/react-section-head.js.map +7 -0
- package/dist/react-segmented-control.js +215 -0
- package/dist/react-segmented-control.js.map +7 -0
- package/dist/react-select.js +389 -0
- package/dist/react-select.js.map +7 -0
- package/dist/react-separator.js +86 -0
- package/dist/react-separator.js.map +7 -0
- package/dist/react-sheet.js +310 -0
- package/dist/react-sheet.js.map +7 -0
- package/dist/react-sidebar.js +100 -0
- package/dist/react-sidebar.js.map +7 -0
- package/dist/react-skeleton.js +91 -0
- package/dist/react-skeleton.js.map +7 -0
- package/dist/react-skip-to-content.js +38 -0
- package/dist/react-skip-to-content.js.map +7 -0
- package/dist/react-slide-viewer.js +264 -0
- package/dist/react-slide-viewer.js.map +7 -0
- package/dist/react-slider.js +105 -0
- package/dist/react-slider.js.map +7 -0
- package/dist/react-slot-picker.js +184 -0
- package/dist/react-slot-picker.js.map +7 -0
- package/dist/react-slot.js +7 -0
- package/dist/react-slot.js.map +7 -0
- package/dist/react-social-auth-button.js +169 -0
- package/dist/react-social-auth-button.js.map +7 -0
- package/dist/react-sortable-list.js +204 -0
- package/dist/react-sortable-list.js.map +7 -0
- package/dist/react-stat-grid.js +69 -0
- package/dist/react-stat-grid.js.map +7 -0
- package/dist/react-status-indicator.js +117 -0
- package/dist/react-status-indicator.js.map +7 -0
- package/dist/react-steps.js +167 -0
- package/dist/react-steps.js.map +7 -0
- package/dist/react-sticky-note.js +131 -0
- package/dist/react-sticky-note.js.map +7 -0
- package/dist/react-switch.js +139 -0
- package/dist/react-switch.js.map +7 -0
- package/dist/react-table-of-contents.js +80 -0
- package/dist/react-table-of-contents.js.map +7 -0
- package/dist/react-tabs.js +230 -0
- package/dist/react-tabs.js.map +7 -0
- package/dist/react-terminal.js +101 -0
- package/dist/react-terminal.js.map +7 -0
- package/dist/react-test-results.js +158 -0
- package/dist/react-test-results.js.map +7 -0
- package/dist/react-textarea.js +89 -0
- package/dist/react-textarea.js.map +7 -0
- package/dist/react-thread-view.js +139 -0
- package/dist/react-thread-view.js.map +7 -0
- package/dist/react-timeline.js +153 -0
- package/dist/react-timeline.js.map +7 -0
- package/dist/react-toast.js +253 -0
- package/dist/react-toast.js.map +7 -0
- package/dist/react-tooltip.js +221 -0
- package/dist/react-tooltip.js.map +7 -0
- package/dist/react-version-selector.js +270 -0
- package/dist/react-version-selector.js.map +7 -0
- package/dist/react-video-grid.js +129 -0
- package/dist/react-video-grid.js.map +7 -0
- package/dist/react-video-player.js +206 -0
- package/dist/react-video-player.js.map +7 -0
- package/dist/react-video-tile.js +8 -0
- package/dist/react-video-tile.js.map +7 -0
- package/dist/react-voice-pill.js +314 -0
- package/dist/react-voice-pill.js.map +7 -0
- package/dist/react-waveform.js +558 -0
- package/dist/react-waveform.js.map +7 -0
- package/dist/react-wizard.js +337 -0
- package/dist/react-wizard.js.map +7 -0
- package/dist/styles.css +7 -0
- package/dist/theme.js +1 -1
- package/package.json +3 -2
- package/dist/applicationinsights-web-H7OBLIVJ.js +0 -23393
- package/dist/applicationinsights-web-H7OBLIVJ.js.map +0 -1
- package/dist/chunk-4A4BW3GR.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/module-X3HTTRQK.js +0 -6438
- package/dist/module-X3HTTRQK.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js", "../../../node_modules/.pnpm/state-local@1.0.7/node_modules/state-local/lib/es/state-local.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/config/index.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/curry.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/isObject.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/validators/index.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/compose.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js", "../../../node_modules/.pnpm/@monaco-editor+loader@1.7.0/node_modules/@monaco-editor/loader/lib/es/loader/index.js", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/DiffEditor/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/DiffEditor/DiffEditor.tsx", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/MonacoContainer/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/MonacoContainer/MonacoContainer.tsx", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/MonacoContainer/styles.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/Loading/Loading.tsx", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/Loading/styles.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/Loading/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/hooks/useMount/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/hooks/useUpdate/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/utils/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/hooks/useMonaco/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/Editor/index.ts", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/Editor/Editor.tsx", "../../../node_modules/.pnpm/@monaco-editor+react@4.7.0_monaco-editor@0.55.1_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@monaco-editor/react/src/hooks/usePrevious/index.ts"],
|
|
4
|
+
"sourcesContent": ["function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _unsupportedIterableToArray as unsupportedIterableToArray };\n", "function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n", "var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs'\n }\n};\n\nexport { config as default };\n", "function curry(fn) {\n return function curried() {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport { curry as default };\n", "function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport { isObject as default };\n", "import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n return config;\n}\n\n/**\n * logs deprecation message\n */\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport { validators as default, errorHandler, errorMessages };\n", "var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport { compose as default };\n", "import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport { merge as default };\n", "// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\n\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport { CANCELATION_MESSAGE, makeCancelable as default };\n", "import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\nvar _excluded = [\"monaco\"];\n\n/** the local state of the module */\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n }),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, _excluded);\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n return makeCancelable(wrapperPromise);\n}\n\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n loaderScript.onload = function () {\n return configureLoader();\n };\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n\n/**\n * configures the monaco loader\n */\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n require.config(state.config);\n require(['vs/editor/editor.main'], function (loaded) {\n var monaco = loaded.m /* for 0.53 & 0.54 */ || loaded /* for other versions */;\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n\n/**\n * store monaco instance in local state\n */\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport { loader as default };\n", "import loader from '@monaco-editor/loader';\nexport { loader };\n\nimport DiffEditor from './DiffEditor';\nexport * from './DiffEditor/types';\nexport { DiffEditor };\n\nimport useMonaco from './hooks/useMonaco';\nexport { useMonaco };\n\nimport Editor from './Editor';\nexport * from './Editor/types';\nexport { Editor };\nexport default Editor;\n\n// Monaco\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nexport type Monaco = typeof monaco;\n\n// Default themes\nexport type Theme = 'vs-dark' | 'light';\n", "import { memo } from 'react';\n\nimport DiffEditor from './DiffEditor';\n\nexport * from './types';\n\nexport default memo(DiffEditor);\n", "'use client';\n\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport loader from '@monaco-editor/loader';\n\nimport MonacoContainer from '../MonacoContainer';\nimport useMount from '../hooks/useMount';\nimport useUpdate from '../hooks/useUpdate';\nimport { noop, getOrCreateModel } from '../utils';\nimport { type DiffEditorProps, type MonacoDiffEditor } from './types';\nimport { type Monaco } from '..';\n\nfunction DiffEditor({\n original,\n modified,\n language,\n originalLanguage,\n modifiedLanguage,\n originalModelPath,\n modifiedModelPath,\n keepCurrentOriginalModel = false,\n keepCurrentModifiedModel = false,\n theme = 'light',\n loading = 'Loading...',\n options = {},\n height = '100%',\n width = '100%',\n className,\n wrapperProps = {},\n beforeMount = noop,\n onMount = noop,\n}: DiffEditorProps) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const editorRef = useRef<MonacoDiffEditor | null>(null);\n const monacoRef = useRef<Monaco | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n const preventCreation = useRef(false);\n\n useMount(() => {\n const cancelable = loader.init();\n\n cancelable\n .then((monaco) => (monacoRef.current = monaco) && setIsMonacoMounting(false))\n .catch(\n (error) =>\n error?.type !== 'cancelation' && console.error('Monaco initialization: error:', error),\n );\n\n return () => (editorRef.current ? disposeEditor() : cancelable.cancel());\n });\n\n useUpdate(\n () => {\n if (editorRef.current && monacoRef.current) {\n const originalEditor = editorRef.current.getOriginalEditor();\n const model = getOrCreateModel(\n monacoRef.current,\n original || '',\n originalLanguage || language || 'text',\n originalModelPath || '',\n );\n\n if (model !== originalEditor.getModel()) {\n originalEditor.setModel(model);\n }\n }\n },\n [originalModelPath],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n if (editorRef.current && monacoRef.current) {\n const modifiedEditor = editorRef.current.getModifiedEditor();\n const model = getOrCreateModel(\n monacoRef.current,\n modified || '',\n modifiedLanguage || language || 'text',\n modifiedModelPath || '',\n );\n\n if (model !== modifiedEditor.getModel()) {\n modifiedEditor.setModel(model);\n }\n }\n },\n [modifiedModelPath],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n const modifiedEditor = editorRef.current!.getModifiedEditor();\n if (modifiedEditor.getOption(monacoRef.current!.editor.EditorOption.readOnly)) {\n modifiedEditor.setValue(modified || '');\n } else {\n if (modified !== modifiedEditor.getValue()) {\n modifiedEditor.executeEdits('', [\n {\n range: modifiedEditor.getModel()!.getFullModelRange(),\n text: modified || '',\n forceMoveMarkers: true,\n },\n ]);\n\n modifiedEditor.pushUndoStop();\n }\n }\n },\n [modified],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n editorRef.current?.getModel()?.original.setValue(original || '');\n },\n [original],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n const { original, modified } = editorRef.current!.getModel()!;\n\n monacoRef.current!.editor.setModelLanguage(original, originalLanguage || language || 'text');\n monacoRef.current!.editor.setModelLanguage(modified, modifiedLanguage || language || 'text');\n },\n [language, originalLanguage, modifiedLanguage],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n monacoRef.current?.editor.setTheme(theme);\n },\n [theme],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n editorRef.current?.updateOptions(options);\n },\n [options],\n isEditorReady,\n );\n\n const setModels = useCallback(() => {\n if (!monacoRef.current) return;\n beforeMountRef.current(monacoRef.current);\n const originalModel = getOrCreateModel(\n monacoRef.current,\n original || '',\n originalLanguage || language || 'text',\n originalModelPath || '',\n );\n\n const modifiedModel = getOrCreateModel(\n monacoRef.current,\n modified || '',\n modifiedLanguage || language || 'text',\n modifiedModelPath || '',\n );\n\n editorRef.current?.setModel({\n original: originalModel,\n modified: modifiedModel,\n });\n }, [\n language,\n modified,\n modifiedLanguage,\n original,\n originalLanguage,\n originalModelPath,\n modifiedModelPath,\n ]);\n\n const createEditor = useCallback(() => {\n if (!preventCreation.current && containerRef.current) {\n editorRef.current = monacoRef.current!.editor.createDiffEditor(containerRef.current, {\n automaticLayout: true,\n ...options,\n });\n\n setModels();\n\n monacoRef.current?.editor.setTheme(theme);\n\n setIsEditorReady(true);\n preventCreation.current = true;\n }\n }, [options, theme, setModels]);\n\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current!, monacoRef.current!);\n }\n }, [isEditorReady]);\n\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]);\n\n function disposeEditor() {\n const models = editorRef.current?.getModel();\n\n if (!keepCurrentOriginalModel) {\n models?.original?.dispose();\n }\n\n if (!keepCurrentModifiedModel) {\n models?.modified?.dispose();\n }\n\n editorRef.current?.dispose();\n }\n\n return (\n <MonacoContainer\n width={width}\n height={height}\n isEditorReady={isEditorReady}\n loading={loading}\n _ref={containerRef}\n className={className}\n wrapperProps={wrapperProps}\n />\n );\n}\n\nexport default DiffEditor;\n", "import { memo } from 'react';\n\nimport MonacoContainer from './MonacoContainer';\n\nexport default memo(MonacoContainer);\n", "import React from 'react';\n\nimport styles from './styles';\nimport Loading from '../Loading';\nimport { type ContainerProps } from './types';\n\n// ** forwardref render functions do not support proptypes or defaultprops **\n// one of the reasons why we use a separate prop for passing ref instead of using forwardref\n\nfunction MonacoContainer({\n width,\n height,\n isEditorReady,\n loading,\n _ref,\n className,\n wrapperProps,\n}: ContainerProps) {\n return (\n <section style={{ ...styles.wrapper, width, height }} {...wrapperProps}>\n {!isEditorReady && <Loading>{loading}</Loading>}\n <div\n ref={_ref}\n style={{ ...styles.fullWidth, ...(!isEditorReady && styles.hide) }}\n className={className}\n />\n </section>\n );\n}\n\nexport default MonacoContainer;\n", "import { type CSSProperties } from 'react';\n\nconst styles: Record<string, CSSProperties> = {\n wrapper: {\n display: 'flex',\n position: 'relative',\n textAlign: 'initial',\n },\n fullWidth: {\n width: '100%',\n },\n hide: {\n display: 'none',\n },\n};\n\nexport default styles;\n", "import React, { type PropsWithChildren } from 'react';\n\nimport styles from './styles';\n\nfunction Loading({ children }: PropsWithChildren) {\n return <div style={styles.container}>{children}</div>;\n}\n\nexport default Loading;\n", "import { type CSSProperties } from 'react';\n\nconst styles: Record<string, CSSProperties> = {\n container: {\n display: 'flex',\n height: '100%',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n};\n\nexport default styles;\n", "import Loading from './Loading';\n\nexport default Loading;\n", "import { useEffect, type EffectCallback } from 'react';\n\nfunction useMount(effect: EffectCallback) {\n useEffect(effect, []);\n}\n\nexport default useMount;\n", "import { useEffect, useRef, type DependencyList, type EffectCallback } from 'react';\n\nfunction useUpdate(effect: EffectCallback, deps: DependencyList, applyChanges = true) {\n const isInitialMount = useRef(true);\n\n useEffect(\n isInitialMount.current || !applyChanges\n ? () => {\n isInitialMount.current = false;\n }\n : effect,\n deps,\n );\n}\n\nexport default useUpdate;\n", "import { type Monaco } from '..';\n\n/**\n * noop is a helper function that does nothing\n * @returns undefined\n */\nfunction noop() {\n /** no-op */\n}\n\n/**\n * getOrCreateModel is a helper function that will return a model if it exists\n * or create a new model if it does not exist.\n * This is useful for when you want to create a model for a file that may or may not exist yet.\n * @param monaco The monaco instance\n * @param value The value of the model\n * @param language The language of the model\n * @param path The path of the model\n * @returns The model that was found or created\n */\nfunction getOrCreateModel(monaco: Monaco, value: string, language: string, path: string) {\n return getModel(monaco, path) || createModel(monaco, value, language, path);\n}\n\n/**\n * getModel is a helper function that will return a model if it exists\n * or return undefined if it does not exist.\n * @param monaco The monaco instance\n * @param path The path of the model\n * @returns The model that was found or undefined\n */\nfunction getModel(monaco: Monaco, path: string) {\n return monaco.editor.getModel(createModelUri(monaco, path));\n}\n\n/**\n * createModel is a helper function that will create a new model\n * @param monaco The monaco instance\n * @param value The value of the model\n * @param language The language of the model\n * @param path The path of the model\n * @returns The model that was created\n */\nfunction createModel(monaco: Monaco, value: string, language?: string, path?: string) {\n return monaco.editor.createModel(\n value,\n language,\n path ? createModelUri(monaco, path) : undefined,\n );\n}\n\n/**\n * createModelUri is a helper function that will create a new model uri\n * @param monaco The monaco instance\n * @param path The path of the model\n * @returns The model uri that was created\n */\nfunction createModelUri(monaco: Monaco, path: string) {\n return monaco.Uri.parse(path);\n}\n\nexport { noop, getOrCreateModel };\n", "import { useState } from 'react';\nimport loader from '@monaco-editor/loader';\n\nimport useMount from '../useMount';\n\nfunction useMonaco() {\n const [monaco, setMonaco] = useState(loader.__getMonacoInstance());\n\n useMount(() => {\n let cancelable: ReturnType<typeof loader.init>;\n\n if (!monaco) {\n cancelable = loader.init();\n\n cancelable.then((monaco) => {\n setMonaco(monaco);\n });\n }\n\n return () => cancelable?.cancel();\n });\n\n return monaco;\n}\n\nexport default useMonaco;\n", "import { memo } from 'react';\n\nimport Editor from './Editor';\n\nexport * from './types';\n\nexport default memo(Editor);\n", "'use client';\n\nimport React, { useState, useEffect, useRef, useCallback } from 'react';\nimport loader from '@monaco-editor/loader';\nimport useMount from '../hooks/useMount';\nimport useUpdate from '../hooks/useUpdate';\nimport usePrevious from '../hooks/usePrevious';\nimport { type IDisposable, type editor } from 'monaco-editor';\nimport { noop, getOrCreateModel } from '../utils';\nimport { type EditorProps } from './types';\nimport { type Monaco } from '..';\nimport MonacoContainer from '../MonacoContainer';\n\nconst viewStates = new Map();\n\nfunction Editor({\n defaultValue,\n defaultLanguage,\n defaultPath,\n value,\n language,\n path,\n /* === */\n theme = 'light',\n line,\n loading = 'Loading...',\n options = {},\n overrideServices = {},\n saveViewState = true,\n keepCurrentModel = false,\n /* === */\n width = '100%',\n height = '100%',\n className,\n wrapperProps = {},\n /* === */\n beforeMount = noop,\n onMount = noop,\n onChange,\n onValidate = noop,\n}: EditorProps) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const monacoRef = useRef<Monaco | null>(null);\n const editorRef = useRef<editor.IStandaloneCodeEditor | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n const subscriptionRef = useRef<IDisposable>();\n const valueRef = useRef(value);\n const previousPath = usePrevious(path);\n const preventCreation = useRef(false);\n const preventTriggerChangeEvent = useRef<boolean>(false);\n\n useMount(() => {\n const cancelable = loader.init();\n\n cancelable\n .then((monaco) => (monacoRef.current = monaco) && setIsMonacoMounting(false))\n .catch(\n (error) =>\n error?.type !== 'cancelation' && console.error('Monaco initialization: error:', error),\n );\n\n return () => (editorRef.current ? disposeEditor() : cancelable.cancel());\n });\n\n useUpdate(\n () => {\n const model = getOrCreateModel(\n monacoRef.current!,\n defaultValue || value || '',\n defaultLanguage || language || '',\n path || defaultPath || '',\n );\n\n if (model !== editorRef.current?.getModel()) {\n if (saveViewState) viewStates.set(previousPath, editorRef.current?.saveViewState());\n editorRef.current?.setModel(model);\n if (saveViewState) editorRef.current?.restoreViewState(viewStates.get(path));\n }\n },\n [path],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n editorRef.current?.updateOptions(options);\n },\n [options],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n if (!editorRef.current || value === undefined) return;\n if (editorRef.current.getOption(monacoRef.current!.editor.EditorOption.readOnly)) {\n editorRef.current.setValue(value);\n } else if (value !== editorRef.current.getValue()) {\n preventTriggerChangeEvent.current = true;\n editorRef.current.executeEdits('', [\n {\n range: editorRef.current.getModel()!.getFullModelRange(),\n text: value,\n forceMoveMarkers: true,\n },\n ]);\n\n editorRef.current.pushUndoStop();\n preventTriggerChangeEvent.current = false;\n }\n },\n [value],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n const model = editorRef.current?.getModel();\n if (model && language) monacoRef.current?.editor.setModelLanguage(model, language);\n },\n [language],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n // reason for undefined check: https://github.com/suren-atoyan/monaco-react/pull/188\n if (line !== undefined) {\n editorRef.current?.revealLine(line);\n }\n },\n [line],\n isEditorReady,\n );\n\n useUpdate(\n () => {\n monacoRef.current?.editor.setTheme(theme);\n },\n [theme],\n isEditorReady,\n );\n\n const createEditor = useCallback(() => {\n if (!containerRef.current || !monacoRef.current) return;\n if (!preventCreation.current) {\n beforeMountRef.current(monacoRef.current);\n const autoCreatedModelPath = path || defaultPath;\n\n const defaultModel = getOrCreateModel(\n monacoRef.current,\n value || defaultValue || '',\n defaultLanguage || language || '',\n autoCreatedModelPath || '',\n );\n\n editorRef.current = monacoRef.current?.editor.create(\n containerRef.current,\n {\n model: defaultModel,\n automaticLayout: true,\n ...options,\n },\n overrideServices,\n );\n\n saveViewState && editorRef.current.restoreViewState(viewStates.get(autoCreatedModelPath));\n\n monacoRef.current.editor.setTheme(theme);\n\n if (line !== undefined) {\n editorRef.current.revealLine(line);\n }\n\n setIsEditorReady(true);\n preventCreation.current = true;\n }\n }, [\n defaultValue,\n defaultLanguage,\n defaultPath,\n value,\n language,\n path,\n options,\n overrideServices,\n saveViewState,\n theme,\n line,\n ]);\n\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current!, monacoRef.current!);\n }\n }, [isEditorReady]);\n\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]);\n\n // subscription\n // to avoid unnecessary updates (attach - dispose listener) in subscription\n valueRef.current = value;\n\n // onChange\n useEffect(() => {\n if (isEditorReady && onChange) {\n subscriptionRef.current?.dispose();\n subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => {\n if (!preventTriggerChangeEvent.current) {\n onChange(editorRef.current!.getValue(), event);\n }\n });\n }\n }, [isEditorReady, onChange]);\n\n // onValidate\n useEffect(() => {\n if (isEditorReady) {\n const changeMarkersListener = monacoRef.current!.editor.onDidChangeMarkers((uris) => {\n const editorUri = editorRef.current!.getModel()?.uri;\n\n if (editorUri) {\n const currentEditorHasMarkerChanges = uris.find((uri) => uri.path === editorUri.path);\n if (currentEditorHasMarkerChanges) {\n const markers = monacoRef.current!.editor.getModelMarkers({\n resource: editorUri,\n });\n onValidate?.(markers);\n }\n }\n });\n\n return () => {\n changeMarkersListener?.dispose();\n };\n }\n return () => {\n // eslint happy\n };\n }, [isEditorReady, onValidate]);\n\n function disposeEditor() {\n subscriptionRef.current?.dispose();\n\n if (keepCurrentModel) {\n saveViewState && viewStates.set(path, editorRef.current!.saveViewState());\n } else {\n editorRef.current!.getModel()?.dispose();\n }\n\n editorRef.current!.dispose();\n }\n\n return (\n <MonacoContainer\n width={width}\n height={height}\n isEditorReady={isEditorReady}\n loading={loading}\n _ref={containerRef}\n className={className}\n wrapperProps={wrapperProps}\n />\n );\n}\n\nexport default Editor;\n", "import { useEffect, useRef } from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n\nexport default usePrevious;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["l", "r", "_defineProperty", "ownKeys", "_objectSpread2", "errorMessages", "getState", "state", "setState", "curry", "isObject", "config", "errorHandler", "isObject", "errorMessages", "throwError", "curry", "validators", "compose", "config", "validators", "compose", "configureLoader", "require", "memo", "React", "useState", "useRef", "useCallback", "useEffect", "memo", "React", "useEffect", "useRef", "useState", "memo", "React", "useState", "useEffect", "useRef", "useCallback", "useEffect", "useRef", "styles", "styles_default", "Loading", "children", "React", "Loading_default", "MonacoContainer", "width", "height", "isEditorReady", "loading", "_ref", "className", "wrapperProps", "MonacoContainer_default", "memo", "useMount", "effect", "useMount_default", "useUpdate", "deps", "applyChanges", "isInitialMount", "useUpdate_default", "noop", "getOrCreateModel", "monaco", "value", "language", "path", "getModel", "createModel", "createModelUri", "DiffEditor", "original", "modified", "originalLanguage", "modifiedLanguage", "originalModelPath", "modifiedModelPath", "keepCurrentOriginalModel", "keepCurrentModifiedModel", "theme", "options", "beforeMount", "onMount", "setIsEditorReady", "useState", "isMonacoMounting", "setIsMonacoMounting", "editorRef", "monacoRef", "containerRef", "onMountRef", "beforeMountRef", "preventCreation", "cancelable", "loader", "error", "disposeEditor", "originalEditor", "model", "modifiedEditor", "setModels", "useCallback", "originalModel", "modifiedModel", "createEditor", "models", "DiffEditor_default", "useMonaco", "setMonaco", "useMonaco_default", "usePrevious", "ref", "usePrevious_default", "viewStates", "Editor", "defaultValue", "defaultLanguage", "defaultPath", "line", "overrideServices", "saveViewState", "keepCurrentModel", "onChange", "onValidate", "subscriptionRef", "valueRef", "previousPath", "preventTriggerChangeEvent", "autoCreatedModelPath", "defaultModel", "event", "changeMarkersListener", "uris", "editorUri", "uri", "markers", "Editor_default", "src_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateId
|
|
3
|
+
} from "./chunk-ZF3OHCGV.js";
|
|
4
|
+
|
|
5
|
+
// ../thread-view/dist/index.js
|
|
6
|
+
function formatTimestamp(date) {
|
|
7
|
+
const hours = date.getHours();
|
|
8
|
+
const minutes = date.getMinutes();
|
|
9
|
+
const ampm = hours >= 12 ? "PM" : "AM";
|
|
10
|
+
const displayHours = hours % 12 || 12;
|
|
11
|
+
const displayMinutes = minutes < 10 ? `0${minutes}` : `${minutes}`;
|
|
12
|
+
return `${displayHours}:${displayMinutes} ${ampm}`;
|
|
13
|
+
}
|
|
14
|
+
function formatRelativeTime(date, now) {
|
|
15
|
+
const reference = now ?? /* @__PURE__ */ new Date();
|
|
16
|
+
const diffMs = reference.getTime() - date.getTime();
|
|
17
|
+
const diffSeconds = Math.floor(diffMs / 1e3);
|
|
18
|
+
const diffMinutes = Math.floor(diffSeconds / 60);
|
|
19
|
+
const diffHours = Math.floor(diffMinutes / 60);
|
|
20
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
21
|
+
if (diffSeconds < 60) return "just now";
|
|
22
|
+
if (diffMinutes < 60) return `${diffMinutes} minute${diffMinutes === 1 ? "" : "s"} ago`;
|
|
23
|
+
if (diffHours < 24) return `${diffHours} hour${diffHours === 1 ? "" : "s"} ago`;
|
|
24
|
+
if (diffDays < 7) return `${diffDays} day${diffDays === 1 ? "" : "s"} ago`;
|
|
25
|
+
return date.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
|
|
26
|
+
}
|
|
27
|
+
function createThreadView(props) {
|
|
28
|
+
const { messages, onReply, onReact, currentUserId } = props;
|
|
29
|
+
let replyingTo = null;
|
|
30
|
+
const threadId = generateId("rfr-thread");
|
|
31
|
+
const labelId = generateId("rfr-thread-label");
|
|
32
|
+
function startReply(messageId) {
|
|
33
|
+
replyingTo = messageId;
|
|
34
|
+
}
|
|
35
|
+
function cancelReply() {
|
|
36
|
+
replyingTo = null;
|
|
37
|
+
}
|
|
38
|
+
function reply(messageId, content) {
|
|
39
|
+
onReply?.(messageId, content);
|
|
40
|
+
replyingTo = null;
|
|
41
|
+
}
|
|
42
|
+
function react(messageId, emoji) {
|
|
43
|
+
onReact?.(messageId, emoji);
|
|
44
|
+
}
|
|
45
|
+
const ariaProps = {
|
|
46
|
+
role: "log",
|
|
47
|
+
"aria-label": "Message thread",
|
|
48
|
+
"aria-live": "polite",
|
|
49
|
+
id: threadId
|
|
50
|
+
};
|
|
51
|
+
function getMessageAriaProps(message) {
|
|
52
|
+
const isOwn = currentUserId && message.author.id === currentUserId;
|
|
53
|
+
return {
|
|
54
|
+
role: "article",
|
|
55
|
+
"aria-label": `Message from ${message.author.name}${isOwn ? " (you)" : ""} at ${formatTimestamp(message.timestamp)}`
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function getReplyButtonAriaProps(_messageId) {
|
|
59
|
+
return {
|
|
60
|
+
role: "button",
|
|
61
|
+
"aria-label": `Reply to message`
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
state: {
|
|
66
|
+
messages,
|
|
67
|
+
get replyingTo() {
|
|
68
|
+
return replyingTo;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
startReply,
|
|
72
|
+
cancelReply,
|
|
73
|
+
reply,
|
|
74
|
+
react,
|
|
75
|
+
formatTimestamp,
|
|
76
|
+
formatRelativeTime,
|
|
77
|
+
ariaProps,
|
|
78
|
+
getMessageAriaProps,
|
|
79
|
+
getReplyButtonAriaProps,
|
|
80
|
+
ids: {
|
|
81
|
+
thread: threadId,
|
|
82
|
+
label: labelId
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
var threadContainerStyles = "flex flex-col gap-1";
|
|
87
|
+
var threadMessageStyles = "flex gap-3 px-4 py-2 hover:bg-accent/50 rounded-md transition-colors group";
|
|
88
|
+
var threadAvatarStyles = "h-9 w-9 rounded-full bg-muted flex items-center justify-center text-sm font-medium overflow-hidden flex-shrink-0";
|
|
89
|
+
var threadContentStyles = "flex-1 min-w-0";
|
|
90
|
+
var threadAuthorStyles = "font-semibold text-sm";
|
|
91
|
+
var threadTimestampStyles = "text-xs text-muted-foreground ml-2";
|
|
92
|
+
var threadBodyStyles = "text-sm mt-0.5 whitespace-pre-wrap break-words";
|
|
93
|
+
var threadReactionsStyles = "flex flex-wrap gap-1 mt-1";
|
|
94
|
+
var threadReplyIndicatorStyles = "flex items-center gap-1 mt-1 text-xs text-primary cursor-pointer hover:underline";
|
|
95
|
+
var threadActionsStyles = "flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity";
|
|
96
|
+
var threadAttachmentStyles = "flex items-center gap-2 mt-1 p-2 rounded border text-xs bg-muted/50";
|
|
97
|
+
var threadEditedStyles = "text-xs text-muted-foreground ml-1";
|
|
98
|
+
|
|
99
|
+
export {
|
|
100
|
+
formatTimestamp,
|
|
101
|
+
formatRelativeTime,
|
|
102
|
+
createThreadView,
|
|
103
|
+
threadContainerStyles,
|
|
104
|
+
threadMessageStyles,
|
|
105
|
+
threadAvatarStyles,
|
|
106
|
+
threadContentStyles,
|
|
107
|
+
threadAuthorStyles,
|
|
108
|
+
threadTimestampStyles,
|
|
109
|
+
threadBodyStyles,
|
|
110
|
+
threadReactionsStyles,
|
|
111
|
+
threadReplyIndicatorStyles,
|
|
112
|
+
threadActionsStyles,
|
|
113
|
+
threadAttachmentStyles,
|
|
114
|
+
threadEditedStyles
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=chunk-ONACRMG4.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../thread-view/src/thread-view.ts", "../../thread-view/src/thread-view.styles.ts"],
|
|
4
|
+
"sourcesContent": ["import { generateId } from '@refraction-ui/shared'\n\nexport interface MessageReaction {\n emoji: string\n count: number\n userReacted: boolean\n}\n\nexport interface MessageAttachment {\n id: string\n name: string\n url: string\n type: string\n size?: number\n}\n\nexport interface MessageData {\n /** Unique message ID */\n id: string\n /** Author display info */\n author: {\n id: string\n name: string\n avatarUrl?: string\n }\n /** Message content (can contain markdown) */\n content: string\n /** Message timestamp */\n timestamp: Date\n /** Reactions on this message */\n reactions?: MessageReaction[]\n /** Threaded replies */\n replies?: MessageData[]\n /** File attachments */\n attachments?: MessageAttachment[]\n /** Whether this message has been edited */\n edited?: boolean\n}\n\nexport interface ThreadViewProps {\n /** Messages to display */\n messages: MessageData[]\n /** Callback when a reply is sent */\n onReply?: (messageId: string, content: string) => void\n /** Callback when a reaction is toggled */\n onReact?: (messageId: string, emoji: string) => void\n /** Current user ID (for highlighting own messages) */\n currentUserId?: string\n}\n\nexport interface ThreadViewState {\n messages: MessageData[]\n replyingTo: string | null\n}\n\nexport interface ThreadViewAPI {\n /** Current state */\n state: ThreadViewState\n /** Start replying to a message */\n startReply(messageId: string): void\n /** Cancel reply */\n cancelReply(): void\n /** Send a reply */\n reply(messageId: string, content: string): void\n /** Toggle a reaction on a message */\n react(messageId: string, emoji: string): void\n /** Format a timestamp for display */\n formatTimestamp(date: Date): string\n /** Format relative time (e.g., \"2 minutes ago\") */\n formatRelativeTime(date: Date): string\n /** ARIA props for the thread container */\n ariaProps: Record<string, string | number | boolean>\n /** Get ARIA props for a message */\n getMessageAriaProps(message: MessageData): Record<string, string | number | boolean>\n /** Get ARIA props for a reply button */\n getReplyButtonAriaProps(messageId: string): Record<string, string | number | boolean>\n /** Generated IDs */\n ids: {\n thread: string\n label: string\n }\n}\n\nexport function formatTimestamp(date: Date): string {\n const hours = date.getHours()\n const minutes = date.getMinutes()\n const ampm = hours >= 12 ? 'PM' : 'AM'\n const displayHours = hours % 12 || 12\n const displayMinutes = minutes < 10 ? `0${minutes}` : `${minutes}`\n return `${displayHours}:${displayMinutes} ${ampm}`\n}\n\nexport function formatRelativeTime(date: Date, now?: Date): string {\n const reference = now ?? new Date()\n const diffMs = reference.getTime() - date.getTime()\n const diffSeconds = Math.floor(diffMs / 1000)\n const diffMinutes = Math.floor(diffSeconds / 60)\n const diffHours = Math.floor(diffMinutes / 60)\n const diffDays = Math.floor(diffHours / 24)\n\n if (diffSeconds < 60) return 'just now'\n if (diffMinutes < 60) return `${diffMinutes} minute${diffMinutes === 1 ? '' : 's'} ago`\n if (diffHours < 24) return `${diffHours} hour${diffHours === 1 ? '' : 's'} ago`\n if (diffDays < 7) return `${diffDays} day${diffDays === 1 ? '' : 's'} ago`\n\n return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })\n}\n\nexport function createThreadView(props: ThreadViewProps): ThreadViewAPI {\n const { messages, onReply, onReact, currentUserId } = props\n\n let replyingTo: string | null = null\n\n const threadId = generateId('rfr-thread')\n const labelId = generateId('rfr-thread-label')\n\n function startReply(messageId: string): void {\n replyingTo = messageId\n }\n\n function cancelReply(): void {\n replyingTo = null\n }\n\n function reply(messageId: string, content: string): void {\n onReply?.(messageId, content)\n replyingTo = null\n }\n\n function react(messageId: string, emoji: string): void {\n onReact?.(messageId, emoji)\n }\n\n const ariaProps: Record<string, string | number | boolean> = {\n role: 'log',\n 'aria-label': 'Message thread',\n 'aria-live': 'polite',\n id: threadId,\n }\n\n function getMessageAriaProps(message: MessageData): Record<string, string | number | boolean> {\n const isOwn = currentUserId && message.author.id === currentUserId\n return {\n role: 'article',\n 'aria-label': `Message from ${message.author.name}${isOwn ? ' (you)' : ''} at ${formatTimestamp(message.timestamp)}`,\n }\n }\n\n function getReplyButtonAriaProps(_messageId: string): Record<string, string | number | boolean> {\n return {\n role: 'button',\n 'aria-label': `Reply to message`,\n }\n }\n\n return {\n state: {\n messages,\n get replyingTo() { return replyingTo },\n },\n startReply,\n cancelReply,\n reply,\n react,\n formatTimestamp,\n formatRelativeTime,\n ariaProps,\n getMessageAriaProps,\n getReplyButtonAriaProps,\n ids: {\n thread: threadId,\n label: labelId,\n },\n }\n}\n", "export const threadContainerStyles =\n 'flex flex-col gap-1'\n\nexport const threadMessageStyles =\n 'flex gap-3 px-4 py-2 hover:bg-accent/50 rounded-md transition-colors group'\n\nexport const threadAvatarStyles =\n 'h-9 w-9 rounded-full bg-muted flex items-center justify-center text-sm font-medium overflow-hidden flex-shrink-0'\n\nexport const threadContentStyles =\n 'flex-1 min-w-0'\n\nexport const threadAuthorStyles =\n 'font-semibold text-sm'\n\nexport const threadTimestampStyles =\n 'text-xs text-muted-foreground ml-2'\n\nexport const threadBodyStyles =\n 'text-sm mt-0.5 whitespace-pre-wrap break-words'\n\nexport const threadReactionsStyles =\n 'flex flex-wrap gap-1 mt-1'\n\nexport const threadReplyIndicatorStyles =\n 'flex items-center gap-1 mt-1 text-xs text-primary cursor-pointer hover:underline'\n\nexport const threadActionsStyles =\n 'flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity'\n\nexport const threadAttachmentStyles =\n 'flex items-center gap-2 mt-1 p-2 rounded border text-xs bg-muted/50'\n\nexport const threadEditedStyles =\n 'text-xs text-muted-foreground ml-1'\n"],
|
|
5
|
+
"mappings": ";;;;;AAmFO,SAAS,gBAAgB,MAAoB;AAClD,QAAM,QAAQ,KAAK,SAAA;AACnB,QAAM,UAAU,KAAK,WAAA;AACrB,QAAM,OAAO,SAAS,KAAK,OAAO;AAClC,QAAM,eAAe,QAAQ,MAAM;AACnC,QAAM,iBAAiB,UAAU,KAAK,IAAI,OAAO,KAAK,GAAG,OAAO;AAChE,SAAO,GAAG,YAAY,IAAI,cAAc,IAAI,IAAI;AAClD;AAEO,SAAS,mBAAmB,MAAY,KAAoB;AACjE,QAAM,YAAY,OAAO,oBAAI,KAAA;AAC7B,QAAM,SAAS,UAAU,QAAA,IAAY,KAAK,QAAA;AAC1C,QAAM,cAAc,KAAK,MAAM,SAAS,GAAI;AAC5C,QAAM,cAAc,KAAK,MAAM,cAAc,EAAE;AAC/C,QAAM,YAAY,KAAK,MAAM,cAAc,EAAE;AAC7C,QAAM,WAAW,KAAK,MAAM,YAAY,EAAE;AAE1C,MAAI,cAAc,GAAI,QAAO;AAC7B,MAAI,cAAc,GAAI,QAAO,GAAG,WAAW,UAAU,gBAAgB,IAAI,KAAK,GAAG;AACjF,MAAI,YAAY,GAAI,QAAO,GAAG,SAAS,QAAQ,cAAc,IAAI,KAAK,GAAG;AACzE,MAAI,WAAW,EAAG,QAAO,GAAG,QAAQ,OAAO,aAAa,IAAI,KAAK,GAAG;AAEpE,SAAO,KAAK,mBAAmB,SAAS,EAAE,OAAO,SAAS,KAAK,WAAW,MAAM,UAAA,CAAW;AAC7F;AAEO,SAAS,iBAAiB,OAAuC;AACtE,QAAM,EAAE,UAAU,SAAS,SAAS,cAAA,IAAkB;AAEtD,MAAI,aAA4B;AAEhC,QAAM,WAAW,WAAW,YAAY;AACxC,QAAM,UAAU,WAAW,kBAAkB;AAE7C,WAAS,WAAW,WAAyB;AAC3C,iBAAa;EACf;AAEA,WAAS,cAAoB;AAC3B,iBAAa;EACf;AAEA,WAAS,MAAM,WAAmB,SAAuB;AACvD,cAAU,WAAW,OAAO;AAC5B,iBAAa;EACf;AAEA,WAAS,MAAM,WAAmB,OAAqB;AACrD,cAAU,WAAW,KAAK;EAC5B;AAEA,QAAM,YAAuD;IAC3D,MAAM;IACN,cAAc;IACd,aAAa;IACb,IAAI;EAAA;AAGN,WAAS,oBAAoB,SAAiE;AAC5F,UAAM,QAAQ,iBAAiB,QAAQ,OAAO,OAAO;AACrD,WAAO;MACL,MAAM;MACN,cAAc,gBAAgB,QAAQ,OAAO,IAAI,GAAG,QAAQ,WAAW,EAAE,OAAO,gBAAgB,QAAQ,SAAS,CAAC;IAAA;EAEtH;AAEA,WAAS,wBAAwB,YAA+D;AAC9F,WAAO;MACL,MAAM;MACN,cAAc;IAAA;EAElB;AAEA,SAAO;IACL,OAAO;MACL;MACA,IAAI,aAAa;AAAE,eAAO;MAAW;IAAA;IAEvC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,KAAK;MACH,QAAQ;MACR,OAAO;IAAA;EACT;AAEJ;AC9KO,IAAM,wBACX;AAEK,IAAM,sBACX;AAEK,IAAM,qBACX;AAEK,IAAM,sBACX;AAEK,IAAM,qBACX;AAEK,IAAM,wBACX;AAEK,IAAM,mBACX;AAEK,IAAM,wBACX;AAEK,IAAM,6BACX;AAEK,IAAM,sBACX;AAEK,IAAM,yBACX;AAEK,IAAM,qBACX;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn,
|
|
3
|
+
cva
|
|
4
|
+
} from "./chunk-ZF3OHCGV.js";
|
|
5
|
+
|
|
6
|
+
// ../react-input/dist/index.js
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
|
|
9
|
+
// ../input/dist/index.js
|
|
10
|
+
function resolveAriaInvalid(ariaInvalid, validationState) {
|
|
11
|
+
if (ariaInvalid !== void 0) {
|
|
12
|
+
return ariaInvalid;
|
|
13
|
+
}
|
|
14
|
+
if (validationState === "invalid") {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
if (validationState === "valid") {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
return void 0;
|
|
21
|
+
}
|
|
22
|
+
function createInput(props = {}) {
|
|
23
|
+
const {
|
|
24
|
+
disabled = false,
|
|
25
|
+
readOnly = false,
|
|
26
|
+
required = false,
|
|
27
|
+
"aria-invalid": ariaInvalid,
|
|
28
|
+
validationState
|
|
29
|
+
} = props;
|
|
30
|
+
const resolvedInvalid = resolveAriaInvalid(ariaInvalid, validationState);
|
|
31
|
+
const ariaProps = {};
|
|
32
|
+
if (disabled) {
|
|
33
|
+
ariaProps["aria-disabled"] = true;
|
|
34
|
+
}
|
|
35
|
+
if (resolvedInvalid !== void 0) {
|
|
36
|
+
ariaProps["aria-invalid"] = resolvedInvalid;
|
|
37
|
+
}
|
|
38
|
+
if (required) {
|
|
39
|
+
ariaProps["aria-required"] = true;
|
|
40
|
+
}
|
|
41
|
+
const dataAttributes = {};
|
|
42
|
+
if (disabled) {
|
|
43
|
+
dataAttributes["data-disabled"] = "";
|
|
44
|
+
}
|
|
45
|
+
if (readOnly) {
|
|
46
|
+
dataAttributes["data-readonly"] = "";
|
|
47
|
+
}
|
|
48
|
+
if (resolvedInvalid === true) {
|
|
49
|
+
dataAttributes["data-invalid"] = "";
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
ariaProps,
|
|
53
|
+
dataAttributes
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
var inputVariants = cva({
|
|
57
|
+
base: "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
58
|
+
variants: {
|
|
59
|
+
size: {
|
|
60
|
+
sm: "h-8 text-xs",
|
|
61
|
+
default: "h-9",
|
|
62
|
+
lg: "h-10 text-base"
|
|
63
|
+
},
|
|
64
|
+
validationState: {
|
|
65
|
+
valid: "border-success focus-visible:ring-success",
|
|
66
|
+
invalid: "border-destructive focus-visible:ring-destructive"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
defaultVariants: {
|
|
70
|
+
size: "default"
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// ../react-input/dist/index.js
|
|
75
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
76
|
+
var CheckIcon = /* @__PURE__ */ jsx(
|
|
77
|
+
"svg",
|
|
78
|
+
{
|
|
79
|
+
"aria-hidden": "true",
|
|
80
|
+
viewBox: "0 0 24 24",
|
|
81
|
+
fill: "none",
|
|
82
|
+
stroke: "currentColor",
|
|
83
|
+
strokeWidth: "2",
|
|
84
|
+
strokeLinecap: "round",
|
|
85
|
+
strokeLinejoin: "round",
|
|
86
|
+
className: "pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-success",
|
|
87
|
+
children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
var Input = React.forwardRef(
|
|
91
|
+
function Input2({
|
|
92
|
+
type = "text",
|
|
93
|
+
size,
|
|
94
|
+
className,
|
|
95
|
+
disabled,
|
|
96
|
+
readOnly,
|
|
97
|
+
required,
|
|
98
|
+
validationState,
|
|
99
|
+
leadingIcon,
|
|
100
|
+
"aria-invalid": ariaInvalid,
|
|
101
|
+
...props
|
|
102
|
+
}, ref) {
|
|
103
|
+
const api = createInput({
|
|
104
|
+
type,
|
|
105
|
+
disabled,
|
|
106
|
+
readOnly,
|
|
107
|
+
required,
|
|
108
|
+
"aria-invalid": ariaInvalid === void 0 ? void 0 : ariaInvalid === true || ariaInvalid === "true",
|
|
109
|
+
validationState
|
|
110
|
+
});
|
|
111
|
+
const hasWrapper = leadingIcon != null || validationState != null;
|
|
112
|
+
const classes = cn(
|
|
113
|
+
inputVariants({ size, validationState }),
|
|
114
|
+
leadingIcon != null && "pl-9",
|
|
115
|
+
validationState === "valid" && "pr-9",
|
|
116
|
+
className
|
|
117
|
+
);
|
|
118
|
+
const inputEl = /* @__PURE__ */ jsx(
|
|
119
|
+
"input",
|
|
120
|
+
{
|
|
121
|
+
ref,
|
|
122
|
+
type,
|
|
123
|
+
className: classes,
|
|
124
|
+
disabled,
|
|
125
|
+
readOnly,
|
|
126
|
+
required,
|
|
127
|
+
...api.ariaProps,
|
|
128
|
+
...api.dataAttributes,
|
|
129
|
+
...props
|
|
130
|
+
}
|
|
131
|
+
);
|
|
132
|
+
if (!hasWrapper) {
|
|
133
|
+
return inputEl;
|
|
134
|
+
}
|
|
135
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
136
|
+
leadingIcon != null && /* @__PURE__ */ jsx(
|
|
137
|
+
"span",
|
|
138
|
+
{
|
|
139
|
+
"aria-hidden": "true",
|
|
140
|
+
className: "pointer-events-none absolute left-3 top-1/2 flex size-4 -translate-y-1/2 items-center justify-center text-muted-foreground",
|
|
141
|
+
children: leadingIcon
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
inputEl,
|
|
145
|
+
validationState === "valid" && CheckIcon
|
|
146
|
+
] });
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
export {
|
|
151
|
+
inputVariants,
|
|
152
|
+
Input
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=chunk-TOZBR4GL.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../input/src/input.ts", "../../input/src/input.styles.ts", "../../react-input/src/input.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { AccessibilityProps } from '@refraction-ui/shared'\n\nexport type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search'\n\n/** High-level validation affordance for an input. */\nexport type InputValidationState = 'valid' | 'invalid'\n\nexport interface InputProps {\n type?: InputType\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n placeholder?: string\n 'aria-invalid'?: boolean\n /**\n * Validation affordance. The core derives `aria-invalid` from this:\n * - `'valid'` → `aria-invalid={false}`\n * - `'invalid'` → `aria-invalid={true}`\n *\n * An explicit `aria-invalid` prop always takes precedence.\n */\n validationState?: InputValidationState\n}\n\nexport interface InputAPI {\n /** ARIA attributes to spread on the element */\n ariaProps: Partial<AccessibilityProps> & { 'aria-invalid'?: boolean; 'aria-required'?: boolean }\n /** Data attributes for CSS styling hooks */\n dataAttributes: Record<string, string>\n}\n\n/**\n * Resolve the effective `aria-invalid` value from an explicit `aria-invalid`\n * prop and a high-level `validationState`. The explicit prop always wins;\n * otherwise `validationState` maps `'invalid' → true`, `'valid' → false`, and\n * an absent state leaves `aria-invalid` undefined (legacy behavior).\n */\nexport function resolveAriaInvalid(\n ariaInvalid: boolean | undefined,\n validationState: InputValidationState | undefined,\n): boolean | undefined {\n if (ariaInvalid !== undefined) {\n return ariaInvalid\n }\n if (validationState === 'invalid') {\n return true\n }\n if (validationState === 'valid') {\n return false\n }\n return undefined\n}\n\nexport function createInput(props: InputProps = {}): InputAPI {\n const {\n disabled = false,\n readOnly = false,\n required = false,\n 'aria-invalid': ariaInvalid,\n validationState,\n } = props\n\n const resolvedInvalid = resolveAriaInvalid(ariaInvalid, validationState)\n\n const ariaProps: InputAPI['ariaProps'] = {}\n\n if (disabled) {\n ariaProps['aria-disabled'] = true\n }\n\n if (resolvedInvalid !== undefined) {\n ariaProps['aria-invalid'] = resolvedInvalid\n }\n\n if (required) {\n ariaProps['aria-required'] = true\n }\n\n const dataAttributes: Record<string, string> = {}\n\n if (disabled) {\n dataAttributes['data-disabled'] = ''\n }\n\n if (readOnly) {\n dataAttributes['data-readonly'] = ''\n }\n\n if (resolvedInvalid === true) {\n dataAttributes['data-invalid'] = ''\n }\n\n return {\n ariaProps,\n dataAttributes,\n }\n}\n\nexport function getInputAriaProps(state: {\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n invalid?: boolean\n}): Partial<AccessibilityProps> & { 'aria-invalid'?: boolean; 'aria-required'?: boolean } {\n const ariaProps: Partial<AccessibilityProps> & { 'aria-invalid'?: boolean; 'aria-required'?: boolean } = {}\n\n if (state.disabled) {\n ariaProps['aria-disabled'] = true\n }\n\n if (state.invalid) {\n ariaProps['aria-invalid'] = true\n }\n\n if (state.required) {\n ariaProps['aria-required'] = true\n }\n\n return ariaProps\n}\n", "import { cva } from '@refraction-ui/shared'\n\nexport const inputVariants = cva({\n base: 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n variants: {\n size: {\n sm: 'h-8 text-xs',\n default: 'h-9',\n lg: 'h-10 text-base',\n },\n validationState: {\n valid: 'border-success focus-visible:ring-success',\n invalid: 'border-destructive focus-visible:ring-destructive',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n})\n", "import * as React from 'react'\nimport {\n createInput,\n inputVariants,\n type InputValidationState,\n} from '@refraction-ui/input'\nimport { cn } from '@refraction-ui/shared'\n\nexport interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /**\n * Visual size of the input.\n *\n * Note: this prop intentionally **shadows** the native HTML `size`\n * attribute (which would otherwise control the visible character width\n * of the `<input>` element). We re-purpose the name for our visual\n * size variants (`'sm' | 'default' | 'lg'`) because in practice almost\n * no one uses the native character-width `size` attribute, while\n * visual sizing is a near-universal need.\n *\n * If you need the native character-width behavior, set it via\n * `htmlSize` on the underlying DOM through a `ref`, or render a plain\n * `<input>` instead.\n *\n * See the package README's \"Sizing\" section for more.\n */\n size?: 'sm' | 'default' | 'lg'\n /**\n * Validation affordance. Tints the border and wires `aria-invalid`:\n * - `'valid'` → green border, trailing check icon, `aria-invalid={false}`\n * - `'invalid'` → destructive border, `aria-invalid={true}`\n *\n * When omitted the input is rendered without a wrapper (identical to the\n * legacy bare `<input>` markup), unless `leadingIcon` is set.\n */\n validationState?: InputValidationState\n /**\n * Optional icon rendered inside the input's left padding. When provided\n * (or when `validationState` is set) the input is wrapped in a relative\n * `<div>` and gains left padding to make room for the icon.\n */\n leadingIcon?: React.ReactNode\n}\n\nconst CheckIcon = (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-success\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n)\n\n/**\n * Input component — renders a styled input with size support.\n *\n * Uses the headless @refraction-ui/input core for state, ARIA, and data attributes.\n * Styling via Tailwind utility classes (no external CSS-in-JS).\n */\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n function Input(\n {\n type = 'text',\n size,\n className,\n disabled,\n readOnly,\n required,\n validationState,\n leadingIcon,\n 'aria-invalid': ariaInvalid,\n ...props\n },\n ref,\n ) {\n // The core owns the `aria-invalid` derivation and the validation border\n // tokens; the React layer only does DOM composition (wrapper + icons).\n const api = createInput({\n type: type as import('@refraction-ui/input').InputType,\n disabled,\n readOnly,\n required,\n 'aria-invalid': ariaInvalid === undefined ? undefined : ariaInvalid === true || ariaInvalid === 'true',\n validationState,\n })\n\n const hasWrapper = leadingIcon != null || validationState != null\n\n const classes = cn(\n inputVariants({ size, validationState }),\n leadingIcon != null && 'pl-9',\n validationState === 'valid' && 'pr-9',\n className,\n )\n\n const inputEl = (\n <input\n ref={ref}\n type={type}\n className={classes}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n {...api.ariaProps}\n {...api.dataAttributes}\n {...props}\n />\n )\n\n if (!hasWrapper) {\n return inputEl\n }\n\n return (\n <div className=\"relative\">\n {leadingIcon != null && (\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute left-3 top-1/2 flex size-4 -translate-y-1/2 items-center justify-center text-muted-foreground\"\n >\n {leadingIcon}\n </span>\n )}\n {inputEl}\n {validationState === 'valid' && CheckIcon}\n </div>\n )\n },\n)\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAqCO,SAAS,mBACd,aACA,iBACqB;AACrB,MAAI,gBAAgB,QAAW;AAC7B,WAAO;EACT;AACA,MAAI,oBAAoB,WAAW;AACjC,WAAO;EACT;AACA,MAAI,oBAAoB,SAAS;AAC/B,WAAO;EACT;AACA,SAAO;AACT;AAEO,SAAS,YAAY,QAAoB,CAAA,GAAc;AAC5D,QAAM;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB;EAAA,IACE;AAEJ,QAAM,kBAAkB,mBAAmB,aAAa,eAAe;AAEvE,QAAM,YAAmC,CAAA;AAEzC,MAAI,UAAU;AACZ,cAAU,eAAe,IAAI;EAC/B;AAEA,MAAI,oBAAoB,QAAW;AACjC,cAAU,cAAc,IAAI;EAC9B;AAEA,MAAI,UAAU;AACZ,cAAU,eAAe,IAAI;EAC/B;AAEA,QAAM,iBAAyC,CAAA;AAE/C,MAAI,UAAU;AACZ,mBAAe,eAAe,IAAI;EACpC;AAEA,MAAI,UAAU;AACZ,mBAAe,eAAe,IAAI;EACpC;AAEA,MAAI,oBAAoB,MAAM;AAC5B,mBAAe,cAAc,IAAI;EACnC;AAEA,SAAO;IACL;IACA;EAAA;AAEJ;AC9FO,IAAM,gBAAgB,IAAI;EAC/B,MAAM;EACN,UAAU;IACR,MAAM;MACJ,IAAI;MACJ,SAAS;MACT,IAAI;IAAA;IAEN,iBAAiB;MACf,OAAO;MACP,SAAS;IAAA;EACX;EAEF,iBAAiB;IACf,MAAM;EAAA;AAEV,CAAC;;;;ACyBD,IAAM,YACJ;EAAC;EAAA;IACC,eAAY;IACZ,SAAQ;IACR,MAAK;IACL,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;IACf,WAAU;IAEV,UAAA,oBAAC,YAAA,EAAS,QAAO,iBAAA,CAAiB;EAAA;AACpC;AASK,IAAM,QAAc;EACzB,SAASA,OACP;IACE,OAAO;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA,gBAAgB;IAChB,GAAG;EAAA,GAEL,KACA;AAGA,UAAM,MAAM,YAAY;MACtB;MACA;MACA;MACA;MACA,gBAAgB,gBAAgB,SAAY,SAAY,gBAAgB,QAAQ,gBAAgB;MAChG;IAAA,CACD;AAED,UAAM,aAAa,eAAe,QAAQ,mBAAmB;AAE7D,UAAM,UAAU;MACd,cAAc,EAAE,MAAM,gBAAA,CAAiB;MACvC,eAAe,QAAQ;MACvB,oBAAoB,WAAW;MAC/B;IAAA;AAGF,UAAM,UACJ;MAAC;MAAA;QACC;QACA;QACA,WAAW;QACX;QACA;QACA;QACC,GAAG,IAAI;QACP,GAAG,IAAI;QACP,GAAG;MAAA;IAAA;AAIR,QAAI,CAAC,YAAY;AACf,aAAO;IACT;AAEA,WACE,qBAAC,OAAA,EAAI,WAAU,YACZ,UAAA;MAAA,eAAe,QACd;QAAC;QAAA;UACC,eAAY;UACZ,WAAU;UAET,UAAA;QAAA;MAAA;MAGJ;MACA,oBAAoB,WAAW;IAAA,EAAA,CAClC;EAEJ;AACF;",
|
|
6
|
+
"names": ["Input"]
|
|
7
|
+
}
|