git.iko.soy/rowtype-yoga/ry-blocks
on main help sign in
Use ES module syntax for FFI
commit6270f4df3c680884e9f604b74e8d72cc5adf58b5 authorMark Eibes <mark.eibes@gmail.com> dateTue 4 Jan 2022, 09:44 (5 years ago) parent6802898
10 files changed+302−267
src/React/Basic/Popper/Hook.js+2−2 src/React/Basic/Popper/Popper.js+17−18 src/React/Basic/SyntaxHighlighter/Component.js+148−148 src/React/DndKit.js+45−23 src/React/Downshift/Internal.js+2−2 src/React/Downshift/Types/StateChangeType.js+27−23 src/Web/DOM/ResizeObserver.js+28−28 src/Yoga/Block/Container/Style.js+24−14 src/Yoga/Block/Hook/Key.js+7−7 src/Yoga/Block/Hook/UseInView.js+2−2
src/React/Basic/Popper/Hook.js+2−2
@@ -1,3 +1,3 @@
1−const reactPopper = require('react-popper')
1+import { usePopper } from "react-popper"
22
3−exports.usePopperImpl = reactPopper.usePopper
3+export const usePopperImpl = usePopper
src/React/Basic/Popper/Popper.js+17−18
@@ -1,19 +1,18 @@
1−exports.modifierMatchReferenceSize = {
2− name: "matchReferenceSize",
3− enabled: true,
4− fn: ({ state, instance }) => {
5− const widthOrHeight =
6− state.placement.startsWith("left") ||
7− state.placement.startsWith("right")
8− ? "height"
9− : "width";
10− const popperSize = state.rects.popper[widthOrHeight];
11− const referenceSize = state.rects.reference[widthOrHeight];
12− if (popperSize >= referenceSize) return;
1+export const modifierMatchReferenceSize = {
2+ name: "matchReferenceSize",
3+ enabled: true,
4+ fn: ({ state, instance }) => {
5+ const widthOrHeight =
6+ state.placement.startsWith("left") || state.placement.startsWith("right")
7+ ? "height"
8+ : "width"
9+ const popperSize = state.rects.popper[widthOrHeight]
10+ const referenceSize = state.rects.reference[widthOrHeight]
11+ if (popperSize >= referenceSize) return
1312
14− state.styles.popper[widthOrHeight] = `${referenceSize}px`;
15− instance.update();
16− },
17− phase: "beforeWrite",
18− requires: ["computeStyles"]
19−}
13+ state.styles.popper[widthOrHeight] = `${referenceSize}px`
14+ instance.update()
15+ },
16+ phase: "beforeWrite",
17+ requires: ["computeStyles"]
18+}
src/React/Basic/SyntaxHighlighter/Component.js+148−148
@@ -1,149 +1,149 @@
1−"use strict";
2−Object.defineProperty(exports, "__esModule", { value: true });
3−var react_syntax_highlighter_1 = require("react-syntax-highlighter");
1+"use strict"
2+import { Light } from "react-syntax-highlighter"
43var purescript = function (hljs) {
5− var COMMENT = {
6− variants: [
7− hljs.COMMENT("--", "$"),
8− hljs.COMMENT("{-", "-}", {
9− contains: ["self"],
10− }),
11− ],
12− };
13− var ESCAPED_KEY = {
14− className: "attribute",
15− begin: '"',
16− illegal: '"',
17− end: '"',
18− relevance: 0,
19− };
20− // var KEY = {
21− // className: "attribute",
22− // begin: "[a-z]",
23− // illegal: ""
24− // end: "(::|∷)",
25− // excludeEnd: true,
26− // relevance: 0,
27− // };
28− var CONSTRUCTOR = {
29− className: "type",
30− begin: "\\b[A-Z][\\w']*",
31− relevance: 0,
32− };
33− var LIST = {
34− begin: "\\(",
35− end: "\\)",
36− illegal: '"',
37− contains: [
38− { className: "type", begin: "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?" },
39− hljs.inherit(hljs.TITLE_MODE, { begin: "[_a-z][\\w']*" }),
40− COMMENT,
41− ],
42− };
43− var VALUE = {};
44− var KEY_VALUE = {
45− className: "attribute",
46− begin: "\\w+",
47− end: ",|}",
48− contains: [VALUE],
49− };
50− var RECORD = {
51− begin: "{",
52− end: "}",
53− contains: [KEY_VALUE],
54− };
55− return {
56− name: "PureScript",
57− aliases: ["purs", "purescript"],
58− keywords: {
59− keyword: "case " +
60− "class " +
61− "data " +
62− "derive " +
63− "ado " +
64− "do " +
65− "else " +
66− "if " +
67− "import " +
68− "in " +
69− "infix " +
70− "infixl " +
71− "infixr " +
72− "instance " +
73− "let " +
74− "module " +
75− "newtype " +
76− "of " +
77− "then " +
78− "type " +
79− "where " +
80− ": " +
81− "foreign " +
82− "forall " +
83− "∀",
84− },
85− contains: [
86− // Top-level constructions.
87− {
88− beginKeywords: "module",
89− end: "where",
90− keywords: "module where",
91− contains: [LIST, COMMENT],
92− illegal: "\\W\\.|;",
93− },
94− {
95− begin: "\\bimport\\b",
96− end: "$",
97− keywords: "import as hiding",
98− contains: [LIST, COMMENT],
99− illegal: "\\W\\.|;",
100− },
101− {
102− className: "class",
103− begin: "^(\\s*)?(class|instance)\\b",
104− end: "where",
105− keywords: "class instance where",
106− contains: [CONSTRUCTOR, LIST, COMMENT],
107− },
108− {
109− className: "class",
110− begin: "\\b(data|(new)?type)\\b",
111− end: "$",
112− keywords: "data family type newtype derive",
113− contains: [CONSTRUCTOR, LIST, RECORD, COMMENT],
114− },
115− {
116− className: "symbol",
117− begin: "=|<-|->|\\:\\:|\\\\|=>|<=|forall|∀|\\:|∷|{|}|\\(|\\)|\\[|\\]|,",
118− invalid: "/",
119− },
120− {
121− beginKeywords: "default",
122− end: "$",
123− contains: [CONSTRUCTOR, LIST, COMMENT],
124− },
125− {
126− beginKeywords: "infix infixl infixr",
127− end: "$",
128− contains: [hljs.C_NUMBER_MODE, COMMENT],
129− },
130− {
131− begin: "\\bforeign\\b",
132− end: "$",
133− keywords: "foreign import",
134− contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT],
135− },
136− // "Whitespaces".
137− // Literals and names.
138− // TODO: characters.
139− hljs.QUOTE_STRING_MODE,
140− hljs.C_NUMBER_MODE,
141− CONSTRUCTOR,
142− hljs.inherit(hljs.TITLE_MODE, { begin: "^[_a-z][\\w']*" }),
143− COMMENT,
144− { begin: "->|<-" },
145− ],
146− };
147−};
148−react_syntax_highlighter_1.Light.registerLanguage("puresscript", purescript);
149−exports.syntaxHighlighter = react_syntax_highlighter_1.Light;
4+ var COMMENT = {
5+ variants: [
6+ hljs.COMMENT("--", "$"),
7+ hljs.COMMENT("{-", "-}", {
8+ contains: ["self"]
9+ })
10+ ]
11+ }
12+ var ESCAPED_KEY = {
13+ className: "attribute",
14+ begin: '"',
15+ illegal: '"',
16+ end: '"',
17+ relevance: 0
18+ }
19+ // var KEY = {
20+ // className: "attribute",
21+ // begin: "[a-z]",
22+ // illegal: ""
23+ // end: "(::|∷)",
24+ // excludeEnd: true,
25+ // relevance: 0,
26+ // };
27+ var CONSTRUCTOR = {
28+ className: "type",
29+ begin: "\\b[A-Z][\\w']*",
30+ relevance: 0
31+ }
32+ var LIST = {
33+ begin: "\\(",
34+ end: "\\)",
35+ illegal: '"',
36+ contains: [
37+ { className: "type", begin: "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?" },
38+ hljs.inherit(hljs.TITLE_MODE, { begin: "[_a-z][\\w']*" }),
39+ COMMENT
40+ ]
41+ }
42+ var VALUE = {}
43+ var KEY_VALUE = {
44+ className: "attribute",
45+ begin: "\\w+",
46+ end: ",|}",
47+ contains: [VALUE]
48+ }
49+ var RECORD = {
50+ begin: "{",
51+ end: "}",
52+ contains: [KEY_VALUE]
53+ }
54+ return {
55+ name: "PureScript",
56+ aliases: ["purs", "purescript"],
57+ keywords: {
58+ keyword:
59+ "case " +
60+ "class " +
61+ "data " +
62+ "derive " +
63+ "ado " +
64+ "do " +
65+ "else " +
66+ "if " +
67+ "import " +
68+ "in " +
69+ "infix " +
70+ "infixl " +
71+ "infixr " +
72+ "instance " +
73+ "let " +
74+ "module " +
75+ "newtype " +
76+ "of " +
77+ "then " +
78+ "type " +
79+ "where " +
80+ ": " +
81+ "foreign " +
82+ "forall " +
83+ "∀"
84+ },
85+ contains: [
86+ // Top-level constructions.
87+ {
88+ beginKeywords: "module",
89+ end: "where",
90+ keywords: "module where",
91+ contains: [LIST, COMMENT],
92+ illegal: "\\W\\.|;"
93+ },
94+ {
95+ begin: "\\bimport\\b",
96+ end: "$",
97+ keywords: "import as hiding",
98+ contains: [LIST, COMMENT],
99+ illegal: "\\W\\.|;"
100+ },
101+ {
102+ className: "class",
103+ begin: "^(\\s*)?(class|instance)\\b",
104+ end: "where",
105+ keywords: "class instance where",
106+ contains: [CONSTRUCTOR, LIST, COMMENT]
107+ },
108+ {
109+ className: "class",
110+ begin: "\\b(data|(new)?type)\\b",
111+ end: "$",
112+ keywords: "data family type newtype derive",
113+ contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
114+ },
115+ {
116+ className: "symbol",
117+ begin: "=|<-|->|\\:\\:|\\\\|=>|<=|forall|∀|\\:|∷|{|}|\\(|\\)|\\[|\\]|,",
118+ invalid: "/"
119+ },
120+ {
121+ beginKeywords: "default",
122+ end: "$",
123+ contains: [CONSTRUCTOR, LIST, COMMENT]
124+ },
125+ {
126+ beginKeywords: "infix infixl infixr",
127+ end: "$",
128+ contains: [hljs.C_NUMBER_MODE, COMMENT]
129+ },
130+ {
131+ begin: "\\bforeign\\b",
132+ end: "$",
133+ keywords: "foreign import",
134+ contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
135+ },
136+ // "Whitespaces".
137+ // Literals and names.
138+ // TODO: characters.
139+ hljs.QUOTE_STRING_MODE,
140+ hljs.C_NUMBER_MODE,
141+ CONSTRUCTOR,
142+ hljs.inherit(hljs.TITLE_MODE, { begin: "^[_a-z][\\w']*" }),
143+ COMMENT,
144+ { begin: "->|<-" }
145+ ]
146+ }
147+}
148+Light.registerLanguage("puresscript", purescript)
149+export const syntaxHighlighter = Light
src/React/DndKit.js+45−23
@@ -1,23 +1,45 @@
1−const dndKitCore = require('@dnd-kit/core')
2−const dndKitSortable = require('@dnd-kit/sortable')
3−const dndKitModifiers = require('@dnd-kit/modifiers')
4−const dndKitUtilities = require('@dnd-kit/utilities')
5−exports.dndContextImpl = dndKitCore.DndContext
6−exports.closestCenter = dndKitCore.closestCenter
7−exports.closestCorners = dndKitCore.closestCorners
8−exports.sortableContextImpl = dndKitSortable.SortableContext
9−exports.useSortableImpl = dndKitSortable.useSortable
10−exports.arrayMoveImpl = dndKitSortable.arrayMove
11−exports.restrictToHorizontalAxis = dndKitModifiers.restrictToHorizontalAxis
12−exports.restrictToVerticalAxis = dndKitModifiers.restrictToVerticalAxis
13−exports.restrictToParentElement = dndKitModifiers.restrictToParentElement
14−exports.restrictToFirstScrollableAncestor =
15− dndKitModifiers.restrictToFirstScrollableAncestor
16−exports.restrictToWindowEdges = dndKitModifiers.restrictToWindowEdges
17−exports.cssToString = dndKitUtilities.CSS.Transform.toString
18−exports.keyboardSensor = dndKitCore.KeyboardSensor
19−exports.pointerSensor = dndKitCore.PointerSensor
20−exports.useSensorImpl = dndKitCore.useSensor
21−exports.useSensorsImpl = (args) => dndKitCore.useSensors.apply(args)
22−exports.sortableKeyboardCoordinates = dndKitSortable.sortableKeyboardCoordinates
23−exports.verticalListSortingStrategy = dndKitSortable.verticalListSortingStrategy
1+import {
2+ DndContext,
3+ closestCenter,
4+ closestCorners,
5+ KeyboardSensor,
6+ PointerSensor,
7+ useSensor,
8+ useSensors
9+} from "@dnd-kit/core"
10+import {
11+ SortableContext,
12+ useSortable,
13+ arrayMove,
14+ sortableKeyboardCoordinates,
15+ verticalListSortingStrategy
16+} from "@dnd-kit/sortable"
17+import {
18+ restrictToHorizontalAxis,
19+ restrictToVerticalAxis,
20+ restrictToParentElement,
21+ restrictToFirstScrollableAncestor,
22+ restrictToWindowEdges
23+} from "@dnd-kit/modifiers"
24+import { CSS } from "@dnd-kit/utilities"
25+export const dndContextImpl = DndContext
26+export const closestCenter = closestCenter
27+export const closestCorners = closestCorners
28+export const sortableContextImpl = SortableContext
29+export const useSortableImpl = useSortable
30+export const arrayMoveImpl = arrayMove
31+export const restrictToHorizontalAxis = restrictToHorizontalAxis
32+export const restrictToVerticalAxis = restrictToVerticalAxis
33+export const restrictToParentElement = restrictToParentElement
34+export const restrictToFirstScrollableAncestor =
35+ restrictToFirstScrollableAncestor
36+export const restrictToWindowEdges = restrictToWindowEdges
37+export const cssToString = CSS.Transform.toString
38+export const keyboardSensor = KeyboardSensor
39+export const pointerSensor = PointerSensor
40+export const useSensorImpl = useSensor
41+export function useSensorsImpl(args) {
42+ return useSensors.apply(args)
43+}
44+export const sortableKeyboardCoordinates = sortableKeyboardCoordinates
45+export const verticalListSortingStrategy = verticalListSortingStrategy
src/React/Downshift/Internal.js+2−2
@@ -1,2 +1,2 @@
1−const downshift = require("downshift")
2−exports.useSelectImpl = downshift.useSelect
1+import { useSelect } from "downshift"
2+export const useSelectImpl = useSelect
src/React/Downshift/Types/StateChangeType.js+27−23
@@ -1,25 +1,29 @@
11const stateChangeTypes = require("downshift").useSelect.stateChangeTypes
22
3−exports.menuKeyDownArrowDown = stateChangeTypes.MenuKeyDownArrowDown
4−exports.menuKeyDownArrowUp = stateChangeTypes.MenuKeyDownArrowUp
5−exports.menuKeyDownEscape = stateChangeTypes.MenuKeyDownEscape
6−exports.menuKeyDownHome = stateChangeTypes.MenuKeyDownHome
7−exports.menuKeyDownEnd = stateChangeTypes.MenuKeyDownEnd
8−exports.menuKeyDownEnter = stateChangeTypes.MenuKeyDownEnter
9−exports.menuKeyDownSpaceButton = stateChangeTypes.MenuKeyDownSpaceButton
10−exports.menuKeyDownCharacter = stateChangeTypes.MenuKeyDownCharacter
11−exports.menuBlur = stateChangeTypes.MenuBlur
12−exports.menuMouseLeave = stateChangeTypes.MenuMouseLeave
13−exports.itemMouseMove = stateChangeTypes.ItemMouseMove
14−exports.itemClick = stateChangeTypes.ItemClick
15−exports.toggleButtonClick = stateChangeTypes.ToggleButtonClick
16−exports.toggleButtonKeyDownCharacter = stateChangeTypes.ToggleButtonKeyDownCharacter
17−exports.toggleButtonKeyDownArrowDown = stateChangeTypes.ToggleButtonKeyDownArrowDown
18−exports.toggleButtonKeyDownArrowUp = stateChangeTypes.ToggleButtonKeyDownArrowUp
19−exports.functionToggleMenu = stateChangeTypes.FunctionToggleMenu
20−exports.functionOpenMenu = stateChangeTypes.FunctionOpenMenu
21−exports.functionCloseMenu = stateChangeTypes.FunctionCloseMenu
22−exports.functionSetHighlightedIndex = stateChangeTypes.FunctionSetHighlightedIndex
23−exports.functionSelectItem = stateChangeTypes.FunctionSelectItem
24−exports.functionSetInputValue = stateChangeTypes.FunctionSetInputValue
25−exports.functionReset = stateChangeTypes.FunctionReset
3+export const menuKeyDownArrowDown = stateChangeTypes.MenuKeyDownArrowDown
4+export const menuKeyDownArrowUp = stateChangeTypes.MenuKeyDownArrowUp
5+export const menuKeyDownEscape = stateChangeTypes.MenuKeyDownEscape
6+export const menuKeyDownHome = stateChangeTypes.MenuKeyDownHome
7+export const menuKeyDownEnd = stateChangeTypes.MenuKeyDownEnd
8+export const menuKeyDownEnter = stateChangeTypes.MenuKeyDownEnter
9+export const menuKeyDownSpaceButton = stateChangeTypes.MenuKeyDownSpaceButton
10+export const menuKeyDownCharacter = stateChangeTypes.MenuKeyDownCharacter
11+export const menuBlur = stateChangeTypes.MenuBlur
12+export const menuMouseLeave = stateChangeTypes.MenuMouseLeave
13+export const itemMouseMove = stateChangeTypes.ItemMouseMove
14+export const itemClick = stateChangeTypes.ItemClick
15+export const toggleButtonClick = stateChangeTypes.ToggleButtonClick
16+export const toggleButtonKeyDownCharacter =
17+ stateChangeTypes.ToggleButtonKeyDownCharacter
18+export const toggleButtonKeyDownArrowDown =
19+ stateChangeTypes.ToggleButtonKeyDownArrowDown
20+export const toggleButtonKeyDownArrowUp =
21+ stateChangeTypes.ToggleButtonKeyDownArrowUp
22+export const functionToggleMenu = stateChangeTypes.FunctionToggleMenu
23+export const functionOpenMenu = stateChangeTypes.FunctionOpenMenu
24+export const functionCloseMenu = stateChangeTypes.FunctionCloseMenu
25+export const functionSetHighlightedIndex =
26+ stateChangeTypes.FunctionSetHighlightedIndex
27+export const functionSelectItem = stateChangeTypes.FunctionSelectItem
28+export const functionSetInputValue = stateChangeTypes.FunctionSetInputValue
29+export const functionReset = stateChangeTypes.FunctionReset
src/Web/DOM/ResizeObserver.js+28−28
@@ -1,33 +1,33 @@
1−"use strict";
1+"use strict"
22
3−exports.resizeObserver = function (cb) {
4− return function () {
5− return new ResizeObserver(function (entries, observer) {
6− return cb(entries)(observer)();
7− });
8− };
9−};
10−
11−exports._observe = function (element) {
12− return function (config) {
13− return function (observer) {
14− return function () {
15− return observer.observe(element, config);
16− };
17− };
18− };
19−};
3+export function resizeObserver(cb) {
4+ return function () {
5+ return new ResizeObserver(function (entries, observer) {
6+ return cb(entries)(observer)()
7+ })
8+ }
9+}
2010
21−exports.unobserve = function (element) {
11+export function _observe(element) {
12+ return function (config) {
2213 return function (observer) {
23− return function () {
24− return observer.unobserve(element);
25− };
26− };
27−};
14+ return function () {
15+ return observer.observe(element, config)
16+ }
17+ }
18+ }
19+}
2820
29−exports.disconnect = function (observer) {
21+export function unobserve(element) {
22+ return function (observer) {
3023 return function () {
31− return observer.disconnect();
32− };
33−};
24+ return observer.unobserve(element)
25+ }
26+ }
27+}
28+
29+export function disconnect(observer) {
30+ return function () {
31+ return observer.disconnect()
32+ }
33+}
src/Yoga/Block/Container/Style.js+24−14
@@ -3,25 +3,35 @@
33// So we just pretend nothing every matches
44// And never invoke the listeners
55const stubMatchMedia = () => {
6− if (window.matchMedia) return
7− window.matchMedia = (name) =>
8− ({
9− matches: false,
10− addEventListener: () => { },
11− removeEventListener: () => { }
12− })
6+ if (window.matchMedia) return
7+ window.matchMedia = (name) => ({
8+ matches: false,
9+ addEventListener: () => {},
10+ removeEventListener: () => {}
11+ })
1312}
1413
15−
16−exports.getComputedStyleImpl = (el, window) => window.getComputedStyle(el)
17−exports.getPropertyValueImpl = (propName, computedStyle) => computedStyle.getPropertyValue(propName)
18−exports.getElementStyle = el => () => el.style
19−exports.setStyleProperty = prop => value => style => () => style.setProperty(prop, value)
20−exports.matchMedia = string => window => () => {
14+export function getComputedStyleImpl(el, window) {
15+ return window.getComputedStyle(el)
16+}
17+export function getPropertyValueImpl(propName, computedStyle) {
18+ return computedStyle.getPropertyValue(propName)
19+}
20+export function getElementStyle(el) {
21+ return () => el.style
22+}
23+export function setStyleProperty(prop) {
24+ return (value) => (style) => () => style.setProperty(prop, value)
25+}
26+export function matchMedia(string) {
27+ return (window) => () => {
2128 stubMatchMedia()
2229 return window.matchMedia(string)
30+ }
2331}
24−exports.matches = matchMedia => () => {
32+export function matches(matchMedia) {
33+ return () => {
2534 stubMatchMedia()
2635 return matchMedia.matches
36+ }
2737}
src/Yoga/Block/Hook/Key.js+7−7
@@ -1,7 +1,7 @@
1−exports.getKeyImpl = function (just) {
2− return function (nothing) {
3− return function (event) {
4− return event.keyCode ? just(event.keyCode) : nothing;
5− };
6− };
7−};
1+export function getKeyImpl(just) {
2+ return function (nothing) {
3+ return function (event) {
4+ return event.keyCode ? just(event.keyCode) : nothing
5+ }
6+ }
7+}
src/Yoga/Block/Hook/UseInView.js+2−2
@@ -1,3 +1,3 @@
1−const reactIntersectionObserver = require("react-intersection-observer")
1+import { useInView } from "react-intersection-observer"
22
3−exports.useInViewImpl = reactIntersectionObserver.useInView
3+export const useInViewImpl = useInView