silvery 0.19.2 → 0.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -4
- package/dist/Text-BRf-59j2.mjs +237 -0
- package/dist/Text-BRf-59j2.mjs.map +1 -0
- package/dist/ag-BeFC4S2N.mjs +8727 -0
- package/dist/ag-BeFC4S2N.mjs.map +1 -0
- package/dist/{animation-Cn64yepo.mjs → animation-N8MFybTk.mjs} +2 -2
- package/dist/animation-N8MFybTk.mjs.map +1 -0
- package/dist/{ansi-CLOitHKx.mjs → ansi-C6Qs1Wn2.mjs} +1 -1
- package/dist/{ansi-CLOitHKx.mjs.map → ansi-C6Qs1Wn2.mjs.map} +1 -1
- package/dist/{ansi-Cc33mW54.d.mts → ansi-CBkam1ty.d.mts} +1 -1
- package/dist/{ansi-Cc33mW54.d.mts.map → ansi-CBkam1ty.d.mts.map} +1 -1
- package/dist/ansi-OYRLxxZQ.mjs +10669 -0
- package/dist/ansi-OYRLxxZQ.mjs.map +1 -0
- package/dist/bound-term-BumfuXXW.d.mts +4902 -0
- package/dist/bound-term-BumfuXXW.d.mts.map +1 -0
- package/dist/{chunk-Vs_PY4HZ.mjs → chunk-hT5z_Zn9.mjs} +1 -3
- package/dist/cli-DG6zsfsS.mjs +4 -0
- package/dist/context-BU5LkkIy.mjs.map +1 -1
- package/dist/{devtools-DxkSLXDA.mjs → devtools-9zfhpFyG.mjs} +3 -3
- package/dist/{devtools-DxkSLXDA.mjs.map → devtools-9zfhpFyG.mjs.map} +1 -1
- package/dist/devtools-nmPUmYU_.mjs +2 -0
- package/dist/easing-B0oZKDki.d.mts +24 -0
- package/dist/easing-B0oZKDki.d.mts.map +1 -0
- package/dist/{eta-Bb3RH3wh.mjs → eta-DGOuC8yU.mjs} +5 -1
- package/dist/{eta-Bb3RH3wh.mjs.map → eta-DGOuC8yU.mjs.map} +1 -1
- package/dist/flexily-zero-adapter-CEJOcbNp.mjs +306 -0
- package/dist/flexily-zero-adapter-CEJOcbNp.mjs.map +1 -0
- package/dist/{flexily-zero-adapter-CMxXhdOL.mjs → flexily-zero-adapter-D6hcFgrH.mjs} +1 -1
- package/dist/image-1nRyKa60.mjs +5960 -0
- package/dist/image-1nRyKa60.mjs.map +1 -0
- package/dist/{index-D3saHouR.d.mts → index-2E1jYgak.d.mts} +1057 -1133
- package/dist/index-2E1jYgak.d.mts.map +1 -0
- package/dist/index-Bi4Jdz5g.d.mts +453 -0
- package/dist/index-Bi4Jdz5g.d.mts.map +1 -0
- package/dist/index-Dg1YaeJb.d.mts +336 -0
- package/dist/index-Dg1YaeJb.d.mts.map +1 -0
- package/dist/{index-BXslOebb.d.mts → index-DnuadDNL.d.mts} +5750 -4158
- package/dist/index-DnuadDNL.d.mts.map +1 -0
- package/dist/index.d.mts +8 -5
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +16 -12
- package/dist/index.mjs.map +1 -1
- package/dist/layout-engine-Ca_nbtfL.mjs +67 -0
- package/dist/layout-engine-Ca_nbtfL.mjs.map +1 -0
- package/dist/{layout-engine-B6Cdz1yZ.mjs → layout-engine-CgsoBRIn.mjs} +1 -1
- package/dist/layout-signals-Dch2EiCy.mjs +1111 -0
- package/dist/layout-signals-Dch2EiCy.mjs.map +1 -0
- package/dist/mouse-events-hnbJZRwK.mjs +1071 -0
- package/dist/mouse-events-hnbJZRwK.mjs.map +1 -0
- package/dist/{multi-progress-DAQC7eap.d.mts → multi-progress-Bg4ngK80.d.mts} +2 -2
- package/dist/{multi-progress-DAQC7eap.d.mts.map → multi-progress-Bg4ngK80.d.mts.map} +1 -1
- package/dist/{multi-progress-Bq9Oi_WI.mjs → multi-progress-CaXTuL9G.mjs} +3 -3
- package/dist/{multi-progress-Bq9Oi_WI.mjs.map → multi-progress-CaXTuL9G.mjs.map} +1 -1
- package/dist/{node-BeWlnCPY.mjs → node-BiFu8I9Y.mjs} +4 -4
- package/dist/node-BiFu8I9Y.mjs.map +1 -0
- package/dist/progress-B_UPy6zk.mjs +675 -0
- package/dist/progress-B_UPy6zk.mjs.map +1 -0
- package/dist/{progress-bar-CXE5Qfkd.mjs → progress-bar-DmIMPdL0.mjs} +4 -4
- package/dist/{progress-bar-CXE5Qfkd.mjs.map → progress-bar-DmIMPdL0.mjs.map} +1 -1
- package/dist/reconciler-NBDSEm8k.mjs +2178 -0
- package/dist/reconciler-NBDSEm8k.mjs.map +1 -0
- package/dist/render-string-B4h4SmK7.mjs +211 -0
- package/dist/render-string-B4h4SmK7.mjs.map +1 -0
- package/dist/{render-string-CDCeYkS3.mjs → render-string-BntLj7Xq.mjs} +1 -1
- package/dist/runtime.d.mts +3 -2
- package/dist/runtime.mjs +3 -3
- package/dist/{src-B5GjfG7g.mjs → schemes-DYt2ushj.mjs} +23 -1812
- package/dist/schemes-DYt2ushj.mjs.map +1 -0
- package/dist/{spinner-CGo34vyR.d.mts → spinner-CLgzJ_QF.d.mts} +2 -2
- package/dist/{spinner-CGo34vyR.d.mts.map → spinner-CLgzJ_QF.d.mts.map} +1 -1
- package/dist/{spinner-CeOmcuw_.mjs → spinner-Py8_-hn9.mjs} +23 -8
- package/dist/spinner-Py8_-hn9.mjs.map +1 -0
- package/dist/src-B9S_woYc.mjs +25024 -0
- package/dist/src-B9S_woYc.mjs.map +1 -0
- package/dist/src-CbhWmUnF.mjs +3928 -0
- package/dist/src-CbhWmUnF.mjs.map +1 -0
- package/dist/src-Dvq-s8iD.mjs +939 -0
- package/dist/src-Dvq-s8iD.mjs.map +1 -0
- package/dist/src-Oe6x5PrS.mjs +4621 -0
- package/dist/src-Oe6x5PrS.mjs.map +1 -0
- package/dist/{types-Bk2yw9Qj.mjs → src-WeA_J4BV.mjs} +34 -94
- package/dist/src-WeA_J4BV.mjs.map +1 -0
- package/dist/steps-DYrzCUCK.d.mts +202 -0
- package/dist/steps-DYrzCUCK.d.mts.map +1 -0
- package/dist/svg-DhxQkz-O.mjs +255 -0
- package/dist/svg-DhxQkz-O.mjs.map +1 -0
- package/dist/svg-Hk7lIl4F.d.mts +82 -0
- package/dist/svg-Hk7lIl4F.d.mts.map +1 -0
- package/dist/term.d.mts +3 -0
- package/dist/term.mjs +4 -0
- package/dist/theme.d.mts +95 -2
- package/dist/theme.d.mts.map +1 -0
- package/dist/theme.mjs +4 -3
- package/dist/{types-BH_v3iMT.d.mts → types-Bx-XZNbE.d.mts} +2 -15
- package/dist/types-Bx-XZNbE.d.mts.map +1 -0
- package/dist/ui/animation.d.mts +2 -1
- package/dist/ui/animation.mjs +1 -1
- package/dist/ui/ansi.d.mts +1 -1
- package/dist/ui/ansi.mjs +1 -1
- package/dist/ui/cli.d.mts +3 -3
- package/dist/ui/cli.mjs +5 -5
- package/dist/ui/display.d.mts +1 -1
- package/dist/ui/display.mjs.map +1 -1
- package/dist/ui/image.d.mts +2 -2
- package/dist/ui/image.mjs +2 -2
- package/dist/ui/input.d.mts +1 -1
- package/dist/ui/input.mjs.map +1 -1
- package/dist/ui/progress.d.mts +5 -249
- package/dist/ui/progress.mjs +5 -858
- package/dist/ui/react.d.mts +1 -1
- package/dist/ui/react.mjs +2 -2
- package/dist/ui/react.mjs.map +1 -1
- package/dist/ui/recording-chrome-react.d.mts +21 -0
- package/dist/ui/recording-chrome-react.d.mts.map +1 -0
- package/dist/ui/recording-chrome-react.mjs +105 -0
- package/dist/ui/recording-chrome-react.mjs.map +1 -0
- package/dist/ui/recording-chrome.d.mts +2 -0
- package/dist/ui/recording-chrome.mjs +2 -0
- package/dist/ui/utils.mjs +1 -1
- package/dist/ui/wrappers.d.mts +3 -3
- package/dist/ui/wrappers.mjs +2 -2
- package/dist/ui.d.mts +7 -6
- package/dist/ui.mjs +8 -7
- package/dist/{useLatest-Bg2x4bfP.d.mts → useLatest-DC8i7guK.d.mts} +5 -25
- package/dist/useLatest-DC8i7guK.d.mts.map +1 -0
- package/dist/useLayout-BKsQl2Or.mjs +424 -0
- package/dist/useLayout-BKsQl2Or.mjs.map +1 -0
- package/dist/{with-text-input-CRfoiFFG.d.mts → with-text-input-DG4f7JII.d.mts} +4 -55
- package/dist/with-text-input-DG4f7JII.d.mts.map +1 -0
- package/dist/wrapper-D7gNSsgf.mjs +3589 -0
- package/dist/wrapper-D7gNSsgf.mjs.map +1 -0
- package/dist/{wrappers-UTADQkSY.mjs → wrappers-CypAzrMO.mjs} +19 -161
- package/dist/wrappers-CypAzrMO.mjs.map +1 -0
- package/dist/yoga-adapter-1ex8r0ws.mjs +2 -0
- package/dist/{yoga-adapter-8oRGRw8V.mjs → yoga-adapter-SsEIqMc1.mjs} +28 -2
- package/dist/yoga-adapter-SsEIqMc1.mjs.map +1 -0
- package/package.json +63 -12
- package/dist/animation-Cn64yepo.mjs.map +0 -1
- package/dist/cli-BKp0YtBD.mjs +0 -4
- package/dist/devtools-9QY4teqI.mjs +0 -2
- package/dist/flexily-zero-adapter-BlQa46nr.mjs +0 -3385
- package/dist/flexily-zero-adapter-BlQa46nr.mjs.map +0 -1
- package/dist/image-CTII5QWI.mjs +0 -477
- package/dist/image-CTII5QWI.mjs.map +0 -1
- package/dist/index-BXslOebb.d.mts.map +0 -1
- package/dist/index-BnA7mNpo.d.mts +0 -175
- package/dist/index-BnA7mNpo.d.mts.map +0 -1
- package/dist/index-D3saHouR.d.mts.map +0 -1
- package/dist/layout-engine-ClUgv6jB.mjs +0 -50
- package/dist/layout-engine-ClUgv6jB.mjs.map +0 -1
- package/dist/node-BeWlnCPY.mjs.map +0 -1
- package/dist/reconciler-Cwgm8hRR.mjs +0 -8459
- package/dist/reconciler-Cwgm8hRR.mjs.map +0 -1
- package/dist/render-string-Darrg7ku.mjs +0 -5529
- package/dist/render-string-Darrg7ku.mjs.map +0 -1
- package/dist/spinner-CeOmcuw_.mjs.map +0 -1
- package/dist/src-B5GjfG7g.mjs.map +0 -1
- package/dist/src-CChwjk0Z.mjs +0 -738
- package/dist/src-CChwjk0Z.mjs.map +0 -1
- package/dist/src-CF-6UN01.mjs +0 -19434
- package/dist/src-CF-6UN01.mjs.map +0 -1
- package/dist/src-NCKb8kE5.mjs +0 -2660
- package/dist/src-NCKb8kE5.mjs.map +0 -1
- package/dist/types-BH_v3iMT.d.mts.map +0 -1
- package/dist/types-Bk2yw9Qj.mjs.map +0 -1
- package/dist/ui/progress.d.mts.map +0 -1
- package/dist/ui/progress.mjs.map +0 -1
- package/dist/useLatest-Bg2x4bfP.d.mts.map +0 -1
- package/dist/with-text-input-CRfoiFFG.d.mts.map +0 -1
- package/dist/wrappers-UTADQkSY.mjs.map +0 -1
- package/dist/yoga-adapter-8oRGRw8V.mjs.map +0 -1
- package/dist/yoga-adapter-D_CcxSt5.mjs +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flexily-zero-adapter-CEJOcbNp.mjs","names":["FlexilyNode"],"sources":["../packages/ag-term/src/adapters/flexily-zero-adapter.ts"],"sourcesContent":["/**\n * Flexily Layout Engine Adapter\n *\n * Wraps Flexily to implement the LayoutEngine interface.\n * Uses the default zero-allocation algorithm from flexily.\n */\n\nimport {\n ALIGN_AUTO,\n ALIGN_BASELINE,\n ALIGN_CENTER,\n ALIGN_FLEX_END,\n ALIGN_FLEX_START,\n ALIGN_SPACE_AROUND,\n ALIGN_SPACE_BETWEEN,\n ALIGN_SPACE_EVENLY,\n ALIGN_STRETCH,\n DIRECTION_LTR,\n DISPLAY_FLEX,\n DISPLAY_NONE,\n EDGE_ALL,\n EDGE_BOTTOM,\n EDGE_HORIZONTAL,\n EDGE_LEFT,\n EDGE_RIGHT,\n EDGE_TOP,\n EDGE_VERTICAL,\n // Constants\n FLEX_DIRECTION_COLUMN,\n FLEX_DIRECTION_COLUMN_REVERSE,\n FLEX_DIRECTION_ROW,\n FLEX_DIRECTION_ROW_REVERSE,\n Node as FlexilyNode,\n GUTTER_ALL,\n GUTTER_COLUMN,\n GUTTER_ROW,\n JUSTIFY_CENTER,\n JUSTIFY_FLEX_END,\n JUSTIFY_FLEX_START,\n JUSTIFY_SPACE_AROUND,\n JUSTIFY_SPACE_BETWEEN,\n JUSTIFY_SPACE_EVENLY,\n MEASURE_MODE_AT_MOST,\n MEASURE_MODE_EXACTLY,\n MEASURE_MODE_MIN_CONTENT,\n MEASURE_MODE_UNDEFINED,\n OVERFLOW_HIDDEN,\n OVERFLOW_SCROLL,\n OVERFLOW_VISIBLE,\n POSITION_TYPE_ABSOLUTE,\n POSITION_TYPE_RELATIVE,\n POSITION_TYPE_STATIC,\n WRAP_NO_WRAP,\n WRAP_WRAP,\n WRAP_WRAP_REVERSE,\n} from \"flexily\"\n\n// Flexily UNIT_CQI / UNIT_CQMIN constants. Hardcoded at this seam rather than\n// imported from \"flexily\" because the published flexily@0.7.1 does not export\n// them yet — A0.2's export-bump (vendor/flexily commit fb61a79) hasn't shipped\n// to npm. Constants are stable per Phase 1 of @km/silvery/responsive-layout-\n// architecture-reframe; same shape as the CONTAINER_TYPE_INLINE_SIZE=1 hardcode\n// in applyBoxProps. When flexily 0.7.2+ ships with the new exports, this can be\n// replaced with a named import.\nconst UNIT_CQI = 6\nconst UNIT_CQMIN = 7\n\nimport type { FitWidthLane, LayoutNode, MeasureFunc, MeasureMode } from \"@silvery/ag/layout-types\"\nimport type {\n AlignValue,\n DirectionValue,\n DisplayValue,\n EdgeValue,\n EngineCapabilities,\n FlexDirectionValue,\n GutterValue,\n JustifyValue,\n LayoutConstants,\n LayoutEngine,\n MeasureModeValue,\n OverflowValue,\n PositionTypeValue,\n WrapValue,\n} from \"../layout-engine\"\n\n/**\n * Capabilities advertised by the flexily-zero adapter.\n *\n * All six A0 primitives shipped: four at A0.1 (engine-native CQ resolution at\n * vendor/flexily `46141e9`), one at A0.2 (fitWidth single-pass lane snap at\n * vendor/flexily `4b44bf9`), one at A0.3 (CSS math functions at vendor/flexily\n * `0aebb95`).\n *\n * - `containerQueries` → A0.1 ✓ — Pass 1 freezeQuerySize + Pass 2 ancestor walk\n * - `containSize` → A0.1 ✓ — Phase 9 inline-axis shrink-wrap gate\n * - `containerQueryUnits` → A0.1 ✓ — UNIT_CQI / UNIT_CQMIN parsed and resolved\n * - `childStyleMutation` → A0.1 ✓ — setContainerQueryStyle hook (A0.0 substrate)\n * - `fitWidth` → A0.2 ✓ — Phase 3 lane-select prefix; single-pass lane snap\n * - `styleMathFunctions` → A0.3 ✓ — UNIT_CALC + MathExpr; late-bound per\n * vendor/flexily/docs/two-phase-layout.md\n */\nconst FLEXILY_CAPABILITIES: EngineCapabilities = Object.freeze({\n containerQueries: true, // ✓ A0.1\n containSize: true, // ✓ A0.1\n containerQueryUnits: true, // ✓ A0.1\n fitWidth: true, // ✓ A0.2\n styleMathFunctions: true, // ✓ A0.3\n childStyleMutation: true, // ✓ A0.1\n})\n\n// ============================================================================\n// Flexily Zero Node Adapter\n// ============================================================================\n\n/**\n * Wraps a Flexily zero-alloc node to implement LayoutNode interface.\n * Since Flexily already has a Yoga-compatible API, this is mostly delegation.\n */\nclass FlexilyZeroNodeAdapter implements LayoutNode {\n private node: FlexilyNode\n\n constructor(node: FlexilyNode) {\n this.node = node\n }\n\n /** Get the underlying Flexily node (for tree operations) */\n getFlexilyNode(): FlexilyNode {\n return this.node\n }\n\n // Tree operations\n insertChild(child: LayoutNode, index: number): void {\n const flexilyChild = (child as FlexilyZeroNodeAdapter).getFlexilyNode()\n this.node.insertChild(flexilyChild, index)\n }\n\n removeChild(child: LayoutNode): void {\n const flexilyChild = (child as FlexilyZeroNodeAdapter).getFlexilyNode()\n this.node.removeChild(flexilyChild)\n }\n\n free(): void {\n this.node.free()\n }\n\n // Measure function\n setMeasureFunc(measureFunc: MeasureFunc): void {\n this.node.setMeasureFunc((width, widthMode, height, heightMode) => {\n const widthModeStr = this.measureModeToString(widthMode)\n const heightModeStr = this.measureModeToString(heightMode)\n return measureFunc(width, widthModeStr, height, heightModeStr)\n })\n }\n\n // Dirty tracking - forces layout recalculation\n markDirty(): void {\n this.node.markDirty()\n }\n isDirty(): boolean {\n return this.node.isDirty()\n }\n\n private measureModeToString(mode: number): MeasureMode {\n if (mode === MEASURE_MODE_EXACTLY) return \"exactly\"\n if (mode === MEASURE_MODE_AT_MOST) return \"at-most\"\n if (mode === MEASURE_MODE_MIN_CONTENT) return \"min-content\"\n return \"undefined\"\n }\n\n // Dimension setters\n setWidth(value: number): void {\n this.node.setWidth(value)\n }\n setWidthPercent(value: number): void {\n this.node.setWidthPercent(value)\n }\n setWidthAuto(): void {\n this.node.setWidthAuto()\n }\n setWidthFitContent(): void {\n this.node.setWidthFitContent()\n }\n setWidthSnugContent(): void {\n this.node.setWidthSnugContent()\n }\n setHeight(value: number): void {\n this.node.setHeight(value)\n }\n setHeightPercent(value: number): void {\n this.node.setHeightPercent(value)\n }\n setHeightAuto(): void {\n this.node.setHeightAuto()\n }\n setMinWidth(value: number): void {\n this.node.setMinWidth(value)\n }\n setMinWidthPercent(value: number): void {\n this.node.setMinWidthPercent(value)\n }\n setMinHeight(value: number): void {\n this.node.setMinHeight(value)\n }\n setMinHeightPercent(value: number): void {\n this.node.setMinHeightPercent(value)\n }\n setMaxWidth(value: number): void {\n this.node.setMaxWidth(value)\n }\n setMaxWidthPercent(value: number): void {\n this.node.setMaxWidthPercent(value)\n }\n setMaxHeight(value: number): void {\n this.node.setMaxHeight(value)\n }\n setMaxHeightPercent(value: number): void {\n this.node.setMaxHeightPercent(value)\n }\n\n // Flex properties\n setFlexGrow(value: number): void {\n this.node.setFlexGrow(value)\n }\n setFlexShrink(value: number): void {\n this.node.setFlexShrink(value)\n }\n setFlexBasis(value: number): void {\n this.node.setFlexBasis(value)\n }\n setFlexBasisPercent(value: number): void {\n this.node.setFlexBasisPercent(value)\n }\n setFlexBasisAuto(): void {\n this.node.setFlexBasisAuto()\n }\n setFlexDirection(direction: number): void {\n this.node.setFlexDirection(direction)\n }\n setFlexWrap(wrap: number): void {\n this.node.setFlexWrap(wrap)\n }\n\n // Alignment\n setAlignItems(align: number): void {\n this.node.setAlignItems(align)\n }\n setAlignSelf(align: number): void {\n this.node.setAlignSelf(align)\n }\n setAlignContent(align: number): void {\n this.node.setAlignContent(align)\n }\n setJustifyContent(justify: number): void {\n this.node.setJustifyContent(justify)\n }\n\n // Spacing\n setPadding(edge: number, value: number): void {\n this.node.setPadding(edge, value)\n }\n setMargin(edge: number, value: number): void {\n this.node.setMargin(edge, value)\n }\n setBorder(edge: number, value: number): void {\n this.node.setBorder(edge, value)\n }\n setGap(gutter: number, value: number): void {\n this.node.setGap(gutter, value)\n }\n\n // Display & Position\n setDisplay(display: number): void {\n this.node.setDisplay(display)\n }\n setPositionType(positionType: number): void {\n this.node.setPositionType(positionType)\n }\n setPosition(edge: number, value: number): void {\n this.node.setPosition(edge, value)\n }\n setPositionPercent(edge: number, value: number): void {\n this.node.setPositionPercent(edge, value)\n }\n setOverflow(overflow: number): void {\n this.node.setOverflow(overflow)\n }\n\n // Container queries (A0.1) — flexily supports both; advertised via FLEXILY_CAPABILITIES.\n setContainerType(containerType: number): void {\n this.node.setContainerType(containerType)\n }\n setContainSize(value: boolean): void {\n this.node.setContainSize(value)\n }\n\n // Fit-width (A0.2) — translate FitWidthLane to flexily's { value, unit: UNIT_* }\n // shape. Lane entries can be plain numbers (treated as UNIT_POINT) or objects\n // with a \"cqi\"/\"cqmin\" unit string.\n setFitWidth(lanes: readonly FitWidthLane[] | undefined): void {\n if (lanes === undefined || lanes.length === 0) {\n this.node.setFitWidth(undefined)\n return\n }\n this.node.setFitWidth(\n lanes.map((entry) => {\n if (typeof entry === \"number\") return entry\n const unit = entry.unit === \"cqi\" ? UNIT_CQI : UNIT_CQMIN\n return { value: entry.value, unit }\n }),\n )\n }\n\n // Aspect Ratio\n setAspectRatio(value: number): void {\n this.node.setAspectRatio(value)\n }\n\n // Layout calculation\n calculateLayout(width: number, height: number, direction?: number): void {\n this.node.calculateLayout(width, height, direction ?? DIRECTION_LTR)\n }\n\n // Layout results\n getComputedLeft(): number {\n return this.node.getComputedLeft()\n }\n getComputedTop(): number {\n return this.node.getComputedTop()\n }\n getComputedWidth(): number {\n return this.node.getComputedWidth()\n }\n getComputedHeight(): number {\n return this.node.getComputedHeight()\n }\n}\n\n// ============================================================================\n// Flexily Zero Layout Engine\n// ============================================================================\n\n/**\n * Layout engine implementation using Flexily zero-allocation variant.\n * Optimized for high-frequency layout with reduced GC pressure.\n */\nexport class FlexilyZeroLayoutEngine implements LayoutEngine {\n private _constants: LayoutConstants = {\n // Flex Direction (cast from Flexily's plain numbers to branded types)\n FLEX_DIRECTION_COLUMN: FLEX_DIRECTION_COLUMN as FlexDirectionValue,\n FLEX_DIRECTION_COLUMN_REVERSE: FLEX_DIRECTION_COLUMN_REVERSE as FlexDirectionValue,\n FLEX_DIRECTION_ROW: FLEX_DIRECTION_ROW as FlexDirectionValue,\n FLEX_DIRECTION_ROW_REVERSE: FLEX_DIRECTION_ROW_REVERSE as FlexDirectionValue,\n\n // Wrap\n WRAP_NO_WRAP: WRAP_NO_WRAP as WrapValue,\n WRAP_WRAP: WRAP_WRAP as WrapValue,\n WRAP_WRAP_REVERSE: WRAP_WRAP_REVERSE as WrapValue,\n\n // Align\n ALIGN_AUTO: ALIGN_AUTO as AlignValue,\n ALIGN_FLEX_START: ALIGN_FLEX_START as AlignValue,\n ALIGN_CENTER: ALIGN_CENTER as AlignValue,\n ALIGN_FLEX_END: ALIGN_FLEX_END as AlignValue,\n ALIGN_STRETCH: ALIGN_STRETCH as AlignValue,\n ALIGN_BASELINE: ALIGN_BASELINE as AlignValue,\n ALIGN_SPACE_BETWEEN: ALIGN_SPACE_BETWEEN as AlignValue,\n ALIGN_SPACE_AROUND: ALIGN_SPACE_AROUND as AlignValue,\n ALIGN_SPACE_EVENLY: ALIGN_SPACE_EVENLY as AlignValue,\n\n // Justify\n JUSTIFY_FLEX_START: JUSTIFY_FLEX_START as JustifyValue,\n JUSTIFY_CENTER: JUSTIFY_CENTER as JustifyValue,\n JUSTIFY_FLEX_END: JUSTIFY_FLEX_END as JustifyValue,\n JUSTIFY_SPACE_BETWEEN: JUSTIFY_SPACE_BETWEEN as JustifyValue,\n JUSTIFY_SPACE_AROUND: JUSTIFY_SPACE_AROUND as JustifyValue,\n JUSTIFY_SPACE_EVENLY: JUSTIFY_SPACE_EVENLY as JustifyValue,\n\n // Edge\n EDGE_LEFT: EDGE_LEFT as EdgeValue,\n EDGE_TOP: EDGE_TOP as EdgeValue,\n EDGE_RIGHT: EDGE_RIGHT as EdgeValue,\n EDGE_BOTTOM: EDGE_BOTTOM as EdgeValue,\n EDGE_HORIZONTAL: EDGE_HORIZONTAL as EdgeValue,\n EDGE_VERTICAL: EDGE_VERTICAL as EdgeValue,\n EDGE_ALL: EDGE_ALL as EdgeValue,\n\n // Gutter\n GUTTER_COLUMN: GUTTER_COLUMN as GutterValue,\n GUTTER_ROW: GUTTER_ROW as GutterValue,\n GUTTER_ALL: GUTTER_ALL as GutterValue,\n\n // Display\n DISPLAY_FLEX: DISPLAY_FLEX as DisplayValue,\n DISPLAY_NONE: DISPLAY_NONE as DisplayValue,\n\n // Position Type\n POSITION_TYPE_STATIC: POSITION_TYPE_STATIC as PositionTypeValue,\n POSITION_TYPE_RELATIVE: POSITION_TYPE_RELATIVE as PositionTypeValue,\n POSITION_TYPE_ABSOLUTE: POSITION_TYPE_ABSOLUTE as PositionTypeValue,\n\n // Overflow\n OVERFLOW_VISIBLE: OVERFLOW_VISIBLE as OverflowValue,\n OVERFLOW_HIDDEN: OVERFLOW_HIDDEN as OverflowValue,\n OVERFLOW_SCROLL: OVERFLOW_SCROLL as OverflowValue,\n\n // Direction\n DIRECTION_LTR: DIRECTION_LTR as DirectionValue,\n\n // Measure Mode\n MEASURE_MODE_UNDEFINED: MEASURE_MODE_UNDEFINED as MeasureModeValue,\n MEASURE_MODE_EXACTLY: MEASURE_MODE_EXACTLY as MeasureModeValue,\n MEASURE_MODE_AT_MOST: MEASURE_MODE_AT_MOST as MeasureModeValue,\n }\n\n createNode(): LayoutNode {\n return new FlexilyZeroNodeAdapter(FlexilyNode.create({ defaults: \"css\" }))\n }\n\n get constants(): LayoutConstants {\n return this._constants\n }\n\n get name(): string {\n return \"flexily-zero\"\n }\n\n get capabilities(): EngineCapabilities {\n return FLEXILY_CAPABILITIES\n }\n}\n\n/**\n * Internal-only Yoga-preset variant of FlexilyZeroLayoutEngine.\n *\n * Production silvery uses CSS-correct defaults via the standard\n * {@link FlexilyZeroLayoutEngine}. The Ink-compat layer (which mimics\n * Ink/Yoga semantics — `flexShrink:0`, `alignContent:flex-start`, no auto\n * min-size on flex items) needs Yoga-preset Nodes. This subclass is the\n * only sanctioned way to opt into Yoga semantics from inside silvery; do\n * not export from the public barrel and do not use in app code.\n */\nclass FlexilyZeroLayoutEngineYoga extends FlexilyZeroLayoutEngine {\n override createNode(): LayoutNode {\n return new FlexilyZeroNodeAdapter(FlexilyNode.create({ defaults: \"yoga\" }))\n }\n}\n\n// ============================================================================\n// Initialization Helpers\n// ============================================================================\n\n/**\n * Create a Flexily zero-allocation layout engine with CSS-correct defaults.\n *\n * silvery's standard layout engine. Sets `flexShrink: 1`,\n * `alignContent: stretch`, and CSS §4.5 flex-item auto min-size on every\n * Node, matching browser flexbox semantics. Unlike Yoga, Flexily doesn't\n * require async initialization.\n *\n * Yoga-flavored semantics are deliberately not exposed here — consumers\n * needing Yoga compat should use `createFlexily({ defaults: \"yoga\" })` from\n * flexily directly. The Ink-compat layer is the single internal user that\n * stays on Yoga; it imports the `@internal` {@link createFlexilyZeroEngineForInkCompat}.\n */\nexport function createFlexilyZeroEngine(): FlexilyZeroLayoutEngine {\n return new FlexilyZeroLayoutEngine()\n}\n\n/**\n * Yoga-preset variant for Ink-compat tests only.\n *\n * Do not use in production silvery code. The Ink-compat layer (`packages/ink`)\n * mimics Ink semantics, which match Yoga (`flexShrink:0`, `alignContent:flex-start`,\n * no auto min-size). When silvery's auto-generated Ink-compat tests render\n * through silvery's layout pipeline, they need Yoga-preset Nodes — that's\n * the one and only purpose of this factory.\n *\n * @internal Visible to silvery tests/compat/ink/helpers and packages/ink internals.\n */\nexport function createFlexilyZeroEngineForInkCompat(): FlexilyZeroLayoutEngine {\n return new FlexilyZeroLayoutEngineYoga()\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as createFlexilyZeroEngine } from "./flexily-zero-adapter-
|
|
1
|
+
import { n as createFlexilyZeroEngine } from "./flexily-zero-adapter-CEJOcbNp.mjs";
|
|
2
2
|
export { createFlexilyZeroEngine };
|