@teseor/css 1.1.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 (236) hide show
  1. package/dist/compiled.css +1967 -1877
  2. package/dist/index.css +2015 -1925
  3. package/package.json +1 -1
  4. package/src/00-config/tokens/_variables.scss +39 -25
  5. package/src/00-config/tokens/colors/index.scss +22 -21
  6. package/src/00-config/tokens/shadows/index.scss +3 -3
  7. package/src/03-layout/cluster/cluster-visual.png +0 -0
  8. package/src/03-layout/cluster/cluster.visual.spec.ts +15 -0
  9. package/src/03-layout/sidebar/sidebar-visual.png +0 -0
  10. package/src/03-layout/sidebar/sidebar.docs.json +62 -0
  11. package/src/03-layout/sidebar/sidebar.visual.spec.ts +14 -0
  12. package/src/03-layout/sidebar-nav/sidebar-nav.api.json +29 -80
  13. package/src/04-components/actions/button/button-visual.png +0 -0
  14. package/src/04-components/{button → actions/button}/button.api.json +30 -56
  15. package/src/04-components/{button → actions/button}/button.docs.json +75 -0
  16. package/src/04-components/{button → actions/button}/button.visual.spec.ts +1 -1
  17. package/src/04-components/{button → actions/button}/index.scss +28 -18
  18. package/src/04-components/actions/button-group/button-group-visual.png +0 -0
  19. package/src/04-components/{button-group → actions/button-group}/button-group.api.json +5 -1
  20. package/src/04-components/{button-group → actions/button-group}/button-group.visual.spec.ts +3 -2
  21. package/src/04-components/{button-group → actions/button-group}/index.scss +1 -1
  22. package/src/04-components/{avatar → data-display/avatar}/avatar.api.json +5 -0
  23. package/src/04-components/{avatar → data-display/avatar}/avatar.visual.spec.ts +1 -1
  24. package/src/04-components/{avatar → data-display/avatar}/index.scss +1 -1
  25. package/src/04-components/{badge → data-display/badge}/badge.visual.spec.ts +1 -1
  26. package/src/04-components/{badge → data-display/badge}/index.scss +13 -10
  27. package/src/04-components/{card → data-display/card}/card.visual.spec.ts +1 -1
  28. package/src/04-components/{card → data-display/card}/index.scss +1 -1
  29. package/src/04-components/data-display/data-list/data-list-visual.png +0 -0
  30. package/src/04-components/{data-list → data-display/data-list}/data-list.api.json +16 -1
  31. package/src/04-components/{data-list → data-display/data-list}/data-list.visual.spec.ts +3 -2
  32. package/src/04-components/{data-list → data-display/data-list}/index.scss +4 -3
  33. package/src/04-components/data-display/icon/icon-visual.png +0 -0
  34. package/src/04-components/{icon → data-display/icon}/icon.api.json +7 -6
  35. package/src/04-components/{icon → data-display/icon}/icon.docs.json +86 -22
  36. package/src/04-components/{icon → data-display/icon}/icon.visual.spec.ts +1 -1
  37. package/src/04-components/{icon → data-display/icon}/index.scss +7 -20
  38. package/src/04-components/{status → data-display/status}/index.scss +1 -1
  39. package/src/04-components/{status → data-display/status}/status.api.json +14 -1
  40. package/src/04-components/{status → data-display/status}/status.visual.spec.ts +1 -1
  41. package/src/04-components/{table → data-display/table}/index.scss +1 -1
  42. package/src/04-components/{table → data-display/table}/table.api.json +8 -1
  43. package/src/04-components/{table → data-display/table}/table.visual.spec.ts +1 -1
  44. package/src/04-components/{tag → data-display/tag}/index.scss +1 -1
  45. package/src/04-components/{tag → data-display/tag}/tag.api.json +4 -0
  46. package/src/04-components/{tag → data-display/tag}/tag.visual.spec.ts +1 -1
  47. package/src/04-components/{accordion → disclosure/accordion}/accordion.api.json +5 -1
  48. package/src/04-components/{accordion → disclosure/accordion}/accordion.visual.spec.ts +1 -1
  49. package/src/04-components/{accordion → disclosure/accordion}/index.scss +1 -1
  50. package/src/04-components/disclosure/{disclosure.api.json → disclosure/disclosure.api.json} +13 -1
  51. package/src/04-components/disclosure/{disclosure.visual.spec.ts → disclosure/disclosure.visual.spec.ts} +1 -1
  52. package/src/04-components/disclosure/{index.scss → disclosure/index.scss} +1 -1
  53. package/src/04-components/{alert → feedback/alert}/alert.api.json +6 -0
  54. package/src/04-components/{alert → feedback/alert}/alert.visual.spec.ts +1 -1
  55. package/src/04-components/{alert → feedback/alert}/index.scss +11 -16
  56. package/src/04-components/{progress → feedback/progress}/index.scss +1 -1
  57. package/src/04-components/{progress → feedback/progress}/progress.api.json +20 -1
  58. package/src/04-components/{progress → feedback/progress}/progress.visual.spec.ts +1 -1
  59. package/src/04-components/{skeleton → feedback/skeleton}/index.scss +1 -1
  60. package/src/04-components/{skeleton → feedback/skeleton}/skeleton.api.json +8 -1
  61. package/src/04-components/{skeleton → feedback/skeleton}/skeleton.visual.spec.ts +1 -1
  62. package/src/04-components/{spinner → feedback/spinner}/index.scss +1 -1
  63. package/src/04-components/{spinner → feedback/spinner}/spinner.visual.spec.ts +1 -1
  64. package/src/04-components/{toast → feedback/toast}/index.scss +1 -1
  65. package/src/04-components/{toast → feedback/toast}/toast.api.json +22 -1
  66. package/src/04-components/{toast → feedback/toast}/toast.visual.spec.ts +1 -1
  67. package/src/04-components/forms/checkbox/checkbox-visual.png +0 -0
  68. package/src/04-components/{checkbox → forms/checkbox}/checkbox.api.json +1 -1
  69. package/src/04-components/{checkbox → forms/checkbox}/checkbox.visual.spec.ts +1 -1
  70. package/src/04-components/{checkbox → forms/checkbox}/index.scss +1 -1
  71. package/src/04-components/forms/field/field.api.json +19 -0
  72. package/src/04-components/{field → forms/field}/field.visual.spec.ts +1 -1
  73. package/src/04-components/{field → forms/field}/index.scss +1 -1
  74. package/src/04-components/forms/form-error/form-error-visual.png +0 -0
  75. package/src/04-components/{form-error → forms/form-error}/form-error.api.json +3 -0
  76. package/src/04-components/{form-error → forms/form-error}/form-error.visual.spec.ts +1 -1
  77. package/src/04-components/{form-error → forms/form-error}/index.scss +1 -1
  78. package/src/04-components/{form-helper → forms/form-helper}/form-helper.visual.spec.ts +1 -1
  79. package/src/04-components/{form-helper → forms/form-helper}/index.scss +1 -1
  80. package/src/04-components/{input → forms/input}/index.scss +1 -1
  81. package/src/04-components/forms/input/input-visual.png +0 -0
  82. package/src/04-components/{input → forms/input}/input.api.json +31 -0
  83. package/src/04-components/{input → forms/input}/input.visual.spec.ts +1 -1
  84. package/src/04-components/{label → forms/label}/index.scss +1 -1
  85. package/src/04-components/{label → forms/label}/label.api.json +4 -0
  86. package/src/04-components/{label → forms/label}/label.visual.spec.ts +1 -1
  87. package/src/04-components/{radio → forms/radio}/index.scss +1 -1
  88. package/src/04-components/forms/radio/radio-visual.png +0 -0
  89. package/src/04-components/{radio → forms/radio}/radio.api.json +1 -1
  90. package/src/04-components/{radio → forms/radio}/radio.visual.spec.ts +1 -1
  91. package/src/04-components/{select → forms/select}/index.scss +1 -1
  92. package/src/04-components/{select → forms/select}/select.api.json +3 -0
  93. package/src/04-components/{select → forms/select}/select.visual.spec.ts +1 -1
  94. package/src/04-components/{textarea → forms/textarea}/index.scss +1 -1
  95. package/src/04-components/{textarea → forms/textarea}/textarea.api.json +3 -0
  96. package/src/04-components/{textarea → forms/textarea}/textarea.visual.spec.ts +1 -1
  97. package/src/04-components/{toggle → forms/toggle}/index.scss +1 -1
  98. package/src/04-components/{toggle → forms/toggle}/toggle.api.json +5 -0
  99. package/src/04-components/{toggle → forms/toggle}/toggle.visual.spec.ts +1 -1
  100. package/src/04-components/index.scss +42 -41
  101. package/src/04-components/{divider → layout/divider}/divider.api.json +3 -0
  102. package/src/04-components/{divider → layout/divider}/divider.visual.spec.ts +1 -1
  103. package/src/04-components/{divider → layout/divider}/index.scss +1 -1
  104. package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.api.json +5 -0
  105. package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.visual.spec.ts +1 -1
  106. package/src/04-components/{breadcrumb → navigation/breadcrumb}/index.scss +1 -1
  107. package/src/04-components/{menu → navigation/menu}/index.scss +1 -1
  108. package/src/04-components/{menu → navigation/menu}/menu.api.json +24 -0
  109. package/src/04-components/{menu → navigation/menu}/menu.visual.spec.ts +1 -1
  110. package/src/04-components/navigation/nav/index.scss +142 -0
  111. package/src/04-components/navigation/nav/nav-visual.png +0 -0
  112. package/src/04-components/navigation/nav/nav.api.json +55 -0
  113. package/src/04-components/navigation/nav/nav.docs.json +242 -0
  114. package/src/04-components/navigation/nav/nav.visual.spec.ts +14 -0
  115. package/src/04-components/{pagination → navigation/pagination}/index.scss +1 -1
  116. package/src/04-components/{pagination → navigation/pagination}/pagination.api.json +22 -1
  117. package/src/04-components/{pagination → navigation/pagination}/pagination.visual.spec.ts +1 -1
  118. package/src/04-components/{tabs → navigation/tabs}/index.scss +1 -1
  119. package/src/04-components/{tabs → navigation/tabs}/tabs.api.json +17 -0
  120. package/src/04-components/{tabs → navigation/tabs}/tabs.visual.spec.ts +1 -1
  121. package/src/04-components/{dialog → overlays/dialog}/dialog.api.json +12 -1
  122. package/src/04-components/{dialog → overlays/dialog}/dialog.visual.spec.ts +1 -1
  123. package/src/04-components/{dialog → overlays/dialog}/index.scss +1 -1
  124. package/src/04-components/{drawer → overlays/drawer}/drawer.api.json +17 -1
  125. package/src/04-components/{drawer → overlays/drawer}/drawer.visual.spec.ts +1 -1
  126. package/src/04-components/{drawer → overlays/drawer}/index.scss +1 -1
  127. package/src/04-components/{modal → overlays/modal}/index.scss +1 -1
  128. package/src/04-components/{modal → overlays/modal}/modal.api.json +12 -1
  129. package/src/04-components/{modal → overlays/modal}/modal.visual.spec.ts +1 -1
  130. package/src/04-components/{overlay → overlays/overlay}/index.scss +1 -1
  131. package/src/04-components/{overlay → overlays/overlay}/overlay.api.json +14 -1
  132. package/src/04-components/{overlay → overlays/overlay}/overlay.visual.spec.ts +1 -1
  133. package/src/04-components/{popover → overlays/popover}/index.scss +1 -1
  134. package/src/04-components/{popover → overlays/popover}/popover.api.json +9 -1
  135. package/src/04-components/{popover → overlays/popover}/popover.visual.spec.ts +1 -1
  136. package/src/04-components/{tooltip → overlays/tooltip}/index.scss +1 -1
  137. package/src/04-components/{tooltip → overlays/tooltip}/tooltip.api.json +11 -1
  138. package/src/04-components/{tooltip → overlays/tooltip}/tooltip.visual.spec.ts +1 -1
  139. package/src/04-components/{code → typography/code}/code.api.json +6 -1
  140. package/src/04-components/{code → typography/code}/code.visual.spec.ts +1 -1
  141. package/src/04-components/{code → typography/code}/index.scss +1 -1
  142. package/src/04-components/{heading → typography/heading}/heading.visual.spec.ts +1 -1
  143. package/src/04-components/{heading → typography/heading}/index.scss +1 -1
  144. package/src/04-components/{link → typography/link}/index.scss +1 -1
  145. package/src/04-components/typography/link/link-visual.png +0 -0
  146. package/src/04-components/{link → typography/link}/link.api.json +6 -0
  147. package/src/04-components/{link → typography/link}/link.visual.spec.ts +1 -1
  148. package/src/99-debug/grid-overlay.scss +9 -8
  149. package/src/testing/page-setup.ts +25 -9
  150. package/src/testing/sidebar-toggles.spec.ts +103 -0
  151. package/src/04-components/button/button-visual.png +0 -0
  152. package/src/04-components/button-group/button-group-visual.png +0 -0
  153. package/src/04-components/checkbox/checkbox-visual.png +0 -0
  154. package/src/04-components/data-list/data-list-visual.png +0 -0
  155. package/src/04-components/field/field.api.json +0 -11
  156. package/src/04-components/form-error/form-error-visual.png +0 -0
  157. package/src/04-components/icon/icon-visual.png +0 -0
  158. package/src/04-components/input/input-visual.png +0 -0
  159. package/src/04-components/link/link-visual.png +0 -0
  160. package/src/04-components/radio/radio-visual.png +0 -0
  161. /package/src/04-components/{button-group → actions/button-group}/button-group.docs.json +0 -0
  162. /package/src/04-components/{avatar → data-display/avatar}/avatar-visual.png +0 -0
  163. /package/src/04-components/{avatar → data-display/avatar}/avatar.docs.json +0 -0
  164. /package/src/04-components/{badge → data-display/badge}/badge-visual.png +0 -0
  165. /package/src/04-components/{badge → data-display/badge}/badge.api.json +0 -0
  166. /package/src/04-components/{badge → data-display/badge}/badge.docs.json +0 -0
  167. /package/src/04-components/{card → data-display/card}/card-visual.png +0 -0
  168. /package/src/04-components/{card → data-display/card}/card.api.json +0 -0
  169. /package/src/04-components/{card → data-display/card}/card.docs.json +0 -0
  170. /package/src/04-components/{data-list → data-display/data-list}/data-list.docs.json +0 -0
  171. /package/src/04-components/{status → data-display/status}/status-visual.png +0 -0
  172. /package/src/04-components/{status → data-display/status}/status.docs.json +0 -0
  173. /package/src/04-components/{table → data-display/table}/table-visual.png +0 -0
  174. /package/src/04-components/{table → data-display/table}/table.docs.json +0 -0
  175. /package/src/04-components/{tag → data-display/tag}/tag-visual.png +0 -0
  176. /package/src/04-components/{tag → data-display/tag}/tag.docs.json +0 -0
  177. /package/src/04-components/{accordion → disclosure/accordion}/accordion-visual.png +0 -0
  178. /package/src/04-components/{accordion → disclosure/accordion}/accordion.docs.json +0 -0
  179. /package/src/04-components/disclosure/{disclosure-visual.png → disclosure/disclosure-visual.png} +0 -0
  180. /package/src/04-components/disclosure/{disclosure.docs.json → disclosure/disclosure.docs.json} +0 -0
  181. /package/src/04-components/{alert → feedback/alert}/alert-visual.png +0 -0
  182. /package/src/04-components/{alert → feedback/alert}/alert.docs.json +0 -0
  183. /package/src/04-components/{progress → feedback/progress}/progress-visual.png +0 -0
  184. /package/src/04-components/{progress → feedback/progress}/progress.docs.json +0 -0
  185. /package/src/04-components/{skeleton → feedback/skeleton}/skeleton-visual.png +0 -0
  186. /package/src/04-components/{skeleton → feedback/skeleton}/skeleton.docs.json +0 -0
  187. /package/src/04-components/{spinner → feedback/spinner}/spinner-visual.png +0 -0
  188. /package/src/04-components/{spinner → feedback/spinner}/spinner.api.json +0 -0
  189. /package/src/04-components/{spinner → feedback/spinner}/spinner.docs.json +0 -0
  190. /package/src/04-components/{toast → feedback/toast}/toast-visual.png +0 -0
  191. /package/src/04-components/{toast → feedback/toast}/toast.docs.json +0 -0
  192. /package/src/04-components/{checkbox → forms/checkbox}/checkbox.docs.json +0 -0
  193. /package/src/04-components/{field → forms/field}/field-visual.png +0 -0
  194. /package/src/04-components/{field → forms/field}/field.docs.json +0 -0
  195. /package/src/04-components/{form-error → forms/form-error}/form-error.docs.json +0 -0
  196. /package/src/04-components/{form-helper → forms/form-helper}/form-helper-visual.png +0 -0
  197. /package/src/04-components/{form-helper → forms/form-helper}/form-helper.api.json +0 -0
  198. /package/src/04-components/{form-helper → forms/form-helper}/form-helper.docs.json +0 -0
  199. /package/src/04-components/{input → forms/input}/input.docs.json +0 -0
  200. /package/src/04-components/{label → forms/label}/label-visual.png +0 -0
  201. /package/src/04-components/{label → forms/label}/label.docs.json +0 -0
  202. /package/src/04-components/{radio → forms/radio}/radio.docs.json +0 -0
  203. /package/src/04-components/{select → forms/select}/select-visual.png +0 -0
  204. /package/src/04-components/{select → forms/select}/select.docs.json +0 -0
  205. /package/src/04-components/{textarea → forms/textarea}/textarea-visual.png +0 -0
  206. /package/src/04-components/{textarea → forms/textarea}/textarea.docs.json +0 -0
  207. /package/src/04-components/{toggle → forms/toggle}/toggle-visual.png +0 -0
  208. /package/src/04-components/{toggle → forms/toggle}/toggle.docs.json +0 -0
  209. /package/src/04-components/{divider → layout/divider}/divider-visual.png +0 -0
  210. /package/src/04-components/{divider → layout/divider}/divider.docs.json +0 -0
  211. /package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb-visual.png +0 -0
  212. /package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.docs.json +0 -0
  213. /package/src/04-components/{menu → navigation/menu}/menu-visual.png +0 -0
  214. /package/src/04-components/{menu → navigation/menu}/menu.docs.json +0 -0
  215. /package/src/04-components/{pagination → navigation/pagination}/pagination-visual.png +0 -0
  216. /package/src/04-components/{pagination → navigation/pagination}/pagination.docs.json +0 -0
  217. /package/src/04-components/{tabs → navigation/tabs}/tabs-visual.png +0 -0
  218. /package/src/04-components/{tabs → navigation/tabs}/tabs.docs.json +0 -0
  219. /package/src/04-components/{dialog → overlays/dialog}/dialog-visual.png +0 -0
  220. /package/src/04-components/{dialog → overlays/dialog}/dialog.docs.json +0 -0
  221. /package/src/04-components/{drawer → overlays/drawer}/drawer-visual.png +0 -0
  222. /package/src/04-components/{drawer → overlays/drawer}/drawer.docs.json +0 -0
  223. /package/src/04-components/{modal → overlays/modal}/modal-visual.png +0 -0
  224. /package/src/04-components/{modal → overlays/modal}/modal.docs.json +0 -0
  225. /package/src/04-components/{overlay → overlays/overlay}/overlay-visual.png +0 -0
  226. /package/src/04-components/{overlay → overlays/overlay}/overlay.docs.json +0 -0
  227. /package/src/04-components/{popover → overlays/popover}/popover-visual.png +0 -0
  228. /package/src/04-components/{popover → overlays/popover}/popover.docs.json +0 -0
  229. /package/src/04-components/{tooltip → overlays/tooltip}/tooltip-visual.png +0 -0
  230. /package/src/04-components/{tooltip → overlays/tooltip}/tooltip.docs.json +0 -0
  231. /package/src/04-components/{code → typography/code}/code-visual.png +0 -0
  232. /package/src/04-components/{code → typography/code}/code.docs.json +0 -0
  233. /package/src/04-components/{heading → typography/heading}/heading-visual.png +0 -0
  234. /package/src/04-components/{heading → typography/heading}/heading.api.json +0 -0
  235. /package/src/04-components/{heading → typography/heading}/heading.docs.json +0 -0
  236. /package/src/04-components/{link → typography/link}/link.docs.json +0 -0
@@ -1,41 +1,42 @@
1
- @forward './accordion/index';
2
- @forward './alert/index';
3
- @forward './avatar/index';
4
- @forward './badge/index';
5
- @forward './breadcrumb/index';
6
- @forward './button/index';
7
- @forward './button-group/index';
8
- @forward './card/index';
9
- @forward './checkbox/index';
10
- @forward './code/index';
11
- @forward './data-list/index';
12
- @forward './dialog/index';
13
- @forward './disclosure/index';
14
- @forward './divider/index';
15
- @forward './drawer/index';
16
- @forward './field/index';
17
- @forward './form-error/index';
18
- @forward './form-helper/index';
19
- @forward './heading/index';
20
- @forward './icon/index';
21
- @forward './input/index';
22
- @forward './label/index';
23
- @forward './link/index';
24
- @forward './menu/index';
25
- @forward './modal/index';
26
- @forward './overlay/index';
27
- @forward './pagination/index';
28
- @forward './popover/index';
29
- @forward './progress/index';
30
- @forward './radio/index';
31
- @forward './select/index';
32
- @forward './skeleton/index';
33
- @forward './spinner/index';
34
- @forward './status/index';
35
- @forward './table/index';
36
- @forward './tabs/index';
37
- @forward './tag/index';
38
- @forward './textarea/index';
39
- @forward './toast/index';
40
- @forward './toggle/index';
41
- @forward './tooltip/index';
1
+ @forward './actions/button/index';
2
+ @forward './actions/button-group/index';
3
+ @forward './data-display/avatar/index';
4
+ @forward './data-display/badge/index';
5
+ @forward './data-display/card/index';
6
+ @forward './data-display/data-list/index';
7
+ @forward './data-display/icon/index';
8
+ @forward './data-display/status/index';
9
+ @forward './data-display/table/index';
10
+ @forward './data-display/tag/index';
11
+ @forward './disclosure/accordion/index';
12
+ @forward './disclosure/disclosure/index';
13
+ @forward './feedback/alert/index';
14
+ @forward './feedback/progress/index';
15
+ @forward './feedback/skeleton/index';
16
+ @forward './feedback/spinner/index';
17
+ @forward './feedback/toast/index';
18
+ @forward './forms/checkbox/index';
19
+ @forward './forms/field/index';
20
+ @forward './forms/form-error/index';
21
+ @forward './forms/form-helper/index';
22
+ @forward './forms/input/index';
23
+ @forward './forms/label/index';
24
+ @forward './forms/radio/index';
25
+ @forward './forms/select/index';
26
+ @forward './forms/textarea/index';
27
+ @forward './forms/toggle/index';
28
+ @forward './layout/divider/index';
29
+ @forward './navigation/breadcrumb/index';
30
+ @forward './navigation/menu/index';
31
+ @forward './navigation/nav/index';
32
+ @forward './navigation/pagination/index';
33
+ @forward './navigation/tabs/index';
34
+ @forward './overlays/dialog/index';
35
+ @forward './overlays/drawer/index';
36
+ @forward './overlays/modal/index';
37
+ @forward './overlays/overlay/index';
38
+ @forward './overlays/popover/index';
39
+ @forward './overlays/tooltip/index';
40
+ @forward './typography/code/index';
41
+ @forward './typography/heading/index';
42
+ @forward './typography/link/index';
@@ -7,6 +7,9 @@
7
7
  },
8
8
  "dashed": {
9
9
  "type": "boolean"
10
+ },
11
+ "position": {
12
+ "values": ["start", "end"]
10
13
  }
11
14
  },
12
15
  "cssVars": [
@@ -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, 'divider.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 divider
4
4
  // @element div
@@ -2,6 +2,11 @@
2
2
  "name": "breadcrumb",
3
3
  "element": "div",
4
4
  "modifiers": {},
5
+ "elements": {
6
+ "item": {},
7
+ "link": {},
8
+ "current": {}
9
+ },
5
10
  "cssVars": [
6
11
  {
7
12
  "name": "--ui-breadcrumb-height",
@@ -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, 'breadcrumb.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
  // Breadcrumb - navigation hierarchy
4
4
  // Shows current page location in site structure
@@ -1,4 +1,4 @@
1
- @use '../../00-config/tokens/variables' as t;
1
+ @use '../../../00-config/tokens/variables' as t;
2
2
 
3
3
  // Menu - action menu
4
4
  // Dropdown list of actions or options
@@ -2,6 +2,30 @@
2
2
  "name": "menu",
3
3
  "element": "div",
4
4
  "modifiers": {},
5
+ "elements": {
6
+ "group": {},
7
+ "label": {},
8
+ "separator": {},
9
+ "item": {
10
+ "modifiers": {
11
+ "disabled": {
12
+ "type": "boolean"
13
+ },
14
+ "danger": {
15
+ "type": "boolean"
16
+ },
17
+ "check": {
18
+ "type": "boolean"
19
+ },
20
+ "radio": {
21
+ "type": "boolean"
22
+ }
23
+ }
24
+ },
25
+ "item-icon": {},
26
+ "item-shortcut": {},
27
+ "item-indicator": {}
28
+ },
5
29
  "cssVars": [
6
30
  {
7
31
  "name": "--ui-menu-min-width",
@@ -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, 'menu.docs.json');
6
6
 
@@ -0,0 +1,142 @@
1
+ @use '../../../00-config/tokens/variables' as t;
2
+
3
+ // @component nav
4
+ // @element nav
5
+
6
+ @layer components.tokens {
7
+ .nav {
8
+ --_gap: var(--ui-nav-gap, var(--ui-space-1, #{t.$space-1}));
9
+ --_item-height: var(--ui-nav-item-height, var(--ui-row-2, #{t.$row-2}));
10
+ --_item-padding-x: var(--ui-nav-item-padding-x, var(--ui-space-2, #{t.$space-2}));
11
+ --_item-font-size: var(--ui-nav-item-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
12
+ --_item-font-weight: var(--ui-nav-item-font-weight, var(--ui-weight-medium, #{t.$weight-medium}));
13
+ --_item-color: var(--ui-nav-item-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
14
+ --_item-color-hover: var(--ui-nav-item-color-hover, var(--ui-color-text, #{t.$color-text}));
15
+ --_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-primary, #{t.$color-primary}));
16
+ --_item-radius: var(--ui-nav-item-radius, var(--ui-radius-sm, #{t.$radius-sm}));
17
+ --_border-color: var(--ui-nav-border-color, var(--ui-color-border, #{t.$color-border}));
18
+ }
19
+
20
+ // @modifier pills
21
+ .nav--pills {
22
+ --_item-bg-hover: var(--ui-nav-item-bg-hover, var(--ui-color-bg-muted, #{t.$color-bg-muted}));
23
+ --_item-bg-active: var(--ui-nav-item-bg-active, var(--ui-color-primary, #{t.$color-primary}));
24
+ --_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-text-inverse, #{t.$color-text-inverse}));
25
+ }
26
+
27
+ // @modifier boolean vertical
28
+ }
29
+
30
+ @layer components.styles {
31
+ .nav__list {
32
+ display: flex;
33
+ align-items: stretch;
34
+ gap: var(--_gap);
35
+
36
+ box-sizing: border-box;
37
+ block-size: var(--_item-height);
38
+ padding: 0;
39
+ margin: 0;
40
+
41
+ list-style: none;
42
+
43
+ // Bottom border via box-shadow to avoid height impact
44
+ box-shadow: inset 0 calc(var(--ui-border-width-sm, #{t.$border-width-sm}) * -1) 0 var(--_border-color);
45
+ }
46
+
47
+ .nav__item {
48
+ display: inline-flex;
49
+ align-items: center;
50
+
51
+ box-sizing: border-box;
52
+ block-size: var(--_item-height);
53
+ padding-inline: var(--_item-padding-x);
54
+
55
+ font-family: var(--ui-font-sans, #{t.$font-sans});
56
+ font-size: var(--_item-font-size);
57
+ font-weight: var(--_item-font-weight);
58
+ line-height: 1;
59
+ text-decoration: none;
60
+ white-space: nowrap;
61
+ color: var(--_item-color);
62
+
63
+ background: transparent;
64
+ border: none;
65
+ // Underline indicator via box-shadow
66
+ box-shadow: inset 0 calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 transparent;
67
+ cursor: pointer;
68
+
69
+ transition:
70
+ color var(--ui-duration-base) var(--ui-ease-default),
71
+ background var(--ui-duration-base) var(--ui-ease-default),
72
+ box-shadow var(--ui-duration-base) var(--ui-ease-default);
73
+
74
+ &:hover {
75
+ color: var(--_item-color-hover);
76
+ }
77
+
78
+ &--active {
79
+ color: var(--_item-color-active);
80
+
81
+ box-shadow: inset 0 calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 var(--_item-color-active);
82
+ }
83
+
84
+ &--disabled {
85
+ opacity: 0.5;
86
+ pointer-events: none;
87
+ }
88
+ }
89
+
90
+ // Pills variant - background instead of underline
91
+ .nav--pills {
92
+ .nav__list {
93
+ box-shadow: none;
94
+ }
95
+
96
+ .nav__item {
97
+ border-radius: var(--_item-radius);
98
+ box-shadow: none;
99
+
100
+ &:hover {
101
+ background: var(--_item-bg-hover);
102
+ }
103
+
104
+ &--active {
105
+ color: var(--_item-color-active);
106
+
107
+ background: var(--_item-bg-active);
108
+ }
109
+ }
110
+ }
111
+
112
+ // Vertical orientation
113
+ .nav--vertical {
114
+ .nav__list {
115
+ flex-direction: column;
116
+ align-items: stretch;
117
+
118
+ block-size: auto;
119
+
120
+ box-shadow: inset calc(var(--ui-border-width-sm, #{t.$border-width-sm}) * -1) 0 0 var(--_border-color);
121
+ }
122
+
123
+ .nav__item {
124
+ box-shadow: inset calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 0 transparent;
125
+
126
+ &--active {
127
+ box-shadow: inset calc(var(--ui-border-width-md, #{t.$border-width-md}) * -1) 0 0 var(--_item-color-active);
128
+ }
129
+ }
130
+ }
131
+
132
+ // Vertical + pills
133
+ .nav--vertical.nav--pills {
134
+ .nav__list {
135
+ box-shadow: none;
136
+ }
137
+
138
+ .nav__item {
139
+ box-shadow: none;
140
+ }
141
+ }
142
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "nav",
3
+ "element": "nav",
4
+ "modifiers": {
5
+ "pills": {
6
+ "type": "boolean"
7
+ },
8
+ "vertical": {
9
+ "type": "boolean"
10
+ }
11
+ },
12
+ "elements": {
13
+ "list": {},
14
+ "item": {
15
+ "modifiers": {
16
+ "active": {
17
+ "type": "boolean"
18
+ },
19
+ "disabled": {
20
+ "type": "boolean"
21
+ }
22
+ }
23
+ }
24
+ },
25
+ "cssVars": [
26
+ {
27
+ "name": "--ui-nav-gap",
28
+ "default": "var(--ui-space-1)"
29
+ },
30
+ {
31
+ "name": "--ui-nav-item-height",
32
+ "default": "var(--ui-row-2)"
33
+ },
34
+ {
35
+ "name": "--ui-nav-item-padding-x",
36
+ "default": "var(--ui-space-2)"
37
+ },
38
+ {
39
+ "name": "--ui-nav-item-font-size",
40
+ "default": "var(--ui-font-size-sm)"
41
+ },
42
+ {
43
+ "name": "--ui-nav-item-color",
44
+ "default": "var(--ui-color-text-muted)"
45
+ },
46
+ {
47
+ "name": "--ui-nav-item-color-active",
48
+ "default": "var(--ui-color-primary)"
49
+ },
50
+ {
51
+ "name": "--ui-nav-border-color",
52
+ "default": "var(--ui-color-border)"
53
+ }
54
+ ]
55
+ }
@@ -0,0 +1,242 @@
1
+ {
2
+ "id": "nav",
3
+ "type": "component",
4
+ "title": "Nav",
5
+ "description": "Horizontal or vertical navigation links for primary and secondary navigation.",
6
+ "api": "./nav.api.json",
7
+ "sections": [
8
+ {
9
+ "title": "Basic",
10
+ "description": "Underline-style navigation with active state indicator.",
11
+ "examples": [
12
+ {
13
+ "items": [
14
+ {
15
+ "tag": "nav",
16
+ "class": "ui-nav",
17
+ "children": [
18
+ {
19
+ "tag": "ul",
20
+ "class": "ui-nav__list",
21
+ "children": [
22
+ {
23
+ "tag": "li",
24
+ "children": [
25
+ {
26
+ "tag": "a",
27
+ "class": "ui-nav__item ui-nav__item--active",
28
+ "text": "Dashboard",
29
+ "attrs": { "href": "#" }
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ "tag": "li",
35
+ "children": [
36
+ {
37
+ "tag": "a",
38
+ "class": "ui-nav__item",
39
+ "text": "Projects",
40
+ "attrs": { "href": "#" }
41
+ }
42
+ ]
43
+ },
44
+ {
45
+ "tag": "li",
46
+ "children": [
47
+ {
48
+ "tag": "a",
49
+ "class": "ui-nav__item",
50
+ "text": "Settings",
51
+ "attrs": { "href": "#" }
52
+ }
53
+ ]
54
+ },
55
+ {
56
+ "tag": "li",
57
+ "children": [
58
+ {
59
+ "tag": "a",
60
+ "class": "ui-nav__item ui-nav__item--disabled",
61
+ "text": "Disabled",
62
+ "attrs": { "href": "#" }
63
+ }
64
+ ]
65
+ }
66
+ ]
67
+ }
68
+ ]
69
+ }
70
+ ]
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "title": "Pills",
76
+ "description": "Background-filled variant for standalone navigation.",
77
+ "examples": [
78
+ {
79
+ "items": [
80
+ {
81
+ "tag": "nav",
82
+ "class": "ui-nav ui-nav--pills",
83
+ "children": [
84
+ {
85
+ "tag": "ul",
86
+ "class": "ui-nav__list",
87
+ "children": [
88
+ {
89
+ "tag": "li",
90
+ "children": [
91
+ {
92
+ "tag": "a",
93
+ "class": "ui-nav__item ui-nav__item--active",
94
+ "text": "Overview",
95
+ "attrs": { "href": "#" }
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "tag": "li",
101
+ "children": [
102
+ {
103
+ "tag": "a",
104
+ "class": "ui-nav__item",
105
+ "text": "Analytics",
106
+ "attrs": { "href": "#" }
107
+ }
108
+ ]
109
+ },
110
+ {
111
+ "tag": "li",
112
+ "children": [
113
+ {
114
+ "tag": "a",
115
+ "class": "ui-nav__item",
116
+ "text": "Reports",
117
+ "attrs": { "href": "#" }
118
+ }
119
+ ]
120
+ }
121
+ ]
122
+ }
123
+ ]
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ },
129
+ {
130
+ "title": "Vertical",
131
+ "description": "Vertical navigation with start-side indicator.",
132
+ "examples": [
133
+ {
134
+ "items": [
135
+ {
136
+ "tag": "nav",
137
+ "class": "ui-nav ui-nav--vertical",
138
+ "style": { "inline-size": "200px" },
139
+ "children": [
140
+ {
141
+ "tag": "ul",
142
+ "class": "ui-nav__list",
143
+ "children": [
144
+ {
145
+ "tag": "li",
146
+ "children": [
147
+ {
148
+ "tag": "a",
149
+ "class": "ui-nav__item ui-nav__item--active",
150
+ "text": "Profile",
151
+ "attrs": { "href": "#" }
152
+ }
153
+ ]
154
+ },
155
+ {
156
+ "tag": "li",
157
+ "children": [
158
+ {
159
+ "tag": "a",
160
+ "class": "ui-nav__item",
161
+ "text": "Account",
162
+ "attrs": { "href": "#" }
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "tag": "li",
168
+ "children": [
169
+ {
170
+ "tag": "a",
171
+ "class": "ui-nav__item",
172
+ "text": "Security",
173
+ "attrs": { "href": "#" }
174
+ }
175
+ ]
176
+ }
177
+ ]
178
+ }
179
+ ]
180
+ }
181
+ ]
182
+ }
183
+ ]
184
+ },
185
+ {
186
+ "title": "Vertical Pills",
187
+ "description": "Vertical navigation with pill-style active indicator.",
188
+ "examples": [
189
+ {
190
+ "items": [
191
+ {
192
+ "tag": "nav",
193
+ "class": "ui-nav ui-nav--vertical ui-nav--pills",
194
+ "style": { "inline-size": "200px" },
195
+ "children": [
196
+ {
197
+ "tag": "ul",
198
+ "class": "ui-nav__list",
199
+ "children": [
200
+ {
201
+ "tag": "li",
202
+ "children": [
203
+ {
204
+ "tag": "a",
205
+ "class": "ui-nav__item ui-nav__item--active",
206
+ "text": "General",
207
+ "attrs": { "href": "#" }
208
+ }
209
+ ]
210
+ },
211
+ {
212
+ "tag": "li",
213
+ "children": [
214
+ {
215
+ "tag": "a",
216
+ "class": "ui-nav__item",
217
+ "text": "Notifications",
218
+ "attrs": { "href": "#" }
219
+ }
220
+ ]
221
+ },
222
+ {
223
+ "tag": "li",
224
+ "children": [
225
+ {
226
+ "tag": "a",
227
+ "class": "ui-nav__item",
228
+ "text": "Billing",
229
+ "attrs": { "href": "#" }
230
+ }
231
+ ]
232
+ }
233
+ ]
234
+ }
235
+ ]
236
+ }
237
+ ]
238
+ }
239
+ ]
240
+ }
241
+ ]
242
+ }
@@ -0,0 +1,14 @@
1
+ import { resolve } from 'node:path';
2
+ import { expect, test } from '@playwright/test';
3
+ import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
4
+
5
+ const DOCS_PATH = resolve(__dirname, 'nav.docs.json');
6
+
7
+ test.describe('nav visual regression', () => {
8
+ test('all variations', async ({ page }) => {
9
+ await setupVisualTestFromDocs(page, DOCS_PATH);
10
+ await validateGridRhythm(page, 'nav');
11
+ await saveForLostPixel(page, 'nav');
12
+ await expect(page.locator('body')).toHaveScreenshot('nav.visual.png');
13
+ });
14
+ });
@@ -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