@activecollab/components 2.0.451 → 2.0.453
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/dist/cjs/presentation/whiteboard/elements.js +146 -191
- package/dist/cjs/presentation/whiteboard/elements.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/entityCardActions.js +4 -1
- package/dist/cjs/presentation/whiteboard/entityCardActions.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/fileElement.js +2 -2
- package/dist/cjs/presentation/whiteboard/fileElement.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/inspector.js +2 -2
- package/dist/cjs/presentation/whiteboard/inspector.js.map +1 -1
- package/dist/esm/presentation/whiteboard/elements.d.ts +5 -19
- package/dist/esm/presentation/whiteboard/elements.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/elements.js +129 -168
- package/dist/esm/presentation/whiteboard/elements.js.map +1 -1
- package/dist/esm/presentation/whiteboard/entityCardActions.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/entityCardActions.js +4 -1
- package/dist/esm/presentation/whiteboard/entityCardActions.js.map +1 -1
- package/dist/esm/presentation/whiteboard/fileElement.js +3 -3
- package/dist/esm/presentation/whiteboard/fileElement.js.map +1 -1
- package/dist/esm/presentation/whiteboard/inspector.js +3 -3
- package/dist/esm/presentation/whiteboard/inspector.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/presentation/whiteboard/glyphs.js +0 -67
- package/dist/cjs/presentation/whiteboard/glyphs.js.map +0 -1
- package/dist/esm/presentation/whiteboard/glyphs.d.ts +0 -32
- package/dist/esm/presentation/whiteboard/glyphs.d.ts.map +0 -1
- package/dist/esm/presentation/whiteboard/glyphs.js +0 -50
- package/dist/esm/presentation/whiteboard/glyphs.js.map +0 -1
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.withOpacity = exports.stopClick = exports.stickyGradient = exports.snapValue = exports.shapeBorder = exports.renderShapeBody = exports.gridLevel = exports.defaultShapeState = exports.
|
|
6
|
+
exports.withOpacity = exports.stopClick = exports.stickyGradient = exports.snapValue = exports.shapeBorder = exports.renderShapeBody = exports.gridLevel = exports.defaultShapeState = exports.ToolbarTextControls = exports.ToolbarFontSizeSelect = exports.ToolbarColorSwatch = exports.ToolbarActions = exports.THICKNESS_OPTIONS = exports.StyledToolbarLink = exports.StyledToolbarButton = exports.StyledSticky = exports.StyledHandles = exports.StyledFormattingToolbar = exports.StyledCanvasLayer = exports.StyledCanvasElement = exports.ShapeTypeMenu = exports.ShapeFormattingToolbar = exports.STYLE_OPTIONS = exports.STICKY_FILL = exports.SHAPE_TYPE_OPTIONS = exports.SHAPE_TYPE_ICON = exports.SELECTION_BLUE = exports.ResizeHandles = exports.RESIZE_DIRECTIONS = exports.RADIUS_OPTIONS = exports.PostitFormattingToolbar = exports.OPACITY_OPTIONS = exports.INITIAL_SHAPES = exports.INITIAL_POSITIONS = exports.GRID_LEVELS = exports.FONT_SIZE_OPTIONS = exports.ELEMENT_TEXT = exports.ELEMENT_STROKE = exports.ELEMENT_FILL = exports.ELEMENT_BODIES = exports.COLOR_OPTIONS = exports.CANVAS_ELEMENTS = exports.BORDER_STYLE_OPTIONS = exports.AlignmentMenu = exports.ALIGN_OPTIONS = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
-
var _glyphs = require("./glyphs");
|
|
10
9
|
var _Dot = require("../../components/Dot");
|
|
11
10
|
var _IconButton = require("../../components/IconButton");
|
|
12
11
|
var _Icons = require("../../components/Icons");
|
|
13
12
|
var _List = require("../../components/List");
|
|
14
13
|
var _Menu = require("../../components/Menu");
|
|
14
|
+
var _Select = require("../../components/Select");
|
|
15
|
+
var _SelectTrigger = require("../../components/SelectTrigger");
|
|
15
16
|
var _Tooltip = require("../../components/Tooltip");
|
|
16
17
|
var _colors = require("../../utils/colors");
|
|
17
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -41,9 +42,6 @@ var ELEMENT_TEXT = exports.ELEMENT_TEXT = "#1f2937";
|
|
|
41
42
|
var STICKY_FILL = exports.STICKY_FILL = "#fbbf24";
|
|
42
43
|
var SELECTION_BLUE = exports.SELECTION_BLUE = "#3b82f6";
|
|
43
44
|
|
|
44
|
-
/* COLOR_PALETTE from toolbar/colorPalette.js (submenu swatch rows) */
|
|
45
|
-
var COLOR_PALETTE = exports.COLOR_PALETTE = ["#ffffff", "#3b82f6", "#ef4444", "#10b981", "#f59e0b", "#8b5cf6", "#f97316", "#06b6d4", "#84cc16", "#ec4899", "#6b7280"];
|
|
46
|
-
|
|
47
45
|
/* Discrete option sets for the right Inspector — mirror the app's fixed
|
|
48
46
|
font-size ladder and the border-thickness steps offered in the toolbar. */
|
|
49
47
|
var FONT_SIZE_OPTIONS = exports.FONT_SIZE_OPTIONS = [10, 13, 16, 20, 24, 30, 36, 48, 72, 96, 144, 216, 288];
|
|
@@ -261,13 +259,17 @@ var ResizeHandles = exports.ResizeHandles = function ResizeHandles() {
|
|
|
261
259
|
var StyledFormattingToolbar = exports.StyledFormattingToolbar = _styledComponents.default.div.withConfig({
|
|
262
260
|
displayName: "elements__StyledFormattingToolbar",
|
|
263
261
|
componentId: "sc-ohnju4-4"
|
|
264
|
-
})(["position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:8px;border-radius:8px;background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary);white-space:nowrap;cursor:auto;z-index:20;.tb-group{position:relative;display:flex;align-items:center;gap:4px;padding-right:8px;margin-right:8px;border-right:1px solid var(--border-primary);}.tb-rel{position:relative;display:inline-flex;}.divider{width:1px;height:20px;background-color:var(--border-primary);margin:0 4px;flex-shrink:0;}"]);
|
|
262
|
+
})(["position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:8px;border-radius:8px;background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary);white-space:nowrap;cursor:auto;z-index:20;.tb-group{position:relative;display:flex;align-items:center;gap:4px;padding-right:8px;margin-right:8px;border-right:1px solid var(--border-primary);}.tb-rel{position:relative;display:inline-flex;}.tb-color-value{display:inline-flex;align-items:center;justify-content:center;width:100%;}.divider{width:1px;height:20px;background-color:var(--border-primary);margin:0 4px;flex-shrink:0;}"]);
|
|
265
263
|
|
|
266
|
-
/*
|
|
264
|
+
/* The app's toolbar buttons are DS `Button` / `IconButton` variant="option",
|
|
265
|
+
size small, h-8 px-2: grey text (theme-700) that darkens on hover over a
|
|
266
|
+
theme-300 wash, and the primary colour only for a PRESSED state (an armed
|
|
267
|
+
lock, an active text style). Same palette here, so the story's bars read as
|
|
268
|
+
the app's and not as a row of links. */
|
|
267
269
|
var StyledToolbarButton = exports.StyledToolbarButton = _styledComponents.default.button.withConfig({
|
|
268
270
|
displayName: "elements__StyledToolbarButton",
|
|
269
271
|
componentId: "sc-ohnju4-5"
|
|
270
|
-
})(["display:inline-flex;align-items:center;justify-content:center;gap:4px;height:32px;box-sizing:border-box;padding:0 8px;border:0;border-radius:
|
|
272
|
+
})(["display:inline-flex;align-items:center;justify-content:center;gap:4px;height:32px;box-sizing:border-box;padding:0 8px;border:0;border-radius:var(--ac-br-6);background-color:transparent;color:var(--color-theme-700);font-family:-apple-system,BlinkMacSystemFont,\"Roboto\",\"Helvetica Neue\",Arial,sans-serif;font-size:14px;font-weight:500;cursor:pointer;&:hover,&:focus-visible{background-color:var(--color-theme-300);color:var(--color-theme-900);}&.active,&.active:hover{color:var(--color-primary);}&.icon-only{width:32px;padding:0;}&:disabled{opacity:0.45;cursor:default;&:hover{background-color:transparent;}}svg{fill:currentColor;flex-shrink:0;}svg.i16{width:16px;height:16px;}svg.i12{width:12px;height:12px;}"]);
|
|
271
273
|
|
|
272
274
|
/* Same chrome as a toolbar button, but an <a> — used where the action is a real
|
|
273
275
|
navigation (Visit). `withComponent` keeps the styles and swaps the element, so
|
|
@@ -276,101 +278,29 @@ var StyledToolbarLink = exports.StyledToolbarLink = (0, _styledComponents.defaul
|
|
|
276
278
|
displayName: "elements__StyledToolbarLink",
|
|
277
279
|
componentId: "sc-ohnju4-6"
|
|
278
280
|
})(["text-decoration:none;"]);
|
|
279
|
-
|
|
280
|
-
/* font-mono min-w-[24px] text-xs readout between the stepper buttons */
|
|
281
|
-
var StyledFontSizeValue = exports.StyledFontSizeValue = _styledComponents.default.span.withConfig({
|
|
282
|
-
displayName: "elements__StyledFontSizeValue",
|
|
283
|
-
componentId: "sc-ohnju4-7"
|
|
284
|
-
})(["min-width:24px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--color-secondary);"]);
|
|
285
281
|
var stopClick = exports.stopClick = function stopClick(event) {
|
|
286
282
|
return event.stopPropagation();
|
|
287
283
|
};
|
|
288
284
|
|
|
289
|
-
/*
|
|
290
|
-
|
|
291
|
-
var
|
|
292
|
-
|
|
293
|
-
/* ColorWheelPopover: beside the submenu (SHAPE_POPOVER_CLASS) or below
|
|
294
|
-
a toolbar trigger (sticky default class) */
|
|
295
|
-
var StyledColorPopover = exports.StyledColorPopover = _styledComponents.default.div.withConfig({
|
|
296
|
-
displayName: "elements__StyledColorPopover",
|
|
297
|
-
componentId: "sc-ohnju4-8"
|
|
298
|
-
})(["position:absolute;box-sizing:border-box;padding:12px;background-color:var(--page-paper-main);border:1px solid var(--border-primary);border-radius:8px;box-shadow:", ";z-index:70;cursor:auto;&.beside{top:0;left:100%;margin-left:8px;}&.below{top:40px;left:0;}"], SUBMENU_SHADOW);
|
|
299
|
-
|
|
300
|
-
/* ImprovedColorWheel: hue = angle from east (atan2), saturation = distance,
|
|
301
|
-
lightness 50 — the canvas wheel replicated with CSS gradients */
|
|
302
|
-
var WHEEL_SIZE = exports.WHEEL_SIZE = 200;
|
|
303
|
-
var WHEEL_RADIUS = exports.WHEEL_RADIUS = WHEEL_SIZE / 2 - 5;
|
|
304
|
-
var StyledColorWheel = exports.StyledColorWheel = _styledComponents.default.button.withConfig({
|
|
305
|
-
displayName: "elements__StyledColorWheel",
|
|
306
|
-
componentId: "sc-ohnju4-9"
|
|
307
|
-
})(["display:block;width:", "px;height:", "px;padding:0;border:0;border-radius:50%;cursor:crosshair;box-shadow:", ";background:radial-gradient( circle closest-side,#ffffff,rgba(255,255,255,0) ),conic-gradient( from 90deg,#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000 );"], WHEEL_SIZE, WHEEL_SIZE, SUBMENU_SHADOW);
|
|
308
|
-
var ColorWheel = exports.ColorWheel = function ColorWheel(_ref) {
|
|
309
|
-
var onColorChange = _ref.onColorChange;
|
|
310
|
-
return /*#__PURE__*/_react.default.createElement(StyledColorWheel, {
|
|
311
|
-
onClick: function onClick(event) {
|
|
312
|
-
var rect = event.currentTarget.getBoundingClientRect();
|
|
313
|
-
var dx = event.clientX - rect.left - WHEEL_SIZE / 2;
|
|
314
|
-
var dy = event.clientY - rect.top - WHEEL_SIZE / 2;
|
|
315
|
-
var distance = Math.sqrt(dx * dx + dy * dy);
|
|
316
|
-
if (distance > WHEEL_RADIUS) {
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
|
-
var angle = Math.atan2(dy, dx);
|
|
320
|
-
if (angle < 0) {
|
|
321
|
-
angle += 2 * Math.PI;
|
|
322
|
-
}
|
|
323
|
-
var hue = Math.round(angle * 180 / Math.PI);
|
|
324
|
-
var saturation = Math.round(Math.min(100, distance / WHEEL_RADIUS * 100));
|
|
325
|
-
onColorChange("hsl(".concat(hue, ", ").concat(saturation, "%, 50%)"));
|
|
326
|
-
}
|
|
327
|
-
});
|
|
328
|
-
};
|
|
285
|
+
/* The trigger widths the app gives its toolbar selects: `tw-w-20` for the font
|
|
286
|
+
size ("16 pt"), `tw-w-16 tw-px-2` for the swatch-only colour trigger. */
|
|
287
|
+
var TOOLBAR_SELECT_WIDTH = 80;
|
|
288
|
+
var TOOLBAR_COLOR_TRIGGER_WIDTH = 64;
|
|
329
289
|
|
|
330
|
-
/*
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
includeTransparent = _ref2.includeTransparent,
|
|
338
|
-
onSelect = _ref2.onSelect,
|
|
339
|
-
onAddClick = _ref2.onAddClick;
|
|
340
|
-
return /*#__PURE__*/_react.default.createElement(StyledSwatchRow, null, includeTransparent ? /*#__PURE__*/_react.default.createElement("button", {
|
|
341
|
-
type: "button",
|
|
342
|
-
className: selectedColor === "transparent" ? "swatch swatch-add selected" : "swatch swatch-add",
|
|
343
|
-
"aria-label": "Transparent",
|
|
344
|
-
onClick: function onClick() {
|
|
345
|
-
return onSelect("transparent");
|
|
346
|
-
}
|
|
347
|
-
}, /*#__PURE__*/_react.default.createElement(_Icons.CircleSlashIcon, {
|
|
348
|
-
width: 20,
|
|
349
|
-
height: 20,
|
|
350
|
-
fill: "currentColor"
|
|
351
|
-
})) : null, COLOR_PALETTE.map(function (color) {
|
|
352
|
-
return /*#__PURE__*/_react.default.createElement("button", {
|
|
353
|
-
key: color,
|
|
354
|
-
type: "button",
|
|
355
|
-
className: selectedColor === color ? "swatch selected" : "swatch",
|
|
356
|
-
style: {
|
|
357
|
-
backgroundColor: color
|
|
358
|
-
},
|
|
359
|
-
onClick: function onClick() {
|
|
360
|
-
return onSelect(color);
|
|
361
|
-
}
|
|
362
|
-
});
|
|
363
|
-
}), /*#__PURE__*/_react.default.createElement("button", {
|
|
364
|
-
type: "button",
|
|
365
|
-
className: "swatch swatch-add",
|
|
366
|
-
onClick: onAddClick
|
|
367
|
-
}, /*#__PURE__*/_react.default.createElement(_glyphs.PlusGlyph, null)));
|
|
368
|
-
};
|
|
290
|
+
/* Hollow rounded rectangle, the app's own glyph for the "Rounded Rectangle"
|
|
291
|
+
shape option (its ShapeTypeMenu draws a bordered span, because the icon set
|
|
292
|
+
has one rectangle glyph and it is already taken by "Rectangle"). */
|
|
293
|
+
var RoundedRectangleOutline = _styledComponents.default.span.withConfig({
|
|
294
|
+
displayName: "elements__RoundedRectangleOutline",
|
|
295
|
+
componentId: "sc-ohnju4-7"
|
|
296
|
+
})(["display:block;width:16px;height:16px;box-sizing:border-box;border:1px solid currentColor;border-radius:4px;"]);
|
|
369
297
|
var SHAPE_TYPE_ICON = exports.SHAPE_TYPE_ICON = {
|
|
370
|
-
rectangle: /*#__PURE__*/_react.default.createElement(
|
|
371
|
-
roundedRectangle: /*#__PURE__*/_react.default.createElement(_Icons.RoundedRectangleIcon, {
|
|
298
|
+
rectangle: /*#__PURE__*/_react.default.createElement(_Icons.RoundedRectangleIcon, {
|
|
372
299
|
className: "i16"
|
|
373
300
|
}),
|
|
301
|
+
roundedRectangle: /*#__PURE__*/_react.default.createElement(RoundedRectangleOutline, {
|
|
302
|
+
"aria-hidden": "true"
|
|
303
|
+
}),
|
|
374
304
|
circle: /*#__PURE__*/_react.default.createElement(_Icons.CircleIcon, {
|
|
375
305
|
className: "i16"
|
|
376
306
|
}),
|
|
@@ -419,10 +349,10 @@ var BORDER_STYLE_OPTIONS = exports.BORDER_STYLE_OPTIONS = [{
|
|
|
419
349
|
separator → Lock → Delete, in the standard control colour (not red). Mirrors
|
|
420
350
|
app `toolbar/ToolbarActions.jsx`. */
|
|
421
351
|
|
|
422
|
-
var ToolbarActions = exports.ToolbarActions = function ToolbarActions(
|
|
423
|
-
var locked =
|
|
424
|
-
onToggleLock =
|
|
425
|
-
onDelete =
|
|
352
|
+
var ToolbarActions = exports.ToolbarActions = function ToolbarActions(_ref) {
|
|
353
|
+
var locked = _ref.locked,
|
|
354
|
+
onToggleLock = _ref.onToggleLock,
|
|
355
|
+
onDelete = _ref.onDelete;
|
|
426
356
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
427
357
|
className: "divider"
|
|
428
358
|
}), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
@@ -447,9 +377,9 @@ var ToolbarActions = exports.ToolbarActions = function ToolbarActions(_ref3) {
|
|
|
447
377
|
current shape, opening a dropdown of the four types. Modeled on the app's
|
|
448
378
|
ShapeTypeMenu (DS Menu + List). */
|
|
449
379
|
|
|
450
|
-
var ShapeTypeMenu = exports.ShapeTypeMenu = function ShapeTypeMenu(
|
|
451
|
-
var value =
|
|
452
|
-
onChange =
|
|
380
|
+
var ShapeTypeMenu = exports.ShapeTypeMenu = function ShapeTypeMenu(_ref2) {
|
|
381
|
+
var value = _ref2.value,
|
|
382
|
+
onChange = _ref2.onChange;
|
|
453
383
|
var _useState = (0, _react.useState)(false),
|
|
454
384
|
_useState2 = _slicedToArray(_useState, 2),
|
|
455
385
|
open = _useState2[0],
|
|
@@ -465,7 +395,7 @@ var ShapeTypeMenu = exports.ShapeTypeMenu = function ShapeTypeMenu(_ref4) {
|
|
|
465
395
|
position: "bottom-start",
|
|
466
396
|
target: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
467
397
|
type: "button",
|
|
468
|
-
variant: "
|
|
398
|
+
variant: "option",
|
|
469
399
|
active: open,
|
|
470
400
|
"aria-label": "Shape"
|
|
471
401
|
}, SHAPE_TYPE_ICON[value])
|
|
@@ -490,11 +420,11 @@ var ShapeTypeMenu = exports.ShapeTypeMenu = function ShapeTypeMenu(_ref4) {
|
|
|
490
420
|
compact-toolbar counterpart to the Inspector's expanded four-button row.
|
|
491
421
|
Mirrors the app's AlignmentMenu. */
|
|
492
422
|
|
|
493
|
-
var AlignmentMenu = exports.AlignmentMenu = function AlignmentMenu(
|
|
423
|
+
var AlignmentMenu = exports.AlignmentMenu = function AlignmentMenu(_ref3) {
|
|
494
424
|
var _ALIGN_OPTIONS$find;
|
|
495
|
-
var value =
|
|
496
|
-
onChange =
|
|
497
|
-
disabled =
|
|
425
|
+
var value = _ref3.value,
|
|
426
|
+
onChange = _ref3.onChange,
|
|
427
|
+
disabled = _ref3.disabled;
|
|
498
428
|
var _useState3 = (0, _react.useState)(false),
|
|
499
429
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
500
430
|
open = _useState4[0],
|
|
@@ -513,7 +443,7 @@ var AlignmentMenu = exports.AlignmentMenu = function AlignmentMenu(_ref5) {
|
|
|
513
443
|
position: "bottom-start",
|
|
514
444
|
target: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
515
445
|
type: "button",
|
|
516
|
-
variant: "
|
|
446
|
+
variant: "option",
|
|
517
447
|
active: open,
|
|
518
448
|
disabled: disabled,
|
|
519
449
|
"aria-label": "Alignment"
|
|
@@ -535,71 +465,113 @@ var AlignmentMenu = exports.AlignmentMenu = function AlignmentMenu(_ref5) {
|
|
|
535
465
|
})));
|
|
536
466
|
};
|
|
537
467
|
|
|
538
|
-
/*
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
in, sticky fill and text colour do not. */
|
|
543
|
-
|
|
544
|
-
var
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
setWheelOpen = _useState8[1];
|
|
557
|
-
var isTransparent = value === "transparent";
|
|
558
|
-
return /*#__PURE__*/_react.default.createElement("span", {
|
|
559
|
-
className: "tb-rel"
|
|
560
|
-
}, /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
561
|
-
title: label
|
|
562
|
-
}, /*#__PURE__*/_react.default.createElement(StyledToolbarButton, {
|
|
563
|
-
className: open ? "icon-only active" : "icon-only",
|
|
564
|
-
"aria-label": label,
|
|
565
|
-
onClick: function onClick() {
|
|
566
|
-
setOpen(function (current) {
|
|
567
|
-
return !current;
|
|
568
|
-
});
|
|
569
|
-
setWheelOpen(false);
|
|
570
|
-
}
|
|
571
|
-
}, isTransparent ? /*#__PURE__*/_react.default.createElement(_Icons.CircleSlashIcon, {
|
|
468
|
+
/* The app's compact `ColorPicker`: a DS `Select` whose trigger is the swatch
|
|
469
|
+
alone (a Dot, or the CircleSlash chip when transparent) and whose menu is the
|
|
470
|
+
standard dot-and-name list — the same control the Inspector's colour field
|
|
471
|
+
uses, minus the name on the trigger. `includeTransparent` adds "Transparent"
|
|
472
|
+
first: shape fill opts in, sticky fill and text colour do not. */
|
|
473
|
+
|
|
474
|
+
var TOOLBAR_TRANSPARENT_OPTION = {
|
|
475
|
+
id: "transparent",
|
|
476
|
+
name: "Transparent",
|
|
477
|
+
color: "transparent",
|
|
478
|
+
textColor: "transparent"
|
|
479
|
+
};
|
|
480
|
+
var sameHex = function sameHex(a, b) {
|
|
481
|
+
return a.toLowerCase() === b.toLowerCase();
|
|
482
|
+
};
|
|
483
|
+
var ColorDot = function ColorDot(_ref4) {
|
|
484
|
+
var color = _ref4.color;
|
|
485
|
+
return sameHex(color, "transparent") ? /*#__PURE__*/_react.default.createElement(_Icons.CircleSlashIcon, {
|
|
572
486
|
width: 16,
|
|
573
487
|
height: 16,
|
|
574
488
|
fill: "currentColor"
|
|
575
489
|
}) : /*#__PURE__*/_react.default.createElement(_Dot.Dot, {
|
|
576
|
-
color:
|
|
490
|
+
color: color,
|
|
577
491
|
size: 16
|
|
578
|
-
})
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
492
|
+
});
|
|
493
|
+
};
|
|
494
|
+
var ToolbarColorSwatch = exports.ToolbarColorSwatch = function ToolbarColorSwatch(_ref5) {
|
|
495
|
+
var _options$find$id, _options$find;
|
|
496
|
+
var value = _ref5.value,
|
|
497
|
+
includeTransparent = _ref5.includeTransparent,
|
|
498
|
+
label = _ref5.label,
|
|
499
|
+
_onChange = _ref5.onChange;
|
|
500
|
+
var options = includeTransparent ? [TOOLBAR_TRANSPARENT_OPTION, ...COLOR_OPTIONS] : COLOR_OPTIONS;
|
|
501
|
+
var selected = (_options$find$id = (_options$find = options.find(function (option) {
|
|
502
|
+
return sameHex(option.id, value);
|
|
503
|
+
})) === null || _options$find === void 0 ? void 0 : _options$find.id) !== null && _options$find$id !== void 0 ? _options$find$id : value;
|
|
504
|
+
return /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
505
|
+
title: label
|
|
506
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
507
|
+
className: "tb-rel"
|
|
508
|
+
}, /*#__PURE__*/_react.default.createElement(_Select.Select, {
|
|
509
|
+
type: "single",
|
|
510
|
+
disableSearch: true,
|
|
511
|
+
forceCloseMenu: true,
|
|
512
|
+
keepSameOptionsOrder: true,
|
|
513
|
+
options: options,
|
|
514
|
+
selected: selected,
|
|
515
|
+
onChange: function onChange(next) {
|
|
516
|
+
return _onChange(String(Array.isArray(next) ? next[0] : next));
|
|
586
517
|
},
|
|
587
|
-
|
|
588
|
-
return
|
|
589
|
-
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
518
|
+
renderOption: function renderOption(option) {
|
|
519
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
520
|
+
className: "tb-color-option"
|
|
521
|
+
}, /*#__PURE__*/_react.default.createElement(ColorDot, {
|
|
522
|
+
color: String(option.id)
|
|
523
|
+
}), option.name);
|
|
524
|
+
},
|
|
525
|
+
target: /*#__PURE__*/_react.default.createElement(_SelectTrigger.SelectTrigger, {
|
|
526
|
+
"aria-label": label,
|
|
527
|
+
style: {
|
|
528
|
+
width: TOOLBAR_COLOR_TRIGGER_WIDTH,
|
|
529
|
+
paddingLeft: 8,
|
|
530
|
+
paddingRight: 8
|
|
531
|
+
}
|
|
532
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
533
|
+
className: "tb-color-value"
|
|
534
|
+
}, /*#__PURE__*/_react.default.createElement(ColorDot, {
|
|
535
|
+
color: value
|
|
536
|
+
})))
|
|
537
|
+
})));
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
/* The app's `ValuePicker` for the font size: a DS `Select` over the fixed size
|
|
541
|
+
ladder, its trigger reading "16 pt". */
|
|
542
|
+
|
|
543
|
+
var ToolbarFontSizeSelect = exports.ToolbarFontSizeSelect = function ToolbarFontSizeSelect(_ref6) {
|
|
544
|
+
var value = _ref6.value,
|
|
545
|
+
_onChange2 = _ref6.onChange;
|
|
546
|
+
return /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
547
|
+
title: "Font Size"
|
|
548
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
549
|
+
className: "tb-rel"
|
|
550
|
+
}, /*#__PURE__*/_react.default.createElement(_Select.Select, {
|
|
551
|
+
type: "single",
|
|
552
|
+
disableSearch: true,
|
|
553
|
+
forceCloseMenu: true,
|
|
554
|
+
keepSameOptionsOrder: true,
|
|
555
|
+
options: FONT_SIZE_OPTIONS.map(function (size) {
|
|
556
|
+
return {
|
|
557
|
+
id: size,
|
|
558
|
+
name: "".concat(size, " pt")
|
|
559
|
+
};
|
|
560
|
+
}),
|
|
561
|
+
selected: value,
|
|
562
|
+
onChange: function onChange(next) {
|
|
563
|
+
return _onChange2(Number(Array.isArray(next) ? next[0] : next));
|
|
564
|
+
},
|
|
565
|
+
target: /*#__PURE__*/_react.default.createElement(_SelectTrigger.SelectTrigger, {
|
|
566
|
+
"aria-label": "Font Size",
|
|
567
|
+
style: {
|
|
568
|
+
width: TOOLBAR_SELECT_WIDTH
|
|
569
|
+
}
|
|
570
|
+
}, value, " pt")
|
|
571
|
+
})));
|
|
600
572
|
};
|
|
601
573
|
|
|
602
|
-
/* The text controls shared by the shape and sticky toolbars: font-size
|
|
574
|
+
/* The text controls shared by the shape and sticky toolbars: font-size select,
|
|
603
575
|
B / I / U / S, and the collapsed alignment menu. Same set the app's sticky
|
|
604
576
|
and shape toolbars share (font-size picker, TextStyleButtons, AlignmentMenu).
|
|
605
577
|
Kept generic so both element shapes can drive it. */
|
|
@@ -611,27 +583,10 @@ var ToolbarTextControls = exports.ToolbarTextControls = function ToolbarTextCont
|
|
|
611
583
|
onFontSize = _ref7.onFontSize,
|
|
612
584
|
onToggleStyle = _ref7.onToggleStyle,
|
|
613
585
|
onAlign = _ref7.onAlign;
|
|
614
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
"aria-label": "Decrease font size",
|
|
619
|
-
onClick: function onClick() {
|
|
620
|
-
return onFontSize(Math.max(8, fontSize - 2));
|
|
621
|
-
}
|
|
622
|
-
}, /*#__PURE__*/_react.default.createElement(_glyphs.MinusGlyph, {
|
|
623
|
-
className: "i16"
|
|
624
|
-
}))), /*#__PURE__*/_react.default.createElement(StyledFontSizeValue, null, fontSize), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
625
|
-
title: "Increase font size"
|
|
626
|
-
}, /*#__PURE__*/_react.default.createElement(StyledToolbarButton, {
|
|
627
|
-
className: "icon-only",
|
|
628
|
-
"aria-label": "Increase font size",
|
|
629
|
-
onClick: function onClick() {
|
|
630
|
-
return onFontSize(Math.min(96, fontSize + 2));
|
|
631
|
-
}
|
|
632
|
-
}, /*#__PURE__*/_react.default.createElement(_glyphs.PlusGlyph, {
|
|
633
|
-
className: "i16"
|
|
634
|
-
}))), STYLE_OPTIONS.map(function (option) {
|
|
586
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ToolbarFontSizeSelect, {
|
|
587
|
+
value: fontSize,
|
|
588
|
+
onChange: onFontSize
|
|
589
|
+
}), STYLE_OPTIONS.map(function (option) {
|
|
635
590
|
return /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
636
591
|
key: option.key,
|
|
637
592
|
title: option.label
|
|
@@ -709,7 +664,7 @@ var ShapeFormattingToolbar = exports.ShapeFormattingToolbar = function ShapeForm
|
|
|
709
664
|
Mirrors the app's PostitFormattingToolbar. */
|
|
710
665
|
var PostitFormattingToolbar = exports.PostitFormattingToolbar = function PostitFormattingToolbar(_ref9) {
|
|
711
666
|
var value = _ref9.value,
|
|
712
|
-
|
|
667
|
+
_onChange3 = _ref9.onChange,
|
|
713
668
|
onDelete = _ref9.onDelete,
|
|
714
669
|
locked = _ref9.locked,
|
|
715
670
|
onToggleLock = _ref9.onToggleLock;
|
|
@@ -720,7 +675,7 @@ var PostitFormattingToolbar = exports.PostitFormattingToolbar = function PostitF
|
|
|
720
675
|
value: value.color,
|
|
721
676
|
label: "Note color",
|
|
722
677
|
onChange: function onChange(color) {
|
|
723
|
-
return
|
|
678
|
+
return _onChange3(_objectSpread(_objectSpread({}, value), {}, {
|
|
724
679
|
color
|
|
725
680
|
}));
|
|
726
681
|
}
|
|
@@ -729,17 +684,17 @@ var PostitFormattingToolbar = exports.PostitFormattingToolbar = function PostitF
|
|
|
729
684
|
styleFlags: value,
|
|
730
685
|
align: value.align,
|
|
731
686
|
onFontSize: function onFontSize(fontSize) {
|
|
732
|
-
return
|
|
687
|
+
return _onChange3(_objectSpread(_objectSpread({}, value), {}, {
|
|
733
688
|
fontSize
|
|
734
689
|
}));
|
|
735
690
|
},
|
|
736
691
|
onToggleStyle: function onToggleStyle(key) {
|
|
737
|
-
return
|
|
692
|
+
return _onChange3(_objectSpread(_objectSpread({}, value), {}, {
|
|
738
693
|
[key]: !value[key]
|
|
739
694
|
}));
|
|
740
695
|
},
|
|
741
696
|
onAlign: function onAlign(align) {
|
|
742
|
-
return
|
|
697
|
+
return _onChange3(_objectSpread(_objectSpread({}, value), {}, {
|
|
743
698
|
align
|
|
744
699
|
}));
|
|
745
700
|
}
|