@teseor/css 1.2.0 → 1.2.1

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 (217) hide show
  1. package/dist/compiled.css +2013 -2017
  2. package/dist/index.css +2013 -2017
  3. package/package.json +1 -1
  4. package/src/00-config/tokens/shadows/index.scss +3 -3
  5. package/src/04-components/{button → actions/button}/button.visual.spec.ts +1 -1
  6. package/src/04-components/{button → actions/button}/index.scss +1 -1
  7. package/src/04-components/{button-group → actions/button-group}/button-group.visual.spec.ts +1 -1
  8. package/src/04-components/{button-group → actions/button-group}/index.scss +1 -1
  9. package/src/04-components/{avatar → data-display/avatar}/avatar.visual.spec.ts +1 -1
  10. package/src/04-components/{avatar → data-display/avatar}/index.scss +1 -1
  11. package/src/04-components/{badge → data-display/badge}/badge.visual.spec.ts +1 -1
  12. package/src/04-components/{badge → data-display/badge}/index.scss +1 -1
  13. package/src/04-components/{card → data-display/card}/card.visual.spec.ts +1 -1
  14. package/src/04-components/{card → data-display/card}/index.scss +1 -1
  15. package/src/04-components/{data-list → data-display/data-list}/data-list.visual.spec.ts +1 -1
  16. package/src/04-components/{data-list → data-display/data-list}/index.scss +1 -1
  17. package/src/04-components/{icon → data-display/icon}/icon.visual.spec.ts +1 -1
  18. package/src/04-components/{icon → data-display/icon}/index.scss +1 -1
  19. package/src/04-components/{status → data-display/status}/index.scss +1 -1
  20. package/src/04-components/{status → data-display/status}/status.visual.spec.ts +1 -1
  21. package/src/04-components/{table → data-display/table}/index.scss +1 -1
  22. package/src/04-components/{table → data-display/table}/table.visual.spec.ts +1 -1
  23. package/src/04-components/{tag → data-display/tag}/index.scss +1 -1
  24. package/src/04-components/{tag → data-display/tag}/tag.visual.spec.ts +1 -1
  25. package/src/04-components/{accordion → disclosure/accordion}/accordion.visual.spec.ts +1 -1
  26. package/src/04-components/{accordion → disclosure/accordion}/index.scss +1 -1
  27. package/src/04-components/disclosure/{disclosure.visual.spec.ts → disclosure/disclosure.visual.spec.ts} +1 -1
  28. package/src/04-components/disclosure/{index.scss → disclosure/index.scss} +1 -1
  29. package/src/04-components/{alert → feedback/alert}/alert.visual.spec.ts +1 -1
  30. package/src/04-components/{alert → feedback/alert}/index.scss +1 -1
  31. package/src/04-components/{progress → feedback/progress}/index.scss +1 -1
  32. package/src/04-components/{progress → feedback/progress}/progress.visual.spec.ts +1 -1
  33. package/src/04-components/{skeleton → feedback/skeleton}/index.scss +1 -1
  34. package/src/04-components/{skeleton → feedback/skeleton}/skeleton.visual.spec.ts +1 -1
  35. package/src/04-components/{spinner → feedback/spinner}/index.scss +1 -1
  36. package/src/04-components/{spinner → feedback/spinner}/spinner.visual.spec.ts +1 -1
  37. package/src/04-components/{toast → feedback/toast}/index.scss +1 -1
  38. package/src/04-components/{toast → feedback/toast}/toast.visual.spec.ts +1 -1
  39. package/src/04-components/{checkbox → forms/checkbox}/checkbox.visual.spec.ts +1 -1
  40. package/src/04-components/{checkbox → forms/checkbox}/index.scss +1 -1
  41. package/src/04-components/{field → forms/field}/field.visual.spec.ts +1 -1
  42. package/src/04-components/{field → forms/field}/index.scss +1 -1
  43. package/src/04-components/{form-error → forms/form-error}/form-error.visual.spec.ts +1 -1
  44. package/src/04-components/{form-error → forms/form-error}/index.scss +1 -1
  45. package/src/04-components/{form-helper → forms/form-helper}/form-helper.visual.spec.ts +1 -1
  46. package/src/04-components/{form-helper → forms/form-helper}/index.scss +1 -1
  47. package/src/04-components/{input → forms/input}/index.scss +1 -1
  48. package/src/04-components/{input → forms/input}/input.visual.spec.ts +1 -1
  49. package/src/04-components/{label → forms/label}/index.scss +1 -1
  50. package/src/04-components/{label → forms/label}/label.visual.spec.ts +1 -1
  51. package/src/04-components/{radio → forms/radio}/index.scss +1 -1
  52. package/src/04-components/{radio → forms/radio}/radio.visual.spec.ts +1 -1
  53. package/src/04-components/{select → forms/select}/index.scss +1 -1
  54. package/src/04-components/{select → forms/select}/select.visual.spec.ts +1 -1
  55. package/src/04-components/{textarea → forms/textarea}/index.scss +1 -1
  56. package/src/04-components/{textarea → forms/textarea}/textarea.visual.spec.ts +1 -1
  57. package/src/04-components/{toggle → forms/toggle}/index.scss +1 -1
  58. package/src/04-components/{toggle → forms/toggle}/toggle.visual.spec.ts +1 -1
  59. package/src/04-components/index.scss +42 -42
  60. package/src/04-components/{divider → layout/divider}/divider.visual.spec.ts +1 -1
  61. package/src/04-components/{divider → layout/divider}/index.scss +1 -1
  62. package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.visual.spec.ts +1 -1
  63. package/src/04-components/{breadcrumb → navigation/breadcrumb}/index.scss +1 -1
  64. package/src/04-components/{menu → navigation/menu}/index.scss +1 -1
  65. package/src/04-components/{menu → navigation/menu}/menu.visual.spec.ts +1 -1
  66. package/src/04-components/{nav → navigation/nav}/index.scss +1 -1
  67. package/src/04-components/{nav → navigation/nav}/nav.visual.spec.ts +1 -1
  68. package/src/04-components/{pagination → navigation/pagination}/index.scss +1 -1
  69. package/src/04-components/{pagination → navigation/pagination}/pagination.visual.spec.ts +1 -1
  70. package/src/04-components/{tabs → navigation/tabs}/index.scss +1 -1
  71. package/src/04-components/{tabs → navigation/tabs}/tabs.visual.spec.ts +1 -1
  72. package/src/04-components/{dialog → overlays/dialog}/dialog.visual.spec.ts +1 -1
  73. package/src/04-components/{dialog → overlays/dialog}/index.scss +1 -1
  74. package/src/04-components/{drawer → overlays/drawer}/drawer.visual.spec.ts +1 -1
  75. package/src/04-components/{drawer → overlays/drawer}/index.scss +1 -1
  76. package/src/04-components/{modal → overlays/modal}/index.scss +1 -1
  77. package/src/04-components/{modal → overlays/modal}/modal.visual.spec.ts +1 -1
  78. package/src/04-components/{overlay → overlays/overlay}/index.scss +1 -1
  79. package/src/04-components/{overlay → overlays/overlay}/overlay.visual.spec.ts +1 -1
  80. package/src/04-components/{popover → overlays/popover}/index.scss +1 -1
  81. package/src/04-components/{popover → overlays/popover}/popover.visual.spec.ts +1 -1
  82. package/src/04-components/{tooltip → overlays/tooltip}/index.scss +1 -1
  83. package/src/04-components/{tooltip → overlays/tooltip}/tooltip.visual.spec.ts +1 -1
  84. package/src/04-components/{code → typography/code}/code.visual.spec.ts +1 -1
  85. package/src/04-components/{code → typography/code}/index.scss +1 -1
  86. package/src/04-components/{heading → typography/heading}/heading.visual.spec.ts +1 -1
  87. package/src/04-components/{heading → typography/heading}/index.scss +1 -1
  88. package/src/04-components/{link → typography/link}/index.scss +1 -1
  89. package/src/04-components/{link → typography/link}/link.visual.spec.ts +1 -1
  90. package/src/99-debug/grid-overlay.scss +9 -8
  91. package/src/testing/sidebar-toggles.spec.ts +103 -0
  92. /package/src/04-components/{button → actions/button}/button-visual.png +0 -0
  93. /package/src/04-components/{button → actions/button}/button.api.json +0 -0
  94. /package/src/04-components/{button → actions/button}/button.docs.json +0 -0
  95. /package/src/04-components/{button-group → actions/button-group}/button-group-visual.png +0 -0
  96. /package/src/04-components/{button-group → actions/button-group}/button-group.api.json +0 -0
  97. /package/src/04-components/{button-group → actions/button-group}/button-group.docs.json +0 -0
  98. /package/src/04-components/{avatar → data-display/avatar}/avatar-visual.png +0 -0
  99. /package/src/04-components/{avatar → data-display/avatar}/avatar.api.json +0 -0
  100. /package/src/04-components/{avatar → data-display/avatar}/avatar.docs.json +0 -0
  101. /package/src/04-components/{badge → data-display/badge}/badge-visual.png +0 -0
  102. /package/src/04-components/{badge → data-display/badge}/badge.api.json +0 -0
  103. /package/src/04-components/{badge → data-display/badge}/badge.docs.json +0 -0
  104. /package/src/04-components/{card → data-display/card}/card-visual.png +0 -0
  105. /package/src/04-components/{card → data-display/card}/card.api.json +0 -0
  106. /package/src/04-components/{card → data-display/card}/card.docs.json +0 -0
  107. /package/src/04-components/{data-list → data-display/data-list}/data-list-visual.png +0 -0
  108. /package/src/04-components/{data-list → data-display/data-list}/data-list.api.json +0 -0
  109. /package/src/04-components/{data-list → data-display/data-list}/data-list.docs.json +0 -0
  110. /package/src/04-components/{icon → data-display/icon}/icon-visual.png +0 -0
  111. /package/src/04-components/{icon → data-display/icon}/icon.api.json +0 -0
  112. /package/src/04-components/{icon → data-display/icon}/icon.docs.json +0 -0
  113. /package/src/04-components/{status → data-display/status}/status-visual.png +0 -0
  114. /package/src/04-components/{status → data-display/status}/status.api.json +0 -0
  115. /package/src/04-components/{status → data-display/status}/status.docs.json +0 -0
  116. /package/src/04-components/{table → data-display/table}/table-visual.png +0 -0
  117. /package/src/04-components/{table → data-display/table}/table.api.json +0 -0
  118. /package/src/04-components/{table → data-display/table}/table.docs.json +0 -0
  119. /package/src/04-components/{tag → data-display/tag}/tag-visual.png +0 -0
  120. /package/src/04-components/{tag → data-display/tag}/tag.api.json +0 -0
  121. /package/src/04-components/{tag → data-display/tag}/tag.docs.json +0 -0
  122. /package/src/04-components/{accordion → disclosure/accordion}/accordion-visual.png +0 -0
  123. /package/src/04-components/{accordion → disclosure/accordion}/accordion.api.json +0 -0
  124. /package/src/04-components/{accordion → disclosure/accordion}/accordion.docs.json +0 -0
  125. /package/src/04-components/disclosure/{disclosure-visual.png → disclosure/disclosure-visual.png} +0 -0
  126. /package/src/04-components/disclosure/{disclosure.api.json → disclosure/disclosure.api.json} +0 -0
  127. /package/src/04-components/disclosure/{disclosure.docs.json → disclosure/disclosure.docs.json} +0 -0
  128. /package/src/04-components/{alert → feedback/alert}/alert-visual.png +0 -0
  129. /package/src/04-components/{alert → feedback/alert}/alert.api.json +0 -0
  130. /package/src/04-components/{alert → feedback/alert}/alert.docs.json +0 -0
  131. /package/src/04-components/{progress → feedback/progress}/progress-visual.png +0 -0
  132. /package/src/04-components/{progress → feedback/progress}/progress.api.json +0 -0
  133. /package/src/04-components/{progress → feedback/progress}/progress.docs.json +0 -0
  134. /package/src/04-components/{skeleton → feedback/skeleton}/skeleton-visual.png +0 -0
  135. /package/src/04-components/{skeleton → feedback/skeleton}/skeleton.api.json +0 -0
  136. /package/src/04-components/{skeleton → feedback/skeleton}/skeleton.docs.json +0 -0
  137. /package/src/04-components/{spinner → feedback/spinner}/spinner-visual.png +0 -0
  138. /package/src/04-components/{spinner → feedback/spinner}/spinner.api.json +0 -0
  139. /package/src/04-components/{spinner → feedback/spinner}/spinner.docs.json +0 -0
  140. /package/src/04-components/{toast → feedback/toast}/toast-visual.png +0 -0
  141. /package/src/04-components/{toast → feedback/toast}/toast.api.json +0 -0
  142. /package/src/04-components/{toast → feedback/toast}/toast.docs.json +0 -0
  143. /package/src/04-components/{checkbox → forms/checkbox}/checkbox-visual.png +0 -0
  144. /package/src/04-components/{checkbox → forms/checkbox}/checkbox.api.json +0 -0
  145. /package/src/04-components/{checkbox → forms/checkbox}/checkbox.docs.json +0 -0
  146. /package/src/04-components/{field → forms/field}/field-visual.png +0 -0
  147. /package/src/04-components/{field → forms/field}/field.api.json +0 -0
  148. /package/src/04-components/{field → forms/field}/field.docs.json +0 -0
  149. /package/src/04-components/{form-error → forms/form-error}/form-error-visual.png +0 -0
  150. /package/src/04-components/{form-error → forms/form-error}/form-error.api.json +0 -0
  151. /package/src/04-components/{form-error → forms/form-error}/form-error.docs.json +0 -0
  152. /package/src/04-components/{form-helper → forms/form-helper}/form-helper-visual.png +0 -0
  153. /package/src/04-components/{form-helper → forms/form-helper}/form-helper.api.json +0 -0
  154. /package/src/04-components/{form-helper → forms/form-helper}/form-helper.docs.json +0 -0
  155. /package/src/04-components/{input → forms/input}/input-visual.png +0 -0
  156. /package/src/04-components/{input → forms/input}/input.api.json +0 -0
  157. /package/src/04-components/{input → forms/input}/input.docs.json +0 -0
  158. /package/src/04-components/{label → forms/label}/label-visual.png +0 -0
  159. /package/src/04-components/{label → forms/label}/label.api.json +0 -0
  160. /package/src/04-components/{label → forms/label}/label.docs.json +0 -0
  161. /package/src/04-components/{radio → forms/radio}/radio-visual.png +0 -0
  162. /package/src/04-components/{radio → forms/radio}/radio.api.json +0 -0
  163. /package/src/04-components/{radio → forms/radio}/radio.docs.json +0 -0
  164. /package/src/04-components/{select → forms/select}/select-visual.png +0 -0
  165. /package/src/04-components/{select → forms/select}/select.api.json +0 -0
  166. /package/src/04-components/{select → forms/select}/select.docs.json +0 -0
  167. /package/src/04-components/{textarea → forms/textarea}/textarea-visual.png +0 -0
  168. /package/src/04-components/{textarea → forms/textarea}/textarea.api.json +0 -0
  169. /package/src/04-components/{textarea → forms/textarea}/textarea.docs.json +0 -0
  170. /package/src/04-components/{toggle → forms/toggle}/toggle-visual.png +0 -0
  171. /package/src/04-components/{toggle → forms/toggle}/toggle.api.json +0 -0
  172. /package/src/04-components/{toggle → forms/toggle}/toggle.docs.json +0 -0
  173. /package/src/04-components/{divider → layout/divider}/divider-visual.png +0 -0
  174. /package/src/04-components/{divider → layout/divider}/divider.api.json +0 -0
  175. /package/src/04-components/{divider → layout/divider}/divider.docs.json +0 -0
  176. /package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb-visual.png +0 -0
  177. /package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.api.json +0 -0
  178. /package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.docs.json +0 -0
  179. /package/src/04-components/{menu → navigation/menu}/menu-visual.png +0 -0
  180. /package/src/04-components/{menu → navigation/menu}/menu.api.json +0 -0
  181. /package/src/04-components/{menu → navigation/menu}/menu.docs.json +0 -0
  182. /package/src/04-components/{nav → navigation/nav}/nav-visual.png +0 -0
  183. /package/src/04-components/{nav → navigation/nav}/nav.api.json +0 -0
  184. /package/src/04-components/{nav → navigation/nav}/nav.docs.json +0 -0
  185. /package/src/04-components/{pagination → navigation/pagination}/pagination-visual.png +0 -0
  186. /package/src/04-components/{pagination → navigation/pagination}/pagination.api.json +0 -0
  187. /package/src/04-components/{pagination → navigation/pagination}/pagination.docs.json +0 -0
  188. /package/src/04-components/{tabs → navigation/tabs}/tabs-visual.png +0 -0
  189. /package/src/04-components/{tabs → navigation/tabs}/tabs.api.json +0 -0
  190. /package/src/04-components/{tabs → navigation/tabs}/tabs.docs.json +0 -0
  191. /package/src/04-components/{dialog → overlays/dialog}/dialog-visual.png +0 -0
  192. /package/src/04-components/{dialog → overlays/dialog}/dialog.api.json +0 -0
  193. /package/src/04-components/{dialog → overlays/dialog}/dialog.docs.json +0 -0
  194. /package/src/04-components/{drawer → overlays/drawer}/drawer-visual.png +0 -0
  195. /package/src/04-components/{drawer → overlays/drawer}/drawer.api.json +0 -0
  196. /package/src/04-components/{drawer → overlays/drawer}/drawer.docs.json +0 -0
  197. /package/src/04-components/{modal → overlays/modal}/modal-visual.png +0 -0
  198. /package/src/04-components/{modal → overlays/modal}/modal.api.json +0 -0
  199. /package/src/04-components/{modal → overlays/modal}/modal.docs.json +0 -0
  200. /package/src/04-components/{overlay → overlays/overlay}/overlay-visual.png +0 -0
  201. /package/src/04-components/{overlay → overlays/overlay}/overlay.api.json +0 -0
  202. /package/src/04-components/{overlay → overlays/overlay}/overlay.docs.json +0 -0
  203. /package/src/04-components/{popover → overlays/popover}/popover-visual.png +0 -0
  204. /package/src/04-components/{popover → overlays/popover}/popover.api.json +0 -0
  205. /package/src/04-components/{popover → overlays/popover}/popover.docs.json +0 -0
  206. /package/src/04-components/{tooltip → overlays/tooltip}/tooltip-visual.png +0 -0
  207. /package/src/04-components/{tooltip → overlays/tooltip}/tooltip.api.json +0 -0
  208. /package/src/04-components/{tooltip → overlays/tooltip}/tooltip.docs.json +0 -0
  209. /package/src/04-components/{code → typography/code}/code-visual.png +0 -0
  210. /package/src/04-components/{code → typography/code}/code.api.json +0 -0
  211. /package/src/04-components/{code → typography/code}/code.docs.json +0 -0
  212. /package/src/04-components/{heading → typography/heading}/heading-visual.png +0 -0
  213. /package/src/04-components/{heading → typography/heading}/heading.api.json +0 -0
  214. /package/src/04-components/{heading → typography/heading}/heading.docs.json +0 -0
  215. /package/src/04-components/{link → typography/link}/link-visual.png +0 -0
  216. /package/src/04-components/{link → typography/link}/link.api.json +0 -0
  217. /package/src/04-components/{link → typography/link}/link.docs.json +0 -0
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // @component nav
4
4
  // @element nav
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'nav.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Pagination - page navigation
4
4
  // Navigation through paginated content
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'pagination.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Token definitions
4
4
  @layer components.tokens {
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'tabs.docs.json');
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'dialog.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Dialog - structured modal with header, body, footer
4
4
  // Extends modal with semantic sections
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'drawer.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Drawer - slide-out panel
4
4
  // Side panel that slides in from edge
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Modal - container for modal dialogs
4
4
  // Centered container with backdrop that appears over page content
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'modal.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Overlay - backdrop for modals, dialogs, drawers
4
4
  // Full viewport coverage with semi-transparent background
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'overlay.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Popover - floating panel for additional content
4
4
  // Larger than tooltip, can contain structured content
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'popover.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Tooltip - small informational popup
4
4
  // Appears on hover/focus to provide additional context
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'tooltip.docs.json');
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'code.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Token definitions
4
4
  @layer components.tokens {
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'heading.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // @component heading
4
4
  // @element h2
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // @component link
4
4
  // @element a
@@ -1,6 +1,6 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../testing';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
4
 
5
5
  const DOCS_PATH = resolve(__dirname, 'link.docs.json');
6
6
 
@@ -1,4 +1,4 @@
1
- /* Debug grid overlay - add class="debug-grid" to body or any container */
1
+ // Debug grid overlay - add class="debug-grid" to body or any container
2
2
  .debug-grid,
3
3
  .debug-grid-rows,
4
4
  .debug-baseline {
@@ -6,7 +6,8 @@
6
6
  }
7
7
 
8
8
  .debug-grid {
9
- --debug-color: hsl(var(--ui-hue-primary) 80% 50% / 0.15);
9
+ // Fallback hue 220 (blue) when --ui-hue-primary not set
10
+ --debug-color: hsl(var(--ui-hue-primary, 220) 80% 50% / 0.15);
10
11
  }
11
12
 
12
13
  .debug-grid::after {
@@ -27,10 +28,10 @@
27
28
  background-position: 0 0;
28
29
  }
29
30
 
30
- /* Stronger grid at row intervals (16px) */
31
+ // Stronger grid at row intervals
31
32
  .debug-grid-rows {
32
- --debug-color: hsl(var(--ui-hue-primary) 80% 50% / 0.1);
33
- --debug-color-strong: hsl(var(--ui-hue-primary) 80% 50% / 0.25);
33
+ --debug-color: hsl(var(--ui-hue-primary, 220) 80% 50% / 0.1);
34
+ --debug-color-strong: hsl(var(--ui-hue-primary, 220) 80% 50% / 0.25);
34
35
  }
35
36
 
36
37
  .debug-grid-rows::after {
@@ -52,9 +53,9 @@
52
53
  background-position: 0 0;
53
54
  }
54
55
 
55
- /* Baseline grid only (horizontal lines) */
56
+ // Baseline grid only (horizontal lines)
56
57
  .debug-baseline {
57
- --debug-color: hsl(var(--ui-hue-danger) 80% 50% / 0.2);
58
+ --debug-color: hsl(var(--ui-hue-danger, 0) 80% 50% / 0.2);
58
59
  }
59
60
 
60
61
  .debug-baseline::after {
@@ -73,7 +74,7 @@
73
74
  background-size: 100% var(--unit);
74
75
  }
75
76
 
76
- /* Element boundaries outline */
77
+ // Element boundaries outline
77
78
  .debug-outline * {
78
79
  outline: 1px solid hsl(0 100% 50% / 0.5);
79
80
  }
@@ -0,0 +1,103 @@
1
+ import { expect, test } from '@playwright/test';
2
+
3
+ // Needs docs server running at localhost:3000
4
+ test.skip(!!process.env.CI, 'Sidebar toggle test requires docs server');
5
+
6
+ test.describe('sidebar toggle buttons', () => {
7
+ test.beforeEach(async ({ page }) => {
8
+ await page.goto('/');
9
+ // Clear sessionStorage/localStorage to start fresh
10
+ await page.evaluate(() => {
11
+ sessionStorage.clear();
12
+ localStorage.clear();
13
+ });
14
+ await page.reload();
15
+ });
16
+
17
+ test('all buttons start with aria-pressed=false', async ({ page }) => {
18
+ const buttons = page.locator('.ui-sidebar-nav__footer button[aria-pressed]');
19
+ const count = await buttons.count();
20
+ expect(count).toBe(5);
21
+ for (let i = 0; i < count; i++) {
22
+ await expect(buttons.nth(i)).toHaveAttribute('aria-pressed', 'false');
23
+ }
24
+ });
25
+
26
+ test('debug grid toggle adds class and sets aria-pressed', async ({ page }) => {
27
+ const btn = page.locator('button', { hasText: 'Toggle Grid' }).first();
28
+ await btn.click();
29
+ await expect(btn).toHaveAttribute('aria-pressed', 'true');
30
+ const hasClass = await page.evaluate(() => document.body.classList.contains('ui-debug-grid'));
31
+ expect(hasClass).toBe(true);
32
+
33
+ // Toggle off
34
+ await btn.click();
35
+ await expect(btn).toHaveAttribute('aria-pressed', 'false');
36
+ const removed = await page.evaluate(() => !document.body.classList.contains('ui-debug-grid'));
37
+ expect(removed).toBe(true);
38
+ });
39
+
40
+ test('debug grid overlay renders background-image', async ({ page }) => {
41
+ const btn = page.locator('button', { hasText: 'Toggle Grid' }).first();
42
+ await btn.click();
43
+
44
+ const bg = await page.evaluate(() => {
45
+ return window.getComputedStyle(document.body, '::after').backgroundImage;
46
+ });
47
+ expect(bg).not.toBe('none');
48
+ });
49
+
50
+ test('debug baseline toggle works', async ({ page }) => {
51
+ const btn = page.locator('button', { hasText: 'Toggle Baseline' });
52
+ await btn.click();
53
+ await expect(btn).toHaveAttribute('aria-pressed', 'true');
54
+ const hasClass = await page.evaluate(() =>
55
+ document.body.classList.contains('ui-debug-baseline'),
56
+ );
57
+ expect(hasClass).toBe(true);
58
+ });
59
+
60
+ test('debug outline toggle adds outlines to children', async ({ page }) => {
61
+ const btn = page.locator('button', { hasText: 'Toggle Outlines' });
62
+ await btn.click();
63
+ await expect(btn).toHaveAttribute('aria-pressed', 'true');
64
+ const outlineStyle = await page.evaluate(() => {
65
+ const el = document.querySelector('.ui-main');
66
+ return el ? window.getComputedStyle(el).outlineStyle : '';
67
+ });
68
+ expect(outlineStyle).toBe('solid');
69
+ });
70
+
71
+ test('dark mode toggle sets data-theme and aria-pressed', async ({ page }) => {
72
+ const btn = page.locator('#theme-toggle');
73
+ await expect(btn).toHaveAttribute('aria-pressed', 'false');
74
+
75
+ await btn.click();
76
+ await expect(btn).toHaveAttribute('aria-pressed', 'true');
77
+ await expect(btn).toHaveText('Light Mode');
78
+ const theme = await page.evaluate(() => document.documentElement.getAttribute('data-theme'));
79
+ expect(theme).toBe('dark');
80
+
81
+ await btn.click();
82
+ await expect(btn).toHaveAttribute('aria-pressed', 'false');
83
+ await expect(btn).toHaveText('Dark Mode');
84
+ });
85
+
86
+ test('debug state persists across page loads', async ({ page }) => {
87
+ // Enable grid
88
+ const gridBtn = page.locator('button', { hasText: 'Toggle Grid' }).first();
89
+ await gridBtn.click();
90
+ await expect(gridBtn).toHaveAttribute('aria-pressed', 'true');
91
+
92
+ // Reload page
93
+ await page.reload();
94
+
95
+ // Body should still have the class
96
+ const hasClass = await page.evaluate(() => document.body.classList.contains('ui-debug-grid'));
97
+ expect(hasClass).toBe(true);
98
+
99
+ // Button should reflect the restored state
100
+ const restoredBtn = page.locator('button', { hasText: 'Toggle Grid' }).first();
101
+ await expect(restoredBtn).toHaveAttribute('aria-pressed', 'true');
102
+ });
103
+ });