@hkdigital/lib-sveltekit 0.1.62 → 0.1.65

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 (209) hide show
  1. package/README.md +135 -135
  2. package/dist/assets/autospuiten/car-paint-picker.js +41 -41
  3. package/dist/assets/autospuiten/labels.js +7 -7
  4. package/dist/classes/data/IterableTree.js +243 -243
  5. package/dist/classes/data/Selector.js +190 -190
  6. package/dist/classes/data/index.js +2 -2
  7. package/dist/classes/index.js +4 -4
  8. package/dist/classes/promise/HkPromise.js +377 -377
  9. package/dist/classes/promise/index.js +1 -1
  10. package/dist/classes/stores/SubscribersCount.js +107 -107
  11. package/dist/classes/stores/index.js +1 -1
  12. package/dist/classes/streams/LogTransformStream.js +19 -19
  13. package/dist/classes/streams/ServerEventsStore.js +110 -110
  14. package/dist/classes/streams/TimeStampSource.js +26 -26
  15. package/dist/classes/streams/index.js +3 -3
  16. package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
  17. package/dist/classes/svelte/audio/AudioScene.svelte.js +295 -295
  18. package/dist/classes/svelte/audio/mocks.js +35 -35
  19. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  20. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  21. package/dist/classes/svelte/image/ImageLoader.svelte.js +47 -47
  22. package/dist/classes/svelte/image/ImageScene.svelte.js +253 -253
  23. package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
  24. package/dist/classes/svelte/image/index.js +4 -4
  25. package/dist/classes/svelte/image/mocks.js +35 -35
  26. package/dist/classes/svelte/image/typedef.js +8 -8
  27. package/dist/classes/svelte/index.js +14 -14
  28. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  29. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  30. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  31. package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +331 -331
  32. package/dist/classes/svelte/network-loader/constants.js +3 -3
  33. package/dist/classes/svelte/network-loader/index.js +3 -3
  34. package/dist/classes/svelte/network-loader/mocks.js +30 -30
  35. package/dist/classes/svelte/network-loader/typedef.js +8 -8
  36. package/dist/components/area/HkArea.svelte +49 -49
  37. package/dist/components/area/HkGridArea.svelte +77 -77
  38. package/dist/components/area/index.js +2 -2
  39. package/dist/components/buttons/button/Button.svelte +82 -82
  40. package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  41. package/dist/components/buttons/button-text/TextButton.svelte +21 -21
  42. package/dist/components/buttons/index.js +3 -3
  43. package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  44. package/dist/components/debug/index.js +1 -1
  45. package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
  46. package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
  47. package/dist/components/icons/HkIcon.svelte +86 -86
  48. package/dist/components/icons/HkTabIcon.svelte +116 -116
  49. package/dist/components/icons/SteezeIcon.svelte +97 -97
  50. package/dist/components/icons/index.js +6 -6
  51. package/dist/components/icons/typedef.js +16 -16
  52. package/dist/components/index.js +2 -2
  53. package/dist/components/inputs/index.js +1 -1
  54. package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
  55. package/dist/components/inputs/text-input/TextInput.svelte +223 -223
  56. package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
  57. package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
  58. package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
  59. package/dist/components/layout/grid-layers/GridLayers.svelte +167 -167
  60. package/dist/components/layout/index.js +1 -1
  61. package/dist/components/panels/index.js +1 -1
  62. package/dist/components/panels/panel/Panel.svelte +43 -43
  63. package/dist/components/rows/index.js +3 -3
  64. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  65. package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
  66. package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
  67. package/dist/components/tab-bar/HkTabBar.svelte +74 -74
  68. package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  69. package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
  70. package/dist/components/tab-bar/index.js +17 -17
  71. package/dist/components/tab-bar/typedef.js +8 -8
  72. package/dist/config/imagetools-config.js +189 -189
  73. package/dist/config/imagetools.d.ts +71 -71
  74. package/dist/config/typedef.js +8 -8
  75. package/dist/constants/bases.js +13 -13
  76. package/dist/constants/errors/api.js +9 -9
  77. package/dist/constants/errors/generic.js +5 -5
  78. package/dist/constants/errors/index.js +3 -3
  79. package/dist/constants/errors/jwt.js +5 -5
  80. package/dist/constants/http/headers.js +6 -6
  81. package/dist/constants/http/index.js +2 -2
  82. package/dist/constants/http/methods.js +2 -2
  83. package/dist/constants/index.js +3 -3
  84. package/dist/constants/mime/application.js +5 -5
  85. package/dist/constants/mime/audio.js +13 -13
  86. package/dist/constants/mime/image.js +3 -3
  87. package/dist/constants/mime/index.js +4 -4
  88. package/dist/constants/mime/text.js +2 -2
  89. package/dist/constants/regexp/index.js +31 -31
  90. package/dist/constants/regexp/inspiratie.js__ +95 -95
  91. package/dist/constants/regexp/text.js +49 -49
  92. package/dist/constants/regexp/user.js +32 -32
  93. package/dist/constants/regexp/web.js +3 -3
  94. package/dist/constants/state-labels/input-states.js +11 -11
  95. package/dist/constants/state-labels/submit-states.js +4 -4
  96. package/dist/constants/time.js +28 -28
  97. package/dist/css/utilities.css +43 -43
  98. package/dist/design/design-config.js +73 -73
  99. package/dist/design/tailwind-theme-extend.js +158 -158
  100. package/dist/schemas/index.js +1 -1
  101. package/dist/schemas/validate-url.js +180 -180
  102. package/dist/server/index.js +1 -1
  103. package/dist/server/logger.js +94 -94
  104. package/dist/states/index.js +1 -1
  105. package/dist/states/navigation.svelte.js +55 -55
  106. package/dist/stores/index.js +1 -1
  107. package/dist/stores/theme.js +80 -80
  108. package/dist/themes/hkdev/components/blocks/text-block.css +41 -41
  109. package/dist/themes/hkdev/components/boxes/game-box.css +12 -12
  110. package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  111. package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
  112. package/dist/themes/hkdev/components/buttons/button.css +142 -142
  113. package/dist/themes/hkdev/components/buttons/skip-button.css +6 -6
  114. package/dist/themes/hkdev/components/icons/icon-steeze.css +22 -22
  115. package/dist/themes/hkdev/components/inputs/text-input.css +104 -104
  116. package/dist/themes/hkdev/components/panels/panel.css +27 -27
  117. package/dist/themes/hkdev/components/rows/panel-grid-row.css +6 -6
  118. package/dist/themes/hkdev/components/rows/panel-row-2.css +7 -7
  119. package/dist/themes/hkdev/components.css +47 -47
  120. package/dist/themes/hkdev/debug.css +1 -1
  121. package/dist/themes/hkdev/global/layout.css +39 -39
  122. package/dist/themes/hkdev/global/on-colors.css +53 -53
  123. package/dist/themes/hkdev/globals.css +11 -11
  124. package/dist/themes/hkdev/responsive.css +12 -12
  125. package/dist/themes/hkdev/theme-ext.js +15 -15
  126. package/dist/themes/hkdev/theme.js +235 -235
  127. package/dist/themes/index.js +1 -1
  128. package/dist/util/array/index.js +455 -455
  129. package/dist/util/bases/base58.js +262 -262
  130. package/dist/util/bases/index.js +1 -1
  131. package/dist/util/compare/index.js +247 -247
  132. package/dist/util/css/css-vars.js +83 -83
  133. package/dist/util/css/index.js +1 -1
  134. package/dist/util/design-system/components/states.js +22 -22
  135. package/dist/util/design-system/css/clamp.js +66 -66
  136. package/dist/util/design-system/css/root-design-vars.js +100 -100
  137. package/dist/util/design-system/index.js +5 -5
  138. package/dist/util/design-system/layout/scaling.js +228 -228
  139. package/dist/util/design-system/skeleton.js +208 -208
  140. package/dist/util/design-system/tailwind.js +288 -288
  141. package/dist/util/expect/arrays.js +47 -47
  142. package/dist/util/expect/index.js +259 -259
  143. package/dist/util/expect/primitives.js +55 -55
  144. package/dist/util/expect/url.js +60 -60
  145. package/dist/util/function/index.js +218 -218
  146. package/dist/util/http/errors.js +97 -97
  147. package/dist/util/http/headers.js +45 -45
  148. package/dist/util/http/http-request.js +294 -294
  149. package/dist/util/http/index.js +22 -22
  150. package/dist/util/http/json-request.js +143 -143
  151. package/dist/util/http/mocks.js +65 -65
  152. package/dist/util/http/response.js +241 -241
  153. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  154. package/dist/util/http/url.js +52 -52
  155. package/dist/util/image/index.js +86 -86
  156. package/dist/util/index.js +2 -2
  157. package/dist/util/is/index.js +140 -140
  158. package/dist/util/iterate/index.js +234 -234
  159. package/dist/util/object/index.js +1361 -1361
  160. package/dist/util/singleton/index.js +97 -97
  161. package/dist/util/string/array-path.js +75 -75
  162. package/dist/util/string/convert.js +54 -54
  163. package/dist/util/string/fs.js +226 -226
  164. package/dist/util/string/index.js +5 -5
  165. package/dist/util/string/interpolate.js +61 -61
  166. package/dist/util/string/pad.js +10 -10
  167. package/dist/util/svelte/index.js +4 -4
  168. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  169. package/dist/util/svelte/observe/index.js +49 -49
  170. package/dist/util/svelte/state-context/index.js +83 -83
  171. package/dist/util/svelte/wait/index.js +38 -38
  172. package/dist/util/sveltekit/index.js +1 -1
  173. package/dist/util/sveltekit/route-folders/index.js +101 -101
  174. package/dist/util/time/index.js +323 -323
  175. package/dist/util/unique/index.js +249 -249
  176. package/dist/valibot/date.js__ +10 -10
  177. package/dist/valibot/index.js +9 -9
  178. package/dist/valibot/url.js +95 -95
  179. package/dist/valibot/user.js +23 -23
  180. package/dist/widgets/button-group/ButtonGroup.svelte +82 -94
  181. package/dist/widgets/button-group/ButtonGroup.svelte.d.ts +0 -2
  182. package/dist/widgets/button-group/typedef.js +10 -10
  183. package/dist/widgets/compare-left-right/CompareLeftRight.svelte +179 -179
  184. package/dist/widgets/compare-left-right/index.js +1 -1
  185. package/dist/widgets/game-box/GameBox.svelte +579 -186
  186. package/dist/widgets/game-box/GameBox.svelte.d.ts +64 -4
  187. package/dist/widgets/game-box/gamebox.util.js +83 -83
  188. package/dist/widgets/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  189. package/dist/widgets/hk-app-layout/HkAppLayout.svelte +251 -251
  190. package/dist/widgets/image-box/ImageBox.svelte +212 -212
  191. package/dist/widgets/image-box/index.js +5 -5
  192. package/dist/widgets/image-box/typedef.js +32 -32
  193. package/dist/widgets/index.js +23 -23
  194. package/dist/widgets/presenter/(broken) Presenter.state.svelte.js__ +613 -0
  195. package/dist/widgets/presenter/ImageSlide.svelte +64 -64
  196. package/dist/widgets/presenter/Presenter.state.svelte.js +636 -636
  197. package/dist/widgets/presenter/Presenter.svelte +140 -140
  198. package/dist/widgets/presenter/Presenter.svelte__ +125 -0
  199. package/dist/widgets/presenter/constants.js +7 -7
  200. package/dist/widgets/presenter/index.js +10 -10
  201. package/dist/widgets/presenter/typedef.js +106 -106
  202. package/dist/widgets/presenter/util.js +210 -210
  203. package/dist/widgets/virtual-viewport/VirtualViewport.svelte +196 -196
  204. package/dist/zod/all.js +33 -33
  205. package/dist/zod/generic.js +11 -11
  206. package/dist/zod/javascript.js +32 -32
  207. package/dist/zod/user.js +16 -16
  208. package/dist/zod/web.js +52 -52
  209. package/package.json +102 -102
@@ -1,13 +1,13 @@
1
- export const AUDIO_BASIC = 'audio/basic';
2
- export const AUDIO_MIDI = 'audio/mid';
3
- export const AUDIO_WAV = 'audio/vnd.wav';
4
-
5
- export const AUDIO_MP3 = 'audio/mpeg';
6
- export const AUDIO_MP4 = 'audio/mp4';
7
-
8
- export const AUDIO_AIF = 'audio/x-aiff';
9
- export const AUDIO_AIFC = 'audio/x-aiff';
10
- export const AUDIO_AIFF = 'audio/x-aiff';
11
-
12
- export const AUDIO_M3U = 'audio/x-mpegurl';
13
- export const AUDIO_OGG = 'audio/ogg';
1
+ export const AUDIO_BASIC = 'audio/basic';
2
+ export const AUDIO_MIDI = 'audio/mid';
3
+ export const AUDIO_WAV = 'audio/vnd.wav';
4
+
5
+ export const AUDIO_MP3 = 'audio/mpeg';
6
+ export const AUDIO_MP4 = 'audio/mp4';
7
+
8
+ export const AUDIO_AIF = 'audio/x-aiff';
9
+ export const AUDIO_AIFC = 'audio/x-aiff';
10
+ export const AUDIO_AIFF = 'audio/x-aiff';
11
+
12
+ export const AUDIO_M3U = 'audio/x-mpegurl';
13
+ export const AUDIO_OGG = 'audio/ogg';
@@ -1,3 +1,3 @@
1
- export const IMAGE_PNG = 'image/png';
2
- export const IMAGE_JPEG = 'image/jpeg';
3
- export const IMAGE_WEBP = 'image/webp';
1
+ export const IMAGE_PNG = 'image/png';
2
+ export const IMAGE_JPEG = 'image/jpeg';
3
+ export const IMAGE_WEBP = 'image/webp';
@@ -1,4 +1,4 @@
1
- export * from './application.js';
2
- export * from './audio.js';
3
- export * from './text.js';
4
- export * from './image.js';
1
+ export * from './application.js';
2
+ export * from './audio.js';
3
+ export * from './text.js';
4
+ export * from './image.js';
@@ -1,2 +1,2 @@
1
- export const TEXT_PLAIN = 'text/plain';
2
- export const TEXT_HTML = 'text/html';
1
+ export const TEXT_PLAIN = 'text/plain';
2
+ export const TEXT_HTML = 'text/html';
@@ -1,31 +1,31 @@
1
- /**
2
- * Index file for various regexp categories
3
- *
4
- * @note
5
- * To enable unicode search, use the unicode flag 'u'.
6
- *
7
- * \p and \P are only supported in Unicode-aware mode. In Unicode-unaware mode,
8
- * they are identity escapes for the p or P character.
9
- *
10
- * @note
11
- * To enable unicode symbols that consist of multiple 'code points'(characters),
12
- * such a some emoji, you must use the flag 'v'.
13
- *
14
- * @eg
15
- * const re = new RegExp('^[${Latin_Number}]', 'u');
16
- *
17
- * @eg
18
- * const re = new RegExp('^[${Symbols_Emoji}]', 'v');
19
- *
20
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/
21
- * Reference/Regular_expressions/Unicode_character_class_escape
22
- *
23
- * @see https://javascript.info/regexp-unicode
24
- *
25
- * @see https://v8.dev/features/regexp-v-flag
26
- *
27
- * @see https://www.regular-expressions.info/unicode.html
28
- */
29
- export * from './text.js';
30
- export * from './user.js';
31
- export * from './web.js';
1
+ /**
2
+ * Index file for various regexp categories
3
+ *
4
+ * @note
5
+ * To enable unicode search, use the unicode flag 'u'.
6
+ *
7
+ * \p and \P are only supported in Unicode-aware mode. In Unicode-unaware mode,
8
+ * they are identity escapes for the p or P character.
9
+ *
10
+ * @note
11
+ * To enable unicode symbols that consist of multiple 'code points'(characters),
12
+ * such a some emoji, you must use the flag 'v'.
13
+ *
14
+ * @eg
15
+ * const re = new RegExp('^[${Latin_Number}]', 'u');
16
+ *
17
+ * @eg
18
+ * const re = new RegExp('^[${Symbols_Emoji}]', 'v');
19
+ *
20
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/
21
+ * Reference/Regular_expressions/Unicode_character_class_escape
22
+ *
23
+ * @see https://javascript.info/regexp-unicode
24
+ *
25
+ * @see https://v8.dev/features/regexp-v-flag
26
+ *
27
+ * @see https://www.regular-expressions.info/unicode.html
28
+ */
29
+ export * from './text.js';
30
+ export * from './user.js';
31
+ export * from './web.js';
@@ -1,95 +1,95 @@
1
- //
2
- // EXT_LATIN_TOKENS_LC
3
- // - Extended list of latin tokens, works for most latin languages
4
- //
5
- // @note
6
- // Both upper- and lower case extended latin tokens are:
7
- // "ŠŒŽšœžŸñÑÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðòóôõöøùúûüýþÿ"
8
- //
9
- // TODO:
10
- // Replace with unicode property escapes when supported ES2018
11
- // (not yet supported by MS Edge 12)
12
- // https://github.com/tc39/proposal-regexp-unicode-property-escapes
13
- // http://unicode.org/Public/UNIDATA/PropertyValueAliases.txt
14
- // https://www.fileformat.info/info/unicode/category/index.htm
15
- // https://github.com/danielberndt/babel-plugin-utf-8-regex/
16
- // blob/master/src/transformer.js
17
- //
18
- export const EXT_LATIN_TOKENS_LC = 'šœžÿñàáâãäåæçèéêëìíîïðòóôõöøùúûüýþß';
19
-
20
- // RegExp and RegExp part constants
21
-
22
- // TODO:
23
- // regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
24
- // "-~.,`'\"‘’“”„±€$@%&¡¿©®"
25
- // REP_PUNCTUATION = ",.¡!¿?;:-";
26
-
27
- export const C = {
28
- EXT_LATIN_TOKENS_LC,
29
- REP_NUMBER: '0-9',
30
- REP_LETTER_LC: `a-z${EXT_LATIN_TOKENS_LC}`,
31
- REP_LETTER_NUMBER_LC: `0-9a-z${EXT_LATIN_TOKENS_LC}`
32
- };
33
-
34
- export const RE_EMAIL = new RegExp(
35
- '^(([^<>()[\\]\\.,;:\\s@"]+(.[^<>()[\\]\\.,;:\\s@"]+)*)|(".+"))@((([' +
36
- '\\-' +
37
- C.REP_LETTER_NUMBER_LC +
38
- ']+\\.)+[' +
39
- C.REP_LETTER_LC +
40
- ']{2,}))$',
41
- 'i'
42
- );
43
-
44
- // export const RE_URL = << TODO
45
-
46
- export const RE_PHONE =
47
- /(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)/;
48
-
49
- export const RE_POSTCODE_DUTCH = /^[1-9]{1}[0-9]{3} ?[A-Za-z]{2}$/;
50
-
51
- export const RE_PLACE_DUTCH = new RegExp(
52
- "^['`]{0,1}" +
53
- `[${C.REP_LETTER_LC}]{0,}` +
54
- '[-\\s]{0,1}' +
55
- `[${C.REP_LETTER_LC}]{2,}$`,
56
- 'i'
57
- );
58
-
59
- // export const RE_NAME =
60
- // new RegExp( `^[${C.REP_LETTER_LC}\\s-\`']{2,}$`, "i" );
61
-
62
- export const RE_NAME = new RegExp(
63
- `^[${C.REP_LETTER_LC}]{1}` + `[${C.REP_LETTER_LC}\\s-\`'\\.]{0,}$`,
64
- 'i'
65
- );
66
-
67
- export const RE_FANTASY_NAME = new RegExp(
68
- '^[' +
69
- C.REP_LETTER_NUMBER_LC +
70
- "\\x20!@#\\$%\\^&\\*\\(\\)-_+=\\|:;'\"'`~<,>.?/\\\\]{2,}$",
71
- 'i'
72
- );
73
-
74
- export const RE_ADDRESS = new RegExp(
75
- '^[' + C.REP_LETTER_NUMBER_LC + '.,°\\s-]{2,}$',
76
- 'i'
77
- );
78
-
79
- export const RE_HAS_A_LETTER_OR_NUMBER = new RegExp('[a-z0-9]+', 'i');
80
-
81
- export const RE_MULTIPLE_SPACES = new RegExp('[\\s]{2,}', 'g');
82
- // export const RE_MULTIPLE_SPACES = / +/g
83
-
84
- export const RE_LABEL = new RegExp('^[a-z0-9_-]{2,}$');
85
-
86
- export const RE_COLLECTION_NAME = new RegExp('^[a-z0-9\\s-_]{1,}$', 'i');
87
-
88
- export const RE_URI_COMPONENT = new RegExp(
89
- '^[' + C.REP_LETTER_LC + '\\s-_]{1,}$',
90
- 'i'
91
- );
92
-
93
- //
94
- // @see https://usefulshortcuts.com/alt-codes/accents-alt-codes.php
95
- //
1
+ //
2
+ // EXT_LATIN_TOKENS_LC
3
+ // - Extended list of latin tokens, works for most latin languages
4
+ //
5
+ // @note
6
+ // Both upper- and lower case extended latin tokens are:
7
+ // "ŠŒŽšœžŸñÑÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðòóôõöøùúûüýþÿ"
8
+ //
9
+ // TODO:
10
+ // Replace with unicode property escapes when supported ES2018
11
+ // (not yet supported by MS Edge 12)
12
+ // https://github.com/tc39/proposal-regexp-unicode-property-escapes
13
+ // http://unicode.org/Public/UNIDATA/PropertyValueAliases.txt
14
+ // https://www.fileformat.info/info/unicode/category/index.htm
15
+ // https://github.com/danielberndt/babel-plugin-utf-8-regex/
16
+ // blob/master/src/transformer.js
17
+ //
18
+ export const EXT_LATIN_TOKENS_LC = 'šœžÿñàáâãäåæçèéêëìíîïðòóôõöøùúûüýþß';
19
+
20
+ // RegExp and RegExp part constants
21
+
22
+ // TODO:
23
+ // regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
24
+ // "-~.,`'\"‘’“”„±€$@%&¡¿©®"
25
+ // REP_PUNCTUATION = ",.¡!¿?;:-";
26
+
27
+ export const C = {
28
+ EXT_LATIN_TOKENS_LC,
29
+ REP_NUMBER: '0-9',
30
+ REP_LETTER_LC: `a-z${EXT_LATIN_TOKENS_LC}`,
31
+ REP_LETTER_NUMBER_LC: `0-9a-z${EXT_LATIN_TOKENS_LC}`
32
+ };
33
+
34
+ export const RE_EMAIL = new RegExp(
35
+ '^(([^<>()[\\]\\.,;:\\s@"]+(.[^<>()[\\]\\.,;:\\s@"]+)*)|(".+"))@((([' +
36
+ '\\-' +
37
+ C.REP_LETTER_NUMBER_LC +
38
+ ']+\\.)+[' +
39
+ C.REP_LETTER_LC +
40
+ ']{2,}))$',
41
+ 'i'
42
+ );
43
+
44
+ // export const RE_URL = << TODO
45
+
46
+ export const RE_PHONE =
47
+ /(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)/;
48
+
49
+ export const RE_POSTCODE_DUTCH = /^[1-9]{1}[0-9]{3} ?[A-Za-z]{2}$/;
50
+
51
+ export const RE_PLACE_DUTCH = new RegExp(
52
+ "^['`]{0,1}" +
53
+ `[${C.REP_LETTER_LC}]{0,}` +
54
+ '[-\\s]{0,1}' +
55
+ `[${C.REP_LETTER_LC}]{2,}$`,
56
+ 'i'
57
+ );
58
+
59
+ // export const RE_NAME =
60
+ // new RegExp( `^[${C.REP_LETTER_LC}\\s-\`']{2,}$`, "i" );
61
+
62
+ export const RE_NAME = new RegExp(
63
+ `^[${C.REP_LETTER_LC}]{1}` + `[${C.REP_LETTER_LC}\\s-\`'\\.]{0,}$`,
64
+ 'i'
65
+ );
66
+
67
+ export const RE_FANTASY_NAME = new RegExp(
68
+ '^[' +
69
+ C.REP_LETTER_NUMBER_LC +
70
+ "\\x20!@#\\$%\\^&\\*\\(\\)-_+=\\|:;'\"'`~<,>.?/\\\\]{2,}$",
71
+ 'i'
72
+ );
73
+
74
+ export const RE_ADDRESS = new RegExp(
75
+ '^[' + C.REP_LETTER_NUMBER_LC + '.,°\\s-]{2,}$',
76
+ 'i'
77
+ );
78
+
79
+ export const RE_HAS_A_LETTER_OR_NUMBER = new RegExp('[a-z0-9]+', 'i');
80
+
81
+ export const RE_MULTIPLE_SPACES = new RegExp('[\\s]{2,}', 'g');
82
+ // export const RE_MULTIPLE_SPACES = / +/g
83
+
84
+ export const RE_LABEL = new RegExp('^[a-z0-9_-]{2,}$');
85
+
86
+ export const RE_COLLECTION_NAME = new RegExp('^[a-z0-9\\s-_]{1,}$', 'i');
87
+
88
+ export const RE_URI_COMPONENT = new RegExp(
89
+ '^[' + C.REP_LETTER_LC + '\\s-_]{1,}$',
90
+ 'i'
91
+ );
92
+
93
+ //
94
+ // @see https://usefulshortcuts.com/alt-codes/accents-alt-codes.php
95
+ //
@@ -1,49 +1,49 @@
1
- /**
2
- * Text related regexp's
3
- *
4
- * Letter (any language): \p{L}
5
- * Letter latin: \p{Script=Latin}
6
- *
7
- * Number (any language): \p{N}
8
- * Number (exclude letter numbers, e.g. roman): \p{Nd}
9
- *
10
- * @example
11
- * import { Latin_Char_Number as lcn } from './latin.js';
12
- * export const User_Username = `^[${lcn}]+${lcn}_-]{1,38}[${lcn}]$`;
13
- *
14
- * const re = new RegExp('^[${Latin_Number}]', 'u');
15
- *
16
- * Emoji:
17
- *
18
- * The v flag enables support
19
- *
20
- * RGI_Emoji in Unicode is defined as “the subset of all valid emoji
21
- * (characters and sequences) recommended for general interchange”.
22
- * With this, we can now match emoji regardless of how many code points
23
- * they consist of under the hood!
24
- *
25
- * @see https://v8.dev/features/regexp-v-flag
26
- *
27
- * Punctuation:
28
- * Puntuation marks are periods, commas, exclamation marks, question marks etc.
29
- * Astral symbols are emoji
30
- *
31
- * @note
32
- * \p{Punctuation} matches a small subset: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
33
- * \p{IsPunctuation} matches a wide subset, including e.g. «, », ¿, ¡, §,
34
- * ¶, ‘, ’, “, ”, and ‽.
35
- *
36
- * @see https://stackoverflow.com/questions/4328500/
37
- * how-can-i-strip-all-punctuation-from-a-string-in-javascript-using-regex
38
- *
39
- * @see https://en.wikipedia.org/
40
- * wiki/Unicode_character_property#General_Category
41
- */
42
-
43
- export const CHAR = '\\p{Script=Latin}';
44
- export const NUMBER = '\\p{Nd}';
45
- export const CHAR_NUMBER = `${CHAR}${NUMBER}`;
46
-
47
- export const EMOJI = '\\p{RGI_Emoji}';
48
- export const PUNCTUATION = '\\p{Punctuation}$+<=>\\^`\\|~';
49
- export const PUNCT = PUNCTUATION;
1
+ /**
2
+ * Text related regexp's
3
+ *
4
+ * Letter (any language): \p{L}
5
+ * Letter latin: \p{Script=Latin}
6
+ *
7
+ * Number (any language): \p{N}
8
+ * Number (exclude letter numbers, e.g. roman): \p{Nd}
9
+ *
10
+ * @example
11
+ * import { Latin_Char_Number as lcn } from './latin.js';
12
+ * export const User_Username = `^[${lcn}]+${lcn}_-]{1,38}[${lcn}]$`;
13
+ *
14
+ * const re = new RegExp('^[${Latin_Number}]', 'u');
15
+ *
16
+ * Emoji:
17
+ *
18
+ * The v flag enables support
19
+ *
20
+ * RGI_Emoji in Unicode is defined as “the subset of all valid emoji
21
+ * (characters and sequences) recommended for general interchange”.
22
+ * With this, we can now match emoji regardless of how many code points
23
+ * they consist of under the hood!
24
+ *
25
+ * @see https://v8.dev/features/regexp-v-flag
26
+ *
27
+ * Punctuation:
28
+ * Puntuation marks are periods, commas, exclamation marks, question marks etc.
29
+ * Astral symbols are emoji
30
+ *
31
+ * @note
32
+ * \p{Punctuation} matches a small subset: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
33
+ * \p{IsPunctuation} matches a wide subset, including e.g. «, », ¿, ¡, §,
34
+ * ¶, ‘, ’, “, ”, and ‽.
35
+ *
36
+ * @see https://stackoverflow.com/questions/4328500/
37
+ * how-can-i-strip-all-punctuation-from-a-string-in-javascript-using-regex
38
+ *
39
+ * @see https://en.wikipedia.org/
40
+ * wiki/Unicode_character_property#General_Category
41
+ */
42
+
43
+ export const CHAR = '\\p{Script=Latin}';
44
+ export const NUMBER = '\\p{Nd}';
45
+ export const CHAR_NUMBER = `${CHAR}${NUMBER}`;
46
+
47
+ export const EMOJI = '\\p{RGI_Emoji}';
48
+ export const PUNCTUATION = '\\p{Punctuation}$+<=>\\^`\\|~';
49
+ export const PUNCT = PUNCTUATION;
@@ -1,33 +1,33 @@
1
- /**
2
- * User related regexps
3
- *
4
- * Inspired by
5
- * @see https://ihateregex.io/expr/username/
6
- * @see https://ihateregex.io/expr/discord-username/
7
- */
8
-
9
- import { NUMBER as N, CHAR, CHAR_NUMBER as CN } from './text.js';
10
-
11
- export const RE_NAME = new RegExp(
12
- `^[${CHAR}]+(([\\s'\\-\\.]{1}|[\\s]{1}[']{0,1})[${CHAR}]+){0,8}$`, 'v'
13
- );
14
-
15
- export const RE_FULLNAME = new RegExp(
16
- `^[${CHAR}]{2,}[\\s][']?[${CHAR}]{1,}([\\s]?['\\-]?[${CHAR}]{1,})*$`, 'v'
17
- );
18
-
19
- export const RE_SURNAME = new RegExp(
20
- `^[']?[${CHAR}]{1,}([\\s]?['\\-]?[${CHAR}]{1,})*$`, 'v'
21
- )
22
-
23
- export const RE_USERNAME = new RegExp(
24
- `^[${CN}]{2,40}([\\-_\\.][${CN}]{1,40}){0,3}([#][${N}]{1,10}){0,1}$`, 'v'
25
- );
26
-
27
- export const RE_EMAIL = new RegExp(
28
- `[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+`, 'v'
29
- );
30
-
31
- export const RE_PHONENUMBER = new RegExp(
32
- `^[\\+]?[\\(]?[0-9]{3}[\\)]?[\\-\\s\\.]?[0-9]{3}[\\-\\s\\.]?[0-9]{4,6}$`, 'v'
1
+ /**
2
+ * User related regexps
3
+ *
4
+ * Inspired by
5
+ * @see https://ihateregex.io/expr/username/
6
+ * @see https://ihateregex.io/expr/discord-username/
7
+ */
8
+
9
+ import { NUMBER as N, CHAR, CHAR_NUMBER as CN } from './text.js';
10
+
11
+ export const RE_NAME = new RegExp(
12
+ `^[${CHAR}]+(([\\s'\\-\\.]{1}|[\\s]{1}[']{0,1})[${CHAR}]+){0,8}$`, 'v'
13
+ );
14
+
15
+ export const RE_FULLNAME = new RegExp(
16
+ `^[${CHAR}]{2,}[\\s][']?[${CHAR}]{1,}([\\s]?['\\-]?[${CHAR}]{1,})*$`, 'v'
17
+ );
18
+
19
+ export const RE_SURNAME = new RegExp(
20
+ `^[']?[${CHAR}]{1,}([\\s]?['\\-]?[${CHAR}]{1,})*$`, 'v'
21
+ )
22
+
23
+ export const RE_USERNAME = new RegExp(
24
+ `^[${CN}]{2,40}([\\-_\\.][${CN}]{1,40}){0,3}([#][${N}]{1,10}){0,1}$`, 'v'
25
+ );
26
+
27
+ export const RE_EMAIL = new RegExp(
28
+ `[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+`, 'v'
29
+ );
30
+
31
+ export const RE_PHONENUMBER = new RegExp(
32
+ `^[\\+]?[\\(]?[0-9]{3}[\\)]?[\\-\\s\\.]?[0-9]{3}[\\-\\s\\.]?[0-9]{4,6}$`, 'v'
33
33
  )
@@ -1,3 +1,3 @@
1
- import { CHAR_NUMBER as CN } from './text.js';
2
-
3
- export const URL_SLUG = `^[${CN}]+([-]{0,1}[${CN}]+)*$`;
1
+ import { CHAR_NUMBER as CN } from './text.js';
2
+
3
+ export const URL_SLUG = `^[${CN}]+([-]{0,1}[${CN}]+)*$`;
@@ -1,11 +1,11 @@
1
- export const PRISTINE = 'pristine';
2
- export const DIRTY = 'dirty';
3
-
4
- export const FOCUSED = 'focused';
5
- export const UNFOCUSED = 'unfocused';
6
-
7
- export const VALID = 'valid';
8
- export const INVALID = 'invalid';
9
-
10
- export const REQUIRED = 'required';
11
- export const DISABLED = 'disabled';
1
+ export const PRISTINE = 'pristine';
2
+ export const DIRTY = 'dirty';
3
+
4
+ export const FOCUSED = 'focused';
5
+ export const UNFOCUSED = 'unfocused';
6
+
7
+ export const VALID = 'valid';
8
+ export const INVALID = 'invalid';
9
+
10
+ export const REQUIRED = 'required';
11
+ export const DISABLED = 'disabled';
@@ -1,4 +1,4 @@
1
- export const IDLE = 'idle';
2
- export const SUBMITTING = 'submitting';
3
- export const SUBMIT_OK = 'submit-ok';
4
- export const SUBMIT_FAILED = 'submit-failed';
1
+ export const IDLE = 'idle';
2
+ export const SUBMITTING = 'submitting';
3
+ export const SUBMIT_OK = 'submit-ok';
4
+ export const SUBMIT_FAILED = 'submit-failed';
@@ -1,28 +1,28 @@
1
- // > Units
2
-
3
- export const SECOND_MS = 1000;
4
- export const MINUTE_MS = 60 * SECOND_MS;
5
- export const HOUR_MS = 60 * MINUTE_MS;
6
- export const DAY_MS = 24 * HOUR_MS;
7
- export const WEEK_MS = 7 * DAY_MS;
8
-
9
- // > Fixed length intervals
10
-
11
- export const HOURLY = 'hourly';
12
- export const DAILY = 'daily';
13
- export const WEEKLY = 'weekly';
14
- export const TWO_WEEKLY = 'two-weekly';
15
- export const FOUR_WEEKLY = 'four-weekly';
16
-
17
- export const INTERVALS_MS = {
18
- [HOURLY]: HOUR_MS,
19
- [DAILY]: DAY_MS,
20
- [WEEKLY]: WEEK_MS,
21
- [TWO_WEEKLY]: WEEK_MS * 2,
22
- [FOUR_WEEKLY]: WEEK_MS * 4
23
- };
24
-
25
- // > Offsets
26
-
27
- export const TIME_2025_01_01 = 1577836800000; // 2020-01-01T00:00:00.000Z
28
- // export const TIME_2100_01_01 = 4102444800000; // 2100-01-01T00:00:00.000Z
1
+ // > Units
2
+
3
+ export const SECOND_MS = 1000;
4
+ export const MINUTE_MS = 60 * SECOND_MS;
5
+ export const HOUR_MS = 60 * MINUTE_MS;
6
+ export const DAY_MS = 24 * HOUR_MS;
7
+ export const WEEK_MS = 7 * DAY_MS;
8
+
9
+ // > Fixed length intervals
10
+
11
+ export const HOURLY = 'hourly';
12
+ export const DAILY = 'daily';
13
+ export const WEEKLY = 'weekly';
14
+ export const TWO_WEEKLY = 'two-weekly';
15
+ export const FOUR_WEEKLY = 'four-weekly';
16
+
17
+ export const INTERVALS_MS = {
18
+ [HOURLY]: HOUR_MS,
19
+ [DAILY]: DAY_MS,
20
+ [WEEKLY]: WEEK_MS,
21
+ [TWO_WEEKLY]: WEEK_MS * 2,
22
+ [FOUR_WEEKLY]: WEEK_MS * 4
23
+ };
24
+
25
+ // > Offsets
26
+
27
+ export const TIME_2025_01_01 = 1577836800000; // 2020-01-01T00:00:00.000Z
28
+ // export const TIME_2100_01_01 = 4102444800000; // 2100-01-01T00:00:00.000Z
@@ -1,43 +1,43 @@
1
- /**
2
- * Common utility CSS classes
3
- *
4
- * Using tailwind layers
5
- * @see https://tailwindcss.com/docs/functions-and-directives
6
- */
7
-
8
- @layer utilities {
9
- .g-no-select {
10
- user-select: none;
11
- -webkit-user-select: none; /* ios safari */
12
- -webkit-tap-highlight-color: transparent;
13
- }
14
-
15
- input[type='text'].g-no-select,
16
- textarea.g-no-select {
17
- user-select: text !important;
18
- cursor: text;
19
- }
20
-
21
- .g-no-double-tab-zoom {
22
- /* tailwind touch-manipulation */
23
- touch-action: manipulation;
24
- }
25
-
26
- .g-no-pinch-zoom {
27
- touch-action: pan-x pan-y; /* no pinch zoom, but allow scroll */
28
- }
29
-
30
- .g-no-highlights {
31
- -webkit-tap-highlight-color: transparent;
32
- }
33
- }
34
-
35
- /* .g-grid-layers {
36
- display: grid;
37
- grid-template-columns: 1fr;
38
- grid-template-rows: 1fr;
39
-
40
- & > * {
41
- grid-area: 1/1/2/2;
42
- }
43
- } */
1
+ /**
2
+ * Common utility CSS classes
3
+ *
4
+ * Using tailwind layers
5
+ * @see https://tailwindcss.com/docs/functions-and-directives
6
+ */
7
+
8
+ @layer utilities {
9
+ .g-no-select {
10
+ user-select: none;
11
+ -webkit-user-select: none; /* ios safari */
12
+ -webkit-tap-highlight-color: transparent;
13
+ }
14
+
15
+ input[type='text'].g-no-select,
16
+ textarea.g-no-select {
17
+ user-select: text !important;
18
+ cursor: text;
19
+ }
20
+
21
+ .g-no-double-tab-zoom {
22
+ /* tailwind touch-manipulation */
23
+ touch-action: manipulation;
24
+ }
25
+
26
+ .g-no-pinch-zoom {
27
+ touch-action: pan-x pan-y; /* no pinch zoom, but allow scroll */
28
+ }
29
+
30
+ .g-no-highlights {
31
+ -webkit-tap-highlight-color: transparent;
32
+ }
33
+ }
34
+
35
+ /* .g-grid-layers {
36
+ display: grid;
37
+ grid-template-columns: 1fr;
38
+ grid-template-rows: 1fr;
39
+
40
+ & > * {
41
+ grid-area: 1/1/2/2;
42
+ }
43
+ } */