@brainfish-ai/components 0.14.2 → 0.15.0-beta.1
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/accordion.d.ts +12 -0
- package/dist/badge.d.ts +14 -0
- package/dist/button.d.ts +16 -0
- package/dist/calendar.d.ts +12 -0
- package/dist/card.d.ts +17 -0
- package/dist/chat-search.d.ts +424 -0
- package/dist/collapsible.d.ts +10 -0
- package/dist/{colors/index.d.ts → colors.d.ts} +133 -128
- package/dist/{components/combobox/combobox.d.ts → combobox.d.ts} +23 -18
- package/dist/command.d.ts +90 -0
- package/dist/data-table.d.ts +23 -0
- package/dist/{components/date-picker/date-picker.d.ts → date-picker.d.ts} +12 -9
- package/dist/dialog.d.ts +30 -0
- package/dist/div-button.d.ts +16 -0
- package/dist/dropdown-menu.d.ts +43 -0
- package/dist/esm/chunks/{ChatSearch.BVivOuWt.js → ChatSearch.nXLnU6TL.js} +7 -4
- package/dist/esm/chunks/ChatSearch.nXLnU6TL.js.map +1 -0
- package/dist/esm/chunks/{FormattedMessage.C7CKFL5X.js → FormattedMessage.aTY_CSO9.js} +3 -8
- package/dist/esm/chunks/{FormattedMessage.C7CKFL5X.js.map → FormattedMessage.aTY_CSO9.js.map} +1 -1
- package/dist/esm/chunks/_basePickBy-BRd8bulh.BihFF1eU.js +140 -0
- package/dist/esm/chunks/_basePickBy-BRd8bulh.BihFF1eU.js.map +1 -0
- package/dist/esm/chunks/_baseUniq-CjJl2kgN.C3Wg6Gzv.js +585 -0
- package/dist/esm/chunks/_baseUniq-CjJl2kgN.C3Wg6Gzv.js.map +1 -0
- package/dist/esm/chunks/_commonjsHelpers.BFTU3MAI.js +8 -0
- package/dist/esm/chunks/_commonjsHelpers.BFTU3MAI.js.map +1 -0
- package/dist/esm/chunks/arc-BwUz6pB-.CLjvikE5.js +84 -0
- package/dist/esm/chunks/arc-BwUz6pB-.CLjvikE5.js.map +1 -0
- package/dist/esm/chunks/architectureDiagram-W76B3OCA-Cb5kazGQ.1bO-o28W.js +4662 -0
- package/dist/esm/chunks/architectureDiagram-W76B3OCA-Cb5kazGQ.1bO-o28W.js.map +1 -0
- package/dist/esm/chunks/blockDiagram-QIGZ2CNN-DDf1fn8j.CbGMaSk6.js +2262 -0
- package/dist/esm/chunks/blockDiagram-QIGZ2CNN-DDf1fn8j.CbGMaSk6.js.map +1 -0
- package/dist/esm/chunks/c4Diagram-FPNF74CW-Bums6QOx.Cr4gEhB6.js +1581 -0
- package/dist/esm/chunks/c4Diagram-FPNF74CW-Bums6QOx.Cr4gEhB6.js.map +1 -0
- package/dist/esm/chunks/channel-0GCo3iLB.B41ZW7VC.js +6 -0
- package/dist/esm/chunks/channel-0GCo3iLB.B41ZW7VC.js.map +1 -0
- package/dist/esm/chunks/chunk-4BX2VUAB-BNEZvE0o.BzF9LZVo.js +9 -0
- package/dist/esm/chunks/chunk-4BX2VUAB-BNEZvE0o.BzF9LZVo.js.map +1 -0
- package/dist/esm/chunks/chunk-55IACEB6-DKe9mqg4.BScGh1GA.js +9 -0
- package/dist/esm/chunks/chunk-55IACEB6-DKe9mqg4.BScGh1GA.js.map +1 -0
- package/dist/esm/chunks/chunk-FMBD7UC4-crQF-lvP.eIOmyWTR.js +20 -0
- package/dist/esm/chunks/chunk-FMBD7UC4-crQF-lvP.eIOmyWTR.js.map +1 -0
- package/dist/esm/chunks/chunk-K7UQS3LO-Cfwyr-vZ.BAoAWAQk.js +1373 -0
- package/dist/esm/chunks/chunk-K7UQS3LO-Cfwyr-vZ.BAoAWAQk.js.map +1 -0
- package/dist/esm/chunks/chunk-QN33PNHL-DspJEonH.BH03Z53b.js +20 -0
- package/dist/esm/chunks/chunk-QN33PNHL-DspJEonH.BH03Z53b.js.map +1 -0
- package/dist/esm/chunks/chunk-QZHKN3VN-BCAuXuhM.Yv71fggY.js +16 -0
- package/dist/esm/chunks/chunk-QZHKN3VN-BCAuXuhM.Yv71fggY.js.map +1 -0
- package/dist/esm/chunks/chunk-TVAH2DTR-UAGFGTWa.DtaXLvO3.js +1368 -0
- package/dist/esm/chunks/chunk-TVAH2DTR-UAGFGTWa.DtaXLvO3.js.map +1 -0
- package/dist/esm/chunks/chunk-TZMSLE5B-BuOZ_3Ji.DWg5e95b.js +59 -0
- package/dist/esm/chunks/chunk-TZMSLE5B-BuOZ_3Ji.DWg5e95b.js.map +1 -0
- package/dist/esm/chunks/classDiagram-KNZD7YFC-DX7nurcU.CyPH6UHq.js +17 -0
- package/dist/esm/chunks/classDiagram-KNZD7YFC-DX7nurcU.CyPH6UHq.js.map +1 -0
- package/dist/esm/chunks/classDiagram-v2-RKCZMP56-DX7nurcU.CyPH6UHq.js +17 -0
- package/dist/esm/chunks/classDiagram-v2-RKCZMP56-DX7nurcU.CyPH6UHq.js.map +1 -0
- package/dist/esm/chunks/clone-Bqjztgu2.BFjA-F4h.js +9 -0
- package/dist/esm/chunks/clone-Bqjztgu2.BFjA-F4h.js.map +1 -0
- package/dist/esm/chunks/cose-bilkent-S5V4N54A-BQHziyWw.BZGNVFdw.js +2610 -0
- package/dist/esm/chunks/cose-bilkent-S5V4N54A-BQHziyWw.BZGNVFdw.js.map +1 -0
- package/dist/esm/chunks/cytoscape.esm-qgs_QMrm.Cg6eOcD7.js +18633 -0
- package/dist/esm/chunks/cytoscape.esm-qgs_QMrm.Cg6eOcD7.js.map +1 -0
- package/dist/esm/chunks/dagre-5GWH7T2D-lsJD5N-w.B1kdVc5w.js +445 -0
- package/dist/esm/chunks/dagre-5GWH7T2D-lsJD5N-w.B1kdVc5w.js.map +1 -0
- package/dist/esm/chunks/defaultLocale-D7EN2tov.B8F577Sx.js +168 -0
- package/dist/esm/chunks/defaultLocale-D7EN2tov.B8F577Sx.js.map +1 -0
- package/dist/esm/chunks/diagram-N5W7TBWH-BRbQQdVg.CLbXQp4w.js +533 -0
- package/dist/esm/chunks/diagram-N5W7TBWH-BRbQQdVg.CLbXQp4w.js.map +1 -0
- package/dist/esm/chunks/diagram-QEK2KX5R-8l9h9zsj.DLBRL8pH.js +218 -0
- package/dist/esm/chunks/diagram-QEK2KX5R-8l9h9zsj.DLBRL8pH.js.map +1 -0
- package/dist/esm/chunks/diagram-S2PKOQOG-Cqv8fzC4.BsV-iXxM.js +143 -0
- package/dist/esm/chunks/diagram-S2PKOQOG-Cqv8fzC4.BsV-iXxM.js.map +1 -0
- package/dist/esm/chunks/erDiagram-AWTI2OKA-CuacxCQc.BRxf9Bvb.js +842 -0
- package/dist/esm/chunks/erDiagram-AWTI2OKA-CuacxCQc.BRxf9Bvb.js.map +1 -0
- package/dist/esm/chunks/flowDiagram-PVAE7QVJ-CYALWpXg.DIYz6l2w.js +1621 -0
- package/dist/esm/chunks/flowDiagram-PVAE7QVJ-CYALWpXg.DIYz6l2w.js.map +1 -0
- package/dist/esm/chunks/ganttDiagram-OWAHRB6G-DasKdnJE.Dl2sI2Nk.js +2506 -0
- package/dist/esm/chunks/ganttDiagram-OWAHRB6G-DasKdnJE.Dl2sI2Nk.js.map +1 -0
- package/dist/esm/chunks/gitGraphDiagram-NY62KEGX-CBXt0yuv.mD35jpPG.js +700 -0
- package/dist/esm/chunks/gitGraphDiagram-NY62KEGX-CBXt0yuv.mD35jpPG.js.map +1 -0
- package/dist/esm/chunks/graph-DuS579Mj.CVtaKNIJ.js +248 -0
- package/dist/esm/chunks/graph-DuS579Mj.CVtaKNIJ.js.map +1 -0
- package/dist/esm/chunks/infoDiagram-STP46IZ2-D6dOD0xH.BLhsKnwz.js +25 -0
- package/dist/esm/chunks/infoDiagram-STP46IZ2-D6dOD0xH.BLhsKnwz.js.map +1 -0
- package/dist/esm/chunks/init-DjUOC4st.BOEiyheD.js +16 -0
- package/dist/esm/chunks/init-DjUOC4st.BOEiyheD.js.map +1 -0
- package/dist/esm/chunks/journeyDiagram-BIP6EPQ6-BVvhjpLT.Cy1B2LuZ.js +837 -0
- package/dist/esm/chunks/journeyDiagram-BIP6EPQ6-BVvhjpLT.Cy1B2LuZ.js.map +1 -0
- package/dist/esm/chunks/kanban-definition-6OIFK2YF-DXUNU6e4.YiYgNKI6.js +720 -0
- package/dist/esm/chunks/kanban-definition-6OIFK2YF-DXUNU6e4.YiYgNKI6.js.map +1 -0
- package/dist/esm/chunks/katex-CUSbq6rG.R-nwQ7Gi.js +11679 -0
- package/dist/esm/chunks/katex-CUSbq6rG.R-nwQ7Gi.js.map +1 -0
- package/dist/esm/chunks/layout-C51Wxzwk.D_mfdH7L.js +1322 -0
- package/dist/esm/chunks/layout-C51Wxzwk.D_mfdH7L.js.map +1 -0
- package/dist/esm/chunks/linear-CHlV0TT4.CvsRyKtq.js +256 -0
- package/dist/esm/chunks/linear-CHlV0TT4.CvsRyKtq.js.map +1 -0
- package/dist/esm/chunks/markdownTranslator-D7_8pMsF.-EYyJrCs.js +15985 -0
- package/dist/esm/chunks/markdownTranslator-D7_8pMsF.-EYyJrCs.js.map +1 -0
- package/dist/esm/chunks/mermaid.core-C5kBD6J-.BXPxVcVa.js +15491 -0
- package/dist/esm/chunks/mermaid.core-C5kBD6J-.BXPxVcVa.js.map +1 -0
- package/dist/esm/chunks/mindmap-definition-Q6HEUPPD-HFrYx80F.ysRA57eW.js +782 -0
- package/dist/esm/chunks/mindmap-definition-Q6HEUPPD-HFrYx80F.ysRA57eW.js.map +1 -0
- package/dist/esm/chunks/ordinal-DfAQgscy.J1PPD2vL.js +62 -0
- package/dist/esm/chunks/ordinal-DfAQgscy.J1PPD2vL.js.map +1 -0
- package/dist/esm/chunks/paragraph-node-C0kBl9gb.CIP8K4ND.js +61421 -0
- package/dist/esm/chunks/paragraph-node-C0kBl9gb.CIP8K4ND.js.map +1 -0
- package/dist/esm/chunks/pieDiagram-ADFJNKIX-CsslphWO.B4GbWuZv.js +162 -0
- package/dist/esm/chunks/pieDiagram-ADFJNKIX-CsslphWO.B4GbWuZv.js.map +1 -0
- package/dist/esm/chunks/quadrantDiagram-LMRXKWRM-5QFmGeOP.C_UxDQXe.js +1023 -0
- package/dist/esm/chunks/quadrantDiagram-LMRXKWRM-5QFmGeOP.C_UxDQXe.js.map +1 -0
- package/dist/esm/chunks/requirementDiagram-4UW4RH46-C22keu8n.C4-dnVVT.js +851 -0
- package/dist/esm/chunks/requirementDiagram-4UW4RH46-C22keu8n.C4-dnVVT.js.map +1 -0
- package/dist/esm/chunks/sankeyDiagram-GR3RE2ED-BpqD9_-e.ngMCnT6E.js +811 -0
- package/dist/esm/chunks/sankeyDiagram-GR3RE2ED-BpqD9_-e.ngMCnT6E.js.map +1 -0
- package/dist/esm/chunks/sequenceDiagram-C3RYC4MD-oePYpAJV.CBdzhzsP.js +2512 -0
- package/dist/esm/chunks/sequenceDiagram-C3RYC4MD-oePYpAJV.CBdzhzsP.js.map +1 -0
- package/dist/esm/chunks/simple-editor.BahVaPV_.js +17657 -0
- package/dist/esm/chunks/simple-editor.BahVaPV_.js.map +1 -0
- package/dist/esm/chunks/simple-viewer-BRtSPXgb.j1P0rnc3.js +5543 -0
- package/dist/esm/chunks/simple-viewer-BRtSPXgb.j1P0rnc3.js.map +1 -0
- package/dist/esm/chunks/stateDiagram-KXAO66HF-D4aLegBB.CQf3ipbf.js +264 -0
- package/dist/esm/chunks/stateDiagram-KXAO66HF-D4aLegBB.CQf3ipbf.js.map +1 -0
- package/dist/esm/chunks/stateDiagram-v2-UMBNRL4Z-EsHlUtVh.KT7g_d3p.js +17 -0
- package/dist/esm/chunks/stateDiagram-v2-UMBNRL4Z-EsHlUtVh.KT7g_d3p.js.map +1 -0
- package/dist/esm/chunks/timeline-definition-XQNQX7LJ-6YQdnQ9U.CyMubI5o.js +798 -0
- package/dist/esm/chunks/timeline-definition-XQNQX7LJ-6YQdnQ9U.CyMubI5o.js.map +1 -0
- package/dist/esm/chunks/treemap-75Q7IDZK-vsWUWgT4.STv98gDF.js +12982 -0
- package/dist/esm/chunks/treemap-75Q7IDZK-vsWUWgT4.STv98gDF.js.map +1 -0
- package/dist/esm/chunks/xychartDiagram-6GGTOJPD-M8ajOOsE.Ds3v-kkT.js +1341 -0
- package/dist/esm/chunks/xychartDiagram-6GGTOJPD-M8ajOOsE.Ds3v-kkT.js.map +1 -0
- package/dist/esm/components/chat-search.js +1 -1
- package/dist/esm/components/markdown-editor-viewer.js +2 -0
- package/dist/esm/components/markdown-editor-viewer.js.map +1 -0
- package/dist/esm/components/markdown.js +1 -1
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.js +3 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/{components/feedback/feedback.d.ts → feedback.d.ts} +21 -17
- package/dist/file-upload.d.ts +45 -0
- package/dist/{components/filter/types.d.ts → filter.d.ts} +82 -59
- package/dist/generating-star.d.ts +10 -0
- package/dist/icon.d.ts +26 -0
- package/dist/index.d.ts +1204 -28
- package/dist/input.d.ts +11 -0
- package/dist/label.d.ts +8 -0
- package/dist/markdown-editor-viewer.d.ts +113 -0
- package/dist/markdown.d.ts +55 -0
- package/dist/popover.d.ts +12 -0
- package/dist/progress.d.ts +8 -0
- package/dist/scroll-area.d.ts +8 -0
- package/dist/{components/select/simpleSelect.d.ts → select.d.ts} +20 -15
- package/dist/stats.html +1 -1
- package/dist/switch.d.ts +6 -0
- package/dist/table.d.ts +19 -0
- package/dist/textarea.d.ts +5 -0
- package/dist/tooltip.d.ts +18 -0
- package/dist/{components/two-level-combobox/two-level-combobox.d.ts → two-level-combobox.d.ts} +24 -15
- package/markdown-editor.plan.md +322 -0
- package/markdown-editor.spec.md +915 -0
- package/package.json +23 -4
- package/dist/colors/blue.d.ts +0 -13
- package/dist/colors/customColor.d.ts +0 -4
- package/dist/colors/dark.d.ts +0 -13
- package/dist/colors/green.d.ts +0 -13
- package/dist/colors/orange.d.ts +0 -13
- package/dist/colors/pink.d.ts +0 -13
- package/dist/colors/primary.d.ts +0 -20
- package/dist/colors/purple.d.ts +0 -13
- package/dist/colors/red.d.ts +0 -13
- package/dist/colors/yellow.d.ts +0 -13
- package/dist/components/chat-search/Answer.d.ts +0 -29
- package/dist/components/chat-search/AnswerActions.d.ts +0 -13
- package/dist/components/chat-search/AnswerBlock.d.ts +0 -8
- package/dist/components/chat-search/ChatSearch.d.ts +0 -11
- package/dist/components/chat-search/ChatSearchContext.d.ts +0 -36
- package/dist/components/chat-search/FollowUpQuestions.d.ts +0 -7
- package/dist/components/chat-search/FollowUpSearchBar.d.ts +0 -11
- package/dist/components/chat-search/Header.d.ts +0 -9
- package/dist/components/chat-search/LoadingConversation.d.ts +0 -2
- package/dist/components/chat-search/LoadingSkeleton.d.ts +0 -6
- package/dist/components/chat-search/NextBestActions.d.ts +0 -8
- package/dist/components/chat-search/PrimarySearch.d.ts +0 -35
- package/dist/components/chat-search/ScrollToBottomArrow.d.ts +0 -6
- package/dist/components/chat-search/Suggestions.d.ts +0 -9
- package/dist/components/chat-search/TimelineNavigation.d.ts +0 -9
- package/dist/components/chat-search/blocks/ActionButtons.d.ts +0 -5
- package/dist/components/chat-search/blocks/ActionInputForm.d.ts +0 -20
- package/dist/components/chat-search/blocks/MarkdownText.d.ts +0 -8
- package/dist/components/chat-search/blocks/utils.d.ts +0 -15
- package/dist/components/chat-search/helpers/excuteClientAction.d.ts +0 -9
- package/dist/components/chat-search/helpers/nextBestActions.d.ts +0 -7
- package/dist/components/chat-search/hooks/index.d.ts +0 -7
- package/dist/components/chat-search/hooks/useAccessibleColor.d.ts +0 -1
- package/dist/components/chat-search/hooks/useAnswerList.d.ts +0 -217
- package/dist/components/chat-search/hooks/useConversationId.d.ts +0 -5
- package/dist/components/chat-search/hooks/useConversationLoader.d.ts +0 -17
- package/dist/components/chat-search/hooks/useDarkMode.d.ts +0 -1
- package/dist/components/chat-search/hooks/useIsChatSearchDirty.d.ts +0 -1
- package/dist/components/chat-search/hooks/useScrollManager.d.ts +0 -6
- package/dist/components/chat-search/hooks/useSubscriptionManager.d.ts +0 -4
- package/dist/components/chat-search/hooks/useUrlManager.d.ts +0 -8
- package/dist/components/chat-search/index.d.ts +0 -5
- package/dist/components/chat-search/text-config.d.ts +0 -3
- package/dist/components/chat-search/theme.d.ts +0 -0
- package/dist/components/chat-search/types.d.ts +0 -260
- package/dist/components/combobox/index.d.ts +0 -1
- package/dist/components/data-table/data-table.d.ts +0 -17
- package/dist/components/data-table/index.d.ts +0 -2
- package/dist/components/date-picker/index.d.ts +0 -1
- package/dist/components/feedback/feedback-reason.d.ts +0 -10
- package/dist/components/feedback/index.d.ts +0 -1
- package/dist/components/file-upload/file-upload-status.d.ts +0 -17
- package/dist/components/file-upload/file-upload.d.ts +0 -4
- package/dist/components/file-upload/index.d.ts +0 -4
- package/dist/components/file-upload/types.d.ts +0 -18
- package/dist/components/file-upload/utils.d.ts +0 -1
- package/dist/components/filter/components/CustomValueInput.d.ts +0 -11
- package/dist/components/filter/components/MultiSelectDropdown.d.ts +0 -10
- package/dist/components/filter/components/SingleSelectDropdown.d.ts +0 -9
- package/dist/components/filter/filter.d.ts +0 -6
- package/dist/components/filter/filters.d.ts +0 -12
- package/dist/components/filter/hooks.d.ts +0 -9
- package/dist/components/filter/index.d.ts +0 -3
- package/dist/components/generating-star/generating-star.d.ts +0 -6
- package/dist/components/generating-star/index.d.ts +0 -2
- package/dist/components/markdown/CodeBlock.d.ts +0 -7
- package/dist/components/markdown/FormattedMessage.d.ts +0 -14
- package/dist/components/markdown/Frame.d.ts +0 -10
- package/dist/components/markdown/MemoizedReactMarkdown.d.ts +0 -6
- package/dist/components/markdown/MermaidDiagram.d.ts +0 -6
- package/dist/components/markdown/ZoomableImage.d.ts +0 -7
- package/dist/components/markdown/embeds/Loom.d.ts +0 -7
- package/dist/components/markdown/embeds/NativeVideo.d.ts +0 -6
- package/dist/components/markdown/embeds/Supademo.d.ts +0 -7
- package/dist/components/markdown/embeds/Typeform.d.ts +0 -7
- package/dist/components/markdown/embeds/VideoTimeline.d.ts +0 -9
- package/dist/components/markdown/embeds/Vimeo.d.ts +0 -7
- package/dist/components/markdown/embeds/Wistia.d.ts +0 -7
- package/dist/components/markdown/embeds/Youtube.d.ts +0 -7
- package/dist/components/markdown/embeds/index.d.ts +0 -9
- package/dist/components/markdown/index.d.ts +0 -6
- package/dist/components/markdown/utils/codeblock.d.ts +0 -6
- package/dist/components/markdown/utils/stripNewLines.d.ts +0 -1
- package/dist/components/markdown/utils/urls.d.ts +0 -6
- package/dist/components/select/index.d.ts +0 -1
- package/dist/components/two-level-combobox/index.d.ts +0 -1
- package/dist/env.d.ts +0 -5
- package/dist/esm/chunks/ChatSearch.BVivOuWt.js.map +0 -1
- package/dist/lib/addUtmParams.d.ts +0 -20
- package/dist/lib/api.d.ts +0 -96
- package/dist/lib/feature-flags.d.ts +0 -9
- package/dist/lib/features.d.ts +0 -3
- package/dist/lib/fetchClient.d.ts +0 -19
- package/dist/lib/getContentType.d.ts +0 -1
- package/dist/lib/hooks.d.ts +0 -15
- package/dist/lib/utils.d.ts +0 -8
package/dist/switch.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React_2 from 'react';
|
|
2
|
+
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
3
|
+
|
|
4
|
+
export declare const Switch: React_2.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
|
|
6
|
+
export { }
|
package/dist/table.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React_2 from 'react';
|
|
2
|
+
|
|
3
|
+
export declare const Table: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableElement> & React_2.RefAttributes<HTMLTableElement>>;
|
|
4
|
+
|
|
5
|
+
export declare const TableBody: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
|
|
6
|
+
|
|
7
|
+
export declare const TableCaption: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableCaptionElement> & React_2.RefAttributes<HTMLTableCaptionElement>>;
|
|
8
|
+
|
|
9
|
+
export declare const TableCell: React_2.ForwardRefExoticComponent<React_2.TdHTMLAttributes<HTMLTableCellElement> & React_2.RefAttributes<HTMLTableCellElement>>;
|
|
10
|
+
|
|
11
|
+
export declare const TableFooter: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
|
|
12
|
+
|
|
13
|
+
export declare const TableHead: React_2.ForwardRefExoticComponent<React_2.ThHTMLAttributes<HTMLTableCellElement> & React_2.RefAttributes<HTMLTableCellElement>>;
|
|
14
|
+
|
|
15
|
+
export declare const TableHeader: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableSectionElement> & React_2.RefAttributes<HTMLTableSectionElement>>;
|
|
16
|
+
|
|
17
|
+
export declare const TableRow: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLTableRowElement> & React_2.RefAttributes<HTMLTableRowElement>>;
|
|
18
|
+
|
|
19
|
+
export { }
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as React_2 from 'react';
|
|
2
|
+
|
|
3
|
+
export declare const Textarea: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React_2.RefAttributes<HTMLTextAreaElement>>;
|
|
4
|
+
|
|
5
|
+
export { }
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React_2 from 'react';
|
|
2
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
3
|
+
|
|
4
|
+
export declare const Tooltip: React_2.FC<TooltipPrimitive.TooltipProps>;
|
|
5
|
+
|
|
6
|
+
export declare const TooltipContent: React_2.ForwardRefExoticComponent<TooltipContentProps & React_2.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
|
|
8
|
+
export declare interface TooltipContentProps extends React_2.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
|
|
9
|
+
background?: string;
|
|
10
|
+
textColor?: string;
|
|
11
|
+
borderColor?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export declare const TooltipProvider: ({ delayDuration, ...props }: TooltipPrimitive.TooltipProviderProps) => React_2.JSX.Element;
|
|
15
|
+
|
|
16
|
+
export declare const TooltipTrigger: React_2.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
|
|
17
|
+
|
|
18
|
+
export { }
|
package/dist/{components/two-level-combobox/two-level-combobox.d.ts → two-level-combobox.d.ts}
RENAMED
|
@@ -1,15 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import * as React_2 from 'react';
|
|
2
|
+
|
|
3
|
+
declare interface ComboboxItem {
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: React_2.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export declare function TwoLevelCombobox({ firstLevelItems, fetchSecondLevelItems, onSelectionChange, firstLevelLabel, secondLevelLabel, firstLevelPlaceholder, className, debugMode, displayLabel, }: TwoLevelComboboxProps): React_2.JSX.Element;
|
|
10
|
+
|
|
11
|
+
export declare interface TwoLevelComboboxProps {
|
|
12
|
+
firstLevelItems: ComboboxItem[];
|
|
13
|
+
fetchSecondLevelItems: (firstLevelId: string) => Promise<ComboboxItem[]>;
|
|
14
|
+
onSelectionChange?: (firstLevel: ComboboxItem | null, secondLevel: ComboboxItem | null) => void;
|
|
15
|
+
firstLevelLabel?: string;
|
|
16
|
+
secondLevelLabel?: string;
|
|
17
|
+
firstLevelPlaceholder?: string;
|
|
18
|
+
secondLevelPlaceholder?: string;
|
|
19
|
+
className?: string;
|
|
20
|
+
debugMode?: boolean;
|
|
21
|
+
displayLabel?: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { }
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# Markdown Editor/Viewer Component Implementation Checklist
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This checklist tracks the implementation progress for the Markdown Editor/Viewer component based on `markdown-editor.spec.md`. The component will replace FormattedMessage.tsx while maintaining compatibility with the existing multimedia/embed system.
|
|
6
|
+
|
|
7
|
+
### Implementation Strategy
|
|
8
|
+
- **6-Phase Approach**: Foundation → Multimedia → Suggestions → Streaming → Collaboration → Integration
|
|
9
|
+
- **Monorepo Strategy**:
|
|
10
|
+
- All editor-related development, including the main component (`SimpleEditor` evolving into `MarkdownEditorViewer`), UI primitives, hooks, and extensions, will be centralized within the **`@brainfish-ai/tiptap`** package.
|
|
11
|
+
- **Incremental Development**: Build on existing FormattedMessage.tsx and embed system patterns
|
|
12
|
+
- **TipTap Foundation**: Core editing engine with custom extensions
|
|
13
|
+
- **Backward Compatibility**: Seamless integration with existing codebase
|
|
14
|
+
|
|
15
|
+
### Dependencies Setup
|
|
16
|
+
- [x] Install TipTap dependencies (@tiptap/react, @tiptap/starter-kit, @tiptap/extension-table, etc.)
|
|
17
|
+
- [ ] Install collaboration dependencies (yjs, y-webrtc, @tiptap/extension-collaboration)
|
|
18
|
+
- [x] Install markdown processing dependencies (remark, unified, rehype)
|
|
19
|
+
- [~] Verify existing dependencies (react-markdown, remark-gfm, @radix-ui/*, framer-motion)
|
|
20
|
+
|
|
21
|
+
## Phase 1: Foundation and Basic Editor (Week 1-2)
|
|
22
|
+
**Objective**: Create basic TipTap editor with markdown conversion and mode switching
|
|
23
|
+
|
|
24
|
+
### Core Component Structure
|
|
25
|
+
- [x] Create MarkdownEditorViewer component to lazy load ContentViewer and SimpleEditor component depending on mode
|
|
26
|
+
- [x] Adapt existing file structure in `packages/tiptap/` for new components (Viewer, Suggestions, etc.)
|
|
27
|
+
- [x] Implement lazy loading for Editor and Viewer modes within `MarkdownEditorViewer.tsx`
|
|
28
|
+
- [x] Add error boundaries
|
|
29
|
+
|
|
30
|
+
### Markdown Translation Layer
|
|
31
|
+
- [x] Create `markdownTranslator.ts` utility
|
|
32
|
+
- [x] Implement markdown to TipTap JSON conversion using remark-gfm
|
|
33
|
+
- [x] Implement TipTap JSON to markdown conversion
|
|
34
|
+
- [x] Handle existing FormattedMessage content patterns (video prefixes, etc.)
|
|
35
|
+
- [x] Add proper error handling and fallbacks
|
|
36
|
+
- [x] Preserve multimedia embeds and custom HTML elements
|
|
37
|
+
|
|
38
|
+
### Basic TipTap Editor
|
|
39
|
+
- [x] Initialize TipTap editor with StarterKit extensions
|
|
40
|
+
- [x] Apply consistent Tailwind classes matching FormattedMessage styling
|
|
41
|
+
- [x] Add focus management and event handling
|
|
42
|
+
- [x] Handle content updates and markdown conversion
|
|
43
|
+
- [x] Implement proper cleanup and memory management
|
|
44
|
+
|
|
45
|
+
### Read-Only Viewer
|
|
46
|
+
- [x] Create `ViewerContent.tsx` component (as `SimpleViewer.tsx`)
|
|
47
|
+
- [x] Use TipTap's non-editable mode for viewing
|
|
48
|
+
- [x] Apply identical styling classes from FormattedMessage
|
|
49
|
+
- [x] Support all existing markdown features (tables, lists, headings)
|
|
50
|
+
- [~] Implement proper link handling and UTM parameter addition
|
|
51
|
+
- [x] Handle streaming content display
|
|
52
|
+
- [x] Maintain consistent component rendering patterns
|
|
53
|
+
|
|
54
|
+
### Mode Switching
|
|
55
|
+
- [x] Implement seamless edit/readonly mode switching
|
|
56
|
+
- [x] Preserve content during mode changes
|
|
57
|
+
- [x] Handle focus management during switches
|
|
58
|
+
- [ ] Test content integrity across mode changes
|
|
59
|
+
|
|
60
|
+
### **Phase 1 Success Criteria**
|
|
61
|
+
- [ ] Editor initializes in under 500ms
|
|
62
|
+
- [ ] Mode switching completes in under 100ms
|
|
63
|
+
- [ ] Content preservation across all operations
|
|
64
|
+
- [ ] Styling consistency with FormattedMessage
|
|
65
|
+
- [ ] Unit tests passing for core functionality
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Phase 2: Multimedia System Integration (Week 3)
|
|
70
|
+
**Objective**: Integrate existing embed system and add multimedia handling capabilities
|
|
71
|
+
|
|
72
|
+
### Multimedia Extension
|
|
73
|
+
- [x] Create `MultimediaExtension.ts` for TipTap in `@brainfish-ai/tiptap` package (as `image-upload-node-extension.ts` and `video-embed-extension.ts`)
|
|
74
|
+
- [x] Integrate with existing EmbedComponent system from embeds/index.tsx
|
|
75
|
+
- [~] Support all existing embed types (YouTube, Vimeo, Loom, etc.)
|
|
76
|
+
- [x] Implement drag-and-drop file uploads using react-dropzone patterns
|
|
77
|
+
- [ ] Handle paste event handling for URLs and files
|
|
78
|
+
- [x] Maintain consistency with FormattedMessage multimedia rendering
|
|
79
|
+
- [x] Add proper error handling for unsupported media types
|
|
80
|
+
|
|
81
|
+
### Media Upload Component
|
|
82
|
+
- [x] Create `MediaUpload.tsx` component (as `image-upload-node.tsx`)
|
|
83
|
+
- [x] Use react-dropzone for file upload UI (custom implementation)
|
|
84
|
+
- [x] Implement progress indicators and validation
|
|
85
|
+
- [~] Handle multiple file types (images, videos, documents)
|
|
86
|
+
- [x] Add file size and type validation with error messages
|
|
87
|
+
- [x] Support drag-and-drop and click-to-upload interactions
|
|
88
|
+
- [x] Integrate with existing file upload utilities and styles
|
|
89
|
+
|
|
90
|
+
### Media Renderer
|
|
91
|
+
- [x] Create `MediaRenderer.tsx` component (logic is inside node views)
|
|
92
|
+
- [x] Reuse existing embed components (Youtube, Vimeo, ZoomableImage, etc.)
|
|
93
|
+
- [x] Handle video content type prefixes and attachment redirects
|
|
94
|
+
- [x] Implement proper error states and loading indicators
|
|
95
|
+
- [~] Support all multimedia types defined in specification
|
|
96
|
+
- [x] Provide consistent styling and responsive behavior
|
|
97
|
+
|
|
98
|
+
### Media Toolbar
|
|
99
|
+
- [x] Create `MediaToolbar.tsx` component (as part of `simple-editor.tsx`)
|
|
100
|
+
- [~] Add buttons for different media insertion types
|
|
101
|
+
- [x] Use existing UI components (Button, Tooltip, DropdownMenu)
|
|
102
|
+
- [x] Implement keyboard shortcuts for media insertion
|
|
103
|
+
- [x] Show appropriate icons using @phosphor-icons/react (custom icons used)
|
|
104
|
+
- [x] Integrate with TipTap editor commands for media insertion
|
|
105
|
+
- [ ] Provide contextual media editing options (resize, align, etc.)
|
|
106
|
+
|
|
107
|
+
### **Phase 2 Success Criteria**
|
|
108
|
+
- [ ] 100% compatibility with existing embed system
|
|
109
|
+
- [ ] All FormattedMessage media types supported
|
|
110
|
+
- [ ] Drag-and-drop functionality working
|
|
111
|
+
- [ ] File upload with progress indicators
|
|
112
|
+
- [ ] Error handling for unsupported media
|
|
113
|
+
- [ ] Integration tests passing
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Phase 3: Suggestion System (Week 4)
|
|
118
|
+
**Objective**: Implement visual suggestion system with accept/reject functionality
|
|
119
|
+
|
|
120
|
+
### Suggestion Extension
|
|
121
|
+
- [ ] Create `SuggestionExtension.ts` for TipTap in `@brainfish-ai/tiptap` package
|
|
122
|
+
- [ ] Add suggestion marks to document nodes with visual styling
|
|
123
|
+
- [ ] Implement three suggestion types: insert, delete, replace
|
|
124
|
+
- [ ] Provide keyboard navigation through suggestions (Tab/Shift-Tab)
|
|
125
|
+
- [ ] Handle suggestion acceptance and rejection with proper cleanup
|
|
126
|
+
- [ ] Track suggestion metadata (author, timestamp, reason)
|
|
127
|
+
- [ ] Implement conflict resolution for overlapping suggestions
|
|
128
|
+
|
|
129
|
+
### Suggestion Visual Styles
|
|
130
|
+
- [ ] Create suggestion CSS styles with consistent color schemes
|
|
131
|
+
- [ ] Provide clear visual distinction between insert/delete/replace
|
|
132
|
+
- [ ] Implement hover and focus states for suggestions
|
|
133
|
+
- [ ] Support dark mode with appropriate color adjustments
|
|
134
|
+
- [ ] Maintain accessibility standards for color contrast
|
|
135
|
+
- [ ] Add smooth transitions for suggestion state changes
|
|
136
|
+
|
|
137
|
+
### Suggestion List Component
|
|
138
|
+
- [ ] Create `SuggestionList.tsx` component
|
|
139
|
+
- [ ] Display all suggestions in sidebar panel
|
|
140
|
+
- [ ] Group suggestions by type with filtering options
|
|
141
|
+
- [ ] Show suggestion metadata (author, timestamp, reason)
|
|
142
|
+
- [ ] Implement batch accept/reject operations
|
|
143
|
+
- [ ] Add search and sorting functionality
|
|
144
|
+
- [ ] Use existing UI components (ScrollArea, Button, Badge)
|
|
145
|
+
- [ ] Implement keyboard navigation and focus management
|
|
146
|
+
|
|
147
|
+
### Suggestion Navigation
|
|
148
|
+
- [ ] Create `useSuggestionNavigation` hook
|
|
149
|
+
- [ ] Manage active suggestion focus state
|
|
150
|
+
- [ ] Implement keyboard navigation between suggestions
|
|
151
|
+
- [ ] Provide methods for programmatic navigation
|
|
152
|
+
- [ ] Handle edge cases (no suggestions, deleted suggestions)
|
|
153
|
+
- [ ] Integrate with TipTap editor focus management
|
|
154
|
+
- [ ] Implement smooth scrolling to active suggestions
|
|
155
|
+
|
|
156
|
+
### **Phase 3 Success Criteria**
|
|
157
|
+
- [ ] All suggestion types visually distinct
|
|
158
|
+
- [ ] Keyboard navigation working smoothly
|
|
159
|
+
- [ ] Accept/reject operations functioning
|
|
160
|
+
- [ ] Conflict resolution working
|
|
161
|
+
- [ ] Accessibility compliance verified
|
|
162
|
+
- [ ] Performance with large suggestion lists
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Phase 4: Streaming Content Support (Week 5)
|
|
167
|
+
**Objective**: Implement real-time streaming content functionality
|
|
168
|
+
|
|
169
|
+
### Streaming Extension
|
|
170
|
+
- [ ] Create `StreamingExtension.ts` for TipTap in `@brainfish-ai/tiptap` package
|
|
171
|
+
- [ ] Handle real-time content insertion at document end
|
|
172
|
+
- [ ] Manage streaming state and prevent editing during streams
|
|
173
|
+
- [ ] Implement content buffering and batch updates for performance
|
|
174
|
+
- [ ] Provide visual indicators for streaming content
|
|
175
|
+
- [ ] Handle stream interruption and recovery gracefully
|
|
176
|
+
- [ ] Maintain document structure during streaming updates
|
|
177
|
+
|
|
178
|
+
### Streaming Hook
|
|
179
|
+
- [ ] Create `useStreaming` hook
|
|
180
|
+
- [ ] Manage streaming state and content buffering
|
|
181
|
+
- [ ] Implement debounced content updates for performance
|
|
182
|
+
- [ ] Handle streaming errors and connection issues
|
|
183
|
+
- [ ] Provide streaming progress and status information
|
|
184
|
+
- [ ] Integrate with TipTap editor streaming extension
|
|
185
|
+
- [ ] Implement proper cleanup and memory management
|
|
186
|
+
|
|
187
|
+
### Streaming Indicator Component
|
|
188
|
+
- [ ] Create `StreamingIndicator.tsx` component
|
|
189
|
+
- [ ] Show visual feedback during content streaming
|
|
190
|
+
- [ ] Display streaming progress and connection status
|
|
191
|
+
- [ ] Implement pulsing animation for active streaming
|
|
192
|
+
- [ ] Provide error states and retry functionality
|
|
193
|
+
- [ ] Use existing UI components (Progress, Badge, Button)
|
|
194
|
+
- [ ] Maintain consistent styling with rest of editor
|
|
195
|
+
|
|
196
|
+
### Streaming Buffer Management
|
|
197
|
+
- [ ] Create `StreamingBuffer` utility class
|
|
198
|
+
- [ ] Manage content buffering and batch processing
|
|
199
|
+
- [ ] Implement intelligent content chunking for performance
|
|
200
|
+
- [ ] Handle malformed or incomplete streaming content
|
|
201
|
+
- [ ] Provide content validation and sanitization
|
|
202
|
+
- [ ] Implement backpressure handling for fast streams
|
|
203
|
+
- [ ] Maintain content integrity during streaming
|
|
204
|
+
|
|
205
|
+
### **Phase 4 Success Criteria**
|
|
206
|
+
- [ ] Streaming content updates at 1000+ chars/second
|
|
207
|
+
- [ ] Buffer overflow protection working
|
|
208
|
+
- [ ] Error handling and recovery functioning
|
|
209
|
+
- [ ] Performance with large streams maintained
|
|
210
|
+
- [ ] Integration with editor state working
|
|
211
|
+
- [ ] Memory usage under control
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Phase 5: Collaboration Features (Week 6)
|
|
216
|
+
**Objective**: Implement real-time collaboration with cursors and presence
|
|
217
|
+
|
|
218
|
+
### Collaboration Extension
|
|
219
|
+
- [ ] Create `CollaborationExtension.ts` in `@brainfish-ai/tiptap` package
|
|
220
|
+
- [ ] Integrate with Yjs for operational transformation
|
|
221
|
+
- [ ] Implement real-time cursor tracking and presence
|
|
222
|
+
- [ ] Handle conflict resolution for simultaneous edits
|
|
223
|
+
- [ ] Provide user identification and avatar display
|
|
224
|
+
- [ ] Implement connection management and reconnection
|
|
225
|
+
- [ ] Maintain document consistency across all clients
|
|
226
|
+
|
|
227
|
+
### Collaborator Components
|
|
228
|
+
- [ ] Create `CollaboratorList.tsx` component
|
|
229
|
+
- [ ] Show all active collaborators with avatars and names
|
|
230
|
+
- [ ] Display real-time presence indicators (typing, idle, away)
|
|
231
|
+
- [ ] Implement user color coding for cursor identification
|
|
232
|
+
- [ ] Show connection status for each collaborator
|
|
233
|
+
- [ ] Use existing UI components (Avatar, Badge, Tooltip)
|
|
234
|
+
- [ ] Handle user interactions like viewing collaborator location
|
|
235
|
+
|
|
236
|
+
### Cursor Management System
|
|
237
|
+
- [ ] Create `CollaboratorCursor.tsx` component
|
|
238
|
+
- [ ] Render real-time cursor positions for all collaborators
|
|
239
|
+
- [ ] Show user names and colors for cursor identification
|
|
240
|
+
- [ ] Implement smooth cursor animations and transitions
|
|
241
|
+
- [ ] Handle cursor visibility based on viewport
|
|
242
|
+
- [ ] Provide selection range indicators for collaborators
|
|
243
|
+
- [ ] Integrate with TipTap collaboration cursor system
|
|
244
|
+
|
|
245
|
+
### Presence Management
|
|
246
|
+
- [ ] Create `useCollaborationPresence` hook
|
|
247
|
+
- [ ] Manage user presence state (active, idle, away)
|
|
248
|
+
- [ ] Implement typing indicators with debounced updates
|
|
249
|
+
- [ ] Handle connection status and reconnection logic
|
|
250
|
+
- [ ] Provide methods for sending presence updates
|
|
251
|
+
- [ ] Manage awareness state for all collaborators
|
|
252
|
+
- [ ] Implement proper cleanup and memory management
|
|
253
|
+
|
|
254
|
+
### **Phase 5 Success Criteria**
|
|
255
|
+
- [ ] Real-time collaboration working
|
|
256
|
+
- [ ] Cursor synchronization accurate
|
|
257
|
+
- [ ] Conflict resolution functioning
|
|
258
|
+
- [ ] Connection handling robust
|
|
259
|
+
- [ ] Presence indicators working
|
|
260
|
+
- [ ] Performance with multiple users maintained
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Phase 6: Integration and Polish (Week 7-8)
|
|
265
|
+
**Objective**: Complete integration, testing, and production readiness
|
|
266
|
+
|
|
267
|
+
### FormattedMessage Migration
|
|
268
|
+
- [ ] Create migration utilities for seamless replacement
|
|
269
|
+
- [ ] Maintain backward compatibility with existing props
|
|
270
|
+
- [ ] Implement feature flags for gradual rollout
|
|
271
|
+
- [ ] Provide fallback mechanisms for unsupported features
|
|
272
|
+
- [ ] Handle existing content migration and formatting preservation
|
|
273
|
+
- [ ] Create migration wrapper component for compatibility
|
|
274
|
+
|
|
275
|
+
### Comprehensive Error Handling
|
|
276
|
+
- [ ] Implement global error boundaries for graceful degradation
|
|
277
|
+
- [ ] Provide detailed error reporting and logging
|
|
278
|
+
- [ ] Handle network failures and API errors gracefully
|
|
279
|
+
- [ ] Implement retry mechanisms for recoverable errors
|
|
280
|
+
- [ ] Provide user-friendly error messages and recovery actions
|
|
281
|
+
- [ ] Integrate with existing error tracking systems
|
|
282
|
+
|
|
283
|
+
### Performance Optimization
|
|
284
|
+
- [ ] Implement React.memo and useMemo for expensive operations
|
|
285
|
+
- [ ] Add virtual scrolling for large documents
|
|
286
|
+
- [ ] Optimize bundle size with dynamic imports
|
|
287
|
+
- [ ] Implement debouncing for frequent operations
|
|
288
|
+
- [ ] Use web workers for heavy computations
|
|
289
|
+
- [ ] Implement efficient re-rendering strategies
|
|
290
|
+
|
|
291
|
+
### Accessibility Implementation
|
|
292
|
+
- [ ] Provide proper ARIA labels and roles for all interactive elements
|
|
293
|
+
- [ ] Implement keyboard navigation for all functionality
|
|
294
|
+
- [ ] Support screen readers with descriptive text and live regions
|
|
295
|
+
- [ ] Maintain focus management during mode switches and updates
|
|
296
|
+
- [ ] Provide high contrast mode support
|
|
297
|
+
- [ ] Verify color contrast ratios throughout interface
|
|
298
|
+
|
|
299
|
+
### Comprehensive Testing Suite
|
|
300
|
+
- [ ] Create unit tests for all major components
|
|
301
|
+
- [ ] Implement integration tests for workflows
|
|
302
|
+
- [ ] Add visual regression testing for UI components
|
|
303
|
+
- [ ] Test accessibility features with automated tools
|
|
304
|
+
- [ ] Include performance benchmarks and memory leak detection
|
|
305
|
+
- [ ] Test cross-browser compatibility
|
|
306
|
+
- [ ] Implement end-to-end testing scenarios
|
|
307
|
+
|
|
308
|
+
### Documentation and Migration Guide
|
|
309
|
+
- [ ] Create API documentation for all components
|
|
310
|
+
- [ ] Write migration guide from FormattedMessage
|
|
311
|
+
- [ ] Document all prop interfaces and callbacks
|
|
312
|
+
- [ ] Provide usage examples and best practices
|
|
313
|
+
- [ ] Create troubleshooting guide
|
|
314
|
+
- [ ] Document performance considerations
|
|
315
|
+
|
|
316
|
+
### **Phase 6 Success Criteria**
|
|
317
|
+
- [ ] All functionality working end-to-end
|
|
318
|
+
- [ ] Performance benchmarks met (initialization < 500ms, typing lag < 50ms)
|
|
319
|
+
- [ ] Accessibility compliance verified (WCAG 2.1 AA)
|
|
320
|
+
- [ ] Cross-browser testing complete
|
|
321
|
+
- [ ] Migration path validated
|
|
322
|
+
- [ ] Production deployment ready
|