@g9tm/lynxcontrols 1.4.7 → 1.4.11
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/.tsbuildinfo +1 -1
- package/dist/base/index.d.ts +1 -1
- package/dist/base/index.d.ts.map +1 -1
- package/dist/base/index.jsx +1 -1
- package/dist/base/selection-item.d.ts +9 -1
- package/dist/base/selection-item.d.ts.map +1 -1
- package/dist/base/selection-item.jsx +10 -1
- package/dist/base/selection-item.jsx.map +1 -1
- package/dist/button/button.css +20 -0
- package/dist/button/button.css.map +1 -1
- package/dist/button/header-action-button.d.ts +5 -0
- package/dist/button/header-action-button.d.ts.map +1 -1
- package/dist/button/header-action-button.jsx +6 -1
- package/dist/button/header-action-button.jsx.map +1 -1
- package/dist/button/visuals.d.ts.map +1 -1
- package/dist/button/visuals.jsx +1 -1
- package/dist/button/visuals.jsx.map +1 -1
- package/dist/fields/editor.d.ts.map +1 -1
- package/dist/fields/editor.jsx +2 -2
- package/dist/fields/editor.jsx.map +1 -1
- package/dist/fields/fields.css +21 -0
- package/dist/fields/fields.css.map +1 -1
- package/dist/fields/index.d.ts +1 -1
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.jsx +1 -1
- package/dist/fields/outlined-field.d.ts +27 -1
- package/dist/fields/outlined-field.d.ts.map +1 -1
- package/dist/fields/outlined-field.jsx +29 -2
- package/dist/fields/outlined-field.jsx.map +1 -1
- package/dist/fields/text-entry.d.ts.map +1 -1
- package/dist/fields/text-entry.jsx +2 -2
- package/dist/fields/text-entry.jsx.map +1 -1
- package/dist/pickers/combo-box.d.ts +8 -0
- package/dist/pickers/combo-box.d.ts.map +1 -1
- package/dist/pickers/combo-box.jsx +51 -9
- package/dist/pickers/combo-box.jsx.map +1 -1
- package/dist/pickers/date-time-picker.d.ts +2 -2
- package/dist/pickers/date-time-picker.d.ts.map +1 -1
- package/dist/pickers/date-time-picker.jsx +4 -3
- package/dist/pickers/date-time-picker.jsx.map +1 -1
- package/dist/pickers/date-time.d.ts +5 -2
- package/dist/pickers/date-time.d.ts.map +1 -1
- package/dist/pickers/date-time.jsx +1 -1
- package/dist/pickers/date-time.jsx.map +1 -1
- package/dist/pickers/picker-sheet.d.ts +6 -2
- package/dist/pickers/picker-sheet.d.ts.map +1 -1
- package/dist/pickers/picker-sheet.jsx +2 -3
- package/dist/pickers/picker-sheet.jsx.map +1 -1
- package/dist/pickers/picker.d.ts.map +1 -1
- package/dist/pickers/picker.jsx +3 -2
- package/dist/pickers/picker.jsx.map +1 -1
- package/dist/pickers/pickers.css +27 -0
- package/dist/pickers/pickers.css.map +1 -1
- package/dist/pickers/timespan-picker.d.ts.map +1 -1
- package/dist/pickers/timespan-picker.jsx +3 -2
- package/dist/pickers/timespan-picker.jsx.map +1 -1
- package/dist/pickers/trigger.d.ts +3 -1
- package/dist/pickers/trigger.d.ts.map +1 -1
- package/dist/pickers/trigger.jsx +6 -1
- package/dist/pickers/trigger.jsx.map +1 -1
- package/dist/provider/settings.d.ts +12 -0
- package/dist/provider/settings.d.ts.map +1 -1
- package/dist/provider/settings.jsx +6 -3
- package/dist/provider/settings.jsx.map +1 -1
- package/dist/provider/theme.css +4 -0
- package/dist/provider/theme.css.map +1 -1
- package/dist/range-slider/math.d.ts +14 -4
- package/dist/range-slider/math.d.ts.map +1 -1
- package/dist/range-slider/math.jsx +16 -4
- package/dist/range-slider/math.jsx.map +1 -1
- package/dist/range-slider/range-slider.css +17 -0
- package/dist/range-slider/range-slider.css.map +1 -1
- package/dist/range-slider/range-slider.d.ts +11 -0
- package/dist/range-slider/range-slider.d.ts.map +1 -1
- package/dist/range-slider/range-slider.jsx +35 -13
- package/dist/range-slider/range-slider.jsx.map +1 -1
- package/dist/selection/index.d.ts +2 -1
- package/dist/selection/index.d.ts.map +1 -1
- package/dist/selection/index.jsx +2 -1
- package/dist/selection/selection-sheet.d.ts +3 -1
- package/dist/selection/selection-sheet.d.ts.map +1 -1
- package/dist/selection/selection-sheet.jsx +57 -8
- package/dist/selection/selection-sheet.jsx.map +1 -1
- package/dist/selection/selection.css +7 -0
- package/dist/selection/selection.css.map +1 -1
- package/dist/selection/window.d.ts +29 -0
- package/dist/selection/window.d.ts.map +1 -0
- package/dist/selection/window.jsx +24 -0
- package/dist/selection/window.jsx.map +1 -0
- package/dist/sheet/frame.d.ts.map +1 -1
- package/dist/sheet/frame.jsx +8 -4
- package/dist/sheet/frame.jsx.map +1 -1
- package/dist/sheet/header.d.ts.map +1 -1
- package/dist/sheet/header.jsx +3 -1
- package/dist/sheet/header.jsx.map +1 -1
- package/dist/sheet/index.d.ts +1 -1
- package/dist/sheet/index.d.ts.map +1 -1
- package/dist/sheet/index.jsx +1 -1
- package/dist/sheet/options.d.ts +20 -0
- package/dist/sheet/options.d.ts.map +1 -1
- package/dist/sheet/options.jsx +2 -1
- package/dist/sheet/options.jsx.map +1 -1
- package/dist/sheet/service.d.ts +8 -0
- package/dist/sheet/service.d.ts.map +1 -1
- package/dist/sheet/service.jsx +15 -4
- package/dist/sheet/service.jsx.map +1 -1
- package/dist/sheet/sizing.d.ts +2 -0
- package/dist/sheet/sizing.d.ts.map +1 -1
- package/dist/sheet/sizing.jsx +2 -1
- package/dist/sheet/sizing.jsx.map +1 -1
- package/dist/toggle/chip-group.d.ts +9 -1
- package/dist/toggle/chip-group.d.ts.map +1 -1
- package/dist/toggle/chip-group.jsx +51 -12
- package/dist/toggle/chip-group.jsx.map +1 -1
- package/dist/toggle/switch.d.ts +1 -1
- package/dist/toggle/switch.d.ts.map +1 -1
- package/dist/toggle/switch.jsx +3 -2
- package/dist/toggle/switch.jsx.map +1 -1
- package/dist/toggle/toggle.css +20 -0
- package/dist/toggle/toggle.css.map +1 -1
- package/package.json +2 -2
package/dist/sheet/frame.jsx
CHANGED
|
@@ -12,7 +12,7 @@ import { G9SheetGestureFrame, useSheetBodyGesture, useSheetGestureRefs } from ".
|
|
|
12
12
|
import { G9SheetFooter, G9SheetHeader } from "./header.jsx";
|
|
13
13
|
import { resolveSheetMotion } from "./motion.jsx";
|
|
14
14
|
import { G9SheetScrollIndicator, G9SheetScrollModel } from "./scroll-indicator.jsx";
|
|
15
|
-
import { clampFitHeight, currentPlatform, g9SheetDragCloseThreshold, g9SheetFitLoadingMinHeight, g9SheetFitMinHeight, parentRecedeOffset, platformSheetConstraints, resolveSheetLayout, sheetOverlayOpacity, sheetSurfaceBottomPadding, sheetSurfaceTopPadding } from "./sizing.jsx";
|
|
15
|
+
import { clampFitHeight, currentPlatform, g9SheetDragCloseThreshold, g9SheetFitLoadingMinHeight, g9SheetFitMinHeight, g9SheetScrollToEndThreshold, parentRecedeOffset, platformSheetConstraints, resolveSheetLayout, sheetOverlayOpacity, sheetSurfaceBottomPadding, sheetSurfaceTopPadding } from "./sizing.jsx";
|
|
16
16
|
const SheetContext = createContext(null);
|
|
17
17
|
function useG9SheetContext() {
|
|
18
18
|
return useContext(SheetContext);
|
|
@@ -47,7 +47,7 @@ function initialDetent(o, fit) {
|
|
|
47
47
|
return ordered.includes(current) ? current : null != (_ordered_ = ordered[0]) ? _ordered_ : 'medium';
|
|
48
48
|
}
|
|
49
49
|
function G9SheetFrame(props) {
|
|
50
|
-
var _ref, _o_deferredLoadingPlaceholderHeight, _o_loadingSkeletonRowCount, _ratios_layout_initialSnap, _props_bottomInset, _o_openAnimationDurationMs, _o_closeAnimationDurationMs, _o_cornerRadius, _o_backgroundColor, _ratios_restIndex, _o_padding, _o_padding1, _o_padding2;
|
|
50
|
+
var _ref, _o_deferredLoadingPlaceholderHeight, _o_loadingSkeletonRowCount, _ratios_layout_initialSnap, _props_bottomInset, _o_scrollToEndThreshold, _o_openAnimationDurationMs, _o_closeAnimationDurationMs, _o_cornerRadius, _o_backgroundColor, _ratios_restIndex, _o_padding, _o_padding1, _o_padding2;
|
|
51
51
|
var _props_memo;
|
|
52
52
|
const { entry, stack, settings } = props;
|
|
53
53
|
const palette = useG9Theme().palette;
|
|
@@ -179,6 +179,10 @@ function G9SheetFrame(props) {
|
|
|
179
179
|
};
|
|
180
180
|
const platform = currentPlatform();
|
|
181
181
|
const phone = 'android' === platform || 'ios' === platform;
|
|
182
|
+
const endProps = o.onScrollToEnd ? {
|
|
183
|
+
'lower-threshold': null != (_o_scrollToEndThreshold = o.scrollToEndThreshold) ? _o_scrollToEndThreshold : g9SheetScrollToEndThreshold,
|
|
184
|
+
bindscrolltolower: o.onScrollToEnd
|
|
185
|
+
} : {};
|
|
182
186
|
const openMs = null != (_o_openAnimationDurationMs = o.openAnimationDurationMs) ? _o_openAnimationDurationMs : settings.openAnimationDurationMs;
|
|
183
187
|
const closeMs = null != (_o_closeAnimationDurationMs = o.closeAnimationDurationMs) ? _o_closeAnimationDurationMs : settings.closeAnimationDurationMs;
|
|
184
188
|
const corner = 'android' === platform && true === o.androidShouldRemoveExpandedCorners && layout.fullScreen ? 0 : null != (_o_cornerRadius = o.cornerRadius) ? _o_cornerRadius : 12;
|
|
@@ -255,7 +259,7 @@ function G9SheetFrame(props) {
|
|
|
255
259
|
}}>
|
|
256
260
|
{content}
|
|
257
261
|
</view> : indicator.current ? <view className={`g9-sheet__body-frame${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}>
|
|
258
|
-
<scroll-view className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`} scroll-orientation="vertical" main-thread:ref={gesture.body} main-thread:bindscroll={phone ? bodyGesture.onScrollMT : void 0} main-thread:bindtouchstart={bodyGesture.onTouchStartMT} scroll-event-throttle={16} bindscroll={(e)=>{
|
|
262
|
+
<scroll-view className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`} scroll-orientation="vertical" main-thread:ref={gesture.body} main-thread:bindscroll={phone ? bodyGesture.onScrollMT : void 0} main-thread:bindtouchstart={bodyGesture.onTouchStartMT} scroll-event-throttle={16} {...endProps} bindscroll={(e)=>{
|
|
259
263
|
var _ref;
|
|
260
264
|
var _e_detail, _indicator_current;
|
|
261
265
|
return null == (_indicator_current = indicator.current) ? void 0 : _indicator_current.setTop(null != (_ref = null == (_e_detail = e.detail) ? void 0 : _e_detail.scrollTop) ? _ref : 0);
|
|
@@ -272,7 +276,7 @@ function G9SheetFrame(props) {
|
|
|
272
276
|
{content}
|
|
273
277
|
</scroll-view>
|
|
274
278
|
<G9SheetScrollIndicator model={indicator.current}/>
|
|
275
|
-
</view> : <scroll-view className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`} scroll-orientation="vertical" main-thread:ref={gesture.body} main-thread:bindscroll={phone ? bodyGesture.onScrollMT : void 0} main-thread:bindtouchstart={bodyGesture.onTouchStartMT} style={{
|
|
279
|
+
</view> : <scroll-view className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`} scroll-orientation="vertical" main-thread:ref={gesture.body} main-thread:bindscroll={phone ? bodyGesture.onScrollMT : void 0} main-thread:bindtouchstart={bodyGesture.onTouchStartMT} {...endProps} style={{
|
|
276
280
|
padding: `${null != (_o_padding2 = o.padding) ? _o_padding2 : 0}px`,
|
|
277
281
|
...null !== maxBody ? {
|
|
278
282
|
maxHeight: `${maxBody}px`
|
package/dist/sheet/frame.jsx.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet/frame.jsx","sources":["../../src/sheet/frame.tsx"],"sourcesContent":["import './sheet.css';\nimport {\n createAbortController,\n formatColor,\n type G9AbortController,\n type G9AbortSignal,\n g9Ms,\n resolveThemeColor,\n tryParseColor,\n withAlpha,\n} from '@g9tm/lynxcontrols-foundation';\nimport { SheetContent, SheetRoot, type SheetRootRef, SheetView } from '@lynx-js/lynx-ui-sheet';\nimport { createContext, type ReactNode, useContext, useEffect, useRef, useState } from '@lynx-js/react';\nimport { g9IdProps } from '../base/control';\nimport { type G9TimerHandle, startTimer, stopTimer } from '../base/timers';\nimport { G9ActivityIndicator } from '../display/activity-indicator';\nimport { G9SheetSkeleton } from '../display/shimmer';\nimport { g9FieldNotchStyle } from '../fields/notch';\nimport { useG9Theme } from '../provider/hooks';\nimport { G9SheetGestureFrame, useSheetBodyGesture, useSheetGestureRefs } from './gesture';\nimport { G9SheetFooter, G9SheetHeader } from './header';\nimport type { G9SheetHeightMemo } from './height-memo';\nimport { resolveSheetMotion } from './motion';\nimport type { G9SheetDetent, G9SheetSettings } from './options';\nimport { G9SheetScrollIndicator, G9SheetScrollModel } from './scroll-indicator';\nimport {\n clampFitHeight,\n currentPlatform,\n g9SheetDragCloseThreshold,\n g9SheetFitLoadingMinHeight,\n g9SheetFitMinHeight,\n parentRecedeOffset,\n platformSheetConstraints,\n resolveSheetLayout,\n sheetOverlayOpacity,\n sheetSurfaceBottomPadding,\n sheetSurfaceTopPadding,\n} from './sizing';\nimport type { G9SheetEntry, G9SheetHandle, G9SheetStack } from './stack';\n\n/** What content inside a sheet can read (MAUI `IG9BottomSheetAwareView` + deferred load signals). */\nexport interface G9SheetContextValue {\n /** The sheet-scoped handle: `close()` closes only this sheet. */\n readonly handle: G9SheetHandle;\n /** Aborted when the sheet starts closing (cancel loads with it). */\n readonly signal: G9AbortSignal;\n /** The open motion has finished. */\n readonly opened: boolean;\n /** The sheet is closing. */\n readonly closing: boolean;\n /** Resting body cap of a fit sheet (px), else `null`. */\n readonly maxBodyHeight: number | null;\n}\n\nconst SheetContext = createContext<G9SheetContextValue | null>(null);\n\n/** The enclosing sheet, or `null` outside one. */\nexport function useG9SheetContext(): G9SheetContextValue | null {\n return useContext(SheetContext);\n}\n\n/** Props of {@link G9SheetFrame}. */\nexport interface G9SheetFrameProps {\n readonly entry: G9SheetEntry;\n readonly stack: G9SheetStack;\n /** Host height (px): percentage detents and caps resolve against it. */\n readonly hostHeight: number;\n readonly hostWidth: number;\n readonly topInset: number;\n /** The host's bottom safe inset (a visible navigation bar); the surface pads by it. Default 0. */\n readonly bottomInset?: number;\n readonly settings: Required<G9SheetSettings>;\n readonly memo: G9SheetHeightMemo | null;\n /** Culture tag of the memo key. */\n readonly culture: string;\n /** The sheet is the top of the stack (receives scrim input). */\n readonly isTop: boolean;\n /** The sheet came to rest at a new height (px); drives the page recede threshold. */\n readonly onRest?: (heightPx: number) => void;\n}\n\nfunction scrimColor(entry: G9SheetEntry, settings: Required<G9SheetSettings>, opacity: number): string {\n const explicit = entry.options.windowBackgroundColor;\n const parsed = tryParseColor(explicit ?? settings.modalOverlayColor);\n if (!parsed) return explicit ?? settings.modalOverlayColor;\n return formatColor(withAlpha(parsed, explicit ? parsed.a : opacity));\n}\n\n/** lynx-ui's inner view lays G9's frame out as a column (its default `linear` layout ignores `flex`). */\nconst sheetInnerStyle = { display: 'flex', flexDirection: 'column' } as const;\n/** The receded parent sinks and fades over 220 ms (MAUI `StackParentRecedeDurationMs`, CubicOut). */\nconst g9SheetRecedeTransition = (): string => `transform ${g9Ms(220)}ms ease-out, opacity ${g9Ms(220)}ms ease-out`;\n\n/** The sheet's detents, small to large (the order of lynx-ui's snap points). */\nfunction orderedDetents(o: G9SheetEntry['options']): G9SheetDetent[] {\n const requested = o.states && o.states.length > 0 ? o.states : (['medium', 'large'] as const);\n return (['peek', 'medium', 'large'] as const).filter((d) => requested.includes(d));\n}\n\n/** The detent a sheet opens at (`'fit'` for fit-to-content). */\nfunction initialDetent(o: G9SheetEntry['options'], fit: boolean): G9SheetDetent | 'fit' {\n if (fit) return 'fit';\n const ordered = orderedDetents(o);\n const current = o.currentState ?? 'medium';\n return ordered.includes(current) ? current : (ordered[0] ?? 'medium');\n}\n\n/**\n * One sheet of the stack on lynx-ui `SheetRoot` (motion, drag, snap points from lynx-ui; G9 adds detent mapping,\n * scrim, header/footer, deferred content, recede and results). Rendered by the sheet service in the host's sheets\n * layer; use `useG9Sheets()` to open sheets.\n */\nexport function G9SheetFrame(props: G9SheetFrameProps): ReactNode {\n const { entry, stack, settings } = props;\n const palette = useG9Theme().palette;\n const gesture = useSheetGestureRefs();\n const bodyGesture = useSheetBodyGesture(gesture);\n const o = entry.options;\n const layout = resolveSheetLayout(o, props.hostHeight);\n const showing = entry.status === 'opening' || entry.status === 'open';\n const closing = entry.status === 'closing';\n const handle = stack.handleOf(entry.id) as G9SheetHandle;\n\n const controller = useRef<G9AbortController | null>(null);\n if (controller.current === null) controller.current = createAbortController();\n useEffect(() => {\n if (closing || entry.status === 'closed') controller.current?.abort();\n }, [closing, entry.status]);\n useEffect(() => () => controller.current?.abort(), []);\n\n // Deferred (factory) content: placeholder until the open motion ended + loadDelayMs, then the body.\n const factory = typeof entry.content === 'function';\n const deferred = (factory || settings.deferPrebuiltContent) && o.deferContent !== false;\n const [revealed, setRevealed] = useState(!deferred);\n const [covering, setCovering] = useState(false);\n const timer = useRef<G9TimerHandle | null>(null);\n const coverTimer = useRef<G9TimerHandle | null>(null);\n useEffect(\n () => () => {\n if (coverTimer.current !== null) stopTimer(coverTimer.current);\n },\n [],\n );\n useEffect(() => {\n if (!deferred || revealed || entry.status !== 'open') return;\n const delay = layout.fullScreen\n ? Math.max(o.loadDelayMs ?? 369, settings.openAnimationDurationMs + 32)\n : (o.loadDelayMs ?? 369);\n timer.current = startTimer(() => {\n setRevealed(true);\n if (o.fadeDeferredContentIn !== false) {\n setCovering(true);\n coverTimer.current = startTimer(() => setCovering(false), g9Ms(220));\n }\n }, delay);\n return () => {\n if (timer.current !== null) stopTimer(timer.current);\n };\n }, [deferred, revealed, entry.status]);\n\n const memoKey = o.heightMemoKey ? `${o.heightMemoKey}|w${Math.round(props.hostWidth)}|${props.culture}|fs1` : null;\n const placeholderHeight = o.useFullScreenLoadingPlaceholder\n ? props.hostHeight\n : (o.deferredLoadingPlaceholderHeight ??\n (memoKey ? props.memo?.lookup(memoKey) : undefined) ??\n g9SheetFitLoadingMinHeight);\n\n const [bodyHeight, setBodyHeight] = useState(0);\n // The footer can come and go after the open (a `footerBand` whose buttons wait for data): it counts for the fit too.\n const [footerHeight, setFooterHeight] = useState(0);\n // The grabber, header and body gap above the body: part of the chrome a fit sheet's cap includes.\n const [chromeTopHeight, setChromeTopHeight] = useState(0);\n const onChromeTopLayout = (e: { detail?: { height?: number } }) =>\n setChromeTopHeight(Math.max(0, e.detail?.height ?? 0));\n const onFooterLayout = (e: { detail?: { height?: number } }) => setFooterHeight(Math.max(0, e.detail?.height ?? 0));\n // `scrollIndicator: 'always'` (./scroll-indicator.tsx): the thumb's own store, fed by the body and its content.\n const indicator = useRef<G9SheetScrollModel | null>(null);\n if (o.scrollIndicator === 'always' && o.scrollBody !== false && !indicator.current)\n indicator.current = new G9SheetScrollModel();\n const onBodyLayout = (e: { detail?: { height?: number } }) => {\n const h = e.detail?.height ?? 0;\n // The scroller's range is the content plus the body's padding on both sides.\n indicator.current?.setContent(h > 0 ? h + 2 * (o.padding ?? 0) : 0);\n if (h <= 0) return;\n setBodyHeight(h);\n if (memoKey && revealed && !covering) props.memo?.record(memoKey, h);\n };\n\n const placeholder =\n o.loadingSkeleton && o.loadingSkeleton !== 'none' ? (\n <view className=\"g9-sheet__placeholder\" style={{ height: `${placeholderHeight}px` }}>\n <G9SheetSkeleton skeleton={o.loadingSkeleton} rowCount={o.loadingSkeletonRowCount ?? 0} />\n </view>\n ) : (\n <view\n className=\"g9-sheet__placeholder g9-sheet__placeholder--spinner\"\n style={{ height: `${placeholderHeight}px` }}\n >\n <G9ActivityIndicator running size={32} />\n </view>\n );\n const body = revealed ? (factory ? (entry.content as () => ReactNode)() : (entry.content as ReactNode)) : null;\n\n // Scrim: the resting dim of the detent (one detent → max; several → interpolated at the initial detent). A fit sheet\n // ranges from its content height to full screen (MAUI ResolveModalOverlayOpacity), so at rest it dims at the\n // MINIMUM — unless its content fills the screen (MAUI's single-state range).\n const ratios = layout.snapPoints.map((p) =>\n typeof p === 'number' ? p / Math.max(1, props.hostHeight) : p === 'fit' ? 0.5 : Number.parseFloat(p) / 100,\n );\n const restingRatio = ratios[layout.initialSnap] ?? 1;\n // The share of the screen the sheet SHOWS: a fit sheet stops at its cap, so content taller than the cap (a long list\n // scrolling inside it) does not \"fill the screen\" — measured on the full content height, AgriPad's block sheet dimmed\n // at the maximum once its harvest list grew (0.69 where MAUI keeps 0.3).\n const shown = layout.fitMaxHeight !== null ? Math.min(bodyHeight, layout.fitMaxHeight) : bodyHeight;\n const contentRatio = bodyHeight > 0 ? Math.min(1, shown / Math.max(1, props.hostHeight)) : 0.5;\n const opacity = entry.handingOff\n ? 0\n : layout.fit\n ? contentRatio >= 0.99\n ? settings.modalOverlayMaximumOpacity\n : settings.modalOverlayMinimumOpacity\n : sheetOverlayOpacity(\n restingRatio,\n ratios,\n settings.modalOverlayMinimumOpacity,\n settings.modalOverlayMaximumOpacity,\n );\n const modal = o.isModal !== false;\n // The receded parent sinks and fades (MAUI stack recede). This runs on G9's own frame view, never on lynx-ui's\n // SheetContent view: lynx-ui moves that one from a main-thread worklet, and an inline style written over it from\n // here put the parent back at its closed offset when the child closed (the parent vanished, its scrim stayed).\n const recede = entry.receded\n ? { transform: `translateY(${parentRecedeOffset(bodyHeight || props.hostHeight * 0.5)}px)`, opacity: 0 }\n : { transform: 'translateY(0px)', opacity: 1 };\n const [resting, setResting] = useState<G9SheetDetent | 'fit'>(() => initialDetent(o, layout.fit));\n\n // A fit sheet whose body grows or shrinks AFTER it opened (rows that load later, a spinner replaced by content):\n // lynx-ui re-measures the 'fit' snap point on layout but leaves the sheet where it was, so a taller body ran off the\n // bottom of the screen (its footer unreachable). Re-snap to the new fit while the sheet rests there.\n const rootRef = useRef<SheetRootRef | null>(null);\n const lastFitBody = useRef(0);\n useEffect(() => {\n if (!layout.fit || bodyHeight <= 0 || entry.status !== 'open' || resting !== 'fit') return;\n // Also right after the open motion: the body may have grown while the sheet was still sliding in.\n const fitHeight = bodyHeight + footerHeight;\n if (Math.abs(lastFitBody.current - fitHeight) < 1) return;\n lastFitBody.current = fitHeight;\n rootRef.current?.snapTo(0, { animate: true });\n }, [bodyHeight, footerHeight, entry.status, resting, layout.fit]);\n const topPadding = sheetSurfaceTopPadding(o, layout, resting, props.topInset, props.hostHeight);\n const bottomPadding = sheetSurfaceBottomPadding(o, props.bottomInset ?? 0);\n // MAUI caps the WHOLE fit sheet at MaxFitToContentHeightRatio of the screen (the helper's chrome — header band, body\n // gap, footer — is part of the natural height it clamps); the body gets what is left. Capping only the body let a long\n // fit sheet stand ~65 dp taller than MAUI's (its header and gap on top of a 75 % body).\n const maxBody =\n layout.fitMaxHeight === null\n ? null\n : Math.max(\n g9SheetFitMinHeight,\n layout.fitMaxHeight - chromeTopHeight - footerHeight - topPadding - bottomPadding,\n );\n const contextValue: G9SheetContextValue = {\n handle,\n signal: (controller.current as G9AbortController).signal,\n opened: entry.status === 'open',\n closing,\n maxBodyHeight: maxBody,\n };\n const platform = currentPlatform();\n // The body reports its scroll offset to the gesture routing on the main thread (./gesture.tsx) on the phones only:\n // Lynxtron (desktop) drops the WHOLE sheet, no element of it is created, when the body's scroll-view carries\n // `main-thread:bindscroll` (the gallery smoke, Azure build 614). On the desktop a wheel scrolls the body.\n const phone = platform === 'android' || platform === 'ios';\n const openMs = o.openAnimationDurationMs ?? settings.openAnimationDurationMs;\n const closeMs = o.closeAnimationDurationMs ?? settings.closeAnimationDurationMs;\n const corner =\n platform === 'android' && o.androidShouldRemoveExpandedCorners === true && layout.fullScreen\n ? 0\n : (o.cornerRadius ?? 12);\n const surface = o.backgroundColor ?? 'var(--g9-surface-container)';\n // Fields in the sheet hide their outline under a floated label with the sheet's colour, not the page's.\n const notch = g9FieldNotchStyle(resolveThemeColor(surface, palette));\n // Motion (MAUI G9SheetMotionModel, ./motion.ts): Material's settle on Android, the UIKit spring on iOS, or the timed\n // cubic; the travel is the share of the host the sheet covers where it rests (a fit sheet: its measured body).\n const detents = orderedDetents(o);\n const restIndex = layout.fit ? 0 : Math.max(0, detents.indexOf(resting as G9SheetDetent));\n const fitRatio =\n bodyHeight > 0 ? Math.min(1, (bodyHeight + topPadding + bottomPadding) / Math.max(1, props.hostHeight)) : 0.4;\n const openRatio = layout.fit ? fitRatio : (ratios[restIndex] ?? restingRatio);\n const motion = resolveSheetMotion({\n style: settings.motionStyle,\n platform,\n openRatio,\n snapRatio: ratios.length > 1 ? Math.max(...ratios) - Math.min(...ratios) : openRatio,\n openMs,\n closeMs,\n perSheetOpen: o.openAnimationDurationMs != null,\n perSheetClose: o.closeAnimationDurationMs != null,\n sizeScaled: settings.sizeScaledAnimationDuration,\n });\n // The body's content; inside a scroller by default, or filling a static body (`scrollBody: false`).\n const content = (\n <view\n className={`g9-sheet__content${o.scrollBody === false ? ' g9-sheet__content--fill' : ''}`}\n key={entry.version}\n bindlayoutchange={onBodyLayout}\n >\n {body}\n {!revealed ? placeholder : null}\n {covering ? (\n <view\n className=\"g9-sheet__cover\"\n style={{ height: `${clampFitHeight(placeholderHeight, props.hostHeight, true)}px` }}\n >\n {placeholder}\n </view>\n ) : null}\n </view>\n );\n return (\n <SheetRoot\n ref={rootRef}\n show={showing}\n snapPoints={layout.snapPoints}\n initialSnap={layout.initialSnap}\n screenHeight={props.hostHeight}\n dragDisabled={layout.dragDisabled}\n enableDragToClose={layout.enableDragToClose}\n dismissThreshold={g9SheetDragCloseThreshold}\n // G9 routes every touch itself (./gesture.tsx: drag vs. body scroll, N-028); lynx-ui's content handlers stay off.\n handleOnly\n onShowChange={(open) => {\n if (!open) void stack.requestBack(entry.id, 'drag');\n }}\n onSnapChange={(index, value) => {\n const detent = layout.fit ? 'fit' : (detents[index] ?? 'large');\n setResting(detent);\n props.onRest?.(value);\n o.onStateChanged?.(detent, value);\n }}\n onOpen={() => stack.markOpened(entry.id)}\n onClose={() => stack.markClosed(entry.id)}\n >\n {/* The view is `position: fixed` without a size; lynx-ui places the sheet at its `top: 100%` and the backdrop at\n its 100 %. Unsized it is 0 × 0 (Lynxtron), so the sheet slid in above the screen: give it the viewport.\n event-through lets taps reach the page around a modal sheet's scrim-less parts; the scrim and the sheet take theirs.\n A non-modal sheet's view is also `pointer-events: none`: with event-through alone the Lynx view handed a tap\n on it to what lies under the whole Lynx view, so a NATIVE element of the page under the sheet (a map's own\n MotionEvents) never got it. (A native window `container` would do it too, but needs the overlay XElement.) */}\n <SheetView\n className={`g9-sheet__view${modal ? '' : ' g9-sheet__view--passthrough'}`}\n nativeProps={{ 'event-through': modal }}\n >\n {modal ? (\n <view\n event-through={false}\n // Never flattened: a flattened view is painted on the Lynx root canvas, which a native SurfaceView (a map)\n // covers — the dim vanished over AgriPad's map while the sheet itself, a native view, still showed.\n flatten={false}\n className={`g9-sheet__scrim${props.isTop && !closing ? '' : ' g9-sheet__scrim--covered'}`}\n style={{\n backgroundColor: scrimColor(entry, settings, opacity),\n transition:\n platform === 'ios' && o.animateOverlayToColorOnIos === false\n ? 'none'\n : `background-color ${closing ? closeMs : openMs}ms`,\n }}\n bindtap={() => {\n if (layout.closeOnOverlayTap) void stack.requestBack(entry.id, 'overlayTap');\n }}\n />\n ) : null}\n {/* SheetContent's own view is lynx-ui's: a worklet writes its transform every motion frame, so its style is\n set once and never changes (a later inline-style write replaces the worklet's transform). Everything that\n changes (recede, paddings, colour) lives on G9's frame and surface inside it. */}\n <SheetContent\n className={`g9-sheet g9-sheet--${entry.status}${layout.fit ? ' g9-sheet--fit' : ''}`}\n style={platformSheetConstraints(o)}\n innerStyle={sheetInnerStyle}\n {...motion}\n >\n <G9SheetGestureFrame\n refs={gesture}\n canDrag={!layout.dragDisabled}\n bodyDrags={o.scrollingExpandsSheet !== false}\n className=\"g9-sheet__frame\"\n style={{ ...recede, transition: g9SheetRecedeTransition() }}\n >\n <view\n className=\"g9-sheet__surface\"\n {...g9IdProps(o.automationId)}\n style={{\n backgroundColor: surface,\n borderTopLeftRadius: `${corner}px`,\n borderTopRightRadius: `${corner}px`,\n paddingTop: `${topPadding}px`,\n paddingBottom: `${bottomPadding}px`,\n ...notch,\n }}\n >\n <SheetContext.Provider value={contextValue}>\n <view className=\"g9-sheet__chrome-top\" bindlayoutchange={onChromeTopLayout}>\n {layout.showHandle ||\n (layout.fullScreen &&\n o.showToolbar &&\n o.showFullScreenDragHandle !== false &&\n !layout.dragDisabled) ? (\n <view className=\"g9-sheet__grabber-area\">\n <view className=\"g9-sheet__grabber\" />\n </view>\n ) : null}\n <G9SheetHeader options={o} onBack={() => void stack.requestBack(entry.id, 'toolbarButton')} />\n {o.showToolbar && o.useStandardBodyTopGap !== false ? (\n // MAUI UseStandardBodyTopGap: G9LayoutMetrics.SheetHeaderVerticalGap, which an app scales (AgriPad ×\n // 1.3 = 13) — read from the app's --g9-layout-* variable; g9SheetHeaderMetrics.bodyTopGap is the default.\n <view className=\"g9-sheet__body-gap\" />\n ) : null}\n </view>\n {o.scrollBody === false ? (\n <view\n className={`g9-sheet__body g9-sheet__body--static${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}\n style={{ padding: `${o.padding ?? 0}px` }}\n >\n {content}\n </view>\n ) : indicator.current ? (\n // The thumb's frame: the scroller and the thumb over its inline end (only with scrollIndicator).\n <view className={`g9-sheet__body-frame${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}>\n <scroll-view\n className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}\n scroll-orientation=\"vertical\"\n main-thread:ref={gesture.body}\n main-thread:bindscroll={phone ? bodyGesture.onScrollMT : undefined}\n main-thread:bindtouchstart={bodyGesture.onTouchStartMT}\n scroll-event-throttle={16}\n bindscroll={(e: { detail?: { scrollTop?: number } }) =>\n indicator.current?.setTop(e.detail?.scrollTop ?? 0)\n }\n bindlayoutchange={(e: { detail?: { height?: number } }) =>\n indicator.current?.setViewport(e.detail?.height ?? 0)\n }\n style={{\n padding: `${o.padding ?? 0}px`,\n ...(maxBody !== null ? { maxHeight: `${maxBody}px` } : {}),\n }}\n >\n {content}\n </scroll-view>\n <G9SheetScrollIndicator model={indicator.current} />\n </view>\n ) : (\n <scroll-view\n className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}\n scroll-orientation=\"vertical\"\n main-thread:ref={gesture.body}\n main-thread:bindscroll={phone ? bodyGesture.onScrollMT : undefined}\n main-thread:bindtouchstart={bodyGesture.onTouchStartMT}\n style={{\n padding: `${o.padding ?? 0}px`,\n ...(maxBody !== null ? { maxHeight: `${maxBody}px` } : {}),\n }}\n >\n {content}\n </scroll-view>\n )}\n <view className=\"g9-sheet__footer-slot\" bindlayoutchange={onFooterLayout}>\n <G9SheetFooter options={o} />\n </view>\n </SheetContext.Provider>\n </view>\n {/* Below the surface, so a drag past the top detent (rubber band) never shows the page under it. */}\n <view className=\"g9-sheet__skirt\" style={{ backgroundColor: surface }} />\n </G9SheetGestureFrame>\n </SheetContent>\n </SheetView>\n </SheetRoot>\n );\n}\n"],"names":["SheetContext","createContext","useG9SheetContext","useContext","scrimColor","entry","settings","opacity","explicit","parsed","tryParseColor","formatColor","withAlpha","sheetInnerStyle","g9SheetRecedeTransition","g9Ms","orderedDetents","o","requested","d","initialDetent","fit","_o_currentState","_ordered_","ordered","current","G9SheetFrame","props","_ref","_o_loadingSkeletonRowCount","_ratios_layout_initialSnap","_props_bottomInset","_o_openAnimationDurationMs","_o_closeAnimationDurationMs","_o_cornerRadius","_o_backgroundColor","_ratios_restIndex","_o_padding","_o_padding1","_o_padding2","_props_memo","stack","palette","useG9Theme","gesture","useSheetGestureRefs","bodyGesture","useSheetBodyGesture","layout","resolveSheetLayout","showing","closing","handle","controller","useRef","createAbortController","useEffect","_controller_current","factory","deferred","revealed","setRevealed","useState","covering","setCovering","timer","coverTimer","stopTimer","_o_loadDelayMs","_o_loadDelayMs1","delay","Math","startTimer","memoKey","placeholderHeight","undefined","g9SheetFitLoadingMinHeight","bodyHeight","setBodyHeight","footerHeight","setFooterHeight","chromeTopHeight","setChromeTopHeight","onChromeTopLayout","e","_e_detail","onFooterLayout","indicator","G9SheetScrollModel","onBodyLayout","_indicator_current","h","placeholder","view","G9SheetSkeleton","G9ActivityIndicator","body","ratios","p","Number","restingRatio","shown","contentRatio","sheetOverlayOpacity","modal","recede","parentRecedeOffset","resting","setResting","rootRef","lastFitBody","_rootRef_current","fitHeight","topPadding","sheetSurfaceTopPadding","bottomPadding","sheetSurfaceBottomPadding","maxBody","g9SheetFitMinHeight","contextValue","platform","currentPlatform","phone","openMs","closeMs","corner","surface","notch","g9FieldNotchStyle","resolveThemeColor","detents","restIndex","fitRatio","openRatio","motion","resolveSheetMotion","content","clampFitHeight","SheetRoot","g9SheetDragCloseThreshold","open","index","value","_detents_index","detent","SheetView","SheetContent","platformSheetConstraints","G9SheetGestureFrame","g9IdProps","G9SheetHeader","scroll-view","G9SheetScrollIndicator","G9SheetFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sheet/frame.jsx","sources":["../../src/sheet/frame.tsx"],"sourcesContent":["import './sheet.css';\nimport {\n createAbortController,\n formatColor,\n type G9AbortController,\n type G9AbortSignal,\n g9Ms,\n resolveThemeColor,\n tryParseColor,\n withAlpha,\n} from '@g9tm/lynxcontrols-foundation';\nimport { SheetContent, SheetRoot, type SheetRootRef, SheetView } from '@lynx-js/lynx-ui-sheet';\nimport { createContext, type ReactNode, useContext, useEffect, useRef, useState } from '@lynx-js/react';\nimport { g9IdProps } from '../base/control';\nimport { type G9TimerHandle, startTimer, stopTimer } from '../base/timers';\nimport { G9ActivityIndicator } from '../display/activity-indicator';\nimport { G9SheetSkeleton } from '../display/shimmer';\nimport { g9FieldNotchStyle } from '../fields/notch';\nimport { useG9Theme } from '../provider/hooks';\nimport { G9SheetGestureFrame, useSheetBodyGesture, useSheetGestureRefs } from './gesture';\nimport { G9SheetFooter, G9SheetHeader } from './header';\nimport type { G9SheetHeightMemo } from './height-memo';\nimport { resolveSheetMotion } from './motion';\nimport type { G9SheetDetent, G9SheetSettings } from './options';\nimport { G9SheetScrollIndicator, G9SheetScrollModel } from './scroll-indicator';\nimport {\n clampFitHeight,\n currentPlatform,\n g9SheetDragCloseThreshold,\n g9SheetFitLoadingMinHeight,\n g9SheetFitMinHeight,\n g9SheetScrollToEndThreshold,\n parentRecedeOffset,\n platformSheetConstraints,\n resolveSheetLayout,\n sheetOverlayOpacity,\n sheetSurfaceBottomPadding,\n sheetSurfaceTopPadding,\n} from './sizing';\nimport type { G9SheetEntry, G9SheetHandle, G9SheetStack } from './stack';\n\n/** What content inside a sheet can read (MAUI `IG9BottomSheetAwareView` + deferred load signals). */\nexport interface G9SheetContextValue {\n /** The sheet-scoped handle: `close()` closes only this sheet. */\n readonly handle: G9SheetHandle;\n /** Aborted when the sheet starts closing (cancel loads with it). */\n readonly signal: G9AbortSignal;\n /** The open motion has finished. */\n readonly opened: boolean;\n /** The sheet is closing. */\n readonly closing: boolean;\n /** Resting body cap of a fit sheet (px), else `null`. */\n readonly maxBodyHeight: number | null;\n}\n\nconst SheetContext = createContext<G9SheetContextValue | null>(null);\n\n/** The enclosing sheet, or `null` outside one. */\nexport function useG9SheetContext(): G9SheetContextValue | null {\n return useContext(SheetContext);\n}\n\n/** Props of {@link G9SheetFrame}. */\nexport interface G9SheetFrameProps {\n readonly entry: G9SheetEntry;\n readonly stack: G9SheetStack;\n /** Host height (px): percentage detents and caps resolve against it. */\n readonly hostHeight: number;\n readonly hostWidth: number;\n readonly topInset: number;\n /** The host's bottom safe inset (a visible navigation bar); the surface pads by it. Default 0. */\n readonly bottomInset?: number;\n readonly settings: Required<G9SheetSettings>;\n readonly memo: G9SheetHeightMemo | null;\n /** Culture tag of the memo key. */\n readonly culture: string;\n /** The sheet is the top of the stack (receives scrim input). */\n readonly isTop: boolean;\n /** The sheet came to rest at a new height (px); drives the page recede threshold. */\n readonly onRest?: (heightPx: number) => void;\n}\n\nfunction scrimColor(entry: G9SheetEntry, settings: Required<G9SheetSettings>, opacity: number): string {\n const explicit = entry.options.windowBackgroundColor;\n const parsed = tryParseColor(explicit ?? settings.modalOverlayColor);\n if (!parsed) return explicit ?? settings.modalOverlayColor;\n return formatColor(withAlpha(parsed, explicit ? parsed.a : opacity));\n}\n\n/** lynx-ui's inner view lays G9's frame out as a column (its default `linear` layout ignores `flex`). */\nconst sheetInnerStyle = { display: 'flex', flexDirection: 'column' } as const;\n/** The receded parent sinks and fades over 220 ms (MAUI `StackParentRecedeDurationMs`, CubicOut). */\nconst g9SheetRecedeTransition = (): string => `transform ${g9Ms(220)}ms ease-out, opacity ${g9Ms(220)}ms ease-out`;\n\n/** The sheet's detents, small to large (the order of lynx-ui's snap points). */\nfunction orderedDetents(o: G9SheetEntry['options']): G9SheetDetent[] {\n const requested = o.states && o.states.length > 0 ? o.states : (['medium', 'large'] as const);\n return (['peek', 'medium', 'large'] as const).filter((d) => requested.includes(d));\n}\n\n/** The detent a sheet opens at (`'fit'` for fit-to-content). */\nfunction initialDetent(o: G9SheetEntry['options'], fit: boolean): G9SheetDetent | 'fit' {\n if (fit) return 'fit';\n const ordered = orderedDetents(o);\n const current = o.currentState ?? 'medium';\n return ordered.includes(current) ? current : (ordered[0] ?? 'medium');\n}\n\n/**\n * One sheet of the stack on lynx-ui `SheetRoot` (motion, drag, snap points from lynx-ui; G9 adds detent mapping,\n * scrim, header/footer, deferred content, recede and results). Rendered by the sheet service in the host's sheets\n * layer; use `useG9Sheets()` to open sheets.\n */\nexport function G9SheetFrame(props: G9SheetFrameProps): ReactNode {\n const { entry, stack, settings } = props;\n const palette = useG9Theme().palette;\n const gesture = useSheetGestureRefs();\n const bodyGesture = useSheetBodyGesture(gesture);\n const o = entry.options;\n const layout = resolveSheetLayout(o, props.hostHeight);\n const showing = entry.status === 'opening' || entry.status === 'open';\n const closing = entry.status === 'closing';\n const handle = stack.handleOf(entry.id) as G9SheetHandle;\n\n const controller = useRef<G9AbortController | null>(null);\n if (controller.current === null) controller.current = createAbortController();\n useEffect(() => {\n if (closing || entry.status === 'closed') controller.current?.abort();\n }, [closing, entry.status]);\n useEffect(() => () => controller.current?.abort(), []);\n\n // Deferred (factory) content: placeholder until the open motion ended + loadDelayMs, then the body.\n const factory = typeof entry.content === 'function';\n const deferred = (factory || settings.deferPrebuiltContent) && o.deferContent !== false;\n const [revealed, setRevealed] = useState(!deferred);\n const [covering, setCovering] = useState(false);\n const timer = useRef<G9TimerHandle | null>(null);\n const coverTimer = useRef<G9TimerHandle | null>(null);\n useEffect(\n () => () => {\n if (coverTimer.current !== null) stopTimer(coverTimer.current);\n },\n [],\n );\n useEffect(() => {\n if (!deferred || revealed || entry.status !== 'open') return;\n const delay = layout.fullScreen\n ? Math.max(o.loadDelayMs ?? 369, settings.openAnimationDurationMs + 32)\n : (o.loadDelayMs ?? 369);\n timer.current = startTimer(() => {\n setRevealed(true);\n if (o.fadeDeferredContentIn !== false) {\n setCovering(true);\n coverTimer.current = startTimer(() => setCovering(false), g9Ms(220));\n }\n }, delay);\n return () => {\n if (timer.current !== null) stopTimer(timer.current);\n };\n }, [deferred, revealed, entry.status]);\n\n const memoKey = o.heightMemoKey ? `${o.heightMemoKey}|w${Math.round(props.hostWidth)}|${props.culture}|fs1` : null;\n const placeholderHeight = o.useFullScreenLoadingPlaceholder\n ? props.hostHeight\n : (o.deferredLoadingPlaceholderHeight ??\n (memoKey ? props.memo?.lookup(memoKey) : undefined) ??\n g9SheetFitLoadingMinHeight);\n\n const [bodyHeight, setBodyHeight] = useState(0);\n // The footer can come and go after the open (a `footerBand` whose buttons wait for data): it counts for the fit too.\n const [footerHeight, setFooterHeight] = useState(0);\n // The grabber, header and body gap above the body: part of the chrome a fit sheet's cap includes.\n const [chromeTopHeight, setChromeTopHeight] = useState(0);\n const onChromeTopLayout = (e: { detail?: { height?: number } }) =>\n setChromeTopHeight(Math.max(0, e.detail?.height ?? 0));\n const onFooterLayout = (e: { detail?: { height?: number } }) => setFooterHeight(Math.max(0, e.detail?.height ?? 0));\n // `scrollIndicator: 'always'` (./scroll-indicator.tsx): the thumb's own store, fed by the body and its content.\n const indicator = useRef<G9SheetScrollModel | null>(null);\n if (o.scrollIndicator === 'always' && o.scrollBody !== false && !indicator.current)\n indicator.current = new G9SheetScrollModel();\n const onBodyLayout = (e: { detail?: { height?: number } }) => {\n const h = e.detail?.height ?? 0;\n // The scroller's range is the content plus the body's padding on both sides.\n indicator.current?.setContent(h > 0 ? h + 2 * (o.padding ?? 0) : 0);\n if (h <= 0) return;\n setBodyHeight(h);\n if (memoKey && revealed && !covering) props.memo?.record(memoKey, h);\n };\n\n const placeholder =\n o.loadingSkeleton && o.loadingSkeleton !== 'none' ? (\n <view className=\"g9-sheet__placeholder\" style={{ height: `${placeholderHeight}px` }}>\n <G9SheetSkeleton skeleton={o.loadingSkeleton} rowCount={o.loadingSkeletonRowCount ?? 0} />\n </view>\n ) : (\n <view\n className=\"g9-sheet__placeholder g9-sheet__placeholder--spinner\"\n style={{ height: `${placeholderHeight}px` }}\n >\n <G9ActivityIndicator running size={32} />\n </view>\n );\n const body = revealed ? (factory ? (entry.content as () => ReactNode)() : (entry.content as ReactNode)) : null;\n\n // Scrim: the resting dim of the detent (one detent → max; several → interpolated at the initial detent). A fit sheet\n // ranges from its content height to full screen (MAUI ResolveModalOverlayOpacity), so at rest it dims at the\n // MINIMUM — unless its content fills the screen (MAUI's single-state range).\n const ratios = layout.snapPoints.map((p) =>\n typeof p === 'number' ? p / Math.max(1, props.hostHeight) : p === 'fit' ? 0.5 : Number.parseFloat(p) / 100,\n );\n const restingRatio = ratios[layout.initialSnap] ?? 1;\n // The share of the screen the sheet SHOWS: a fit sheet stops at its cap, so content taller than the cap (a long list\n // scrolling inside it) does not \"fill the screen\" — measured on the full content height, AgriPad's block sheet dimmed\n // at the maximum once its harvest list grew (0.69 where MAUI keeps 0.3).\n const shown = layout.fitMaxHeight !== null ? Math.min(bodyHeight, layout.fitMaxHeight) : bodyHeight;\n const contentRatio = bodyHeight > 0 ? Math.min(1, shown / Math.max(1, props.hostHeight)) : 0.5;\n const opacity = entry.handingOff\n ? 0\n : layout.fit\n ? contentRatio >= 0.99\n ? settings.modalOverlayMaximumOpacity\n : settings.modalOverlayMinimumOpacity\n : sheetOverlayOpacity(\n restingRatio,\n ratios,\n settings.modalOverlayMinimumOpacity,\n settings.modalOverlayMaximumOpacity,\n );\n const modal = o.isModal !== false;\n // The receded parent sinks and fades (MAUI stack recede). This runs on G9's own frame view, never on lynx-ui's\n // SheetContent view: lynx-ui moves that one from a main-thread worklet, and an inline style written over it from\n // here put the parent back at its closed offset when the child closed (the parent vanished, its scrim stayed).\n const recede = entry.receded\n ? { transform: `translateY(${parentRecedeOffset(bodyHeight || props.hostHeight * 0.5)}px)`, opacity: 0 }\n : { transform: 'translateY(0px)', opacity: 1 };\n const [resting, setResting] = useState<G9SheetDetent | 'fit'>(() => initialDetent(o, layout.fit));\n\n // A fit sheet whose body grows or shrinks AFTER it opened (rows that load later, a spinner replaced by content):\n // lynx-ui re-measures the 'fit' snap point on layout but leaves the sheet where it was, so a taller body ran off the\n // bottom of the screen (its footer unreachable). Re-snap to the new fit while the sheet rests there.\n const rootRef = useRef<SheetRootRef | null>(null);\n const lastFitBody = useRef(0);\n useEffect(() => {\n if (!layout.fit || bodyHeight <= 0 || entry.status !== 'open' || resting !== 'fit') return;\n // Also right after the open motion: the body may have grown while the sheet was still sliding in.\n const fitHeight = bodyHeight + footerHeight;\n if (Math.abs(lastFitBody.current - fitHeight) < 1) return;\n lastFitBody.current = fitHeight;\n rootRef.current?.snapTo(0, { animate: true });\n }, [bodyHeight, footerHeight, entry.status, resting, layout.fit]);\n const topPadding = sheetSurfaceTopPadding(o, layout, resting, props.topInset, props.hostHeight);\n const bottomPadding = sheetSurfaceBottomPadding(o, props.bottomInset ?? 0);\n // MAUI caps the WHOLE fit sheet at MaxFitToContentHeightRatio of the screen (the helper's chrome — header band, body\n // gap, footer — is part of the natural height it clamps); the body gets what is left. Capping only the body let a long\n // fit sheet stand ~65 dp taller than MAUI's (its header and gap on top of a 75 % body).\n const maxBody =\n layout.fitMaxHeight === null\n ? null\n : Math.max(\n g9SheetFitMinHeight,\n layout.fitMaxHeight - chromeTopHeight - footerHeight - topPadding - bottomPadding,\n );\n const contextValue: G9SheetContextValue = {\n handle,\n signal: (controller.current as G9AbortController).signal,\n opened: entry.status === 'open',\n closing,\n maxBodyHeight: maxBody,\n };\n const platform = currentPlatform();\n // The body reports its scroll offset to the gesture routing on the main thread (./gesture.tsx) on the phones only:\n // Lynxtron (desktop) drops the WHOLE sheet, no element of it is created, when the body's scroll-view carries\n // `main-thread:bindscroll` (the gallery smoke, Azure build 614). On the desktop a wheel scrolls the body.\n const phone = platform === 'android' || platform === 'ios';\n // A body that renders a window of a long list grows it when the scroll nears the end (options.onScrollToEnd).\n const endProps = o.onScrollToEnd\n ? { 'lower-threshold': o.scrollToEndThreshold ?? g9SheetScrollToEndThreshold, bindscrolltolower: o.onScrollToEnd }\n : {};\n const openMs = o.openAnimationDurationMs ?? settings.openAnimationDurationMs;\n const closeMs = o.closeAnimationDurationMs ?? settings.closeAnimationDurationMs;\n const corner =\n platform === 'android' && o.androidShouldRemoveExpandedCorners === true && layout.fullScreen\n ? 0\n : (o.cornerRadius ?? 12);\n const surface = o.backgroundColor ?? 'var(--g9-surface-container)';\n // Fields in the sheet hide their outline under a floated label with the sheet's colour, not the page's.\n const notch = g9FieldNotchStyle(resolveThemeColor(surface, palette));\n // Motion (MAUI G9SheetMotionModel, ./motion.ts): Material's settle on Android, the UIKit spring on iOS, or the timed\n // cubic; the travel is the share of the host the sheet covers where it rests (a fit sheet: its measured body).\n const detents = orderedDetents(o);\n const restIndex = layout.fit ? 0 : Math.max(0, detents.indexOf(resting as G9SheetDetent));\n const fitRatio =\n bodyHeight > 0 ? Math.min(1, (bodyHeight + topPadding + bottomPadding) / Math.max(1, props.hostHeight)) : 0.4;\n const openRatio = layout.fit ? fitRatio : (ratios[restIndex] ?? restingRatio);\n const motion = resolveSheetMotion({\n style: settings.motionStyle,\n platform,\n openRatio,\n snapRatio: ratios.length > 1 ? Math.max(...ratios) - Math.min(...ratios) : openRatio,\n openMs,\n closeMs,\n perSheetOpen: o.openAnimationDurationMs != null,\n perSheetClose: o.closeAnimationDurationMs != null,\n sizeScaled: settings.sizeScaledAnimationDuration,\n });\n // The body's content; inside a scroller by default, or filling a static body (`scrollBody: false`).\n const content = (\n <view\n className={`g9-sheet__content${o.scrollBody === false ? ' g9-sheet__content--fill' : ''}`}\n key={entry.version}\n bindlayoutchange={onBodyLayout}\n >\n {body}\n {!revealed ? placeholder : null}\n {covering ? (\n <view\n className=\"g9-sheet__cover\"\n style={{ height: `${clampFitHeight(placeholderHeight, props.hostHeight, true)}px` }}\n >\n {placeholder}\n </view>\n ) : null}\n </view>\n );\n return (\n <SheetRoot\n ref={rootRef}\n show={showing}\n snapPoints={layout.snapPoints}\n initialSnap={layout.initialSnap}\n screenHeight={props.hostHeight}\n dragDisabled={layout.dragDisabled}\n enableDragToClose={layout.enableDragToClose}\n dismissThreshold={g9SheetDragCloseThreshold}\n // G9 routes every touch itself (./gesture.tsx: drag vs. body scroll, N-028); lynx-ui's content handlers stay off.\n handleOnly\n onShowChange={(open) => {\n if (!open) void stack.requestBack(entry.id, 'drag');\n }}\n onSnapChange={(index, value) => {\n const detent = layout.fit ? 'fit' : (detents[index] ?? 'large');\n setResting(detent);\n props.onRest?.(value);\n o.onStateChanged?.(detent, value);\n }}\n onOpen={() => stack.markOpened(entry.id)}\n onClose={() => stack.markClosed(entry.id)}\n >\n {/* The view is `position: fixed` without a size; lynx-ui places the sheet at its `top: 100%` and the backdrop at\n its 100 %. Unsized it is 0 × 0 (Lynxtron), so the sheet slid in above the screen: give it the viewport.\n event-through lets taps reach the page around a modal sheet's scrim-less parts; the scrim and the sheet take theirs.\n A non-modal sheet's view is also `pointer-events: none`: with event-through alone the Lynx view handed a tap\n on it to what lies under the whole Lynx view, so a NATIVE element of the page under the sheet (a map's own\n MotionEvents) never got it. (A native window `container` would do it too, but needs the overlay XElement.) */}\n <SheetView\n className={`g9-sheet__view${modal ? '' : ' g9-sheet__view--passthrough'}`}\n nativeProps={{ 'event-through': modal }}\n >\n {modal ? (\n <view\n event-through={false}\n // Never flattened: a flattened view is painted on the Lynx root canvas, which a native SurfaceView (a map)\n // covers — the dim vanished over AgriPad's map while the sheet itself, a native view, still showed.\n flatten={false}\n className={`g9-sheet__scrim${props.isTop && !closing ? '' : ' g9-sheet__scrim--covered'}`}\n style={{\n backgroundColor: scrimColor(entry, settings, opacity),\n transition:\n platform === 'ios' && o.animateOverlayToColorOnIos === false\n ? 'none'\n : `background-color ${closing ? closeMs : openMs}ms`,\n }}\n bindtap={() => {\n if (layout.closeOnOverlayTap) void stack.requestBack(entry.id, 'overlayTap');\n }}\n />\n ) : null}\n {/* SheetContent's own view is lynx-ui's: a worklet writes its transform every motion frame, so its style is\n set once and never changes (a later inline-style write replaces the worklet's transform). Everything that\n changes (recede, paddings, colour) lives on G9's frame and surface inside it. */}\n <SheetContent\n className={`g9-sheet g9-sheet--${entry.status}${layout.fit ? ' g9-sheet--fit' : ''}`}\n style={platformSheetConstraints(o)}\n innerStyle={sheetInnerStyle}\n {...motion}\n >\n <G9SheetGestureFrame\n refs={gesture}\n canDrag={!layout.dragDisabled}\n bodyDrags={o.scrollingExpandsSheet !== false}\n className=\"g9-sheet__frame\"\n style={{ ...recede, transition: g9SheetRecedeTransition() }}\n >\n <view\n className=\"g9-sheet__surface\"\n {...g9IdProps(o.automationId)}\n style={{\n backgroundColor: surface,\n borderTopLeftRadius: `${corner}px`,\n borderTopRightRadius: `${corner}px`,\n paddingTop: `${topPadding}px`,\n paddingBottom: `${bottomPadding}px`,\n ...notch,\n }}\n >\n <SheetContext.Provider value={contextValue}>\n <view className=\"g9-sheet__chrome-top\" bindlayoutchange={onChromeTopLayout}>\n {layout.showHandle ||\n (layout.fullScreen &&\n o.showToolbar &&\n o.showFullScreenDragHandle !== false &&\n !layout.dragDisabled) ? (\n <view className=\"g9-sheet__grabber-area\">\n <view className=\"g9-sheet__grabber\" />\n </view>\n ) : null}\n <G9SheetHeader options={o} onBack={() => void stack.requestBack(entry.id, 'toolbarButton')} />\n {o.showToolbar && o.useStandardBodyTopGap !== false ? (\n // MAUI UseStandardBodyTopGap: G9LayoutMetrics.SheetHeaderVerticalGap, which an app scales (AgriPad ×\n // 1.3 = 13) — read from the app's --g9-layout-* variable; g9SheetHeaderMetrics.bodyTopGap is the default.\n <view className=\"g9-sheet__body-gap\" />\n ) : null}\n </view>\n {o.scrollBody === false ? (\n <view\n className={`g9-sheet__body g9-sheet__body--static${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}\n style={{ padding: `${o.padding ?? 0}px` }}\n >\n {content}\n </view>\n ) : indicator.current ? (\n // The thumb's frame: the scroller and the thumb over its inline end (only with scrollIndicator).\n <view className={`g9-sheet__body-frame${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}>\n <scroll-view\n className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}\n scroll-orientation=\"vertical\"\n main-thread:ref={gesture.body}\n main-thread:bindscroll={phone ? bodyGesture.onScrollMT : undefined}\n main-thread:bindtouchstart={bodyGesture.onTouchStartMT}\n scroll-event-throttle={16}\n {...endProps}\n bindscroll={(e: { detail?: { scrollTop?: number } }) =>\n indicator.current?.setTop(e.detail?.scrollTop ?? 0)\n }\n bindlayoutchange={(e: { detail?: { height?: number } }) =>\n indicator.current?.setViewport(e.detail?.height ?? 0)\n }\n style={{\n padding: `${o.padding ?? 0}px`,\n ...(maxBody !== null ? { maxHeight: `${maxBody}px` } : {}),\n }}\n >\n {content}\n </scroll-view>\n <G9SheetScrollIndicator model={indicator.current} />\n </view>\n ) : (\n <scroll-view\n className={`g9-sheet__body${layout.fillBody ? ' g9-sheet__body--fill' : ''}`}\n scroll-orientation=\"vertical\"\n main-thread:ref={gesture.body}\n main-thread:bindscroll={phone ? bodyGesture.onScrollMT : undefined}\n main-thread:bindtouchstart={bodyGesture.onTouchStartMT}\n {...endProps}\n style={{\n padding: `${o.padding ?? 0}px`,\n ...(maxBody !== null ? { maxHeight: `${maxBody}px` } : {}),\n }}\n >\n {content}\n </scroll-view>\n )}\n <view className=\"g9-sheet__footer-slot\" bindlayoutchange={onFooterLayout}>\n <G9SheetFooter options={o} />\n </view>\n </SheetContext.Provider>\n </view>\n {/* Below the surface, so a drag past the top detent (rubber band) never shows the page under it. */}\n <view className=\"g9-sheet__skirt\" style={{ backgroundColor: surface }} />\n </G9SheetGestureFrame>\n </SheetContent>\n </SheetView>\n </SheetRoot>\n );\n}\n"],"names":["SheetContext","createContext","useG9SheetContext","useContext","scrimColor","entry","settings","opacity","explicit","parsed","tryParseColor","formatColor","withAlpha","sheetInnerStyle","g9SheetRecedeTransition","g9Ms","orderedDetents","o","requested","d","initialDetent","fit","_o_currentState","_ordered_","ordered","current","G9SheetFrame","props","_ref","_o_loadingSkeletonRowCount","_ratios_layout_initialSnap","_props_bottomInset","_o_scrollToEndThreshold","_o_openAnimationDurationMs","_o_closeAnimationDurationMs","_o_cornerRadius","_o_backgroundColor","_ratios_restIndex","_o_padding","_o_padding1","_o_padding2","_props_memo","stack","palette","useG9Theme","gesture","useSheetGestureRefs","bodyGesture","useSheetBodyGesture","layout","resolveSheetLayout","showing","closing","handle","controller","useRef","createAbortController","useEffect","_controller_current","factory","deferred","revealed","setRevealed","useState","covering","setCovering","timer","coverTimer","stopTimer","_o_loadDelayMs","_o_loadDelayMs1","delay","Math","startTimer","memoKey","placeholderHeight","undefined","g9SheetFitLoadingMinHeight","bodyHeight","setBodyHeight","footerHeight","setFooterHeight","chromeTopHeight","setChromeTopHeight","onChromeTopLayout","e","_e_detail","onFooterLayout","indicator","G9SheetScrollModel","onBodyLayout","_indicator_current","h","placeholder","view","G9SheetSkeleton","G9ActivityIndicator","body","ratios","p","Number","restingRatio","shown","contentRatio","sheetOverlayOpacity","modal","recede","parentRecedeOffset","resting","setResting","rootRef","lastFitBody","_rootRef_current","fitHeight","topPadding","sheetSurfaceTopPadding","bottomPadding","sheetSurfaceBottomPadding","maxBody","g9SheetFitMinHeight","contextValue","platform","currentPlatform","phone","endProps","g9SheetScrollToEndThreshold","openMs","closeMs","corner","surface","notch","g9FieldNotchStyle","resolveThemeColor","detents","restIndex","fitRatio","openRatio","motion","resolveSheetMotion","content","clampFitHeight","SheetRoot","g9SheetDragCloseThreshold","open","index","value","_detents_index","detent","SheetView","SheetContent","platformSheetConstraints","G9SheetGestureFrame","g9IdProps","G9SheetHeader","scroll-view","G9SheetScrollIndicator","G9SheetFooter"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/sheet/header.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,gBAAgB,CAAC;AAM1D,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,WAAW,CAAC;AAEpE,mEAAmE;AACnE,eAAO,MAAM,oBAAoB;;;;;;;;;EAS/B,CAAC;
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/sheet/header.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,gBAAgB,CAAC;AAM1D,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,WAAW,CAAC;AAEpE,mEAAmE;AACnE,eAAO,MAAM,oBAAoB;;;;;;;;;EAS/B,CAAC;AAmCH,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAgIlE;AAED,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED,mGAAmG;AACnG,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAK9E;AAED,mJAAmJ;AACnJ,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAUlE;AAED,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3C,iBAAiB;IACjB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,CAkBxE"}
|
package/dist/sheet/header.jsx
CHANGED
|
@@ -33,7 +33,9 @@ function ToolbarItemButton(props) {
|
|
|
33
33
|
icon: item.icon
|
|
34
34
|
} : item.text ? {
|
|
35
35
|
buttonText: item.text
|
|
36
|
-
} : {}} isBusy={busy && true === item.showBusyIndicator} isActive={true === item.isActive} showActiveBadge={true === item.showActiveBadge
|
|
36
|
+
} : {}} isBusy={busy && true === item.showBusyIndicator} isActive={true === item.isActive} showActiveBadge={true === item.showActiveBadge && !item.badgeText} {...item.badgeText ? {
|
|
37
|
+
badgeText: item.badgeText
|
|
38
|
+
} : {}} animatePress={false !== item.animatePress} {...item.iconSize ? {
|
|
37
39
|
iconSize: item.iconSize
|
|
38
40
|
} : {}} {...item.accessibilityLabel || item.text ? {
|
|
39
41
|
accessibilityLabel: null != (_item_accessibilityLabel = item.accessibilityLabel) ? _item_accessibilityLabel : item.text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet/header.jsx","sources":["../../src/sheet/header.tsx"],"sourcesContent":["import { formatColor, G9StringKey, withAlpha } from '@g9tm/lynxcontrols-foundation';\nimport { type ReactNode, useState } from '@lynx-js/react';\nimport { g9ChildId, g9IdProps, g9RowStyle, g9SafeId } from '../base/control';\nimport { useG9Press } from '../base/press';\nimport { G9HeaderActionButton } from '../button/header-action-button';\nimport { G9IconSlot } from '../icon/slot';\nimport { useG9Direction, useG9Settings, useG9Strings, useG9Theme } from '../provider/hooks';\nimport type { G9SheetOptions, G9SheetToolbarItem } from './options';\n\n/** Header metrics (MAUI `G9LayoutMetrics` sheet header values). */\nexport const g9SheetHeaderMetrics = Object.freeze({\n minHeight: 64,\n verticalGap: 10,\n bodyTopGap: 10,\n backButton: 30,\n backGlyph: 24,\n backHitSlop: 7,\n titleSize: 16.2,\n footerMaxButtonsPerRow: 3,\n});\n\nfunction ToolbarItemButton(props: { readonly item: G9SheetToolbarItem; readonly id: string | undefined }): ReactNode {\n const { item } = props;\n const [running, setRunning] = useState(false);\n const busy = item.isBusy === true || running;\n const onPress = () => {\n if (busy && item.disableWhileBusy !== false) return;\n const result = item.onPress?.();\n if (result && typeof (result as PromiseLike<unknown>).then === 'function') {\n setRunning(true);\n (result as PromiseLike<unknown>).then(\n () => setRunning(false),\n () => setRunning(false),\n );\n }\n };\n return (\n <G9HeaderActionButton\n // MAUI ApplyVisualState: an icon wins and the text is not shown (it stays the accessibility label).\n {...(item.icon !== undefined ? { icon: item.icon } : item.text ? { buttonText: item.text } : {})}\n isBusy={busy && item.showBusyIndicator === true}\n isActive={item.isActive === true}\n showActiveBadge={item.showActiveBadge === true}\n animatePress={item.animatePress !== false}\n {...(item.iconSize ? { iconSize: item.iconSize } : {})}\n {...(item.accessibilityLabel || item.text ? { accessibilityLabel: item.accessibilityLabel ?? item.text } : {})}\n {...g9IdProps(props.id)}\n disabled={busy && item.disableWhileBusy !== false && item.showBusyIndicator !== true}\n onPress={onPress}\n />\n );\n}\n\n/** Props of {@link G9SheetHeader}. */\nexport interface G9SheetHeaderProps {\n readonly options: G9SheetOptions;\n /** The leading button (MAUI back request with source `toolbarButton`). */\n readonly onBack: () => void;\n}\n\n/**\n * The three-slot sheet header (MAUI header template): leading back/close button (RTL-aware arrow, or × with\n * `useCloseIcon`), the title (centre or near the back button), the trailing toolbar items; slot overrides\n * `headerView` > `headerLeadingAndTitleView` > `headerTitleAndTrailingView` > per-slot views > defaults. A hairline\n * closes the band. Rendered only with `showToolbar`.\n */\nexport function G9SheetHeader(props: G9SheetHeaderProps): ReactNode {\n const o = props.options;\n const direction = useG9Direction();\n const settings = useG9Settings();\n const glyphs = settings.glyphs;\n const palette = useG9Theme().palette;\n const strings = useG9Strings();\n const back = useG9Press(props.onBack, { source: 'G9SheetHeader' });\n if (o.showToolbar !== true) return null;\n if (o.headerView !== undefined && o.headerView !== null) {\n return <view className=\"g9-sheet-header g9-sheet-header--custom\">{o.headerView}</view>;\n }\n const m = g9SheetHeaderMetrics;\n const leading =\n o.headerLeadingView ??\n (o.showCloseButton ? (\n <view\n className=\"g9-sheet-header__back\"\n {...g9IdProps(g9ChildId(o.automationId, 'Back'))}\n // MAUI: the glyph sits at the reading START of its 30 dp box (HorizontalOptions.Start), not centred.\n style={{ width: `${m.backButton}px`, height: `${m.backButton}px`, ...g9RowStyle(direction) }}\n accessibility-element={true}\n accessibility-traits=\"button\"\n accessibility-label={o.useCloseIcon ? strings.get(G9StringKey.Close) : strings.get(G9StringKey.Back)}\n hit-slop={{\n top: `${m.backHitSlop}px`,\n left: `${m.backHitSlop}px`,\n right: `${m.backHitSlop}px`,\n bottom: `${m.backHitSlop}px`,\n }}\n bindtap={back}\n >\n <G9IconSlot\n icon={o.useCloseIcon ? glyphs.clear : direction === 'rtl' ? glyphs.arrowForward : glyphs.arrowBack}\n size={m.backGlyph}\n color=\"var(--g9-secondary)\"\n />\n </view>\n ) : null);\n const title =\n o.headerTitleView ??\n (o.title ? (\n <text className=\"g9-sheet-header__title\" text-maxline=\"1\" style={{ fontSize: `${m.titleSize}px` }}>\n {o.title}\n </text>\n ) : null);\n const items = o.toolbarItems ?? o.toolbarItemsFactory?.() ?? [];\n const trailing =\n o.headerTrailingView ??\n (items.length > 0 ? (\n <view className=\"g9-sheet-header__items\" style={g9RowStyle(direction)}>\n {items.map((item, i) => (\n <ToolbarItemButton\n key={item.key ?? String(i)}\n item={item}\n id={\n item.automationId\n ? g9SafeId(item.automationId)\n : g9ChildId(o.automationId, `ToolbarItem_${item.key ?? i}`)\n }\n />\n ))}\n </view>\n ) : null);\n const spanned = o.headerLeadingAndTitleView != null || o.headerTitleAndTrailingView != null;\n const center = (o.headerTitlePlacement ?? 'center') === 'center' && o.reserveEmptyHeaderSlots !== false && !spanned;\n let slots: ReactNode;\n if (o.headerLeadingAndTitleView != null) {\n slots = [\n <view key=\"lt\" className=\"g9-sheet-header__grow\" style={g9RowStyle(direction)}>\n {o.headerLeadingAndTitleView}\n </view>,\n <view key=\"t\" className=\"g9-sheet-header__end\">\n {trailing}\n </view>,\n ];\n } else if (o.headerTitleAndTrailingView != null) {\n slots = [\n <view key=\"l\" className=\"g9-sheet-header__start\">\n {leading}\n </view>,\n <view key=\"tt\" className=\"g9-sheet-header__grow\" style={g9RowStyle(direction)}>\n {o.headerTitleAndTrailingView}\n </view>,\n ];\n } else if (center) {\n slots = [\n // The side slots follow the reading direction too: in RTL the back button sits at the right EDGE, the trailing\n // items at the left edge (MAUI) — not against the centred title.\n <view key=\"l\" className=\"g9-sheet-header__side g9-sheet-header__start\" style={g9RowStyle(direction)}>\n {leading}\n </view>,\n <view key=\"t\" className=\"g9-sheet-header__title-slot\">\n {title}\n </view>,\n <view key=\"r\" className=\"g9-sheet-header__side g9-sheet-header__end\" style={g9RowStyle(direction)}>\n {trailing}\n </view>,\n ];\n } else {\n slots = [\n <view key=\"l\" className=\"g9-sheet-header__start\">\n {leading}\n </view>,\n // The grow slot follows the reading direction: in RTL a near-back title hugs the back button (right edge).\n <view key=\"t\" className=\"g9-sheet-header__grow g9-sheet-header__title-near\" style={g9RowStyle(direction)}>\n {title}\n </view>,\n <view key=\"r\" className=\"g9-sheet-header__end\">\n {trailing}\n </view>,\n ];\n }\n return (\n <view\n className={`g9-sheet-header g9-dir-${direction}`}\n style={{\n // The 64 dp band, then MAUI's 1 dp divider UNDER it (OutlineVariant @ 35 %), not inside it.\n minHeight: `${m.minHeight + 1}px`,\n paddingLeft: `${settings.sheets.headerEdgeSpacing}px`,\n paddingRight: `${settings.sheets.headerEdgeSpacing}px`,\n borderBottomColor: formatColor(withAlpha(palette.OutlineVariant, 0.35)),\n ...g9RowStyle(direction),\n }}\n >\n {slots}\n </view>\n );\n}\n\n/** Props of {@link G9SheetFooter}. */\nexport interface G9SheetFooterProps {\n readonly options: G9SheetOptions;\n}\n\n/** Rows of footer buttons: equal-width columns, wrapping every `perRow` (MAUI footer template). */\nexport function footerRows<T>(buttons: ReadonlyArray<T>, perRow: number): T[][] {\n const n = Math.max(1, Math.floor(perRow));\n const rows: T[][] = [];\n for (let i = 0; i < buttons.length; i += n) rows.push(buttons.slice(i, i + n));\n return rows;\n}\n\n/** The sheet footer: `footerBand`, else `footerView` in the band, else `footerButtons` in equal columns (3 per row by default), with a divider. */\nexport function G9SheetFooter(props: G9SheetFooterProps): ReactNode {\n const o = props.options;\n if (o.footerBand != null) return o.footerBand;\n if (o.footerView != null) return <view className=\"g9-sheet-footer\">{o.footerView}</view>;\n return (\n <G9SheetFooterBar\n buttons={o.footerButtons ?? []}\n {...(o.footerMaxButtonsPerRow !== undefined ? { maxButtonsPerRow: o.footerMaxButtonsPerRow } : {})}\n />\n );\n}\n\n/** Props of {@link G9SheetFooterBar}. */\nexport interface G9SheetFooterBarProps {\n readonly buttons: ReadonlyArray<ReactNode>;\n /** Default 3. */\n readonly maxButtonsPerRow?: number;\n}\n\n/**\n * The footer band (divider, padding, equal-width button columns); nothing at all without buttons (MAUI\n * `SheetFooterBar` hides with no visible button). Render it from a `footerBand` whose buttons come and go.\n */\nexport function G9SheetFooterBar(props: G9SheetFooterBarProps): ReactNode {\n const direction = useG9Direction();\n if (props.buttons.length === 0) return null;\n return (\n <view className=\"g9-sheet-footer\">\n {footerRows(props.buttons, props.maxButtonsPerRow ?? g9SheetHeaderMetrics.footerMaxButtonsPerRow).map(\n (row, r) => (\n <view key={r} className=\"g9-sheet-footer__row\" style={g9RowStyle(direction)}>\n {row.map((button, i) => (\n <view key={i} className=\"g9-sheet-footer__cell\">\n {button}\n </view>\n ))}\n </view>\n ),\n )}\n </view>\n );\n}\n"],"names":["g9SheetHeaderMetrics","Object","ToolbarItemButton","props","_item_accessibilityLabel","item","running","setRunning","useState","busy","onPress","result","G9HeaderActionButton","undefined","g9IdProps","G9SheetHeader","_o_headerLeadingView","_o_headerTitleView","_ref","_o_headerTrailingView","_o_headerTitlePlacement","o","direction","useG9Direction","settings","useG9Settings","glyphs","palette","useG9Theme","strings","useG9Strings","back","useG9Press","view","m","leading","g9ChildId","g9RowStyle","G9StringKey","G9IconSlot","title","text","items","trailing","i","_item_key","_item_key1","String","g9SafeId","spanned","center","slots","formatColor","withAlpha","footerRows","buttons","perRow","n","Math","rows","G9SheetFooter","_o_footerButtons","G9SheetFooterBar","_props_maxButtonsPerRow","row","r","button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sheet/header.jsx","sources":["../../src/sheet/header.tsx"],"sourcesContent":["import { formatColor, G9StringKey, withAlpha } from '@g9tm/lynxcontrols-foundation';\nimport { type ReactNode, useState } from '@lynx-js/react';\nimport { g9ChildId, g9IdProps, g9RowStyle, g9SafeId } from '../base/control';\nimport { useG9Press } from '../base/press';\nimport { G9HeaderActionButton } from '../button/header-action-button';\nimport { G9IconSlot } from '../icon/slot';\nimport { useG9Direction, useG9Settings, useG9Strings, useG9Theme } from '../provider/hooks';\nimport type { G9SheetOptions, G9SheetToolbarItem } from './options';\n\n/** Header metrics (MAUI `G9LayoutMetrics` sheet header values). */\nexport const g9SheetHeaderMetrics = Object.freeze({\n minHeight: 64,\n verticalGap: 10,\n bodyTopGap: 10,\n backButton: 30,\n backGlyph: 24,\n backHitSlop: 7,\n titleSize: 16.2,\n footerMaxButtonsPerRow: 3,\n});\n\nfunction ToolbarItemButton(props: { readonly item: G9SheetToolbarItem; readonly id: string | undefined }): ReactNode {\n const { item } = props;\n const [running, setRunning] = useState(false);\n const busy = item.isBusy === true || running;\n const onPress = () => {\n if (busy && item.disableWhileBusy !== false) return;\n const result = item.onPress?.();\n if (result && typeof (result as PromiseLike<unknown>).then === 'function') {\n setRunning(true);\n (result as PromiseLike<unknown>).then(\n () => setRunning(false),\n () => setRunning(false),\n );\n }\n };\n return (\n <G9HeaderActionButton\n // MAUI ApplyVisualState: an icon wins and the text is not shown (it stays the accessibility label).\n {...(item.icon !== undefined ? { icon: item.icon } : item.text ? { buttonText: item.text } : {})}\n isBusy={busy && item.showBusyIndicator === true}\n isActive={item.isActive === true}\n showActiveBadge={item.showActiveBadge === true && !item.badgeText}\n {...(item.badgeText ? { badgeText: item.badgeText } : {})}\n animatePress={item.animatePress !== false}\n {...(item.iconSize ? { iconSize: item.iconSize } : {})}\n {...(item.accessibilityLabel || item.text ? { accessibilityLabel: item.accessibilityLabel ?? item.text } : {})}\n {...g9IdProps(props.id)}\n disabled={busy && item.disableWhileBusy !== false && item.showBusyIndicator !== true}\n onPress={onPress}\n />\n );\n}\n\n/** Props of {@link G9SheetHeader}. */\nexport interface G9SheetHeaderProps {\n readonly options: G9SheetOptions;\n /** The leading button (MAUI back request with source `toolbarButton`). */\n readonly onBack: () => void;\n}\n\n/**\n * The three-slot sheet header (MAUI header template): leading back/close button (RTL-aware arrow, or × with\n * `useCloseIcon`), the title (centre or near the back button), the trailing toolbar items; slot overrides\n * `headerView` > `headerLeadingAndTitleView` > `headerTitleAndTrailingView` > per-slot views > defaults. A hairline\n * closes the band. Rendered only with `showToolbar`.\n */\nexport function G9SheetHeader(props: G9SheetHeaderProps): ReactNode {\n const o = props.options;\n const direction = useG9Direction();\n const settings = useG9Settings();\n const glyphs = settings.glyphs;\n const palette = useG9Theme().palette;\n const strings = useG9Strings();\n const back = useG9Press(props.onBack, { source: 'G9SheetHeader' });\n if (o.showToolbar !== true) return null;\n if (o.headerView !== undefined && o.headerView !== null) {\n return <view className=\"g9-sheet-header g9-sheet-header--custom\">{o.headerView}</view>;\n }\n const m = g9SheetHeaderMetrics;\n const leading =\n o.headerLeadingView ??\n (o.showCloseButton ? (\n <view\n className=\"g9-sheet-header__back\"\n {...g9IdProps(g9ChildId(o.automationId, 'Back'))}\n // MAUI: the glyph sits at the reading START of its 30 dp box (HorizontalOptions.Start), not centred.\n style={{ width: `${m.backButton}px`, height: `${m.backButton}px`, ...g9RowStyle(direction) }}\n accessibility-element={true}\n accessibility-traits=\"button\"\n accessibility-label={o.useCloseIcon ? strings.get(G9StringKey.Close) : strings.get(G9StringKey.Back)}\n hit-slop={{\n top: `${m.backHitSlop}px`,\n left: `${m.backHitSlop}px`,\n right: `${m.backHitSlop}px`,\n bottom: `${m.backHitSlop}px`,\n }}\n bindtap={back}\n >\n <G9IconSlot\n icon={o.useCloseIcon ? glyphs.clear : direction === 'rtl' ? glyphs.arrowForward : glyphs.arrowBack}\n size={m.backGlyph}\n color=\"var(--g9-secondary)\"\n />\n </view>\n ) : null);\n const title =\n o.headerTitleView ??\n (o.title ? (\n <text className=\"g9-sheet-header__title\" text-maxline=\"1\" style={{ fontSize: `${m.titleSize}px` }}>\n {o.title}\n </text>\n ) : null);\n const items = o.toolbarItems ?? o.toolbarItemsFactory?.() ?? [];\n const trailing =\n o.headerTrailingView ??\n (items.length > 0 ? (\n <view className=\"g9-sheet-header__items\" style={g9RowStyle(direction)}>\n {items.map((item, i) => (\n <ToolbarItemButton\n key={item.key ?? String(i)}\n item={item}\n id={\n item.automationId\n ? g9SafeId(item.automationId)\n : g9ChildId(o.automationId, `ToolbarItem_${item.key ?? i}`)\n }\n />\n ))}\n </view>\n ) : null);\n const spanned = o.headerLeadingAndTitleView != null || o.headerTitleAndTrailingView != null;\n const center = (o.headerTitlePlacement ?? 'center') === 'center' && o.reserveEmptyHeaderSlots !== false && !spanned;\n let slots: ReactNode;\n if (o.headerLeadingAndTitleView != null) {\n slots = [\n <view key=\"lt\" className=\"g9-sheet-header__grow\" style={g9RowStyle(direction)}>\n {o.headerLeadingAndTitleView}\n </view>,\n <view key=\"t\" className=\"g9-sheet-header__end\">\n {trailing}\n </view>,\n ];\n } else if (o.headerTitleAndTrailingView != null) {\n slots = [\n <view key=\"l\" className=\"g9-sheet-header__start\">\n {leading}\n </view>,\n <view key=\"tt\" className=\"g9-sheet-header__grow\" style={g9RowStyle(direction)}>\n {o.headerTitleAndTrailingView}\n </view>,\n ];\n } else if (center) {\n slots = [\n // The side slots follow the reading direction too: in RTL the back button sits at the right EDGE, the trailing\n // items at the left edge (MAUI) — not against the centred title.\n <view key=\"l\" className=\"g9-sheet-header__side g9-sheet-header__start\" style={g9RowStyle(direction)}>\n {leading}\n </view>,\n <view key=\"t\" className=\"g9-sheet-header__title-slot\">\n {title}\n </view>,\n <view key=\"r\" className=\"g9-sheet-header__side g9-sheet-header__end\" style={g9RowStyle(direction)}>\n {trailing}\n </view>,\n ];\n } else {\n slots = [\n <view key=\"l\" className=\"g9-sheet-header__start\">\n {leading}\n </view>,\n // The grow slot follows the reading direction: in RTL a near-back title hugs the back button (right edge).\n <view key=\"t\" className=\"g9-sheet-header__grow g9-sheet-header__title-near\" style={g9RowStyle(direction)}>\n {title}\n </view>,\n <view key=\"r\" className=\"g9-sheet-header__end\">\n {trailing}\n </view>,\n ];\n }\n return (\n <view\n className={`g9-sheet-header g9-dir-${direction}`}\n style={{\n // The 64 dp band, then MAUI's 1 dp divider UNDER it (OutlineVariant @ 35 %), not inside it.\n minHeight: `${m.minHeight + 1}px`,\n paddingLeft: `${settings.sheets.headerEdgeSpacing}px`,\n paddingRight: `${settings.sheets.headerEdgeSpacing}px`,\n borderBottomColor: formatColor(withAlpha(palette.OutlineVariant, 0.35)),\n ...g9RowStyle(direction),\n }}\n >\n {slots}\n </view>\n );\n}\n\n/** Props of {@link G9SheetFooter}. */\nexport interface G9SheetFooterProps {\n readonly options: G9SheetOptions;\n}\n\n/** Rows of footer buttons: equal-width columns, wrapping every `perRow` (MAUI footer template). */\nexport function footerRows<T>(buttons: ReadonlyArray<T>, perRow: number): T[][] {\n const n = Math.max(1, Math.floor(perRow));\n const rows: T[][] = [];\n for (let i = 0; i < buttons.length; i += n) rows.push(buttons.slice(i, i + n));\n return rows;\n}\n\n/** The sheet footer: `footerBand`, else `footerView` in the band, else `footerButtons` in equal columns (3 per row by default), with a divider. */\nexport function G9SheetFooter(props: G9SheetFooterProps): ReactNode {\n const o = props.options;\n if (o.footerBand != null) return o.footerBand;\n if (o.footerView != null) return <view className=\"g9-sheet-footer\">{o.footerView}</view>;\n return (\n <G9SheetFooterBar\n buttons={o.footerButtons ?? []}\n {...(o.footerMaxButtonsPerRow !== undefined ? { maxButtonsPerRow: o.footerMaxButtonsPerRow } : {})}\n />\n );\n}\n\n/** Props of {@link G9SheetFooterBar}. */\nexport interface G9SheetFooterBarProps {\n readonly buttons: ReadonlyArray<ReactNode>;\n /** Default 3. */\n readonly maxButtonsPerRow?: number;\n}\n\n/**\n * The footer band (divider, padding, equal-width button columns); nothing at all without buttons (MAUI\n * `SheetFooterBar` hides with no visible button). Render it from a `footerBand` whose buttons come and go.\n */\nexport function G9SheetFooterBar(props: G9SheetFooterBarProps): ReactNode {\n const direction = useG9Direction();\n if (props.buttons.length === 0) return null;\n return (\n <view className=\"g9-sheet-footer\">\n {footerRows(props.buttons, props.maxButtonsPerRow ?? g9SheetHeaderMetrics.footerMaxButtonsPerRow).map(\n (row, r) => (\n <view key={r} className=\"g9-sheet-footer__row\" style={g9RowStyle(direction)}>\n {row.map((button, i) => (\n <view key={i} className=\"g9-sheet-footer__cell\">\n {button}\n </view>\n ))}\n </view>\n ),\n )}\n </view>\n );\n}\n"],"names":["g9SheetHeaderMetrics","Object","ToolbarItemButton","props","_item_accessibilityLabel","item","running","setRunning","useState","busy","onPress","result","G9HeaderActionButton","undefined","g9IdProps","G9SheetHeader","_o_headerLeadingView","_o_headerTitleView","_ref","_o_headerTrailingView","_o_headerTitlePlacement","o","direction","useG9Direction","settings","useG9Settings","glyphs","palette","useG9Theme","strings","useG9Strings","back","useG9Press","view","m","leading","g9ChildId","g9RowStyle","G9StringKey","G9IconSlot","title","text","items","trailing","i","_item_key","_item_key1","String","g9SafeId","spanned","center","slots","formatColor","withAlpha","footerRows","buttons","perRow","n","Math","rows","G9SheetFooter","_o_footerButtons","G9SheetFooterBar","_props_maxButtonsPerRow","row","r","button"],"mappings":"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"}
|
package/dist/sheet/index.d.ts
CHANGED
|
@@ -8,6 +8,6 @@ export { type G9ProcessingBuild, type G9ProcessingErrorHandler, G9ProcessingShee
|
|
|
8
8
|
export { G9SheetScrollIndicator, G9SheetScrollModel, SHEET_THUMB_MIN, sheetThumb } from './scroll-indicator.js';
|
|
9
9
|
export { type G9SheetService, g9Sheets, sheetServiceOf, useG9Sheets } from './service.js';
|
|
10
10
|
export { G9Sheet, type G9SheetProps } from './sheet.js';
|
|
11
|
-
export { backdropCardTransform, clampFitHeight, currentPlatform, type G9SheetLayout, g9SheetDefaultPeekHeight, g9SheetDragCloseThreshold, g9SheetFitLoadingMinHeight, g9SheetFitMinHeight, g9SheetTopSafeAreaBaseGap, parentRecedeOffset, platformSheetConstraints, resolveSheetLayout, scaledSheetDuration, sheetOverlayOpacity, sheetSurfaceBottomPadding, sheetSurfaceTopPadding, sheetTopPadding, } from './sizing.js';
|
|
11
|
+
export { backdropCardTransform, clampFitHeight, currentPlatform, type G9SheetLayout, g9SheetDefaultPeekHeight, g9SheetDragCloseThreshold, g9SheetFitLoadingMinHeight, g9SheetFitMinHeight, g9SheetScrollToEndThreshold, g9SheetTopSafeAreaBaseGap, parentRecedeOffset, platformSheetConstraints, resolveSheetLayout, scaledSheetDuration, sheetOverlayOpacity, sheetSurfaceBottomPadding, sheetSurfaceTopPadding, sheetTopPadding, } from './sizing.js';
|
|
12
12
|
export { type G9SheetCloseReason, type G9SheetContent, type G9SheetEntry, type G9SheetHandle, type G9SheetResult, G9SheetStack, type G9SheetStackConfig, type G9SheetStatus, g9SheetCloseGraceMs, g9SheetShowThrottleMs, } from './stack.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sheet/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5G,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,kBAAkB,EACvB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,KAAK,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,qCAAqC,EACrC,2BAA2B,EAC3B,mCAAmC,EACnC,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,KAAK,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,KAAK,aAAa,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sheet/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5G,OAAO,EACL,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,kBAAkB,EACvB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,KAAK,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,qCAAqC,EACrC,2BAA2B,EAC3B,mCAAmC,EACnC,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,KAAK,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,KAAK,aAAa,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
|
package/dist/sheet/index.jsx
CHANGED
|
@@ -8,5 +8,5 @@ export { G9ProcessingSheetContent } from "./processing.jsx";
|
|
|
8
8
|
export { G9SheetScrollIndicator, G9SheetScrollModel, SHEET_THUMB_MIN, sheetThumb } from "./scroll-indicator.jsx";
|
|
9
9
|
export { g9Sheets, sheetServiceOf, useG9Sheets } from "./service.jsx";
|
|
10
10
|
export { G9Sheet } from "./sheet.jsx";
|
|
11
|
-
export { backdropCardTransform, clampFitHeight, currentPlatform, g9SheetDefaultPeekHeight, g9SheetDragCloseThreshold, g9SheetFitLoadingMinHeight, g9SheetFitMinHeight, g9SheetTopSafeAreaBaseGap, parentRecedeOffset, platformSheetConstraints, resolveSheetLayout, scaledSheetDuration, sheetOverlayOpacity, sheetSurfaceBottomPadding, sheetSurfaceTopPadding, sheetTopPadding } from "./sizing.jsx";
|
|
11
|
+
export { backdropCardTransform, clampFitHeight, currentPlatform, g9SheetDefaultPeekHeight, g9SheetDragCloseThreshold, g9SheetFitLoadingMinHeight, g9SheetFitMinHeight, g9SheetScrollToEndThreshold, g9SheetTopSafeAreaBaseGap, parentRecedeOffset, platformSheetConstraints, resolveSheetLayout, scaledSheetDuration, sheetOverlayOpacity, sheetSurfaceBottomPadding, sheetSurfaceTopPadding, sheetTopPadding } from "./sizing.jsx";
|
|
12
12
|
export { G9SheetStack, g9SheetCloseGraceMs, g9SheetShowThrottleMs } from "./stack.jsx";
|
package/dist/sheet/options.d.ts
CHANGED
|
@@ -27,6 +27,11 @@ export interface G9SheetToolbarItem {
|
|
|
27
27
|
readonly isActive?: boolean;
|
|
28
28
|
/** Dot while active. Default false. */
|
|
29
29
|
readonly showActiveBadge?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* A count on the action (MAUI 1.4.9 `BadgeText`: AgriPad's site filter shows its «۲» active filters): a small pill
|
|
32
|
+
* with this text, shown whatever `showActiveBadge` / `isActive` say. Null / empty: the plain dot (or nothing).
|
|
33
|
+
*/
|
|
34
|
+
readonly badgeText?: string | null;
|
|
30
35
|
/** Ignore presses while busy. Default true. */
|
|
31
36
|
readonly disableWhileBusy?: boolean;
|
|
32
37
|
/** Default true. */
|
|
@@ -102,6 +107,14 @@ export interface G9SheetOptions extends G9SheetLifecycle {
|
|
|
102
107
|
* moving with it (a menu of full-width cards whose last card is cut off says «more below»). Lynx-only, additive.
|
|
103
108
|
*/
|
|
104
109
|
readonly scrollIndicator?: 'system' | 'always';
|
|
110
|
+
/**
|
|
111
|
+
* Called when the scrolling body comes within {@link scrollToEndThreshold} of its end — a body that renders a window
|
|
112
|
+
* of a long list grows it here (the selection sheet's next page, MAUI 1.4.8 `OnItemsScrolled`). Not called for a
|
|
113
|
+
* static body (`scrollBody: false`). Lynx-only, additive.
|
|
114
|
+
*/
|
|
115
|
+
readonly onScrollToEnd?: () => void;
|
|
116
|
+
/** Distance from the end (px) that counts as «at the end» for {@link onScrollToEnd}. Default 208 (four 52 px rows). */
|
|
117
|
+
readonly scrollToEndThreshold?: number;
|
|
105
118
|
/** Height memory key (needed for factory content). */
|
|
106
119
|
readonly heightMemoKey?: string | null;
|
|
107
120
|
/** Body padding. Default 0. */
|
|
@@ -232,6 +245,13 @@ export interface G9SheetSettings {
|
|
|
232
245
|
readonly sizeScaledAnimationDuration?: boolean;
|
|
233
246
|
/** Global switch of the page recede. Default true. */
|
|
234
247
|
readonly enableBackdropCardEffect?: boolean;
|
|
248
|
+
/**
|
|
249
|
+
* The sheets rise above the soft keyboard (MAUI KeyboardInsetScope; G9MAUIControls 1.4.11 rule «every input in a bottom
|
|
250
|
+
* sheet takes the keyboard shift»): while the keyboard is up the sheet layer ends at its top edge, so a fit sheet's field and
|
|
251
|
+
* footer stay visible and a tall sheet gives up height. Only what the host has not already resized is lifted — a host that
|
|
252
|
+
* pads its view by the IME inset (the gallery's `GalleryActivity`) shrinks the window itself. Default true.
|
|
253
|
+
*/
|
|
254
|
+
readonly avoidKeyboard?: boolean;
|
|
235
255
|
/** Colour behind the receded page. Default black. */
|
|
236
256
|
readonly backdropCardColor?: string;
|
|
237
257
|
/** Staged pipeline: a `replaceCurrentSheet` successor hands off once it is ready. Default true. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/sheet/options.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/sheet/options.ts"],"names":[],"mappings":"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"}
|
package/dist/sheet/options.jsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const clamp = (v, lo, hi)=>Math.min(hi, Math.max(lo, v));
|
|
2
2
|
const finite = (v, fallback)=>'number' == typeof v && Number.isFinite(v) ? v : fallback;
|
|
3
3
|
function resolveSheetSettings(settings) {
|
|
4
|
-
var _s_modalOverlayColor, _s_sizeScaledAnimationDuration, _s_enableBackdropCardEffect, _s_backdropCardColor, _s_stageBeforeShow, _s_deferPrebuiltContent, _s_motionStyle, _s_heightMemoVersion;
|
|
4
|
+
var _s_modalOverlayColor, _s_sizeScaledAnimationDuration, _s_enableBackdropCardEffect, _s_avoidKeyboard, _s_backdropCardColor, _s_stageBeforeShow, _s_deferPrebuiltContent, _s_motionStyle, _s_heightMemoVersion;
|
|
5
5
|
const s = null != settings ? settings : {};
|
|
6
6
|
let min = clamp(finite(s.modalOverlayMinimumOpacity, 0.3), 0, 1);
|
|
7
7
|
let max = clamp(finite(s.modalOverlayMaximumOpacity, 0.9), 0, 1);
|
|
@@ -17,6 +17,7 @@ function resolveSheetSettings(settings) {
|
|
|
17
17
|
closeAnimationDurationMs: Math.max(0, finite(s.closeAnimationDurationMs, 300)),
|
|
18
18
|
sizeScaledAnimationDuration: null != (_s_sizeScaledAnimationDuration = s.sizeScaledAnimationDuration) ? _s_sizeScaledAnimationDuration : true,
|
|
19
19
|
enableBackdropCardEffect: null != (_s_enableBackdropCardEffect = s.enableBackdropCardEffect) ? _s_enableBackdropCardEffect : true,
|
|
20
|
+
avoidKeyboard: null != (_s_avoidKeyboard = s.avoidKeyboard) ? _s_avoidKeyboard : true,
|
|
20
21
|
backdropCardColor: null != (_s_backdropCardColor = s.backdropCardColor) ? _s_backdropCardColor : '#000000',
|
|
21
22
|
stageBeforeShow: null != (_s_stageBeforeShow = s.stageBeforeShow) ? _s_stageBeforeShow : true,
|
|
22
23
|
preOpenMaxHoldMs: clamp(finite(s.preOpenMaxHoldMs, 250), 0, 5000),
|