lapikit 0.0.0-insiders.e877f7f → 0.0.0-insiders.eb9b51b

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 (218) 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/accordion.svelte.js +24 -0
  8. package/dist/actions/index.d.ts +2 -0
  9. package/dist/actions/index.js +2 -0
  10. package/dist/actions/use-theme.d.ts +1 -0
  11. package/dist/actions/use-theme.js +18 -0
  12. package/dist/assets/icons/arrow-down.svelte +12 -0
  13. package/dist/assets/icons/arrow-down.svelte.d.ts +18 -0
  14. package/dist/assets/icons/arrow-up.svelte +12 -0
  15. package/dist/assets/icons/arrow-up.svelte.d.ts +18 -0
  16. package/dist/assets/icons/close-fill.svelte +12 -0
  17. package/dist/assets/icons/close-fill.svelte.d.ts +18 -0
  18. package/dist/assets/icons/loading-fill.svelte +2 -0
  19. package/dist/assets/icons/loading-fill.svelte.d.ts +6 -14
  20. package/dist/components/accordion/accordion.css +36 -0
  21. package/dist/components/accordion/accordion.svelte +39 -0
  22. package/dist/components/accordion/accordion.svelte.d.ts +4 -0
  23. package/dist/components/accordion/modules/accordion-item.css +68 -0
  24. package/dist/components/accordion/modules/accordion-item.svelte +94 -0
  25. package/dist/components/accordion/modules/accordion-item.svelte.d.ts +4 -0
  26. package/dist/components/accordion/types.d.ts +33 -0
  27. package/dist/components/alert/alert.css +130 -0
  28. package/dist/components/alert/alert.svelte +89 -0
  29. package/dist/components/alert/alert.svelte.d.ts +4 -0
  30. package/dist/components/alert/types.d.ts +28 -0
  31. package/dist/components/alert/types.js +1 -0
  32. package/dist/components/app/app.css +15 -0
  33. package/dist/components/app/app.svelte +34 -4
  34. package/dist/components/app/app.svelte.d.ts +2 -0
  35. package/dist/components/appbar/appbar.css +38 -0
  36. package/dist/components/appbar/appbar.svelte +40 -0
  37. package/dist/components/appbar/appbar.svelte.d.ts +4 -0
  38. package/dist/components/appbar/types.d.ts +15 -0
  39. package/dist/components/appbar/types.js +1 -0
  40. package/dist/components/aspect-ratio/aspect-ratio.css +19 -0
  41. package/dist/components/aspect-ratio/aspect-ratio.svelte +25 -0
  42. package/dist/components/aspect-ratio/aspect-ratio.svelte.d.ts +4 -0
  43. package/dist/components/aspect-ratio/types.d.ts +5 -0
  44. package/dist/components/aspect-ratio/types.js +1 -0
  45. package/dist/components/avatar/avatar.css +102 -0
  46. package/dist/components/avatar/avatar.svelte +46 -0
  47. package/dist/components/avatar/avatar.svelte.d.ts +4 -0
  48. package/dist/components/avatar/types.d.ts +22 -0
  49. package/dist/components/avatar/types.js +1 -0
  50. package/dist/components/button/button.css +167 -203
  51. package/dist/components/button/button.svelte +43 -35
  52. package/dist/components/button/button.svelte.d.ts +2 -2
  53. package/dist/components/button/types.d.ts +8 -6
  54. package/dist/components/card/card.css +105 -0
  55. package/dist/components/card/card.svelte +63 -0
  56. package/dist/components/card/card.svelte.d.ts +4 -0
  57. package/dist/components/card/types.d.ts +18 -0
  58. package/dist/components/card/types.js +1 -0
  59. package/dist/components/chip/chip.css +224 -0
  60. package/dist/components/chip/chip.svelte +131 -0
  61. package/dist/components/chip/chip.svelte.d.ts +4 -0
  62. package/dist/components/chip/types.d.ts +32 -0
  63. package/dist/components/chip/types.js +1 -0
  64. package/dist/components/dialog/dialog.css +129 -0
  65. package/dist/components/dialog/dialog.svelte +67 -0
  66. package/dist/components/dialog/dialog.svelte.d.ts +4 -0
  67. package/dist/components/dialog/types.d.ts +24 -0
  68. package/dist/components/dialog/types.js +1 -0
  69. package/dist/components/dropdown/dropdown.css +3 -12
  70. package/dist/components/dropdown/dropdown.svelte +6 -7
  71. package/dist/components/dropdown/types.d.ts +1 -1
  72. package/dist/components/icon/icon.css +20 -18
  73. package/dist/components/icon/icon.svelte +2 -2
  74. package/dist/components/icon/types.d.ts +1 -1
  75. package/dist/components/index.d.ts +17 -1
  76. package/dist/components/index.js +17 -1
  77. package/dist/components/list/list.css +149 -0
  78. package/dist/components/list/list.svelte +44 -0
  79. package/dist/components/list/list.svelte.d.ts +4 -0
  80. package/dist/components/list/modules/list-item.css +67 -0
  81. package/dist/components/list/modules/list-item.svelte +76 -0
  82. package/dist/components/list/modules/list-item.svelte.d.ts +4 -0
  83. package/dist/components/list/types.d.ts +33 -0
  84. package/dist/components/list/types.js +1 -0
  85. package/dist/components/modal/modal.css +137 -0
  86. package/dist/components/modal/modal.svelte +112 -0
  87. package/dist/components/modal/modal.svelte.d.ts +4 -0
  88. package/dist/components/modal/types.d.ts +26 -0
  89. package/dist/components/modal/types.js +1 -0
  90. package/dist/components/popover/popover.css +3 -12
  91. package/dist/components/popover/popover.svelte +6 -6
  92. package/dist/components/popover/types.d.ts +1 -1
  93. package/dist/components/separator/separator.css +42 -0
  94. package/dist/components/separator/separator.svelte +37 -0
  95. package/dist/components/separator/separator.svelte.d.ts +4 -0
  96. package/dist/components/separator/types.d.ts +11 -0
  97. package/dist/components/separator/types.js +1 -0
  98. package/dist/components/spacer/spacer.css +3 -0
  99. package/dist/components/spacer/spacer.svelte +7 -0
  100. package/dist/components/spacer/spacer.svelte.d.ts +4 -0
  101. package/dist/components/spacer/types.d.ts +4 -0
  102. package/dist/components/spacer/types.js +1 -0
  103. package/dist/components/textfield/textfield.css +298 -0
  104. package/dist/components/textfield/textfield.svelte +193 -0
  105. package/dist/components/textfield/textfield.svelte.d.ts +4 -0
  106. package/dist/components/textfield/types.d.ts +37 -0
  107. package/dist/components/textfield/types.js +1 -0
  108. package/dist/components/toolbar/toolbar.css +117 -0
  109. package/dist/components/toolbar/toolbar.svelte +47 -0
  110. package/dist/components/toolbar/toolbar.svelte.d.ts +4 -0
  111. package/dist/components/toolbar/types.d.ts +27 -0
  112. package/dist/components/toolbar/types.js +1 -0
  113. package/dist/components/tooltip/tooltip.css +5 -13
  114. package/dist/components/tooltip/tooltip.svelte +5 -5
  115. package/dist/components/tooltip/types.d.ts +1 -1
  116. package/dist/index.d.ts +3 -1
  117. package/dist/index.js +23 -3
  118. package/dist/internal/config/presets.d.ts +149 -0
  119. package/dist/internal/config/presets.js +169 -0
  120. package/dist/internal/config/variables.d.ts +3 -0
  121. package/dist/internal/config/variables.js +3 -0
  122. package/dist/internal/{assets.svelte.d.ts → core/actions/assets.svelte.d.ts} +1 -0
  123. package/dist/internal/{assets.svelte.js → core/actions/assets.svelte.js} +17 -4
  124. package/dist/internal/core/actions/dropdown.svelte.d.ts +7 -0
  125. package/dist/internal/core/actions/popover.svelte.d.ts +7 -0
  126. package/dist/internal/core/actions/tooltip.svelte.d.ts +7 -0
  127. package/dist/internal/core/animations/ripple.d.ts +12 -0
  128. package/dist/internal/core/animations/ripple.js +93 -0
  129. package/dist/internal/core/css.d.ts +1 -0
  130. package/dist/internal/core/css.js +16 -0
  131. package/dist/internal/core/formatter/component.d.ts +5 -0
  132. package/dist/internal/core/formatter/component.js +60 -0
  133. package/dist/internal/core/formatter/device.d.ts +5 -0
  134. package/dist/internal/core/formatter/device.js +66 -0
  135. package/dist/internal/core/formatter/index.d.ts +7 -0
  136. package/dist/internal/core/formatter/index.js +35 -0
  137. package/dist/internal/core/formatter/style.d.ts +4 -0
  138. package/dist/internal/core/formatter/style.js +15 -0
  139. package/dist/internal/core/formatter/theme.d.ts +5 -0
  140. package/dist/internal/core/formatter/theme.js +44 -0
  141. package/dist/internal/core/formatter/typography.d.ts +5 -0
  142. package/dist/internal/core/formatter/typography.js +12 -0
  143. package/dist/internal/core/standard-colors.d.ts +75 -0
  144. package/dist/internal/core/standard-colors.js +75 -0
  145. package/dist/internal/helpers/colors.d.ts +1 -0
  146. package/dist/internal/{colors.js → helpers/colors.js} +2 -2
  147. package/dist/internal/helpers/convert.d.ts +1 -0
  148. package/dist/internal/helpers/convert.js +17 -0
  149. package/dist/internal/helpers/deep-merge.d.ts +44 -0
  150. package/dist/internal/helpers/deep-merge.js +80 -0
  151. package/dist/internal/helpers/parser.d.ts +10 -0
  152. package/dist/internal/helpers/parser.js +93 -0
  153. package/dist/internal/helpers/scroll.d.ts +1 -0
  154. package/dist/internal/helpers/scroll.js +6 -0
  155. package/dist/internal/plugins/vite.d.ts +8 -0
  156. package/dist/internal/plugins/vite.js +33 -0
  157. package/dist/internal/types/components.d.ts +14 -0
  158. package/dist/internal/types/components.js +1 -0
  159. package/dist/internal/types/configuration.d.ts +63 -0
  160. package/dist/internal/types/configuration.js +1 -0
  161. package/dist/internal/types/index.d.ts +2 -0
  162. package/dist/internal/types/index.js +2 -0
  163. package/dist/stores/breakpoints.d.ts +6 -0
  164. package/dist/stores/breakpoints.js +14 -0
  165. package/dist/stores/components.d.ts +8 -0
  166. package/dist/stores/components.js +26 -0
  167. package/dist/stores/devices.d.ts +6 -0
  168. package/dist/stores/devices.js +9 -0
  169. package/dist/stores/index.d.ts +4 -4
  170. package/dist/stores/index.js +4 -23
  171. package/dist/stores/themes.d.ts +2 -0
  172. package/dist/stores/themes.js +4 -0
  173. package/dist/styles/animation.css +33 -0
  174. package/dist/{style/animation.css → styles/keyframes.css} +10 -0
  175. package/dist/{style/normalize.css → styles/reset.css} +15 -5
  176. package/dist/themes.css +0 -0
  177. package/package.json +18 -6
  178. package/bin/lapikit.js +0 -54
  179. package/bin/modules/adapter.js +0 -52
  180. package/bin/modules/preset.js +0 -11
  181. package/dist/internal/colors.d.ts +0 -1
  182. package/dist/internal/index.d.ts +0 -3
  183. package/dist/internal/index.js +0 -3
  184. package/dist/internal/types.d.ts +0 -57
  185. package/dist/plugin/modules/config.d.ts +0 -2
  186. package/dist/plugin/modules/config.js +0 -54
  187. package/dist/plugin/modules/importer.d.ts +0 -1
  188. package/dist/plugin/modules/importer.js +0 -15
  189. package/dist/plugin/vitejs.d.ts +0 -6
  190. package/dist/plugin/vitejs.js +0 -26
  191. package/dist/preset.d.ts +0 -2
  192. package/dist/preset.js +0 -92
  193. package/dist/style/css.d.ts +0 -2
  194. package/dist/style/css.js +0 -31
  195. package/dist/style/parser/color.d.ts +0 -5
  196. package/dist/style/parser/color.js +0 -88
  197. package/dist/style/parser/component.d.ts +0 -2
  198. package/dist/style/parser/component.js +0 -115
  199. package/dist/style/parser/device.d.ts +0 -2
  200. package/dist/style/parser/device.js +0 -28
  201. package/dist/style/parser/index.d.ts +0 -4
  202. package/dist/style/parser/index.js +0 -4
  203. package/dist/style/parser/variable.d.ts +0 -2
  204. package/dist/style/parser/variable.js +0 -25
  205. /package/dist/{internal → components/accordion}/types.js +0 -0
  206. /package/dist/{components/dropdown → internal/core/actions}/dropdown.svelte.js +0 -0
  207. /package/dist/{components/popover → internal/core/actions}/popover.svelte.js +0 -0
  208. /package/dist/{components/tooltip → internal/core/actions}/tooltip.svelte.js +0 -0
  209. /package/dist/internal/{ansi.d.ts → core/bin/ansi.d.ts} +0 -0
  210. /package/dist/internal/{ansi.js → core/bin/ansi.js} +0 -0
  211. /package/dist/internal/{terminal.d.ts → core/bin/terminal.d.ts} +0 -0
  212. /package/dist/internal/{terminal.js → core/bin/terminal.js} +0 -0
  213. /package/dist/internal/{minify.d.ts → core/minify.d.ts} +0 -0
  214. /package/dist/internal/{minify.js → core/minify.js} +0 -0
  215. /package/dist/{utils/x11.d.ts → internal/core/x11-colors.d.ts} +0 -0
  216. /package/dist/{utils/x11.js → internal/core/x11-colors.js} +0 -0
  217. /package/dist/internal/{clickOutside.d.ts → helpers/outside.d.ts} +0 -0
  218. /package/dist/internal/{clickOutside.js → helpers/outside.js} +0 -0
@@ -0,0 +1,27 @@
1
+ import type { Component } from '../../internal/types/index.js';
2
+ type Variant = 'outline' | 'text' | 'dash';
3
+ type Density = 'compact' | 'comfortable' | 'default';
4
+ type Orientation = 'horizontal' | 'vertical';
5
+ type Location = 'top' | 'bottom';
6
+ export interface ToolbarProps extends Component {
7
+ is?: 'div' | 'header' | 'nav';
8
+ variant?: Variant | {
9
+ [key: string]: Variant;
10
+ };
11
+ rounded?: string;
12
+ density?: Density | {
13
+ [key: string]: Density;
14
+ };
15
+ dark?: boolean;
16
+ light?: boolean;
17
+ color?: string;
18
+ orientation?: Orientation | {
19
+ [key: string]: Orientation;
20
+ };
21
+ background?: string;
22
+ location?: Location | {
23
+ [key: string]: Location;
24
+ };
25
+ classContent?: string | string[] | undefined;
26
+ }
27
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -6,24 +6,16 @@
6
6
  }
7
7
 
8
8
  .kit-tooltip-content {
9
- --tooltip-color: var(--on, var(--kit-on-neutral));
10
- --tooltip-background: var(--base, var(--kit-neutral));
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;
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
+ };
@@ -4,4 +4,5 @@ export declare function getAssets(): {
4
4
  [key: string]: string;
5
5
  }): string | undefined;
6
6
  color(color?: string): string | undefined;
7
+ unit(value?: string | number): string | undefined;
7
8
  };
@@ -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
  }
@@ -34,8 +34,21 @@ export function getAssets() {
34
34
  color.includes('oklch') ||
35
35
  x11ColorNames.includes(color.toLowerCase()))
36
36
  return color;
37
+ if (color.includes('transparent') || color.includes('inherit') || color.includes('initial'))
38
+ return color;
37
39
  return `var(--kit-${color})`;
38
40
  }
41
+ },
42
+ unit(value) {
43
+ if (typeof value === 'number')
44
+ return `${value}px`;
45
+ if (typeof value === 'string') {
46
+ const cleaned = value.trim();
47
+ const isOnlyNumericLike = /^[\d.,]+$/.test(cleaned);
48
+ if (isOnlyNumericLike)
49
+ return `${value}px`;
50
+ }
51
+ return value;
39
52
  }
40
53
  };
41
54
  }
@@ -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 {};
@@ -0,0 +1,12 @@
1
+ interface RippleOptions {
2
+ component?: string;
3
+ center?: boolean;
4
+ color?: string;
5
+ duration?: number;
6
+ disabled?: boolean;
7
+ }
8
+ export declare function ripple(el: HTMLElement, options?: RippleOptions): {
9
+ destroy(): void;
10
+ update(newOptions: RippleOptions): void;
11
+ };
12
+ export {};
@@ -0,0 +1,93 @@
1
+ const triggerEvents = ['pointerdown', 'touchstart', 'keydown'];
2
+ const cancelEvents = ['mouseleave', 'dragleave', 'touchmove', 'touchcancel', 'pointerup', 'keyup'];
3
+ export function ripple(el, options = {}) {
4
+ const rippleContainer = document.createElement('div');
5
+ addClasses();
6
+ setOptions(options);
7
+ function addClasses(center) {
8
+ const shouldBeCentered = center || options.center;
9
+ if (!rippleContainer.classList.contains('kit-ripple--effect')) {
10
+ rippleContainer.classList.add('kit-ripple--effect');
11
+ }
12
+ if (!shouldBeCentered && rippleContainer.classList.contains('kit-ripple--center')) {
13
+ rippleContainer.classList.remove('kit-ripple--center');
14
+ }
15
+ if (shouldBeCentered) {
16
+ rippleContainer.classList.add('kit-ripple--center');
17
+ }
18
+ }
19
+ function setOptions(options) {
20
+ if (options.disabled || el.hasAttribute('aria-disabled')) {
21
+ rippleContainer.remove();
22
+ }
23
+ else {
24
+ el.appendChild(rippleContainer);
25
+ }
26
+ if (options.duration && options.duration < 0) {
27
+ options.duration = undefined;
28
+ }
29
+ if (options.component) {
30
+ rippleContainer.style.setProperty('--system-ripple-radius', `var(--${options.component}-radius)`);
31
+ }
32
+ if (options.color) {
33
+ rippleContainer.style.setProperty('--system-ripple-color', options.color);
34
+ }
35
+ if (options.duration) {
36
+ rippleContainer.style.setProperty('--system-animation-ripple-duration', `${options.duration}ms`);
37
+ }
38
+ }
39
+ function createRipple(e, center) {
40
+ if (options.disabled || el.hasAttribute('aria-disabled')) {
41
+ return;
42
+ }
43
+ if (e instanceof KeyboardEvent) {
44
+ if (!['Enter', 'Space'].includes(e.code) || e.repeat) {
45
+ return;
46
+ }
47
+ e.preventDefault();
48
+ const click = new PointerEvent('pointerdown');
49
+ createRipple(click, true);
50
+ return;
51
+ }
52
+ addClasses(center);
53
+ const rect = el.getBoundingClientRect();
54
+ const clientX = window.TouchEvent && e instanceof TouchEvent
55
+ ? e.touches[0].clientX
56
+ : e.clientX;
57
+ const clientY = window.TouchEvent && e instanceof TouchEvent
58
+ ? e.touches[0].clientY
59
+ : e.clientY;
60
+ const x = clientX - rect.left > el.offsetWidth / 2 ? 0 : el.offsetWidth;
61
+ const y = clientY - rect.top > el.offsetHeight / 2 ? 0 : el.offsetHeight;
62
+ const radius = Math.hypot(x - (clientX - rect.left), y - (clientY - rect.top));
63
+ const ripple = document.createElement('div');
64
+ ripple.classList.add('kit-ripple');
65
+ ripple.style.left = `${clientX - rect.left - radius}px`;
66
+ ripple.style.top = `${clientY - rect.top - radius}px`;
67
+ ripple.style.width = ripple.style.height = `${radius * 2}px`;
68
+ rippleContainer.appendChild(ripple);
69
+ function removeRipple() {
70
+ if (ripple === null) {
71
+ return;
72
+ }
73
+ ripple.style.opacity = '0';
74
+ setTimeout(() => {
75
+ ripple.remove();
76
+ }, options.duration || 1000);
77
+ cancelEvents.forEach((event) => el.removeEventListener(event, removeRipple));
78
+ }
79
+ cancelEvents.forEach((event) => el.addEventListener(event, removeRipple, { passive: true }));
80
+ }
81
+ triggerEvents.forEach((event) => el.addEventListener(event, createRipple, { passive: event === 'touchstart' }));
82
+ return {
83
+ destroy() {
84
+ triggerEvents.forEach((event) => {
85
+ el.removeEventListener(event, createRipple);
86
+ });
87
+ },
88
+ update(newOptions) {
89
+ options = newOptions;
90
+ setOptions(newOptions);
91
+ }
92
+ };
93
+ }
@@ -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>;