lapikit 0.0.0-insiders.f81b991 → 0.0.0-insiders.fb12c48

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 (184) hide show
  1. package/bin/configuration.js +303 -0
  2. package/bin/helper.js +0 -15
  3. package/bin/index.js +33 -0
  4. package/bin/presets.js +26 -0
  5. package/bin/prompts.js +67 -0
  6. package/dist/actions/accordion.svelte.d.ts +9 -0
  7. package/dist/actions/index.d.ts +2 -1
  8. package/dist/actions/index.js +2 -1
  9. package/dist/actions/use-theme.d.ts +1 -0
  10. package/dist/actions/use-theme.js +18 -0
  11. package/dist/components/accordion/accordion.css +0 -77
  12. package/dist/components/accordion/accordion.svelte +5 -3
  13. package/dist/components/accordion/modules/accordion-item.css +68 -0
  14. package/dist/components/accordion/modules/accordion-item.svelte +4 -4
  15. package/dist/components/accordion/types.d.ts +1 -1
  16. package/dist/components/alert/alert.css +25 -22
  17. package/dist/components/alert/alert.svelte +4 -4
  18. package/dist/components/alert/types.d.ts +1 -1
  19. package/dist/components/app/app.css +1 -2
  20. package/dist/components/app/app.svelte +39 -21
  21. package/dist/components/app/app.svelte.d.ts +2 -0
  22. package/dist/components/appbar/appbar.css +8 -18
  23. package/dist/components/appbar/appbar.svelte +4 -4
  24. package/dist/components/appbar/types.d.ts +1 -1
  25. package/dist/components/aspect-ratio/aspect-ratio.svelte +0 -22
  26. package/dist/components/aspect-ratio/types.d.ts +1 -1
  27. package/dist/components/avatar/avatar.css +7 -14
  28. package/dist/components/avatar/avatar.svelte +4 -4
  29. package/dist/components/avatar/types.d.ts +1 -1
  30. package/dist/components/button/button.css +29 -36
  31. package/dist/components/button/button.svelte +5 -5
  32. package/dist/components/button/types.d.ts +1 -1
  33. package/dist/components/card/card.css +10 -20
  34. package/dist/components/card/card.svelte +9 -5
  35. package/dist/components/card/types.d.ts +3 -1
  36. package/dist/components/chip/chip.css +32 -38
  37. package/dist/components/chip/chip.svelte +10 -8
  38. package/dist/components/chip/types.d.ts +2 -1
  39. package/dist/components/dialog/dialog.css +15 -20
  40. package/dist/components/dialog/dialog.svelte +5 -5
  41. package/dist/components/dialog/types.d.ts +1 -1
  42. package/dist/components/dropdown/dropdown.css +3 -12
  43. package/dist/components/dropdown/dropdown.svelte +6 -7
  44. package/dist/components/dropdown/types.d.ts +1 -1
  45. package/dist/components/icon/icon.css +11 -12
  46. package/dist/components/icon/icon.svelte +2 -2
  47. package/dist/components/icon/types.d.ts +1 -1
  48. package/dist/components/index.d.ts +1 -0
  49. package/dist/components/index.js +1 -0
  50. package/dist/components/list/list.css +19 -91
  51. package/dist/components/list/list.svelte +4 -4
  52. package/dist/components/list/modules/list-item.css +67 -0
  53. package/dist/components/list/modules/list-item.svelte +5 -5
  54. package/dist/components/list/types.d.ts +1 -1
  55. package/dist/components/modal/modal.css +23 -29
  56. package/dist/components/modal/modal.svelte +4 -5
  57. package/dist/components/modal/types.d.ts +1 -1
  58. package/dist/components/popover/popover.css +3 -12
  59. package/dist/components/popover/popover.svelte +6 -6
  60. package/dist/components/popover/types.d.ts +1 -1
  61. package/dist/components/separator/separator.css +4 -8
  62. package/dist/components/separator/separator.svelte +5 -5
  63. package/dist/components/separator/types.d.ts +1 -1
  64. package/dist/components/spacer/types.d.ts +1 -1
  65. package/dist/components/textfield/textfield.css +298 -0
  66. package/dist/components/textfield/textfield.svelte +193 -0
  67. package/dist/components/textfield/textfield.svelte.d.ts +4 -0
  68. package/dist/components/textfield/types.d.ts +37 -0
  69. package/dist/components/toolbar/toolbar.css +11 -34
  70. package/dist/components/toolbar/toolbar.svelte +4 -4
  71. package/dist/components/toolbar/types.d.ts +1 -1
  72. package/dist/components/tooltip/tooltip.css +5 -13
  73. package/dist/components/tooltip/tooltip.svelte +5 -5
  74. package/dist/components/tooltip/types.d.ts +1 -1
  75. package/dist/index.d.ts +3 -1
  76. package/dist/index.js +23 -3
  77. package/dist/internal/config/presets.d.ts +149 -0
  78. package/dist/internal/config/presets.js +169 -0
  79. package/dist/internal/config/variables.d.ts +3 -0
  80. package/dist/internal/config/variables.js +3 -0
  81. package/dist/internal/{assets.svelte.js → core/actions/assets.svelte.js} +4 -4
  82. package/dist/internal/core/actions/dropdown.svelte.d.ts +7 -0
  83. package/dist/internal/core/actions/popover.svelte.d.ts +7 -0
  84. package/dist/internal/core/actions/tooltip.svelte.d.ts +7 -0
  85. package/dist/internal/{ripple.js → core/animations/ripple.js} +3 -3
  86. package/dist/internal/core/css.d.ts +1 -0
  87. package/dist/internal/core/css.js +16 -0
  88. package/dist/internal/core/formatter/component.d.ts +5 -0
  89. package/dist/internal/core/formatter/component.js +60 -0
  90. package/dist/internal/core/formatter/device.d.ts +5 -0
  91. package/dist/internal/core/formatter/device.js +66 -0
  92. package/dist/internal/core/formatter/index.d.ts +7 -0
  93. package/dist/internal/core/formatter/index.js +35 -0
  94. package/dist/internal/core/formatter/style.d.ts +4 -0
  95. package/dist/internal/core/formatter/style.js +15 -0
  96. package/dist/internal/core/formatter/theme.d.ts +5 -0
  97. package/dist/internal/core/formatter/theme.js +44 -0
  98. package/dist/internal/core/formatter/typography.d.ts +5 -0
  99. package/dist/internal/core/formatter/typography.js +12 -0
  100. package/dist/internal/core/standard-colors.d.ts +75 -0
  101. package/dist/internal/core/standard-colors.js +75 -0
  102. package/dist/internal/helpers/colors.d.ts +1 -0
  103. package/dist/internal/{colors.js → helpers/colors.js} +2 -2
  104. package/dist/internal/helpers/convert.d.ts +1 -0
  105. package/dist/internal/helpers/convert.js +17 -0
  106. package/dist/internal/helpers/deep-merge.d.ts +44 -0
  107. package/dist/internal/helpers/deep-merge.js +80 -0
  108. package/dist/internal/helpers/parser.d.ts +10 -0
  109. package/dist/internal/helpers/parser.js +93 -0
  110. package/dist/internal/plugins/vite.d.ts +8 -0
  111. package/dist/internal/plugins/vite.js +33 -0
  112. package/dist/internal/types/components.d.ts +14 -0
  113. package/dist/internal/types/components.js +1 -0
  114. package/dist/internal/types/configuration.d.ts +63 -0
  115. package/dist/internal/types/configuration.js +1 -0
  116. package/dist/internal/types/index.d.ts +2 -0
  117. package/dist/internal/types/index.js +2 -0
  118. package/dist/stores/breakpoints.d.ts +6 -0
  119. package/dist/stores/breakpoints.js +14 -0
  120. package/dist/stores/components.d.ts +8 -0
  121. package/dist/stores/components.js +26 -0
  122. package/dist/stores/devices.d.ts +6 -0
  123. package/dist/stores/devices.js +9 -0
  124. package/dist/stores/index.d.ts +5 -10
  125. package/dist/stores/index.js +5 -47
  126. package/dist/stores/themes.d.ts +2 -0
  127. package/dist/stores/themes.js +4 -0
  128. package/dist/stores/viewport.d.ts +7 -0
  129. package/dist/stores/viewport.js +7 -0
  130. package/dist/styles/animation.css +33 -0
  131. package/dist/styles/keyframes.css +30 -0
  132. package/dist/{style/normalize.css → styles/reset.css} +15 -7
  133. package/dist/themes.css +0 -0
  134. package/package.json +12 -5
  135. package/bin/lapikit.js +0 -55
  136. package/bin/modules/adapter.js +0 -52
  137. package/bin/modules/preset.js +0 -11
  138. package/dist/internal/colors.d.ts +0 -1
  139. package/dist/internal/index.d.ts +0 -4
  140. package/dist/internal/index.js +0 -4
  141. package/dist/internal/types.d.ts +0 -57
  142. package/dist/internal/unit.d.ts +0 -1
  143. package/dist/internal/unit.js +0 -11
  144. package/dist/plugin/modules/config.d.ts +0 -2
  145. package/dist/plugin/modules/config.js +0 -54
  146. package/dist/plugin/modules/importer.d.ts +0 -1
  147. package/dist/plugin/modules/importer.js +0 -15
  148. package/dist/plugin/vitejs.d.ts +0 -6
  149. package/dist/plugin/vitejs.js +0 -26
  150. package/dist/preset.d.ts +0 -2
  151. package/dist/preset.js +0 -92
  152. package/dist/style/animation.css +0 -62
  153. package/dist/style/css.d.ts +0 -2
  154. package/dist/style/css.js +0 -34
  155. package/dist/style/parser/color.d.ts +0 -5
  156. package/dist/style/parser/color.js +0 -88
  157. package/dist/style/parser/component.d.ts +0 -2
  158. package/dist/style/parser/component.js +0 -115
  159. package/dist/style/parser/device.d.ts +0 -2
  160. package/dist/style/parser/device.js +0 -40
  161. package/dist/style/parser/index.d.ts +0 -4
  162. package/dist/style/parser/index.js +0 -4
  163. package/dist/style/parser/variable.d.ts +0 -2
  164. package/dist/style/parser/variable.js +0 -25
  165. package/dist/style/variable.css +0 -12
  166. /package/dist/{components/accordion → actions}/accordion.svelte.js +0 -0
  167. /package/dist/{internal → components/textfield}/types.js +0 -0
  168. /package/dist/internal/{assets.svelte.d.ts → core/actions/assets.svelte.d.ts} +0 -0
  169. /package/dist/{components/dropdown → internal/core/actions}/dropdown.svelte.js +0 -0
  170. /package/dist/{components/popover → internal/core/actions}/popover.svelte.js +0 -0
  171. /package/dist/{components/tooltip → internal/core/actions}/tooltip.svelte.js +0 -0
  172. /package/dist/internal/{ripple.d.ts → core/animations/ripple.d.ts} +0 -0
  173. /package/dist/internal/{ansi.d.ts → core/bin/ansi.d.ts} +0 -0
  174. /package/dist/internal/{ansi.js → core/bin/ansi.js} +0 -0
  175. /package/dist/internal/{terminal.d.ts → core/bin/terminal.d.ts} +0 -0
  176. /package/dist/internal/{terminal.js → core/bin/terminal.js} +0 -0
  177. /package/dist/internal/{minify.d.ts → core/minify.d.ts} +0 -0
  178. /package/dist/internal/{minify.js → core/minify.js} +0 -0
  179. /package/dist/{utils/x11.d.ts → internal/core/x11-colors.d.ts} +0 -0
  180. /package/dist/{utils/x11.js → internal/core/x11-colors.js} +0 -0
  181. /package/dist/internal/{clickOutside.d.ts → helpers/outside.d.ts} +0 -0
  182. /package/dist/internal/{clickOutside.js → helpers/outside.js} +0 -0
  183. /package/dist/internal/{scroll.d.ts → helpers/scroll.d.ts} +0 -0
  184. /package/dist/internal/{scroll.js → helpers/scroll.js} +0 -0
@@ -1,4 +1,4 @@
1
- import type { Component } from '../../internal/types.js';
1
+ import type { Component } from '../../internal/types/index.js';
2
2
  import type { Snippet } from 'svelte';
3
3
  export interface TooltipProps extends Component {
4
4
  open?: boolean;
package/dist/index.d.ts CHANGED
@@ -1 +1,3 @@
1
- export declare function helloWorld(): void;
1
+ import type { LapikitConfiguration } from './internal/types/configuration.js';
2
+ declare function createLapikit(lapikit: LapikitConfiguration): void;
3
+ export default createLapikit;
package/dist/index.js CHANGED
@@ -1,4 +1,24 @@
1
- // Reexport your entry components here
2
- export function helloWorld() {
3
- console.log('Hello world, this is lapikit!');
1
+ import { deepMerge } from './internal/helpers/deep-merge.js';
2
+ import { breakpoints } from './stores/breakpoints.js';
3
+ import { get } from 'svelte/store';
4
+ import { devices } from './stores/devices.js';
5
+ import { valueToPx } from './internal/helpers/convert.js';
6
+ function createLapikit(lapikit) {
7
+ if (lapikit?.breakpoints?.thresholds) {
8
+ const currentBreakpoints = get(breakpoints);
9
+ const breakpointMerged = deepMerge(currentBreakpoints, lapikit.breakpoints.thresholds);
10
+ const formattedBreakpoints = Object.fromEntries(Object.entries(breakpointMerged).map(([key, value]) => [key, valueToPx(value)]));
11
+ breakpoints.set(formattedBreakpoints);
12
+ }
13
+ if (lapikit?.breakpoints?.devices) {
14
+ const currentDevices = get(devices);
15
+ const currentBreakpoints = get(breakpoints);
16
+ const deviceMerged = deepMerge(currentDevices, lapikit.breakpoints.devices);
17
+ const formattedDevices = Object.fromEntries(Object.entries(deviceMerged).map(([key, deviceKey]) => {
18
+ const breakpointValue = currentBreakpoints[deviceKey];
19
+ return [key, valueToPx(breakpointValue)];
20
+ }));
21
+ devices.set(formattedDevices);
22
+ }
4
23
  }
24
+ export default createLapikit;
@@ -0,0 +1,149 @@
1
+ export declare const preset: {
2
+ breakpoints: {
3
+ devices: {
4
+ desktop: number;
5
+ tablet: number;
6
+ mobile: number;
7
+ };
8
+ thresholds: {
9
+ base: number;
10
+ xs: number;
11
+ sm: number;
12
+ md: number;
13
+ lg: number;
14
+ xl: number;
15
+ '2xl': number;
16
+ '3xl': number;
17
+ };
18
+ };
19
+ theme: {
20
+ defaultTheme: string;
21
+ colorScheme: boolean;
22
+ themes: {
23
+ light: {
24
+ dark: boolean;
25
+ colors: {
26
+ label: {
27
+ primary: string;
28
+ secondary: string;
29
+ tertiary: string;
30
+ quaternary: string;
31
+ };
32
+ accent: {
33
+ primary: string;
34
+ success: string;
35
+ warning: string;
36
+ destructive: string;
37
+ info: string;
38
+ };
39
+ separator: {
40
+ default: string;
41
+ opaque: string;
42
+ };
43
+ state: {
44
+ placeholder: string;
45
+ disabled: string;
46
+ link: string;
47
+ highlight: string;
48
+ shadow: string;
49
+ };
50
+ background: {
51
+ primary: string;
52
+ secondary: string;
53
+ tertiary: string;
54
+ grouped: {
55
+ primary: string;
56
+ secondary: string;
57
+ tertiary: string;
58
+ };
59
+ };
60
+ };
61
+ variables: {
62
+ 'test-variable': string;
63
+ };
64
+ };
65
+ dark: {
66
+ dark: boolean;
67
+ colors: {
68
+ pink: string;
69
+ label: {
70
+ primary: string;
71
+ secondary: string;
72
+ tertiary: string;
73
+ quaternary: string;
74
+ };
75
+ accent: {
76
+ primary: string;
77
+ success: string;
78
+ warning: string;
79
+ destructive: string;
80
+ info: string;
81
+ };
82
+ separator: {
83
+ default: string;
84
+ opaque: string;
85
+ };
86
+ state: {
87
+ placeholder: string;
88
+ disabled: string;
89
+ link: string;
90
+ highlight: string;
91
+ shadow: string;
92
+ };
93
+ background: {
94
+ primary: string;
95
+ secondary: string;
96
+ tertiary: string;
97
+ grouped: {
98
+ primary: string;
99
+ secondary: string;
100
+ tertiary: string;
101
+ };
102
+ };
103
+ };
104
+ variables: {
105
+ 'test-variable': string;
106
+ };
107
+ };
108
+ };
109
+ };
110
+ typography: {
111
+ defaultTypography: string;
112
+ fonts: {
113
+ default: {
114
+ sans: string[];
115
+ mono: string[];
116
+ serif: string[];
117
+ };
118
+ };
119
+ };
120
+ styles: {
121
+ spacing: string;
122
+ shape: {
123
+ sm: string;
124
+ md: string;
125
+ lg: string;
126
+ xl: string;
127
+ '2xl': string;
128
+ '3xl': string;
129
+ full: string;
130
+ };
131
+ dialog: {
132
+ xs: string;
133
+ sm: string;
134
+ md: string;
135
+ lg: string;
136
+ xl: string;
137
+ };
138
+ modal: {
139
+ xs: string;
140
+ sm: string;
141
+ md: string;
142
+ lg: string;
143
+ xl: string;
144
+ };
145
+ animation: {
146
+ 'ripple-duration': string;
147
+ };
148
+ };
149
+ };
@@ -0,0 +1,169 @@
1
+ import { variables } from './variables.js';
2
+ import standardColors from '../core/standard-colors.js';
3
+ export const preset = {
4
+ breakpoints: {
5
+ devices: {
6
+ desktop: 1024, //64rem (lg)
7
+ tablet: 768, //48rem (md)
8
+ mobile: 640 //40rem (sm)
9
+ },
10
+ thresholds: {
11
+ base: 0, // 0px
12
+ xs: 448, //28rem
13
+ sm: 640, //40rem
14
+ md: 768, //48rem
15
+ lg: 1024, //64rem
16
+ xl: 1280, //80rem
17
+ '2xl': 1536, //96rem
18
+ '3xl': 1792 //112rem
19
+ }
20
+ },
21
+ theme: {
22
+ defaultTheme: 'light',
23
+ colorScheme: true,
24
+ themes: {
25
+ light: {
26
+ dark: false,
27
+ colors: {
28
+ label: {
29
+ primary: '#000000',
30
+ secondary: standardColors.gray.light,
31
+ tertiary: standardColors.gray2.light,
32
+ quaternary: standardColors.gray3.light
33
+ },
34
+ accent: {
35
+ primary: standardColors.blue.light,
36
+ success: standardColors.green.light,
37
+ warning: standardColors.orange.light,
38
+ destructive: standardColors.red.light,
39
+ info: standardColors.cyan.light
40
+ },
41
+ separator: {
42
+ default: standardColors.gray3.light,
43
+ opaque: standardColors.gray4.light
44
+ },
45
+ state: {
46
+ placeholder: standardColors.gray3.light,
47
+ disabled: standardColors.gray2.light,
48
+ link: standardColors.blue.light,
49
+ highlight: standardColors.gray5.light,
50
+ shadow: '#00000033'
51
+ },
52
+ background: {
53
+ primary: '#FFFFFF',
54
+ secondary: standardColors.gray6.light,
55
+ tertiary: standardColors.gray5.light,
56
+ grouped: {
57
+ primary: standardColors.gray6.light,
58
+ secondary: '#FFFFFF',
59
+ tertiary: standardColors.gray6.light
60
+ }
61
+ }
62
+ },
63
+ variables: variables
64
+ },
65
+ dark: {
66
+ dark: true,
67
+ colors: {
68
+ pink: 'pink',
69
+ label: {
70
+ primary: '#FFFFFF',
71
+ secondary: standardColors.gray2.dark,
72
+ tertiary: standardColors.gray3.dark,
73
+ quaternary: standardColors.gray4.dark
74
+ },
75
+ accent: {
76
+ primary: standardColors.blue.dark,
77
+ success: standardColors.green.dark,
78
+ warning: standardColors.orange.dark,
79
+ destructive: standardColors.red.dark,
80
+ info: standardColors.cyan.dark
81
+ },
82
+ separator: {
83
+ default: standardColors.gray3.dark,
84
+ opaque: standardColors.gray4.dark
85
+ },
86
+ state: {
87
+ placeholder: standardColors.gray3.dark,
88
+ disabled: standardColors.gray4.dark,
89
+ link: standardColors.blue.dark,
90
+ highlight: standardColors.gray5.dark,
91
+ shadow: '#00000066'
92
+ },
93
+ background: {
94
+ primary: '#000000',
95
+ secondary: standardColors.gray6.dark,
96
+ tertiary: standardColors.gray5.dark,
97
+ grouped: {
98
+ primary: standardColors.gray6.dark,
99
+ secondary: standardColors.gray5.dark,
100
+ tertiary: standardColors.gray4.dark
101
+ }
102
+ }
103
+ },
104
+ variables: variables
105
+ }
106
+ }
107
+ },
108
+ typography: {
109
+ defaultTypography: 'default',
110
+ fonts: {
111
+ default: {
112
+ sans: [
113
+ 'system-ui',
114
+ '-apple-system',
115
+ 'BlinkMacSystemFont',
116
+ 'Segoe UI',
117
+ 'Roboto',
118
+ 'Helvetica Neue',
119
+ 'Arial',
120
+ 'sans-serif',
121
+ 'Apple Color Emoji',
122
+ 'Segoe UI Emoji',
123
+ 'Segoe UI Symbol'
124
+ ],
125
+ mono: [
126
+ 'SFMono-Regular',
127
+ 'ui-monospace',
128
+ 'SF Mono',
129
+ 'Menlo',
130
+ 'Monaco',
131
+ 'Consolas',
132
+ 'Liberation Mono',
133
+ 'Courier New',
134
+ 'monospace'
135
+ ],
136
+ serif: ['Merriweather', 'Georgia', 'Cambria', 'Times New Roman', 'Times', 'serif']
137
+ }
138
+ }
139
+ },
140
+ styles: {
141
+ spacing: '0.125rem', // 2px
142
+ shape: {
143
+ sm: '0.125rem', // 2px
144
+ md: '0.25rem', // 4px
145
+ lg: '0.5rem', // 8px
146
+ xl: '0.75rem', // 12px
147
+ '2xl': '1rem', // 16px
148
+ '3xl': '1.5rem', // 24px
149
+ full: '9999px' // 9999px
150
+ },
151
+ dialog: {
152
+ xs: '18.75rem', // 300px
153
+ sm: '25rem', // 400px
154
+ md: '37.5rem', // 600px
155
+ lg: '53.125rem', // 850px
156
+ xl: '75rem' // 1200px
157
+ },
158
+ modal: {
159
+ xs: '18.75rem', // 300px
160
+ sm: '25rem', // 400px
161
+ md: '37.5rem', // 600px
162
+ lg: '53.125rem', // 850px
163
+ xl: '75rem' // 1200px
164
+ },
165
+ animation: {
166
+ 'ripple-duration': '0.4s'
167
+ }
168
+ }
169
+ };
@@ -0,0 +1,3 @@
1
+ export declare const variables: {
2
+ 'test-variable': string;
3
+ };
@@ -0,0 +1,3 @@
1
+ export const variables = {
2
+ 'test-variable': '1rem'
3
+ };
@@ -1,11 +1,11 @@
1
- import { x11ColorNames } from '../utils/x11.js';
1
+ import { x11ColorNames } from '../x11-colors.js';
2
2
  export function getAssets() {
3
3
  return {
4
4
  shape(params) {
5
5
  if (params) {
6
6
  if (params === 'none' || params == '0')
7
7
  return '0';
8
- return `var(--kit-radius-${params})`;
8
+ return `var(--system-shape-${params})`;
9
9
  }
10
10
  },
11
11
  className(key, type, value) {
@@ -16,12 +16,12 @@ export function getAssets() {
16
16
  else if (typeof value === 'object') {
17
17
  if (Array.isArray(value)) {
18
18
  return value
19
- .map((media) => `${media === '_default' ? '' : `${media}:`}kit--${type}`)
19
+ .map((media) => `${media === 'base' ? '' : `${media}:`}kit--${type}`)
20
20
  .join(' ');
21
21
  }
22
22
  else {
23
23
  return Object.entries(value)
24
- .map(([media, value]) => `${media === '_default' ? '' : `${media}:`}kit-${key}--${type}-${value}`)
24
+ .map(([media, value]) => `${media === 'base' ? '' : `${media}:`}kit-${key}--${type}-${value}`)
25
25
  .join(' ');
26
26
  }
27
27
  }
@@ -0,0 +1,7 @@
1
+ import type { PositionElement } from '../../../components/dropdown/types.js';
2
+ type Location = 'top' | 'bottom' | 'left' | 'right';
3
+ export declare function getPositions(): {
4
+ readonly values: PositionElement;
5
+ update(activator: HTMLElement | PointerEvent, element: HTMLElement, location?: Location, centered?: boolean, avoidCollisions?: boolean): void;
6
+ };
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { PositionElement } from '../../../components/popover/types.js';
2
+ type Location = 'top' | 'bottom' | 'left' | 'right';
3
+ export declare function getPositions(): {
4
+ readonly values: PositionElement;
5
+ update(activator: HTMLElement, element: HTMLElement, location?: Location, centered?: boolean, avoidCollisions?: boolean): void;
6
+ };
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { PositionElement } from '../../../components/tooltip/types.js';
2
+ type Location = 'top' | 'bottom' | 'left' | 'right';
3
+ export declare function getPositionsTooltip(): {
4
+ readonly values: PositionElement;
5
+ update(activator: HTMLElement, element: HTMLElement, location?: Location, centered?: boolean, avoidCollisions?: boolean): void;
6
+ };
7
+ export {};
@@ -27,13 +27,13 @@ export function ripple(el, options = {}) {
27
27
  options.duration = undefined;
28
28
  }
29
29
  if (options.component) {
30
- rippleContainer.style.setProperty('--ripple-radius', `var(--${options.component}-radius)`);
30
+ rippleContainer.style.setProperty('--system-ripple-radius', `var(--${options.component}-radius)`);
31
31
  }
32
32
  if (options.color) {
33
- rippleContainer.style.setProperty('--ripple-color', options.color);
33
+ rippleContainer.style.setProperty('--system-ripple-color', options.color);
34
34
  }
35
35
  if (options.duration) {
36
- rippleContainer.style.setProperty('--ripple-duration', `${options.duration}ms`);
36
+ rippleContainer.style.setProperty('--system-animation-ripple-duration', `${options.duration}ms`);
37
37
  }
38
38
  }
39
39
  function createRipple(e, center) {
@@ -0,0 +1 @@
1
+ export declare const processImportStyles: () => Promise<string>;
@@ -0,0 +1,16 @@
1
+ import { fileURLToPath } from 'url';
2
+ import { dirname } from 'path';
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+ export const processImportStyles = async () => {
8
+ const _reset = fs.readFileSync(path.resolve(__dirname, './../../styles/reset.css'), 'utf-8');
9
+ const _animation = fs.readFileSync(path.resolve(__dirname, './../../styles/animation.css'), 'utf-8');
10
+ const _keyframes = fs.readFileSync(path.resolve(__dirname, './../../styles/keyframes.css'), 'utf-8');
11
+ let styles = ``;
12
+ styles += `${_reset}\n`;
13
+ styles += `${_animation}\n`;
14
+ styles += `${_keyframes}\n`;
15
+ return styles;
16
+ };
@@ -0,0 +1,5 @@
1
+ export declare function componentFormatter({ breakpoints }: {
2
+ breakpoints: {
3
+ [key: string]: number | string;
4
+ };
5
+ }): Promise<void>;
@@ -0,0 +1,60 @@
1
+ import { fileURLToPath } from 'url';
2
+ import { dirname } from 'path';
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import { parserCSSBreakpoints } from '../../helpers/parser.js';
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
8
+ export async function componentFormatter({ breakpoints }) {
9
+ // load svelte component files (includes on components folders)
10
+ function loadSvelteFiles(directory) {
11
+ fs.readdirSync(directory).forEach((File) => {
12
+ const absolutePath = path.join(directory, File);
13
+ if (fs.statSync(absolutePath).isDirectory())
14
+ return loadSvelteFiles(absolutePath);
15
+ else if (absolutePath.endsWith('.css') && !absolutePath.includes('/_')) {
16
+ const fileCSS = fs.readFileSync(absolutePath, 'utf8');
17
+ const content = parserCSSBreakpoints(fileCSS);
18
+ let css = `${content.cleaned}\n`;
19
+ for (const property in breakpoints) {
20
+ if (property !== 'base') {
21
+ const name = `.${/^\d/.test(property) ? `\\3${property}` : property}\\:`;
22
+ const value = typeof breakpoints[property] === 'number'
23
+ ? `${breakpoints[property]}px`
24
+ : breakpoints[property];
25
+ if (content.base !== '' || content.minmax !== '' || content.min !== '') {
26
+ css += `\n@media screen and (min-width: ${value}) {\n`;
27
+ if (content.base !== '')
28
+ css += content.base.replaceAll('[breakpoint]', name);
29
+ if (content.minmax !== '')
30
+ css += content.minmax.replaceAll('[breakpoint]', name);
31
+ if (content.min !== '')
32
+ css += content.min.replaceAll('[breakpoint]', name);
33
+ css += `\n}\n`;
34
+ }
35
+ if (content.max !== '' || content.minmax !== '') {
36
+ css += `\n@media screen and (max-width: ${value}) {\n`;
37
+ if (content.max !== '')
38
+ css += content.max.replaceAll('[breakpoint]', `max\\:${name}`);
39
+ if (content.minmax !== '')
40
+ css += content.all.replaceAll('[breakpoint]', `max\\:${name}`);
41
+ css += `\n}\n`;
42
+ }
43
+ }
44
+ else {
45
+ css += `${content.base.replaceAll('[breakpoint]', '.')}\n`;
46
+ }
47
+ }
48
+ const baseName = path.basename(absolutePath, '.css');
49
+ const svelteFilePath = path.join(path.dirname(absolutePath), `${baseName}.svelte`);
50
+ if (fs.existsSync(svelteFilePath)) {
51
+ let svelteContent = fs.readFileSync(svelteFilePath, 'utf8');
52
+ svelteContent = svelteContent.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '');
53
+ svelteContent += `<style>\n${css}</style>`;
54
+ fs.writeFileSync(svelteFilePath, svelteContent, 'utf8');
55
+ }
56
+ }
57
+ });
58
+ }
59
+ loadSvelteFiles(path.resolve(__dirname, '../../../components'));
60
+ }
@@ -0,0 +1,5 @@
1
+ export declare function devicesFormatter({ devices }: {
2
+ devices: {
3
+ [key: string]: number | string;
4
+ };
5
+ }): Promise<string>;
@@ -0,0 +1,66 @@
1
+ import { parserValues } from '../../helpers/parser.js';
2
+ export async function devicesFormatter({ devices }) {
3
+ let css = ``;
4
+ const sortedDevices = Object.entries(devices).sort(([, a], [, b]) => {
5
+ const valueA = typeof a === 'string' ? parseInt(a) : a;
6
+ const valueB = typeof b === 'string' ? parseInt(b) : b;
7
+ return valueB - valueA;
8
+ });
9
+ sortedDevices.forEach(([deviceName, breakpoint], index) => {
10
+ const value = parserValues(breakpoint);
11
+ if (index === 0) {
12
+ // the largest device
13
+ css += `@media (max-width: ${value}) {\n`;
14
+ css += ` .kit-device--d-${deviceName} {\n`;
15
+ css += ` display: none !important;\n`;
16
+ css += ` }\n`;
17
+ css += `}\n\n`;
18
+ css += `@media (min-width: ${value}) {\n`;
19
+ css += ` .kit-device--h-${deviceName} {\n`;
20
+ css += ` display: none !important;\n`;
21
+ css += ` }\n`;
22
+ css += `}\n\n`;
23
+ }
24
+ else if (index === sortedDevices.length - 1) {
25
+ const prevDevice = sortedDevices[index - 1];
26
+ const prevValue = parserValues(prevDevice[1]);
27
+ // the smallest device
28
+ css += `@media (min-width: ${prevValue}) {\n`;
29
+ css += ` .kit-device--d-${deviceName} {\n`;
30
+ css += ` display: none !important;\n`;
31
+ css += ` }\n`;
32
+ css += `}\n\n`;
33
+ css += `@media (max-width: ${prevValue}) {\n`;
34
+ css += ` .kit-device--h-${deviceName} {\n`;
35
+ css += ` display: none !important;\n`;
36
+ css += ` }\n`;
37
+ css += `}\n\n`;
38
+ css += `@media (min-width: ${value}) {\n`;
39
+ css += ` .kit-device--od-${deviceName} {\n`;
40
+ css += ` display: none !important;\n`;
41
+ css += ` }\n`;
42
+ css += `}\n\n`;
43
+ css += `@media (max-width: ${value}) {\n`;
44
+ css += ` .kit-device--oh-${deviceName} {\n`;
45
+ css += ` display: none !important;\n`;
46
+ css += ` }\n`;
47
+ css += `}\n\n`;
48
+ }
49
+ else {
50
+ //intermediate devices
51
+ const nextDevice = sortedDevices[index - 1];
52
+ const nextValue = parserValues(nextDevice[1]);
53
+ css += `@media (max-width: ${value}) {\n`;
54
+ css += ` .kit-device--d-${deviceName} {\n`;
55
+ css += ` display: none !important;\n`;
56
+ css += ` }\n`;
57
+ css += `}\n\n`;
58
+ css += `@media (min-width: ${nextValue}) {\n`;
59
+ css += ` .kit-device--h-${deviceName} {\n`;
60
+ css += ` display: none !important;\n`;
61
+ css += ` }\n`;
62
+ css += `}\n\n`;
63
+ }
64
+ });
65
+ return css.trim();
66
+ }
@@ -0,0 +1,7 @@
1
+ import type { DevConfiguration } from '../../types/index.js';
2
+ export declare function liliRabbit(config: DevConfiguration): Promise<{
3
+ themes: string;
4
+ typography: string;
5
+ styles: string;
6
+ devices: string;
7
+ }>;
@@ -0,0 +1,35 @@
1
+ import { preset } from '../../config/presets.js';
2
+ import { deepMerge } from '../../helpers/deep-merge.js';
3
+ import { componentFormatter } from './component.js';
4
+ import { devicesFormatter } from './device.js';
5
+ import { stylesFormatter } from './style.js';
6
+ import { themesFormatter } from './theme.js';
7
+ import { typographyFormatter } from './typography.js';
8
+ export async function liliRabbit(config) {
9
+ // states
10
+ const defaultTheme = config?.theme?.defaultTheme || preset.theme.defaultTheme;
11
+ const defaultTypography = config?.typography?.defaultTypography || preset.typography.defaultTypography;
12
+ // formatter
13
+ const themes = await themesFormatter({
14
+ themes: deepMerge(preset.theme.themes, config?.theme?.themes || {}),
15
+ defaultTheme
16
+ });
17
+ const typography = await typographyFormatter({
18
+ typography: deepMerge(preset.typography.fonts, config?.typography?.fonts || {}),
19
+ defaultTypography
20
+ });
21
+ const styles = await stylesFormatter({ styles: deepMerge(preset.styles, config?.styles || {}) });
22
+ const devices = await devicesFormatter({
23
+ devices: deepMerge(preset.breakpoints.devices, config?.breakpoints?.devices || {})
24
+ });
25
+ // components
26
+ await componentFormatter({
27
+ breakpoints: deepMerge(preset.breakpoints.thresholds, config?.breakpoints?.thresholds || {})
28
+ });
29
+ return {
30
+ themes: themes,
31
+ typography: typography,
32
+ styles: styles,
33
+ devices: devices
34
+ };
35
+ }
@@ -0,0 +1,4 @@
1
+ import type { FragStyles } from '../../types/configuration.js';
2
+ export declare function stylesFormatter({ styles }: {
3
+ styles: FragStyles;
4
+ }): Promise<string>;