@prestack/thread-ui 0.1.1 → 0.1.2

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 (343) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/dist/ui/animations/anm_appear.d.ts +8 -8
  3. package/dist/ui/animations/anm_blur_in.d.ts +12 -12
  4. package/dist/ui/animations/anm_blur_out.d.ts +12 -12
  5. package/dist/ui/animations/anm_dismiss.d.ts +12 -12
  6. package/dist/ui/animations/anm_drop.d.ts +12 -12
  7. package/dist/ui/animations/anm_fall.d.ts +12 -12
  8. package/dist/ui/animations/anm_flash.d.ts +9 -9
  9. package/dist/ui/animations/anm_glow.d.ts +8 -8
  10. package/dist/ui/animations/anm_lift.d.ts +8 -8
  11. package/dist/ui/animations/anm_nudge.d.ts +8 -8
  12. package/dist/ui/animations/anm_pop_in.d.ts +16 -16
  13. package/dist/ui/animations/anm_pop_out.d.ts +16 -16
  14. package/dist/ui/animations/anm_press.d.ts +9 -9
  15. package/dist/ui/animations/anm_pulse.d.ts +10 -10
  16. package/dist/ui/animations/anm_rise.d.ts +12 -12
  17. package/dist/ui/animations/anm_shake.d.ts +11 -11
  18. package/dist/ui/animations/anm_slide_in_left.d.ts +12 -12
  19. package/dist/ui/animations/anm_slide_in_right.d.ts +12 -12
  20. package/dist/ui/animations/anm_slide_out_left.d.ts +12 -12
  21. package/dist/ui/animations/anm_slide_out_right.d.ts +12 -12
  22. package/dist/ui/animations/anm_spin.d.ts +8 -8
  23. package/dist/ui/animations/anm_swell.d.ts +8 -8
  24. package/dist/ui/animations/anm_wobble.d.ts +13 -13
  25. package/dist/ui/animations/anm_zoom_in.d.ts +12 -12
  26. package/dist/ui/animations/anm_zoom_out.d.ts +12 -12
  27. package/dist/ui/animations.d.ts +8 -8
  28. package/dist/ui/animations.js +4 -4
  29. package/dist/ui/animations.ts +1 -1
  30. package/dist/ui/attach.js +22 -78
  31. package/dist/ui/attach.ts +8 -66
  32. package/dist/ui/charts.d.ts +0 -3
  33. package/dist/ui/charts.js +3 -7
  34. package/dist/ui/charts.tsx +0 -4
  35. package/dist/ui/checked.d.ts +1 -1
  36. package/dist/ui/checked.ts +1 -1
  37. package/dist/ui/collector.js +1 -1
  38. package/dist/ui/collector.ts +1 -1
  39. package/dist/ui/compositions.d.ts +9 -3
  40. package/dist/ui/compositions.js +9 -158
  41. package/dist/ui/compositions.ts +6 -170
  42. package/dist/ui/content.js +4 -7
  43. package/dist/ui/content.tsx +4 -15
  44. package/dist/ui/controls.js +1 -1
  45. package/dist/ui/door.d.ts +1 -1
  46. package/dist/ui/elements/accordion.d.ts +2 -1
  47. package/dist/ui/elements/accordion.js +4 -4
  48. package/dist/ui/elements/accordion.tsx +2 -1
  49. package/dist/ui/elements/aspect-ratio.d.ts +2 -1
  50. package/dist/ui/elements/aspect-ratio.js +1 -1
  51. package/dist/ui/elements/aspect-ratio.tsx +2 -1
  52. package/dist/ui/elements/avatar.d.ts +2 -1
  53. package/dist/ui/elements/avatar.js +3 -3
  54. package/dist/ui/elements/avatar.tsx +2 -1
  55. package/dist/ui/elements/badge.d.ts +2 -1
  56. package/dist/ui/elements/badge.js +3 -3
  57. package/dist/ui/elements/badge.tsx +2 -1
  58. package/dist/ui/elements/bars.d.ts +2 -1
  59. package/dist/ui/elements/bars.js +5 -5
  60. package/dist/ui/elements/bars.tsx +2 -1
  61. package/dist/ui/elements/bars.works.js +3 -3
  62. package/dist/ui/elements/box.d.ts +2 -1
  63. package/dist/ui/elements/box.js +1 -1
  64. package/dist/ui/elements/box.tsx +2 -1
  65. package/dist/ui/elements/breadcrumb.d.ts +2 -1
  66. package/dist/ui/elements/breadcrumb.js +5 -5
  67. package/dist/ui/elements/breadcrumb.tsx +2 -1
  68. package/dist/ui/elements/breadcrumb.works.js +1 -1
  69. package/dist/ui/elements/button.d.ts +2 -1
  70. package/dist/ui/elements/button.js +3 -3
  71. package/dist/ui/elements/button.tsx +2 -1
  72. package/dist/ui/elements/button.works.js +2 -2
  73. package/dist/ui/elements/column.d.ts +2 -1
  74. package/dist/ui/elements/column.js +1 -1
  75. package/dist/ui/elements/column.tsx +2 -1
  76. package/dist/ui/elements/consent.d.ts +2 -1
  77. package/dist/ui/elements/consent.js +10 -10
  78. package/dist/ui/elements/consent.tsx +2 -1
  79. package/dist/ui/elements/consent.works.js +1 -1
  80. package/dist/ui/elements/donut.d.ts +2 -1
  81. package/dist/ui/elements/donut.js +4 -4
  82. package/dist/ui/elements/donut.tsx +2 -1
  83. package/dist/ui/elements/donut.works.js +2 -2
  84. package/dist/ui/elements/each.d.ts +2 -1
  85. package/dist/ui/elements/each.js +3 -3
  86. package/dist/ui/elements/each.tsx +2 -1
  87. package/dist/ui/elements/each.works.js +2 -2
  88. package/dist/ui/elements/empty.d.ts +2 -1
  89. package/dist/ui/elements/empty.js +2 -2
  90. package/dist/ui/elements/empty.tsx +2 -1
  91. package/dist/ui/elements/field.d.ts +2 -1
  92. package/dist/ui/elements/field.js +3 -3
  93. package/dist/ui/elements/field.tsx +2 -1
  94. package/dist/ui/elements/field.works.js +1 -1
  95. package/dist/ui/elements/funnel.d.ts +2 -1
  96. package/dist/ui/elements/funnel.js +5 -5
  97. package/dist/ui/elements/funnel.tsx +2 -1
  98. package/dist/ui/elements/funnel.works.js +3 -3
  99. package/dist/ui/elements/gauge.d.ts +2 -1
  100. package/dist/ui/elements/gauge.js +3 -3
  101. package/dist/ui/elements/gauge.tsx +2 -1
  102. package/dist/ui/elements/gauge.works.js +1 -1
  103. package/dist/ui/elements/glyph.d.ts +2 -1
  104. package/dist/ui/elements/glyph.js +3 -3
  105. package/dist/ui/elements/glyph.tsx +2 -1
  106. package/dist/ui/elements/glyph.works.js +1 -1
  107. package/dist/ui/elements/grid.d.ts +2 -1
  108. package/dist/ui/elements/grid.js +1 -1
  109. package/dist/ui/elements/grid.tsx +2 -1
  110. package/dist/ui/elements/heatmap.d.ts +2 -1
  111. package/dist/ui/elements/heatmap.js +5 -5
  112. package/dist/ui/elements/heatmap.tsx +2 -1
  113. package/dist/ui/elements/heatmap.works.js +1 -1
  114. package/dist/ui/elements/hit-box.d.ts +2 -1
  115. package/dist/ui/elements/hit-box.js +2 -2
  116. package/dist/ui/elements/hit-box.tsx +2 -1
  117. package/dist/ui/elements/hit-box.works.d.ts +2 -2
  118. package/dist/ui/elements/hit-box.works.js +5 -5
  119. package/dist/ui/elements/hit-box.works.tsx +2 -1
  120. package/dist/ui/elements/image.d.ts +2 -1
  121. package/dist/ui/elements/image.js +2 -2
  122. package/dist/ui/elements/image.tsx +2 -1
  123. package/dist/ui/elements/line-chart.d.ts +2 -1
  124. package/dist/ui/elements/line-chart.js +4 -4
  125. package/dist/ui/elements/line-chart.tsx +2 -1
  126. package/dist/ui/elements/line-chart.works.js +2 -2
  127. package/dist/ui/elements/link.d.ts +2 -1
  128. package/dist/ui/elements/link.js +3 -3
  129. package/dist/ui/elements/link.tsx +2 -1
  130. package/dist/ui/elements/link.works.js +1 -1
  131. package/dist/ui/elements/media.d.ts +2 -1
  132. package/dist/ui/elements/media.js +2 -2
  133. package/dist/ui/elements/media.tsx +2 -1
  134. package/dist/ui/elements/menu.d.ts +2 -1
  135. package/dist/ui/elements/menu.js +5 -5
  136. package/dist/ui/elements/menu.tsx +2 -1
  137. package/dist/ui/elements/menu.works.d.ts +2 -1
  138. package/dist/ui/elements/menu.works.js +5 -5
  139. package/dist/ui/elements/menu.works.tsx +2 -1
  140. package/dist/ui/elements/money.d.ts +3 -1
  141. package/dist/ui/elements/money.js +10 -5
  142. package/dist/ui/elements/money.tsx +12 -3
  143. package/dist/ui/elements/money.works.js +1 -1
  144. package/dist/ui/elements/pagination.d.ts +2 -1
  145. package/dist/ui/elements/pagination.js +5 -5
  146. package/dist/ui/elements/pagination.tsx +2 -1
  147. package/dist/ui/elements/progress.d.ts +2 -1
  148. package/dist/ui/elements/progress.js +3 -3
  149. package/dist/ui/elements/progress.tsx +2 -1
  150. package/dist/ui/elements/radio-group.d.ts +2 -1
  151. package/dist/ui/elements/radio-group.js +4 -4
  152. package/dist/ui/elements/radio-group.tsx +2 -1
  153. package/dist/ui/elements/radio-group.works.js +1 -1
  154. package/dist/ui/elements/row.d.ts +2 -1
  155. package/dist/ui/elements/row.js +1 -1
  156. package/dist/ui/elements/row.tsx +2 -1
  157. package/dist/ui/elements/scatter.d.ts +2 -1
  158. package/dist/ui/elements/scatter.js +3 -3
  159. package/dist/ui/elements/scatter.tsx +2 -1
  160. package/dist/ui/elements/scatter.works.js +1 -1
  161. package/dist/ui/elements/select.d.ts +2 -1
  162. package/dist/ui/elements/select.js +4 -4
  163. package/dist/ui/elements/select.tsx +2 -1
  164. package/dist/ui/elements/separator.d.ts +2 -1
  165. package/dist/ui/elements/separator.js +2 -2
  166. package/dist/ui/elements/separator.tsx +2 -1
  167. package/dist/ui/elements/skeleton.d.ts +2 -1
  168. package/dist/ui/elements/skeleton.js +2 -2
  169. package/dist/ui/elements/skeleton.tsx +2 -1
  170. package/dist/ui/elements/slider.d.ts +2 -1
  171. package/dist/ui/elements/slider.js +3 -3
  172. package/dist/ui/elements/slider.tsx +2 -1
  173. package/dist/ui/elements/sparkline.d.ts +2 -1
  174. package/dist/ui/elements/sparkline.js +3 -3
  175. package/dist/ui/elements/sparkline.tsx +2 -1
  176. package/dist/ui/elements/sparkline.works.js +1 -1
  177. package/dist/ui/elements/spinner.d.ts +2 -1
  178. package/dist/ui/elements/spinner.js +2 -2
  179. package/dist/ui/elements/spinner.tsx +2 -1
  180. package/dist/ui/elements/stack.d.ts +2 -1
  181. package/dist/ui/elements/stack.js +1 -1
  182. package/dist/ui/elements/stack.tsx +2 -1
  183. package/dist/ui/elements/stat.d.ts +2 -1
  184. package/dist/ui/elements/stat.js +3 -3
  185. package/dist/ui/elements/stat.tsx +2 -1
  186. package/dist/ui/elements/stat.works.js +1 -1
  187. package/dist/ui/elements/surface.d.ts +2 -1
  188. package/dist/ui/elements/surface.js +2 -2
  189. package/dist/ui/elements/surface.tsx +2 -1
  190. package/dist/ui/elements/surface.works.js +1 -1
  191. package/dist/ui/elements/table.d.ts +2 -1
  192. package/dist/ui/elements/table.js +4 -4
  193. package/dist/ui/elements/table.tsx +2 -1
  194. package/dist/ui/elements/table.works.js +1 -1
  195. package/dist/ui/elements/tabs.d.ts +2 -1
  196. package/dist/ui/elements/tabs.js +4 -4
  197. package/dist/ui/elements/tabs.tsx +2 -1
  198. package/dist/ui/elements/tabs.works.js +1 -1
  199. package/dist/ui/elements/text.d.ts +2 -1
  200. package/dist/ui/elements/text.js +2 -2
  201. package/dist/ui/elements/text.tsx +2 -1
  202. package/dist/ui/elements/textarea.d.ts +2 -1
  203. package/dist/ui/elements/textarea.js +4 -4
  204. package/dist/ui/elements/textarea.tsx +2 -1
  205. package/dist/ui/elements/time.d.ts +3 -1
  206. package/dist/ui/elements/time.js +7 -4
  207. package/dist/ui/elements/time.tsx +9 -2
  208. package/dist/ui/elements/time.works.d.ts +1 -0
  209. package/dist/ui/elements/time.works.js +7 -3
  210. package/dist/ui/elements/time.works.ts +6 -2
  211. package/dist/ui/elements/toggle.d.ts +2 -1
  212. package/dist/ui/elements/toggle.js +3 -3
  213. package/dist/ui/elements/toggle.tsx +2 -1
  214. package/dist/ui/elements/tooltip.d.ts +2 -1
  215. package/dist/ui/elements/tooltip.js +2 -2
  216. package/dist/ui/elements/tooltip.tsx +2 -1
  217. package/dist/ui/elements/tooltip.works.js +2 -2
  218. package/dist/ui/elements/value.d.ts +3 -1
  219. package/dist/ui/elements/value.js +10 -5
  220. package/dist/ui/elements/value.tsx +12 -3
  221. package/dist/ui/elements/value.works.js +1 -1
  222. package/dist/ui/elements.d.ts +15 -11
  223. package/dist/ui/elements.js +6 -6
  224. package/dist/ui/elements.ts +7 -7
  225. package/dist/ui/fonts.d.ts +1 -1
  226. package/dist/ui/fonts.js +1 -1
  227. package/dist/ui/generators/dev.d.ts +1 -2
  228. package/dist/ui/generators/dev.js +33 -37
  229. package/dist/ui/generators/dev.ts +30 -37
  230. package/dist/ui/generators/elements.d.ts +1 -0
  231. package/dist/ui/generators/elements.js +11 -9
  232. package/dist/ui/generators/elements.ts +12 -9
  233. package/dist/ui/generators/i18n.js +6 -23
  234. package/dist/ui/generators/i18n.ts +1 -18
  235. package/dist/ui/generators/icons.js +5 -14
  236. package/dist/ui/generators/icons.ts +1 -10
  237. package/dist/ui/generators/react.js +4 -5
  238. package/dist/ui/generators/react.ts +2 -3
  239. package/dist/ui/generators/routes.js +66 -51
  240. package/dist/ui/generators/routes.ts +67 -46
  241. package/dist/ui/generators/show.js +9 -6
  242. package/dist/ui/generators/show.ts +4 -2
  243. package/dist/ui/generators/styles.js +12 -16
  244. package/dist/ui/generators/styles.ts +1 -5
  245. package/dist/ui/generators/variants.js +3 -3
  246. package/dist/ui/generators/variants.ts +1 -1
  247. package/dist/ui/i18n/catalogs/en.js +1 -1
  248. package/dist/ui/i18n/format.js +1 -1
  249. package/dist/ui/i18n/translator.js +2 -2
  250. package/dist/ui/material.d.ts +11 -11
  251. package/dist/ui/material.js +1 -1
  252. package/dist/ui/materials/mat_bordered.d.ts +13 -13
  253. package/dist/ui/materials/mat_bordered.js +1 -1
  254. package/dist/ui/materials/mat_ceramic.d.ts +13 -13
  255. package/dist/ui/materials/mat_ceramic.js +1 -1
  256. package/dist/ui/materials/mat_clay.d.ts +13 -13
  257. package/dist/ui/materials/mat_clay.js +1 -1
  258. package/dist/ui/materials/mat_elevated.d.ts +13 -13
  259. package/dist/ui/materials/mat_elevated.js +1 -1
  260. package/dist/ui/materials/mat_flat.d.ts +25 -25
  261. package/dist/ui/materials/mat_flat.js +1 -1
  262. package/dist/ui/materials/mat_glass.d.ts +17 -17
  263. package/dist/ui/materials/mat_glass.js +1 -1
  264. package/dist/ui/materials/mat_lit.d.ts +13 -13
  265. package/dist/ui/materials/mat_lit.js +1 -1
  266. package/dist/ui/materials/mat_moulded.d.ts +9 -9
  267. package/dist/ui/materials/mat_moulded.js +1 -1
  268. package/dist/ui/materials.d.ts +30 -30
  269. package/dist/ui/materials.js +3 -3
  270. package/dist/ui/materials.ts +1 -1
  271. package/dist/ui/modes.d.ts +2 -2
  272. package/dist/ui/presented.js +5 -5
  273. package/dist/ui/provider.d.ts +3 -0
  274. package/dist/ui/provider.js +9 -10
  275. package/dist/ui/provider.tsx +7 -5
  276. package/dist/ui/screens.js +6 -6
  277. package/dist/ui/screens.ts +1 -1
  278. package/dist/ui/scroll-lock.js +1 -1
  279. package/dist/ui/series.js +1 -1
  280. package/dist/ui/styleguide.js +1 -1
  281. package/dist/ui/tokens.d.ts +2 -2
  282. package/dist/ui/tokens.js +3 -3
  283. package/dist/ui/tokens.ts +1 -1
  284. package/dist/ui/validators.js +1 -1
  285. package/dist/ui/variant.d.ts +37 -37
  286. package/dist/ui/variant.js +2 -2
  287. package/dist/ui/variants/var_avatar-round.d.ts +13 -13
  288. package/dist/ui/variants/var_avatar-round.js +1 -1
  289. package/dist/ui/variants/var_bubble-me.d.ts +12 -12
  290. package/dist/ui/variants/var_bubble-me.js +1 -1
  291. package/dist/ui/variants/var_bubble-them.d.ts +10 -10
  292. package/dist/ui/variants/var_bubble-them.js +1 -1
  293. package/dist/ui/variants/var_button-border.d.ts +61 -61
  294. package/dist/ui/variants/var_button-border.js +1 -1
  295. package/dist/ui/variants/var_button-cta.d.ts +61 -61
  296. package/dist/ui/variants/var_button-cta.js +1 -1
  297. package/dist/ui/variants/var_button-destructive-ghost.d.ts +59 -59
  298. package/dist/ui/variants/var_button-destructive-ghost.js +1 -1
  299. package/dist/ui/variants/var_button-destructive.d.ts +61 -61
  300. package/dist/ui/variants/var_button-destructive.js +1 -1
  301. package/dist/ui/variants/var_button-fill.d.ts +61 -61
  302. package/dist/ui/variants/var_button-fill.js +1 -1
  303. package/dist/ui/variants/var_button-ghost.d.ts +59 -59
  304. package/dist/ui/variants/var_button-ghost.js +1 -1
  305. package/dist/ui/variants/var_button-glass.d.ts +40 -40
  306. package/dist/ui/variants/var_button-glass.js +1 -1
  307. package/dist/ui/variants/var_button-normal.d.ts +61 -61
  308. package/dist/ui/variants/var_button-normal.js +1 -1
  309. package/dist/ui/variants/var_button-quiet.d.ts +63 -63
  310. package/dist/ui/variants/var_button-quiet.js +1 -1
  311. package/dist/ui/variants/var_card.d.ts +17 -17
  312. package/dist/ui/variants/var_card.js +1 -1
  313. package/dist/ui/variants/var_chip.d.ts +10 -10
  314. package/dist/ui/variants/var_chip.js +1 -1
  315. package/dist/ui/variants/var_choice.d.ts +15 -15
  316. package/dist/ui/variants/var_choice.js +1 -1
  317. package/dist/ui/variants/var_framed.d.ts +5 -5
  318. package/dist/ui/variants/var_framed.js +1 -1
  319. package/dist/ui/variants/var_glyph-plain.d.ts +7 -7
  320. package/dist/ui/variants/var_glyph-plain.js +1 -1
  321. package/dist/ui/variants/var_input.d.ts +30 -30
  322. package/dist/ui/variants/var_input.js +1 -1
  323. package/dist/ui/variants/var_link-inline.d.ts +17 -17
  324. package/dist/ui/variants/var_link-inline.js +1 -1
  325. package/dist/ui/variants/var_list-row.d.ts +22 -22
  326. package/dist/ui/variants/var_list-row.js +1 -1
  327. package/dist/ui/variants/var_rule.d.ts +5 -5
  328. package/dist/ui/variants/var_rule.js +1 -1
  329. package/dist/ui/variants/var_skeleton-block.d.ts +9 -9
  330. package/dist/ui/variants/var_skeleton-block.js +1 -1
  331. package/dist/ui/variants/var_spinner-turning.d.ts +9 -9
  332. package/dist/ui/variants/var_spinner-turning.js +1 -1
  333. package/dist/ui/variants/var_stat-tile.d.ts +10 -10
  334. package/dist/ui/variants/var_stat-tile.js +1 -1
  335. package/dist/ui/variants/var_tab-bar.d.ts +14 -14
  336. package/dist/ui/variants/var_tab-bar.js +1 -1
  337. package/dist/ui/variants/var_tap-target.d.ts +11 -11
  338. package/dist/ui/variants/var_tap-target.js +1 -1
  339. package/dist/ui/variants.d.ts +88 -88
  340. package/dist/ui/wrappers.d.ts +7 -6
  341. package/dist/ui/wrappers.js +16 -14
  342. package/dist/ui/wrappers.tsx +21 -18
  343. package/package.json +2 -2
@@ -3,7 +3,7 @@ import { argv, stderr, stdout } from 'node:process'
3
3
 
4
4
  import ts from 'typescript'
5
5
 
6
- import { existsSync, readFileSync, realpathSync, writeFileSync } from '@prestack/thread/core/files'
6
+ import { existsSync, readFileSync, realpathSync, writeFileSync } from '@prestack/thread/integrations/disk'
7
7
  import { exit, invoked } from '@prestack/thread/core/invoked'
8
8
  import { valuesIn } from '@prestack/thread/core/rows'
9
9
  import { named as packageOf } from '@prestack/thread/core/scope'
@@ -21,7 +21,7 @@ const LAYOUT = `app/layout.${'tsx'}`
21
21
 
22
22
  const WORDING = `app/_generated/wording.${'ts'}`
23
23
 
24
- const DECLARED = `src/_generated/seams.${'ts'}`
24
+ const DECLARED = 'src/_generated/reaching.' + 'ts'
25
25
 
26
26
  const CLIENT = `app/_generated/dispatching.${'ts'}`
27
27
 
@@ -35,6 +35,17 @@ const GRAMMAR = `${COMPILED}/ui/islands/map.ts`
35
35
 
36
36
  const MOVES = 'navigateTo'
37
37
 
38
+ function served(at: string): boolean {
39
+ try {
40
+ const held = JSON.parse(readFileSync(join(at, 'package.json'), 'utf8')) as {
41
+ scripts?: Readonly<Record<string, string>>
42
+ }
43
+ return Object.values(held.scripts ?? {}).some((one) => /(?:^|[\s;&|])next(?:\s|$)/.test(one))
44
+ } catch {
45
+ return false
46
+ }
47
+ }
48
+
38
49
  const sheetAt = (at: string): Record<string, unknown> => {
39
50
  if (!existsSync(at)) return {}
40
51
  return valuesIn(readFileSync(at)) as Record<string, unknown>
@@ -54,8 +65,6 @@ function door(
54
65
  return [
55
66
  "'use client'",
56
67
  '',
57
- '/* GENERATED by thread — do not edit. It is derived from what this app declares. */',
58
- '',
59
68
  ...(moving || knowing
60
69
  ? [
61
70
  `import { useCallback, ${moving && opening ? 'useState, ' : ''}type ReactNode } from 'react'`,
@@ -326,8 +335,6 @@ function mapModule(map: MapIsland): string {
326
335
  const link = (one: MapIsland['links'][number]): string =>
327
336
  ` { from: ${quoted(one.from)}, to: ${quoted(one.to)}${one.labelKey === undefined ? '' : `, labelKey: ${quoted(one.labelKey)}`} },`
328
337
  return [
329
- '/* GENERATED by thread — do not edit. It is derived from the screens, and from every navigateTo they and their compositions hold. */',
330
- '',
331
338
  `import type { MapIsland } from '${reaching(MAP, GRAMMAR)}'`,
332
339
  '',
333
340
  'export const MAP: MapIsland = {',
@@ -369,8 +376,6 @@ function reaching(file: string, at: string): string {
369
376
  function page(name: string, at: string, route: string): string {
370
377
  const from = reaching(pageAt(route), compiledAt(at))
371
378
  return [
372
- '/* GENERATED by thread — do not edit. It follows from the screen\'s name and its place among the pages. */',
373
- '',
374
379
  `import { ${name} } from '${from}'`,
375
380
  '',
376
381
  'export default function Page() {',
@@ -391,7 +396,7 @@ function gate(typed: boolean): readonly string[] {
391
396
  'if (!existsSync(receipt)) {',
392
397
  ' throw new Error(',
393
398
  " 'thread: this tree has no passing gate, so nothing in it may compile. Run `thread gate` — or the ' +",
394
- " 'dev, build and start scripts, which run it for you. A gate that has never run is not a gate that passed.',",
399
+ " 'thread dev, which runs it before anything is served. A gate that has never run is not a gate that passed.',",
395
400
  ' )',
396
401
  '}',
397
402
  "const passed = Symbol.for('thread.gate')",
@@ -421,10 +426,6 @@ function layout(
421
426
  doored: boolean,
422
427
  ): string {
423
428
  return [
424
- '/* GENERATED by thread — do not edit. It is derived from what the other generators produce. */',
425
- '',
426
- '/// <reference types="next/types/global" />',
427
- '',
428
429
  ...gate(true),
429
430
  "import type { ReactNode } from 'react'",
430
431
  ...(doored ? ["import { Door } from './_generated/door.tsx'"] : [`import { ThreadUi } from '${reaching(LAYOUT, PROVIDER)}'`]),
@@ -512,12 +513,12 @@ function externalFor(at: string): readonly string[] {
512
513
  return [path, read(path)] as const
513
514
  })
514
515
 
515
- const SEAM = /export\s+const\s+store\s*:/
516
+ const STORE = /export\s+const\s+store\s*:/
516
517
 
517
518
  for (const [where, text] of [[wiring, wiredIn] as const, ...reachable]) {
518
519
  const held = DRIVER.exec(text)?.[1]
519
520
  if (held === undefined) {
520
- if (where === wiring || !SEAM.test(text)) continue
521
+ if (where === wiring || !STORE.test(text)) continue
521
522
  stderr.write(
522
523
  `routes: ${relative(at, where)} declares a store and does not say what must stay out of the bundle. ` +
523
524
  'A store opens something, and a config written without that entry breaks where the driver is used rather ' +
@@ -541,8 +542,6 @@ function config(root: string | undefined, external: readonly string[]): string {
541
542
  ]
542
543
 
543
544
  return [
544
- '/* GENERATED by thread — do not edit. It is derived from where the packages resolve. */',
545
- '',
546
545
  ...gate(false),
547
546
  'export default {',
548
547
  ...(turbopack.length === 0 ? [] : [' turbopack: {', ...turbopack, ' },']),
@@ -560,13 +559,60 @@ interface Node {
560
559
  readonly declares?: readonly Row[]
561
560
  }
562
561
 
562
+ function landed(at: string, made: readonly { readonly path: string; readonly text: string }[]): number | undefined {
563
+ if (!argv.includes('--check')) {
564
+ for (const one of made) writeFileSync(join(at, one.path), one.text, 'utf8')
565
+ return undefined
566
+ }
567
+
568
+ for (const one of SHADOWS) {
569
+ if (!existsSync(join(at, one))) continue
570
+ stderr.write(
571
+ `routes: ${one} sits beside ${CONFIG}, and Next loads ${CONFIG} because it is the first name it ` +
572
+ `looks for. Nothing reads ${one} — an edit to it changes nothing and says nothing. Delete it.\n`,
573
+ )
574
+ return 1
575
+ }
576
+
577
+ for (const one of made) {
578
+ let current = ''
579
+ try {
580
+ current = readFileSync(join(at, one.path), 'utf8')
581
+ } catch {
582
+ current = ''
583
+ }
584
+ if (current === one.text) continue
585
+ stderr.write(
586
+ `routes: ${one.path} is not what the declarations produce. A derived file that differs from its ` +
587
+ 'generator is a hand edit wearing a generated name. Run `thread routes` and commit what it writes.\n',
588
+ )
589
+ return 1
590
+ }
591
+
592
+ return undefined
593
+ }
594
+
563
595
  async function run(): Promise<number> {
564
596
  const tree = findTree()
565
597
  const at = tree.at
566
598
 
567
599
  const screensAt = inTree(tree, `screens.${'ts'}`)
568
600
  if (!existsSync(screensAt)) {
569
- stdout.write(`routes: this tree has no ${relative(at, screensAt)}, so it declares no screen and there is no map, page or layout to write or check.\n`)
601
+ if (!served(at)) {
602
+ stdout.write(
603
+ `routes: this tree has no ${relative(at, screensAt)} and its manifest runs no page server, so it declares ` +
604
+ 'no screen and there is nothing to write or check.\n',
605
+ )
606
+ return 0
607
+ }
608
+
609
+ const only = [{ path: CONFIG, text: config(rootFor(at), externalFor(at)) }]
610
+ const refused = landed(at, only)
611
+ if (refused !== undefined) return refused
612
+ stdout.write(
613
+ `routes: ${CONFIG} ${argv.includes('--check') ? 'is what the declarations produce' : 'written'} — this tree ` +
614
+ `declares no screen, and Next serves it all the same.\n`,
615
+ )
570
616
  return 0
571
617
  }
572
618
  const sheet = valuesIn(readFileSync(screensAt)) as { SCREEN?: Node }
@@ -701,39 +747,14 @@ async function run(): Promise<number> {
701
747
  const paged = map.screens.filter((one) => one.path !== undefined).length
702
748
  const counted = `${String(map.screens.length)} screen(s), ${String(paged)} route(s), ${String(map.links.length)} link(s)`
703
749
 
704
- if (argv.includes('--check')) {
750
+ const refused = landed(at, made)
751
+ if (refused !== undefined) return refused
705
752
 
706
- for (const one of SHADOWS) {
707
- if (!existsSync(join(at, one))) continue
708
- stderr.write(
709
- `routes: ${one} sits beside ${CONFIG}, and Next loads ${CONFIG} because it is the first name it ` +
710
- `looks for. Nothing reads ${one} — an edit to it changes nothing and says nothing. Delete it.\n`,
711
- )
712
- return 1
713
- }
714
-
715
- for (const one of made) {
716
- let current = ''
717
- try {
718
- current = readFileSync(join(at, one.path), 'utf8')
719
- } catch {
720
- current = ''
721
- }
722
- if (current === one.text) continue
723
- stderr.write(
724
- `routes: ${one.path} is not what the declarations produce. A derived file that differs from its ` +
725
- 'generator is a hand edit wearing a generated name. Run `thread routes` and commit what it writes.\n',
726
- )
727
- return 1
728
- }
753
+ if (argv.includes('--check')) {
729
754
  stdout.write(`routes: ${String(made.length)} file(s) are what the screens produce — ${counted}\n`)
730
755
  for (const line of shown(map)) stdout.write(`${line}\n`)
731
756
  return 0
732
757
  }
733
-
734
- for (const one of made) {
735
- writeFileSync(join(at, one.path), one.text, 'utf8')
736
- }
737
758
  stdout.write(`routes: the map — ${counted}\n`)
738
759
  for (const line of shown(map)) stdout.write(`${line}\n`)
739
760
  stdout.write(`routes: wrote ${String(paged)} page(s), the map and the layout\n`)
@@ -1,10 +1,10 @@
1
- import { existsSync, readFileSync, readdirSync } from "@prestack/thread/core/files";
2
- import { valuesIn } from "@prestack/thread/core/rows";
1
+ import { existsSync, readFileSync, readdirSync } from '@prestack/thread/integrations/disk';
2
+ import { valuesIn } from '@prestack/thread/core/rows';
3
3
  import { join, resolve } from 'node:path';
4
4
  import { argv, stdout } from 'node:process';
5
- import { exit, invoked } from "@prestack/thread/core/invoked";
6
- import { named as packageOf } from "@prestack/thread/core/scope";
7
- import { findTree, inTree } from "@prestack/thread/core/tree";
5
+ import { exit, invoked } from '@prestack/thread/core/invoked';
6
+ import { named as packageOf } from '@prestack/thread/core/scope';
7
+ import { findTree, inTree } from '@prestack/thread/core/tree';
8
8
  function inside(node) {
9
9
  return [...(node.holds ?? []), ...(node.declares ?? [])];
10
10
  }
@@ -17,7 +17,10 @@ function pascal(id) {
17
17
  .join('');
18
18
  }
19
19
  async function node(file, name) {
20
- const held = valuesIn(readFileSync(inTree(findTree(), file)));
20
+ const path = inTree(findTree(), file);
21
+ if (!existsSync(path))
22
+ return {};
23
+ const held = valuesIn(readFileSync(path));
21
24
  const one = held[name];
22
25
  if (one === undefined)
23
26
  return {};
@@ -1,4 +1,4 @@
1
- import { existsSync, readFileSync, readdirSync } from '@prestack/thread/core/files'
1
+ import { existsSync, readFileSync, readdirSync } from '@prestack/thread/integrations/disk'
2
2
  import { valuesIn } from '@prestack/thread/core/rows'
3
3
  import { join, resolve } from 'node:path'
4
4
  import { argv, stdout } from 'node:process'
@@ -40,7 +40,9 @@ function pascal(id: string): string {
40
40
  }
41
41
 
42
42
  async function node(file: string, name: string): Promise<Node> {
43
- const held = valuesIn(readFileSync(inTree(findTree(), file))) as Record<string, unknown>
43
+ const path = inTree(findTree(), file)
44
+ if (!existsSync(path)) return {}
45
+ const held = valuesIn(readFileSync(path)) as Record<string, unknown>
44
46
  const one = held[name]
45
47
  if (one === undefined) return {}
46
48
  return one as Node
@@ -6,21 +6,21 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- import { existsSync, readFileSync, writeFileSync } from "@prestack/thread/core/files";
9
+ import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk';
10
10
  import { join, resolve } from 'node:path';
11
11
  import { argv, stderr, stdout } from 'node:process';
12
12
  import { fileURLToPath, pathToFileURL } from 'node:url';
13
- import { exit } from "@prestack/thread/core/invoked";
14
- import { named as packageOf } from "@prestack/thread/core/scope";
15
- import { findTree, inTree } from "@prestack/thread/core/tree";
16
- import { keyframeName, shorthandOf, stopsOf } from "../animations.js";
17
- import { classOfRole, familyFor, fontStack, fontVariable, setNamed, settingsOf } from "../fonts.js";
18
- import { sizeNamed, sizeRows, SIZE_PREFIX } from "../icons.js";
19
- import { compose, keyframesOf } from "../material.js";
20
- import { checkInteractions, knowSignals } from "../signals.js";
21
- import { chosen, shifted, themedBy } from "../styleguide.js";
22
- import { naming, nameOf, sheeted } from "../token.js";
23
- import { classOf, classOfComposition, classOfElement, classOfScreen, complete, statesOf, structural, under, undeclaredStates, unreacted, boundHeld } from "../variant.js";
13
+ import { exit } from '@prestack/thread/core/invoked';
14
+ import { named as packageOf } from '@prestack/thread/core/scope';
15
+ import { findTree, inTree } from '@prestack/thread/core/tree';
16
+ import { keyframeName, shorthandOf, stopsOf } from '../animations.js';
17
+ import { classOfRole, familyFor, fontStack, fontVariable, setNamed, settingsOf } from '../fonts.js';
18
+ import { sizeNamed, sizeRows, SIZE_PREFIX } from '../icons.js';
19
+ import { compose, keyframesOf } from '../material.js';
20
+ import { checkInteractions, knowSignals } from '../signals.js';
21
+ import { chosen, shifted, themedBy } from '../styleguide.js';
22
+ import { naming, nameOf, sheeted } from '../token.js';
23
+ import { classOf, classOfComposition, classOfElement, classOfScreen, complete, statesOf, structural, under, undeclaredStates, unreacted, boundHeld } from '../variant.js';
24
24
  function inside(node) {
25
25
  return [...(node.holds ?? []), ...(node.declares ?? [])];
26
26
  }
@@ -87,8 +87,6 @@ function sheet(tokens, guide, materials, variants, modes, themes, screens, compo
87
87
  return held;
88
88
  };
89
89
  const lines = [
90
- '/* GENERATED by thread — do not edit. Change the declarations and regenerate. */',
91
- '',
92
90
  `@layer ${LAYERS.join(', ')};`,
93
91
  '',
94
92
  '@layer token {',
@@ -451,8 +449,6 @@ async function run() {
451
449
  .map((one) => ` readonly ${camelOf(String(one.id))}: ${(one.wears ?? []).map((e) => `'${e}'`).join(' | ')}`);
452
450
  const asking = ((await node(root, 'signals.ts', 'SIGNAL')).holds ?? []).filter((one) => typeof one.id === 'string');
453
451
  const wearingSource = [
454
- '/* GENERATED by thread — do not edit. It is derived from what this app declares. */',
455
- '',
456
452
  `declare module '${packageOf('ui')}/checked' {`,
457
453
  ...(worn.length === 0 ? [' interface Wearing {}'] : [' interface Wearing {', ...worn, ' }']),
458
454
  '}',
@@ -1,4 +1,4 @@
1
- import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/core/files'
1
+ import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk'
2
2
  import { dirname, join, resolve } from 'node:path'
3
3
  import { argv, stderr, stdout } from 'node:process'
4
4
  import { fileURLToPath, pathToFileURL } from 'node:url'
@@ -130,8 +130,6 @@ function sheet(
130
130
  }
131
131
 
132
132
  const lines: string[] = [
133
- '/* GENERATED by thread — do not edit. Change the declarations and regenerate. */',
134
- '',
135
133
  `@layer ${LAYERS.join(', ')};`,
136
134
  '',
137
135
  '@layer token {',
@@ -606,8 +604,6 @@ async function run(): Promise<number> {
606
604
  }[]).filter((one) => typeof one.id === 'string')
607
605
 
608
606
  const wearingSource = [
609
- '/* GENERATED by thread — do not edit. It is derived from what this app declares. */',
610
- '',
611
607
  `declare module '${packageOf('ui')}/checked' {`,
612
608
  ...(worn.length === 0 ? [' interface Wearing {}'] : [' interface Wearing {', ...worn, ' }']),
613
609
  '}',
@@ -6,12 +6,12 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- import { existsSync, readFileSync, writeFileSync } from "@prestack/thread/core/files";
9
+ import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk';
10
10
  import { basename, join, resolve } from 'node:path';
11
11
  import { argv, stdout } from 'node:process';
12
12
  import { fileURLToPath, pathToFileURL } from 'node:url';
13
- import { exit, invoked } from "@prestack/thread/core/invoked";
14
- import { findTree, inTree, strayFiles } from "@prestack/thread/core/tree";
13
+ import { exit, invoked } from '@prestack/thread/core/invoked';
14
+ import { findTree, inTree, strayFiles } from '@prestack/thread/core/tree';
15
15
  export function nameOf(id) {
16
16
  return id.replace(/-/g, '_').toUpperCase();
17
17
  }
@@ -1,4 +1,4 @@
1
- import { existsSync, readdirSync, readFileSync, writeFileSync } from '@prestack/thread/core/files'
1
+ import { existsSync, readdirSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk'
2
2
  import { basename, dirname, join, resolve } from 'node:path'
3
3
  import { argv, stdout } from 'node:process'
4
4
  import { fileURLToPath, pathToFileURL } from 'node:url'
@@ -1,4 +1,4 @@
1
- import { defineCatalog, msg } from "../types.js";
1
+ import { defineCatalog, msg } from '../types.js';
2
2
  export const en = defineCatalog({
3
3
  'errors.auth.unauthenticated.title': 'You need to sign in to do this',
4
4
  'errors.auth.invalid_credentials.title': 'That email or password did not match',
@@ -1,4 +1,4 @@
1
- import { parseMessage } from "./parse.js";
1
+ import { parseMessage } from './parse.js';
2
2
  export class MissingParamError extends Error {
3
3
  param;
4
4
  constructor(param, message) {
@@ -1,5 +1,5 @@
1
- import { formatMessage } from "./format.js";
2
- import { entryText } from "./types.js";
1
+ import { formatMessage } from './format.js';
2
+ import { entryText } from './types.js';
3
3
  export class UnknownMessageKeyError extends Error {
4
4
  key;
5
5
  constructor(key, locale) {
@@ -6,15 +6,15 @@ export interface Setting {
6
6
  readonly asks?: Readonly<Record<string, string | number>>;
7
7
  }
8
8
  export declare const BOUND: {
9
- readonly background: readonly ["colour", "gradient", "texture", "noise", "img"];
10
- readonly backgroundImage: readonly ["gradient", "texture", "noise", "img"];
11
- readonly backdropFilter: readonly ["blur"];
12
- readonly borderWidth: readonly ["edge"];
13
- readonly borderStyle: readonly ["line"];
14
- readonly borderColor: readonly ["colour"];
15
- readonly boxShadow: readonly ["shadow"];
16
- readonly color: readonly ["colour"];
17
- readonly opacity: readonly ["opacity"];
9
+ readonly background: readonly ['colour', 'gradient', 'texture', 'noise', 'img'];
10
+ readonly backgroundImage: readonly ['gradient', 'texture', 'noise', 'img'];
11
+ readonly backdropFilter: readonly ['blur'];
12
+ readonly borderWidth: readonly ['edge'];
13
+ readonly borderStyle: readonly ['line'];
14
+ readonly borderColor: readonly ['colour'];
15
+ readonly boxShadow: readonly ['shadow'];
16
+ readonly color: readonly ['colour'];
17
+ readonly opacity: readonly ['opacity'];
18
18
  };
19
19
  type Property = keyof typeof BOUND;
20
20
  type MaterialSettingFor<P extends Property> = {
@@ -39,9 +39,9 @@ export interface Material {
39
39
  readonly sets: Readonly<Record<string, readonly MaterialSetting[]>>;
40
40
  }[];
41
41
  }
42
- export declare const FREE: readonly ["transition", "outline"];
42
+ export declare const FREE: readonly ['transition', 'outline'];
43
43
  export declare const material: <const T extends Material>(one: T & {
44
- readonly sets: { readonly [I in keyof T["sets"]]: T["sets"][I] extends {
44
+ readonly sets: { readonly [I in keyof T['sets']]: T['sets'][I] extends {
45
45
  readonly is: infer Said;
46
46
  } ? {
47
47
  readonly is: Wearing<Said & string>;
@@ -1,4 +1,4 @@
1
- import { held, naming, sheeted } from "./token.js";
1
+ import { held, naming, sheeted } from './token.js';
2
2
  export const BOUND = {
3
3
  background: ['colour', 'gradient', 'texture', 'noise', 'img'],
4
4
  backgroundImage: ['gradient', 'texture', 'noise', 'img'],
@@ -1,22 +1,22 @@
1
1
  export declare const BORDERED: {
2
- readonly id: "bordered";
2
+ readonly id: 'bordered';
3
3
  readonly sets: readonly [{
4
- readonly property: "background";
5
- readonly is: "colour-surface";
4
+ readonly property: 'background';
5
+ readonly is: 'colour-surface';
6
6
  }, {
7
- readonly property: "borderWidth";
8
- readonly is: "edge-thick";
7
+ readonly property: 'borderWidth';
8
+ readonly is: 'edge-thick';
9
9
  }, {
10
- readonly property: "borderStyle";
11
- readonly is: "line-solid";
10
+ readonly property: 'borderStyle';
11
+ readonly is: 'line-solid';
12
12
  }, {
13
- readonly property: "borderColor";
14
- readonly is: "colour-ink";
13
+ readonly property: 'borderColor';
14
+ readonly is: 'colour-ink';
15
15
  }, {
16
- readonly property: "boxShadow";
17
- readonly is: "shadow-hard";
16
+ readonly property: 'boxShadow';
17
+ readonly is: 'shadow-hard';
18
18
  }, {
19
- readonly property: "color";
20
- readonly is: "colour-ink";
19
+ readonly property: 'color';
20
+ readonly is: 'colour-ink';
21
21
  }];
22
22
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const BORDERED = material({
3
3
  id: 'bordered',
4
4
  sets: [
@@ -1,22 +1,22 @@
1
1
  export declare const CERAMIC: {
2
- readonly id: "ceramic";
2
+ readonly id: 'ceramic';
3
3
  readonly sets: readonly [{
4
- readonly property: "backgroundImage";
5
- readonly is: "gradient-sheen";
4
+ readonly property: 'backgroundImage';
5
+ readonly is: 'gradient-sheen';
6
6
  }, {
7
- readonly property: "borderWidth";
8
- readonly is: "edge-hair";
7
+ readonly property: 'borderWidth';
8
+ readonly is: 'edge-hair';
9
9
  }, {
10
- readonly property: "borderStyle";
11
- readonly is: "line-solid";
10
+ readonly property: 'borderStyle';
11
+ readonly is: 'line-solid';
12
12
  }, {
13
- readonly property: "borderColor";
14
- readonly is: "colour-edge-ceramic";
13
+ readonly property: 'borderColor';
14
+ readonly is: 'colour-edge-ceramic';
15
15
  }, {
16
- readonly property: "boxShadow";
17
- readonly is: "shadow-2";
16
+ readonly property: 'boxShadow';
17
+ readonly is: 'shadow-2';
18
18
  }, {
19
- readonly property: "color";
20
- readonly is: "colour-ink";
19
+ readonly property: 'color';
20
+ readonly is: 'colour-ink';
21
21
  }];
22
22
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const CERAMIC = material({
3
3
  id: 'ceramic',
4
4
  sets: [
@@ -1,22 +1,22 @@
1
1
  export declare const CLAY: {
2
- readonly id: "clay";
2
+ readonly id: 'clay';
3
3
  readonly sets: readonly [{
4
- readonly property: "background";
5
- readonly is: "colour-surface";
4
+ readonly property: 'background';
5
+ readonly is: 'colour-surface';
6
6
  }, {
7
- readonly property: "borderWidth";
8
- readonly is: "edge-thin";
7
+ readonly property: 'borderWidth';
8
+ readonly is: 'edge-thin';
9
9
  }, {
10
- readonly property: "borderStyle";
11
- readonly is: "line-solid";
10
+ readonly property: 'borderStyle';
11
+ readonly is: 'line-solid';
12
12
  }, {
13
- readonly property: "borderColor";
14
- readonly is: "colour-edge-clay";
13
+ readonly property: 'borderColor';
14
+ readonly is: 'colour-edge-clay';
15
15
  }, {
16
- readonly property: "boxShadow";
17
- readonly is: "shadow-2";
16
+ readonly property: 'boxShadow';
17
+ readonly is: 'shadow-2';
18
18
  }, {
19
- readonly property: "color";
20
- readonly is: "colour-ink";
19
+ readonly property: 'color';
20
+ readonly is: 'colour-ink';
21
21
  }];
22
22
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const CLAY = material({
3
3
  id: 'clay',
4
4
  sets: [
@@ -1,32 +1,32 @@
1
1
  export declare const ELEVATED: {
2
- readonly id: "elevated";
2
+ readonly id: 'elevated';
3
3
  readonly sets: readonly [{
4
- readonly property: "background";
5
- readonly is: "colour-surface";
4
+ readonly property: 'background';
5
+ readonly is: 'colour-surface';
6
6
  }, {
7
- readonly property: "boxShadow";
8
- readonly is: "shadow-2";
7
+ readonly property: 'boxShadow';
8
+ readonly is: 'shadow-2';
9
9
  }, {
10
- readonly property: "color";
11
- readonly is: "colour-ink";
10
+ readonly property: 'color';
11
+ readonly is: 'colour-ink';
12
12
  }];
13
13
  readonly states: readonly [{
14
14
  readonly when: readonly ["hover"];
15
15
  readonly sets: readonly [{
16
- readonly property: "boxShadow";
17
- readonly is: "shadow-3";
16
+ readonly property: 'boxShadow';
17
+ readonly is: 'shadow-3';
18
18
  }];
19
19
  }, {
20
20
  readonly when: readonly ["active"];
21
21
  readonly sets: readonly [{
22
- readonly property: "boxShadow";
23
- readonly is: "shadow-1";
22
+ readonly property: 'boxShadow';
23
+ readonly is: 'shadow-1';
24
24
  }];
25
25
  }, {
26
26
  readonly when: readonly ["active", "hover"];
27
27
  readonly sets: readonly [{
28
- readonly property: "boxShadow";
29
- readonly is: "shadow-1";
28
+ readonly property: 'boxShadow';
29
+ readonly is: 'shadow-1';
30
30
  }];
31
31
  }];
32
32
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const ELEVATED = material({
3
3
  id: 'elevated',
4
4
  sets: [