@prestack/thread-ui 0.0.2 → 0.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,182 @@
1
1
  # @prestack/thread-ui
2
2
 
3
+ ## 0.0.2
4
+
5
+ it only added, so everything built against the last one still works.
6
+
7
+ What this package ships is read off the files it built from here on — every name it exports, and the shape of each one. Nothing on a sheet states a number. This is the first entry measured that way, so it names no changes: there is no earlier measurement to hold it against. It ships 167 word(s).
8
+
9
+ <!-- release 0.0.2 -->
10
+ <!-- holds
11
+ accordion 57975c860abb ui/elements/accordion#AccordionProps:a4829e7129ae ui/elements/accordion#Accordion:83e995f2269f ui/elements/accordion.works#uses:5d3b00d92875 ui/elements/accordion.works#section:4ae99f778938 ui/elements/accordion.works#header:4ae99f778938 ui/elements/accordion.works#region:4ae99f778938 ui/elements/accordion.works#shown:2b4a0795f92f
12
+ animations-writer dceae3961ef8 ui/animations#BOUND:f13e70059875 ui/animations#AnimationSetting:e4c302183d8e ui/animations#Animation:5212a1aa8d74 ui/animations#keyframeName:ff8fa0760be2 ui/animations#stopsOf:b2c6e0e60a68 ui/animations#shorthandOf:6a990de10b41 ui/animations#declares:cad46cab877c ui/animations#ANIMATIONS:a836915082b0 ui/animations#nameOf:ff8fa0760be2 ui/animations#seeds:e5c803f28183 ui/animations#mismatched:5679b09f6252 ui/animations#orphaned:8865319ec4c3
13
+ appear f2488319c0c9 ui/animations/anm_appear#APPEAR:5e07cb51b306
14
+ aspect-ratio 4ae12bcc7e47 ui/elements/aspect-ratio#AspectRatioProps:04b56e993c9b ui/elements/aspect-ratio#AspectRatio:080b92fde974 ui/elements/aspect-ratio.works#measured:c68e17838e54
15
+ avatar 0dbad62cbc92 ui/elements/avatar#AvatarProps:07658bef7a5c ui/elements/avatar#Avatar:0aa8f982e898 ui/elements/avatar.works#shown:71384a69d3af
16
+ avatar-round 2ea8894da65e ui/variants/var_avatar-round#AVATAR_ROUND:ff8c82b2fc4d
17
+ badge 99fe2022c37c ui/elements/badge#BadgeProps:dc82ff016ffe ui/elements/badge#Badge:2e5b7c04041c ui/elements/badge.works#shows:fdabcaaa1a37
18
+ bars 6379b84cedd8 ui/elements/bars#BarsProps:4252382d9565 ui/elements/bars#Bars:45ece6c69851 ui/elements/bars.works#uses:21c0411bcd1a ui/elements/bars.works#sized:4fbc468fd612 ui/elements/bars.works#shown:71800d3c3261
19
+ blur-in 1311ce3a3fda ui/animations/anm_blur_in#BLUR_IN:cef2840540c3
20
+ blur-out f8c4f2cdff1e ui/animations/anm_blur_out#BLUR_OUT:53e9e4b1e645
21
+ bordered f44b62c1e33c ui/materials/mat_bordered#BORDERED:6a4b91176976
22
+ box 99c7f574fe98 ui/elements/box#BoxProps:275039625b0d ui/elements/box#Box:71451d7d0d75
23
+ breadcrumb 2a44d809b040 ui/elements/breadcrumb#BreadcrumbProps:97ecf104c883 ui/elements/breadcrumb#Breadcrumb:7fa664c4c672 ui/elements/breadcrumb.works#steps:1143e7397f7e ui/elements/breadcrumb.works#crumb:2d47ada157f0
24
+ bubble-me b3b52b61ff68 ui/variants/var_bubble-me#BUBBLE_ME:6691aa63d34c
25
+ bubble-them 7bcb2a91b83e ui/variants/var_bubble-them#BUBBLE_THEM:af2478c73b3c
26
+ button 9a66212b1244 ui/elements/button#ButtonProps:645bc4ff5f51 ui/elements/button#Button:5c5b34292c8c ui/elements/button.works#uses:3e0750aa8681 ui/elements/button.works#wires:0b5df5218d63 ui/elements/button.works#iconed:c2caebd886f9 ui/elements/button.works#worded:c2caebd886f9 ui/elements/button.works#shown:2d2723ffce9f
27
+ button-border ba34d4fb309e ui/variants/var_button-border#BUTTON_BORDER:978834bf0767
28
+ button-cta ee090f5ba4a2 ui/variants/var_button-cta#BUTTON_CTA:2a0730b06569
29
+ button-destructive b3689de5e4a6 ui/variants/var_button-destructive#BUTTON_DESTRUCTIVE:b0185e56b3fa
30
+ button-destructive-ghost 6961615e0984 ui/variants/var_button-destructive-ghost#BUTTON_DESTRUCTIVE_GHOST:20d18b29ac88
31
+ button-fill db30ab667d86 ui/variants/var_button-fill#BUTTON_FILL:92e1285f2985
32
+ button-ghost 45d546ab9d3f ui/variants/var_button-ghost#BUTTON_GHOST:24c01572d248
33
+ button-glass 0a16e66392cf ui/variants/var_button-glass#BUTTON_GLASS:aec633af00ac
34
+ button-normal 4f2b39704a63 ui/variants/var_button-normal#BUTTON_NORMAL:c02737e35f2b
35
+ button-quiet d558db81465d ui/variants/var_button-quiet#BUTTON_QUIET:00030928cf21
36
+ card 7ac13e3c409a ui/variants/var_card#CARD:35acf2a7a511
37
+ ceramic 022acc659194 ui/materials/mat_ceramic#CERAMIC:b96b1a36bbba
38
+ charts 88d52aeba575 ui/charts#Row:eee0c117177a ui/charts#WhenTight:17ade237b678 ui/charts#ChartBase:5c23cd2a9e3f ui/charts#num:bf021c1a2c8c ui/charts#str:28fd80e9f148 ui/charts#useRamp:f6fdb5be0c84 ui/charts#placed:fe15c30aa6bf ui/charts#measured:4d39d48edd1d ui/charts#EmptyFrame:d94cdd6a61bf ui/charts#SeriesProps:0fa5db4164e4 ui/charts#polyline:ccbb1fdf9a3a ui/charts#CategoryProps:9c091b968226 ui/charts#TwoAxisProps:6d05ba489e28
39
+ checked b3db1ccbae77 ui/checked#Wearing:deebde0237b4 ui/checked#Dispatching:deebde0237b4 ui/checked#VariantsFor:20a411132cb6 ui/checked#ArrangementElement:6360f88d5b02 ui/checked#idOf:7ad5f68e2c86
40
+ chip 6a429666ee2c ui/variants/var_chip#CHIP:a868f74d9c7f
41
+ choice be2059d8b332 ui/variants/var_choice#CHOICE:dd86931b4eee
42
+ clay b0c8148bd954 ui/materials/mat_clay#CLAY:759bc49bd4d3
43
+ collector 98756d1bb240 ui/collector#ClientEvent:eb3074274552 ui/collector#CollectorOptions:5c022ee3fd3b ui/collector#RecordedEvent:edd6c51b46bd ui/collector#Collector:bc3c96c74f1e ui/collector#INERT_COLLECTOR:50752f61c393 ui/collector#createCollector:e8bf723f970e
44
+ column 569a59367ab8 ui/elements/column#ColumnProps:2dc250686791 ui/elements/column#Column:1b9550e6a545
45
+ compositions 52f1f2c36c47 ui/compositions#TEACHES:4de2138e3a11 ui/compositions#REACHES:09aa52ab5287 ui/compositions#declares:cad46cab877c ui/compositions#COMPOSITIONS:2412f9a2cc25 ui/compositions#nameOf:38eeb450b217 ui/compositions#catalogue:6a67ef16d938 ui/compositions#screening:6a67ef16d938 ui/compositions#composed:bf363b830157 ui/compositions#HOME:16475c413846 ui/compositions#DOORS:75b7a7c39b95 ui/compositions#reaching:f772a3f7a0e9 ui/compositions#COMPILED:8a2e68c66250 ui/compositions#compiledAt:38eeb450b217 ui/compositions#settled:c2671abe553d ui/compositions#RUNTIME:4de2138e3a11 ui/compositions#emitting:12075f4c4f66 ui/compositions#stale:081f906ac9d3 ui/compositions#handing:c2ba7db38c14 ui/compositions#undeclared:39342ef408a2 ui/compositions#seeds:950628166bbd
46
+ consent ceca484ac41c ui/elements/consent#ConsentProps:d6b810cf3be0 ui/elements/consent#Consent:f288ab8ee1af
47
+ consent-categories 063d79030614 ui/consent#ConsentCategorySchema:e3521eb40a21 ui/consent#ConsentCategory:d495db30ead2 ui/consent#defineConsentCategory:dc7375e62187 ui/consent#consentCategories:fc75fbe08af8 ui/consent#consentCategory:b515e4d050f9 ui/consent#ConsentDecisionSchema:f29793770bb3 ui/consent#ConsentDecision:37669319ada2 ui/consent#consentAllows:2ce94d59b747
48
+ consent-element 91345b4c4bfc ui/elements/consent.works#uses:408a55ef20fc ui/elements/consent.works#categories:cab969c5fa8b ui/elements/consent.works#hasPolicy:41e8cd1e14fe ui/elements/consent.works#withdrawable:27a86b8e1345 ui/elements/consent.works#optional:1d0be2d81bca ui/elements/consent.works#required:1d0be2d81bca ui/elements/consent.works#title:8bb7d2c23113 ui/elements/consent.works#policy:ff8839910ba9 ui/elements/consent.works#label:b88c8ee4712f ui/elements/consent.works#describe:b88c8ee4712f ui/elements/consent.works#fixed:efa0c3794a4c ui/elements/consent.works#chooser:f06207471636 ui/elements/consent.works#withdraw:e7c5c7c955e4 ui/elements/consent.works#decline:e7c5c7c955e4 ui/elements/consent.works#accept:e7c5c7c955e4 ui/elements/consent.works#acceptAll:e7c5c7c955e4
49
+ content 7a1aacf13acb ui/content#MessageKey:bb3a9997b027 ui/content#ValueProps:9decf576db80 ui/content#renderValue:26dafdf7eb3f
50
+ contrast d58eef8241a7 ui/contrast#CONTRAST_LARGE:319ea26151c0 ui/contrast#luminance:7b446b9fed05 ui/contrast#contrast:8ad383dc8043
51
+ controls 4e18efc1fff3 ui/controls#PressProps:d7b2a109483b ui/controls#Option:bb867d0c2790 ui/controls#Menu:99af6606ff9d ui/controls#MenuProps:e64bf652667a ui/controls#MenuItem:e6972b78d002
52
+ dev-runner 7961994d4d25 ui/generators/dev#declared:425de9443165 ui/generators/dev#unrunnable:befcb8c5be28
53
+ disclosure 64d2ffbff21d ui/disclosure#TabItem:5637034a9966 ui/disclosure#AccordionItem:5637034a9966
54
+ dismiss 1062fb6d8d49 ui/animations/anm_dismiss#DISMISS:469dde1308fb
55
+ dismiss-layer c81dadfa632c ui/dismiss-layer#Layer:1739bdeed158 ui/dismiss-layer#useDismissLayer:fc45673b9550 ui/dismiss-layer#openLayers:dbe6494f9d41
56
+ donut 69acb92a5ee6 ui/elements/donut#DonutProps:643943ca2540 ui/elements/donut#Donut:394c3abab12b ui/elements/donut.works#uses:f8d2db81931c ui/elements/donut.works#slice:1c42064c095a
57
+ drag 0ef5149ec5b9 ui/drag#EDGE_SCROLL_DEFAULTS:162de3815f33 ui/drag#Subject:c27b664a52fd ui/drag#DragSession:6af215ec8136 ui/drag#dragSession:e84fc1b5ed17 ui/drag#subscribeDrag:c456c983029f ui/drag#DragStatus:4440e8c46de5 ui/drag#dragStatusOf:df66d31d913f ui/drag#Scroller:038eab5f1ca9 ui/drag#Layout:8a03934bc399 ui/drag#DOM_LAYOUT:a4ae951f0933 ui/drag#setLayout:5e8ae80ca924 ui/drag#currentLayout:23ed529a101a ui/drag#claimGesture:d7ff15860d3c ui/drag#releaseGesture:48d5e5330326 ui/drag#gestureClaim:65fda728778f ui/drag#DropTarget:bff392b218d8 ui/drag#registerTarget:8a22941d233a ui/drag#targetFor:ca512db492ae ui/drag#innermostTarget:8f13034f8379 ui/drag#BeginDrag:06a945bd02b8 ui/drag#beginDrag:8993a12ea898 ui/drag#MoveDrag:40d697607f2c ui/drag#moveDrag:5e744e28a670 ui/drag#collect:87adb0b806fb ui/drag#endDrag:e84fc1b5ed17 ui/drag#resetDrag:a3965c1dfabe ui/drag#dwell:696612acada0 ui/drag#accepted:b2c139a84a5a ui/drag#EdgeScrollTuning:8656a344cfa0 ui/drag#edgeScroll:54f1744007c7 ui/drag#pullEdges:93e827aaa0b8
58
+ drop 07bbafbbbfa5 ui/animations/anm_drop#DROP:5683330689bf
59
+ each dceabaf51a3b ui/elements/each#EachProps:76a2572d07ce ui/elements/each#Each:e6f142a2d09c ui/elements/each.works#shows:ad356e86f65d
60
+ element-rows 40a0a5d78b47 ui/elements#ELEMENTS:bd87e6fe57a8
61
+ elements-writer f2f1636bf30e ui/generators/elements#pascal:ff8fa0760be2 ui/generators/elements#OWNED_AT:7fac350f2d5d ui/generators/elements#owned:19dbe2a693ea ui/generators/elements#translated:6ccb0da00213 ui/generators/elements#CARRIES:4de2138e3a11 ui/generators/elements#READINGS:4de2138e3a11 ui/generators/elements#declared:74cde91fc910 ui/generators/elements#wears:a91b72bd4390
62
+ elevated d549b6425a45 ui/materials/mat_elevated#ELEVATED:43f289340a2b
63
+ empty 0394081024d7 ui/elements/empty#EmptyProps:0544b099ea80 ui/elements/empty#Empty:02e6deb405b0
64
+ en-catalog e8b07512e9fb ui/i18n/catalogs/en#en:f72fd845118b ui/i18n/catalogs/en#EnCatalog:07aac6125d69
65
+ fall b9051b59c4eb ui/animations/anm_fall#FALL:5bd288009b82
66
+ field 397a6df4b09b ui/elements/field#FieldProps:6dfc92e0f0b9 ui/elements/field#Field:38e7e6136c67 ui/elements/field.works#uses:b460b57a1079 ui/elements/field.works#entry:ed11af6bd73c ui/elements/field.works#shown:450fd3b336bc
67
+ flash 069f70cedec1 ui/animations/anm_flash#FLASH:4019b5742201
68
+ flat 32b6826b7e44 ui/materials/mat_flat#FLAT:a13e79a95af8
69
+ focus-scope c872a7d46e1b ui/focus-scope#tabbables:6dc1a8ed6338 ui/focus-scope#useFocusScope:4c9b51943dba
70
+ fonts 5cddbab764b2 ui/fonts#FACES:3c4e57277040 ui/fonts#Face:65b392495807 ui/fonts#FontFamily:a5184b2dfb4c ui/fonts#FontSet:9f12cc81549d ui/fonts#defineFontSet:28d60920ecaf ui/fonts#fontSets:b79664265bb8 ui/fonts#fontSet:d3b23f97c463 ui/fonts#fontFaces:3ccbfc44dc32 ui/fonts#fontModules:3ccbfc44dc32 ui/fonts#fontIn:947791605637 ui/fonts#fontVariable:0b2ea3f92138 ui/fonts#fontStack:0bb08ee73396 ui/fonts#fontFor:1ed2cf132c34 ui/fonts#FontRole:bcde61774ad8 ui/fonts#FontRoleId:df296a09b71d ui/fonts#ROLE_IDS:11cdcc1f7f95 ui/fonts#DEFAULT_ROLE:60b8b8b397b0 ui/fonts#SET_ROW:00b33e3ffbf1 ui/fonts#holds:66da16a1d8a6 ui/fonts#FONTS:a4cd8dbc5c1b ui/fonts#classOfRole:ff8fa0760be2 ui/fonts#settingsOf:a2e6277c42f5 ui/fonts#roleClass:b3e7d41fde38 ui/fonts#familyFor:68125aabf80b ui/fonts#setNamed:c3ef0235837e
71
+ framed 7b62d96a5a40 ui/variants/var_framed#FRAMED:5b05d488f134
72
+ funnel aa2fa42004e3 ui/elements/funnel#FunnelProps:4252382d9565 ui/elements/funnel#Funnel:346fda430d23 ui/elements/funnel.works#uses:75344a7846bb ui/elements/funnel.works#sized:26f9281d9d39 ui/elements/funnel.works#shown:cc4f256199ff
73
+ gauge 37e46fbd5875 ui/elements/gauge#GaugeProps:a898ba216db8 ui/elements/gauge#Gauge:f3902bbbcb90 ui/elements/gauge.works#uses:1ea30b999ca0 ui/elements/gauge.works#track:9017e22c6cd9 ui/elements/gauge.works#needle:ffb05fac60d7
74
+ glass faefeb1fa5eb ui/materials/mat_glass#GLASS:7420d691e1d5
75
+ glow f27e9c60847a ui/animations/anm_glow#GLOW:c664e7606f34
76
+ glyph 9f3e98566b12 ui/elements/glyph#GlyphProps:80c54e062588 ui/elements/glyph#Glyph:b49fddd10040 ui/elements/glyph.works#drawn:f45ca9f62049 ui/elements/glyph.works#shows:881db1c0701a
77
+ glyph-plain b59d838be97b ui/variants/var_glyph-plain#GLYPH_PLAIN:fb4244981ff8
78
+ grid b427b84b4270 ui/elements/grid#GridProps:2dc250686791 ui/elements/grid#Grid:8e4ad19dcc06
79
+ heatmap 892cd96f751f ui/elements/heatmap#HeatmapProps:dc1e265351dc ui/elements/heatmap#Heatmap:4eed2b5e160c ui/elements/heatmap.works#uses:a0768529ca8f ui/elements/heatmap.works#sized:55318f305b27
80
+ hit-box 37edb9286bcf ui/elements/hit-box#HitBoxProps:11b3e42199d1 ui/elements/hit-box#HitBox:d778244710bb ui/elements/hit-box.works#Axis:33c35b0ffe72 ui/elements/hit-box.works#uses:d9dd7a0d4933 ui/elements/hit-box.works#wires:1cddad8cf225 ui/elements/hit-box.works#shown:82f106431cdf
81
+ i18n-types 2b3358461d33 ui/i18n/types#Money:5ccc2e8715d7 ui/i18n/types#Locale:bb3a9997b027 ui/i18n/types#MessageParams:c8b98c9ef662 ui/i18n/types#DeclaredMessage:15146945b7f9 ui/i18n/types#msg:6f4ce4ea0ad1 ui/i18n/types#MessageEntry:a3011654f357 ui/i18n/types#RequiresExplicitParams:9afc22df209f ui/i18n/types#ValidEntry:55d6c8d1b432 ui/i18n/types#CatalogShape:035eff70ed94 ui/i18n/types#ParamsOf:f11c778e63a5 ui/i18n/types#Translator:bc6ce843db37 ui/i18n/types#entryText:8f7f9b6fb21b ui/i18n/types#defineCatalog:67309cff79a2
82
+ i18n-writer 232d80b4ed42 ui/generators/i18n#walk:2b0caf2efd3b ui/generators/i18n#keyProps:2c319c8c1507 ui/generators/i18n#keysIn:4c2dd7de01b6 ui/generators/i18n#readWording:97cf5049ec86 ui/generators/i18n#wordingFile:40969fbfabda
83
+ icon-sets 2ee5c4cf60f4 ui/icons#IconSet:7d3af541078c ui/icons#ICON_TARGET:0693728301e7 ui/icons#DEFAULT_ICON:b343f4fca562 ui/icons#sizeRows:6a8284e80b30 ui/icons#sizeNamed:7ad5f68e2c86 ui/icons#strokeFor:d15243b42f12 ui/icons#BRAND_MODULE:696f4addc79d ui/icons#defineIconSet:8e7d61a3595e ui/icons#defineIcon:6722a9c4f6e3 ui/icons#iconSets:2e3d0c4f422e ui/icons#iconSet:77161f6cbc87 ui/icons#iconNames:3ccbfc44dc32 ui/icons#iconIn:a393ee7ee7f8 ui/icons#brandExport:b872f6e302c0 ui/icons#SET_ROW:dcaa0bb52c1b ui/icons#SIZE_PREFIX:0ca5e5e4c9eb ui/icons#holds:66da16a1d8a6 ui/icons#ICONS:a4cd8dbc5c1b ui/icons#drawnAs:39b2d0b66e76 ui/icons#setNamed:b78f1dfb90c3 ui/icons#IconComponent:3519fd0448c9 ui/icons#installIcons:4bca1126f326 ui/icons#installedSet:ea11a029b2ff ui/icons#iconSize:051b1f5bfa93 ui/icons#drawnFor:77cf59fc0e97
84
+ icons-writer 90f7daaf8007
85
+ image fc167f6d649d ui/elements/image#ImageProps:ac242a95518f ui/elements/image#Image:cec94eb7378c
86
+ input e5f78f017632 ui/variants/var_input#INPUT:ff30bd4e7683
87
+ lift 8464180c5da1 ui/animations/anm_lift#LIFT:c7b7980931fe
88
+ line-chart 1bb6987f0c20 ui/elements/line-chart#LineChartProps:758f7e33d146 ui/elements/line-chart#LineChart:15cfdd29751a ui/elements/line-chart.works#lines:68f3cc937de0 ui/elements/line-chart.works#uses:ca3cae02625f ui/elements/line-chart.works#drawing:4fc88b6eb2c8
89
+ link bdc749bf37e8 ui/elements/link#LinkProps:a156a66e6f4a ui/elements/link#Link:fa8f20713d7c ui/elements/link.works#uses:bafbafc2c328
90
+ link-inline 663ec6fb448a ui/variants/var_link-inline#LINK_INLINE:493ea585a0a7
91
+ list-row 362b75222fe9 ui/variants/var_list-row#LIST_ROW:c0589dd056ad
92
+ lit 52204bf532c8 ui/materials/mat_lit#LIT:f4c1bd1cc487
93
+ locales 81f3eca3ddf7 ui/i18n/locales#REFERENCE_LOCALE:ec7df020bf1e ui/i18n/locales#LocaleDecl:bc1f89b83d74 ui/i18n/locales#defineLocale:79994004ee18 ui/i18n/locales#locales:b65c2631bfae ui/i18n/locales#locale:a1be3346f05c ui/i18n/locales#resetLocales:a3965c1dfabe
94
+ localizations 3f9e0fbb2fda ui/localizations#fileFor:ea4183b63099 ui/localizations#SOURCE_ROW:0b2b038d7a60 ui/localizations#holds:66da16a1d8a6 ui/localizations#declares:44fc181d2f2e ui/localizations#LOCALIZATIONS:5aa81ac1526e ui/localizations#languagesIn:3c191d1da982 ui/localizations#sourceIn:ca722c0439bb
95
+ material-shape 23d1a4943576 ui/material#Setting:426554dca885 ui/material#BOUND:8e50418adce7 ui/material#Material:10384161b39a ui/material#FREE:c3ef78d39622 ui/material#material:8061599429a8 ui/material#composed:40eef03784ab ui/material#compose:e3e390f844a8 ui/material#keyframesOf:d2489886fde6
96
+ materials 767f7fcad84d ui/materials#MATERIALS:89855bab9167 ui/materials#nameOf:ff8fa0760be2 ui/materials#seeds:950628166bbd ui/materials#mismatched:5679b09f6252 ui/materials#orphaned:8865319ec4c3 ui/materials#unguarded:2402578021fc ui/materials#guarding:b0bd4f259649
97
+ media d2654464bb56 ui/elements/media#MediaProps:02e6b793ef4c ui/elements/media#Media:dcaabbc68839
98
+ menu 4224ca4752b8 ui/elements/menu#MenuProps:2fa26019849c ui/elements/menu#Menu:fba867d9c33c ui/elements/menu.works#MenuItem:de732f410e32 ui/elements/menu.works#Presented:5e5067bd5ae0 ui/elements/menu.works#MenuRow:a802423247f1 ui/elements/menu.works#uses:d6ce5f7df945 ui/elements/menu.works#opener:c69eaabd4bec ui/elements/menu.works#portal:52c185db8c74 ui/elements/menu.works#listing:f17800975fbc ui/elements/menu.works#row:565839797be7 ui/elements/menu.works#measured:f814b8fb25f8
99
+ message-format 35e3515a10bd ui/i18n/format#MissingParamError:aa7e44c63280 ui/i18n/format#ParamTypeError:c68d491e4531 ui/i18n/format#FormatOptions:78186c114b44 ui/i18n/format#formatMessage:8bcdb57eb68c
100
+ message-maker a56820f31851
101
+ message-parse 8bed438a6add ui/i18n/parse#Money:a00bde948c6d ui/i18n/parse#Node:fb8f1cd0fbe1 ui/i18n/parse#MessageSyntaxError:f55480cb6fe5 ui/i18n/parse#parseMessage:789d981d91a9 ui/i18n/parse#messageArgs:9c3bae9eeab2
102
+ modes 8637df698b4f ui/modes#holds:09551d35202f ui/modes#MODES:5e1f20fca2eb
103
+ money 49f991c837be ui/elements/money#MoneyProps:772ecfeca995 ui/elements/money#Money:32e4d81b941e ui/elements/money.works#shows:7ad4291b35f4
104
+ moulded e443872af013 ui/materials/mat_moulded#MOULDED:879cd208d7cd
105
+ navigation 0e47d978cd87 ui/navigation#ScreenName:bbfc0371f587 ui/navigation#trailTo:0fb587559b4b
106
+ nudge 7f4195c8619c ui/animations/anm_nudge#NUDGE:e89cad5a2a22
107
+ pagination fb2178b8647d ui/elements/pagination#PaginationProps:d646b35d9eab ui/elements/pagination#Pagination:1c1e9106ea48 ui/elements/pagination.works#steps:61d0370471b4 ui/elements/pagination.works#step:ffee64ebf86f
108
+ pop-in 0f5ed5f1732d ui/animations/anm_pop_in#POP_IN:27ca05b4c150
109
+ pop-out bdb26827c938 ui/animations/anm_pop_out#POP_OUT:88d1ec506754
110
+ positioning 3a289987f9e8 ui/positioning#AnchorOptions:4c3402cd1a69 ui/positioning#Position:9c70539bcb3d ui/positioning#positionOf:3c3c43bfe549 ui/positioning#useAnchored:593ec514203e
111
+ presentation 8ed76916e8ba ui/door#PRESENTATIONS:fe9b9d67b1cc ui/door#Presentation:5378f3ae7da7 ui/door#PRESENTATION_BEHAVIOUR:11cc9a11a516 ui/door#ClockSubscriber:cd2a448da470 ui/door#Ticker:f3fd8773c688 ui/door#Clock:da7deb95122a ui/door#Surface:7d312cda7a5a
112
+ presented c93754e64b98 ui/presented#PresentedProps:ed075c0f7d0b ui/presented#Presented:b5610082d862
113
+ press 8570528dfb22 ui/animations/anm_press#PRESS:095f097fda5f
114
+ progress 1077ec596c45 ui/elements/progress#ProgressProps:3894c193cc18 ui/elements/progress#Progress:1072cc0de3a1 ui/elements/progress.works#measured:56dd5b194e54
115
+ provider 2cf596d154df ui/provider#ThreadUiProps:fe14ea2d68b0 ui/provider#ThreadUi:e310895b7a7c
116
+ pulse f90915f67e93 ui/animations/anm_pulse#PULSE:3d77fbef8e2e
117
+ radio-group ff77b2c9fa0d ui/elements/radio-group#RadioGroupProps:b8121b230a41 ui/elements/radio-group#RadioGroup:e53bf0a781d6 ui/elements/radio-group.works#uses:93b2bbc321ab ui/elements/radio-group.works#option:a16909c8c8c1 ui/elements/radio-group.works#shown:5e7a9552c0ad
118
+ react-writer 22d0f0e5722a ui/generators/react#compiled:59c5d77cc186 ui/generators/react#ungated:6de55407f5b9 ui/generators/react#loader:08e5438231dd ui/generators/react#plugin:b70a97bb6556
119
+ render-loop be960ec1a828 ui/render-loop#RenderLoop:26cd3aa222be ui/render-loop#RenderLoopError:79c4d40f96f7 ui/render-loop#useRenderLoopDetector:90e66afe4c82
120
+ rise 61ded997838c ui/animations/anm_rise#RISE:113549c3dbc2
121
+ route-grammar 908017e6633d ui/islands/map#ViewId:1803b726a3f2 ui/islands/map#ScreenName:1803b726a3f2 ui/islands/map#ScreenSchema:e34dac772797 ui/islands/map#Screen:d89925503325 ui/islands/map#LinkSchema:2cffc4530649 ui/islands/map#Link:cddf1e8c9a89 ui/islands/map#MapSchema:7534b09abac3 ui/islands/map#MapIsland:cd73cbe9975f
122
+ routes-writer 1810c7bd7a01 ui/generators/routes#typedRoute:b0bd4f259649 ui/generators/routes#viewsIn:9945a607f187 ui/generators/routes#holding:d2af8731dc6b
123
+ roving-focus cb0ac52a89ee ui/roving-focus#ITEM_ATTR:8b73d7f449d1 ui/roving-focus#RovingOptions:99d861749f5e ui/roving-focus#typeaheadMatch:03faca7fba5b ui/roving-focus#useRovingFocus:3b7852d6152b
124
+ row 920361e33f52 ui/elements/row#RowProps:2dc250686791 ui/elements/row#Row:569a64b06443
125
+ rule ccf2f80c5514 ui/variants/var_rule#RULE:77f429c90261
126
+ scatter 9a8e5129a49c ui/elements/scatter#ScatterProps:f4838df15082 ui/elements/scatter#Scatter:601a9061ff54 ui/elements/scatter.works#uses:4fc5950fb41d ui/elements/scatter.works#point:d986d6e7e804
127
+ screens e46cbc8f7847 ui/screens#declares:cad46cab877c ui/screens#SCREENS:2412f9a2cc25 ui/screens#nameOf:38eeb450b217 ui/screens#PAGE:b7bbe39b7b35 ui/screens#presentedIn:cb083ae57ffe ui/screens#routeFor:9212f2e08bc1 ui/screens#pageAt:8accc096b285 ui/screens#entryAmong:e8e913cd736e ui/screens#seeds:950628166bbd
128
+ scroll-lock 9d72fa5bd36e ui/scroll-lock#lockScroll:1ebfb8414d04 ui/scroll-lock#scrollLocks:dbe6494f9d41
129
+ select 6f3753d6d69d ui/elements/select#SelectProps:5a978c3108b1 ui/elements/select#Select:304fef768983 ui/elements/select.works#does:eae69973c066
130
+ separator c0dd746f0eda ui/elements/separator#SeparatorProps:dd7b8547a838 ui/elements/separator#Separator:ef292b7118cf
131
+ series 3c4117fcc437 ui/series#Oklch:c89405845570 ui/series#hexToOklch:4789883600c4 ui/series#oklchToHex:addb0ebe3e77 ui/series#seriesRamp:dcbdba1604ca ui/series#seriesColour:59e2788e6eda
132
+ shadow-token a853481182c9 ui/tokens/shadow#SHADOW:4be3d61d7b28
133
+ shake 823853a54116 ui/animations/anm_shake#SHAKE:d6929c1f4ff6
134
+ show-reader 516df7c7ade4 ui/generators/show#namedBy:512bfc15cc9b
135
+ signals 71b9ca638d39 ui/signals#SignalEntry:c4df440da285 ui/signals#holds:09920a64717d ui/signals#selectorOf:3760cece0feb ui/signals#SIGNALS:1e4ed72981ce ui/signals#EXCLUSIVE:9246e03a89ae ui/signals#coexist:40aac7cabc7c ui/signals#knowSignals:d809925e46fd ui/signals#signalNames:3ccbfc44dc32 ui/signals#isSignal:7ec24fea5b8b ui/signals#PointerSample:5d35cad46706 ui/signals#GestureFrame:eaf70a3d7781 ui/signals#GesturePhase:b48b44476bac ui/signals#Recognition:5803e495593d ui/signals#IDLE:8343023bcafc ui/signals#GestureEntry:2a90384c0121 ui/signals#defineGesture:f1b67e16a59e ui/signals#gestures:19649f79edf5 ui/signals#gestureFor:978e6ce3869c ui/signals#isGesture:7ec24fea5b8b ui/signals#gestureNames:3ccbfc44dc32 ui/signals#recognise:fac5ccc84865 ui/signals#SignalIssue:4165faba45aa ui/signals#checkInteractions:09d6e5b4183b
136
+ skeleton 70cc71ab7d0f ui/elements/skeleton#SkeletonProps:711ce7fb904e ui/elements/skeleton#Skeleton:37f365492a9d
137
+ skeleton-block 14589134c7cf ui/variants/var_skeleton-block#SKELETON_BLOCK:08ca2dbbcb1a
138
+ slide-in-left a2090e0e36e3 ui/animations/anm_slide_in_left#SLIDE_IN_LEFT:44fbc2dd92e3
139
+ slide-in-right 03201522158d ui/animations/anm_slide_in_right#SLIDE_IN_RIGHT:7704154482c1
140
+ slide-out-left e770370b0540 ui/animations/anm_slide_out_left#SLIDE_OUT_LEFT:503ae1168d49
141
+ slide-out-right c2a861af9c90 ui/animations/anm_slide_out_right#SLIDE_OUT_RIGHT:366e36c026f8
142
+ slider 7327fd02027e ui/elements/slider#SliderProps:8e3ebe606c6c ui/elements/slider#Slider:29e115f5629b ui/elements/slider.works#does:1c10d363e445
143
+ sparkline 35ebc246a8c4 ui/elements/sparkline#SparklineProps:bf823507b6fa ui/elements/sparkline#Sparkline:541243ee9db2 ui/elements/sparkline.works#uses:b6cc82bd5732 ui/elements/sparkline.works#drawing:62c65ae3b123
144
+ spin 49b33c0bd6ae ui/animations/anm_spin#SPIN:8eddb7bf1612
145
+ spinner 13daf2343838 ui/elements/spinner#SpinnerProps:0544b099ea80 ui/elements/spinner#Spinner:e38e42d0b0c5
146
+ spinner-turning b8933512ebef ui/variants/var_spinner-turning#SPINNER_TURNING:f36f97e04570
147
+ stack d62f5a0718ac ui/elements/stack#StackProps:2dc250686791 ui/elements/stack#Stack:fdd85c412df6
148
+ stat 7988e21877bd ui/elements/stat#StatProps:23600a83ece9 ui/elements/stat#Stat:fa6a34480102 ui/elements/stat.works#shown:25c9bae03897
149
+ stat-tile 25272472ad14 ui/variants/var_stat-tile#STAT_TILE:026ebccaeb89
150
+ styleguide-shape b5cf4a083386 ui/styleguide#StyleGuide:872bb558460e ui/styleguide#themedBy:b1e17b642d8c ui/styleguide#kindsHeld:3ccbfc44dc32 ui/styleguide#shapeOf:0191a88f5272 ui/styleguide#chosen:98aeef39cf52 ui/styleguide#shifted:9fa8d7f1bbec
151
+ styleguides c783e16f6e2e ui/styleguides#holds:66da16a1d8a6 ui/styleguides#STYLEGUIDES:e8e2b9e43e3d
152
+ styles-writer 5e0bc64e7727
153
+ surface e9badcae5fc7 ui/elements/surface#SurfaceProps:2dc250686791 ui/elements/surface#Surface:553e947ae889 ui/elements/surface.works#uses:8b8e3a9fe8d0
154
+ swell 55b58053ed5a ui/animations/anm_swell#SWELL:d471fea852ca
155
+ tab-bar 8e56174b7abe ui/variants/var_tab-bar#TAB_BAR:1e05ea6f084c
156
+ table 276580aa73f7 ui/elements/table#TableProps:52d6c9d03d95 ui/elements/table#Table:42c3ac158f4e ui/elements/table.works#uses:3085121fd6b4 ui/elements/table.works#shown:75fca49b7d63 ui/elements/table.works#heading:d9482c8fbf24
157
+ tabs 731f36a51df9 ui/elements/tabs#TabsProps:38e87a6eab0e ui/elements/tabs#Tabs:bdf4c5c4a04a ui/elements/tabs.works#uses:1e91366e992b ui/elements/tabs.works#strip:24729769900c ui/elements/tabs.works#tab:13a2e9b7ad30 ui/elements/tabs.works#opened:768544dc2ba6 ui/elements/tabs.works#panel:a066bd3e1ba8 ui/elements/tabs.works#shown:c14c6452def5
158
+ tap-target 6de856ae6027 ui/variants/var_tap-target#TAP_TARGET:1e494a9db685
159
+ text ce385a41d70c ui/elements/text#TextProps:9f25eacd5923 ui/elements/text#Text:7e9a751cc97c
160
+ textarea 3560897f7d83 ui/elements/textarea#TextareaProps:1c095a6c615d ui/elements/textarea#Textarea:e9304e28d0e9 ui/elements/textarea.works#does:9fddd3177d22
161
+ themes 578150eec4c9 ui/themes#holds:e5c0c9297825 ui/themes#THEMES:66852c882bbe
162
+ time 1e14ab4d4ff2 ui/elements/time#TimeProps:28e3e8561e4e ui/elements/time#Time:f1090f04bc57 ui/elements/time.works#uses:cc5dc6634747 ui/elements/time.works#shows:c92126ddc36e
163
+ toggle 9de5e4a3e543 ui/elements/toggle#ToggleProps:84205218bd48 ui/elements/toggle#Toggle:5e938057fbfe ui/elements/toggle.works#does:9ca75ef2795c
164
+ token-shape d072589be2f5 ui/token#Token:8d672efc335b ui/token#Wearing:10a6833bf679 ui/token#Holds:e30cbdfece90 ui/token#nameOf:7ad5f68e2c86 ui/token#naming:107c722f7b02 ui/token#held:a2b8fff9fbaa ui/token#sheeted:f0b5eed68e64
165
+ tokens 0c924fe273e5 ui/tokens#holds:da8687a09455 ui/tokens#declares:040f49b399ed ui/tokens#TOKENS:cb9c795b2bbf ui/tokens#nameOf:ff8fa0760be2 ui/tokens#seeds:950628166bbd ui/tokens#mismatched:5679b09f6252 ui/tokens#orphaned:579e61bf7b35
166
+ tooltip 949d5903f4b1 ui/elements/tooltip#TooltipProps:bf52f4964074 ui/elements/tooltip#Tooltip:dea7727a0321 ui/elements/tooltip.works#uses:d00d3ada96f8 ui/elements/tooltip.works#showing:cae65122fed6 ui/elements/tooltip.works#bubble:90bd36385377 ui/elements/tooltip.works#measured:2df010cbbfb8
167
+ translator 8359141fa054 ui/i18n/translator#UnknownMessageKeyError:8dd90403c7fe ui/i18n/translator#TranslatorOptions:78186c114b44 ui/i18n/translator#createTranslator:4eb69b879704
168
+ ui-attach c1f53c62679c ui/attach#ATTACH_HOME:16475c413846 ui/attach#ATTACH:8b0b999ca5c9
169
+ validators 24c066074280 ui/validators#ENTRY_MODES:6238d04fe5a8 ui/validators#KEYBOARDS:38e63312aeee ui/validators#EntryMode:18d83f0e69e6 ui/validators#Keyboard:2316810a5de3 ui/validators#ValidateResult:530bdd02c4e4 ui/validators#valid:3ce6786a6b1c ui/validators#invalid:46bcfbeb6f8e ui/validators#ValidatorContext:cf494e7f96b8 ui/validators#validators:0fd6015be8fa ui/validators#hasValidator:7ec24fea5b8b ui/validators#validatorFor:eaa1acab74f0 ui/validators#runValidator:3fc93347d97f ui/validators#formatValue:062cca5c1239 ui/validators#EntryConstraints:a5662931f360 ui/validators#entryConstraints:676ee3d7fbda ui/validators#acceptsKeystroke:cb848d0041fa ui/validators#applyMask:3f93a2d6184a ui/validators#minorUnits:921fda509ea5 ui/validators#evaluateMoney:e710eca6aed8 ui/validators#limited:77aa553c4b7a
170
+ value f675bfbd5fa8 ui/elements/value#ValueProps:2465ec2ee510 ui/elements/value#Value:59ceafd2bbba ui/elements/value.works#shows:07daabb6f547
171
+ variant-rows 601640ae7284 ui/variants#VARIANTS:6d4543715921
172
+ variant-shape 1fb207515c88 ui/variant#Variant:c9fa1bded409 ui/variant#propertiesHeld:f2f795682efa ui/variant#freeHeld:3ccbfc44dc32 ui/variant#structural:74cde91fc910 ui/variant#looking:25ed76b8a1b8 ui/variant#variant:618d238f40e2 ui/variant#boundHeld:f2f795682efa ui/variant#camel:ff8fa0760be2 ui/variant#classOf:ff8fa0760be2 ui/variant#classOfElement:ff8fa0760be2 ui/variant#classOfComposition:ff8fa0760be2 ui/variant#classOfScreen:ff8fa0760be2 ui/variant#unreacted:c61cf4383338 ui/variant#complete:068de9765c79 ui/variant#statesOf:c8962010907d ui/variant#under:265eab85913f ui/variant#undeclaredStates:11961d12ec9d
173
+ variants-seeder 44a040052fa9 ui/generators/variants#nameOf:ff8fa0760be2 ui/generators/variants#seeds:e5c803f28183 ui/generators/variants#mismatched:5679b09f6252 ui/generators/variants#orphaned:8865319ec4c3 ui/generators/variants#unguarded:2402578021fc ui/generators/variants#guarding:b0bd4f259649
174
+ wobble edf6e636810f ui/animations/anm_wobble#WOBBLE:46e6a095a08a
175
+ wrappers 7899368dedd6 ui/wrappers#Appearance:ec3028b4b84a ui/wrappers#UiConfig:c3eba3fea4a0 ui/wrappers#UiContext:96dbef1bc6b9 ui/wrappers#UiProvider:49c08762a14c ui/wrappers#useUi:0734231ecf54 ui/wrappers#SurfaceRequest:47fc4b40554a ui/wrappers#useSurface:4b8b39afaf79 ui/wrappers#Press:888036e6a18a ui/wrappers#pressOf:63ebc2a69966 ui/wrappers#PressOrigin:3daa7623dd12 ui/wrappers#usePress:486493cd9a8b ui/wrappers#useVisibility:4d1b5ddb676e ui/wrappers#ScreenOptions:3a12758f6988 ui/wrappers#ElementBody:71817b4c2a87 ui/wrappers#Element:ab34dbdc55be ui/wrappers#element:a7e4708803dc ui/wrappers#composition:d129e11ec13b ui/wrappers#ScreenControls:6b17634c6ed4 ui/wrappers#useView:97298a47e810 ui/wrappers#screen:80f46a5e3cda ui/wrappers#behaviourOf:5841f6ad0abe
176
+ zoom-in de9f521f292c ui/animations/anm_zoom_in#ZOOM_IN:dd54bfb2c859
177
+ zoom-out 841dc6cd15af ui/animations/anm_zoom_out#ZOOM_OUT:67becbe7effb
178
+ -->
179
+
3
180
  ## 0.0.1
4
181
 
5
182
  Every package carries the same number. The first two parts are set on the packaging sheet and move only when somebody changes them there; the third moves with every publish.
@@ -6,8 +6,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
10
- import { basename, dirname, join } from 'node:path';
9
+ import { existsSync, writeFileSync } from "@prestack/thread/core/files";
10
+ import { basename, join } from 'node:path';
11
11
  import { argv, stdout } from 'node:process';
12
12
  import { pathToFileURL } from 'node:url';
13
13
  import { exit, invoked } from "@prestack/thread/core/invoked";
@@ -199,7 +199,6 @@ async function run() {
199
199
  }
200
200
  else {
201
201
  for (const seed of made) {
202
- mkdirSync(dirname(join(tree.at, seed.path)), { recursive: true });
203
202
  writeFileSync(join(tree.at, seed.path), seed.content, 'utf8');
204
203
  stdout.write(`thread: seeded ${seed.path}\n`);
205
204
  }
@@ -1,4 +1,4 @@
1
- import { existsSync, mkdirSync, readdirSync, writeFileSync } from 'node:fs'
1
+ import { existsSync, readdirSync, writeFileSync } from '@prestack/thread/core/files'
2
2
  import { basename, dirname, join } from 'node:path'
3
3
  import { argv, stdout } from 'node:process'
4
4
  import { pathToFileURL } from 'node:url'
@@ -282,7 +282,6 @@ async function run(): Promise<number> {
282
282
  }
283
283
  } else {
284
284
  for (const seed of made) {
285
- mkdirSync(dirname(join(tree.at, seed.path)), { recursive: true })
286
285
  writeFileSync(join(tree.at, seed.path), seed.content, 'utf8')
287
286
  stdout.write(`thread: seeded ${seed.path}\n`)
288
287
  }
package/dist/ui/attach.js CHANGED
@@ -62,12 +62,6 @@ const SHIPPED = [
62
62
  id: 'dev-generator',
63
63
  source: " {\n id: 'dev-generator',\n at: 'node_modules/@prestack/thread-ui/dist/ui/generators/dev.js',\n describes: 'The command that runs the app, and the only one here that puts a pixel on a screen — until it existed the framework could build an interface nothing in it could start, because a gate answers whether declarations agree with files and cannot answer whether a button is where somebody says it is not. It is two halves in one word. First it settles this tree: every generator the declarations name is run until the checks stop complaining, which is what `thread create` and `thread run trial` already did and what starting the app was alone in not doing — an app had `thread gate` in front of `next dev`, and a gate refuses a stale file rather than writing it. Then it runs the entry the manifest declares, which is where the gate hook fires and Next is reached. Neither half is written down here: the generators are read off the rows, and `next dev` appears nowhere, so a package attached tomorrow is run by this without this changing and an app served by something else needs no edit. `--ship` swaps the entry for the build. Alone among the generators it carries no `runs:`, because a server stays up until it is stopped and a gate step that never returns is a gate that hangs.',\n version: 1,\n by: 'thread dev',\n },",
64
64
  },
65
- {
66
- into: 'ui.ts',
67
- list: 'GENERATORS',
68
- id: 'message-maker',
69
- source: " {\n id: 'message-maker',\n at: 'node_modules/@prestack/thread-ui/dist/ui/makers/message.js',\n describes: 'The maker of a message — asked for in every declared language at the moment the key is made, and refused while any answer is blank, so a key cannot be brought into existence half translated. It is also the only safe way to rename one: a rename moves the wording in every language and rewrites every file in the interface that names it, in one run, where doing it by hand leaves a key half moved and one sentence missing at run time.',\n version: 1,\n by: 'thread create message',\n },",
70
- },
71
65
  {
72
66
  into: 'ui.ts',
73
67
  list: 'GENERATORS',
package/dist/ui/attach.ts CHANGED
@@ -67,12 +67,6 @@ const SHIPPED: readonly { readonly into: string; readonly list: string; readonly
67
67
  id: 'dev-generator',
68
68
  source: " {\n id: 'dev-generator',\n at: 'node_modules/@prestack/thread-ui/dist/ui/generators/dev.js',\n describes: 'The command that runs the app, and the only one here that puts a pixel on a screen — until it existed the framework could build an interface nothing in it could start, because a gate answers whether declarations agree with files and cannot answer whether a button is where somebody says it is not. It is two halves in one word. First it settles this tree: every generator the declarations name is run until the checks stop complaining, which is what `thread create` and `thread run trial` already did and what starting the app was alone in not doing — an app had `thread gate` in front of `next dev`, and a gate refuses a stale file rather than writing it. Then it runs the entry the manifest declares, which is where the gate hook fires and Next is reached. Neither half is written down here: the generators are read off the rows, and `next dev` appears nowhere, so a package attached tomorrow is run by this without this changing and an app served by something else needs no edit. `--ship` swaps the entry for the build. Alone among the generators it carries no `runs:`, because a server stays up until it is stopped and a gate step that never returns is a gate that hangs.',\n version: 1,\n by: 'thread dev',\n },",
69
69
  },
70
- {
71
- into: 'ui.ts',
72
- list: 'GENERATORS',
73
- id: 'message-maker',
74
- source: " {\n id: 'message-maker',\n at: 'node_modules/@prestack/thread-ui/dist/ui/makers/message.js',\n describes: 'The maker of a message — asked for in every declared language at the moment the key is made, and refused while any answer is blank, so a key cannot be brought into existence half translated. It is also the only safe way to rename one: a rename moves the wording in every language and rewrites every file in the interface that names it, in one run, where doing it by hand leaves a key half moved and one sentence missing at run time.',\n version: 1,\n by: 'thread create message',\n },",
75
- },
76
70
  {
77
71
  into: 'ui.ts',
78
72
  list: 'GENERATORS',
@@ -23,7 +23,7 @@ export declare const RUNTIME: readonly string[];
23
23
  export declare function emitting(root: string, entries: readonly string[], checking: boolean, kept: Set<string>): readonly string[];
24
24
  export declare function stale(root: string, kept: ReadonlySet<string>, checking: boolean): readonly string[];
25
25
  export declare function handing(at: string, text: string): readonly string[];
26
- export declare function undeclared(tree: Tree, rows: readonly Threaded[]): Promise<readonly string[]>;
26
+ export declare function undeclared(tree: Tree, rows: readonly Threaded[]): readonly string[];
27
27
  export declare function seeds(rows: readonly Threaded[], held: (at: string) => boolean): readonly {
28
28
  readonly path: string;
29
29
  readonly content: string;
@@ -1,17 +1,9 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
- import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
1
+ import { existsSync, readFileSync, readdirSync, rmSync, writeFileSync } from "@prestack/thread/core/files";
10
2
  import { basename, dirname, join, relative } from 'node:path';
11
3
  import { argv, stdout } from 'node:process';
12
- import { pathToFileURL } from 'node:url';
13
- import { wrapped } from "@prestack/thread/core/asking";
4
+ import { TYPED, wrapped } from "@prestack/thread/core/answers";
14
5
  import { exit, invoked } from "@prestack/thread/core/invoked";
6
+ import { valuesIn } from "@prestack/thread/core/rows";
15
7
  import { named as packageOf } from "@prestack/thread/core/scope";
16
8
  import { findTree, inTree } from "@prestack/thread/core/tree";
17
9
  import { compiled } from "./generators/react.js";
@@ -134,29 +126,25 @@ export function nameOf(at) {
134
126
  const file = at.split('\\').join('/').split('/').at(-1) ?? at;
135
127
  return PASCAL(file.replace(/^cmp_/, '').replace(/\.[^.]+$/, ''));
136
128
  }
137
- async function sheetOf(tree, file, ...named) {
138
- try {
139
- const held = (await import(__rewriteRelativeImportExtension(pathToFileURL(inTree(tree, file)).href)));
140
- for (const one of named) {
141
- const found = held[one]?.declares;
142
- if (found !== undefined)
143
- return found;
144
- }
145
- return [];
146
- }
147
- catch {
129
+ function sheetOf(tree, file, ...named) {
130
+ const at = inTree(tree, file);
131
+ if (!existsSync(at))
148
132
  return [];
133
+ const held = valuesIn(readFileSync(at));
134
+ for (const one of named) {
135
+ const found = held[one]?.declares;
136
+ if (found !== undefined)
137
+ return found;
149
138
  }
139
+ return [];
150
140
  }
151
141
  const camelOf = (id) => id.replace(/-([a-z0-9])/g, (_, one) => one.toUpperCase());
152
142
  const sentence = (one, pad) => String(one.describes ?? '').trim() === '' ? [] : wrapped(String(one.describes), pad);
153
- async function listed(tree, making) {
154
- const [elements, variants, compositions, screens] = await Promise.all([
155
- sheetOf(tree, `elements.${'ts'}`, 'ELEMENT', 'ELEMENTS'),
156
- sheetOf(tree, `variants.${'ts'}`, 'VARIANT', 'VARIANTS'),
157
- sheetOf(tree, `compositions.${'ts'}`, 'COMPOSITION', 'COMPOSITIONS'),
158
- making === 'screen' ? sheetOf(tree, `screens.${'ts'}`, 'SCREEN', 'SCREENS') : Promise.resolve([]),
159
- ]);
143
+ function listed(tree, making) {
144
+ const elements = sheetOf(tree, `elements.${'ts'}`, 'ELEMENT', 'ELEMENTS');
145
+ const variants = sheetOf(tree, `variants.${'ts'}`, 'VARIANT', 'VARIANTS');
146
+ const compositions = sheetOf(tree, `compositions.${'ts'}`, 'COMPOSITION', 'COMPOSITIONS');
147
+ const screens = making === 'screen' ? sheetOf(tree, `screens.${'ts'}`, 'SCREEN', 'SCREENS') : [];
160
148
  const worn = new Map();
161
149
  for (const one of variants) {
162
150
  for (const each of one.wears ?? []) {
@@ -201,11 +189,11 @@ async function listed(tree, making) {
201
189
  '',
202
190
  ]),
203
191
  ' Materials, style guide values, fonts and animations are chosen inside a VARIANT, never inside',
204
- ' a body — `npx thread create variant` prints every one of them at the moment one is needed.',
192
+ ` a body — \`${TYPED} create variant\` prints every one of them at the moment one is needed.`,
205
193
  '',
206
- ' Every element and the tags it is written as: `npx thread create element`. Every variant and',
207
- ' the tag it is worn as: `npx thread create variant`. Then open the one nearest to what you are',
208
- ' about to build with `npx thread read <id>` — it already answers how a body is arranged, how a',
194
+ ` Every element and the tags it is written as: \`${TYPED} create element\`. Every variant and`,
195
+ ` the tag it is worn as: \`${TYPED} create variant\`. Then open the one nearest to what you are`,
196
+ ` about to build with \`${TYPED} read <id>\` — it already answers how a body is arranged, how a`,
209
197
  ' variant is worn and how a control reaches an operation, and a file cannot be wrong in the way',
210
198
  ' a remembered example can.',
211
199
  '',
@@ -305,7 +293,6 @@ export function settled(root, rows, checking, by, kept) {
305
293
  });
306
294
  const at = join(root, where);
307
295
  if (!checking) {
308
- mkdirSync(dirname(at), { recursive: true });
309
296
  writeFileSync(at, text, 'utf8');
310
297
  continue;
311
298
  }
@@ -364,7 +351,6 @@ export function emitting(root, entries, checking, kept) {
364
351
  }
365
352
  }
366
353
  else {
367
- mkdirSync(dirname(to), { recursive: true });
368
354
  writeFileSync(to, text, 'utf8');
369
355
  }
370
356
  for (const one of text.matchAll(REACHED)) {
@@ -441,7 +427,7 @@ export function handing(at, text) {
441
427
  }
442
428
  return found;
443
429
  }
444
- export async function undeclared(tree, rows) {
430
+ export function undeclared(tree, rows) {
445
431
  const elements = new Set();
446
432
  const declared = new Set();
447
433
  for (const [file, exported] of [
@@ -452,7 +438,7 @@ export async function undeclared(tree, rows) {
452
438
  const where = inTree(tree, file);
453
439
  if (!existsSync(where))
454
440
  continue;
455
- const sheet = (await import(__rewriteRelativeImportExtension(pathToFileURL(where).href)));
441
+ const sheet = valuesIn(readFileSync(where));
456
442
  for (const row of sheet[exported]?.declares ?? []) {
457
443
  if (exported === 'ELEMENT')
458
444
  elements.add(row.id);
@@ -488,14 +474,14 @@ export const ${name} = composition('${name}', () => <Box.card />)
488
474
  export function seeds(rows, held) {
489
475
  return rows.filter((row) => !held(row.at)).map((row) => ({ path: row.at, content: starter(row) }));
490
476
  }
491
- async function run() {
477
+ function run() {
492
478
  const tree = findTree();
493
479
  const at = inTree(tree, 'compositions.ts');
494
480
  if (!existsSync(at)) {
495
481
  stdout.write(`thread: this tree has no ${tree.name}/${basename(at)}, so it declares no composition and there is nothing to seed or check.\n`);
496
482
  return 0;
497
483
  }
498
- const held = (await import(__rewriteRelativeImportExtension(pathToFileURL(at).href)));
484
+ const held = valuesIn(readFileSync(at));
499
485
  if (held.COMPOSITION === undefined) {
500
486
  stdout.write(`thread: ${tree.name}/compositions.ts exports no \`COMPOSITION\`, so nothing declares a composition here.\n`);
501
487
  return 1;
@@ -511,24 +497,23 @@ async function run() {
511
497
  }
512
498
  if (!checking) {
513
499
  for (const one of made) {
514
- mkdirSync(dirname(join(tree.at, one.path)), { recursive: true });
515
500
  writeFileSync(join(tree.at, one.path), one.content, 'utf8');
516
501
  stdout.write(`thread: seeded ${one.path}\n`);
517
502
  }
518
503
  }
519
- const parts = await sheetOf(tree, 'elements.ts', 'ELEMENT', 'ELEMENTS');
504
+ const parts = sheetOf(tree, 'elements.ts', 'ELEMENT', 'ELEMENTS');
520
505
  const shipped = `node_modules/${packageOf('ui')}/dist/ui/`;
521
506
  const entries = [
522
507
  ...RUNTIME,
523
508
  ...parts.flatMap((one) => (one.at ?? '').startsWith(shipped) ? [(one.at ?? '').slice(shipped.length).replace(/\.js$/, '.tsx')] : []),
524
509
  ];
525
510
  const kept = new Set();
526
- for (const one of await sheetOf(tree, 'screens.ts', 'SCREEN', 'SCREENS')) {
511
+ for (const one of sheetOf(tree, 'screens.ts', 'SCREEN', 'SCREENS')) {
527
512
  if (one.at !== undefined && one.at !== '')
528
513
  kept.add(compiledAt(one.at));
529
514
  }
530
515
  const found = [
531
- ...(await undeclared(tree, rows)),
516
+ ...undeclared(tree, rows),
532
517
  ...emitting(tree.at, entries, checking, kept),
533
518
  ...settled(tree.at, rows, checking, 'thread compositions', kept),
534
519
  ];
@@ -541,4 +526,4 @@ async function run() {
541
526
  return loose.length === 0 ? 0 : 1;
542
527
  }
543
528
  if (invoked(import.meta.url))
544
- exit(await run());
529
+ exit(run());