@krumio/trailhand-ui 1.4.1 → 1.5.0

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 (70) hide show
  1. package/README.md +119 -52
  2. package/dist/components/action-menu/action-menu.d.ts +79 -0
  3. package/dist/components/action-menu/action-menu.d.ts.map +1 -0
  4. package/dist/components/action-menu/action-menu.js +333 -0
  5. package/dist/components/action-menu/action-menu.js.map +1 -0
  6. package/dist/components/action-menu/action-menu.stories.d.ts +261 -0
  7. package/dist/components/action-menu/action-menu.stories.d.ts.map +1 -0
  8. package/dist/components/action-menu/action-menu.stories.js +363 -0
  9. package/dist/components/action-menu/action-menu.stories.js.map +1 -0
  10. package/dist/components/action-menu/index.d.ts +2 -0
  11. package/dist/components/action-menu/index.d.ts.map +1 -0
  12. package/dist/components/action-menu/index.js +2 -0
  13. package/dist/components/action-menu/index.js.map +1 -0
  14. package/dist/components/data-table/data-table.d.ts +191 -0
  15. package/dist/components/data-table/data-table.d.ts.map +1 -0
  16. package/dist/components/data-table/data-table.js +857 -0
  17. package/dist/components/data-table/data-table.js.map +1 -0
  18. package/dist/components/data-table/data-table.stories.d.ts +507 -0
  19. package/dist/components/data-table/data-table.stories.d.ts.map +1 -0
  20. package/dist/components/data-table/data-table.stories.js +601 -0
  21. package/dist/components/data-table/data-table.stories.js.map +1 -0
  22. package/dist/components/data-table/index.d.ts +2 -0
  23. package/dist/components/data-table/index.d.ts.map +1 -0
  24. package/dist/components/data-table/index.js +2 -0
  25. package/dist/components/data-table/index.js.map +1 -0
  26. package/dist/components/th-card/index.d.ts +3 -0
  27. package/dist/components/th-card/index.d.ts.map +1 -0
  28. package/dist/components/th-card/index.js +2 -0
  29. package/dist/components/th-card/index.js.map +1 -0
  30. package/dist/components/th-card/th-card.d.ts +78 -0
  31. package/dist/components/th-card/th-card.d.ts.map +1 -0
  32. package/dist/components/th-card/th-card.js +449 -0
  33. package/dist/components/th-card/th-card.js.map +1 -0
  34. package/dist/components/th-card/th-card.stories.d.ts +232 -0
  35. package/dist/components/th-card/th-card.stories.d.ts.map +1 -0
  36. package/dist/components/th-card/th-card.stories.js +385 -0
  37. package/dist/components/th-card/th-card.stories.js.map +1 -0
  38. package/dist/components/th-tag/index.d.ts +3 -0
  39. package/dist/components/th-tag/index.d.ts.map +1 -0
  40. package/dist/components/th-tag/index.js +2 -0
  41. package/dist/components/th-tag/index.js.map +1 -0
  42. package/dist/components/th-tag/th-tag.d.ts +65 -0
  43. package/dist/components/th-tag/th-tag.d.ts.map +1 -0
  44. package/dist/components/th-tag/th-tag.js +307 -0
  45. package/dist/components/th-tag/th-tag.js.map +1 -0
  46. package/dist/components/th-tag/th-tag.stories.d.ts +277 -0
  47. package/dist/components/th-tag/th-tag.stories.d.ts.map +1 -0
  48. package/dist/components/th-tag/th-tag.stories.js +415 -0
  49. package/dist/components/th-tag/th-tag.stories.js.map +1 -0
  50. package/dist/components/toggle-switch/index.d.ts +2 -0
  51. package/dist/components/toggle-switch/index.d.ts.map +1 -0
  52. package/dist/components/toggle-switch/index.js +2 -0
  53. package/dist/components/toggle-switch/index.js.map +1 -0
  54. package/dist/components/toggle-switch/toggle-switch.d.ts +38 -0
  55. package/dist/components/toggle-switch/toggle-switch.d.ts.map +1 -0
  56. package/dist/components/toggle-switch/toggle-switch.js +175 -0
  57. package/dist/components/toggle-switch/toggle-switch.js.map +1 -0
  58. package/dist/components/toggle-switch/toggle-switch.stories.d.ts +239 -0
  59. package/dist/components/toggle-switch/toggle-switch.stories.d.ts.map +1 -0
  60. package/dist/components/toggle-switch/toggle-switch.stories.js +408 -0
  61. package/dist/components/toggle-switch/toggle-switch.stories.js.map +1 -0
  62. package/dist/design-system/color-palette.stories.d.ts +24 -0
  63. package/dist/design-system/color-palette.stories.d.ts.map +1 -0
  64. package/dist/design-system/color-palette.stories.js +361 -0
  65. package/dist/design-system/color-palette.stories.js.map +1 -0
  66. package/dist/index.d.ts +4 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +5 -0
  69. package/dist/index.js.map +1 -0
  70. package/package.json +11 -8
@@ -0,0 +1,361 @@
1
+ import { html } from 'lit';
2
+ import '../styles/colors.css';
3
+ export default {
4
+ title: 'Design System/Color Palette',
5
+ tags: ['autodocs'],
6
+ parameters: {
7
+ docs: {
8
+ description: {
9
+ component: 'The TrailHand UI color palette provides a set of global color variables for consistent use across all components. This includes primary brand colors, greyscale shades, and semantic aliases for text, backgrounds, borders, and status indicators.',
10
+ },
11
+ },
12
+ },
13
+ };
14
+ /**
15
+ * Convert hex to RGB
16
+ * @param {string} hex - Hex color value
17
+ * @returns {string} RGB string
18
+ */
19
+ const hexToRgb = (hex) => {
20
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
21
+ if (!result)
22
+ return '';
23
+ const r = parseInt(result[1], 16);
24
+ const g = parseInt(result[2], 16);
25
+ const b = parseInt(result[3], 16);
26
+ return `rgb(${r}, ${g}, ${b})`;
27
+ };
28
+ /**
29
+ * Determine if text should be light or dark based on background
30
+ * @param {string} hex - Hex color value
31
+ * @returns {string} CSS variable for text color
32
+ */
33
+ const getContrastText = (hex) => {
34
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
35
+ if (!result)
36
+ return 'var(--color-black)';
37
+ const r = parseInt(result[1], 16);
38
+ const g = parseInt(result[2], 16);
39
+ const b = parseInt(result[3], 16);
40
+ const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
41
+ return luminance > 0.5 ? 'var(--color-text-primary)' : 'var(--color-white)';
42
+ };
43
+ /**
44
+ * Render a single color swatch
45
+ */
46
+ const ColorSwatch = ({ name, variable, hex, description = '' }) => {
47
+ const textColor = getContrastText(hex);
48
+ const rgb = hexToRgb(hex);
49
+ return html `
50
+ <div style="
51
+ display: flex;
52
+ flex-direction: column;
53
+ border: 1px solid var(--color-grey-200);
54
+ border-radius: 8px;
55
+ overflow: hidden;
56
+ background: var(--color-white);
57
+ ">
58
+ <div style="
59
+ background-color: var(${variable});
60
+ height: 80px;
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: center;
64
+ color: ${textColor};
65
+ font-weight: 600;
66
+ font-size: 14px;
67
+ ">
68
+ ${name}
69
+ </div>
70
+ <div style="
71
+ padding: 12px;
72
+ font-family: 'Nunito Sans', system-ui, sans-serif;
73
+ font-size: 13px;
74
+ ">
75
+ <div style="
76
+ font-weight: 600;
77
+ color: var(--color-text-primary);
78
+ margin-bottom: 4px;
79
+ ">${variable}</div>
80
+ <div style="
81
+ color: var(--color-text-secondary);
82
+ font-family: monospace;
83
+ font-size: 12px;
84
+ ">${hex}</div>
85
+ <div style="
86
+ color: var(--color-text-muted);
87
+ font-family: monospace;
88
+ font-size: 11px;
89
+ margin-top: 2px;
90
+ ">${rgb}</div>
91
+ ${description ? html `<div style="
92
+ color: var(--color-text-muted);
93
+ font-size: 11px;
94
+ margin-top: 6px;
95
+ font-style: italic;
96
+ ">${description}</div>` : ''}
97
+ </div>
98
+ </div>
99
+ `;
100
+ };
101
+ /**
102
+ * Render a section of colors
103
+ */
104
+ const ColorSection = ({ title, colors }) => html `
105
+ <div style="margin-bottom: 40px;">
106
+ <h3 style="
107
+ font-family: 'Nunito Sans', system-ui, sans-serif;
108
+ font-size: 18px;
109
+ font-weight: 700;
110
+ color: var(--color-text-primary);
111
+ margin: 0 0 16px 0;
112
+ padding-bottom: 8px;
113
+ border-bottom: 2px solid var(--color-grey-200);
114
+ ">${title}</h3>
115
+ <div style="
116
+ display: grid;
117
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
118
+ gap: 16px;
119
+ ">
120
+ ${colors.map(color => ColorSwatch(color))}
121
+ </div>
122
+ </div>
123
+ `;
124
+ /**
125
+ * Full color palette display
126
+ */
127
+ export const AllColors = {
128
+ render: () => html `
129
+ <div style="
130
+ font-family: 'Nunito Sans', system-ui, sans-serif;
131
+ padding: 20px;
132
+ background: var(--color-grey-100);
133
+ ">
134
+ <h2 style="
135
+ font-size: 24px;
136
+ font-weight: 700;
137
+ color: var(--color-text-primary);
138
+ margin: 0 0 8px 0;
139
+ ">TrailHand UI Color Palette</h2>
140
+ <p style="
141
+ color: var(--color-text-secondary);
142
+ font-size: 14px;
143
+ margin: 0 0 32px 0;
144
+ ">Global color variables for consistent design across all components.</p>
145
+
146
+ ${ColorSection({
147
+ title: 'Primary',
148
+ colors: [
149
+ { name: 'Primary', variable: '--color-primary', hex: '#3d98d3', description: 'Main brand color' },
150
+ ]
151
+ })}
152
+
153
+ ${ColorSection({
154
+ title: 'Black + White',
155
+ colors: [
156
+ { name: 'Black', variable: '--color-black', hex: '#000000' },
157
+ { name: 'White', variable: '--color-white', hex: '#FFFFFF' },
158
+ ]
159
+ })}
160
+
161
+ ${ColorSection({
162
+ title: 'Greyscale',
163
+ colors: [
164
+ { name: 'Grey 100', variable: '--color-grey-100', hex: '#FAFAFA' },
165
+ { name: 'Grey 200', variable: '--color-grey-200', hex: '#EBEBEB' },
166
+ { name: 'Grey 300', variable: '--color-grey-300', hex: '#D7D7D7' },
167
+ { name: 'Grey 400', variable: '--color-grey-400', hex: '#BABABA' },
168
+ { name: 'Grey 500', variable: '--color-grey-500', hex: '#8D8D8D' },
169
+ { name: 'Grey 600', variable: '--color-grey-600', hex: '#636363' },
170
+ { name: 'Grey 700', variable: '--color-grey-700', hex: '#303131' },
171
+ { name: 'Grey 800', variable: '--color-grey-800', hex: '#212121' },
172
+ ]
173
+ })}
174
+
175
+ ${ColorSection({
176
+ title: 'Status Colors',
177
+ colors: [
178
+ { name: 'Red', variable: '--color-red', hex: '#9F3A3A', description: 'Error, danger' },
179
+ { name: 'Green', variable: '--color-green', hex: '#30AC66', description: 'Success, positive' },
180
+ { name: 'Yellow', variable: '--color-yellow', hex: '#D3C255', description: 'Warning, caution' },
181
+ ]
182
+ })}
183
+ </div>
184
+ `,
185
+ };
186
+ /**
187
+ * Semantic aliases - showing how colors map to use cases
188
+ */
189
+ export const SemanticAliases = {
190
+ render: () => html `
191
+ <div style="
192
+ font-family: 'Nunito Sans', system-ui, sans-serif;
193
+ padding: 20px;
194
+ background: var(--color-grey-100);
195
+ ">
196
+ <h2 style="
197
+ font-size: 24px;
198
+ font-weight: 700;
199
+ color: var(--color-text-primary);
200
+ margin: 0 0 8px 0;
201
+ ">Semantic Color Aliases</h2>
202
+ <p style="
203
+ color: var(--color-text-secondary);
204
+ font-size: 14px;
205
+ margin: 0 0 32px 0;
206
+ ">Context-specific color variables that reference the base palette.</p>
207
+
208
+ ${ColorSection({
209
+ title: 'Text Colors',
210
+ colors: [
211
+ { name: 'Primary Text', variable: '--color-text-primary', hex: '#212121', description: 'Main body text' },
212
+ { name: 'Secondary Text', variable: '--color-text-secondary', hex: '#636363', description: 'Supporting text' },
213
+ { name: 'Muted Text', variable: '--color-text-muted', hex: '#8D8D8D', description: 'Disabled, placeholder' },
214
+ { name: 'Inverse Text', variable: '--color-text-inverse', hex: '#FFFFFF', description: 'Text on dark backgrounds' },
215
+ ]
216
+ })}
217
+
218
+ ${ColorSection({
219
+ title: 'Background Colors',
220
+ colors: [
221
+ { name: 'Background', variable: '--color-background', hex: '#FFFFFF', description: 'Default background' },
222
+ { name: 'Muted Background', variable: '--color-background-muted', hex: '#FAFAFA', description: 'Subtle background' },
223
+ { name: 'Hover Background', variable: '--color-background-hover', hex: '#EBEBEB', description: 'Interactive hover state' },
224
+ ]
225
+ })}
226
+
227
+ ${ColorSection({
228
+ title: 'Border Colors',
229
+ colors: [
230
+ { name: 'Border', variable: '--color-border', hex: '#D7D7D7', description: 'Default borders' },
231
+ { name: 'Light Border', variable: '--color-border-light', hex: '#EBEBEB', description: 'Subtle borders' },
232
+ ]
233
+ })}
234
+
235
+ ${ColorSection({
236
+ title: 'State Colors',
237
+ colors: [
238
+ { name: 'Error', variable: '--color-error', hex: '#9F3A3A', description: 'Error states' },
239
+ { name: 'Success', variable: '--color-success', hex: '#30AC66', description: 'Success states' },
240
+ { name: 'Warning', variable: '--color-warning', hex: '#D3C255', description: 'Warning states' },
241
+ { name: 'Link', variable: '--color-link', hex: '#3d98d3', description: 'Interactive links' },
242
+ ]
243
+ })}
244
+ </div>
245
+ `,
246
+ };
247
+ /**
248
+ * Usage examples
249
+ */
250
+ export const UsageExamples = {
251
+ render: () => html `
252
+ <div style="
253
+ font-family: 'Nunito Sans', system-ui, sans-serif;
254
+ padding: 20px;
255
+ background: var(--color-grey-100);
256
+ ">
257
+ <h2 style="
258
+ font-size: 24px;
259
+ font-weight: 700;
260
+ color: var(--color-text-primary);
261
+ margin: 0 0 8px 0;
262
+ ">Usage Examples</h2>
263
+ <p style="
264
+ color: var(--color-text-secondary);
265
+ font-size: 14px;
266
+ margin: 0 0 32px 0;
267
+ ">How to use color variables in your CSS and components.</p>
268
+
269
+ <div style="
270
+ background: var(--color-white);
271
+ border: 1px solid var(--color-grey-200);
272
+ border-radius: 8px;
273
+ padding: 24px;
274
+ margin-bottom: 24px;
275
+ ">
276
+ <h3 style="
277
+ font-size: 16px;
278
+ font-weight: 700;
279
+ color: var(--color-text-primary);
280
+ margin: 0 0 16px 0;
281
+ ">Import the stylesheet</h3>
282
+ <pre style="
283
+ background: var(--color-grey-800);
284
+ color: var(--color-grey-100);
285
+ padding: 16px;
286
+ border-radius: 4px;
287
+ overflow-x: auto;
288
+ font-size: 13px;
289
+ margin: 0;
290
+ "><code>&lt;link rel="stylesheet" href="./src/styles/colors.css"&gt;
291
+
292
+ /* Or in JavaScript/TypeScript */
293
+ import './src/styles/colors.css';</code></pre>
294
+ </div>
295
+
296
+ <div style="
297
+ background: var(--color-white);
298
+ border: 1px solid var(--color-grey-200);
299
+ border-radius: 8px;
300
+ padding: 24px;
301
+ margin-bottom: 24px;
302
+ ">
303
+ <h3 style="
304
+ font-size: 16px;
305
+ font-weight: 700;
306
+ color: var(--color-text-primary);
307
+ margin: 0 0 16px 0;
308
+ ">Use in CSS</h3>
309
+ <pre style="
310
+ background: var(--color-grey-800);
311
+ color: var(--color-grey-100);
312
+ padding: 16px;
313
+ border-radius: 4px;
314
+ overflow-x: auto;
315
+ font-size: 13px;
316
+ margin: 0;
317
+ "><code>.my-button {
318
+ background-color: var(--color-primary);
319
+ color: var(--color-text-inverse);
320
+ border: 1px solid var(--color-border);
321
+ }
322
+
323
+ .my-button:hover {
324
+ background-color: var(--color-background-hover);
325
+ }
326
+
327
+ .error-message {
328
+ color: var(--color-error);
329
+ }</code></pre>
330
+ </div>
331
+
332
+ <div style="
333
+ background: var(--color-white);
334
+ border: 1px solid var(--color-grey-200);
335
+ border-radius: 8px;
336
+ padding: 24px;
337
+ ">
338
+ <h3 style="
339
+ font-size: 16px;
340
+ font-weight: 700;
341
+ color: var(--color-text-primary);
342
+ margin: 0 0 16px 0;
343
+ ">With fallback values</h3>
344
+ <pre style="
345
+ background: var(--color-grey-800);
346
+ color: var(--color-grey-100);
347
+ padding: 16px;
348
+ border-radius: 4px;
349
+ overflow-x: auto;
350
+ font-size: 13px;
351
+ margin: 0;
352
+ "><code>/* Always provide fallbacks for robustness */
353
+ .my-component {
354
+ color: var(--color-text-primary, #212121);
355
+ background: var(--color-background, #FFFFFF);
356
+ }</code></pre>
357
+ </div>
358
+ </div>
359
+ `,
360
+ };
361
+ //# sourceMappingURL=color-palette.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-palette.stories.js","sourceRoot":"","sources":["../../src/design-system/color-palette.stories.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './components/toggle-switch';
2
+ export * from './components/action-menu';
3
+ export * from './components/data-table';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ // Export all components
2
+ export * from './components/toggle-switch';
3
+ export * from './components/action-menu';
4
+ export * from './components/data-table';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krumio/trailhand-ui",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "type": "module",
5
5
  "description": "Reusable web components built with Lit Element",
6
6
  "main": "./dist/toggle-switch.js",
@@ -65,14 +65,17 @@
65
65
  "lit": "^3.3.1"
66
66
  },
67
67
  "devDependencies": {
68
- "@storybook/addon-a11y": "^8.6.14",
69
- "@storybook/addon-docs": "^8.6.14",
70
- "@storybook/addon-essentials": "^8.6.14",
71
- "@storybook/test": "^8.6.14",
72
- "@storybook/web-components-vite": "^8.6.14",
68
+ "@storybook/addon-a11y": "^10.2.0",
69
+ "@storybook/addon-docs": "^10.2.0",
70
+ "@storybook/addon-vitest": "^10.2.0",
71
+ "@storybook/web-components-vite": "^10.2.0",
73
72
  "@types/node": "^25.0.3",
74
- "storybook": "^8.6.14",
73
+ "storybook": "^10.2.0",
75
74
  "typescript": "^5.9.3",
76
- "vite": "^6.4.1"
75
+ "vite": "^6.4.1",
76
+ "vitest": "^4.0.17",
77
+ "playwright": "^1.57.0",
78
+ "@vitest/browser-playwright": "^4.0.17",
79
+ "@vitest/coverage-v8": "^4.0.17"
77
80
  }
78
81
  }