@functionalcms/svelte-components 4.36.10 → 5.0.0-beta1

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 (127) hide show
  1. package/css/functional.css +48 -1
  2. package/dist/auth/getMachineAccessToken.d.ts +1 -1
  3. package/dist/auth/getMachineAccessToken.js +1 -2
  4. package/dist/auth/machineAuthenticationProvider.d.ts +1 -1
  5. package/dist/auth/machineAuthenticationProvider.js +1 -2
  6. package/dist/auth/tokenRefresh.d.ts +1 -1
  7. package/dist/auth/tokenRefresh.js +4 -5
  8. package/dist/auth/types.js +4 -8
  9. package/dist/auth/userAuthenticationProvider.d.ts +1 -1
  10. package/dist/auth/userAuthenticationProvider.js +1 -2
  11. package/dist/components/Icon.svelte +16 -0
  12. package/dist/components/Icon.svelte.d.ts +9 -0
  13. package/dist/components/content/Markdown.svelte +2 -2
  14. package/dist/components/content/Markdown.svelte.d.ts +17 -4
  15. package/dist/components/form/Dropzone.svelte +2 -5
  16. package/dist/components/form/SmartForm.svelte +206 -60
  17. package/dist/components/form/SmartForm.svelte.d.ts +2 -2
  18. package/dist/components/form/form.d.ts +87 -17
  19. package/dist/components/form/form.js +86 -6
  20. package/dist/components/icons.d.ts +763 -0
  21. package/dist/components/icons.js +765 -0
  22. package/dist/components/integrations/EasyTools.svelte +1 -1
  23. package/dist/components/layouts/DefaultLayout.svelte +92 -41
  24. package/dist/components/layouts/DefaultLayout.svelte.d.ts +17 -8
  25. package/dist/components/layouts/FlexBox.svelte +73 -0
  26. package/dist/components/layouts/FlexBox.svelte.d.ts +17 -0
  27. package/dist/components/layouts/MenuLayout.svelte +39 -201
  28. package/dist/components/layouts/MenuLayout.svelte.d.ts +2 -10
  29. package/dist/components/layouts/StyleBox.svelte +17 -0
  30. package/dist/components/layouts/StyleBox.svelte.d.ts +7 -0
  31. package/dist/components/layouts/Well.svelte +8 -34
  32. package/dist/components/layouts/Well.svelte.d.ts +4 -8
  33. package/dist/components/layouts/menuItems.d.ts +29 -0
  34. package/dist/components/layouts/menuItems.js +28 -0
  35. package/dist/index-server.d.ts +2 -1
  36. package/dist/index-server.js +2 -1
  37. package/dist/index.d.ts +9 -47
  38. package/dist/index.js +8 -59
  39. package/dist/server-side/getServices.d.ts +8 -8
  40. package/dist/server-side/getServices.js +16 -27
  41. package/dist/server-side/handlers/paraglideHandler.d.ts +2 -0
  42. package/dist/server-side/handlers/paraglideHandler.js +13 -0
  43. package/dist/server-side/handlers/redirectPipelineHandler.d.ts +5 -0
  44. package/dist/server-side/{getRedirectPipeline.js → handlers/redirectPipelineHandler.js} +1 -2
  45. package/dist/utils/stringHash.d.ts +1 -0
  46. package/dist/utils/stringHash.js +7 -0
  47. package/package.json +28 -39
  48. package/css/functional.css.map +0 -1
  49. package/dist/components/MaterialIconSet.d.ts +0 -3819
  50. package/dist/components/MaterialIconSet.js +0 -3823
  51. package/dist/components/Styling.d.ts +0 -59
  52. package/dist/components/Styling.js +0 -66
  53. package/dist/components/blog/blog.d.ts +0 -20
  54. package/dist/components/blog/blog.js +0 -29
  55. package/dist/components/dynamic/CopyToClipboard.svelte +0 -16
  56. package/dist/components/dynamic/CopyToClipboard.svelte.d.ts +0 -36
  57. package/dist/components/dynamic/DynamicButton.d.ts +0 -1
  58. package/dist/components/dynamic/DynamicButton.js +0 -10
  59. package/dist/components/dynamic/DynamicButton.svelte +0 -33
  60. package/dist/components/dynamic/DynamicButton.svelte.d.ts +0 -9
  61. package/dist/components/form/Button.svelte +0 -389
  62. package/dist/components/form/Button.svelte.d.ts +0 -30
  63. package/dist/components/form/ChoiceInput.svelte +0 -375
  64. package/dist/components/form/ChoiceInput.svelte.d.ts +0 -3
  65. package/dist/components/form/Input.svelte +0 -461
  66. package/dist/components/form/Input.svelte.d.ts +0 -30
  67. package/dist/components/form/Select.svelte +0 -163
  68. package/dist/components/form/Select.svelte.d.ts +0 -21
  69. package/dist/components/form/Switch.svelte +0 -293
  70. package/dist/components/form/Switch.svelte.d.ts +0 -14
  71. package/dist/components/indicators/Loader.svelte +0 -114
  72. package/dist/components/indicators/Loader.svelte.d.ts +0 -30
  73. package/dist/components/indicators/Spinner.svelte +0 -109
  74. package/dist/components/indicators/Spinner.svelte.d.ts +0 -28
  75. package/dist/components/layouts/Banner.svelte +0 -26
  76. package/dist/components/layouts/Banner.svelte.d.ts +0 -8
  77. package/dist/components/layouts/FoldablePanel.svelte +0 -16
  78. package/dist/components/layouts/FoldablePanel.svelte.d.ts +0 -7
  79. package/dist/components/layouts/SimpleFooter.svelte +0 -23
  80. package/dist/components/layouts/SimpleFooter.svelte.d.ts +0 -8
  81. package/dist/components/layouts/Tabs.svelte +0 -362
  82. package/dist/components/layouts/Tabs.svelte.d.ts +0 -11
  83. package/dist/components/layouts/TwoColumnsLayout.svelte +0 -44
  84. package/dist/components/layouts/TwoColumnsLayout.svelte.d.ts +0 -13
  85. package/dist/components/layouts/menuLayout.d.ts +0 -12
  86. package/dist/components/layouts/menuLayout.js +0 -1
  87. package/dist/components/layouts/tabs.d.ts +0 -21
  88. package/dist/components/layouts/tabs.js +0 -13
  89. package/dist/components/menu/CollapsibleMenu.svelte +0 -66
  90. package/dist/components/menu/CollapsibleMenu.svelte.d.ts +0 -18
  91. package/dist/components/menu/DynamicMenu.svelte +0 -55
  92. package/dist/components/menu/DynamicMenu.svelte.d.ts +0 -13
  93. package/dist/components/menu/HamburgerMenu.svelte +0 -62
  94. package/dist/components/menu/HamburgerMenu.svelte.d.ts +0 -14
  95. package/dist/components/menu/ListMenu.svelte +0 -61
  96. package/dist/components/menu/ListMenu.svelte.d.ts +0 -17
  97. package/dist/components/menu/NavigationDrawer.svelte +0 -53
  98. package/dist/components/menu/NavigationDrawer.svelte.d.ts +0 -18
  99. package/dist/components/menu/types.d.ts +0 -23
  100. package/dist/components/menu/types.js +0 -35
  101. package/dist/components/presentation/Accordion.svelte +0 -82
  102. package/dist/components/presentation/Accordion.svelte.d.ts +0 -11
  103. package/dist/components/presentation/Card.svelte +0 -147
  104. package/dist/components/presentation/Card.svelte.d.ts +0 -15
  105. package/dist/components/presentation/Carousel.d.ts +0 -5
  106. package/dist/components/presentation/Carousel.js +0 -1
  107. package/dist/components/presentation/Carousel.svelte +0 -119
  108. package/dist/components/presentation/Carousel.svelte.d.ts +0 -17
  109. package/dist/components/presentation/Dialog.svelte +0 -75
  110. package/dist/components/presentation/Dialog.svelte.d.ts +0 -22
  111. package/dist/components/presentation/Disclose.svelte +0 -116
  112. package/dist/components/presentation/Disclose.svelte.d.ts +0 -11
  113. package/dist/components/presentation/Drawer.svelte +0 -118
  114. package/dist/components/presentation/Drawer.svelte.d.ts +0 -13
  115. package/dist/components/presentation/EmptyState.svelte +0 -67
  116. package/dist/components/presentation/EmptyState.svelte.d.ts +0 -10
  117. package/dist/components/presentation/Gallery.svelte +0 -35
  118. package/dist/components/presentation/Gallery.svelte.d.ts +0 -14
  119. package/dist/components/presentation/Link.svelte +0 -362
  120. package/dist/components/presentation/Link.svelte.d.ts +0 -27
  121. package/dist/components/utils.d.ts +0 -3
  122. package/dist/components/utils.js +0 -1
  123. package/dist/index.server.d.ts +0 -11
  124. package/dist/index.server.js +0 -10
  125. package/dist/server-side/getRedirectPipeline.d.ts +0 -6
  126. package/dist/utils.d.ts +0 -1
  127. package/dist/utils.js +0 -3
@@ -1,362 +0,0 @@
1
- <script lang="ts">
2
- import { AlignItmes, ComponentSize, Justify, Orientation } from '../Styling.js';
3
- import { cn } from '../../utils.js';
4
- import type { Snippet } from 'svelte';
5
-
6
- interface Props {
7
- children: Snippet;
8
- href: string;
9
- css?: string;
10
- isPrimary?: boolean;
11
- isDisabled?: boolean;
12
- isBordered?: boolean;
13
- isSecondary?: boolean;
14
- idRounded?: boolean;
15
- idPill?: boolean;
16
- idBlock?: boolean;
17
- idCapsule?: boolean;
18
- idCircle?: boolean;
19
- idGrouped?: boolean;
20
- isCircle?: boolean;
21
- isFlex?: boolean;
22
- size?: ComponentSize;
23
- justify?: Justify;
24
- alignItems?: AlignItmes;
25
- orientation?: Orientation;
26
- role?: string;
27
- }
28
-
29
- let {
30
- children,
31
- href,
32
- css = '',
33
- isPrimary = false,
34
- isDisabled = false,
35
- isBordered = false,
36
- isSecondary = false,
37
- idRounded = false,
38
- idPill = false,
39
- idBlock = false,
40
- idCapsule = false,
41
- idCircle = false,
42
- idGrouped = false,
43
- isCircle = false,
44
- isFlex = true,
45
- size = ComponentSize.Normal,
46
- justify = Justify.Center,
47
- alignItems = AlignItmes.Center,
48
- orientation = Orientation.Row,
49
- role = 'link',
50
- ...restProps
51
- }: Props = $props();
52
-
53
- let isSmall = $derived(size === ComponentSize.Small);
54
- let isLarge = $derived(size === ComponentSize.Large);
55
-
56
- let classes = $derived(
57
- cn(
58
- isPrimary ? 'btn-primary' : '',
59
- isDisabled ? 'disabled' : '',
60
-
61
- isBordered ? 'btn-bordered' : '',
62
- isSecondary ? 'btn-secondary' : '',
63
-
64
- idRounded ? 'btn-rounded' : '',
65
- idPill ? 'btn-pill' : '',
66
- idBlock ? 'btn-block' : '',
67
- idCapsule ? 'btn-capsule' : '',
68
- idCircle ? 'btn-circle' : '',
69
- idGrouped ? 'btn-grouped' : '',
70
-
71
- isLarge ? 'btn-large' : '',
72
- isSmall ? 'btn-small' : '',
73
-
74
- isLarge && isCircle ? 'btn-large btn-circle-large' : '',
75
- isSmall && idCircle ? 'btn-small btn-circle-small' : '',
76
-
77
- isFlex ? `flex` : '',
78
- isFlex ? `${orientation}` : '',
79
- isFlex ? `${justify}` : '',
80
- isFlex ? `${alignItems}` : '',
81
-
82
- css ? css : 'btn'
83
- )
84
- );
85
- </script>
86
-
87
- <a class={classes} {href} {...restProps}>
88
- {@render children()}
89
- </a>
90
-
91
- <style>.btn-base {
92
- display: inline-flex;
93
- align-items: center;
94
- justify-content: center;
95
- white-space: nowrap;
96
- user-select: none;
97
- appearance: none;
98
- cursor: pointer;
99
- box-sizing: border-box;
100
- transition-property: all;
101
- transition-duration: var(--timing-medium);
102
- }
103
-
104
- .btn {
105
- /* TODO test this fallback override syntax is correct */
106
- display: inline-flex;
107
- align-items: center;
108
- justify-content: center;
109
- white-space: nowrap;
110
- user-select: none;
111
- appearance: none;
112
- cursor: pointer;
113
- box-sizing: border-box;
114
- transition-property: all;
115
- transition-duration: var(--timing-medium);
116
- }
117
-
118
- .btn-skin,
119
- .btn {
120
- color: var(--btn-font-color, var(--dark));
121
- background-color: var(--btn-bgcolor, var(--gray-light));
122
- border-color: var(--btn-bgcolor, var(--gray-light));
123
- /* seems like a reasonable default as chrome picks `outset` which results in a weird 3d effect */
124
- border-style: solid;
125
- border-width: var(--btn-border-size, 1px);
126
- font-family: var(--btn-font-family, var(--font-family-body));
127
- font-weight: var(--btn-font-weight, 400);
128
- font-size: var(--btn-font-size, 1rem);
129
- /* this can be overriden, but it might mess with the balance of the button heights across variants */
130
- line-height: var(--line-height, var(--fluid-20, 1.25rem));
131
- padding-block-start: var(--vertical-pad, 0.5rem);
132
- padding-block-end: var(--vertical-pad, 0.5rem);
133
- padding-inline-start: var(--side-padding, 0.75rem);
134
- padding-inline-end: var(--side-padding, 0.75rem);
135
- text-decoration: none;
136
- text-align: center;
137
- outline: none;
138
- }
139
-
140
- .btn:visited {
141
- color: var(--btn-font-color, var(--dark));
142
- }
143
-
144
- .btn:hover {
145
- opacity: 85%;
146
- text-decoration: none;
147
- }
148
-
149
- .btn:active {
150
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
151
- text-decoration: none;
152
- transition-duration: 0s;
153
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
154
- }
155
-
156
- .btn:focus {
157
- box-shadow: 0 0 0 var(--focus-ring-outline-width) var(--focus-ring-color);
158
- /* Needed for High Contrast mode */
159
- outline: var(--focus-ring-outline-width) var(--focus-ring-outline-style) var(--focus-ring-outline-color);
160
- transition: box-shadow var(--timing-fast) ease-out;
161
- /* In order for the focused element's box-shadow to appear above its siblings we need to
162
- establish a new stacking context: https://stackoverflow.com/a/28042700 */
163
- isolation: isolate;
164
- }
165
-
166
- /*
167
- * Disabled State
168
- *
169
- * The disabled state uses the class .disabled, is-disabled,
170
- * and the form attribute disabled="disabled".
171
- * The use of !important is only added because this is a state
172
- * that must be applied to all buttons when in a disabled state.
173
- */
174
- .btn.disabled,
175
- .btn:disabled {
176
- top: 0 !important;
177
- background: var(--btn-disabled-bg, var(--gray-mid-dark)) !important;
178
- text-shadow: 0 1px 1px rgb(255, 255, 255) !important;
179
- /* primary, secondary, natural, all look same when disabled; and we don't want to
180
- have an inadvertant looking blue primary border when disabled so it's transparent */
181
- border-color: transparent;
182
- color: var(--btn-disabled-color, var(--gray-dark)) !important;
183
- cursor: default !important;
184
- appearance: none !important;
185
- box-shadow: none !important;
186
- opacity: 80% !important;
187
- }
188
-
189
- .btn-primary {
190
- background-color: var(--btn-primary, var(--primary));
191
- border-color: var(--btn-primary, var(--primary));
192
- color: var(--btn-primary-color, var(--light));
193
- }
194
-
195
- /* Border and font is primary. When hovered, we invert with primary background and white font */
196
- .btn-primary.btn-bordered {
197
- color: var(--btn-primary, var(--primary));
198
- }
199
-
200
- .btn-primary.btn-bordered:hover,
201
- .btn-primary.btn-bordered:focus {
202
- background-color: var(--btn-primary, var(--primary));
203
- color: var(--btn-primary-color, var(--light));
204
- }
205
-
206
- .btn-primary:visited {
207
- color: var(--btn-primary-color, var(--light));
208
- }
209
-
210
- .btn-secondary {
211
- background-color: var(--btn-secondary, var(--secondary));
212
- border-color: var(--btn-secondary, var(--secondary));
213
- color: var(--btn-secondary-color, var(--light));
214
- }
215
-
216
- /* Border and font is secondary. When hovered, we invert with secondary background and white font */
217
- .btn-secondary.btn-bordered {
218
- color: var(--btn-secondary, var(--secondary));
219
- }
220
-
221
- .btn-secondary.btn-bordered:hover,
222
- .btn-secondary.btn-bordered:focus {
223
- background-color: var(--btn-secondary, var(--secondary));
224
- color: var(--btn-secondary-color, var(--light));
225
- }
226
-
227
- .btn-secondary:visited {
228
- color: var(--btn-secondary-color, var(--light));
229
- }
230
-
231
- /*
232
- /**
233
- * Border Buttons
234
- */
235
- .btn-bordered {
236
- border-width: 1px;
237
- background: transparent;
238
- }
239
-
240
- /**
241
- * Sizes
242
- */
243
- .btn-large {
244
- font-size: calc(var(--btn-font-size, 1rem) + 0.25rem);
245
- height: 3rem;
246
- line-height: 3rem;
247
- padding: 0 3rem;
248
- }
249
-
250
- .btn-small {
251
- font-size: calc(var(--btn-font-size, 1rem) - 0.25rem);
252
- height: 2rem;
253
- line-height: 2rem;
254
- padding: 0 2rem;
255
- }
256
-
257
- /**
258
- * Rounded
259
- */
260
- .btn-rounded {
261
- border-radius: var(--btn-radius, var(--radius, 0.25rem));
262
- }
263
-
264
- .btn-pill {
265
- border-radius: 200px;
266
- }
267
-
268
- /*
269
- * Size Adjustment for equal height & width buttons
270
- *
271
- * Remove padding
272
- */
273
- .btn-circle {
274
- border-radius: 100%;
275
- width: 2.5rem;
276
- height: 2.5rem;
277
- padding: 0 !important;
278
- }
279
-
280
- .btn-circle-large {
281
- font-size: calc(var(--btn-font-size, 1rem) + 0.25rem);
282
- width: 3rem;
283
- height: 3rem;
284
- }
285
-
286
- .btn-circle-small {
287
- font-size: calc(var(--btn-font-size, 1rem) - 0.25rem);
288
- width: 2rem;
289
- height: 2rem;
290
- }
291
-
292
- /**
293
- * Button Block (stacked)
294
- */
295
- .btn-block {
296
- width: 100%;
297
- }
298
-
299
- /* This is a utility class used if you literally want to stack block buttons one after another.
300
- Apply this class to the nth-of-type(2) onwards to ensure the borders line up properly. */
301
- .btn-block-following {
302
- margin-block-start: -1px;
303
- }
304
-
305
- .btn-grouped {
306
- border-radius: var(--btn-radius, var(--radius, 0.25rem));
307
- }
308
-
309
- .btn-grouped:not(:last-child) {
310
- border-top-right-radius: 0;
311
- border-bottom-right-radius: 0;
312
- margin-inline-end: -1px;
313
- }
314
-
315
- .btn-grouped:not(:first-child) {
316
- border-top-left-radius: 0;
317
- border-bottom-left-radius: 0;
318
- }
319
-
320
- .btn-capsule {
321
- --padding-side: calc(var(--side-padding, 0.75rem) * 1.5);
322
- border-radius: var(--radius-capsule);
323
- padding-inline-start: var(--padding-side);
324
- padding-inline-end: var(--padding-side);
325
- }
326
-
327
- @media (prefers-reduced-motion), (update: slow) {
328
- .btn,
329
- .btn:focus {
330
- transition-duration: 0.001ms !important;
331
- }
332
- }
333
- /**
334
- * Invisible buttons. Generally used for a Cancel or icon button that behaves like a button,
335
- * semantically and for a11y, but, does so without all the typical "button chrome" behind it.
336
- */
337
- :is(.btn-link, .btn-blank) {
338
- font-family: var(--btn-font-family, var(--font-family-body));
339
- font-size: var(--btn-font-size, 1rem);
340
- background-color: transparent;
341
- border: 0;
342
- border-radius: 0;
343
- box-shadow: none;
344
- transition: none;
345
- }
346
-
347
- /* Since blank buttons can be used for things like input addons we don't want to go crazy
348
- on the side padding. As such, these have a good bit less then regular buttons. */
349
- .btn-blank {
350
- --btn-blank-side-padding: var(--btn-blank-side-padding, 0.25rem);
351
- padding-inline-start: var(--btn-blank-side-padding);
352
- padding-inline-end: var(--btn-blank-side-padding);
353
- }
354
-
355
- /* A button blank with link color text */
356
- .btn-link {
357
- color: var(--btn-primary, var(--primary));
358
- }
359
-
360
- .btn-link:hover {
361
- cursor: pointer;
362
- }</style>
@@ -1,27 +0,0 @@
1
- import { AlignItmes, ComponentSize, Justify, Orientation } from '../Styling.js';
2
- import type { Snippet } from 'svelte';
3
- interface Props {
4
- children: Snippet;
5
- href: string;
6
- css?: string;
7
- isPrimary?: boolean;
8
- isDisabled?: boolean;
9
- isBordered?: boolean;
10
- isSecondary?: boolean;
11
- idRounded?: boolean;
12
- idPill?: boolean;
13
- idBlock?: boolean;
14
- idCapsule?: boolean;
15
- idCircle?: boolean;
16
- idGrouped?: boolean;
17
- isCircle?: boolean;
18
- isFlex?: boolean;
19
- size?: ComponentSize;
20
- justify?: Justify;
21
- alignItems?: AlignItmes;
22
- orientation?: Orientation;
23
- role?: string;
24
- }
25
- declare const Link: import("svelte").Component<Props, {}, "">;
26
- type Link = ReturnType<typeof Link>;
27
- export default Link;
@@ -1,3 +0,0 @@
1
- export interface Component {
2
- css: string;
3
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,11 +0,0 @@
1
- export { authenticationHandle } from './auth/authenticationHandle.ts';
2
- export { default as authorizationHandle } from './auth/authorizationHandle.ts';
3
- export { default as errorHandler } from './auth/errorHandle.ts';
4
- export { redisSessionProvider } from './auth/redisSessionProvider.ts';
5
- export { machineAuthenticationProvider } from './auth/machineAuthenticationProvider.ts';
6
- export { userAuthenticationProvider } from './auth/userAuthenticationProvider.ts';
7
- export { getBlobService, getCommunicationService, getDataService, getTemplateService, getWebsiteService, getAIService, getAuthService, getFileService, } from './server-side/getServices.ts';
8
- export type { RedirectResponse } from './auth/RedirectResponse.ts';
9
- export { createMachineTokenApprovedLocals } from './auth/getMachineAccessToken.ts';
10
- export { isHuman } from './components/form/AntiBot.ts';
11
- export { default as getRedirectPipeline } from './server-side/getRedirectPipeline.js';
@@ -1,10 +0,0 @@
1
- export { authenticationHandle } from './auth/authenticationHandle.ts';
2
- export { default as authorizationHandle } from './auth/authorizationHandle.ts';
3
- export { default as errorHandler } from './auth/errorHandle.ts';
4
- export { redisSessionProvider } from './auth/redisSessionProvider.ts';
5
- export { machineAuthenticationProvider } from './auth/machineAuthenticationProvider.ts';
6
- export { userAuthenticationProvider } from './auth/userAuthenticationProvider.ts';
7
- export { getBlobService, getCommunicationService, getDataService, getTemplateService, getWebsiteService, getAIService, getAuthService, getFileService, } from './server-side/getServices.ts';
8
- export { createMachineTokenApprovedLocals } from './auth/getMachineAccessToken.ts';
9
- export { isHuman } from './components/form/AntiBot.ts';
10
- export { default as getRedirectPipeline } from './server-side/getRedirectPipeline.js';
@@ -1,6 +0,0 @@
1
- export interface Redirection {
2
- pathname: string;
3
- redirectTo: string;
4
- }
5
- declare const getRedirectPipeline: (redirections: Array<Redirection>) => ({ event, resolve }: any) => Promise<any>;
6
- export default getRedirectPipeline;
package/dist/utils.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare function cn(...params: string[]): string;
package/dist/utils.js DELETED
@@ -1,3 +0,0 @@
1
- export function cn(...params) {
2
- return Array.from(params).flat(2).filter((c) => c).join(' ');
3
- }