@makeswift/runtime 0.0.0-a500663 → 0.0.0-a8dd080

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.
Files changed (134) hide show
  1. package/dist/actions.cjs.js +91 -0
  2. package/dist/actions.cjs.js.map +1 -0
  3. package/dist/actions.es.js +80 -0
  4. package/dist/actions.es.js.map +1 -0
  5. package/dist/box-model.cjs.js +9 -0
  6. package/dist/box-model.cjs.js.map +1 -0
  7. package/dist/box-model.es.js +3 -0
  8. package/dist/box-model.es.js.map +1 -0
  9. package/dist/box-models.cjs.js +236 -0
  10. package/dist/box-models.cjs.js.map +1 -0
  11. package/dist/box-models.es.js +227 -0
  12. package/dist/box-models.es.js.map +1 -0
  13. package/dist/components.cjs.js +6904 -0
  14. package/dist/components.cjs.js.map +1 -0
  15. package/dist/components.es.js +6868 -0
  16. package/dist/components.es.js.map +1 -0
  17. package/dist/main.cjs.js +8 -0
  18. package/dist/main.cjs.js.map +1 -0
  19. package/dist/main.es.js +2 -0
  20. package/dist/main.es.js.map +1 -0
  21. package/dist/prop-controllers.cjs.js +177 -0
  22. package/dist/prop-controllers.cjs.js.map +1 -0
  23. package/dist/prop-controllers.es.js +174 -0
  24. package/dist/prop-controllers.es.js.map +1 -0
  25. package/dist/react-builder-preview.cjs.js +4303 -0
  26. package/dist/react-builder-preview.cjs.js.map +1 -0
  27. package/dist/react-builder-preview.es.js +4296 -0
  28. package/dist/react-builder-preview.es.js.map +1 -0
  29. package/dist/react.cjs.js +13 -0
  30. package/dist/react.cjs.js.map +1 -0
  31. package/dist/react.cjs2.js +835 -0
  32. package/dist/react.cjs2.js.map +1 -0
  33. package/dist/react.es.js +4 -0
  34. package/dist/react.es.js.map +1 -0
  35. package/dist/react.es2.js +810 -0
  36. package/dist/react.es2.js.map +1 -0
  37. package/{src/box-model.ts → dist/types/box-model.d.ts} +3 -2
  38. package/dist/types/box-model.d.ts.map +1 -0
  39. package/dist/types/components/Box/Box.d.ts +27 -0
  40. package/dist/types/components/Box/Box.d.ts.map +1 -0
  41. package/dist/types/components/Box/animations.d.ts +69 -0
  42. package/dist/types/components/Box/animations.d.ts.map +1 -0
  43. package/dist/types/components/Box/components/Placeholder/index.d.ts +7 -0
  44. package/dist/types/components/Box/components/Placeholder/index.d.ts.map +1 -0
  45. package/dist/types/components/Box/index.d.ts +3 -0
  46. package/dist/types/components/Box/index.d.ts.map +1 -0
  47. package/dist/types/components/Root/Root.d.ts +11 -0
  48. package/dist/types/components/Root/Root.d.ts.map +1 -0
  49. package/dist/types/components/Root/components/Placeholder/index.d.ts +5 -0
  50. package/dist/types/components/Root/components/Placeholder/index.d.ts.map +1 -0
  51. package/dist/types/components/Root/index.d.ts +2 -0
  52. package/dist/types/components/Root/index.d.ts.map +1 -0
  53. package/dist/types/components/hooks/index.d.ts +2 -0
  54. package/dist/types/components/hooks/index.d.ts.map +1 -0
  55. package/dist/types/components/hooks/useMediaQuery.d.ts +3 -0
  56. package/dist/types/components/hooks/useMediaQuery.d.ts.map +1 -0
  57. package/dist/types/components/index.d.ts +4 -0
  58. package/dist/types/components/index.d.ts.map +1 -0
  59. package/dist/types/components/utils/columns.d.ts +2 -0
  60. package/dist/types/components/utils/columns.d.ts.map +1 -0
  61. package/dist/types/components/utils/cssMediaRules.d.ts +47 -0
  62. package/dist/types/components/utils/cssMediaRules.d.ts.map +1 -0
  63. package/dist/types/components/utils/devices.d.ts +16 -0
  64. package/dist/types/components/utils/devices.d.ts.map +1 -0
  65. package/dist/types/index.d.ts +6 -0
  66. package/dist/types/index.d.ts.map +1 -0
  67. package/dist/types/prop-controllers/descriptors.d.ts +656 -0
  68. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -0
  69. package/dist/types/prop-controllers/index.d.ts +3 -0
  70. package/dist/types/prop-controllers/index.d.ts.map +1 -0
  71. package/dist/types/react.d.ts +4 -0
  72. package/dist/types/react.d.ts.map +1 -0
  73. package/dist/types/runtimes/react.d.ts +28 -0
  74. package/dist/types/runtimes/react.d.ts.map +1 -0
  75. package/dist/types/state/actions.d.ts +124 -0
  76. package/dist/types/state/actions.d.ts.map +1 -0
  77. package/dist/types/state/modules/box-models.d.ts +22 -0
  78. package/dist/types/state/modules/box-models.d.ts.map +1 -0
  79. package/dist/types/state/modules/components-meta.d.ts +14 -0
  80. package/dist/types/state/modules/components-meta.d.ts.map +1 -0
  81. package/dist/types/state/modules/prop-controllers.d.ts +10 -0
  82. package/dist/types/state/modules/prop-controllers.d.ts.map +1 -0
  83. package/dist/types/state/modules/react-components.d.ts +10 -0
  84. package/dist/types/state/modules/react-components.d.ts.map +1 -0
  85. package/dist/types/state/modules/read-only-documents.d.ts +28 -0
  86. package/dist/types/state/modules/read-only-documents.d.ts.map +1 -0
  87. package/dist/types/state/modules/read-write-documents.d.ts +13 -0
  88. package/dist/types/state/modules/read-write-documents.d.ts.map +1 -0
  89. package/dist/types/state/react-builder-preview.d.ts +39 -0
  90. package/dist/types/state/react-builder-preview.d.ts.map +1 -0
  91. package/dist/types/state/react-page.d.ts +28 -0
  92. package/dist/types/state/react-page.d.ts.map +1 -0
  93. package/dist/types/utils/deepEqual.d.ts +3 -0
  94. package/dist/types/utils/deepEqual.d.ts.map +1 -0
  95. package/dist/types/utils/is.d.ts +2 -0
  96. package/dist/types/utils/is.d.ts.map +1 -0
  97. package/dist/types/utils/shallowEqual.d.ts +3 -0
  98. package/dist/types/utils/shallowEqual.d.ts.map +1 -0
  99. package/package.json +11 -24
  100. package/box-model.js +0 -1
  101. package/components.js +0 -1
  102. package/favicon.svg +0 -15
  103. package/index.html +0 -13
  104. package/prop-controllers.js +0 -1
  105. package/react.js +0 -1
  106. package/src/components/Root/Root.tsx +0 -72
  107. package/src/components/Root/components/Placeholder/index.tsx +0 -37
  108. package/src/components/Root/index.tsx +0 -1
  109. package/src/components/index.ts +0 -1
  110. package/src/components/utils/columns.ts +0 -15
  111. package/src/components/utils/cssMediaRules.ts +0 -91
  112. package/src/components/utils/devices.ts +0 -86
  113. package/src/index.ts +0 -8
  114. package/src/prop-controllers/descriptors.ts +0 -821
  115. package/src/prop-controllers/index.ts +0 -10
  116. package/src/react.ts +0 -3
  117. package/src/runtimes/react.tsx +0 -223
  118. package/src/state/actions.ts +0 -239
  119. package/src/state/modules/box-models.ts +0 -112
  120. package/src/state/modules/components-meta.ts +0 -44
  121. package/src/state/modules/prop-controllers.ts +0 -45
  122. package/src/state/modules/react-components.tsx +0 -47
  123. package/src/state/modules/read-only-documents.ts +0 -51
  124. package/src/state/modules/read-write-documents.ts +0 -75
  125. package/src/state/react-builder-preview.ts +0 -271
  126. package/src/state/react-page.ts +0 -73
  127. package/src/style.css +0 -8
  128. package/src/utils/deepEqual.ts +0 -33
  129. package/src/utils/is.ts +0 -5
  130. package/src/utils/shallowEqual.ts +0 -30
  131. package/src/vite-env.d.ts +0 -1
  132. package/tsconfig.json +0 -23
  133. package/types/ot-json0.d.ts +0 -35
  134. package/vite.config.ts +0 -28
@@ -1,72 +0,0 @@
1
- import styled, { createGlobalStyle } from 'styled-components'
2
- import { normalize } from 'polished'
3
- import { forwardRef, Ref } from 'react'
4
-
5
- import Placeholder from './components/Placeholder'
6
- import {
7
- GridValue,
8
- BackgroundsValue,
9
- GapXValue,
10
- GapYValue,
11
- } from '../../prop-controllers/descriptors'
12
- import { Element } from '../../react'
13
- import { cssGridItem } from '../utils/cssMediaRules'
14
-
15
- const Normalize = createGlobalStyle`
16
- html {
17
- box-sizing: border-box;
18
- }
19
-
20
- *, *::before, *::after {
21
- box-sizing: inherit;
22
- }
23
-
24
- ${normalize()}
25
- `
26
-
27
- const Grid = styled.div`
28
- display: flex;
29
- flex-wrap: wrap;
30
- width: 100%;
31
- `
32
-
33
- const GridItem = styled.div`
34
- display: flex;
35
- align-items: flex-start;
36
- ${cssGridItem()}
37
- `
38
-
39
- type Props = {
40
- children?: GridValue
41
- backgrounds?: BackgroundsValue
42
- rowGap?: GapYValue
43
- columnGap?: GapXValue
44
- }
45
-
46
- export default forwardRef(function Page(
47
- { children, rowGap, columnGap }: Props,
48
- ref: Ref<HTMLDivElement>,
49
- ) {
50
- return (
51
- <>
52
- <Normalize />
53
- <Grid ref={ref}>
54
- {children && children.elements.length > 0 ? (
55
- children.elements.map((child, index) => (
56
- <GridItem
57
- key={child.key}
58
- grid={children.columns}
59
- index={index}
60
- columnGap={columnGap}
61
- rowGap={rowGap}
62
- >
63
- <Element element={child} />
64
- </GridItem>
65
- ))
66
- ) : (
67
- <Placeholder />
68
- )}
69
- </Grid>
70
- </>
71
- )
72
- })
@@ -1,37 +0,0 @@
1
- import { forwardRef } from 'react'
2
- import styled from 'styled-components'
3
-
4
- const PlaceholderBase = styled.div`
5
- width: 100%;
6
- background: rgba(161, 168, 194, 0.18);
7
- height: 80px;
8
- padding: 8px;
9
- `
10
-
11
- type Props = Record<string, never>
12
-
13
- export default forwardRef<HTMLDivElement, Props>(function Placeholder(props: Props, ref) {
14
- return (
15
- <PlaceholderBase {...props} ref={ref}>
16
- <svg
17
- xmlns="http://www.w3.org/2000/svg"
18
- width="100%"
19
- height="100%"
20
- style={{ overflow: 'visible' }}
21
- >
22
- <rect
23
- x={0}
24
- y={0}
25
- width="100%"
26
- height="100%"
27
- strokeWidth={2}
28
- strokeDasharray="4 2"
29
- fill="none"
30
- stroke="rgba(161, 168, 194, 0.40)"
31
- rx="4"
32
- ry="4"
33
- />
34
- </svg>
35
- </PlaceholderBase>
36
- )
37
- })
@@ -1 +0,0 @@
1
- export { default } from './Root'
@@ -1 +0,0 @@
1
- export { default as Root } from './Root'
@@ -1,15 +0,0 @@
1
- export const getIndexes = (spans: Array<Array<number>>, index: number): [number, number] => {
2
- const flattened = spans.reduce((a, s) => a.concat(s), [])
3
-
4
- if (index < 0 || index > flattened.length) throw new RangeError()
5
-
6
- let remainder = index
7
- let rowIndex = 0
8
-
9
- while (rowIndex < spans.length - 1 && remainder >= spans[rowIndex].length) {
10
- remainder -= spans[rowIndex].length
11
- rowIndex += 1
12
- }
13
-
14
- return [rowIndex, remainder]
15
- }
@@ -1,91 +0,0 @@
1
- import { css, CSSObject } from 'styled-components'
2
-
3
- import {
4
- ResponsiveValue,
5
- ResponsiveValueType as ExtractResponsiveValue,
6
- Length as LengthValue,
7
- } from '../../prop-controllers'
8
- import {
9
- FallbackStrategy,
10
- getDevice,
11
- getDeviceMediaQuery,
12
- join as joinResponsiveValues,
13
- } from './devices'
14
- import { getIndexes } from './columns'
15
-
16
- type CSSRules = ReturnType<typeof css>
17
-
18
- export function cssMediaRules<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, P>(
19
- responsiveValues: A | ((props: P) => A),
20
- join: (
21
- values: { [K in keyof A]: ExtractResponsiveValue<A[K]> | undefined },
22
- ) => CSSRules | CSSObject,
23
- strategy?: FallbackStrategy<V>,
24
- ): (props: P) => CSSRules {
25
- return props =>
26
- joinResponsiveValues(
27
- typeof responsiveValues === 'function' ? responsiveValues(props) : responsiveValues,
28
- join,
29
- strategy,
30
- ).reduce((acc, { deviceId, value }) => {
31
- const device = getDevice(deviceId)
32
- const mediaQuery = getDeviceMediaQuery(device)
33
-
34
- return css`
35
- ${acc}${mediaQuery} {
36
- ${value}
37
- }
38
- `
39
- }, css`` as CSSRules)
40
- }
41
-
42
- const floor = (d: number) => (v: number): number => Math.floor(10 ** d * v) / 10 ** d
43
-
44
- export function cssGridItem(): (props: {
45
- grid: ResponsiveValue<{ spans: Array<Array<number>>; count: number }>
46
- index: number
47
- columnGap?: ResponsiveValue<LengthValue>
48
- rowGap?: ResponsiveValue<LengthValue>
49
- }) => CSSRules {
50
- return props => css`
51
- display: flex;
52
-
53
- /* TODO: A default span of 12 won't work once the column count is modifiable. */
54
- ${cssMediaRules(
55
- [props.grid, props.columnGap, props.rowGap] as const,
56
- ([
57
- { spans, count } = { spans: [[12]], count: 12 },
58
- columnGap = { value: 0, unit: 'px' },
59
- rowGap = { value: 0, unit: 'px' },
60
- ]) => {
61
- const [rowIndex, columnIndex] = getIndexes(spans, props.index)
62
- const firstCol = columnIndex === 0
63
- const lastCol = columnIndex === spans[rowIndex].length - 1
64
- const span = spans[rowIndex][columnIndex]
65
- const fraction = floor(5)(span / count)
66
- const width = `${fraction} * (100% + ${columnGap.value}${columnGap.unit})`
67
- const excessWidth = `${Number(firstCol) + Number(lastCol)} * ${columnGap.value}${
68
- columnGap.unit
69
- } / 2`
70
- const iePrecisionError = '0.01px'
71
- const flexBasis = `calc(${width} - ${excessWidth} - ${iePrecisionError})`
72
- const firstRow = rowIndex === 0
73
- const lastRow = rowIndex === spans.length - 1
74
-
75
- return span === 0
76
- ? { display: 'none' }
77
- : {
78
- flexBasis,
79
- minWidth: flexBasis,
80
- // NOTE: IE11 width breaks without max width
81
- // https://github.com/philipwalton/flexbugs/issues/3
82
- maxWidth: flexBasis,
83
- paddingLeft: firstCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,
84
- paddingRight: lastCol ? 0 : `${columnGap.value / 2}${columnGap.unit}`,
85
- paddingTop: firstRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,
86
- paddingBottom: lastRow ? 0 : `${rowGap.value / 2}${rowGap.unit}`,
87
- }
88
- },
89
- )}
90
- `
91
- }
@@ -1,86 +0,0 @@
1
- import type { Device as DeviceID, DeviceOverride, ResponsiveValue } from '../../prop-controllers'
2
-
3
- export type Device = {
4
- id: DeviceID
5
- minWidth?: number
6
- maxWidth?: number
7
- }
8
-
9
- export const DEVICES: Array<Device> = [
10
- { id: 'desktop', minWidth: 769 },
11
- { id: 'tablet', minWidth: 476, maxWidth: 768 },
12
- { id: 'mobile', maxWidth: 475 },
13
- ]
14
-
15
- export const getDevice = (deviceId: DeviceID): Device => {
16
- const device = DEVICES.find(({ id }) => id === deviceId)
17
-
18
- if (device == null) throw new Error(`Unrecognized device ID: "${deviceId}".`)
19
-
20
- return device
21
- }
22
-
23
- export type FallbackStrategy<V> = (
24
- arg0: DeviceOverride<V> | undefined,
25
- arg1: ResponsiveValue<V>,
26
- ) => DeviceOverride<V> | undefined
27
-
28
- function defaultStrategy<V>(
29
- value: DeviceOverride<V> | undefined,
30
- fallbacks: ResponsiveValue<V>,
31
- ): DeviceOverride<V> | undefined {
32
- return value || fallbacks[0]
33
- }
34
-
35
- export function findDeviceOverride<S>(
36
- values: ResponsiveValue<S> = [],
37
- deviceId: string,
38
- strategy: FallbackStrategy<S> = defaultStrategy,
39
- ): DeviceOverride<S> | undefined {
40
- const value = values.find(({ deviceId: d }) => d === deviceId)
41
- const fallbacks = DEVICES.slice(0, DEVICES.findIndex(d => d.id === deviceId) + 1)
42
- .reverse()
43
- .map(d => values.find(v => v.deviceId === d.id))
44
- .filter((override): override is DeviceOverride<S> => Boolean(override))
45
-
46
- return value != null || fallbacks.length > 0 ? strategy(value, fallbacks) : undefined
47
- }
48
-
49
- export type ExtractResponsiveValue<T> = T extends ResponsiveValue<infer V> ? V : never
50
-
51
- export function join<V, A extends ReadonlyArray<ResponsiveValue<V> | null | undefined>, R>(
52
- responsiveValues: A,
53
- joinFn: (values: { [I in keyof A]: ExtractResponsiveValue<A[I]> | undefined }) => R,
54
- strategy?: FallbackStrategy<V>,
55
- ): ResponsiveValue<R> {
56
- return DEVICES.map(({ id }) => id)
57
- .map(deviceId => {
58
- const value = joinFn(
59
- (responsiveValues.map(responsiveValue => {
60
- const deviceValue =
61
- responsiveValue && findDeviceOverride(responsiveValue, deviceId, strategy)
62
-
63
- return deviceValue == null ? undefined : deviceValue.value
64
- }) as unknown) as { [I in keyof A]: ExtractResponsiveValue<A[I] | undefined> },
65
- )
66
-
67
- if (value == null) return null
68
-
69
- return { deviceId, value }
70
- })
71
- .filter((override): override is DeviceOverride<R> => Boolean(override))
72
- }
73
-
74
- export const getDeviceMediaQuery = (device: Device): string => {
75
- const parts = ['@media only screen']
76
-
77
- if (device.minWidth != null) {
78
- parts.push(`(min-width: ${device.minWidth}px)`)
79
- }
80
-
81
- if (device.maxWidth != null) {
82
- parts.push(`(max-width: ${device.maxWidth}px)`)
83
- }
84
-
85
- return parts.join(' and ')
86
- }
package/src/index.ts DELETED
@@ -1,8 +0,0 @@
1
- export type { Action } from './state/actions'
2
- export { ActionTypes, changeDocument, changeDocumentElementScrollTop } from './state/actions'
3
- export type { Operation } from './state/modules/read-write-documents'
4
- export type { ComponentMeta } from './state/modules/components-meta'
5
- export type {
6
- PropControllerDescriptor,
7
- PropControllerDescriptorValueType,
8
- } from './prop-controllers'