testio-tailwind 3.21.0 → 3.22.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 (134) hide show
  1. package/AI_DESIGN_SYSTEM_REFERENCE.md +2407 -0
  2. package/package.json +1 -1
  3. package/src/_data/navigation.json +4 -0
  4. package/src/_includes/header.njk +8 -8
  5. package/src/_includes/page-with-sidebar.njk +10 -1
  6. package/src/assets/scripts/app.js +27 -0
  7. package/src/assets/stylesheets/components/designsystem/designsystem-styles.css +4 -2
  8. package/src/assets/stylesheets/components/tables.css +4 -0
  9. package/src/pages/buttons/block.haml +1 -0
  10. package/src/pages/buttons/button_group.haml +1 -0
  11. package/src/pages/buttons/buttons-lg.haml +1 -0
  12. package/src/pages/buttons/buttons-round.haml +1 -0
  13. package/src/pages/buttons/buttons-sm.haml +1 -0
  14. package/src/pages/buttons/buttons-xl.haml +1 -0
  15. package/src/pages/buttons/buttons.haml +1 -0
  16. package/src/pages/buttons/buttons_input.haml +4 -0
  17. package/src/pages/buttons/dropdown-menu.haml +2 -11
  18. package/src/pages/buttons/square-buttons.haml +15 -0
  19. package/src/pages/components/alerts.haml +1 -0
  20. package/src/pages/components/banner_cards.haml +1 -0
  21. package/src/pages/components/card_badges.haml +8 -7
  22. package/src/pages/components/cards.haml +15 -22
  23. package/src/pages/components/cards_customer.haml +1 -0
  24. package/src/pages/components/cards_fixedwidth.haml +7 -0
  25. package/src/pages/components/cards_iconheader.haml +1 -0
  26. package/src/pages/components/cards_tester.haml +1 -0
  27. package/src/pages/components/descriptionlist.haml +12 -3
  28. package/src/pages/components/devices.haml +1 -0
  29. package/src/pages/components/drawer.haml +1 -0
  30. package/src/pages/components/drawer_filter.haml +1 -0
  31. package/src/pages/components/emptystate.haml +2 -0
  32. package/src/pages/{buttons → components}/info_popover.haml +2 -1
  33. package/src/pages/components/listitem_with_actionbar.haml +1 -0
  34. package/src/pages/components/listitem_with_footer.haml +1 -0
  35. package/src/pages/components/listitems.haml +1 -0
  36. package/src/pages/components/listitems_badge.haml +1 -0
  37. package/src/pages/components/listitems_collapsable.haml +1 -0
  38. package/src/pages/components/listitems_nested.haml +1 -0
  39. package/src/pages/components/listitems_selectable.haml +1 -0
  40. package/src/pages/components/loading_spinner.haml +1 -0
  41. package/src/pages/components/metasidebar.haml +1 -0
  42. package/src/pages/components/modal_details.haml +3 -1
  43. package/src/pages/components/notifications.haml +2 -1
  44. package/src/pages/components/user_item.haml +1 -0
  45. package/src/pages/forms/attachments.pug +71 -0
  46. package/src/pages/forms/checkboxes.haml +1 -0
  47. package/src/pages/forms/checkboxes_devices.haml +1 -0
  48. package/src/pages/forms/date-time.haml +1 -0
  49. package/src/pages/forms/dropzone.pug +38 -0
  50. package/src/pages/forms/flatpickr.haml +1 -1
  51. package/src/pages/forms/form-addon.haml +1 -0
  52. package/src/pages/forms/form-card.haml +1 -0
  53. package/src/pages/forms/form_grid.haml +1 -0
  54. package/src/pages/forms/form_hint.haml +1 -0
  55. package/src/pages/forms/forms.haml +1 -0
  56. package/src/pages/forms/radiobuttons.haml +1 -0
  57. package/src/pages/forms/rating_scale.haml +1 -0
  58. package/src/pages/forms/search.haml +1 -0
  59. package/src/pages/forms/selectable_token.haml +1 -0
  60. package/src/pages/forms/selectable_token_browsers.haml +1 -0
  61. package/src/pages/forms/selectable_token_lg.haml +1 -0
  62. package/src/pages/forms/selectable_token_xl.haml +1 -0
  63. package/src/pages/forms/textarea.haml +4 -0
  64. package/src/pages/forms/toggle-buttons.haml +1 -0
  65. package/src/pages/forms/toggle-switch.haml +1 -0
  66. package/src/pages/forms/trix_editor.pug +1 -0
  67. package/src/pages/icons/bug-icons.haml +1 -0
  68. package/src/pages/icons/index.njk +18 -14
  69. package/src/pages/icons/status-icons.haml +1 -0
  70. package/src/pages/layout/app_layout.haml +2 -0
  71. package/src/pages/layout/margins.haml +1 -0
  72. package/src/pages/layout/max_width.haml +2 -1
  73. package/src/pages/layout/paddings.haml +1 -0
  74. package/src/pages/layout/spacing.haml +1 -0
  75. package/src/pages/{examples → layouts}/agenticqa_splitview.haml +1 -1
  76. package/src/pages/layouts/layout-actionbar.haml +45 -0
  77. package/src/pages/{examples → layouts}/layout-basic.haml +3 -2
  78. package/src/pages/{examples → layouts}/layout-chat.haml +3 -2
  79. package/src/pages/{examples/layout-sidebar-actionbar-metasidebar.haml → layouts/layout-chatwindow.haml} +3 -2
  80. package/src/pages/{examples → layouts}/layout-customer.haml +3 -2
  81. package/src/pages/{examples → layouts}/layout-form-sidebar-actionbar-metasidebar.haml +5 -228
  82. package/src/pages/{examples → layouts}/layout-manager.haml +3 -2
  83. package/src/pages/{examples → layouts}/layout-metasidebar.haml +3 -2
  84. package/src/pages/{examples → layouts}/layout-sidebar.haml +3 -2
  85. package/src/pages/{examples → layouts}/layout-tester.haml +3 -2
  86. package/src/pages/{examples → layouts}/splitview-metasidebar.haml +3 -3
  87. package/src/pages/{examples → layouts}/splitview-testcases.haml +2 -2
  88. package/src/pages/{examples → layouts}/splitview.haml +3 -3
  89. package/src/pages/navigation/header-manager.haml +1 -0
  90. package/src/pages/navigation/header-tester.haml +1 -0
  91. package/src/pages/navigation/header.haml +1 -0
  92. package/src/pages/navigation/header_customer.haml +1 -0
  93. package/src/pages/navigation/header_tester_epam.haml +1 -0
  94. package/src/pages/navigation/product_dropdown.haml +2 -0
  95. package/src/pages/navigation/radio_tabs.haml +1 -0
  96. package/src/pages/navigation/sidebar-manager.haml +2 -1
  97. package/src/pages/navigation/sidebar-tester-elements.haml +1 -0
  98. package/src/pages/navigation/sidebar-tester-seatlimitation.haml +1 -1
  99. package/src/pages/navigation/sidebar-tester.haml +1 -1
  100. package/src/pages/navigation/sidebar.haml +1 -0
  101. package/src/pages/navigation/sidebar_collapsables.haml +1 -0
  102. package/src/pages/navigation/sidebar_customer.haml +1 -0
  103. package/src/pages/navigation/tabnavigation.haml +1 -0
  104. package/src/pages/navigation/tabnavigation_actions.haml +1 -0
  105. package/src/pages/navigation/tabnavigation_pills.haml +1 -0
  106. package/src/pages/navigation/tabnavigation_sm.haml +1 -0
  107. package/src/pages/navigation/test-header-tester.haml +2 -0
  108. package/src/pages/tables/index.njk +7 -0
  109. package/src/pages/tables/tables-cellstyle.haml +38 -0
  110. package/src/pages/tables/tables-grid.haml +31 -0
  111. package/src/pages/tables/tables.haml +16 -0
  112. package/src/pages/tables/tables_alternating.haml +27 -0
  113. package/src/pages/tables/tables_borders.haml +22 -0
  114. package/src/pages/tables/tables_cells.haml +50 -0
  115. package/src/pages/tables/tables_footer.haml +27 -0
  116. package/src/pages/tables/tables_formrow.haml +31 -0
  117. package/src/pages/tables/tables_header.haml +22 -0
  118. package/src/pages/{components → tables}/tables_linked.haml +11 -10
  119. package/src/pages/typography/link_with_icon.haml +10 -2
  120. package/src/pages/typography/linked_icon.haml +6 -0
  121. package/src/pages/typography/section_header.haml +1 -0
  122. package/src/pages/typography/section_header_actions.haml +1 -0
  123. package/src/pages/typography/text_with_icon.haml +3 -2
  124. package/utils/filters.js +161 -0
  125. package/CLAUDE_DESIGN_SYSTEM_REFERENCE.md +0 -1978
  126. package/src/pages/buttons/link-with-icon.haml +0 -13
  127. package/src/pages/components/tables-cellstyle.pug +0 -285
  128. package/src/pages/components/tables-grid.pug +0 -258
  129. package/src/pages/components/tables.haml +0 -57
  130. package/src/pages/components/tables_cells.pug +0 -57
  131. package/src/pages/components/tables_formrow.haml +0 -55
  132. package/src/pages/examples/layout-actionbar.haml +0 -268
  133. package/src/pages/examples/layout-sidebar-actionbar.haml +0 -308
  134. package/src/pages/forms/uploads.pug +0 -101
@@ -1,1978 +0,0 @@
1
- # Test IO Tailwind Design System - Claude Reference Guide
2
-
3
- **Version:** 3.12.0
4
- **Framework:** Tailwind CSS 4.x
5
- **Package:** `testio-tailwind`
6
- **Last Updated:** October 2025
7
- **Node Version:** v23.11.0
8
-
9
- This document serves as a comprehensive reference for Claude AI to utilize the Test IO Tailwind design system when building pages and components in other projects.
10
-
11
- ## Recent Updates (October 2025)
12
-
13
- - ✨ **Page Header Component**: New responsive layout component for dashboard and session pages with chart integration
14
- - 🌙 **Dark Mode Tables**: Comprehensive dark theme support for all table variants
15
- - 📐 **Updated Breakpoints**: Refined responsive breakpoints (lg: 70rem, xl: 90rem, 2xl: 100rem)
16
- - 🎨 **Dark Theme Enhancements**: Border radius increased to 12px, larger grid gutters (40px) in dark mode
17
- - 🔧 **Splitview Improvements**: Better alignment with page header grids, new status and button classes
18
- - 💬 **Chat Components**: Full dark mode support with adjusted layouts
19
- - 🔄 **Status Stepper**: New multi-step process visualization component for AgenticQA
20
- - 🎯 **List Item Badge Fix**: Improved vertical centering for badges
21
-
22
- ---
23
-
24
- ## Table of Contents
25
- 1. [Installation & Setup](#installation--setup)
26
- 2. [Color System](#color-system)
27
- 3. [Typography](#typography)
28
- 4. [Spacing & Layout](#spacing--layout)
29
- 5. [Button Components](#button-components)
30
- 6. [Card Components](#card-components)
31
- 7. [Form Components](#form-components)
32
- 8. [Page Layout Components](#page-layout-components) ⭐ NEW
33
- 9. [Navigation Components](#navigation-components)
34
- 10. [Feedback Components](#feedback-components)
35
- 11. [Data Display Components](#data-display-components)
36
- 12. [Chat Components](#chat-components) ⭐ NEW
37
- 13. [Status & Progress Components](#status--progress-components) ⭐ NEW
38
- 14. [Dark Mode](#dark-mode)
39
- 15. [Utility Patterns](#utility-patterns)
40
- 16. [Best Practices for Claude](#best-practices-for-claude)
41
-
42
- ---
43
-
44
- ## Installation & Setup
45
-
46
- ### NPM Installation
47
- ```bash
48
- npm install testio-tailwind
49
- ```
50
-
51
- ### CSS Import
52
- ```css
53
- @import 'testio-tailwind/dist/static/app.compiled.css';
54
- ```
55
-
56
- ### JavaScript Import
57
- ```javascript
58
- import 'testio-tailwind/dist/static/app.bundled.js';
59
- ```
60
-
61
- ---
62
-
63
- ## Color System
64
-
65
- ### Semantic Colors
66
- Use these color utilities for consistent semantic meaning:
67
-
68
- ```html
69
- <!-- Primary Actions -->
70
- <div class="bg-primary text-white">Primary action</div>
71
- <div class="bg-link text-white">Link color</div>
72
-
73
- <!-- Status Colors -->
74
- <div class="bg-success text-white">Success state</div>
75
- <div class="bg-danger text-white">Error/danger state</div>
76
- <div class="bg-info text-white">Information</div>
77
- <div class="bg-blocked text-white">Warning/blocked</div>
78
- <div class="bg-pending text-gray-darker">Pending state</div>
79
-
80
- <!-- Functional Colors -->
81
- <div class="bg-appbody text-appbody-textcolor">App background</div>
82
- <div class="bg-card">Card background</div>
83
- <div class="bg-header text-white">Header background</div>
84
- <div class="bg-listitem">List item background</div>
85
- <div class="border-bordercolor">Standard border</div>
86
- ```
87
-
88
- ### Color Palette
89
-
90
- **Grays:** `gray-100` through `gray-900`, plus `gray-lightest`, `gray-lighter`, `gray-light`, `gray-dark`, `gray-darker`, `gray-darkest`
91
-
92
- **Brand Colors:**
93
- - **Primary (Petrol):** `petrol` (#236a84 light, #78eac1 dark)
94
- - **Success:** `green` (#8cbd24 light, #33BA9E dark)
95
- - **Danger/Critical:** `red` (#ec0404 light, #FF3131 dark)
96
- - **Warning:** `orange` (#f48d21)
97
- - **Info:** `blue` (#326dd1)
98
- - **Accent Colors:** `teal`, `purple`, `pink`, `yellow`
99
-
100
- **Priority Levels:**
101
- - `critical` - Red (#ec0404)
102
- - `high` - Yellow (#d8ce0d)
103
- - `low` - Gray (#9fa2a8)
104
-
105
- **Issue Types:**
106
- - `visual` - Orange (#f48d21)
107
- - `content` - Blue (#326dd1)
108
- - `usability` - Petrol dark (#263340)
109
-
110
- ---
111
-
112
- ## Typography
113
-
114
- ### Font Families
115
- - **Body/Sans:** `font-sans` - Source Sans 3
116
- - **Monospace:** `font-mono` - Source Code Pro
117
-
118
- ### Headings
119
- Use semantic heading classes with proper visual hierarchy:
120
-
121
- ```html
122
- <h1 class="text-heading-1 font-light">Main Title (2.25rem)</h1>
123
- <h2 class="text-heading-2 font-light">Section Title (1.875rem)</h2>
124
- <h3 class="text-heading-3 font-light">Subsection (1.563rem)</h3>
125
- <h4 class="text-heading-4 font-light">Sub-heading (1.375rem)</h4>
126
- <h5 class="text-heading-5 font-light">Minor heading (1.125rem)</h5>
127
- <h6 class="text-heading-6 font-light">Smallest heading (1rem)</h6>
128
- ```
129
-
130
- ### Display Text
131
- For hero sections and large emphasis:
132
-
133
- ```html
134
- <h1 class="text-display-1 font-extralight">Hero Text (3.25rem)</h1>
135
- <h2 class="text-display-2 font-extralight">Large Display (3rem)</h2>
136
- <h3 class="text-display-3 font-extralight">Medium Display (2.75rem)</h3>
137
- <h4 class="text-display-4 font-extralight">Small Display (2.5rem)</h4>
138
- ```
139
-
140
- ### Body Text Sizes
141
- ```html
142
- <p class="text-base">Base text (0.875rem - default)</p>
143
- <p class="text-lg">Large text (1.25rem)</p>
144
- <p class="text-sm">Small text (0.813rem)</p>
145
- <p class="text-xs">Extra small (0.6875rem)</p>
146
- <p class="text-xxs">Tiny text (0.625rem)</p>
147
- ```
148
-
149
- ### Labels & Special Text
150
- ```html
151
- <label class="text-label">Form Label (0.8125rem, 0.75rem in dark)</label>
152
- <label class="text-label-sm">Small Label (0.75rem)</label>
153
- <h3 class="text-card-header">Card Header (1.125rem in dark)</h3>
154
- ```
155
-
156
- ---
157
-
158
- ## Spacing & Layout
159
-
160
- ### Spacing Scale
161
- The design system uses a custom spacing scale:
162
-
163
- - `xxs` - 0.3125rem (5px)
164
- - `xs` - 0.625rem (10px)
165
- - `sm` - 0.9375rem (15px)
166
- - `md` - 1.25rem (20px)
167
- - `spacing` - 1.875rem (30px) - **base unit**
168
- - `lg` - 3.125rem (50px)
169
- - `xl` - 3.75rem (60px)
170
- - `xxl` - 5.625rem (90px)
171
- - `spacing-2xl` through `spacing-8xl` for larger gaps
172
-
173
- ### Common Spacing Patterns
174
- ```html
175
- <!-- Padding -->
176
- <div class="p-md">Standard padding (20px)</div>
177
- <div class="p-card-padding">Card padding (30px)</div>
178
- <div class="px-md py-sm">Mixed padding</div>
179
-
180
- <!-- Margins -->
181
- <div class="mb-spacing">Standard margin bottom (30px)</div>
182
- <div class="mt-xxs">Tiny margin top (5px)</div>
183
-
184
- <!-- Gaps (for flexbox/grid) -->
185
- <div class="flex gap-xs">Flex with 10px gap</div>
186
- <div class="grid gap-grid-gutter">Grid with gutter (20px light, 40px dark)</div>
187
- ```
188
-
189
- ### Breakpoints
190
- ```css
191
- xs: 30rem (480px)
192
- sm: 640px (default Tailwind)
193
- md: 768px (default Tailwind)
194
- lg: 70rem (1120px) ← Updated
195
- xl: 90rem (1440px) ← Updated
196
- 2xl: 100rem (1600px) ← Updated
197
- 3xl: 1930px
198
- ```
199
-
200
- ### Responsive Patterns
201
- ```html
202
- <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-grid-gutter">
203
- <!-- Responsive grid -->
204
- </div>
205
- ```
206
-
207
- ---
208
-
209
- ## Button Components
210
-
211
- ### Basic Buttons
212
- ```html
213
- <!-- Primary button -->
214
- <button class="btn btn-primary">Primary Action</button>
215
-
216
- <!-- Secondary (outline) button -->
217
- <button class="btn btn-secondary">Secondary Action</button>
218
-
219
- <!-- Ghost button (no border/background) -->
220
- <button class="btn btn-ghost">Ghost Action</button>
221
-
222
- <!-- Ghost inverted (white text) -->
223
- <button class="btn btn-ghost-inverted">Ghost Inverted</button>
224
- ```
225
-
226
- ### Semantic Button Variants
227
- ```html
228
- <button class="btn btn-success">Success Action</button>
229
- <button class="btn btn-danger">Delete/Danger</button>
230
- <button class="btn btn-warning">Warning Action</button>
231
- <button class="btn btn-info">Info Action</button>
232
- ```
233
-
234
- ### Button Sizes
235
- ```html
236
- <!-- Small button -->
237
- <button class="btn btn-sm btn-primary">Small</button>
238
-
239
- <!-- Default button (h-btn = 2.5rem/40px) -->
240
- <button class="btn btn-primary">Default</button>
241
-
242
- <!-- Large square button (5.625rem) -->
243
- <button class="btn btn-lg btn-primary">
244
- <i class="icon icon-star"></i>
245
- </button>
246
-
247
- <!-- Extra large button with label (9.375rem) -->
248
- <div class="btn-lg-wrapper">
249
- <button class="btn btn-xl btn-primary">
250
- <i class="icon icon-upload"></i>
251
- Upload
252
- </button>
253
- <span class="btn-label">Upload files</span>
254
- </div>
255
- ```
256
-
257
- ### Button Shapes
258
- ```html
259
- <!-- Square icon button -->
260
- <button class="btn btn-square btn-primary">
261
- <i class="icon icon-search"></i>
262
- </button>
263
-
264
- <!-- Circle button -->
265
- <button class="btn btn-circle btn-primary">
266
- <i class="icon icon-add"></i>
267
- </button>
268
-
269
- <!-- Block button (full width) -->
270
- <button class="btn btn-block btn-primary">Full Width</button>
271
- ```
272
-
273
- ### Button States
274
- ```html
275
- <!-- Disabled button -->
276
- <button class="btn btn-primary" disabled>Disabled</button>
277
-
278
- <!-- Inverted button (white bg) -->
279
- <button class="btn btn-primary-inverted">Inverted</button>
280
-
281
- <!-- Dashed border button -->
282
- <button class="btn btn-dashed">Add New</button>
283
- ```
284
-
285
- ### Buttons with Icons
286
- ```html
287
- <button class="btn btn-primary">
288
- <i class="icon icon-save mr-xs"></i>
289
- Save Changes
290
- </button>
291
-
292
- <button class="btn btn-secondary">
293
- <i class="icon icon-download mr-xs"></i>
294
- Download
295
- </button>
296
- ```
297
-
298
- ---
299
-
300
- ## Card Components
301
-
302
- ### Basic Card Structure
303
- ```html
304
- <div class="card">
305
- <div class="card-header">
306
- <h3 class="card-title">Card Title</h3>
307
- </div>
308
- <div class="card-body">
309
- <p>Card content goes here</p>
310
- </div>
311
- <div class="card-footer">
312
- <button class="btn btn-primary">Action</button>
313
- <button class="btn btn-secondary">Cancel</button>
314
- </div>
315
- </div>
316
- ```
317
-
318
- ### Card Sizes
319
- ```html
320
- <!-- Small card (11.25rem on sm+ screens) -->
321
- <div class="card card-sm">
322
- <div class="card-header">
323
- <h3 class="card-title">Small Card</h3>
324
- </div>
325
- <div class="card-body">Content</div>
326
- </div>
327
-
328
- <!-- Medium card (17.5rem) -->
329
- <div class="card card-md">
330
- <div class="card-header">
331
- <h3 class="card-title">Medium Card</h3>
332
- </div>
333
- <div class="card-body">Content</div>
334
- </div>
335
-
336
- <!-- Large card (23.75rem) -->
337
- <div class="card card-lg">
338
- <div class="card-header">
339
- <h3 class="card-title">Large Card</h3>
340
- </div>
341
- <div class="card-body">Content</div>
342
- </div>
343
- ```
344
-
345
- ### Card Variants
346
- ```html
347
- <!-- Highlighted card (info blue background) -->
348
- <div class="card highlight">
349
- <div class="card-header">
350
- <h3 class="card-title">Featured Card</h3>
351
- </div>
352
- <div class="card-body">Important content</div>
353
- </div>
354
-
355
- <!-- Card with highlighted header only -->
356
- <div class="card">
357
- <div class="card-header highlight">
358
- <h3 class="card-title">Highlighted Header</h3>
359
- </div>
360
- <div class="card-body">Regular content</div>
361
- </div>
362
-
363
- <!-- Card with image -->
364
- <div class="card">
365
- <img src="image.jpg" alt="Card image" class="card-image">
366
- <div class="card-header">
367
- <h3 class="card-title">Card with Image</h3>
368
- </div>
369
- <div class="card-body">Content</div>
370
- </div>
371
-
372
- <!-- Card with icon header -->
373
- <div class="card">
374
- <div class="card-icon-header">
375
- <i class="icon icon-star"></i>
376
- </div>
377
- <div class="card-body">
378
- <h3 class="card-title">Icon Card</h3>
379
- <p>Content below icon</p>
380
- </div>
381
- </div>
382
- ```
383
-
384
- ### Card Layouts
385
- ```html
386
- <!-- Grid of cards (responsive) -->
387
- <div class="grid-cards">
388
- <div class="card">...</div>
389
- <div class="card">...</div>
390
- <div class="card">...</div>
391
- </div>
392
-
393
- <!-- List of cards (horizontal wrap) -->
394
- <div class="list-cards">
395
- <div class="card card-sm">...</div>
396
- <div class="card card-sm">...</div>
397
- </div>
398
-
399
- <!-- Achievements grid (6 columns on 2xl screens) -->
400
- <div class="grid-cards-achievements">
401
- <div class="card">...</div>
402
- <div class="card">...</div>
403
- </div>
404
- ```
405
-
406
- ---
407
-
408
- ## Form Components
409
-
410
- ### Form Group Structure
411
- ```html
412
- <div class="form-group">
413
- <label class="form-label">Email Address</label>
414
- <input type="email" class="form-control" placeholder="Enter email">
415
- </div>
416
-
417
- <!-- Optional field -->
418
- <div class="form-group">
419
- <label class="form-label optional">Phone Number</label>
420
- <input type="tel" class="form-control">
421
- </div>
422
- ```
423
-
424
- ### Form Inputs
425
- ```html
426
- <!-- Text input -->
427
- <input type="text" class="form-control" placeholder="Enter text">
428
-
429
- <!-- Textarea -->
430
- <textarea class="form-control" rows="4" placeholder="Enter description"></textarea>
431
-
432
- <!-- Disabled input -->
433
- <input type="text" class="form-control" disabled value="Read only">
434
-
435
- <!-- With validation error -->
436
- <div class="form-group">
437
- <label class="form-label">Username</label>
438
- <div class="field_with_errors">
439
- <input type="text" class="form-control">
440
- </div>
441
- <div class="form-hint error">Username is required</div>
442
- </div>
443
- ```
444
-
445
- ### Form Hints
446
- ```html
447
- <!-- Standard hint -->
448
- <div class="form-hint">This field is optional</div>
449
-
450
- <!-- Error hint -->
451
- <div class="form-hint error">Please enter a valid email</div>
452
- ```
453
-
454
- ### Select Inputs
455
- ```html
456
- <!-- Standard select -->
457
- <select class="form-control">
458
- <option>Choose an option</option>
459
- <option value="1">Option 1</option>
460
- <option value="2">Option 2</option>
461
- </select>
462
- ```
463
-
464
- ### Checkboxes and Radios
465
- ```html
466
- <!-- Checkbox -->
467
- <div class="form-check">
468
- <input type="checkbox" id="check1" class="form-check-input">
469
- <label for="check1" class="form-check-label">Accept terms</label>
470
- </div>
471
-
472
- <!-- Radio button -->
473
- <div class="form-radio">
474
- <input type="radio" id="radio1" name="option" class="form-radio-input">
475
- <label for="radio1" class="form-radio-label">Option 1</label>
476
- </div>
477
- ```
478
-
479
- ### Toggle Switch
480
- ```html
481
- <div class="toggle-switch">
482
- <input type="checkbox" id="toggle1" class="toggle-input">
483
- <label for="toggle1" class="toggle-label">Enable notifications</label>
484
- </div>
485
- ```
486
-
487
- ### Form with Addon
488
- ```html
489
- <div class="form-group with-addon">
490
- <label class="form-label">Price</label>
491
- <input type="number" class="form-control" placeholder="0.00">
492
- <div class="form-addon">USD</div>
493
- </div>
494
- ```
495
-
496
- ### Inverted Forms (for dark backgrounds)
497
- ```html
498
- <div class="form-group inverted">
499
- <label class="form-label">Email</label>
500
- <input type="email" class="form-control" placeholder="Enter email">
501
- <div class="form-hint">We'll never share your email</div>
502
- </div>
503
- ```
504
-
505
- ---
506
-
507
- ## Page Layout Components
508
-
509
- ### Page Header Component ⭐ NEW
510
-
511
- A responsive grid layout component for dashboard and session management pages.
512
-
513
- #### Basic Page Header
514
- ```html
515
- <div class="page-header">
516
- <div class="card page-maincard p-card-padding">
517
- <h1 class="text-card-header">Session Details</h1>
518
- <h2 class="page-session-title">Test Session Title</h2>
519
-
520
- <dl class="page-meta-info">
521
- <dt class="label">Created on:</dt>
522
- <dd>2025-10-21 10:45 AM</dd>
523
-
524
- <dt class="label">Last test:</dt>
525
- <dd>2025-10-21 11:30 AM</dd>
526
-
527
- <dt class="label">ID:</dt>
528
- <dd>321456987</dd>
529
-
530
- <dt class="label">URL:</dt>
531
- <dd class="row-testsuite">
532
- <a href="#" class="label">Test Suite Name</a>
533
- </dd>
534
-
535
- <dt class="label">Status:</dt>
536
- <dd class="text-white">Active</dd>
537
- </dl>
538
- </div>
539
-
540
- <div class="page-actions">
541
- <a href="#" class="btn btn-primary btn-main">
542
- <span class="icon icon-test-running-xl"></span>
543
- Start Test
544
- </a>
545
- </div>
546
- </div>
547
- ```
548
-
549
- **Responsive Grid Behavior:**
550
- - **Mobile (default):** 1 column
551
- - **sm:** 2 columns
552
- - **md:** 3 columns
553
- - **lg:** 4 columns
554
- - **xl:** 5 columns
555
-
556
- **Key Classes:**
557
- - `.page-header` - Main grid container with responsive columns
558
- - `.page-maincard` - Primary content card (spans 2-4 columns based on screen size)
559
- - `.page-actions` - Action buttons column (vertical on md+, horizontal on mobile)
560
- - `.page-session-title` - Session/test title with bottom margin
561
- - `.page-meta-info` - Metadata grid (2 cols mobile, 6 cols xl)
562
- - `.row-testsuite` - Special metadata row that spans 5 columns on xl
563
-
564
- #### Page Header with Chart
565
- ```html
566
- <div class="page-header with-chart">
567
- <div class="card page-maincard p-card-padding">
568
- <h1 class="text-card-header">Session Details</h1>
569
- <h2 class="page-session-title">Test Session Title</h2>
570
- <dl class="page-meta-info">
571
- <dt class="label">Created on:</dt>
572
- <dd>2025-10-21 10:45 AM</dd>
573
- <dt class="label">Status:</dt>
574
- <dd class="text-white">Running</dd>
575
- </dl>
576
- </div>
577
-
578
- <div class="page-chart card p-card-padding">
579
- <div class="echarts-container" id="chart"></div>
580
- </div>
581
-
582
- <div class="page-actions">
583
- <a href="#" class="btn btn-primary btn-main">
584
- <span class="icon icon-review-xl"></span>
585
- Show Report
586
- </a>
587
- <a href="#" class="btn btn-secondary">Re-run All Checks</a>
588
- </div>
589
- </div>
590
- ```
591
-
592
- **Layout with `.with-chart`:**
593
- - Main card spans: md:1 col, lg:2 cols, xl:3 cols (reduced to fit chart)
594
- - Chart card gets its own column
595
- - Actions column spans: sm:2 cols, md:1 col
596
-
597
- #### Page Header with Forms
598
- ```html
599
- <div class="page-header">
600
- <div class="card page-maincard p-card-padding">
601
- <div class="form-grid">
602
- <div class="form-group">
603
- <label class="form-label">Test Name</label>
604
- <input type="text" class="form-control" placeholder="Enter test name">
605
- </div>
606
- <div class="form-group">
607
- <label class="form-label">URL for Testing</label>
608
- <input type="url" class="form-control" placeholder="https://example.com">
609
- </div>
610
- <!-- More form groups -->
611
- </div>
612
- </div>
613
-
614
- <div class="page-actions">
615
- <a href="#" class="btn btn-primary btn-xl">
616
- <span class="icon icon-test-running-xl"></span>
617
- Save and Run Test
618
- </a>
619
- <a href="#" class="btn btn-secondary">Save Draft</a>
620
- <a href="#" class="btn btn-secondary">Cancel</a>
621
- </div>
622
- </div>
623
- ```
624
-
625
- **Action Buttons Behavior:**
626
- - Horizontal layout on mobile with `ml-xxs` spacing (except first), `mr-xxs` spacing (except last)
627
- - Vertical stack on md+ screens with `mb-xs` spacing (except last)
628
- - Changed from `lg:flex-col` to `md:flex-col` for earlier responsive stacking
629
- - `.btn-main` class for primary action (grows to fill available space, uses `md:flex-col`)
630
- - `.btn-xl` icons are hidden below lg, shown on lg+ with `lg:block`, height changes to `md:h-btn-xl`
631
- - Border color: `border-bordercolor`
632
- - Actions column spans: `sm:col-span-2 md:col-span-1`
633
-
634
- ### Splitview Component ⭐ UPDATED
635
-
636
- Two-pane layout for list and detail views with responsive behavior. Recently enhanced with status and button classes.
637
-
638
- #### Basic Splitview
639
- ```html
640
- <div class="splitview">
641
- <div class="splitview-list">
642
- <div class="list-item">
643
- <h4 class="list-item-title">Item 1</h4>
644
- <p class="list-item-description">Description</p>
645
- </div>
646
- </div>
647
- <div class="splitview-detail">
648
- <h2>Detail View</h2>
649
- <p>Selected item details</p>
650
- </div>
651
- </div>
652
- ```
653
-
654
- #### Splitview with Status Groups (NEW)
655
- ```html
656
- <div class="splitview">
657
- <div class="splitview-list">
658
- <details class="splitview-group" open>
659
- <summary class="splitview-group-header">
660
- <h3 class="splitview-group-title">Test Group 1</h3>
661
- <i class="icon icon-chevron-down"></i>
662
- </summary>
663
-
664
- <!-- Status stepper in group -->
665
- <div class="splitview-group-status">
666
- <div class="status-stepper">
667
- <div class="status-step completed">
668
- <i class="icon icon-check-thick-centered"></i>
669
- 3 done
670
- </div>
671
- <div class="status-step active">
672
- <i class="icon icon-sync"></i>
673
- Executing
674
- </div>
675
- <div class="status-step">
676
- + 3 to do
677
- </div>
678
- </div>
679
- </div>
680
-
681
- <!-- List items -->
682
- <div class="list-item">...</div>
683
- <div class="list-item">...</div>
684
-
685
- <!-- Show dismissed button -->
686
- <button class="splitview-btn">
687
- Show 5 dismissed items
688
- </button>
689
- </details>
690
- </div>
691
- </div>
692
- ```
693
-
694
- **New Splitview Classes:**
695
- - `.splitview-group-status` - Status display area within groups (bg-listitem, border-bottom, padding)
696
- - `.splitview-btn` - Full-width button for showing/hiding items (text-label-color, centered text)
697
- - `.splitview-group .splitview-btn` - Button within groups (rounded bottom corners, bg-listitem)
698
-
699
- **Splitview Group Status Styling:**
700
- ```css
701
- .splitview-group-status {
702
- padding-left: lg;
703
- padding-right: md;
704
- padding-top/bottom: xs;
705
- background: listitem color;
706
- border-bottom: 1px solid appbody;
707
- }
708
- ```
709
-
710
- ---
711
-
712
- ## Navigation Components
713
-
714
- ### Header
715
- ```html
716
- <header class="header">
717
- <div class="header-logo">
718
- <img src="logo.svg" alt="Logo">
719
- </div>
720
- <nav class="header-nav">
721
- <a href="#" class="nav-link">Dashboard</a>
722
- <a href="#" class="nav-link active">Projects</a>
723
- <a href="#" class="nav-link">Settings</a>
724
- </nav>
725
- <div class="header-actions">
726
- <button class="btn btn-sm btn-primary">New Project</button>
727
- </div>
728
- </header>
729
- ```
730
-
731
- ### Sidebar
732
- ```html
733
- <aside class="sidebar">
734
- <nav class="sidebar-nav">
735
- <a href="#" class="sidebar-link active">
736
- <i class="icon icon-home"></i>
737
- Dashboard
738
- </a>
739
- <a href="#" class="sidebar-link">
740
- <i class="icon icon-folder"></i>
741
- Projects
742
- </a>
743
- <a href="#" class="sidebar-link">
744
- <i class="icon icon-settings"></i>
745
- Settings
746
- </a>
747
- </nav>
748
- </aside>
749
- ```
750
-
751
- ### Tabs
752
- ```html
753
- <div class="tabs">
754
- <button class="tab tab-active">Overview</button>
755
- <button class="tab">Details</button>
756
- <button class="tab">Settings</button>
757
- </div>
758
-
759
- <div class="tab-content">
760
- <div class="tab-pane active">Overview content</div>
761
- <div class="tab-pane">Details content</div>
762
- <div class="tab-pane">Settings content</div>
763
- </div>
764
- ```
765
-
766
- ### Dropdown
767
- ```html
768
- <div class="dropdown">
769
- <button class="btn btn-secondary dropdown-toggle">
770
- Actions
771
- <i class="icon icon-chevron-down"></i>
772
- </button>
773
- <div class="dropdown-menu">
774
- <a href="#" class="dropdown-item">Edit</a>
775
- <a href="#" class="dropdown-item">Duplicate</a>
776
- <div class="dropdown-divider"></div>
777
- <a href="#" class="dropdown-item text-danger">Delete</a>
778
- </div>
779
- </div>
780
- ```
781
-
782
- ---
783
-
784
- ## Feedback Components
785
-
786
- ### Alerts
787
- ```html
788
- <!-- Success alert -->
789
- <div class="alert alert-success">
790
- <i class="icon icon-check-circle"></i>
791
- Changes saved successfully!
792
- </div>
793
-
794
- <!-- Error alert -->
795
- <div class="alert alert-danger">
796
- <i class="icon icon-exclamation-circle"></i>
797
- An error occurred. Please try again.
798
- </div>
799
-
800
- <!-- Info alert -->
801
- <div class="alert alert-info">
802
- <i class="icon icon-info-circle"></i>
803
- New features are available.
804
- </div>
805
-
806
- <!-- Warning alert -->
807
- <div class="alert alert-warning">
808
- <i class="icon icon-exclamation-triangle"></i>
809
- Your trial expires in 3 days.
810
- </div>
811
- ```
812
-
813
- ### Notifications
814
- ```html
815
- <div class="notification notification-success">
816
- <div class="notification-icon">
817
- <i class="icon icon-check"></i>
818
- </div>
819
- <div class="notification-content">
820
- <h4 class="notification-title">Success</h4>
821
- <p class="notification-message">Your changes have been saved.</p>
822
- </div>
823
- <button class="notification-close">
824
- <i class="icon icon-close"></i>
825
- </button>
826
- </div>
827
- ```
828
-
829
- ### Loading Spinner
830
- ```html
831
- <div class="loading-spinner">
832
- <div class="spinner"></div>
833
- <p class="loading-text">Loading...</p>
834
- </div>
835
- ```
836
-
837
- ### Empty State
838
- ```html
839
- <div class="emptystate-message">
840
- <i class="icon icon-inbox text-icon-xl"></i>
841
- <h3 class="text-heading-4">No items found</h3>
842
- <p class="text-sm text-gray-dark">Get started by creating your first item.</p>
843
- <button class="btn btn-primary mt-md">Create Item</button>
844
- </div>
845
- ```
846
-
847
- ### Progress Bar
848
- ```html
849
- <!-- Thick progress bar -->
850
- <div class="progress">
851
- <div class="progress-bar" style="width: 75%">75%</div>
852
- </div>
853
-
854
- <!-- Thin progress bar -->
855
- <div class="progress progress-thin">
856
- <div class="progress-bar bg-success" style="width: 60%"></div>
857
- </div>
858
- ```
859
-
860
- ### Badges
861
- ```html
862
- <span class="badge badge-primary">New</span>
863
- <span class="badge badge-success">Active</span>
864
- <span class="badge badge-danger">Urgent</span>
865
- <span class="badge badge-warning">Pending</span>
866
- <span class="badge badge-info">Info</span>
867
- ```
868
-
869
- ### Tags
870
- ```html
871
- <div class="tag">Design</div>
872
- <div class="tag tag-success">Completed</div>
873
- <div class="tag tag-danger">High Priority</div>
874
- ```
875
-
876
- ---
877
-
878
- ## Data Display Components
879
-
880
- ### Tables ⭐ UPDATED
881
-
882
- The design system includes several table variants with comprehensive dark mode support.
883
-
884
- #### Basic Table
885
- ```html
886
- <table class="table">
887
- <thead>
888
- <tr>
889
- <th>Name</th>
890
- <th>Status</th>
891
- <th>Actions</th>
892
- </tr>
893
- </thead>
894
- <tbody>
895
- <tr>
896
- <td>John Doe</td>
897
- <td>
898
- <span class="badge badge-success">Active</span>
899
- </td>
900
- <td>
901
- <button class="btn btn-sm btn-ghost">Edit</button>
902
- </td>
903
- </tr>
904
- </tbody>
905
- </table>
906
- ```
907
-
908
- **Dark Mode Features:**
909
- - Increased padding (`dark:py-md` on cells vs `py-xs` in light mode)
910
- - Dark background on cells (`dark:bg-black` for td, `dark:bg-appbody` for th)
911
- - Row borders (`dark:border-b-4 dark:border-appbody` instead of cell borders)
912
- - Uppercase header text (`dark:uppercase`)
913
- - No top/side borders in dark mode (`dark:border-0` on cells)
914
-
915
- #### Table Variants
916
-
917
- **Bordered Table:**
918
- ```html
919
- <table class="table table-bordered">
920
- <!-- Full borders around all cells -->
921
- <!-- Dark mode: 2px border with appbody color -->
922
- </table>
923
- ```
924
-
925
- **Borderless Table:**
926
- ```html
927
- <table class="table table-borderless">
928
- <!-- No borders on any cells -->
929
- </table>
930
- ```
931
-
932
- **Small/Compact Table:**
933
- ```html
934
- <table class="table table-sm">
935
- <!-- Reduced padding (pr-spacing), more compact -->
936
- </table>
937
- ```
938
-
939
- **Standard Table (Key-Value Style):**
940
- ```html
941
- <table class="table-standard">
942
- <thead>
943
- <tr>
944
- <th>Property</th>
945
- <th>Value</th>
946
- </tr>
947
- </thead>
948
- <tbody>
949
- <tr>
950
- <td>Name</td>
951
- <td>John Doe</td>
952
- </tr>
953
- <tr>
954
- <td>Email</td>
955
- <td>john@example.com</td>
956
- </tr>
957
- </tbody>
958
- <tfoot>
959
- <tr>
960
- <td>Total</td>
961
- <td>2 items</td>
962
- </tr>
963
- </tfoot>
964
- </table>
965
- ```
966
- - No wrapping by default (`md:whitespace-nowrap`)
967
- - First column minimal width, last column fills space (`.cell-full-width` to override)
968
- - Add `.wrap` or `.pre` to cells for text wrapping
969
-
970
- #### Cell Style Table (Status Tracking)
971
- ```html
972
- <table class="table-cellstyle">
973
- <thead>
974
- <tr>
975
- <th class="completed">Feature A</th>
976
- <th class="inprogress">Feature B</th>
977
- <th class="missing">Feature C</th>
978
- </tr>
979
- </thead>
980
- <tbody>
981
- <tr>
982
- <td class="completed">Implementation done</td>
983
- <td class="inprogress">Working on it...</td>
984
- <td class="missing">Not started</td>
985
- </tr>
986
- </tbody>
987
- </table>
988
- ```
989
-
990
- **Status Classes:**
991
- - `.completed` - Green checkmark icon (after pseudo-element)
992
- - `.inprogress` - Clock icon, gray background, italic text
993
- - `.missing` - Exclamation icon (on th), transparent bg, italic disabled text (on td)
994
-
995
- **Editable Cells:**
996
- ```html
997
- <td class="cell-editable">
998
- <a href="#edit" class="cell-content-editable">
999
- Click to edit this content
1000
- </a>
1001
- </td>
1002
-
1003
- <!-- Edit state (shown when editing) -->
1004
- <td class="cell-editable">
1005
- <div class="cell-edit-state">
1006
- <form class="edit-form">
1007
- <textarea>Content being edited</textarea>
1008
- <div class="cell-actions">
1009
- <button class="btn btn-success"><i class="icon icon-check"></i></button>
1010
- <button class="btn btn-danger"><i class="icon icon-close"></i></button>
1011
- </div>
1012
- </form>
1013
- </div>
1014
- </td>
1015
- ```
1016
-
1017
- **Selectable Cells:**
1018
- ```html
1019
- <td class="cell-selectable completed">
1020
- <input type="checkbox" id="cell1">
1021
- <label for="cell1">Option text with completion status</label>
1022
- </td>
1023
- ```
1024
- - Checkbox appears on the left
1025
- - Hover highlights the entire cell
1026
- - Status icons (completed/inprogress) appear on the right
1027
- - Selected state: primary background with white text
1028
-
1029
- #### Grid Table (CSS Grid Layout)
1030
- ```html
1031
- <table class="table-grid">
1032
- <thead>
1033
- <tr>
1034
- <th>Col 1</th>
1035
- <th>Col 2</th>
1036
- <th>Col 3</th>
1037
- </tr>
1038
- </thead>
1039
- <tbody>
1040
- <tr>
1041
- <td>Data 1</td>
1042
- <td>Data 2</td>
1043
- <td>Data 3</td>
1044
- </tr>
1045
- </tbody>
1046
- </table>
1047
- ```
1048
- - Uses CSS Grid (`display: grid; grid-flow-col`)
1049
- - Better for complex responsive tables
1050
- - `thead`, `tbody`, `tr` use `display: contents`
1051
-
1052
- #### Table Cell Utilities
1053
- ```html
1054
- <!-- Fixed width cell -->
1055
- <td class="td-fixed-width">Limited to 150px</td>
1056
-
1057
- <!-- Actions cell (right-aligned, constrained width) -->
1058
- <td class="action-cell">
1059
- <button class="btn btn-sm btn-ghost">Edit</button>
1060
- <button class="btn btn-sm btn-ghost">Delete</button>
1061
- </td>
1062
-
1063
- <!-- Title cell (max 500px) -->
1064
- <td class="title">Very long title that will be constrained</td>
1065
-
1066
- <!-- Full width cell in table-standard -->
1067
- <td class="cell-full-width">Takes all available space</td>
1068
-
1069
- <!-- Text wrapping in table-standard -->
1070
- <td class="wrap">This text will wrap normally</td>
1071
- <td class="pre">This text preserves whitespace</td>
1072
- ```
1073
-
1074
- #### Interactive Table Rows
1075
- ```html
1076
- <!-- Hover to highlight entire row (blue background) -->
1077
- <tr class="linked-row">
1078
- <td>Click anywhere on this row</td>
1079
- <td>More data</td>
1080
- </tr>
1081
-
1082
- <!-- Hover to highlight just this cell -->
1083
- <td class="linked-cell">Click this specific cell</td>
1084
-
1085
- <!-- Highlight parent row when child element is hovered -->
1086
- <tr>
1087
- <td>
1088
- <a class="highlight-parent-row" href="#">Hover this link to highlight row</a>
1089
- </td>
1090
- <td>Other data</td>
1091
- </tr>
1092
- ```
1093
-
1094
- ### List Items
1095
-
1096
- #### Basic List
1097
- ```html
1098
- <div class="lists">
1099
- <div class="list-item">
1100
- <div class="list-item-content">
1101
- <h4 class="list-item-title">Item Title</h4>
1102
- <p class="list-item-description">Item description text</p>
1103
- </div>
1104
- <div class="list-item-actions">
1105
- <button class="btn btn-sm btn-ghost">View</button>
1106
- </div>
1107
- </div>
1108
- </div>
1109
- ```
1110
-
1111
- #### List Item with Badge ⭐ UPDATED
1112
- ```html
1113
- <div class="list-item">
1114
- <div class="listitem-badge">
1115
- <i class="icon icon-check text-success"></i>
1116
- </div>
1117
- <div class="list-item-content">
1118
- <h4 class="list-item-title">Completed Item</h4>
1119
- <p class="list-item-description">This item has been completed</p>
1120
- </div>
1121
- </div>
1122
- ```
1123
-
1124
- **Badge Styling (Updated):**
1125
- - Changed from `items-start` to `items-center` for better vertical alignment
1126
- - Changed from `p-xxs pt-xs` to `px-xxs py-xxs` for consistent padding
1127
- - Width: `w-btn`, Background: `bg-black` (light), `bg-gray-750` (dark)
1128
- - Text color: white, with bold font in dark mode
1129
- - Rounded left corners (`rounded-l`)
1130
-
1131
- ### User Item
1132
- ```html
1133
- <div class="user-item">
1134
- <div class="user-item-avatar">
1135
- <img src="avatar.jpg" alt="User">
1136
- </div>
1137
- <div class="user-item-info">
1138
- <h4 class="user-item-name">Jane Smith</h4>
1139
- <p class="user-item-email">jane@example.com</p>
1140
- </div>
1141
- <div class="user-item-actions">
1142
- <button class="btn btn-sm btn-secondary">Message</button>
1143
- </div>
1144
- </div>
1145
- ```
1146
-
1147
- ### Task/Issue Item
1148
- ```html
1149
- <div class="task-item">
1150
- <div class="task-item-header">
1151
- <h4 class="task-item-title">Fix login bug</h4>
1152
- <span class="badge badge-danger">High</span>
1153
- </div>
1154
- <div class="task-item-body">
1155
- <p class="task-item-description">Users unable to login with SSO</p>
1156
- </div>
1157
- <div class="task-item-footer">
1158
- <span class="task-item-meta">Due: Oct 25, 2025</span>
1159
- <span class="task-item-meta">Assigned to: John</span>
1160
- </div>
1161
- </div>
1162
- ```
1163
-
1164
- ---
1165
-
1166
- ## Chat Components ⭐ NEW
1167
-
1168
- Comprehensive chat interface components with full dark mode support.
1169
-
1170
- ### Chat Message List
1171
- ```html
1172
- <div class="list-chat-messages">
1173
- <div class="chat-message-item">
1174
- <img src="avatar.jpg" alt="User" class="chat-avatar">
1175
-
1176
- <div class="chat-header">
1177
- <span class="chat-title">
1178
- <span class="chat-author">John Doe</span>
1179
- </span>
1180
- <span class="chat-time">2 hours ago</span>
1181
- </div>
1182
-
1183
- <div class="chat-message">
1184
- <p>This is a chat message with some content.</p>
1185
- </div>
1186
-
1187
- <div class="chat-actions">
1188
- <button class="btn btn-ghost btn-sm">
1189
- <i class="icon icon-reply"></i>
1190
- </button>
1191
- </div>
1192
- </div>
1193
- </div>
1194
- ```
1195
-
1196
- **Grid Layout:**
1197
- - Uses CSS Grid with named areas: `chat-avatar`, `chat-header`, `chat-message`, `chat-actions`
1198
- - Light mode: 3 columns (avatar, header/message, actions)
1199
- - Dark mode: 2 columns (avatar, header/message) - actions are hidden
1200
-
1201
- **Component Classes:**
1202
- - `.list-chat-messages` - Container grid with gap-md
1203
- - `.chat-message-item` - Individual message (max-w-capped by default)
1204
- - `.chat-avatar` - Avatar image (w-spacing h-spacing, rounded-full, mr-xs light / mr-md dark)
1205
- - `.chat-header` - Message header (text-label-color, dark: bg-listitem rounded-t)
1206
- - `.chat-author` - Author name (ml-xxs font-semibold)
1207
- - `.chat-message` - Message body (p-xs rounded bg-card, dark: full width, rounded-t-none)
1208
- - `.chat-actions` - Action buttons column (hidden in dark mode via grid template)
1209
-
1210
- ### Full Width Chat
1211
- ```html
1212
- <div class="list-chat-messages full-width">
1213
- <!-- Messages span full container width (max-w-full) -->
1214
- <div class="chat-message-item">...</div>
1215
- </div>
1216
- ```
1217
-
1218
- ### Chat Message Variants
1219
-
1220
- #### Announcement Message
1221
- ```html
1222
- <div class="chat-message">
1223
- <div class="message-banner announcement">
1224
- System Announcement: Maintenance scheduled
1225
- </div>
1226
- <p>The system will be down for maintenance on Saturday.</p>
1227
- </div>
1228
- ```
1229
- - Blue banner at top of message (`bg-info text-white`)
1230
- - Speaker icon before text
1231
- - Border-bottom separator
1232
-
1233
- #### Mentioned Message
1234
- ```html
1235
- <div class="chat-message">
1236
- <div class="message-banner mentioned">
1237
- <span class="text-mentioned">@YourName</span> mentioned you
1238
- </div>
1239
- <p>Hey, can you take a look at this?</p>
1240
- </div>
1241
- ```
1242
- - Blue banner with @ icon
1243
- - Bolded mention (`font-bold`)
1244
-
1245
- ### Dark Mode Chat Behavior
1246
-
1247
- In dark mode (`.dark` class on parent):
1248
- - Grid changes to 2 columns (actions hidden)
1249
- - Chat header gets background (`bg-listitem`) and full rounded-top
1250
- - Chat message background darker (`bg-listitem`) with no top border radius
1251
- - Avatar margin increased to `mr-md`
1252
- - Message full width (`dark:w-full`)
1253
-
1254
- ---
1255
-
1256
- ## Status & Progress Components ⭐ NEW
1257
-
1258
- ### Status Stepper
1259
-
1260
- A horizontal stepper component for visualizing multi-step processes, particularly useful in AgenticQA workflows.
1261
-
1262
- #### Icon-based Status Stepper
1263
- ```html
1264
- <div class="status-stepper">
1265
- <div class="status-step completed">
1266
- <i class="icon icon-check-thick-centered"></i>
1267
- 3 done
1268
- </div>
1269
- <div class="status-step active">
1270
- <i class="icon icon-sync"></i>
1271
- Executing checks
1272
- </div>
1273
- <div class="status-step">
1274
- + 3 to do
1275
- </div>
1276
- </div>
1277
- ```
1278
-
1279
- #### Counter-based Status Stepper
1280
- ```html
1281
- <div class="status-stepper">
1282
- <div class="status-step completed">
1283
- <span class="counter">99</span>
1284
- Completed
1285
- </div>
1286
- <div class="status-step active">
1287
- <span class="counter">12</span>
1288
- Active
1289
- </div>
1290
- <div class="status-step">
1291
- <span class="counter">5</span>
1292
- Pending
1293
- </div>
1294
- </div>
1295
- ```
1296
-
1297
- **Component Classes:**
1298
- - `.status-stepper` - Container (flex row, items-stretch, full width)
1299
- - `.status-step` - Individual step (flex row, centered, rounded, px-md py-xs, bg-black)
1300
- - `.status-step.active` - Active step (grow-1, white text, bg-gray-750)
1301
- - `.status-step.completed` - Add for completed state (can combine with custom styling)
1302
- - `.status-step .icon` - Icon within step (mr-xs, text-label-color)
1303
- - `.status-step .counter` - Numeric counter (pr-xs, text-lg, font-bold, leading-none)
1304
-
1305
- **Styling Details:**
1306
- ```css
1307
- .status-stepper:
1308
- - Full width flex container
1309
- - Items stretch to fill height
1310
- - Horizontal layout
1311
-
1312
- .status-step:
1313
- - Shrink: 0, Grow: 0 (except .active)
1314
- - Margin-right: xs (except last)
1315
- - Padding: md horizontal, xs vertical
1316
- - Background: black, Text: label-color
1317
- - Rounded corners
1318
- - Leading: none
1319
-
1320
- .status-step.active:
1321
- - Grow: 1 (takes available space)
1322
- - Text: white
1323
- - Background: gray-750
1324
- ```
1325
-
1326
- **Usage Tips:**
1327
- - Use `.completed` class with success icons for finished steps
1328
- - Use `.active` class for current step (automatically expands to fill space)
1329
- - Default styling for pending/future steps
1330
- - Works great within splitview groups (see `.splitview-group-status`)
1331
- - Icons should use descriptive names like `icon-check-thick-centered`, `icon-sync`
1332
- - Counter variant useful for showing numeric progress
1333
-
1334
- **Common Patterns:**
1335
- ```html
1336
- <!-- In a splitview group -->
1337
- <div class="splitview-group-status">
1338
- <div class="status-stepper">
1339
- <!-- Steps here -->
1340
- </div>
1341
- </div>
1342
-
1343
- <!-- As standalone progress indicator -->
1344
- <div class="mb-md">
1345
- <div class="status-stepper">
1346
- <!-- Steps here -->
1347
- </div>
1348
- </div>
1349
- ```
1350
-
1351
- ---
1352
-
1353
- ## Dark Mode
1354
-
1355
- The design system includes comprehensive dark mode support with customized theme variables.
1356
-
1357
- ### Dark Mode Color Palette
1358
- ```css
1359
- /* Apply .dark class to enable dark mode */
1360
- .dark {
1361
- /* Core Colors */
1362
- --color-appbody: #181818; /* Very dark gray background */
1363
- --color-appbody-textcolor: #f2f2f2; /* Light gray text */
1364
- --color-header: #1d1d1d;
1365
- --color-card: #1D1D1D; /* Dark card background */
1366
- --color-listitem: #262626; /* List item background */
1367
-
1368
- /* Interactive Colors */
1369
- --color-primary: #78eac1; /* Teal (was petrol) */
1370
- --color-link: #8988eb; /* Purple links */
1371
- --color-link-hover: #7954ff; /* Darker purple hover */
1372
-
1373
- /* Status Colors */
1374
- --color-success: #33BA9E; /* Teal success */
1375
- --color-danger: #FF3131; /* Brighter red */
1376
- --color-bordercolor: #2E2E2E; /* Dark borders */
1377
-
1378
- /* Spacing & Style Adjustments */
1379
- --radius: 12px; /* Increased from 5px */
1380
- --spacing-grid-gutter: 40px; /* Increased from 20px */
1381
- --card-padding: 30px;
1382
- --fontsize-card-header: 1.125rem; /* Slightly larger */
1383
- --font-size-label: 0.75rem; /* Smaller labels */
1384
- }
1385
- ```
1386
-
1387
- ### Using Dark Mode
1388
- ```html
1389
- <!-- Apply dark class to container -->
1390
- <div class="dark">
1391
- <!-- All children inherit dark mode styles -->
1392
- <div class="bg-appbody text-appbody-textcolor">
1393
- <div class="card p-card-padding">
1394
- <!-- Card automatically has dark background (#1D1D1D) -->
1395
- <!-- Border radius automatically 12px -->
1396
- <p>Content with dark mode styling</p>
1397
- </div>
1398
- </div>
1399
- </div>
1400
-
1401
- <!-- Conditional dark mode classes on specific elements -->
1402
- <div class="bg-card dark:bg-listitem">
1403
- <!-- Light mode: #e6e6e6, Dark mode: #262626 -->
1404
- </div>
1405
-
1406
- <table class="table">
1407
- <!-- Tables automatically apply comprehensive dark mode styles -->
1408
- <!-- Increased padding, dark backgrounds, adjusted borders -->
1409
- </table>
1410
- ```
1411
-
1412
- ### Components with Dark Mode Support
1413
-
1414
- **Fully Optimized:**
1415
- - ✅ **Tables:** Increased padding (`dark:py-md`), dark backgrounds, row borders instead of cell borders
1416
- - ✅ **Chat Messages:** Adjusted grid layout, background colors, rounded corners
1417
- - ✅ **Cards:** Dark backgrounds (`#1D1D1D`), larger border radius (12px)
1418
- - ✅ **Forms:** Dark input backgrounds, adjusted borders and placeholders
1419
- - ✅ **Navigation:** Dark sidebar and header variants
1420
- - ✅ **Buttons:** Inverted color schemes for dark backgrounds
1421
-
1422
- **Dark Mode Differences:**
1423
- - Border radius: `5px` → `12px`
1424
- - Grid gutters: `20px` → `40px`
1425
- - Table cell padding: `py-xs` → `py-md`
1426
- - Chat layout: 3 columns → 2 columns (actions hidden)
1427
- - Link colors: Petrol → Purple, Hover: Blue → Dark Purple
1428
-
1429
- ### Testing Dark Mode
1430
-
1431
- ```html
1432
- <!-- Toggle between light and dark -->
1433
- <body class="bg-appbody text-appbody-textcolor">
1434
- <!-- Light mode -->
1435
- </body>
1436
-
1437
- <body class="dark bg-appbody text-appbody-textcolor">
1438
- <!-- Dark mode -->
1439
- </body>
1440
- ```
1441
-
1442
- ---
1443
-
1444
- ## Utility Patterns
1445
-
1446
- ### Common Layout Patterns
1447
- ```html
1448
- <!-- Centered container -->
1449
- <div class="max-w-centered-content mx-auto">
1450
- <!-- Content constrained to 1600px -->
1451
- </div>
1452
-
1453
- <!-- Capped content width (for readability) -->
1454
- <div class="max-w-capped">
1455
- <!-- Content constrained to 43.75rem (700px) -->
1456
- </div>
1457
-
1458
- <!-- Flex layout with gap -->
1459
- <div class="flex items-center gap-xs">
1460
- <i class="icon icon-user"></i>
1461
- <span>User Name</span>
1462
- </div>
1463
-
1464
- <!-- Grid layout -->
1465
- <div class="grid grid-cols-2 md:grid-cols-4 gap-grid-gutter">
1466
- <div>Item 1</div>
1467
- <div>Item 2</div>
1468
- <div>Item 3</div>
1469
- <div>Item 4</div>
1470
- </div>
1471
- ```
1472
-
1473
- ### Icon Usage
1474
- ```html
1475
- <!-- Standard icon (20px) -->
1476
- <i class="icon icon-star"></i>
1477
-
1478
- <!-- Icon sizes -->
1479
- <i class="icon icon-star text-icon-xxxs"></i> <!-- 10px -->
1480
- <i class="icon icon-star text-icon-xxs"></i> <!-- 0.625rem -->
1481
- <i class="icon icon-star text-icon-xs"></i> <!-- 16px -->
1482
- <i class="icon icon-star text-icon-sm"></i> <!-- 18px -->
1483
- <i class="icon icon-star text-icon"></i> <!-- 20px - default -->
1484
- <i class="icon icon-star text-icon-lg"></i> <!-- 40px -->
1485
- <i class="icon icon-star text-icon-xl"></i> <!-- 60px -->
1486
- <i class="icon icon-star text-icon-xxl"></i> <!-- 90px -->
1487
-
1488
- <!-- Colored icons -->
1489
- <i class="icon icon-check text-success"></i>
1490
- <i class="icon icon-close text-danger"></i>
1491
- <i class="icon icon-info text-info"></i>
1492
- ```
1493
-
1494
- ### Border Utilities
1495
- ```html
1496
- <!-- Standard border -->
1497
- <div class="border border-bordercolor rounded">Content</div>
1498
-
1499
- <!-- Border widths -->
1500
- <div class="border-1">1px border</div>
1501
- <div class="border-2">2px border</div>
1502
- <div class="border-4">4px border</div>
1503
- <div class="border-6">6px border</div>
1504
- <div class="border-10">10px border</div>
1505
-
1506
- <!-- Border radius (5px light, 12px dark) -->
1507
- <div class="rounded">Rounded corners</div>
1508
- <div class="rounded-t">Top corners rounded</div>
1509
- <div class="rounded-b">Bottom corners rounded</div>
1510
- <div class="rounded-full">Fully rounded (circle/pill)</div>
1511
- ```
1512
-
1513
- ### Shadow
1514
- ```html
1515
- <!-- Standard shadow -->
1516
- <div class="shadow">
1517
- <!-- 0 3px 6px 0 rgba(0, 0, 0, 0.2), 0 0px 0px 0 rgba(0, 0, 0, 0.05) -->
1518
- </div>
1519
- ```
1520
-
1521
- ---
1522
-
1523
- ## Best Practices for Claude
1524
-
1525
- ### When Building Pages:
1526
-
1527
- 1. **Start with Layout Structure**
1528
- - Use semantic HTML5 elements
1529
- - Apply layout classes: `header`, `sidebar`, `main`, `section`
1530
- - Use grid or flex utilities for responsive layouts
1531
- - Consider using `.page-header` for dashboard pages
1532
-
1533
- 2. **Component Selection**
1534
- - Choose the appropriate component variant for the use case
1535
- - Use semantic button/alert types (primary, success, danger, etc.)
1536
- - Apply consistent spacing using the spacing scale
1537
- - Use `.page-header` with chart variant when displaying metrics
1538
-
1539
- 3. **Responsive Design**
1540
- - Use responsive grid classes: `grid-cols-1 md:grid-cols-2 lg:grid-cols-3`
1541
- - Apply responsive utilities: `hidden md:block`, `flex-col md:flex-row`
1542
- - Consider mobile-first approach
1543
- - Remember breakpoints: lg (70rem), xl (90rem), 2xl (100rem)
1544
-
1545
- 4. **Accessibility**
1546
- - Include proper ARIA labels
1547
- - Use semantic HTML elements
1548
- - Ensure proper heading hierarchy
1549
- - Include alt text for images
1550
- - Use `<label>` elements with `for` attributes
1551
-
1552
- 5. **Color Usage**
1553
- - Use semantic colors for consistent meaning
1554
- - Apply `bg-card` for card backgrounds
1555
- - Use `bg-listitem` for list item backgrounds
1556
- - Use `border-bordercolor` for standard borders
1557
- - Text color defaults are handled by parent classes
1558
- - Remember colors change in dark mode (petrol → teal, red → brighter red)
1559
-
1560
- 6. **Typography**
1561
- - Use heading classes (`text-heading-1` through `text-heading-6`)
1562
- - Apply `font-light` for headings (weight: 300)
1563
- - Use `text-label` for form labels
1564
- - Default body text is `text-base` (0.875rem)
1565
- - Card headers use `text-card-header` (1.125rem in dark mode)
1566
-
1567
- 7. **Spacing Consistency**
1568
- - Use `gap-grid-gutter` for grid/flex gaps (20px light, 40px dark)
1569
- - Apply `p-md` for standard padding (20px)
1570
- - Use `p-card-padding` for card padding (30px)
1571
- - Use `mb-spacing` for section spacing (30px)
1572
- - Icons typically need `mr-xs` or `ml-xs` when next to text
1573
- - Page headers use `gap-md xl:gap-grid-gutter`
1574
-
1575
- 8. **Dark Mode Considerations**
1576
- - Border radius is larger in dark mode (12px vs 5px)
1577
- - Grid gutters are larger in dark mode (40px vs 20px)
1578
- - Tables have increased padding in dark mode (`dark:py-md`)
1579
- - Chat layouts adjust grid template in dark mode (2 cols vs 3)
1580
- - Always test components with `.dark` class applied to parent
1581
- - Use `dark:` prefix for conditional dark mode styles
1582
-
1583
- 9. **Table Best Practices**
1584
- - Use `.table` for standard data tables
1585
- - Use `.table-standard` for key-value style tables
1586
- - Use `.table-cellstyle` for status tracking tables
1587
- - Use `.table-grid` for complex responsive layouts
1588
- - Add status classes (`.completed`, `.inprogress`, `.missing`) for task tracking
1589
- - Use `.action-cell` for right-aligned action buttons
1590
- - Remember tables have comprehensive dark mode styles built-in
1591
-
1592
- 10. **Page Header Best Practices**
1593
- - Use `.page-header` for dashboard/session pages
1594
- - Main card should have `.page-maincard` and `p-card-padding`
1595
- - Main card now uses `sm:col-span-2` for better small screen layout
1596
- - Use `.page-meta-info` for metadata grid (automatically responsive)
1597
- - Add `.with-chart` modifier when including charts
1598
- - Actions go in `.page-actions` (vertical on **md+**, horizontal mobile)
1599
- - Action stacking changed from `lg:` to `md:` breakpoint for earlier responsive behavior
1600
- - Use `.btn-main` for primary action button (uses `md:flex-col`)
1601
- - Special metadata that spans wide use `.row-testsuite`
1602
-
1603
- 11. **Status Stepper Best Practices** ⭐ NEW
1604
- - Use `.status-stepper` for multi-step process visualization
1605
- - Apply `.active` class to current step (will expand to fill space)
1606
- - Use `.completed` class with success icons for finished steps
1607
- - Default state (no class) for pending/future steps
1608
- - Include `.icon` within steps for visual indicators
1609
- - Use `.counter` for numeric progress indicators
1610
- - Works well within `.splitview-group-status` containers
1611
- - Keep step text concise (3-4 words max)
1612
-
1613
- 12. **Splitview Best Practices** ⭐ UPDATED
1614
- - Use `.splitview-group-status` to show status within collapsible groups
1615
- - Add `.splitview-btn` for show/hide toggle buttons
1616
- - Status steppers fit naturally in `.splitview-group-status`
1617
- - Buttons in groups automatically get rounded bottom corners
1618
- - Use `bg-listitem` for consistent group backgrounds
1619
-
1620
- ### Example Page Structure:
1621
-
1622
- ```html
1623
- <!DOCTYPE html>
1624
- <html lang="en">
1625
- <head>
1626
- <meta charset="UTF-8">
1627
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
1628
- <title>Test Dashboard</title>
1629
- <link rel="stylesheet" href="app.compiled.css">
1630
- </head>
1631
- <body class="bg-appbody text-appbody-textcolor">
1632
-
1633
- <!-- Page Header Component -->
1634
- <div class="page-header with-chart">
1635
- <div class="card page-maincard p-card-padding">
1636
- <h1 class="text-card-header">Test Session Details</h1>
1637
- <h2 class="page-session-title">Accessibility Audit - Homepage</h2>
1638
-
1639
- <dl class="page-meta-info">
1640
- <dt class="label">Created:</dt>
1641
- <dd>Oct 21, 2025 10:00 AM</dd>
1642
-
1643
- <dt class="label">Last Run:</dt>
1644
- <dd>Oct 21, 2025 2:30 PM</dd>
1645
-
1646
- <dt class="label">ID:</dt>
1647
- <dd>987654321</dd>
1648
-
1649
- <dt class="label">Test Suite:</dt>
1650
- <dd class="row-testsuite">
1651
- <a href="#" class="label">WCAG 2.1 Level AA</a>
1652
- </dd>
1653
-
1654
- <dt class="label">Status:</dt>
1655
- <dd class="text-white">Completed</dd>
1656
- </dl>
1657
- </div>
1658
-
1659
- <div class="page-chart card p-card-padding">
1660
- <div class="echarts-container" id="results-chart"></div>
1661
- </div>
1662
-
1663
- <div class="page-actions">
1664
- <a href="#" class="btn btn-primary btn-main">
1665
- <span class="icon icon-review-xl"></span>
1666
- View Full Report
1667
- </a>
1668
- <a href="#" class="btn btn-secondary">Re-run Tests</a>
1669
- <a href="#" class="btn btn-secondary">Export Results</a>
1670
- </div>
1671
- </div>
1672
-
1673
- <!-- Main Content -->
1674
- <main class="p-md md:p-lg">
1675
- <section class="mb-spacing">
1676
- <h2 class="text-heading-3 font-light mb-md">Test Results</h2>
1677
-
1678
- <table class="table">
1679
- <thead>
1680
- <tr>
1681
- <th>Test Name</th>
1682
- <th>Status</th>
1683
- <th>Issues Found</th>
1684
- <th class="action-cell">Actions</th>
1685
- </tr>
1686
- </thead>
1687
- <tbody>
1688
- <tr>
1689
- <td>Color Contrast</td>
1690
- <td><span class="badge badge-success">Passed</span></td>
1691
- <td>0</td>
1692
- <td class="action-cell">
1693
- <button class="btn btn-sm btn-ghost">View</button>
1694
- </td>
1695
- </tr>
1696
- <tr>
1697
- <td>Keyboard Navigation</td>
1698
- <td><span class="badge badge-danger">Failed</span></td>
1699
- <td>3</td>
1700
- <td class="action-cell">
1701
- <button class="btn btn-sm btn-ghost">View</button>
1702
- </td>
1703
- </tr>
1704
- </tbody>
1705
- </table>
1706
- </section>
1707
-
1708
- <section>
1709
- <h2 class="text-heading-3 font-light mb-md">Discussion</h2>
1710
-
1711
- <div class="list-chat-messages">
1712
- <div class="chat-message-item">
1713
- <img src="/avatars/jane.jpg" alt="Jane" class="chat-avatar">
1714
-
1715
- <div class="chat-header">
1716
- <span class="chat-title">
1717
- <span class="chat-author">Jane Smith</span>
1718
- </span>
1719
- <span>2 hours ago</span>
1720
- </div>
1721
-
1722
- <div class="chat-message">
1723
- <p>Found some keyboard navigation issues on the main menu. Users can't tab through all the options.</p>
1724
- </div>
1725
-
1726
- <div class="chat-actions">
1727
- <button class="btn btn-ghost btn-sm">
1728
- <i class="icon icon-reply"></i>
1729
- </button>
1730
- </div>
1731
- </div>
1732
- </div>
1733
- </section>
1734
- </main>
1735
-
1736
- <script src="app.bundled.js"></script>
1737
- </body>
1738
- </html>
1739
- ```
1740
-
1741
- ---
1742
-
1743
- ## Product-Specific Variants
1744
-
1745
- The design system includes variants for different products:
1746
-
1747
- ### Customer Portal
1748
- - Navigation: `customer_header`, `customer_sidebar`
1749
- - Hover color: Teal (`navlink-customer-hover-color`)
1750
- - Product cards: `customer_productcards`
1751
-
1752
- ### Tester Portal
1753
- - Navigation: `tester_header`, `tester_sidebar`
1754
- - Hover color: Purple (`navlink-tester-hover-color`)
1755
- - Cards: `tester_cards`
1756
-
1757
- ### Manager Portal
1758
- - Navigation: `manager_header`, `manager_sidebar`
1759
- - Hover color: Teal on light background
1760
- - Navigation on white background
1761
-
1762
- ### AgenticQA
1763
- - Navigation: `agenticqa_header`, `agenticqa_sidebar`
1764
- - Page headers: `agenticqa_pageheader`
1765
- - Status visualization: `agenticqa_status_stepper`
1766
-
1767
- ---
1768
-
1769
- ## Additional Components Available
1770
-
1771
- - **Modals/Drawers:** For overlays and side panels
1772
- - **Popovers:** For contextual tooltips
1773
- - **Radio Tabs:** For radio button styled as tabs
1774
- - **Rating Scale:** For rating inputs
1775
- - **Selectable Tokens:** For tag/token selection
1776
- - **File Uploads:** Dropzone integration with styling
1777
- - **Gallery:** Image grid layouts
1778
- - **Metrics:** Metric display components
1779
- - **Device Selector:** For device/platform selection
1780
-
1781
- Refer to the live documentation site for visual examples of all components.
1782
-
1783
- ---
1784
-
1785
- ## JavaScript Features
1786
-
1787
- The bundled JavaScript includes:
1788
-
1789
- - **Tom-Select:** Enhanced multi-select dropdowns
1790
- - **Select2:** Enhanced select inputs with search (custom "testio" theme)
1791
- - **Autosize:** Auto-expanding textareas
1792
- - **Dropzone:** Drag-and-drop file uploads with preview
1793
- - **Trix:** Rich text editor with custom configuration
1794
- - **ECharts:** Data visualization charts
1795
- - Bar charts (vertical/horizontal)
1796
- - Donut charts
1797
- - Gauge charts
1798
- - Area charts
1799
- - Line charts
1800
- - Custom theming with design system colors
1801
- - Integration with page-header component
1802
-
1803
- ---
1804
-
1805
- ## Version & Support
1806
-
1807
- **Current Version:** 3.12.0
1808
- **Tailwind Version:** 4.1.11
1809
- **Node Version:** v23.11.0 (specified in `.nvmrc`)
1810
-
1811
- For updates and examples, refer to:
1812
- - NPM: `npm install testio-tailwind@latest`
1813
- - Documentation: Included in package under `/dist/`
1814
- - Source: GitHub repository (test-IO/testio-tailwind)
1815
-
1816
- ---
1817
-
1818
- ## Quick Reference: Common Patterns
1819
-
1820
- ```html
1821
- <!-- Page Header with Session Info -->
1822
- <div class="page-header">
1823
- <div class="card page-maincard p-card-padding">
1824
- <h1 class="text-card-header">Session Details</h1>
1825
- <h2 class="page-session-title">My Test Session</h2>
1826
- <dl class="page-meta-info">
1827
- <dt class="label">Created:</dt>
1828
- <dd>Oct 21, 2025</dd>
1829
- <dt class="label">Status:</dt>
1830
- <dd class="text-white">Running</dd>
1831
- </dl>
1832
- </div>
1833
- <div class="page-actions">
1834
- <a href="#" class="btn btn-primary btn-main">
1835
- <span class="icon icon-test-running-xl"></span>
1836
- Start Test
1837
- </a>
1838
- </div>
1839
- </div>
1840
-
1841
- <!-- Form Layout -->
1842
- <form class="space-y-md">
1843
- <div class="form-group">
1844
- <label class="form-label">Field Name</label>
1845
- <input type="text" class="form-control" placeholder="Placeholder">
1846
- <div class="form-hint">Helper text</div>
1847
- </div>
1848
- </form>
1849
-
1850
- <!-- Responsive Card Grid -->
1851
- <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-grid-gutter">
1852
- <!-- Cards here -->
1853
- </div>
1854
-
1855
- <!-- Dark Mode Data Table -->
1856
- <table class="table">
1857
- <thead>
1858
- <tr>
1859
- <th>Test Name</th>
1860
- <th>Status</th>
1861
- <th>Results</th>
1862
- </tr>
1863
- </thead>
1864
- <tbody>
1865
- <tr>
1866
- <td>Login Flow</td>
1867
- <td><span class="badge badge-success">Passed</span></td>
1868
- <td class="action-cell">
1869
- <button class="btn btn-sm btn-ghost">View</button>
1870
- </td>
1871
- </tr>
1872
- </tbody>
1873
- </table>
1874
-
1875
- <!-- Chat Messages -->
1876
- <div class="list-chat-messages">
1877
- <div class="chat-message-item">
1878
- <img src="avatar.jpg" class="chat-avatar" alt="User">
1879
- <div class="chat-header">
1880
- <span class="chat-author">Jane Doe</span>
1881
- <span>10 mins ago</span>
1882
- </div>
1883
- <div class="chat-message">
1884
- <p>Here's my feedback on the latest changes.</p>
1885
- </div>
1886
- </div>
1887
- </div>
1888
-
1889
- <!-- Action Bar -->
1890
- <div class="flex items-center justify-end gap-xs bg-actionbar text-white p-md">
1891
- <button class="btn btn-ghost-inverted">Cancel</button>
1892
- <button class="btn btn-primary-inverted">Confirm</button>
1893
- </div>
1894
-
1895
- <!-- Empty State -->
1896
- <div class="emptystate-message text-center py-xxl">
1897
- <i class="icon icon-inbox text-icon-xxl text-gray-light mb-md"></i>
1898
- <h3 class="text-heading-4 mb-xs">No Items Yet</h3>
1899
- <p class="text-sm text-gray-dark mb-md">Get started by creating your first item</p>
1900
- <button class="btn btn-primary">Create Item</button>
1901
- </div>
1902
-
1903
- <!-- Status Stepper (NEW) -->
1904
- <div class="status-stepper">
1905
- <div class="status-step completed">
1906
- <i class="icon icon-check-thick-centered"></i>
1907
- 3 done
1908
- </div>
1909
- <div class="status-step active">
1910
- <i class="icon icon-sync"></i>
1911
- Executing checks
1912
- </div>
1913
- <div class="status-step">
1914
- + 3 to do
1915
- </div>
1916
- </div>
1917
-
1918
- <!-- Splitview with Status (NEW) -->
1919
- <details class="splitview-group" open>
1920
- <summary>Test Group</summary>
1921
- <div class="splitview-group-status">
1922
- <div class="status-stepper">
1923
- <div class="status-step completed">Done</div>
1924
- <div class="status-step active">In Progress</div>
1925
- <div class="status-step">Pending</div>
1926
- </div>
1927
- </div>
1928
- <button class="splitview-btn">Show 5 dismissed items</button>
1929
- </details>
1930
- ```
1931
-
1932
- ---
1933
-
1934
- ## Design System Change Log
1935
-
1936
- ### Version 3.12.0 - October 21, 2025
1937
-
1938
- **New Components:**
1939
- - Status Stepper component for multi-step process visualization
1940
- - Splitview status groups with `.splitview-group-status`
1941
- - Splitview buttons with `.splitview-btn`
1942
-
1943
- **Enhancements:**
1944
- - Page header responsive improvements (added `sm:col-span-2` to main card)
1945
- - Page actions now stack at md breakpoint instead of lg (`lg:flex-col` → `md:flex-col`)
1946
- - Better button icon visibility (changed breakpoint from lg to md for some instances)
1947
- - List item badge vertical alignment fix (`items-start` → `items-center`)
1948
- - List item badge padding consistency (`p-xxs pt-xs` → `px-xxs py-xxs`)
1949
- - Splitview integration with status tracking
1950
- - Node version specified in `.nvmrc` (v23.11.0)
1951
-
1952
- ### Version 3.11.0 - October 20, 2025
1953
-
1954
- **New Components:**
1955
- - Page Header component with responsive grid layout
1956
- - Chart integration capability in page headers
1957
- - Form grid layouts within page headers
1958
- - Comprehensive chat message components
1959
-
1960
- **Enhancements:**
1961
- - Dark mode support for all table variants with increased padding
1962
- - Updated breakpoints: lg (70rem), xl (90rem), 2xl (100rem)
1963
- - Increased border radius in dark mode: 5px → 12px
1964
- - Larger grid gutters in dark mode: 20px → 40px
1965
- - Improved chat component dark mode layouts (3 col → 2 col)
1966
- - Better splitview alignment with page header grids
1967
- - Table cell style improvements (editable, selectable cells)
1968
- - Grid table layout for complex responsive tables
1969
-
1970
- **Bug Fixes:**
1971
- - Button XL responsive behavior in page headers
1972
- - Forms gap spacing consistency
1973
- - Chat avatar spacing in dark mode
1974
- - Table border styling in dark mode
1975
-
1976
- ---
1977
-
1978
- **END OF REFERENCE GUIDE**