reactive-bulma 2.7.0 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var crypto = require('crypto');
4
-
5
3
  function styleInject(css, ref) {
6
4
  if ( ref === void 0 ) ref = {};
7
5
  var insertAt = ref.insertAt;
@@ -2867,7 +2865,7 @@ const parseKey = (max = 5000, min = 1) => {
2867
2865
  max = Math.floor(max);
2868
2866
  min = Math.ceil(min);
2869
2867
  const secureRandomNumbers = new Uint32Array(1);
2870
- crypto.getRandomValues(secureRandomNumbers);
2868
+ window.crypto.getRandomValues(secureRandomNumbers);
2871
2869
  return Math.floor(secureRandomNumbers[0] * (max - min) + min).toString();
2872
2870
  };
2873
2871
 
@@ -2944,7 +2942,7 @@ const Tag = ({ testId = null, containerTestId = null, cssClasses = null, contain
2944
2942
  const tagDeleteTestId = `${tagTestId}-delete`;
2945
2943
  return withAddon ? (React.createElement("section", { "data-testid": tagContainerTestId, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined, className: tagContainerClasses },
2946
2944
  React.createElement("span", { "data-testid": tagTestId, className: tagClasses }, text),
2947
- withDelete ? (React.createElement("a", { "data-testid": tagDeleteTestId, className: 'tag is-delete', "aria-hidden": 'true', onClick: onDeleteClick !== null && onDeleteClick !== void 0 ? onDeleteClick : undefined })) : (React.createElement("span", { className: tagAddonClasses }, addonText)))) : (React.createElement("span", { "data-testid": tagTestId, style: style !== null && style !== void 0 ? style : undefined, className: tagClasses },
2945
+ withDelete ? (React.createElement("a", { "data-testid": tagDeleteTestId, className: 'tag is-delete', title: 'delete', "aria-hidden": 'true', onClick: onDeleteClick !== null && onDeleteClick !== void 0 ? onDeleteClick : undefined })) : (React.createElement("span", { className: tagAddonClasses }, addonText)))) : (React.createElement("span", { "data-testid": tagTestId, style: style !== null && style !== void 0 ? style : undefined, className: tagClasses },
2948
2946
  text,
2949
2947
  withDelete ? (React.createElement("button", { "data-testid": tagDeleteTestId, className: 'delete', onClick: onDeleteClick !== null && onDeleteClick !== void 0 ? onDeleteClick : undefined })) : null));
2950
2948
  };
@@ -2953,8 +2951,6 @@ const Box = ({ testId = 'test-box', cssClasses = 'box', style = null, children =
2953
2951
 
2954
2952
  const renderTitleSection = (section) => {
2955
2953
  var _a, _b;
2956
- if (!section)
2957
- return null;
2958
2954
  const { type, size, isSpaced, cssClasses } = section;
2959
2955
  const sectionClasses = parseClasses([
2960
2956
  type,
@@ -2966,8 +2962,8 @@ const renderTitleSection = (section) => {
2966
2962
  return (React.createElement("p", { "data-testid": sectionTestId, className: sectionClasses, style: (_b = section === null || section === void 0 ? void 0 : section.style) !== null && _b !== void 0 ? _b : undefined }, section === null || section === void 0 ? void 0 : section.text));
2967
2963
  };
2968
2964
  const Title = ({ main, secondary }) => (React.createElement(React.Fragment, null,
2969
- renderTitleSection(main),
2970
- renderTitleSection(secondary)));
2965
+ main ? renderTitleSection(main) : null,
2966
+ secondary ? renderTitleSection(secondary) : null));
2971
2967
 
2972
2968
  var IconSizeEnum;
2973
2969
  (function (IconSizeEnum) {
@@ -3255,6 +3251,36 @@ const MenuItem = ({ testId = null, cssClasses = null, style = null, text, isActi
3255
3251
  return (React.createElement("a", { "data-testid": menuItemTestId, className: menuItemClasses, style: style !== null && style !== void 0 ? style : undefined, "aria-hidden": 'true', onClick: onClick !== null && onClick !== void 0 ? onClick : undefined }, text));
3256
3252
  };
3257
3253
 
3254
+ const Image = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, src, fixedSize = 'is-1by1', isRounded = false }) => {
3255
+ const imageContainerClasses = parseClasses([
3256
+ 'image',
3257
+ fixedSize,
3258
+ containerCssClasses
3259
+ ]);
3260
+ const imageClasses = parseClasses([
3261
+ isRounded ? 'is-rounded' : null,
3262
+ cssClasses
3263
+ ]);
3264
+ const imageContainerTestId = containerTestId !== null && containerTestId !== void 0 ? containerTestId : parseTestId({ tag: 'image', parsedClasses: imageContainerClasses });
3265
+ const imageTestId = testId !== null && testId !== void 0 ? testId : `${imageContainerTestId}-img`;
3266
+ return (React.createElement("figure", { "data-testid": imageContainerTestId, className: imageContainerClasses, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined },
3267
+ React.createElement("img", { "data-testid": imageTestId, className: imageClasses, style: style !== null && style !== void 0 ? style : undefined, src: src })));
3268
+ };
3269
+
3270
+ const PaginationItem = ({ testId = null, cssClasses = null, style = null, text, labelText = 'Page', currentLabelText = 'Go to page', isSelected = null, onClick = null }) => {
3271
+ const paginationItemClasses = parseClasses([
3272
+ 'pagination-link',
3273
+ isSelected ? 'is-current' : null,
3274
+ cssClasses
3275
+ ]);
3276
+ const paginationItemTestId = testId !== null && testId !== void 0 ? testId : parseTestId({
3277
+ tag: 'pagination-link',
3278
+ parsedClasses: paginationItemClasses
3279
+ });
3280
+ const parsedLabelText = isSelected ? currentLabelText : labelText;
3281
+ return (React.createElement("a", { "data-testid": paginationItemTestId, className: paginationItemClasses, style: style !== null && style !== void 0 ? style : undefined, "aria-label": `${parsedLabelText} ${text}`, "aria-current": isSelected ? 'page' : undefined, "aria-hidden": 'true', onClick: onClick !== null && onClick !== void 0 ? onClick : undefined }, text));
3282
+ };
3283
+
3258
3284
  const ButtonGroup = ({ testId = null, cssClasses = null, style = null, buttonList, isAttached = false, position = 'left' }) => {
3259
3285
  const buttonGroupClasses = parseClasses([
3260
3286
  'buttons',
@@ -3408,6 +3434,88 @@ const Menu = ({ testId = null, cssClasses = null, style = null, menuSections })
3408
3434
  React.createElement(MenuList, { key: `section-menu-list-${parseKey()}`, itemList: section.itemList }))))));
3409
3435
  };
3410
3436
 
3437
+ const renderEllipsis = (hasEllipsis) => hasEllipsis ? (React.createElement("li", null,
3438
+ React.createElement("span", { "aria-hidden": 'true', className: 'pagination-ellipsis' }, "\u2026"))) : null;
3439
+ const renderNavigationButton = (navigationButton) => {
3440
+ var _a;
3441
+ if (!navigationButton)
3442
+ return null;
3443
+ const navigationButtonClasses = parseClasses([
3444
+ navigationButton.cssClasses,
3445
+ navigationButton.isDisabled ? 'is-disabled' : null
3446
+ ]);
3447
+ return (React.createElement("a", { className: navigationButtonClasses, onClick: (_a = navigationButton.onClick) !== null && _a !== void 0 ? _a : undefined, "aria-hidden": 'true' }, navigationButton.text));
3448
+ };
3449
+ const renderPages = (pages, hasEllipsis, ellipsisItems) => {
3450
+ return pages.map((pageItem, pageIndex, { length }) => {
3451
+ const lastEllipsisItemIndex = length - ellipsisItems - 1;
3452
+ if (pageIndex === 0) {
3453
+ return (React.createElement(React.Fragment, { key: `first-pagination-item` },
3454
+ React.createElement(PaginationItem, Object.assign({}, pageItem)),
3455
+ renderEllipsis(hasEllipsis)));
3456
+ }
3457
+ if (!hasEllipsis ||
3458
+ (pageIndex > ellipsisItems && pageIndex < lastEllipsisItemIndex)) {
3459
+ return (React.createElement(PaginationItem, Object.assign({ key: `pagination-item-${parseKey()}` }, pageItem)));
3460
+ }
3461
+ if (pageIndex === --length) {
3462
+ return (React.createElement(React.Fragment, { key: `last-pagination-item` },
3463
+ renderEllipsis(hasEllipsis),
3464
+ React.createElement(PaginationItem, Object.assign({}, pageItem))));
3465
+ }
3466
+ });
3467
+ };
3468
+ const Pagination = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, pages, ellipsisItems = 0, showPreviousPageButton = {
3469
+ text: 'Previous',
3470
+ cssClasses: 'pagination-previous'
3471
+ }, showNextPageButton = {
3472
+ text: 'Next page',
3473
+ cssClasses: 'pagination-next'
3474
+ }, hasEllipsis = false, isRounded = false, alignment = null, size = null }) => {
3475
+ const paginationContainerClasses = parseClasses([
3476
+ 'pagination',
3477
+ isRounded ? 'is-rounded' : null,
3478
+ size,
3479
+ alignment,
3480
+ cssClasses
3481
+ ]);
3482
+ const paginationContainerTestId = testId !== null && testId !== void 0 ? testId : parseTestId({
3483
+ tag: 'pagination',
3484
+ parsedClasses: paginationContainerClasses
3485
+ });
3486
+ const paginationClasses = parseClasses([
3487
+ 'pagination-list',
3488
+ containerCssClasses
3489
+ ]);
3490
+ const paginationTestId = containerTestId !== null && containerTestId !== void 0 ? containerTestId : parseTestId({ tag: 'pagination-list', parsedClasses: paginationClasses });
3491
+ return (React.createElement("nav", { "data-testid": paginationContainerTestId, className: paginationContainerClasses, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined, role: 'navigation', "aria-label": 'pagination' },
3492
+ renderNavigationButton(showPreviousPageButton),
3493
+ renderNavigationButton(showNextPageButton),
3494
+ React.createElement("ul", { "data-testid": paginationTestId, className: paginationClasses, style: style !== null && style !== void 0 ? style : undefined }, renderPages(pages, hasEllipsis, ellipsisItems))));
3495
+ };
3496
+
3497
+ const Modal = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, children = null, onCloseClick = null }) => {
3498
+ const [modalIsOpen, setModalIsOpen] = reactExports.useState(true);
3499
+ const modalContainerClasses = parseClasses([
3500
+ 'modal',
3501
+ 'is-active',
3502
+ containerCssClasses
3503
+ ]);
3504
+ const modalContainerTestId = containerTestId !== null && containerTestId !== void 0 ? containerTestId : parseTestId({ tag: 'modal', parsedClasses: modalContainerClasses });
3505
+ const modalClasses = parseClasses(['modal-content', cssClasses]);
3506
+ const modalTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'modal-content', parsedClasses: modalClasses });
3507
+ const handleCloseClick = () => {
3508
+ if (onCloseClick)
3509
+ onCloseClick();
3510
+ setModalIsOpen(false);
3511
+ };
3512
+ return (children &&
3513
+ modalIsOpen && (React.createElement("section", { "data-testid": modalContainerTestId, className: modalContainerClasses, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined },
3514
+ React.createElement("section", { "data-testid": 'test-modal-background', className: 'modal-background', "aria-hidden": 'true', onClick: handleCloseClick }),
3515
+ React.createElement("section", { "data-testid": modalTestId, className: modalClasses, style: style !== null && style !== void 0 ? style : undefined }, children),
3516
+ React.createElement("button", { "data-testid": 'test-modal-close', className: 'modal-close is-large', "aria-label": 'close', onClick: handleCloseClick }))));
3517
+ };
3518
+
3411
3519
  exports.Block = Block;
3412
3520
  exports.Box = Box;
3413
3521
  exports.BreadcrumbItem = BreadcrumbItem;
@@ -3423,12 +3531,16 @@ exports.DropdownItem = DropdownItem;
3423
3531
  exports.DropdownTrigger = DropdownTrigger;
3424
3532
  exports.File = File;
3425
3533
  exports.Icon = Icon;
3534
+ exports.Image = Image;
3426
3535
  exports.Input = Input;
3427
3536
  exports.Menu = Menu;
3428
3537
  exports.MenuItem = MenuItem;
3429
3538
  exports.MenuList = MenuList;
3430
3539
  exports.Message = Message;
3540
+ exports.Modal = Modal;
3431
3541
  exports.Notification = Notification;
3542
+ exports.Pagination = Pagination;
3543
+ exports.PaginationItem = PaginationItem;
3432
3544
  exports.ProgressBar = ProgressBar;
3433
3545
  exports.RadioButton = RadioButton;
3434
3546
  exports.Select = Select;