bref-ui-themes 0.1.0 → 1.0.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 (549) hide show
  1. package/README.md +94 -71
  2. package/dist/crystal-code/button/button.svelte +518 -0
  3. package/dist/crystal-code/checkbox/checkbox.svelte +119 -0
  4. package/dist/crystal-code/combobox/combobox.svelte +155 -0
  5. package/dist/crystal-code/combobox/combobox.svelte.d.ts +4 -0
  6. package/dist/crystal-code/combobox/form.svelte +61 -0
  7. package/dist/crystal-code/combobox/form.svelte.d.ts +4 -0
  8. package/dist/crystal-code/combobox/input.svelte +132 -0
  9. package/dist/crystal-code/combobox/input.svelte.d.ts +4 -0
  10. package/dist/crystal-code/combobox/list.svelte +78 -0
  11. package/dist/crystal-code/combobox/list.svelte.d.ts +4 -0
  12. package/dist/crystal-code/combobox/option.svelte +97 -0
  13. package/dist/crystal-code/combobox/option.svelte.d.ts +4 -0
  14. package/dist/{components → crystal-code}/dialog/dialog.svelte +51 -21
  15. package/dist/{components → crystal-code}/dialog/footer.svelte +8 -2
  16. package/dist/{components → crystal-code}/dialog/header.svelte +5 -4
  17. package/dist/crystal-code/icon/icon.svelte +121 -0
  18. package/dist/{components → crystal-code}/index.d.ts +10 -4
  19. package/dist/{components → crystal-code}/index.js +10 -4
  20. package/dist/{components → crystal-code}/pill/content.svelte +2 -3
  21. package/dist/crystal-code/pill/on-delete.svelte +72 -0
  22. package/dist/crystal-code/pill/on-delete.svelte.d.ts +7 -0
  23. package/dist/crystal-code/pill/pill.svelte +488 -0
  24. package/dist/{components → crystal-code}/pill-choice-group/pill-choice-group.svelte +7 -11
  25. package/dist/crystal-code/pill-group/container.svelte +50 -0
  26. package/dist/crystal-code/pill-group/pill-group.svelte +29 -0
  27. package/dist/crystal-code/pill-group/pill-group.svelte.d.ts +4 -0
  28. package/dist/crystal-code/pill-group/types.d.ts +6 -0
  29. package/dist/crystal-code/popover/popover.svelte +133 -0
  30. package/dist/crystal-code/progress/progress.svelte +588 -0
  31. package/dist/crystal-code/select/empty.svelte +57 -0
  32. package/dist/crystal-code/select/list.svelte +61 -0
  33. package/dist/crystal-code/select/option.svelte +118 -0
  34. package/dist/crystal-code/select/select.svelte +106 -0
  35. package/dist/crystal-code/select/trigger.svelte +380 -0
  36. package/dist/crystal-code/surface/surface.svelte +413 -0
  37. package/dist/crystal-code/switch/switch.svelte +163 -0
  38. package/dist/crystal-code/switch/switch.svelte.d.ts +4 -0
  39. package/dist/crystal-code/tabs/item.svelte +440 -0
  40. package/dist/{components → crystal-code}/tabs/tabs.svelte +33 -19
  41. package/dist/crystal-code/text-area/text-area.svelte +478 -0
  42. package/dist/crystal-code/text-area/text-area.svelte.d.ts +4 -0
  43. package/dist/crystal-code/text-input/text-input.svelte +481 -0
  44. package/dist/crystal-code/theme/fonts.css +8 -0
  45. package/dist/crystal-code/theme/overlay-motion.d.ts +5 -0
  46. package/dist/crystal-code/theme/overlay-motion.js +32 -0
  47. package/dist/{components → crystal-code}/theme/surface.d.ts +1 -1
  48. package/dist/crystal-code/theme/surface.js +11 -0
  49. package/dist/crystal-code/theme/theme-mode-toggle.svelte +9 -0
  50. package/dist/crystal-code/theme/theme-mode-toggle.svelte.d.ts +4 -0
  51. package/dist/crystal-code/theme.svelte +91 -0
  52. package/dist/{relay → crystal-code}/theme.svelte.d.ts +1 -1
  53. package/dist/crystal-code/tree-view/tree-node/chevron-button.svelte +68 -0
  54. package/dist/crystal-code/tree-view/tree-node/chevron-button.svelte.d.ts +4 -0
  55. package/dist/crystal-code/tree-view/tree-node/content.svelte +68 -0
  56. package/dist/crystal-code/tree-view/tree-node/content.svelte.d.ts +4 -0
  57. package/dist/crystal-code/tree-view/tree-node/delete-button.svelte +53 -0
  58. package/dist/crystal-code/tree-view/tree-node/delete-button.svelte.d.ts +4 -0
  59. package/dist/crystal-code/tree-view/tree-node/tree-node.svelte +363 -0
  60. package/dist/crystal-code/tree-view/tree-node/tree-node.svelte.d.ts +4 -0
  61. package/dist/crystal-code/tree-view/tree-view-section.svelte +42 -0
  62. package/dist/crystal-code/tree-view/tree-view-section.svelte.d.ts +4 -0
  63. package/dist/crystal-code/tree-view/tree-view.svelte +74 -0
  64. package/dist/crystal-code/tree-view/tree-view.svelte.d.ts +4 -0
  65. package/dist/glassy/button/button.svelte +566 -0
  66. package/dist/glassy/button/button.svelte.d.ts +4 -0
  67. package/dist/glassy/checkbox/checkbox.svelte +225 -0
  68. package/dist/glassy/checkbox/checkbox.svelte.d.ts +4 -0
  69. package/dist/glassy/checkbox/types.d.ts +6 -0
  70. package/dist/glassy/checkbox/types.js +1 -0
  71. package/dist/glassy/combobox/combobox.svelte +194 -0
  72. package/dist/glassy/combobox/combobox.svelte.d.ts +4 -0
  73. package/dist/glassy/combobox/form.svelte +102 -0
  74. package/dist/glassy/combobox/form.svelte.d.ts +4 -0
  75. package/dist/glassy/combobox/input.svelte +132 -0
  76. package/dist/glassy/combobox/input.svelte.d.ts +4 -0
  77. package/dist/glassy/combobox/list.svelte +117 -0
  78. package/dist/glassy/combobox/list.svelte.d.ts +4 -0
  79. package/dist/glassy/combobox/option.svelte +136 -0
  80. package/dist/glassy/combobox/option.svelte.d.ts +4 -0
  81. package/dist/glassy/dialog/dialog.svelte +619 -0
  82. package/dist/glassy/dialog/dialog.svelte.d.ts +4 -0
  83. package/dist/glassy/dialog/footer.svelte +70 -0
  84. package/dist/glassy/dialog/footer.svelte.d.ts +7 -0
  85. package/dist/glassy/dialog/header.svelte +105 -0
  86. package/dist/glassy/dialog/header.svelte.d.ts +4 -0
  87. package/dist/glassy/icon/icon.svelte +149 -0
  88. package/dist/glassy/icon/icon.svelte.d.ts +4 -0
  89. package/dist/glassy/index.d.ts +20 -0
  90. package/dist/glassy/index.js +20 -0
  91. package/dist/glassy/pill/content.svelte +69 -0
  92. package/dist/glassy/pill/content.svelte.d.ts +4 -0
  93. package/dist/glassy/pill/on-delete.svelte +86 -0
  94. package/dist/glassy/pill/pill.svelte +596 -0
  95. package/dist/glassy/pill/pill.svelte.d.ts +4 -0
  96. package/dist/glassy/pill-choice-group/pill-choice-group.svelte +191 -0
  97. package/dist/glassy/pill-choice-group/pill-choice-group.svelte.d.ts +4 -0
  98. package/dist/glassy/pill-group/container.svelte +86 -0
  99. package/dist/glassy/pill-group/container.svelte.d.ts +4 -0
  100. package/dist/glassy/pill-group/types.js +1 -0
  101. package/dist/glassy/popover/popover.svelte +155 -0
  102. package/dist/glassy/popover/popover.svelte.d.ts +4 -0
  103. package/dist/glassy/progress/progress.svelte +668 -0
  104. package/dist/glassy/progress/progress.svelte.d.ts +4 -0
  105. package/dist/glassy/select/empty.svelte +63 -0
  106. package/dist/glassy/select/empty.svelte.d.ts +4 -0
  107. package/dist/glassy/select/list.svelte +67 -0
  108. package/dist/glassy/select/list.svelte.d.ts +4 -0
  109. package/dist/glassy/select/option.svelte +117 -0
  110. package/dist/glassy/select/option.svelte.d.ts +4 -0
  111. package/dist/glassy/select/select.svelte +112 -0
  112. package/dist/glassy/select/select.svelte.d.ts +4 -0
  113. package/dist/glassy/select/trigger.svelte +428 -0
  114. package/dist/glassy/select/trigger.svelte.d.ts +4 -0
  115. package/dist/glassy/spinner/spinner.svelte +140 -0
  116. package/dist/glassy/spinner/spinner.svelte.d.ts +4 -0
  117. package/dist/glassy/surface/surface.svelte +499 -0
  118. package/dist/glassy/surface/surface.svelte.d.ts +4 -0
  119. package/dist/glassy/switch/switch.svelte +200 -0
  120. package/dist/glassy/switch/switch.svelte.d.ts +4 -0
  121. package/dist/glassy/tabs/item.svelte +524 -0
  122. package/dist/glassy/tabs/item.svelte.d.ts +4 -0
  123. package/dist/glassy/tabs/tabs.svelte +189 -0
  124. package/dist/glassy/tabs/tabs.svelte.d.ts +4 -0
  125. package/dist/glassy/text-area/text-area.svelte +562 -0
  126. package/dist/glassy/text-area/text-area.svelte.d.ts +4 -0
  127. package/dist/glassy/text-input/text-input.svelte +565 -0
  128. package/dist/glassy/text-input/text-input.svelte.d.ts +4 -0
  129. package/dist/glassy/theme/fonts.css +8 -0
  130. package/dist/glassy/theme/surface.d.ts +3 -0
  131. package/dist/glassy/theme/surface.js +11 -0
  132. package/dist/glassy/theme/theme-mode-toggle.svelte +9 -0
  133. package/dist/glassy/theme/theme-mode-toggle.svelte.d.ts +4 -0
  134. package/dist/glassy/theme.svelte +55 -0
  135. package/dist/{elsewhere → glassy}/theme.svelte.d.ts +1 -2
  136. package/dist/glassy/tree-view/tree-node/chevron-button.svelte +95 -0
  137. package/dist/glassy/tree-view/tree-node/chevron-button.svelte.d.ts +4 -0
  138. package/dist/glassy/tree-view/tree-node/content.svelte +96 -0
  139. package/dist/glassy/tree-view/tree-node/content.svelte.d.ts +4 -0
  140. package/dist/glassy/tree-view/tree-node/delete-button.svelte +92 -0
  141. package/dist/glassy/tree-view/tree-node/delete-button.svelte.d.ts +4 -0
  142. package/dist/glassy/tree-view/tree-node/tree-node.svelte +423 -0
  143. package/dist/glassy/tree-view/tree-node/tree-node.svelte.d.ts +4 -0
  144. package/dist/glassy/tree-view/tree-view-section.svelte +81 -0
  145. package/dist/glassy/tree-view/tree-view-section.svelte.d.ts +4 -0
  146. package/dist/glassy/tree-view/tree-view.svelte +112 -0
  147. package/dist/glassy/tree-view/tree-view.svelte.d.ts +4 -0
  148. package/dist/index.d.ts +1 -3
  149. package/dist/index.js +1 -3
  150. package/dist/new-paris/button/button.svelte +516 -0
  151. package/dist/new-paris/button/button.svelte.d.ts +4 -0
  152. package/dist/{components → new-paris}/checkbox/checkbox.svelte +39 -0
  153. package/dist/new-paris/checkbox/checkbox.svelte.d.ts +4 -0
  154. package/dist/new-paris/checkbox/types.d.ts +6 -0
  155. package/dist/new-paris/checkbox/types.js +1 -0
  156. package/dist/new-paris/combobox/combobox.svelte +176 -0
  157. package/dist/new-paris/combobox/combobox.svelte.d.ts +4 -0
  158. package/dist/new-paris/combobox/form.svelte +84 -0
  159. package/dist/new-paris/combobox/form.svelte.d.ts +4 -0
  160. package/dist/new-paris/combobox/input.svelte +132 -0
  161. package/dist/new-paris/combobox/input.svelte.d.ts +4 -0
  162. package/dist/new-paris/combobox/list.svelte +99 -0
  163. package/dist/new-paris/combobox/list.svelte.d.ts +4 -0
  164. package/dist/new-paris/combobox/option.svelte +120 -0
  165. package/dist/new-paris/combobox/option.svelte.d.ts +4 -0
  166. package/dist/new-paris/dialog/dialog.svelte +501 -0
  167. package/dist/new-paris/dialog/dialog.svelte.d.ts +4 -0
  168. package/dist/new-paris/dialog/footer.svelte +47 -0
  169. package/dist/new-paris/dialog/footer.svelte.d.ts +7 -0
  170. package/dist/new-paris/dialog/header.svelte +94 -0
  171. package/dist/new-paris/dialog/header.svelte.d.ts +4 -0
  172. package/dist/new-paris/icon/icon.svelte +131 -0
  173. package/dist/new-paris/icon/icon.svelte.d.ts +4 -0
  174. package/dist/new-paris/index.d.ts +20 -0
  175. package/dist/new-paris/index.js +20 -0
  176. package/dist/new-paris/pill/content.svelte +51 -0
  177. package/dist/new-paris/pill/content.svelte.d.ts +4 -0
  178. package/dist/{components → new-paris}/pill/on-delete.svelte +16 -0
  179. package/dist/new-paris/pill/on-delete.svelte.d.ts +4 -0
  180. package/dist/new-paris/pill/pill.svelte +510 -0
  181. package/dist/new-paris/pill/pill.svelte.d.ts +4 -0
  182. package/dist/new-paris/pill-choice-group/pill-choice-group.svelte +176 -0
  183. package/dist/new-paris/pill-choice-group/pill-choice-group.svelte.d.ts +4 -0
  184. package/dist/new-paris/pill-group/container.svelte +61 -0
  185. package/dist/new-paris/pill-group/container.svelte.d.ts +4 -0
  186. package/dist/new-paris/pill-group/pill-group.svelte +29 -0
  187. package/dist/new-paris/pill-group/pill-group.svelte.d.ts +4 -0
  188. package/dist/new-paris/pill-group/types.d.ts +14 -0
  189. package/dist/new-paris/pill-group/types.js +1 -0
  190. package/dist/new-paris/popover/popover.svelte +132 -0
  191. package/dist/new-paris/popover/popover.svelte.d.ts +4 -0
  192. package/dist/new-paris/progress/progress.svelte +569 -0
  193. package/dist/new-paris/progress/progress.svelte.d.ts +4 -0
  194. package/dist/new-paris/select/empty.svelte +45 -0
  195. package/dist/new-paris/select/empty.svelte.d.ts +4 -0
  196. package/dist/new-paris/select/list.svelte +49 -0
  197. package/dist/new-paris/select/list.svelte.d.ts +4 -0
  198. package/dist/{components → new-paris}/select/option.svelte +12 -0
  199. package/dist/new-paris/select/option.svelte.d.ts +4 -0
  200. package/dist/{components → new-paris}/select/select.svelte +21 -0
  201. package/dist/new-paris/select/select.svelte.d.ts +4 -0
  202. package/dist/new-paris/select/trigger.svelte +377 -0
  203. package/dist/new-paris/select/trigger.svelte.d.ts +4 -0
  204. package/dist/new-paris/spinner/spinner.svelte +110 -0
  205. package/dist/new-paris/spinner/spinner.svelte.d.ts +4 -0
  206. package/dist/new-paris/surface/surface.svelte +419 -0
  207. package/dist/new-paris/surface/surface.svelte.d.ts +4 -0
  208. package/dist/new-paris/switch/switch.svelte +184 -0
  209. package/dist/new-paris/switch/switch.svelte.d.ts +4 -0
  210. package/dist/new-paris/tabs/item.svelte +432 -0
  211. package/dist/new-paris/tabs/item.svelte.d.ts +4 -0
  212. package/dist/new-paris/tabs/tabs.svelte +157 -0
  213. package/dist/new-paris/tabs/tabs.svelte.d.ts +4 -0
  214. package/dist/new-paris/text-area/text-area.svelte +485 -0
  215. package/dist/new-paris/text-area/text-area.svelte.d.ts +4 -0
  216. package/dist/new-paris/text-input/text-input.svelte +488 -0
  217. package/dist/new-paris/text-input/text-input.svelte.d.ts +4 -0
  218. package/dist/new-paris/theme/surface.d.ts +3 -0
  219. package/dist/new-paris/theme/surface.js +11 -0
  220. package/dist/new-paris/theme/theme-mode-toggle.svelte +9 -0
  221. package/dist/new-paris/theme/theme-mode-toggle.svelte.d.ts +4 -0
  222. package/dist/new-paris/theme.svelte +77 -0
  223. package/dist/{forma → new-paris}/theme.svelte.d.ts +1 -2
  224. package/dist/new-paris/tree-view/tree-node/chevron-button.svelte +80 -0
  225. package/dist/new-paris/tree-view/tree-node/chevron-button.svelte.d.ts +4 -0
  226. package/dist/new-paris/tree-view/tree-node/content.svelte +75 -0
  227. package/dist/new-paris/tree-view/tree-node/content.svelte.d.ts +4 -0
  228. package/dist/new-paris/tree-view/tree-node/delete-button.svelte +77 -0
  229. package/dist/new-paris/tree-view/tree-node/delete-button.svelte.d.ts +4 -0
  230. package/dist/new-paris/tree-view/tree-node/tree-node.svelte +349 -0
  231. package/dist/new-paris/tree-view/tree-node/tree-node.svelte.d.ts +4 -0
  232. package/dist/new-paris/tree-view/tree-view-section.svelte +63 -0
  233. package/dist/new-paris/tree-view/tree-view-section.svelte.d.ts +4 -0
  234. package/dist/new-paris/tree-view/tree-view.svelte +96 -0
  235. package/dist/new-paris/tree-view/tree-view.svelte.d.ts +4 -0
  236. package/dist/vscode/button/button.svelte +498 -0
  237. package/dist/vscode/button/button.svelte.d.ts +4 -0
  238. package/dist/vscode/checkbox/checkbox.svelte +112 -0
  239. package/dist/vscode/checkbox/checkbox.svelte.d.ts +4 -0
  240. package/dist/vscode/checkbox/types.d.ts +6 -0
  241. package/dist/vscode/checkbox/types.js +1 -0
  242. package/dist/vscode/combobox/combobox.svelte +193 -0
  243. package/dist/vscode/combobox/combobox.svelte.d.ts +4 -0
  244. package/dist/vscode/combobox/form.svelte +84 -0
  245. package/dist/vscode/combobox/form.svelte.d.ts +4 -0
  246. package/dist/vscode/combobox/input.svelte +209 -0
  247. package/dist/vscode/combobox/input.svelte.d.ts +4 -0
  248. package/dist/vscode/combobox/list.svelte +102 -0
  249. package/dist/vscode/combobox/list.svelte.d.ts +4 -0
  250. package/dist/vscode/combobox/option.svelte +134 -0
  251. package/dist/vscode/combobox/option.svelte.d.ts +4 -0
  252. package/dist/vscode/dialog/dialog.svelte +479 -0
  253. package/dist/vscode/dialog/dialog.svelte.d.ts +4 -0
  254. package/dist/vscode/dialog/footer.svelte +53 -0
  255. package/dist/vscode/dialog/footer.svelte.d.ts +7 -0
  256. package/dist/vscode/dialog/header.svelte +98 -0
  257. package/dist/vscode/dialog/header.svelte.d.ts +4 -0
  258. package/dist/{components → vscode}/icon/icon.svelte +10 -0
  259. package/dist/vscode/icon/icon.svelte.d.ts +4 -0
  260. package/dist/vscode/index.d.ts +20 -0
  261. package/dist/vscode/index.js +20 -0
  262. package/dist/vscode/pill/content.svelte +52 -0
  263. package/dist/vscode/pill/content.svelte.d.ts +4 -0
  264. package/dist/vscode/pill/on-delete.svelte +76 -0
  265. package/dist/vscode/pill/on-delete.svelte.d.ts +4 -0
  266. package/dist/vscode/pill/pill.svelte +475 -0
  267. package/dist/vscode/pill/pill.svelte.d.ts +4 -0
  268. package/dist/vscode/pill-choice-group/pill-choice-group.svelte +172 -0
  269. package/dist/vscode/pill-choice-group/pill-choice-group.svelte.d.ts +4 -0
  270. package/dist/{components → vscode}/pill-group/container.svelte +10 -0
  271. package/dist/vscode/pill-group/container.svelte.d.ts +4 -0
  272. package/dist/vscode/pill-group/pill-group.svelte +29 -0
  273. package/dist/vscode/pill-group/pill-group.svelte.d.ts +4 -0
  274. package/dist/vscode/pill-group/types.d.ts +6 -0
  275. package/dist/vscode/pill-group/types.js +1 -0
  276. package/dist/{components → vscode}/popover/popover.svelte +22 -1
  277. package/dist/vscode/popover/popover.svelte.d.ts +4 -0
  278. package/dist/vscode/progress/progress.svelte +542 -0
  279. package/dist/vscode/progress/progress.svelte.d.ts +4 -0
  280. package/dist/{components → vscode}/select/empty.svelte +4 -2
  281. package/dist/vscode/select/empty.svelte.d.ts +4 -0
  282. package/dist/{components → vscode}/select/list.svelte +5 -1
  283. package/dist/vscode/select/list.svelte.d.ts +4 -0
  284. package/dist/vscode/select/option.svelte +88 -0
  285. package/dist/vscode/select/option.svelte.d.ts +4 -0
  286. package/dist/vscode/select/select.svelte +84 -0
  287. package/dist/vscode/select/select.svelte.d.ts +4 -0
  288. package/dist/vscode/select/trigger.svelte +326 -0
  289. package/dist/vscode/select/trigger.svelte.d.ts +4 -0
  290. package/dist/vscode/spinner/spinner.svelte +101 -0
  291. package/dist/vscode/spinner/spinner.svelte.d.ts +4 -0
  292. package/dist/vscode/surface/surface.svelte +416 -0
  293. package/dist/vscode/surface/surface.svelte.d.ts +4 -0
  294. package/dist/vscode/switch/switch.svelte +152 -0
  295. package/dist/vscode/switch/switch.svelte.d.ts +4 -0
  296. package/dist/vscode/tabs/item.svelte +700 -0
  297. package/dist/vscode/tabs/item.svelte.d.ts +4 -0
  298. package/dist/vscode/tabs/tabs.svelte +234 -0
  299. package/dist/vscode/tabs/tabs.svelte.d.ts +4 -0
  300. package/dist/vscode/text-area/text-area.svelte +453 -0
  301. package/dist/vscode/text-area/text-area.svelte.d.ts +4 -0
  302. package/dist/vscode/text-input/text-input.svelte +458 -0
  303. package/dist/vscode/text-input/text-input.svelte.d.ts +4 -0
  304. package/dist/vscode/theme/fonts.css +8 -0
  305. package/dist/vscode/theme/surface.d.ts +3 -0
  306. package/dist/vscode/theme/surface.js +11 -0
  307. package/dist/vscode/theme/theme-mode-toggle.svelte +9 -0
  308. package/dist/vscode/theme/theme-mode-toggle.svelte.d.ts +4 -0
  309. package/dist/vscode/theme.svelte +57 -0
  310. package/dist/vscode/theme.svelte.d.ts +8 -0
  311. package/dist/vscode/tree-view/tree-node/chevron-button.svelte +57 -0
  312. package/dist/vscode/tree-view/tree-node/chevron-button.svelte.d.ts +4 -0
  313. package/dist/vscode/tree-view/tree-node/content.svelte +65 -0
  314. package/dist/vscode/tree-view/tree-node/content.svelte.d.ts +4 -0
  315. package/dist/vscode/tree-view/tree-node/delete-button.svelte +54 -0
  316. package/dist/vscode/tree-view/tree-node/delete-button.svelte.d.ts +4 -0
  317. package/dist/vscode/tree-view/tree-node/tree-node.svelte +128 -0
  318. package/dist/vscode/tree-view/tree-node/tree-node.svelte.d.ts +4 -0
  319. package/dist/vscode/tree-view/tree-view-section.svelte +41 -0
  320. package/dist/vscode/tree-view/tree-view-section.svelte.d.ts +4 -0
  321. package/dist/vscode/tree-view/tree-view.svelte +74 -0
  322. package/dist/vscode/tree-view/tree-view.svelte.d.ts +4 -0
  323. package/package.json +40 -55
  324. package/src/lib/crystal-code/button/button.svelte +518 -0
  325. package/src/lib/crystal-code/checkbox/checkbox.svelte +119 -0
  326. package/src/lib/crystal-code/checkbox/types.ts +7 -0
  327. package/src/lib/crystal-code/combobox/combobox.svelte +155 -0
  328. package/src/lib/crystal-code/combobox/form.svelte +61 -0
  329. package/src/lib/crystal-code/combobox/input.svelte +132 -0
  330. package/src/lib/crystal-code/combobox/list.svelte +78 -0
  331. package/src/lib/crystal-code/combobox/option.svelte +97 -0
  332. package/src/lib/crystal-code/dialog/dialog.svelte +214 -0
  333. package/src/lib/crystal-code/dialog/footer.svelte +32 -0
  334. package/src/lib/crystal-code/dialog/header.svelte +67 -0
  335. package/src/lib/crystal-code/icon/icon.svelte +121 -0
  336. package/src/lib/crystal-code/index.ts +20 -0
  337. package/src/lib/crystal-code/pill/content.svelte +29 -0
  338. package/src/lib/crystal-code/pill/on-delete.svelte +72 -0
  339. package/src/lib/crystal-code/pill/pill.svelte +488 -0
  340. package/src/lib/crystal-code/pill-choice-group/pill-choice-group.svelte +146 -0
  341. package/src/lib/crystal-code/pill-group/container.svelte +50 -0
  342. package/src/lib/crystal-code/pill-group/pill-group.svelte +29 -0
  343. package/src/lib/crystal-code/pill-group/types.ts +8 -0
  344. package/src/lib/crystal-code/popover/popover.svelte +133 -0
  345. package/src/lib/crystal-code/progress/progress.svelte +588 -0
  346. package/src/lib/crystal-code/select/empty.svelte +57 -0
  347. package/src/lib/crystal-code/select/list.svelte +61 -0
  348. package/src/lib/crystal-code/select/option.svelte +118 -0
  349. package/src/lib/crystal-code/select/select.svelte +106 -0
  350. package/src/lib/crystal-code/select/trigger.svelte +380 -0
  351. package/src/lib/crystal-code/spinner/spinner.svelte +101 -0
  352. package/src/lib/crystal-code/surface/surface.svelte +413 -0
  353. package/src/lib/crystal-code/switch/switch.svelte +163 -0
  354. package/src/lib/crystal-code/tabs/item.svelte +440 -0
  355. package/src/lib/crystal-code/tabs/tabs.svelte +138 -0
  356. package/src/lib/crystal-code/text-area/text-area.svelte +478 -0
  357. package/src/lib/crystal-code/text-input/text-input.svelte +481 -0
  358. package/src/lib/crystal-code/theme/fonts.css +8 -0
  359. package/src/lib/crystal-code/theme/overlay-motion.ts +40 -0
  360. package/src/lib/crystal-code/theme/surface.ts +20 -0
  361. package/src/lib/crystal-code/theme/theme-mode-toggle.svelte +9 -0
  362. package/src/lib/crystal-code/theme.svelte +91 -0
  363. package/src/lib/crystal-code/tree-view/tree-node/chevron-button.svelte +68 -0
  364. package/src/lib/crystal-code/tree-view/tree-node/content.svelte +68 -0
  365. package/src/lib/crystal-code/tree-view/tree-node/delete-button.svelte +53 -0
  366. package/src/lib/crystal-code/tree-view/tree-node/tree-node.svelte +363 -0
  367. package/src/lib/crystal-code/tree-view/tree-view-section.svelte +42 -0
  368. package/src/lib/crystal-code/tree-view/tree-view.svelte +74 -0
  369. package/src/lib/glassy/button/button.svelte +566 -0
  370. package/src/lib/glassy/checkbox/checkbox.svelte +225 -0
  371. package/src/lib/glassy/checkbox/types.ts +7 -0
  372. package/src/lib/glassy/combobox/combobox.svelte +194 -0
  373. package/src/lib/glassy/combobox/form.svelte +102 -0
  374. package/src/lib/glassy/combobox/input.svelte +132 -0
  375. package/src/lib/glassy/combobox/list.svelte +117 -0
  376. package/src/lib/glassy/combobox/option.svelte +136 -0
  377. package/src/lib/glassy/dialog/dialog.svelte +619 -0
  378. package/src/lib/glassy/dialog/footer.svelte +70 -0
  379. package/src/lib/glassy/dialog/header.svelte +105 -0
  380. package/src/lib/glassy/icon/icon.svelte +149 -0
  381. package/src/lib/glassy/index.ts +20 -0
  382. package/src/lib/glassy/pill/content.svelte +69 -0
  383. package/src/lib/glassy/pill/on-delete.svelte +86 -0
  384. package/src/lib/glassy/pill/pill.svelte +596 -0
  385. package/src/lib/glassy/pill-choice-group/pill-choice-group.svelte +191 -0
  386. package/src/lib/glassy/pill-group/container.svelte +86 -0
  387. package/src/lib/glassy/pill-group/pill-group.svelte +29 -0
  388. package/src/lib/glassy/pill-group/types.ts +16 -0
  389. package/src/lib/glassy/popover/popover.svelte +155 -0
  390. package/src/lib/glassy/progress/progress.svelte +668 -0
  391. package/src/lib/glassy/select/empty.svelte +63 -0
  392. package/src/lib/glassy/select/list.svelte +67 -0
  393. package/src/lib/glassy/select/option.svelte +117 -0
  394. package/src/lib/glassy/select/select.svelte +112 -0
  395. package/src/lib/glassy/select/trigger.svelte +428 -0
  396. package/src/lib/glassy/spinner/spinner.svelte +140 -0
  397. package/src/lib/glassy/surface/surface.svelte +499 -0
  398. package/src/lib/glassy/switch/switch.svelte +200 -0
  399. package/src/lib/glassy/tabs/item.svelte +524 -0
  400. package/src/lib/glassy/tabs/tabs.svelte +189 -0
  401. package/src/lib/glassy/text-area/text-area.svelte +562 -0
  402. package/src/lib/glassy/text-input/text-input.svelte +565 -0
  403. package/src/lib/glassy/theme/fonts.css +8 -0
  404. package/src/lib/glassy/theme/surface.ts +20 -0
  405. package/src/lib/glassy/theme/theme-mode-toggle.svelte +9 -0
  406. package/src/lib/glassy/theme.svelte +55 -0
  407. package/src/lib/glassy/tree-view/tree-node/chevron-button.svelte +95 -0
  408. package/src/lib/glassy/tree-view/tree-node/content.svelte +96 -0
  409. package/src/lib/glassy/tree-view/tree-node/delete-button.svelte +92 -0
  410. package/src/lib/glassy/tree-view/tree-node/tree-node.svelte +423 -0
  411. package/src/lib/glassy/tree-view/tree-view-section.svelte +81 -0
  412. package/src/lib/glassy/tree-view/tree-view.svelte +112 -0
  413. package/src/lib/index.ts +2 -0
  414. package/src/lib/new-paris/button/button.svelte +516 -0
  415. package/src/lib/new-paris/checkbox/checkbox.svelte +195 -0
  416. package/src/lib/new-paris/checkbox/types.ts +7 -0
  417. package/src/lib/new-paris/combobox/combobox.svelte +176 -0
  418. package/src/lib/new-paris/combobox/form.svelte +84 -0
  419. package/src/lib/new-paris/combobox/input.svelte +132 -0
  420. package/src/lib/new-paris/combobox/list.svelte +99 -0
  421. package/src/lib/new-paris/combobox/option.svelte +120 -0
  422. package/src/lib/new-paris/dialog/dialog.svelte +501 -0
  423. package/src/lib/new-paris/dialog/footer.svelte +47 -0
  424. package/src/lib/new-paris/dialog/header.svelte +94 -0
  425. package/src/lib/new-paris/icon/icon.svelte +131 -0
  426. package/src/lib/new-paris/index.ts +20 -0
  427. package/src/lib/new-paris/pill/content.svelte +51 -0
  428. package/src/lib/new-paris/pill/on-delete.svelte +71 -0
  429. package/src/lib/new-paris/pill/pill.svelte +510 -0
  430. package/src/lib/new-paris/pill-choice-group/pill-choice-group.svelte +176 -0
  431. package/src/lib/new-paris/pill-group/container.svelte +61 -0
  432. package/src/lib/new-paris/pill-group/pill-group.svelte +29 -0
  433. package/src/lib/new-paris/pill-group/types.ts +16 -0
  434. package/src/lib/new-paris/popover/popover.svelte +132 -0
  435. package/src/lib/new-paris/progress/progress.svelte +569 -0
  436. package/src/lib/new-paris/select/empty.svelte +45 -0
  437. package/src/lib/new-paris/select/list.svelte +49 -0
  438. package/src/lib/new-paris/select/option.svelte +90 -0
  439. package/src/lib/new-paris/select/select.svelte +94 -0
  440. package/src/lib/new-paris/select/trigger.svelte +377 -0
  441. package/src/lib/new-paris/spinner/spinner.svelte +110 -0
  442. package/src/lib/new-paris/surface/surface.svelte +419 -0
  443. package/src/lib/new-paris/switch/switch.svelte +184 -0
  444. package/src/lib/new-paris/tabs/item.svelte +432 -0
  445. package/src/lib/new-paris/tabs/tabs.svelte +157 -0
  446. package/src/lib/new-paris/text-area/text-area.svelte +485 -0
  447. package/src/lib/new-paris/text-input/text-input.svelte +488 -0
  448. package/src/lib/new-paris/theme/surface.ts +20 -0
  449. package/src/lib/new-paris/theme/theme-mode-toggle.svelte +9 -0
  450. package/src/lib/new-paris/theme.svelte +77 -0
  451. package/src/lib/new-paris/tree-view/tree-node/chevron-button.svelte +80 -0
  452. package/src/lib/new-paris/tree-view/tree-node/content.svelte +75 -0
  453. package/src/lib/new-paris/tree-view/tree-node/delete-button.svelte +77 -0
  454. package/src/lib/new-paris/tree-view/tree-node/tree-node.svelte +349 -0
  455. package/src/lib/new-paris/tree-view/tree-view-section.svelte +63 -0
  456. package/src/lib/new-paris/tree-view/tree-view.svelte +96 -0
  457. package/src/lib/vscode/button/button.svelte +498 -0
  458. package/src/lib/vscode/checkbox/checkbox.svelte +112 -0
  459. package/src/lib/vscode/checkbox/types.ts +7 -0
  460. package/src/lib/vscode/combobox/combobox.svelte +193 -0
  461. package/src/lib/vscode/combobox/form.svelte +84 -0
  462. package/src/lib/vscode/combobox/input.svelte +209 -0
  463. package/src/lib/vscode/combobox/list.svelte +102 -0
  464. package/src/lib/vscode/combobox/option.svelte +134 -0
  465. package/src/lib/vscode/dialog/dialog.svelte +479 -0
  466. package/src/lib/vscode/dialog/footer.svelte +53 -0
  467. package/src/lib/vscode/dialog/header.svelte +98 -0
  468. package/src/lib/vscode/icon/icon.svelte +120 -0
  469. package/src/lib/vscode/index.ts +20 -0
  470. package/src/lib/vscode/pill/content.svelte +52 -0
  471. package/src/lib/vscode/pill/on-delete.svelte +76 -0
  472. package/src/lib/vscode/pill/pill.svelte +475 -0
  473. package/src/lib/vscode/pill-choice-group/pill-choice-group.svelte +172 -0
  474. package/src/lib/vscode/pill-group/container.svelte +50 -0
  475. package/src/lib/vscode/pill-group/pill-group.svelte +29 -0
  476. package/src/lib/vscode/pill-group/types.ts +8 -0
  477. package/src/lib/vscode/popover/popover.svelte +132 -0
  478. package/src/lib/vscode/progress/progress.svelte +542 -0
  479. package/src/lib/vscode/select/empty.svelte +26 -0
  480. package/src/lib/vscode/select/list.svelte +32 -0
  481. package/src/lib/vscode/select/option.svelte +88 -0
  482. package/src/lib/vscode/select/select.svelte +84 -0
  483. package/src/lib/vscode/select/trigger.svelte +326 -0
  484. package/src/lib/vscode/spinner/spinner.svelte +101 -0
  485. package/src/lib/vscode/surface/surface.svelte +416 -0
  486. package/src/lib/vscode/switch/switch.svelte +152 -0
  487. package/src/lib/vscode/tabs/item.svelte +700 -0
  488. package/src/lib/vscode/tabs/tabs.svelte +234 -0
  489. package/src/lib/vscode/text-area/text-area.svelte +453 -0
  490. package/src/lib/vscode/text-input/text-input.svelte +458 -0
  491. package/src/lib/vscode/theme/fonts.css +8 -0
  492. package/src/lib/vscode/theme/surface.ts +20 -0
  493. package/src/lib/vscode/theme/theme-mode-toggle.svelte +9 -0
  494. package/src/lib/vscode/theme.svelte +57 -0
  495. package/src/lib/vscode/tree-view/tree-node/chevron-button.svelte +57 -0
  496. package/src/lib/vscode/tree-view/tree-node/content.svelte +65 -0
  497. package/src/lib/vscode/tree-view/tree-node/delete-button.svelte +54 -0
  498. package/src/lib/vscode/tree-view/tree-node/tree-node.svelte +128 -0
  499. package/src/lib/vscode/tree-view/tree-view-section.svelte +41 -0
  500. package/src/lib/vscode/tree-view/tree-view.svelte +74 -0
  501. package/dist/components/button/button.svelte +0 -145
  502. package/dist/components/pill/pill.svelte +0 -179
  503. package/dist/components/progress/progress.svelte +0 -242
  504. package/dist/components/select/trigger.svelte +0 -109
  505. package/dist/components/surface/surface.svelte +0 -101
  506. package/dist/components/tabs/item.svelte +0 -125
  507. package/dist/components/text-input/text-input.svelte +0 -149
  508. package/dist/components/theme/surface.js +0 -11
  509. package/dist/elsewhere/index.d.ts +0 -2
  510. package/dist/elsewhere/index.js +0 -2
  511. package/dist/elsewhere/theme.svelte +0 -45
  512. package/dist/forma/index.d.ts +0 -2
  513. package/dist/forma/index.js +0 -2
  514. package/dist/forma/theme.svelte +0 -44
  515. package/dist/relay/index.d.ts +0 -2
  516. package/dist/relay/index.js +0 -2
  517. package/dist/relay/theme.svelte +0 -47
  518. package/dist/shared/base.svelte +0 -91
  519. package/dist/shared/base.svelte.d.ts +0 -26
  520. /package/dist/{components → crystal-code}/button/button.svelte.d.ts +0 -0
  521. /package/dist/{components → crystal-code}/checkbox/checkbox.svelte.d.ts +0 -0
  522. /package/dist/{components → crystal-code}/checkbox/types.d.ts +0 -0
  523. /package/dist/{components → crystal-code}/checkbox/types.js +0 -0
  524. /package/dist/{components → crystal-code}/dialog/dialog.svelte.d.ts +0 -0
  525. /package/dist/{components → crystal-code}/dialog/footer.svelte.d.ts +0 -0
  526. /package/dist/{components → crystal-code}/dialog/header.svelte.d.ts +0 -0
  527. /package/dist/{components → crystal-code}/icon/icon.svelte.d.ts +0 -0
  528. /package/dist/{components → crystal-code}/pill/content.svelte.d.ts +0 -0
  529. /package/dist/{components → crystal-code}/pill/pill.svelte.d.ts +0 -0
  530. /package/dist/{components → crystal-code}/pill-choice-group/pill-choice-group.svelte.d.ts +0 -0
  531. /package/dist/{components → crystal-code}/pill-group/container.svelte.d.ts +0 -0
  532. /package/dist/{components → crystal-code}/pill-group/types.js +0 -0
  533. /package/dist/{components → crystal-code}/popover/popover.svelte.d.ts +0 -0
  534. /package/dist/{components → crystal-code}/progress/progress.svelte.d.ts +0 -0
  535. /package/dist/{components → crystal-code}/select/empty.svelte.d.ts +0 -0
  536. /package/dist/{components → crystal-code}/select/list.svelte.d.ts +0 -0
  537. /package/dist/{components → crystal-code}/select/option.svelte.d.ts +0 -0
  538. /package/dist/{components → crystal-code}/select/select.svelte.d.ts +0 -0
  539. /package/dist/{components → crystal-code}/select/trigger.svelte.d.ts +0 -0
  540. /package/dist/{components → crystal-code}/spinner/spinner.svelte +0 -0
  541. /package/dist/{components → crystal-code}/spinner/spinner.svelte.d.ts +0 -0
  542. /package/dist/{components → crystal-code}/surface/surface.svelte.d.ts +0 -0
  543. /package/dist/{components → crystal-code}/tabs/item.svelte.d.ts +0 -0
  544. /package/dist/{components → crystal-code}/tabs/tabs.svelte.d.ts +0 -0
  545. /package/dist/{components → crystal-code}/text-input/text-input.svelte.d.ts +0 -0
  546. /package/dist/{components → glassy}/pill/on-delete.svelte.d.ts +0 -0
  547. /package/dist/{components → glassy}/pill-group/pill-group.svelte +0 -0
  548. /package/dist/{components → glassy}/pill-group/pill-group.svelte.d.ts +0 -0
  549. /package/dist/{components → glassy}/pill-group/types.d.ts +0 -0
package/README.md CHANGED
@@ -1,111 +1,134 @@
1
1
  # bref-ui-themes
2
2
 
3
- Reusable Svelte 5 themes for [bref-ui](https://github.com/feuersteiner/bref-ui), with interactive demos and native CSS. Version 0.1.0 is an unpublished review candidate built on SvelteKit 3 and published Bref 2.2.0.
3
+ Reusable themes for [Bref-ui](../readme.md), each intended to have its own public
4
+ entry point. Theme implementations are reviewed in separate pull requests.
4
5
 
5
- [Explore the showcase](https://feuersteiner.github.io/bref-ui-themes/) · [Bref documentation](https://feuersteiner.github.io/bref-ui/) · [Join Discord](https://discord.gg/JpgQRTUsVS)
6
+ The Todo, House Shop and RunnerAI demos use canonical Bref components and palette
7
+ configuration. Their sources and previews live in [docs](../docs/README.md).
6
8
 
7
- ## Local development
9
+ https://github.com/user-attachments/assets/3326a5c3-0573-4b40-bb8e-9a10da1fd6ac
8
10
 
9
- Requires Bun 1.3.4 or newer. The scaffold uses Svelte 5, SvelteKit 3, Vite 8 and `svelte-package` 3.
11
+ See New Paris, VS Code and Glassy in action. The [video app and storyboard](../video-demo/README.md)
12
+ are part of this repository.
13
+
14
+ ## Installation
15
+
16
+ Install [bref-ui-themes from npm](https://www.npmjs.com/package/bref-ui-themes) in a Svelte 5 app:
10
17
 
11
18
  ```sh
12
- bun install
13
- bun run dev # http://localhost:5173
14
- bun run check
15
- bun run lint
16
- bun run package # library → dist; includes publint
17
- bun run build:site # static showcase → build
18
- bun run build # site + library
19
- bun run preview # preview the production site
20
- bun pm pack # creates a local npm tarball; does not publish
19
+ npm install bref-ui bref-ui-themes
21
20
  ```
22
21
 
23
- The restored GitHub Pages workflow builds `build:site` on pushes to `main`, using the Pages base path and uploading `build`. To reproduce the project-path build locally:
22
+ Bref-ui 3 and Svelte 5 are peer dependencies. The custom text font remains optional.
24
23
 
25
- ```sh
26
- BASE_PATH=/bref-ui-themes bun run build:site
27
- BASE_PATH=/bref-ui-themes bun run preview # http://localhost:4173/bref-ui-themes/
24
+ Import components from the theme's entry point:
25
+
26
+ ```svelte
27
+ <script>
28
+ import { Theme, Button } from 'bref-ui-themes/new-paris';
29
+ </script>
30
+
31
+ <Theme><Button label="Save" /></Theme>
28
32
  ```
29
33
 
30
- ## Showcase and demo sites
34
+ ## Development
31
35
 
32
- Open the [showcase](http://localhost:5173/). The showcase uses base `bref-ui` Theme, Button, Surface, Pill and Icon components, default palette/styles, documentation fonts and the Bref logo. Each card uses an actual browser screenshot and links to the working site. Every demo provides a Showcase link; navigation between themes reloads the document to avoid retaining global CSS.
36
+ Run `bun install` and `bun run dev` from the repository root. The docs site consumes
37
+ public workspace source exports directly. Package-level `check`, `build` and `prepack`
38
+ remain available here; `src/lib` holds published sources and `src/routes` is only
39
+ a local library preview.
33
40
 
34
- | Demo | Implemented interactions | Site | Theme demonstration |
35
- | ------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------- | ----------------------------------------------------------- |
36
- | Tasks | Project creation/filtering, task status tabs, search, completion and task editing | [/relay](http://localhost:5173/relay) | [/themes/relay](http://localhost:5173/themes/relay) |
37
- | House Shop | Category tabs, furniture sorting, product dialogs, cart quantities and simulated checkout | [/forma](http://localhost:5173/forma) | [/themes/forma](http://localhost:5173/themes/forma) |
38
- | Site Reviewer | URL validation, simulated audit progress, history and finding review tabs | [/elsewhere](http://localhost:5173/elsewhere) | [/themes/elsewhere](http://localhost:5173/themes/elsewhere) |
41
+ Packing includes this README and a generated copy of the repository MIT license.
42
+ Edit the root license; generated package copies are ignored.
39
43
 
40
- ![Tasks rendered demo](static/previews/relay.jpg)
41
- ![House Shop rendered demo](static/previews/forma.jpg)
42
- ![Site Reviewer rendered demo](static/previews/elsewhere.jpg)
44
+ Shared types come directly from `bref-ui/types` and are re-exported as types from
45
+ `bref-ui-themes`. The root entry does not aggregate components or load theme CSS.
46
+ New Paris depends on Material Symbols and loads its variable fill font through Theme.
43
47
 
44
- **WIP:** VS Code, Liquid Glass and Minimalist Blocky are planned. They have no exports, demonstration routes or availability links.
48
+ ## New Paris
45
49
 
46
- ## Library imports
50
+ Black and ivory controls, serif typography and opaque paper overlays. All twenty components are exported through the theme subpath.
47
51
 
48
- Install the local tarball with `bun add ./bref-ui-themes-0.1.0.tgz`. Consumers need Svelte `^5.57.1` and Bref `^2.2.0` (peer dependencies). Fonts used by the themes are package dependencies.
52
+ Material Symbols icons load automatically with Theme. The custom text font, Inter,
53
+ is optional to avoid adding unused font assets to apps; text falls back to system
54
+ fonts. To match the gallery typography, install and import Inter:
55
+
56
+ ```sh
57
+ npm install @fontsource-variable/inter
58
+ ```
49
59
 
50
60
  ```svelte
51
- <script lang="ts">
52
- import { Theme, Button } from 'bref-ui-themes/relay';
61
+ <script>
62
+ import '@fontsource-variable/inter/index.css';
63
+ import { Theme, Button } from 'bref-ui-themes/new-paris';
53
64
  </script>
54
65
 
55
- <Theme>
56
- <Button label="Create project" variant="filled" color="primary" />
57
- </Theme>
66
+ <Theme><Button label="Save" /></Theme>
58
67
  ```
59
68
 
60
- The same API is available from each implemented theme:
69
+ The gallery uses the same public package exports at `/themes/new-paris`.
70
+
71
+ ## Glassy
72
+
73
+ Translucent controls and frosted overlays with scoped component styling. All twenty components are exported through the theme subpath:
74
+
75
+ ```svelte
76
+ <script>
77
+ import { Theme, Button } from 'bref-ui-themes/glassy';
78
+ </script>
61
79
 
62
- ```ts
63
- import { Theme, Button } from 'bref-ui-themes/forma';
64
- // Or: import { Theme, Button } from 'bref-ui-themes/elsewhere';
65
- // Namespace exports: import { Relay, Forma, Elsewhere } from 'bref-ui-themes';
80
+ <Theme><Button label="Save" /></Theme>
66
81
  ```
67
82
 
68
- Each entry exports `Theme`, `Button`, `Checkbox`, `Dialog`, `Icon`, `Pill`, `PillChoiceGroup`, `PillGroup`, `Popover`, `Progress`, `Select`, `Spinner`, `Surface`, `Tabs` and `TextInput`. `Theme` takes an optional `children` snippet. Controls retain Bref's props, native attributes and applicable bindings; their types remain imported from `bref-ui/types`.
83
+ Material Symbols icons load automatically with Theme. Inter remains optional; to
84
+ match the gallery typography, install `@fontsource-variable/inter` and import
85
+ `@fontsource-variable/inter/index.css` in the app.
69
86
 
70
- ### Tabs
87
+ The gallery uses the same public package exports at `/themes/glassy`.
71
88
 
72
- `Tabs` uses Bref 2.2.0's readonly item data, required icon names and bindable string value. The consumer renders the selected content:
89
+ ## Crystal Code
90
+
91
+ Light and dark frosted workbench controls with a complete component reference. All twenty components are exported through the theme subpath:
92
+
93
+ ```svelte
94
+ <script>
95
+ import { Theme, Button } from 'bref-ui-themes/crystal-code';
96
+ </script>
97
+
98
+ <Theme><Button label="Save" /></Theme>
99
+ ```
100
+
101
+ Material Symbols icons load automatically with Theme. Inter remains optional; to
102
+ match the gallery typography, install and import it:
103
+
104
+ ```sh
105
+ npm install @fontsource-variable/inter
106
+ ```
73
107
 
74
108
  ```svelte
75
- <script lang="ts">
76
- import { Theme, Tabs } from 'bref-ui-themes/relay';
77
- import type { TabItemDataProps } from 'bref-ui/types';
78
- let view = $state('overview');
79
- const items = [
80
- { id: 'overview', label: 'Overview', icon: 'dashboard' },
81
- { id: 'activity', label: 'Activity', icon: 'history' },
82
- { id: 'reports', label: 'Reports', icon: 'monitoring', disabled: true }
83
- ] as const satisfies readonly TabItemDataProps[];
109
+ <script>
110
+ import '@fontsource-variable/inter/index.css';
111
+ import { Theme, Button } from 'bref-ui-themes/crystal-code';
84
112
  </script>
85
113
 
86
- <Theme>
87
- <Tabs {items} bind:value={view} label="Project views" />
88
- <div role="tabpanel" aria-label={items.find((item) => item.id === view)?.label} tabindex="0">
89
- {#if view === 'overview'}<p>8 tasks open, 3 completed.</p>
90
- {:else}<p>The navigation review was completed today.</p>{/if}
91
- </div>
92
- </Theme>
114
+ <Theme><Button label="Save" icon={{ name: 'check' }} /></Theme>
93
115
  ```
94
116
 
95
- Horizontal tabs accept `size="fit"` (default, scrolls on overflow) or `size="fill"`. Vertical tabs use `orientation="vertical"` without `size`. Optional `onChange`, `filled`, `transitionIn` and `transitionOut` retain the published API. Default indicator motion respects reduced motion; custom transitions should do the same. Arrow keys, Home and End move selection and skip disabled items. At small widths, horizontal tabs show the selected label, and vertical tabs show icons; accessible names remain available. Each theme demonstration includes fit, fill, vertical, disabled and bound-content examples.
117
+ The gallery uses the same public package exports at `/themes/crystal-code`.
96
118
 
97
- These initial themes provide the demo palettes, fonts, common CSS and component styling. They use light mode and document-global Bref tokens/reset styles; mount one theme per document and use full-page navigation when changing themes. Site-specific layouts and content are separate from the library.
119
+ ## VS Code
98
120
 
99
- ## Source layout
121
+ Fixed-dark workbench controls with native interactions and scoped styling. All twenty components are exported through the theme subpath:
100
122
 
101
- - `src/lib/<theme>/index.ts`: public theme entry; each site's demo and theme demonstration consume it.
102
- - `src/lib/components`: Bref CLI-copied controls and their local dependencies, with `bref-ui/types` imports preserved.
103
- - `src/lib/shared`: common reusable theme styling.
104
- - `src/routes/(sites)`: complete Tasks, House Shop and Site Reviewer sites and the latest shared demo shell.
105
- - `src/routes/(themes)`: demonstrations of implemented public theme exports.
106
- - `src/routes/catalog`: showcase content adapted from the reusable gallery.
107
- - `static/demos`: original photographic assets; `static/previews`: rendered catalog previews. Neither is included in the npm package.
123
+ ```svelte
124
+ <script>
125
+ import { Theme, Button } from 'bref-ui-themes/vscode';
126
+ </script>
127
+
128
+ <Theme><Button label="Save" icon={{ name: 'check' }} /></Theme>
129
+ ```
108
130
 
109
- The migration preserves the local checkbox motion/reduced-motion fix and animated dialog title/icon updates. Only demo-owned files were extracted from their source branches; the latest Relay shared shell was kept. See [verification.md](verification.md) for source revisions, validation and remaining limitations.
131
+ Material Symbols icons load automatically with Theme. Text uses system fonts, so
132
+ no custom text font installation is required.
110
133
 
111
- Tabs was copied from the npm-installed Bref 2.2.0 source using its registry, dependency planner and preview/install pipeline. Existing Icon and Theme dependencies were retained. The preview added only `tabs/tabs.svelte` and `tabs/item.svelte`, with explicit approval for the shared barrel merge; no existing component source was overwritten. Tabs types remain public imports from `bref-ui/types`.
134
+ The gallery uses the same public package exports at `/themes/vscode`.