@fieldia/designer 0.0.0-stage → 0.12.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 (1407) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +354 -2
  3. package/angular/editors.d.mts +32 -0
  4. package/angular/editors.mjs +64 -0
  5. package/angular/editors.mjs.map +1 -0
  6. package/angular/index.d.mts +1 -0
  7. package/angular/index.mjs +2 -0
  8. package/angular/index.mjs.map +1 -0
  9. package/package.json +77 -3
  10. package/src/index.d.mts +4 -0
  11. package/src/index.d.ts +4 -0
  12. package/src/index.js +8 -0
  13. package/src/index.js.map +1 -0
  14. package/src/index.mjs +5 -0
  15. package/src/index.mjs.map +1 -0
  16. package/src/lib/app-kinds-ui.d.mts +25 -0
  17. package/src/lib/app-kinds-ui.d.ts +25 -0
  18. package/src/lib/app-kinds-ui.js +73 -0
  19. package/src/lib/app-kinds-ui.js.map +1 -0
  20. package/src/lib/app-kinds-ui.mjs +67 -0
  21. package/src/lib/app-kinds-ui.mjs.map +1 -0
  22. package/src/lib/app-kinds.d.mts +67 -0
  23. package/src/lib/app-kinds.d.ts +67 -0
  24. package/src/lib/app-kinds.js +39 -0
  25. package/src/lib/app-kinds.js.map +1 -0
  26. package/src/lib/app-kinds.mjs +34 -0
  27. package/src/lib/app-kinds.mjs.map +1 -0
  28. package/src/lib/assistant-box.d.mts +34 -0
  29. package/src/lib/assistant-box.d.ts +34 -0
  30. package/src/lib/assistant-box.js +109 -0
  31. package/src/lib/assistant-box.js.map +1 -0
  32. package/src/lib/assistant-box.mjs +106 -0
  33. package/src/lib/assistant-box.mjs.map +1 -0
  34. package/src/lib/assistant-dialog.d.mts +20 -0
  35. package/src/lib/assistant-dialog.d.ts +20 -0
  36. package/src/lib/assistant-dialog.js +63 -0
  37. package/src/lib/assistant-dialog.js.map +1 -0
  38. package/src/lib/assistant-dialog.mjs +60 -0
  39. package/src/lib/assistant-dialog.mjs.map +1 -0
  40. package/src/lib/assistant.d.mts +44 -0
  41. package/src/lib/assistant.d.ts +44 -0
  42. package/src/lib/assistant.js +58 -0
  43. package/src/lib/assistant.js.map +1 -0
  44. package/src/lib/assistant.mjs +54 -0
  45. package/src/lib/assistant.mjs.map +1 -0
  46. package/src/lib/branch-map.d.mts +26 -0
  47. package/src/lib/branch-map.d.ts +26 -0
  48. package/src/lib/branch-map.js +110 -0
  49. package/src/lib/branch-map.js.map +1 -0
  50. package/src/lib/branch-map.mjs +106 -0
  51. package/src/lib/branch-map.mjs.map +1 -0
  52. package/src/lib/canvas-advanced.d.mts +40 -0
  53. package/src/lib/canvas-advanced.d.ts +40 -0
  54. package/src/lib/canvas-advanced.js +247 -0
  55. package/src/lib/canvas-advanced.js.map +1 -0
  56. package/src/lib/canvas-advanced.mjs +242 -0
  57. package/src/lib/canvas-advanced.mjs.map +1 -0
  58. package/src/lib/canvas-blocks.d.mts +21 -0
  59. package/src/lib/canvas-blocks.d.ts +21 -0
  60. package/src/lib/canvas-blocks.js +92 -0
  61. package/src/lib/canvas-blocks.js.map +1 -0
  62. package/src/lib/canvas-blocks.mjs +89 -0
  63. package/src/lib/canvas-blocks.mjs.map +1 -0
  64. package/src/lib/canvas-drag.d.mts +64 -0
  65. package/src/lib/canvas-drag.d.ts +64 -0
  66. package/src/lib/canvas-drag.js +301 -0
  67. package/src/lib/canvas-drag.js.map +1 -0
  68. package/src/lib/canvas-drag.mjs +297 -0
  69. package/src/lib/canvas-drag.mjs.map +1 -0
  70. package/src/lib/canvas-drop.d.mts +51 -0
  71. package/src/lib/canvas-drop.d.ts +51 -0
  72. package/src/lib/canvas-drop.js +171 -0
  73. package/src/lib/canvas-drop.js.map +1 -0
  74. package/src/lib/canvas-drop.mjs +165 -0
  75. package/src/lib/canvas-drop.mjs.map +1 -0
  76. package/src/lib/canvas-fold.d.mts +14 -0
  77. package/src/lib/canvas-fold.d.ts +14 -0
  78. package/src/lib/canvas-fold.js +23 -0
  79. package/src/lib/canvas-fold.js.map +1 -0
  80. package/src/lib/canvas-fold.mjs +20 -0
  81. package/src/lib/canvas-fold.mjs.map +1 -0
  82. package/src/lib/canvas-form.d.mts +28 -0
  83. package/src/lib/canvas-form.d.ts +28 -0
  84. package/src/lib/canvas-form.js +134 -0
  85. package/src/lib/canvas-form.js.map +1 -0
  86. package/src/lib/canvas-form.mjs +131 -0
  87. package/src/lib/canvas-form.mjs.map +1 -0
  88. package/src/lib/canvas-guides.d.mts +24 -0
  89. package/src/lib/canvas-guides.d.ts +24 -0
  90. package/src/lib/canvas-guides.js +100 -0
  91. package/src/lib/canvas-guides.js.map +1 -0
  92. package/src/lib/canvas-guides.mjs +96 -0
  93. package/src/lib/canvas-guides.mjs.map +1 -0
  94. package/src/lib/canvas-header.d.mts +29 -0
  95. package/src/lib/canvas-header.d.ts +29 -0
  96. package/src/lib/canvas-header.js +245 -0
  97. package/src/lib/canvas-header.js.map +1 -0
  98. package/src/lib/canvas-header.mjs +242 -0
  99. package/src/lib/canvas-header.mjs.map +1 -0
  100. package/src/lib/canvas-icons.d.mts +6 -0
  101. package/src/lib/canvas-icons.d.ts +6 -0
  102. package/src/lib/canvas-icons.js +31 -0
  103. package/src/lib/canvas-icons.js.map +1 -0
  104. package/src/lib/canvas-icons.mjs +28 -0
  105. package/src/lib/canvas-icons.mjs.map +1 -0
  106. package/src/lib/canvas-keys.d.mts +46 -0
  107. package/src/lib/canvas-keys.d.ts +46 -0
  108. package/src/lib/canvas-keys.js +114 -0
  109. package/src/lib/canvas-keys.js.map +1 -0
  110. package/src/lib/canvas-keys.mjs +109 -0
  111. package/src/lib/canvas-keys.mjs.map +1 -0
  112. package/src/lib/canvas-mode.d.mts +21 -0
  113. package/src/lib/canvas-mode.d.ts +21 -0
  114. package/src/lib/canvas-mode.js +53 -0
  115. package/src/lib/canvas-mode.js.map +1 -0
  116. package/src/lib/canvas-mode.mjs +47 -0
  117. package/src/lib/canvas-mode.mjs.map +1 -0
  118. package/src/lib/canvas-multi.d.mts +20 -0
  119. package/src/lib/canvas-multi.d.ts +20 -0
  120. package/src/lib/canvas-multi.js +56 -0
  121. package/src/lib/canvas-multi.js.map +1 -0
  122. package/src/lib/canvas-multi.mjs +53 -0
  123. package/src/lib/canvas-multi.mjs.map +1 -0
  124. package/src/lib/canvas-resize.d.mts +72 -0
  125. package/src/lib/canvas-resize.d.ts +72 -0
  126. package/src/lib/canvas-resize.js +177 -0
  127. package/src/lib/canvas-resize.js.map +1 -0
  128. package/src/lib/canvas-resize.mjs +168 -0
  129. package/src/lib/canvas-resize.mjs.map +1 -0
  130. package/src/lib/canvas-size.d.mts +42 -0
  131. package/src/lib/canvas-size.d.ts +42 -0
  132. package/src/lib/canvas-size.js +108 -0
  133. package/src/lib/canvas-size.js.map +1 -0
  134. package/src/lib/canvas-size.mjs +98 -0
  135. package/src/lib/canvas-size.mjs.map +1 -0
  136. package/src/lib/canvas-width.d.mts +55 -0
  137. package/src/lib/canvas-width.d.ts +55 -0
  138. package/src/lib/canvas-width.js +345 -0
  139. package/src/lib/canvas-width.js.map +1 -0
  140. package/src/lib/canvas-width.mjs +339 -0
  141. package/src/lib/canvas-width.mjs.map +1 -0
  142. package/src/lib/choice-commands.d.mts +40 -0
  143. package/src/lib/choice-commands.d.ts +40 -0
  144. package/src/lib/choice-commands.js +149 -0
  145. package/src/lib/choice-commands.js.map +1 -0
  146. package/src/lib/choice-commands.mjs +145 -0
  147. package/src/lib/choice-commands.mjs.map +1 -0
  148. package/src/lib/chrome-language.d.mts +34 -0
  149. package/src/lib/chrome-language.d.ts +34 -0
  150. package/src/lib/chrome-language.js +74 -0
  151. package/src/lib/chrome-language.js.map +1 -0
  152. package/src/lib/chrome-language.mjs +66 -0
  153. package/src/lib/chrome-language.mjs.map +1 -0
  154. package/src/lib/chrome.d.mts +49 -0
  155. package/src/lib/chrome.d.ts +49 -0
  156. package/src/lib/chrome.js +411 -0
  157. package/src/lib/chrome.js.map +1 -0
  158. package/src/lib/chrome.mjs +404 -0
  159. package/src/lib/chrome.mjs.map +1 -0
  160. package/src/lib/clipboard-keys.d.mts +22 -0
  161. package/src/lib/clipboard-keys.d.ts +22 -0
  162. package/src/lib/clipboard-keys.js +81 -0
  163. package/src/lib/clipboard-keys.js.map +1 -0
  164. package/src/lib/clipboard-keys.mjs +77 -0
  165. package/src/lib/clipboard-keys.mjs.map +1 -0
  166. package/src/lib/clipboard-names.d.mts +12 -0
  167. package/src/lib/clipboard-names.d.ts +12 -0
  168. package/src/lib/clipboard-names.js +163 -0
  169. package/src/lib/clipboard-names.js.map +1 -0
  170. package/src/lib/clipboard-names.mjs +158 -0
  171. package/src/lib/clipboard-names.mjs.map +1 -0
  172. package/src/lib/clipboard-ops.d.mts +33 -0
  173. package/src/lib/clipboard-ops.d.ts +33 -0
  174. package/src/lib/clipboard-ops.js +143 -0
  175. package/src/lib/clipboard-ops.js.map +1 -0
  176. package/src/lib/clipboard-ops.mjs +137 -0
  177. package/src/lib/clipboard-ops.mjs.map +1 -0
  178. package/src/lib/columns-editor.d.mts +12 -0
  179. package/src/lib/columns-editor.d.ts +12 -0
  180. package/src/lib/columns-editor.js +65 -0
  181. package/src/lib/columns-editor.js.map +1 -0
  182. package/src/lib/columns-editor.mjs +62 -0
  183. package/src/lib/columns-editor.mjs.map +1 -0
  184. package/src/lib/condition-editor.d.mts +31 -0
  185. package/src/lib/condition-editor.d.ts +31 -0
  186. package/src/lib/condition-editor.js +138 -0
  187. package/src/lib/condition-editor.js.map +1 -0
  188. package/src/lib/condition-editor.mjs +134 -0
  189. package/src/lib/condition-editor.mjs.map +1 -0
  190. package/src/lib/conditions.d.mts +39 -0
  191. package/src/lib/conditions.d.ts +39 -0
  192. package/src/lib/conditions.js +100 -0
  193. package/src/lib/conditions.js.map +1 -0
  194. package/src/lib/conditions.mjs +92 -0
  195. package/src/lib/conditions.mjs.map +1 -0
  196. package/src/lib/designer-words.d.mts +29 -0
  197. package/src/lib/designer-words.d.ts +29 -0
  198. package/src/lib/designer-words.js +32 -0
  199. package/src/lib/designer-words.js.map +1 -0
  200. package/src/lib/designer-words.mjs +25 -0
  201. package/src/lib/designer-words.mjs.map +1 -0
  202. package/src/lib/designer.d.mts +475 -0
  203. package/src/lib/designer.d.ts +475 -0
  204. package/src/lib/designer.js +1289 -0
  205. package/src/lib/designer.js.map +1 -0
  206. package/src/lib/designer.mjs +1265 -0
  207. package/src/lib/designer.mjs.map +1 -0
  208. package/src/lib/drop-echo.d.mts +71 -0
  209. package/src/lib/drop-echo.d.ts +71 -0
  210. package/src/lib/drop-echo.js +202 -0
  211. package/src/lib/drop-echo.js.map +1 -0
  212. package/src/lib/drop-echo.mjs +195 -0
  213. package/src/lib/drop-echo.mjs.map +1 -0
  214. package/src/lib/field-bar.d.mts +23 -0
  215. package/src/lib/field-bar.d.ts +23 -0
  216. package/src/lib/field-bar.js +115 -0
  217. package/src/lib/field-bar.js.map +1 -0
  218. package/src/lib/field-bar.mjs +111 -0
  219. package/src/lib/field-bar.mjs.map +1 -0
  220. package/src/lib/find-anything.d.mts +37 -0
  221. package/src/lib/find-anything.d.ts +37 -0
  222. package/src/lib/find-anything.js +109 -0
  223. package/src/lib/find-anything.js.map +1 -0
  224. package/src/lib/find-anything.mjs +105 -0
  225. package/src/lib/find-anything.mjs.map +1 -0
  226. package/src/lib/group-fold.d.mts +11 -0
  227. package/src/lib/group-fold.d.ts +11 -0
  228. package/src/lib/group-fold.js +25 -0
  229. package/src/lib/group-fold.js.map +1 -0
  230. package/src/lib/group-fold.mjs +20 -0
  231. package/src/lib/group-fold.mjs.map +1 -0
  232. package/src/lib/header-commands.d.mts +105 -0
  233. package/src/lib/header-commands.d.ts +105 -0
  234. package/src/lib/header-commands.js +453 -0
  235. package/src/lib/header-commands.js.map +1 -0
  236. package/src/lib/header-commands.mjs +447 -0
  237. package/src/lib/header-commands.mjs.map +1 -0
  238. package/src/lib/header-properties.d.mts +5 -0
  239. package/src/lib/header-properties.d.ts +5 -0
  240. package/src/lib/header-properties.js +272 -0
  241. package/src/lib/header-properties.js.map +1 -0
  242. package/src/lib/header-properties.mjs +268 -0
  243. package/src/lib/header-properties.mjs.map +1 -0
  244. package/src/lib/hotkey-setting.d.mts +8 -0
  245. package/src/lib/hotkey-setting.d.ts +8 -0
  246. package/src/lib/hotkey-setting.js +25 -0
  247. package/src/lib/hotkey-setting.js.map +1 -0
  248. package/src/lib/hotkey-setting.mjs +20 -0
  249. package/src/lib/hotkey-setting.mjs.map +1 -0
  250. package/src/lib/icons.d.mts +4 -0
  251. package/src/lib/icons.d.ts +4 -0
  252. package/src/lib/icons.js +106 -0
  253. package/src/lib/icons.js.map +1 -0
  254. package/src/lib/icons.mjs +102 -0
  255. package/src/lib/icons.mjs.map +1 -0
  256. package/src/lib/inline-settings.d.mts +17 -0
  257. package/src/lib/inline-settings.d.ts +17 -0
  258. package/src/lib/inline-settings.js +241 -0
  259. package/src/lib/inline-settings.js.map +1 -0
  260. package/src/lib/inline-settings.mjs +238 -0
  261. package/src/lib/inline-settings.mjs.map +1 -0
  262. package/src/lib/input-changes.d.mts +18 -0
  263. package/src/lib/input-changes.d.ts +18 -0
  264. package/src/lib/input-changes.js +92 -0
  265. package/src/lib/input-changes.js.map +1 -0
  266. package/src/lib/input-changes.mjs +89 -0
  267. package/src/lib/input-changes.mjs.map +1 -0
  268. package/src/lib/input-commands.d.mts +48 -0
  269. package/src/lib/input-commands.d.ts +48 -0
  270. package/src/lib/input-commands.js +160 -0
  271. package/src/lib/input-commands.js.map +1 -0
  272. package/src/lib/input-commands.mjs +155 -0
  273. package/src/lib/input-commands.mjs.map +1 -0
  274. package/src/lib/json-checks.d.mts +26 -0
  275. package/src/lib/json-checks.d.ts +26 -0
  276. package/src/lib/json-checks.js +208 -0
  277. package/src/lib/json-checks.js.map +1 -0
  278. package/src/lib/json-checks.mjs +204 -0
  279. package/src/lib/json-checks.mjs.map +1 -0
  280. package/src/lib/json-code.d.mts +33 -0
  281. package/src/lib/json-code.d.ts +33 -0
  282. package/src/lib/json-code.js +124 -0
  283. package/src/lib/json-code.js.map +1 -0
  284. package/src/lib/json-code.mjs +120 -0
  285. package/src/lib/json-code.mjs.map +1 -0
  286. package/src/lib/json-text.d.mts +46 -0
  287. package/src/lib/json-text.d.ts +46 -0
  288. package/src/lib/json-text.js +260 -0
  289. package/src/lib/json-text.js.map +1 -0
  290. package/src/lib/json-text.mjs +253 -0
  291. package/src/lib/json-text.mjs.map +1 -0
  292. package/src/lib/json-view.d.mts +29 -0
  293. package/src/lib/json-view.d.ts +29 -0
  294. package/src/lib/json-view.js +235 -0
  295. package/src/lib/json-view.js.map +1 -0
  296. package/src/lib/json-view.mjs +232 -0
  297. package/src/lib/json-view.mjs.map +1 -0
  298. package/src/lib/keep-unchanged.d.mts +12 -0
  299. package/src/lib/keep-unchanged.d.ts +12 -0
  300. package/src/lib/keep-unchanged.js +68 -0
  301. package/src/lib/keep-unchanged.js.map +1 -0
  302. package/src/lib/keep-unchanged.mjs +65 -0
  303. package/src/lib/keep-unchanged.mjs.map +1 -0
  304. package/src/lib/kind-commands.d.mts +40 -0
  305. package/src/lib/kind-commands.d.ts +40 -0
  306. package/src/lib/kind-commands.js +149 -0
  307. package/src/lib/kind-commands.js.map +1 -0
  308. package/src/lib/kind-commands.mjs +145 -0
  309. package/src/lib/kind-commands.mjs.map +1 -0
  310. package/src/lib/kind-previews.d.mts +11 -0
  311. package/src/lib/kind-previews.d.ts +11 -0
  312. package/src/lib/kind-previews.js +45 -0
  313. package/src/lib/kind-previews.js.map +1 -0
  314. package/src/lib/kind-previews.mjs +42 -0
  315. package/src/lib/kind-previews.mjs.map +1 -0
  316. package/src/lib/kind-settings-choices.d.mts +17 -0
  317. package/src/lib/kind-settings-choices.d.ts +17 -0
  318. package/src/lib/kind-settings-choices.js +194 -0
  319. package/src/lib/kind-settings-choices.js.map +1 -0
  320. package/src/lib/kind-settings-choices.mjs +191 -0
  321. package/src/lib/kind-settings-choices.mjs.map +1 -0
  322. package/src/lib/kind-settings-inputs.d.mts +20 -0
  323. package/src/lib/kind-settings-inputs.d.ts +20 -0
  324. package/src/lib/kind-settings-inputs.js +349 -0
  325. package/src/lib/kind-settings-inputs.js.map +1 -0
  326. package/src/lib/kind-settings-inputs.mjs +346 -0
  327. package/src/lib/kind-settings-inputs.mjs.map +1 -0
  328. package/src/lib/kind-settings-structures.d.mts +20 -0
  329. package/src/lib/kind-settings-structures.d.ts +20 -0
  330. package/src/lib/kind-settings-structures.js +205 -0
  331. package/src/lib/kind-settings-structures.js.map +1 -0
  332. package/src/lib/kind-settings-structures.mjs +201 -0
  333. package/src/lib/kind-settings-structures.mjs.map +1 -0
  334. package/src/lib/kind-settings.d.mts +18 -0
  335. package/src/lib/kind-settings.d.ts +18 -0
  336. package/src/lib/kind-settings.js +325 -0
  337. package/src/lib/kind-settings.js.map +1 -0
  338. package/src/lib/kind-settings.mjs +322 -0
  339. package/src/lib/kind-settings.mjs.map +1 -0
  340. package/src/lib/kinds.d.mts +68 -0
  341. package/src/lib/kinds.d.ts +68 -0
  342. package/src/lib/kinds.js +276 -0
  343. package/src/lib/kinds.js.map +1 -0
  344. package/src/lib/kinds.mjs +263 -0
  345. package/src/lib/kinds.mjs.map +1 -0
  346. package/src/lib/language-names.d.mts +8 -0
  347. package/src/lib/language-names.d.ts +8 -0
  348. package/src/lib/language-names.js +72 -0
  349. package/src/lib/language-names.js.map +1 -0
  350. package/src/lib/language-names.mjs +68 -0
  351. package/src/lib/language-names.mjs.map +1 -0
  352. package/src/lib/layout-changes.d.mts +43 -0
  353. package/src/lib/layout-changes.d.ts +43 -0
  354. package/src/lib/layout-changes.js +296 -0
  355. package/src/lib/layout-changes.js.map +1 -0
  356. package/src/lib/layout-changes.mjs +290 -0
  357. package/src/lib/layout-changes.mjs.map +1 -0
  358. package/src/lib/layout-ops.d.mts +105 -0
  359. package/src/lib/layout-ops.d.ts +105 -0
  360. package/src/lib/layout-ops.js +558 -0
  361. package/src/lib/layout-ops.js.map +1 -0
  362. package/src/lib/layout-ops.mjs +537 -0
  363. package/src/lib/layout-ops.mjs.map +1 -0
  364. package/src/lib/layout-settings.d.mts +75 -0
  365. package/src/lib/layout-settings.d.ts +75 -0
  366. package/src/lib/layout-settings.js +291 -0
  367. package/src/lib/layout-settings.js.map +1 -0
  368. package/src/lib/layout-settings.mjs +279 -0
  369. package/src/lib/layout-settings.mjs.map +1 -0
  370. package/src/lib/layout-several.d.mts +15 -0
  371. package/src/lib/layout-several.d.ts +15 -0
  372. package/src/lib/layout-several.js +50 -0
  373. package/src/lib/layout-several.js.map +1 -0
  374. package/src/lib/layout-several.mjs +47 -0
  375. package/src/lib/layout-several.mjs.map +1 -0
  376. package/src/lib/layout-tree.d.mts +75 -0
  377. package/src/lib/layout-tree.d.ts +75 -0
  378. package/src/lib/layout-tree.js +186 -0
  379. package/src/lib/layout-tree.js.map +1 -0
  380. package/src/lib/layout-tree.mjs +163 -0
  381. package/src/lib/layout-tree.mjs.map +1 -0
  382. package/src/lib/layout-twelfths.d.mts +101 -0
  383. package/src/lib/layout-twelfths.d.ts +101 -0
  384. package/src/lib/layout-twelfths.js +233 -0
  385. package/src/lib/layout-twelfths.js.map +1 -0
  386. package/src/lib/layout-twelfths.mjs +210 -0
  387. package/src/lib/layout-twelfths.mjs.map +1 -0
  388. package/src/lib/list-canvas.d.mts +30 -0
  389. package/src/lib/list-canvas.d.ts +30 -0
  390. package/src/lib/list-canvas.js +224 -0
  391. package/src/lib/list-canvas.js.map +1 -0
  392. package/src/lib/list-canvas.mjs +221 -0
  393. package/src/lib/list-canvas.mjs.map +1 -0
  394. package/src/lib/list-commands.d.mts +57 -0
  395. package/src/lib/list-commands.d.ts +57 -0
  396. package/src/lib/list-commands.js +245 -0
  397. package/src/lib/list-commands.js.map +1 -0
  398. package/src/lib/list-commands.mjs +238 -0
  399. package/src/lib/list-commands.mjs.map +1 -0
  400. package/src/lib/list-properties.d.mts +6 -0
  401. package/src/lib/list-properties.d.ts +6 -0
  402. package/src/lib/list-properties.js +310 -0
  403. package/src/lib/list-properties.js.map +1 -0
  404. package/src/lib/list-properties.mjs +305 -0
  405. package/src/lib/list-properties.mjs.map +1 -0
  406. package/src/lib/list-source.d.mts +10 -0
  407. package/src/lib/list-source.d.ts +10 -0
  408. package/src/lib/list-source.js +81 -0
  409. package/src/lib/list-source.js.map +1 -0
  410. package/src/lib/list-source.mjs +78 -0
  411. package/src/lib/list-source.mjs.map +1 -0
  412. package/src/lib/locales/ar/bar.d.mts +2 -0
  413. package/src/lib/locales/ar/bar.d.ts +2 -0
  414. package/src/lib/locales/ar/bar.js +58 -0
  415. package/src/lib/locales/ar/bar.js.map +1 -0
  416. package/src/lib/locales/ar/bar.mjs +55 -0
  417. package/src/lib/locales/ar/bar.mjs.map +1 -0
  418. package/src/lib/locales/ar/canvas.d.mts +2 -0
  419. package/src/lib/locales/ar/canvas.d.ts +2 -0
  420. package/src/lib/locales/ar/canvas.js +121 -0
  421. package/src/lib/locales/ar/canvas.js.map +1 -0
  422. package/src/lib/locales/ar/canvas.mjs +118 -0
  423. package/src/lib/locales/ar/canvas.mjs.map +1 -0
  424. package/src/lib/locales/ar/changes.d.mts +3 -0
  425. package/src/lib/locales/ar/changes.d.ts +3 -0
  426. package/src/lib/locales/ar/changes.js +158 -0
  427. package/src/lib/locales/ar/changes.js.map +1 -0
  428. package/src/lib/locales/ar/changes.mjs +155 -0
  429. package/src/lib/locales/ar/changes.mjs.map +1 -0
  430. package/src/lib/locales/ar/checks.d.mts +2 -0
  431. package/src/lib/locales/ar/checks.d.ts +2 -0
  432. package/src/lib/locales/ar/checks.js +36 -0
  433. package/src/lib/locales/ar/checks.js.map +1 -0
  434. package/src/lib/locales/ar/checks.mjs +33 -0
  435. package/src/lib/locales/ar/checks.mjs.map +1 -0
  436. package/src/lib/locales/ar/defaults.d.mts +2 -0
  437. package/src/lib/locales/ar/defaults.d.ts +2 -0
  438. package/src/lib/locales/ar/defaults.js +40 -0
  439. package/src/lib/locales/ar/defaults.js.map +1 -0
  440. package/src/lib/locales/ar/defaults.mjs +37 -0
  441. package/src/lib/locales/ar/defaults.mjs.map +1 -0
  442. package/src/lib/locales/ar/index.d.mts +25 -0
  443. package/src/lib/locales/ar/index.d.ts +25 -0
  444. package/src/lib/locales/ar/index.js +57 -0
  445. package/src/lib/locales/ar/index.js.map +1 -0
  446. package/src/lib/locales/ar/index.mjs +54 -0
  447. package/src/lib/locales/ar/index.mjs.map +1 -0
  448. package/src/lib/locales/ar/json.d.mts +2 -0
  449. package/src/lib/locales/ar/json.d.ts +2 -0
  450. package/src/lib/locales/ar/json.js +50 -0
  451. package/src/lib/locales/ar/json.js.map +1 -0
  452. package/src/lib/locales/ar/json.mjs +47 -0
  453. package/src/lib/locales/ar/json.mjs.map +1 -0
  454. package/src/lib/locales/ar/kinds.d.mts +2 -0
  455. package/src/lib/locales/ar/kinds.d.ts +2 -0
  456. package/src/lib/locales/ar/kinds.js +89 -0
  457. package/src/lib/locales/ar/kinds.js.map +1 -0
  458. package/src/lib/locales/ar/kinds.mjs +86 -0
  459. package/src/lib/locales/ar/kinds.mjs.map +1 -0
  460. package/src/lib/locales/ar/languages.d.mts +2 -0
  461. package/src/lib/locales/ar/languages.d.ts +2 -0
  462. package/src/lib/locales/ar/languages.js +8 -0
  463. package/src/lib/locales/ar/languages.js.map +1 -0
  464. package/src/lib/locales/ar/languages.mjs +5 -0
  465. package/src/lib/locales/ar/languages.mjs.map +1 -0
  466. package/src/lib/locales/ar/layout.d.mts +2 -0
  467. package/src/lib/locales/ar/layout.d.ts +2 -0
  468. package/src/lib/locales/ar/layout.js +78 -0
  469. package/src/lib/locales/ar/layout.js.map +1 -0
  470. package/src/lib/locales/ar/layout.mjs +75 -0
  471. package/src/lib/locales/ar/layout.mjs.map +1 -0
  472. package/src/lib/locales/ar/list.d.mts +2 -0
  473. package/src/lib/locales/ar/list.d.ts +2 -0
  474. package/src/lib/locales/ar/list.js +65 -0
  475. package/src/lib/locales/ar/list.js.map +1 -0
  476. package/src/lib/locales/ar/list.mjs +62 -0
  477. package/src/lib/locales/ar/list.mjs.map +1 -0
  478. package/src/lib/locales/ar/looks.d.mts +2 -0
  479. package/src/lib/locales/ar/looks.d.ts +2 -0
  480. package/src/lib/locales/ar/looks.js +38 -0
  481. package/src/lib/locales/ar/looks.js.map +1 -0
  482. package/src/lib/locales/ar/looks.mjs +35 -0
  483. package/src/lib/locales/ar/looks.mjs.map +1 -0
  484. package/src/lib/locales/ar/options.d.mts +2 -0
  485. package/src/lib/locales/ar/options.d.ts +2 -0
  486. package/src/lib/locales/ar/options.js +18 -0
  487. package/src/lib/locales/ar/options.js.map +1 -0
  488. package/src/lib/locales/ar/options.mjs +15 -0
  489. package/src/lib/locales/ar/options.mjs.map +1 -0
  490. package/src/lib/locales/ar/outline.d.mts +3 -0
  491. package/src/lib/locales/ar/outline.d.ts +3 -0
  492. package/src/lib/locales/ar/outline.js +111 -0
  493. package/src/lib/locales/ar/outline.js.map +1 -0
  494. package/src/lib/locales/ar/outline.mjs +108 -0
  495. package/src/lib/locales/ar/outline.mjs.map +1 -0
  496. package/src/lib/locales/ar/panel.d.mts +2 -0
  497. package/src/lib/locales/ar/panel.d.ts +2 -0
  498. package/src/lib/locales/ar/panel.js +389 -0
  499. package/src/lib/locales/ar/panel.js.map +1 -0
  500. package/src/lib/locales/ar/panel.mjs +386 -0
  501. package/src/lib/locales/ar/panel.mjs.map +1 -0
  502. package/src/lib/locales/ar/part-looks.d.mts +2 -0
  503. package/src/lib/locales/ar/part-looks.d.ts +2 -0
  504. package/src/lib/locales/ar/part-looks.js +34 -0
  505. package/src/lib/locales/ar/part-looks.js.map +1 -0
  506. package/src/lib/locales/ar/part-looks.mjs +31 -0
  507. package/src/lib/locales/ar/part-looks.mjs.map +1 -0
  508. package/src/lib/locales/ar/parts.d.mts +2 -0
  509. package/src/lib/locales/ar/parts.d.ts +2 -0
  510. package/src/lib/locales/ar/parts.js +22 -0
  511. package/src/lib/locales/ar/parts.js.map +1 -0
  512. package/src/lib/locales/ar/parts.mjs +19 -0
  513. package/src/lib/locales/ar/parts.mjs.map +1 -0
  514. package/src/lib/locales/ar/questions.d.mts +2 -0
  515. package/src/lib/locales/ar/questions.d.ts +2 -0
  516. package/src/lib/locales/ar/questions.js +265 -0
  517. package/src/lib/locales/ar/questions.js.map +1 -0
  518. package/src/lib/locales/ar/questions.mjs +262 -0
  519. package/src/lib/locales/ar/questions.mjs.map +1 -0
  520. package/src/lib/locales/ar/refusals.d.mts +2 -0
  521. package/src/lib/locales/ar/refusals.d.ts +2 -0
  522. package/src/lib/locales/ar/refusals.js +167 -0
  523. package/src/lib/locales/ar/refusals.js.map +1 -0
  524. package/src/lib/locales/ar/refusals.mjs +164 -0
  525. package/src/lib/locales/ar/refusals.mjs.map +1 -0
  526. package/src/lib/locales/ar/rules-ui.d.mts +2 -0
  527. package/src/lib/locales/ar/rules-ui.d.ts +2 -0
  528. package/src/lib/locales/ar/rules-ui.js +158 -0
  529. package/src/lib/locales/ar/rules-ui.js.map +1 -0
  530. package/src/lib/locales/ar/rules-ui.mjs +155 -0
  531. package/src/lib/locales/ar/rules-ui.mjs.map +1 -0
  532. package/src/lib/locales/ar/rules.d.mts +2 -0
  533. package/src/lib/locales/ar/rules.d.ts +2 -0
  534. package/src/lib/locales/ar/rules.js +160 -0
  535. package/src/lib/locales/ar/rules.js.map +1 -0
  536. package/src/lib/locales/ar/rules.mjs +157 -0
  537. package/src/lib/locales/ar/rules.mjs.map +1 -0
  538. package/src/lib/locales/ar/saved-forms.d.mts +2 -0
  539. package/src/lib/locales/ar/saved-forms.d.ts +2 -0
  540. package/src/lib/locales/ar/saved-forms.js +48 -0
  541. package/src/lib/locales/ar/saved-forms.js.map +1 -0
  542. package/src/lib/locales/ar/saved-forms.mjs +45 -0
  543. package/src/lib/locales/ar/saved-forms.mjs.map +1 -0
  544. package/src/lib/locales/ar/settings-changes.d.mts +2 -0
  545. package/src/lib/locales/ar/settings-changes.d.ts +2 -0
  546. package/src/lib/locales/ar/settings-changes.js +79 -0
  547. package/src/lib/locales/ar/settings-changes.js.map +1 -0
  548. package/src/lib/locales/ar/settings-changes.mjs +76 -0
  549. package/src/lib/locales/ar/settings-changes.mjs.map +1 -0
  550. package/src/lib/locales/ar/shortcuts.d.mts +2 -0
  551. package/src/lib/locales/ar/shortcuts.d.ts +2 -0
  552. package/src/lib/locales/ar/shortcuts.js +36 -0
  553. package/src/lib/locales/ar/shortcuts.js.map +1 -0
  554. package/src/lib/locales/ar/shortcuts.mjs +33 -0
  555. package/src/lib/locales/ar/shortcuts.mjs.map +1 -0
  556. package/src/lib/locales/ar/steps.d.mts +2 -0
  557. package/src/lib/locales/ar/steps.d.ts +2 -0
  558. package/src/lib/locales/ar/steps.js +185 -0
  559. package/src/lib/locales/ar/steps.js.map +1 -0
  560. package/src/lib/locales/ar/steps.mjs +182 -0
  561. package/src/lib/locales/ar/steps.mjs.map +1 -0
  562. package/src/lib/locales/ar/tables.d.mts +2 -0
  563. package/src/lib/locales/ar/tables.d.ts +2 -0
  564. package/src/lib/locales/ar/tables.js +69 -0
  565. package/src/lib/locales/ar/tables.js.map +1 -0
  566. package/src/lib/locales/ar/tables.mjs +66 -0
  567. package/src/lib/locales/ar/tables.mjs.map +1 -0
  568. package/src/lib/locales/ar/templates.d.mts +3 -0
  569. package/src/lib/locales/ar/templates.d.ts +3 -0
  570. package/src/lib/locales/ar/templates.js +114 -0
  571. package/src/lib/locales/ar/templates.js.map +1 -0
  572. package/src/lib/locales/ar/templates.mjs +111 -0
  573. package/src/lib/locales/ar/templates.mjs.map +1 -0
  574. package/src/lib/locales/ar/toolbox.d.mts +2 -0
  575. package/src/lib/locales/ar/toolbox.d.ts +2 -0
  576. package/src/lib/locales/ar/toolbox.js +50 -0
  577. package/src/lib/locales/ar/toolbox.js.map +1 -0
  578. package/src/lib/locales/ar/toolbox.mjs +47 -0
  579. package/src/lib/locales/ar/toolbox.mjs.map +1 -0
  580. package/src/lib/locales/ar/translations.d.mts +2 -0
  581. package/src/lib/locales/ar/translations.d.ts +2 -0
  582. package/src/lib/locales/ar/translations.js +69 -0
  583. package/src/lib/locales/ar/translations.js.map +1 -0
  584. package/src/lib/locales/ar/translations.mjs +66 -0
  585. package/src/lib/locales/ar/translations.mjs.map +1 -0
  586. package/src/lib/locales/ar/try-it.d.mts +2 -0
  587. package/src/lib/locales/ar/try-it.d.ts +2 -0
  588. package/src/lib/locales/ar/try-it.js +29 -0
  589. package/src/lib/locales/ar/try-it.js.map +1 -0
  590. package/src/lib/locales/ar/try-it.mjs +26 -0
  591. package/src/lib/locales/ar/try-it.mjs.map +1 -0
  592. package/src/lib/locales/en/bar.d.mts +56 -0
  593. package/src/lib/locales/en/bar.d.ts +56 -0
  594. package/src/lib/locales/en/bar.js +66 -0
  595. package/src/lib/locales/en/bar.js.map +1 -0
  596. package/src/lib/locales/en/bar.mjs +63 -0
  597. package/src/lib/locales/en/bar.mjs.map +1 -0
  598. package/src/lib/locales/en/canvas.d.mts +119 -0
  599. package/src/lib/locales/en/canvas.d.ts +119 -0
  600. package/src/lib/locales/en/canvas.js +129 -0
  601. package/src/lib/locales/en/canvas.js.map +1 -0
  602. package/src/lib/locales/en/canvas.mjs +126 -0
  603. package/src/lib/locales/en/canvas.mjs.map +1 -0
  604. package/src/lib/locales/en/changes.d.mts +139 -0
  605. package/src/lib/locales/en/changes.d.ts +139 -0
  606. package/src/lib/locales/en/changes.js +162 -0
  607. package/src/lib/locales/en/changes.js.map +1 -0
  608. package/src/lib/locales/en/changes.mjs +159 -0
  609. package/src/lib/locales/en/changes.mjs.map +1 -0
  610. package/src/lib/locales/en/checks.d.mts +32 -0
  611. package/src/lib/locales/en/checks.d.ts +32 -0
  612. package/src/lib/locales/en/checks.js +38 -0
  613. package/src/lib/locales/en/checks.js.map +1 -0
  614. package/src/lib/locales/en/checks.mjs +35 -0
  615. package/src/lib/locales/en/checks.mjs.map +1 -0
  616. package/src/lib/locales/en/defaults.d.mts +45 -0
  617. package/src/lib/locales/en/defaults.d.ts +45 -0
  618. package/src/lib/locales/en/defaults.js +49 -0
  619. package/src/lib/locales/en/defaults.js.map +1 -0
  620. package/src/lib/locales/en/defaults.mjs +46 -0
  621. package/src/lib/locales/en/defaults.mjs.map +1 -0
  622. package/src/lib/locales/en/index.d.mts +2591 -0
  623. package/src/lib/locales/en/index.d.ts +2591 -0
  624. package/src/lib/locales/en/index.js +35 -0
  625. package/src/lib/locales/en/index.js.map +1 -0
  626. package/src/lib/locales/en/index.mjs +32 -0
  627. package/src/lib/locales/en/index.mjs.map +1 -0
  628. package/src/lib/locales/en/json.d.mts +51 -0
  629. package/src/lib/locales/en/json.d.ts +51 -0
  630. package/src/lib/locales/en/json.js +52 -0
  631. package/src/lib/locales/en/json.js.map +1 -0
  632. package/src/lib/locales/en/json.mjs +49 -0
  633. package/src/lib/locales/en/json.mjs.map +1 -0
  634. package/src/lib/locales/en/kinds.d.mts +89 -0
  635. package/src/lib/locales/en/kinds.d.ts +89 -0
  636. package/src/lib/locales/en/kinds.js +93 -0
  637. package/src/lib/locales/en/kinds.js.map +1 -0
  638. package/src/lib/locales/en/kinds.mjs +90 -0
  639. package/src/lib/locales/en/kinds.mjs.map +1 -0
  640. package/src/lib/locales/en/languages.d.mts +5 -0
  641. package/src/lib/locales/en/languages.d.ts +5 -0
  642. package/src/lib/locales/en/languages.js +10 -0
  643. package/src/lib/locales/en/languages.js.map +1 -0
  644. package/src/lib/locales/en/languages.mjs +7 -0
  645. package/src/lib/locales/en/languages.mjs.map +1 -0
  646. package/src/lib/locales/en/layout.d.mts +104 -0
  647. package/src/lib/locales/en/layout.d.ts +104 -0
  648. package/src/lib/locales/en/layout.js +87 -0
  649. package/src/lib/locales/en/layout.js.map +1 -0
  650. package/src/lib/locales/en/layout.mjs +84 -0
  651. package/src/lib/locales/en/layout.mjs.map +1 -0
  652. package/src/lib/locales/en/list.d.mts +63 -0
  653. package/src/lib/locales/en/list.d.ts +63 -0
  654. package/src/lib/locales/en/list.js +72 -0
  655. package/src/lib/locales/en/list.js.map +1 -0
  656. package/src/lib/locales/en/list.mjs +69 -0
  657. package/src/lib/locales/en/list.mjs.map +1 -0
  658. package/src/lib/locales/en/looks.d.mts +35 -0
  659. package/src/lib/locales/en/looks.d.ts +35 -0
  660. package/src/lib/locales/en/looks.js +39 -0
  661. package/src/lib/locales/en/looks.js.map +1 -0
  662. package/src/lib/locales/en/looks.mjs +36 -0
  663. package/src/lib/locales/en/looks.mjs.map +1 -0
  664. package/src/lib/locales/en/options.d.mts +15 -0
  665. package/src/lib/locales/en/options.d.ts +15 -0
  666. package/src/lib/locales/en/options.js +19 -0
  667. package/src/lib/locales/en/options.js.map +1 -0
  668. package/src/lib/locales/en/options.mjs +16 -0
  669. package/src/lib/locales/en/options.mjs.map +1 -0
  670. package/src/lib/locales/en/outline.d.mts +91 -0
  671. package/src/lib/locales/en/outline.d.ts +91 -0
  672. package/src/lib/locales/en/outline.js +120 -0
  673. package/src/lib/locales/en/outline.js.map +1 -0
  674. package/src/lib/locales/en/outline.mjs +117 -0
  675. package/src/lib/locales/en/outline.mjs.map +1 -0
  676. package/src/lib/locales/en/panel.d.mts +370 -0
  677. package/src/lib/locales/en/panel.d.ts +370 -0
  678. package/src/lib/locales/en/panel.js +322 -0
  679. package/src/lib/locales/en/panel.js.map +1 -0
  680. package/src/lib/locales/en/panel.mjs +319 -0
  681. package/src/lib/locales/en/panel.mjs.map +1 -0
  682. package/src/lib/locales/en/part-looks.d.mts +49 -0
  683. package/src/lib/locales/en/part-looks.d.ts +49 -0
  684. package/src/lib/locales/en/part-looks.js +42 -0
  685. package/src/lib/locales/en/part-looks.js.map +1 -0
  686. package/src/lib/locales/en/part-looks.mjs +39 -0
  687. package/src/lib/locales/en/part-looks.mjs.map +1 -0
  688. package/src/lib/locales/en/parts.d.mts +30 -0
  689. package/src/lib/locales/en/parts.d.ts +30 -0
  690. package/src/lib/locales/en/parts.js +27 -0
  691. package/src/lib/locales/en/parts.js.map +1 -0
  692. package/src/lib/locales/en/parts.mjs +24 -0
  693. package/src/lib/locales/en/parts.mjs.map +1 -0
  694. package/src/lib/locales/en/questions.d.mts +286 -0
  695. package/src/lib/locales/en/questions.d.ts +286 -0
  696. package/src/lib/locales/en/questions.js +273 -0
  697. package/src/lib/locales/en/questions.js.map +1 -0
  698. package/src/lib/locales/en/questions.mjs +270 -0
  699. package/src/lib/locales/en/questions.mjs.map +1 -0
  700. package/src/lib/locales/en/refusals.d.mts +168 -0
  701. package/src/lib/locales/en/refusals.d.ts +168 -0
  702. package/src/lib/locales/en/refusals.js +182 -0
  703. package/src/lib/locales/en/refusals.js.map +1 -0
  704. package/src/lib/locales/en/refusals.mjs +179 -0
  705. package/src/lib/locales/en/refusals.mjs.map +1 -0
  706. package/src/lib/locales/en/rules-ui.d.mts +184 -0
  707. package/src/lib/locales/en/rules-ui.d.ts +184 -0
  708. package/src/lib/locales/en/rules-ui.js +176 -0
  709. package/src/lib/locales/en/rules-ui.js.map +1 -0
  710. package/src/lib/locales/en/rules-ui.mjs +173 -0
  711. package/src/lib/locales/en/rules-ui.mjs.map +1 -0
  712. package/src/lib/locales/en/rules.d.mts +160 -0
  713. package/src/lib/locales/en/rules.d.ts +160 -0
  714. package/src/lib/locales/en/rules.js +165 -0
  715. package/src/lib/locales/en/rules.js.map +1 -0
  716. package/src/lib/locales/en/rules.mjs +162 -0
  717. package/src/lib/locales/en/rules.mjs.map +1 -0
  718. package/src/lib/locales/en/saved-forms.d.mts +44 -0
  719. package/src/lib/locales/en/saved-forms.d.ts +44 -0
  720. package/src/lib/locales/en/saved-forms.js +53 -0
  721. package/src/lib/locales/en/saved-forms.js.map +1 -0
  722. package/src/lib/locales/en/saved-forms.mjs +50 -0
  723. package/src/lib/locales/en/saved-forms.mjs.map +1 -0
  724. package/src/lib/locales/en/settings-changes.d.mts +88 -0
  725. package/src/lib/locales/en/settings-changes.d.ts +88 -0
  726. package/src/lib/locales/en/settings-changes.js +85 -0
  727. package/src/lib/locales/en/settings-changes.js.map +1 -0
  728. package/src/lib/locales/en/settings-changes.mjs +82 -0
  729. package/src/lib/locales/en/settings-changes.mjs.map +1 -0
  730. package/src/lib/locales/en/shortcuts.d.mts +25 -0
  731. package/src/lib/locales/en/shortcuts.d.ts +25 -0
  732. package/src/lib/locales/en/shortcuts.js +38 -0
  733. package/src/lib/locales/en/shortcuts.js.map +1 -0
  734. package/src/lib/locales/en/shortcuts.mjs +35 -0
  735. package/src/lib/locales/en/shortcuts.mjs.map +1 -0
  736. package/src/lib/locales/en/steps.d.mts +222 -0
  737. package/src/lib/locales/en/steps.d.ts +222 -0
  738. package/src/lib/locales/en/steps.js +203 -0
  739. package/src/lib/locales/en/steps.js.map +1 -0
  740. package/src/lib/locales/en/steps.mjs +200 -0
  741. package/src/lib/locales/en/steps.mjs.map +1 -0
  742. package/src/lib/locales/en/tables.d.mts +73 -0
  743. package/src/lib/locales/en/tables.d.ts +73 -0
  744. package/src/lib/locales/en/tables.js +85 -0
  745. package/src/lib/locales/en/tables.js.map +1 -0
  746. package/src/lib/locales/en/tables.mjs +82 -0
  747. package/src/lib/locales/en/tables.mjs.map +1 -0
  748. package/src/lib/locales/en/templates.d.mts +114 -0
  749. package/src/lib/locales/en/templates.d.ts +114 -0
  750. package/src/lib/locales/en/templates.js +122 -0
  751. package/src/lib/locales/en/templates.js.map +1 -0
  752. package/src/lib/locales/en/templates.mjs +119 -0
  753. package/src/lib/locales/en/templates.mjs.map +1 -0
  754. package/src/lib/locales/en/toolbox.d.mts +37 -0
  755. package/src/lib/locales/en/toolbox.d.ts +37 -0
  756. package/src/lib/locales/en/toolbox.js +53 -0
  757. package/src/lib/locales/en/toolbox.js.map +1 -0
  758. package/src/lib/locales/en/toolbox.mjs +50 -0
  759. package/src/lib/locales/en/toolbox.mjs.map +1 -0
  760. package/src/lib/locales/en/translations.d.mts +58 -0
  761. package/src/lib/locales/en/translations.d.ts +58 -0
  762. package/src/lib/locales/en/translations.js +68 -0
  763. package/src/lib/locales/en/translations.js.map +1 -0
  764. package/src/lib/locales/en/translations.mjs +65 -0
  765. package/src/lib/locales/en/translations.mjs.map +1 -0
  766. package/src/lib/locales/en/try-it.d.mts +30 -0
  767. package/src/lib/locales/en/try-it.d.ts +30 -0
  768. package/src/lib/locales/en/try-it.js +32 -0
  769. package/src/lib/locales/en/try-it.js.map +1 -0
  770. package/src/lib/locales/en/try-it.mjs +29 -0
  771. package/src/lib/locales/en/try-it.mjs.map +1 -0
  772. package/src/lib/locales/speak.d.mts +23 -0
  773. package/src/lib/locales/speak.d.ts +23 -0
  774. package/src/lib/locales/speak.js +38 -0
  775. package/src/lib/locales/speak.js.map +1 -0
  776. package/src/lib/locales/speak.mjs +30 -0
  777. package/src/lib/locales/speak.mjs.map +1 -0
  778. package/src/lib/look-hub.d.mts +31 -0
  779. package/src/lib/look-hub.d.ts +31 -0
  780. package/src/lib/look-hub.js +78 -0
  781. package/src/lib/look-hub.js.map +1 -0
  782. package/src/lib/look-hub.mjs +73 -0
  783. package/src/lib/look-hub.mjs.map +1 -0
  784. package/src/lib/look-parts-words.d.mts +15 -0
  785. package/src/lib/look-parts-words.d.ts +15 -0
  786. package/src/lib/look-parts-words.js +19 -0
  787. package/src/lib/look-parts-words.js.map +1 -0
  788. package/src/lib/look-parts-words.mjs +15 -0
  789. package/src/lib/look-parts-words.mjs.map +1 -0
  790. package/src/lib/look-presets.d.mts +38 -0
  791. package/src/lib/look-presets.d.ts +38 -0
  792. package/src/lib/look-presets.js +61 -0
  793. package/src/lib/look-presets.js.map +1 -0
  794. package/src/lib/look-presets.mjs +53 -0
  795. package/src/lib/look-presets.mjs.map +1 -0
  796. package/src/lib/look-row.d.mts +22 -0
  797. package/src/lib/look-row.d.ts +22 -0
  798. package/src/lib/look-row.js +282 -0
  799. package/src/lib/look-row.js.map +1 -0
  800. package/src/lib/look-row.mjs +277 -0
  801. package/src/lib/look-row.mjs.map +1 -0
  802. package/src/lib/look-store.d.mts +16 -0
  803. package/src/lib/look-store.d.ts +16 -0
  804. package/src/lib/look-store.js +151 -0
  805. package/src/lib/look-store.js.map +1 -0
  806. package/src/lib/look-store.mjs +145 -0
  807. package/src/lib/look-store.mjs.map +1 -0
  808. package/src/lib/menu.d.mts +37 -0
  809. package/src/lib/menu.d.ts +37 -0
  810. package/src/lib/menu.js +96 -0
  811. package/src/lib/menu.js.map +1 -0
  812. package/src/lib/menu.mjs +93 -0
  813. package/src/lib/menu.mjs.map +1 -0
  814. package/src/lib/outline-drag.d.mts +30 -0
  815. package/src/lib/outline-drag.d.ts +30 -0
  816. package/src/lib/outline-drag.js +223 -0
  817. package/src/lib/outline-drag.js.map +1 -0
  818. package/src/lib/outline-drag.mjs +220 -0
  819. package/src/lib/outline-drag.mjs.map +1 -0
  820. package/src/lib/outline-drop.d.mts +27 -0
  821. package/src/lib/outline-drop.d.ts +27 -0
  822. package/src/lib/outline-drop.js +53 -0
  823. package/src/lib/outline-drop.js.map +1 -0
  824. package/src/lib/outline-drop.mjs +50 -0
  825. package/src/lib/outline-drop.mjs.map +1 -0
  826. package/src/lib/outline-key-moves.d.mts +26 -0
  827. package/src/lib/outline-key-moves.d.ts +26 -0
  828. package/src/lib/outline-key-moves.js +70 -0
  829. package/src/lib/outline-key-moves.js.map +1 -0
  830. package/src/lib/outline-key-moves.mjs +67 -0
  831. package/src/lib/outline-key-moves.mjs.map +1 -0
  832. package/src/lib/outline-keys.d.mts +49 -0
  833. package/src/lib/outline-keys.d.ts +49 -0
  834. package/src/lib/outline-keys.js +68 -0
  835. package/src/lib/outline-keys.js.map +1 -0
  836. package/src/lib/outline-keys.mjs +63 -0
  837. package/src/lib/outline-keys.mjs.map +1 -0
  838. package/src/lib/outline-moves.d.mts +27 -0
  839. package/src/lib/outline-moves.d.ts +27 -0
  840. package/src/lib/outline-moves.js +159 -0
  841. package/src/lib/outline-moves.js.map +1 -0
  842. package/src/lib/outline-moves.mjs +151 -0
  843. package/src/lib/outline-moves.mjs.map +1 -0
  844. package/src/lib/outline-picks.d.mts +9 -0
  845. package/src/lib/outline-picks.d.ts +9 -0
  846. package/src/lib/outline-picks.js +21 -0
  847. package/src/lib/outline-picks.js.map +1 -0
  848. package/src/lib/outline-picks.mjs +18 -0
  849. package/src/lib/outline-picks.mjs.map +1 -0
  850. package/src/lib/outline-rows.d.mts +41 -0
  851. package/src/lib/outline-rows.d.ts +41 -0
  852. package/src/lib/outline-rows.js +120 -0
  853. package/src/lib/outline-rows.js.map +1 -0
  854. package/src/lib/outline-rows.mjs +115 -0
  855. package/src/lib/outline-rows.mjs.map +1 -0
  856. package/src/lib/outline-view.d.mts +35 -0
  857. package/src/lib/outline-view.d.ts +35 -0
  858. package/src/lib/outline-view.js +317 -0
  859. package/src/lib/outline-view.js.map +1 -0
  860. package/src/lib/outline-view.mjs +314 -0
  861. package/src/lib/outline-view.mjs.map +1 -0
  862. package/src/lib/page-checks.d.mts +58 -0
  863. package/src/lib/page-checks.d.ts +58 -0
  864. package/src/lib/page-checks.js +422 -0
  865. package/src/lib/page-checks.js.map +1 -0
  866. package/src/lib/page-checks.mjs +417 -0
  867. package/src/lib/page-checks.mjs.map +1 -0
  868. package/src/lib/page-json.d.mts +42 -0
  869. package/src/lib/page-json.d.ts +42 -0
  870. package/src/lib/page-json.js +46 -0
  871. package/src/lib/page-json.js.map +1 -0
  872. package/src/lib/page-json.mjs +41 -0
  873. package/src/lib/page-json.mjs.map +1 -0
  874. package/src/lib/page-tree.d.mts +47 -0
  875. package/src/lib/page-tree.d.ts +47 -0
  876. package/src/lib/page-tree.js +189 -0
  877. package/src/lib/page-tree.js.map +1 -0
  878. package/src/lib/page-tree.mjs +173 -0
  879. package/src/lib/page-tree.mjs.map +1 -0
  880. package/src/lib/panel-block.d.mts +15 -0
  881. package/src/lib/panel-block.d.ts +15 -0
  882. package/src/lib/panel-block.js +133 -0
  883. package/src/lib/panel-block.js.map +1 -0
  884. package/src/lib/panel-block.mjs +130 -0
  885. package/src/lib/panel-block.mjs.map +1 -0
  886. package/src/lib/panel-controls.d.mts +39 -0
  887. package/src/lib/panel-controls.d.ts +39 -0
  888. package/src/lib/panel-controls.js +69 -0
  889. package/src/lib/panel-controls.js.map +1 -0
  890. package/src/lib/panel-controls.mjs +63 -0
  891. package/src/lib/panel-controls.mjs.map +1 -0
  892. package/src/lib/panel-field.d.mts +5 -0
  893. package/src/lib/panel-field.d.ts +5 -0
  894. package/src/lib/panel-field.js +190 -0
  895. package/src/lib/panel-field.js.map +1 -0
  896. package/src/lib/panel-field.mjs +187 -0
  897. package/src/lib/panel-field.mjs.map +1 -0
  898. package/src/lib/panel-fold.d.mts +12 -0
  899. package/src/lib/panel-fold.d.ts +12 -0
  900. package/src/lib/panel-fold.js +34 -0
  901. package/src/lib/panel-fold.js.map +1 -0
  902. package/src/lib/panel-fold.mjs +31 -0
  903. package/src/lib/panel-fold.mjs.map +1 -0
  904. package/src/lib/panel-form.d.mts +4 -0
  905. package/src/lib/panel-form.d.ts +4 -0
  906. package/src/lib/panel-form.js +107 -0
  907. package/src/lib/panel-form.js.map +1 -0
  908. package/src/lib/panel-form.mjs +104 -0
  909. package/src/lib/panel-form.mjs.map +1 -0
  910. package/src/lib/panel-group.d.mts +12 -0
  911. package/src/lib/panel-group.d.ts +12 -0
  912. package/src/lib/panel-group.js +81 -0
  913. package/src/lib/panel-group.js.map +1 -0
  914. package/src/lib/panel-group.mjs +77 -0
  915. package/src/lib/panel-group.mjs.map +1 -0
  916. package/src/lib/panel-inspector.d.mts +54 -0
  917. package/src/lib/panel-inspector.d.ts +54 -0
  918. package/src/lib/panel-inspector.js +131 -0
  919. package/src/lib/panel-inspector.js.map +1 -0
  920. package/src/lib/panel-inspector.mjs +127 -0
  921. package/src/lib/panel-inspector.mjs.map +1 -0
  922. package/src/lib/panel-layout.d.mts +26 -0
  923. package/src/lib/panel-layout.d.ts +26 -0
  924. package/src/lib/panel-layout.js +250 -0
  925. package/src/lib/panel-layout.js.map +1 -0
  926. package/src/lib/panel-layout.mjs +242 -0
  927. package/src/lib/panel-layout.mjs.map +1 -0
  928. package/src/lib/panel-look-parts.d.mts +16 -0
  929. package/src/lib/panel-look-parts.d.ts +16 -0
  930. package/src/lib/panel-look-parts.js +86 -0
  931. package/src/lib/panel-look-parts.js.map +1 -0
  932. package/src/lib/panel-look-parts.mjs +83 -0
  933. package/src/lib/panel-look-parts.mjs.map +1 -0
  934. package/src/lib/panel-look-sheet.d.mts +20 -0
  935. package/src/lib/panel-look-sheet.d.ts +20 -0
  936. package/src/lib/panel-look-sheet.js +60 -0
  937. package/src/lib/panel-look-sheet.js.map +1 -0
  938. package/src/lib/panel-look-sheet.mjs +57 -0
  939. package/src/lib/panel-look-sheet.mjs.map +1 -0
  940. package/src/lib/panel-look.d.mts +26 -0
  941. package/src/lib/panel-look.d.ts +26 -0
  942. package/src/lib/panel-look.js +179 -0
  943. package/src/lib/panel-look.js.map +1 -0
  944. package/src/lib/panel-look.mjs +173 -0
  945. package/src/lib/panel-look.mjs.map +1 -0
  946. package/src/lib/panel-page.d.mts +11 -0
  947. package/src/lib/panel-page.d.ts +11 -0
  948. package/src/lib/panel-page.js +86 -0
  949. package/src/lib/panel-page.js.map +1 -0
  950. package/src/lib/panel-page.mjs +83 -0
  951. package/src/lib/panel-page.mjs.map +1 -0
  952. package/src/lib/panel-parts.d.mts +14 -0
  953. package/src/lib/panel-parts.d.ts +14 -0
  954. package/src/lib/panel-parts.js +113 -0
  955. package/src/lib/panel-parts.js.map +1 -0
  956. package/src/lib/panel-parts.mjs +109 -0
  957. package/src/lib/panel-parts.mjs.map +1 -0
  958. package/src/lib/panel-screen.d.mts +34 -0
  959. package/src/lib/panel-screen.d.ts +34 -0
  960. package/src/lib/panel-screen.js +195 -0
  961. package/src/lib/panel-screen.js.map +1 -0
  962. package/src/lib/panel-screen.mjs +191 -0
  963. package/src/lib/panel-screen.mjs.map +1 -0
  964. package/src/lib/panel-search.d.mts +24 -0
  965. package/src/lib/panel-search.d.ts +24 -0
  966. package/src/lib/panel-search.js +128 -0
  967. package/src/lib/panel-search.js.map +1 -0
  968. package/src/lib/panel-search.mjs +124 -0
  969. package/src/lib/panel-search.mjs.map +1 -0
  970. package/src/lib/panel-several-required.d.mts +7 -0
  971. package/src/lib/panel-several-required.d.ts +7 -0
  972. package/src/lib/panel-several-required.js +33 -0
  973. package/src/lib/panel-several-required.js.map +1 -0
  974. package/src/lib/panel-several-required.mjs +30 -0
  975. package/src/lib/panel-several-required.mjs.map +1 -0
  976. package/src/lib/panel-tabs.d.mts +41 -0
  977. package/src/lib/panel-tabs.d.ts +41 -0
  978. package/src/lib/panel-tabs.js +128 -0
  979. package/src/lib/panel-tabs.js.map +1 -0
  980. package/src/lib/panel-tabs.mjs +122 -0
  981. package/src/lib/panel-tabs.mjs.map +1 -0
  982. package/src/lib/picture-upload.d.mts +9 -0
  983. package/src/lib/picture-upload.d.ts +9 -0
  984. package/src/lib/picture-upload.js +38 -0
  985. package/src/lib/picture-upload.js.map +1 -0
  986. package/src/lib/picture-upload.mjs +34 -0
  987. package/src/lib/picture-upload.mjs.map +1 -0
  988. package/src/lib/placeholder-when.d.mts +13 -0
  989. package/src/lib/placeholder-when.d.ts +13 -0
  990. package/src/lib/placeholder-when.js +83 -0
  991. package/src/lib/placeholder-when.js.map +1 -0
  992. package/src/lib/placeholder-when.mjs +80 -0
  993. package/src/lib/placeholder-when.mjs.map +1 -0
  994. package/src/lib/publish-ui.d.mts +22 -0
  995. package/src/lib/publish-ui.d.ts +22 -0
  996. package/src/lib/publish-ui.js +199 -0
  997. package/src/lib/publish-ui.js.map +1 -0
  998. package/src/lib/publish-ui.mjs +193 -0
  999. package/src/lib/publish-ui.mjs.map +1 -0
  1000. package/src/lib/rail.d.mts +31 -0
  1001. package/src/lib/rail.d.ts +31 -0
  1002. package/src/lib/rail.js +91 -0
  1003. package/src/lib/rail.js.map +1 -0
  1004. package/src/lib/rail.mjs +88 -0
  1005. package/src/lib/rail.mjs.map +1 -0
  1006. package/src/lib/refusal.d.mts +13 -0
  1007. package/src/lib/refusal.d.ts +13 -0
  1008. package/src/lib/refusal.js +21 -0
  1009. package/src/lib/refusal.js.map +1 -0
  1010. package/src/lib/refusal.mjs +17 -0
  1011. package/src/lib/refusal.mjs.map +1 -0
  1012. package/src/lib/roles-setting.d.mts +18 -0
  1013. package/src/lib/roles-setting.d.ts +18 -0
  1014. package/src/lib/roles-setting.js +48 -0
  1015. package/src/lib/roles-setting.js.map +1 -0
  1016. package/src/lib/roles-setting.mjs +43 -0
  1017. package/src/lib/roles-setting.mjs.map +1 -0
  1018. package/src/lib/rules-answers.d.mts +25 -0
  1019. package/src/lib/rules-answers.d.ts +25 -0
  1020. package/src/lib/rules-answers.js +354 -0
  1021. package/src/lib/rules-answers.js.map +1 -0
  1022. package/src/lib/rules-answers.mjs +351 -0
  1023. package/src/lib/rules-answers.mjs.map +1 -0
  1024. package/src/lib/rules-card.d.mts +22 -0
  1025. package/src/lib/rules-card.d.ts +22 -0
  1026. package/src/lib/rules-card.js +51 -0
  1027. package/src/lib/rules-card.js.map +1 -0
  1028. package/src/lib/rules-card.mjs +48 -0
  1029. package/src/lib/rules-card.mjs.map +1 -0
  1030. package/src/lib/rules-changes.d.mts +3 -0
  1031. package/src/lib/rules-changes.d.ts +3 -0
  1032. package/src/lib/rules-changes.js +64 -0
  1033. package/src/lib/rules-changes.js.map +1 -0
  1034. package/src/lib/rules-changes.mjs +61 -0
  1035. package/src/lib/rules-changes.mjs.map +1 -0
  1036. package/src/lib/rules-checks.d.mts +42 -0
  1037. package/src/lib/rules-checks.d.ts +42 -0
  1038. package/src/lib/rules-checks.js +177 -0
  1039. package/src/lib/rules-checks.js.map +1 -0
  1040. package/src/lib/rules-checks.mjs +173 -0
  1041. package/src/lib/rules-checks.mjs.map +1 -0
  1042. package/src/lib/rules-commands.d.mts +42 -0
  1043. package/src/lib/rules-commands.d.ts +42 -0
  1044. package/src/lib/rules-commands.js +262 -0
  1045. package/src/lib/rules-commands.js.map +1 -0
  1046. package/src/lib/rules-commands.mjs +257 -0
  1047. package/src/lib/rules-commands.mjs.map +1 -0
  1048. package/src/lib/rules-defaults.d.mts +8 -0
  1049. package/src/lib/rules-defaults.d.ts +8 -0
  1050. package/src/lib/rules-defaults.js +77 -0
  1051. package/src/lib/rules-defaults.js.map +1 -0
  1052. package/src/lib/rules-defaults.mjs +74 -0
  1053. package/src/lib/rules-defaults.mjs.map +1 -0
  1054. package/src/lib/rules-formula-box.d.mts +46 -0
  1055. package/src/lib/rules-formula-box.d.ts +46 -0
  1056. package/src/lib/rules-formula-box.js +191 -0
  1057. package/src/lib/rules-formula-box.js.map +1 -0
  1058. package/src/lib/rules-formula-box.mjs +188 -0
  1059. package/src/lib/rules-formula-box.mjs.map +1 -0
  1060. package/src/lib/rules-formula.d.mts +75 -0
  1061. package/src/lib/rules-formula.d.ts +75 -0
  1062. package/src/lib/rules-formula.js +369 -0
  1063. package/src/lib/rules-formula.js.map +1 -0
  1064. package/src/lib/rules-formula.mjs +356 -0
  1065. package/src/lib/rules-formula.mjs.map +1 -0
  1066. package/src/lib/rules-marks.d.mts +4 -0
  1067. package/src/lib/rules-marks.d.ts +4 -0
  1068. package/src/lib/rules-marks.js +111 -0
  1069. package/src/lib/rules-marks.js.map +1 -0
  1070. package/src/lib/rules-marks.mjs +108 -0
  1071. package/src/lib/rules-marks.mjs.map +1 -0
  1072. package/src/lib/rules-open.d.mts +16 -0
  1073. package/src/lib/rules-open.d.ts +16 -0
  1074. package/src/lib/rules-open.js +51 -0
  1075. package/src/lib/rules-open.js.map +1 -0
  1076. package/src/lib/rules-open.mjs +48 -0
  1077. package/src/lib/rules-open.mjs.map +1 -0
  1078. package/src/lib/rules-overview.d.mts +32 -0
  1079. package/src/lib/rules-overview.d.ts +32 -0
  1080. package/src/lib/rules-overview.js +193 -0
  1081. package/src/lib/rules-overview.js.map +1 -0
  1082. package/src/lib/rules-overview.mjs +190 -0
  1083. package/src/lib/rules-overview.mjs.map +1 -0
  1084. package/src/lib/rules-panel.d.mts +18 -0
  1085. package/src/lib/rules-panel.d.ts +18 -0
  1086. package/src/lib/rules-panel.js +24 -0
  1087. package/src/lib/rules-panel.js.map +1 -0
  1088. package/src/lib/rules-panel.mjs +21 -0
  1089. package/src/lib/rules-panel.mjs.map +1 -0
  1090. package/src/lib/rules-reads.d.mts +9 -0
  1091. package/src/lib/rules-reads.d.ts +9 -0
  1092. package/src/lib/rules-reads.js +79 -0
  1093. package/src/lib/rules-reads.js.map +1 -0
  1094. package/src/lib/rules-reads.mjs +75 -0
  1095. package/src/lib/rules-reads.mjs.map +1 -0
  1096. package/src/lib/rules-sample.d.mts +43 -0
  1097. package/src/lib/rules-sample.d.ts +43 -0
  1098. package/src/lib/rules-sample.js +321 -0
  1099. package/src/lib/rules-sample.js.map +1 -0
  1100. package/src/lib/rules-sample.mjs +317 -0
  1101. package/src/lib/rules-sample.mjs.map +1 -0
  1102. package/src/lib/rules-words.d.mts +67 -0
  1103. package/src/lib/rules-words.d.ts +67 -0
  1104. package/src/lib/rules-words.js +247 -0
  1105. package/src/lib/rules-words.js.map +1 -0
  1106. package/src/lib/rules-words.mjs +234 -0
  1107. package/src/lib/rules-words.mjs.map +1 -0
  1108. package/src/lib/rules-worked-out.d.mts +9 -0
  1109. package/src/lib/rules-worked-out.d.ts +9 -0
  1110. package/src/lib/rules-worked-out.js +282 -0
  1111. package/src/lib/rules-worked-out.js.map +1 -0
  1112. package/src/lib/rules-worked-out.mjs +278 -0
  1113. package/src/lib/rules-worked-out.mjs.map +1 -0
  1114. package/src/lib/samples.d.mts +5 -0
  1115. package/src/lib/samples.d.ts +5 -0
  1116. package/src/lib/samples.js +69 -0
  1117. package/src/lib/samples.js.map +1 -0
  1118. package/src/lib/samples.mjs +65 -0
  1119. package/src/lib/samples.mjs.map +1 -0
  1120. package/src/lib/saved-forms.d.mts +93 -0
  1121. package/src/lib/saved-forms.d.ts +93 -0
  1122. package/src/lib/saved-forms.js +211 -0
  1123. package/src/lib/saved-forms.js.map +1 -0
  1124. package/src/lib/saved-forms.mjs +200 -0
  1125. package/src/lib/saved-forms.mjs.map +1 -0
  1126. package/src/lib/screen-canvas.d.mts +57 -0
  1127. package/src/lib/screen-canvas.d.ts +57 -0
  1128. package/src/lib/screen-canvas.js +691 -0
  1129. package/src/lib/screen-canvas.js.map +1 -0
  1130. package/src/lib/screen-canvas.mjs +688 -0
  1131. package/src/lib/screen-canvas.mjs.map +1 -0
  1132. package/src/lib/screen-editor.d.mts +32 -0
  1133. package/src/lib/screen-editor.d.ts +32 -0
  1134. package/src/lib/screen-editor.js +377 -0
  1135. package/src/lib/screen-editor.js.map +1 -0
  1136. package/src/lib/screen-editor.mjs +374 -0
  1137. package/src/lib/screen-editor.mjs.map +1 -0
  1138. package/src/lib/screen-properties.d.mts +28 -0
  1139. package/src/lib/screen-properties.d.ts +28 -0
  1140. package/src/lib/screen-properties.js +69 -0
  1141. package/src/lib/screen-properties.js.map +1 -0
  1142. package/src/lib/screen-properties.mjs +63 -0
  1143. package/src/lib/screen-properties.mjs.map +1 -0
  1144. package/src/lib/shortcuts-list.d.mts +24 -0
  1145. package/src/lib/shortcuts-list.d.ts +24 -0
  1146. package/src/lib/shortcuts-list.js +25 -0
  1147. package/src/lib/shortcuts-list.js.map +1 -0
  1148. package/src/lib/shortcuts-list.mjs +21 -0
  1149. package/src/lib/shortcuts-list.mjs.map +1 -0
  1150. package/src/lib/shortcuts-sheet.d.mts +27 -0
  1151. package/src/lib/shortcuts-sheet.d.ts +27 -0
  1152. package/src/lib/shortcuts-sheet.js +95 -0
  1153. package/src/lib/shortcuts-sheet.js.map +1 -0
  1154. package/src/lib/shortcuts-sheet.mjs +92 -0
  1155. package/src/lib/shortcuts-sheet.mjs.map +1 -0
  1156. package/src/lib/shown-while.d.mts +16 -0
  1157. package/src/lib/shown-while.d.ts +16 -0
  1158. package/src/lib/shown-while.js +28 -0
  1159. package/src/lib/shown-while.js.map +1 -0
  1160. package/src/lib/shown-while.mjs +25 -0
  1161. package/src/lib/shown-while.mjs.map +1 -0
  1162. package/src/lib/steps-checks.d.mts +33 -0
  1163. package/src/lib/steps-checks.d.ts +33 -0
  1164. package/src/lib/steps-checks.js +112 -0
  1165. package/src/lib/steps-checks.js.map +1 -0
  1166. package/src/lib/steps-checks.mjs +107 -0
  1167. package/src/lib/steps-checks.mjs.map +1 -0
  1168. package/src/lib/steps-commands.d.mts +54 -0
  1169. package/src/lib/steps-commands.d.ts +54 -0
  1170. package/src/lib/steps-commands.js +191 -0
  1171. package/src/lib/steps-commands.js.map +1 -0
  1172. package/src/lib/steps-commands.mjs +186 -0
  1173. package/src/lib/steps-commands.mjs.map +1 -0
  1174. package/src/lib/steps-editor.d.mts +25 -0
  1175. package/src/lib/steps-editor.d.ts +25 -0
  1176. package/src/lib/steps-editor.js +390 -0
  1177. package/src/lib/steps-editor.js.map +1 -0
  1178. package/src/lib/steps-editor.mjs +387 -0
  1179. package/src/lib/steps-editor.mjs.map +1 -0
  1180. package/src/lib/steps-map.d.mts +38 -0
  1181. package/src/lib/steps-map.d.ts +38 -0
  1182. package/src/lib/steps-map.js +124 -0
  1183. package/src/lib/steps-map.js.map +1 -0
  1184. package/src/lib/steps-map.mjs +121 -0
  1185. package/src/lib/steps-map.mjs.map +1 -0
  1186. package/src/lib/steps-marks.d.mts +20 -0
  1187. package/src/lib/steps-marks.d.ts +20 -0
  1188. package/src/lib/steps-marks.js +84 -0
  1189. package/src/lib/steps-marks.js.map +1 -0
  1190. package/src/lib/steps-marks.mjs +77 -0
  1191. package/src/lib/steps-marks.mjs.map +1 -0
  1192. package/src/lib/steps-panel.d.mts +24 -0
  1193. package/src/lib/steps-panel.d.ts +24 -0
  1194. package/src/lib/steps-panel.js +89 -0
  1195. package/src/lib/steps-panel.js.map +1 -0
  1196. package/src/lib/steps-panel.mjs +84 -0
  1197. package/src/lib/steps-panel.mjs.map +1 -0
  1198. package/src/lib/steps-places.d.mts +69 -0
  1199. package/src/lib/steps-places.d.ts +69 -0
  1200. package/src/lib/steps-places.js +291 -0
  1201. package/src/lib/steps-places.js.map +1 -0
  1202. package/src/lib/steps-places.mjs +272 -0
  1203. package/src/lib/steps-places.mjs.map +1 -0
  1204. package/src/lib/steps-settings.d.mts +31 -0
  1205. package/src/lib/steps-settings.d.ts +31 -0
  1206. package/src/lib/steps-settings.js +425 -0
  1207. package/src/lib/steps-settings.js.map +1 -0
  1208. package/src/lib/steps-settings.mjs +421 -0
  1209. package/src/lib/steps-settings.mjs.map +1 -0
  1210. package/src/lib/steps-words.d.mts +41 -0
  1211. package/src/lib/steps-words.d.ts +41 -0
  1212. package/src/lib/steps-words.js +160 -0
  1213. package/src/lib/steps-words.js.map +1 -0
  1214. package/src/lib/steps-words.mjs +152 -0
  1215. package/src/lib/steps-words.mjs.map +1 -0
  1216. package/src/lib/structure-changes.d.mts +14 -0
  1217. package/src/lib/structure-changes.d.ts +14 -0
  1218. package/src/lib/structure-changes.js +31 -0
  1219. package/src/lib/structure-changes.js.map +1 -0
  1220. package/src/lib/structure-changes.mjs +28 -0
  1221. package/src/lib/structure-changes.mjs.map +1 -0
  1222. package/src/lib/structure-commands.d.mts +31 -0
  1223. package/src/lib/structure-commands.d.ts +31 -0
  1224. package/src/lib/structure-commands.js +59 -0
  1225. package/src/lib/structure-commands.js.map +1 -0
  1226. package/src/lib/structure-commands.mjs +56 -0
  1227. package/src/lib/structure-commands.mjs.map +1 -0
  1228. package/src/lib/styles-canvas.d.mts +11 -0
  1229. package/src/lib/styles-canvas.d.ts +11 -0
  1230. package/src/lib/styles-canvas.js +199 -0
  1231. package/src/lib/styles-canvas.js.map +1 -0
  1232. package/src/lib/styles-canvas.mjs +196 -0
  1233. package/src/lib/styles-canvas.mjs.map +1 -0
  1234. package/src/lib/styles-choices.d.mts +6 -0
  1235. package/src/lib/styles-choices.d.ts +6 -0
  1236. package/src/lib/styles-choices.js +25 -0
  1237. package/src/lib/styles-choices.js.map +1 -0
  1238. package/src/lib/styles-choices.mjs +22 -0
  1239. package/src/lib/styles-choices.mjs.map +1 -0
  1240. package/src/lib/styles-extend.d.mts +6 -0
  1241. package/src/lib/styles-extend.d.ts +6 -0
  1242. package/src/lib/styles-extend.js +71 -0
  1243. package/src/lib/styles-extend.js.map +1 -0
  1244. package/src/lib/styles-extend.mjs +68 -0
  1245. package/src/lib/styles-extend.mjs.map +1 -0
  1246. package/src/lib/styles-gap.d.mts +6 -0
  1247. package/src/lib/styles-gap.d.ts +6 -0
  1248. package/src/lib/styles-gap.js +68 -0
  1249. package/src/lib/styles-gap.js.map +1 -0
  1250. package/src/lib/styles-gap.mjs +65 -0
  1251. package/src/lib/styles-gap.mjs.map +1 -0
  1252. package/src/lib/styles-json.d.mts +5 -0
  1253. package/src/lib/styles-json.d.ts +5 -0
  1254. package/src/lib/styles-json.js +109 -0
  1255. package/src/lib/styles-json.js.map +1 -0
  1256. package/src/lib/styles-json.mjs +106 -0
  1257. package/src/lib/styles-json.mjs.map +1 -0
  1258. package/src/lib/styles-kinds.d.mts +7 -0
  1259. package/src/lib/styles-kinds.d.ts +7 -0
  1260. package/src/lib/styles-kinds.js +56 -0
  1261. package/src/lib/styles-kinds.js.map +1 -0
  1262. package/src/lib/styles-kinds.mjs +53 -0
  1263. package/src/lib/styles-kinds.mjs.map +1 -0
  1264. package/src/lib/styles-outline.d.mts +7 -0
  1265. package/src/lib/styles-outline.d.ts +7 -0
  1266. package/src/lib/styles-outline.js +95 -0
  1267. package/src/lib/styles-outline.js.map +1 -0
  1268. package/src/lib/styles-outline.mjs +92 -0
  1269. package/src/lib/styles-outline.mjs.map +1 -0
  1270. package/src/lib/styles-panel.d.mts +7 -0
  1271. package/src/lib/styles-panel.d.ts +7 -0
  1272. package/src/lib/styles-panel.js +150 -0
  1273. package/src/lib/styles-panel.js.map +1 -0
  1274. package/src/lib/styles-panel.mjs +147 -0
  1275. package/src/lib/styles-panel.mjs.map +1 -0
  1276. package/src/lib/styles-rules.d.mts +7 -0
  1277. package/src/lib/styles-rules.d.ts +7 -0
  1278. package/src/lib/styles-rules.js +213 -0
  1279. package/src/lib/styles-rules.js.map +1 -0
  1280. package/src/lib/styles-rules.mjs +210 -0
  1281. package/src/lib/styles-rules.mjs.map +1 -0
  1282. package/src/lib/styles-steps.d.mts +9 -0
  1283. package/src/lib/styles-steps.d.ts +9 -0
  1284. package/src/lib/styles-steps.js +84 -0
  1285. package/src/lib/styles-steps.js.map +1 -0
  1286. package/src/lib/styles-steps.mjs +81 -0
  1287. package/src/lib/styles-steps.mjs.map +1 -0
  1288. package/src/lib/styles-translations.d.mts +7 -0
  1289. package/src/lib/styles-translations.d.ts +7 -0
  1290. package/src/lib/styles-translations.js +104 -0
  1291. package/src/lib/styles-translations.js.map +1 -0
  1292. package/src/lib/styles-translations.mjs +101 -0
  1293. package/src/lib/styles-translations.mjs.map +1 -0
  1294. package/src/lib/styles.d.mts +3 -0
  1295. package/src/lib/styles.d.ts +3 -0
  1296. package/src/lib/styles.js +683 -0
  1297. package/src/lib/styles.js.map +1 -0
  1298. package/src/lib/styles.mjs +679 -0
  1299. package/src/lib/styles.mjs.map +1 -0
  1300. package/src/lib/survey-editor.d.mts +42 -0
  1301. package/src/lib/survey-editor.d.ts +42 -0
  1302. package/src/lib/survey-editor.js +651 -0
  1303. package/src/lib/survey-editor.js.map +1 -0
  1304. package/src/lib/survey-editor.mjs +647 -0
  1305. package/src/lib/survey-editor.mjs.map +1 -0
  1306. package/src/lib/table-commands.d.mts +76 -0
  1307. package/src/lib/table-commands.d.ts +76 -0
  1308. package/src/lib/table-commands.js +248 -0
  1309. package/src/lib/table-commands.js.map +1 -0
  1310. package/src/lib/table-commands.mjs +244 -0
  1311. package/src/lib/table-commands.mjs.map +1 -0
  1312. package/src/lib/table-panel.d.mts +8 -0
  1313. package/src/lib/table-panel.d.ts +8 -0
  1314. package/src/lib/table-panel.js +276 -0
  1315. package/src/lib/table-panel.js.map +1 -0
  1316. package/src/lib/table-panel.mjs +273 -0
  1317. package/src/lib/table-panel.mjs.map +1 -0
  1318. package/src/lib/templates-notice.d.mts +16 -0
  1319. package/src/lib/templates-notice.d.ts +16 -0
  1320. package/src/lib/templates-notice.js +45 -0
  1321. package/src/lib/templates-notice.js.map +1 -0
  1322. package/src/lib/templates-notice.mjs +42 -0
  1323. package/src/lib/templates-notice.mjs.map +1 -0
  1324. package/src/lib/templates-start.d.mts +41 -0
  1325. package/src/lib/templates-start.d.ts +41 -0
  1326. package/src/lib/templates-start.js +117 -0
  1327. package/src/lib/templates-start.js.map +1 -0
  1328. package/src/lib/templates-start.mjs +114 -0
  1329. package/src/lib/templates-start.mjs.map +1 -0
  1330. package/src/lib/templates.d.mts +35 -0
  1331. package/src/lib/templates.d.ts +35 -0
  1332. package/src/lib/templates.js +195 -0
  1333. package/src/lib/templates.js.map +1 -0
  1334. package/src/lib/templates.mjs +186 -0
  1335. package/src/lib/templates.mjs.map +1 -0
  1336. package/src/lib/toolbox.d.mts +49 -0
  1337. package/src/lib/toolbox.d.ts +49 -0
  1338. package/src/lib/toolbox.js +161 -0
  1339. package/src/lib/toolbox.js.map +1 -0
  1340. package/src/lib/toolbox.mjs +155 -0
  1341. package/src/lib/toolbox.mjs.map +1 -0
  1342. package/src/lib/translations-csv.d.mts +20 -0
  1343. package/src/lib/translations-csv.d.ts +20 -0
  1344. package/src/lib/translations-csv.js +138 -0
  1345. package/src/lib/translations-csv.js.map +1 -0
  1346. package/src/lib/translations-csv.mjs +132 -0
  1347. package/src/lib/translations-csv.mjs.map +1 -0
  1348. package/src/lib/translations-grid.d.mts +30 -0
  1349. package/src/lib/translations-grid.d.ts +30 -0
  1350. package/src/lib/translations-grid.js +198 -0
  1351. package/src/lib/translations-grid.js.map +1 -0
  1352. package/src/lib/translations-grid.mjs +195 -0
  1353. package/src/lib/translations-grid.mjs.map +1 -0
  1354. package/src/lib/translations-view.d.mts +29 -0
  1355. package/src/lib/translations-view.d.ts +29 -0
  1356. package/src/lib/translations-view.js +248 -0
  1357. package/src/lib/translations-view.js.map +1 -0
  1358. package/src/lib/translations-view.mjs +245 -0
  1359. package/src/lib/translations-view.mjs.map +1 -0
  1360. package/src/lib/translations.d.mts +57 -0
  1361. package/src/lib/translations.d.ts +57 -0
  1362. package/src/lib/translations.js +211 -0
  1363. package/src/lib/translations.js.map +1 -0
  1364. package/src/lib/translations.mjs +198 -0
  1365. package/src/lib/translations.mjs.map +1 -0
  1366. package/src/lib/try-drawer.d.mts +4 -0
  1367. package/src/lib/try-drawer.d.ts +4 -0
  1368. package/src/lib/try-drawer.js +139 -0
  1369. package/src/lib/try-drawer.js.map +1 -0
  1370. package/src/lib/try-drawer.mjs +136 -0
  1371. package/src/lib/try-drawer.mjs.map +1 -0
  1372. package/src/lib/try-it.d.mts +37 -0
  1373. package/src/lib/try-it.d.ts +37 -0
  1374. package/src/lib/try-it.js +153 -0
  1375. package/src/lib/try-it.js.map +1 -0
  1376. package/src/lib/try-it.mjs +150 -0
  1377. package/src/lib/try-it.mjs.map +1 -0
  1378. package/src/lib/try-language.d.mts +25 -0
  1379. package/src/lib/try-language.d.ts +25 -0
  1380. package/src/lib/try-language.js +57 -0
  1381. package/src/lib/try-language.js.map +1 -0
  1382. package/src/lib/try-language.mjs +54 -0
  1383. package/src/lib/try-language.mjs.map +1 -0
  1384. package/src/lib/validate-edit.d.mts +19 -0
  1385. package/src/lib/validate-edit.d.ts +19 -0
  1386. package/src/lib/validate-edit.js +51 -0
  1387. package/src/lib/validate-edit.js.map +1 -0
  1388. package/src/lib/validate-edit.mjs +48 -0
  1389. package/src/lib/validate-edit.mjs.map +1 -0
  1390. package/src/lib/writes.d.mts +14 -0
  1391. package/src/lib/writes.d.ts +14 -0
  1392. package/src/lib/writes.js +41 -0
  1393. package/src/lib/writes.js.map +1 -0
  1394. package/src/lib/writes.mjs +35 -0
  1395. package/src/lib/writes.mjs.map +1 -0
  1396. package/src/react.d.mts +21 -0
  1397. package/src/react.d.ts +21 -0
  1398. package/src/react.js +35 -0
  1399. package/src/react.js.map +1 -0
  1400. package/src/react.mjs +32 -0
  1401. package/src/react.mjs.map +1 -0
  1402. package/src/vue.d.mts +65 -0
  1403. package/src/vue.d.ts +65 -0
  1404. package/src/vue.js +57 -0
  1405. package/src/vue.js.map +1 -0
  1406. package/src/vue.mjs +54 -0
  1407. package/src/vue.mjs.map +1 -0
@@ -0,0 +1,101 @@
1
+ /**
2
+ * The Translations view: the bar over it, asking before a language goes, the
3
+ * CSV panel, and the grid — a box of its own that scrolls both ways, its
4
+ * heads and its first column held in place, each cell typed in where it
5
+ * stands. Appended to the designer's stylesheet.
6
+ */
7
+ export const DESIGNER_TRANSLATIONS_CSS = /* css */ `
8
+ /* ---- Translations: the page's words in other languages ---------------------- */
9
+ .fd-words { display: grid; gap: 12px; min-width: 0; }
10
+ .fd-words-bar {
11
+ display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center;
12
+ background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 10px 14px;
13
+ }
14
+ .fd-words-heading { flex: 1 1 220px; min-width: 0; display: grid; gap: 2px; }
15
+ .fd-words-title { margin: 0; font-size: 16px; font-weight: 650; }
16
+ .fd-words-note { margin: 0; font-size: 13px; color: var(--fd-muted); }
17
+ /* The page's own language, picked in the words that name it. */
18
+ .fd-words-own-language {
19
+ font: inherit; color: var(--fd-text); background: transparent; cursor: pointer; field-sizing: content;
20
+ border: 0; border-block-end: 1px dashed var(--fd-border-strong); border-radius: 0; padding: 0 2px; margin: 0;
21
+ }
22
+ .fd-words-own-language:hover { border-block-end-color: var(--fd-accent); }
23
+ .fd-words-own-language:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }
24
+ .fd-words-filter { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; }
25
+ .fd-words-add { display: flex; gap: 6px; align-items: center; flex: 0 1 300px; min-width: 0; margin: 0; }
26
+ .fd-words-add .fd-input { flex: 1 1 150px; min-width: 0; }
27
+ .fd-words-actions { display: flex; flex-wrap: wrap; gap: 6px; }
28
+ .fd-words-confirm, .fd-words-paste {
29
+ display: grid; gap: 10px; justify-items: start;
30
+ background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 12px 14px;
31
+ }
32
+ .fd-words-confirm { border-inline-start: 3px solid var(--fd-error); }
33
+ .fd-words-ask { margin: 0; font-weight: 600; }
34
+ .fd-words-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
35
+ .fd-words-csv-label { font-size: 13.5px; }
36
+ .fd-words-paste .fd-words-csv { width: 100%; box-sizing: border-box; min-height: 130px; resize: vertical; font-size: 13px; line-height: 1.5; }
37
+ .fd-words-problem { margin: 0; color: var(--fd-error); font-size: 13px; }
38
+ .fd-words-status { margin: 0; font-size: 13px; color: var(--fd-muted); }
39
+ .fd-words-status:empty { display: none; }
40
+
41
+ /* The grid: its own box, scrolling both ways, never the page. Lines of words a whole number of pixels high, so the held column's rows meet the rest exactly and no line between rows is painted over. */
42
+ .fd-words-scroll {
43
+ container: fd-words / inline-size; overflow: auto; max-height: max(320px, calc(100vh - 260px)); overscroll-behavior: contain;
44
+ background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius);
45
+ }
46
+ .fd-words-table { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 14px; }
47
+ .fd-words-table th, .fd-words-table td { padding: 0; text-align: start; vertical-align: top; border-block-end: 1px solid var(--fd-border); }
48
+ .fd-words-table tr > * + * { border-inline-start: 1px solid var(--fd-border); }
49
+ .fd-words-table tbody tr:last-child > * { border-block-end: 0; }
50
+ .fd-words-table thead th { position: sticky; top: 0; z-index: 2; min-width: 200px; padding: 8px 10px; background: var(--fd-page); font-size: 13px; font-weight: 600; }
51
+ /* The page's own words stay in sight as the languages scroll by. */
52
+ .fd-words-table tbody th, .fd-words-table thead th:first-child { position: sticky; inset-inline-start: 0; box-shadow: 1px 0 0 var(--fd-border); }
53
+ .fd-words-table thead th:first-child { z-index: 3; width: 34%; }
54
+ .fd-words-table tbody th { z-index: 1; min-width: 180px; max-width: 320px; padding: 8px 10px; background: var(--fd-surface); font-weight: 400; line-height: 20px; overflow-wrap: anywhere; }
55
+ .fd-words-head { display: flex; align-items: center; gap: 6px; min-height: 24px; }
56
+ .fd-words-lang { font-weight: 650; }
57
+ .fd-words-native { color: var(--fd-muted); font-weight: 400; font-size: 12.5px; }
58
+ .fd-words-remove { margin-inline-start: auto; width: 24px; height: 24px; font-size: 15px; }
59
+ .fd-words-progress, .fd-words-own { display: flex; align-items: center; gap: 8px; margin-block-start: 4px; font-size: 12px; font-weight: 400; color: var(--fd-muted); font-variant-numeric: tabular-nums; }
60
+ .fd-words-meter { flex: 0 1 96px; height: 4px; border-radius: 2px; background: var(--fd-border); overflow: hidden; }
61
+ .fd-words-meter > span { display: block; height: 100%; border-radius: 2px; background: var(--fd-accent); transition: width 0.2s ease; }
62
+ /* A cell: the words typed where they stand, right to left in a language written so. */
63
+ .fd-words-cell {
64
+ display: block; box-sizing: border-box; width: 100%; min-width: 200px; min-height: 38px; margin: 0; padding: 8px 10px;
65
+ border: 0; border-radius: 0; resize: none; field-sizing: content; overflow: hidden;
66
+ background: transparent; color: inherit; font: inherit; line-height: 20px; text-align: start;
67
+ }
68
+ /* The whole cell answers, however tall its row: tinted while empty, lit under the pointer, underlined while typed in. */
69
+ .fd-words-grid td:has(> .fd-words-cell[data-empty]) { background: color-mix(in srgb, var(--fd-page) 55%, transparent); }
70
+ .fd-words-grid td:hover { background: var(--fd-accent-soft); }
71
+ .fd-words-grid td:focus-within { background: var(--fd-surface); box-shadow: inset 0 -2px 0 var(--fd-focus); }
72
+ .fd-words-cell:focus { outline: none; }
73
+ .fd-words-none { margin: 0; padding: 16px; color: var(--fd-muted); font-size: 13.5px; }
74
+
75
+ /* Words no longer on the page. */
76
+ .fd-words-stale { display: grid; gap: 8px; }
77
+ .fd-words-stale-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
78
+ .fd-words-stale-title { margin: 0; font-size: 14px; font-weight: 650; }
79
+ .fd-words-stale-note { margin: 0; flex: 1 1 220px; font-size: 13px; color: var(--fd-muted); }
80
+ .fd-words-stale-grid .fd-words-gone { padding: 8px 10px; color: var(--fd-muted); line-height: 20px; }
81
+ .fd-words-stale-grid .fd-words-gone-remove { width: 1%; min-width: 0; padding: 4px; text-align: center; vertical-align: middle; }
82
+ @container (max-width: 620px) {
83
+ .fd-words-table tbody th, .fd-words-table thead th:first-child { min-width: 120px; max-width: 150px; }
84
+ .fd-words-table thead th, .fd-words-cell { min-width: 170px; }
85
+ }
86
+ /* On a phone, each language is the whole width beside the English held at the start, and a swipe moves one whole language. */
87
+ @container (max-width: 480px) {
88
+ .fd-words-scroll { scroll-snap-type: x mandatory; scroll-padding-inline-start: 120px; }
89
+ }
90
+ @container fd-words (max-width: 480px) {
91
+ .fd-words-table tbody th, .fd-words-table thead th:first-child { width: 120px; min-width: 120px; max-width: 120px; }
92
+ .fd-words-grid thead th + th { min-width: max(170px, calc(100cqw - 121px)); scroll-snap-align: start; }
93
+ .fd-words-grid .fd-words-cell { min-width: max(170px, calc(100cqw - 121px)); }
94
+ }
95
+
96
+ /* Try it in a language: the page's languages, beside English and العربية. */
97
+ .fd-try-language { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--fd-muted); }
98
+ .fd-try-language .fd-input { width: auto; min-height: 30px; padding-block: 2px; font-size: 13px; color: var(--fd-text); }
99
+ @media (prefers-reduced-motion: reduce) { .fd-words-meter > span { transition: none; } }
100
+ `;
101
+ //# sourceMappingURL=styles-translations.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles-translations.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/styles-translations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FlD,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** The designer's own chrome, on top of Fieldia's form stylesheet and tokens. */
2
+ export declare const DESIGNER_CSS = "\n.fd-designer { display: grid; gap: 14px; }\n.fd-designer-bar {\n display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 10px 14px;\n}\n.fd-designer-title { font-size: 17px; font-weight: 600; flex: 1 1 220px; max-width: 420px; min-width: 0; }\n/* Where the page stands; pressed, the versions published. */\n.fd-designer-status-box { display: inline-flex; }\n.fd-designer-status { all: unset; box-sizing: border-box; cursor: pointer; color: var(--fd-muted); font-size: 13px; padding: 4px 8px; border-radius: 6px; }\n.fd-designer-status::after { content: \"\"; display: inline-block; width: 5px; height: 5px; margin-inline-start: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }\n.fd-designer-status:hover, .fd-designer-status[aria-expanded=\"true\"] { background: var(--fd-page); color: var(--fd-text); }\n.fd-designer-status:focus-visible { outline: 2px solid var(--fd-focus); }\n/* Checks: a count of what to look at, the colour of the worst of them. */\n.fd-checks-button { display: inline-flex; align-items: center; gap: 6px; }\n.fd-checks-button > .fd-dicon { width: 15px; height: 15px; }\n.fd-checks-count { min-width: 18px; height: 18px; padding: 0 5px; box-sizing: border-box; border-radius: 9px; display: inline-grid; place-items: center; font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; background: var(--fd-page); color: var(--fd-muted); }\n.fd-checks-button[data-state=\"clear\"] .fd-checks-count { background: var(--fd-success-soft); color: var(--fd-success); }\n.fd-checks-button[data-state=\"should\"] .fd-checks-count { background: var(--fd-warning-soft); color: var(--fd-warning); }\n.fd-checks-button[data-state=\"must\"] .fd-checks-count { background: var(--fd-error-soft); color: var(--fd-error); }\n.fd-checks {\n position: fixed; z-index: 60; width: min(380px, calc(100vw - 16px)); max-height: min(480px, calc(100vh - 16px)); overflow: auto; box-sizing: border-box;\n background: var(--fd-surface); color: var(--fd-text); border: 1px solid var(--fd-border); border-radius: 10px; box-shadow: 0 18px 44px rgba(15, 20, 25, 0.18);\n padding: 6px; display: grid; gap: 4px; animation: fd-menu-in 120ms cubic-bezier(0, 0, 0.2, 1);\n}\n.fd-check { display: grid; gap: 6px; justify-items: start; padding: 10px; border-radius: 8px; }\n.fd-check + .fd-check { border-block-start: 1px solid var(--fd-border); border-radius: 0; }\n.fd-check-severity { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; border-radius: 4px; padding: 1px 6px; }\n.fd-check[data-severity=\"must\"] .fd-check-severity { color: var(--fd-error); background: var(--fd-error-soft); }\n.fd-check[data-severity=\"should\"] .fd-check-severity { color: var(--fd-warning); background: var(--fd-warning-soft); }\n.fd-check-text { margin: 0; font-size: 13.5px; line-height: 1.45; }\n.fd-check-fix { min-height: 30px; padding-block: 2px; font-size: 13px; }\n/* Find anything: one box over all the editor can add, go to or do. */\n.fd-find-button { display: inline-flex; align-items: center; gap: 6px; color: var(--fd-muted); }\n.fd-find-button > .fd-dicon { width: 15px; height: 15px; }\n.fd-find-keys { font: inherit; font-size: 11.5px; padding: 1px 5px; border-radius: 4px; background: var(--fd-page); color: var(--fd-muted); }\n.fd-find-backdrop { z-index: 80; place-items: start center; padding-block-start: 12vh; }\n.fd-find {\n width: min(560px, 100%); display: grid; overflow: hidden; background: var(--fd-surface); color: var(--fd-text);\n border: 1px solid var(--fd-border); border-radius: 12px; box-shadow: 0 24px 64px rgba(15, 20, 25, 0.3); animation: fd-menu-in 120ms cubic-bezier(0, 0, 0.2, 1);\n}\n.fd-find-input { font: inherit; font-size: 16px; color: inherit; background: none; border: 0; border-block-end: 1px solid var(--fd-border); padding: 14px 18px; outline: none; }\n.fd-designer .fd-find-input:focus-visible { outline: none; }\n.fd-find-list { max-height: min(360px, 50vh); overflow: auto; padding: 6px; display: grid; gap: 1px; }\n.fd-find-list:empty { display: none; }\n.fd-find-option { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 7px; cursor: pointer; font-size: 14px; }\n.fd-find-option[aria-selected=\"true\"] { background: var(--fd-accent-soft); }\n.fd-find-option:hover { background: var(--fd-page); }\n.fd-find-option[aria-selected=\"true\"]:hover { background: var(--fd-accent-soft); }\n.fd-find-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-find-hint { flex: none; font-size: 12px; color: var(--fd-muted); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-find-none { margin: 0; padding: 16px 18px; color: var(--fd-muted); }\n@media (prefers-reduced-motion: reduce) { .fd-find { animation: none; } }\n/* Publish, asked first. */\n.fd-publish-backdrop { z-index: 70; }\n.fd-publish-dialog { max-width: 480px; background: var(--fd-surface); }\n.fd-publish-body { display: grid; gap: 12px; padding: 16px 18px 4px; overflow: auto; }\n.fd-publish-lead { margin: 0; font-weight: 600; }\n.fd-publish-changes { margin: 0; padding-inline-start: 20px; display: grid; gap: 4px; font-size: 14px; }\n.fd-publish-more { list-style: none; margin-inline-start: -20px; color: var(--fd-muted); }\n.fd-publish-blocked { display: grid; gap: 4px; border: 1px solid var(--fd-error); border-radius: 8px; padding: 6px; background: color-mix(in srgb, var(--fd-error-soft) 50%, var(--fd-surface)); }\n.fd-publish-blocked-head { margin: 4px 10px 0; font-weight: 600; color: var(--fd-error); }\n.fd-publish-failed { margin: 0; color: var(--fd-error); }\n.fd-publish-dialog .fd-form-dialog-foot { margin: 0; padding: 12px 18px 16px; }\n.fd-designer .fd-spacer { flex: 1; }\n.fd-designer-issues { white-space: pre-line; }\n.fd-designer-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 0.8fr); gap: 20px; align-items: start; }\n.fd-survey-body { grid-template-columns: 228px minmax(0, 1fr); gap: 16px; }\n.fd-survey-body > .fd-designer-editor { max-width: none; }\n@container (max-width: 900px) { .fd-designer-body, .fd-survey-body { grid-template-columns: minmax(0, 1fr); } .fd-survey-body > .fd-toolbox, .fd-survey-body > .fd-rail { position: static; max-height: none; } .fd-survey-body .fd-tools { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); } }\n.fd-designer-editor { display: grid; gap: 14px; justify-items: start; }\n.fd-designer-editor > * { width: 100%; }\n.fd-designer-editor > .fd-button { width: auto; }\n.fd-designer-pages { display: grid; gap: 18px; }\n.fd-design-step { display: grid; gap: 10px; padding: 14px; border-radius: var(--fd-radius); background: var(--fd-page); border: 1px solid var(--fd-border); }\n.fd-step-head { display: flex; gap: 8px; align-items: center; }\n.fd-step-number { font-size: 12px; font-weight: 700; color: var(--fd-surface); background: var(--fd-accent); border-radius: 5px; padding: 2px 9px; white-space: nowrap; }\n.fd-step-selected { border-color: var(--fd-accent); }\n.fd-step-title { font-weight: 650; font-size: 15px; }\n.fd-step-when { color: var(--fd-muted); font-size: 13px; }\n.fd-when { display: grid; gap: 6px; justify-items: start; color: var(--fd-muted); font-size: 13px; }\n.fd-q .fd-when { padding: 8px 10px; border-inline-start: 3px solid var(--fd-accent-soft); background: var(--fd-page); border-radius: 4px; width: 100%; box-sizing: border-box; }\n.fd-when-rules { display: grid; gap: 6px; }\n.fd-when-rule, .fd-when-match-row { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; }\n.fd-when .fd-select { width: auto; min-width: 140px; }\n.fd-when-custom code { font-size: 12.5px; color: var(--fd-text); }\n.fd-q-when { padding-inline: 4px; }\n.fd-step-cards { display: grid; gap: 10px; position: relative; }\n.fd-designer-editor.fd-dragging { user-select: none; -webkit-user-select: none; }\n/* Carried, a question leaves its place: the gap shows where it goes. */\n.fd-q.fd-drag-source { display: none; }\n.fd-add-question { display: inline-flex; gap: 6px; align-items: center; }\n.fd-design-step > .fd-button { justify-self: start; }\n.fd-step-cards:empty::before { content: \"No questions on this page yet.\"; color: var(--fd-muted); font-size: 13px; padding: 4px 2px; }\n.fd-q {\n position: relative; display: grid; gap: 10px; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius);\n padding: 16px 18px; border-inline-start: 6px solid transparent; cursor: default;\n}\n/* A question not picked reads as people will see it, and opens where it is clicked. */\n.fd-q-closed { cursor: pointer; user-select: none; -webkit-user-select: none; }\n.fd-q-closed:hover { border-color: var(--fd-border-strong); border-inline-start-color: transparent; }\n.fd-q-title { font-size: 15px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }\n.fd-q-closed.fd-required .fd-q-text::after { content: \" *\"; color: var(--fd-error); }\n.fd-q-when-note { font-size: 11px; font-weight: 600; color: var(--fd-warning); background: var(--fd-warning-soft); border-radius: 4px; padding: 1px 6px; }\n.fd-q-closed .fd-q-answer { max-width: 520px; }\n/* The question picked: open, the Google Forms way. */\n.fd-q-selected { border-inline-start-color: var(--fd-accent); box-shadow: 0 2px 12px rgba(15, 20, 25, 0.12); padding-block-start: 22px; }\n.fd-q-grip { all: unset; position: absolute; top: 2px; left: 50%; transform: translateX(-50%) rotate(90deg); width: 18px; height: 22px; display: grid; place-items: center; cursor: grab; color: var(--fd-muted); touch-action: none; }\n.fd-q-grip:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-q-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }\n.fd-q-label { font-size: 15px; }\n.fd-q-kind {\n all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 8px; min-width: 190px; padding: 0 12px; min-height: 38px;\n border: 1px solid var(--fd-border); border-radius: 6px; background: var(--fd-surface); color: var(--fd-text); cursor: pointer; font-size: 14px;\n}\n.fd-q-kind:hover { background: var(--fd-page); }\n.fd-q-kind:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; }\n.fd-q-kind-icon { display: inline-flex; }\n.fd-q-kind > .fd-dicon { margin-inline-start: auto; width: 14px; height: 14px; color: var(--fd-muted); }\n.fd-q-help { font-size: 13px; }\n.fd-q-sep { width: 1px; height: 24px; background: var(--fd-border); margin-inline: 6px; }\n.fd-q-required-words { font-size: 13px; }\n/* Material's switch, as Google Forms has it: a 14px track, a 20px thumb that slides over in 90ms. */\n.fd-switch { all: unset; position: relative; flex: none; width: 36px; height: 20px; cursor: pointer; border-radius: 10px; }\n.fd-switch::before { content: \"\"; position: absolute; inset-inline: 0; top: 3px; height: 14px; border-radius: 7px; background: var(--fd-border-strong); transition: background-color 90ms cubic-bezier(0.4, 0, 0.2, 1); }\n.fd-switch::after {\n content: \"\"; position: absolute; top: 0; inset-inline-start: 0; width: 20px; height: 20px; border-radius: 50%; background: #ffffff;\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n transition: inset-inline-start 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.fd-switch[aria-checked=\"true\"]::before { background: color-mix(in srgb, var(--fd-accent) 54%, transparent); }\n.fd-switch[aria-checked=\"true\"]::after { inset-inline-start: 16px; background: var(--fd-accent); }\n.fd-switch:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n@media (prefers-reduced-motion: reduce) { .fd-switch::before, .fd-switch::after { transition: none; } }\n.fd-q-options { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }\n.fd-q-option { display: flex; gap: 8px; align-items: center; }\n.fd-q-bullet { color: var(--fd-muted); width: 16px; text-align: center; }\n.fd-q-option-box { display: grid; gap: 4px; justify-items: start; }\n.fd-q-option-box > ul { width: 100%; }\n/* \"Add option or add \"Other\"\", and \"Other\u2026\" once added: words and links, never boxes \u2014 pointed at, only a line under them. */\n.fd-q-add-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }\n.fd-q-option-box .fd-q-add-row > .fd-button-link { border: 0; background-color: transparent; box-shadow: none; padding: 2px 0; min-height: 0; font-weight: 400; }\n.fd-q-option-box .fd-q-add-row > .fd-button-link:hover { text-decoration: underline; text-underline-offset: 4px; }\n.fd-q-option-box .fd-q-add-row > .fd-button-link:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; border-radius: 2px; }\n.fd-q-or { color: var(--fd-muted); font-size: 13px; }\n.fd-q-option-other { display: flex; align-items: center; gap: 8px; width: 100%; }\n.fd-q-other-words { flex: 1; min-width: 0; color: var(--fd-muted); padding: 6px 0; border-bottom: 1px dotted color-mix(in srgb, var(--fd-text) 38%, transparent); }\n.fd-q-foot { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; border-block-start: 1px solid var(--fd-border); padding-block-start: 10px; }\n.fd-icon-button {\n font: inherit; border: none; background: none; cursor: pointer; color: var(--fd-muted); width: 30px; height: 30px; border-radius: 6px;\n display: inline-grid; place-items: center; font-size: 15px;\n}\n.fd-icon-button:hover { background: var(--fd-page); color: var(--fd-text); }\n.fd-icon-danger:hover { color: var(--fd-error); background: var(--fd-error-soft); }\n\n/* ---- Design or Try it: the page working as people will use it ---- */\n.fd-mode { display: inline-flex; padding: 2px; border-radius: 9px; background: var(--fd-page); border: 1px solid var(--fd-border); }\n.fd-mode-button { all: unset; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 7px; font-size: 13.5px; font-weight: 600; color: var(--fd-muted); cursor: pointer; }\n.fd-mode-button[aria-pressed=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-mode-button[data-mode=\"try\"][aria-pressed=\"true\"] { background: var(--fd-success); color: #ffffff; }\n.fd-mode-button:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; }\n/* The bar takes two rows by design: the page and what to do with it on top, the ways to look at it (Simple or\n Advanced, Design to Translations, Look) on a row of their own beneath \u2014 never one button left alone on a\n line, in any font or language. */\n.fd-designer-bar { container-type: inline-size; }\n.fd-bar-break { display: none; }\n@container (min-width: 521px) {\n .fd-bar-break { display: block; flex-basis: 100%; height: 0; order: 1; }\n .fd-designer-bar > :is(.fd-mode, .fd-look-button) { order: 2; }\n}\n/* On a narrow bar the ways to look at the page share one row: their words alone, each on one line. */\n@container (max-width: 520px) {\n .fd-mode { display: flex; width: 100%; }\n .fd-mode-button { flex: 1 1 auto; justify-content: center; padding-inline: 6px; white-space: nowrap; }\n .fd-mode-button > .fd-dicon { display: none; }\n}\n.fd-try { display: grid; gap: 14px; }\n.fd-try-bar { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 8px 12px; }\n.fd-try-group { display: inline-flex; padding: 2px; border-radius: 8px; background: var(--fd-page); border: 1px solid var(--fd-border); }\n.fd-try-button { all: unset; display: inline-grid; place-items: center; min-width: 30px; height: 28px; padding: 0 9px; border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--fd-muted); cursor: pointer; }\n.fd-try-button[aria-pressed=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-try-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-try-note { margin: 0; color: var(--fd-muted); font-size: 13px; flex: 1 1 220px; text-align: center; }\n.fd-try-frame { margin-inline: auto; width: 100%; max-width: 1100px; box-sizing: border-box; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 20px; transition: max-width 0.3s ease; }\n.fd-try-frame[data-width=\"tablet\"] { max-width: 768px; }\n.fd-try-frame[data-width=\"phone\"] { max-width: 390px; padding: 14px; }\n/* A quiz sent in Try it: its score, under the thanks. */\n.fd-try-score { margin: 0; font-size: 17px; font-weight: 650; color: var(--fd-accent); font-variant-numeric: tabular-nums; }\n@media (prefers-reduced-motion: reduce) { .fd-try-frame { transition: none; } }\n\n/* ---- the screen editor: toolbox, canvas, panel ---- */\n.fd-screen-body { display: grid; grid-template-columns: 228px minmax(0, 1fr) 280px; gap: 16px; align-items: start; }\n.fd-toolbox, .fd-properties, .fd-rail {\n position: sticky; top: var(--fd-bar-room, 76px); display: grid; gap: 6px; align-content: start; max-height: calc(100vh - var(--fd-bar-room, 76px) - 20px); overflow: auto;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 12px;\n}\n.fd-panel-title { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fd-muted); margin-block-end: 2px; }\n.fd-properties.fd-flash { animation: fd-flash 0.8s ease; }\n@keyframes fd-flash { from { box-shadow: 0 0 0 3px var(--fd-accent-soft), inset 3px 0 0 var(--fd-accent); } to { box-shadow: none; } }\n\n/* The toolbox: icons three to a row, in groups that fold, as Quantia's. */\n.fd-toolbox { padding: 10px 6px; gap: 4px; }\n/* Beside the page: Add (the toolbox), Outline and Data, in tabs. */\n.fd-rail { padding: 8px 6px 10px; gap: 8px; }\n.fd-rail > .fd-rail-pane { position: static; max-height: none; overflow: visible; border: 0; padding: 0; background: none; }\n.fd-rail-tabs { display: flex; gap: 2px; padding: 2px; margin: 0 4px; border-radius: 8px; background: var(--fd-page); }\n.fd-rail-tab { all: unset; box-sizing: border-box; flex: 1; text-align: center; cursor: pointer; padding: 5px 4px; border-radius: 6px; font-size: 12.5px; font-weight: 600; color: var(--fd-muted); }\n.fd-rail-tab[aria-selected=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-rail-tab:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-outline, .fd-data { display: grid; gap: 8px; padding: 0 4px; min-width: 0; }\n.fd-outline-tree { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }\n.fd-outline-tree button {\n all: unset; box-sizing: border-box; width: 100%; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 5px 6px;\n padding-inline-start: calc(6px + var(--fd-level, 0) * 14px); border-radius: 6px; font-size: 13px; min-width: 0;\n}\n.fd-outline-tree button:hover { background: var(--fd-page); }\n.fd-outline-tree button[aria-current=\"true\"] { background: var(--fd-accent-soft); color: var(--fd-accent); }\n.fd-outline-tree button:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: -2px; }\n.fd-outline-tree button[data-level=\"0\"] { font-weight: 600; }\n.fd-outline-tree .fd-dicon { width: 14px; height: 14px; flex: none; color: var(--fd-muted); }\n.fd-outline-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-outline-when { display: inline-flex; color: var(--fd-warning); }\n.fd-outline-kind { flex: none; font-size: 11px; color: var(--fd-muted); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-data-card { display: grid; gap: 2px; padding: 10px; border-radius: 8px; background: var(--fd-page); font-size: 12.5px; color: var(--fd-muted); }\n.fd-data-model { font-size: 14px; color: var(--fd-text); overflow-wrap: anywhere; }\n.fd-seg { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 2px; padding: 2px; border-radius: 8px; background: var(--fd-page); }\n.fd-seg-button { all: unset; box-sizing: border-box; cursor: pointer; padding: 4px 6px; border-radius: 6px; font-size: 12px; color: var(--fd-muted); text-align: center; font-variant-numeric: tabular-nums; }\n.fd-seg-button[aria-pressed=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-seg-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-data-rows { display: grid; gap: 0; }\n.fd-data-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1px 8px; padding: 7px 2px; border-block-start: 1px solid var(--fd-border); font-size: 13px; align-items: center; }\n.fd-data-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-data-used { font-size: 11px; color: var(--fd-muted); }\n.fd-data-used.fd-data-on { color: var(--fd-success); }\n.fd-data-row code { grid-column: 1; font-size: 11px; color: var(--fd-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-data-row .fd-button-link { grid-column: 2; justify-self: end; padding: 0; min-height: 0; font-size: 12px; }\n.fd-tool-find { font-size: 13px; margin: 0 4px 4px; width: auto; }\n.fd-tool-groups { display: grid; gap: 2px; }\n.fd-tool-heading {\n all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 6px; width: 100%; cursor: pointer; padding: 8px 8px 3px;\n font-size: 10.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fd-muted);\n}\n.fd-tool-heading:hover { color: var(--fd-text); }\n.fd-tool-heading:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; border-radius: 3px; }\n.fd-tool-count { font-weight: 600; }\n.fd-tool-caret { width: 0; height: 0; flex: none; border-inline: 3.5px solid transparent; border-top: 4px solid currentColor; transition: transform 0.12s ease; }\n.fd-tool-shut .fd-tool-caret { transform: rotate(-90deg); }\n[dir=\"rtl\"] .fd-tool-shut .fd-tool-caret { transform: rotate(90deg); }\n.fd-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; }\n.fd-tool {\n all: unset; box-sizing: border-box; cursor: grab; display: grid; grid-template-rows: 22px auto; place-items: center; align-content: start; row-gap: 4px;\n height: 60px; padding: 8px 3px 4px; border-radius: 7px; color: var(--fd-muted); min-width: 0; touch-action: none;\n}\n.fd-tool:hover { background: var(--fd-page); color: var(--fd-text); }\n.fd-tool:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: -2px; }\n.fd-tool:active { cursor: grabbing; }\n.fd-tool-model { color: var(--fd-accent); }\n.fd-tool .fd-dicon { width: 20px; height: 20px; }\n.fd-tool-name {\n font-size: 10.5px; line-height: 1.15; text-align: center; color: var(--fd-text); max-width: 100%; overflow: hidden;\n display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere;\n}\n.fd-tool-none { color: var(--fd-muted); font-size: 12.5px; margin: 4px 8px; }\n.fd-dicon { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }\n\n/* The canvas: the page as the viewer draws it, measured against its own width. */\n.fd-canvas-scroll { min-width: 0; }\n.fd-canvas { container-type: inline-size; display: grid; gap: 18px; min-width: 0; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 22px 32px 30px; }\n/* A field's grip: six dots just beside it, shown when it is pointed at or picked. */\n.fd-card-grip {\n all: unset; box-sizing: border-box; position: absolute; top: 6px; inset-inline-start: -20px; width: 16px; height: 24px; display: grid; place-items: center;\n border-radius: 4px; color: var(--fd-muted); cursor: grab; opacity: 0; transition: opacity 120ms; touch-action: none;\n}\n.fd-card-grip > .fd-dicon { width: 14px; height: 14px; }\n.fd-canvas-field:hover > .fd-card-grip, .fd-canvas-field.fd-editing > .fd-card-grip, .fd-card-grip:focus-visible { opacity: 1; }\n.fd-card-grip:hover { background: var(--fd-page); color: var(--fd-text); }\n.fd-card-grip:active { cursor: grabbing; }\n@media (prefers-reduced-motion: reduce) { .fd-card-grip { transition: none; } }\n.fd-canvas-body { display: grid; gap: 26px; }\n.fd-canvas-title.fd-canvas-title-filled { color: var(--fd-text); }\n.fd-canvas-title { all: unset; box-sizing: border-box; cursor: pointer; font-size: 26px; font-weight: 650; line-height: 1.25; color: var(--fd-muted); padding: 8px 14px; border: 1px dashed var(--fd-border-strong); border-radius: var(--fd-radius); background: var(--fd-surface); }\n.fd-canvas-title:hover { color: var(--fd-text); }\n.fd-canvas-title.fd-canvas-selected { border-style: solid; border-color: var(--fd-accent); }\n/* A section pointed at or picked: a bar down its side, just outside it \u2014 never a frame round the frames of its fields. */\n.fd-canvas-section { border-radius: 6px; }\n.fd-canvas-section::before { content: \"\"; position: absolute; inset-block: 0; inset-inline-start: -12px; width: 3px; border-radius: 2px; background: transparent; pointer-events: none; }\n.fd-canvas-section:hover::before { background: var(--fd-border-strong); }\n.fd-canvas-section.fd-canvas-selected::before { background: var(--fd-accent); }\n/* At least 24px tall, a target a finger can hit (WCAG 2.5.8), however small the title's words \u2014 the extra\n height taken back by its margins, so the canvas lays out exactly as the form does. */\n.fd-canvas-section-title { all: unset; cursor: pointer; display: inline-block; min-height: 24px; margin-block: min(0px, calc((1lh - 24px) / 2)); }\n.fd-canvas-section-title:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n.fd-canvas-untitled { color: var(--fd-muted); font-weight: 500; font-style: italic; font-size: 13px; }\n.fd-canvas-section-title-input { font: inherit; color: inherit; border: 0; border-bottom: 1px dashed var(--fd-border-strong); background: none; padding: 0 0 1px; min-width: 12em; outline: none; }\n.fd-canvas-section-title-input:focus { border-bottom: 1px solid var(--fd-accent); }\n.fd-canvas-empty { color: var(--fd-muted); font-size: 13px; border: 1px dashed var(--fd-border); border-radius: 6px; padding: 16px; text-align: center; margin: 0; }\n/* A field's ring sits in the gap around it: picking or hovering one moves nothing. */\n.fd-canvas-field { position: relative; border-radius: 6px; cursor: pointer; padding: 6px 8px; margin: -6px -8px; }\n/* On the canvas a field is picked and moved, not read: pressing on its words starts a drag, not a selection. */\n.fd-canvas-field:not(.fd-editing), .fd-canvas-section-title, .fd-canvas.fd-dragging { user-select: none; -webkit-user-select: none; }\n.fd-canvas-field:hover { background: color-mix(in srgb, var(--fd-text) 4%, transparent); }\n/* Picked, the Google Forms way: tinted, with a bar down its side \u2014 no frame round its box's own frame. */\n.fd-canvas-field.fd-editing { background: var(--fd-accent-soft); box-shadow: inset 3px 0 0 var(--fd-accent); cursor: default; }\n.fd-canvas-field.fd-hidden-sometimes::after {\n content: \"only sometimes\"; position: absolute; top: 4px; inset-inline-end: 6px; font-size: 10.5px; font-weight: 600; line-height: 1.5;\n color: var(--fd-warning); background: var(--fd-warning-soft); border-radius: 4px; padding: 0 5px; pointer-events: none;\n}\n.fd-canvas-field.fd-editing.fd-hidden-sometimes::after { content: none; }\n.fd-canvas-label-row { display: flex; align-items: center; min-height: 1.45em; }\n.fd-canvas-label-input {\n font: inherit; font-weight: var(--fd-label-weight); color: var(--fd-text); border: 0; border-bottom: 1px dashed var(--fd-border-strong);\n background: none; padding: 0 0 1px; outline: none; max-width: 100%; min-width: 4ch; field-sizing: content; cursor: text;\n}\n.fd-canvas-label-input:focus { border-bottom: 2px solid var(--fd-accent); padding-bottom: 0; }\n/* Typed in where they stand, the line under the words is the focus: no ring round them too. */\n.fd-designer .fd-canvas-label-input:focus-visible, .fd-designer .fd-canvas-help-input:focus-visible, .fd-designer .fd-part-input:focus-visible, .fd-designer .fd-canvas-section-title-input:focus-visible { outline: none; }\n/* A picked choice's options: words on a line, as the survey's, not boxes in the picked field. */\n.fd-canvas-field .fd-q-option > .fd-input { border: 0; border-bottom: 1px solid var(--fd-border); border-radius: 0; background: none; box-shadow: none; padding-inline: 0; min-height: 30px; }\n.fd-canvas-field .fd-q-option > .fd-input:focus { border-bottom: 2px solid var(--fd-accent); }\n.fd-canvas-help-input { font: inherit; font-size: 12.5px; color: var(--fd-muted); border: 0; border-bottom: 1px dashed transparent; background: none; padding: 1px 0; outline: none; width: 100%; box-sizing: border-box; cursor: text; }\n.fd-canvas-help-input:hover, .fd-canvas-help-input:focus { border-bottom-color: var(--fd-border-strong); }\n.fd-canvas-help-input::placeholder { color: var(--fd-muted); opacity: 0.75; }\n.fd-canvas-field .fd-q-option-box { padding-block: 2px; }\n/* A kind's own settings, in the picked field: words and a line to type or pick on \u2014 no boxes in it. */\n.fd-inline-settings { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding-block: 4px 2px; font-size: 13px; color: var(--fd-muted); }\n.fd-inline-setting { display: inline-flex; align-items: center; gap: 6px; }\n.fd-inline-select, .fd-inline-input, .fd-inline-settings .fd-column > .fd-input {\n font: inherit; font-size: 13.5px; color: var(--fd-text); background: none; border: 0; border-bottom: 1px solid var(--fd-border-strong);\n border-radius: 0; box-shadow: none; padding: 2px 0; min-height: 0;\n}\n/* As tall as a finger needs (WCAG 2.5.8), however close the next setting sits. */\n.fd-inline-select { padding-inline-end: 2px; cursor: pointer; min-height: 24px; }\n.fd-inline-input { width: 12ch; }\n.fd-inline-currency { width: 4.5ch; text-transform: uppercase; }\n.fd-designer .fd-inline-select:focus-visible, .fd-designer .fd-inline-input:focus-visible, .fd-designer .fd-inline-settings .fd-column > .fd-input:focus-visible { outline: none; }\n.fd-inline-select:focus, .fd-inline-input:focus, .fd-inline-settings .fd-column > .fd-input:focus { border-bottom: 2px solid var(--fd-accent); padding-bottom: 1px; }\n.fd-inline-settings .fd-columns-box { width: 100%; justify-items: start; }\n.fd-inline-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; width: 100%; }\n/* A scale's end, its number then its words. */\n.fd-inline-end { display: flex; align-items: center; gap: 12px; width: 100%; max-width: 360px; }\n.fd-inline-end-number { min-width: 20px; color: var(--fd-text); font-variant-numeric: tabular-nums; }\n.fd-inline-end-words { flex: 1; width: auto; }\n/* Kinds of file, on or off. */\n.fd-inline-chips { display: flex; flex-wrap: wrap; gap: 6px; }\n.fd-inline-chip {\n all: unset; box-sizing: border-box; cursor: pointer; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; color: var(--fd-text);\n background: color-mix(in srgb, var(--fd-text) 6%, transparent);\n}\n.fd-inline-chip:hover { background: color-mix(in srgb, var(--fd-text) 10%, transparent); }\n.fd-inline-chip[aria-pressed=\"true\"] { background: var(--fd-accent-soft); color: var(--fd-accent); font-weight: 600; }\n.fd-inline-chip:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; }\n.fd-inline-settings .fd-columns { width: 100%; }\n.fd-inline-settings .fd-column { grid-template-columns: minmax(0, 1fr) 110px 28px; }\n.fd-canvas-tabs-head { display: flex; align-items: flex-end; gap: 4px; }\n.fd-canvas-tabs-head > .fd-tablist { flex: 1; }\n.fd-canvas-tab.fd-canvas-selected { background: var(--fd-accent-soft); border-radius: 3px 3px 0 0; }\n.fd-canvas-tabs.fd-canvas-selected { outline: 2px solid var(--fd-accent); outline-offset: 6px; border-radius: 4px; }\n.fd-canvas-add-tab { all: unset; cursor: pointer; width: 28px; height: 28px; margin-block-end: 4px; display: grid; place-items: center; border-radius: 4px; color: var(--fd-muted); font-size: 18px; }\n.fd-canvas-add-tab:hover { background: var(--fd-page); color: var(--fd-accent); }\n.fd-canvas-add-tab:focus-visible, .fd-canvas-title:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n\n/* A record's header on the canvas: the viewer's own parts, picked by a click, with a quiet way to add each kind. */\n.fd-canvas-header { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; padding: 6px 0 12px; border-block-end: 1px solid var(--fd-border); }\n.fd-canvas-header-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }\n/* The record's gear menu over the header: its items in a row after the gear, a report under Print dashed. */\n.fd-canvas-menu { flex-basis: 100%; display: flex; align-items: center; gap: 8px; min-width: 0; }\n.fd-canvas-menu-gear { display: inline-flex; color: var(--fd-muted); }\n.fd-canvas-menu-gear .fd-dicon { width: 16px; height: 16px; }\n.fd-canvas-menu-items { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }\n.fd-canvas-menu-item { font: inherit; font-size: 12.5px; }\n.fd-canvas-menu-print { border-style: dashed; }\n.fd-canvas-header-card { display: grid; gap: 10px; justify-items: stretch; }\n/* Not at the card's edge here, as the viewer's are: no reaching out to it. */\n.fd-canvas .fd-canvas-stats { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; align-items: center; margin: 0; border-block-end: 0; }\n.fd-canvas-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }\n.fd-canvas-part { position: relative; cursor: pointer; outline-offset: 3px; }\n.fd-canvas-part:hover { box-shadow: 0 0 0 2px var(--fd-border); }\n/* Picked: its own edge turns the accent, one line, not a ring round it. */\n.fd-canvas-part.fd-editing { box-shadow: 0 0 0 2px var(--fd-accent); cursor: default; }\n.fd-canvas-part:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-canvas-statusbar { border-radius: 6px; min-width: 0; }\n.fd-canvas-statusbar .fd-canvas-widget { pointer-events: none; }\n.fd-part-input { font: inherit; color: inherit; background: none; border: 0; border-bottom: 1px dashed currentColor; padding: 0; outline: none; min-width: 4ch; field-sizing: content; cursor: text; }\n.fd-stat .fd-part-input { font-size: 12px; }\n.fd-part-bar { bottom: calc(100% + 8px); }\n.fd-canvas-add-part {\n all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; padding: 4px 9px; border-radius: 6px;\n border: 1px dashed var(--fd-border-strong); color: var(--fd-muted); font-size: 12.5px; white-space: nowrap;\n}\n.fd-canvas-add-part:hover { color: var(--fd-accent); border-color: var(--fd-accent); }\n.fd-canvas-add-part:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n.fd-canvas-add-part .fd-dicon { width: 13px; height: 13px; }\n\n/* The bar on the field being edited: just above it; over its group's name in a first row; below it right under the tabs. */\n.fd-field-bar {\n position: absolute; bottom: calc(100% + 8px); inset-inline-end: 0; z-index: 5; display: flex; align-items: center; gap: 1px; padding: 3px;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px; box-shadow: 0 6px 16px rgba(15, 20, 25, 0.14); cursor: default;\n}\n.fd-bar-below > .fd-field-bar { bottom: auto; top: calc(100% + 8px); }\n/* Nudged back inside the canvas when the field's far edge would put it past the near one: the canvas measures it. */\n.fd-canvas-field > .fd-field-bar { translate: var(--fd-bar-nudge, 0px) 0; }\n/* In a group's first row, over the group's name, which the canvas measures as --fd-name-room. */\n.fd-bar-over-name > .fd-field-bar { bottom: calc(100% + var(--fd-name-room, 0px) + 8px); }\n.fd-bar-button {\n all: unset; box-sizing: border-box; height: 26px; min-width: 26px; padding: 0 5px; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; gap: 5px;\n color: var(--fd-text); font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;\n}\n.fd-bar-button:hover { background: var(--fd-page); }\n.fd-bar-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-bar-button[aria-pressed=\"true\"] { background: var(--fd-accent-soft); color: var(--fd-accent); }\n.fd-bar-grip { cursor: grab; color: var(--fd-muted); touch-action: none; }\n.fd-bar-kind-icon { display: inline-flex; }\n.fd-bar-kind > .fd-dicon { width: 12px; height: 12px; color: var(--fd-muted); }\n.fd-bar-sep { width: 1px; align-self: stretch; background: var(--fd-border); margin: 3px 2px; }\n@container (max-width: 560px) { .fd-bar-kind-name { display: none; } }\n\n/* A menu of choices: the editor a field is shown with, or its width. */\n.fd-menu {\n position: fixed; z-index: 60; min-width: 220px; max-width: min(320px, calc(100vw - 16px)); max-height: min(440px, calc(100vh - 16px)); overflow: auto;\n background: var(--fd-surface); color: var(--fd-text); border: 1px solid var(--fd-border); border-radius: 10px; box-shadow: 0 18px 44px rgba(15, 20, 25, 0.18);\n padding: 6px; display: grid; gap: 1px;\n}\n.fd-menu-title, .fd-menu-heading { font-size: 10.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fd-muted); padding: 6px 8px 2px; }\n.fd-menu-item { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 9px; padding: 7px 9px; border-radius: 7px; font-size: 13.5px; cursor: pointer; }\n.fd-menu-item:hover, .fd-menu-item:focus-visible { background: var(--fd-page); }\n.fd-menu-item[aria-checked=\"true\"] { color: var(--fd-accent); font-weight: 600; }\n.fd-menu-item[aria-checked=\"true\"]::after { content: \"\u2713\"; margin-inline-start: auto; }\n.fd-menu-note { font-size: 12px; color: var(--fd-muted); margin: 4px 8px; line-height: 1.4; }\n.fd-menu { animation: fd-menu-in 120ms cubic-bezier(0, 0, 0.2, 1); transform-origin: top center; }\n@keyframes fd-menu-in { from { opacity: 0; transform: scale(0.94); } }\n.fd-menu-divider { height: 1px; background: var(--fd-border); margin: 5px -6px; }\n/* Google Forms' roomy menu: full-width rows, an icon on each, the choice tinted. */\n.fd-menu-roomy { padding: 8px 0; min-width: 224px; border-radius: 6px; }\n.fd-menu-roomy .fd-menu-title { padding: 4px 16px 6px; }\n.fd-menu-roomy .fd-menu-item { min-height: 44px; padding: 0 16px; gap: 16px; border-radius: 0; font-size: 14px; }\n.fd-menu-roomy .fd-menu-item > .fd-dicon { width: 22px; height: 22px; color: var(--fd-muted); flex: none; }\n.fd-menu-roomy .fd-menu-item[aria-checked=\"true\"] { background: var(--fd-accent-soft); }\n.fd-menu-roomy .fd-menu-item[aria-checked=\"true\"] > .fd-dicon { color: var(--fd-accent); }\n.fd-menu-roomy .fd-menu-divider { margin: 8px 0; }\n@media (prefers-reduced-motion: reduce) { .fd-menu { animation: none; } }\n\n/* Dragging: a chip with its name follows the pointer; a gap its size opens where it lands, the others moving aside. */\n.fd-drag-ghost.fd-drag-chip {\n position: fixed; z-index: 100; pointer-events: none; margin: 0; max-width: 260px; padding: 6px 12px; box-sizing: border-box;\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--fd-text);\n background: var(--fd-surface); border: 1px solid var(--fd-accent); border-radius: 8px; box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);\n}\n.fd-drop-slot {\n box-sizing: border-box; min-height: 44px; border: 2px dashed var(--fd-accent); border-radius: 8px; background: var(--fd-accent-soft);\n grid-column: span min(var(--fd-span, 1), var(--fd-columns, 1));\n}\n.fd-canvas-field.fd-drag-source { display: none; }\n.fd-drag-source-dim { opacity: 0.35; }\n.fd-drop-marker { position: fixed; z-index: 99; pointer-events: none; background: var(--fd-accent); border-radius: 2px; }\n.fd-canvas-section { position: relative; }\n/* With the gap in it, an empty section says nothing about being empty. */\n.fd-canvas-section:has(.fd-drop-slot) .fd-canvas-empty { display: none; }\n\n.fd-props { display: grid; gap: 10px; }\n.fd-prop { display: grid; gap: 4px; }\n.fd-prop-name { font-size: 12.5px; color: var(--fd-muted); }\n.fd-props .fd-q-option-box { padding-inline-start: 2px; }\n.fd-columns-box { display: grid; gap: 6px; }\n.fd-columns { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }\n.fd-column { display: grid; grid-template-columns: minmax(0, 1fr) 104px 28px; gap: 6px; align-items: center; }\n.fd-props-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-block-start: 4px; border-block-start: 1px solid var(--fd-border); }\n.fd-properties-hint { color: var(--fd-muted); font-size: 13px; margin: 0; }\n.fd-kind-note { font-size: 12px; margin-block-start: -4px; }\n.fd-prop-when { gap: 6px; justify-items: start; }\n.fd-q-required-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }\n\n/* ---- The survey, the Google Forms way ------------------------------------------------------------\n On a page tinted with the accent: a card heading the form, then quiet white cards 8px round, 24px in,\n 12px apart, no wider than 770px. The card picked lifts, a 6px bar down its side; its words sit in a\n filled box whose line grows from the middle; its tools are beside it, following it down the page. */\n.fd-survey-canvas { background: color-mix(in srgb, var(--fd-accent) 8%, var(--fd-surface)); border-radius: var(--fd-radius); padding: 16px 68px 28px 16px; padding-inline: 16px 68px; }\n.fd-survey-column { position: relative; width: 100%; max-width: 770px; margin-inline: auto; display: grid; gap: 12px; }\n.fd-survey-column > .fd-button { justify-self: start; }\n.fd-line { position: relative; display: block; border-block-end: 1px solid transparent; }\n.fd-line > input { font: inherit; color: inherit; background: none; border: 0; outline: none; width: 100%; box-sizing: border-box; padding: 6px 0; margin: 0; }\n.fd-line > input::placeholder { color: var(--fd-muted); }\n/* The growing line is the focus here, as in Google Forms: no ring around it too. */\n.fd-designer .fd-line > input:focus, .fd-designer .fd-line > input:focus-visible { outline: none; box-shadow: none; }\n.fd-line:hover { border-block-end-color: var(--fd-border); }\n.fd-line::after { content: \"\"; position: absolute; inset-inline: 0; bottom: -1px; height: 2px; background: var(--fd-accent); transform: scaleX(0); transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1); }\n.fd-line:focus-within::after { transform: scaleX(1); }\n.fd-survey-head { position: relative; display: grid; gap: 6px; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px; padding: 26px 24px 22px; }\n.fd-survey-head::before { content: \"\"; position: absolute; top: -1px; inset-inline: -1px; height: 10px; background: var(--fd-accent); border-radius: 8px 8px 0 0; }\n.fd-survey-head-title { font-size: 32px !important; line-height: 1.25; }\n.fd-survey-head-description { font-size: 14px !important; }\n.fd-survey-canvas .fd-designer-pages { gap: 12px; }\n/* A page: its own card, its number on a tab over it. */\n.fd-survey-canvas .fd-design-step { background: none; border: 0; padding: 0; gap: 12px; border-radius: 0; }\n.fd-survey-canvas .fd-step-head {\n position: relative; display: grid; gap: 8px; margin-block-start: 30px; padding: 18px 24px 20px;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 0 8px 8px 8px;\n}\n.fd-survey-canvas .fd-step-number { position: absolute; bottom: 100%; inset-inline-start: -1px; border-radius: 8px 8px 0 0; padding: 5px 14px; font-size: 13px; font-weight: 500; }\n.fd-step-head-row { display: flex; gap: 8px; align-items: center; }\n.fd-step-title-box { flex: 1; min-width: 0; }\n.fd-survey-canvas .fd-step-title { font-size: 22px; font-weight: 400; }\n.fd-survey-canvas .fd-step-selected { border: 0; }\n.fd-survey-canvas .fd-step-selected > .fd-step-head { box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); }\n.fd-survey-canvas .fd-step-selected > .fd-step-head::after { content: \"\"; position: absolute; inset-block: -1px; inset-inline-start: -1px; width: 6px; background: var(--fd-accent); border-end-start-radius: 8px; }\n.fd-survey-canvas .fd-step-cards { gap: 12px; }\n.fd-survey-canvas .fd-add-question { justify-self: start; color: var(--fd-muted); }\n.fd-survey-canvas .fd-add-question:hover { color: var(--fd-accent); }\n/* A question: flat until picked. */\n.fd-survey-canvas .fd-q { border: 1px solid var(--fd-border); border-radius: 8px; padding: 24px; gap: 12px; }\n.fd-survey-canvas .fd-q-closed:hover { border-color: var(--fd-border); }\n.fd-survey-canvas .fd-q-title { font-size: 16px; }\n.fd-survey-canvas .fd-q-selected { padding-block-start: 24px; box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); }\n.fd-survey-canvas .fd-q-selected::before { content: \"\"; position: absolute; inset-block: -1px; inset-inline-start: -1px; width: 6px; background: var(--fd-accent); border-start-start-radius: 8px; border-end-start-radius: 8px; }\n/* The six dots, across the top, only where the pointer is. */\n.fd-survey-canvas .fd-q-grip { top: 0; height: 24px; transform: translateX(-50%) rotate(90deg); opacity: 0; transition: opacity 150ms; }\n.fd-survey-canvas .fd-q:hover .fd-q-grip, .fd-survey-canvas .fd-q-grip:focus-visible { opacity: 1; }\n.fd-survey-canvas .fd-q-head { gap: 16px; align-items: start; }\n.fd-q-label-box { background: color-mix(in srgb, var(--fd-text) 3%, var(--fd-surface)); border-block-end: 1px solid var(--fd-muted); border-radius: 4px 4px 0 0; }\n.fd-q-label-box:hover { border-block-end-color: var(--fd-text); }\n.fd-q-label-box > .fd-q-label { padding: 16px; min-height: 56px; font-size: 16px; }\n.fd-q-help-box { border-block-end-color: var(--fd-border); }\n.fd-q-help-box > .fd-q-help { font-size: 14px; }\n.fd-survey-canvas .fd-q-kind { min-height: 48px; min-width: 222px; padding: 0 14px; gap: 12px; border-radius: 4px; font-weight: 500; }\n.fd-survey-canvas .fd-q-kind-icon .fd-dicon { color: var(--fd-muted); }\n/* What goes in the answer, said on a dotted line. */\n.fd-q-preview { color: var(--fd-muted); font-size: 14px; padding-block: 8px 6px; border-block-end: 1px dotted color-mix(in srgb, var(--fd-text) 38%, transparent); width: min(50%, 380px); }\n.fd-q-preview-long { width: min(80%, 600px); }\n.fd-q-preview-date { display: flex; align-items: center; justify-content: space-between; gap: 8px; }\n.fd-q-preview-date > .fd-dicon { width: 18px; height: 18px; flex: none; }\n/* On a canvas, the designer's own buttons and switches keep the page's look: each kind of part's own is the form's \u2014\n its answers' widgets, the buttons over a record, and a button block (drawn as a span, not a button). */\n.fd-look-worn.fd-form button:is(.fd-button, .fd-switch):not(.fd-q-answer *, .fd-canvas-widget *, .fd-canvas-header-actions *) {\n --fd-accent: inherit; --fd-accent-text: inherit; --fd-focus: inherit; --fd-buttons-radius: var(--fd-control-radius); --fd-buttons-size: 1em;\n}\n/* The line wears the text boxes' own look, as the form's boxes will: their ground behind it, their edge for its line, their corners and size of words. */\n.fd-survey-canvas[data-inputs~=bg] :is(.fd-q-preview-short, .fd-q-preview-long) { background: var(--fd-inputs-bg); padding-inline: 8px; }\n.fd-survey-canvas[data-inputs~=border] :is(.fd-q-preview-short, .fd-q-preview-long) { border-block-end: 1px solid var(--fd-inputs-border); }\n.fd-survey-canvas[data-inputs~=radius] :is(.fd-q-preview-short, .fd-q-preview-long) { border-radius: var(--fd-inputs-radius); }\n.fd-survey-canvas[data-inputs~=size] :is(.fd-q-preview-short, .fd-q-preview-long) { font-size: var(--fd-inputs-size); }\n.fd-q-preview-list { list-style: none; margin: 0; padding: 0; border: 0; width: auto; display: grid; gap: 10px; color: var(--fd-text); }\n/* Where answers lead: the pages on one line, those for some answers off it and back. */\n.fd-branch-map { background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px; padding: 10px 16px 12px; min-width: 0; }\n.fd-branch-summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--fd-muted); }\n.fd-branch-summary:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; border-radius: 4px; }\n.fd-branch-scroll { overflow-x: auto; margin-block-start: 10px; }\n.fd-branch-svg { display: block; height: auto; }\n.fd-branch-edge { fill: none; stroke: var(--fd-muted); stroke-width: 1.5; }\n.fd-branch-off { stroke: var(--fd-warning); }\n.fd-branch-head { fill: var(--fd-muted); }\n.fd-branch-box { fill: var(--fd-surface); stroke: var(--fd-border-strong); stroke-width: 1; transition: stroke 120ms; }\n.fd-branch-page { cursor: pointer; outline: none; }\n.fd-branch-page:hover .fd-branch-box, .fd-branch-page:focus-visible .fd-branch-box { stroke: var(--fd-accent); }\n.fd-branch-page:focus-visible .fd-branch-box { stroke-width: 2; }\n.fd-branch-page.fd-picked .fd-branch-box { fill: var(--fd-accent-soft); stroke: var(--fd-accent); stroke-width: 2; }\n.fd-branch-title { fill: var(--fd-text); font-size: 14px; font-weight: 600; }\n.fd-branch-when { fill: var(--fd-warning); font-size: 12.5px; font-weight: 600; }\n@media (prefers-reduced-motion: reduce) { .fd-branch-box { transition: none; } }\n/* Options: a ring or a box, the words on a line that shows when pointed at, \u00D7 at the end. */\n.fd-survey-canvas .fd-q-options { gap: 0; }\n.fd-survey-canvas .fd-q-option { min-height: 44px; gap: 12px; }\n.fd-survey-canvas .fd-q-bullet { font-size: 0; flex: none; width: 20px; height: 20px; box-sizing: border-box; border: 2px solid var(--fd-border-strong); border-radius: 50%; }\n.fd-survey-canvas [data-multiple] .fd-q-bullet { border-radius: 3px; }\n.fd-survey-canvas .fd-q-option > .fd-input { flex: 1; min-width: 0; border: 0; border-block-end: 1px solid transparent; border-radius: 0; background: none; box-shadow: none; padding: 6px 0; min-height: 0; font-size: 14.5px; }\n.fd-survey-canvas .fd-q-option > .fd-input:hover { border-block-end-color: var(--fd-border); }\n.fd-survey-canvas .fd-q-option > .fd-input:focus { border-block-end: 2px solid var(--fd-accent); padding-block-end: 5px; outline: none; box-shadow: none; }\n.fd-survey-canvas .fd-q-option > .fd-icon-button { opacity: 0.55; font-size: 20px; }\n.fd-survey-canvas .fd-q-option > .fd-icon-button:hover { opacity: 1; }\n.fd-survey-canvas .fd-q-option-box { gap: 0; }\n.fd-survey-canvas .fd-q-add-row { min-height: 44px; gap: 6px; }\n/* The ghost of the next option: an empty ring, box or number before \"Add option\", as Google Forms draws it. */\n.fd-survey-canvas .fd-q-add-option { display: inline-flex; align-items: center; gap: 12px; color: var(--fd-muted) !important; text-decoration: none; }\n.fd-survey-canvas .fd-q-add-option::before { content: \"\"; flex: none; width: 20px; height: 20px; box-sizing: border-box; border: 2px solid var(--fd-border); border-radius: 50%; }\n.fd-survey-canvas [data-multiple] .fd-q-add-option::before { border-radius: 3px; }\n.fd-survey-canvas [data-numbered] .fd-q-add-option::before { content: var(--fd-next-number, \"\"); border: 0; width: auto; min-width: 20px; height: auto; font-size: 14px; color: var(--fd-muted); }\n/* Pointed at: a line grows under its words, past the ring \u2014 a box never. */\n.fd-survey-canvas .fd-q-add-option { background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 32px 100%; padding-bottom: 3px !important; transition: background-size 200ms; }\n.fd-survey-canvas .fd-q-add-option:hover { color: var(--fd-text) !important; text-decoration: none !important; background-size: calc(100% - 32px) 1px; }\n.fd-survey-canvas .fd-q-add-other { color: var(--fd-accent); }\n.fd-survey-canvas [data-numbered] .fd-q-bullet { font-size: 14px; border: 0; border-radius: 0; width: auto; min-width: 20px; height: auto; color: var(--fd-text); }\n.fd-survey-canvas .fd-q-option-other { min-height: 44px; gap: 12px; }\n@media (prefers-reduced-motion: reduce) { .fd-survey-canvas .fd-q-add-option { transition: none; } }\n/* The foot: copy, delete, a line, Required, \u22EE \u2014 at the end, as Google Forms has them. */\n.fd-survey-canvas .fd-q-foot { justify-content: flex-end; gap: 2px; min-height: 48px; padding-block-start: 8px; margin-block-start: 4px; }\n.fd-q-tool { all: unset; box-sizing: border-box; width: 40px; height: 40px; border-radius: 50%; display: inline-grid; place-items: center; color: var(--fd-muted); cursor: pointer; transition: background-color 150ms; }\n.fd-q-tool:hover, .fd-q-tool[aria-expanded=\"true\"] { background: color-mix(in srgb, var(--fd-text) 7%, transparent); color: var(--fd-text); }\n.fd-q-tool:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-q-tool > .fd-dicon { width: 21px; height: 21px; }\n.fd-q-tool-danger:hover { color: var(--fd-error); }\n.fd-survey-canvas .fd-q-sep { height: 32px; margin-inline: 10px; }\n.fd-survey-canvas .fd-q-required-words { font-size: 14px; font-weight: 500; margin-inline-end: 8px; }\n.fd-survey-canvas .fd-q-foot .fd-switch { margin-inline-end: 6px; }\n/* The tools beside the card picked, level with its top, sliding to the next one picked. */\n.fd-q-rail {\n position: absolute; top: 0; inset-inline-start: calc(100% + 12px); z-index: 4; display: grid; gap: 2px; padding: 4px;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px;\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n transform: translateY(var(--fd-rail-y, 0px)); transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.fd-rail-button { all: unset; box-sizing: border-box; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: var(--fd-muted); cursor: pointer; }\n.fd-rail-button:hover { background: color-mix(in srgb, var(--fd-text) 7%, transparent); color: var(--fd-text); }\n.fd-rail-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-rail-button > .fd-dicon { width: 22px; height: 22px; }\n@container (max-width: 620px) {\n .fd-survey-canvas { padding-inline: 10px; }\n /* A question's words the width of its card, its kind under them. */\n .fd-survey-canvas .fd-q-head { grid-template-columns: minmax(0, 1fr); gap: 10px; }\n .fd-survey-canvas .fd-q-kind { min-width: 0; justify-self: start; }\n .fd-q-rail { position: sticky; bottom: 12px; inset-inline-start: auto; justify-self: center; display: flex; transform: none; }\n}\n@media (prefers-reduced-motion: reduce) { .fd-line::after, .fd-q-rail, .fd-survey-canvas .fd-q-grip { transition: none; } }\n.fd-props > .fd-prop > .fd-button { justify-self: start; }\n/* Rows 24px apart at least, so each small box has room round it (WCAG 2.5.8). */\n.fd-list-search-fields { display: flex; flex-wrap: wrap; gap: 8px 14px; }\n.fd-list-filters { display: grid; gap: 8px; }\n.fd-list-filter { margin: 0; display: grid; gap: 6px; padding: 8px; border: 1px solid var(--fd-border); border-radius: 6px; min-width: 0; }\n.fd-list-filter-condition { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 6px; }\n.fd-list-filter-value { display: contents; }\n.fd-list-filter-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }\n.fd-chips { display: flex; flex-wrap: wrap; gap: 6px; }\n.fd-chips:empty { display: none; }\n.fd-chip { display: inline-flex; align-items: center; gap: 4px; padding-block: 2px; padding-inline: 8px 2px; border-radius: 4px; background: var(--fd-success-soft); color: var(--fd-success); font-size: 13px; }\n.fd-chip-remove { all: unset; cursor: pointer; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 3px; font-size: 15px; line-height: 1; }\n.fd-chip-remove:hover, .fd-chip-remove:focus-visible { background: var(--fd-surface); }\n\n/* A list on the canvas: the viewer's own list, its columns picked by a click and carried along the row. */\n.fd-list-canvas .fd-canvas-search { cursor: pointer; border-radius: var(--fd-control-radius); }\n.fd-list-canvas .fd-canvas-search:hover .fd-search-field { border-color: var(--fd-accent); }\n.fd-list-canvas .fd-canvas-search:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n.fd-search-placeholder { color: var(--fd-muted); font-size: 14px; padding: 5px 4px; }\n.fd-canvas-selection { display: flex; }\n.fd-canvas-selection-hint { color: var(--fd-muted); font-size: 12.5px; margin-inline-end: 4px; }\n.fd-canvas-list-actions { display: contents; }\n.fd-canvas-list-scroll { position: relative; }\n.fd-list-canvas .fd-list-table th.fd-canvas-column { position: relative; cursor: grab; user-select: none; }\n.fd-list-canvas .fd-list-table th.fd-canvas-column:hover { background: var(--fd-page); }\n.fd-list-canvas .fd-list-table th.fd-canvas-column:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: -2px; }\n.fd-list-canvas .fd-list-table th.fd-picked { box-shadow: inset 0 0 0 2px var(--fd-accent); background: var(--fd-accent-soft); }\n.fd-list-canvas .fd-list-table td.fd-picked { background: var(--fd-accent-soft); }\n.fd-list-canvas .fd-list-table td { cursor: pointer; }\n/* Narrower than the running list, so a list's columns fit beside the toolbox and the panel. */\n.fd-list-canvas .fd-list-table td, .fd-list-canvas .fd-list-table th.fd-canvas-column { max-width: 12em; overflow: hidden; text-overflow: ellipsis; }\n.fd-list-canvas .fd-list-table .fd-list-checkbox { cursor: default; }\n.fd-list-canvas .fd-list-row:hover td { background: none; }\n.fd-list-canvas .fd-list-row:hover td.fd-picked { background: var(--fd-accent-soft); }\n.fd-column-bar { bottom: auto; top: calc(100% + 6px); inset-inline-end: auto; inset-inline-start: 0; }\n/* \"+ Column\" stays at the row's end however far the table scrolls. */\n.fd-list-canvas .fd-list-table .fd-canvas-add-column { position: sticky; inset-inline-end: 0; z-index: 1; width: 1%; padding-inline: 8px; background: var(--fd-surface); border-inline-start: 1px solid var(--fd-border); box-shadow: -6px 0 8px -6px rgba(15, 23, 42, 0.18); }\n.fd-canvas-add-column .fd-canvas-add-part { padding: 2px 6px; font-weight: 400; border: 0; color: var(--fd-accent); }\n.fd-canvas.fd-dragging .fd-list-table th.fd-canvas-column { cursor: grabbing; }\n/* After the panel rules, so these win when the editor is narrow: the toolbox and the panel stack around the canvas. */\n@container (max-width: 1000px) {\n .fd-screen-body { grid-template-columns: minmax(0, 1fr); }\n .fd-toolbox, .fd-properties, .fd-rail { position: static; max-height: none; }\n .fd-tools { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); }\n}\n@media (prefers-reduced-motion: reduce) { .fd-properties.fd-flash { animation: none; } .fd-tool-caret { transition: none; } }\n";
3
+ export declare function installDesignerStyles(document: Document): void;
@@ -0,0 +1,3 @@
1
+ /** The designer's own chrome, on top of Fieldia's form stylesheet and tokens. */
2
+ export declare const DESIGNER_CSS = "\n.fd-designer { display: grid; gap: 14px; }\n.fd-designer-bar {\n display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 10px 14px;\n}\n.fd-designer-title { font-size: 17px; font-weight: 600; flex: 1 1 220px; max-width: 420px; min-width: 0; }\n/* Where the page stands; pressed, the versions published. */\n.fd-designer-status-box { display: inline-flex; }\n.fd-designer-status { all: unset; box-sizing: border-box; cursor: pointer; color: var(--fd-muted); font-size: 13px; padding: 4px 8px; border-radius: 6px; }\n.fd-designer-status::after { content: \"\"; display: inline-block; width: 5px; height: 5px; margin-inline-start: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }\n.fd-designer-status:hover, .fd-designer-status[aria-expanded=\"true\"] { background: var(--fd-page); color: var(--fd-text); }\n.fd-designer-status:focus-visible { outline: 2px solid var(--fd-focus); }\n/* Checks: a count of what to look at, the colour of the worst of them. */\n.fd-checks-button { display: inline-flex; align-items: center; gap: 6px; }\n.fd-checks-button > .fd-dicon { width: 15px; height: 15px; }\n.fd-checks-count { min-width: 18px; height: 18px; padding: 0 5px; box-sizing: border-box; border-radius: 9px; display: inline-grid; place-items: center; font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; background: var(--fd-page); color: var(--fd-muted); }\n.fd-checks-button[data-state=\"clear\"] .fd-checks-count { background: var(--fd-success-soft); color: var(--fd-success); }\n.fd-checks-button[data-state=\"should\"] .fd-checks-count { background: var(--fd-warning-soft); color: var(--fd-warning); }\n.fd-checks-button[data-state=\"must\"] .fd-checks-count { background: var(--fd-error-soft); color: var(--fd-error); }\n.fd-checks {\n position: fixed; z-index: 60; width: min(380px, calc(100vw - 16px)); max-height: min(480px, calc(100vh - 16px)); overflow: auto; box-sizing: border-box;\n background: var(--fd-surface); color: var(--fd-text); border: 1px solid var(--fd-border); border-radius: 10px; box-shadow: 0 18px 44px rgba(15, 20, 25, 0.18);\n padding: 6px; display: grid; gap: 4px; animation: fd-menu-in 120ms cubic-bezier(0, 0, 0.2, 1);\n}\n.fd-check { display: grid; gap: 6px; justify-items: start; padding: 10px; border-radius: 8px; }\n.fd-check + .fd-check { border-block-start: 1px solid var(--fd-border); border-radius: 0; }\n.fd-check-severity { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; border-radius: 4px; padding: 1px 6px; }\n.fd-check[data-severity=\"must\"] .fd-check-severity { color: var(--fd-error); background: var(--fd-error-soft); }\n.fd-check[data-severity=\"should\"] .fd-check-severity { color: var(--fd-warning); background: var(--fd-warning-soft); }\n.fd-check-text { margin: 0; font-size: 13.5px; line-height: 1.45; }\n.fd-check-fix { min-height: 30px; padding-block: 2px; font-size: 13px; }\n/* Find anything: one box over all the editor can add, go to or do. */\n.fd-find-button { display: inline-flex; align-items: center; gap: 6px; color: var(--fd-muted); }\n.fd-find-button > .fd-dicon { width: 15px; height: 15px; }\n.fd-find-keys { font: inherit; font-size: 11.5px; padding: 1px 5px; border-radius: 4px; background: var(--fd-page); color: var(--fd-muted); }\n.fd-find-backdrop { z-index: 80; place-items: start center; padding-block-start: 12vh; }\n.fd-find {\n width: min(560px, 100%); display: grid; overflow: hidden; background: var(--fd-surface); color: var(--fd-text);\n border: 1px solid var(--fd-border); border-radius: 12px; box-shadow: 0 24px 64px rgba(15, 20, 25, 0.3); animation: fd-menu-in 120ms cubic-bezier(0, 0, 0.2, 1);\n}\n.fd-find-input { font: inherit; font-size: 16px; color: inherit; background: none; border: 0; border-block-end: 1px solid var(--fd-border); padding: 14px 18px; outline: none; }\n.fd-designer .fd-find-input:focus-visible { outline: none; }\n.fd-find-list { max-height: min(360px, 50vh); overflow: auto; padding: 6px; display: grid; gap: 1px; }\n.fd-find-list:empty { display: none; }\n.fd-find-option { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 7px; cursor: pointer; font-size: 14px; }\n.fd-find-option[aria-selected=\"true\"] { background: var(--fd-accent-soft); }\n.fd-find-option:hover { background: var(--fd-page); }\n.fd-find-option[aria-selected=\"true\"]:hover { background: var(--fd-accent-soft); }\n.fd-find-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-find-hint { flex: none; font-size: 12px; color: var(--fd-muted); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-find-none { margin: 0; padding: 16px 18px; color: var(--fd-muted); }\n@media (prefers-reduced-motion: reduce) { .fd-find { animation: none; } }\n/* Publish, asked first. */\n.fd-publish-backdrop { z-index: 70; }\n.fd-publish-dialog { max-width: 480px; background: var(--fd-surface); }\n.fd-publish-body { display: grid; gap: 12px; padding: 16px 18px 4px; overflow: auto; }\n.fd-publish-lead { margin: 0; font-weight: 600; }\n.fd-publish-changes { margin: 0; padding-inline-start: 20px; display: grid; gap: 4px; font-size: 14px; }\n.fd-publish-more { list-style: none; margin-inline-start: -20px; color: var(--fd-muted); }\n.fd-publish-blocked { display: grid; gap: 4px; border: 1px solid var(--fd-error); border-radius: 8px; padding: 6px; background: color-mix(in srgb, var(--fd-error-soft) 50%, var(--fd-surface)); }\n.fd-publish-blocked-head { margin: 4px 10px 0; font-weight: 600; color: var(--fd-error); }\n.fd-publish-failed { margin: 0; color: var(--fd-error); }\n.fd-publish-dialog .fd-form-dialog-foot { margin: 0; padding: 12px 18px 16px; }\n.fd-designer .fd-spacer { flex: 1; }\n.fd-designer-issues { white-space: pre-line; }\n.fd-designer-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 0.8fr); gap: 20px; align-items: start; }\n.fd-survey-body { grid-template-columns: 228px minmax(0, 1fr); gap: 16px; }\n.fd-survey-body > .fd-designer-editor { max-width: none; }\n@container (max-width: 900px) { .fd-designer-body, .fd-survey-body { grid-template-columns: minmax(0, 1fr); } .fd-survey-body > .fd-toolbox, .fd-survey-body > .fd-rail { position: static; max-height: none; } .fd-survey-body .fd-tools { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); } }\n.fd-designer-editor { display: grid; gap: 14px; justify-items: start; }\n.fd-designer-editor > * { width: 100%; }\n.fd-designer-editor > .fd-button { width: auto; }\n.fd-designer-pages { display: grid; gap: 18px; }\n.fd-design-step { display: grid; gap: 10px; padding: 14px; border-radius: var(--fd-radius); background: var(--fd-page); border: 1px solid var(--fd-border); }\n.fd-step-head { display: flex; gap: 8px; align-items: center; }\n.fd-step-number { font-size: 12px; font-weight: 700; color: var(--fd-surface); background: var(--fd-accent); border-radius: 5px; padding: 2px 9px; white-space: nowrap; }\n.fd-step-selected { border-color: var(--fd-accent); }\n.fd-step-title { font-weight: 650; font-size: 15px; }\n.fd-step-when { color: var(--fd-muted); font-size: 13px; }\n.fd-when { display: grid; gap: 6px; justify-items: start; color: var(--fd-muted); font-size: 13px; }\n.fd-q .fd-when { padding: 8px 10px; border-inline-start: 3px solid var(--fd-accent-soft); background: var(--fd-page); border-radius: 4px; width: 100%; box-sizing: border-box; }\n.fd-when-rules { display: grid; gap: 6px; }\n.fd-when-rule, .fd-when-match-row { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; }\n.fd-when .fd-select { width: auto; min-width: 140px; }\n.fd-when-custom code { font-size: 12.5px; color: var(--fd-text); }\n.fd-q-when { padding-inline: 4px; }\n.fd-step-cards { display: grid; gap: 10px; position: relative; }\n.fd-designer-editor.fd-dragging { user-select: none; -webkit-user-select: none; }\n/* Carried, a question leaves its place: the gap shows where it goes. */\n.fd-q.fd-drag-source { display: none; }\n.fd-add-question { display: inline-flex; gap: 6px; align-items: center; }\n.fd-design-step > .fd-button { justify-self: start; }\n.fd-step-cards:empty::before { content: \"No questions on this page yet.\"; color: var(--fd-muted); font-size: 13px; padding: 4px 2px; }\n.fd-q {\n position: relative; display: grid; gap: 10px; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius);\n padding: 16px 18px; border-inline-start: 6px solid transparent; cursor: default;\n}\n/* A question not picked reads as people will see it, and opens where it is clicked. */\n.fd-q-closed { cursor: pointer; user-select: none; -webkit-user-select: none; }\n.fd-q-closed:hover { border-color: var(--fd-border-strong); border-inline-start-color: transparent; }\n.fd-q-title { font-size: 15px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }\n.fd-q-closed.fd-required .fd-q-text::after { content: \" *\"; color: var(--fd-error); }\n.fd-q-when-note { font-size: 11px; font-weight: 600; color: var(--fd-warning); background: var(--fd-warning-soft); border-radius: 4px; padding: 1px 6px; }\n.fd-q-closed .fd-q-answer { max-width: 520px; }\n/* The question picked: open, the Google Forms way. */\n.fd-q-selected { border-inline-start-color: var(--fd-accent); box-shadow: 0 2px 12px rgba(15, 20, 25, 0.12); padding-block-start: 22px; }\n.fd-q-grip { all: unset; position: absolute; top: 2px; left: 50%; transform: translateX(-50%) rotate(90deg); width: 18px; height: 22px; display: grid; place-items: center; cursor: grab; color: var(--fd-muted); touch-action: none; }\n.fd-q-grip:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-q-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }\n.fd-q-label { font-size: 15px; }\n.fd-q-kind {\n all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 8px; min-width: 190px; padding: 0 12px; min-height: 38px;\n border: 1px solid var(--fd-border); border-radius: 6px; background: var(--fd-surface); color: var(--fd-text); cursor: pointer; font-size: 14px;\n}\n.fd-q-kind:hover { background: var(--fd-page); }\n.fd-q-kind:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; }\n.fd-q-kind-icon { display: inline-flex; }\n.fd-q-kind > .fd-dicon { margin-inline-start: auto; width: 14px; height: 14px; color: var(--fd-muted); }\n.fd-q-help { font-size: 13px; }\n.fd-q-sep { width: 1px; height: 24px; background: var(--fd-border); margin-inline: 6px; }\n.fd-q-required-words { font-size: 13px; }\n/* Material's switch, as Google Forms has it: a 14px track, a 20px thumb that slides over in 90ms. */\n.fd-switch { all: unset; position: relative; flex: none; width: 36px; height: 20px; cursor: pointer; border-radius: 10px; }\n.fd-switch::before { content: \"\"; position: absolute; inset-inline: 0; top: 3px; height: 14px; border-radius: 7px; background: var(--fd-border-strong); transition: background-color 90ms cubic-bezier(0.4, 0, 0.2, 1); }\n.fd-switch::after {\n content: \"\"; position: absolute; top: 0; inset-inline-start: 0; width: 20px; height: 20px; border-radius: 50%; background: #ffffff;\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n transition: inset-inline-start 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.fd-switch[aria-checked=\"true\"]::before { background: color-mix(in srgb, var(--fd-accent) 54%, transparent); }\n.fd-switch[aria-checked=\"true\"]::after { inset-inline-start: 16px; background: var(--fd-accent); }\n.fd-switch:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n@media (prefers-reduced-motion: reduce) { .fd-switch::before, .fd-switch::after { transition: none; } }\n.fd-q-options { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }\n.fd-q-option { display: flex; gap: 8px; align-items: center; }\n.fd-q-bullet { color: var(--fd-muted); width: 16px; text-align: center; }\n.fd-q-option-box { display: grid; gap: 4px; justify-items: start; }\n.fd-q-option-box > ul { width: 100%; }\n/* \"Add option or add \"Other\"\", and \"Other\u2026\" once added: words and links, never boxes \u2014 pointed at, only a line under them. */\n.fd-q-add-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }\n.fd-q-option-box .fd-q-add-row > .fd-button-link { border: 0; background-color: transparent; box-shadow: none; padding: 2px 0; min-height: 0; font-weight: 400; }\n.fd-q-option-box .fd-q-add-row > .fd-button-link:hover { text-decoration: underline; text-underline-offset: 4px; }\n.fd-q-option-box .fd-q-add-row > .fd-button-link:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; border-radius: 2px; }\n.fd-q-or { color: var(--fd-muted); font-size: 13px; }\n.fd-q-option-other { display: flex; align-items: center; gap: 8px; width: 100%; }\n.fd-q-other-words { flex: 1; min-width: 0; color: var(--fd-muted); padding: 6px 0; border-bottom: 1px dotted color-mix(in srgb, var(--fd-text) 38%, transparent); }\n.fd-q-foot { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; border-block-start: 1px solid var(--fd-border); padding-block-start: 10px; }\n.fd-icon-button {\n font: inherit; border: none; background: none; cursor: pointer; color: var(--fd-muted); width: 30px; height: 30px; border-radius: 6px;\n display: inline-grid; place-items: center; font-size: 15px;\n}\n.fd-icon-button:hover { background: var(--fd-page); color: var(--fd-text); }\n.fd-icon-danger:hover { color: var(--fd-error); background: var(--fd-error-soft); }\n\n/* ---- Design or Try it: the page working as people will use it ---- */\n.fd-mode { display: inline-flex; padding: 2px; border-radius: 9px; background: var(--fd-page); border: 1px solid var(--fd-border); }\n.fd-mode-button { all: unset; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 7px; font-size: 13.5px; font-weight: 600; color: var(--fd-muted); cursor: pointer; }\n.fd-mode-button[aria-pressed=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-mode-button[data-mode=\"try\"][aria-pressed=\"true\"] { background: var(--fd-success); color: #ffffff; }\n.fd-mode-button:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; }\n/* The bar takes two rows by design: the page and what to do with it on top, the ways to look at it (Simple or\n Advanced, Design to Translations, Look) on a row of their own beneath \u2014 never one button left alone on a\n line, in any font or language. */\n.fd-designer-bar { container-type: inline-size; }\n.fd-bar-break { display: none; }\n@container (min-width: 521px) {\n .fd-bar-break { display: block; flex-basis: 100%; height: 0; order: 1; }\n .fd-designer-bar > :is(.fd-mode, .fd-look-button) { order: 2; }\n}\n/* On a narrow bar the ways to look at the page share one row: their words alone, each on one line. */\n@container (max-width: 520px) {\n .fd-mode { display: flex; width: 100%; }\n .fd-mode-button { flex: 1 1 auto; justify-content: center; padding-inline: 6px; white-space: nowrap; }\n .fd-mode-button > .fd-dicon { display: none; }\n}\n.fd-try { display: grid; gap: 14px; }\n.fd-try-bar { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 8px 12px; }\n.fd-try-group { display: inline-flex; padding: 2px; border-radius: 8px; background: var(--fd-page); border: 1px solid var(--fd-border); }\n.fd-try-button { all: unset; display: inline-grid; place-items: center; min-width: 30px; height: 28px; padding: 0 9px; border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--fd-muted); cursor: pointer; }\n.fd-try-button[aria-pressed=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-try-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-try-note { margin: 0; color: var(--fd-muted); font-size: 13px; flex: 1 1 220px; text-align: center; }\n.fd-try-frame { margin-inline: auto; width: 100%; max-width: 1100px; box-sizing: border-box; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 20px; transition: max-width 0.3s ease; }\n.fd-try-frame[data-width=\"tablet\"] { max-width: 768px; }\n.fd-try-frame[data-width=\"phone\"] { max-width: 390px; padding: 14px; }\n/* A quiz sent in Try it: its score, under the thanks. */\n.fd-try-score { margin: 0; font-size: 17px; font-weight: 650; color: var(--fd-accent); font-variant-numeric: tabular-nums; }\n@media (prefers-reduced-motion: reduce) { .fd-try-frame { transition: none; } }\n\n/* ---- the screen editor: toolbox, canvas, panel ---- */\n.fd-screen-body { display: grid; grid-template-columns: 228px minmax(0, 1fr) 280px; gap: 16px; align-items: start; }\n.fd-toolbox, .fd-properties, .fd-rail {\n position: sticky; top: var(--fd-bar-room, 76px); display: grid; gap: 6px; align-content: start; max-height: calc(100vh - var(--fd-bar-room, 76px) - 20px); overflow: auto;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 12px;\n}\n.fd-panel-title { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fd-muted); margin-block-end: 2px; }\n.fd-properties.fd-flash { animation: fd-flash 0.8s ease; }\n@keyframes fd-flash { from { box-shadow: 0 0 0 3px var(--fd-accent-soft), inset 3px 0 0 var(--fd-accent); } to { box-shadow: none; } }\n\n/* The toolbox: icons three to a row, in groups that fold, as Quantia's. */\n.fd-toolbox { padding: 10px 6px; gap: 4px; }\n/* Beside the page: Add (the toolbox), Outline and Data, in tabs. */\n.fd-rail { padding: 8px 6px 10px; gap: 8px; }\n.fd-rail > .fd-rail-pane { position: static; max-height: none; overflow: visible; border: 0; padding: 0; background: none; }\n.fd-rail-tabs { display: flex; gap: 2px; padding: 2px; margin: 0 4px; border-radius: 8px; background: var(--fd-page); }\n.fd-rail-tab { all: unset; box-sizing: border-box; flex: 1; text-align: center; cursor: pointer; padding: 5px 4px; border-radius: 6px; font-size: 12.5px; font-weight: 600; color: var(--fd-muted); }\n.fd-rail-tab[aria-selected=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-rail-tab:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-outline, .fd-data { display: grid; gap: 8px; padding: 0 4px; min-width: 0; }\n.fd-outline-tree { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }\n.fd-outline-tree button {\n all: unset; box-sizing: border-box; width: 100%; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 5px 6px;\n padding-inline-start: calc(6px + var(--fd-level, 0) * 14px); border-radius: 6px; font-size: 13px; min-width: 0;\n}\n.fd-outline-tree button:hover { background: var(--fd-page); }\n.fd-outline-tree button[aria-current=\"true\"] { background: var(--fd-accent-soft); color: var(--fd-accent); }\n.fd-outline-tree button:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: -2px; }\n.fd-outline-tree button[data-level=\"0\"] { font-weight: 600; }\n.fd-outline-tree .fd-dicon { width: 14px; height: 14px; flex: none; color: var(--fd-muted); }\n.fd-outline-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-outline-when { display: inline-flex; color: var(--fd-warning); }\n.fd-outline-kind { flex: none; font-size: 11px; color: var(--fd-muted); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-data-card { display: grid; gap: 2px; padding: 10px; border-radius: 8px; background: var(--fd-page); font-size: 12.5px; color: var(--fd-muted); }\n.fd-data-model { font-size: 14px; color: var(--fd-text); overflow-wrap: anywhere; }\n.fd-seg { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 2px; padding: 2px; border-radius: 8px; background: var(--fd-page); }\n.fd-seg-button { all: unset; box-sizing: border-box; cursor: pointer; padding: 4px 6px; border-radius: 6px; font-size: 12px; color: var(--fd-muted); text-align: center; font-variant-numeric: tabular-nums; }\n.fd-seg-button[aria-pressed=\"true\"] { background: var(--fd-surface); color: var(--fd-text); box-shadow: 0 1px 2px rgba(15, 20, 25, 0.12); }\n.fd-seg-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-data-rows { display: grid; gap: 0; }\n.fd-data-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1px 8px; padding: 7px 2px; border-block-start: 1px solid var(--fd-border); font-size: 13px; align-items: center; }\n.fd-data-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-data-used { font-size: 11px; color: var(--fd-muted); }\n.fd-data-used.fd-data-on { color: var(--fd-success); }\n.fd-data-row code { grid-column: 1; font-size: 11px; color: var(--fd-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.fd-data-row .fd-button-link { grid-column: 2; justify-self: end; padding: 0; min-height: 0; font-size: 12px; }\n.fd-tool-find { font-size: 13px; margin: 0 4px 4px; width: auto; }\n.fd-tool-groups { display: grid; gap: 2px; }\n.fd-tool-heading {\n all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 6px; width: 100%; cursor: pointer; padding: 8px 8px 3px;\n font-size: 10.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fd-muted);\n}\n.fd-tool-heading:hover { color: var(--fd-text); }\n.fd-tool-heading:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; border-radius: 3px; }\n.fd-tool-count { font-weight: 600; }\n.fd-tool-caret { width: 0; height: 0; flex: none; border-inline: 3.5px solid transparent; border-top: 4px solid currentColor; transition: transform 0.12s ease; }\n.fd-tool-shut .fd-tool-caret { transform: rotate(-90deg); }\n[dir=\"rtl\"] .fd-tool-shut .fd-tool-caret { transform: rotate(90deg); }\n.fd-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; }\n.fd-tool {\n all: unset; box-sizing: border-box; cursor: grab; display: grid; grid-template-rows: 22px auto; place-items: center; align-content: start; row-gap: 4px;\n height: 60px; padding: 8px 3px 4px; border-radius: 7px; color: var(--fd-muted); min-width: 0; touch-action: none;\n}\n.fd-tool:hover { background: var(--fd-page); color: var(--fd-text); }\n.fd-tool:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: -2px; }\n.fd-tool:active { cursor: grabbing; }\n.fd-tool-model { color: var(--fd-accent); }\n.fd-tool .fd-dicon { width: 20px; height: 20px; }\n.fd-tool-name {\n font-size: 10.5px; line-height: 1.15; text-align: center; color: var(--fd-text); max-width: 100%; overflow: hidden;\n display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere;\n}\n.fd-tool-none { color: var(--fd-muted); font-size: 12.5px; margin: 4px 8px; }\n.fd-dicon { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }\n\n/* The canvas: the page as the viewer draws it, measured against its own width. */\n.fd-canvas-scroll { min-width: 0; }\n.fd-canvas { container-type: inline-size; display: grid; gap: 18px; min-width: 0; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: var(--fd-radius); padding: 22px 32px 30px; }\n/* A field's grip: six dots just beside it, shown when it is pointed at or picked. */\n.fd-card-grip {\n all: unset; box-sizing: border-box; position: absolute; top: 6px; inset-inline-start: -20px; width: 16px; height: 24px; display: grid; place-items: center;\n border-radius: 4px; color: var(--fd-muted); cursor: grab; opacity: 0; transition: opacity 120ms; touch-action: none;\n}\n.fd-card-grip > .fd-dicon { width: 14px; height: 14px; }\n.fd-canvas-field:hover > .fd-card-grip, .fd-canvas-field.fd-editing > .fd-card-grip, .fd-card-grip:focus-visible { opacity: 1; }\n.fd-card-grip:hover { background: var(--fd-page); color: var(--fd-text); }\n.fd-card-grip:active { cursor: grabbing; }\n@media (prefers-reduced-motion: reduce) { .fd-card-grip { transition: none; } }\n.fd-canvas-body { display: grid; gap: 26px; }\n.fd-canvas-title.fd-canvas-title-filled { color: var(--fd-text); }\n.fd-canvas-title { all: unset; box-sizing: border-box; cursor: pointer; font-size: 26px; font-weight: 650; line-height: 1.25; color: var(--fd-muted); padding: 8px 14px; border: 1px dashed var(--fd-border-strong); border-radius: var(--fd-radius); background: var(--fd-surface); }\n.fd-canvas-title:hover { color: var(--fd-text); }\n.fd-canvas-title.fd-canvas-selected { border-style: solid; border-color: var(--fd-accent); }\n/* A section pointed at or picked: a bar down its side, just outside it \u2014 never a frame round the frames of its fields. */\n.fd-canvas-section { border-radius: 6px; }\n.fd-canvas-section::before { content: \"\"; position: absolute; inset-block: 0; inset-inline-start: -12px; width: 3px; border-radius: 2px; background: transparent; pointer-events: none; }\n.fd-canvas-section:hover::before { background: var(--fd-border-strong); }\n.fd-canvas-section.fd-canvas-selected::before { background: var(--fd-accent); }\n/* At least 24px tall, a target a finger can hit (WCAG 2.5.8), however small the title's words \u2014 the extra\n height taken back by its margins, so the canvas lays out exactly as the form does. */\n.fd-canvas-section-title { all: unset; cursor: pointer; display: inline-block; min-height: 24px; margin-block: min(0px, calc((1lh - 24px) / 2)); }\n.fd-canvas-section-title:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n.fd-canvas-untitled { color: var(--fd-muted); font-weight: 500; font-style: italic; font-size: 13px; }\n.fd-canvas-section-title-input { font: inherit; color: inherit; border: 0; border-bottom: 1px dashed var(--fd-border-strong); background: none; padding: 0 0 1px; min-width: 12em; outline: none; }\n.fd-canvas-section-title-input:focus { border-bottom: 1px solid var(--fd-accent); }\n.fd-canvas-empty { color: var(--fd-muted); font-size: 13px; border: 1px dashed var(--fd-border); border-radius: 6px; padding: 16px; text-align: center; margin: 0; }\n/* A field's ring sits in the gap around it: picking or hovering one moves nothing. */\n.fd-canvas-field { position: relative; border-radius: 6px; cursor: pointer; padding: 6px 8px; margin: -6px -8px; }\n/* On the canvas a field is picked and moved, not read: pressing on its words starts a drag, not a selection. */\n.fd-canvas-field:not(.fd-editing), .fd-canvas-section-title, .fd-canvas.fd-dragging { user-select: none; -webkit-user-select: none; }\n.fd-canvas-field:hover { background: color-mix(in srgb, var(--fd-text) 4%, transparent); }\n/* Picked, the Google Forms way: tinted, with a bar down its side \u2014 no frame round its box's own frame. */\n.fd-canvas-field.fd-editing { background: var(--fd-accent-soft); box-shadow: inset 3px 0 0 var(--fd-accent); cursor: default; }\n.fd-canvas-field.fd-hidden-sometimes::after {\n content: \"only sometimes\"; position: absolute; top: 4px; inset-inline-end: 6px; font-size: 10.5px; font-weight: 600; line-height: 1.5;\n color: var(--fd-warning); background: var(--fd-warning-soft); border-radius: 4px; padding: 0 5px; pointer-events: none;\n}\n.fd-canvas-field.fd-editing.fd-hidden-sometimes::after { content: none; }\n.fd-canvas-label-row { display: flex; align-items: center; min-height: 1.45em; }\n.fd-canvas-label-input {\n font: inherit; font-weight: var(--fd-label-weight); color: var(--fd-text); border: 0; border-bottom: 1px dashed var(--fd-border-strong);\n background: none; padding: 0 0 1px; outline: none; max-width: 100%; min-width: 4ch; field-sizing: content; cursor: text;\n}\n.fd-canvas-label-input:focus { border-bottom: 2px solid var(--fd-accent); padding-bottom: 0; }\n/* Typed in where they stand, the line under the words is the focus: no ring round them too. */\n.fd-designer .fd-canvas-label-input:focus-visible, .fd-designer .fd-canvas-help-input:focus-visible, .fd-designer .fd-part-input:focus-visible, .fd-designer .fd-canvas-section-title-input:focus-visible { outline: none; }\n/* A picked choice's options: words on a line, as the survey's, not boxes in the picked field. */\n.fd-canvas-field .fd-q-option > .fd-input { border: 0; border-bottom: 1px solid var(--fd-border); border-radius: 0; background: none; box-shadow: none; padding-inline: 0; min-height: 30px; }\n.fd-canvas-field .fd-q-option > .fd-input:focus { border-bottom: 2px solid var(--fd-accent); }\n.fd-canvas-help-input { font: inherit; font-size: 12.5px; color: var(--fd-muted); border: 0; border-bottom: 1px dashed transparent; background: none; padding: 1px 0; outline: none; width: 100%; box-sizing: border-box; cursor: text; }\n.fd-canvas-help-input:hover, .fd-canvas-help-input:focus { border-bottom-color: var(--fd-border-strong); }\n.fd-canvas-help-input::placeholder { color: var(--fd-muted); opacity: 0.75; }\n.fd-canvas-field .fd-q-option-box { padding-block: 2px; }\n/* A kind's own settings, in the picked field: words and a line to type or pick on \u2014 no boxes in it. */\n.fd-inline-settings { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding-block: 4px 2px; font-size: 13px; color: var(--fd-muted); }\n.fd-inline-setting { display: inline-flex; align-items: center; gap: 6px; }\n.fd-inline-select, .fd-inline-input, .fd-inline-settings .fd-column > .fd-input {\n font: inherit; font-size: 13.5px; color: var(--fd-text); background: none; border: 0; border-bottom: 1px solid var(--fd-border-strong);\n border-radius: 0; box-shadow: none; padding: 2px 0; min-height: 0;\n}\n/* As tall as a finger needs (WCAG 2.5.8), however close the next setting sits. */\n.fd-inline-select { padding-inline-end: 2px; cursor: pointer; min-height: 24px; }\n.fd-inline-input { width: 12ch; }\n.fd-inline-currency { width: 4.5ch; text-transform: uppercase; }\n.fd-designer .fd-inline-select:focus-visible, .fd-designer .fd-inline-input:focus-visible, .fd-designer .fd-inline-settings .fd-column > .fd-input:focus-visible { outline: none; }\n.fd-inline-select:focus, .fd-inline-input:focus, .fd-inline-settings .fd-column > .fd-input:focus { border-bottom: 2px solid var(--fd-accent); padding-bottom: 1px; }\n.fd-inline-settings .fd-columns-box { width: 100%; justify-items: start; }\n.fd-inline-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; width: 100%; }\n/* A scale's end, its number then its words. */\n.fd-inline-end { display: flex; align-items: center; gap: 12px; width: 100%; max-width: 360px; }\n.fd-inline-end-number { min-width: 20px; color: var(--fd-text); font-variant-numeric: tabular-nums; }\n.fd-inline-end-words { flex: 1; width: auto; }\n/* Kinds of file, on or off. */\n.fd-inline-chips { display: flex; flex-wrap: wrap; gap: 6px; }\n.fd-inline-chip {\n all: unset; box-sizing: border-box; cursor: pointer; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; color: var(--fd-text);\n background: color-mix(in srgb, var(--fd-text) 6%, transparent);\n}\n.fd-inline-chip:hover { background: color-mix(in srgb, var(--fd-text) 10%, transparent); }\n.fd-inline-chip[aria-pressed=\"true\"] { background: var(--fd-accent-soft); color: var(--fd-accent); font-weight: 600; }\n.fd-inline-chip:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 1px; }\n.fd-inline-settings .fd-columns { width: 100%; }\n.fd-inline-settings .fd-column { grid-template-columns: minmax(0, 1fr) 110px 28px; }\n.fd-canvas-tabs-head { display: flex; align-items: flex-end; gap: 4px; }\n.fd-canvas-tabs-head > .fd-tablist { flex: 1; }\n.fd-canvas-tab.fd-canvas-selected { background: var(--fd-accent-soft); border-radius: 3px 3px 0 0; }\n.fd-canvas-tabs.fd-canvas-selected { outline: 2px solid var(--fd-accent); outline-offset: 6px; border-radius: 4px; }\n.fd-canvas-add-tab { all: unset; cursor: pointer; width: 28px; height: 28px; margin-block-end: 4px; display: grid; place-items: center; border-radius: 4px; color: var(--fd-muted); font-size: 18px; }\n.fd-canvas-add-tab:hover { background: var(--fd-page); color: var(--fd-accent); }\n.fd-canvas-add-tab:focus-visible, .fd-canvas-title:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n\n/* A record's header on the canvas: the viewer's own parts, picked by a click, with a quiet way to add each kind. */\n.fd-canvas-header { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; padding: 6px 0 12px; border-block-end: 1px solid var(--fd-border); }\n.fd-canvas-header-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }\n/* The record's gear menu over the header: its items in a row after the gear, a report under Print dashed. */\n.fd-canvas-menu { flex-basis: 100%; display: flex; align-items: center; gap: 8px; min-width: 0; }\n.fd-canvas-menu-gear { display: inline-flex; color: var(--fd-muted); }\n.fd-canvas-menu-gear .fd-dicon { width: 16px; height: 16px; }\n.fd-canvas-menu-items { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }\n.fd-canvas-menu-item { font: inherit; font-size: 12.5px; }\n.fd-canvas-menu-print { border-style: dashed; }\n.fd-canvas-header-card { display: grid; gap: 10px; justify-items: stretch; }\n/* Not at the card's edge here, as the viewer's are: no reaching out to it. */\n.fd-canvas .fd-canvas-stats { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; align-items: center; margin: 0; border-block-end: 0; }\n.fd-canvas-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }\n.fd-canvas-part { position: relative; cursor: pointer; outline-offset: 3px; }\n.fd-canvas-part:hover { box-shadow: 0 0 0 2px var(--fd-border); }\n/* Picked: its own edge turns the accent, one line, not a ring round it. */\n.fd-canvas-part.fd-editing { box-shadow: 0 0 0 2px var(--fd-accent); cursor: default; }\n.fd-canvas-part:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-canvas-statusbar { border-radius: 6px; min-width: 0; }\n.fd-canvas-statusbar .fd-canvas-widget { pointer-events: none; }\n.fd-part-input { font: inherit; color: inherit; background: none; border: 0; border-bottom: 1px dashed currentColor; padding: 0; outline: none; min-width: 4ch; field-sizing: content; cursor: text; }\n.fd-stat .fd-part-input { font-size: 12px; }\n.fd-part-bar { bottom: calc(100% + 8px); }\n.fd-canvas-add-part {\n all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; padding: 4px 9px; border-radius: 6px;\n border: 1px dashed var(--fd-border-strong); color: var(--fd-muted); font-size: 12.5px; white-space: nowrap;\n}\n.fd-canvas-add-part:hover { color: var(--fd-accent); border-color: var(--fd-accent); }\n.fd-canvas-add-part:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n.fd-canvas-add-part .fd-dicon { width: 13px; height: 13px; }\n\n/* The bar on the field being edited: just above it; over its group's name in a first row; below it right under the tabs. */\n.fd-field-bar {\n position: absolute; bottom: calc(100% + 8px); inset-inline-end: 0; z-index: 5; display: flex; align-items: center; gap: 1px; padding: 3px;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px; box-shadow: 0 6px 16px rgba(15, 20, 25, 0.14); cursor: default;\n}\n.fd-bar-below > .fd-field-bar { bottom: auto; top: calc(100% + 8px); }\n/* Nudged back inside the canvas when the field's far edge would put it past the near one: the canvas measures it. */\n.fd-canvas-field > .fd-field-bar { translate: var(--fd-bar-nudge, 0px) 0; }\n/* In a group's first row, over the group's name, which the canvas measures as --fd-name-room. */\n.fd-bar-over-name > .fd-field-bar { bottom: calc(100% + var(--fd-name-room, 0px) + 8px); }\n.fd-bar-button {\n all: unset; box-sizing: border-box; height: 26px; min-width: 26px; padding: 0 5px; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; gap: 5px;\n color: var(--fd-text); font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;\n}\n.fd-bar-button:hover { background: var(--fd-page); }\n.fd-bar-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-bar-button[aria-pressed=\"true\"] { background: var(--fd-accent-soft); color: var(--fd-accent); }\n.fd-bar-grip { cursor: grab; color: var(--fd-muted); touch-action: none; }\n.fd-bar-kind-icon { display: inline-flex; }\n.fd-bar-kind > .fd-dicon { width: 12px; height: 12px; color: var(--fd-muted); }\n.fd-bar-sep { width: 1px; align-self: stretch; background: var(--fd-border); margin: 3px 2px; }\n@container (max-width: 560px) { .fd-bar-kind-name { display: none; } }\n\n/* A menu of choices: the editor a field is shown with, or its width. */\n.fd-menu {\n position: fixed; z-index: 60; min-width: 220px; max-width: min(320px, calc(100vw - 16px)); max-height: min(440px, calc(100vh - 16px)); overflow: auto;\n background: var(--fd-surface); color: var(--fd-text); border: 1px solid var(--fd-border); border-radius: 10px; box-shadow: 0 18px 44px rgba(15, 20, 25, 0.18);\n padding: 6px; display: grid; gap: 1px;\n}\n.fd-menu-title, .fd-menu-heading { font-size: 10.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fd-muted); padding: 6px 8px 2px; }\n.fd-menu-item { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 9px; padding: 7px 9px; border-radius: 7px; font-size: 13.5px; cursor: pointer; }\n.fd-menu-item:hover, .fd-menu-item:focus-visible { background: var(--fd-page); }\n.fd-menu-item[aria-checked=\"true\"] { color: var(--fd-accent); font-weight: 600; }\n.fd-menu-item[aria-checked=\"true\"]::after { content: \"\u2713\"; margin-inline-start: auto; }\n.fd-menu-note { font-size: 12px; color: var(--fd-muted); margin: 4px 8px; line-height: 1.4; }\n.fd-menu { animation: fd-menu-in 120ms cubic-bezier(0, 0, 0.2, 1); transform-origin: top center; }\n@keyframes fd-menu-in { from { opacity: 0; transform: scale(0.94); } }\n.fd-menu-divider { height: 1px; background: var(--fd-border); margin: 5px -6px; }\n/* Google Forms' roomy menu: full-width rows, an icon on each, the choice tinted. */\n.fd-menu-roomy { padding: 8px 0; min-width: 224px; border-radius: 6px; }\n.fd-menu-roomy .fd-menu-title { padding: 4px 16px 6px; }\n.fd-menu-roomy .fd-menu-item { min-height: 44px; padding: 0 16px; gap: 16px; border-radius: 0; font-size: 14px; }\n.fd-menu-roomy .fd-menu-item > .fd-dicon { width: 22px; height: 22px; color: var(--fd-muted); flex: none; }\n.fd-menu-roomy .fd-menu-item[aria-checked=\"true\"] { background: var(--fd-accent-soft); }\n.fd-menu-roomy .fd-menu-item[aria-checked=\"true\"] > .fd-dicon { color: var(--fd-accent); }\n.fd-menu-roomy .fd-menu-divider { margin: 8px 0; }\n@media (prefers-reduced-motion: reduce) { .fd-menu { animation: none; } }\n\n/* Dragging: a chip with its name follows the pointer; a gap its size opens where it lands, the others moving aside. */\n.fd-drag-ghost.fd-drag-chip {\n position: fixed; z-index: 100; pointer-events: none; margin: 0; max-width: 260px; padding: 6px 12px; box-sizing: border-box;\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--fd-text);\n background: var(--fd-surface); border: 1px solid var(--fd-accent); border-radius: 8px; box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);\n}\n.fd-drop-slot {\n box-sizing: border-box; min-height: 44px; border: 2px dashed var(--fd-accent); border-radius: 8px; background: var(--fd-accent-soft);\n grid-column: span min(var(--fd-span, 1), var(--fd-columns, 1));\n}\n.fd-canvas-field.fd-drag-source { display: none; }\n.fd-drag-source-dim { opacity: 0.35; }\n.fd-drop-marker { position: fixed; z-index: 99; pointer-events: none; background: var(--fd-accent); border-radius: 2px; }\n.fd-canvas-section { position: relative; }\n/* With the gap in it, an empty section says nothing about being empty. */\n.fd-canvas-section:has(.fd-drop-slot) .fd-canvas-empty { display: none; }\n\n.fd-props { display: grid; gap: 10px; }\n.fd-prop { display: grid; gap: 4px; }\n.fd-prop-name { font-size: 12.5px; color: var(--fd-muted); }\n.fd-props .fd-q-option-box { padding-inline-start: 2px; }\n.fd-columns-box { display: grid; gap: 6px; }\n.fd-columns { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }\n.fd-column { display: grid; grid-template-columns: minmax(0, 1fr) 104px 28px; gap: 6px; align-items: center; }\n.fd-props-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-block-start: 4px; border-block-start: 1px solid var(--fd-border); }\n.fd-properties-hint { color: var(--fd-muted); font-size: 13px; margin: 0; }\n.fd-kind-note { font-size: 12px; margin-block-start: -4px; }\n.fd-prop-when { gap: 6px; justify-items: start; }\n.fd-q-required-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }\n\n/* ---- The survey, the Google Forms way ------------------------------------------------------------\n On a page tinted with the accent: a card heading the form, then quiet white cards 8px round, 24px in,\n 12px apart, no wider than 770px. The card picked lifts, a 6px bar down its side; its words sit in a\n filled box whose line grows from the middle; its tools are beside it, following it down the page. */\n.fd-survey-canvas { background: color-mix(in srgb, var(--fd-accent) 8%, var(--fd-surface)); border-radius: var(--fd-radius); padding: 16px 68px 28px 16px; padding-inline: 16px 68px; }\n.fd-survey-column { position: relative; width: 100%; max-width: 770px; margin-inline: auto; display: grid; gap: 12px; }\n.fd-survey-column > .fd-button { justify-self: start; }\n.fd-line { position: relative; display: block; border-block-end: 1px solid transparent; }\n.fd-line > input { font: inherit; color: inherit; background: none; border: 0; outline: none; width: 100%; box-sizing: border-box; padding: 6px 0; margin: 0; }\n.fd-line > input::placeholder { color: var(--fd-muted); }\n/* The growing line is the focus here, as in Google Forms: no ring around it too. */\n.fd-designer .fd-line > input:focus, .fd-designer .fd-line > input:focus-visible { outline: none; box-shadow: none; }\n.fd-line:hover { border-block-end-color: var(--fd-border); }\n.fd-line::after { content: \"\"; position: absolute; inset-inline: 0; bottom: -1px; height: 2px; background: var(--fd-accent); transform: scaleX(0); transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1); }\n.fd-line:focus-within::after { transform: scaleX(1); }\n.fd-survey-head { position: relative; display: grid; gap: 6px; background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px; padding: 26px 24px 22px; }\n.fd-survey-head::before { content: \"\"; position: absolute; top: -1px; inset-inline: -1px; height: 10px; background: var(--fd-accent); border-radius: 8px 8px 0 0; }\n.fd-survey-head-title { font-size: 32px !important; line-height: 1.25; }\n.fd-survey-head-description { font-size: 14px !important; }\n.fd-survey-canvas .fd-designer-pages { gap: 12px; }\n/* A page: its own card, its number on a tab over it. */\n.fd-survey-canvas .fd-design-step { background: none; border: 0; padding: 0; gap: 12px; border-radius: 0; }\n.fd-survey-canvas .fd-step-head {\n position: relative; display: grid; gap: 8px; margin-block-start: 30px; padding: 18px 24px 20px;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 0 8px 8px 8px;\n}\n.fd-survey-canvas .fd-step-number { position: absolute; bottom: 100%; inset-inline-start: -1px; border-radius: 8px 8px 0 0; padding: 5px 14px; font-size: 13px; font-weight: 500; }\n.fd-step-head-row { display: flex; gap: 8px; align-items: center; }\n.fd-step-title-box { flex: 1; min-width: 0; }\n.fd-survey-canvas .fd-step-title { font-size: 22px; font-weight: 400; }\n.fd-survey-canvas .fd-step-selected { border: 0; }\n.fd-survey-canvas .fd-step-selected > .fd-step-head { box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); }\n.fd-survey-canvas .fd-step-selected > .fd-step-head::after { content: \"\"; position: absolute; inset-block: -1px; inset-inline-start: -1px; width: 6px; background: var(--fd-accent); border-end-start-radius: 8px; }\n.fd-survey-canvas .fd-step-cards { gap: 12px; }\n.fd-survey-canvas .fd-add-question { justify-self: start; color: var(--fd-muted); }\n.fd-survey-canvas .fd-add-question:hover { color: var(--fd-accent); }\n/* A question: flat until picked. */\n.fd-survey-canvas .fd-q { border: 1px solid var(--fd-border); border-radius: 8px; padding: 24px; gap: 12px; }\n.fd-survey-canvas .fd-q-closed:hover { border-color: var(--fd-border); }\n.fd-survey-canvas .fd-q-title { font-size: 16px; }\n.fd-survey-canvas .fd-q-selected { padding-block-start: 24px; box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); }\n.fd-survey-canvas .fd-q-selected::before { content: \"\"; position: absolute; inset-block: -1px; inset-inline-start: -1px; width: 6px; background: var(--fd-accent); border-start-start-radius: 8px; border-end-start-radius: 8px; }\n/* The six dots, across the top, only where the pointer is. */\n.fd-survey-canvas .fd-q-grip { top: 0; height: 24px; transform: translateX(-50%) rotate(90deg); opacity: 0; transition: opacity 150ms; }\n.fd-survey-canvas .fd-q:hover .fd-q-grip, .fd-survey-canvas .fd-q-grip:focus-visible { opacity: 1; }\n.fd-survey-canvas .fd-q-head { gap: 16px; align-items: start; }\n.fd-q-label-box { background: color-mix(in srgb, var(--fd-text) 3%, var(--fd-surface)); border-block-end: 1px solid var(--fd-muted); border-radius: 4px 4px 0 0; }\n.fd-q-label-box:hover { border-block-end-color: var(--fd-text); }\n.fd-q-label-box > .fd-q-label { padding: 16px; min-height: 56px; font-size: 16px; }\n.fd-q-help-box { border-block-end-color: var(--fd-border); }\n.fd-q-help-box > .fd-q-help { font-size: 14px; }\n.fd-survey-canvas .fd-q-kind { min-height: 48px; min-width: 222px; padding: 0 14px; gap: 12px; border-radius: 4px; font-weight: 500; }\n.fd-survey-canvas .fd-q-kind-icon .fd-dicon { color: var(--fd-muted); }\n/* What goes in the answer, said on a dotted line. */\n.fd-q-preview { color: var(--fd-muted); font-size: 14px; padding-block: 8px 6px; border-block-end: 1px dotted color-mix(in srgb, var(--fd-text) 38%, transparent); width: min(50%, 380px); }\n.fd-q-preview-long { width: min(80%, 600px); }\n.fd-q-preview-date { display: flex; align-items: center; justify-content: space-between; gap: 8px; }\n.fd-q-preview-date > .fd-dicon { width: 18px; height: 18px; flex: none; }\n/* On a canvas, the designer's own buttons and switches keep the page's look: each kind of part's own is the form's \u2014\n its answers' widgets, the buttons over a record, and a button block (drawn as a span, not a button). */\n.fd-look-worn.fd-form button:is(.fd-button, .fd-switch):not(.fd-q-answer *, .fd-canvas-widget *, .fd-canvas-header-actions *) {\n --fd-accent: inherit; --fd-accent-text: inherit; --fd-focus: inherit; --fd-buttons-radius: var(--fd-control-radius); --fd-buttons-size: 1em;\n}\n/* The line wears the text boxes' own look, as the form's boxes will: their ground behind it, their edge for its line, their corners and size of words. */\n.fd-survey-canvas[data-inputs~=bg] :is(.fd-q-preview-short, .fd-q-preview-long) { background: var(--fd-inputs-bg); padding-inline: 8px; }\n.fd-survey-canvas[data-inputs~=border] :is(.fd-q-preview-short, .fd-q-preview-long) { border-block-end: 1px solid var(--fd-inputs-border); }\n.fd-survey-canvas[data-inputs~=radius] :is(.fd-q-preview-short, .fd-q-preview-long) { border-radius: var(--fd-inputs-radius); }\n.fd-survey-canvas[data-inputs~=size] :is(.fd-q-preview-short, .fd-q-preview-long) { font-size: var(--fd-inputs-size); }\n.fd-q-preview-list { list-style: none; margin: 0; padding: 0; border: 0; width: auto; display: grid; gap: 10px; color: var(--fd-text); }\n/* Where answers lead: the pages on one line, those for some answers off it and back. */\n.fd-branch-map { background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px; padding: 10px 16px 12px; min-width: 0; }\n.fd-branch-summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--fd-muted); }\n.fd-branch-summary:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; border-radius: 4px; }\n.fd-branch-scroll { overflow-x: auto; margin-block-start: 10px; }\n.fd-branch-svg { display: block; height: auto; }\n.fd-branch-edge { fill: none; stroke: var(--fd-muted); stroke-width: 1.5; }\n.fd-branch-off { stroke: var(--fd-warning); }\n.fd-branch-head { fill: var(--fd-muted); }\n.fd-branch-box { fill: var(--fd-surface); stroke: var(--fd-border-strong); stroke-width: 1; transition: stroke 120ms; }\n.fd-branch-page { cursor: pointer; outline: none; }\n.fd-branch-page:hover .fd-branch-box, .fd-branch-page:focus-visible .fd-branch-box { stroke: var(--fd-accent); }\n.fd-branch-page:focus-visible .fd-branch-box { stroke-width: 2; }\n.fd-branch-page.fd-picked .fd-branch-box { fill: var(--fd-accent-soft); stroke: var(--fd-accent); stroke-width: 2; }\n.fd-branch-title { fill: var(--fd-text); font-size: 14px; font-weight: 600; }\n.fd-branch-when { fill: var(--fd-warning); font-size: 12.5px; font-weight: 600; }\n@media (prefers-reduced-motion: reduce) { .fd-branch-box { transition: none; } }\n/* Options: a ring or a box, the words on a line that shows when pointed at, \u00D7 at the end. */\n.fd-survey-canvas .fd-q-options { gap: 0; }\n.fd-survey-canvas .fd-q-option { min-height: 44px; gap: 12px; }\n.fd-survey-canvas .fd-q-bullet { font-size: 0; flex: none; width: 20px; height: 20px; box-sizing: border-box; border: 2px solid var(--fd-border-strong); border-radius: 50%; }\n.fd-survey-canvas [data-multiple] .fd-q-bullet { border-radius: 3px; }\n.fd-survey-canvas .fd-q-option > .fd-input { flex: 1; min-width: 0; border: 0; border-block-end: 1px solid transparent; border-radius: 0; background: none; box-shadow: none; padding: 6px 0; min-height: 0; font-size: 14.5px; }\n.fd-survey-canvas .fd-q-option > .fd-input:hover { border-block-end-color: var(--fd-border); }\n.fd-survey-canvas .fd-q-option > .fd-input:focus { border-block-end: 2px solid var(--fd-accent); padding-block-end: 5px; outline: none; box-shadow: none; }\n.fd-survey-canvas .fd-q-option > .fd-icon-button { opacity: 0.55; font-size: 20px; }\n.fd-survey-canvas .fd-q-option > .fd-icon-button:hover { opacity: 1; }\n.fd-survey-canvas .fd-q-option-box { gap: 0; }\n.fd-survey-canvas .fd-q-add-row { min-height: 44px; gap: 6px; }\n/* The ghost of the next option: an empty ring, box or number before \"Add option\", as Google Forms draws it. */\n.fd-survey-canvas .fd-q-add-option { display: inline-flex; align-items: center; gap: 12px; color: var(--fd-muted) !important; text-decoration: none; }\n.fd-survey-canvas .fd-q-add-option::before { content: \"\"; flex: none; width: 20px; height: 20px; box-sizing: border-box; border: 2px solid var(--fd-border); border-radius: 50%; }\n.fd-survey-canvas [data-multiple] .fd-q-add-option::before { border-radius: 3px; }\n.fd-survey-canvas [data-numbered] .fd-q-add-option::before { content: var(--fd-next-number, \"\"); border: 0; width: auto; min-width: 20px; height: auto; font-size: 14px; color: var(--fd-muted); }\n/* Pointed at: a line grows under its words, past the ring \u2014 a box never. */\n.fd-survey-canvas .fd-q-add-option { background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 32px 100%; padding-bottom: 3px !important; transition: background-size 200ms; }\n.fd-survey-canvas .fd-q-add-option:hover { color: var(--fd-text) !important; text-decoration: none !important; background-size: calc(100% - 32px) 1px; }\n.fd-survey-canvas .fd-q-add-other { color: var(--fd-accent); }\n.fd-survey-canvas [data-numbered] .fd-q-bullet { font-size: 14px; border: 0; border-radius: 0; width: auto; min-width: 20px; height: auto; color: var(--fd-text); }\n.fd-survey-canvas .fd-q-option-other { min-height: 44px; gap: 12px; }\n@media (prefers-reduced-motion: reduce) { .fd-survey-canvas .fd-q-add-option { transition: none; } }\n/* The foot: copy, delete, a line, Required, \u22EE \u2014 at the end, as Google Forms has them. */\n.fd-survey-canvas .fd-q-foot { justify-content: flex-end; gap: 2px; min-height: 48px; padding-block-start: 8px; margin-block-start: 4px; }\n.fd-q-tool { all: unset; box-sizing: border-box; width: 40px; height: 40px; border-radius: 50%; display: inline-grid; place-items: center; color: var(--fd-muted); cursor: pointer; transition: background-color 150ms; }\n.fd-q-tool:hover, .fd-q-tool[aria-expanded=\"true\"] { background: color-mix(in srgb, var(--fd-text) 7%, transparent); color: var(--fd-text); }\n.fd-q-tool:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-q-tool > .fd-dicon { width: 21px; height: 21px; }\n.fd-q-tool-danger:hover { color: var(--fd-error); }\n.fd-survey-canvas .fd-q-sep { height: 32px; margin-inline: 10px; }\n.fd-survey-canvas .fd-q-required-words { font-size: 14px; font-weight: 500; margin-inline-end: 8px; }\n.fd-survey-canvas .fd-q-foot .fd-switch { margin-inline-end: 6px; }\n/* The tools beside the card picked, level with its top, sliding to the next one picked. */\n.fd-q-rail {\n position: absolute; top: 0; inset-inline-start: calc(100% + 12px); z-index: 4; display: grid; gap: 2px; padding: 4px;\n background: var(--fd-surface); border: 1px solid var(--fd-border); border-radius: 8px;\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n transform: translateY(var(--fd-rail-y, 0px)); transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.fd-rail-button { all: unset; box-sizing: border-box; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: var(--fd-muted); cursor: pointer; }\n.fd-rail-button:hover { background: color-mix(in srgb, var(--fd-text) 7%, transparent); color: var(--fd-text); }\n.fd-rail-button:focus-visible { outline: 2px solid var(--fd-focus); }\n.fd-rail-button > .fd-dicon { width: 22px; height: 22px; }\n@container (max-width: 620px) {\n .fd-survey-canvas { padding-inline: 10px; }\n /* A question's words the width of its card, its kind under them. */\n .fd-survey-canvas .fd-q-head { grid-template-columns: minmax(0, 1fr); gap: 10px; }\n .fd-survey-canvas .fd-q-kind { min-width: 0; justify-self: start; }\n .fd-q-rail { position: sticky; bottom: 12px; inset-inline-start: auto; justify-self: center; display: flex; transform: none; }\n}\n@media (prefers-reduced-motion: reduce) { .fd-line::after, .fd-q-rail, .fd-survey-canvas .fd-q-grip { transition: none; } }\n.fd-props > .fd-prop > .fd-button { justify-self: start; }\n/* Rows 24px apart at least, so each small box has room round it (WCAG 2.5.8). */\n.fd-list-search-fields { display: flex; flex-wrap: wrap; gap: 8px 14px; }\n.fd-list-filters { display: grid; gap: 8px; }\n.fd-list-filter { margin: 0; display: grid; gap: 6px; padding: 8px; border: 1px solid var(--fd-border); border-radius: 6px; min-width: 0; }\n.fd-list-filter-condition { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 6px; }\n.fd-list-filter-value { display: contents; }\n.fd-list-filter-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }\n.fd-chips { display: flex; flex-wrap: wrap; gap: 6px; }\n.fd-chips:empty { display: none; }\n.fd-chip { display: inline-flex; align-items: center; gap: 4px; padding-block: 2px; padding-inline: 8px 2px; border-radius: 4px; background: var(--fd-success-soft); color: var(--fd-success); font-size: 13px; }\n.fd-chip-remove { all: unset; cursor: pointer; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 3px; font-size: 15px; line-height: 1; }\n.fd-chip-remove:hover, .fd-chip-remove:focus-visible { background: var(--fd-surface); }\n\n/* A list on the canvas: the viewer's own list, its columns picked by a click and carried along the row. */\n.fd-list-canvas .fd-canvas-search { cursor: pointer; border-radius: var(--fd-control-radius); }\n.fd-list-canvas .fd-canvas-search:hover .fd-search-field { border-color: var(--fd-accent); }\n.fd-list-canvas .fd-canvas-search:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px; }\n.fd-search-placeholder { color: var(--fd-muted); font-size: 14px; padding: 5px 4px; }\n.fd-canvas-selection { display: flex; }\n.fd-canvas-selection-hint { color: var(--fd-muted); font-size: 12.5px; margin-inline-end: 4px; }\n.fd-canvas-list-actions { display: contents; }\n.fd-canvas-list-scroll { position: relative; }\n.fd-list-canvas .fd-list-table th.fd-canvas-column { position: relative; cursor: grab; user-select: none; }\n.fd-list-canvas .fd-list-table th.fd-canvas-column:hover { background: var(--fd-page); }\n.fd-list-canvas .fd-list-table th.fd-canvas-column:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: -2px; }\n.fd-list-canvas .fd-list-table th.fd-picked { box-shadow: inset 0 0 0 2px var(--fd-accent); background: var(--fd-accent-soft); }\n.fd-list-canvas .fd-list-table td.fd-picked { background: var(--fd-accent-soft); }\n.fd-list-canvas .fd-list-table td { cursor: pointer; }\n/* Narrower than the running list, so a list's columns fit beside the toolbox and the panel. */\n.fd-list-canvas .fd-list-table td, .fd-list-canvas .fd-list-table th.fd-canvas-column { max-width: 12em; overflow: hidden; text-overflow: ellipsis; }\n.fd-list-canvas .fd-list-table .fd-list-checkbox { cursor: default; }\n.fd-list-canvas .fd-list-row:hover td { background: none; }\n.fd-list-canvas .fd-list-row:hover td.fd-picked { background: var(--fd-accent-soft); }\n.fd-column-bar { bottom: auto; top: calc(100% + 6px); inset-inline-end: auto; inset-inline-start: 0; }\n/* \"+ Column\" stays at the row's end however far the table scrolls. */\n.fd-list-canvas .fd-list-table .fd-canvas-add-column { position: sticky; inset-inline-end: 0; z-index: 1; width: 1%; padding-inline: 8px; background: var(--fd-surface); border-inline-start: 1px solid var(--fd-border); box-shadow: -6px 0 8px -6px rgba(15, 23, 42, 0.18); }\n.fd-canvas-add-column .fd-canvas-add-part { padding: 2px 6px; font-weight: 400; border: 0; color: var(--fd-accent); }\n.fd-canvas.fd-dragging .fd-list-table th.fd-canvas-column { cursor: grabbing; }\n/* After the panel rules, so these win when the editor is narrow: the toolbox and the panel stack around the canvas. */\n@container (max-width: 1000px) {\n .fd-screen-body { grid-template-columns: minmax(0, 1fr); }\n .fd-toolbox, .fd-properties, .fd-rail { position: static; max-height: none; }\n .fd-tools { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); }\n}\n@media (prefers-reduced-motion: reduce) { .fd-properties.fd-flash { animation: none; } .fd-tool-caret { transition: none; } }\n";
3
+ export declare function installDesignerStyles(document: Document): void;