@hkdigital/lib-core 0.3.11 → 0.3.12

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 (292) 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.js +4 -4
  173. package/dist/ui/components/button-group/ButtonGroup.svelte +82 -82
  174. package/dist/ui/components/button-group/typedef.js +10 -10
  175. package/dist/ui/components/compare-left-right/CompareLeftRight.svelte +179 -179
  176. package/dist/ui/components/compare-left-right/index.js +1 -1
  177. package/dist/ui/components/game-box/GameBox.svelte +577 -577
  178. package/dist/ui/components/game-box/gamebox.util.js +83 -83
  179. package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  180. package/dist/ui/components/hk-app-layout/HkAppLayout.svelte +251 -251
  181. package/dist/ui/components/image-box/ImageBox.svelte +210 -210
  182. package/dist/ui/components/image-box/index.js +5 -5
  183. package/dist/ui/components/image-box/typedef.js +32 -32
  184. package/dist/ui/components/index.js +23 -23
  185. package/dist/ui/components/presenter/ImageSlide.svelte +64 -64
  186. package/dist/ui/components/presenter/Presenter.state.svelte.js +638 -638
  187. package/dist/ui/components/presenter/Presenter.svelte +142 -142
  188. package/dist/ui/components/presenter/constants.js +7 -7
  189. package/dist/ui/components/presenter/index.js +10 -10
  190. package/dist/ui/components/presenter/typedef.js +106 -106
  191. package/dist/ui/components/presenter/util.js +210 -210
  192. package/dist/ui/components/virtual-viewport/VirtualViewport.svelte +196 -196
  193. package/dist/ui/primitives/area/HkArea.svelte +49 -49
  194. package/dist/ui/primitives/area/HkGridArea.svelte +77 -77
  195. package/dist/ui/primitives/area/index.js +2 -2
  196. package/dist/ui/primitives/buttons/button/Button.svelte +82 -82
  197. package/dist/ui/primitives/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  198. package/dist/ui/primitives/buttons/button-text/TextButton.svelte +21 -21
  199. package/dist/ui/primitives/buttons/index.js +3 -3
  200. package/dist/ui/primitives/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  201. package/dist/ui/primitives/debug/index.js +1 -1
  202. package/dist/ui/primitives/drag-drop/DragController.js +44 -44
  203. package/dist/ui/primitives/drag-drop/DragDropContext.svelte +111 -111
  204. package/dist/ui/primitives/drag-drop/Draggable.svelte +519 -519
  205. package/dist/ui/primitives/drag-drop/DropZone.svelte +258 -258
  206. package/dist/ui/primitives/drag-drop/DropZoneArea.svelte +119 -119
  207. package/dist/ui/primitives/drag-drop/DropZoneList.svelte +125 -125
  208. package/dist/ui/primitives/drag-drop/actions.js +26 -26
  209. package/dist/ui/primitives/drag-drop/drag-state.svelte.js +322 -322
  210. package/dist/ui/primitives/drag-drop/index.js +7 -7
  211. package/dist/ui/primitives/drag-drop/util.js +85 -85
  212. package/dist/ui/primitives/hkdev/blocks/TextBlock.svelte +46 -46
  213. package/dist/ui/primitives/hkdev/buttons/CheckButton.svelte +62 -62
  214. package/dist/ui/primitives/icons/HkIcon.svelte +86 -86
  215. package/dist/ui/primitives/icons/HkTabIcon.svelte +116 -116
  216. package/dist/ui/primitives/icons/SteezeIcon.svelte +97 -97
  217. package/dist/ui/primitives/icons/index.js +6 -6
  218. package/dist/ui/primitives/icons/typedef.js +16 -16
  219. package/dist/ui/primitives/index.js +2 -2
  220. package/dist/ui/primitives/inputs/index.js +1 -1
  221. package/dist/ui/primitives/inputs/text-input/TestTextInput.svelte__ +102 -0
  222. package/dist/ui/primitives/inputs/text-input/TextInput.svelte +223 -223
  223. package/dist/ui/primitives/inputs/text-input/TextInput.svelte___ +83 -0
  224. package/dist/ui/primitives/inputs/text-input/assets/IconInvalid.svelte +14 -14
  225. package/dist/ui/primitives/inputs/text-input/assets/IconValid.svelte +12 -12
  226. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte +63 -63
  227. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
  228. package/dist/ui/primitives/layout/grid-layers/util.js +74 -74
  229. package/dist/ui/primitives/layout/index.js +1 -1
  230. package/dist/ui/primitives/panels/index.js +1 -1
  231. package/dist/ui/primitives/panels/panel/Panel.svelte +43 -43
  232. package/dist/ui/primitives/rows/index.js +3 -3
  233. package/dist/ui/primitives/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  234. package/dist/ui/primitives/rows/panel-row-2/PanelRow2.svelte +40 -40
  235. package/dist/ui/primitives/tab-bar/HkTabBar.state.svelte.js +149 -149
  236. package/dist/ui/primitives/tab-bar/HkTabBar.svelte +74 -74
  237. package/dist/ui/primitives/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  238. package/dist/ui/primitives/tab-bar/HkTabBarSelector.svelte +49 -49
  239. package/dist/ui/primitives/tab-bar/index.js +17 -17
  240. package/dist/ui/primitives/tab-bar/typedef.js +11 -11
  241. package/dist/util/array/index.js +436 -436
  242. package/dist/util/bases/base58.js +262 -262
  243. package/dist/util/bases/index.js +1 -1
  244. package/dist/util/compare/index.js +247 -247
  245. package/dist/util/css/css-vars.js +83 -83
  246. package/dist/util/css/index.js +1 -1
  247. package/dist/util/env/index.js +9 -9
  248. package/dist/util/exceptions/index.d.ts +4 -3
  249. package/dist/util/exceptions/index.js +26 -23
  250. package/dist/util/expect/arrays.js +47 -47
  251. package/dist/util/expect/index.js +259 -259
  252. package/dist/util/expect/primitives.js +55 -55
  253. package/dist/util/expect/url.js +60 -60
  254. package/dist/util/function/index.js +218 -218
  255. package/dist/util/geo/index.js +26 -26
  256. package/dist/util/index.js +7 -7
  257. package/dist/util/is/index.js +147 -147
  258. package/dist/util/iterate/index.js +204 -204
  259. package/dist/util/object/index.js +1345 -1345
  260. package/dist/util/singleton/index.js +97 -97
  261. package/dist/util/string/array-path.js +75 -75
  262. package/dist/util/string/convert.js +54 -54
  263. package/dist/util/string/fs.js +226 -226
  264. package/dist/util/string/index.js +5 -5
  265. package/dist/util/string/interpolate.js +61 -61
  266. package/dist/util/string/pad.js +10 -10
  267. package/dist/util/svelte/index.js +4 -4
  268. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  269. package/dist/util/svelte/observe/index.js +49 -49
  270. package/dist/util/svelte/state-context/index.js +117 -117
  271. package/dist/util/svelte/wait/index.js +38 -38
  272. package/dist/util/sveltekit/index.js +1 -1
  273. package/dist/util/sveltekit/route-folders/index.js +101 -101
  274. package/dist/util/time/index.js +328 -328
  275. package/dist/util/unique/index.js +231 -231
  276. package/dist/valibot/README.md +61 -50
  277. package/dist/valibot/index.js +8 -8
  278. package/dist/valibot/parsers/date.js__ +10 -0
  279. package/dist/valibot/parsers/email.d.ts +12 -0
  280. package/dist/valibot/parsers/email.js +34 -0
  281. package/dist/valibot/parsers/url.js +110 -110
  282. package/dist/valibot/parsers/user.js +23 -23
  283. package/dist/valibot/parsers.js +3 -3
  284. package/package.json +131 -131
  285. package/dist/logging/internal/unified-logger/index.d.ts +0 -3
  286. package/dist/logging/internal/unified-logger/index.js +0 -6
  287. package/dist/services/internal/index.d.ts +0 -6
  288. package/dist/services/internal/index.js +0 -8
  289. /package/dist/logging/internal/{unified-logger/constants.d.ts → constants.d.ts} +0 -0
  290. /package/dist/services/{internal/service-base → service-base}/index.d.ts +0 -0
  291. /package/dist/services/{internal/service-manager → service-manager}/constants.d.ts +0 -0
  292. /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
+ }