@spark-web/columns 3.0.0-rc.0 → 3.0.0-rc.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @spark-web/columns
2
2
 
3
+ ## 3.0.0-rc.2
4
+
5
+ ### Major Changes
6
+
7
+ - add parser
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies []:
12
+ - @spark-web/theme@4.0.0-rc.2
13
+ - @spark-web/utils@2.0.0-rc.2
14
+ - @spark-web/box@2.0.0-rc.2
15
+
16
+ ## 3.0.0-rc.1
17
+
18
+ ### Major Changes
19
+
20
+ - rc
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies []:
25
+ - @spark-web/theme@4.0.0-rc.1
26
+ - @spark-web/utils@2.0.0-rc.1
27
+ - @spark-web/box@2.0.0-rc.1
28
+
3
29
  ## 3.0.0-rc.0
4
30
 
5
31
  ### Major Changes
@@ -0,0 +1,14 @@
1
+ declare const alignYLookup: {
2
+ readonly top: "start";
3
+ readonly center: "center";
4
+ readonly bottom: "end";
5
+ readonly stretch: "stretch";
6
+ };
7
+ export declare type AlignY = keyof typeof alignYLookup;
8
+ export declare const alignYToAlignItems: (prop?: import("@spark-web/theme").ResponsiveProp<"center" | "top" | "bottom" | "stretch"> | undefined) => "center" | "start" | "stretch" | "end" | {
9
+ mobile: "center" | "start" | "stretch" | "end" | undefined;
10
+ tablet: "center" | "start" | "stretch" | "end" | undefined;
11
+ desktop: "center" | "start" | "stretch" | "end" | undefined;
12
+ wide: "center" | "start" | "stretch" | "end" | undefined;
13
+ } | undefined;
14
+ export {};
@@ -0,0 +1,39 @@
1
+ import type { BoxProps } from '@spark-web/box';
2
+ import type { BrighteTheme, ResponsiveProp, ResponsiveRangeProps } from '@spark-web/theme';
3
+ import type { DataAttributeMap } from '@spark-web/utils/internal';
4
+ import type { ReactNode } from 'react';
5
+ import type { AlignY } from "./alignment.js";
6
+ declare type Gap = ResponsiveProp<keyof Omit<BrighteTheme['spacing'], 'none'>>;
7
+ declare type ValidBoxProps = Omit<BoxProps, 'display' | 'alignItems' | 'gap' | 'flexDirection' | 'justifyContent' | 'flexWrap' | 'dangerouslySetInnerHTML'>;
8
+ export declare type ColumnsProps = {
9
+ /** Vertically align items within the container. */
10
+ alignY?: ResponsiveProp<AlignY>;
11
+ /** Elements representing each column. */
12
+ children: ReactNode;
13
+ /** At which breakpoint, if any, should the columns collapse. */
14
+ collapseBelow?: ResponsiveRangeProps['below'];
15
+ /** Sets data attributes on the component. */
16
+ data?: DataAttributeMap;
17
+ /** The size of the gap between each column. */
18
+ gap?: Gap;
19
+ /** Define the relative width of each column. By default each column is the same width. */
20
+ template?: number[];
21
+ } & ValidBoxProps;
22
+ export declare const Columns: <Comp extends import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> = "div">(props: {
23
+ as?: Comp | undefined;
24
+ ref?: import("react").Ref<Comp extends "symbol" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "set" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | keyof HTMLElementTagNameMap ? (HTMLElementTagNameMap & Pick<SVGElementTagNameMap, "symbol" | "svg" | "animate" | "animateMotion" | "animateTransform" | "circle" | "clipPath" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "filter" | "foreignObject" | "g" | "image" | "line" | "linearGradient" | "marker" | "mask" | "metadata" | "mpath" | "path" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "set" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view">)[Comp] : Comp extends new (...args: any) => any ? InstanceType<Comp> : undefined> | undefined;
25
+ } & Omit<import("react").PropsWithoutRef<import("react").ComponentProps<Comp>>, "as"> & {
26
+ /** Vertically align items within the container. */
27
+ alignY?: ResponsiveProp<"center" | "top" | "bottom" | "stretch"> | undefined;
28
+ /** Elements representing each column. */
29
+ children: ReactNode;
30
+ /** At which breakpoint, if any, should the columns collapse. */
31
+ collapseBelow?: ResponsiveRangeProps['below'];
32
+ /** Sets data attributes on the component. */
33
+ data?: DataAttributeMap | undefined;
34
+ /** The size of the gap between each column. */
35
+ gap?: Gap | undefined;
36
+ /** Define the relative width of each column. By default each column is the same width. */
37
+ template?: number[] | undefined;
38
+ } & ValidBoxProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
39
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Columns } from "./columns.js";
2
+ export type { ColumnsProps } from "./columns.js";
@@ -1,2 +1,2 @@
1
- export * from "../src/index";
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhcmstd2ViLWNvbHVtbnMuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
1
+ export * from "./declarations/src/index";
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhcmstd2ViLWNvbHVtbnMuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
6
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
+ var react$1 = require('@emotion/react');
9
+ var box = require('@spark-web/box');
10
+ var theme = require('@spark-web/theme');
11
+ var ts = require('@spark-web/utils/ts');
12
+ var react = require('react');
13
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
14
+
15
+ var alignYLookup = {
16
+ top: 'start',
17
+ center: 'center',
18
+ bottom: 'end',
19
+ stretch: 'stretch'
20
+ };
21
+ var alignYToAlignItems = theme.createResponsiveMapFn(alignYLookup);
22
+
23
+ var _excluded = ["alignY", "collapseBelow", "data", "gap", "template"];
24
+ var Columns = ts.forwardRefWithAs(function (_ref, forwardedRef) {
25
+ var _ref$alignY = _ref.alignY,
26
+ alignY = _ref$alignY === void 0 ? 'top' : _ref$alignY,
27
+ collapseBelow = _ref.collapseBelow,
28
+ data = _ref.data,
29
+ gap = _ref.gap,
30
+ template = _ref.template,
31
+ props = _objectWithoutProperties(_ref, _excluded);
32
+ var theme$1 = theme.useTheme();
33
+ var alignItems = alignYToAlignItems(alignY);
34
+ var count = react.Children.count(props.children);
35
+ var gridTemplateColumns = template ? template.map(function (c) {
36
+ return "".concat(c, "fr");
37
+ }).join(' ') : "repeat(".concat(count, ", 1fr)");
38
+ var _theme$utils$responsi = theme$1.utils.responsiveRange({
39
+ below: collapseBelow
40
+ }),
41
+ _theme$utils$responsi2 = _slicedToArray(_theme$utils$responsi, 4),
42
+ collapseOnMobile = _theme$utils$responsi2[0],
43
+ collapseOnTablet = _theme$utils$responsi2[1],
44
+ collapseOnDesktop = _theme$utils$responsi2[2],
45
+ collapseOnWide = _theme$utils$responsi2[3];
46
+ return jsxRuntime.jsx(box.Box, _objectSpread({
47
+ ref: forwardedRef,
48
+ css: react$1.css(theme$1.utils.resolveResponsiveProps({
49
+ alignItems: alignItems,
50
+ display: 'grid',
51
+ gap: theme$1.utils.mapResponsiveScale(gap, theme$1.spacing),
52
+ gridTemplateColumns: collapseBelow ? theme$1.utils.optimizeResponsiveArray([collapseOnMobile ? null : gridTemplateColumns, collapseOnTablet ? null : gridTemplateColumns, collapseOnDesktop ? null : gridTemplateColumns, collapseOnWide ? null : gridTemplateColumns]) : gridTemplateColumns,
53
+ // fix flex overflow bug that prevents text truncation
54
+ '> *': {
55
+ minWidth: 0
56
+ }
57
+ })),
58
+ data: data
59
+ }, props));
60
+ });
61
+
62
+ exports.Columns = Columns;
@@ -1,16 +1,7 @@
1
- "use strict";
2
- // this file might look strange and you might be wondering what it's for
3
- // it's lets you import your source files by importing this entrypoint
4
- // as you would import it if it was built with preconstruct build
5
- // this file is slightly different to some others though
6
- // it has a require hook which compiles your code with Babel
7
- // this means that you don't have to set up @babel/register or anything like that
8
- // but you can still require this module and it'll be compiled
1
+ 'use strict';
9
2
 
10
- // this bit of code imports the require hook and registers it
11
- let unregister = require("../../../node_modules/@preconstruct/hook").___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, "../../..", "..");
12
-
13
- // this re-exports the source file
14
- module.exports = require("../src/index.ts");
15
-
16
- unregister();
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./spark-web-columns.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./spark-web-columns.cjs.dev.js");
7
+ }
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
6
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
+ var react$1 = require('@emotion/react');
9
+ var box = require('@spark-web/box');
10
+ var theme = require('@spark-web/theme');
11
+ var ts = require('@spark-web/utils/ts');
12
+ var react = require('react');
13
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
14
+
15
+ var alignYLookup = {
16
+ top: 'start',
17
+ center: 'center',
18
+ bottom: 'end',
19
+ stretch: 'stretch'
20
+ };
21
+ var alignYToAlignItems = theme.createResponsiveMapFn(alignYLookup);
22
+
23
+ var _excluded = ["alignY", "collapseBelow", "data", "gap", "template"];
24
+ var Columns = ts.forwardRefWithAs(function (_ref, forwardedRef) {
25
+ var _ref$alignY = _ref.alignY,
26
+ alignY = _ref$alignY === void 0 ? 'top' : _ref$alignY,
27
+ collapseBelow = _ref.collapseBelow,
28
+ data = _ref.data,
29
+ gap = _ref.gap,
30
+ template = _ref.template,
31
+ props = _objectWithoutProperties(_ref, _excluded);
32
+ var theme$1 = theme.useTheme();
33
+ var alignItems = alignYToAlignItems(alignY);
34
+ var count = react.Children.count(props.children);
35
+ var gridTemplateColumns = template ? template.map(function (c) {
36
+ return "".concat(c, "fr");
37
+ }).join(' ') : "repeat(".concat(count, ", 1fr)");
38
+ var _theme$utils$responsi = theme$1.utils.responsiveRange({
39
+ below: collapseBelow
40
+ }),
41
+ _theme$utils$responsi2 = _slicedToArray(_theme$utils$responsi, 4),
42
+ collapseOnMobile = _theme$utils$responsi2[0],
43
+ collapseOnTablet = _theme$utils$responsi2[1],
44
+ collapseOnDesktop = _theme$utils$responsi2[2],
45
+ collapseOnWide = _theme$utils$responsi2[3];
46
+ return jsxRuntime.jsx(box.Box, _objectSpread({
47
+ ref: forwardedRef,
48
+ css: react$1.css(theme$1.utils.resolveResponsiveProps({
49
+ alignItems: alignItems,
50
+ display: 'grid',
51
+ gap: theme$1.utils.mapResponsiveScale(gap, theme$1.spacing),
52
+ gridTemplateColumns: collapseBelow ? theme$1.utils.optimizeResponsiveArray([collapseOnMobile ? null : gridTemplateColumns, collapseOnTablet ? null : gridTemplateColumns, collapseOnDesktop ? null : gridTemplateColumns, collapseOnWide ? null : gridTemplateColumns]) : gridTemplateColumns,
53
+ // fix flex overflow bug that prevents text truncation
54
+ '> *': {
55
+ minWidth: 0
56
+ }
57
+ })),
58
+ data: data
59
+ }, props));
60
+ });
61
+
62
+ exports.Columns = Columns;
@@ -0,0 +1,58 @@
1
+ import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';
2
+ import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
4
+ import { css } from '@emotion/react';
5
+ import { Box } from '@spark-web/box';
6
+ import { createResponsiveMapFn, useTheme } from '@spark-web/theme';
7
+ import { forwardRefWithAs } from '@spark-web/utils/ts';
8
+ import { Children } from 'react';
9
+ import { jsx } from '@emotion/react/jsx-runtime';
10
+
11
+ var alignYLookup = {
12
+ top: 'start',
13
+ center: 'center',
14
+ bottom: 'end',
15
+ stretch: 'stretch'
16
+ };
17
+ var alignYToAlignItems = createResponsiveMapFn(alignYLookup);
18
+
19
+ var _excluded = ["alignY", "collapseBelow", "data", "gap", "template"];
20
+ var Columns = forwardRefWithAs(function (_ref, forwardedRef) {
21
+ var _ref$alignY = _ref.alignY,
22
+ alignY = _ref$alignY === void 0 ? 'top' : _ref$alignY,
23
+ collapseBelow = _ref.collapseBelow,
24
+ data = _ref.data,
25
+ gap = _ref.gap,
26
+ template = _ref.template,
27
+ props = _objectWithoutProperties(_ref, _excluded);
28
+ var theme = useTheme();
29
+ var alignItems = alignYToAlignItems(alignY);
30
+ var count = Children.count(props.children);
31
+ var gridTemplateColumns = template ? template.map(function (c) {
32
+ return "".concat(c, "fr");
33
+ }).join(' ') : "repeat(".concat(count, ", 1fr)");
34
+ var _theme$utils$responsi = theme.utils.responsiveRange({
35
+ below: collapseBelow
36
+ }),
37
+ _theme$utils$responsi2 = _slicedToArray(_theme$utils$responsi, 4),
38
+ collapseOnMobile = _theme$utils$responsi2[0],
39
+ collapseOnTablet = _theme$utils$responsi2[1],
40
+ collapseOnDesktop = _theme$utils$responsi2[2],
41
+ collapseOnWide = _theme$utils$responsi2[3];
42
+ return jsx(Box, _objectSpread({
43
+ ref: forwardedRef,
44
+ css: css(theme.utils.resolveResponsiveProps({
45
+ alignItems: alignItems,
46
+ display: 'grid',
47
+ gap: theme.utils.mapResponsiveScale(gap, theme.spacing),
48
+ gridTemplateColumns: collapseBelow ? theme.utils.optimizeResponsiveArray([collapseOnMobile ? null : gridTemplateColumns, collapseOnTablet ? null : gridTemplateColumns, collapseOnDesktop ? null : gridTemplateColumns, collapseOnWide ? null : gridTemplateColumns]) : gridTemplateColumns,
49
+ // fix flex overflow bug that prevents text truncation
50
+ '> *': {
51
+ minWidth: 0
52
+ }
53
+ })),
54
+ data: data
55
+ }, props));
56
+ });
57
+
58
+ export { Columns };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spark-web/columns",
3
- "version": "3.0.0-rc.0",
3
+ "version": "3.0.0-rc.2",
4
4
  "homepage": "https://github.com/brighte-labs/spark-web#readme",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,9 +17,9 @@
17
17
  "dependencies": {
18
18
  "@babel/runtime": "^7.25.0",
19
19
  "@emotion/react": "^11.13.5",
20
- "@spark-web/box": "^2.0.0-rc.0",
21
- "@spark-web/theme": "^4.0.0-rc.0",
22
- "@spark-web/utils": "^2.0.0-rc.0"
20
+ "@spark-web/box": "^2.0.0-rc.2",
21
+ "@spark-web/theme": "^4.0.0-rc.2",
22
+ "@spark-web/utils": "^2.0.0-rc.2"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/react": "^18.2.0",