@tutti-os/ui-rich-text 0.0.52 → 0.0.54
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/README.md +4 -0
- package/dist/at-panel/index.d.ts +4 -2
- package/dist/at-panel/index.js +16 -2055
- package/dist/at-panel/index.js.map +1 -1
- package/dist/at-panel/model.d.ts +4 -218
- package/dist/{chunk-NNPICKW6.js → chunk-2SYJ5JFT.js} +2 -2
- package/dist/{chunk-HO3WOO7V.js → chunk-5XJXLQYZ.js} +2 -2
- package/dist/chunk-5XJXLQYZ.js.map +1 -0
- package/dist/chunk-SH3QPYB2.js +2083 -0
- package/dist/chunk-SH3QPYB2.js.map +1 -0
- package/dist/core/index.js +1 -1
- package/dist/editor/index.css +871 -0
- package/dist/editor/index.css.map +1 -0
- package/dist/editor/index.d.ts +16 -2
- package/dist/editor/index.js +179 -5
- package/dist/editor/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/mentionPaletteModel-BO1PV_yi.d.ts +220 -0
- package/dist/plugins/index.js +2 -2
- package/package.json +3 -3
- package/dist/chunk-HO3WOO7V.js.map +0 -1
- /package/dist/{chunk-NNPICKW6.js.map → chunk-2SYJ5JFT.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/at-panel/mentionPalette.css"],"sourcesContent":[".rich-text-at-mention-palette-scroll-region {\n scrollbar-width: none !important;\n -ms-overflow-style: none !important;\n scrollbar-gutter: auto;\n}\n\n.rich-text-at-mention-palette-scroll-region::-webkit-scrollbar {\n display: none !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.rich-text-at-mention-palette-scrollbar {\n position: absolute;\n top: 4px;\n right: 4px;\n bottom: 4px;\n width: 4px;\n cursor: pointer;\n opacity: 0;\n pointer-events: auto;\n transition: opacity 160ms ease-in-out;\n}\n\n.rich-text-at-mention-palette-scrollbar-thumb {\n width: 4px;\n min-height: 24px;\n border-radius: 999px;\n background: var(--transparency-block);\n cursor: grab;\n transition: background-color 160ms ease-in-out;\n will-change: transform;\n}\n\n.rich-text-at-mention-palette-scrollbar:hover\n .rich-text-at-mention-palette-scrollbar-thumb {\n background: var(--transparency-hover);\n}\n\n.rich-text-at-mention-palette-scrollbar[data-dragging=\"true\"] {\n opacity: 1;\n}\n\n.rich-text-at-mention-palette-scrollbar[data-dragging=\"true\"]\n .rich-text-at-mention-palette-scrollbar-thumb {\n background: var(--transparency-hover);\n cursor: grabbing;\n}\n\n.rich-text-at-mention-palette {\n box-sizing: border-box;\n container-type: inline-size;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n --rich-text-at-mention-bg: var(\n --background-fronted,\n var(--panel, var(--background-panel, #fff))\n );\n --rich-text-at-mention-text-primary: var(\n --text-primary,\n var(--text, #171717)\n );\n --rich-text-at-mention-text-secondary: var(\n --text-secondary,\n var(--muted, #737373)\n );\n --rich-text-at-mention-text-tertiary: var(\n --text-tertiary,\n var(--muted, #8a8a8a)\n );\n --rich-text-at-mention-line-1: var(--line-1, var(--border, #0000001a));\n --rich-text-at-mention-line-2: var(--line-2, var(--border, #00000014));\n --rich-text-at-mention-hover: var(\n --transparency-block,\n var(--accent-soft, var(--sidebar-hover, #0000000d))\n );\n --rich-text-at-mention-active: var(\n --transparency-active,\n var(--accent-hover, #00000014)\n );\n --rich-text-at-mention-accent: var(--tutti-purple, var(--accent, #5f5cf0));\n --rich-text-at-mention-danger-bg: var(--on-danger, #fee2e2);\n --rich-text-at-mention-danger-fg: var(--state-danger, #dc2626);\n --rich-text-at-mention-success-fg: var(--state-success, #16a34a);\n --rich-text-at-mention-success-bg: color-mix(\n in srgb,\n var(--rich-text-at-mention-success-fg) 12%,\n transparent\n );\n --rich-text-at-mention-warning-fg: var(--state-warning, rgb(234 121 8));\n --rich-text-at-mention-warning-bg: color-mix(\n in srgb,\n var(--rich-text-at-mention-warning-fg) 12%,\n transparent\n );\n --rich-text-at-mention-info-fg: var(--status-running, rgb(65 130 245));\n --rich-text-at-mention-info-bg: color-mix(\n in srgb,\n var(--rich-text-at-mention-info-fg) 12%,\n transparent\n );\n}\n\n.rich-text-at-mention-palette__shell {\n box-sizing: border-box;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 320px;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n color: var(--rich-text-at-mention-text-primary);\n font-size: 13px;\n -webkit-app-region: no-drag;\n}\n\n.rich-text-at-mention-palette__header {\n position: relative;\n z-index: 10;\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n flex-shrink: 0;\n}\n\n.rich-text-at-mention-palette__footer {\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n flex-shrink: 0;\n}\n\n.rich-text-at-mention-palette__scroll-shell {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n.rich-text-at-mention-palette__scroll-body {\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n padding: 8px 4px 4px;\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.rich-text-at-mention-palette__groups,\n.rich-text-at-mention-palette__group,\n.rich-text-at-mention-palette__group-items {\n box-sizing: border-box;\n display: grid;\n width: 100%;\n min-width: 0;\n}\n\n.rich-text-at-mention-palette__groups {\n gap: 12px;\n}\n\n.rich-text-at-mention-palette__group,\n.rich-text-at-mention-palette__group-items {\n gap: 4px;\n}\n\n.rich-text-at-mention-palette__group-divider {\n margin: 0 12px 8px;\n border-top: 1px solid var(--rich-text-at-mention-line-1);\n}\n\n.rich-text-at-mention-palette__group-label,\n.rich-text-at-mention-palette__group-empty {\n padding-inline: 12px;\n font-size: 13px;\n font-weight: 400;\n}\n\n.rich-text-at-mention-palette__group-label {\n color: var(--rich-text-at-mention-text-secondary);\n}\n\n.rich-text-at-mention-palette__group-empty {\n padding-block: 4px;\n color: var(--rich-text-at-mention-text-tertiary);\n}\n\n.rich-text-at-mention-palette__row-button,\n.rich-text-at-mention-palette__expand-button {\n appearance: none;\n -webkit-app-region: no-drag;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n cursor: pointer;\n outline: none;\n}\n\n.rich-text-at-mention-palette__row-button {\n position: relative;\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n min-width: 0;\n min-height: 36px;\n padding: 8px 10px;\n overflow: hidden;\n border-radius: 6px;\n color: var(--rich-text-at-mention-text-primary);\n text-align: left;\n user-select: none;\n transition:\n background-color 200ms ease,\n color 200ms ease;\n}\n\n.rich-text-at-mention-palette__row-button > svg,\n.rich-text-at-mention-palette__row-button svg {\n flex-shrink: 0;\n pointer-events: none;\n}\n\n.rich-text-at-mention-palette__row-button > svg:not([class*=\"size-\"]) {\n width: 16px;\n height: 16px;\n}\n\n.rich-text-at-mention-palette__row-button[data-highlighted],\n.rich-text-at-mention-palette__expand-button[data-highlighted] {\n background: var(--rich-text-at-mention-hover);\n color: var(--rich-text-at-mention-text-primary);\n}\n\n.rich-text-at-mention-palette__row-button:active,\n.rich-text-at-mention-palette__expand-button:active {\n background: var(--rich-text-at-mention-active);\n}\n\n.rich-text-at-mention-palette__expand-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding: 8px 12px;\n border-radius: 6px;\n color: var(--rich-text-at-mention-text-secondary);\n font-size: 13px;\n font-weight: 500;\n transition:\n background-color 160ms ease,\n color 160ms ease;\n}\n\n.rich-text-at-mention-palette__empty-state {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n min-height: 0;\n height: 100%;\n padding: 24px 16px;\n color: var(--rich-text-at-mention-text-tertiary);\n font-size: 13px;\n text-align: center;\n}\n\n.rich-text-at-mention-palette__empty-state-inner {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n width: min(100%, 28ch);\n max-width: 100%;\n min-width: 0;\n}\n\n.rich-text-at-mention-palette__empty-state-icon {\n width: 24px;\n height: 24px;\n color: var(--rich-text-at-mention-text-tertiary);\n}\n\n.rich-text-at-mention-palette__empty-state-text {\n display: block;\n max-width: 100%;\n min-width: 0;\n color: var(--rich-text-at-mention-text-tertiary);\n line-height: 20px;\n overflow-wrap: anywhere;\n}\n\n.rich-text-at-mention-palette__loading {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 52px;\n padding-inline: 12px;\n border-radius: 12px;\n color: var(--rich-text-at-mention-text-secondary);\n font-size: 13px;\n}\n\n.rich-text-at-mention-palette__loading-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid color-mix(in srgb, currentColor 28%, transparent);\n border-top-color: currentColor;\n border-radius: 999px;\n animation: rich-text-at-mention-spin 820ms linear infinite;\n}\n\n@keyframes rich-text-at-mention-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.tsh-underline-tabs.rich-text-at-mention-palette-tabs {\n height: 41px;\n padding: 8px 16px 0;\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs\"] {\n position: relative;\n box-sizing: border-box;\n min-width: 0;\n height: 33px;\n padding-inline: 16px;\n border-bottom: 1px solid var(--rich-text-at-mention-line-1);\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-viewport\"] {\n height: 32px;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n}\n\n.rich-text-at-mention-palette\n [data-slot=\"underline-tabs-viewport\"]::-webkit-scrollbar {\n display: none;\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-viewport\"] > div {\n position: relative;\n display: flex;\n align-items: center;\n gap: 14px;\n width: max-content;\n min-width: 100%;\n height: 32px;\n padding-bottom: 8px;\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-tab\"] {\n appearance: none;\n position: relative;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n gap: 6px;\n height: 24px;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--rich-text-at-mention-text-secondary);\n font: inherit;\n font-size: 13px;\n font-weight: 600;\n line-height: 24px;\n white-space: nowrap;\n cursor: pointer;\n transition: color 160ms ease;\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-tab\"]:hover,\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-tab\"]:focus-visible {\n color: var(--rich-text-at-mention-text-primary);\n outline: none;\n}\n\n.rich-text-at-mention-palette\n [data-slot=\"underline-tabs-tab\"][data-active=\"true\"] {\n color: var(--rich-text-at-mention-accent);\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-indicator\"] {\n position: absolute;\n bottom: 0;\n left: 0;\n z-index: 1;\n height: 2px;\n border-radius: 1px;\n background: var(--rich-text-at-mention-accent);\n transition:\n transform 220ms cubic-bezier(0.4, 0, 0.2, 1),\n width 220ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-scroll-left\"],\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-scroll-right\"] {\n appearance: none;\n pointer-events: none;\n position: absolute;\n top: 12px;\n z-index: 3;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 0;\n border-radius: 999px;\n background: var(--rich-text-at-mention-bg);\n color: var(--rich-text-at-mention-text-secondary);\n opacity: 0;\n box-shadow: 0 4px 16px rgb(15 23 42 / 12%);\n transform: translateY(-50%) scale(0.94);\n transition:\n opacity 160ms ease,\n transform 160ms ease,\n background-color 160ms ease,\n color 160ms ease;\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-scroll-left\"] {\n left: 16px;\n}\n\n.rich-text-at-mention-palette [data-slot=\"underline-tabs-scroll-right\"] {\n right: 16px;\n}\n\n.rich-text-at-mention-palette:hover\n [data-slot=\"underline-tabs-scroll-left\"][data-visible=\"true\"],\n.rich-text-at-mention-palette:hover\n [data-slot=\"underline-tabs-scroll-right\"][data-visible=\"true\"],\n.rich-text-at-mention-palette:focus-within\n [data-slot=\"underline-tabs-scroll-left\"][data-visible=\"true\"],\n.rich-text-at-mention-palette:focus-within\n [data-slot=\"underline-tabs-scroll-right\"][data-visible=\"true\"] {\n pointer-events: auto;\n opacity: 1;\n transform: translateY(-50%) scale(1);\n}\n\n.rich-text-at-mention-palette-header {\n padding: 8px 0 0;\n}\n\n.rich-text-at-mention-palette-footer {\n min-height: 36px;\n border-top: 1px solid var(--line-2, var(--tutti-line-2));\n background: var(--background-fronted, var(--background-panel));\n}\n\n.rich-text-at-mention-palette-hint {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n width: 100%;\n height: 36px;\n padding: 0 16px 1px;\n color: var(--rich-text-at-mention-text-secondary);\n font-size: 13px;\n font-weight: 500;\n line-height: 20px;\n pointer-events: auto;\n}\n\n.rich-text-at-mention-palette-hint-item {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n white-space: nowrap;\n}\n\n.rich-text-at-mention-palette-hint-button,\n.rich-text-at-mention-palette-shortcut-button {\n appearance: none;\n border: 0;\n font: inherit;\n cursor: pointer;\n}\n\n.rich-text-at-mention-palette-hint-button {\n padding: 0;\n background: transparent;\n color: inherit;\n}\n\n.rich-text-at-mention-palette-hint-button > span:last-child,\n.rich-text-at-mention-palette-hint-item > span:last-child {\n color: var(--rich-text-at-mention-text-secondary);\n}\n\n.rich-text-at-mention-palette-shortcut {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 20px;\n min-width: 20px;\n border: 1px solid var(--rich-text-at-mention-line-2);\n border-radius: 5px;\n background: var(--rich-text-at-mention-hover);\n color: var(--rich-text-at-mention-text-primary);\n box-shadow: inset 0 -1px 0 rgb(0 0 0 / 4%);\n font-size: 12px;\n font-weight: 650;\n line-height: 1;\n padding: 3px 6px;\n}\n\n.rich-text-at-mention-palette-hint-button:hover\n .rich-text-at-mention-palette-shortcut,\n.rich-text-at-mention-palette-hint-button:focus-visible\n .rich-text-at-mention-palette-shortcut,\n.rich-text-at-mention-palette-shortcut-button:hover,\n.rich-text-at-mention-palette-shortcut-button:focus-visible {\n border-color: var(--rich-text-at-mention-line-1);\n background: var(--rich-text-at-mention-active);\n}\n\n.rich-text-at-mention-palette-hint-button:focus-visible,\n.rich-text-at-mention-palette-shortcut-button:focus-visible {\n outline: 2px solid var(--rich-text-at-mention-line-1);\n outline-offset: 2px;\n}\n\n.rich-text-at-mention-palette-shortcut--arrow {\n width: 20px;\n min-width: 20px;\n font-size: 13px;\n line-height: 1;\n padding: 0;\n}\n\n.rich-text-at-mention-palette-shortcut-group {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n}\n\n.rich-text-at-mention-palette-hint-separator {\n color: var(--rich-text-at-mention-line-1);\n}\n\n.rich-text-at-mention-palette:hover\n .rich-text-at-mention-palette-scrollbar[data-scrollable=\"true\"] {\n opacity: 1;\n}\n\n.rich-text-at-mention-palette {\n --agent-mention-file-icon-size: 16px;\n}\n\n.rich-text-at-mention-row {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n width: 100%;\n overflow: hidden;\n}\n\n.rich-text-at-mention-row--session {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n gap: 12px;\n}\n\n.rich-text-at-mention-row--issue {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto auto;\n}\n\n.rich-text-at-mention-row--app,\n.rich-text-at-mention-row--file {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n}\n\n.rich-text-at-mention-row--plain > :not(.rich-text-at-mention-row__text-stack) {\n flex: 0 0 auto;\n}\n\n.rich-text-at-mention-row__leading,\n.rich-text-at-mention-row__inline,\n.rich-text-at-mention-row__file-text,\n.rich-text-at-mention-row__app-text {\n display: flex;\n min-width: 0;\n overflow: hidden;\n}\n\n.rich-text-at-mention-row__leading {\n align-items: center;\n gap: 8px;\n width: 100%;\n}\n\n.rich-text-at-mention-row--session .rich-text-at-mention-row__leading {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr);\n}\n\n.rich-text-at-mention-row__inline {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n align-items: center;\n gap: 8px;\n width: 100%;\n}\n\n.rich-text-at-mention-row__file-text,\n.rich-text-at-mention-row__app-text {\n align-items: baseline;\n gap: 4px;\n}\n\n.rich-text-at-mention-row__session-title {\n display: grid;\n grid-template-columns: minmax(0, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: 4px;\n width: 100%;\n}\n\n.rich-text-at-mention-row__file-text {\n flex: 1 1 0;\n}\n\n.rich-text-at-mention-row__app-text {\n flex: 1 1 0;\n}\n\n.rich-text-at-mention-row__text-stack {\n display: grid;\n gap: 2px;\n min-width: 0;\n overflow: hidden;\n}\n\n.rich-text-at-mention-row__text-stack--fill {\n flex: 1 1 auto;\n width: 100%;\n}\n\n.rich-text-at-mention-row__title,\n.rich-text-at-mention-row__app-name,\n.rich-text-at-mention-row__session-title,\n.rich-text-at-mention-row__description,\n.rich-text-at-mention-row__app-description,\n.rich-text-at-mention-row__file-count,\n.rich-text-at-mention-row__session-participant,\n.rich-text-at-mention-row__session-summary {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 13px;\n}\n\n.rich-text-at-mention-row__title,\n.rich-text-at-mention-row__app-name,\n.rich-text-at-mention-row__session-title,\n.rich-text-at-mention-row__session-participant {\n color: var(--rich-text-at-mention-text-primary);\n font-weight: 600;\n}\n\n.rich-text-at-mention-row__title,\n.rich-text-at-mention-row__app-name {\n flex: 0 1 auto;\n}\n\n.rich-text-at-mention-row__app-name {\n flex-shrink: 1;\n}\n\n.rich-text-at-mention-row__description,\n.rich-text-at-mention-row__app-description,\n.rich-text-at-mention-row__file-count,\n.rich-text-at-mention-row__session-summary {\n color: var(--rich-text-at-mention-text-secondary);\n font-weight: 400;\n}\n\n.rich-text-at-mention-row__app-description {\n flex: 1 1 0;\n}\n\n.rich-text-at-mention-row__description,\n.rich-text-at-mention-row__session-summary {\n flex: 1 1 0;\n}\n\n.rich-text-at-mention-row__file-count {\n flex: 0 0 auto;\n}\n\n.rich-text-at-mention-row__session-title,\n.rich-text-at-mention-row__session-participant,\n.rich-text-at-mention-row__session-summary {\n line-height: 16px;\n}\n\n.rich-text-at-mention-row__session-participant {\n flex: 0 0 auto;\n}\n\n.rich-text-at-mention-row__session-summary {\n min-width: 0;\n}\n\n.rich-text-at-mention-row__media {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.rich-text-at-mention-row__open-references,\n.rich-text-at-mention-row__navigate-into {\n appearance: none;\n display: grid;\n place-items: center;\n height: 24px;\n margin-left: auto;\n justify-self: end;\n padding: 0;\n border: 0;\n border-radius: 5px;\n background: transparent;\n color: var(--rich-text-at-mention-text-tertiary);\n cursor: pointer;\n outline: none;\n transition:\n background-color 160ms ease,\n color 160ms ease;\n}\n\n.rich-text-at-mention-row__open-references {\n width: auto;\n min-width: max-content;\n flex: 0 0 auto;\n padding-inline: 8px;\n font-size: 12px;\n font-weight: 600;\n line-height: 24px;\n white-space: nowrap;\n}\n\n.rich-text-at-mention-row__navigate-into {\n width: 24px;\n flex: 0 0 24px;\n}\n\n.rich-text-at-mention-row__open-references:hover,\n.rich-text-at-mention-row__navigate-into:hover,\n.rich-text-at-mention-row__open-references:focus-visible,\n.rich-text-at-mention-row__navigate-into:focus-visible {\n background: var(--rich-text-at-mention-active);\n color: var(--rich-text-at-mention-text-secondary);\n}\n\n.rich-text-at-mention-file-icon--glyph {\n display: grid;\n place-items: center;\n color: var(--rich-text-at-mention-text-secondary);\n}\n\n.rich-text-at-mention-app-icon {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n overflow: hidden;\n border-radius: 5px;\n background: var(--bg-block, var(--block, #0000000a));\n color: var(--rich-text-at-mention-text-secondary);\n}\n\n.rich-text-at-mention-kind-icon--app {\n width: 16px;\n height: 16px;\n}\n\n.rich-text-at-mention-avatar-stack {\n position: relative;\n isolation: isolate;\n display: block;\n width: 36px;\n height: 20px;\n flex: 0 0 36px;\n}\n\n.rich-text-at-mention-avatar-stack--agent-only {\n width: 20px;\n flex: 0 0 20px;\n}\n\n.rich-text-at-mention-avatar-stack--agent-only\n .rich-text-at-mention-avatar--agent {\n left: 0;\n}\n\n.rich-text-at-mention-avatar {\n position: absolute;\n top: 0;\n display: grid;\n width: 20px;\n height: 20px;\n overflow: hidden;\n border-radius: 999px;\n background: var(--bg-block, var(--block, #0000000a));\n}\n\n.rich-text-at-mention-avatar--user {\n left: 0;\n z-index: 0;\n}\n\n.rich-text-at-mention-avatar--agent {\n left: 16px;\n z-index: 10;\n}\n\n.rich-text-at-mention-status {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n gap: 4px;\n width: fit-content;\n border: 1px solid transparent;\n white-space: nowrap;\n}\n\n.rich-text-at-mention-status[data-tone=\"blue\"] {\n background: var(--rich-text-at-mention-info-bg);\n color: var(--rich-text-at-mention-info-fg);\n}\n\n.rich-text-at-mention-status[data-tone=\"amber\"] {\n background: var(--rich-text-at-mention-warning-bg);\n color: var(--rich-text-at-mention-warning-fg);\n}\n\n.rich-text-at-mention-status[data-tone=\"green\"] {\n background: var(--rich-text-at-mention-success-bg);\n color: var(--rich-text-at-mention-success-fg);\n}\n\n.rich-text-at-mention-status[data-tone=\"purple\"] {\n background: color-mix(\n in srgb,\n var(--rich-text-at-mention-accent) 12%,\n transparent\n );\n color: var(--rich-text-at-mention-accent);\n}\n\n.rich-text-at-mention-status[data-tone=\"red\"] {\n background: var(--rich-text-at-mention-danger-bg);\n color: var(--rich-text-at-mention-danger-fg);\n}\n\n.rich-text-at-mention-status[data-tone=\"neutral\"] {\n background: var(--rich-text-at-mention-hover);\n color: var(--rich-text-at-mention-text-secondary);\n}\n\n.rich-text-at-mention-status--activity {\n padding-inline: 0;\n background: transparent;\n}\n\n.rich-text-at-mention-status--activity[data-tone] {\n background: transparent;\n}\n\n.rich-text-at-mention-status [data-slot=\"status-dot\"] {\n display: inline-flex;\n width: 6px;\n height: 6px;\n flex: 0 0 6px;\n border-radius: 999px;\n background: currentColor;\n}\n\n.rich-text-at-mention-status [data-slot=\"status-dot\"][data-pulse=\"true\"] {\n animation: rich-text-at-mention-pulse 1.4s ease-in-out infinite;\n}\n\n@keyframes rich-text-at-mention-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.rich-text-at-mention-select-indicator {\n display: grid;\n place-items: center;\n width: 18px;\n height: 18px;\n flex: 0 0 18px;\n border: 1px solid var(--border, var(--rich-text-at-mention-line-1));\n border-radius: 5px;\n background: #fff;\n color: transparent;\n}\n\n.rich-text-at-mention-select-indicator[data-selected=\"true\"] {\n border-color: #171717;\n background: #171717;\n color: #fff;\n}\n\n.rich-text-at-mention-multiselect-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 8px 10px;\n border-top: 1px solid var(--border, var(--rich-text-at-mention-line-1));\n background: var(--panel, var(--rich-text-at-mention-bg));\n}\n\n.rich-text-at-mention-multiselect-footer__count {\n color: var(--rich-text-at-mention-text-secondary);\n font-size: 12px;\n font-weight: 600;\n}\n\n.rich-text-at-mention-multiselect-footer__actions {\n display: flex;\n gap: 8px;\n}\n\n.rich-text-at-mention-multiselect-footer__button {\n appearance: none;\n height: 30px;\n padding-inline: 12px;\n border-radius: 8px;\n font: inherit;\n font-size: 12px;\n font-weight: 700;\n cursor: pointer;\n}\n\n.rich-text-at-mention-multiselect-footer__button--secondary {\n border: 1px solid var(--border, var(--rich-text-at-mention-line-1));\n background: #fff;\n color: var(--text, var(--rich-text-at-mention-text-primary));\n}\n\n.rich-text-at-mention-multiselect-footer__button--primary {\n border: 0;\n background: #171717;\n color: #fff;\n}\n\n.rich-text-at-mention-multiselect-footer__button:disabled {\n opacity: 0.45;\n cursor: default;\n}\n\n/*\n * Structural styling for the shared MentionRow elements. These mirror the\n * agent composer's rules (in `agentactivity.css`) under package-owned\n * `rich-text-at-mention-*` class names so any consumer (e.g. issue-manager)\n * that does NOT load the agent stylesheet still renders styled rows. The agent\n * keeps passing its own class names via `renderMentionRow(item, classNames)`.\n */\n.rich-text-at-mention-file-thumb {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--agent-mention-file-icon-size, 16px);\n height: var(--agent-mention-file-icon-size, 16px);\n flex: 0 0 var(--agent-mention-file-icon-size, 16px);\n overflow: hidden;\n border-radius: 4px;\n background-color: var(--bg-block, var(--block));\n vertical-align: middle;\n}\n\n.rich-text-at-mention-file-thumb img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n/*\n * NOTE: the masked file kind-icon glyph and the fallback app glyph need raw SVG\n * mask assets. Those cannot live in this package (the `check-ui-boundaries`\n * gate restricts raw .svg assets to `packages/ui/system/src/icons/`), so only\n * the structural box (size/layout) is owned here. The agent composer supplies\n * its own masked glyph rules via `agentactivity.css` + its own class names. The\n * issue-manager file glyph + app fallback glyph are completed in Phases 3-4.\n */\n.rich-text-at-mention-file-icon {\n width: var(--agent-mention-file-icon-size, 16px);\n height: var(--agent-mention-file-icon-size, 16px);\n flex: 0 0 var(--agent-mention-file-icon-size, 16px);\n background-color: var(--folder);\n border-radius: 4px;\n}\n\n/* Fallback app glyph box (shown when a workspace-app mention has no icon URL). */\n.rich-text-at-mention-kind-icon {\n display: block;\n width: 16px;\n height: 16px;\n flex: 0 0 16px;\n background-color: currentColor;\n border-radius: 22.5%;\n}\n\n/* Session user-avatar placeholder background (no avatar URL). */\n.rich-text-at-mention-avatar-img--user-placeholder {\n background-color: var(--muted);\n}\n\n/*\n * Workspace-app icon container. Data-attribute based (matches the agent's\n * global rule) so the rounded app icon renders for any consumer of the shared\n * row, including surfaces that do not load `agentactivity.css`.\n */\n[data-workspace-app-icon=\"true\"] {\n display: inline-grid;\n min-width: 0;\n min-height: 0;\n place-items: center;\n overflow: hidden;\n border-radius: 22.5%;\n background: var(--workspace-app-icon-bg, transparent);\n}\n\n[data-workspace-app-icon=\"true\"] > img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n}\n\n[data-workspace-app-icon=\"true\"] > .rich-text-at-mention-kind-icon {\n display: block;\n}\n"],"mappings":"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","names":[]}
|
package/dist/editor/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ReactNode, JSX } from 'react';
|
|
2
|
-
import { RichTextTriggerProvider, RichTextTrigger, RichTextTriggerConfig, RichTextTriggerBoundary, RichTextTriggerRegistry, RichTextTriggerQueryInput
|
|
2
|
+
import { RichTextTriggerProvider, RichTextTriggerQueryMatch, RichTextTrigger, RichTextTriggerConfig, RichTextTriggerBoundary, RichTextTriggerRegistry, RichTextTriggerQueryInput } from '../types/index.js';
|
|
3
|
+
import { a as MentionPaletteCategoryConfig } from '../mentionPaletteModel-BO1PV_yi.js';
|
|
3
4
|
import { a as RichTextI18nRuntime } from '../richTextI18n-CUeqHuEQ.js';
|
|
4
5
|
import { R as RichTextMentionAttrs, l as RichTextResolvedMention, m as RichTextResolvedMentionView } from '../mention-DJq2OJ4K.js';
|
|
5
6
|
import '@tutti-os/ui-i18n-runtime';
|
|
@@ -33,8 +34,21 @@ interface RichTextTriggerEditorProps {
|
|
|
33
34
|
menuPlacement?: RichTextTriggerMenuPlacement;
|
|
34
35
|
menuOffset?: number;
|
|
35
36
|
menuZIndex?: string | number;
|
|
37
|
+
palette?: RichTextTriggerEditorPaletteOptions;
|
|
36
38
|
}
|
|
37
|
-
|
|
39
|
+
interface RichTextTriggerEditorPaletteOptions {
|
|
40
|
+
categories: readonly MentionPaletteCategoryConfig<RichTextTriggerQueryMatch>[];
|
|
41
|
+
defaultCategoryId?: string;
|
|
42
|
+
labels: {
|
|
43
|
+
tabHint: string;
|
|
44
|
+
cycleFilter: string;
|
|
45
|
+
moveSelection: string;
|
|
46
|
+
empty?: string;
|
|
47
|
+
listbox?: string;
|
|
48
|
+
};
|
|
49
|
+
maxHeightPx?: number;
|
|
50
|
+
}
|
|
51
|
+
declare function RichTextTriggerEditor({ value, onChange, triggerProviders, placeholder, disabled, className, textareaClassName, placeholderClassName, minQueryLength, maxResults, removeDecorationAriaLabel, i18n, textOverrides, overlay, focusSignal, menuAnchor, menuPlacement, menuOffset, menuZIndex, palette }: RichTextTriggerEditorProps): JSX.Element;
|
|
38
52
|
|
|
39
53
|
interface RichTextTriggerTextareaProps {
|
|
40
54
|
value: string;
|
package/dist/editor/index.js
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createDefaultRichTextI18nRuntime
|
|
3
3
|
} from "../chunk-VQHCWUBH.js";
|
|
4
|
+
import {
|
|
5
|
+
MentionPaletteFromState,
|
|
6
|
+
renderMentionRow,
|
|
7
|
+
richTextTriggerQueryMatchToMentionRowItem
|
|
8
|
+
} from "../chunk-SH3QPYB2.js";
|
|
9
|
+
import {
|
|
10
|
+
buildMentionPaletteModelFromTriggerMatches,
|
|
11
|
+
findMentionPaletteEntry,
|
|
12
|
+
moveMentionPaletteHighlight,
|
|
13
|
+
repairMentionPaletteHighlight
|
|
14
|
+
} from "../chunk-HMAUQU6Q.js";
|
|
4
15
|
import {
|
|
5
16
|
createRichTextMentionAttrs,
|
|
6
17
|
createRichTextTriggerRegistry,
|
|
7
18
|
getRichTextMentionDisplayText,
|
|
8
19
|
renderRichTextTriggerInsertResult,
|
|
9
20
|
resolveRichTextMentionView
|
|
10
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-2SYJ5JFT.js";
|
|
11
22
|
import {
|
|
12
23
|
findRichTextMarkdownLinks,
|
|
13
24
|
isRichTextMentionHref,
|
|
@@ -18,7 +29,7 @@ import {
|
|
|
18
29
|
parseRichTextMentionHref,
|
|
19
30
|
serializeRichTextDocumentToContent,
|
|
20
31
|
workspaceReferenceNodeName
|
|
21
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-5XJXLQYZ.js";
|
|
22
33
|
|
|
23
34
|
// src/editor/RichTextTriggerEditor.tsx
|
|
24
35
|
import {
|
|
@@ -661,7 +672,8 @@ function RichTextTriggerEditor({
|
|
|
661
672
|
menuAnchor = "cursor",
|
|
662
673
|
menuPlacement = "bottom-start",
|
|
663
674
|
menuOffset = 6,
|
|
664
|
-
menuZIndex
|
|
675
|
+
menuZIndex,
|
|
676
|
+
palette
|
|
665
677
|
}) {
|
|
666
678
|
const normalizedValue = normalizeRichTextContent(value);
|
|
667
679
|
const text = resolveRichTextTriggerText(
|
|
@@ -690,6 +702,10 @@ function RichTextTriggerEditor({
|
|
|
690
702
|
[]
|
|
691
703
|
);
|
|
692
704
|
const [activeIndex, setActiveIndex] = useState2(0);
|
|
705
|
+
const [highlightedPaletteKey, setHighlightedPaletteKey] = useState2(null);
|
|
706
|
+
const [activePaletteCategoryId, setActivePaletteCategoryId] = useState2(
|
|
707
|
+
() => resolveDefaultPaletteCategoryId(palette)
|
|
708
|
+
);
|
|
693
709
|
const [isLoading, setIsLoading] = useState2(false);
|
|
694
710
|
const [resolvedMenuAnchor, setResolvedMenuAnchor] = useState2(null);
|
|
695
711
|
latestOnChangeRef.current = onChange;
|
|
@@ -724,6 +740,7 @@ function RichTextTriggerEditor({
|
|
|
724
740
|
setQuery(null);
|
|
725
741
|
setMatches([]);
|
|
726
742
|
setActiveIndex(0);
|
|
743
|
+
setHighlightedPaletteKey(null);
|
|
727
744
|
setIsLoading(false);
|
|
728
745
|
resetMenuPlacement();
|
|
729
746
|
}, 100);
|
|
@@ -883,6 +900,48 @@ function RichTextTriggerEditor({
|
|
|
883
900
|
query,
|
|
884
901
|
registry
|
|
885
902
|
]);
|
|
903
|
+
const resolvedPaletteCategoryId = resolveActivePaletteCategoryId(
|
|
904
|
+
palette,
|
|
905
|
+
activePaletteCategoryId
|
|
906
|
+
);
|
|
907
|
+
const paletteState = useMemo(
|
|
908
|
+
() => palette ? buildMentionPaletteModelFromTriggerMatches({
|
|
909
|
+
activeCategoryId: resolvedPaletteCategoryId,
|
|
910
|
+
categories: palette.categories,
|
|
911
|
+
matches,
|
|
912
|
+
loading: isLoading,
|
|
913
|
+
query: query?.keyword ?? "",
|
|
914
|
+
mode: "results"
|
|
915
|
+
}) : null,
|
|
916
|
+
[isLoading, matches, palette, query?.keyword, resolvedPaletteCategoryId]
|
|
917
|
+
);
|
|
918
|
+
useEffect2(() => {
|
|
919
|
+
const defaultCategoryId = resolveDefaultPaletteCategoryId(palette);
|
|
920
|
+
if (!defaultCategoryId) {
|
|
921
|
+
setActivePaletteCategoryId("");
|
|
922
|
+
return;
|
|
923
|
+
}
|
|
924
|
+
if (palette?.categories.some(
|
|
925
|
+
(category) => category.id === activePaletteCategoryId
|
|
926
|
+
)) {
|
|
927
|
+
return;
|
|
928
|
+
}
|
|
929
|
+
setActivePaletteCategoryId(defaultCategoryId);
|
|
930
|
+
}, [activePaletteCategoryId, palette]);
|
|
931
|
+
useEffect2(() => {
|
|
932
|
+
if (!paletteState) {
|
|
933
|
+
setHighlightedPaletteKey(null);
|
|
934
|
+
return;
|
|
935
|
+
}
|
|
936
|
+
setHighlightedPaletteKey(
|
|
937
|
+
(current) => repairMentionPaletteHighlight({
|
|
938
|
+
state: paletteState,
|
|
939
|
+
currentKey: current,
|
|
940
|
+
getItemKey: getPaletteMatchKey,
|
|
941
|
+
preferredKey: firstPaletteItemKey(paletteState)
|
|
942
|
+
})
|
|
943
|
+
);
|
|
944
|
+
}, [paletteState]);
|
|
886
945
|
useLayoutEffect(() => {
|
|
887
946
|
if (!editor || !query) {
|
|
888
947
|
resetMenuPlacement();
|
|
@@ -941,6 +1000,7 @@ function RichTextTriggerEditor({
|
|
|
941
1000
|
editor.chain().focus().insertContentAt({ from: query.from, to: query.to }, content).run();
|
|
942
1001
|
setMatches([]);
|
|
943
1002
|
setActiveIndex(0);
|
|
1003
|
+
setHighlightedPaletteKey(null);
|
|
944
1004
|
setIsLoading(false);
|
|
945
1005
|
resetMenuPlacement();
|
|
946
1006
|
};
|
|
@@ -955,10 +1015,62 @@ function RichTextTriggerEditor({
|
|
|
955
1015
|
event.preventDefault();
|
|
956
1016
|
setMatches([]);
|
|
957
1017
|
setActiveIndex(0);
|
|
1018
|
+
setHighlightedPaletteKey(null);
|
|
958
1019
|
setIsLoading(false);
|
|
959
1020
|
resetMenuPlacement();
|
|
960
1021
|
return;
|
|
961
1022
|
}
|
|
1023
|
+
if (paletteState) {
|
|
1024
|
+
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
1025
|
+
const nextKey = moveMentionPaletteHighlight({
|
|
1026
|
+
state: paletteState,
|
|
1027
|
+
currentKey: highlightedPaletteKey,
|
|
1028
|
+
delta: event.key === "ArrowDown" ? 1 : -1,
|
|
1029
|
+
getItemKey: getPaletteMatchKey
|
|
1030
|
+
});
|
|
1031
|
+
if (nextKey !== null) {
|
|
1032
|
+
event.preventDefault();
|
|
1033
|
+
setHighlightedPaletteKey(nextKey);
|
|
1034
|
+
}
|
|
1035
|
+
return;
|
|
1036
|
+
}
|
|
1037
|
+
if (event.key === "Tab") {
|
|
1038
|
+
const nextCategory = nextPaletteCategoryId(
|
|
1039
|
+
paletteState.categories,
|
|
1040
|
+
paletteState.filter,
|
|
1041
|
+
event.shiftKey ? -1 : 1
|
|
1042
|
+
);
|
|
1043
|
+
if (nextCategory) {
|
|
1044
|
+
event.preventDefault();
|
|
1045
|
+
setActivePaletteCategoryId(nextCategory);
|
|
1046
|
+
}
|
|
1047
|
+
return;
|
|
1048
|
+
}
|
|
1049
|
+
if (event.key === "Enter") {
|
|
1050
|
+
const entry = findMentionPaletteEntry({
|
|
1051
|
+
state: paletteState,
|
|
1052
|
+
key: highlightedPaletteKey,
|
|
1053
|
+
getItemKey: getPaletteMatchKey
|
|
1054
|
+
});
|
|
1055
|
+
if (entry?.type === "category" && entry.categoryId) {
|
|
1056
|
+
event.preventDefault();
|
|
1057
|
+
setActivePaletteCategoryId(entry.categoryId);
|
|
1058
|
+
return;
|
|
1059
|
+
}
|
|
1060
|
+
if (entry?.type !== "item" || !entry.groupId) {
|
|
1061
|
+
return;
|
|
1062
|
+
}
|
|
1063
|
+
const group = paletteState.groups.find(
|
|
1064
|
+
(candidate) => candidate.id === entry.groupId
|
|
1065
|
+
);
|
|
1066
|
+
const match = group?.items[typeof entry.itemIndex === "number" ? entry.itemIndex : -1] ?? null;
|
|
1067
|
+
if (match) {
|
|
1068
|
+
event.preventDefault();
|
|
1069
|
+
applyMatch(match);
|
|
1070
|
+
}
|
|
1071
|
+
return;
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
962
1074
|
if (matches.length === 0) {
|
|
963
1075
|
return;
|
|
964
1076
|
}
|
|
@@ -1007,10 +1119,40 @@ function RichTextTriggerEditor({
|
|
|
1007
1119
|
ViewportMenuSurface,
|
|
1008
1120
|
{
|
|
1009
1121
|
open: true,
|
|
1010
|
-
className:
|
|
1122
|
+
className: cn(
|
|
1123
|
+
"tutti-rich-text-at-menu w-[min(32rem,calc(100vw-24px))]",
|
|
1124
|
+
paletteState ? "overflow-hidden p-0" : "max-h-64 overflow-y-auto p-1"
|
|
1125
|
+
),
|
|
1011
1126
|
placement: resolveViewportMenuSurfacePlacement(resolvedMenuAnchor),
|
|
1012
1127
|
style: menuSurfaceStyle,
|
|
1013
|
-
children:
|
|
1128
|
+
children: paletteState && palette ? /* @__PURE__ */ jsx4(
|
|
1129
|
+
MentionPaletteFromState,
|
|
1130
|
+
{
|
|
1131
|
+
state: paletteState,
|
|
1132
|
+
highlightedKey: highlightedPaletteKey,
|
|
1133
|
+
getItemKey: getPaletteMatchKey,
|
|
1134
|
+
labels: {
|
|
1135
|
+
loading: text.loadingLabel,
|
|
1136
|
+
empty: palette.labels.empty ?? text.noMatchesLabel,
|
|
1137
|
+
error: palette.labels.empty ?? text.noMatchesLabel,
|
|
1138
|
+
tabHint: palette.labels.tabHint,
|
|
1139
|
+
listbox: palette.labels.listbox
|
|
1140
|
+
},
|
|
1141
|
+
hintLabels: {
|
|
1142
|
+
cycleFilter: palette.labels.cycleFilter,
|
|
1143
|
+
moveSelection: palette.labels.moveSelection
|
|
1144
|
+
},
|
|
1145
|
+
maxHeightPx: palette.maxHeightPx ?? 320,
|
|
1146
|
+
renderItem: (match) => renderMentionRow(
|
|
1147
|
+
richTextTriggerQueryMatchToMentionRowItem(match)
|
|
1148
|
+
),
|
|
1149
|
+
callbacks: {
|
|
1150
|
+
onHighlightChange: setHighlightedPaletteKey,
|
|
1151
|
+
onActiveCategoryIdChange: setActivePaletteCategoryId,
|
|
1152
|
+
onSelectItem: applyMatch
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
) : matches.length > 0 ? matches.map((match, index) => /* @__PURE__ */ jsx4(
|
|
1014
1156
|
RichTextTriggerMenuItem,
|
|
1015
1157
|
{
|
|
1016
1158
|
label: match.label,
|
|
@@ -1030,6 +1172,38 @@ function RichTextTriggerEditor({
|
|
|
1030
1172
|
}
|
|
1031
1173
|
);
|
|
1032
1174
|
}
|
|
1175
|
+
function resolveDefaultPaletteCategoryId(palette) {
|
|
1176
|
+
return palette?.defaultCategoryId?.trim() || palette?.categories[0]?.id.trim() || "";
|
|
1177
|
+
}
|
|
1178
|
+
function resolveActivePaletteCategoryId(palette, activeCategoryId) {
|
|
1179
|
+
const active = activeCategoryId.trim();
|
|
1180
|
+
if (active && palette?.categories.some((category) => category.id === active)) {
|
|
1181
|
+
return active;
|
|
1182
|
+
}
|
|
1183
|
+
return resolveDefaultPaletteCategoryId(palette);
|
|
1184
|
+
}
|
|
1185
|
+
function getPaletteMatchKey(match, _groupId) {
|
|
1186
|
+
return `${match.providerId}:${match.key}`;
|
|
1187
|
+
}
|
|
1188
|
+
function firstPaletteItemKey(state) {
|
|
1189
|
+
for (const group of state.groups) {
|
|
1190
|
+
const first = group.items[0];
|
|
1191
|
+
if (first) {
|
|
1192
|
+
return `${group.id}:${getPaletteMatchKey(first, group.id)}`;
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
return state.categories[0] ? `category:${state.categories[0].id}` : null;
|
|
1196
|
+
}
|
|
1197
|
+
function nextPaletteCategoryId(categories, currentCategoryId, delta) {
|
|
1198
|
+
if (categories.length === 0) {
|
|
1199
|
+
return null;
|
|
1200
|
+
}
|
|
1201
|
+
const currentIndex = Math.max(
|
|
1202
|
+
0,
|
|
1203
|
+
categories.findIndex((category) => category.id === currentCategoryId)
|
|
1204
|
+
);
|
|
1205
|
+
return categories[(currentIndex + delta + categories.length) % categories.length]?.id ?? null;
|
|
1206
|
+
}
|
|
1033
1207
|
function resolveViewportMenuSurfacePlacement(menuAnchor) {
|
|
1034
1208
|
return {
|
|
1035
1209
|
type: "point",
|