@spark-web/button 1.0.0 → 1.0.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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @spark-web/button
|
|
2
2
|
|
|
3
|
+
## 1.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#36](https://github.com/brighte-labs/spark-web/pull/36)
|
|
8
|
+
[`8546f8f`](https://github.com/brighte-labs/spark-web/commit/8546f8f05daaa79ea3ff954c6c4928a7a2d0622d)
|
|
9
|
+
Thanks [@lukebennett88](https://github.com/lukebennett88)! - Update Babel
|
|
10
|
+
config
|
|
11
|
+
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
[[`aebff30`](https://github.com/brighte-labs/spark-web/commit/aebff30c86cb0a9db22b545c46159ce0d1c14afb),
|
|
14
|
+
[`8546f8f`](https://github.com/brighte-labs/spark-web/commit/8546f8f05daaa79ea3ff954c6c4928a7a2d0622d)]:
|
|
15
|
+
- @spark-web/theme@2.0.0
|
|
16
|
+
- @spark-web/a11y@1.0.1
|
|
17
|
+
- @spark-web/box@1.0.1
|
|
18
|
+
- @spark-web/icon@1.0.1
|
|
19
|
+
- @spark-web/link@1.0.1
|
|
20
|
+
- @spark-web/text@1.0.1
|
|
21
|
+
- @spark-web/utils@1.0.1
|
|
22
|
+
|
|
3
23
|
## 1.0.0
|
|
4
24
|
|
|
5
25
|
### Major Changes
|
|
@@ -5,5 +5,5 @@ export declare type ButtonLinkProps = LinkComponentProps & CommonButtonProps;
|
|
|
5
5
|
/** The appearance of a `Button`, with the semantics of a link. */
|
|
6
6
|
export declare const ButtonLink: <Comp extends import("react").ElementType<any> = "a">(props: {
|
|
7
7
|
as?: Comp | undefined;
|
|
8
|
-
ref?: import("react").Ref<Comp extends "symbol" | "
|
|
8
|
+
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" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | "set" | 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" | "stop" | "switch" | "text" | "textPath" | "tspan" | "use" | "view" | "set">)[Comp] : Comp extends new (...args: any) => any ? InstanceType<Comp> : undefined> | undefined;
|
|
9
9
|
} & Omit<import("react").PropsWithoutRef<import("react").ComponentProps<Comp>>, "as"> & ButtonLinkProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/esm/objectWithoutProperties');
|
|
5
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
6
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
8
7
|
var box = require('@spark-web/box');
|
|
9
8
|
var internal = require('@spark-web/utils/internal');
|
|
10
9
|
var React = require('react');
|
|
11
10
|
var text = require('@spark-web/text');
|
|
11
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
12
|
var css = require('@emotion/css');
|
|
13
13
|
var a11y = require('@spark-web/a11y');
|
|
14
14
|
var theme = require('@spark-web/theme');
|
|
@@ -177,7 +177,6 @@ var mapTokens = {
|
|
|
177
177
|
}
|
|
178
178
|
};
|
|
179
179
|
|
|
180
|
-
var __jsx$2 = React__namespace["default"].createElement;
|
|
181
180
|
var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
182
181
|
var children = _ref.children,
|
|
183
182
|
prominence = _ref.prominence,
|
|
@@ -186,14 +185,15 @@ var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
|
186
185
|
var variant = variants[prominence][tone];
|
|
187
186
|
return React.Children.map(children, function (child) {
|
|
188
187
|
if (typeof child === 'string') {
|
|
189
|
-
return
|
|
188
|
+
return /*#__PURE__*/jsxRuntime.jsx(text.Text, {
|
|
190
189
|
as: "span",
|
|
191
190
|
baseline: false,
|
|
192
191
|
overflowStrategy: "nowrap",
|
|
193
192
|
weight: "strong",
|
|
194
193
|
size: mapTokens.fontSize[size],
|
|
195
|
-
tone: variant === null || variant === void 0 ? void 0 : variant.textTone
|
|
196
|
-
|
|
194
|
+
tone: variant === null || variant === void 0 ? void 0 : variant.textTone,
|
|
195
|
+
children: child
|
|
196
|
+
});
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
if ( /*#__PURE__*/React.isValidElement(child)) {
|
|
@@ -212,9 +212,6 @@ var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
|
212
212
|
});
|
|
213
213
|
};
|
|
214
214
|
|
|
215
|
-
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
216
|
-
|
|
217
|
-
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
218
215
|
function useButtonStyles(_ref) {
|
|
219
216
|
var iconOnly = _ref.iconOnly,
|
|
220
217
|
prominence = _ref.prominence,
|
|
@@ -246,12 +243,12 @@ function useButtonStyles(_ref) {
|
|
|
246
243
|
position: 'relative',
|
|
247
244
|
width: iconOnly ? mapTokens.size[size] : undefined,
|
|
248
245
|
// interactions styles
|
|
249
|
-
className: css.css(_objectSpread
|
|
246
|
+
className: css.css(_objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
250
247
|
'&:hover': {
|
|
251
248
|
borderColor: variant !== null && variant !== void 0 && variant.borderHover ? theme$1.border.color[variant.borderHover] : undefined,
|
|
252
249
|
backgroundColor: variant !== null && variant !== void 0 && variant.backgroundHover ? theme$1.backgroundInteractions[variant.backgroundHover] : undefined,
|
|
253
250
|
// Style button text when hovering
|
|
254
|
-
'> *': _objectSpread
|
|
251
|
+
'> *': _objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
255
252
|
color: variant !== null && variant !== void 0 && variant.textToneHover ? theme$1.color.foreground[variant.textToneHover] : undefined,
|
|
256
253
|
stroke: variant !== null && variant !== void 0 && variant.textToneHover ? theme$1.color.foreground[variant.textToneHover] : undefined
|
|
257
254
|
})
|
|
@@ -261,7 +258,7 @@ function useButtonStyles(_ref) {
|
|
|
261
258
|
backgroundColor: variant !== null && variant !== void 0 && variant.backgroundActive ? theme$1.backgroundInteractions[variant === null || variant === void 0 ? void 0 : variant.backgroundActive] : undefined,
|
|
262
259
|
transform: 'scale(0.98)',
|
|
263
260
|
// Style button text when it's active
|
|
264
|
-
'> *': _objectSpread
|
|
261
|
+
'> *': _objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
265
262
|
color: variant !== null && variant !== void 0 && variant.textToneActive ? theme$1.color.foreground[variant.textToneActive] : undefined,
|
|
266
263
|
stroke: variant !== null && variant !== void 0 && variant.textToneActive ? theme$1.color.foreground[variant.textToneActive] : undefined
|
|
267
264
|
})
|
|
@@ -273,17 +270,6 @@ function useButtonStyles(_ref) {
|
|
|
273
270
|
}
|
|
274
271
|
|
|
275
272
|
var _excluded$1 = ["aria-controls", "aria-describedby", "aria-expanded", "data", "disabled", "id", "onClick", "prominence", "size", "tone", "type"];
|
|
276
|
-
var __jsx$1 = React__namespace.createElement;
|
|
277
|
-
|
|
278
|
-
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
279
|
-
|
|
280
|
-
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
281
|
-
// discuss with design:
|
|
282
|
-
// - sizes
|
|
283
|
-
// - variants
|
|
284
|
-
// implementation details:
|
|
285
|
-
// - handle fragments?
|
|
286
|
-
// - validate children?
|
|
287
273
|
|
|
288
274
|
/**
|
|
289
275
|
* Buttons are used to initialize an action, their label should express what
|
|
@@ -325,7 +311,7 @@ var Button = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
|
325
311
|
*/
|
|
326
312
|
|
|
327
313
|
var handleClick = getPreventableClickHandler(onClick, isDisabled);
|
|
328
|
-
return
|
|
314
|
+
return /*#__PURE__*/jsxRuntime.jsx(box.Box, _objectSpread(_objectSpread(_objectSpread({
|
|
329
315
|
"aria-controls": ariaControls,
|
|
330
316
|
"aria-describedby": ariaDescribedBy,
|
|
331
317
|
"aria-disabled": isDisabled,
|
|
@@ -336,11 +322,13 @@ var Button = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
|
336
322
|
onClick: handleClick,
|
|
337
323
|
ref: ref,
|
|
338
324
|
type: type
|
|
339
|
-
}, buttonStyleProps, data ? internal.buildDataAttributes(data) : undefined),
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
325
|
+
}, buttonStyleProps), data ? internal.buildDataAttributes(data) : undefined), {}, {
|
|
326
|
+
children: resolveButtonChildren(_objectSpread(_objectSpread({}, props), {}, {
|
|
327
|
+
prominence: prominence,
|
|
328
|
+
size: size,
|
|
329
|
+
tone: tone
|
|
330
|
+
}))
|
|
331
|
+
}));
|
|
344
332
|
});
|
|
345
333
|
Button.displayName = 'Buttton';
|
|
346
334
|
/**
|
|
@@ -360,11 +348,6 @@ function getPreventableClickHandler(onClick, disabled) {
|
|
|
360
348
|
}
|
|
361
349
|
|
|
362
350
|
var _excluded = ["data", "href", "id", "prominence", "size", "tone"];
|
|
363
|
-
var __jsx = React__namespace["default"].createElement;
|
|
364
|
-
|
|
365
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
366
|
-
|
|
367
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
368
351
|
|
|
369
352
|
/** The appearance of a `Button`, with the semantics of a link. */
|
|
370
353
|
var ButtonLink = ts.forwardRefWithAs(function (_ref, ref) {
|
|
@@ -387,18 +370,20 @@ var ButtonLink = ts.forwardRefWithAs(function (_ref, ref) {
|
|
|
387
370
|
tone: tone,
|
|
388
371
|
prominence: prominence
|
|
389
372
|
});
|
|
390
|
-
return
|
|
373
|
+
return /*#__PURE__*/jsxRuntime.jsx(box.Box, _objectSpread(_objectSpread(_objectSpread({
|
|
391
374
|
"aria-label": props.label,
|
|
392
375
|
as: LinkComponent,
|
|
393
376
|
asElement: "a",
|
|
394
377
|
id: id,
|
|
395
378
|
href: href,
|
|
396
379
|
ref: ref
|
|
397
|
-
}, buttonStyleProps, data ? internal.buildDataAttributes(data) : undefined),
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
380
|
+
}, buttonStyleProps), data ? internal.buildDataAttributes(data) : undefined), {}, {
|
|
381
|
+
children: resolveButtonChildren(_objectSpread(_objectSpread({}, props), {}, {
|
|
382
|
+
prominence: prominence,
|
|
383
|
+
size: size,
|
|
384
|
+
tone: tone
|
|
385
|
+
}))
|
|
386
|
+
}));
|
|
402
387
|
});
|
|
403
388
|
|
|
404
389
|
exports.Button = Button;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/esm/objectWithoutProperties');
|
|
5
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
6
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
8
7
|
var box = require('@spark-web/box');
|
|
9
8
|
var internal = require('@spark-web/utils/internal');
|
|
10
9
|
var React = require('react');
|
|
11
10
|
var text = require('@spark-web/text');
|
|
11
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
12
|
var css = require('@emotion/css');
|
|
13
13
|
var a11y = require('@spark-web/a11y');
|
|
14
14
|
var theme = require('@spark-web/theme');
|
|
@@ -177,7 +177,6 @@ var mapTokens = {
|
|
|
177
177
|
}
|
|
178
178
|
};
|
|
179
179
|
|
|
180
|
-
var __jsx$2 = React__namespace["default"].createElement;
|
|
181
180
|
var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
182
181
|
var children = _ref.children,
|
|
183
182
|
prominence = _ref.prominence,
|
|
@@ -186,14 +185,15 @@ var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
|
186
185
|
var variant = variants[prominence][tone];
|
|
187
186
|
return React.Children.map(children, function (child) {
|
|
188
187
|
if (typeof child === 'string') {
|
|
189
|
-
return
|
|
188
|
+
return /*#__PURE__*/jsxRuntime.jsx(text.Text, {
|
|
190
189
|
as: "span",
|
|
191
190
|
baseline: false,
|
|
192
191
|
overflowStrategy: "nowrap",
|
|
193
192
|
weight: "strong",
|
|
194
193
|
size: mapTokens.fontSize[size],
|
|
195
|
-
tone: variant === null || variant === void 0 ? void 0 : variant.textTone
|
|
196
|
-
|
|
194
|
+
tone: variant === null || variant === void 0 ? void 0 : variant.textTone,
|
|
195
|
+
children: child
|
|
196
|
+
});
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
if ( /*#__PURE__*/React.isValidElement(child)) {
|
|
@@ -212,9 +212,6 @@ var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
|
212
212
|
});
|
|
213
213
|
};
|
|
214
214
|
|
|
215
|
-
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
216
|
-
|
|
217
|
-
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
218
215
|
function useButtonStyles(_ref) {
|
|
219
216
|
var iconOnly = _ref.iconOnly,
|
|
220
217
|
prominence = _ref.prominence,
|
|
@@ -246,12 +243,12 @@ function useButtonStyles(_ref) {
|
|
|
246
243
|
position: 'relative',
|
|
247
244
|
width: iconOnly ? mapTokens.size[size] : undefined,
|
|
248
245
|
// interactions styles
|
|
249
|
-
className: css.css(_objectSpread
|
|
246
|
+
className: css.css(_objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
250
247
|
'&:hover': {
|
|
251
248
|
borderColor: variant !== null && variant !== void 0 && variant.borderHover ? theme$1.border.color[variant.borderHover] : undefined,
|
|
252
249
|
backgroundColor: variant !== null && variant !== void 0 && variant.backgroundHover ? theme$1.backgroundInteractions[variant.backgroundHover] : undefined,
|
|
253
250
|
// Style button text when hovering
|
|
254
|
-
'> *': _objectSpread
|
|
251
|
+
'> *': _objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
255
252
|
color: variant !== null && variant !== void 0 && variant.textToneHover ? theme$1.color.foreground[variant.textToneHover] : undefined,
|
|
256
253
|
stroke: variant !== null && variant !== void 0 && variant.textToneHover ? theme$1.color.foreground[variant.textToneHover] : undefined
|
|
257
254
|
})
|
|
@@ -261,7 +258,7 @@ function useButtonStyles(_ref) {
|
|
|
261
258
|
backgroundColor: variant !== null && variant !== void 0 && variant.backgroundActive ? theme$1.backgroundInteractions[variant === null || variant === void 0 ? void 0 : variant.backgroundActive] : undefined,
|
|
262
259
|
transform: 'scale(0.98)',
|
|
263
260
|
// Style button text when it's active
|
|
264
|
-
'> *': _objectSpread
|
|
261
|
+
'> *': _objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
265
262
|
color: variant !== null && variant !== void 0 && variant.textToneActive ? theme$1.color.foreground[variant.textToneActive] : undefined,
|
|
266
263
|
stroke: variant !== null && variant !== void 0 && variant.textToneActive ? theme$1.color.foreground[variant.textToneActive] : undefined
|
|
267
264
|
})
|
|
@@ -273,17 +270,6 @@ function useButtonStyles(_ref) {
|
|
|
273
270
|
}
|
|
274
271
|
|
|
275
272
|
var _excluded$1 = ["aria-controls", "aria-describedby", "aria-expanded", "data", "disabled", "id", "onClick", "prominence", "size", "tone", "type"];
|
|
276
|
-
var __jsx$1 = React__namespace.createElement;
|
|
277
|
-
|
|
278
|
-
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
279
|
-
|
|
280
|
-
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
281
|
-
// discuss with design:
|
|
282
|
-
// - sizes
|
|
283
|
-
// - variants
|
|
284
|
-
// implementation details:
|
|
285
|
-
// - handle fragments?
|
|
286
|
-
// - validate children?
|
|
287
273
|
|
|
288
274
|
/**
|
|
289
275
|
* Buttons are used to initialize an action, their label should express what
|
|
@@ -325,7 +311,7 @@ var Button = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
|
325
311
|
*/
|
|
326
312
|
|
|
327
313
|
var handleClick = getPreventableClickHandler(onClick, isDisabled);
|
|
328
|
-
return
|
|
314
|
+
return /*#__PURE__*/jsxRuntime.jsx(box.Box, _objectSpread(_objectSpread(_objectSpread({
|
|
329
315
|
"aria-controls": ariaControls,
|
|
330
316
|
"aria-describedby": ariaDescribedBy,
|
|
331
317
|
"aria-disabled": isDisabled,
|
|
@@ -336,11 +322,13 @@ var Button = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
|
|
|
336
322
|
onClick: handleClick,
|
|
337
323
|
ref: ref,
|
|
338
324
|
type: type
|
|
339
|
-
}, buttonStyleProps, data ? internal.buildDataAttributes(data) : undefined),
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
325
|
+
}, buttonStyleProps), data ? internal.buildDataAttributes(data) : undefined), {}, {
|
|
326
|
+
children: resolveButtonChildren(_objectSpread(_objectSpread({}, props), {}, {
|
|
327
|
+
prominence: prominence,
|
|
328
|
+
size: size,
|
|
329
|
+
tone: tone
|
|
330
|
+
}))
|
|
331
|
+
}));
|
|
344
332
|
});
|
|
345
333
|
Button.displayName = 'Buttton';
|
|
346
334
|
/**
|
|
@@ -360,11 +348,6 @@ function getPreventableClickHandler(onClick, disabled) {
|
|
|
360
348
|
}
|
|
361
349
|
|
|
362
350
|
var _excluded = ["data", "href", "id", "prominence", "size", "tone"];
|
|
363
|
-
var __jsx = React__namespace["default"].createElement;
|
|
364
|
-
|
|
365
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
366
|
-
|
|
367
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
368
351
|
|
|
369
352
|
/** The appearance of a `Button`, with the semantics of a link. */
|
|
370
353
|
var ButtonLink = ts.forwardRefWithAs(function (_ref, ref) {
|
|
@@ -387,18 +370,20 @@ var ButtonLink = ts.forwardRefWithAs(function (_ref, ref) {
|
|
|
387
370
|
tone: tone,
|
|
388
371
|
prominence: prominence
|
|
389
372
|
});
|
|
390
|
-
return
|
|
373
|
+
return /*#__PURE__*/jsxRuntime.jsx(box.Box, _objectSpread(_objectSpread(_objectSpread({
|
|
391
374
|
"aria-label": props.label,
|
|
392
375
|
as: LinkComponent,
|
|
393
376
|
asElement: "a",
|
|
394
377
|
id: id,
|
|
395
378
|
href: href,
|
|
396
379
|
ref: ref
|
|
397
|
-
}, buttonStyleProps, data ? internal.buildDataAttributes(data) : undefined),
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
380
|
+
}, buttonStyleProps), data ? internal.buildDataAttributes(data) : undefined), {}, {
|
|
381
|
+
children: resolveButtonChildren(_objectSpread(_objectSpread({}, props), {}, {
|
|
382
|
+
prominence: prominence,
|
|
383
|
+
size: size,
|
|
384
|
+
tone: tone
|
|
385
|
+
}))
|
|
386
|
+
}));
|
|
402
387
|
});
|
|
403
388
|
|
|
404
389
|
exports.Button = Button;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';
|
|
3
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
|
|
4
3
|
import { Box } from '@spark-web/box';
|
|
5
4
|
import { buildDataAttributes } from '@spark-web/utils/internal';
|
|
6
5
|
import * as React from 'react';
|
|
7
|
-
import
|
|
6
|
+
import { Children, isValidElement, cloneElement } from 'react';
|
|
8
7
|
import { Text } from '@spark-web/text';
|
|
8
|
+
import { jsx } from 'react/jsx-runtime';
|
|
9
9
|
import { css } from '@emotion/css';
|
|
10
10
|
import { useFocusRing } from '@spark-web/a11y';
|
|
11
11
|
import { useTheme } from '@spark-web/theme';
|
|
@@ -154,7 +154,6 @@ var mapTokens = {
|
|
|
154
154
|
}
|
|
155
155
|
};
|
|
156
156
|
|
|
157
|
-
var __jsx$2 = React__default.createElement;
|
|
158
157
|
var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
159
158
|
var children = _ref.children,
|
|
160
159
|
prominence = _ref.prominence,
|
|
@@ -163,14 +162,15 @@ var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
|
163
162
|
var variant = variants[prominence][tone];
|
|
164
163
|
return Children.map(children, function (child) {
|
|
165
164
|
if (typeof child === 'string') {
|
|
166
|
-
return
|
|
165
|
+
return /*#__PURE__*/jsx(Text, {
|
|
167
166
|
as: "span",
|
|
168
167
|
baseline: false,
|
|
169
168
|
overflowStrategy: "nowrap",
|
|
170
169
|
weight: "strong",
|
|
171
170
|
size: mapTokens.fontSize[size],
|
|
172
|
-
tone: variant === null || variant === void 0 ? void 0 : variant.textTone
|
|
173
|
-
|
|
171
|
+
tone: variant === null || variant === void 0 ? void 0 : variant.textTone,
|
|
172
|
+
children: child
|
|
173
|
+
});
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
if ( /*#__PURE__*/isValidElement(child)) {
|
|
@@ -189,9 +189,6 @@ var resolveButtonChildren = function resolveButtonChildren(_ref) {
|
|
|
189
189
|
});
|
|
190
190
|
};
|
|
191
191
|
|
|
192
|
-
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
193
|
-
|
|
194
|
-
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
195
192
|
function useButtonStyles(_ref) {
|
|
196
193
|
var iconOnly = _ref.iconOnly,
|
|
197
194
|
prominence = _ref.prominence,
|
|
@@ -223,12 +220,12 @@ function useButtonStyles(_ref) {
|
|
|
223
220
|
position: 'relative',
|
|
224
221
|
width: iconOnly ? mapTokens.size[size] : undefined,
|
|
225
222
|
// interactions styles
|
|
226
|
-
className: css(_objectSpread
|
|
223
|
+
className: css(_objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
227
224
|
'&:hover': {
|
|
228
225
|
borderColor: variant !== null && variant !== void 0 && variant.borderHover ? theme.border.color[variant.borderHover] : undefined,
|
|
229
226
|
backgroundColor: variant !== null && variant !== void 0 && variant.backgroundHover ? theme.backgroundInteractions[variant.backgroundHover] : undefined,
|
|
230
227
|
// Style button text when hovering
|
|
231
|
-
'> *': _objectSpread
|
|
228
|
+
'> *': _objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
232
229
|
color: variant !== null && variant !== void 0 && variant.textToneHover ? theme.color.foreground[variant.textToneHover] : undefined,
|
|
233
230
|
stroke: variant !== null && variant !== void 0 && variant.textToneHover ? theme.color.foreground[variant.textToneHover] : undefined
|
|
234
231
|
})
|
|
@@ -238,7 +235,7 @@ function useButtonStyles(_ref) {
|
|
|
238
235
|
backgroundColor: variant !== null && variant !== void 0 && variant.backgroundActive ? theme.backgroundInteractions[variant === null || variant === void 0 ? void 0 : variant.backgroundActive] : undefined,
|
|
239
236
|
transform: 'scale(0.98)',
|
|
240
237
|
// Style button text when it's active
|
|
241
|
-
'> *': _objectSpread
|
|
238
|
+
'> *': _objectSpread(_objectSpread({}, transitionColours), {}, {
|
|
242
239
|
color: variant !== null && variant !== void 0 && variant.textToneActive ? theme.color.foreground[variant.textToneActive] : undefined,
|
|
243
240
|
stroke: variant !== null && variant !== void 0 && variant.textToneActive ? theme.color.foreground[variant.textToneActive] : undefined
|
|
244
241
|
})
|
|
@@ -250,17 +247,6 @@ function useButtonStyles(_ref) {
|
|
|
250
247
|
}
|
|
251
248
|
|
|
252
249
|
var _excluded$1 = ["aria-controls", "aria-describedby", "aria-expanded", "data", "disabled", "id", "onClick", "prominence", "size", "tone", "type"];
|
|
253
|
-
var __jsx$1 = React.createElement;
|
|
254
|
-
|
|
255
|
-
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
256
|
-
|
|
257
|
-
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
258
|
-
// discuss with design:
|
|
259
|
-
// - sizes
|
|
260
|
-
// - variants
|
|
261
|
-
// implementation details:
|
|
262
|
-
// - handle fragments?
|
|
263
|
-
// - validate children?
|
|
264
250
|
|
|
265
251
|
/**
|
|
266
252
|
* Buttons are used to initialize an action, their label should express what
|
|
@@ -302,7 +288,7 @@ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
302
288
|
*/
|
|
303
289
|
|
|
304
290
|
var handleClick = getPreventableClickHandler(onClick, isDisabled);
|
|
305
|
-
return
|
|
291
|
+
return /*#__PURE__*/jsx(Box, _objectSpread(_objectSpread(_objectSpread({
|
|
306
292
|
"aria-controls": ariaControls,
|
|
307
293
|
"aria-describedby": ariaDescribedBy,
|
|
308
294
|
"aria-disabled": isDisabled,
|
|
@@ -313,11 +299,13 @@ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
313
299
|
onClick: handleClick,
|
|
314
300
|
ref: ref,
|
|
315
301
|
type: type
|
|
316
|
-
}, buttonStyleProps, data ? buildDataAttributes(data) : undefined),
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
302
|
+
}, buttonStyleProps), data ? buildDataAttributes(data) : undefined), {}, {
|
|
303
|
+
children: resolveButtonChildren(_objectSpread(_objectSpread({}, props), {}, {
|
|
304
|
+
prominence: prominence,
|
|
305
|
+
size: size,
|
|
306
|
+
tone: tone
|
|
307
|
+
}))
|
|
308
|
+
}));
|
|
321
309
|
});
|
|
322
310
|
Button.displayName = 'Buttton';
|
|
323
311
|
/**
|
|
@@ -337,11 +325,6 @@ function getPreventableClickHandler(onClick, disabled) {
|
|
|
337
325
|
}
|
|
338
326
|
|
|
339
327
|
var _excluded = ["data", "href", "id", "prominence", "size", "tone"];
|
|
340
|
-
var __jsx = React__default.createElement;
|
|
341
|
-
|
|
342
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
343
|
-
|
|
344
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
345
328
|
|
|
346
329
|
/** The appearance of a `Button`, with the semantics of a link. */
|
|
347
330
|
var ButtonLink = forwardRefWithAs(function (_ref, ref) {
|
|
@@ -364,18 +347,20 @@ var ButtonLink = forwardRefWithAs(function (_ref, ref) {
|
|
|
364
347
|
tone: tone,
|
|
365
348
|
prominence: prominence
|
|
366
349
|
});
|
|
367
|
-
return
|
|
350
|
+
return /*#__PURE__*/jsx(Box, _objectSpread(_objectSpread(_objectSpread({
|
|
368
351
|
"aria-label": props.label,
|
|
369
352
|
as: LinkComponent,
|
|
370
353
|
asElement: "a",
|
|
371
354
|
id: id,
|
|
372
355
|
href: href,
|
|
373
356
|
ref: ref
|
|
374
|
-
}, buttonStyleProps, data ? buildDataAttributes(data) : undefined),
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
357
|
+
}, buttonStyleProps), data ? buildDataAttributes(data) : undefined), {}, {
|
|
358
|
+
children: resolveButtonChildren(_objectSpread(_objectSpread({}, props), {}, {
|
|
359
|
+
prominence: prominence,
|
|
360
|
+
size: size,
|
|
361
|
+
tone: tone
|
|
362
|
+
}))
|
|
363
|
+
}));
|
|
379
364
|
});
|
|
380
365
|
|
|
381
366
|
export { Button, ButtonLink };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spark-web/button",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.1",
|
|
5
5
|
"main": "dist/spark-web-button.cjs.js",
|
|
6
6
|
"module": "dist/spark-web-button.esm.js",
|
|
7
7
|
"devDependencies": {
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@babel/runtime": "^7.14.6",
|
|
12
12
|
"@emotion/css": "^11.7.1",
|
|
13
|
-
"@spark-web/a11y": "^1.0.
|
|
14
|
-
"@spark-web/box": "^1.0.
|
|
15
|
-
"@spark-web/icon": "^1.0.
|
|
16
|
-
"@spark-web/link": "^1.0.
|
|
17
|
-
"@spark-web/text": "^1.0.
|
|
18
|
-
"@spark-web/theme": "^
|
|
19
|
-
"@spark-web/utils": "^1.0.
|
|
13
|
+
"@spark-web/a11y": "^1.0.1",
|
|
14
|
+
"@spark-web/box": "^1.0.1",
|
|
15
|
+
"@spark-web/icon": "^1.0.1",
|
|
16
|
+
"@spark-web/link": "^1.0.1",
|
|
17
|
+
"@spark-web/text": "^1.0.1",
|
|
18
|
+
"@spark-web/theme": "^2.0.0",
|
|
19
|
+
"@spark-web/utils": "^1.0.1",
|
|
20
20
|
"react": "^17.0.2"
|
|
21
21
|
},
|
|
22
22
|
"engines": {
|