reactive-bulma 2.7.0 → 2.8.0

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.
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { PaginationItemProps } from '../../../interfaces/atomProps';
3
+ declare const PaginationItem: React.FC<PaginationItemProps>;
4
+ export default PaginationItem;
@@ -17,3 +17,4 @@ export { default as BreadcrumbItem } from './BreadcrumbItem';
17
17
  export { default as DropdownTrigger } from './DropdownTrigger';
18
18
  export { default as DropdownItem } from './DropdownItem';
19
19
  export { default as MenuItem } from './MenuItem';
20
+ export { default as PaginationItem } from './PaginationItem';
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { PaginationProps } from '../../../interfaces/moleculeProps';
3
+ declare const Pagination: React.FC<PaginationProps>;
4
+ export default Pagination;
@@ -6,3 +6,4 @@ export { default as Dropdown } from './Dropdown';
6
6
  export { default as Message } from './Message';
7
7
  export { default as Menu } from './Menu';
8
8
  export { default as MenuList } from './MenuList';
9
+ export { default as Pagination } from './Pagination';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ElementProps, ComposedElementProps, ClickeableProps } from './commonProps';
3
- import { basicColorType, columnOffsetType, columnSizeType, fixedImageSizeType, iconColorModeType, basicSizeType, textColorType, titleSizeType } from '../types/styleTypes';
3
+ import { basicColorType, columnOffsetType, columnSizeType, fixedImageSizeType, iconColorModeType, basicSizeType, textColorType, titleSizeType, reducedSizeType } from '../types/styleTypes';
4
4
  import { DropdownItemType, inputTypes } from '../types/domTypes';
5
5
  export interface ColumnProps extends ElementProps, React.ComponentPropsWithoutRef<'section'> {
6
6
  /** `Attribute` Reffers to the component or array of components that will be shown inside the column */
@@ -70,7 +70,7 @@ export interface TagProps extends ComposedElementProps, React.ComponentPropsWith
70
70
  /** `Styling` Will add round borders to tag's shape */
71
71
  isRounded?: boolean;
72
72
  /** `Styling` Set tag's size */
73
- size?: Exclude<basicSizeType, 'is-normal'>;
73
+ size?: reducedSizeType;
74
74
  /** `Styling` Color on tag's addon based on bulma's color tokens */
75
75
  addonColor?: basicColorType;
76
76
  /** `Function` Click function for `delete` option, alone does not nothing, but can be reused for other components */
@@ -112,7 +112,7 @@ export interface IconProps extends ComposedElementProps {
112
112
  /** `Styling` Color based on bulma's text color tokens */
113
113
  color?: textColorType;
114
114
  /** `Styling` Set icons's size */
115
- size?: Exclude<basicSizeType, 'is-normal'>;
115
+ size?: reducedSizeType;
116
116
  /** `Styling` Special usage in case you want to set as dark or light mode */
117
117
  colorMode?: iconColorModeType;
118
118
  /** `Styling` Animates the icon spinning 360° */
@@ -150,7 +150,7 @@ export interface TextAreaProps extends Omit<InputProps, 'isRounded' | 'type'> {
150
150
  }
151
151
  export interface DeleteProps extends ElementProps, ClickeableProps {
152
152
  /** `Styling` Set icons's size */
153
- size?: Exclude<basicSizeType, 'is-normal'>;
153
+ size?: reducedSizeType;
154
154
  }
155
155
  export interface SelectOption {
156
156
  id: string | number;
@@ -247,3 +247,13 @@ export interface MenuItemProps extends ElementProps, ClickeableProps {
247
247
  /** `Styling` Generates a blue background to mark the item as the active one in the `MenuList` */
248
248
  isActive?: boolean;
249
249
  }
250
+ export interface PaginationItemProps extends ElementProps, ClickeableProps {
251
+ /** `Attribute` `Required` Sets the number string that will be shown in the item and in its title when user hovers it */
252
+ text: string | number;
253
+ /** `Attribute` Sets the custom text before the `text` when user hovers the item */
254
+ labelText?: string;
255
+ /** `Attribute` Sets the custom text before the `text` when user hovers the item if is the current one */
256
+ currentLabelText?: string;
257
+ /** `Styling` Makes the item the selected one, changing its background to blue */
258
+ isSelected?: boolean;
259
+ }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { ComposedElementProps, ElementProps } from './commonProps';
3
- import { BreadcrumbItemProps, ButtonProps, ColumnProps, DeleteProps, DropdownItemProps, MenuItemProps } from './atomProps';
4
- import { basicColorType, basicSizeType, breadcrumbAlignType, breadcrumbSeparatorType, columnGapType } from '../types/styleTypes';
2
+ import { ClickeableProps, ComposedElementProps, ElementProps } from './commonProps';
3
+ import { BreadcrumbItemProps, ButtonProps, ColumnProps, DeleteProps, DropdownItemProps, MenuItemProps, PaginationItemProps } from './atomProps';
4
+ import { basicColorType, elementAlignType, breadcrumbSeparatorType, columnGapType, reducedSizeType } from '../types/styleTypes';
5
5
  export interface ButtonGroupProps extends ElementProps {
6
6
  /** `Atribute` `Required` Array of `Button` objects that will be shown */
7
7
  buttonList: ButtonProps[];
@@ -38,11 +38,11 @@ export interface BreadcrumbsProps extends ComposedElementProps {
38
38
  /** `Atribute` `Required` Array of `BreadcrumbItems` objects that will be shown */
39
39
  items: BreadcrumbItemProps[];
40
40
  /** `Styling` Will adjust element position on screen */
41
- alignment?: breadcrumbAlignType | null;
41
+ alignment?: elementAlignType | null;
42
42
  /** `Styling` Will adjust element position on screen */
43
43
  separator?: breadcrumbSeparatorType | null;
44
44
  /** `Styling` Set button's size on bulma's size tokens */
45
- size?: Exclude<basicSizeType, 'is-normal'>;
45
+ size?: reducedSizeType;
46
46
  }
47
47
  export interface DropdownProps extends ElementProps {
48
48
  /** `Atribute` `Required` Sets the name will be shown on the dropdown input */
@@ -62,7 +62,7 @@ export interface MessageProps extends ElementProps {
62
62
  /** `Styling` Color based on bulma's color tokens */
63
63
  color?: basicColorType;
64
64
  /** `Styling` Set button's size on bulma's size tokens */
65
- size?: Exclude<basicSizeType, 'is-normal'>;
65
+ size?: reducedSizeType;
66
66
  }
67
67
  interface MenuSubListProps {
68
68
  subListTitle: MenuItemProps;
@@ -83,4 +83,30 @@ export interface MenuProps extends ElementProps {
83
83
  /** `Attribute` `Required` List of sections that can be single or second level MenuItems */
84
84
  menuSections: MenuSectionProps[];
85
85
  }
86
+ export interface PaginationNavigationButtonProps extends ClickeableProps {
87
+ /** `Attribute` `Required` Text that will be shown on the button */
88
+ text: string;
89
+ /** `Attribute` Will disable the button */
90
+ isDisabled?: boolean;
91
+ /** `Attribute` Custom CSS classes, applicable for specific scenarios */
92
+ cssClasses?: string;
93
+ }
94
+ export interface PaginationProps extends ComposedElementProps {
95
+ /** `Attribute` `Required` List of sections that can be single or second level MenuItems */
96
+ pages: PaginationItemProps[];
97
+ /** `Attribute` Adds a couple of ellipsis between the first and last item */
98
+ hasEllipsis?: boolean;
99
+ /** `Attribute` Number of items that will be hidden if `hasEllipsis` is `true` */
100
+ ellipsisItems?: number;
101
+ /** `Attribute` Toogle `Previous` and `Next page` buttons next to the selectable pages */
102
+ showPreviousPageButton?: PaginationNavigationButtonProps | null;
103
+ /** `Attribute` Toogle `Previous` and `Next page` buttons next to the selectable pages */
104
+ showNextPageButton?: PaginationNavigationButtonProps | null;
105
+ /** `Styling` Will add round borders to each page's shape */
106
+ isRounded?: boolean;
107
+ /** `Styling` Set button's size on bulma's size tokens */
108
+ size?: reducedSizeType;
109
+ /** `Styling` Will adjust the pages position on screen */
110
+ alignment?: elementAlignType | null;
111
+ }
86
112
  export {};
@@ -5,7 +5,8 @@ export type basicColorType = 'is-white' | 'is-light' | 'is-dark' | 'is-black' |
5
5
  export type textColorType = 'has-text-white' | 'has-text-black' | 'has-text-light' | 'has-text-dark' | 'has-text-primary' | 'has-text-link' | 'has-text-info' | 'has-text-success' | 'has-text-warning' | 'has-text-danger';
6
6
  export type fixedImageSizeType = 'is-16x16' | 'is-24x24' | 'is-32x32' | 'is-48x48' | 'is-64x64' | 'is-96x96' | 'is-128x128' | 'is-square' | 'is-1by1' | 'is-5by4' | 'is-4by3' | 'is-3by2' | 'is-5by3' | 'is-16by9' | 'is-2by1' | 'is-3by1' | 'is-4by5' | 'is-3by4' | 'is-2by3' | 'is-3by5' | 'is-9by16' | 'is-1by2' | 'is-1by3';
7
7
  export type basicSizeType = 'is-small' | 'is-normal' | 'is-medium' | 'is-large';
8
+ export type reducedSizeType = Exclude<basicSizeType, 'is-normal'>;
8
9
  export type iconColorModeType = 'light' | 'dark';
9
10
  export type columnGapType = 'is-0' | 'is-1' | 'is-2' | 'is-3' | 'is-4' | 'is-5' | 'is-6' | 'is-7' | 'is-8';
10
- export type breadcrumbAlignType = 'is-centered' | 'is-right';
11
+ export type elementAlignType = 'is-centered' | 'is-right';
11
12
  export type breadcrumbSeparatorType = 'has-arrow-separator' | 'has-bullet-separator' | 'has-dot-separator' | 'has-succeeds-separator';
package/dist/index.d.ts CHANGED
@@ -30,9 +30,10 @@ type columnOffsetType = 'is-offset-1' | 'is-offset-2' | 'is-offset-3' | 'is-offs
30
30
  type basicColorType = 'is-white' | 'is-light' | 'is-dark' | 'is-black' | 'is-text' | 'is-ghost' | 'is-primary' | 'is-link' | 'is-info' | 'is-success' | 'is-warning' | 'is-danger';
31
31
  type textColorType = 'has-text-white' | 'has-text-black' | 'has-text-light' | 'has-text-dark' | 'has-text-primary' | 'has-text-link' | 'has-text-info' | 'has-text-success' | 'has-text-warning' | 'has-text-danger';
32
32
  type basicSizeType = 'is-small' | 'is-normal' | 'is-medium' | 'is-large';
33
+ type reducedSizeType = Exclude<basicSizeType, 'is-normal'>;
33
34
  type iconColorModeType = 'light' | 'dark';
34
35
  type columnGapType = 'is-0' | 'is-1' | 'is-2' | 'is-3' | 'is-4' | 'is-5' | 'is-6' | 'is-7' | 'is-8';
35
- type breadcrumbAlignType = 'is-centered' | 'is-right';
36
+ type elementAlignType = 'is-centered' | 'is-right';
36
37
  type breadcrumbSeparatorType = 'has-arrow-separator' | 'has-bullet-separator' | 'has-dot-separator' | 'has-succeeds-separator';
37
38
 
38
39
  type inputTypes = 'text' | 'password' | 'email' | 'tel';
@@ -106,7 +107,7 @@ interface TagProps extends ComposedElementProps, React$1.ComponentPropsWithoutRe
106
107
  /** `Styling` Will add round borders to tag's shape */
107
108
  isRounded?: boolean;
108
109
  /** `Styling` Set tag's size */
109
- size?: Exclude<basicSizeType, 'is-normal'>;
110
+ size?: reducedSizeType;
110
111
  /** `Styling` Color on tag's addon based on bulma's color tokens */
111
112
  addonColor?: basicColorType;
112
113
  /** `Function` Click function for `delete` option, alone does not nothing, but can be reused for other components */
@@ -140,7 +141,7 @@ interface IconProps extends ComposedElementProps {
140
141
  /** `Styling` Color based on bulma's text color tokens */
141
142
  color?: textColorType;
142
143
  /** `Styling` Set icons's size */
143
- size?: Exclude<basicSizeType, 'is-normal'>;
144
+ size?: reducedSizeType;
144
145
  /** `Styling` Special usage in case you want to set as dark or light mode */
145
146
  colorMode?: iconColorModeType;
146
147
  /** `Styling` Animates the icon spinning 360° */
@@ -178,7 +179,7 @@ interface TextAreaProps extends Omit<InputProps, 'isRounded' | 'type'> {
178
179
  }
179
180
  interface DeleteProps extends ElementProps, ClickeableProps {
180
181
  /** `Styling` Set icons's size */
181
- size?: Exclude<basicSizeType, 'is-normal'>;
182
+ size?: reducedSizeType;
182
183
  }
183
184
  interface SelectOption {
184
185
  id: string | number;
@@ -275,6 +276,16 @@ interface MenuItemProps extends ElementProps, ClickeableProps {
275
276
  /** `Styling` Generates a blue background to mark the item as the active one in the `MenuList` */
276
277
  isActive?: boolean;
277
278
  }
279
+ interface PaginationItemProps extends ElementProps, ClickeableProps {
280
+ /** `Attribute` `Required` Sets the number string that will be shown in the item and in its title when user hovers it */
281
+ text: string | number;
282
+ /** `Attribute` Sets the custom text before the `text` when user hovers the item */
283
+ labelText?: string;
284
+ /** `Attribute` Sets the custom text before the `text` when user hovers the item if is the current one */
285
+ currentLabelText?: string;
286
+ /** `Styling` Makes the item the selected one, changing its background to blue */
287
+ isSelected?: boolean;
288
+ }
278
289
 
279
290
  declare const Button: React$1.FC<ButtonProps>;
280
291
 
@@ -314,6 +325,8 @@ declare const DropdownItem: React$1.FC<DropdownItemProps>;
314
325
 
315
326
  declare const MenuItem: React$1.FC<MenuItemProps>;
316
327
 
328
+ declare const PaginationItem: React$1.FC<PaginationItemProps>;
329
+
317
330
  interface ButtonGroupProps extends ElementProps {
318
331
  /** `Atribute` `Required` Array of `Button` objects that will be shown */
319
332
  buttonList: ButtonProps[];
@@ -350,11 +363,11 @@ interface BreadcrumbsProps extends ComposedElementProps {
350
363
  /** `Atribute` `Required` Array of `BreadcrumbItems` objects that will be shown */
351
364
  items: BreadcrumbItemProps[];
352
365
  /** `Styling` Will adjust element position on screen */
353
- alignment?: breadcrumbAlignType | null;
366
+ alignment?: elementAlignType | null;
354
367
  /** `Styling` Will adjust element position on screen */
355
368
  separator?: breadcrumbSeparatorType | null;
356
369
  /** `Styling` Set button's size on bulma's size tokens */
357
- size?: Exclude<basicSizeType, 'is-normal'>;
370
+ size?: reducedSizeType;
358
371
  }
359
372
  interface DropdownProps extends ElementProps {
360
373
  /** `Atribute` `Required` Sets the name will be shown on the dropdown input */
@@ -374,7 +387,7 @@ interface MessageProps extends ElementProps {
374
387
  /** `Styling` Color based on bulma's color tokens */
375
388
  color?: basicColorType;
376
389
  /** `Styling` Set button's size on bulma's size tokens */
377
- size?: Exclude<basicSizeType, 'is-normal'>;
390
+ size?: reducedSizeType;
378
391
  }
379
392
  interface MenuSubListProps {
380
393
  subListTitle: MenuItemProps;
@@ -395,6 +408,32 @@ interface MenuProps extends ElementProps {
395
408
  /** `Attribute` `Required` List of sections that can be single or second level MenuItems */
396
409
  menuSections: MenuSectionProps[];
397
410
  }
411
+ interface PaginationNavigationButtonProps extends ClickeableProps {
412
+ /** `Attribute` `Required` Text that will be shown on the button */
413
+ text: string;
414
+ /** `Attribute` Will disable the button */
415
+ isDisabled?: boolean;
416
+ /** `Attribute` Custom CSS classes, applicable for specific scenarios */
417
+ cssClasses?: string;
418
+ }
419
+ interface PaginationProps extends ComposedElementProps {
420
+ /** `Attribute` `Required` List of sections that can be single or second level MenuItems */
421
+ pages: PaginationItemProps[];
422
+ /** `Attribute` Adds a couple of ellipsis between the first and last item */
423
+ hasEllipsis?: boolean;
424
+ /** `Attribute` Number of items that will be hidden if `hasEllipsis` is `true` */
425
+ ellipsisItems?: number;
426
+ /** `Attribute` Toogle `Previous` and `Next page` buttons next to the selectable pages */
427
+ showPreviousPageButton?: PaginationNavigationButtonProps | null;
428
+ /** `Attribute` Toogle `Previous` and `Next page` buttons next to the selectable pages */
429
+ showNextPageButton?: PaginationNavigationButtonProps | null;
430
+ /** `Styling` Will add round borders to each page's shape */
431
+ isRounded?: boolean;
432
+ /** `Styling` Set button's size on bulma's size tokens */
433
+ size?: reducedSizeType;
434
+ /** `Styling` Will adjust the pages position on screen */
435
+ alignment?: elementAlignType | null;
436
+ }
398
437
 
399
438
  declare const ButtonGroup: React$1.FC<ButtonGroupProps>;
400
439
 
@@ -412,4 +451,6 @@ declare const Menu: React$1.FC<MenuProps>;
412
451
 
413
452
  declare const MenuList: React$1.FC<MenuListProps>;
414
453
 
415
- export { Block, Box, BreadcrumbItem, Breadcrumbs, Button, ButtonGroup, CheckBox as Checkbox, Column, ColumnGroup, Delete, Dropdown, DropdownItem, DropdownTrigger, File, Icon, Input, Menu, MenuItem, MenuList, Message, Notification, ProgressBar, RadioButton, Select, Tag, TextArea, Title };
454
+ declare const Pagination: React$1.FC<PaginationProps>;
455
+
456
+ export { Block, Box, BreadcrumbItem, Breadcrumbs, Button, ButtonGroup, CheckBox as Checkbox, Column, ColumnGroup, Delete, Dropdown, DropdownItem, DropdownTrigger, File, Icon, Input, Menu, MenuItem, MenuList, Message, Notification, Pagination, PaginationItem, ProgressBar, RadioButton, Select, Tag, TextArea, Title };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reactive-bulma",
3
- "version": "2.7.0",
3
+ "version": "2.8.0",
4
4
  "description": "A component library based on React, Bulma, Typescript and Rollup",
5
5
  "keywords": [
6
6
  "typescript",
@@ -77,16 +77,16 @@
77
77
  "@storybook/react-webpack5": "^7.5.3",
78
78
  "@storybook/testing-library": "^0.2.2",
79
79
  "@testing-library/jest-dom": "^6.1.4",
80
- "@testing-library/react": "^14.1.0",
80
+ "@testing-library/react": "^14.1.2",
81
81
  "@testing-library/user-event": "^14.5.1",
82
82
  "@types/jest": "^29.5.8",
83
83
  "@types/react": "^18.2.37",
84
- "@typescript-eslint/eslint-plugin": "^6.10.0",
85
- "@typescript-eslint/parser": "^6.10.0",
84
+ "@typescript-eslint/eslint-plugin": "^6.12.0",
85
+ "@typescript-eslint/parser": "^6.12.0",
86
86
  "babel-jest": "^29.7.0",
87
87
  "babel-loader": "^9.1.3",
88
88
  "bulma": "^0.9.4",
89
- "eslint": "^8.53.0",
89
+ "eslint": "^8.54.0",
90
90
  "eslint-config-prettier": "^9.0.0",
91
91
  "eslint-plugin-react": "^7.33.2",
92
92
  "husky": "^8.0.3",
@@ -94,18 +94,18 @@
94
94
  "jest": "^29.7.0",
95
95
  "jest-environment-jsdom": "^29.7.0",
96
96
  "lint-staged": "^15.1.0",
97
- "npm-check-updates": "^16.14.6",
97
+ "npm-check-updates": "^16.14.11",
98
98
  "postcss": "^8.4.31",
99
- "prettier": "^3.0.3",
99
+ "prettier": "^3.1.0",
100
100
  "react": "^18.2.0",
101
101
  "react-dom": "^18.2.0",
102
- "rollup": "^4.3.1",
102
+ "rollup": "^4.5.0",
103
103
  "rollup-plugin-dts": "^6.1.0",
104
104
  "rollup-plugin-postcss": "^4.0.2",
105
- "semantic-release": "^22.0.7",
105
+ "semantic-release": "^22.0.8",
106
106
  "storybook": "^7.5.3",
107
107
  "tslib": "^2.6.2",
108
- "typescript": "^5.2.2"
108
+ "typescript": "^5.3.2"
109
109
  },
110
110
  "lint-staged": {
111
111
  "src/**/*.(ts|tsx)": [