@hkdigital/lib-core 0.3.11 → 0.3.13

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 (293) hide show
  1. package/README.md +173 -149
  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 +242 -242
  5. package/dist/classes/data/Selector.js +190 -190
  6. package/dist/classes/data/index.js +2 -2
  7. package/dist/classes/data/typedef.js +9 -9
  8. package/dist/classes/event-emitter/EventEmitter.js +273 -273
  9. package/dist/classes/event-emitter/index.js +2 -2
  10. package/dist/classes/index.js +4 -4
  11. package/dist/classes/promise/HkPromise.js +384 -384
  12. package/dist/classes/promise/index.js +1 -1
  13. package/dist/classes/stores/SubscribersCount.js +107 -107
  14. package/dist/classes/stores/index.js +1 -1
  15. package/dist/classes/streams/LogTransformStream.js +19 -19
  16. package/dist/classes/streams/ServerEventsStore.js +111 -111
  17. package/dist/classes/streams/TimeStampSource.js +26 -26
  18. package/dist/classes/streams/index.js +3 -3
  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/index.js +1 -11
  22. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  23. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  24. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  25. package/dist/config/README.md +197 -196
  26. package/dist/config/generators/imagetools.js +189 -189
  27. package/dist/config/generators/vite.js +148 -142
  28. package/dist/config/imagetools.d.ts +72 -72
  29. package/dist/config/vite.js +4 -4
  30. package/dist/constants/bases/index.js +13 -13
  31. package/dist/constants/http/headers.js +6 -6
  32. package/dist/constants/http/index.js +2 -2
  33. package/dist/constants/http/methods.js +14 -14
  34. package/dist/constants/index.js +6 -6
  35. package/dist/constants/mime/application.js +5 -5
  36. package/dist/constants/mime/audio.js +13 -13
  37. package/dist/constants/mime/image.js +3 -3
  38. package/dist/constants/mime/index.js +4 -4
  39. package/dist/constants/mime/text.js +2 -2
  40. package/dist/constants/regexp/README.md +96 -95
  41. package/dist/constants/regexp/index.js +31 -31
  42. package/dist/constants/regexp/inspiratie.js__ +95 -95
  43. package/dist/constants/regexp/text.d.ts +4 -4
  44. package/dist/constants/regexp/text.js +49 -49
  45. package/dist/constants/regexp/url.js +3 -3
  46. package/dist/constants/regexp/user.js +29 -29
  47. package/dist/constants/states/drag.js +6 -6
  48. package/dist/constants/states/drop.js +6 -6
  49. package/dist/constants/states/index.js +4 -4
  50. package/dist/constants/states/input.js +11 -11
  51. package/dist/constants/states/submit.js +4 -4
  52. package/dist/constants/time/index.js +28 -28
  53. package/dist/css/utilities.css +43 -43
  54. package/dist/design/README.md +405 -405
  55. package/dist/design/config/design-config.js +73 -73
  56. package/dist/design/generators/index.js +288 -288
  57. package/dist/design/index.js +96 -96
  58. package/dist/design/plugins/skeleton.js +208 -208
  59. package/dist/design/tailwind-theme-extend.js +158 -158
  60. package/dist/design/themes/README.md +102 -102
  61. package/dist/design/themes/hkdev/components/blocks/text-block.css +34 -34
  62. package/dist/design/themes/hkdev/components/boxes/game-box.css +11 -11
  63. package/dist/design/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  64. package/dist/design/themes/hkdev/components/buttons/button-text.css +32 -32
  65. package/dist/design/themes/hkdev/components/buttons/button.css +146 -146
  66. package/dist/design/themes/hkdev/components/buttons/skip-button.css +5 -5
  67. package/dist/design/themes/hkdev/components/drag-drop/draggable.css +73 -73
  68. package/dist/design/themes/hkdev/components/drag-drop/drop-zone.css +58 -58
  69. package/dist/design/themes/hkdev/components/icons/icon-steeze.css +15 -15
  70. package/dist/design/themes/hkdev/components/inputs/text-input.css +102 -102
  71. package/dist/design/themes/hkdev/components/panels/panel.css +25 -25
  72. package/dist/design/themes/hkdev/components/rows/panel-grid-row.css +4 -4
  73. package/dist/design/themes/hkdev/components/rows/panel-row-2.css +5 -5
  74. package/dist/design/themes/hkdev/components.css +29 -29
  75. package/dist/design/themes/hkdev/debug.css +1 -1
  76. package/dist/design/themes/hkdev/global/layout.css +32 -32
  77. package/dist/design/themes/hkdev/global/on-colors.css +32 -32
  78. package/dist/design/themes/hkdev/globals.css +3 -3
  79. package/dist/design/themes/hkdev/responsive.css +12 -12
  80. package/dist/design/themes/hkdev/theme-ext.js +12 -12
  81. package/dist/design/themes/hkdev/theme.css +218 -218
  82. package/dist/design/utils/clamp.js +66 -66
  83. package/dist/design/utils/root-vars.js +102 -102
  84. package/dist/design/utils/scaling.js +228 -228
  85. package/dist/design/utils/states.js +22 -22
  86. package/dist/errors/api.js +9 -9
  87. package/dist/errors/generic.js +20 -20
  88. package/dist/errors/http.js +16 -16
  89. package/dist/errors/index.js +5 -5
  90. package/dist/errors/jwt.js +5 -5
  91. package/dist/errors/promise.js +25 -25
  92. package/dist/logging/README.md +158 -0
  93. package/dist/logging/index.d.ts +3 -1
  94. package/dist/logging/index.js +11 -7
  95. package/dist/logging/internal/adapters/console.js +114 -114
  96. package/dist/logging/internal/adapters/index.js +2 -2
  97. package/dist/logging/internal/adapters/pino.js +160 -142
  98. package/dist/logging/internal/adapters/typedef.js +10 -10
  99. package/dist/logging/internal/{unified-logger/constants.js → constants.js} +22 -22
  100. package/dist/logging/internal/factories/client.d.ts +1 -1
  101. package/dist/logging/internal/factories/client.js +21 -21
  102. package/dist/logging/internal/factories/server.d.ts +1 -1
  103. package/dist/logging/internal/factories/server.js +22 -22
  104. package/dist/logging/internal/factories/universal.d.ts +2 -2
  105. package/dist/logging/internal/factories/universal.js +22 -22
  106. package/dist/logging/internal/{unified-logger → logger}/Logger.d.ts +2 -2
  107. package/dist/logging/internal/{unified-logger → logger}/Logger.js +217 -217
  108. package/dist/logging/internal/logger/index.d.ts +1 -0
  109. package/dist/logging/internal/logger/index.js +1 -0
  110. package/dist/logging/internal/{unified-logger/typedef.d.ts → typedef.d.ts} +2 -1
  111. package/dist/logging/internal/{unified-logger/typedef.js → typedef.js} +21 -17
  112. package/dist/network/README.md +172 -172
  113. package/dist/network/cache/IndexedDbCache.js +1407 -1407
  114. package/dist/network/cache/MemoryResponseCache.js +138 -138
  115. package/dist/network/cache/index.js +5 -5
  116. package/dist/network/cache/typedef.js +41 -41
  117. package/dist/network/cache.js +3 -3
  118. package/dist/network/http/caching.js +261 -261
  119. package/dist/network/http/errors.js +97 -97
  120. package/dist/network/http/headers.js +75 -75
  121. package/dist/network/http/http-request.js +578 -578
  122. package/dist/network/http/index.js +22 -22
  123. package/dist/network/http/json-request.js +224 -224
  124. package/dist/network/http/mocks.js +65 -65
  125. package/dist/network/http/response.js +318 -318
  126. package/dist/network/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  127. package/dist/network/http/typedef.js +93 -93
  128. package/dist/network/http/url.js +52 -52
  129. package/dist/network/http.js +5 -5
  130. package/dist/network/loaders/README.md +254 -254
  131. package/dist/network/loaders/audio/AudioLoader.svelte.js +58 -58
  132. package/dist/network/loaders/audio/AudioScene.svelte.js +324 -324
  133. package/dist/network/loaders/audio/mocks.js +35 -35
  134. package/dist/network/loaders/audio.js +1 -1
  135. package/dist/network/loaders/image/ImageLoader.svelte.js +44 -44
  136. package/dist/network/loaders/image/ImageScene.svelte.js +248 -248
  137. package/dist/network/loaders/image/ImageVariantsLoader.svelte.js +150 -150
  138. package/dist/network/loaders/image/index.js +4 -4
  139. package/dist/network/loaders/image/mocks.js +35 -35
  140. package/dist/network/loaders/image/typedef.js +8 -8
  141. package/dist/network/loaders/image/utils/index.js +86 -86
  142. package/dist/network/loaders/image.js +7 -7
  143. package/dist/network/loaders/typedef.js +38 -38
  144. package/dist/network/loaders.js +2 -2
  145. package/dist/network/states/NetworkLoader.svelte.js +338 -338
  146. package/dist/network/states/constants.js +3 -3
  147. package/dist/network/states/index.js +3 -3
  148. package/dist/network/states/mocks.js +30 -30
  149. package/dist/network/states/typedef.js +8 -8
  150. package/dist/network/typedef.js +9 -9
  151. package/dist/services/README.md +200 -0
  152. package/dist/services/index.d.ts +6 -1
  153. package/dist/services/index.js +8 -1
  154. package/dist/services/{internal/service-base → service-base}/ServiceBase.d.ts +2 -2
  155. package/dist/services/{internal/service-base → service-base}/ServiceBase.js +462 -462
  156. package/dist/services/{internal/service-base → service-base}/constants.d.ts +0 -12
  157. package/dist/services/{internal/service-base → service-base}/constants.js +98 -110
  158. package/dist/services/{internal/service-base → service-base}/index.js +3 -3
  159. package/dist/services/{internal/service-base → service-base}/typedef.d.ts +1 -1
  160. package/dist/services/{internal/service-base → service-base}/typedef.js +101 -101
  161. package/dist/services/{internal/service-manager → service-manager}/ServiceManager.d.ts +2 -2
  162. package/dist/services/{internal/service-manager → service-manager}/ServiceManager.js +608 -608
  163. package/dist/services/{internal/service-manager → service-manager}/constants.js +6 -6
  164. package/dist/services/{internal/service-manager → service-manager}/typedef.js +90 -90
  165. package/dist/states/index.js +1 -1
  166. package/dist/states/navigation.svelte.js +55 -55
  167. package/dist/stores/index.js +1 -1
  168. package/dist/stores/theme.js +80 -80
  169. package/dist/typedef/context.js +6 -6
  170. package/dist/typedef/drag.js +25 -25
  171. package/dist/typedef/drop.js +12 -12
  172. package/dist/typedef/index.d.ts +1 -0
  173. package/dist/typedef/index.js +4 -4
  174. package/dist/ui/components/button-group/ButtonGroup.svelte +82 -82
  175. package/dist/ui/components/button-group/typedef.js +10 -10
  176. package/dist/ui/components/compare-left-right/CompareLeftRight.svelte +179 -179
  177. package/dist/ui/components/compare-left-right/index.js +1 -1
  178. package/dist/ui/components/game-box/GameBox.svelte +577 -577
  179. package/dist/ui/components/game-box/gamebox.util.js +83 -83
  180. package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  181. package/dist/ui/components/hk-app-layout/HkAppLayout.svelte +251 -251
  182. package/dist/ui/components/image-box/ImageBox.svelte +210 -210
  183. package/dist/ui/components/image-box/index.js +5 -5
  184. package/dist/ui/components/image-box/typedef.js +32 -32
  185. package/dist/ui/components/index.js +23 -23
  186. package/dist/ui/components/presenter/ImageSlide.svelte +64 -64
  187. package/dist/ui/components/presenter/Presenter.state.svelte.js +638 -638
  188. package/dist/ui/components/presenter/Presenter.svelte +142 -142
  189. package/dist/ui/components/presenter/constants.js +7 -7
  190. package/dist/ui/components/presenter/index.js +10 -10
  191. package/dist/ui/components/presenter/typedef.js +106 -106
  192. package/dist/ui/components/presenter/util.js +210 -210
  193. package/dist/ui/components/virtual-viewport/VirtualViewport.svelte +196 -196
  194. package/dist/ui/primitives/area/HkArea.svelte +49 -49
  195. package/dist/ui/primitives/area/HkGridArea.svelte +77 -77
  196. package/dist/ui/primitives/area/index.js +2 -2
  197. package/dist/ui/primitives/buttons/button/Button.svelte +82 -82
  198. package/dist/ui/primitives/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  199. package/dist/ui/primitives/buttons/button-text/TextButton.svelte +21 -21
  200. package/dist/ui/primitives/buttons/index.js +3 -3
  201. package/dist/ui/primitives/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  202. package/dist/ui/primitives/debug/index.js +1 -1
  203. package/dist/ui/primitives/drag-drop/DragController.js +44 -44
  204. package/dist/ui/primitives/drag-drop/DragDropContext.svelte +111 -111
  205. package/dist/ui/primitives/drag-drop/Draggable.svelte +519 -519
  206. package/dist/ui/primitives/drag-drop/DropZone.svelte +258 -258
  207. package/dist/ui/primitives/drag-drop/DropZoneArea.svelte +119 -119
  208. package/dist/ui/primitives/drag-drop/DropZoneList.svelte +125 -125
  209. package/dist/ui/primitives/drag-drop/actions.js +26 -26
  210. package/dist/ui/primitives/drag-drop/drag-state.svelte.js +322 -322
  211. package/dist/ui/primitives/drag-drop/index.js +7 -7
  212. package/dist/ui/primitives/drag-drop/util.js +85 -85
  213. package/dist/ui/primitives/hkdev/blocks/TextBlock.svelte +46 -46
  214. package/dist/ui/primitives/hkdev/buttons/CheckButton.svelte +62 -62
  215. package/dist/ui/primitives/icons/HkIcon.svelte +86 -86
  216. package/dist/ui/primitives/icons/HkTabIcon.svelte +116 -116
  217. package/dist/ui/primitives/icons/SteezeIcon.svelte +97 -97
  218. package/dist/ui/primitives/icons/index.js +6 -6
  219. package/dist/ui/primitives/icons/typedef.js +16 -16
  220. package/dist/ui/primitives/index.js +2 -2
  221. package/dist/ui/primitives/inputs/index.js +1 -1
  222. package/dist/ui/primitives/inputs/text-input/TestTextInput.svelte__ +102 -0
  223. package/dist/ui/primitives/inputs/text-input/TextInput.svelte +223 -223
  224. package/dist/ui/primitives/inputs/text-input/TextInput.svelte___ +83 -0
  225. package/dist/ui/primitives/inputs/text-input/assets/IconInvalid.svelte +14 -14
  226. package/dist/ui/primitives/inputs/text-input/assets/IconValid.svelte +12 -12
  227. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte +63 -63
  228. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
  229. package/dist/ui/primitives/layout/grid-layers/util.js +74 -74
  230. package/dist/ui/primitives/layout/index.js +1 -1
  231. package/dist/ui/primitives/panels/index.js +1 -1
  232. package/dist/ui/primitives/panels/panel/Panel.svelte +43 -43
  233. package/dist/ui/primitives/rows/index.js +3 -3
  234. package/dist/ui/primitives/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  235. package/dist/ui/primitives/rows/panel-row-2/PanelRow2.svelte +40 -40
  236. package/dist/ui/primitives/tab-bar/HkTabBar.state.svelte.js +149 -149
  237. package/dist/ui/primitives/tab-bar/HkTabBar.svelte +74 -74
  238. package/dist/ui/primitives/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  239. package/dist/ui/primitives/tab-bar/HkTabBarSelector.svelte +49 -49
  240. package/dist/ui/primitives/tab-bar/index.js +17 -17
  241. package/dist/ui/primitives/tab-bar/typedef.js +11 -11
  242. package/dist/util/array/index.js +436 -436
  243. package/dist/util/bases/base58.js +262 -262
  244. package/dist/util/bases/index.js +1 -1
  245. package/dist/util/compare/index.js +247 -247
  246. package/dist/util/css/css-vars.js +83 -83
  247. package/dist/util/css/index.js +1 -1
  248. package/dist/util/env/index.js +9 -9
  249. package/dist/util/exceptions/index.d.ts +4 -3
  250. package/dist/util/exceptions/index.js +26 -23
  251. package/dist/util/expect/arrays.js +47 -47
  252. package/dist/util/expect/index.js +259 -259
  253. package/dist/util/expect/primitives.js +55 -55
  254. package/dist/util/expect/url.js +60 -60
  255. package/dist/util/function/index.js +218 -218
  256. package/dist/util/geo/index.js +26 -26
  257. package/dist/util/index.js +7 -7
  258. package/dist/util/is/index.js +147 -147
  259. package/dist/util/iterate/index.js +204 -204
  260. package/dist/util/object/index.js +1345 -1345
  261. package/dist/util/singleton/index.js +97 -97
  262. package/dist/util/string/array-path.js +75 -75
  263. package/dist/util/string/convert.js +54 -54
  264. package/dist/util/string/fs.js +226 -226
  265. package/dist/util/string/index.js +5 -5
  266. package/dist/util/string/interpolate.js +61 -61
  267. package/dist/util/string/pad.js +10 -10
  268. package/dist/util/svelte/index.js +4 -4
  269. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  270. package/dist/util/svelte/observe/index.js +49 -49
  271. package/dist/util/svelte/state-context/index.js +117 -117
  272. package/dist/util/svelte/wait/index.js +38 -38
  273. package/dist/util/sveltekit/index.js +1 -1
  274. package/dist/util/sveltekit/route-folders/index.js +101 -101
  275. package/dist/util/time/index.js +328 -328
  276. package/dist/util/unique/index.js +231 -231
  277. package/dist/valibot/README.md +61 -50
  278. package/dist/valibot/index.js +8 -8
  279. package/dist/valibot/parsers/date.js__ +10 -0
  280. package/dist/valibot/parsers/email.d.ts +12 -0
  281. package/dist/valibot/parsers/email.js +34 -0
  282. package/dist/valibot/parsers/url.js +110 -110
  283. package/dist/valibot/parsers/user.js +23 -23
  284. package/dist/valibot/parsers.js +3 -3
  285. package/package.json +131 -131
  286. package/dist/logging/internal/unified-logger/index.d.ts +0 -3
  287. package/dist/logging/internal/unified-logger/index.js +0 -6
  288. package/dist/services/internal/index.d.ts +0 -6
  289. package/dist/services/internal/index.js +0 -8
  290. /package/dist/logging/internal/{unified-logger/constants.d.ts → constants.d.ts} +0 -0
  291. /package/dist/services/{internal/service-base → service-base}/index.d.ts +0 -0
  292. /package/dist/services/{internal/service-manager → service-manager}/constants.d.ts +0 -0
  293. /package/dist/services/{internal/service-manager → service-manager}/typedef.d.ts +0 -0
@@ -1,97 +1,97 @@
1
- /**
2
- * @fileoverview HKdigital Core Design System
3
- *
4
- * This module provides a comprehensive design system for building consistent,
5
- * responsive interfaces. It includes configuration objects, generator functions,
6
- * and ready-to-use Tailwind theme extensions.
7
- *
8
- * @example Basic usage in tailwind.config.js
9
- * ```javascript
10
- * import { spacing, fontSize, customUtilitiesPlugin } from '@hkdigital/lib-core/design';
11
- *
12
- * export default {
13
- * theme: {
14
- * extend: { spacing, fontSize }
15
- * },
16
- * plugins: [customUtilitiesPlugin]
17
- * };
18
- * ```
19
- *
20
- * @example Advanced customization
21
- * ```javascript
22
- * import {
23
- * generateTextBasedSpacing,
24
- * DESIGN,
25
- * TEXT_POINT_SIZES
26
- * } from '@hkdigital/lib-core/design';
27
- *
28
- * const customSpacing = generateTextBasedSpacing([8, 12, 16, 24]);
29
- * ```
30
- */
31
-
32
- // === Configuration Objects ===
33
- // Projects can import and customize these for their own design systems
34
-
35
- export {
36
- DESIGN,
37
- CLAMPING,
38
- TEXT_POINT_SIZES,
39
- VIEWPORT_POINT_SIZES,
40
- TEXT_BASE_SIZES,
41
- TEXT_HEADING_SIZES,
42
- TEXT_UI_SIZES,
43
- RADIUS_SIZES,
44
- BORDER_WIDTH_SIZES,
45
- STROKE_WIDTH_SIZES
46
- } from './config/design-config.js';
47
-
48
- // === Generator Functions ===
49
- // Essential tools for projects to build custom Tailwind extensions
50
-
51
- export {
52
- generateTextBasedSpacing,
53
- generateViewportBasedSpacing,
54
- generateTextStyles,
55
- generateBorderRadiusStyles,
56
- generateWidthStyles
57
- } from './generators/index.js';
58
-
59
- // === Ready-to-use Tailwind Extensions ===
60
- // Built using default configuration - projects can use directly or as reference
61
-
62
- export {
63
- spacing,
64
- fontSize,
65
- borderRadius,
66
- borderWidth,
67
- strokeWidth,
68
- outlineWidth,
69
- outlineOffset
70
- } from './tailwind-theme-extend.js';
71
-
72
- // === Plugins & Utilities ===
73
- // Framework integration tools
74
-
75
- export { customUtilitiesPlugin } from './plugins/skeleton.js';
76
-
77
- // === Utilities ===
78
- // Essential utility functions for design system implementation
79
-
80
- export {
81
- rootDesignVarsHTML,
82
- getRootCssDesignWidth,
83
- getRootCssDesignHeight,
84
- getAllRootScalingVars
85
- } from './utils/root-vars.js';
86
-
87
- export {
88
- getClampParams,
89
- clamp
90
- } from './utils/clamp.js';
91
-
92
- export { toStateClasses } from './utils/states.js';
93
-
94
- export {
95
- enableContainerScaling,
96
- enableScalingUI
1
+ /**
2
+ * @fileoverview HKdigital Core Design System
3
+ *
4
+ * This module provides a comprehensive design system for building consistent,
5
+ * responsive interfaces. It includes configuration objects, generator functions,
6
+ * and ready-to-use Tailwind theme extensions.
7
+ *
8
+ * @example Basic usage in tailwind.config.js
9
+ * ```javascript
10
+ * import { spacing, fontSize, customUtilitiesPlugin } from '@hkdigital/lib-core/design';
11
+ *
12
+ * export default {
13
+ * theme: {
14
+ * extend: { spacing, fontSize }
15
+ * },
16
+ * plugins: [customUtilitiesPlugin]
17
+ * };
18
+ * ```
19
+ *
20
+ * @example Advanced customization
21
+ * ```javascript
22
+ * import {
23
+ * generateTextBasedSpacing,
24
+ * DESIGN,
25
+ * TEXT_POINT_SIZES
26
+ * } from '@hkdigital/lib-core/design';
27
+ *
28
+ * const customSpacing = generateTextBasedSpacing([8, 12, 16, 24]);
29
+ * ```
30
+ */
31
+
32
+ // === Configuration Objects ===
33
+ // Projects can import and customize these for their own design systems
34
+
35
+ export {
36
+ DESIGN,
37
+ CLAMPING,
38
+ TEXT_POINT_SIZES,
39
+ VIEWPORT_POINT_SIZES,
40
+ TEXT_BASE_SIZES,
41
+ TEXT_HEADING_SIZES,
42
+ TEXT_UI_SIZES,
43
+ RADIUS_SIZES,
44
+ BORDER_WIDTH_SIZES,
45
+ STROKE_WIDTH_SIZES
46
+ } from './config/design-config.js';
47
+
48
+ // === Generator Functions ===
49
+ // Essential tools for projects to build custom Tailwind extensions
50
+
51
+ export {
52
+ generateTextBasedSpacing,
53
+ generateViewportBasedSpacing,
54
+ generateTextStyles,
55
+ generateBorderRadiusStyles,
56
+ generateWidthStyles
57
+ } from './generators/index.js';
58
+
59
+ // === Ready-to-use Tailwind Extensions ===
60
+ // Built using default configuration - projects can use directly or as reference
61
+
62
+ export {
63
+ spacing,
64
+ fontSize,
65
+ borderRadius,
66
+ borderWidth,
67
+ strokeWidth,
68
+ outlineWidth,
69
+ outlineOffset
70
+ } from './tailwind-theme-extend.js';
71
+
72
+ // === Plugins & Utilities ===
73
+ // Framework integration tools
74
+
75
+ export { customUtilitiesPlugin } from './plugins/skeleton.js';
76
+
77
+ // === Utilities ===
78
+ // Essential utility functions for design system implementation
79
+
80
+ export {
81
+ rootDesignVarsHTML,
82
+ getRootCssDesignWidth,
83
+ getRootCssDesignHeight,
84
+ getAllRootScalingVars
85
+ } from './utils/root-vars.js';
86
+
87
+ export {
88
+ getClampParams,
89
+ clamp
90
+ } from './utils/clamp.js';
91
+
92
+ export { toStateClasses } from './utils/states.js';
93
+
94
+ export {
95
+ enableContainerScaling,
96
+ enableScalingUI
97
97
  } from './utils/scaling.js';
@@ -1,208 +1,208 @@
1
- /**
2
- * Creates utility classes for UI font styling that work with Skeleton themes
3
- *
4
- * This plugin adds utility classes for UI typography that reference CSS
5
- * variables defined in your Skeleton theme, allowing consistent styling of UI
6
- * elements across your application.
7
- *
8
- * @note Important Configuration Requirements:
9
- * 1. Add UI font variables to your theme file:
10
- * - `--ui-font-family`: Font family for UI elements
11
- * (falls back to `--base-font-family`)
12
- * - `--ui-font-color`: Text color for UI elements
13
- * (falls back to `--base-font-color`)
14
- * - `--ui-font-color-dark`: Dark mode text color
15
- * (falls back to `--base-font-color-dark`)
16
- *
17
- * 2. This plugin generates the following utility classes:
18
- * - `font-ui`: Applies UI font family
19
- * - `text-ui`: Applies UI text color
20
- * - `text-ui-dark`: Applies UI dark mode text color (with .dark selector)
21
- *
22
- * @example
23
- * // tailwind.config.js
24
- * import { customUtilitiesPlugin }
25
- * from './src/lib/util/design-system/skeleton.js';
26
- *
27
- * export default {
28
- * plugins: [
29
- * customUtilitiesPlugin,
30
- * skeleton({
31
- * themes: [defaultThemes.cerberus, customThemes.yourTheme]
32
- * })
33
- * ]
34
- * };
35
- *
36
- * @param {Object} api - Tailwind plugin API
37
- * @param {Function} api.addUtilities - Function to add utilities
38
- */
39
- export function customUtilitiesPlugin({ addUtilities, theme }) {
40
- const fontFamilyUtilities = {
41
- '.font-heading': {
42
- 'font-family': 'var(--heading-font-family)'
43
- },
44
- '.font-base': {
45
- 'font-family': 'var(--base-font-family)'
46
- },
47
- '.font-ui': {
48
- 'font-family': 'var(--ui-font-family, var(--base-font-family))'
49
- }
50
- };
51
-
52
- const textColorUtilities = {
53
- '.text-base-color': {
54
- color: 'var(--base-font-color)'
55
- },
56
- '.text-base-color-dark': {
57
- color: 'var(--base-font-color-dark)'
58
- },
59
- '.text-heading-color': {
60
- color: 'var(--heading-font-color)'
61
- },
62
- '.text-heading-color-dark': {
63
- color: 'var(--heading-font-color-dark)'
64
- },
65
- '.text-ui-color': {
66
- color: 'var(--ui-font-color, var(--base-font-color))'
67
- },
68
- '.text-ui-color-dark': {
69
- color: 'var(--ui-font-color-dark, var(--base-font-color-dark))'
70
- }
71
- };
72
-
73
- const typographyUtilities = generateTypographyUtilities(theme);
74
-
75
- addUtilities({
76
- ...typographyUtilities,
77
- ...fontFamilyUtilities,
78
- ...textColorUtilities
79
- });
80
- }
81
-
82
- /**
83
- * Generates typography utility classes based on fontSize entries in the
84
- * Tailwind theme
85
- *
86
- * This function creates typography utility classes for entries in the
87
- * theme's fontSize configuration that start with 'heading-', 'base-', or
88
- * 'ui-' prefixes. Each class includes font size, line height, font weight,
89
- * font family, and color properties.
90
- *
91
- * @param {Function} theme - Tailwind's theme function to access configuration
92
- * @returns {Object} An object containing the generated typography utility classes
93
- *
94
- * @example
95
- * // In your Tailwind plugin:
96
- * const typographyUtils = generateTypographyUtilities(theme);
97
- * addUtilities(typographyUtils);
98
- *
99
- * @example
100
- * // Example output format:
101
- * // {
102
- * // '.type-heading-h1': {
103
- * // fontSize: 'calc(32px * var(--scale-text-heading))',
104
- * // lineHeight: '1.25',
105
- * // fontWeight: '700',
106
- * // fontFamily: 'var(--heading-font-family)',
107
- * // fontStyle: 'var(--heading-font-style)',
108
- * // letterSpacing: 'var(--heading-letter-spacing)',
109
- * // color: 'rgb(var(--heading-font-color))'
110
- * // }
111
- * // }
112
- */
113
- function generateTypographyUtilities(theme) {
114
- // Get font sizes from theme
115
- const fontSizes = theme('fontSize');
116
-
117
- // Create typography utilities
118
- const typographyUtilities = {};
119
-
120
- // Process all fontSize entries and create type- classes for them
121
- Object.entries(fontSizes).forEach(([key, value]) => {
122
- // Skip entries that don't match our prefixes
123
- if (
124
- !key.startsWith('heading-') &&
125
- !key.startsWith('base-') &&
126
- !key.startsWith('ui-')
127
- ) {
128
- return;
129
- }
130
-
131
- const [size, options] = Array.isArray(value) ? value : [value, {}];
132
-
133
- // Determine properties based on the prefix
134
- let properties = {};
135
-
136
- let propertiesDark;
137
-
138
- if (key.startsWith('heading-')) {
139
- properties = {
140
- lineHeight: options.lineHeight || 'normal',
141
- fontFamily: 'var(--heading-font-family)',
142
- fontStyle: 'var(--heading-font-style)',
143
- fontWeight: 'var(--heading-font-weight)',
144
- letterSpacing: 'var(--heading-letter-spacing)',
145
- color: 'var(--heading-font-color)'
146
- };
147
-
148
- propertiesDark = {
149
- ...properties,
150
- color: 'var(--heading-font-color-dark)'
151
- };
152
- } else if (key.startsWith('base-')) {
153
- properties = {
154
- lineHeight: options.lineHeight || 'normal',
155
- fontFamily: 'var(--base-font-family)',
156
- fontWeight: 'var(--base-font-weight)',
157
- letterSpacing: 'var(--base-letter-spacing)',
158
- color: 'var(--base-font-color)'
159
- };
160
-
161
- propertiesDark = {
162
- ...properties,
163
- color: 'var(--base-font-color-dark)'
164
- };
165
- } else if (key.startsWith('ui-')) {
166
- properties = {
167
- lineHeight: options.lineHeight || 'normal',
168
- fontFamily: 'var(--ui-font-family, var(--base-font-family))',
169
- fontWeight: 'var(--ui-font-weight)',
170
- letterSpacing: 'var(--ui-letter-spacing, var(--base-letter-spacing))',
171
- color: 'var(--ui-font-color, var(--base-font-color))'
172
- };
173
-
174
- propertiesDark = {
175
- ...properties,
176
- color: 'var(--ui-font-color-dark, var(--base-font-color-dark))'
177
- };
178
- }
179
-
180
- // Create the utility class using the original key
181
- typographyUtilities[`.type-${key}`] = {
182
- fontSize: size,
183
- ...properties,
184
- // Include any other properties defined in the fontSize options
185
- ...Object.fromEntries(
186
- Object.entries(options).filter(
187
- ([k]) => !['lineHeight'].includes(k)
188
- )
189
- )
190
- };
191
-
192
- // Create the utility class using the original key for dark
193
- typographyUtilities[`.type-${key}-dark`] = {
194
- fontSize: size,
195
- ...propertiesDark,
196
- // Include any other properties defined in the fontSize options
197
- ...Object.fromEntries(
198
- Object.entries(options).filter(
199
- ([k]) => !['lineHeight'].includes(k)
200
- )
201
- )
202
- };
203
- });
204
-
205
- // console.debug(typographyUtilities);
206
-
207
- return typographyUtilities;
208
- }
1
+ /**
2
+ * Creates utility classes for UI font styling that work with Skeleton themes
3
+ *
4
+ * This plugin adds utility classes for UI typography that reference CSS
5
+ * variables defined in your Skeleton theme, allowing consistent styling of UI
6
+ * elements across your application.
7
+ *
8
+ * @note Important Configuration Requirements:
9
+ * 1. Add UI font variables to your theme file:
10
+ * - `--ui-font-family`: Font family for UI elements
11
+ * (falls back to `--base-font-family`)
12
+ * - `--ui-font-color`: Text color for UI elements
13
+ * (falls back to `--base-font-color`)
14
+ * - `--ui-font-color-dark`: Dark mode text color
15
+ * (falls back to `--base-font-color-dark`)
16
+ *
17
+ * 2. This plugin generates the following utility classes:
18
+ * - `font-ui`: Applies UI font family
19
+ * - `text-ui`: Applies UI text color
20
+ * - `text-ui-dark`: Applies UI dark mode text color (with .dark selector)
21
+ *
22
+ * @example
23
+ * // tailwind.config.js
24
+ * import { customUtilitiesPlugin }
25
+ * from './src/lib/util/design-system/skeleton.js';
26
+ *
27
+ * export default {
28
+ * plugins: [
29
+ * customUtilitiesPlugin,
30
+ * skeleton({
31
+ * themes: [defaultThemes.cerberus, customThemes.yourTheme]
32
+ * })
33
+ * ]
34
+ * };
35
+ *
36
+ * @param {Object} api - Tailwind plugin API
37
+ * @param {Function} api.addUtilities - Function to add utilities
38
+ */
39
+ export function customUtilitiesPlugin({ addUtilities, theme }) {
40
+ const fontFamilyUtilities = {
41
+ '.font-heading': {
42
+ 'font-family': 'var(--heading-font-family)'
43
+ },
44
+ '.font-base': {
45
+ 'font-family': 'var(--base-font-family)'
46
+ },
47
+ '.font-ui': {
48
+ 'font-family': 'var(--ui-font-family, var(--base-font-family))'
49
+ }
50
+ };
51
+
52
+ const textColorUtilities = {
53
+ '.text-base-color': {
54
+ color: 'var(--base-font-color)'
55
+ },
56
+ '.text-base-color-dark': {
57
+ color: 'var(--base-font-color-dark)'
58
+ },
59
+ '.text-heading-color': {
60
+ color: 'var(--heading-font-color)'
61
+ },
62
+ '.text-heading-color-dark': {
63
+ color: 'var(--heading-font-color-dark)'
64
+ },
65
+ '.text-ui-color': {
66
+ color: 'var(--ui-font-color, var(--base-font-color))'
67
+ },
68
+ '.text-ui-color-dark': {
69
+ color: 'var(--ui-font-color-dark, var(--base-font-color-dark))'
70
+ }
71
+ };
72
+
73
+ const typographyUtilities = generateTypographyUtilities(theme);
74
+
75
+ addUtilities({
76
+ ...typographyUtilities,
77
+ ...fontFamilyUtilities,
78
+ ...textColorUtilities
79
+ });
80
+ }
81
+
82
+ /**
83
+ * Generates typography utility classes based on fontSize entries in the
84
+ * Tailwind theme
85
+ *
86
+ * This function creates typography utility classes for entries in the
87
+ * theme's fontSize configuration that start with 'heading-', 'base-', or
88
+ * 'ui-' prefixes. Each class includes font size, line height, font weight,
89
+ * font family, and color properties.
90
+ *
91
+ * @param {Function} theme - Tailwind's theme function to access configuration
92
+ * @returns {Object} An object containing the generated typography utility classes
93
+ *
94
+ * @example
95
+ * // In your Tailwind plugin:
96
+ * const typographyUtils = generateTypographyUtilities(theme);
97
+ * addUtilities(typographyUtils);
98
+ *
99
+ * @example
100
+ * // Example output format:
101
+ * // {
102
+ * // '.type-heading-h1': {
103
+ * // fontSize: 'calc(32px * var(--scale-text-heading))',
104
+ * // lineHeight: '1.25',
105
+ * // fontWeight: '700',
106
+ * // fontFamily: 'var(--heading-font-family)',
107
+ * // fontStyle: 'var(--heading-font-style)',
108
+ * // letterSpacing: 'var(--heading-letter-spacing)',
109
+ * // color: 'rgb(var(--heading-font-color))'
110
+ * // }
111
+ * // }
112
+ */
113
+ function generateTypographyUtilities(theme) {
114
+ // Get font sizes from theme
115
+ const fontSizes = theme('fontSize');
116
+
117
+ // Create typography utilities
118
+ const typographyUtilities = {};
119
+
120
+ // Process all fontSize entries and create type- classes for them
121
+ Object.entries(fontSizes).forEach(([key, value]) => {
122
+ // Skip entries that don't match our prefixes
123
+ if (
124
+ !key.startsWith('heading-') &&
125
+ !key.startsWith('base-') &&
126
+ !key.startsWith('ui-')
127
+ ) {
128
+ return;
129
+ }
130
+
131
+ const [size, options] = Array.isArray(value) ? value : [value, {}];
132
+
133
+ // Determine properties based on the prefix
134
+ let properties = {};
135
+
136
+ let propertiesDark;
137
+
138
+ if (key.startsWith('heading-')) {
139
+ properties = {
140
+ lineHeight: options.lineHeight || 'normal',
141
+ fontFamily: 'var(--heading-font-family)',
142
+ fontStyle: 'var(--heading-font-style)',
143
+ fontWeight: 'var(--heading-font-weight)',
144
+ letterSpacing: 'var(--heading-letter-spacing)',
145
+ color: 'var(--heading-font-color)'
146
+ };
147
+
148
+ propertiesDark = {
149
+ ...properties,
150
+ color: 'var(--heading-font-color-dark)'
151
+ };
152
+ } else if (key.startsWith('base-')) {
153
+ properties = {
154
+ lineHeight: options.lineHeight || 'normal',
155
+ fontFamily: 'var(--base-font-family)',
156
+ fontWeight: 'var(--base-font-weight)',
157
+ letterSpacing: 'var(--base-letter-spacing)',
158
+ color: 'var(--base-font-color)'
159
+ };
160
+
161
+ propertiesDark = {
162
+ ...properties,
163
+ color: 'var(--base-font-color-dark)'
164
+ };
165
+ } else if (key.startsWith('ui-')) {
166
+ properties = {
167
+ lineHeight: options.lineHeight || 'normal',
168
+ fontFamily: 'var(--ui-font-family, var(--base-font-family))',
169
+ fontWeight: 'var(--ui-font-weight)',
170
+ letterSpacing: 'var(--ui-letter-spacing, var(--base-letter-spacing))',
171
+ color: 'var(--ui-font-color, var(--base-font-color))'
172
+ };
173
+
174
+ propertiesDark = {
175
+ ...properties,
176
+ color: 'var(--ui-font-color-dark, var(--base-font-color-dark))'
177
+ };
178
+ }
179
+
180
+ // Create the utility class using the original key
181
+ typographyUtilities[`.type-${key}`] = {
182
+ fontSize: size,
183
+ ...properties,
184
+ // Include any other properties defined in the fontSize options
185
+ ...Object.fromEntries(
186
+ Object.entries(options).filter(
187
+ ([k]) => !['lineHeight'].includes(k)
188
+ )
189
+ )
190
+ };
191
+
192
+ // Create the utility class using the original key for dark
193
+ typographyUtilities[`.type-${key}-dark`] = {
194
+ fontSize: size,
195
+ ...propertiesDark,
196
+ // Include any other properties defined in the fontSize options
197
+ ...Object.fromEntries(
198
+ Object.entries(options).filter(
199
+ ([k]) => !['lineHeight'].includes(k)
200
+ )
201
+ )
202
+ };
203
+ });
204
+
205
+ // console.debug(typographyUtilities);
206
+
207
+ return typographyUtilities;
208
+ }