loon-bulma-react 2023.0.23 → 2023.0.25

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.
Files changed (52) hide show
  1. package/README.md +31 -16
  2. package/dist/components/AspectRatio/AspectRatio.d.ts +1 -1
  3. package/dist/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  4. package/dist/components/Container/Container.d.ts +4 -4
  5. package/dist/components/DataTable/DataTable.d.ts +1 -3
  6. package/dist/components/Icon/Icon.d.ts +2 -2
  7. package/dist/components/Image/Image.d.ts +1 -1
  8. package/dist/components/Link/Link.d.ts +1 -1
  9. package/dist/components/Notification/Notification.d.ts +14 -14
  10. package/dist/forms/Checkbox/CB.d.ts +1 -1
  11. package/dist/forms/Checkbox/Checkbox.d.ts +1 -1
  12. package/dist/forms/Currency/CurrencyInput.d.ts +3 -2
  13. package/dist/forms/Datetimes/DateInput.d.ts +1 -0
  14. package/dist/forms/Datetimes/DateTimeInput.d.ts +1 -0
  15. package/dist/forms/Datetimes/TimeInput.d.ts +1 -0
  16. package/dist/forms/File/FileInput.d.ts +1 -0
  17. package/dist/forms/Input.d.ts +2 -1
  18. package/dist/forms/Numeric/MultiRangeInput.d.ts +1 -1
  19. package/dist/forms/Numeric/NumberInput.d.ts +1 -0
  20. package/dist/forms/Numeric/RangeInput.d.ts +1 -1
  21. package/dist/forms/Others/ColorInput.d.ts +1 -0
  22. package/dist/forms/Radio/RB.d.ts +1 -1
  23. package/dist/forms/Radio/Radio.d.ts +1 -1
  24. package/dist/forms/RichTextArea/RichTextArea.d.ts +5 -0
  25. package/dist/forms/Selects/MultiSelect.d.ts +1 -1
  26. package/dist/forms/Selects/Select.d.ts +1 -1
  27. package/dist/forms/Text/EmailInput.d.ts +1 -0
  28. package/dist/forms/Text/PasswordInput.d.ts +1 -0
  29. package/dist/forms/Text/TextArea.d.ts +1 -0
  30. package/dist/forms/Text/TextEditor.d.ts +21 -0
  31. package/dist/forms/Text/TextInput.d.ts +1 -0
  32. package/dist/forms/index.d.ts +1 -0
  33. package/dist/forms/shared/Base.Input.Container.d.ts +1 -0
  34. package/dist/forms/shared/BaseInputProps.d.ts +8 -6
  35. package/dist/hooks/index.d.ts +1 -0
  36. package/dist/hooks/useCaretPosition.d.ts +7 -0
  37. package/dist/hooks/useLocalStoredState.d.ts +5 -6
  38. package/dist/hooks/useSessionStoredState.d.ts +38 -0
  39. package/dist/index.js +8276 -245
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.modern.js +8278 -245
  42. package/dist/index.modern.js.map +1 -1
  43. package/dist/loon-react-bulma-types.d.ts +2 -1
  44. package/dist/utils/JSDateTime.class.d.ts +10 -4
  45. package/dist/utils/JSDuration.class.d.ts +3 -5
  46. package/dist/utils/deserialize.function.d.ts +2 -0
  47. package/dist/utils/index.d.ts +1 -0
  48. package/dist/utils/isIBAN.function.d.ts +25 -0
  49. package/dist/utils/serialize.function.d.ts +2 -0
  50. package/package.json +44 -19
  51. package/styles/_all.scss +1 -0
  52. package/styles/tiptap-editor.scss +11 -0
@@ -51,8 +51,9 @@ export declare type CheckradioStylingType = 'rounded' | 'noborder' | 'colored' |
51
51
  export declare type IndicatorPositionProp = 'tl' | 'tr' | 'tc' | 'bl' | 'br' | 'bc' | 'lc' | 'rc' | 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center' | 'left-center' | 'right-center';
52
52
  /** Autocomplete-types voor bijvoorbeeld password-managers.
53
53
  * Programma's zoals bijvoorbeeld 1Password gebruiken deze om te bepalen waar dit veld mee gevuld moet worden.
54
+ * **LET OP:** `off` wordt door sommige browsers genegeerd (eikels). Gebruik `nope` als je *ECHT* geen autocomplete wil.
54
55
  * */
55
- export declare type AutoCompleteType = 'on' | 'off' | 'current-password' | 'new-password' | 'username' | 'given-name' | 'additional-name' | 'family-name' | 'nickname' | 'email' | 'name' | 'one-time-code' | 'organization' | 'street-address' | 'tel' | 'bday' | 'language' | 'country' | 'postal-code';
56
+ export declare type AutoCompleteType = 'on' | 'off' | 'nope' | 'current-password' | 'new-password' | 'username' | 'given-name' | 'additional-name' | 'family-name' | 'nickname' | 'email' | 'name' | 'one-time-code' | 'organization' | 'street-address' | 'tel' | 'bday' | 'language' | 'country' | 'postal-code';
56
57
  /** Vaste (per jaar verschillende) kleuren die gebruikt worden binnen `loon-bulma-react` voor als we GEEN css kunnen gebruiken. */
57
58
  export declare const enum DefinedHexColors {
58
59
  Primary = "#0089b6",
@@ -307,13 +307,19 @@ declare class JSDateTime {
307
307
  /**
308
308
  * Check if this JSDateTime object is between two other JSDates or Dates
309
309
  * @param dates a tuple with two JSDateTime|Date instances
310
+ * @param included if the start and end date should be included (default: false)
310
311
  * @return is this JSDateTime between the two dates (true|false)
311
312
  * @example
312
- * const date = JSDateTime.fromDate(new Date(2020, 0, 1)); // 01-01-2020
313
- * date.isBetween([new Date(2030, 0, 1), new Date(2010, 0, 1)]); // true
314
- * date.isBefore([new Date(2010, 0, 1), new Date(2015, 0, 1)]); // false
313
+ * const date = JSDateTime.fromDate(new Date(2020, 0, 1)); // 01-01-2020
314
+ * date.isBetween([new Date(2030, 0, 1), new Date(2010, 0, 1)]); // true
315
+ * date.isBetween([new Date(2010, 0, 1), new Date(2015, 0, 1)]); // false
316
+ * @example examples for the include-parameter
317
+ * const date = JSDateTime.fromDate(new Date(2020, 0, 1)); // 01-01-2020
318
+ * date.isBetween([new Date(2020, 0, 1), new Date(2010, 0, 1)]); // false
319
+ * date.isBetween([new Date(2020, 0, 1), new Date(2010, 0, 1), true]); // true
320
+ * date.isBetween([new Date(2020, 0, 1), new Date(2010, 0, 1), [true, false]]); // true
315
321
  */
316
- isBetween([date1, date2]: [JSDateTime | Date, JSDateTime | Date]): boolean;
322
+ isBetween(dates: [JSDateTime | Date, JSDateTime | Date], included?: boolean | [boolean, boolean]): boolean;
317
323
  /**
318
324
  * Is this JSDateTime before another Date or JSDateTime.
319
325
  * JSDateTime implements the .valueOf() method of objects, so it is possible to compare JSDateTime objects and Date objects through <, >, ==, <= and >=.
@@ -14,13 +14,11 @@ declare class JSDuration {
14
14
  * @example
15
15
  * // verschil tussen nu en 1 dag, 30min later
16
16
  * let dur = new JSDuration(JSDateTime.now(), JSDateTime.now().plus({ days: 1, minutes: 30 }));
17
- * console.log(dur.inDays); // 1
18
- * console.log(dur.differenceIn(['hours', 'minutes']))
19
- * // { hours: 24, minutes: 30 }
17
+ * console.log(dur.inDays); // 1
18
+ * console.log(dur.differenceIn(['hours', 'minutes'])); // { hours: 24, minutes: 30 }
20
19
  *
21
20
  * let dur = new JSDuration(JSDateTime.now(), JSDateTime.now().plus({ days: 1, minutes: 30, seconds: 30 }));
22
- * console.log(dur.differenceIn(['hours', 'minutes']))
23
- * // { hours: 24, minutes: 30, rest: 30_000 }
21
+ * console.log(dur.differenceIn(['hours', 'minutes'])) // { hours: 24, minutes: 30, rest: 30_000 }
24
22
  */
25
23
  constructor(jsd1: Date | JSDateTime, jsd2?: Date | JSDateTime);
26
24
  /** @returns Aantal absolute milliseconden tussen de twee JSDateTimes van deze duration (altijd positief) */
@@ -0,0 +1,2 @@
1
+ /** Default deserializer met `JSON.parse` van een `string` naar de waarde `T` */
2
+ export declare function deserializeJSON<T>(value: string): T;
@@ -2,3 +2,4 @@ export * from './JSDateTime.class';
2
2
  export * from './JSDuration.class';
3
3
  export * from './hasBSN.function';
4
4
  export * from './calculateTxtColor.function';
5
+ export * from './isIBAN.function';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Controleer of een opgegeven rekeningnummer wel een IBAN, nummer is.
3
+ * @param rekNr het rekeningsnummer dat gecontroleerd moet worden
4
+ * @returns een tuple met een boolean en een string
5
+ * - `[true, 'LAND']` als het een geldige IBAN is
6
+ * - `[false, 'invalid format']` als het niet voldoet aan het IBAN-formaat
7
+ * - `[false, 'invalid landcode']` als de landcode niet bestaat (in onze gegevens)
8
+ * - `[false, 'invalid length']` als het niet voldoet aan de lengte-eis die hoort bij de landcode
9
+ * - `[false, 'invalid restgetal']` als het niet voldoet aan de mod-97 berekening voor IBAN
10
+ * @example
11
+ * const [bool, msg] = isIBAN('NL28 ASNB 0709 1665 92'); // [true, 'Nederland']
12
+ * const [bool, msg] = isIBAN('NL28 ASNB 0709 1665 922'); // [false, 'invalid length']
13
+ * const [bool, msg] = isIBAN('NL28 ASNB 0709 1665 93'); // [false, 'invalid restgetal']
14
+ * const [bool, msg] = isIBAN('ABCDEFG'); // [false, 'invalid format']
15
+ * const [bool, msg] = isIBAN('QQ28 ASNB 0709 1665 93'); // [false, 'invalid landcode']
16
+ */
17
+ export declare function isIBAN(rekNr: string): [boolean, string];
18
+ /** Een array van landen met de landcode en de lengte van een IBAN. Ook een voorbeeld-IBAN */
19
+ declare const IBAN_GEGEVENS_MET_TEST_PER_LAND: Readonly<Array<{
20
+ /** landnaam waar deze settings van toepassing zijn */ land: string;
21
+ /** code voor het land zoals dat in een IBAN voorkomt */ code: string;
22
+ /** de totale lengte van het IBAN-rekeningnummer */ length: number;
23
+ /** een voorbeeld-IBAN-nummer */ IBAN: string;
24
+ }>>;
25
+ export { IBAN_GEGEVENS_MET_TEST_PER_LAND as IbanDetailsPerLand };
@@ -0,0 +1,2 @@
1
+ /** Default serializer met `JSON.stringify` van de waar `T` naar een `string` */
2
+ export declare function serializeJSON<T>(value: T): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loon-bulma-react",
3
- "version": "2023.0.23",
3
+ "version": "2023.0.25",
4
4
  "description": "Bulma &amp; ReactJS componenten voor Loon Salarissoftware",
5
5
  "author": "timroos1990",
6
6
  "license": "MIT",
@@ -36,53 +36,78 @@
36
36
  "@babel/preset-env": "^7.20.2",
37
37
  "@babel/preset-react": "^7.18.6",
38
38
  "@testing-library/jest-dom": "^5.16.5",
39
- "@testing-library/react": "^13.4.0",
39
+ "@testing-library/react": "^14.0.0",
40
40
  "@testing-library/user-event": "^14.4.3",
41
41
  "@types/jest": "^29.4.0",
42
- "@types/node": "^18.11.18",
43
- "@types/react": "^18.0.27",
44
- "@types/react-dom": "^18.0.10",
42
+ "@types/node": "^18.14.6",
43
+ "@types/react": "^18.0.28",
44
+ "@types/react-dom": "^18.0.11",
45
45
  "@types/warning": "^3.0.0",
46
- "@typescript-eslint/eslint-plugin": "^5.49.0",
47
- "@typescript-eslint/parser": "^5.49.0",
46
+ "@typescript-eslint/eslint-plugin": "^5.54.1",
47
+ "@typescript-eslint/parser": "^5.54.1",
48
48
  "@yaireo/ui-range": "^2.1.15",
49
49
  "cross-env": "^7.0.3",
50
- "eslint": "^8.32.0",
51
- "eslint-config-prettier": "^8.6.0",
50
+ "eslint": "^8.35.0",
51
+ "eslint-config-prettier": "^8.7.0",
52
52
  "eslint-config-standard": "^17.0.0",
53
53
  "eslint-plugin-import": "^2.27.5",
54
54
  "eslint-plugin-node": "^11.1.0",
55
55
  "eslint-plugin-prettier": "^4.2.1",
56
56
  "eslint-plugin-promise": "^6.1.1",
57
- "eslint-plugin-react": "^7.32.1",
57
+ "eslint-plugin-react": "^7.32.2",
58
58
  "eslint-plugin-standard": "^5.0.0",
59
- "eslint-plugin-testing-library": "^5.10.0",
59
+ "eslint-plugin-testing-library": "^5.10.2",
60
60
  "gh-pages": "^5.0.0",
61
61
  "jest-preview": "^0.3.1",
62
62
  "microbundle-crl": "^0.13.11",
63
63
  "npm-run-all": "^4.1.5",
64
64
  "postcss-normalize": "^10.0.1",
65
- "postcss-preset-env": "^8.0.0",
66
- "prettier": "^2.8.3",
65
+ "postcss-preset-env": "^8.0.1",
66
+ "prettier": "^2.8.4",
67
67
  "react": "^18.2.0",
68
68
  "react-dom": "^18.2.0",
69
69
  "react-scripts": "^5.0.1",
70
- "sass": "^1.57.1",
71
- "typescript": "^4.9.4",
70
+ "sass": "^1.58.3",
71
+ "typescript": "^4.9.5",
72
72
  "warning": "^4.0.3",
73
- "webpack-bundle-analyzer": "^4.7.0"
73
+ "webpack-bundle-analyzer": "^4.8.0"
74
74
  },
75
75
  "files": [
76
76
  "dist",
77
77
  "styles"
78
78
  ],
79
79
  "dependencies": {
80
- "@fortawesome/fontawesome-svg-core": "^6.2.1",
81
- "@fortawesome/free-solid-svg-icons": "^6.2.1",
80
+ "@fortawesome/fontawesome-svg-core": "^6.3.0",
81
+ "@fortawesome/free-solid-svg-icons": "^6.3.0",
82
82
  "@fortawesome/react-fontawesome": "^0.2.0",
83
83
  "bulma": "^0.9.4",
84
84
  "react": "^18.2.0",
85
- "react-currency-input-field": "^3.6.9"
85
+ "react-currency-input-field": "^3.6.10",
86
+ "@tiptap/extension-bold": "^2.0.0-beta.220",
87
+ "@tiptap/extension-bullet-list": "^2.0.0-beta.220",
88
+ "@tiptap/extension-color": "^2.0.0-beta.220",
89
+ "@tiptap/extension-hard-break": "^2.0.0-beta.220",
90
+ "@tiptap/extension-heading": "^2.0.0-beta.220",
91
+ "@tiptap/extension-highlight": "^2.0.0-beta.220",
92
+ "@tiptap/extension-history": "^2.0.0-beta.220",
93
+ "@tiptap/extension-horizontal-rule": "^2.0.0-beta.220",
94
+ "@tiptap/extension-image": "^2.0.0-beta.220",
95
+ "@tiptap/extension-italic": "^2.0.0-beta.220",
96
+ "@tiptap/extension-link": "^2.0.0-beta.220",
97
+ "@tiptap/extension-list-item": "^2.0.0-beta.220",
98
+ "@tiptap/extension-ordered-list": "^2.0.0-beta.220",
99
+ "@tiptap/extension-strike": "^2.0.0-beta.220",
100
+ "@tiptap/extension-subscript": "^2.0.0-beta.220",
101
+ "@tiptap/extension-superscript": "^2.0.0-beta.220",
102
+ "@tiptap/extension-table": "^2.0.0-beta.220",
103
+ "@tiptap/extension-table-cell": "^2.0.0-beta.220",
104
+ "@tiptap/extension-table-header": "^2.0.0-beta.220",
105
+ "@tiptap/extension-table-row": "^2.0.0-beta.220",
106
+ "@tiptap/extension-text-align": "^2.0.0-beta.220",
107
+ "@tiptap/extension-text-style": "^2.0.0-beta.220",
108
+ "@tiptap/extension-underline": "^2.0.0-beta.220",
109
+ "@tiptap/react": "^2.0.0-beta.220",
110
+ "@tiptap/starter-kit": "^2.0.0-beta.220"
86
111
  },
87
112
  "browserslist": {
88
113
  "production": [
package/styles/_all.scss CHANGED
@@ -12,3 +12,4 @@
12
12
  @import './timeline.scss';
13
13
  @import './checkradio.scss';
14
14
  @import './tooltip.scss';
15
+ @import './tiptap-editor.scss';
@@ -0,0 +1,11 @@
1
+ // https://tiptap.dev/guide/styling#option-1-style-the-plain-html
2
+ .ProseMirror {
3
+ background-color: $white;
4
+ padding: 1px;
5
+ resize: vertical;
6
+ overflow: auto;
7
+ border: thin solid $input-border-color;
8
+ height: 10em;
9
+ border-radius: $input-radius;
10
+ min-height: 5em;
11
+ }