lapikit 0.0.0-insiders.df219d7 → 0.0.0-insiders.e221561

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 (194) hide show
  1. package/README.md +117 -1
  2. package/bin/configuration.js +303 -0
  3. package/bin/helper.js +0 -38
  4. package/bin/index.js +17 -49
  5. package/bin/presets.js +26 -0
  6. package/bin/prompts.js +67 -0
  7. package/dist/actions/accordion.svelte.d.ts +9 -0
  8. package/dist/actions/index.d.ts +2 -1
  9. package/dist/actions/index.js +2 -1
  10. package/dist/actions/use-theme.d.ts +1 -0
  11. package/dist/actions/use-theme.js +18 -0
  12. package/dist/components/accordion/accordion.css +0 -77
  13. package/dist/components/accordion/accordion.svelte +5 -3
  14. package/dist/components/accordion/modules/accordion-item.css +68 -0
  15. package/dist/components/accordion/modules/accordion-item.svelte +4 -4
  16. package/dist/components/accordion/types.d.ts +1 -1
  17. package/dist/components/alert/alert.css +11 -18
  18. package/dist/components/alert/alert.svelte +4 -4
  19. package/dist/components/alert/types.d.ts +1 -1
  20. package/dist/components/app/app.css +12 -2
  21. package/dist/components/app/app.svelte +68 -32
  22. package/dist/components/app/app.svelte.d.ts +2 -5
  23. package/dist/components/app/types.d.ts +7 -1
  24. package/dist/components/appbar/appbar.css +8 -18
  25. package/dist/components/appbar/appbar.svelte +4 -4
  26. package/dist/components/appbar/types.d.ts +1 -1
  27. package/dist/components/aspect-ratio/aspect-ratio.svelte +0 -22
  28. package/dist/components/aspect-ratio/types.d.ts +1 -1
  29. package/dist/components/avatar/avatar.css +7 -14
  30. package/dist/components/avatar/avatar.svelte +4 -4
  31. package/dist/components/avatar/types.d.ts +1 -1
  32. package/dist/components/button/button.css +29 -36
  33. package/dist/components/button/button.svelte +5 -5
  34. package/dist/components/button/types.d.ts +1 -1
  35. package/dist/components/card/card.css +10 -20
  36. package/dist/components/card/card.svelte +9 -5
  37. package/dist/components/card/types.d.ts +3 -1
  38. package/dist/components/chip/chip.css +30 -37
  39. package/dist/components/chip/chip.svelte +10 -8
  40. package/dist/components/chip/types.d.ts +2 -1
  41. package/dist/components/dialog/dialog.css +15 -20
  42. package/dist/components/dialog/dialog.svelte +5 -5
  43. package/dist/components/dialog/types.d.ts +1 -1
  44. package/dist/components/dropdown/dropdown.css +3 -12
  45. package/dist/components/dropdown/dropdown.svelte +6 -7
  46. package/dist/components/dropdown/types.d.ts +1 -1
  47. package/dist/components/icon/icon.css +11 -12
  48. package/dist/components/icon/icon.svelte +2 -2
  49. package/dist/components/icon/types.d.ts +1 -1
  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 +22 -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 +19 -23
  62. package/dist/components/separator/separator.svelte +6 -6
  63. package/dist/components/separator/types.d.ts +6 -2
  64. package/dist/components/spacer/types.d.ts +1 -1
  65. package/dist/components/textfield/textfield.css +16 -23
  66. package/dist/components/textfield/textfield.svelte +4 -4
  67. package/dist/components/textfield/textfield.svelte.d.ts +1 -1
  68. package/dist/components/textfield/types.d.ts +1 -1
  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/entry-bundler.d.ts +12 -0
  76. package/dist/entry-bundler.js +106 -0
  77. package/dist/index.d.ts +3 -1
  78. package/dist/index.js +23 -3
  79. package/dist/internal/config/presets.d.ts +149 -0
  80. package/dist/internal/config/presets.js +169 -0
  81. package/dist/internal/config/variables.d.ts +3 -0
  82. package/dist/internal/config/variables.js +3 -0
  83. package/dist/internal/{assets.svelte.js → core/actions/assets.svelte.js} +4 -4
  84. package/dist/internal/core/actions/dropdown.svelte.d.ts +7 -0
  85. package/dist/internal/core/actions/popover.svelte.d.ts +7 -0
  86. package/dist/internal/core/actions/tooltip.svelte.d.ts +7 -0
  87. package/dist/internal/{ripple.js → core/animations/ripple.js} +3 -3
  88. package/dist/internal/core/css.d.ts +1 -0
  89. package/dist/internal/core/css.js +16 -0
  90. package/dist/internal/core/formatter/component.d.ts +5 -0
  91. package/dist/internal/core/formatter/component.js +60 -0
  92. package/dist/internal/core/formatter/device.d.ts +5 -0
  93. package/dist/internal/core/formatter/device.js +66 -0
  94. package/dist/internal/core/formatter/index.d.ts +7 -0
  95. package/dist/internal/core/formatter/index.js +35 -0
  96. package/dist/internal/core/formatter/style.d.ts +4 -0
  97. package/dist/internal/core/formatter/style.js +15 -0
  98. package/dist/internal/core/formatter/theme.d.ts +5 -0
  99. package/dist/internal/core/formatter/theme.js +44 -0
  100. package/dist/internal/core/formatter/typography.d.ts +5 -0
  101. package/dist/internal/core/formatter/typography.js +12 -0
  102. package/dist/internal/core/standard-colors.d.ts +75 -0
  103. package/dist/internal/core/standard-colors.js +75 -0
  104. package/dist/internal/helpers/colors.d.ts +1 -0
  105. package/dist/internal/{colors.js → helpers/colors.js} +2 -2
  106. package/dist/internal/helpers/convert.d.ts +1 -0
  107. package/dist/internal/helpers/convert.js +17 -0
  108. package/dist/internal/helpers/deep-merge.d.ts +44 -0
  109. package/dist/internal/helpers/deep-merge.js +80 -0
  110. package/dist/internal/helpers/parser.d.ts +10 -0
  111. package/dist/internal/helpers/parser.js +93 -0
  112. package/dist/internal/{scroll.js → helpers/scroll.js} +1 -2
  113. package/dist/internal/plugins/vite.d.ts +8 -0
  114. package/dist/internal/plugins/vite.js +33 -0
  115. package/dist/internal/types/components.d.ts +14 -0
  116. package/dist/internal/types/configuration.d.ts +63 -0
  117. package/dist/internal/types/configuration.js +1 -0
  118. package/dist/internal/types/index.d.ts +2 -0
  119. package/dist/internal/types/index.js +2 -0
  120. package/dist/labs/components/button/button.svelte +24 -0
  121. package/dist/labs/components/button/button.svelte.d.ts +5 -0
  122. package/dist/labs/components/index.d.ts +1 -0
  123. package/dist/labs/components/index.js +2 -0
  124. package/dist/stores/breakpoints.d.ts +6 -0
  125. package/dist/stores/breakpoints.js +14 -0
  126. package/dist/stores/components.d.ts +8 -0
  127. package/dist/stores/components.js +26 -0
  128. package/dist/stores/devices.d.ts +6 -0
  129. package/dist/stores/devices.js +9 -0
  130. package/dist/stores/index.d.ts +5 -10
  131. package/dist/stores/index.js +5 -47
  132. package/dist/stores/themes.d.ts +2 -0
  133. package/dist/stores/themes.js +4 -0
  134. package/dist/stores/viewport.d.ts +7 -0
  135. package/dist/stores/viewport.js +7 -0
  136. package/dist/styles/animation.css +33 -0
  137. package/dist/styles/keyframes.css +30 -0
  138. package/dist/{style/normalize.css → styles/reset.css} +15 -7
  139. package/dist/styles.css.d.ts +4 -0
  140. package/dist/themes.css +0 -0
  141. package/dist/themes.css.d.ts +4 -0
  142. package/package.json +135 -95
  143. package/bin/lapikit.js +0 -86
  144. package/bin/modules/adapter.js +0 -52
  145. package/bin/modules/plugin.js +0 -223
  146. package/bin/modules/preset.js +0 -11
  147. package/dist/app.d.ts +0 -13
  148. package/dist/app.html +0 -12
  149. package/dist/internal/colors.d.ts +0 -1
  150. package/dist/internal/index.d.ts +0 -4
  151. package/dist/internal/index.js +0 -4
  152. package/dist/internal/types.d.ts +0 -57
  153. package/dist/internal/unit.d.ts +0 -1
  154. package/dist/internal/unit.js +0 -11
  155. package/dist/plugin/modules/config.d.ts +0 -2
  156. package/dist/plugin/modules/config.js +0 -54
  157. package/dist/plugin/modules/importer.d.ts +0 -1
  158. package/dist/plugin/modules/importer.js +0 -15
  159. package/dist/plugin/vitejs.d.ts +0 -6
  160. package/dist/plugin/vitejs.js +0 -26
  161. package/dist/preset.d.ts +0 -2
  162. package/dist/preset.js +0 -92
  163. package/dist/style/animation.css +0 -62
  164. package/dist/style/css.d.ts +0 -2
  165. package/dist/style/css.js +0 -34
  166. package/dist/style/parser/color.d.ts +0 -5
  167. package/dist/style/parser/color.js +0 -88
  168. package/dist/style/parser/component.d.ts +0 -2
  169. package/dist/style/parser/component.js +0 -115
  170. package/dist/style/parser/device.d.ts +0 -2
  171. package/dist/style/parser/device.js +0 -40
  172. package/dist/style/parser/index.d.ts +0 -4
  173. package/dist/style/parser/index.js +0 -4
  174. package/dist/style/parser/variable.d.ts +0 -2
  175. package/dist/style/parser/variable.js +0 -25
  176. package/dist/style/variable.css +0 -12
  177. /package/dist/{components/accordion → actions}/accordion.svelte.js +0 -0
  178. /package/dist/internal/{assets.svelte.d.ts → core/actions/assets.svelte.d.ts} +0 -0
  179. /package/dist/{components/dropdown → internal/core/actions}/dropdown.svelte.js +0 -0
  180. /package/dist/{components/popover → internal/core/actions}/popover.svelte.js +0 -0
  181. /package/dist/{components/tooltip → internal/core/actions}/tooltip.svelte.js +0 -0
  182. /package/dist/internal/{ripple.d.ts → core/animations/ripple.d.ts} +0 -0
  183. /package/dist/internal/{ansi.d.ts → core/bin/ansi.d.ts} +0 -0
  184. /package/dist/internal/{ansi.js → core/bin/ansi.js} +0 -0
  185. /package/dist/internal/{terminal.d.ts → core/bin/terminal.d.ts} +0 -0
  186. /package/dist/internal/{terminal.js → core/bin/terminal.js} +0 -0
  187. /package/dist/internal/{minify.d.ts → core/minify.d.ts} +0 -0
  188. /package/dist/internal/{minify.js → core/minify.js} +0 -0
  189. /package/dist/{utils/x11.d.ts → internal/core/x11-colors.d.ts} +0 -0
  190. /package/dist/{utils/x11.js → internal/core/x11-colors.js} +0 -0
  191. /package/dist/internal/{clickOutside.d.ts → helpers/outside.d.ts} +0 -0
  192. /package/dist/internal/{clickOutside.js → helpers/outside.js} +0 -0
  193. /package/dist/internal/{scroll.d.ts → helpers/scroll.d.ts} +0 -0
  194. /package/dist/internal/{types.js → types/components.js} +0 -0
@@ -1,35 +1,14 @@
1
1
  .kit-separator {
2
- --separator-opacity: var(--opacity, 0.12);
3
- --separator-color: var(--base, var(--kit-scrim));
4
-
5
2
  display: block;
6
3
  flex: 1 1 100%;
7
4
  height: 0px;
8
5
  max-height: 0px;
9
- opacity: var(--separator-opacity);
6
+ opacity: var(--separator-opacity, 0.12);
10
7
  transition: inherit;
11
- border-color: var(--separator-color);
12
- /* transition: border-color 0.5s; */
8
+ border-color: var(--separator-color, var(--kit-label-primary));
13
9
  border-style: solid;
14
10
  }
15
11
 
16
- .kit-separator:not(.kit-separator--orientation-vertical) {
17
- border-width: var(--border-top-width, thin) 0 0 0;
18
- }
19
-
20
- .kit-separator--orientation-vertical {
21
- align-self: stretch;
22
- border-width: 0 thin 0 0;
23
- display: inline-flex;
24
- height: auto;
25
- margin-left: 0px;
26
- max-height: 100%;
27
- max-width: 0px;
28
- vertical-align: text-bottom;
29
- width: 0px;
30
- border-width: 0 var(--border-right-width, thin) 0 0;
31
- }
32
-
33
12
  .kit-separator--inset:not(.kit-separator--orientation-vertical) {
34
13
  max-width: calc(100% - 4.5rem);
35
14
  margin-inline-start: 4.5rem;
@@ -44,3 +23,20 @@
44
23
  .kit-separator:not(.kit-separator--orientation-vertical) {
45
24
  width: 100%;
46
25
  }
26
+
27
+ .kit-separator[breakpoint]kit-separator--orientation-horizontal {
28
+ border-width: var(--separator-top-width, thin) 0 0 0;
29
+ }
30
+
31
+ .kit-separator[breakpoint]kit-separator--orientation-vertical {
32
+ align-self: stretch;
33
+ border-width: 0 thin 0 0;
34
+ display: inline-flex;
35
+ height: auto;
36
+ margin-left: 0px;
37
+ max-height: 100%;
38
+ max-width: 0px;
39
+ vertical-align: text-bottom;
40
+ width: 0px;
41
+ border-width: 0 var(--separator-right-width, thin) 0 0;
42
+ }
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import { getAssets } from '../../internal/index.js';
2
+ import { getAssets } from '../../internal/core/actions/assets.svelte.js';
3
3
  import type { SeparatorProps } from './types.js';
4
4
 
5
5
  let {
@@ -28,10 +28,10 @@
28
28
  orientation && assets.className('separator', 'orientation', orientation),
29
29
  rest.class
30
30
  ]}
31
- aria-orientation={orientation}
31
+ aria-orientation={typeof orientation === 'string' ? orientation : undefined}
32
32
  role="separator"
33
- style:--base={assets.color(color)}
34
- style:--opacity={opacity}
35
- style:--border-top-width={orientation === 'horizontal' ? assets.unit(thickness) : undefined}
36
- style:--border-right-width={orientation === 'vertical' ? assets.unit(thickness) : undefined}
33
+ style:--separator-color={assets.color(color)}
34
+ style:--separator-opacity={opacity}
35
+ style:--separator-top-width={orientation === 'horizontal' ? assets.unit(thickness) : undefined}
36
+ style:--separator-right-width={orientation === 'vertical' ? assets.unit(thickness) : undefined}
37
37
  />
@@ -1,4 +1,5 @@
1
- import type { Base } from '../../internal/types.js';
1
+ import type { Base } from '../../internal/types/index.js';
2
+ type Orientation = 'horizontal' | 'vertical';
2
3
  export interface SeparatorProps extends Base {
3
4
  is?: 'div' | 'hr';
4
5
  light?: boolean;
@@ -7,5 +8,8 @@ export interface SeparatorProps extends Base {
7
8
  thickness?: string;
8
9
  opacity?: string | number;
9
10
  color?: string;
10
- orientation?: 'horizontal' | 'vertical';
11
+ orientation?: Orientation | {
12
+ [key: string]: Orientation;
13
+ };
11
14
  }
15
+ export {};
@@ -1,4 +1,4 @@
1
- import type { Base } from '../../internal/types.js';
1
+ import type { Base } from '../../internal/types/index.js';
2
2
  export interface SpacerProps extends Base {
3
3
  is?: 'div';
4
4
  }
@@ -1,10 +1,3 @@
1
- /* root */
2
- .kit-textfield {
3
- --textfield-color: var(--on, var(--kit-on-container));
4
- --textfield-background: var(--base, var(--kit-container));
5
- --textfield-radius: var(--shape, var(--kit-radius-md));
6
- }
7
-
8
1
  .kit-textfield {
9
2
  flex: 1 1 auto;
10
3
  font-size: 1rem;
@@ -18,16 +11,16 @@
18
11
 
19
12
  /* variant */
20
13
  .kit-textfield[breakpoint]kit-textfield--variant-filled .kit-field {
21
- --textfield-border-color: var(--textfield-background);
22
- background-color: var(--textfield-background);
23
- border-radius: var(--textfield-radius);
24
- color: var(--textfield-color);
14
+ --textfield-border-color: var(--textfield-background, var(--kit-background-grouped-primary));
15
+ background-color: var(--textfield-background, var(--kit-background-grouped-primary));
16
+ border-radius: var(--textfield-shape, var(--system-shape-md));
17
+ color: var(--textfield-color, var(--kit-label-primary));
25
18
  }
26
19
 
27
20
  .kit-textfield[breakpoint]kit-textfield--variant-outline .kit-field {
28
21
  --textfield-border-color: var(--textfield-color);
29
22
  background-color: var(--textfield-background);
30
- border-radius: var(--textfield-radius);
23
+ border-radius: var(--textfield-shape);
31
24
  color: var(--textfield-color);
32
25
  }
33
26
 
@@ -37,7 +30,7 @@
37
30
  border-top: 1px solid var(--textfield-border-color);
38
31
  border-right: 1px solid var(--textfield-border-color);
39
32
  border-left: 1px solid var(--textfield-border-color);
40
- border-radius: var(--textfield-radius);
33
+ border-radius: var(--textfield-shape);
41
34
  }
42
35
 
43
36
  .kit-textfield[breakpoint]kit-textfield--variant-text .kit-field {
@@ -75,7 +68,7 @@
75
68
  }
76
69
 
77
70
  .kit-textfield--error .kit-textfield-outline {
78
- border: 1px solid var(--kit-error);
71
+ border: 1px solid var(--kit-accent-destructive);
79
72
  }
80
73
 
81
74
  .kit-textfield-outline {
@@ -155,15 +148,15 @@
155
148
  display: grid;
156
149
  grid-template-areas: 'prepend-inner field clear append-inner';
157
150
  grid-template-columns: max-content minmax(0, 1fr) max-content max-content;
158
- font-size: calc(var(--kit-spacing) * var(--textfield-multiplier-font-size));
151
+ font-size: calc(var(--system-spacing) * var(--textfield-multiplier-font-size));
159
152
  max-width: 100%;
160
153
  contain: layout;
161
154
  flex: 1 0;
162
155
  grid-area: control;
163
156
  position: relative;
164
- padding: calc(var(--kit-spacing) * var(--textfield-multiplier-x))
165
- calc(var(--kit-spacing) * var(--textfield-multiplier-y));
166
- gap: calc(var(--kit-spacing) * var(--textfield-multiplier-gap));
157
+ padding: calc(var(--system-spacing) * var(--textfield-multiplier-x))
158
+ calc(var(--system-spacing) * var(--textfield-multiplier-y));
159
+ gap: calc(var(--system-spacing) * var(--textfield-multiplier-gap));
167
160
  }
168
161
 
169
162
  .kit-textfield-control .kit-field .kit-field--field {
@@ -222,13 +215,13 @@
222
215
  min-width: 1px;
223
216
  position: relative;
224
217
  display: grid;
225
- gap: calc(var(--kit-spacing) * var(--textfield-multiplier-gap));
218
+ gap: calc(var(--system-spacing) * var(--textfield-multiplier-gap));
226
219
  grid-template-areas: 'message-prepend message message-append ';
227
220
  grid-template-columns: max-content minmax(0, 1fr) max-content;
228
221
  }
229
222
 
230
223
  .kit-message.kit-message--message-error {
231
- color: var(--kit-error);
224
+ color: var(--kit-accent-destructive);
232
225
  }
233
226
 
234
227
  .kit-message .kit-message--message {
@@ -291,15 +284,15 @@
291
284
  /*density */
292
285
  .kit-textfield[breakpoint]kit-textfield--density-default {
293
286
  --textfield-spacing-x: 0;
294
- --textfield-spacing-y: calc(var(--kit-spacing) * var(--textfield-multiplier-y));
287
+ --textfield-spacing-y: calc(var(--system-spacing) * var(--textfield-multiplier-y));
295
288
  }
296
289
 
297
290
  .kit-textfield[breakpoint]kit-textfield--density-compact {
298
291
  --textfield-spacing-x: calc(0 - 0.5rem);
299
- --textfield-spacing-y: calc(var(--kit-spacing) * var(--textfield-multiplier-y) - 0.5rem);
292
+ --textfield-spacing-y: calc(var(--system-spacing) * var(--textfield-multiplier-y) - 0.5rem);
300
293
  }
301
294
 
302
295
  .kit-textfield[breakpoint]kit-textfield--density-comfortable {
303
296
  --textfield-spacing-x: calc(0 + 0.5rem);
304
- --textfield-spacing-y: calc(var(--kit-spacing) * var(--textfield-multiplier-y) + 0.5rem);
297
+ --textfield-spacing-y: calc(var(--system-spacing) * var(--textfield-multiplier-y) + 0.5rem);
305
298
  }
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import { getAssets } from '../../internal/index.js';
2
+ import { getAssets } from '../../internal/core/actions/assets.svelte.js';
3
3
  import type { TextfieldProps } from './types.js';
4
4
 
5
5
  //external
@@ -106,9 +106,9 @@
106
106
  type === 'number' && hideSpinButtons && 'kit-textfield--hide-spin-buttons',
107
107
  rest.class
108
108
  ]}
109
- style:--base={assets.color(background)}
110
- style:--on={assets.color(color)}
111
- style:--shape={assets.shape(rounded)}
109
+ style:--textfield-background={assets.color(background)}
110
+ style:--textfield-color={assets.color(color)}
111
+ style:--textfield-shape={assets.shape(rounded)}
112
112
  >
113
113
  {#if prepend}
114
114
  <div class="kit-textfield-prepend">
@@ -1,4 +1,4 @@
1
1
  import type { TextfieldProps } from './types.js';
2
- declare const Textfield: import("svelte").Component<TextfieldProps, {}, "value" | "ref">;
2
+ declare const Textfield: import("svelte").Component<TextfieldProps, {}, "ref" | "value">;
3
3
  type Textfield = ReturnType<typeof Textfield>;
4
4
  export default Textfield;
@@ -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 TextfieldProps extends Component {
4
4
  ref?: HTMLElement | null;
@@ -1,75 +1,52 @@
1
1
  .kit-toolbar {
2
- --toolbar-color: var(--on, var(--kit-on-surface));
3
- --toolbar-background: var(--base, var(--kit-surface));
4
- --toolbar-radius: var(--shape, var(--kit-radius-md));
5
-
6
2
  display: flex;
7
3
  align-items: center;
8
- /* min-width: max-content; */
9
4
  border-style: solid;
10
- /* transition:
11
- color 0.5s,
12
- border-color 0.5s,
13
- background-color 0.5s; */
14
-
15
5
  border-width: 1px;
16
6
  border-style: solid;
17
- border-radius: var(--toolbar-radius);
18
-
19
- /* theme */
20
- color: var(--toolbar-color);
21
- background-color: var(--toolbar-background);
22
- border-color: var(--toolbar-background);
7
+ border-radius: var(--toolbar-shape, var(--system-shape-md));
8
+ color: var(--toolbar-color, var(--kit-label-primary));
9
+ background-color: var(--toolbar-background, var(--kit-background-grouped-tertiary));
10
+ border-color: var(--toolbar-background, var(--kit-background-grouped-tertiary));
23
11
  }
24
12
 
25
13
  /* density */
26
- .kit-toolbar[breakpoint]kit-toolbar--density-default {
27
- border-radius: calc(var(--kit-spacing) * 2.25);
28
- }
29
14
  .kit-toolbar[breakpoint]kit-toolbar--density-default:not([class*='toolbar--orientation-vertical']) {
30
15
  height: 3rem;
31
- padding-inline: calc(var(--kit-spacing) * 1.5);
16
+ padding-inline: calc(var(--system-spacing) * 1.5);
32
17
  }
33
18
 
34
19
  .kit-toolbar[breakpoint]kit-toolbar--density-default[class*='toolbar--orientation-vertical'] {
35
20
  width: 3rem;
36
- padding: calc(var(--kit-spacing) * 1.5) 0;
37
- }
38
-
39
- .kit-toolbar[breakpoint]kit-toolbar--density-compact {
40
- border-radius: calc(var(--kit-spacing) * 1.75);
21
+ padding: calc(var(--system-spacing) * 1.5) 0;
41
22
  }
42
23
 
43
24
  .kit-toolbar[breakpoint]kit-toolbar--density-compact:not([class*='toolbar--orientation-vertical']) {
44
25
  height: 2.625rem;
45
- padding-inline: calc(var(--kit-spacing) * 0.75);
26
+ padding-inline: calc(var(--system-spacing) * 0.75);
46
27
  }
47
28
 
48
29
  .kit-toolbar[breakpoint]kit-toolbar--density-compact[class*='toolbar--orientation-vertical'] {
49
30
  width: 2.625rem;
50
- padding: calc(var(--kit-spacing) * 0.75) 0;
51
- }
52
-
53
- .kit-toolbar[breakpoint]kit-toolbar--density-comfortable {
54
- border-radius: calc(var(--kit-spacing) * 3.5);
31
+ padding: calc(var(--system-spacing) * 0.75) 0;
55
32
  }
56
33
 
57
34
  .kit-toolbar[breakpoint]kit-toolbar--density-comfortable:not(
58
35
  [class*='toolbar--orientation-vertical']
59
36
  ) {
60
37
  height: 3.5rem;
61
- padding-inline: calc(var(--kit-spacing) * 2.25);
38
+ padding-inline: calc(var(--system-spacing) * 2.25);
62
39
  }
63
40
 
64
41
  .kit-toolbar[breakpoint]kit-toolbar--density-comfortable[class*='toolbar--orientation-vertical'] {
65
42
  width: 3.5rem;
66
- padding: calc(var(--kit-spacing) * 2.25) 0;
43
+ padding: calc(var(--system-spacing) * 2.25) 0;
67
44
  }
68
45
 
69
46
  .kit-toolbar[breakpoint]kit-toolbar--variant-text,
70
47
  .kit-toolbar[breakpoint]kit-toolbar--variant-outline,
71
48
  .kit-toolbar[breakpoint]kit-toolbar--variant-dash {
72
- --toolbar-color: var(--base, var(--kit-surface));
49
+ --toolbar-color: var(--base, var(--kit-background-grouped-primary));
73
50
  background-color: transparent;
74
51
  }
75
52
 
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import { getAssets } from '../../internal/index.js';
2
+ import { getAssets } from '../../internal/core/actions/assets.svelte.js';
3
3
  import type { ToolbarProps } from './types.js';
4
4
 
5
5
  let {
@@ -37,9 +37,9 @@
37
37
  location && assets.className('toolbar', 'location', location),
38
38
  rest.class
39
39
  ]}
40
- style:--base={assets.color(background)}
41
- style:--on={assets.color(color)}
42
- style:--shape={assets.shape(rounded)}
40
+ style:--toolbar-background={assets.color(background)}
41
+ style:--toolbar-color={assets.color(color)}
42
+ style:--toolbar-shape={assets.shape(rounded)}
43
43
  >
44
44
  <div class={['kit-toolbar--wrapper', classContent]}>
45
45
  {@render children?.()}
@@ -1,4 +1,4 @@
1
- import type { Component } from '../../internal/types.js';
1
+ import type { Component } from '../../internal/types/index.js';
2
2
  type Variant = 'outline' | 'text' | 'dash';
3
3
  type Density = 'compact' | 'comfortable' | 'default';
4
4
  type Orientation = 'horizontal' | 'vertical';
@@ -6,24 +6,16 @@
6
6
  }
7
7
 
8
8
  .kit-tooltip-content {
9
- --tooltip-color: var(--on, var(--kit-on-surface));
10
- --tooltip-background: var(--base, var(--kit-surface));
11
- --tooltip-radius: var(--shape, var(--kit-radius-md));
12
-
13
- background-color: var(--tooltip-background);
14
- color: var(--tooltip-color);
15
- border-radius: var(--tooltip-radius);
16
- border: 1px solid var(--tooltip-background);
9
+ background-color: var(--tooltip-background, var(--kit-background-grouped-primary));
10
+ color: var(--tooltip-color, var(--kit-label-primary));
11
+ border-radius: var(--tooltip-shape, var(--system-shape-md));
12
+ border: 1px solid var(--tooltip-background, var(--kit-background-grouped-primary));
17
13
  font-size: 0.875rem;
18
14
  display: inline-block;
19
15
  width: auto;
20
16
  pointer-events: none;
21
17
  overflow-wrap: break-word;
22
- /* transition:
23
- color 0.5s,
24
- border-color 0.5s,
25
- background-color 0.5s; */
26
- box-shadow: 0px 16px 29px -10px color-mix(in oklab, var(--kit-scrim) 60%, transparent);
18
+ box-shadow: 0px 16px 29px -10px color-mix(in oklab, var(--kit-state-shadow) 60%, transparent);
27
19
  }
28
20
 
29
21
  /* density */
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
- import { getAssets } from '../../internal/assets.svelte.js';
3
- import { getPositionsTooltip } from './tooltip.svelte.js';
2
+ import { getAssets } from '../../internal/core/actions/assets.svelte.js';
3
+ import { getPositionsTooltip } from '../../internal/core/actions/tooltip.svelte.js';
4
4
  import type { PositionElement, TooltipProps } from './types.js';
5
5
 
6
6
  let {
@@ -99,9 +99,9 @@
99
99
  density && assets.className('tooltip-content', 'density', density),
100
100
  rest.class
101
101
  ]}
102
- style:--base={assets.color(background)}
103
- style:--on={assets.color(color)}
104
- style:--shape={assets.shape(rounded)}
102
+ style:--tooltip-background={assets.color(background)}
103
+ style:--tooltip-color={assets.color(color)}
104
+ style:--tooltip-shape={assets.shape(rounded)}
105
105
  >
106
106
  {#if tooltip}
107
107
  {@render tooltip?.()}
@@ -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;
@@ -0,0 +1,12 @@
1
+ type LapikitPreprocessOptions = {
2
+ plugins?: string[];
3
+ };
4
+ declare function lapikitPreprocess(options?: LapikitPreprocessOptions): {
5
+ markup({ content }: {
6
+ content: string;
7
+ filename?: string;
8
+ }): {
9
+ code: string;
10
+ } | undefined;
11
+ };
12
+ export { lapikitPreprocess };
@@ -0,0 +1,106 @@
1
+ const components = ['btn'];
2
+ function componentName(shortName) {
3
+ return 'Kit' + shortName.charAt(0).toUpperCase() + shortName.slice(1);
4
+ }
5
+ const lapikitPlugins = {
6
+ repl: {
7
+ components: ['code'],
8
+ ref: '@lapikit/repl'
9
+ }
10
+ };
11
+ function lapikitPreprocess(options) {
12
+ return {
13
+ markup({ content }) {
14
+ const allComponents = [...components];
15
+ const componentToRef = new Map();
16
+ components.forEach((comp) => {
17
+ componentToRef.set(comp, 'lapikit/labs/components');
18
+ });
19
+ // plugins
20
+ if (options?.plugins) {
21
+ options.plugins.forEach((pluginKey) => {
22
+ const plugin = lapikitPlugins[pluginKey];
23
+ if (plugin) {
24
+ plugin.components.forEach((comp) => {
25
+ if (!allComponents.includes(comp)) {
26
+ allComponents.push(comp);
27
+ }
28
+ componentToRef.set(comp, plugin.ref);
29
+ });
30
+ }
31
+ });
32
+ }
33
+ const hasComponent = allComponents.some((comp) => content.includes(`<lpk:${comp}`));
34
+ if (!hasComponent)
35
+ return;
36
+ let processedContent = content;
37
+ const importedComponents = new Map();
38
+ let hasChanges = true;
39
+ while (hasChanges) {
40
+ hasChanges = false;
41
+ for (const shortName of allComponents) {
42
+ const componentNameStr = componentName(shortName);
43
+ const attrPattern = `(?:[^>"']|"[^"]*"|'[^']*')*?`;
44
+ const selfClosingRegex = new RegExp(`<lpk:${shortName}(${attrPattern})\\s*/>`, 'g');
45
+ const pairRegex = new RegExp(`<lpk:${shortName}(${attrPattern})>([\\s\\S]*?)<\\/lpk:${shortName}\\s*>`, 'g');
46
+ let newContent = processedContent.replace(selfClosingRegex, (fullMatch, attrs) => {
47
+ hasChanges = true;
48
+ const ref = componentToRef.get(shortName) || 'lapikit/labs/components';
49
+ importedComponents.set(componentNameStr, ref);
50
+ return `<${componentNameStr}${attrs} />`;
51
+ });
52
+ newContent = newContent.replace(pairRegex, (fullMatch, attrs, children) => {
53
+ hasChanges = true;
54
+ const ref = componentToRef.get(shortName) || 'lapikit/labs/components';
55
+ importedComponents.set(componentNameStr, ref);
56
+ return `<${componentNameStr}${attrs}>${children}</${componentNameStr}>`;
57
+ });
58
+ if (newContent !== processedContent) {
59
+ processedContent = newContent;
60
+ }
61
+ }
62
+ }
63
+ if (processedContent === content)
64
+ return;
65
+ if (importedComponents.size > 0) {
66
+ const importsByRef = new Map();
67
+ importedComponents.forEach((ref, component) => {
68
+ if (!importsByRef.has(ref)) {
69
+ importsByRef.set(ref, []);
70
+ }
71
+ importsByRef.get(ref).push(component);
72
+ });
73
+ const importLines = Array.from(importsByRef.entries())
74
+ .map(([ref, components]) => {
75
+ const imports = components.join(', ');
76
+ return `\n\timport { ${imports} } from '${ref}';`;
77
+ })
78
+ .join('');
79
+ const scriptRegex = /<script(?![^>]*\bmodule\b)([^>]*)>/;
80
+ const scriptMatch = processedContent.match(scriptRegex);
81
+ if (scriptMatch && scriptMatch.index !== undefined) {
82
+ const insertPos = scriptMatch.index + scriptMatch[0].length;
83
+ processedContent =
84
+ processedContent.slice(0, insertPos) + importLines + processedContent.slice(insertPos);
85
+ }
86
+ else {
87
+ const moduleScriptMatch = processedContent.match(/<script[^>]*\bmodule\b[^>]*>/);
88
+ if (moduleScriptMatch && moduleScriptMatch.index !== undefined) {
89
+ const moduleScriptEnd = processedContent.indexOf('</script>', moduleScriptMatch.index) + '</script>'.length;
90
+ processedContent =
91
+ processedContent.slice(0, moduleScriptEnd) +
92
+ `\n\n<script>${importLines}\n</script>` +
93
+ processedContent.slice(moduleScriptEnd);
94
+ }
95
+ else {
96
+ processedContent = `<script>${importLines}\n</script>\n\n` + processedContent;
97
+ }
98
+ }
99
+ }
100
+ return {
101
+ code: processedContent
102
+ };
103
+ }
104
+ };
105
+ }
106
+ export { lapikitPreprocess };
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;