@chenzy-design/core 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-chat-dialogue.d.ts +300 -0
- package/dist/ai-chat-dialogue.d.ts.map +1 -0
- package/dist/ai-chat-dialogue.js +699 -0
- package/dist/ai-chat-dialogue.js.map +1 -0
- package/dist/ai-chat-dialogue.test.d.ts +2 -0
- package/dist/ai-chat-dialogue.test.d.ts.map +1 -0
- package/dist/ai-chat-dialogue.test.js +338 -0
- package/dist/ai-chat-dialogue.test.js.map +1 -0
- package/dist/ai-chat-input.d.ts +191 -0
- package/dist/ai-chat-input.d.ts.map +1 -0
- package/dist/ai-chat-input.js +274 -0
- package/dist/ai-chat-input.js.map +1 -0
- package/dist/ai-chat-input.test.d.ts +2 -0
- package/dist/ai-chat-input.test.d.ts.map +1 -0
- package/dist/ai-chat-input.test.js +339 -0
- package/dist/ai-chat-input.test.js.map +1 -0
- package/dist/audio-player.d.ts +154 -0
- package/dist/audio-player.d.ts.map +1 -0
- package/dist/audio-player.js +254 -0
- package/dist/audio-player.js.map +1 -0
- package/dist/audio-player.test.d.ts +2 -0
- package/dist/audio-player.test.d.ts.map +1 -0
- package/dist/audio-player.test.js +275 -0
- package/dist/audio-player.test.js.map +1 -0
- package/dist/back-top.d.ts +4 -1
- package/dist/back-top.d.ts.map +1 -1
- package/dist/back-top.js +5 -2
- package/dist/back-top.js.map +1 -1
- package/dist/back-top.test.js +3 -2
- package/dist/back-top.test.js.map +1 -1
- package/dist/calendar.d.ts +132 -44
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +413 -70
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.test.js +160 -76
- package/dist/calendar.test.js.map +1 -1
- package/dist/chat.d.ts +172 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +210 -0
- package/dist/chat.js.map +1 -0
- package/dist/chat.test.d.ts +2 -0
- package/dist/chat.test.d.ts.map +1 -0
- package/dist/chat.test.js +181 -0
- package/dist/chat.test.js.map +1 -0
- package/dist/code-highlight.d.ts +30 -0
- package/dist/code-highlight.d.ts.map +1 -0
- package/dist/code-highlight.js +37 -0
- package/dist/code-highlight.js.map +1 -0
- package/dist/code-highlight.test.d.ts +2 -0
- package/dist/code-highlight.test.d.ts.map +1 -0
- package/dist/code-highlight.test.js +36 -0
- package/dist/code-highlight.test.js.map +1 -0
- package/dist/collapsible.d.ts +41 -0
- package/dist/collapsible.d.ts.map +1 -0
- package/dist/collapsible.js +33 -0
- package/dist/collapsible.js.map +1 -0
- package/dist/collapsible.test.d.ts +2 -0
- package/dist/collapsible.test.d.ts.map +1 -0
- package/dist/collapsible.test.js +57 -0
- package/dist/collapsible.test.js.map +1 -0
- package/dist/color-value.d.ts +60 -0
- package/dist/color-value.d.ts.map +1 -0
- package/dist/color-value.js +165 -0
- package/dist/color-value.js.map +1 -0
- package/dist/color-value.test.d.ts +2 -0
- package/dist/color-value.test.d.ts.map +1 -0
- package/dist/color-value.test.js +104 -0
- package/dist/color-value.test.js.map +1 -0
- package/dist/config-provider.d.ts +76 -37
- package/dist/config-provider.d.ts.map +1 -1
- package/dist/config-provider.js +107 -32
- package/dist/config-provider.js.map +1 -1
- package/dist/config-provider.test.js +123 -60
- package/dist/config-provider.test.js.map +1 -1
- package/dist/cropper.d.ts +164 -0
- package/dist/cropper.d.ts.map +1 -0
- package/dist/cropper.js +841 -0
- package/dist/cropper.js.map +1 -0
- package/dist/cropper.test.d.ts +2 -0
- package/dist/cropper.test.d.ts.map +1 -0
- package/dist/cropper.test.js +259 -0
- package/dist/cropper.test.js.map +1 -0
- package/dist/drag-move.d.ts +119 -0
- package/dist/drag-move.d.ts.map +1 -0
- package/dist/drag-move.js +237 -0
- package/dist/drag-move.js.map +1 -0
- package/dist/drag-move.test.d.ts +2 -0
- package/dist/drag-move.test.d.ts.map +1 -0
- package/dist/drag-move.test.js +304 -0
- package/dist/drag-move.test.js.map +1 -0
- package/dist/editable.d.ts +24 -4
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +18 -0
- package/dist/editable.js.map +1 -1
- package/dist/editable.test.js +55 -2
- package/dist/editable.test.js.map +1 -1
- package/dist/ellipsis.d.ts +13 -0
- package/dist/ellipsis.d.ts.map +1 -1
- package/dist/ellipsis.js +36 -0
- package/dist/ellipsis.js.map +1 -1
- package/dist/ellipsis.test.js +37 -1
- package/dist/ellipsis.test.js.map +1 -1
- package/dist/form-path.d.ts +19 -0
- package/dist/form-path.d.ts.map +1 -0
- package/dist/form-path.js +97 -0
- package/dist/form-path.js.map +1 -0
- package/dist/form-path.test.d.ts +2 -0
- package/dist/form-path.test.d.ts.map +1 -0
- package/dist/form-path.test.js +57 -0
- package/dist/form-path.test.js.map +1 -0
- package/dist/form-validate.d.ts +13 -0
- package/dist/form-validate.d.ts.map +1 -0
- package/dist/form-validate.js +204 -0
- package/dist/form-validate.js.map +1 -0
- package/dist/form.d.ts +91 -18
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +170 -115
- package/dist/form.js.map +1 -1
- package/dist/form.test.js +349 -76
- package/dist/form.test.js.map +1 -1
- package/dist/highlight.d.ts +42 -32
- package/dist/highlight.d.ts.map +1 -1
- package/dist/highlight.js +67 -41
- package/dist/highlight.js.map +1 -1
- package/dist/highlight.test.js +73 -32
- package/dist/highlight.test.js.map +1 -1
- package/dist/hotkeys.d.ts +151 -0
- package/dist/hotkeys.d.ts.map +1 -0
- package/dist/hotkeys.js +188 -0
- package/dist/hotkeys.js.map +1 -0
- package/dist/hotkeys.test.d.ts +2 -0
- package/dist/hotkeys.test.d.ts.map +1 -0
- package/dist/hotkeys.test.js +170 -0
- package/dist/hotkeys.test.js.map +1 -0
- package/dist/index.d.ts +33 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -13
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +34 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +54 -0
- package/dist/input.js.map +1 -0
- package/dist/input.test.d.ts +2 -0
- package/dist/input.test.d.ts.map +1 -0
- package/dist/input.test.js +56 -0
- package/dist/input.test.js.map +1 -0
- package/dist/markdown-render.d.ts +49 -0
- package/dist/markdown-render.d.ts.map +1 -0
- package/dist/markdown-render.js +61 -0
- package/dist/markdown-render.js.map +1 -0
- package/dist/markdown-render.test.d.ts +2 -0
- package/dist/markdown-render.test.d.ts.map +1 -0
- package/dist/markdown-render.test.js +106 -0
- package/dist/markdown-render.test.js.map +1 -0
- package/dist/notification.d.ts +40 -31
- package/dist/notification.d.ts.map +1 -1
- package/dist/notification.js +86 -70
- package/dist/notification.js.map +1 -1
- package/dist/notification.test.js +62 -39
- package/dist/notification.test.js.map +1 -1
- package/dist/numeral.d.ts +32 -0
- package/dist/numeral.d.ts.map +1 -0
- package/dist/numeral.js +67 -0
- package/dist/numeral.js.map +1 -0
- package/dist/numeral.test.d.ts +2 -0
- package/dist/numeral.test.d.ts.map +1 -0
- package/dist/numeral.test.js +59 -0
- package/dist/numeral.test.js.map +1 -0
- package/dist/overflow-list.d.ts +9 -40
- package/dist/overflow-list.d.ts.map +1 -1
- package/dist/overflow-list.js +9 -70
- package/dist/overflow-list.js.map +1 -1
- package/dist/overflow-list.test.js +1 -122
- package/dist/overflow-list.test.js.map +1 -1
- package/dist/pagination.d.ts +17 -0
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +48 -0
- package/dist/pagination.js.map +1 -1
- package/dist/pagination.test.js +40 -1
- package/dist/pagination.test.js.map +1 -1
- package/dist/pincode.d.ts +79 -0
- package/dist/pincode.d.ts.map +1 -0
- package/dist/pincode.js +119 -0
- package/dist/pincode.js.map +1 -0
- package/dist/pincode.test.d.ts +2 -0
- package/dist/pincode.test.d.ts.map +1 -0
- package/dist/pincode.test.js +151 -0
- package/dist/pincode.test.js.map +1 -0
- package/dist/progress.d.ts +32 -30
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +257 -64
- package/dist/progress.js.map +1 -1
- package/dist/progress.test.js +50 -47
- package/dist/progress.test.js.map +1 -1
- package/dist/resizable.d.ts +200 -0
- package/dist/resizable.d.ts.map +1 -0
- package/dist/resizable.js +329 -0
- package/dist/resizable.js.map +1 -0
- package/dist/resizable.test.d.ts +2 -0
- package/dist/resizable.test.d.ts.map +1 -0
- package/dist/resizable.test.js +302 -0
- package/dist/resizable.test.js.map +1 -0
- package/dist/scroll-list.d.ts +69 -62
- package/dist/scroll-list.d.ts.map +1 -1
- package/dist/scroll-list.js +103 -144
- package/dist/scroll-list.js.map +1 -1
- package/dist/scroll-list.test.js +100 -110
- package/dist/scroll-list.test.js.map +1 -1
- package/dist/sidebar.d.ts +46 -0
- package/dist/sidebar.d.ts.map +1 -0
- package/dist/sidebar.js +65 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/sidebar.test.d.ts +2 -0
- package/dist/sidebar.test.d.ts.map +1 -0
- package/dist/sidebar.test.js +88 -0
- package/dist/sidebar.test.js.map +1 -0
- package/dist/spin.d.ts +5 -5
- package/dist/spin.d.ts.map +1 -1
- package/dist/spin.js +13 -39
- package/dist/spin.js.map +1 -1
- package/dist/spin.test.js +2 -26
- package/dist/spin.test.js.map +1 -1
- package/dist/toast.d.ts +33 -30
- package/dist/toast.d.ts.map +1 -1
- package/dist/toast.js +77 -72
- package/dist/toast.js.map +1 -1
- package/dist/toast.test.js +63 -37
- package/dist/toast.test.js.map +1 -1
- package/dist/tree.d.ts +22 -5
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +61 -9
- package/dist/tree.js.map +1 -1
- package/dist/tree.test.js +72 -1
- package/dist/tree.test.js.map +1 -1
- package/dist/user-guide.d.ts +73 -0
- package/dist/user-guide.d.ts.map +1 -0
- package/dist/user-guide.js +95 -0
- package/dist/user-guide.js.map +1 -0
- package/dist/user-guide.test.d.ts +2 -0
- package/dist/user-guide.test.d.ts.map +1 -0
- package/dist/user-guide.test.js +109 -0
- package/dist/user-guide.test.js.map +1 -0
- package/dist/video-player.d.ts +196 -0
- package/dist/video-player.d.ts.map +1 -0
- package/dist/video-player.js +461 -0
- package/dist/video-player.js.map +1 -0
- package/dist/video-player.test.d.ts +2 -0
- package/dist/video-player.test.d.ts.map +1 -0
- package/dist/video-player.test.js +435 -0
- package/dist/video-player.test.js.map +1 -0
- package/package.json +17 -1
- package/dist/banner.d.ts +0 -19
- package/dist/banner.d.ts.map +0 -1
- package/dist/banner.js +0 -20
- package/dist/banner.js.map +0 -1
- package/dist/banner.test.d.ts +0 -2
- package/dist/banner.test.d.ts.map +0 -1
- package/dist/banner.test.js +0 -29
- package/dist/banner.test.js.map +0 -1
- package/dist/breakpoints.d.ts +0 -30
- package/dist/breakpoints.d.ts.map +0 -1
- package/dist/breakpoints.js +0 -45
- package/dist/breakpoints.js.map +0 -1
- package/dist/breakpoints.test.d.ts +0 -2
- package/dist/breakpoints.test.d.ts.map +0 -1
- package/dist/breakpoints.test.js +0 -46
- package/dist/breakpoints.test.js.map +0 -1
- package/dist/lottie-icon.d.ts +0 -88
- package/dist/lottie-icon.d.ts.map +0 -1
- package/dist/lottie-icon.js +0 -84
- package/dist/lottie-icon.js.map +0 -1
- package/dist/lottie-icon.test.d.ts +0 -2
- package/dist/lottie-icon.test.d.ts.map +0 -1
- package/dist/lottie-icon.test.js +0 -88
- package/dist/lottie-icon.test.js.map +0 -1
- package/dist/sider.d.ts +0 -26
- package/dist/sider.d.ts.map +0 -1
- package/dist/sider.js +0 -55
- package/dist/sider.js.map +0 -1
- package/dist/sider.test.d.ts +0 -2
- package/dist/sider.test.d.ts.map +0 -1
- package/dist/sider.test.js +0 -29
- package/dist/sider.test.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -10,37 +10,53 @@ export { useLiveAnnouncer, __resetLiveAnnouncer, type LiveAnnouncer, type Polite
|
|
|
10
10
|
export { useDismiss, type DismissOptions, type DismissReason } from './dismiss.js';
|
|
11
11
|
export { useScrollLock, __resetScrollLock } from './scroll-lock.js';
|
|
12
12
|
export { useInertBackground, __resetInertBackground, } from './inert-background.js';
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export { findRanges, mergeRanges, chunksFromRanges, highlightChunks, type HighlightRange, type HighlightChunk, type FindRangesOptions, } from './highlight.js';
|
|
13
|
+
export { createForm, type FormApi, type FormOptions, type FormState, type FormValues, type FieldConfig, type FieldErrors, type Rule, type RuleType, type MessageDescriptor, type ValidateTrigger, } from './form.js';
|
|
14
|
+
export { pathGet, pathSet, pathHas, pathRemove, toSegments } from './form-path.js';
|
|
15
|
+
export { findRanges, mergeRanges, chunksFromRanges, highlightChunks, type HighlightWord, type HighlightRange, type HighlightChunk, type FindRangesOptions, } from './highlight.js';
|
|
16
16
|
export { isSameDay, startOfDay, addMonths, addWeeks, addDays, getMonthGrid, getWeekGrid, getDayHours, weekdayOrder, daysBetween, formatDate, parseDateString, gridFocusMove, type DayCell, type GridFocusKey, } from './date.js';
|
|
17
|
-
export { flattenVisible, findNode, collectExpandable, collectExpandableToDepth, conduct, toggleCheck, normalizeToLeaves, computeFilteredKeys, computeDropPosition, isAncestorOrSelf, collectCheckedByStrategy, siblingKeys, accordionExpand, type CheckedStrategy, type TreeKey, type TreeNodeData, type FlatNode, type CheckState, type DropPosition, } from './tree.js';
|
|
17
|
+
export { flattenVisible, findNode, collectExpandable, collectExpandableToDepth, conduct, toggleCheck, normalizeToLeaves, computeFilteredKeys, computeDropPosition, isAncestorOrSelf, collectCheckedByStrategy, collectLeafKeys, siblingKeys, accordionExpand, type CheckedStrategy, type TreeKey, type TreeNodeData, type FlatNode, type CheckState, type DropPosition, } from './tree.js';
|
|
18
18
|
export { flattenCascaderPaths, filterCascaderPaths, resolveColumnWidth, type CascaderKey, type CascaderPathNode, type CascaderFlatPath, type CascaderFilterFn, } from './cascader.js';
|
|
19
19
|
export { nextSortOrder, toggleSort, applySort, paginate, pageCount, selectAllState, toggleSelectAll, toggleRow, flattenTreeRows, conductRows, normalizeRowsToLeaves, toggleRowCheck, type RowKey, type SortOrder, type SortState, type SelectAllState, type FlatRow, } from './table.js';
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export { computeVisibleCount,
|
|
20
|
+
export { addDaysLocal, addHoursLocal, endOfDay, startOfMonth, endOfMonth, startOfWeek, endOfWeek, isSameMonth, isSameWeek, differenceInCalendarDays, isBefore, isAfter, isWeekend, getWeekOfMonth, getWeeksInMonth, round, getPos, amendEvent, parseAllDayEvent, parseEvent, parseEvents, convertEventsArrToMap, renderDailyEvent, getDailyEvents, parseSpanEvents, parseWeekSpanEvents, allDayEventMap, calcRowHeight, getMonthEvents, type CalendarEvent, type CalendarEventKey, type WeekStartsOn, type PositionedDayEvent, type PositionedSpanEvent, type MonthWeekEvents, type DateObj, } from './calendar.js';
|
|
21
|
+
export { resolveItemText, centerOffset, nearestIndex, wrapIndex, easeOut, scrollFrame, shouldPrepend, shouldAppend, SCROLL_LIST_DEFAULT_ITEM_HEIGHT, SCROLL_LIST_DEFAULT_SCROLL_DURATION, type ScrollItemMode, type ScrollItemData, type ScrollItemSelectPayload, } from './scroll-list.js';
|
|
22
|
+
export { computeVisibleCount, computeTabOverflow, type OverflowComputeInput, type OverflowComputeResult, type TabOverflowInput, type TabOverflowResult, } from './overflow-list.js';
|
|
23
23
|
export { createSpinController, type SpinController, type SpinOptions, } from './spin.js';
|
|
24
|
-
export { clampPercent,
|
|
25
|
-
export {
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
24
|
+
export { clampPercent, getCirclePathProps, generateColor, getRootAriaProps, type ProgressType, type ProgressDirection, type ProgressSize, type StrokeLinecap, type StrokeSet, type StrokeArr, type CirclePathProps, type RootAriaProps, } from './progress.js';
|
|
25
|
+
export { resolveCodeClassName, type ResolveCodeClassNameOptions, } from './code-highlight.js';
|
|
26
|
+
export { compileToHast, type HastRoot, type CompileToHastOptions, type UnifiedPluginEntry, } from './markdown-render.js';
|
|
27
|
+
export { createToastStore, type ToastStore, type ToastStoreOptions, type ToastItem, type ToastOptions, type ToastType, type ToastTheme, type ToastDirection, } from './toast.js';
|
|
28
|
+
export { createNotificationStore, type NotificationStore, type NotificationItem, type NotificationOptions, type NotificationType, type NotificationPosition, type NotificationTheme, type NotificationDirection, } from './notification.js';
|
|
28
29
|
export { easeInOutCubic, isAboveThreshold, scrollPositionAt } from './back-top.js';
|
|
29
|
-
export {
|
|
30
|
+
export { createAudioPlayer, normalizeAudioUrl, clampVolume as clampAudioVolume, clampTime as clampAudioTime, type AudioInfo, type AudioUrl, type AudioTrack, type PlaybackRate, type AudioPlayerAdapter, type AudioPlayerState, type AudioPlayerOptions, type AudioPlayerApi, } from './audio-player.js';
|
|
31
|
+
export { createCropperFoundation, getMiddle as getCropperMiddle, getAspectHW, getMoveParamByDir, CROPPER_CORNERS, CROPPER_ROUND_CORNERS, CROPPER_SHAPES, type CropperFoundation, type CropperAdapter, type CropperFoundationProps, type CropperFoundationState, type CropperImageData, type CropperImageState, type CropperBox, type ContainerData as CropperContainerData, type CropperCorner, type CropperShape, type Point as CropperPoint, } from './cropper.js';
|
|
32
|
+
export { mergeConfig, DEFAULT_CONFIG, defaultResponsiveMap, EMPTY_SCREENS, BREAKPOINTS, registerMediaQuery, zonedWallTime, parseTimeZoneOffsetMinutes, type Breakpoint, type ConfigInput, type ResolvedConfig, type ConfigDir, type ConfigTimeZone, type ResponsiveMap, type BreakpointScreens, type OnBreakpointScreensCallback, type OnBreakpointChangeCallback, } from './config-provider.js';
|
|
30
33
|
export { createResizeObserver, normalizeEntry, isResizeObserverSupported, resolveSchedule, createScheduler, advanceResizePhase, endResizePhase, getGlobalResizeObserver, type ResizeBox, type ResizeSchedule, type CDResizeEntry, type ResizeObserverApi, type ResizeObserverOptions, } from './resize-observer.js';
|
|
31
|
-
export { resolveSize, resolveAnimated, shouldAutoplay, resolveSegments, isLottieSrc, resolveRenderer, type LottieTrigger, type LottieSize, type LottieSegments, type LottieRenderer, type LottiePlayerAdapter, type LottiePlayerFactory, } from './lottie-icon.js';
|
|
32
34
|
export { computePosition, parsePlacement, makePlacement, type Placement, type Side, type Align, type Rect, type Viewport, type ComputePositionInput, type ComputePositionResult, } from './floating.js';
|
|
33
|
-
export { BREAKPOINTS, BREAKPOINT_ORDER, resolveActiveBreakpoint, resolveResponsiveValue, type Breakpoint, } from './breakpoints.js';
|
|
34
35
|
export { computeAutosizeHeight, countCharacters, type AutosizeInput, type AutosizeResult, } from './textarea.js';
|
|
35
36
|
export { createCopyable, writeClipboard, type CopyableApi, type CopyableOptions, } from './copyable.js';
|
|
36
|
-
export { createEditable, clampLength, resolveEditableKey, type EditableApi, type EditableOptions, type EditableSnapshot, type EditableTrigger, type EditableKeyEvent, type EditableKeyAction, } from './editable.js';
|
|
37
|
-
export { createEllipsis, isOverflowing, truncateText, type EllipsisApi, type EllipsisOptions, type EllipsisSnapshot, type EllipsisMeasureInput, type EllipsisPos, } from './ellipsis.js';
|
|
37
|
+
export { createEditable, clampLength, isOverLimit, resolveEditableKey, type EditableApi, type EditableOptions, type EditableSnapshot, type EditableTrigger, type EditableKeyEvent, type EditableKeyAction, } from './editable.js';
|
|
38
|
+
export { createEllipsis, isOverflowing, truncateText, fitTruncatedText, type EllipsisApi, type EllipsisOptions, type EllipsisSnapshot, type EllipsisMeasureInput, type EllipsisPos, } from './ellipsis.js';
|
|
39
|
+
export { formatNumeral, formatNumber, roundTo, type NumeralRule, type NumeralTruncate, type NumeralOptions, } from './numeral.js';
|
|
38
40
|
export { computeUploadPercent, isUploadOk, createUploadQueue, resolveBeforeUpload, validateFileSize, } from './upload.js';
|
|
41
|
+
export { collapsibleShouldRender, collapsibleCollapsedHeight, type CollapsibleRenderInput, } from './collapsible.js';
|
|
39
42
|
export type { UploadTask, UploadQueue, BeforeUploadResult, BeforeUploadDecision, UploadSizeError, } from './upload.js';
|
|
40
43
|
export { fixedRange, buildOffsets, totalFromOffsets, offsetToIndex as virtualOffsetToIndex, dynamicRange, scrollOffsetForIndex, windowScrollTop, type VirtualRange, type ScrollAlign, } from './virtual-list.js';
|
|
41
44
|
export { rovingKeyFromEvent, nextRovingIndex, type RovingKey, } from './roving.js';
|
|
42
45
|
export { toggleSelection, rangeSelection, type ListKey, type SelectionMode, } from './list-selection.js';
|
|
43
|
-
export { pageCount as paginationPageCount, clampPage, isPageInRange, clampPageSize, parseJumpInput, pageRange, type PageCell, } from './pagination.js';
|
|
46
|
+
export { pageCount as paginationPageCount, clampPage, isPageInRange, clampPageSize, parseJumpInput, pageRange, semiPageList, type PageCell, type SemiPageList, } from './pagination.js';
|
|
44
47
|
export { clamp01 as colorClamp01, parseHex, rgbToHex, rgbToHsv, hsvToRgb, hsvToHsl, hslToHsv, rgbToHsl, hslToRgb, hexToHsv, hsvToHex, formatColor, parseColor, type Rgb, type Hsv, type Hsl, type ColorFormat, type RgbToHexOptions, type FormatOptions, } from './color.js';
|
|
48
|
+
export { hexToRgba as colorValueHexToRgba, rgbaToHex as colorValueRgbaToHex, rgbaToHsva as colorValueRgbaToHsva, hsvaToRgba as colorValueHsvaToRgba, hsvaToHex as colorValueHsvaToHex, hexToHsva as colorValueHexToHsva, colorValueFromHsva, colorValueFromRgba, colorValueFromHex, colorValueToInputString, parseColorInput, DEFAULT_COLOR_VALUE, type HsvaColor, type RgbaColor, type ColorValue, type ColorValueFormat, } from './color-value.js';
|
|
49
|
+
export { createVideoPlayerFoundation, progressValueFromPointer, segmentValueWidth, buildMarkerSegments, formatTimeDisplay, DEFAULT_CONTROLS_LIST, DEFAULT_PLAYBACK_RATE_LIST, VIDEO_PLAYER_NUMBERS, type VideoPlayerFoundation, type VideoPlayerFoundationOptions, type VideoPlayerAdapter, type VideoPlayerState, type VideoPlayerProps, type VideoPlayerLocale, type PlaybackRateOption, type LabeledOption, type VideoMarker, } from './video-player.js';
|
|
45
50
|
export { buildRange as buildTimeRange, to12Hour, meridiemOf, from12Hour, buildHourOptions, buildMinuteOptions, buildSecondOptions, applyHideDisabled, isTimeDisabled, parseFormatSpec, formatTime, parseTimeString, type Meridiem, type TimeOption, type DisabledTime, type TimeParts, type FormatSpec, } from './time.js';
|
|
51
|
+
export { CHAT_ROLE, CHAT_ALIGN, CHAT_MODE, MESSAGE_STATUS, SEND_HOT_KEY, PIC_SUFFIX_ARRAY, PIC_PREFIX, SHOW_SCROLL_GAP, SCROLL_ANIMATION_TIME, shouldShowBackBottom, resolveEnableUpload, shouldSendOnEnter, isImageAttachment, buildSendContent, appendDivider, makeUserMessage, deleteMessageFrom, toggleLike, toggleDislike, resetLastMessage, type ChatRole, type ChatAlign, type ChatMode, type MessageStatus, type SendHotKey, type Content, type Message, type Metadata, type RoleConfig, type EnableUploadProps, type ChatAttachment, } from './chat.js';
|
|
52
|
+
export { responseToMessage, chatCompletionToMessage, streamingResponseToMessage, streamingChatCompletionToMessage, dialogueMessageToInput, formatToolArguments, toolCallStatus, toolCallView, contentItemType, normalizeDialogueContent, type ResponseStreamChunk, type StreamingResponseState, type ChatCompletionStreamChunk, type StreamingChatCompletionState, type ToolCallStatus, type ToolCallView, type AIMessageStatus, type ContentItem, type AIDialogueMessage, type AIDialogueMetadata, type AIDialogueRoleConfig, type AIDialogueReference, type OpenAIResponseObject, type ChatCompletionObject, type ChatCompletionMessage, type OutputMessage, type OutputText, type Reasoning, type Annotation, type ToolCallContentItem, type InputMessage, type InputText, type InputImage, type InputFile, } from './ai-chat-dialogue.js';
|
|
53
|
+
export { validateChar, inputModeForFormat, toValueList, fromValueList, isComplete, completeSingleInput, handleKeyDown as pinCodeHandleKeyDown, distributePaste, type PinCodeFormat, type CompleteSingleResult, type PinCodeKeyAction, type DistributePasteResult, } from './pincode.js';
|
|
54
|
+
export { Keys as HotKeysKeys, keyToCode, isValidHotKeys, matchHotKeys, attachHotKeys, isApplePlatform, modifierSymbol, type HotKey, type MatchHotKeysOptions, type AttachHotKeysOptions, } from './hotkeys.js';
|
|
55
|
+
export { createUserGuide, getSpotlightRect, DEFAULT_SPOTLIGHT_PADDING, DEFAULT_USER_GUIDE_Z_INDEX, type UserGuideMode, type UserGuideTheme, type UserGuidePosition, type UserGuideStepData, type CreateUserGuideOptions, type SpotlightRect, type UserGuideController, } from './user-guide.js';
|
|
56
|
+
export { isSendHotKey, resolveCanSend, buildMessageContent, transformDocToContents, suggestionContent, nextSuggestionIndex, referenceLabel, isImageReference, skillLabel, getSkillSlotHTML, getSelectSlotHTML, getInputSlotHTML, AI_CHAT_INPUT_ZERO_WIDTH, shouldOpenSkillPanel, setConfigureField, removeConfigureField, messageToChatInput, chatInputToChatCompletion, type AIChatInputContent, type AIChatInputAttachment, type AIChatInputReference, type AIChatInputMessageContent, type AIChatInputSendHotKey, type AIChatInputChangePayload, type AIChatInputSuggestion, type AIChatInputSkill, type AIChatInputConfigureValue, type ChatCompletionInputMessage, } from './ai-chat-input.js';
|
|
57
|
+
export { createResizeDrag, computeGroupResize, clamp as clampResize, snapToGrid, hasDirection, getPixelSize, getOffset, judgeConstraint, adjustNewSize, DIRECTIONS, type Direction, type Enable, type Size as ResizableSize, type NumberSize, type ResizeAxis, type GroupDirection, type ResizeCallback, type ResizeStartCallback, type CreateResizeDragOptions, type ResizeDragController, type ResizeDragBound, type GroupItemConstraint, type ComputeGroupResizeInput, type ComputeGroupResizeResult, } from './resizable.js';
|
|
58
|
+
export { createDragMove, calcMoveRange, computeNextPosition, clampValueInRange, type CreateDragMoveOptions, type DragMoveController, type DragMoveElementGetter, type DragMoveHandlerGetter, type DragMoveConstrainerGetter, type DragMoveAllow, type DragMoveCustomMove, type MoveRange, } from './drag-move.js';
|
|
59
|
+
export { parseSideBarWidth, clampSideBarWidth, filterMcpOptions, toggleMcpOptionActive, countActiveMcpOptions, } from './sidebar.js';
|
|
60
|
+
export type { McpOptionCore } from './sidebar.js';
|
|
61
|
+
export { truncateValueByLength, computeVisibleMinLength } from './input.js';
|
|
46
62
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,UAAU,IAAI,gBAAgB,EAC9B,OAAO,IAAI,aAAa,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,36 +10,55 @@ export { useLiveAnnouncer, __resetLiveAnnouncer, } from './live-announcer.js';
|
|
|
10
10
|
export { useDismiss } from './dismiss.js';
|
|
11
11
|
export { useScrollLock, __resetScrollLock } from './scroll-lock.js';
|
|
12
12
|
export { useInertBackground, __resetInertBackground, } from './inert-background.js';
|
|
13
|
-
export { createSider, } from './sider.js';
|
|
14
13
|
export { createForm, } from './form.js';
|
|
14
|
+
export { pathGet, pathSet, pathHas, pathRemove, toSegments } from './form-path.js';
|
|
15
15
|
export { findRanges, mergeRanges, chunksFromRanges, highlightChunks, } from './highlight.js';
|
|
16
16
|
export { isSameDay, startOfDay, addMonths, addWeeks, addDays, getMonthGrid, getWeekGrid, getDayHours, weekdayOrder, daysBetween, formatDate, parseDateString, gridFocusMove, } from './date.js';
|
|
17
|
-
export { flattenVisible, findNode, collectExpandable, collectExpandableToDepth, conduct, toggleCheck, normalizeToLeaves, computeFilteredKeys, computeDropPosition, isAncestorOrSelf, collectCheckedByStrategy, siblingKeys, accordionExpand, } from './tree.js';
|
|
17
|
+
export { flattenVisible, findNode, collectExpandable, collectExpandableToDepth, conduct, toggleCheck, normalizeToLeaves, computeFilteredKeys, computeDropPosition, isAncestorOrSelf, collectCheckedByStrategy, collectLeafKeys, siblingKeys, accordionExpand, } from './tree.js';
|
|
18
18
|
export { flattenCascaderPaths, filterCascaderPaths, resolveColumnWidth, } from './cascader.js';
|
|
19
19
|
export { nextSortOrder, toggleSort, applySort, paginate, pageCount, selectAllState, toggleSelectAll, toggleRow, flattenTreeRows, conductRows, normalizeRowsToLeaves, toggleRowCheck, } from './table.js';
|
|
20
|
-
export {
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
export {
|
|
21
|
+
// date algebra
|
|
22
|
+
addDaysLocal, addHoursLocal, endOfDay, startOfMonth, endOfMonth, startOfWeek, endOfWeek, isSameMonth, isSameWeek, differenceInCalendarDays, isBefore, isAfter, isWeekend, getWeekOfMonth, getWeeksInMonth, round, getPos,
|
|
23
|
+
// event algorithms
|
|
24
|
+
amendEvent, parseAllDayEvent, parseEvent, parseEvents, convertEventsArrToMap, renderDailyEvent, getDailyEvents, parseSpanEvents, parseWeekSpanEvents, allDayEventMap, calcRowHeight, getMonthEvents, } from './calendar.js';
|
|
25
|
+
export { resolveItemText, centerOffset, nearestIndex, wrapIndex, easeOut, scrollFrame, shouldPrepend, shouldAppend, SCROLL_LIST_DEFAULT_ITEM_HEIGHT, SCROLL_LIST_DEFAULT_SCROLL_DURATION, } from './scroll-list.js';
|
|
26
|
+
export { computeVisibleCount, computeTabOverflow, } from './overflow-list.js';
|
|
23
27
|
export { createSpinController, } from './spin.js';
|
|
24
|
-
export { clampPercent,
|
|
25
|
-
export {
|
|
28
|
+
export { clampPercent, getCirclePathProps, generateColor, getRootAriaProps, } from './progress.js';
|
|
29
|
+
export { resolveCodeClassName, } from './code-highlight.js';
|
|
30
|
+
export { compileToHast, } from './markdown-render.js';
|
|
26
31
|
export { createToastStore, } from './toast.js';
|
|
27
32
|
export { createNotificationStore, } from './notification.js';
|
|
28
33
|
export { easeInOutCubic, isAboveThreshold, scrollPositionAt } from './back-top.js';
|
|
29
|
-
export {
|
|
34
|
+
export { createAudioPlayer, normalizeAudioUrl, clampVolume as clampAudioVolume, clampTime as clampAudioTime, } from './audio-player.js';
|
|
35
|
+
export { createCropperFoundation, getMiddle as getCropperMiddle, getAspectHW, getMoveParamByDir, CROPPER_CORNERS, CROPPER_ROUND_CORNERS, CROPPER_SHAPES, } from './cropper.js';
|
|
36
|
+
export { mergeConfig, DEFAULT_CONFIG, defaultResponsiveMap, EMPTY_SCREENS, BREAKPOINTS, registerMediaQuery, zonedWallTime, parseTimeZoneOffsetMinutes, } from './config-provider.js';
|
|
30
37
|
export { createResizeObserver, normalizeEntry, isResizeObserverSupported, resolveSchedule, createScheduler, advanceResizePhase, endResizePhase, getGlobalResizeObserver, } from './resize-observer.js';
|
|
31
|
-
export { resolveSize, resolveAnimated, shouldAutoplay, resolveSegments, isLottieSrc, resolveRenderer, } from './lottie-icon.js';
|
|
32
38
|
export { computePosition, parsePlacement, makePlacement, } from './floating.js';
|
|
33
|
-
export { BREAKPOINTS, BREAKPOINT_ORDER, resolveActiveBreakpoint, resolveResponsiveValue, } from './breakpoints.js';
|
|
34
39
|
export { computeAutosizeHeight, countCharacters, } from './textarea.js';
|
|
35
40
|
export { createCopyable, writeClipboard, } from './copyable.js';
|
|
36
|
-
export { createEditable, clampLength, resolveEditableKey, } from './editable.js';
|
|
37
|
-
export { createEllipsis, isOverflowing, truncateText, } from './ellipsis.js';
|
|
41
|
+
export { createEditable, clampLength, isOverLimit, resolveEditableKey, } from './editable.js';
|
|
42
|
+
export { createEllipsis, isOverflowing, truncateText, fitTruncatedText, } from './ellipsis.js';
|
|
43
|
+
export { formatNumeral, formatNumber, roundTo, } from './numeral.js';
|
|
38
44
|
export { computeUploadPercent, isUploadOk, createUploadQueue, resolveBeforeUpload, validateFileSize, } from './upload.js';
|
|
45
|
+
export { collapsibleShouldRender, collapsibleCollapsedHeight, } from './collapsible.js';
|
|
39
46
|
export { fixedRange, buildOffsets, totalFromOffsets, offsetToIndex as virtualOffsetToIndex, dynamicRange, scrollOffsetForIndex, windowScrollTop, } from './virtual-list.js';
|
|
40
47
|
export { rovingKeyFromEvent, nextRovingIndex, } from './roving.js';
|
|
41
48
|
export { toggleSelection, rangeSelection, } from './list-selection.js';
|
|
42
|
-
export { pageCount as paginationPageCount, clampPage, isPageInRange, clampPageSize, parseJumpInput, pageRange, } from './pagination.js';
|
|
49
|
+
export { pageCount as paginationPageCount, clampPage, isPageInRange, clampPageSize, parseJumpInput, pageRange, semiPageList, } from './pagination.js';
|
|
43
50
|
export { clamp01 as colorClamp01, parseHex, rgbToHex, rgbToHsv, hsvToRgb, hsvToHsl, hslToHsv, rgbToHsl, hslToRgb, hexToHsv, hsvToHex, formatColor, parseColor, } from './color.js';
|
|
51
|
+
export { hexToRgba as colorValueHexToRgba, rgbaToHex as colorValueRgbaToHex, rgbaToHsva as colorValueRgbaToHsva, hsvaToRgba as colorValueHsvaToRgba, hsvaToHex as colorValueHsvaToHex, hexToHsva as colorValueHexToHsva, colorValueFromHsva, colorValueFromRgba, colorValueFromHex, colorValueToInputString, parseColorInput, DEFAULT_COLOR_VALUE, } from './color-value.js';
|
|
52
|
+
export { createVideoPlayerFoundation, progressValueFromPointer, segmentValueWidth, buildMarkerSegments, formatTimeDisplay, DEFAULT_CONTROLS_LIST, DEFAULT_PLAYBACK_RATE_LIST, VIDEO_PLAYER_NUMBERS, } from './video-player.js';
|
|
44
53
|
export { buildRange as buildTimeRange, to12Hour, meridiemOf, from12Hour, buildHourOptions, buildMinuteOptions, buildSecondOptions, applyHideDisabled, isTimeDisabled, parseFormatSpec, formatTime, parseTimeString, } from './time.js';
|
|
54
|
+
export { CHAT_ROLE, CHAT_ALIGN, CHAT_MODE, MESSAGE_STATUS, SEND_HOT_KEY, PIC_SUFFIX_ARRAY, PIC_PREFIX, SHOW_SCROLL_GAP, SCROLL_ANIMATION_TIME, shouldShowBackBottom, resolveEnableUpload, shouldSendOnEnter, isImageAttachment, buildSendContent, appendDivider, makeUserMessage, deleteMessageFrom, toggleLike, toggleDislike, resetLastMessage, } from './chat.js';
|
|
55
|
+
export { responseToMessage, chatCompletionToMessage, streamingResponseToMessage, streamingChatCompletionToMessage, dialogueMessageToInput, formatToolArguments, toolCallStatus, toolCallView, contentItemType, normalizeDialogueContent, } from './ai-chat-dialogue.js';
|
|
56
|
+
export { validateChar, inputModeForFormat, toValueList, fromValueList, isComplete, completeSingleInput, handleKeyDown as pinCodeHandleKeyDown, distributePaste, } from './pincode.js';
|
|
57
|
+
export { Keys as HotKeysKeys, keyToCode, isValidHotKeys, matchHotKeys, attachHotKeys, isApplePlatform, modifierSymbol, } from './hotkeys.js';
|
|
58
|
+
export { createUserGuide, getSpotlightRect, DEFAULT_SPOTLIGHT_PADDING, DEFAULT_USER_GUIDE_Z_INDEX, } from './user-guide.js';
|
|
59
|
+
export { isSendHotKey, resolveCanSend, buildMessageContent, transformDocToContents, suggestionContent, nextSuggestionIndex, referenceLabel, isImageReference, skillLabel, getSkillSlotHTML, getSelectSlotHTML, getInputSlotHTML, AI_CHAT_INPUT_ZERO_WIDTH, shouldOpenSkillPanel, setConfigureField, removeConfigureField, messageToChatInput, chatInputToChatCompletion, } from './ai-chat-input.js';
|
|
60
|
+
export { createResizeDrag, computeGroupResize, clamp as clampResize, snapToGrid, hasDirection, getPixelSize, getOffset, judgeConstraint, adjustNewSize, DIRECTIONS, } from './resizable.js';
|
|
61
|
+
export { createDragMove, calcMoveRange, computeNextPosition, clampValueInRange, } from './drag-move.js';
|
|
62
|
+
export { parseSideBarWidth, clampSideBarWidth, filterMcpOptions, toggleMcpOptionActive, countActiveMcpOptions, } from './sidebar.js';
|
|
63
|
+
export { truncateValueByLength, computeVisibleMinLength } from './input.js';
|
|
45
64
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,UAAU,IAAI,gBAAgB,EAC9B,OAAO,IAAI,aAAa,EACxB,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAA2C,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/input.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input 字符长度工具 —— 对齐 Semi Design(semi-foundation/input/util/truncateValue)。
|
|
3
|
+
*
|
|
4
|
+
* 当组件提供自定义 `getValueLength`(如按 grapheme/emoji 计数)时,原生 maxlength
|
|
5
|
+
* 属性(按 UTF-16 code unit 计)不再适用,需在 JS 层按 getValueLength 截断超长输入。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 按 getValueLength 计的可见长度将 value 截断到 maxLength。
|
|
9
|
+
*
|
|
10
|
+
* 用二分查找定位「使 getValueLength(prefix) ≤ maxLength」的最长前缀,
|
|
11
|
+
* 从而在 emoji/组合字符场景下正确截断(不会切断代理对/ZWJ 序列的中途——
|
|
12
|
+
* 因为切片以 UTF-16 索引推进,但 getValueLength 以 grapheme 计,二分收敛到
|
|
13
|
+
* 恰好容纳 maxLength 个可见字符的边界)。对齐 Semi truncateValue。
|
|
14
|
+
*
|
|
15
|
+
* 未提供 getValueLength 时退化为按 UTF-16 length 截断(value.slice(0, maxLength))。
|
|
16
|
+
*/
|
|
17
|
+
export declare function truncateValueByLength(options: {
|
|
18
|
+
value: string;
|
|
19
|
+
maxLength: number;
|
|
20
|
+
getValueLength?: (value: string) => number;
|
|
21
|
+
}): string;
|
|
22
|
+
/**
|
|
23
|
+
* minLength + getValueLength 时,换算出应下发给原生 `minlength` 属性的值,
|
|
24
|
+
* 使浏览器原生的「至少 N 字符」校验按可见长度(而非 UTF-16 length)触发。
|
|
25
|
+
* 对齐 Semi handleVisibleMinLength:newMinLength = value.length + (minLength - valueLength)。
|
|
26
|
+
*
|
|
27
|
+
* 返回应设置到原生 minlength 的数值;未提供 getValueLength 或不满足条件时返回 minLength 原值。
|
|
28
|
+
*/
|
|
29
|
+
export declare function computeVisibleMinLength(options: {
|
|
30
|
+
value: string;
|
|
31
|
+
minLength: number;
|
|
32
|
+
getValueLength?: (value: string) => number;
|
|
33
|
+
}): number;
|
|
34
|
+
//# sourceMappingURL=input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,GAAG,MAAM,CAiBT;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,GAAG,MAAM,CAUT"}
|
package/dist/input.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input 字符长度工具 —— 对齐 Semi Design(semi-foundation/input/util/truncateValue)。
|
|
3
|
+
*
|
|
4
|
+
* 当组件提供自定义 `getValueLength`(如按 grapheme/emoji 计数)时,原生 maxlength
|
|
5
|
+
* 属性(按 UTF-16 code unit 计)不再适用,需在 JS 层按 getValueLength 截断超长输入。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 按 getValueLength 计的可见长度将 value 截断到 maxLength。
|
|
9
|
+
*
|
|
10
|
+
* 用二分查找定位「使 getValueLength(prefix) ≤ maxLength」的最长前缀,
|
|
11
|
+
* 从而在 emoji/组合字符场景下正确截断(不会切断代理对/ZWJ 序列的中途——
|
|
12
|
+
* 因为切片以 UTF-16 索引推进,但 getValueLength 以 grapheme 计,二分收敛到
|
|
13
|
+
* 恰好容纳 maxLength 个可见字符的边界)。对齐 Semi truncateValue。
|
|
14
|
+
*
|
|
15
|
+
* 未提供 getValueLength 时退化为按 UTF-16 length 截断(value.slice(0, maxLength))。
|
|
16
|
+
*/
|
|
17
|
+
export function truncateValueByLength(options) {
|
|
18
|
+
const { value, maxLength, getValueLength } = options;
|
|
19
|
+
if (typeof getValueLength === 'function') {
|
|
20
|
+
let left = 0;
|
|
21
|
+
let right = value.length;
|
|
22
|
+
while (left < right) {
|
|
23
|
+
const mid = left + Math.floor((right - left) / 2);
|
|
24
|
+
const currentValue = value.slice(0, mid + 1);
|
|
25
|
+
if (getValueLength(currentValue) > maxLength) {
|
|
26
|
+
right = mid;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
left = mid + 1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return value.slice(0, left);
|
|
33
|
+
}
|
|
34
|
+
return value.slice(0, maxLength);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* minLength + getValueLength 时,换算出应下发给原生 `minlength` 属性的值,
|
|
38
|
+
* 使浏览器原生的「至少 N 字符」校验按可见长度(而非 UTF-16 length)触发。
|
|
39
|
+
* 对齐 Semi handleVisibleMinLength:newMinLength = value.length + (minLength - valueLength)。
|
|
40
|
+
*
|
|
41
|
+
* 返回应设置到原生 minlength 的数值;未提供 getValueLength 或不满足条件时返回 minLength 原值。
|
|
42
|
+
*/
|
|
43
|
+
export function computeVisibleMinLength(options) {
|
|
44
|
+
const { value, minLength, getValueLength } = options;
|
|
45
|
+
if (typeof getValueLength === 'function' && typeof value === 'string' && minLength >= 0) {
|
|
46
|
+
const valueLength = getValueLength(value);
|
|
47
|
+
if (valueLength < minLength) {
|
|
48
|
+
// 补上「UTF-16 长度 - 可见长度」的差,让原生校验的阈值落在可见长度维度。
|
|
49
|
+
return value.length + (minLength - valueLength);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return minLength;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAIrC;IACC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACrD,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,OAAO,IAAI,GAAG,KAAK,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,CAAC;gBAC7C,KAAK,GAAG,GAAG,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAIvC;IACC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACrD,IAAI,OAAO,cAAc,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACxF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC;YAC5B,2CAA2C;YAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.test.d.ts","sourceRoot":"","sources":["../src/input.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { truncateValueByLength, computeVisibleMinLength } from './input.js';
|
|
3
|
+
// 与 Input demo 同款:按 grapheme 计数,emoji(含组合 emoji)算 1。
|
|
4
|
+
const seg = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
|
|
5
|
+
const graphemeLength = (s) => [...seg.segment(s)].length;
|
|
6
|
+
describe('truncateValueByLength', () => {
|
|
7
|
+
it('无 getValueLength 时按 UTF-16 length 截断', () => {
|
|
8
|
+
expect(truncateValueByLength({ value: 'abcdef', maxLength: 3 })).toBe('abc');
|
|
9
|
+
expect(truncateValueByLength({ value: 'abc', maxLength: 10 })).toBe('abc');
|
|
10
|
+
});
|
|
11
|
+
it('emoji:按可见长度截断,10 个 💖(length=20)截到恰好 10 个', () => {
|
|
12
|
+
const input = '💖'.repeat(15); // 15 grapheme, 30 code units
|
|
13
|
+
const out = truncateValueByLength({ value: input, maxLength: 10, getValueLength: graphemeLength });
|
|
14
|
+
expect(graphemeLength(out)).toBe(10);
|
|
15
|
+
expect(out.length).toBe(20); // 10 个 💖 × 2 code units
|
|
16
|
+
expect(out).toBe('💖'.repeat(10));
|
|
17
|
+
});
|
|
18
|
+
it('未超长时原样返回', () => {
|
|
19
|
+
const input = '💖'.repeat(3);
|
|
20
|
+
expect(truncateValueByLength({ value: input, maxLength: 10, getValueLength: graphemeLength })).toBe(input);
|
|
21
|
+
});
|
|
22
|
+
it('组合 emoji(👨👩👧👦 ZWJ 序列):可见长度不超过 maxLength(Semi 二分核心保证)', () => {
|
|
23
|
+
// 注:Semi 的二分 truncateValue 以「可见长度 ≤ maxLength 的最长 UTF-16 前缀」为准。
|
|
24
|
+
// 对带尾随 ZWJ 的残缺序列,segmenter 仍计为 1 grapheme,故截断点可能落在 ZWJ 内部
|
|
25
|
+
// (末尾留一个残缺码点,可见长度仍 = maxLength)。这是 Semi 原版同款行为,逐字复刻对齐。
|
|
26
|
+
// 本用例只验证 Semi 保证的不变量:可见长度不超过上限。
|
|
27
|
+
const family = '👨👩👧👦';
|
|
28
|
+
const input = family.repeat(4);
|
|
29
|
+
const out = truncateValueByLength({ value: input, maxLength: 2, getValueLength: graphemeLength });
|
|
30
|
+
expect(graphemeLength(out)).toBeLessThanOrEqual(2);
|
|
31
|
+
expect(out.startsWith(family)).toBe(true); // 至少第一个家庭 emoji 完整
|
|
32
|
+
});
|
|
33
|
+
it('maxLength=0 截为空串', () => {
|
|
34
|
+
expect(truncateValueByLength({ value: '💖💖', maxLength: 0, getValueLength: graphemeLength })).toBe('');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('computeVisibleMinLength', () => {
|
|
38
|
+
it('无 getValueLength 时返回原 minLength', () => {
|
|
39
|
+
expect(computeVisibleMinLength({ value: 'ab', minLength: 4 })).toBe(4);
|
|
40
|
+
});
|
|
41
|
+
it('可见长度不足时换算:newMin = utf16Length + (minLength - visibleLength)', () => {
|
|
42
|
+
// 3 个 💖 = visibleLength 3, utf16 length 6, minLength 4
|
|
43
|
+
// → 6 + (4 - 3) = 7(浏览器按 utf16 minlength=7 校验,等价于要求可见 4 个)
|
|
44
|
+
const value = '💖'.repeat(3);
|
|
45
|
+
expect(computeVisibleMinLength({ value, minLength: 4, getValueLength: graphemeLength })).toBe(7);
|
|
46
|
+
});
|
|
47
|
+
it('普通字符可见长度 = utf16 长度时,换算值 = minLength', () => {
|
|
48
|
+
// 'abc' visible 3, utf16 3, minLength 4 → 3 + (4-3) = 4
|
|
49
|
+
expect(computeVisibleMinLength({ value: 'abc', minLength: 4, getValueLength: graphemeLength })).toBe(4);
|
|
50
|
+
});
|
|
51
|
+
it('已达最小长度时返回原 minLength(不再抬高阈值)', () => {
|
|
52
|
+
const value = '💖'.repeat(5); // visible 5 >= minLength 4
|
|
53
|
+
expect(computeVisibleMinLength({ value, minLength: 4, getValueLength: graphemeLength })).toBe(4);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=input.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.test.js","sourceRoot":"","sources":["../src/input.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MarkdownRender headless — framework-agnostic Markdown → hast compilation.
|
|
3
|
+
*
|
|
4
|
+
* Semi Design 用 `@mdx-js/mdx` evaluate 产出 React 组件;Svelte 无 JSX runtime 无法复用。
|
|
5
|
+
* 本模块改用 unified 管线把 Markdown `raw` 编译成 **hast**(HTML AST),
|
|
6
|
+
* 渲染层再递归 hast 渲染成 Svelte 组件 / 原生标签。
|
|
7
|
+
*
|
|
8
|
+
* 管线:`remark-parse` → 条件 `remark-gfm` → 透传 remarkPlugins → `remark-rehype`
|
|
9
|
+
* → 透传 rehypePlugins → hast root。
|
|
10
|
+
*
|
|
11
|
+
* 体积治理(对齐 spec §9):unified / remark / rehype 编译器体积大,
|
|
12
|
+
* 全部用**动态 import** 惰性加载,避免拖累主包首屏。
|
|
13
|
+
*
|
|
14
|
+
* 安全:默认**不**渲染 raw HTML(对齐 Semi format='md' 剥离行为)。
|
|
15
|
+
* remark-rehype 的 `allowDangerousHtml` 默认 false,raw HTML 会被丢弃;
|
|
16
|
+
* 使用方若要保留 HTML,须自行传入 `rehype-raw` 并自负 XSS。
|
|
17
|
+
*/
|
|
18
|
+
import type { Root as HastRoot } from 'hast';
|
|
19
|
+
export type { HastRoot };
|
|
20
|
+
/** unified 插件条目:插件本身,或 [插件, 选项] 元组。框架无关,值透传给 unified。 */
|
|
21
|
+
export type UnifiedPluginEntry = unknown;
|
|
22
|
+
export interface CompileToHastOptions {
|
|
23
|
+
/**
|
|
24
|
+
* 是否启用 GitHub Flavored Markdown(表格 / 任务列表 / 删除线 / 自动链接)。
|
|
25
|
+
* @default true
|
|
26
|
+
*/
|
|
27
|
+
remarkGfm?: boolean | undefined;
|
|
28
|
+
/** 追加的 remark 插件(作用于 mdast,在 gfm 之后、remark-rehype 之前)。 */
|
|
29
|
+
remarkPlugins?: UnifiedPluginEntry[] | undefined;
|
|
30
|
+
/** 追加的 rehype 插件(作用于 hast,在 remark-rehype 之后)。 */
|
|
31
|
+
rehypePlugins?: UnifiedPluginEntry[] | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* 是否允许通过 raw HTML 节点。默认 false(对齐 Semi format='md' 剥离行为)。
|
|
34
|
+
* 置 true 仅让 remark-rehype 透传 raw 节点;真正解析/渲染 HTML 仍需使用方
|
|
35
|
+
* 在 `rehypePlugins` 里加 `rehype-raw`,并自负 XSS 风险。
|
|
36
|
+
*/
|
|
37
|
+
allowDangerousHtml?: boolean | undefined;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 把 Markdown 源码编译为 hast root(纯函数,框架无关)。
|
|
41
|
+
*
|
|
42
|
+
* 编译器经动态 import 惰性加载;首次调用会触发 chunk 加载。
|
|
43
|
+
*
|
|
44
|
+
* @param raw Markdown 源码字符串
|
|
45
|
+
* @param opts 编译选项
|
|
46
|
+
* @returns hast 根节点,供渲染层递归消费
|
|
47
|
+
*/
|
|
48
|
+
export declare function compileToHast(raw: string, opts?: CompileToHastOptions): Promise<HastRoot>;
|
|
49
|
+
//# sourceMappingURL=markdown-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-render.d.ts","sourceRoot":"","sources":["../src/markdown-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE7C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,0DAA0D;IAC1D,aAAa,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACjD,kDAAkD;IAClD,aAAa,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACjD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAuDnB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MarkdownRender headless — framework-agnostic Markdown → hast compilation.
|
|
3
|
+
*
|
|
4
|
+
* Semi Design 用 `@mdx-js/mdx` evaluate 产出 React 组件;Svelte 无 JSX runtime 无法复用。
|
|
5
|
+
* 本模块改用 unified 管线把 Markdown `raw` 编译成 **hast**(HTML AST),
|
|
6
|
+
* 渲染层再递归 hast 渲染成 Svelte 组件 / 原生标签。
|
|
7
|
+
*
|
|
8
|
+
* 管线:`remark-parse` → 条件 `remark-gfm` → 透传 remarkPlugins → `remark-rehype`
|
|
9
|
+
* → 透传 rehypePlugins → hast root。
|
|
10
|
+
*
|
|
11
|
+
* 体积治理(对齐 spec §9):unified / remark / rehype 编译器体积大,
|
|
12
|
+
* 全部用**动态 import** 惰性加载,避免拖累主包首屏。
|
|
13
|
+
*
|
|
14
|
+
* 安全:默认**不**渲染 raw HTML(对齐 Semi format='md' 剥离行为)。
|
|
15
|
+
* remark-rehype 的 `allowDangerousHtml` 默认 false,raw HTML 会被丢弃;
|
|
16
|
+
* 使用方若要保留 HTML,须自行传入 `rehype-raw` 并自负 XSS。
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* 把 Markdown 源码编译为 hast root(纯函数,框架无关)。
|
|
20
|
+
*
|
|
21
|
+
* 编译器经动态 import 惰性加载;首次调用会触发 chunk 加载。
|
|
22
|
+
*
|
|
23
|
+
* @param raw Markdown 源码字符串
|
|
24
|
+
* @param opts 编译选项
|
|
25
|
+
* @returns hast 根节点,供渲染层递归消费
|
|
26
|
+
*/
|
|
27
|
+
export async function compileToHast(raw, opts = {}) {
|
|
28
|
+
const { remarkGfm: enableGfm = true, remarkPlugins = [], rehypePlugins = [], allowDangerousHtml = false, } = opts;
|
|
29
|
+
const [{ unified }, { default: remarkParse }, { default: remarkRehype }] = await Promise.all([
|
|
30
|
+
import('unified'),
|
|
31
|
+
import('remark-parse'),
|
|
32
|
+
import('remark-rehype'),
|
|
33
|
+
]);
|
|
34
|
+
let processor = unified().use(remarkParse);
|
|
35
|
+
if (enableGfm) {
|
|
36
|
+
const { default: remarkGfm } = await import('remark-gfm');
|
|
37
|
+
processor = processor.use(remarkGfm);
|
|
38
|
+
}
|
|
39
|
+
for (const entry of remarkPlugins) {
|
|
40
|
+
processor = applyPlugin(processor, entry);
|
|
41
|
+
}
|
|
42
|
+
processor = processor.use(remarkRehype, { allowDangerousHtml });
|
|
43
|
+
for (const entry of rehypePlugins) {
|
|
44
|
+
processor = applyPlugin(processor, entry);
|
|
45
|
+
}
|
|
46
|
+
const mdast = processor.parse(raw);
|
|
47
|
+
const hast = (await processor.run(mdast));
|
|
48
|
+
return hast;
|
|
49
|
+
/**
|
|
50
|
+
* 归一化插件条目并 use 到 processor。
|
|
51
|
+
* 支持 `plugin` 或 `[plugin, options]` 元组两种记法(对齐 unified 惯例)。
|
|
52
|
+
*/
|
|
53
|
+
function applyPlugin(p, entry) {
|
|
54
|
+
if (Array.isArray(entry)) {
|
|
55
|
+
const [plugin, options] = entry;
|
|
56
|
+
return p.use(plugin, options);
|
|
57
|
+
}
|
|
58
|
+
return p.use(entry);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=markdown-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-render.js","sourceRoot":"","sources":["../src/markdown-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA2BH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,OAA6B,EAAE;IAE/B,MAAM,EACJ,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,aAAa,GAAG,EAAE,EAClB,aAAa,GAAG,EAAE,EAClB,kBAAkB,GAAG,KAAK,GAC3B,GAAG,IAAI,CAAC;IAET,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GACtE,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,SAAS,CAAC;QACjB,MAAM,CAAC,cAAc,CAAC;QACtB,MAAM,CAAC,eAAe,CAAC;KACxB,CAAC,CAAC;IAUL,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,CAA8B,CAAC;IAExE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAEhE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAa,CAAC;IACtD,OAAO,IAAI,CAAC;IAEZ;;;OAGG;IACH,SAAS,WAAW,CAAC,CAAiB,EAAE,KAAyB;QAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAA2B,CAAC;YACtD,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-render.test.d.ts","sourceRoot":"","sources":["../src/markdown-render.test.ts"],"names":[],"mappings":""}
|