@joyautomation/salt 0.0.1

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 (62) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +58 -0
  3. package/dist/actions.d.ts +2 -0
  4. package/dist/actions.js +15 -0
  5. package/dist/client.d.ts +3 -0
  6. package/dist/client.js +12 -0
  7. package/dist/components/ThemeButton.svelte +17 -0
  8. package/dist/components/ThemeButton.svelte.d.ts +17 -0
  9. package/dist/components/Toast.svelte +67 -0
  10. package/dist/components/Toast.svelte.d.ts +14 -0
  11. package/dist/components/Toggle.svelte +75 -0
  12. package/dist/components/Toggle.svelte.d.ts +21 -0
  13. package/dist/components/icons/ArrowPath.svelte +19 -0
  14. package/dist/components/icons/ArrowPath.svelte.d.ts +23 -0
  15. package/dist/components/icons/ChevronDown.svelte +15 -0
  16. package/dist/components/icons/ChevronDown.svelte.d.ts +23 -0
  17. package/dist/components/icons/ChevronUpDown.svelte +18 -0
  18. package/dist/components/icons/ChevronUpDown.svelte.d.ts +16 -0
  19. package/dist/components/icons/DocumentMinus.svelte +19 -0
  20. package/dist/components/icons/DocumentMinus.svelte.d.ts +23 -0
  21. package/dist/components/icons/DocumentPlus.svelte +19 -0
  22. package/dist/components/icons/DocumentPlus.svelte.d.ts +23 -0
  23. package/dist/components/icons/Link.svelte +19 -0
  24. package/dist/components/icons/Link.svelte.d.ts +23 -0
  25. package/dist/components/icons/Moon.svelte +18 -0
  26. package/dist/components/icons/Moon.svelte.d.ts +16 -0
  27. package/dist/components/icons/PauseCircle.svelte +18 -0
  28. package/dist/components/icons/PauseCircle.svelte.d.ts +16 -0
  29. package/dist/components/icons/Pencil.svelte +18 -0
  30. package/dist/components/icons/Pencil.svelte.d.ts +16 -0
  31. package/dist/components/icons/PlayCircle.svelte +20 -0
  32. package/dist/components/icons/PlayCircle.svelte.d.ts +23 -0
  33. package/dist/components/icons/Plus.svelte +14 -0
  34. package/dist/components/icons/Plus.svelte.d.ts +16 -0
  35. package/dist/components/icons/Sun.svelte +18 -0
  36. package/dist/components/icons/Sun.svelte.d.ts +16 -0
  37. package/dist/components/icons/Trash.svelte +18 -0
  38. package/dist/components/icons/Trash.svelte.d.ts +16 -0
  39. package/dist/components/icons/WrenchScrewdriver.svelte +18 -0
  40. package/dist/components/icons/WrenchScrewdriver.svelte.d.ts +16 -0
  41. package/dist/components/icons/Xmark.svelte +14 -0
  42. package/dist/components/icons/Xmark.svelte.d.ts +16 -0
  43. package/dist/components/icons/index.d.ts +14 -0
  44. package/dist/components/icons/index.js +14 -0
  45. package/dist/index.d.ts +5 -0
  46. package/dist/index.js +5 -0
  47. package/dist/stores/notifications.d.ts +12 -0
  48. package/dist/stores/notifications.js +17 -0
  49. package/dist/styles/buttons.scss +72 -0
  50. package/dist/styles/colors.scss +283 -0
  51. package/dist/styles/form.scss +40 -0
  52. package/dist/styles/layout.scss +56 -0
  53. package/dist/styles/main.scss +17 -0
  54. package/dist/styles/preflight.scss +90 -0
  55. package/dist/styles/rounded.scss +18 -0
  56. package/dist/styles/shadow.scss +10 -0
  57. package/dist/styles/spacing.scss +98 -0
  58. package/dist/styles/text.scss +111 -0
  59. package/dist/styles/themeDark.scss +1 -0
  60. package/dist/styles/themeLight.scss +1 -0
  61. package/dist/styles/themes.scss +95 -0
  62. package/package.json +65 -0
@@ -0,0 +1,40 @@
1
+ input[type=text],
2
+ input[type=password],
3
+ input[type=email],
4
+ input[type=number],
5
+ input[type=tel],
6
+ input[type=datetime-local],
7
+ textarea,
8
+ select {
9
+ width: 100%;
10
+ height: 40px;
11
+ border: 1px solid #ccc;
12
+ border-radius: 5px;
13
+ padding: 0 10px;
14
+ font-size: 16px;
15
+ box-sizing: border-box;
16
+ font-family: 'Space Grotesk', sans-serif;
17
+
18
+ &:focus {
19
+ outline: none;
20
+ border: 1px solid var(--sky-500);
21
+ }
22
+ }
23
+
24
+ input[type=text]:disabled,
25
+ input[type=password]:disabled,
26
+ input[type=email]:disabled,
27
+ input[type=number]:disabled,
28
+ input[type=tel]:disabled,
29
+ input[type=datetime-local]:disabled,
30
+ textarea:disabled,
31
+ select:disabled {
32
+ background-color: var(--gray-300);
33
+ border: solid 1px var(--gray-500);
34
+ color: var(--gray-500);
35
+ }
36
+
37
+ .form__row {
38
+ display: flex;
39
+ gap: var(--spacing-unit);
40
+ }
@@ -0,0 +1,56 @@
1
+ .flex {
2
+ display: flex;
3
+ }
4
+
5
+ .flex-column {
6
+ flex-direction: column;
7
+ }
8
+
9
+ .align-center {
10
+ align-items: center;
11
+ }
12
+
13
+ .align-end {
14
+ align-items: end;
15
+ }
16
+
17
+ .justify-center {
18
+ justify-content: center;
19
+ }
20
+
21
+ .justify-between {
22
+ justify-content: space-between;
23
+ }
24
+
25
+ .justify-end {
26
+ justify-content: flex-end;
27
+ }
28
+
29
+ .flex-grow {
30
+ flex-grow: 1;
31
+ }
32
+
33
+ .flex-shrink {
34
+ flex-shrink: 1;
35
+ }
36
+
37
+ .flex-grow-0 {
38
+ flex-grow: 0;
39
+ }
40
+
41
+ .flex-shrink-0 {
42
+ flex-shrink: 0;
43
+ }
44
+
45
+ .basis-0 {
46
+ flex-basis: 0;
47
+ }
48
+
49
+ .basis-6\/12,
50
+ .basis-half {
51
+ flex-basis: 50%;
52
+ }
53
+
54
+ .position-relative {
55
+ position: relative;
56
+ }
@@ -0,0 +1,17 @@
1
+ @import './preflight.scss';
2
+ @import './spacing.scss';
3
+ @import './colors.scss';
4
+ @import './layout.scss';
5
+ @import './shadow.scss';
6
+ @import './rounded.scss';
7
+ @import './text.scss';
8
+ @import './buttons.scss';
9
+ @import './themes.scss';
10
+ @import './form.scss';
11
+
12
+ body {
13
+ font-family: var(--theme-font-basic);
14
+ background-color: var(--theme-background);
15
+ color: var(--theme-text);
16
+ transition: background-color 0.5s, color 0.5s;
17
+ }
@@ -0,0 +1,90 @@
1
+ * {
2
+ margin: 0px;
3
+ padding: 0px;
4
+ }
5
+
6
+ a {
7
+ color: inherit;
8
+ text-decoration: inherit;
9
+ }
10
+
11
+ [multiple],
12
+ [type=date],
13
+ [type=datetime-local],
14
+ [type=email],
15
+ [type=month],
16
+ [type=number],
17
+ [type=password],
18
+ [type=search],
19
+ [type=tel],
20
+ [type=text],
21
+ [type=time],
22
+ [type=url],
23
+ [type=week],
24
+ select,
25
+ textarea {
26
+ // -webkit-appearance: none;
27
+ // -moz-appearance: none;
28
+ // appearance: none;
29
+ background-color: #fff;
30
+ border-color: #6b7280;
31
+ border-width: 1px;
32
+ border-radius: 0;
33
+ padding-top: 0.5rem;
34
+ padding-right: 0.75rem;
35
+ padding-bottom: 0.5rem;
36
+ padding-left: 0.75rem;
37
+ font-size: 1rem;
38
+ line-height: 1.5rem;
39
+ }
40
+
41
+ [type=checkbox],
42
+ [type=radio] {
43
+ -webkit-appearance: none;
44
+ -moz-appearance: none;
45
+ appearance: none;
46
+ padding: 0;
47
+ print-color-adjust: exact;
48
+ display: inline-block;
49
+ vertical-align: middle;
50
+ background-origin: border-box;
51
+ -webkit-user-select: none;
52
+ -moz-user-select: none;
53
+ user-select: none;
54
+ flex-shrink: 0;
55
+ height: 1rem;
56
+ width: 1rem;
57
+ color: #2563eb;
58
+ background-color: #fff;
59
+ border-color: #6b7280;
60
+ border-width: 1px;
61
+ --tw-shadow: 0 0 #0000;
62
+ }
63
+
64
+ [type=checkbox]:checked,
65
+ [type=radio]:checked {
66
+ border-color: transparent;
67
+ background-color: currentColor;
68
+ background-size: 100% 100%;
69
+ background-position: center;
70
+ background-repeat: no-repeat;
71
+ }
72
+
73
+ [type=checkbox] {
74
+ border-radius: 0;
75
+ }
76
+
77
+ [type=checkbox]:checked {
78
+ background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
79
+ }
80
+
81
+ ol,
82
+ ul {
83
+ list-style: none;
84
+ margin: 0;
85
+ padding: 0;
86
+ }
87
+
88
+ fieldset {
89
+ border: none;
90
+ }
@@ -0,0 +1,18 @@
1
+ :root {
2
+ --rounded-none: 0px;
3
+ --rounded-sm: 0.125rem;
4
+ /* 2px */
5
+ --rounded: 0.25rem;
6
+ /* 4px */
7
+ --rounded-md: 0.375rem;
8
+ /* 6px */
9
+ --rounded-lg: 0.5rem;
10
+ /* 8px */
11
+ --rounded-xl: 0.75rem;
12
+ /* 12px */
13
+ --rounded-2xl: 1rem;
14
+ /* 16px */
15
+ --rounded-3xl: 1.5rem;
16
+ /* 24px */
17
+ --rounded-full: 9999px;
18
+ }
@@ -0,0 +1,10 @@
1
+ :root {
2
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
3
+ --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
4
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
5
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
6
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
7
+ --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
8
+ --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
9
+ --shadow-none: 0 0 #0000;
10
+ }
@@ -0,0 +1,98 @@
1
+ :root {
2
+ --spacing-unit: 0.325rem;
3
+ }
4
+
5
+ $spacingMults: (
6
+ 0,
7
+ 1,
8
+ 2,
9
+ 3,
10
+ 4,
11
+ 5,
12
+ 6,
13
+ 7,
14
+ 8,
15
+ 9,
16
+ 10,
17
+ 11,
18
+ 12,
19
+ 13,
20
+ 14,
21
+ 15,
22
+ 16,
23
+ 17,
24
+ 18,
25
+ 19,
26
+ 20
27
+ );
28
+
29
+ @each $mult in $spacingMults {
30
+
31
+ .m-#{$mult},
32
+ .mx-#{$mult},
33
+ .ml-#{$mult} {
34
+ margin-left: calc(#{$mult} * var(--spacing-unit));
35
+ }
36
+
37
+ .m-#{$mult},
38
+ .mx-#{$mult},
39
+ .mr-#{$mult} {
40
+ margin-right: calc(#{$mult} * var(--spacing-unit));
41
+ }
42
+
43
+ .m-#{$mult},
44
+ .my-#{$mult},
45
+ .mt-#{$mult} {
46
+ margin-top: calc(#{$mult} * var(--spacing-unit));
47
+ }
48
+
49
+ .m-#{$mult},
50
+ .my-#{$mult},
51
+ .mb-#{$mult} {
52
+ margin-bottom: calc(#{$mult} * var(--spacing-unit));
53
+ }
54
+
55
+ .p-#{$mult},
56
+ .px-#{$mult},
57
+ .pl-#{$mult} {
58
+ padding-left: calc(#{$mult} * var(--spacing-unit));
59
+ }
60
+
61
+ .p-#{$mult},
62
+ .px-#{$mult},
63
+ .pr-#{$mult} {
64
+ padding-right: calc(#{$mult} * var(--spacing-unit));
65
+ }
66
+
67
+ .p-#{$mult},
68
+ .py-#{$mult},
69
+ .pt-#{$mult} {
70
+ padding-top: calc(#{$mult} * var(--spacing-unit));
71
+ }
72
+
73
+ .p-#{$mult},
74
+ .px-#{$mult},
75
+ .pb-#{$mult} {
76
+ padding-bottom: calc(#{$mult} * var(--spacing-unit));
77
+ }
78
+
79
+ .space-x-#{$mult} {
80
+ &>* {
81
+ margin-right: calc(var(--spacing-unit)*#{$mult});
82
+ }
83
+
84
+ &>*:last-child {
85
+ margin-right: 0;
86
+ }
87
+ }
88
+
89
+ .space-y-#{$mult} {
90
+ &>* {
91
+ margin-bottom: calc(var(--spacing-unit)*#{$mult});
92
+ }
93
+
94
+ &>*:last-child {
95
+ margin-bottom: 0;
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,111 @@
1
+ $fontSizes: (
2
+ 'xs': ('size': '0.75rem', 'lineHeight': '1rem'),
3
+ 'sm': ('size': '0.875rem', 'lineHeight': '1.25rem'),
4
+ 'md': ('size': '1rem', 'lineHeight': '1.5rem'),
5
+ 'lg': ('size': '1.125rem', 'lineHeight': '1.75rem'),
6
+ 'xl': ('size': '1.25rem', 'lineHeight': '1.75rem'),
7
+ '2xl': ('size': '1.5rem', 'lineHeight': '2rem'),
8
+ '3xl': ('size': '1.875rem', 'lineHeight': '2.25rem'),
9
+ '4xl': ('size': '2.25rem', 'lineHeight': '2.5rem'),
10
+ '5xl': ('size': '3rem', 'lineHeight': '1'),
11
+ '6xl': ('size': '3.75rem', 'lineHeight': '1'),
12
+ '7xl': ('size': '4.5rem', 'lineHeight': '1'),
13
+ '8xl': ('size': '6rem', 'lineHeight': '1'),
14
+ '9xl': ('size': '8rem', 'lineHeight': '1'),
15
+ );
16
+
17
+ $fontWeights: (
18
+ 'thin': 100,
19
+ 'extralight': 200,
20
+ 'light': 300,
21
+ 'normal': 400,
22
+ 'medium': 500,
23
+ 'semibold': 600,
24
+ 'bold': 700,
25
+ 'extrabold': 800,
26
+ 'black': 900,
27
+ );
28
+
29
+ :root {
30
+ @each $fontSize, $properties in $fontSizes {
31
+ @each $property, $value in $properties {
32
+ @if $property =='size' {
33
+ --text-#{$fontSize}: #{$value};
34
+ }
35
+
36
+ @else if $property =='lineHeight' {
37
+ --text-#{$fontSize}-lh: #{$value};
38
+ }
39
+ }
40
+ }
41
+
42
+ @each $fontWeight, $value in $fontWeights {
43
+ --font-#{$fontWeight}: #{$value};
44
+ }
45
+ }
46
+
47
+ @each $fontSize, $properties in $fontSizes {
48
+ .text-#{$fontSize} {
49
+ font-size: var(--text-#{$fontSize});
50
+ line-height: var(--text-#{$fontSize}-lh);
51
+ }
52
+ }
53
+
54
+ h2,
55
+ h3,
56
+ h4 {
57
+ margin-bottom: var(--spacing-unit);
58
+ }
59
+
60
+ h2 {
61
+ @extend .text-3xl;
62
+ }
63
+
64
+ h3 {
65
+ @extend .text-2xl;
66
+ }
67
+
68
+ h4 {
69
+ @extend .text-xl;
70
+ }
71
+
72
+ p {
73
+ @extend .text-md;
74
+ margin-bottom: calc(var(--spacing-unit) * 3);
75
+ }
76
+
77
+ a {
78
+ color: var(--theme-link);
79
+ text-decoration: underline;
80
+ transition: color 0.5s;
81
+
82
+ &:hover {
83
+ color: color-mix(in HSL, var(--theme-neutral-900) 15%, var(--theme-link));
84
+ }
85
+ &:visited {
86
+ color: var(--theme-link-visited);
87
+ &:hover {
88
+ color: color-mix(in HSL, var(--theme-neutral-900) 50%, var(--theme-link-visited));
89
+ }
90
+ }
91
+ }
92
+
93
+ .text-end {
94
+ text-align: end;
95
+ }
96
+
97
+ .text-right {
98
+ text-align: right;
99
+ }
100
+
101
+ .text-center {
102
+ text-align: center;
103
+ }
104
+
105
+ .text-left {
106
+ text-align: left;
107
+ }
108
+
109
+ .text-start {
110
+ text-align: start;
111
+ }
@@ -0,0 +1 @@
1
+ @import 'highlight.js/styles/a11y-dark.css';
@@ -0,0 +1 @@
1
+ @import 'highlight.js/styles/a11y-light.css';
@@ -0,0 +1,95 @@
1
+ $themes: (
2
+ "themeLight": (
3
+ "theme-font-basic": "'Space Grotesk', sans-serif",
4
+ "theme-primary": "var(--sky-500)",
5
+ "background-image": "url('https://res.cloudinary.com/jarautomation/image/upload/e_contrast:level_-100,o_40/v1704849050/joyautomation.com/texture-waves.webp')",
6
+ "theme-primary-hover": "var(--sky-600)",
7
+ "theme-secondary": "var(--gray-300)",
8
+ "theme-text": "var(--black)",
9
+ "theme-background": "var(--gray-100)",
10
+ "theme-accent": "var(--amber-500)",
11
+ "theme-nav": "var(--sky-700)",
12
+ "theme-link": "var(--amber-500)",
13
+ "theme-link-visited": "var(--sky-700)",
14
+ "theme-neutral": (
15
+ 50: 'var(--gray-50)',
16
+ 100: 'var(--gray-100)',
17
+ 200: 'var(--gray-200)',
18
+ 300: 'var(--gray-300)',
19
+ 400: 'var(--gray-400)',
20
+ 500: 'var(--gray-500)',
21
+ 600: 'var(--gray-600)',
22
+ 700: 'var(--gray-700)',
23
+ 800: 'var(--gray-800)',
24
+ 900: 'var(--gray-900)',
25
+ 950: 'var(--gray-950)',
26
+ ),
27
+ "theme-logo-neutral": (
28
+ "light": 'var(--gray-400)',
29
+ "medium": 'var(--gray-500)',
30
+ "dark": 'var(--gray-600)',
31
+ ),
32
+ "theme-logo-accent": (
33
+ "light": 'var(--orange-300)',
34
+ "medium": 'var(--orange-500)',
35
+ "dark": 'var(--orange-700)',
36
+ )
37
+ ),
38
+ "themeDark": (
39
+ "theme-font-basic": "'Space Grotesk', sans-serif",
40
+ "theme-primary": "var(--sky-700)",
41
+ "background-image": "url('https://res.cloudinary.com/jarautomation/image/upload/e_contrast:level_-100,o_20/v1704849050/joyautomation.com/texture-waves.webp')",
42
+ "theme-primary-hover": "var(--sky-600)",
43
+ "theme-text": "var(--white)",
44
+ "theme-background": "var(--gray-950)",
45
+ "theme-accent": "var(--amber-700)",
46
+ "theme-secondary": "var(--gray-800)",
47
+ "theme-nav": "var(--sky-950)",
48
+ "theme-link": "var(--amber-500)",
49
+ "theme-link-visited": "var(--sky-300)",
50
+ "theme-neutral": (50: 'var(--gray-950)',
51
+ 100: 'var(--gray-900)',
52
+ 200: 'var(--gray-800)',
53
+ 300: 'var(--gray-700)',
54
+ 400: 'var(--gray-600)',
55
+ 500: 'var(--gray-500)',
56
+ 600: 'var(--gray-400)',
57
+ 700: 'var(--gray-300)',
58
+ 800: 'var(--gray-200)',
59
+ 900: 'var(--gray-100)',
60
+ 950: 'var(--gray-50)',
61
+ ),
62
+ "theme-logo-neutral": (
63
+ "light": 'var(--gray-400)',
64
+ "medium": 'var(--gray-500)',
65
+ "dark": 'var(--gray-600)',
66
+ ),
67
+ "theme-logo-accent": (
68
+ "light": 'var(--orange-300)',
69
+ "medium": 'var(--orange-500)',
70
+ "dark": 'var(--orange-700)',
71
+ ))
72
+ );
73
+
74
+ @each $theme-name, $theme-map in $themes {
75
+
76
+ // Create a class for the theme
77
+ .#{$theme-name} {
78
+
79
+ // Iterate over each property in the theme map
80
+ @each $property, $value in $theme-map {
81
+
82
+ // Check if the value is a nested map (like for 'neutral')
83
+ @if (type-of($value)=='map') {
84
+ @each $nested-key, $nested-value in $value {
85
+ --#{$property}-#{$nested-key}: #{$nested-value};
86
+ }
87
+ }
88
+
89
+ @else {
90
+ --#{$property}: #{$value};
91
+ }
92
+ }
93
+ }
94
+ }
95
+
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@joyautomation/salt",
3
+ "version": "0.0.1",
4
+ "exports": {
5
+ ".": [
6
+ "./dist/index.js",
7
+ {
8
+ "types": "./dist/index.d.ts"
9
+ }
10
+ ],
11
+ "./styles.scss": "./dist/styles/main.scss"
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "!dist/**/*.test.*",
16
+ "!dist/**/*.spec.*"
17
+ ],
18
+ "peerDependencies": {
19
+ "@sveltejs/kit": "^2.5.5",
20
+ "svelte": "^4.0.0"
21
+ },
22
+ "devDependencies": {
23
+ "@playwright/test": "^1.28.1",
24
+ "@sveltejs/adapter-auto": "^3.0.0",
25
+ "@sveltejs/package": "^2.0.0",
26
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
27
+ "@types/eslint": "^8.56.10",
28
+ "@typescript-eslint/eslint-plugin": "^7.7.1",
29
+ "@typescript-eslint/parser": "^7.7.1",
30
+ "eslint": "^9.1.1",
31
+ "eslint-config-prettier": "^9.1.0",
32
+ "eslint-plugin-prettier": "^5.1.3",
33
+ "eslint-plugin-svelte": "^2.38.0",
34
+ "globals": "^15.0.0",
35
+ "prettier": "^3.2.5",
36
+ "prettier-plugin-svelte": "^3.2.3",
37
+ "publint": "^0.1.9",
38
+ "svelte": "^4.2.7",
39
+ "svelte-check": "^3.6.0",
40
+ "tslib": "^2.4.1",
41
+ "typescript": "^5.4.5",
42
+ "typescript-eslint": "^7.7.1",
43
+ "vite": "^5.0.11",
44
+ "vitest": "^1.2.0"
45
+ },
46
+ "svelte": "./dist/index.js",
47
+ "types": "./dist/index.d.ts",
48
+ "type": "module",
49
+ "dependencies": {
50
+ "@sveltejs/adapter-node": "^5.0.1",
51
+ "nanoid": "^5.0.7",
52
+ "sass": "^1.75.0"
53
+ },
54
+ "scripts": {
55
+ "dev": "vite dev",
56
+ "build": "vite build && npm run package",
57
+ "preview": "vite preview",
58
+ "package": "svelte-kit sync && svelte-package && publint",
59
+ "test": "npm run test:integration && npm run test:unit",
60
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
61
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
62
+ "test:integration": "playwright test",
63
+ "test:unit": "vitest"
64
+ }
65
+ }