@signalflare-ai/ui 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -1
- package/ai/component-registry.json +208 -550
- package/ai/component-registry.md +3042 -3115
- package/ai/schemas.ts +504 -96
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts.map +1 -1
- package/dist/{ai-actions-BdUZI3Gk.js → ai-actions-CBfz5XEf.js} +4 -4
- package/dist/{ai-actions-BdUZI3Gk.js.map → ai-actions-CBfz5XEf.js.map} +1 -1
- package/dist/{ai-agent-card-BR2NIYhi.js → ai-agent-card-CByAUe0q.js} +3 -3
- package/dist/ai-agent-card-CByAUe0q.js.map +1 -0
- package/dist/{ai-approval-Ba7mrKba.js → ai-approval-Ci8N70a7.js} +4 -3
- package/dist/{ai-approval-Ba7mrKba.js.map → ai-approval-Ci8N70a7.js.map} +1 -1
- package/dist/{ai-code-block-CZtoL73R.js → ai-code-block-P9TJHvaC.js} +37 -39
- package/dist/ai-code-block-P9TJHvaC.js.map +1 -0
- package/dist/{ai-conversation-Cc7WlaBg.js → ai-conversation-Qslfdi1t.js} +28 -42
- package/dist/ai-conversation-Qslfdi1t.js.map +1 -0
- package/dist/{ai-info-banner-C7EWPBj7.js → ai-info-banner-B_9vtGK3.js} +3 -3
- package/dist/{ai-info-banner-C7EWPBj7.js.map → ai-info-banner-B_9vtGK3.js.map} +1 -1
- package/dist/{ai-message-Bp7L68U_.js → ai-message-Ci3gwM7G.js} +6 -6
- package/dist/{ai-message-Bp7L68U_.js.map → ai-message-Ci3gwM7G.js.map} +1 -1
- package/dist/{ai-mission-header-TiCJfTNt.js → ai-mission-header-CaBc19-t.js} +2 -2
- package/dist/{ai-mission-header-TiCJfTNt.js.map → ai-mission-header-CaBc19-t.js.map} +1 -1
- package/dist/{ai-part-group-DNb9I446.js → ai-part-group-Dx1Mr92B.js} +5 -4
- package/dist/ai-part-group-Dx1Mr92B.js.map +1 -0
- package/dist/{ai-prompt-input-BVvov_KF.js → ai-prompt-input-Bm4XoSj2.js} +19 -17
- package/dist/ai-prompt-input-Bm4XoSj2.js.map +1 -0
- package/dist/{ai-question-GPPMk7YM.js → ai-question-OyJovxGe.js} +4 -3
- package/dist/{ai-question-GPPMk7YM.js.map → ai-question-OyJovxGe.js.map} +1 -1
- package/dist/{ai-reasoning-_feFjk56.js → ai-reasoning-BLfBXx3F.js} +9 -5
- package/dist/ai-reasoning-BLfBXx3F.js.map +1 -0
- package/dist/{ai-response-CvjV3WhV.js → ai-response-hbVCZJmo.js} +2 -2
- package/dist/{ai-response-CvjV3WhV.js.map → ai-response-hbVCZJmo.js.map} +1 -1
- package/dist/{ai-shimmer-j6lKIrjj.js → ai-shimmer-BamNMNK3.js} +2 -2
- package/dist/{ai-shimmer-j6lKIrjj.js.map → ai-shimmer-BamNMNK3.js.map} +1 -1
- package/dist/{ai-status-badge-CSU_QOdz.js → ai-status-badge-BZLczdkI.js} +2 -2
- package/dist/{ai-status-badge-CSU_QOdz.js.map → ai-status-badge-BZLczdkI.js.map} +1 -1
- package/dist/{ai-streaming-text-IWW1BhvZ.js → ai-streaming-text-DgYu64UH.js} +1 -1
- package/dist/{ai-streaming-text-IWW1BhvZ.js.map → ai-streaming-text-DgYu64UH.js.map} +1 -1
- package/dist/{ai-subagent-JA4iIMW3.js → ai-subagent-p97AI1h9.js} +3 -3
- package/dist/{ai-subagent-JA4iIMW3.js.map → ai-subagent-p97AI1h9.js.map} +1 -1
- package/dist/{ai-suggestion-BdO6MBuH.js → ai-suggestion-Bj6vF7CT.js} +3 -3
- package/dist/{ai-suggestion-BdO6MBuH.js.map → ai-suggestion-Bj6vF7CT.js.map} +1 -1
- package/dist/{ai-task-list-DYw4R1FA.js → ai-task-list-C_UQYpk9.js} +6 -4
- package/dist/{ai-task-list-DYw4R1FA.js.map → ai-task-list-C_UQYpk9.js.map} +1 -1
- package/dist/{ai-timeline-C42tOUT8.js → ai-timeline-CePL1LOU.js} +3 -3
- package/dist/ai-timeline-CePL1LOU.js.map +1 -0
- package/dist/{ai-tool-03jOTwUI.js → ai-tool-CfRcwmHT.js} +17 -11
- package/dist/ai-tool-CfRcwmHT.js.map +1 -0
- package/dist/{ai-usage-bar-BRf5LC_b.js → ai-usage-bar-45pVRCGA.js} +2 -2
- package/dist/{ai-usage-bar-BRf5LC_b.js.map → ai-usage-bar-45pVRCGA.js.map} +1 -1
- package/dist/{badge-BheXjMc8.js → badge-Beb-6uut.js} +5 -5
- package/dist/{badge-BheXjMc8.js.map → badge-Beb-6uut.js.map} +1 -1
- package/dist/{banner-CcsjunJg.js → banner-CCEksxPg.js} +3 -3
- package/dist/{banner-CcsjunJg.js.map → banner-CCEksxPg.js.map} +1 -1
- package/dist/{breadcrumbs-CouSyy3H.js → breadcrumbs-HiTmgaZ4.js} +5 -5
- package/dist/{breadcrumbs-CouSyy3H.js.map → breadcrumbs-HiTmgaZ4.js.map} +1 -1
- package/dist/{button-CO6-qPax.js → button-BHOgXJRU.js} +4 -4
- package/dist/{button-CO6-qPax.js.map → button-BHOgXJRU.js.map} +1 -1
- package/dist/catalog.js +1 -1
- package/dist/catalog.js.map +1 -1
- package/dist/{chart-Dg0qUeSc.js → chart-B9FfZdKs.js} +7 -7
- package/dist/chart-B9FfZdKs.js.map +1 -0
- package/dist/{checkbox-D7p4QKsC.js → checkbox-Cy_OCyay.js} +3 -3
- package/dist/{checkbox-D7p4QKsC.js.map → checkbox-Cy_OCyay.js.map} +1 -1
- package/dist/{clipboard-text-kLaMogs3.js → clipboard-text-CKSvNp9L.js} +6 -5
- package/dist/clipboard-text-CKSvNp9L.js.map +1 -0
- package/dist/{cn-YROP2_ox.js → cn-CmAOpn49.js} +2 -2
- package/dist/{cn-YROP2_ox.js.map → cn-CmAOpn49.js.map} +1 -1
- package/dist/{code-BN8InC0G.js → code-JsQz-0G_.js} +4 -4
- package/dist/{code-BN8InC0G.js.map → code-JsQz-0G_.js.map} +1 -1
- package/dist/{collapsible-D_ueZ0jz.js → collapsible-1kOZ-89L.js} +2 -2
- package/dist/{collapsible-D_ueZ0jz.js.map → collapsible-1kOZ-89L.js.map} +1 -1
- package/dist/{combobox-B7TOK0U2.js → combobox-CQwDmqgA.js} +4 -4
- package/dist/{combobox-B7TOK0U2.js.map → combobox-CQwDmqgA.js.map} +1 -1
- package/dist/command-line/cli.js +3 -3
- package/dist/{command-palette-CuNUyJca.js → command-palette-Bkuv3e6o.js} +20 -5
- package/dist/command-palette-Bkuv3e6o.js.map +1 -0
- package/dist/components/ai-actions.js +1 -1
- package/dist/components/ai-agent-card.js +1 -1
- package/dist/components/ai-approval.js +1 -1
- package/dist/components/ai-code-block.js +1 -1
- package/dist/components/ai-conversation.js +1 -1
- package/dist/components/ai-info-banner.js +1 -1
- package/dist/components/ai-message.js +1 -1
- package/dist/components/ai-mission-header.js +1 -1
- package/dist/components/ai-part-group.js +1 -1
- package/dist/components/ai-prompt-input.js +1 -1
- package/dist/components/ai-question.js +1 -1
- package/dist/components/ai-reasoning.js +1 -1
- package/dist/components/ai-response.js +1 -1
- package/dist/components/ai-shimmer.js +1 -1
- package/dist/components/ai-status-badge.js +1 -1
- package/dist/components/ai-streaming-text.js +1 -1
- package/dist/components/ai-subagent.js +1 -1
- package/dist/components/ai-suggestion.js +1 -1
- package/dist/components/ai-task-list.js +1 -1
- package/dist/components/ai-timeline.js +1 -1
- package/dist/components/ai-tool.js +1 -1
- package/dist/components/ai-usage-bar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/breadcrumbs.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/chart.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/clipboard-text.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +1 -1
- package/dist/components/data-grid.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/filters.js +1 -1
- package/dist/components/flow.js +1 -1
- package/dist/components/grid.js +1 -1
- package/dist/components/input.js +2 -2
- package/dist/components/label.js +1 -1
- package/dist/components/layer-card.js +1 -1
- package/dist/components/link.js +3 -3
- package/dist/components/link.js.map +1 -1
- package/dist/components/loader.js +2 -2
- package/dist/components/menubar.js +1 -1
- package/dist/components/meter.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sensitive-input.js +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/signalflare-ai-logo.js +1 -1
- package/dist/components/sparkline.js +1 -1
- package/dist/components/stat-card.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/text-roll.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-toggle.js +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/use-agent-harness.js +1 -1
- package/dist/{data-grid-DGHmU0w3.js → data-grid-DDSFMHud.js} +136 -53
- package/dist/data-grid-DDSFMHud.js.map +1 -0
- package/dist/{date-picker--ox89RBy.js → date-picker-O34AqG3f.js} +2 -2
- package/dist/{date-picker--ox89RBy.js.map → date-picker-O34AqG3f.js.map} +1 -1
- package/dist/{date-range-picker-DVa7QBqE.js → date-range-picker-YKYvum_r.js} +29 -39
- package/dist/{date-range-picker-DVa7QBqE.js.map → date-range-picker-YKYvum_r.js.map} +1 -1
- package/dist/{dialog-Bv1oSFOd.js → dialog-DYqu4aDO.js} +3 -3
- package/dist/{dialog-Bv1oSFOd.js.map → dialog-DYqu4aDO.js.map} +1 -1
- package/dist/{dist-B6iWiWwp.js → dist-6AtBsaJE.js} +153 -47
- package/dist/dist-6AtBsaJE.js.map +1 -0
- package/dist/{dropdown-B_nrGXjV.js → dropdown-XzbnRLYR.js} +15 -5
- package/dist/dropdown-XzbnRLYR.js.map +1 -0
- package/dist/{echart-CdOUaT-r.js → echart-DGBIVAv1.js} +23 -57
- package/dist/{echart-CdOUaT-r.js.map → echart-DGBIVAv1.js.map} +1 -1
- package/dist/{empty-DZnN0zKX.js → empty-C1tAkawe.js} +6 -6
- package/dist/{empty-DZnN0zKX.js.map → empty-C1tAkawe.js.map} +1 -1
- package/dist/{field-B_yVof52.js → field-DBpFzzBS.js} +3 -3
- package/dist/{field-B_yVof52.js.map → field-DBpFzzBS.js.map} +1 -1
- package/dist/{filters-cpJCY21R.js → filters-SmEl93za.js} +10 -10
- package/dist/filters-SmEl93za.js.map +1 -0
- package/dist/{flow-B4v198ot.js → flow-BLzgbq1T.js} +6 -6
- package/dist/flow-BLzgbq1T.js.map +1 -0
- package/dist/genui.js +2 -2
- package/dist/genui.js.map +1 -1
- package/dist/{grid-CEd64Lnh.js → grid-CifjQL-5.js} +2 -2
- package/dist/{grid-CEd64Lnh.js.map → grid-CifjQL-5.js.map} +1 -1
- package/dist/{highlight-to-react-D0Yav4jk.js → highlight-to-react-DN9dUCS2.js} +9 -15
- package/dist/highlight-to-react-DN9dUCS2.js.map +1 -0
- package/dist/index.js +71 -71
- package/dist/index.js.map +1 -1
- package/dist/{input-ClB_E4Lb.js → input-COmx2M_R.js} +5 -5
- package/dist/{input-ClB_E4Lb.js.map → input-COmx2M_R.js.map} +1 -1
- package/dist/{input-B2bbijRh.js → input-GkfMQZC_.js} +3 -3
- package/dist/{input-B2bbijRh.js.map → input-GkfMQZC_.js.map} +1 -1
- package/dist/{label-DUv_urO1.js → label-CiGZ464N.js} +3 -3
- package/dist/{label-DUv_urO1.js.map → label-CiGZ464N.js.map} +1 -1
- package/dist/{layer-card-BK7eYfwn.js → layer-card-8l8GuLQr.js} +2 -2
- package/dist/{layer-card-BK7eYfwn.js.map → layer-card-8l8GuLQr.js.map} +1 -1
- package/dist/{layout-DJHMMap2.js → layout-CWBE0qwx.js} +258 -154
- package/dist/layout-CWBE0qwx.js.map +1 -0
- package/dist/{link-provider-BUZKXaNE.js → link-provider-BSn8YJon.js} +2 -2
- package/dist/link-provider-BSn8YJon.js.map +1 -0
- package/dist/{loader-DAcc-Uag.js → loader-BEMz8pJO.js} +1 -1
- package/dist/{loader-DAcc-Uag.js.map → loader-BEMz8pJO.js.map} +1 -1
- package/dist/{measured-text-BI3dTJmH.js → measured-text-CXkdw9Yr.js} +45 -30
- package/dist/measured-text-CXkdw9Yr.js.map +1 -0
- package/dist/{menubar-Cxf3xeAt.js → menubar-CoOr4ocj.js} +3 -3
- package/dist/{menubar-Cxf3xeAt.js.map → menubar-CoOr4ocj.js.map} +1 -1
- package/dist/{meter-BFFe9l5b.js → meter-Pf_VOl59.js} +2 -2
- package/dist/{meter-BFFe9l5b.js.map → meter-Pf_VOl59.js.map} +1 -1
- package/dist/{pagination-yS372Tr4.js → pagination-DSY279Ta.js} +2 -2
- package/dist/{pagination-yS372Tr4.js.map → pagination-DSY279Ta.js.map} +1 -1
- package/dist/{popover-SRoJaCZr.js → popover-BY-e9co1.js} +2 -2
- package/dist/{popover-SRoJaCZr.js.map → popover-BY-e9co1.js.map} +1 -1
- package/dist/{radio-BcwhwYNB.js → radio-DZwL13j0.js} +2 -2
- package/dist/{radio-BcwhwYNB.js.map → radio-DZwL13j0.js.map} +1 -1
- package/dist/{select-DMhdoHMa.js → select-BFifYqHA.js} +6 -6
- package/dist/{select-DMhdoHMa.js.map → select-BFifYqHA.js.map} +1 -1
- package/dist/{sensitive-input-CJUpIRal.js → sensitive-input-DHLZcM73.js} +4 -4
- package/dist/{sensitive-input-CJUpIRal.js.map → sensitive-input-DHLZcM73.js.map} +1 -1
- package/dist/{sidebar-D4zrlYpn.js → sidebar-odGsdvG4.js} +6 -7
- package/dist/sidebar-odGsdvG4.js.map +1 -0
- package/dist/{signalflare-ai-logo-Bipogceq.js → signalflare-ai-logo-CNaDT_w8.js} +2 -2
- package/dist/{signalflare-ai-logo-Bipogceq.js.map → signalflare-ai-logo-CNaDT_w8.js.map} +1 -1
- package/dist/{skeleton-line-CH1-h6e2.js → skeleton-line-CxxYVTO2.js} +2 -2
- package/dist/{skeleton-line-CH1-h6e2.js.map → skeleton-line-CxxYVTO2.js.map} +1 -1
- package/dist/{sparkline-DHmgj1d0.js → sparkline-BQ-4j2W2.js} +2 -2
- package/dist/{sparkline-DHmgj1d0.js.map → sparkline-BQ-4j2W2.js.map} +1 -1
- package/dist/src/blocks/agent-harness/agent-harness.tsx +11 -11
- package/dist/src/blocks/commander/commander.tsx +15 -15
- package/dist/src/blocks/map-block/map-block.d.ts.map +1 -1
- package/dist/src/blocks/map-block/map-block.tsx +11 -7
- package/dist/src/components/ai-approval/ai-approval.d.ts.map +1 -1
- package/dist/src/components/ai-code-block/ai-code-block.d.ts +14 -13
- package/dist/src/components/ai-code-block/ai-code-block.d.ts.map +1 -1
- package/dist/src/components/ai-conversation/ai-conversation.d.ts.map +1 -1
- package/dist/src/components/ai-part-group/ai-part-group.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/controller.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/types.d.ts.map +1 -1
- package/dist/src/components/ai-question/ai-question.d.ts.map +1 -1
- package/dist/src/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
- package/dist/src/components/ai-response/ai-response.d.ts.map +1 -1
- package/dist/src/components/ai-subagent/ai-subagent.d.ts.map +1 -1
- package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -1
- package/dist/src/components/chart/echart.d.ts.map +1 -1
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
- package/dist/src/components/data-grid/data-grid.d.ts +2 -1
- package/dist/src/components/data-grid/data-grid.d.ts.map +1 -1
- package/dist/src/components/data-grid/features.d.ts +20 -0
- package/dist/src/components/data-grid/features.d.ts.map +1 -0
- package/dist/src/components/data-grid/types.d.ts +38 -7
- package/dist/src/components/data-grid/types.d.ts.map +1 -1
- package/dist/src/components/filters/filters.d.ts.map +1 -1
- package/dist/src/components/flow/use-children.d.ts +1 -1
- package/dist/src/components/link/link.d.ts.map +1 -1
- package/dist/src/components/sidebar/sidebar.d.ts +1 -1
- package/dist/src/components/signalflare-ai-logo/signalflare-ai-logo.d.ts.map +1 -1
- package/dist/src/components/text/text.d.ts +2 -1
- package/dist/src/components/text/text.d.ts.map +1 -1
- package/dist/src/components/text-roll/text-roll.d.ts.map +1 -1
- package/dist/src/components/theme-toggle/theme-toggle.d.ts.map +1 -1
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/src/utils/highlight-to-react.d.ts.map +1 -1
- package/dist/src/utils/measured-text.d.ts.map +1 -1
- package/dist/src/utils/use-measured-text.d.ts.map +1 -1
- package/dist/{stat-card-Ew-ofzEm.js → stat-card-Bspk4XFr.js} +4 -4
- package/dist/stat-card-Bspk4XFr.js.map +1 -0
- package/dist/styles/sf-standalone.css +1 -1
- package/dist/styles/theme-fedramp.css +3 -12
- package/dist/styles/theme-minimal.css +26 -104
- package/dist/styles/theme-sf.css +37 -142
- package/dist/{surface-DGwRlC0o.js → surface-CWdSFVUx.js} +3 -3
- package/dist/{surface-DGwRlC0o.js.map → surface-CWdSFVUx.js.map} +1 -1
- package/dist/{switch-BxAMfHdt.js → switch-TA4cByCJ.js} +5 -5
- package/dist/switch-TA4cByCJ.js.map +1 -0
- package/dist/{table-BBeAtYVZ.js → table-BM8JBGBs.js} +3 -3
- package/dist/{table-BBeAtYVZ.js.map → table-BM8JBGBs.js.map} +1 -1
- package/dist/{tabs-CeHu7Scn.js → tabs-bnH2vGLv.js} +2 -2
- package/dist/{tabs-CeHu7Scn.js.map → tabs-bnH2vGLv.js.map} +1 -1
- package/dist/{text-Cqryz7rk.js → text-iQ0YUFNg.js} +4 -5
- package/dist/{text-Cqryz7rk.js.map → text-iQ0YUFNg.js.map} +1 -1
- package/dist/{text-roll-Ch52hcQj.js → text-roll-C3U2jd2u.js} +5 -2
- package/dist/text-roll-C3U2jd2u.js.map +1 -0
- package/dist/{theme-toggle-LDfIKEqx.js → theme-toggle-BTVxD-fD.js} +10 -9
- package/dist/theme-toggle-BTVxD-fD.js.map +1 -0
- package/dist/{toast-CaFQNYng.js → toast-CgZVaAkw.js} +3 -3
- package/dist/{toast-CaFQNYng.js.map → toast-CgZVaAkw.js.map} +1 -1
- package/dist/{tooltip-g9lFsvcT.js → tooltip-uobk6Oh-.js} +3 -3
- package/dist/{tooltip-g9lFsvcT.js.map → tooltip-uobk6Oh-.js.map} +1 -1
- package/dist/{use-agent-harness-BTcNJdw4.js → use-agent-harness-Dl8w6X5O.js} +3 -3
- package/dist/{use-agent-harness-BTcNJdw4.js.map → use-agent-harness-Dl8w6X5O.js.map} +1 -1
- package/dist/utils.js +3 -3
- package/package.json +27 -25
- package/scripts/component-registry/discovery.ts +11 -10
- package/scripts/component-registry/example-cleanup.ts +8 -8
- package/scripts/component-registry/index.ts +6 -6
- package/scripts/component-registry/schema-generator.ts +1 -1
- package/scripts/component-registry/sub-components.ts +35 -23
- package/scripts/component-registry/utils.ts +11 -11
- package/scripts/component-registry/variant-parser.ts +17 -15
- package/scripts/convert-demos-to-stories.ts +5 -5
- package/scripts/theme-generator/config.ts +1 -5
- package/scripts/theme-generator/generate-css.ts +1 -1
- package/scripts/theme-generator/migrate.ts +3 -3
- package/dist/ai-agent-card-BR2NIYhi.js.map +0 -1
- package/dist/ai-code-block-CZtoL73R.js.map +0 -1
- package/dist/ai-conversation-Cc7WlaBg.js.map +0 -1
- package/dist/ai-part-group-DNb9I446.js.map +0 -1
- package/dist/ai-prompt-input-BVvov_KF.js.map +0 -1
- package/dist/ai-reasoning-_feFjk56.js.map +0 -1
- package/dist/ai-timeline-C42tOUT8.js.map +0 -1
- package/dist/ai-tool-03jOTwUI.js.map +0 -1
- package/dist/chart-Dg0qUeSc.js.map +0 -1
- package/dist/clipboard-text-kLaMogs3.js.map +0 -1
- package/dist/command-palette-CuNUyJca.js.map +0 -1
- package/dist/data-grid-DGHmU0w3.js.map +0 -1
- package/dist/dist-B6iWiWwp.js.map +0 -1
- package/dist/dropdown-B_nrGXjV.js.map +0 -1
- package/dist/filters-cpJCY21R.js.map +0 -1
- package/dist/flow-B4v198ot.js.map +0 -1
- package/dist/highlight-to-react-D0Yav4jk.js.map +0 -1
- package/dist/layout-DJHMMap2.js.map +0 -1
- package/dist/link-provider-BUZKXaNE.js.map +0 -1
- package/dist/measured-text-BI3dTJmH.js.map +0 -1
- package/dist/sidebar-D4zrlYpn.js.map +0 -1
- package/dist/stat-card-Ew-ofzEm.js.map +0 -1
- package/dist/switch-BxAMfHdt.js.map +0 -1
- package/dist/text-roll-Ch52hcQj.js.map +0 -1
- package/dist/theme-toggle-LDfIKEqx.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.
|
|
2
|
+
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.7/node_modules/@chenglou/pretext/dist/generated/bidi-data.js
|
|
3
3
|
var latin1BidiTypes = [
|
|
4
4
|
"BN",
|
|
5
5
|
"BN",
|
|
@@ -3831,7 +3831,7 @@ var nonLatin1BidiRanges = [
|
|
|
3831
3831
|
]
|
|
3832
3832
|
];
|
|
3833
3833
|
//#endregion
|
|
3834
|
-
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.
|
|
3834
|
+
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.7/node_modules/@chenglou/pretext/dist/bidi.js
|
|
3835
3835
|
function classifyCodePoint(codePoint) {
|
|
3836
3836
|
if (codePoint <= 255) return latin1BidiTypes[codePoint];
|
|
3837
3837
|
let lo = 0;
|
|
@@ -3947,7 +3947,7 @@ function computeSegmentLevels(normalized, segStarts) {
|
|
|
3947
3947
|
return segLevels;
|
|
3948
3948
|
}
|
|
3949
3949
|
//#endregion
|
|
3950
|
-
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.
|
|
3950
|
+
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.7/node_modules/@chenglou/pretext/dist/analysis.js
|
|
3951
3951
|
var collapsibleWhitespaceRunRe = /[ \t\n\r\f]+/g;
|
|
3952
3952
|
var needsWhitespaceNormalizationRe = /[\t\n\r\f]| {2,}|^ | $/;
|
|
3953
3953
|
function getWhiteSpaceProfile(whiteSpace) {
|
|
@@ -4014,15 +4014,26 @@ var keepAllGlueChars = new Set([
|
|
|
4014
4014
|
"",
|
|
4015
4015
|
""
|
|
4016
4016
|
]);
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
4017
|
+
var keepAllDashBreakChars = new Set([
|
|
4018
|
+
"-",
|
|
4019
|
+
"‐",
|
|
4020
|
+
"–",
|
|
4021
|
+
"—"
|
|
4022
|
+
]);
|
|
4020
4023
|
function endsWithKeepAllGlueText(text) {
|
|
4021
4024
|
const last = getLastCodePoint(text);
|
|
4022
4025
|
return last !== null && keepAllGlueChars.has(last);
|
|
4023
4026
|
}
|
|
4024
|
-
function
|
|
4025
|
-
|
|
4027
|
+
function endsWithKeepAllDashBreakText(text) {
|
|
4028
|
+
const last = getLastCodePoint(text);
|
|
4029
|
+
return last !== null && keepAllDashBreakChars.has(last);
|
|
4030
|
+
}
|
|
4031
|
+
function canContinueKeepAllTextRun(previousText, breakAfterPunctuation) {
|
|
4032
|
+
if (endsWithKeepAllGlueText(previousText)) return false;
|
|
4033
|
+
if (!breakAfterPunctuation) return true;
|
|
4034
|
+
if (endsWithLineStartProhibitedText(previousText)) return false;
|
|
4035
|
+
if (endsWithKeepAllDashBreakText(previousText)) return false;
|
|
4036
|
+
return true;
|
|
4026
4037
|
}
|
|
4027
4038
|
var kinsokuStart = new Set([
|
|
4028
4039
|
",",
|
|
@@ -4057,10 +4068,15 @@ var kinsokuEnd = new Set([
|
|
|
4057
4068
|
"(",
|
|
4058
4069
|
"[",
|
|
4059
4070
|
"{",
|
|
4071
|
+
"¡",
|
|
4072
|
+
"¿",
|
|
4060
4073
|
"“",
|
|
4061
4074
|
"‘",
|
|
4075
|
+
"‚",
|
|
4076
|
+
"„",
|
|
4062
4077
|
"«",
|
|
4063
4078
|
"‹",
|
|
4079
|
+
"⸘",
|
|
4064
4080
|
"(",
|
|
4065
4081
|
"〔",
|
|
4066
4082
|
"〈",
|
|
@@ -4125,7 +4141,7 @@ function isLeftStickyPunctuationSegment(segment) {
|
|
|
4125
4141
|
if (isEscapedQuoteClusterSegment(segment)) return true;
|
|
4126
4142
|
let sawPunctuation = false;
|
|
4127
4143
|
for (const ch of segment) {
|
|
4128
|
-
if (leftStickyPunctuation.has(ch)) {
|
|
4144
|
+
if (leftStickyPunctuation.has(ch) || isLineBreakNumericAffix(ch)) {
|
|
4129
4145
|
sawPunctuation = true;
|
|
4130
4146
|
continue;
|
|
4131
4147
|
}
|
|
@@ -4140,7 +4156,7 @@ function isCJKLineStartProhibitedSegment(segment) {
|
|
|
4140
4156
|
}
|
|
4141
4157
|
function isForwardStickyClusterSegment(segment) {
|
|
4142
4158
|
if (isEscapedQuoteClusterSegment(segment)) return true;
|
|
4143
|
-
for (const ch of segment) if (!kinsokuEnd.has(ch) && !forwardStickyGlue.has(ch) && !combiningMarkRe.test(ch)) return false;
|
|
4159
|
+
for (const ch of segment) if (!kinsokuEnd.has(ch) && !forwardStickyGlue.has(ch) && !combiningMarkRe.test(ch) && !isLineBreakNumericAffix(ch)) return false;
|
|
4144
4160
|
return segment.length > 0;
|
|
4145
4161
|
}
|
|
4146
4162
|
function isEscapedQuoteClusterSegment(segment) {
|
|
@@ -4170,6 +4186,103 @@ function getLastCodePoint(text) {
|
|
|
4170
4186
|
const start = previousCodePointStart(text, text.length);
|
|
4171
4187
|
return text.slice(start);
|
|
4172
4188
|
}
|
|
4189
|
+
function getFirstSignificantCodePoint(text) {
|
|
4190
|
+
for (const ch of text) if (!combiningMarkRe.test(ch)) return ch;
|
|
4191
|
+
return null;
|
|
4192
|
+
}
|
|
4193
|
+
function getLastSignificantCodePoint(text) {
|
|
4194
|
+
for (let end = text.length; end > 0;) {
|
|
4195
|
+
const start = previousCodePointStart(text, end);
|
|
4196
|
+
const ch = text.slice(start, end);
|
|
4197
|
+
if (!combiningMarkRe.test(ch)) return ch;
|
|
4198
|
+
end = start;
|
|
4199
|
+
}
|
|
4200
|
+
return null;
|
|
4201
|
+
}
|
|
4202
|
+
var lineBreakNumericAffixRanges = [
|
|
4203
|
+
36,
|
|
4204
|
+
37,
|
|
4205
|
+
43,
|
|
4206
|
+
43,
|
|
4207
|
+
92,
|
|
4208
|
+
92,
|
|
4209
|
+
162,
|
|
4210
|
+
165,
|
|
4211
|
+
176,
|
|
4212
|
+
177,
|
|
4213
|
+
1423,
|
|
4214
|
+
1423,
|
|
4215
|
+
1545,
|
|
4216
|
+
1547,
|
|
4217
|
+
1642,
|
|
4218
|
+
1642,
|
|
4219
|
+
2046,
|
|
4220
|
+
2047,
|
|
4221
|
+
2546,
|
|
4222
|
+
2547,
|
|
4223
|
+
2553,
|
|
4224
|
+
2555,
|
|
4225
|
+
2801,
|
|
4226
|
+
2801,
|
|
4227
|
+
3065,
|
|
4228
|
+
3065,
|
|
4229
|
+
3449,
|
|
4230
|
+
3449,
|
|
4231
|
+
3647,
|
|
4232
|
+
3647,
|
|
4233
|
+
6107,
|
|
4234
|
+
6107,
|
|
4235
|
+
8240,
|
|
4236
|
+
8247,
|
|
4237
|
+
8279,
|
|
4238
|
+
8279,
|
|
4239
|
+
8352,
|
|
4240
|
+
8399,
|
|
4241
|
+
8451,
|
|
4242
|
+
8451,
|
|
4243
|
+
8457,
|
|
4244
|
+
8457,
|
|
4245
|
+
8470,
|
|
4246
|
+
8470,
|
|
4247
|
+
8722,
|
|
4248
|
+
8723,
|
|
4249
|
+
43064,
|
|
4250
|
+
43064,
|
|
4251
|
+
65020,
|
|
4252
|
+
65020,
|
|
4253
|
+
65129,
|
|
4254
|
+
65130,
|
|
4255
|
+
65284,
|
|
4256
|
+
65285,
|
|
4257
|
+
65504,
|
|
4258
|
+
65505,
|
|
4259
|
+
65509,
|
|
4260
|
+
65510,
|
|
4261
|
+
73693,
|
|
4262
|
+
73696,
|
|
4263
|
+
123647,
|
|
4264
|
+
123647,
|
|
4265
|
+
126124,
|
|
4266
|
+
126124,
|
|
4267
|
+
126128,
|
|
4268
|
+
126128
|
|
4269
|
+
];
|
|
4270
|
+
function isCodePointInRanges(codePoint, ranges) {
|
|
4271
|
+
for (let i = 0; i < ranges.length; i += 2) if (codePoint >= ranges[i] && codePoint <= ranges[i + 1]) return true;
|
|
4272
|
+
return false;
|
|
4273
|
+
}
|
|
4274
|
+
function isLineBreakNumericAffix(ch) {
|
|
4275
|
+
const codePoint = ch.codePointAt(0);
|
|
4276
|
+
return codePoint !== void 0 && isCodePointInRanges(codePoint, lineBreakNumericAffixRanges);
|
|
4277
|
+
}
|
|
4278
|
+
function endsWithLineBreakNumericAffix(text) {
|
|
4279
|
+
const last = getLastSignificantCodePoint(text);
|
|
4280
|
+
return last !== null && isLineBreakNumericAffix(last);
|
|
4281
|
+
}
|
|
4282
|
+
function startsWithDecimalDigit(text) {
|
|
4283
|
+
const first = getFirstSignificantCodePoint(text);
|
|
4284
|
+
return first !== null && decimalDigitRe.test(first);
|
|
4285
|
+
}
|
|
4173
4286
|
function splitTrailingForwardStickyCluster(text) {
|
|
4174
4287
|
const chars = Array.from(text);
|
|
4175
4288
|
let splitIndex = chars.length;
|
|
@@ -4398,8 +4511,27 @@ var numericJoinerChars = new Set([
|
|
|
4398
4511
|
"–",
|
|
4399
4512
|
"—"
|
|
4400
4513
|
]);
|
|
4401
|
-
var
|
|
4402
|
-
|
|
4514
|
+
var noSpacePunctuationChainJoiners = new Set([
|
|
4515
|
+
".",
|
|
4516
|
+
",",
|
|
4517
|
+
":",
|
|
4518
|
+
";"
|
|
4519
|
+
]);
|
|
4520
|
+
function endsWithNoSpacePunctuationChainJoiner(text) {
|
|
4521
|
+
for (let end = text.length; end > 0;) {
|
|
4522
|
+
const start = previousCodePointStart(text, end);
|
|
4523
|
+
const ch = text.slice(start, end);
|
|
4524
|
+
if (combiningMarkRe.test(ch)) {
|
|
4525
|
+
end = start;
|
|
4526
|
+
continue;
|
|
4527
|
+
}
|
|
4528
|
+
return noSpacePunctuationChainJoiners.has(ch) || isLineBreakNumericAffix(ch);
|
|
4529
|
+
}
|
|
4530
|
+
return false;
|
|
4531
|
+
}
|
|
4532
|
+
function isNoSpacePunctuationChainSegment(text, wordLike) {
|
|
4533
|
+
return wordLike && !isCJK(text);
|
|
4534
|
+
}
|
|
4403
4535
|
function segmentContainsDecimalDigit(text) {
|
|
4404
4536
|
for (const ch of text) if (decimalDigitRe.test(ch)) return true;
|
|
4405
4537
|
return false;
|
|
@@ -4447,7 +4579,7 @@ function mergeNumericRuns(segmentation) {
|
|
|
4447
4579
|
starts
|
|
4448
4580
|
};
|
|
4449
4581
|
}
|
|
4450
|
-
function
|
|
4582
|
+
function mergeNoSpacePunctuationChains(segmentation) {
|
|
4451
4583
|
const texts = [];
|
|
4452
4584
|
const isWordLike = [];
|
|
4453
4585
|
const kinds = [];
|
|
@@ -4456,14 +4588,14 @@ function mergeAsciiPunctuationChains(segmentation) {
|
|
|
4456
4588
|
const text = segmentation.texts[i];
|
|
4457
4589
|
const kind = segmentation.kinds[i];
|
|
4458
4590
|
const wordLike = segmentation.isWordLike[i];
|
|
4459
|
-
if (kind === "text" && wordLike &&
|
|
4591
|
+
if (kind === "text" && endsWithNoSpacePunctuationChainJoiner(text) && (wordLike || endsWithLineBreakNumericAffix(text)) && !isCJK(text)) {
|
|
4460
4592
|
const mergedParts = [text];
|
|
4461
|
-
let endsWithJoiners =
|
|
4593
|
+
let endsWithJoiners = true;
|
|
4462
4594
|
let j = i + 1;
|
|
4463
|
-
while (endsWithJoiners && j < segmentation.len && segmentation.kinds[j] === "text" && segmentation.
|
|
4595
|
+
while (endsWithJoiners && j < segmentation.len && segmentation.kinds[j] === "text" && isNoSpacePunctuationChainSegment(segmentation.texts[j], segmentation.isWordLike[j])) {
|
|
4464
4596
|
const nextText = segmentation.texts[j];
|
|
4465
4597
|
mergedParts.push(nextText);
|
|
4466
|
-
endsWithJoiners =
|
|
4598
|
+
endsWithJoiners = endsWithNoSpacePunctuationChainJoiner(nextText);
|
|
4467
4599
|
j++;
|
|
4468
4600
|
}
|
|
4469
4601
|
texts.push(joinTextParts(mergedParts));
|
|
@@ -4691,7 +4823,7 @@ function buildMergedSegmentation(normalized, profile, whiteSpaceProfile) {
|
|
|
4691
4823
|
for (let i = mergedLen - 1; i >= 0; i--) {
|
|
4692
4824
|
const text = mergedTexts[i];
|
|
4693
4825
|
if (text.length === 0) continue;
|
|
4694
|
-
if (mergedKinds[i] === "text" && !mergedWordLike[i] &&
|
|
4826
|
+
if (mergedKinds[i] === "text" && !mergedWordLike[i] && nextLiveIndex >= 0 && mergedKinds[nextLiveIndex] === "text" && (isForwardStickyClusterSegment(text) || text === "-" && startsWithDecimalDigit(mergedTexts[nextLiveIndex]))) {
|
|
4695
4827
|
const prefixParts = forwardStickyPrefixParts[nextLiveIndex] ?? [];
|
|
4696
4828
|
prefixParts.push(text);
|
|
4697
4829
|
forwardStickyPrefixParts[nextLiveIndex] = prefixParts;
|
|
@@ -4722,7 +4854,7 @@ function buildMergedSegmentation(normalized, profile, whiteSpaceProfile) {
|
|
|
4722
4854
|
mergedWordLike.length = compactLen;
|
|
4723
4855
|
mergedKinds.length = compactLen;
|
|
4724
4856
|
mergedStarts.length = compactLen;
|
|
4725
|
-
const withMergedUrls = carryTrailingForwardStickyAcrossCJKBoundary(
|
|
4857
|
+
const withMergedUrls = carryTrailingForwardStickyAcrossCJKBoundary(mergeNoSpacePunctuationChains(splitHyphenatedNumericRuns(mergeNumericRuns(mergeUrlQueryRuns(mergeUrlLikeRuns(mergeGlueConnectedTextRuns({
|
|
4726
4858
|
len: compactLen,
|
|
4727
4859
|
texts: mergedTexts,
|
|
4728
4860
|
isWordLike: mergedWordLike,
|
|
@@ -4766,55 +4898,54 @@ function compileAnalysisChunks(segmentation, whiteSpaceProfile) {
|
|
|
4766
4898
|
});
|
|
4767
4899
|
return chunks;
|
|
4768
4900
|
}
|
|
4769
|
-
function mergeKeepAllTextSegments(segmentation) {
|
|
4901
|
+
function mergeKeepAllTextSegments(normalized, segmentation, breakAfterPunctuation) {
|
|
4770
4902
|
if (segmentation.len <= 1) return segmentation;
|
|
4771
4903
|
const texts = [];
|
|
4772
4904
|
const isWordLike = [];
|
|
4773
4905
|
const kinds = [];
|
|
4774
4906
|
const starts = [];
|
|
4775
|
-
let
|
|
4776
|
-
let
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
function flushPendingText() {
|
|
4781
|
-
if (pendingTextParts === null) return;
|
|
4782
|
-
texts.push(joinTextParts(pendingTextParts));
|
|
4783
|
-
isWordLike.push(pendingWordLike);
|
|
4907
|
+
let groupStart = -1;
|
|
4908
|
+
let groupContainsCJK = false;
|
|
4909
|
+
function pushOriginalText(index) {
|
|
4910
|
+
texts.push(segmentation.texts[index]);
|
|
4911
|
+
isWordLike.push(segmentation.isWordLike[index]);
|
|
4784
4912
|
kinds.push("text");
|
|
4785
|
-
starts.push(
|
|
4786
|
-
|
|
4913
|
+
starts.push(segmentation.starts[index]);
|
|
4914
|
+
}
|
|
4915
|
+
function pushMergedText(start, end) {
|
|
4916
|
+
let wordLike = false;
|
|
4917
|
+
for (let i = start; i < end; i++) wordLike = wordLike || segmentation.isWordLike[i];
|
|
4918
|
+
const sourceStart = segmentation.starts[start];
|
|
4919
|
+
const sourceEnd = end < segmentation.len ? segmentation.starts[end] : normalized.length;
|
|
4920
|
+
texts.push(normalized.slice(sourceStart, sourceEnd));
|
|
4921
|
+
isWordLike.push(wordLike);
|
|
4922
|
+
kinds.push("text");
|
|
4923
|
+
starts.push(sourceStart);
|
|
4924
|
+
}
|
|
4925
|
+
function flushGroup(end) {
|
|
4926
|
+
if (groupStart < 0) return;
|
|
4927
|
+
if (groupContainsCJK) if (groupStart + 1 === end) pushOriginalText(groupStart);
|
|
4928
|
+
else pushMergedText(groupStart, end);
|
|
4929
|
+
else for (let i = groupStart; i < end; i++) pushOriginalText(i);
|
|
4930
|
+
groupStart = -1;
|
|
4931
|
+
groupContainsCJK = false;
|
|
4787
4932
|
}
|
|
4788
4933
|
for (let i = 0; i < segmentation.len; i++) {
|
|
4789
4934
|
const text = segmentation.texts[i];
|
|
4790
4935
|
const kind = segmentation.kinds[i];
|
|
4791
|
-
const wordLike = segmentation.isWordLike[i];
|
|
4792
|
-
const start = segmentation.starts[i];
|
|
4793
4936
|
if (kind === "text") {
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
pendingTextParts.push(text);
|
|
4798
|
-
pendingWordLike = pendingWordLike || wordLike;
|
|
4799
|
-
pendingContainsCJK = pendingContainsCJK || textContainsCJK;
|
|
4800
|
-
pendingCanContinue = textCanContinue;
|
|
4801
|
-
continue;
|
|
4802
|
-
}
|
|
4803
|
-
flushPendingText();
|
|
4804
|
-
pendingTextParts = [text];
|
|
4805
|
-
pendingWordLike = wordLike;
|
|
4806
|
-
pendingStart = start;
|
|
4807
|
-
pendingContainsCJK = textContainsCJK;
|
|
4808
|
-
pendingCanContinue = textCanContinue;
|
|
4937
|
+
if (groupStart >= 0 && !canContinueKeepAllTextRun(segmentation.texts[i - 1], breakAfterPunctuation)) flushGroup(i);
|
|
4938
|
+
if (groupStart < 0) groupStart = i;
|
|
4939
|
+
groupContainsCJK = groupContainsCJK || isCJK(text);
|
|
4809
4940
|
continue;
|
|
4810
4941
|
}
|
|
4811
|
-
|
|
4942
|
+
flushGroup(i);
|
|
4812
4943
|
texts.push(text);
|
|
4813
|
-
isWordLike.push(
|
|
4944
|
+
isWordLike.push(segmentation.isWordLike[i]);
|
|
4814
4945
|
kinds.push(kind);
|
|
4815
|
-
starts.push(
|
|
4946
|
+
starts.push(segmentation.starts[i]);
|
|
4816
4947
|
}
|
|
4817
|
-
|
|
4948
|
+
flushGroup(segmentation.len);
|
|
4818
4949
|
return {
|
|
4819
4950
|
len: texts.length,
|
|
4820
4951
|
texts,
|
|
@@ -4835,7 +4966,8 @@ function analyzeText(text, profile, whiteSpace = "normal", wordBreak = "normal")
|
|
|
4835
4966
|
kinds: [],
|
|
4836
4967
|
starts: []
|
|
4837
4968
|
};
|
|
4838
|
-
const
|
|
4969
|
+
const mergedSegmentation = buildMergedSegmentation(normalized, profile, whiteSpaceProfile);
|
|
4970
|
+
const segmentation = wordBreak === "keep-all" ? mergeKeepAllTextSegments(normalized, mergedSegmentation, profile.breakKeepAllAfterPunctuation) : mergedSegmentation;
|
|
4839
4971
|
return {
|
|
4840
4972
|
normalized,
|
|
4841
4973
|
chunks: compileAnalysisChunks(segmentation, whiteSpaceProfile),
|
|
@@ -4843,7 +4975,7 @@ function analyzeText(text, profile, whiteSpace = "normal", wordBreak = "normal")
|
|
|
4843
4975
|
};
|
|
4844
4976
|
}
|
|
4845
4977
|
//#endregion
|
|
4846
|
-
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.
|
|
4978
|
+
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.7/node_modules/@chenglou/pretext/dist/measurement.js
|
|
4847
4979
|
var measureContext = null;
|
|
4848
4980
|
var segmentMetricCaches = /* @__PURE__ */ new Map();
|
|
4849
4981
|
var cachedEngineProfile = null;
|
|
@@ -4889,6 +5021,7 @@ function getEngineProfile() {
|
|
|
4889
5021
|
cachedEngineProfile = {
|
|
4890
5022
|
lineFitEpsilon: .005,
|
|
4891
5023
|
carryCJKAfterClosingQuote: false,
|
|
5024
|
+
breakKeepAllAfterPunctuation: true,
|
|
4892
5025
|
preferPrefixWidthsForBreakableRuns: false,
|
|
4893
5026
|
preferEarlySoftHyphenBreak: false
|
|
4894
5027
|
};
|
|
@@ -4900,6 +5033,7 @@ function getEngineProfile() {
|
|
|
4900
5033
|
cachedEngineProfile = {
|
|
4901
5034
|
lineFitEpsilon: isSafari ? 1 / 64 : .005,
|
|
4902
5035
|
carryCJKAfterClosingQuote: isChromium,
|
|
5036
|
+
breakKeepAllAfterPunctuation: !isSafari,
|
|
4903
5037
|
preferPrefixWidthsForBreakableRuns: isSafari,
|
|
4904
5038
|
preferEarlySoftHyphenBreak: isSafari
|
|
4905
5039
|
};
|
|
@@ -5017,7 +5151,7 @@ function getFontMeasurementState(font, needsEmojiCorrection) {
|
|
|
5017
5151
|
};
|
|
5018
5152
|
}
|
|
5019
5153
|
//#endregion
|
|
5020
|
-
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.
|
|
5154
|
+
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.7/node_modules/@chenglou/pretext/dist/line-break.js
|
|
5021
5155
|
function consumesAtLineStart(kind) {
|
|
5022
5156
|
return kind === "space" || kind === "zero-width-break" || kind === "soft-hyphen";
|
|
5023
5157
|
}
|
|
@@ -5062,19 +5196,23 @@ function getBreakableGraphemeAdvance(prepared, hasContent, baseAdvance) {
|
|
|
5062
5196
|
function getBreakableCandidateFitWidth(prepared, candidatePaintWidth) {
|
|
5063
5197
|
return prepared.letterSpacing === 0 ? candidatePaintWidth : candidatePaintWidth + prepared.letterSpacing;
|
|
5064
5198
|
}
|
|
5065
|
-
function
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
const
|
|
5070
|
-
if (
|
|
5071
|
-
|
|
5072
|
-
|
|
5199
|
+
function getTerminalLetterSpacing(prepared, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex) {
|
|
5200
|
+
if (prepared.letterSpacing === 0) return 0;
|
|
5201
|
+
if (endGraphemeIndex > 0) return prepared.spacingGraphemeCounts[endSegmentIndex] > 0 ? prepared.letterSpacing : 0;
|
|
5202
|
+
for (let i = endSegmentIndex - 1; i >= startSegmentIndex; i--) {
|
|
5203
|
+
const kind = prepared.kinds[i];
|
|
5204
|
+
if (kind === "space" || kind === "zero-width-break" || kind === "hard-break") continue;
|
|
5205
|
+
if (kind === "soft-hyphen") {
|
|
5206
|
+
if (i === endSegmentIndex - 1) return 0;
|
|
5207
|
+
continue;
|
|
5208
|
+
}
|
|
5209
|
+
if (i === startSegmentIndex && startGraphemeIndex > 0) return prepared.letterSpacing;
|
|
5210
|
+
return prepared.spacingGraphemeCounts[i] > 0 ? prepared.letterSpacing : 0;
|
|
5073
5211
|
}
|
|
5074
|
-
return
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5212
|
+
return 0;
|
|
5213
|
+
}
|
|
5214
|
+
function finalizeLinePaintWidth(prepared, width, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex) {
|
|
5215
|
+
return width + getTerminalLetterSpacing(prepared, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex);
|
|
5078
5216
|
}
|
|
5079
5217
|
function findChunkIndexForStart(prepared, segmentIndex) {
|
|
5080
5218
|
let lo = 0;
|
|
@@ -5107,7 +5245,7 @@ function normalizeLineStartInChunk(prepared, chunkIndex, cursor) {
|
|
|
5107
5245
|
cursor.graphemeIndex = 0;
|
|
5108
5246
|
return chunkIndex + 1;
|
|
5109
5247
|
}
|
|
5110
|
-
function
|
|
5248
|
+
function normalizePreparedLineStart(prepared, cursor) {
|
|
5111
5249
|
if (cursor.segmentIndex >= prepared.widths.length) return -1;
|
|
5112
5250
|
const chunkIndex = findChunkIndexForStart(prepared, cursor.segmentIndex);
|
|
5113
5251
|
if (chunkIndex < 0) return -1;
|
|
@@ -5249,8 +5387,7 @@ function walkPreparedLinesRaw(prepared, maxWidth, onLine) {
|
|
|
5249
5387
|
const { widths, kinds, breakableFitAdvances, discretionaryHyphenWidth, chunks } = prepared;
|
|
5250
5388
|
if (widths.length === 0 || chunks.length === 0) return 0;
|
|
5251
5389
|
const engineProfile = getEngineProfile();
|
|
5252
|
-
const
|
|
5253
|
-
const fitLimit = maxWidth + lineFitEpsilon;
|
|
5390
|
+
const fitLimit = maxWidth + engineProfile.lineFitEpsilon;
|
|
5254
5391
|
let lineCount = 0;
|
|
5255
5392
|
let lineW = 0;
|
|
5256
5393
|
let hasContent = false;
|
|
@@ -5268,9 +5405,12 @@ function walkPreparedLinesRaw(prepared, maxWidth, onLine) {
|
|
|
5268
5405
|
pendingBreakPaintWidth = 0;
|
|
5269
5406
|
pendingBreakKind = null;
|
|
5270
5407
|
}
|
|
5271
|
-
function
|
|
5408
|
+
function getCurrentLinePaintWidth() {
|
|
5409
|
+
return pendingBreakKind === "soft-hyphen" && pendingBreakSegmentIndex === lineEndSegmentIndex && lineEndGraphemeIndex === 0 ? pendingBreakPaintWidth : lineW;
|
|
5410
|
+
}
|
|
5411
|
+
function emitCurrentLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width) {
|
|
5272
5412
|
lineCount++;
|
|
5273
|
-
onLine
|
|
5413
|
+
if (onLine !== void 0) onLine(finalizeLinePaintWidth(prepared, width ?? getCurrentLinePaintWidth(), lineStartSegmentIndex, lineStartGraphemeIndex, endSegmentIndex, endGraphemeIndex), lineStartSegmentIndex, lineStartGraphemeIndex, endSegmentIndex, endGraphemeIndex);
|
|
5274
5414
|
lineW = 0;
|
|
5275
5415
|
hasContent = false;
|
|
5276
5416
|
clearPendingBreak();
|
|
@@ -5332,25 +5472,6 @@ function walkPreparedLinesRaw(prepared, maxWidth, onLine) {
|
|
|
5332
5472
|
lineEndGraphemeIndex = 0;
|
|
5333
5473
|
}
|
|
5334
5474
|
}
|
|
5335
|
-
function continueSoftHyphenBreakableSegment(segmentIndex) {
|
|
5336
|
-
if (pendingBreakKind !== "soft-hyphen") return false;
|
|
5337
|
-
const fitWidths = breakableFitAdvances[segmentIndex];
|
|
5338
|
-
if (fitWidths == null) return false;
|
|
5339
|
-
const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth, prepared.letterSpacing);
|
|
5340
|
-
if (fitCount === 0) return false;
|
|
5341
|
-
lineW = fittedWidth;
|
|
5342
|
-
lineEndSegmentIndex = segmentIndex;
|
|
5343
|
-
lineEndGraphemeIndex = fitCount;
|
|
5344
|
-
clearPendingBreak();
|
|
5345
|
-
if (fitCount === fitWidths.length) {
|
|
5346
|
-
lineEndSegmentIndex = segmentIndex + 1;
|
|
5347
|
-
lineEndGraphemeIndex = 0;
|
|
5348
|
-
return true;
|
|
5349
|
-
}
|
|
5350
|
-
emitCurrentLine(segmentIndex, fitCount, fittedWidth + discretionaryHyphenWidth);
|
|
5351
|
-
appendBreakableSegmentFrom(segmentIndex, fitCount);
|
|
5352
|
-
return true;
|
|
5353
|
-
}
|
|
5354
5475
|
function emitEmptyChunk(chunk) {
|
|
5355
5476
|
lineCount++;
|
|
5356
5477
|
onLine?.(0, chunk.startSegmentIndex, 0, chunk.consumedEndSegmentIndex, 0);
|
|
@@ -5407,10 +5528,6 @@ function walkPreparedLinesRaw(prepared, maxWidth, onLine) {
|
|
|
5407
5528
|
emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);
|
|
5408
5529
|
continue;
|
|
5409
5530
|
}
|
|
5410
|
-
if (pendingBreakKind === "soft-hyphen" && continueSoftHyphenBreakableSegment(i)) {
|
|
5411
|
-
i++;
|
|
5412
|
-
continue;
|
|
5413
|
-
}
|
|
5414
5531
|
if (breakAfter && currentBreakFitWidth <= fitLimit) {
|
|
5415
5532
|
appendWholeSegment(i, advance);
|
|
5416
5533
|
emitCurrentLine(i + 1, 0, currentBreakPaintWidth);
|
|
@@ -5456,8 +5573,9 @@ function stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth) {
|
|
|
5456
5573
|
}
|
|
5457
5574
|
const { widths, kinds, breakableFitAdvances, discretionaryHyphenWidth } = prepared;
|
|
5458
5575
|
const engineProfile = getEngineProfile();
|
|
5459
|
-
const
|
|
5460
|
-
const
|
|
5576
|
+
const fitLimit = maxWidth + engineProfile.lineFitEpsilon;
|
|
5577
|
+
const lineStartSegmentIndex = cursor.segmentIndex;
|
|
5578
|
+
const lineStartGraphemeIndex = cursor.graphemeIndex;
|
|
5461
5579
|
let lineW = 0;
|
|
5462
5580
|
let hasContent = false;
|
|
5463
5581
|
let lineEndSegmentIndex = cursor.segmentIndex;
|
|
@@ -5466,17 +5584,14 @@ function stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth) {
|
|
|
5466
5584
|
let pendingBreakFitWidth = 0;
|
|
5467
5585
|
let pendingBreakPaintWidth = 0;
|
|
5468
5586
|
let pendingBreakKind = null;
|
|
5469
|
-
function
|
|
5470
|
-
pendingBreakSegmentIndex
|
|
5471
|
-
pendingBreakFitWidth = 0;
|
|
5472
|
-
pendingBreakPaintWidth = 0;
|
|
5473
|
-
pendingBreakKind = null;
|
|
5587
|
+
function getCurrentLinePaintWidth() {
|
|
5588
|
+
return pendingBreakKind === "soft-hyphen" && pendingBreakSegmentIndex === lineEndSegmentIndex && lineEndGraphemeIndex === 0 ? pendingBreakPaintWidth : lineW;
|
|
5474
5589
|
}
|
|
5475
|
-
function finishLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width =
|
|
5590
|
+
function finishLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = getCurrentLinePaintWidth()) {
|
|
5476
5591
|
if (!hasContent) return null;
|
|
5477
5592
|
cursor.segmentIndex = endSegmentIndex;
|
|
5478
5593
|
cursor.graphemeIndex = endGraphemeIndex;
|
|
5479
|
-
return width;
|
|
5594
|
+
return finalizeLinePaintWidth(prepared, width, lineStartSegmentIndex, lineStartGraphemeIndex, endSegmentIndex, endGraphemeIndex);
|
|
5480
5595
|
}
|
|
5481
5596
|
function startLineAtSegment(segmentIndex, width) {
|
|
5482
5597
|
hasContent = true;
|
|
@@ -5528,20 +5643,8 @@ function stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth) {
|
|
|
5528
5643
|
}
|
|
5529
5644
|
return null;
|
|
5530
5645
|
}
|
|
5531
|
-
function maybeFinishAtSoftHyphen(
|
|
5646
|
+
function maybeFinishAtSoftHyphen() {
|
|
5532
5647
|
if (pendingBreakKind !== "soft-hyphen" || pendingBreakSegmentIndex < 0) return null;
|
|
5533
|
-
const fitWidths = breakableFitAdvances[segmentIndex] ?? null;
|
|
5534
|
-
if (fitWidths !== null) {
|
|
5535
|
-
const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth, prepared.letterSpacing);
|
|
5536
|
-
if (fitCount === fitWidths.length) {
|
|
5537
|
-
lineW = fittedWidth;
|
|
5538
|
-
lineEndSegmentIndex = segmentIndex + 1;
|
|
5539
|
-
lineEndGraphemeIndex = 0;
|
|
5540
|
-
clearPendingBreak();
|
|
5541
|
-
return null;
|
|
5542
|
-
}
|
|
5543
|
-
if (fitCount > 0) return finishLine(segmentIndex, fitCount, fittedWidth + discretionaryHyphenWidth);
|
|
5544
|
-
}
|
|
5545
5648
|
if (pendingBreakFitWidth <= fitLimit) return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);
|
|
5546
5649
|
return null;
|
|
5547
5650
|
}
|
|
@@ -5579,7 +5682,7 @@ function stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth) {
|
|
|
5579
5682
|
const currentBreakFitWidth = lineW + getBreakOpportunityFitContribution(prepared, kind, i, leadingSpacing);
|
|
5580
5683
|
const currentBreakPaintWidth = lineW + getLineEndPaintContribution(prepared, kind, i, leadingSpacing, w);
|
|
5581
5684
|
if (pendingBreakKind === "soft-hyphen" && engineProfile.preferEarlySoftHyphenBreak && pendingBreakFitWidth <= fitLimit) return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);
|
|
5582
|
-
const softBreakLine = maybeFinishAtSoftHyphen(
|
|
5685
|
+
const softBreakLine = maybeFinishAtSoftHyphen();
|
|
5583
5686
|
if (softBreakLine !== null) return softBreakLine;
|
|
5584
5687
|
if (breakAfter && currentBreakFitWidth <= fitLimit) {
|
|
5585
5688
|
appendWholeSegment(i, advance);
|
|
@@ -5686,12 +5789,15 @@ function stepPreparedSimpleLineGeometry(prepared, cursor, maxWidth) {
|
|
|
5686
5789
|
cursor.graphemeIndex = lineEndGraphemeIndex;
|
|
5687
5790
|
return lineW;
|
|
5688
5791
|
}
|
|
5689
|
-
function
|
|
5690
|
-
const chunkIndex = normalizeLineStartChunkIndex(prepared, cursor);
|
|
5691
|
-
if (chunkIndex < 0) return null;
|
|
5792
|
+
function stepPreparedLineGeometryFromChunk(prepared, cursor, chunkIndex, maxWidth) {
|
|
5692
5793
|
if (prepared.simpleLineWalkFastPath) return stepPreparedSimpleLineGeometry(prepared, cursor, maxWidth);
|
|
5693
5794
|
return stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth);
|
|
5694
5795
|
}
|
|
5796
|
+
function stepPreparedLineGeometry(prepared, cursor, maxWidth) {
|
|
5797
|
+
const chunkIndex = normalizePreparedLineStart(prepared, cursor);
|
|
5798
|
+
if (chunkIndex < 0) return null;
|
|
5799
|
+
return stepPreparedLineGeometryFromChunk(prepared, cursor, chunkIndex, maxWidth);
|
|
5800
|
+
}
|
|
5695
5801
|
function measurePreparedLineGeometry(prepared, maxWidth) {
|
|
5696
5802
|
if (prepared.widths.length === 0) return {
|
|
5697
5803
|
lineCount: 0,
|
|
@@ -5704,7 +5810,7 @@ function measurePreparedLineGeometry(prepared, maxWidth) {
|
|
|
5704
5810
|
let lineCount = 0;
|
|
5705
5811
|
let maxLineWidth = 0;
|
|
5706
5812
|
if (!prepared.simpleLineWalkFastPath) {
|
|
5707
|
-
let chunkIndex =
|
|
5813
|
+
let chunkIndex = normalizePreparedLineStart(prepared, cursor);
|
|
5708
5814
|
while (chunkIndex >= 0) {
|
|
5709
5815
|
const lineWidth = stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth);
|
|
5710
5816
|
if (lineWidth === null) return {
|
|
@@ -5731,7 +5837,7 @@ function measurePreparedLineGeometry(prepared, maxWidth) {
|
|
|
5731
5837
|
}
|
|
5732
5838
|
}
|
|
5733
5839
|
//#endregion
|
|
5734
|
-
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.
|
|
5840
|
+
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.7/node_modules/@chenglou/pretext/dist/line-text.js
|
|
5735
5841
|
var sharedGraphemeSegmenter$1 = null;
|
|
5736
5842
|
var sharedLineTextCaches = /* @__PURE__ */ new WeakMap();
|
|
5737
5843
|
function getSharedGraphemeSegmenter$1() {
|
|
@@ -5747,8 +5853,8 @@ function getSegmentGraphemes(segmentIndex, segments, cache) {
|
|
|
5747
5853
|
cache.set(segmentIndex, graphemes);
|
|
5748
5854
|
return graphemes;
|
|
5749
5855
|
}
|
|
5750
|
-
function lineHasDiscretionaryHyphen(kinds, startSegmentIndex,
|
|
5751
|
-
return endSegmentIndex >
|
|
5856
|
+
function lineHasDiscretionaryHyphen(kinds, startSegmentIndex, endSegmentIndex) {
|
|
5857
|
+
return endSegmentIndex > startSegmentIndex && kinds[endSegmentIndex - 1] === "soft-hyphen";
|
|
5752
5858
|
}
|
|
5753
5859
|
function appendSegmentGraphemeRange(text, graphemes, startGraphemeIndex, endGraphemeIndex) {
|
|
5754
5860
|
for (let i = startGraphemeIndex; i < endGraphemeIndex; i++) text += graphemes[i];
|
|
@@ -5763,7 +5869,7 @@ function getLineTextCache(prepared) {
|
|
|
5763
5869
|
}
|
|
5764
5870
|
function buildLineTextFromRange(prepared, cache, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex) {
|
|
5765
5871
|
let text = "";
|
|
5766
|
-
const endsWithDiscretionaryHyphen = lineHasDiscretionaryHyphen(prepared.kinds, startSegmentIndex,
|
|
5872
|
+
const endsWithDiscretionaryHyphen = lineHasDiscretionaryHyphen(prepared.kinds, startSegmentIndex, endSegmentIndex);
|
|
5767
5873
|
for (let i = startSegmentIndex; i < endSegmentIndex; i++) {
|
|
5768
5874
|
if (prepared.kinds[i] === "soft-hyphen" || prepared.kinds[i] === "hard-break") continue;
|
|
5769
5875
|
if (i === startSegmentIndex && startGraphemeIndex > 0) {
|
|
@@ -5779,7 +5885,7 @@ function buildLineTextFromRange(prepared, cache, startSegmentIndex, startGraphem
|
|
|
5779
5885
|
return text;
|
|
5780
5886
|
}
|
|
5781
5887
|
//#endregion
|
|
5782
|
-
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.
|
|
5888
|
+
//#region ../../node_modules/.bun/@chenglou+pretext@0.0.7/node_modules/@chenglou/pretext/dist/layout.js
|
|
5783
5889
|
var sharedGraphemeSegmenter = null;
|
|
5784
5890
|
function getSharedGraphemeSegmenter() {
|
|
5785
5891
|
if (sharedGraphemeSegmenter === null) sharedGraphemeSegmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
|
|
@@ -5870,36 +5976,34 @@ function buildBaseCjkUnits(segText, engineProfile) {
|
|
|
5870
5976
|
pushUnit();
|
|
5871
5977
|
return units;
|
|
5872
5978
|
}
|
|
5873
|
-
function mergeKeepAllTextUnits(units) {
|
|
5979
|
+
function mergeKeepAllTextUnits(segText, units, breakAfterPunctuation) {
|
|
5874
5980
|
if (units.length <= 1) return units;
|
|
5875
5981
|
const merged = [];
|
|
5876
|
-
let
|
|
5877
|
-
let
|
|
5878
|
-
|
|
5879
|
-
|
|
5880
|
-
|
|
5982
|
+
let groupStart = -1;
|
|
5983
|
+
let groupContainsCJK = false;
|
|
5984
|
+
function pushMergedUnit(start, end) {
|
|
5985
|
+
const sourceStart = units[start].start;
|
|
5986
|
+
const sourceEnd = end < units.length ? units[end].start : segText.length;
|
|
5881
5987
|
merged.push({
|
|
5882
|
-
text:
|
|
5883
|
-
start:
|
|
5988
|
+
text: segText.slice(sourceStart, sourceEnd),
|
|
5989
|
+
start: sourceStart
|
|
5884
5990
|
});
|
|
5885
5991
|
}
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
5890
|
-
|
|
5891
|
-
|
|
5892
|
-
|
|
5893
|
-
|
|
5894
|
-
|
|
5895
|
-
|
|
5896
|
-
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
currentContainsCJK = nextContainsCJK;
|
|
5900
|
-
currentCanContinue = nextCanContinue;
|
|
5992
|
+
function flushGroup(end) {
|
|
5993
|
+
if (groupStart < 0) return;
|
|
5994
|
+
if (groupContainsCJK) if (groupStart + 1 === end) merged.push(units[groupStart]);
|
|
5995
|
+
else pushMergedUnit(groupStart, end);
|
|
5996
|
+
else for (let i = groupStart; i < end; i++) merged.push(units[i]);
|
|
5997
|
+
groupStart = -1;
|
|
5998
|
+
groupContainsCJK = false;
|
|
5999
|
+
}
|
|
6000
|
+
for (let i = 0; i < units.length; i++) {
|
|
6001
|
+
const unit = units[i];
|
|
6002
|
+
if (groupStart >= 0 && !canContinueKeepAllTextRun(units[i - 1].text, breakAfterPunctuation)) flushGroup(i);
|
|
6003
|
+
if (groupStart < 0) groupStart = i;
|
|
6004
|
+
groupContainsCJK = groupContainsCJK || isCJK(unit.text);
|
|
5901
6005
|
}
|
|
5902
|
-
|
|
6006
|
+
flushGroup(units.length);
|
|
5903
6007
|
return merged;
|
|
5904
6008
|
}
|
|
5905
6009
|
function countRenderedSpacingGraphemes(text, kind) {
|
|
@@ -5916,7 +6020,7 @@ function addInternalLetterSpacing(width, graphemeCount, letterSpacing) {
|
|
|
5916
6020
|
function measureAnalysis(analysis, font, includeSegments, wordBreak, letterSpacing) {
|
|
5917
6021
|
const engineProfile = getEngineProfile();
|
|
5918
6022
|
const { cache, emojiCorrection } = getFontMeasurementState(font, textMayContainEmoji(analysis.normalized));
|
|
5919
|
-
const discretionaryHyphenWidth = getCorrectedSegmentWidth("-", getSegmentMetrics("-", cache), emojiCorrection) + (letterSpacing === 0 ? 0 : letterSpacing);
|
|
6023
|
+
const discretionaryHyphenWidth = getCorrectedSegmentWidth("-", getSegmentMetrics("-", cache), emojiCorrection) + (letterSpacing === 0 ? 0 : letterSpacing * 2);
|
|
5920
6024
|
const tabStopAdvance = getCorrectedSegmentWidth(" ", getSegmentMetrics(" ", cache), emojiCorrection) * 8;
|
|
5921
6025
|
const hasLetterSpacing = letterSpacing !== 0;
|
|
5922
6026
|
if (analysis.len === 0) return createEmptyPrepared(includeSegments);
|
|
@@ -5979,7 +6083,7 @@ function measureAnalysis(analysis, font, includeSegments, wordBreak, letterSpaci
|
|
|
5979
6083
|
const segMetrics = getSegmentMetrics(segText, cache);
|
|
5980
6084
|
if (segKind === "text" && segMetrics.containsCJK) {
|
|
5981
6085
|
const baseUnits = buildBaseCjkUnits(segText, engineProfile);
|
|
5982
|
-
const measuredUnits = wordBreak === "keep-all" ? mergeKeepAllTextUnits(baseUnits) : baseUnits;
|
|
6086
|
+
const measuredUnits = wordBreak === "keep-all" ? mergeKeepAllTextUnits(segText, baseUnits, engineProfile.breakKeepAllAfterPunctuation) : baseUnits;
|
|
5983
6087
|
for (let i = 0; i < measuredUnits.length; i++) {
|
|
5984
6088
|
const unit = measuredUnits[i];
|
|
5985
6089
|
pushMeasuredTextSegment(unit.text, "text", segStart + unit.start, segWordLike, wordBreak === "keep-all" || !isCJK(unit.text));
|
|
@@ -6100,4 +6204,4 @@ function layoutWithLines(prepared, maxWidth, lineHeight) {
|
|
|
6100
6204
|
//#endregion
|
|
6101
6205
|
export { prepare as a, measureNaturalWidth as i, layoutWithLines as n, prepareWithSegments as o, measureLineStats as r, layout as t };
|
|
6102
6206
|
|
|
6103
|
-
//# sourceMappingURL=layout-
|
|
6207
|
+
//# sourceMappingURL=layout-CWBE0qwx.js.map
|