@sekiui/elements 0.0.13 → 0.0.15

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 (123) hide show
  1. package/README.md +260 -14
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  3. package/dist/{esm/index-3X8Wsgjr.js → cjs/index-6jIfEFyf.js} +32 -54
  4. package/dist/cjs/index.cjs.js +0 -1
  5. package/dist/cjs/loader.cjs.js +4 -4
  6. package/dist/cjs/seki-button.cjs.entry.js +6 -31
  7. package/dist/cjs/sekiui.cjs.js +5 -5
  8. package/dist/collection/collection-manifest.json +2 -6
  9. package/dist/collection/components/button/seki-button.css +380 -0
  10. package/dist/collection/components/button/seki-button.js +108 -0
  11. package/dist/collection/index.js +0 -1
  12. package/dist/components/index.js +1130 -3
  13. package/dist/components/seki-button.js +10 -35
  14. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  15. package/dist/{cjs/index-BxbILFLe.js → esm/index-BROrRAlq.js} +27 -81
  16. package/dist/esm/index.js +0 -1
  17. package/dist/esm/loader.js +4 -4
  18. package/dist/esm/seki-button.entry.js +6 -31
  19. package/dist/esm/sekiui.js +5 -5
  20. package/dist/sekiui/index.esm.js +0 -2
  21. package/dist/sekiui/p-BROrRAlq.js +2 -0
  22. package/dist/sekiui/p-DQuL1Twl.js +1 -0
  23. package/dist/sekiui/p-e65a94f7.entry.js +1 -0
  24. package/dist/sekiui/sekiui.esm.js +1 -2
  25. package/dist/types/components/button/seki-button.d.ts +7 -0
  26. package/dist/types/components.d.ts +16 -62
  27. package/dist/types/index.d.ts +1 -1
  28. package/dist/types/stencil-public-runtime.d.ts +16 -2
  29. package/loader/cdn.js +1 -0
  30. package/loader/index.cjs.js +1 -0
  31. package/loader/index.d.ts +24 -0
  32. package/loader/index.es2017.js +1 -0
  33. package/loader/index.js +2 -0
  34. package/package.json +42 -27
  35. package/LICENSE +0 -21
  36. package/dist/cjs/index-BxbILFLe.js.map +0 -1
  37. package/dist/cjs/index.cjs.js.map +0 -1
  38. package/dist/cjs/loader.cjs.js.map +0 -1
  39. package/dist/cjs/seki-button.entry.cjs.js.map +0 -1
  40. package/dist/cjs/seki-card-content.cjs.entry.js +0 -18
  41. package/dist/cjs/seki-card-content.entry.cjs.js.map +0 -1
  42. package/dist/cjs/seki-card-header.cjs.entry.js +0 -18
  43. package/dist/cjs/seki-card-header.entry.cjs.js.map +0 -1
  44. package/dist/cjs/seki-card-title.cjs.entry.js +0 -18
  45. package/dist/cjs/seki-card-title.entry.cjs.js.map +0 -1
  46. package/dist/cjs/seki-card.cjs.entry.js +0 -18
  47. package/dist/cjs/seki-card.entry.cjs.js.map +0 -1
  48. package/dist/cjs/sekiui.cjs.js.map +0 -1
  49. package/dist/collection/button.js +0 -18
  50. package/dist/collection/button.js.map +0 -1
  51. package/dist/collection/card.js +0 -18
  52. package/dist/collection/card.js.map +0 -1
  53. package/dist/collection/components/seki-button/seki-button.css +0 -60
  54. package/dist/collection/components/seki-button/seki-button.js +0 -125
  55. package/dist/collection/components/seki-button/seki-button.js.map +0 -1
  56. package/dist/collection/components/seki-card/seki-card.css +0 -60
  57. package/dist/collection/components/seki-card/seki-card.js +0 -19
  58. package/dist/collection/components/seki-card/seki-card.js.map +0 -1
  59. package/dist/collection/components/seki-card-content/seki-card-content.css +0 -60
  60. package/dist/collection/components/seki-card-content/seki-card-content.js +0 -19
  61. package/dist/collection/components/seki-card-content/seki-card-content.js.map +0 -1
  62. package/dist/collection/components/seki-card-header/seki-card-header.css +0 -60
  63. package/dist/collection/components/seki-card-header/seki-card-header.js +0 -19
  64. package/dist/collection/components/seki-card-header/seki-card-header.js.map +0 -1
  65. package/dist/collection/components/seki-card-title/seki-card-title.css +0 -60
  66. package/dist/collection/components/seki-card-title/seki-card-title.js +0 -19
  67. package/dist/collection/components/seki-card-title/seki-card-title.js.map +0 -1
  68. package/dist/collection/index.js.map +0 -1
  69. package/dist/components/index.js.map +0 -1
  70. package/dist/components/seki-button.js.map +0 -1
  71. package/dist/components/seki-card-content.d.ts +0 -11
  72. package/dist/components/seki-card-content.js +0 -38
  73. package/dist/components/seki-card-content.js.map +0 -1
  74. package/dist/components/seki-card-header.d.ts +0 -11
  75. package/dist/components/seki-card-header.js +0 -38
  76. package/dist/components/seki-card-header.js.map +0 -1
  77. package/dist/components/seki-card-title.d.ts +0 -11
  78. package/dist/components/seki-card-title.js +0 -38
  79. package/dist/components/seki-card-title.js.map +0 -1
  80. package/dist/components/seki-card.d.ts +0 -11
  81. package/dist/components/seki-card.js +0 -38
  82. package/dist/components/seki-card.js.map +0 -1
  83. package/dist/esm/index-3X8Wsgjr.js.map +0 -1
  84. package/dist/esm/index.js.map +0 -1
  85. package/dist/esm/loader.js.map +0 -1
  86. package/dist/esm/seki-button.entry.js.map +0 -1
  87. package/dist/esm/seki-card-content.entry.js +0 -16
  88. package/dist/esm/seki-card-content.entry.js.map +0 -1
  89. package/dist/esm/seki-card-header.entry.js +0 -16
  90. package/dist/esm/seki-card-header.entry.js.map +0 -1
  91. package/dist/esm/seki-card-title.entry.js +0 -16
  92. package/dist/esm/seki-card-title.entry.js.map +0 -1
  93. package/dist/esm/seki-card.entry.js +0 -16
  94. package/dist/esm/seki-card.entry.js.map +0 -1
  95. package/dist/esm/sekiui.js.map +0 -1
  96. package/dist/sekiui/index.esm.js.map +0 -1
  97. package/dist/sekiui/loader.esm.js.map +0 -1
  98. package/dist/sekiui/p-043a8413.entry.js +0 -2
  99. package/dist/sekiui/p-043a8413.entry.js.map +0 -1
  100. package/dist/sekiui/p-3X8Wsgjr.js +0 -3
  101. package/dist/sekiui/p-3X8Wsgjr.js.map +0 -1
  102. package/dist/sekiui/p-65fc14ff.entry.js +0 -2
  103. package/dist/sekiui/p-65fc14ff.entry.js.map +0 -1
  104. package/dist/sekiui/p-aa468537.entry.js +0 -2
  105. package/dist/sekiui/p-aa468537.entry.js.map +0 -1
  106. package/dist/sekiui/p-c49f2aaf.entry.js +0 -2
  107. package/dist/sekiui/p-c49f2aaf.entry.js.map +0 -1
  108. package/dist/sekiui/p-e8e49693.entry.js +0 -2
  109. package/dist/sekiui/p-e8e49693.entry.js.map +0 -1
  110. package/dist/sekiui/seki-button.entry.esm.js.map +0 -1
  111. package/dist/sekiui/seki-card-content.entry.esm.js.map +0 -1
  112. package/dist/sekiui/seki-card-header.entry.esm.js.map +0 -1
  113. package/dist/sekiui/seki-card-title.entry.esm.js.map +0 -1
  114. package/dist/sekiui/seki-card.entry.esm.js.map +0 -1
  115. package/dist/sekiui/sekiui.css +0 -60
  116. package/dist/sekiui/sekiui.esm.js.map +0 -1
  117. package/dist/types/button.d.ts +0 -4
  118. package/dist/types/card.d.ts +0 -4
  119. package/dist/types/components/seki-button/seki-button.d.ts +0 -10
  120. package/dist/types/components/seki-card/seki-card.d.ts +0 -3
  121. package/dist/types/components/seki-card-content/seki-card-content.d.ts +0 -3
  122. package/dist/types/components/seki-card-header/seki-card-header.d.ts +0 -3
  123. package/dist/types/components/seki-card-title/seki-card-title.d.ts +0 -3
@@ -0,0 +1,380 @@
1
+ /**
2
+ * SekiUI Design Tokens - Index
3
+ * Aggregates all design token files into a single entry point
4
+ *
5
+ * Import this file to get access to all design tokens:
6
+ * @import '../tokens/index.css';
7
+ */
8
+
9
+ /**
10
+ * SekiUI Design Tokens - Colors
11
+ * Hierarchical color system: Primitive → Semantic → Component
12
+ */
13
+
14
+ /* =============================================================================
15
+ PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
+ ============================================================================= */
17
+
18
+ :root {
19
+ /* Neutral Scale (50-950) */
20
+ --seki-neutral-50: hsl(0, 0%, 98%);
21
+ --seki-neutral-100: hsl(0, 0%, 96%);
22
+ --seki-neutral-200: hsl(0, 0%, 90%);
23
+ --seki-neutral-300: hsl(0, 0%, 83%);
24
+ --seki-neutral-400: hsl(0, 0%, 64%);
25
+ --seki-neutral-500: hsl(0, 0%, 45%);
26
+ --seki-neutral-600: hsl(0, 0%, 32%);
27
+ --seki-neutral-700: hsl(0, 0%, 25%);
28
+ --seki-neutral-800: hsl(0, 0%, 15%);
29
+ --seki-neutral-900: hsl(0, 0%, 9%);
30
+ --seki-neutral-950: hsl(0, 0%, 4%);
31
+
32
+ /* Primary/Accent Scale (50-950) */
33
+ --seki-primary-50: hsl(210, 100%, 97%);
34
+ --seki-primary-100: hsl(210, 95%, 93%);
35
+ --seki-primary-200: hsl(210, 95%, 85%);
36
+ --seki-primary-300: hsl(210, 90%, 73%);
37
+ --seki-primary-400: hsl(210, 85%, 58%);
38
+ --seki-primary-500: hsl(210, 80%, 48%);
39
+ --seki-primary-600: hsl(210, 75%, 40%);
40
+ --seki-primary-700: hsl(210, 70%, 32%);
41
+ --seki-primary-800: hsl(210, 65%, 25%);
42
+ --seki-primary-900: hsl(210, 60%, 18%);
43
+ --seki-primary-950: hsl(210, 55%, 10%);
44
+
45
+ /* Semantic Color Primitives */
46
+ --seki-success-500: hsl(142, 71%, 45%);
47
+ --seki-success-600: hsl(142, 71%, 35%);
48
+ --seki-warning-500: hsl(38, 92%, 50%);
49
+ --seki-warning-600: hsl(38, 92%, 40%);
50
+ --seki-destructive-500: hsl(0, 72%, 51%);
51
+ --seki-destructive-600: hsl(0, 72%, 41%);
52
+ }
53
+
54
+ /* =============================================================================
55
+ SEMANTIC TOKENS (Layer 2: Purpose-Based)
56
+ ============================================================================= */
57
+
58
+ :root {
59
+ /* Backgrounds */
60
+ --seki-bg-primary: var(--seki-neutral-50);
61
+ --seki-bg-secondary: var(--seki-neutral-100);
62
+ --seki-bg-tertiary: var(--seki-neutral-200);
63
+
64
+ /* Text */
65
+ --seki-text-primary: var(--seki-neutral-900);
66
+ --seki-text-secondary: var(--seki-neutral-600);
67
+ --seki-text-tertiary: var(--seki-neutral-400);
68
+
69
+ /* Borders */
70
+ --seki-border-default: var(--seki-neutral-200);
71
+ --seki-border-emphasis: var(--seki-neutral-300);
72
+
73
+ /* Accent */
74
+ --seki-accent: var(--seki-primary-500);
75
+ --seki-accent-emphasis: var(--seki-primary-600);
76
+
77
+ /* States */
78
+ --seki-success: var(--seki-success-500);
79
+ --seki-warning: var(--seki-warning-500);
80
+ --seki-destructive: var(--seki-destructive-500);
81
+ }
82
+
83
+ /* Dark Mode Semantic Tokens */
84
+ :root[data-theme='dark'] {
85
+ /* Backgrounds */
86
+ --seki-bg-primary: var(--seki-neutral-950);
87
+ --seki-bg-secondary: var(--seki-neutral-900);
88
+ --seki-bg-tertiary: var(--seki-neutral-800);
89
+
90
+ /* Text */
91
+ --seki-text-primary: var(--seki-neutral-50);
92
+ --seki-text-secondary: var(--seki-neutral-400);
93
+ --seki-text-tertiary: var(--seki-neutral-600);
94
+
95
+ /* Borders */
96
+ --seki-border-default: var(--seki-neutral-800);
97
+ --seki-border-emphasis: var(--seki-neutral-700);
98
+
99
+ /* Accent */
100
+ --seki-accent: var(--seki-primary-400);
101
+ --seki-accent-emphasis: var(--seki-primary-300);
102
+
103
+ /* States remain the same */
104
+ }
105
+
106
+ /* =============================================================================
107
+ COMPONENT TOKENS (Layer 3: Button-Specific)
108
+ ============================================================================= */
109
+
110
+ :root {
111
+ /* Button Variant: Primary */
112
+ --seki-button-primary-bg: var(--seki-accent);
113
+ --seki-button-primary-text: var(--seki-neutral-50);
114
+ --seki-button-primary-border: transparent;
115
+ --seki-button-primary-hover-bg: var(--seki-accent-emphasis);
116
+ --seki-button-primary-hover-border: transparent;
117
+
118
+ /* Button Variant: Secondary */
119
+ --seki-button-secondary-bg: var(--seki-bg-secondary);
120
+ --seki-button-secondary-text: var(--seki-text-primary);
121
+ --seki-button-secondary-border: var(--seki-border-default);
122
+ --seki-button-secondary-hover-bg: var(--seki-bg-tertiary);
123
+ --seki-button-secondary-hover-border: var(--seki-border-emphasis);
124
+
125
+ /* Button Variant: Outline */
126
+ --seki-button-outline-bg: transparent;
127
+ --seki-button-outline-text: var(--seki-accent);
128
+ --seki-button-outline-border: var(--seki-accent);
129
+ --seki-button-outline-hover-bg: var(--seki-accent);
130
+ --seki-button-outline-hover-text: var(--seki-neutral-50);
131
+ --seki-button-outline-hover-border: var(--seki-accent);
132
+
133
+ /* Button Variant: Ghost */
134
+ --seki-button-ghost-bg: transparent;
135
+ --seki-button-ghost-text: var(--seki-text-primary);
136
+ --seki-button-ghost-border: transparent;
137
+ --seki-button-ghost-hover-bg: var(--seki-bg-secondary);
138
+ --seki-button-ghost-hover-border: transparent;
139
+
140
+ /* Button Variant: Destructive */
141
+ --seki-button-destructive-bg: var(--seki-destructive);
142
+ --seki-button-destructive-text: var(--seki-neutral-50);
143
+ --seki-button-destructive-border: transparent;
144
+ --seki-button-destructive-hover-bg: var(--seki-destructive-600);
145
+ --seki-button-destructive-hover-border: transparent;
146
+
147
+ /* Button Sizing: Small */
148
+ --seki-button-sm-padding-x: var(--seki-spacing-3, 0.75rem);
149
+ --seki-button-sm-padding-y: var(--seki-spacing-1-5, 0.375rem);
150
+ --seki-button-sm-font-size: var(--seki-text-sm, 0.875rem);
151
+ --seki-button-sm-height: 2rem;
152
+
153
+ /* Button Sizing: Medium (default) */
154
+ --seki-button-md-padding-x: var(--seki-spacing-4, 1rem);
155
+ --seki-button-md-padding-y: var(--seki-spacing-2, 0.5rem);
156
+ --seki-button-md-font-size: var(--seki-text-base, 1rem);
157
+ --seki-button-md-height: 2.5rem;
158
+
159
+ /* Button Sizing: Large */
160
+ --seki-button-lg-padding-x: var(--seki-spacing-5, 1.25rem);
161
+ --seki-button-lg-padding-y: var(--seki-spacing-2-5, 0.625rem);
162
+ --seki-button-lg-font-size: var(--seki-text-lg, 1.125rem);
163
+ --seki-button-lg-height: 3rem;
164
+
165
+ /* Button Common */
166
+ --seki-button-radius: var(--seki-radius-md, 0.375rem);
167
+ --seki-button-font-weight: var(--seki-font-medium, 500);
168
+ --seki-button-transition-duration: 150ms;
169
+ --seki-button-transition-timing: ease-in-out;
170
+ --seki-button-shadow: var(--seki-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
171
+ --seki-button-shadow-hover: var(--seki-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
172
+ --seki-button-disabled-opacity: 0.5;
173
+ }
174
+
175
+ /**
176
+ * SekiUI Design Tokens - Spacing
177
+ * 4px base unit, rem-based scale
178
+ */
179
+
180
+ :root {
181
+ /* Spacing Scale (4px base unit) */
182
+ --seki-spacing-0: 0;
183
+ --seki-spacing-0-5: 0.125rem; /* 2px */
184
+ --seki-spacing-1: 0.25rem; /* 4px */
185
+ --seki-spacing-1-5: 0.375rem; /* 6px */
186
+ --seki-spacing-2: 0.5rem; /* 8px */
187
+ --seki-spacing-2-5: 0.625rem; /* 10px */
188
+ --seki-spacing-3: 0.75rem; /* 12px */
189
+ --seki-spacing-3-5: 0.875rem; /* 14px */
190
+ --seki-spacing-4: 1rem; /* 16px */
191
+ --seki-spacing-5: 1.25rem; /* 20px */
192
+ --seki-spacing-6: 1.5rem; /* 24px */
193
+ --seki-spacing-8: 2rem; /* 32px */
194
+ --seki-spacing-10: 2.5rem; /* 40px */
195
+ --seki-spacing-12: 3rem; /* 48px */
196
+ --seki-spacing-16: 4rem; /* 64px */
197
+ --seki-spacing-20: 5rem; /* 80px */
198
+ --seki-spacing-24: 6rem; /* 96px */
199
+ }
200
+
201
+ /**
202
+ * SekiUI Design Tokens - Shadows
203
+ * Subtle elevation system
204
+ */
205
+
206
+ :root {
207
+ /* Shadow Levels */
208
+ --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
209
+ --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
210
+ --seki-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.15), 0 4px 6px -4px rgb(0 0 0 / 0.1);
211
+ }
212
+
213
+ /**
214
+ * SekiUI Design Tokens - Typography
215
+ * System font stacks, sizes, weights, line heights
216
+ */
217
+
218
+ :root {
219
+ /* Font Families */
220
+ --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
221
+ Arial, sans-serif;
222
+ --seki-font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
223
+
224
+ /* Font Sizes (rem-based) */
225
+ --seki-text-xs: 0.75rem; /* 12px */
226
+ --seki-text-sm: 0.875rem; /* 14px */
227
+ --seki-text-base: 1rem; /* 16px */
228
+ --seki-text-lg: 1.125rem; /* 18px */
229
+ --seki-text-xl: 1.25rem; /* 20px */
230
+ --seki-text-2xl: 1.5rem; /* 24px */
231
+ --seki-text-3xl: 1.875rem; /* 30px */
232
+ --seki-text-4xl: 2.25rem; /* 36px */
233
+
234
+ /* Font Weights */
235
+ --seki-font-normal: 400;
236
+ --seki-font-medium: 500;
237
+ --seki-font-semibold: 600;
238
+ --seki-font-bold: 700;
239
+
240
+ /* Line Heights */
241
+ --seki-leading-tight: 1.25;
242
+ --seki-leading-normal: 1.5;
243
+ --seki-leading-relaxed: 1.75;
244
+ }
245
+
246
+ /**
247
+ * SekiUI Design Tokens - Border Radius
248
+ * Four-level radius system
249
+ */
250
+
251
+ :root {
252
+ /* Border Radius Levels */
253
+ --seki-radius-sm: 0.25rem; /* 4px */
254
+ --seki-radius-md: 0.375rem; /* 6px */
255
+ --seki-radius-lg: 0.5rem; /* 8px */
256
+ --seki-radius-xl: 1rem; /* 16px */
257
+ }
258
+
259
+
260
+
261
+ :host {
262
+ display: inline-block;
263
+ }
264
+
265
+ .button {
266
+ /* Base styles */
267
+ font-family: var(--seki-font-sans);
268
+ font-weight: var(--seki-button-font-weight);
269
+ border-radius: var(--seki-button-radius);
270
+ cursor: pointer;
271
+ border: 1px solid;
272
+ transition: background-color var(--seki-button-transition-duration) var(--seki-button-transition-timing),
273
+ border-color var(--seki-button-transition-duration) var(--seki-button-transition-timing),
274
+ color var(--seki-button-transition-duration) var(--seki-button-transition-timing),
275
+ box-shadow var(--seki-button-transition-duration) var(--seki-button-transition-timing);
276
+ box-shadow: var(--seki-button-shadow);
277
+ }
278
+
279
+ .button:hover:not(:disabled) {
280
+ box-shadow: var(--seki-button-shadow-hover);
281
+ }
282
+
283
+ .button:focus-visible {
284
+ outline: 2px solid var(--seki-accent);
285
+ outline-offset: 2px;
286
+ }
287
+
288
+ .button:disabled {
289
+ opacity: var(--seki-button-disabled-opacity);
290
+ cursor: not-allowed;
291
+ }
292
+
293
+ /* Variant: Primary */
294
+ .button--primary {
295
+ background: var(--seki-button-primary-bg);
296
+ color: var(--seki-button-primary-text);
297
+ border-color: var(--seki-button-primary-border);
298
+ }
299
+
300
+ .button--primary:hover:not(:disabled) {
301
+ background: var(--seki-button-primary-hover-bg);
302
+ border-color: var(--seki-button-primary-hover-border);
303
+ }
304
+
305
+ /* Variant: Secondary */
306
+ .button--secondary {
307
+ background: var(--seki-button-secondary-bg);
308
+ color: var(--seki-button-secondary-text);
309
+ border-color: var(--seki-button-secondary-border);
310
+ }
311
+
312
+ .button--secondary:hover:not(:disabled) {
313
+ background: var(--seki-button-secondary-hover-bg);
314
+ border-color: var(--seki-button-secondary-hover-border);
315
+ }
316
+
317
+ /* Variant: Outline */
318
+ .button--outline {
319
+ background: var(--seki-button-outline-bg);
320
+ color: var(--seki-button-outline-text);
321
+ border-color: var(--seki-button-outline-border);
322
+ }
323
+
324
+ .button--outline:hover:not(:disabled) {
325
+ background: var(--seki-button-outline-hover-bg);
326
+ color: var(--seki-button-outline-hover-text);
327
+ border-color: var(--seki-button-outline-hover-border);
328
+ }
329
+
330
+ /* Variant: Ghost */
331
+ .button--ghost {
332
+ background: var(--seki-button-ghost-bg);
333
+ color: var(--seki-button-ghost-text);
334
+ border-color: var(--seki-button-ghost-border);
335
+ }
336
+
337
+ .button--ghost:hover:not(:disabled) {
338
+ background: var(--seki-button-ghost-hover-bg);
339
+ border-color: var(--seki-button-ghost-hover-border);
340
+ }
341
+
342
+ /* Variant: Destructive */
343
+ .button--destructive {
344
+ background: var(--seki-button-destructive-bg);
345
+ color: var(--seki-button-destructive-text);
346
+ border-color: var(--seki-button-destructive-border);
347
+ }
348
+
349
+ .button--destructive:hover:not(:disabled) {
350
+ background: var(--seki-button-destructive-hover-bg);
351
+ border-color: var(--seki-button-destructive-hover-border);
352
+ }
353
+
354
+ /* Size: Small */
355
+ .button--sm {
356
+ padding: var(--seki-button-sm-padding-y) var(--seki-button-sm-padding-x);
357
+ font-size: var(--seki-button-sm-font-size);
358
+ height: var(--seki-button-sm-height);
359
+ }
360
+
361
+ /* Size: Medium (default) */
362
+ .button--md {
363
+ padding: var(--seki-button-md-padding-y) var(--seki-button-md-padding-x);
364
+ font-size: var(--seki-button-md-font-size);
365
+ height: var(--seki-button-md-height);
366
+ }
367
+
368
+ /* Size: Large */
369
+ .button--lg {
370
+ padding: var(--seki-button-lg-padding-y) var(--seki-button-lg-padding-x);
371
+ font-size: var(--seki-button-lg-font-size);
372
+ height: var(--seki-button-lg-height);
373
+ }
374
+
375
+ /* Reduced Motion */
376
+ @media (prefers-reduced-motion: reduce) {
377
+ .button {
378
+ transition: none;
379
+ }
380
+ }
@@ -0,0 +1,108 @@
1
+ import { h } from "@stencil/core";
2
+ export class SekiButton {
3
+ constructor() {
4
+ this.variant = 'primary';
5
+ this.size = 'md';
6
+ this.disabled = false;
7
+ this.type = 'button';
8
+ }
9
+ render() {
10
+ return (h("button", { key: '0a0740566a19505743488924d3971f75cf086ab8', class: `button button--${this.variant} button--${this.size}`, type: this.type, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, h("slot", { key: '6c715e7b707efb6dffc4b88773d7ea63c510f305' })));
11
+ }
12
+ static get is() { return "seki-button"; }
13
+ static get encapsulation() { return "shadow"; }
14
+ static get originalStyleUrls() {
15
+ return {
16
+ "$": ["seki-button.css"]
17
+ };
18
+ }
19
+ static get styleUrls() {
20
+ return {
21
+ "$": ["seki-button.css"]
22
+ };
23
+ }
24
+ static get properties() {
25
+ return {
26
+ "variant": {
27
+ "type": "string",
28
+ "mutable": false,
29
+ "complexType": {
30
+ "original": "'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive'",
31
+ "resolved": "\"destructive\" | \"ghost\" | \"outline\" | \"primary\" | \"secondary\"",
32
+ "references": {}
33
+ },
34
+ "required": false,
35
+ "optional": false,
36
+ "docs": {
37
+ "tags": [],
38
+ "text": ""
39
+ },
40
+ "getter": false,
41
+ "setter": false,
42
+ "reflect": false,
43
+ "attribute": "variant",
44
+ "defaultValue": "'primary'"
45
+ },
46
+ "size": {
47
+ "type": "string",
48
+ "mutable": false,
49
+ "complexType": {
50
+ "original": "'sm' | 'md' | 'lg'",
51
+ "resolved": "\"lg\" | \"md\" | \"sm\"",
52
+ "references": {}
53
+ },
54
+ "required": false,
55
+ "optional": false,
56
+ "docs": {
57
+ "tags": [],
58
+ "text": ""
59
+ },
60
+ "getter": false,
61
+ "setter": false,
62
+ "reflect": false,
63
+ "attribute": "size",
64
+ "defaultValue": "'md'"
65
+ },
66
+ "disabled": {
67
+ "type": "boolean",
68
+ "mutable": false,
69
+ "complexType": {
70
+ "original": "boolean",
71
+ "resolved": "boolean",
72
+ "references": {}
73
+ },
74
+ "required": false,
75
+ "optional": false,
76
+ "docs": {
77
+ "tags": [],
78
+ "text": ""
79
+ },
80
+ "getter": false,
81
+ "setter": false,
82
+ "reflect": false,
83
+ "attribute": "disabled",
84
+ "defaultValue": "false"
85
+ },
86
+ "type": {
87
+ "type": "string",
88
+ "mutable": false,
89
+ "complexType": {
90
+ "original": "'button' | 'submit' | 'reset'",
91
+ "resolved": "\"button\" | \"reset\" | \"submit\"",
92
+ "references": {}
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": ""
99
+ },
100
+ "getter": false,
101
+ "setter": false,
102
+ "reflect": false,
103
+ "attribute": "type",
104
+ "defaultValue": "'button'"
105
+ }
106
+ };
107
+ }
108
+ }
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=index.js.map