@povio/ui 4.0.3 → 5.0.0-rc.10

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 (436) hide show
  1. package/.rulesync/rules/ui-buttons-and-content.md +56 -0
  2. package/.rulesync/rules/ui-inputs-and-forms.md +62 -0
  3. package/.rulesync/rules/ui-overlays-navigation-and-styling.md +49 -0
  4. package/.rulesync/rules/ui-overview.md +33 -0
  5. package/README.md +128 -10
  6. package/dist/{Accordion-CB1F5YAY.js → Accordion-BzwO4_ml.js} +22 -140
  7. package/dist/{Alert-BALBsBrP.js → Alert-CnvEb1D_.js} +34 -30
  8. package/dist/{Alert-CbEhRaU5.d.ts → Alert-DfiJbKH0.d.ts} +4 -3
  9. package/dist/{AlertDialog-PjYM6lDo.d.ts → AlertDialog-OWTbR4km.d.ts} +3 -3
  10. package/dist/AppCanvasPage-BEER5hHp.js +2421 -0
  11. package/dist/AppCanvasPage-BIFYeEeS.d.ts +80 -0
  12. package/dist/{Autocomplete-DE2lQi5o.d.ts → Autocomplete-C6RRxImn.d.ts} +1 -1
  13. package/dist/{Badge-CjPpYa50.d.ts → Badge-CBNpj823.d.ts} +8 -6
  14. package/dist/BadgeButton-Ccgt3oGO.d.ts +15 -0
  15. package/dist/{BottomSheet-CVTF1wQe.js → BottomSheet-BXLE3161.js} +15 -14
  16. package/dist/{BottomSheet-CT0zuola.d.ts → BottomSheet-DbQuzfAB.d.ts} +1 -1
  17. package/dist/{BottomSheet.lazy-7AwnB4vS.d.ts → BottomSheet.lazy-D9LCEo7s.d.ts} +1 -1
  18. package/dist/{Breadcrumbs-D-3YEuem.d.ts → Breadcrumbs-CUV6CU8Q.d.ts} +1 -1
  19. package/dist/{Breadcrumbs-C-mZtdCc.js → Breadcrumbs-FF8hMfXd.js} +26 -42
  20. package/dist/Button-C5rv4Cr2.js +506 -0
  21. package/dist/{Button-DTNjsGx5.d.ts → Button-D-4qb0IR.d.ts} +3 -3
  22. package/dist/{ButtonContent-CohuJJzG.js → ButtonContent-c7lJayVQ.js} +12 -10
  23. package/dist/{Calendar-BYcN64W5.js → Calendar-DRHruqr_.js} +28 -20
  24. package/dist/{CheckContent-DzWpxKGq.js → CheckContent-D7sZPmzx.js} +4 -5
  25. package/dist/{Checkbox-DBV_Nxtq.js → Checkbox-D3f2Plbc.js} +6 -6
  26. package/dist/{Checkbox-CBybJbLm.d.ts → Checkbox-x2MuL477.d.ts} +1 -1
  27. package/dist/{CheckboxCheckmark-DJue5Aej.js → CheckboxCheckmark-FwKjPVbV.js} +34 -55
  28. package/dist/{CheckboxGroup-4xoWgmxr.d.ts → CheckboxGroup-Dio2rvF5.d.ts} +3 -3
  29. package/dist/ComponentGallery-CMFrbwEN.js +3513 -0
  30. package/dist/{DatePicker-CjmXaZ9T.d.ts → DatePicker-1LJ2LqST.d.ts} +3 -3
  31. package/dist/{DatePicker-DGlMtlvy.js → DatePicker-xDEqzNJv.js} +12 -11
  32. package/dist/{DatePickerInput-Nj_rVUyU.js → DatePickerInput-B0fEeCOf.js} +27 -40
  33. package/dist/{DatePickerInput-CdCtVE9z.d.ts → DatePickerInput-ai4apf8B.d.ts} +3 -3
  34. package/dist/{DateRangePicker-D1kjkFfS.d.ts → DateRangePicker-Dfptit_Z.d.ts} +3 -3
  35. package/dist/{DateRangePicker-CE9XvAy9.js → DateRangePicker-DxuVhRaf.js} +25 -22
  36. package/dist/{DateTimePicker-CtUPjVp1.js → DateTimePicker-4N1Pka07.js} +11 -10
  37. package/dist/{DateTimePicker-CT_Pm3KB.d.ts → DateTimePicker-DpsfukpQ.d.ts} +3 -3
  38. package/dist/{Dialog-BE9BSDDl.js → Dialog-9manOgMA.js} +4 -4
  39. package/dist/{Dialog-CXoVeIkU.js → Dialog-CKLkS00H.js} +10 -2
  40. package/dist/{Dialog-DEbI_9S-.d.ts → Dialog-CW93T9X1.d.ts} +3 -2
  41. package/dist/{DropdownMenu-tuf1W-IL.js → DropdownMenu-5jmtgLXd.js} +8 -6
  42. package/dist/{DropdownMenu-CZQRzOBb.d.ts → DropdownMenu-JNpYT4-3.d.ts} +4 -3
  43. package/dist/{DropdownMenuDesktop-C9ttysuk.js → DropdownMenuDesktop-Cl9gZVq0.js} +9 -38
  44. package/dist/{FileInput-BUs7wL0_.js → FileInput-DUyc_sVu.js} +20 -22
  45. package/dist/{FileInput-CI8D_wf_.d.ts → FileInput-Dt3UDg2s.d.ts} +7 -6
  46. package/dist/{FileTrigger-CDXcQthK.js → FileTrigger-Cthk5_Wp.js} +1 -30
  47. package/dist/{FileUpload-BrnJdN3M.d.ts → FileUpload-BXlKtQ4L.d.ts} +1 -1
  48. package/dist/{FileUpload-C3HzeFeb.js → FileUpload-Cx98L1jz.js} +76 -173
  49. package/dist/{FileUploadContainer-CkBENy6n.d.ts → FileUploadContainer-BURZAS2M.d.ts} +1 -1
  50. package/dist/{Form-mzpVGNjX.d.ts → Form-DmcByQts.d.ts} +1 -1
  51. package/dist/{FormField-DTO2cbXC.js → FormField-9h3JAhaY.js} +40 -38
  52. package/dist/{FormField-DTDj3F0A.d.ts → FormField-C8_T6by9.d.ts} +1 -1
  53. package/dist/{FormFieldError-CFg0Wn3i.js → FormFieldError-DeOHHLo2.js} +3 -3
  54. package/dist/FormFieldHeaderTooltip-BV2Ju4oB.js +17 -0
  55. package/dist/{IconButton-CYazzM7I.d.ts → IconButton-D4thBurp.d.ts} +2 -2
  56. package/dist/IconSlot-DSK7qNxc.js +79 -0
  57. package/dist/{InlineIconButton-Rp5bXWcQ.d.ts → InlineIconButton-BeJCjl-q.d.ts} +2 -2
  58. package/dist/{InlineTooltipWrapper-Ct6zi24f.js → InlineTooltipWrapper-BpApaGXV.js} +3 -3
  59. package/dist/{Input-DSHFNEVl.d.ts → Input-CHD67H4o.d.ts} +3 -3
  60. package/dist/{InputContent-CvWm6GAv.d.ts → InputContent-B6CIQNnE.d.ts} +3 -3
  61. package/dist/{InputItem-DAunP0iy.js → InputItem-Cv19Hwnx.js} +11 -11
  62. package/dist/{Inputs-CHEDcuP0.d.ts → Inputs-C0sUmuPv.d.ts} +1 -1
  63. package/dist/{Inputs-_IqA6JRE.js → Inputs-D1aE_J9f.js} +1 -1
  64. package/dist/{Link-DS9-0Ijl.d.ts → Link-Ow9H7kNv.d.ts} +3 -2
  65. package/dist/{ListBox-B7DW1S7n.js → ListBox-CL8Ar4Q_.js} +5 -4
  66. package/dist/{MenuItem-CROWrE2A.d.ts → MenuItem-DHyqOqln.d.ts} +1 -1
  67. package/dist/{Modal-CoFt5PGP.js → Modal-w60dVQcb.js} +1 -1
  68. package/dist/{NumberField-BICDQ2gN.d.ts → NumberField-4SX3R6IR.d.ts} +3 -3
  69. package/dist/{NumberRangeInput-Bu-3Y0zf.js → NumberRangeInput-Bzfe-RlV.js} +8 -8
  70. package/dist/{NumberRangeInput-BlGXChNR.d.ts → NumberRangeInput-CKmLfgVD.d.ts} +2 -2
  71. package/dist/{Pagination-CumQED8X.d.ts → Pagination-CwQu5Py8.d.ts} +1 -1
  72. package/dist/{PaginationList-D79ApWLm.d.ts → PaginationList-DMRUGtf8.d.ts} +2 -2
  73. package/dist/{PaginationList-CmOJo2r2.js → PaginationList-DtvuP63b.js} +13 -21
  74. package/dist/{PasswordInput-BdrYD1D3.d.ts → PasswordInput-tLGcHS6H.d.ts} +1 -1
  75. package/dist/{Popover-C0_-TLl_.d.ts → Popover-BTHPteIh.d.ts} +2 -2
  76. package/dist/{Progress-_jkt2pQw.js → Progress-B3mY9rIP.js} +6 -7
  77. package/dist/{Progress-CYfDXJKs.d.ts → Progress-CjWOR38H.d.ts} +3 -2
  78. package/dist/{QuerySelect-Bpz-qI9h.d.ts → QuerySelect-CgfnA3d-.d.ts} +2 -2
  79. package/dist/{RadioGroup-WHWosz7K.d.ts → RadioGroup-CvmI9i_U.d.ts} +3 -3
  80. package/dist/{RadioGroup-DiF7ILto.js → RadioGroup-efBKgTYA.js} +21 -24
  81. package/dist/{RichTextEditor-eM9d2umr.js → RichTextEditor-Bd7F5D8f.js} +68 -141
  82. package/dist/{RichTextEditor-CbgjRfiU.d.ts → RichTextEditor-CsDZcgyf.d.ts} +1 -1
  83. package/dist/{Select-CyBtGHk9.js → Select-CgIhoWgk.js} +10 -15
  84. package/dist/{Select-wzB2aQ_X.d.ts → Select-DKBPfNUe.d.ts} +1 -1
  85. package/dist/{SelectBase-DefgAEzh.d.ts → SelectBase-BkIhS9Dg.d.ts} +3 -3
  86. package/dist/{Slider-CZMNmk6P.d.ts → Slider-BtUXzztJ.d.ts} +1 -1
  87. package/dist/{Slider-KkWtEm09.js → Slider-CMg0BXJO.js} +12 -12
  88. package/dist/{Spinner-owSXOEzg.js → Spinner-BeVTUzzx.js} +2 -2
  89. package/dist/{Spinner-BOgO9bS6.d.ts → Spinner-DbXeDOa2.d.ts} +3 -2
  90. package/dist/{SplitButton-BPZbQeYC.d.ts → SplitButton-D9ngY1rJ.d.ts} +3 -3
  91. package/dist/{Stepper-BbO9TlOM.js → Stepper-Cp5vbL5g.js} +9 -125
  92. package/dist/{Stepper-PcHlxDD5.d.ts → Stepper-TATlHZhQ.d.ts} +13 -12
  93. package/dist/{Switch-Cylpjatb.js → Switch-CqnGEdeD.js} +17 -25
  94. package/dist/{Switch-C0S5Juhf.d.ts → Switch-s_EPn0Jz.d.ts} +1 -1
  95. package/dist/Table-BN2_J_Ne.js +636 -0
  96. package/dist/Tag-AHfV_XSf.d.ts +44 -0
  97. package/dist/Tag-DPg5sL1Z.js +146 -0
  98. package/dist/{TextArea-CBWJ7w-p.d.ts → TextArea-D6kcAwGn.d.ts} +2 -2
  99. package/dist/{TextArea-DvqDGp4M.js → TextArea-uPffb457.js} +9 -9
  100. package/dist/{TextButton-D7e_YBLe.d.ts → TextButton-XUhV_1s0.d.ts} +4 -4
  101. package/dist/{TimePicker-WirUMDrH.js → TimePicker-DN-i98z5.js} +12 -12
  102. package/dist/{TimePicker-BZ4WrI5Z.d.ts → TimePicker-Dex9aU7D.d.ts} +2 -2
  103. package/dist/Toast-DtG3pA61.js +53 -0
  104. package/dist/{Toast-DIlYlUQk.d.ts → Toast-ruXqONDA.d.ts} +1 -1
  105. package/dist/{ToastContainer-8X5jGBe7.js → ToastContainer-qgpzMFD4.js} +4 -3
  106. package/dist/{ToggleButton-D4y2fLmN.d.ts → ToggleButton-7aP8Jb11.d.ts} +2 -2
  107. package/dist/{ToggleGroup-D9CFdM5-.d.ts → ToggleGroup-CRFDIPGZ.d.ts} +1 -1
  108. package/dist/{ToggleGroup-BK6Ka7WA.js → ToggleGroup-DmVPNWok.js} +27 -55
  109. package/dist/{Tooltip--PSxkQA3.js → Tooltip-CpG1nz7Y.js} +7 -49
  110. package/dist/{Tooltip-B-2AxyjP.d.ts → Tooltip-DHv6vAqW.d.ts} +10 -9
  111. package/dist/{TooltipWrapper-BVc_Aln-.js → TooltipWrapper-CDHFaUKZ.js} +5 -5
  112. package/dist/{Typography-AcUd9df8.js → Typography-LU4z2pR1.js} +2 -2
  113. package/dist/{Typography-BWmZd20e.d.ts → Typography-XljT9s02.d.ts} +1 -1
  114. package/dist/UIConfigurator-CTlq-hrG.js +6704 -0
  115. package/dist/accordion.cva-CL1bVscW.js +129 -0
  116. package/dist/{autocomplete-CaQSVRrw.d.ts → autocomplete-B-JuxTYN.d.ts} +2 -2
  117. package/dist/badgeButton.cva-B2bgCQP6.d.ts +41 -0
  118. package/dist/badgeButton.cva-CvN4CTx5.js +300 -0
  119. package/dist/breadcrumbs.cva-7zzdDhVR.js +27 -0
  120. package/dist/{button.cva-ChabF4Am.d.ts → button.cva-C7kEhgoA.d.ts} +15 -32
  121. package/dist/{buttonContent.cva-CP857foM.d.ts → buttonContent.cva-DPIlROA9.d.ts} +2 -2
  122. package/dist/{checkbox-D8CPWRlM.d.ts → checkbox-CRP4QRfP.d.ts} +1 -1
  123. package/dist/{checkbox-group-BuPUA_Qj.d.ts → checkbox-group-BI_RwIJ4.d.ts} +1 -1
  124. package/dist/{checkbox.cva-DwnPS5df.d.ts → checkbox.cva-DBqfmYHY.d.ts} +6 -7
  125. package/dist/components/accordion.js +1 -1
  126. package/dist/components/alert-dialog.d.ts +1 -1
  127. package/dist/components/alert-dialog.js +7 -7
  128. package/dist/components/alert.d.ts +1 -1
  129. package/dist/components/alert.js +1 -1
  130. package/dist/components/autocomplete.d.ts +1 -1
  131. package/dist/components/autocomplete.js +6 -5
  132. package/dist/components/badge-button.d.ts +2 -0
  133. package/dist/components/{pill-button.js → badge-button.js} +13 -12
  134. package/dist/components/badge.d.ts +1 -1
  135. package/dist/components/badge.js +56 -40
  136. package/dist/components/bottom-sheet.d.ts +2 -2
  137. package/dist/components/bottom-sheet.js +2 -2
  138. package/dist/components/breadcrumbs.d.ts +1 -1
  139. package/dist/components/breadcrumbs.js +1 -1
  140. package/dist/components/button.d.ts +2 -2
  141. package/dist/components/button.js +1 -1
  142. package/dist/components/checkbox-group.d.ts +1 -1
  143. package/dist/components/checkbox-group.js +6 -6
  144. package/dist/components/checkbox.d.ts +1 -1
  145. package/dist/components/checkbox.js +1 -1
  146. package/dist/components/date-picker.d.ts +1 -1
  147. package/dist/components/date-picker.js +1 -1
  148. package/dist/components/date-range-picker.d.ts +1 -1
  149. package/dist/components/date-range-picker.js +1 -1
  150. package/dist/components/date-time-picker.d.ts +1 -1
  151. package/dist/components/date-time-picker.js +1 -1
  152. package/dist/components/dialog.d.ts +1 -1
  153. package/dist/components/dialog.js +1 -1
  154. package/dist/components/drawer.js +4 -4
  155. package/dist/components/dropdown-menu.d.ts +2 -2
  156. package/dist/components/dropdown-menu.js +2 -2
  157. package/dist/components/file-input.d.ts +1 -1
  158. package/dist/components/file-input.js +1 -1
  159. package/dist/components/file-upload-container.d.ts +2 -2
  160. package/dist/components/file-upload-container.js +1 -1
  161. package/dist/components/file-upload.d.ts +2 -2
  162. package/dist/components/file-upload.js +1 -1
  163. package/dist/components/form-field.d.ts +1 -1
  164. package/dist/components/form-field.js +1 -1
  165. package/dist/components/icon-button.d.ts +1 -1
  166. package/dist/components/icon-button.js +2 -2
  167. package/dist/components/icon-slot.d.ts +2 -0
  168. package/dist/components/icon-slot.js +2 -0
  169. package/dist/components/inline-icon-button.d.ts +1 -1
  170. package/dist/components/inline-icon-button.js +2 -2
  171. package/dist/components/input.d.ts +1 -1
  172. package/dist/components/input.js +7 -7
  173. package/dist/components/link.d.ts +1 -1
  174. package/dist/components/link.js +32 -1
  175. package/dist/components/number-field.d.ts +1 -1
  176. package/dist/components/number-field.js +7 -7
  177. package/dist/components/number-range-input.d.ts +1 -1
  178. package/dist/components/number-range-input.js +1 -1
  179. package/dist/components/pagination-list.d.ts +1 -1
  180. package/dist/components/pagination-list.js +1 -1
  181. package/dist/components/pagination.d.ts +1 -1
  182. package/dist/components/pagination.js +36 -33
  183. package/dist/components/password-input.d.ts +1 -1
  184. package/dist/components/popover.d.ts +1 -1
  185. package/dist/components/popover.js +6 -5
  186. package/dist/components/progress.d.ts +1 -1
  187. package/dist/components/progress.js +1 -1
  188. package/dist/components/query-autocomplete.d.ts +2 -2
  189. package/dist/components/query-autocomplete.js +10 -5
  190. package/dist/components/query-select.d.ts +1 -1
  191. package/dist/components/query-select.js +3 -3
  192. package/dist/components/radio-group.d.ts +1 -1
  193. package/dist/components/radio-group.js +1 -1
  194. package/dist/components/select.d.ts +2 -2
  195. package/dist/components/select.js +1 -1
  196. package/dist/components/slider.d.ts +1 -1
  197. package/dist/components/slider.js +1 -1
  198. package/dist/components/spinner.d.ts +1 -1
  199. package/dist/components/spinner.js +1 -1
  200. package/dist/components/split-button.d.ts +1 -1
  201. package/dist/components/split-button.js +3 -3
  202. package/dist/components/stepper.d.ts +1 -1
  203. package/dist/components/stepper.js +1 -1
  204. package/dist/components/switch.d.ts +1 -1
  205. package/dist/components/switch.js +1 -1
  206. package/dist/components/tag.d.ts +1 -1
  207. package/dist/components/tag.js +1 -1
  208. package/dist/components/text-area.d.ts +1 -1
  209. package/dist/components/text-area.js +1 -1
  210. package/dist/components/text-button.d.ts +1 -1
  211. package/dist/components/text-button.js +1 -2
  212. package/dist/components/time-picker.d.ts +1 -1
  213. package/dist/components/time-picker.js +1 -1
  214. package/dist/components/toast.d.ts +2 -2
  215. package/dist/components/toast.js +2 -2
  216. package/dist/components/toggle-button.d.ts +1 -1
  217. package/dist/components/toggle-button.js +1 -1
  218. package/dist/components/toggle-group.d.ts +2 -2
  219. package/dist/components/toggle-group.js +1 -1
  220. package/dist/components/tooltip-ellipsis.js +1 -1
  221. package/dist/components/tooltip.d.ts +1 -1
  222. package/dist/components/tooltip.js +1 -1
  223. package/dist/components/typography.d.ts +2 -2
  224. package/dist/components/typography.js +1 -1
  225. package/dist/components/use-toast.d.ts +1 -1
  226. package/dist/components/use-toast.js +2 -2
  227. package/dist/config/app-canvas-tanstack.d.ts +23 -0
  228. package/dist/config/app-canvas-tanstack.js +62 -0
  229. package/dist/config/app-canvas.d.ts +12 -0
  230. package/dist/config/app-canvas.js +2 -0
  231. package/dist/config/confirmation.d.ts +1 -1
  232. package/dist/config/link-context.d.ts +2 -2
  233. package/dist/config/ui-config.d.ts +2 -2
  234. package/dist/config/ui-config.js +1 -1
  235. package/dist/config/ui-configurator-theme.d.ts +2 -0
  236. package/dist/config/ui-configurator-theme.js +2 -0
  237. package/dist/config/ui-configurator-vite.d.ts +10 -0
  238. package/dist/config/ui-configurator-vite.js +174 -0
  239. package/dist/config/ui-configurator.d.ts +15 -0
  240. package/dist/config/ui-configurator.js +3 -0
  241. package/dist/config/ui-overrides.d.ts +1 -1
  242. package/dist/config/ui-overrides.js +1 -1
  243. package/dist/configuration.context-DP4p1cIe.d.ts +926 -0
  244. package/dist/{confirmation.context-fKfUTsLF.d.ts → confirmation.context-BOeEVczb.d.ts} +1 -1
  245. package/dist/{date-picker-MXt02b7Z.d.ts → date-picker-BhIA01qs.d.ts} +1 -1
  246. package/dist/{date-range-picker-BjT0t21q.d.ts → date-range-picker-BsuZ2h_3.d.ts} +1 -1
  247. package/dist/{date-time-picker-CMmIuZtT.d.ts → date-time-picker-Bi-qW6vO.d.ts} +1 -1
  248. package/dist/datePickerInput.cva-Cd7UUN61.js +14 -0
  249. package/dist/{datePickerValue.utils-1z4mwZZs.js → datePickerValue.utils-QWR2q5Vv.js} +9 -11
  250. package/dist/{dialog.cva-5qNq9YfM.js → dialog.cva-COhDZaVl.js} +4 -4
  251. package/dist/{dist-C6GfeeEC.js → dist-CAdwxJbe.js} +1 -256
  252. package/dist/{dom.utils-D3mELNBA.js → dom.utils-D1AopHx9.js} +1 -1
  253. package/dist/dropdownMenu.cva-DvEmX0bs.js +34 -0
  254. package/dist/{dynamicInputs-CQMTixlW.d.ts → dynamicInputs-DdcsSoYu.d.ts} +112 -111
  255. package/dist/{fieldAdapter-BYVPxvYi.js → fieldAdapter-DjYls12j.js} +1 -1
  256. package/dist/{file-input-D-46wS5j.d.ts → file-input-BTYsGgr7.d.ts} +1 -1
  257. package/dist/{file-upload-BG20Bhrn.d.ts → file-upload-CqGdt1Ue.d.ts} +2 -2
  258. package/dist/fileUpload.cva-ujmStxB1.js +42 -0
  259. package/dist/{fileUpload.types-xFzuCT_m.d.ts → fileUpload.types-rIGu4MgY.d.ts} +2 -2
  260. package/dist/iconSlot.cva-CnpFzAOR.d.ts +21 -0
  261. package/dist/icons.d.ts +2 -1
  262. package/dist/icons.js +2 -1
  263. package/dist/index.d.ts +87 -86
  264. package/dist/index.js +55 -44
  265. package/dist/info-iUmX3uDk.js +32 -0
  266. package/dist/{input-CKGPYwfB.d.ts → input-CqNMORk8.d.ts} +1 -1
  267. package/dist/{input.cva-ByFuAEIS.d.ts → input.cva-CQPV5gW7.d.ts} +6 -9
  268. package/dist/input.cva-CbMTwuQU.js +227 -0
  269. package/dist/{link.context-C5ZgwVM5.d.ts → link.context-D5qyz9Rf.d.ts} +1 -1
  270. package/dist/link.cva-DMTHZiJG.js +12 -0
  271. package/dist/{number-field-CyP6XgJh.d.ts → number-field-BcMnahI8.d.ts} +1 -1
  272. package/dist/{number-range-input-DMmlk7Bl.d.ts → number-range-input-CLfuacKv.d.ts} +1 -1
  273. package/dist/{password-input-BWpfQe0G.d.ts → password-input-BV1Amdc8.d.ts} +1 -1
  274. package/dist/popover.cva-Bhud1wnp.js +5 -0
  275. package/dist/popoverAnimation-DEZSvKP8.js +4 -0
  276. package/dist/{query-autocomplete-DV8fEkK2.d.ts → query-autocomplete-CJSJeSXW.d.ts} +2 -2
  277. package/dist/{query-select-BZ3-5WTu.d.ts → query-select-B-VLz1PW.d.ts} +2 -2
  278. package/dist/{queryAutocomplete.types-Dm8Ttx4v.d.ts → queryAutocomplete.types-D2w1_hau.d.ts} +2 -2
  279. package/dist/{radio-group-CmUtsjqP.d.ts → radio-group-DZZdQMub.d.ts} +1 -1
  280. package/dist/{radio.cva-DAq2M13H.d.ts → radio.cva-DN9VQ3Kb.d.ts} +4 -3
  281. package/dist/rhf/autocomplete.d.ts +2 -2
  282. package/dist/rhf/autocomplete.js +1 -1
  283. package/dist/rhf/checkbox-group.d.ts +2 -2
  284. package/dist/rhf/checkbox-group.js +1 -1
  285. package/dist/rhf/checkbox.d.ts +2 -2
  286. package/dist/rhf/checkbox.js +2 -2
  287. package/dist/rhf/date-picker.d.ts +2 -2
  288. package/dist/rhf/date-picker.js +2 -2
  289. package/dist/rhf/date-range-picker.d.ts +2 -2
  290. package/dist/rhf/date-range-picker.js +2 -2
  291. package/dist/rhf/date-time-picker.d.ts +2 -2
  292. package/dist/rhf/date-time-picker.js +2 -2
  293. package/dist/rhf/file-input.d.ts +2 -2
  294. package/dist/rhf/file-input.js +2 -2
  295. package/dist/rhf/file-upload.d.ts +2 -2
  296. package/dist/rhf/file-upload.js +2 -2
  297. package/dist/rhf/input.d.ts +2 -2
  298. package/dist/rhf/input.js +1 -1
  299. package/dist/rhf/inputs.d.ts +2 -2
  300. package/dist/rhf/number-field.d.ts +2 -2
  301. package/dist/rhf/number-field.js +1 -1
  302. package/dist/rhf/number-range-input.d.ts +2 -2
  303. package/dist/rhf/number-range-input.js +2 -2
  304. package/dist/rhf/password-input.d.ts +2 -2
  305. package/dist/rhf/password-input.js +1 -1
  306. package/dist/rhf/query-autocomplete.d.ts +1 -1
  307. package/dist/rhf/query-autocomplete.js +1 -1
  308. package/dist/rhf/query-select.d.ts +1 -1
  309. package/dist/rhf/query-select.js +1 -1
  310. package/dist/rhf/radio-group.d.ts +2 -2
  311. package/dist/rhf/radio-group.js +2 -2
  312. package/dist/rhf/rich-text-editor.d.ts +2 -2
  313. package/dist/rhf/rich-text-editor.js +2 -2
  314. package/dist/rhf/select.d.ts +2 -2
  315. package/dist/rhf/select.js +2 -2
  316. package/dist/rhf/slider.d.ts +2 -2
  317. package/dist/rhf/slider.js +2 -2
  318. package/dist/rhf/switch.d.ts +2 -2
  319. package/dist/rhf/switch.js +2 -2
  320. package/dist/rhf/text-area.d.ts +2 -2
  321. package/dist/rhf/text-area.js +2 -2
  322. package/dist/rhf/time-picker.d.ts +2 -2
  323. package/dist/rhf/time-picker.js +2 -2
  324. package/dist/rhf/toggle-group.d.ts +2 -2
  325. package/dist/rhf/toggle-group.js +2 -2
  326. package/dist/{rhf-1_ZO8GhU.js → rhf-t348TCCL.js} +1 -1
  327. package/dist/rhf.d.ts +87 -86
  328. package/dist/rhf.js +55 -44
  329. package/dist/{rich-text-editor-Db3XWWFo.d.ts → rich-text-editor-Cp5dYHQI.d.ts} +1 -1
  330. package/dist/rich-text-editor.d.ts +1 -1
  331. package/dist/rich-text-editor.js +1 -1
  332. package/dist/{select-DXGbGkZM.d.ts → select-FjDx5oe4.d.ts} +2 -2
  333. package/dist/selectDesktop.cva-CHAMxhfO.js +69 -0
  334. package/dist/{slider-JQh0ypfU.d.ts → slider-BVJiBswZ.d.ts} +1 -1
  335. package/dist/{staticDateTimeSegments-vP2f1woD.js → staticDateTimeSegments-BWea3HAt.js} +34 -33
  336. package/dist/{staticSelect.utils-DOt6f-ck.js → staticSelect.utils-BfTCi26B.js} +41 -92
  337. package/dist/stepper.cva-CZ0Kj-s7.js +116 -0
  338. package/dist/style-merge.util-zLimKwt6.d.ts +40 -0
  339. package/dist/styles/app-canvas.css +740 -0
  340. package/dist/styles/color-utilities.css +20 -0
  341. package/dist/styles/configurator.css +3280 -0
  342. package/dist/styles/editor.css +9 -9
  343. package/dist/styles/input.d.ts +1 -1
  344. package/dist/{switch-Lm3xl1rQ.d.ts → switch-C--iWnY8.d.ts} +1 -1
  345. package/dist/switch.cva-CWNzmdRc.d.ts +16 -0
  346. package/dist/table.cva-D5oQ-QvA.js +101 -0
  347. package/dist/tanstack/autocomplete.d.ts +1 -1
  348. package/dist/tanstack/checkbox-group.d.ts +1 -1
  349. package/dist/tanstack/checkbox.d.ts +1 -1
  350. package/dist/tanstack/checkbox.js +1 -1
  351. package/dist/tanstack/date-picker.d.ts +1 -1
  352. package/dist/tanstack/date-picker.js +1 -1
  353. package/dist/tanstack/date-range-picker.d.ts +1 -1
  354. package/dist/tanstack/date-range-picker.js +1 -1
  355. package/dist/tanstack/date-time-picker.d.ts +1 -1
  356. package/dist/tanstack/date-time-picker.js +1 -1
  357. package/dist/tanstack/file-input.d.ts +1 -1
  358. package/dist/tanstack/file-input.js +1 -1
  359. package/dist/tanstack/file-upload.d.ts +2 -2
  360. package/dist/tanstack/file-upload.js +1 -1
  361. package/dist/tanstack/form.d.ts +1 -1
  362. package/dist/tanstack/form.js +1 -1
  363. package/dist/tanstack/input.d.ts +1 -1
  364. package/dist/tanstack/inputs.d.ts +3 -3
  365. package/dist/tanstack/inputs.js +1 -1
  366. package/dist/tanstack/number-field.d.ts +1 -1
  367. package/dist/tanstack/number-range-input.d.ts +1 -1
  368. package/dist/tanstack/number-range-input.js +1 -1
  369. package/dist/tanstack/password-input.d.ts +1 -1
  370. package/dist/tanstack/query-select.d.ts +1 -1
  371. package/dist/tanstack/radio-group.d.ts +1 -1
  372. package/dist/tanstack/radio-group.js +1 -1
  373. package/dist/tanstack/rich-text-editor.d.ts +1 -1
  374. package/dist/tanstack/rich-text-editor.js +1 -1
  375. package/dist/tanstack/select.d.ts +1 -1
  376. package/dist/tanstack/select.js +1 -1
  377. package/dist/tanstack/slider.d.ts +1 -1
  378. package/dist/tanstack/slider.js +1 -1
  379. package/dist/tanstack/switch.d.ts +1 -1
  380. package/dist/tanstack/switch.js +1 -1
  381. package/dist/tanstack/table.d.ts +1 -1
  382. package/dist/tanstack/table.js +2 -1
  383. package/dist/tanstack/text-area.d.ts +1 -1
  384. package/dist/tanstack/text-area.js +1 -1
  385. package/dist/tanstack/time-picker.d.ts +1 -1
  386. package/dist/tanstack/time-picker.js +1 -1
  387. package/dist/tanstack/toggle-group.d.ts +2 -2
  388. package/dist/tanstack/toggle-group.js +1 -1
  389. package/dist/tanstack.d.ts +71 -70
  390. package/dist/tanstack.js +66 -53
  391. package/dist/{text-area-I5MNcGp_.d.ts → text-area-DhSVRB6X.d.ts} +1 -1
  392. package/dist/theme-model-DtYPxNvH.js +406 -0
  393. package/dist/theme-model-T1zIdBg8.d.ts +12 -0
  394. package/dist/{time-picker-DdhW8GmD.d.ts → time-picker-DhnDKh97.d.ts} +1 -1
  395. package/dist/{toast.cva-LU7TGprV.d.ts → toast.cva-By5lvAfr.d.ts} +10 -9
  396. package/dist/toast.cva-C_L_RffH.js +163 -0
  397. package/dist/{toast.runtime-QMYrNvoQ.js → toast.runtime-cxex9e4E.js} +2 -1
  398. package/dist/{toggle-group-CPkKHm1t.d.ts → toggle-group-C1nMDOwz.d.ts} +1 -1
  399. package/dist/toggleGroup.cva-MbpaEBg1.js +35 -0
  400. package/dist/{toggleGroup.types-DD6uRI5G.d.ts → toggleGroup.types-Bp43zbSQ.d.ts} +2 -1
  401. package/dist/tooltip.cva-BIzlOXHH.js +48 -0
  402. package/dist/{tooltipWrapper.cva-CUu8pI-a.js → tooltipWrapper.cva-BBQ4ic3D.js} +1 -1
  403. package/dist/typography.cva-D1JOEYl-.d.ts +36 -0
  404. package/dist/typography.cva-iD15k56p.js +51 -0
  405. package/dist/{uiConfig.context-RFvaQYzD.js → uiConfig.context-BS3r_kTS.js} +12 -21
  406. package/dist/{uiConfig.context-CIoMqe1_.d.ts → uiConfig.context-BqKWd_MO.d.ts} +11 -12
  407. package/dist/{uiOverrides.context-Bfm2n-n8.js → uiOverrides.context-BTCH9y5a.js} +2 -2
  408. package/dist/{uiOverrides.context-C3xb4Ttq.d.ts → uiOverrides.context-DEp139He.d.ts} +11 -44
  409. package/dist/underline-66hmELxa.js +81 -0
  410. package/dist/upload-CXU83BJ4.js +30 -0
  411. package/dist/{useBreakpoint-3kpqzjoC.js → useBreakpoint-DQoMN-BG.js} +1 -1
  412. package/dist/{useFieldAccessibility-BTs_WC_5.js → useFieldAccessibility-B-bjtrNw.js} +18 -12
  413. package/dist/{useFormAutosave-BRlM0nmq.js → useFormAutosave-pmh35PXp.js} +2 -2
  414. package/dist/{useStaticInputHandoff-_stbpoX4.js → useStaticInputHandoff-B7DEm75m.js} +18 -16
  415. package/dist/useTableColumnConfig-6zn3zKl3.js +892 -0
  416. package/dist/{useTableNav-Tu8UZxHA.d.ts → useTableNav-Ckj5PBRk.d.ts} +9 -8
  417. package/dist/{useToast-NBGlVeFP.d.ts → useToast-yreVCUer.d.ts} +1 -1
  418. package/package.json +54 -6
  419. package/rulesync.jsonc +11 -0
  420. package/scripts/generate-rules.mjs +34 -0
  421. package/src/configurator/README.md +77 -0
  422. package/dist/Button-CcZBqoQp.js +0 -761
  423. package/dist/FormFieldHeaderTooltip-h6e5hq9V.js +0 -45
  424. package/dist/Link-C5YsZ4pr.js +0 -42
  425. package/dist/PillButton-CihEPQye.d.ts +0 -15
  426. package/dist/Tag-CgPeLVXM.d.ts +0 -44
  427. package/dist/Tag-DNuHvt6J.js +0 -148
  428. package/dist/components/pill-button.d.ts +0 -2
  429. package/dist/input.cva-KYGD4Bdz.js +0 -324
  430. package/dist/pillButton.cva-6tjADUQ6.js +0 -265
  431. package/dist/pillButton.cva-BVsxGnqF.d.ts +0 -36
  432. package/dist/popover.cva-CXha_UMQ.js +0 -5
  433. package/dist/switch.cva-BIioyegR.d.ts +0 -15
  434. package/dist/typography.cva-BI0FyIqm.js +0 -129
  435. package/dist/typography.cva-YaO6JLqU.d.ts +0 -51
  436. package/dist/useTableColumnConfig-CiAr7Dbi.js +0 -1627
@@ -0,0 +1,3280 @@
1
+ .studio,
2
+ .studio-overlay {
3
+ font-family: "Inter Variable", Inter, sans-serif;
4
+ color: #242424;
5
+ font-size: 11px;
6
+ line-height: 1.5;
7
+ }
8
+ .studio {
9
+ min-height: 100vh;
10
+ background: #f6f6f6;
11
+ padding: 60px 24px;
12
+ }
13
+ .studio-landing {
14
+ max-width: 850px;
15
+ margin: auto;
16
+ }
17
+ .studio-brand,
18
+ .studio-title,
19
+ .studio-export-actions {
20
+ display: flex;
21
+ align-items: center;
22
+ gap: 12px;
23
+ }
24
+ .studio-logo {
25
+ display: inline-flex;
26
+ background: #373737;
27
+ color: #fff;
28
+ border-radius: 10px;
29
+ padding: 10px;
30
+ }
31
+ .studio-brand {
32
+ font-weight: 700;
33
+ font-size: 17px;
34
+ }
35
+ .studio-badge {
36
+ font-size: 9px;
37
+ font-weight: 600;
38
+ letter-spacing: 1.4px;
39
+ padding: 5px 9px;
40
+ border: 1px solid #dedede;
41
+ border-radius: 5px;
42
+ color: #747474;
43
+ }
44
+ .studio-landing h1 {
45
+ font-size: clamp(36px, 5vw, 58px);
46
+ line-height: 1.08;
47
+ letter-spacing: -2px;
48
+ margin: 35px 0 18px;
49
+ font-weight: 550;
50
+ }
51
+ .studio-landing > p {
52
+ color: #727272;
53
+ margin-bottom: 25px;
54
+ }
55
+ .studio-landing > small {
56
+ display: block;
57
+ margin: 15px 0 35px;
58
+ color: #818181;
59
+ }
60
+ .studio button,
61
+ .studio-overlay button {
62
+ cursor: pointer;
63
+ }
64
+ .studio-primary {
65
+ display: inline-flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ gap: 8px;
69
+ background: #393939 !important;
70
+ color: white !important;
71
+ border: 1px solid #393939 !important;
72
+ padding: 10px 15px;
73
+ border-radius: 7px;
74
+ font-size: 11px;
75
+ font-weight: 550;
76
+ }
77
+ /* Keep the application visible around the movable configurator window. */
78
+ .studio-overlay {
79
+ position: fixed;
80
+ inset: 0;
81
+ background: #14232240;
82
+ display: grid;
83
+ place-items: center;
84
+ padding: 8px;
85
+ z-index: 1000;
86
+ }
87
+ .studio-modal {
88
+ position: relative;
89
+ container-type: inline-size;
90
+ width: min(1440px, calc(100vw - 48px));
91
+ height: min(900px, calc(100dvh - 48px));
92
+ border-radius: 12px;
93
+ box-shadow: 0 25px 90px #12251f30;
94
+ background: #fff;
95
+ overflow: hidden;
96
+ }
97
+ /*
98
+ * The editor column stacks the top bar, the editor and the footer; the preview fills the second column from top to
99
+ * bottom, like a design tool's canvas.
100
+ */
101
+ .studio-dialog {
102
+ display: grid;
103
+ grid-template-columns: var(--studio-editor-track, minmax(300px, 0.8fr)) minmax(320px, 1.25fr);
104
+ grid-template-rows: auto minmax(0, 1fr) auto;
105
+ height: 100%;
106
+ outline: none;
107
+ }
108
+ .studio-title h2 {
109
+ margin: 0;
110
+ font-size: 11px;
111
+ font-weight: 650;
112
+ letter-spacing: -0.3px;
113
+ }
114
+ /* Title, section tabs and global controls share one bar above the editor; the tabs take their own row. */
115
+ .studio-topbar {
116
+ grid-column: 1;
117
+ grid-row: 1;
118
+ display: flex;
119
+ flex-wrap: wrap;
120
+ align-items: center;
121
+ gap: 8px 16px;
122
+ padding: 10px 16px;
123
+ background: #fbfbfb;
124
+ border-bottom: 1px solid #eaeaea;
125
+ min-width: 0;
126
+ }
127
+ .studio-topbar .studio-title {
128
+ gap: 9px;
129
+ flex-shrink: 0;
130
+ }
131
+ .studio-topbar .studio-nav {
132
+ order: 1;
133
+ flex-basis: 100%;
134
+ margin-inline: -4px;
135
+ }
136
+ .studio-topbar .studio-title h2 {
137
+ white-space: nowrap;
138
+ }
139
+ /* Controls share the title's row and only wrap below it once even their narrowest layout no longer fits. */
140
+ .studio-topbar-controls {
141
+ display: flex;
142
+ flex: 1 1 min-content;
143
+ justify-content: flex-end;
144
+ align-items: center;
145
+ gap: 8px;
146
+ margin-left: auto;
147
+ min-width: 0;
148
+ }
149
+ .studio-topbar .studio-search {
150
+ margin: 0;
151
+ flex: 1 1 90px;
152
+ max-width: 190px;
153
+ padding: 7px 9px;
154
+ background: #fff;
155
+ }
156
+ .studio-topbar .studio-search:has(input:disabled) {
157
+ opacity: 0.5;
158
+ }
159
+ @container (max-width: 800px) {
160
+ .studio-topbar-controls {
161
+ flex-wrap: wrap;
162
+ margin-left: 0;
163
+ flex-shrink: 1;
164
+ }
165
+ .studio-topbar .studio-search {
166
+ width: auto;
167
+ flex: 1 1 100%;
168
+ }
169
+ .studio-topbar .studio-title {
170
+ flex: 1;
171
+ }
172
+ }
173
+ /* The body only groups the panels in markup; they are placed on the dialog's grid. */
174
+ .studio-body {
175
+ display: contents;
176
+ }
177
+ .studio-body > .studio-editor {
178
+ grid-column: 1;
179
+ grid-row: 2;
180
+ }
181
+ .studio-body > .studio-preview {
182
+ grid-column: 2;
183
+ grid-row: 1 / -1;
184
+ }
185
+ /* Dividers overlap the start of their grid column and show a line and grip on hover. */
186
+ .studio-resize-handle {
187
+ grid-row: 1 / -1;
188
+ justify-self: start;
189
+ position: relative;
190
+ z-index: 2;
191
+ width: 10px;
192
+ margin-left: -5px;
193
+ cursor: col-resize;
194
+ touch-action: none;
195
+ outline: none;
196
+ }
197
+ .studio-resize-handle::before {
198
+ content: "";
199
+ position: absolute;
200
+ inset: 0 4px;
201
+ background: #393939;
202
+ opacity: 0;
203
+ transition: opacity 120ms;
204
+ }
205
+ .studio-resize-handle::after {
206
+ content: "";
207
+ position: absolute;
208
+ top: 50%;
209
+ left: 50%;
210
+ width: 6px;
211
+ height: 32px;
212
+ translate: -50% -50%;
213
+ border-radius: 3px;
214
+ background: #393939;
215
+ opacity: 0;
216
+ transition: opacity 120ms;
217
+ }
218
+ .studio-resize-handle:is(:hover, :active, :focus-visible)::before,
219
+ .studio-resize-handle:is(:hover, :active, :focus-visible)::after {
220
+ opacity: 1;
221
+ }
222
+ .studio-nav {
223
+ display: flex;
224
+ align-items: center;
225
+ gap: 2px;
226
+ min-width: 0;
227
+ overflow-x: auto;
228
+ scrollbar-width: none;
229
+ }
230
+ .studio-section-tabs {
231
+ display: flex;
232
+ flex: 1;
233
+ align-items: center;
234
+ gap: 2px;
235
+ min-width: 0;
236
+ overflow-x: auto;
237
+ scrollbar-width: none;
238
+ }
239
+ .studio-nav .studio-preview-tab {
240
+ display: none;
241
+ }
242
+ .studio-nav-divider {
243
+ flex-shrink: 0;
244
+ width: 1px;
245
+ height: 18px;
246
+ margin: 0 8px;
247
+ background: #e5e5e5;
248
+ }
249
+ .studio-nav button {
250
+ display: flex;
251
+ flex-shrink: 0;
252
+ align-items: center;
253
+ gap: 7px;
254
+ white-space: nowrap;
255
+ padding: 7px 10px;
256
+ color: #707070;
257
+ background: transparent;
258
+ border: 0;
259
+ border-radius: 6px;
260
+ font-size: 11px;
261
+ }
262
+ .studio-nav button[aria-current] {
263
+ background: #eeeeee;
264
+ color: #464646;
265
+ font-weight: 600;
266
+ }
267
+ .studio-editor {
268
+ --studio-editor-pad: 20px;
269
+ padding: var(--studio-editor-pad);
270
+ padding-top: 12px;
271
+ overflow: auto;
272
+ min-width: 0;
273
+ }
274
+ .studio-subtabs-bar {
275
+ display: flex;
276
+ align-items: center;
277
+ gap: 12px;
278
+ margin-bottom: 12px;
279
+ border-bottom: 1px solid #eaeaea;
280
+ }
281
+ .studio-subtabs-bar .studio-toggle-all {
282
+ margin-left: auto;
283
+ margin-bottom: 2px;
284
+ }
285
+ .studio-subtabs {
286
+ display: flex;
287
+ flex: 1;
288
+ gap: 18px;
289
+ min-width: 0;
290
+ overflow-x: auto;
291
+ scrollbar-width: none;
292
+ }
293
+ .studio-subtabs button {
294
+ display: flex;
295
+ flex-shrink: 0;
296
+ align-items: center;
297
+ gap: 6px;
298
+ padding: 0 0 9px;
299
+ margin-bottom: -1px;
300
+ border: 0;
301
+ border-bottom: 2px solid transparent;
302
+ background: transparent;
303
+ color: #707070;
304
+ font-size: 11px;
305
+ white-space: nowrap;
306
+ }
307
+ .studio-subtabs button[aria-selected="true"] {
308
+ border-bottom-color: #393939;
309
+ color: #464646;
310
+ font-weight: 600;
311
+ }
312
+ .studio-subtabs button:disabled {
313
+ opacity: 0.5;
314
+ }
315
+ .studio-editor-heading {
316
+ display: flex;
317
+ align-items: center;
318
+ justify-content: space-between;
319
+ gap: 12px;
320
+ margin-bottom: 10px;
321
+ }
322
+ .studio-editor-heading h2 {
323
+ font-size: 11px;
324
+ font-weight: 550;
325
+ letter-spacing: -0.6px;
326
+ margin: 0;
327
+ }
328
+ .studio-mode {
329
+ display: inline-flex;
330
+ border: 1px solid #e5e5e5;
331
+ background: #f7f7f7;
332
+ border-radius: 6px;
333
+ padding: 3px;
334
+ gap: 3px;
335
+ }
336
+ .studio-mode button {
337
+ display: flex;
338
+ align-items: center;
339
+ justify-content: center;
340
+ gap: 6px;
341
+ border: 0;
342
+ border-radius: 4px;
343
+ padding: 5px 11px;
344
+ font-size: 11px;
345
+ background: transparent;
346
+ color: #8e8e8e;
347
+ text-transform: capitalize;
348
+ }
349
+ .studio-mode button[aria-pressed="true"] {
350
+ background: white;
351
+ box-shadow: 0 1px 3px #37373717;
352
+ color: #454545;
353
+ }
354
+ .studio-search {
355
+ display: flex;
356
+ align-items: center;
357
+ gap: 8px;
358
+ padding: 9px 11px;
359
+ border: 1px solid #e5e5e5;
360
+ border-radius: 6px;
361
+ margin: 20px 0 12px;
362
+ color: #9f9f9f;
363
+ }
364
+ .studio-search input {
365
+ width: 100%;
366
+ outline: none;
367
+ border: 0;
368
+ background: transparent;
369
+ color: #414141;
370
+ font-size: 11px;
371
+ }
372
+ .studio-token {
373
+ padding: 4px 0;
374
+ border-bottom: 1px solid #efefef;
375
+ }
376
+ .studio-token label {
377
+ display: block;
378
+ margin-bottom: 5px;
379
+ }
380
+ .studio-token label > span {
381
+ display: block;
382
+ font-size: 11px;
383
+ font-weight: 550;
384
+ text-transform: capitalize;
385
+ }
386
+ .studio-token.is-changed label > span::after {
387
+ content: " •";
388
+ color: #727272;
389
+ }
390
+ .studio-token-value {
391
+ display: flex;
392
+ align-items: center;
393
+ gap: 8px;
394
+ }
395
+ .studio-token-value input:not([type="color"]) {
396
+ border: 1px solid #e6e6e6;
397
+ border-radius: 5px;
398
+ height: 24px;
399
+ padding: 2px 7px;
400
+ line-height: 18px;
401
+ font-family: inherit;
402
+ font-variant-numeric: tabular-nums;
403
+ font-size: 11px;
404
+ color: #6a6a6a;
405
+ min-width: 0;
406
+ width: 100%;
407
+ background: #fff;
408
+ }
409
+ .studio-token-value input[type="color"] {
410
+ width: 24px;
411
+ height: 24px;
412
+ border: 1px solid #e6e6e6;
413
+ border-radius: 5px;
414
+ padding: 2px;
415
+ flex-shrink: 0;
416
+ background: white;
417
+ }
418
+ .studio-palette-swatch {
419
+ width: 18px;
420
+ height: 18px;
421
+ flex-shrink: 0;
422
+ border: 1px solid #dadada;
423
+ border-radius: 3px;
424
+ }
425
+ /* Base palette picker for semantic colors: a swatch trigger and a grouped swatch list. */
426
+ .studio-palette-picker {
427
+ display: flex;
428
+ flex: 1;
429
+ min-width: 0;
430
+ }
431
+ .studio-palette-picker.is-custom {
432
+ flex: none;
433
+ }
434
+ .studio-token-value .studio-palette-trigger {
435
+ display: flex;
436
+ flex: 1;
437
+ align-items: center;
438
+ gap: 7px;
439
+ width: auto;
440
+ min-width: 0;
441
+ height: auto;
442
+ min-height: 24px;
443
+ padding: 0 7px;
444
+ border: 0;
445
+ background: transparent;
446
+ color: #414141;
447
+ font: inherit;
448
+ font-size: 11px;
449
+ text-align: left;
450
+ text-transform: capitalize;
451
+ cursor: pointer;
452
+ }
453
+ .studio-token-value .studio-palette-trigger:hover {
454
+ background: #f7f7f7;
455
+ }
456
+ .studio-palette-trigger > svg {
457
+ flex-shrink: 0;
458
+ margin-left: auto;
459
+ color: #939393;
460
+ }
461
+ .studio-palette-trigger-label {
462
+ overflow: hidden;
463
+ text-overflow: ellipsis;
464
+ white-space: nowrap;
465
+ }
466
+ .studio-palette-popover {
467
+ z-index: 1002;
468
+ display: flex;
469
+ width: 220px;
470
+ border: 1px solid #e5e5e5;
471
+ border-radius: 10px;
472
+ background: #fff;
473
+ box-shadow: 0 12px 40px #21212126;
474
+ font-family: "Inter Variable", Inter, sans-serif;
475
+ font-size: 11px;
476
+ color: #242424;
477
+ }
478
+ /* The list scrolls itself so opening it can bring the selected color into view. */
479
+ .studio-palette-list {
480
+ position: relative;
481
+ flex: 1;
482
+ max-height: min(420px, calc(var(--visual-viewport-height, 100vh) - 80px));
483
+ overflow: auto;
484
+ padding: 6px;
485
+ outline: none;
486
+ }
487
+ .studio-palette-list header {
488
+ padding: 10px 8px 5px;
489
+ color: #717171;
490
+ font-size: 10px;
491
+ font-weight: 600;
492
+ text-transform: capitalize;
493
+ }
494
+ .studio-palette-list section:first-child header {
495
+ padding-top: 4px;
496
+ }
497
+ .studio-palette-item {
498
+ display: flex;
499
+ align-items: center;
500
+ gap: 9px;
501
+ padding: 5px 8px;
502
+ border-radius: 6px;
503
+ outline: none;
504
+ cursor: pointer;
505
+ }
506
+ .studio-palette-item[data-focused],
507
+ .studio-palette-item[data-hovered] {
508
+ background: #f3f3f3;
509
+ }
510
+ .studio-palette-item[data-selected] {
511
+ background: #eeeeee;
512
+ color: #464646;
513
+ font-weight: 600;
514
+ }
515
+ .studio-palette-item code {
516
+ margin-left: auto;
517
+ color: #939393;
518
+ font-size: 10px;
519
+ }
520
+ .studio-palette-item.is-custom {
521
+ margin-top: 4px;
522
+ border-top: 1px solid #f0f0f0;
523
+ border-radius: 0 0 6px 6px;
524
+ color: #717171;
525
+ }
526
+ .studio-token-value button {
527
+ display: grid;
528
+ place-items: center;
529
+ width: 24px;
530
+ height: 24px;
531
+ flex-shrink: 0;
532
+ border: 0;
533
+ background: transparent;
534
+ padding: 4px;
535
+ color: #757575;
536
+ }
537
+ /* Configurator chrome only: the preview (.studio-sample) shows components with their own disabled and focus styles. */
538
+ .studio-overlay button:disabled:where(:not(.studio-sample *)) {
539
+ opacity: 0.35;
540
+ cursor: default;
541
+ }
542
+ .studio-overlay :is(input, select, textarea, button):focus-visible:where(:not(.studio-sample *)) {
543
+ outline: 2px solid #797979;
544
+ outline-offset: 3px;
545
+ }
546
+ .studio-token-value input[aria-invalid="true"] {
547
+ border-color: #c34839;
548
+ }
549
+ .studio-error {
550
+ color: #b8362c;
551
+ display: block;
552
+ margin-top: 4px;
553
+ font-size: 11px;
554
+ }
555
+ .studio-preview {
556
+ background: #f7f7f7;
557
+ border-left: 1px solid #eaeaea;
558
+ padding: 20px;
559
+ overflow: auto;
560
+ min-width: 0;
561
+ }
562
+ .studio-preview-heading {
563
+ display: flex;
564
+ justify-content: space-between;
565
+ align-items: center;
566
+ margin-bottom: 16px;
567
+ }
568
+ .studio-preview-actions {
569
+ display: flex;
570
+ flex-wrap: wrap;
571
+ justify-content: flex-end;
572
+ align-items: center;
573
+ gap: 8px;
574
+ }
575
+ .studio-preview-heading > span {
576
+ font-size: 9px;
577
+ font-weight: 600;
578
+ letter-spacing: 1.1px;
579
+ color: #8d8d8d;
580
+ }
581
+ .studio-preview-heading i {
582
+ display: inline-block;
583
+ height: 5px;
584
+ width: 5px;
585
+ border-radius: 50%;
586
+ background: #8c8c8c;
587
+ margin-right: 5px;
588
+ }
589
+ /* Shares the color mode switch's segmented style, so the preview header controls match. */
590
+ .studio-preview-modes {
591
+ flex-shrink: 0;
592
+ }
593
+ .studio-preview-modes button {
594
+ cursor: pointer;
595
+ text-transform: none;
596
+ }
597
+ .studio-preview-modes button:focus-visible {
598
+ outline: 2px solid #797979;
599
+ outline-offset: 2px;
600
+ }
601
+ .studio-preview-note {
602
+ text-align: center;
603
+ color: #a7a7a7;
604
+ font-size: 11px;
605
+ line-height: 1.7;
606
+ margin-top: 20px;
607
+ }
608
+ .studio-sample {
609
+ padding: 16px;
610
+ border-radius: 10px;
611
+ background: rgb(var(--surface-default-background-base));
612
+ color: rgb(var(--surface-default-card-foreground-base));
613
+ font-family: var(--font-body);
614
+ }
615
+ .studio-footer {
616
+ grid-column: 1;
617
+ grid-row: 3;
618
+ display: flex;
619
+ align-items: center;
620
+ gap: 10px;
621
+ padding: 10px 20px;
622
+ border-top: 1px solid #eaeaea;
623
+ flex-shrink: 0;
624
+ }
625
+ .studio-footer > button:not(.studio-primary),
626
+ .studio-export-actions button {
627
+ display: flex;
628
+ align-items: center;
629
+ justify-content: center;
630
+ gap: 7px;
631
+ color: #717171;
632
+ border: 1px solid #e7e7e7;
633
+ border-radius: 6px;
634
+ padding: 9px 12px;
635
+ background: white;
636
+ font-size: 11px;
637
+ }
638
+ .studio-footer > span {
639
+ flex: 1;
640
+ color: #929292;
641
+ font-size: 11px;
642
+ }
643
+ /* Confirmation dialogs sit above the full-page configurator. */
644
+ .studio-overlay.studio-confirm-overlay {
645
+ z-index: 1001;
646
+ display: grid;
647
+ place-items: center;
648
+ padding: 16px;
649
+ background: #20202066;
650
+ }
651
+ .studio-confirm {
652
+ width: min(420px, 100%);
653
+ background: #fff;
654
+ border-radius: 12px;
655
+ box-shadow: 0 25px 90px #21212140;
656
+ }
657
+ .studio-confirm-dialog {
658
+ padding: 22px;
659
+ outline: none;
660
+ }
661
+ .studio-confirm-dialog h2 {
662
+ margin: 0 0 8px;
663
+ font-size: 14px;
664
+ font-weight: 650;
665
+ }
666
+ .studio-confirm-dialog p {
667
+ margin: 0;
668
+ color: #717171;
669
+ font-size: 12px;
670
+ }
671
+ .studio-confirm-actions {
672
+ display: flex;
673
+ justify-content: flex-end;
674
+ gap: 8px;
675
+ margin-top: 20px;
676
+ }
677
+ .studio-confirm-actions > button:not(.studio-danger) {
678
+ padding: 9px 12px;
679
+ border: 1px solid #e7e7e7;
680
+ border-radius: 6px;
681
+ background: #fff;
682
+ color: #717171;
683
+ font-size: 11px;
684
+ }
685
+ .studio-confirm-actions > button.studio-danger {
686
+ display: flex;
687
+ align-items: center;
688
+ gap: 7px;
689
+ padding: 9px 12px;
690
+ border: 1px solid #b8362c;
691
+ border-radius: 6px;
692
+ background: #b8362c;
693
+ color: #fff;
694
+ font-size: 11px;
695
+ }
696
+ .studio-settings h3 {
697
+ font-size: 11px;
698
+ font-weight: 650;
699
+ margin: 18px 0 6px;
700
+ }
701
+ .studio-setting {
702
+ display: flex;
703
+ justify-content: space-between;
704
+ align-items: center;
705
+ gap: 10px;
706
+ padding: 10px 0;
707
+ border-bottom: 1px solid #efefef;
708
+ font-size: 11px;
709
+ }
710
+ .studio-setting select {
711
+ background: white;
712
+ border: 1px solid #e2e2e2;
713
+ border-radius: 5px;
714
+ padding: 7px;
715
+ color: #676767;
716
+ }
717
+ .studio-setting input {
718
+ accent-color: #525252;
719
+ }
720
+ .studio-setting small {
721
+ display: block;
722
+ color: #9e9e9e;
723
+ font-size: 11px;
724
+ margin-top: 4px;
725
+ }
726
+ .studio-help,
727
+ .studio-export > p {
728
+ color: #929292;
729
+ font-size: 11px;
730
+ line-height: 1.7;
731
+ margin-top: 20px;
732
+ }
733
+ .studio-export textarea {
734
+ background: #f8f8f8;
735
+ border: 1px solid #e5e5e5;
736
+ border-radius: 7px;
737
+ font-size: 11px;
738
+ font-family: monospace;
739
+ padding: 15px;
740
+ width: 100%;
741
+ height: 320px;
742
+ resize: vertical;
743
+ color: #4e4e4e;
744
+ margin: 18px 0;
745
+ }
746
+ @container (max-width: 1050px) {
747
+ .studio-dialog {
748
+ grid-template-columns: var(--studio-editor-track, minmax(260px, 0.8fr)) minmax(280px, 1.25fr);
749
+ }
750
+ .studio-editor {
751
+ --studio-editor-pad: 18px;
752
+ }
753
+ .studio-preview {
754
+ padding: 18px;
755
+ }
756
+ .studio-sample {
757
+ padding: 8px;
758
+ }
759
+ }
760
+ @container (max-width: 800px) {
761
+ /* One scrolling column: top bar, editor, preview, then the footer pinned to the bottom. */
762
+ .studio-dialog {
763
+ display: flex;
764
+ flex-direction: column;
765
+ overflow: auto;
766
+ }
767
+ .studio-footer {
768
+ position: sticky;
769
+ bottom: 0;
770
+ z-index: 3;
771
+ background: #fff;
772
+ }
773
+ .studio-resize-handle {
774
+ display: none;
775
+ }
776
+ .studio-editor,
777
+ .studio-preview {
778
+ overflow: visible;
779
+ flex-shrink: 0;
780
+ }
781
+ .studio-preview {
782
+ border-top: 1px solid #eaeaea;
783
+ }
784
+ .studio-footer {
785
+ flex-wrap: wrap;
786
+ padding: 12px;
787
+ gap: 8px;
788
+ }
789
+ .studio-footer > span {
790
+ flex-basis: 60%;
791
+ }
792
+ }
793
+
794
+ .studio-token-group {
795
+ min-width: 0;
796
+ margin: 10px 0 0;
797
+ padding: 8px 10px 10px;
798
+ border: 1px solid #e6e6e6;
799
+ border-radius: 8px;
800
+ }
801
+ .studio-token-group legend {
802
+ padding: 0 6px;
803
+ font-size: 11px;
804
+ font-weight: 600;
805
+ text-transform: capitalize;
806
+ color: #434343;
807
+ }
808
+ /* Typography keeps its compact three-field styles but shares the table's group header rows. */
809
+ :is(.studio-token-list-inline, .studio-token-list-rows) {
810
+ --studio-cell-line: #eaeaea;
811
+ }
812
+ /* Section titles are header rows of one continuous table rather than separately bordered boxes. */
813
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group {
814
+ margin: 0 calc(-1 * var(--studio-editor-pad));
815
+ padding: 0;
816
+ border: 0;
817
+ border-radius: 0;
818
+ }
819
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group legend {
820
+ float: left;
821
+ display: flex;
822
+ align-items: center;
823
+ width: 100%;
824
+ box-sizing: border-box;
825
+ margin: 0;
826
+ padding: 0 var(--studio-editor-pad) 0 0;
827
+ background: #f7f7f7;
828
+ border-bottom: 1px solid var(--studio-cell-line);
829
+ }
830
+ /* The whole header row toggles its group, not only the title text. */
831
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group .studio-group-toggle {
832
+ flex: 1;
833
+ align-self: stretch;
834
+ min-width: 0;
835
+ padding: 7px 0 7px var(--studio-editor-pad);
836
+ text-align: left;
837
+ }
838
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group:first-child legend {
839
+ border-top: 1px solid var(--studio-cell-line);
840
+ }
841
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group > div {
842
+ clear: both;
843
+ }
844
+ .studio-token-list-inline .studio-token-group .studio-token {
845
+ padding-inline: var(--studio-editor-pad);
846
+ }
847
+ .studio-token-group > div > .studio-token:last-child {
848
+ border-bottom: 0;
849
+ padding-bottom: 0;
850
+ }
851
+ .studio-type-fields {
852
+ display: grid;
853
+ grid-template-columns: repeat(3, minmax(0, 1fr));
854
+ gap: 8px;
855
+ }
856
+ .studio-type-fields .studio-token {
857
+ min-width: 0;
858
+ padding: 0;
859
+ border: 0;
860
+ }
861
+ .studio-type-fields .studio-token label > span {
862
+ font-size: 11px;
863
+ white-space: nowrap;
864
+ text-transform: none;
865
+ margin-bottom: 0;
866
+ }
867
+ .studio-type-fields .studio-token-value {
868
+ position: relative;
869
+ gap: 0;
870
+ }
871
+ .studio-type-fields .studio-token-value input:not([type="color"]) {
872
+ padding-right: 27px;
873
+ }
874
+ .studio-type-fields .studio-token-value button {
875
+ position: absolute;
876
+ right: 1px;
877
+ padding: 5px;
878
+ }
879
+ @container (min-width: 801px) and (max-width: 1100px) {
880
+ .studio-type-fields {
881
+ grid-template-columns: 1fr;
882
+ }
883
+ }
884
+ @container (max-width: 420px) {
885
+ .studio-type-fields {
886
+ gap: 6px;
887
+ }
888
+ .studio-type-fields .studio-token-value input:not([type="color"]) {
889
+ padding-left: 6px;
890
+ font-size: 11px;
891
+ }
892
+ }
893
+
894
+ .studio-color-mode {
895
+ flex-shrink: 0;
896
+ }
897
+ .studio-color-mode button {
898
+ cursor: pointer;
899
+ }
900
+ .studio-color-mode button:focus-visible {
901
+ outline: 2px solid #797979;
902
+ outline-offset: 2px;
903
+ }
904
+ .studio-token-list-inline .studio-token {
905
+ display: grid;
906
+ grid-template-columns: minmax(0, 1fr) minmax(170px, 46%);
907
+ align-items: center;
908
+ gap: 6px 14px;
909
+ }
910
+ .studio-token-list-inline .studio-token label {
911
+ margin: 0;
912
+ overflow-wrap: anywhere;
913
+ }
914
+ .studio-token-list-inline .studio-token-value {
915
+ min-width: 0;
916
+ }
917
+ .studio-token-list-inline .studio-error {
918
+ grid-column: 2;
919
+ margin: 0;
920
+ }
921
+ @container (max-width: 420px) {
922
+ .studio-token-list-inline .studio-token {
923
+ grid-template-columns: minmax(0, 1fr) minmax(165px, 50%);
924
+ gap: 6px 10px;
925
+ }
926
+ }
927
+
928
+ /* A compact select that shows only a chevron; its text is hidden so the placeholder never shows. */
929
+ .studio-size-presets {
930
+ appearance: none;
931
+ width: 20px;
932
+ height: 24px;
933
+ flex-shrink: 0;
934
+ padding: 0;
935
+ border: 1px solid #e6e6e6;
936
+ border-radius: 4px;
937
+ background: #fff
938
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a6a6a' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
939
+ center / 12px no-repeat;
940
+ color: transparent;
941
+ font-size: 11px;
942
+ cursor: pointer;
943
+ }
944
+ .studio-size-presets:hover {
945
+ border-color: #d4d4d4;
946
+ background-color: #f7f7f7;
947
+ }
948
+ .studio-size-presets :is(option, optgroup) {
949
+ color: #393939;
950
+ }
951
+ .studio-token-value:has(.studio-size-presets) {
952
+ gap: 3px;
953
+ }
954
+ .studio-type-fields .studio-token-value:has(.studio-size-presets) input {
955
+ padding-right: 5px;
956
+ }
957
+ .studio-type-fields .studio-token-value:has(.studio-size-presets) button {
958
+ position: static;
959
+ width: 20px;
960
+ }
961
+
962
+ .studio-token-input {
963
+ position: relative;
964
+ display: flex;
965
+ flex: 1;
966
+ min-width: 0;
967
+ }
968
+ .studio-token-unit {
969
+ position: absolute;
970
+ right: 4px;
971
+ top: 50%;
972
+ transform: translateY(-50%);
973
+ color: #939393;
974
+ font-size: 11px;
975
+ font-variant-numeric: tabular-nums;
976
+ pointer-events: none;
977
+ }
978
+ .studio-token-value .studio-token-input:has(.studio-token-unit) input {
979
+ padding-right: 32px;
980
+ }
981
+ /* Compact text-style fields keep their reset button inside the input, so the unit sits to its left. */
982
+ .studio-type-fields .studio-token-value:not(:has(.studio-size-presets)) .studio-token-unit {
983
+ right: 29px;
984
+ }
985
+ .studio-type-fields
986
+ .studio-token-value:not(:has(.studio-size-presets))
987
+ .studio-token-input:has(.studio-token-unit)
988
+ input {
989
+ padding-right: 52px;
990
+ }
991
+
992
+ .studio-group-toggle {
993
+ display: inline-flex;
994
+ align-items: center;
995
+ gap: 4px;
996
+ padding: 0;
997
+ border: 0;
998
+ background: transparent;
999
+ color: inherit;
1000
+ font: inherit;
1001
+ text-transform: inherit;
1002
+ cursor: pointer;
1003
+ }
1004
+ .studio-group-toggle svg {
1005
+ color: #929292;
1006
+ transition: transform 0.15s ease;
1007
+ }
1008
+ .studio-group-toggle[aria-expanded="true"] svg {
1009
+ transform: rotate(90deg);
1010
+ }
1011
+ .studio-group-toggle:focus-visible {
1012
+ outline: 2px solid #797979;
1013
+ outline-offset: 2px;
1014
+ border-radius: 3px;
1015
+ }
1016
+ .studio-group-changed {
1017
+ width: 5px;
1018
+ height: 5px;
1019
+ border-radius: 50%;
1020
+ background: #727272;
1021
+ margin-left: 2px;
1022
+ }
1023
+ .studio-token-group.is-collapsed {
1024
+ padding-bottom: 0;
1025
+ }
1026
+
1027
+ /* A text-only action, so the section heading stays one compact line. */
1028
+ .studio-toggle-all {
1029
+ display: inline-flex;
1030
+ align-items: center;
1031
+ gap: 4px;
1032
+ flex-shrink: 0;
1033
+ padding: 2px 0;
1034
+ border: 0;
1035
+ border-radius: 4px;
1036
+ background: transparent;
1037
+ color: #6a6a6a;
1038
+ font-size: 11px;
1039
+ line-height: 1;
1040
+ cursor: pointer;
1041
+ }
1042
+ .studio-toggle-all:hover:not(:disabled) {
1043
+ color: #393939;
1044
+ text-decoration: underline;
1045
+ text-underline-offset: 2px;
1046
+ }
1047
+ .studio-toggle-all:disabled {
1048
+ opacity: 0.5;
1049
+ cursor: default;
1050
+ }
1051
+ .studio-toggle-all:focus-visible {
1052
+ outline: 2px solid #797979;
1053
+ outline-offset: 2px;
1054
+ }
1055
+ .studio-token-list:not(.studio-token-list-inline, .studio-token-list-rows) .studio-token-group.is-collapsed {
1056
+ border-inline: 0;
1057
+ border-bottom: 0;
1058
+ border-radius: 0;
1059
+ padding-inline: 0;
1060
+ }
1061
+
1062
+ /* Table rows: label | value (+ swatch/unit) | presets | reset, divided by shared hairlines. */
1063
+ .studio-token-list-inline .studio-token-group .studio-token {
1064
+ align-items: stretch;
1065
+ gap: 0;
1066
+ padding-block: 0;
1067
+ padding-right: 0;
1068
+ min-height: 32px;
1069
+ border-bottom-color: var(--studio-cell-line);
1070
+ }
1071
+ .studio-token-list-inline .studio-token-group .studio-token:hover {
1072
+ background: #fbfbfb;
1073
+ }
1074
+ .studio-token-list-inline .studio-token-group > div > .studio-token:last-child {
1075
+ border-bottom: 1px solid var(--studio-cell-line);
1076
+ }
1077
+ .studio-token-list-inline .studio-token-group .studio-token label {
1078
+ display: flex;
1079
+ align-items: center;
1080
+ padding: 6px 12px 6px 0;
1081
+ }
1082
+ .studio-token-list-inline .studio-token-group .studio-token-value {
1083
+ gap: 0;
1084
+ align-items: stretch;
1085
+ border-left: 1px solid var(--studio-cell-line);
1086
+ }
1087
+ .studio-token-list-inline .studio-token-group .studio-token-value > * + * {
1088
+ border-left: 1px solid var(--studio-cell-line);
1089
+ }
1090
+ .studio-token-list-inline .studio-token-group .studio-token-value input:not([type="color"]) {
1091
+ height: 100%;
1092
+ min-height: 32px;
1093
+ padding: 0 8px;
1094
+ border: 0;
1095
+ border-radius: 0;
1096
+ background: transparent;
1097
+ }
1098
+ .studio-token-list-inline .studio-token-group .studio-token-value input[aria-invalid="true"] {
1099
+ background: #fdf1ef;
1100
+ box-shadow: inset 0 0 0 1px #c34839;
1101
+ }
1102
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"] {
1103
+ align-self: center;
1104
+ width: 32px;
1105
+ height: 32px;
1106
+ padding: 8px;
1107
+ border: 0;
1108
+ border-radius: 0;
1109
+ background: transparent;
1110
+ cursor: pointer;
1111
+ }
1112
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-webkit-color-swatch-wrapper {
1113
+ padding: 0;
1114
+ }
1115
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-webkit-color-swatch {
1116
+ border: 1px solid #dddddd;
1117
+ border-radius: 3px;
1118
+ }
1119
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-moz-color-swatch {
1120
+ border: 1px solid #dddddd;
1121
+ border-radius: 3px;
1122
+ }
1123
+ .studio-token-list-inline .studio-token-group .studio-palette-swatch {
1124
+ align-self: center;
1125
+ margin: 0 7px;
1126
+ }
1127
+ .studio-token-list-inline .studio-token-group .studio-palette-trigger {
1128
+ min-height: 32px;
1129
+ }
1130
+ .studio-token-list-inline .studio-token-group .studio-size-presets {
1131
+ width: 28px;
1132
+ height: auto;
1133
+ border: 0;
1134
+ border-radius: 0;
1135
+ /* Only the color: the chevron icon is the background image. */
1136
+ background-color: transparent;
1137
+ }
1138
+ .studio-token-list-inline .studio-token-group .studio-token-value .studio-size-presets {
1139
+ border-left: 1px solid var(--studio-cell-line);
1140
+ }
1141
+ .studio-token-list-inline .studio-token-group .studio-token-value > button {
1142
+ width: 32px;
1143
+ height: auto;
1144
+ border-radius: 0;
1145
+ }
1146
+ .studio-token-list-inline .studio-token-group .studio-token-value :is(input, select, button):focus-visible {
1147
+ outline-offset: -2px;
1148
+ }
1149
+ .studio-token-list-inline .studio-token-group .studio-error {
1150
+ margin: 0;
1151
+ padding: 6px 8px;
1152
+ border-left: 1px solid var(--studio-cell-line);
1153
+ }
1154
+
1155
+ /* Component gallery */
1156
+ .studio-sample {
1157
+ position: relative;
1158
+ }
1159
+ .studio-gallery-loading {
1160
+ margin: 0;
1161
+ padding: 24px;
1162
+ color: #8d8d8d;
1163
+ font-size: 11px;
1164
+ text-align: center;
1165
+ }
1166
+ .studio-gallery {
1167
+ display: grid;
1168
+ gap: 22px;
1169
+ }
1170
+ .studio-gallery-group h3 {
1171
+ margin: 0 0 8px;
1172
+ font:
1173
+ 600 9px "Inter Variable",
1174
+ Inter,
1175
+ sans-serif;
1176
+ letter-spacing: 1.1px;
1177
+ text-transform: uppercase;
1178
+ color: rgb(var(--surface-default-foreground-base));
1179
+ opacity: 0.8;
1180
+ }
1181
+ .studio-gallery-grid {
1182
+ display: grid;
1183
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
1184
+ gap: 24px 28px;
1185
+ }
1186
+ /* Components float freely in the preview; the whole block is the click target. */
1187
+ .studio-gallery-card {
1188
+ position: relative;
1189
+ display: flex;
1190
+ flex-direction: column;
1191
+ gap: 10px;
1192
+ min-width: 0;
1193
+ padding: 4px 0;
1194
+ }
1195
+ .studio-gallery-card-hit {
1196
+ position: absolute;
1197
+ inset: 0;
1198
+ z-index: 1;
1199
+ padding: 0;
1200
+ border: 0;
1201
+ border-radius: 4px;
1202
+ background: transparent;
1203
+ cursor: pointer;
1204
+ }
1205
+ .studio-gallery-card:hover .studio-gallery-card-title {
1206
+ color: rgb(var(--surface-default-card-foreground-base));
1207
+ }
1208
+ .studio-overlay .studio-gallery-card-hit:focus-visible {
1209
+ outline: 2px solid #797979;
1210
+ outline-offset: 4px;
1211
+ }
1212
+ .studio-gallery-card-title {
1213
+ font:
1214
+ 500 11px "Inter Variable",
1215
+ Inter,
1216
+ sans-serif;
1217
+ color: rgb(var(--surface-default-foreground-base));
1218
+ }
1219
+ .studio-gallery-demo {
1220
+ position: relative;
1221
+ min-width: 0;
1222
+ }
1223
+ .studio-gallery-card .studio-gallery-demo {
1224
+ pointer-events: none;
1225
+ }
1226
+
1227
+ /* Zoomed component */
1228
+ .studio-gallery-zoom {
1229
+ display: flex;
1230
+ flex-direction: column;
1231
+ gap: 14px;
1232
+ animation: studio-zoom-in 0.2s ease-out;
1233
+ }
1234
+ @keyframes studio-zoom-in {
1235
+ from {
1236
+ opacity: 0;
1237
+ }
1238
+ }
1239
+ .studio-gallery-zoom-bar {
1240
+ display: flex;
1241
+ align-items: center;
1242
+ gap: 10px;
1243
+ font:
1244
+ 600 11px "Inter Variable",
1245
+ Inter,
1246
+ sans-serif;
1247
+ color: rgb(var(--surface-default-card-foreground-base));
1248
+ }
1249
+ .studio-gallery-back {
1250
+ display: inline-flex;
1251
+ align-items: center;
1252
+ gap: 5px;
1253
+ padding: 5px 9px;
1254
+ border: 1px solid #e5e5e5;
1255
+ border-radius: 6px;
1256
+ background: #fff;
1257
+ color: #6a6a6a;
1258
+ font:
1259
+ 400 11px "Inter Variable",
1260
+ Inter,
1261
+ sans-serif;
1262
+ cursor: pointer;
1263
+ }
1264
+ .studio-gallery-back:hover {
1265
+ background: #f7f7f7;
1266
+ color: #454545;
1267
+ }
1268
+ .studio-gallery-zoom-stage {
1269
+ display: flex;
1270
+ justify-content: center;
1271
+ padding: 24px 0;
1272
+ }
1273
+
1274
+ /* Inspector */
1275
+ .studio-inspect-stage {
1276
+ position: relative;
1277
+ }
1278
+ .studio-inspect-layer {
1279
+ position: absolute;
1280
+ inset: 0;
1281
+ pointer-events: none;
1282
+ }
1283
+ .studio-inspect-outline {
1284
+ position: absolute;
1285
+ outline: 1px dashed #2f7fd6;
1286
+ outline-offset: 0;
1287
+ }
1288
+ .studio-inspect-region {
1289
+ position: absolute;
1290
+ padding: 0;
1291
+ border: 0;
1292
+ pointer-events: auto;
1293
+ cursor: pointer;
1294
+ opacity: 0.55;
1295
+ transition: opacity 0.1s ease;
1296
+ }
1297
+ .studio-inspect-region:hover,
1298
+ .studio-inspect-region.is-active {
1299
+ opacity: 0.85;
1300
+ }
1301
+ .studio-inspect-region.is-padding {
1302
+ background: #93c47d;
1303
+ }
1304
+ .studio-inspect-region.is-gap {
1305
+ background: repeating-linear-gradient(45deg, #fb923c 0 3px, #fed7aa 3px 6px);
1306
+ }
1307
+ .studio-inspect-region.is-radius {
1308
+ background: #f0a35e;
1309
+ border-radius: 50%;
1310
+ }
1311
+ .studio-overlay .studio-inspect-region:focus-visible {
1312
+ outline: 2px solid #1d5fa8;
1313
+ outline-offset: 0;
1314
+ opacity: 0.9;
1315
+ }
1316
+ .studio-inspect-label {
1317
+ position: absolute;
1318
+ z-index: 1;
1319
+ max-width: 220px;
1320
+ padding: 3px 7px;
1321
+ border-radius: 4px;
1322
+ background: #272727;
1323
+ color: #fff;
1324
+ font:
1325
+ 400 11px "Inter Variable",
1326
+ Inter,
1327
+ sans-serif;
1328
+ white-space: nowrap;
1329
+ overflow: hidden;
1330
+ text-overflow: ellipsis;
1331
+ pointer-events: none;
1332
+ }
1333
+ .studio-inspect-label strong {
1334
+ font-weight: 600;
1335
+ text-transform: capitalize;
1336
+ }
1337
+ .studio-inspect-label.is-padding strong {
1338
+ color: #b9e0a5;
1339
+ }
1340
+ .studio-inspect-label.is-gap strong {
1341
+ color: #fed7aa;
1342
+ }
1343
+ .studio-inspect-label.is-radius strong {
1344
+ color: #f6c08f;
1345
+ }
1346
+ .studio-inspect-hint {
1347
+ margin: 14px 0 0;
1348
+ color: #8d8d8d;
1349
+ font:
1350
+ 400 11px "Inter Variable",
1351
+ Inter,
1352
+ sans-serif;
1353
+ text-align: center;
1354
+ }
1355
+
1356
+ /* Token picked in the inspector */
1357
+ .studio-token.is-highlighted {
1358
+ background: #f1f1f1;
1359
+ box-shadow: inset 3px 0 0 #797979;
1360
+ animation: studio-token-flash 1.2s ease-out;
1361
+ }
1362
+ .studio-token-list-inline .studio-token-group .studio-token.is-highlighted:hover {
1363
+ background: #ececec;
1364
+ }
1365
+ @keyframes studio-token-flash {
1366
+ 0%,
1367
+ 30% {
1368
+ background: #dfdfdf;
1369
+ }
1370
+ }
1371
+ .studio-gallery-card.is-wide {
1372
+ grid-column: 1 / -1;
1373
+ }
1374
+ .studio-gallery-card.is-wide .studio-gallery-demo,
1375
+ .studio-gallery-zoom .studio-gallery-demo {
1376
+ overflow-x: auto;
1377
+ padding-bottom: 2px;
1378
+ }
1379
+
1380
+ .studio-cva-field {
1381
+ display: grid;
1382
+ gap: 4px;
1383
+ margin: 8px 0;
1384
+ }
1385
+ .studio-cva-field > span {
1386
+ font-size: 11px;
1387
+ color: #6a6a6a;
1388
+ overflow-wrap: anywhere;
1389
+ }
1390
+ .studio-cva-field input {
1391
+ width: 100%;
1392
+ min-width: 0;
1393
+ height: 26px;
1394
+ padding: 3px 7px;
1395
+ border: 1px solid #e6e6e6;
1396
+ border-radius: 5px;
1397
+ background: white;
1398
+ color: #414141;
1399
+ font: 11px monospace;
1400
+ }
1401
+ .studio-cva-reset {
1402
+ padding: 5px 9px;
1403
+ border: 1px solid #e6e6e6;
1404
+ border-radius: 5px;
1405
+ background: white;
1406
+ color: #414141;
1407
+ font-size: 12px;
1408
+ }
1409
+
1410
+ .studio-context-preview {
1411
+ padding: 16px;
1412
+ border-radius: 10px;
1413
+ background: rgb(var(--surface-default-background-base));
1414
+ color: rgb(var(--surface-default-card-foreground-base));
1415
+ font-family: var(--font-body);
1416
+ }
1417
+ .studio-context-preview > h3,
1418
+ .studio-context-preview [data-testid="cva-preview"] > h3 {
1419
+ font: 600 14px sans-serif;
1420
+ text-transform: capitalize;
1421
+ margin: 0 0 14px;
1422
+ }
1423
+ .studio-preview-controls {
1424
+ display: grid;
1425
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1426
+ gap: 8px 12px;
1427
+ margin-bottom: 16px;
1428
+ }
1429
+ .studio-preview-controls label {
1430
+ display: flex;
1431
+ align-items: center;
1432
+ justify-content: space-between;
1433
+ gap: 5px;
1434
+ min-width: 0;
1435
+ font: 11px sans-serif;
1436
+ }
1437
+ .studio-preview-controls select {
1438
+ min-width: 0;
1439
+ max-width: 110px;
1440
+ height: 26px;
1441
+ border: 1px solid #e1e1e1;
1442
+ border-radius: 4px;
1443
+ background: white;
1444
+ color: #414141;
1445
+ }
1446
+ .studio-cva-stage {
1447
+ position: relative;
1448
+ contain: layout paint;
1449
+ isolation: isolate;
1450
+ display: grid;
1451
+ align-items: center;
1452
+ justify-items: start;
1453
+ min-height: 180px;
1454
+ padding: 24px;
1455
+ background: rgb(var(--surface-default-card-base));
1456
+ border: 1px solid rgb(var(--border-default-subtle-base));
1457
+ border-radius: 8px;
1458
+ overflow: auto;
1459
+ }
1460
+ .studio-cva-stage > * {
1461
+ max-width: 100%;
1462
+ }
1463
+ .studio-preview-caption {
1464
+ margin-top: 10px;
1465
+ font: 10px/1.5 sans-serif;
1466
+ color: #919191;
1467
+ }
1468
+ .studio-token-samples {
1469
+ display: grid;
1470
+ gap: 18px;
1471
+ }
1472
+ .studio-token-sample > span {
1473
+ display: block;
1474
+ margin-bottom: 4px;
1475
+ font: 11px sans-serif;
1476
+ text-transform: capitalize;
1477
+ }
1478
+ .studio-token-specimen {
1479
+ overflow-wrap: anywhere;
1480
+ }
1481
+
1482
+ /* Shades generator for base palette groups; its group gets top padding so the panel clears the header row. */
1483
+ .studio-token-group > div:has(> .studio-shades) {
1484
+ padding-top: 10px;
1485
+ }
1486
+ .studio-palette-actions {
1487
+ display: flex;
1488
+ gap: 6px;
1489
+ margin-left: auto;
1490
+ }
1491
+ .studio-token-group legend:has(.studio-shades-toggle) {
1492
+ display: flex;
1493
+ align-items: center;
1494
+ width: 100%;
1495
+ box-sizing: border-box;
1496
+ }
1497
+ .studio-shades-toggle {
1498
+ display: inline-flex;
1499
+ align-items: center;
1500
+ gap: 4px;
1501
+ padding: 3px 8px;
1502
+ border: 1px solid #e3e3e3;
1503
+ border-radius: 5px;
1504
+ background: #fff;
1505
+ color: #525252;
1506
+ font-size: 10px;
1507
+ font-weight: 550;
1508
+ text-transform: none;
1509
+ }
1510
+ .studio-shades {
1511
+ display: flex;
1512
+ flex-direction: column;
1513
+ gap: 12px;
1514
+ margin: 0 10px 10px;
1515
+ padding: 10px;
1516
+ border: 1px solid #e3e3e3;
1517
+ border-radius: 8px;
1518
+ background: #fbfbfb;
1519
+ }
1520
+ .studio-shades-input {
1521
+ display: flex;
1522
+ align-items: center;
1523
+ gap: 8px;
1524
+ }
1525
+ .studio-shades-input label {
1526
+ font-size: 11px;
1527
+ font-weight: 550;
1528
+ white-space: nowrap;
1529
+ }
1530
+ .studio-shades-input .studio-token-input {
1531
+ align-items: center;
1532
+ gap: 4px;
1533
+ max-width: 140px;
1534
+ padding-left: 8px;
1535
+ border: 1px solid #e5e5e5;
1536
+ border-radius: 5px;
1537
+ background: #fff;
1538
+ color: #939393;
1539
+ }
1540
+ .studio-shades-input .studio-token-input input {
1541
+ width: 100%;
1542
+ border: 0;
1543
+ padding: 6px 6px 6px 0;
1544
+ outline: none;
1545
+ font-family: ui-monospace, monospace;
1546
+ text-transform: uppercase;
1547
+ }
1548
+ /* Compact actions share the base color row to save vertical space. */
1549
+ .studio-shades-actions {
1550
+ display: flex;
1551
+ gap: 6px;
1552
+ margin-left: auto;
1553
+ }
1554
+ .studio-shades-actions button {
1555
+ padding: 4px 8px;
1556
+ border-radius: 5px;
1557
+ font-size: 10px;
1558
+ line-height: 1.3;
1559
+ }
1560
+ .studio-shades-actions button:not(.studio-primary) {
1561
+ border: 1px solid #e7e7e7;
1562
+ background: #fff;
1563
+ color: #717171;
1564
+ }
1565
+ .studio-shades-actions .studio-primary:disabled {
1566
+ opacity: 0.5;
1567
+ }
1568
+ /* Global rounding stepper at the top of the Radius section. */
1569
+ .studio-rounding {
1570
+ display: flex;
1571
+ align-items: center;
1572
+ gap: 10px;
1573
+ margin-bottom: 12px;
1574
+ padding: 10px;
1575
+ border: 1px solid #e3e3e3;
1576
+ border-radius: 8px;
1577
+ background: #fbfbfb;
1578
+ }
1579
+ .studio-rounding-preview {
1580
+ flex: none;
1581
+ width: 22px;
1582
+ height: 22px;
1583
+ border-top: 2px solid #393939;
1584
+ border-left: 2px solid #393939;
1585
+ box-sizing: border-box;
1586
+ transition: border-radius 150ms ease;
1587
+ }
1588
+ .studio-scale-preview-spacing {
1589
+ display: flex;
1590
+ justify-content: center;
1591
+ border: 0;
1592
+ transition: gap 150ms ease;
1593
+ }
1594
+ .studio-scale-preview-spacing i {
1595
+ width: 6px;
1596
+ border-radius: 2px;
1597
+ background: #393939;
1598
+ }
1599
+ .studio-scale-preview-sizing {
1600
+ width: 16px;
1601
+ height: 16px;
1602
+ margin: 3px;
1603
+ border: 2px solid #393939;
1604
+ border-radius: 3px;
1605
+ transition: scale 150ms ease;
1606
+ }
1607
+ .studio-scale-preview-font-size {
1608
+ display: flex;
1609
+ align-items: center;
1610
+ justify-content: center;
1611
+ border: 0;
1612
+ color: #393939;
1613
+ font-weight: 600;
1614
+ line-height: 1;
1615
+ transition: font-size 150ms ease;
1616
+ }
1617
+ .studio-rounding-text {
1618
+ display: flex;
1619
+ flex-direction: column;
1620
+ gap: 2px;
1621
+ min-width: 0;
1622
+ }
1623
+ .studio-rounding-text strong {
1624
+ font-size: 11px;
1625
+ font-weight: 550;
1626
+ }
1627
+ .studio-rounding-text span {
1628
+ color: #717171;
1629
+ font-size: 10px;
1630
+ }
1631
+ .studio-rounding-stepper {
1632
+ display: flex;
1633
+ align-items: center;
1634
+ margin-left: auto;
1635
+ border: 1px solid #e5e5e5;
1636
+ border-radius: 6px;
1637
+ background: #fff;
1638
+ }
1639
+ .studio-rounding-stepper button {
1640
+ display: inline-flex;
1641
+ align-items: center;
1642
+ justify-content: center;
1643
+ width: 26px;
1644
+ height: 26px;
1645
+ padding: 0;
1646
+ border: 0;
1647
+ background: none;
1648
+ color: #525252;
1649
+ }
1650
+ .studio-rounding-stepper button:disabled {
1651
+ opacity: 0.35;
1652
+ cursor: default;
1653
+ }
1654
+ .studio-rounding-stepper output {
1655
+ min-width: 56px;
1656
+ font-size: 11px;
1657
+ font-weight: 550;
1658
+ text-align: center;
1659
+ font-variant-numeric: tabular-nums;
1660
+ }
1661
+ .studio-token-list-inline .studio-token-group .studio-palette-trigger .studio-palette-swatch {
1662
+ margin: 0;
1663
+ }
1664
+
1665
+ /* Translucent colors: a half solid, half checkerboard swatch, hex value and opacity, as in Figma. */
1666
+ .studio-alpha-color {
1667
+ display: flex;
1668
+ flex: 1;
1669
+ align-items: center;
1670
+ gap: 7px;
1671
+ min-width: 0;
1672
+ padding-left: 4px;
1673
+ }
1674
+ .studio-alpha-swatch {
1675
+ position: relative;
1676
+ flex-shrink: 0;
1677
+ width: 18px;
1678
+ height: 18px;
1679
+ overflow: hidden;
1680
+ border: 1px solid #dadada;
1681
+ border-radius: 3px;
1682
+ background:
1683
+ linear-gradient(90deg, var(--swatch-solid) 50%, transparent 50%),
1684
+ linear-gradient(var(--swatch-color), var(--swatch-color)),
1685
+ repeating-conic-gradient(#cdcdcd 0 25%, #fff 0 50%) 0 0 / 8px 8px;
1686
+ }
1687
+ .studio-alpha-swatch input[type="color"] {
1688
+ position: absolute;
1689
+ inset: 0;
1690
+ width: 100%;
1691
+ height: 100%;
1692
+ padding: 0;
1693
+ border: 0;
1694
+ opacity: 0;
1695
+ cursor: pointer;
1696
+ }
1697
+ .studio-alpha-color .studio-alpha-hex {
1698
+ flex: 1;
1699
+ min-width: 0;
1700
+ padding: 6px 0;
1701
+ border: 0;
1702
+ outline: none;
1703
+ background: transparent;
1704
+ font: inherit;
1705
+ font-size: 11px;
1706
+ text-transform: uppercase;
1707
+ }
1708
+ .studio-alpha-opacity {
1709
+ display: flex;
1710
+ flex-shrink: 0;
1711
+ align-items: center;
1712
+ width: 52px;
1713
+ margin-right: 4px;
1714
+ border-radius: 4px;
1715
+ background: #f4f4f4;
1716
+ }
1717
+ .studio-alpha-opacity input {
1718
+ width: 100%;
1719
+ padding: 3px 6px;
1720
+ border: 0;
1721
+ outline: none;
1722
+ background: transparent;
1723
+ font: inherit;
1724
+ font-size: 11px;
1725
+ text-align: right;
1726
+ }
1727
+ .studio-alpha-opacity:focus-within,
1728
+ .studio-alpha-color .studio-alpha-hex:focus-visible {
1729
+ box-shadow: 0 0 0 2px #79797955;
1730
+ }
1731
+
1732
+ /* Layout preview: product cards built only from theme tokens, at the top of the gallery. */
1733
+ .studio-layout-heading {
1734
+ display: flex;
1735
+ align-items: center;
1736
+ justify-content: space-between;
1737
+ gap: 8px;
1738
+ margin-bottom: 8px;
1739
+ }
1740
+ .studio-layout-heading h3 {
1741
+ margin: 0;
1742
+ }
1743
+ /* Full screen layouts fill the window at an app's real width, still inside the preview so draft tokens apply. */
1744
+ .studio-layout-fullscreen {
1745
+ position: fixed;
1746
+ inset: 0;
1747
+ z-index: 1000;
1748
+ display: flex;
1749
+ flex-direction: column;
1750
+ overflow: auto;
1751
+ background: var(--color-surface-default-background);
1752
+ color: var(--color-surface-default-foreground);
1753
+ animation: studio-zoom-in 0.2s ease-out;
1754
+ }
1755
+ .studio-layout-fullscreen-bar {
1756
+ position: sticky;
1757
+ top: 0;
1758
+ z-index: 1;
1759
+ display: flex;
1760
+ align-items: center;
1761
+ justify-content: space-between;
1762
+ gap: 12px;
1763
+ padding: 10px 24px;
1764
+ border-bottom: 1px solid #e8e8e8;
1765
+ background: #fafafa;
1766
+ color: #393939;
1767
+ font:
1768
+ 600 11px "Inter Variable",
1769
+ Inter,
1770
+ sans-serif;
1771
+ }
1772
+ .studio-layout-fullscreen-stage {
1773
+ width: 100%;
1774
+ max-width: 1200px;
1775
+ margin: 0 auto;
1776
+ padding: 32px 24px;
1777
+ box-sizing: border-box;
1778
+ }
1779
+ /* Cards share a row but grow to fit their content, so larger buttons or text widen the card instead of overflowing. */
1780
+ .studio-layout-grid {
1781
+ display: flex;
1782
+ flex-wrap: wrap;
1783
+ gap: 14px;
1784
+ }
1785
+ .studio-layout-card {
1786
+ flex: 1 1 190px;
1787
+ min-width: min-content;
1788
+ box-sizing: border-box;
1789
+ display: flex;
1790
+ flex-direction: column;
1791
+ gap: 10px;
1792
+ min-height: 270px;
1793
+ padding: 16px;
1794
+ border-radius: var(--radius-modal-rounding-default);
1795
+ font-family: var(--font-body);
1796
+ font-size: var(--text-small);
1797
+ line-height: var(--text-small--line-height);
1798
+ }
1799
+ .studio-layout-card p,
1800
+ .studio-layout-card h4,
1801
+ .studio-layout-card ul {
1802
+ margin: 0;
1803
+ }
1804
+ .studio-layout-label {
1805
+ font-weight: 600;
1806
+ opacity: 0.7;
1807
+ }
1808
+ .studio-layout-card h4,
1809
+ .studio-layout-amount,
1810
+ .studio-layout-price {
1811
+ font-family: var(--font-titles);
1812
+ font-size: var(--text-h4);
1813
+ line-height: var(--text-h4--line-height);
1814
+ letter-spacing: var(--text-h4--letter-spacing);
1815
+ font-weight: 600;
1816
+ }
1817
+ .studio-layout-card.is-soft {
1818
+ border: 1px solid var(--color-border-default-subtle);
1819
+ background: var(--color-surface-default-background);
1820
+ color: var(--color-surface-default-card-foreground);
1821
+ }
1822
+ .studio-layout-tags {
1823
+ display: flex;
1824
+ flex-wrap: wrap;
1825
+ gap: 6px;
1826
+ }
1827
+ .studio-layout-progress {
1828
+ display: grid;
1829
+ gap: 6px;
1830
+ margin-top: auto;
1831
+ }
1832
+ .studio-layout-footer {
1833
+ display: flex;
1834
+ align-items: center;
1835
+ justify-content: space-between;
1836
+ gap: 8px;
1837
+ }
1838
+ .studio-layout-avatars {
1839
+ display: flex;
1840
+ }
1841
+ .studio-layout-avatars span {
1842
+ display: grid;
1843
+ place-items: center;
1844
+ width: 26px;
1845
+ height: 26px;
1846
+ margin-left: -6px;
1847
+ border: 2px solid var(--color-surface-default-background);
1848
+ border-radius: var(--radius-avatar-rounding-default);
1849
+ background: var(--color-interactive-subtle-secondary-background);
1850
+ color: var(--color-interactive-subtle-secondary-foreground);
1851
+ font-size: 9px;
1852
+ font-weight: 600;
1853
+ }
1854
+ .studio-layout-avatars span:first-child {
1855
+ margin-left: 0;
1856
+ }
1857
+ .studio-layout-avatars span:nth-child(2) {
1858
+ background: var(--color-interactive-primary-background);
1859
+ color: var(--color-interactive-primary-foreground);
1860
+ }
1861
+ .studio-layout-card.is-stats {
1862
+ gap: 2px;
1863
+ border: 1px solid var(--color-border-default-subtle);
1864
+ background: var(--color-surface-default-card);
1865
+ color: var(--color-surface-default-card-foreground);
1866
+ }
1867
+ .studio-layout-amount {
1868
+ margin-top: 4px;
1869
+ font-size: var(--text-h3);
1870
+ line-height: var(--text-h3--line-height);
1871
+ }
1872
+ .studio-layout-trend {
1873
+ color: var(--color-surface-success-base);
1874
+ font-weight: 600;
1875
+ }
1876
+ .studio-layout-chart {
1877
+ display: flex;
1878
+ flex: 1;
1879
+ gap: 6px;
1880
+ margin-top: 14px;
1881
+ }
1882
+ .studio-layout-bar {
1883
+ display: flex;
1884
+ flex: 1;
1885
+ flex-direction: column;
1886
+ justify-content: flex-end;
1887
+ align-items: center;
1888
+ gap: 6px;
1889
+ }
1890
+ .studio-layout-bar > span:first-child {
1891
+ width: 100%;
1892
+ max-width: 20px;
1893
+ border-radius: var(--radius-global-rounding-s) var(--radius-global-rounding-s) 0 0;
1894
+ background: color-mix(in srgb, var(--color-interactive-secondary-background) 30%, transparent);
1895
+ }
1896
+ .studio-layout-bar.is-today > span:first-child {
1897
+ background: var(--color-interactive-primary-background);
1898
+ }
1899
+ .studio-layout-day {
1900
+ opacity: 0.6;
1901
+ }
1902
+ /* The highlighted ("recommended") plan: a card outlined in the primary color, which reads in light and dark mode. */
1903
+ .studio-layout-card.is-bold {
1904
+ border: 2px solid var(--color-interactive-primary-background);
1905
+ background: var(--color-surface-default-card);
1906
+ color: var(--color-surface-default-card-foreground);
1907
+ }
1908
+ .studio-layout-price span {
1909
+ margin-left: 2px;
1910
+ font-family: var(--font-body);
1911
+ font-size: var(--text-small);
1912
+ font-weight: 400;
1913
+ opacity: 0.7;
1914
+ }
1915
+ .studio-layout-features {
1916
+ display: grid;
1917
+ gap: 8px;
1918
+ margin-top: 4px;
1919
+ padding: 0;
1920
+ list-style: none;
1921
+ }
1922
+ .studio-layout-features li {
1923
+ display: flex;
1924
+ align-items: center;
1925
+ gap: 8px;
1926
+ }
1927
+ .studio-layout-features svg {
1928
+ flex-shrink: 0;
1929
+ color: var(--color-interactive-primary-background);
1930
+ }
1931
+ .studio-layout-card .studio-layout-cta {
1932
+ margin-top: auto;
1933
+ }
1934
+ .studio-layout-card.is-form {
1935
+ flex-basis: 100%;
1936
+ container-type: inline-size;
1937
+ min-height: 0;
1938
+ gap: 14px;
1939
+ border: 1px solid var(--color-border-default-subtle);
1940
+ background: var(--color-surface-default-card);
1941
+ color: var(--color-surface-default-card-foreground);
1942
+ }
1943
+ .studio-layout-card.is-invite {
1944
+ flex-basis: 100%;
1945
+ min-height: 0;
1946
+ gap: 14px;
1947
+ border: 1px solid var(--color-border-default-subtle);
1948
+ background: var(--color-surface-default-card);
1949
+ color: var(--color-surface-default-card-foreground);
1950
+ }
1951
+ /* The submit button sits on the input's baseline row, so mismatched control heights show at a glance. */
1952
+ .studio-layout-invite {
1953
+ display: flex;
1954
+ flex-wrap: wrap;
1955
+ align-items: flex-end;
1956
+ gap: 8px;
1957
+ }
1958
+ .studio-layout-invite > :first-child {
1959
+ flex: 1 1 200px;
1960
+ }
1961
+ .studio-layout-invite-actions {
1962
+ display: flex;
1963
+ flex-wrap: wrap;
1964
+ gap: 8px;
1965
+ }
1966
+ .studio-layout-card.is-settings {
1967
+ flex-basis: 100%;
1968
+ container-type: inline-size;
1969
+ min-height: 0;
1970
+ gap: 14px;
1971
+ border: 1px solid var(--color-border-default-subtle);
1972
+ background: var(--color-surface-default-card);
1973
+ color: var(--color-surface-default-card-foreground);
1974
+ }
1975
+ /* Top navigation spans the card edge to edge, above the breadcrumbs. */
1976
+ .studio-layout-nav {
1977
+ display: flex;
1978
+ flex-wrap: wrap;
1979
+ align-items: center;
1980
+ gap: 8px 16px;
1981
+ margin: -16px -16px 0;
1982
+ padding: 10px 16px;
1983
+ border-bottom: 1px solid var(--color-border-default-subtle);
1984
+ }
1985
+ .studio-layout-brand {
1986
+ display: inline-flex;
1987
+ align-items: center;
1988
+ gap: 8px;
1989
+ font-family: var(--font-titles);
1990
+ font-size: var(--text-lead);
1991
+ font-weight: 700;
1992
+ }
1993
+ .studio-layout-brand > span {
1994
+ display: grid;
1995
+ place-items: center;
1996
+ width: 26px;
1997
+ height: 26px;
1998
+ border-radius: var(--radius-global-rounding-s);
1999
+ background: var(--color-interactive-primary-background);
2000
+ color: var(--color-interactive-primary-foreground);
2001
+ font-size: var(--text-small);
2002
+ }
2003
+ .studio-layout-nav-links {
2004
+ display: flex;
2005
+ flex-wrap: wrap;
2006
+ gap: 4px;
2007
+ }
2008
+ .studio-layout-nav-actions {
2009
+ display: flex;
2010
+ align-items: center;
2011
+ gap: 8px;
2012
+ margin-left: auto;
2013
+ }
2014
+ .studio-layout-nav-actions > :first-child {
2015
+ width: 200px;
2016
+ }
2017
+ .studio-layout-nav-avatar {
2018
+ display: grid;
2019
+ place-items: center;
2020
+ width: 32px;
2021
+ height: 32px;
2022
+ border-radius: var(--radius-avatar-rounding-default);
2023
+ background: var(--color-interactive-subtle-secondary-background);
2024
+ color: var(--color-interactive-subtle-secondary-foreground);
2025
+ font-size: var(--text-small);
2026
+ font-weight: 600;
2027
+ }
2028
+ /* Menu beside the form, stacking above it in narrow previews. */
2029
+ .studio-layout-settings {
2030
+ display: grid;
2031
+ grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
2032
+ gap: 24px;
2033
+ align-items: start;
2034
+ }
2035
+ @container (max-width: 560px) {
2036
+ .studio-layout-settings {
2037
+ grid-template-columns: minmax(0, 1fr);
2038
+ }
2039
+ }
2040
+ .studio-layout-menu {
2041
+ display: flex;
2042
+ flex-direction: column;
2043
+ overflow: hidden;
2044
+ border: 1px solid var(--color-border-default-subtle);
2045
+ border-radius: var(--radius-list-rounding-dropdown);
2046
+ }
2047
+ .studio-layout-menu button {
2048
+ width: 100%;
2049
+ font: inherit;
2050
+ text-align: left;
2051
+ }
2052
+ /* The current page uses the menu's highlighted (open) item colors. */
2053
+ .studio-layout-menu button[aria-current="page"] {
2054
+ background: var(--color-interactive-primary-background);
2055
+ color: var(--color-interactive-primary-foreground);
2056
+ }
2057
+ .studio-layout-menu-label {
2058
+ display: inline-flex;
2059
+ align-items: center;
2060
+ gap: inherit;
2061
+ }
2062
+ .studio-layout-muted {
2063
+ margin-top: 2px;
2064
+ opacity: 0.7;
2065
+ }
2066
+ .studio-layout-form {
2067
+ display: grid;
2068
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2069
+ gap: 14px 16px;
2070
+ align-items: start;
2071
+ }
2072
+ .studio-layout-form-wide {
2073
+ grid-column: 1 / -1;
2074
+ }
2075
+ @container (max-width: 440px) {
2076
+ .studio-layout-form {
2077
+ grid-template-columns: minmax(0, 1fr);
2078
+ }
2079
+ }
2080
+ .studio-layout-form-footer {
2081
+ display: flex;
2082
+ flex-wrap: wrap;
2083
+ grid-column: 1 / -1;
2084
+ align-items: center;
2085
+ justify-content: space-between;
2086
+ gap: 12px;
2087
+ }
2088
+ .studio-layout-form-actions {
2089
+ display: flex;
2090
+ gap: 8px;
2091
+ }
2092
+
2093
+ .studio-token-list-rows .studio-type-fields {
2094
+ padding: 12px var(--studio-editor-pad) 14px;
2095
+ border-bottom: 1px solid var(--studio-cell-line);
2096
+ }
2097
+ .studio-shades-toggle:disabled {
2098
+ opacity: 0.45;
2099
+ cursor: default;
2100
+ }
2101
+ /* Icon-only reset, last in the palette header row. */
2102
+ .studio-palette-reset {
2103
+ display: grid;
2104
+ place-items: center;
2105
+ /* Same width as the row reset column, and flush right so the icons line up. */
2106
+ width: 32px;
2107
+ margin-right: calc(-1 * var(--studio-editor-pad));
2108
+ height: 22px;
2109
+ padding: 0;
2110
+ border: 0;
2111
+ border-radius: 4px;
2112
+ background: transparent;
2113
+ color: #828282;
2114
+ cursor: pointer;
2115
+ }
2116
+ .studio-palette-reset:hover:not(:disabled) {
2117
+ color: #393939;
2118
+ }
2119
+ .studio-palette-reset:disabled {
2120
+ opacity: 0.4;
2121
+ cursor: default;
2122
+ }
2123
+ .studio-palette-reset:focus-visible {
2124
+ outline: 2px solid #797979;
2125
+ outline-offset: 1px;
2126
+ }
2127
+
2128
+ /* Font roles: picker cards for heading and body fonts, above the font families they choose from. */
2129
+ .studio-font-roles {
2130
+ display: grid;
2131
+ gap: 8px;
2132
+ padding: 12px 0 4px;
2133
+ }
2134
+ .studio-font-role {
2135
+ position: relative;
2136
+ display: flex;
2137
+ align-items: center;
2138
+ gap: 12px;
2139
+ padding: 10px 14px;
2140
+ border: 1px solid #e5e5e5;
2141
+ border-radius: 10px;
2142
+ background: #fff;
2143
+ }
2144
+ .studio-font-role:hover {
2145
+ border-color: #d0d0d0;
2146
+ background: #fafafa;
2147
+ }
2148
+ .studio-font-role:has(select:focus-visible) {
2149
+ outline: 2px solid #797979;
2150
+ outline-offset: 2px;
2151
+ }
2152
+ .studio-font-role-text {
2153
+ display: flex;
2154
+ flex: 1;
2155
+ flex-direction: column;
2156
+ gap: 2px;
2157
+ min-width: 0;
2158
+ }
2159
+ .studio-font-role-text span {
2160
+ color: #8e8e8e;
2161
+ font-size: 10px;
2162
+ }
2163
+ .studio-font-role-text strong {
2164
+ overflow: hidden;
2165
+ color: #2f2f2f;
2166
+ font-size: 13px;
2167
+ font-weight: 600;
2168
+ text-overflow: ellipsis;
2169
+ white-space: nowrap;
2170
+ }
2171
+ .studio-font-role-sample {
2172
+ color: #2f2f2f;
2173
+ font-size: 20px;
2174
+ line-height: 1;
2175
+ }
2176
+ .studio-font-role-select {
2177
+ position: absolute;
2178
+ inset: 0;
2179
+ width: 100%;
2180
+ opacity: 0;
2181
+ cursor: pointer;
2182
+ }
2183
+ /* The reset sits above the select so it stays clickable. */
2184
+ .studio-font-role-reset {
2185
+ position: relative;
2186
+ z-index: 1;
2187
+ display: grid;
2188
+ place-items: center;
2189
+ width: 24px;
2190
+ height: 24px;
2191
+ padding: 0;
2192
+ border: 0;
2193
+ border-radius: 4px;
2194
+ background: transparent;
2195
+ color: #7a7a7a;
2196
+ cursor: pointer;
2197
+ }
2198
+ .studio-font-role-reset:hover {
2199
+ background: #efefef;
2200
+ }
2201
+ .studio-font-divider {
2202
+ margin: 16px 0 4px;
2203
+ border: 0;
2204
+ border-top: 1px solid #e5e5e5;
2205
+ }
2206
+ .studio-font-upload {
2207
+ display: flex;
2208
+ flex-wrap: wrap;
2209
+ align-items: center;
2210
+ gap: 6px 10px;
2211
+ padding-top: 8px;
2212
+ }
2213
+ .studio-font-upload-note {
2214
+ flex: 1 1 200px;
2215
+ margin: 0;
2216
+ color: #8e8e8e;
2217
+ font-size: 10px;
2218
+ line-height: 1.5;
2219
+ }
2220
+
2221
+ /* Presets: one row per preset with a palette strip, its description and an apply button. */
2222
+ .studio-presets {
2223
+ display: grid;
2224
+ gap: 8px;
2225
+ }
2226
+ .studio-presets-intro {
2227
+ margin: 0 0 4px;
2228
+ color: #8e8e8e;
2229
+ font-size: 11px;
2230
+ line-height: 1.5;
2231
+ }
2232
+ .studio-preset {
2233
+ display: flex;
2234
+ align-items: center;
2235
+ gap: 12px;
2236
+ padding: 12px 14px;
2237
+ border: 1px solid #e5e5e5;
2238
+ border-radius: 10px;
2239
+ background: #fff;
2240
+ }
2241
+ .studio-preset.is-active {
2242
+ border-color: #b9b9b9;
2243
+ background: #fafafa;
2244
+ }
2245
+ .studio-preset-swatches {
2246
+ display: flex;
2247
+ flex-shrink: 0;
2248
+ overflow: hidden;
2249
+ border: 1px solid #e5e5e5;
2250
+ border-radius: 6px;
2251
+ }
2252
+ .studio-preset-swatches i {
2253
+ width: 12px;
2254
+ height: 28px;
2255
+ }
2256
+ .studio-preset-text {
2257
+ display: flex;
2258
+ flex: 1;
2259
+ flex-direction: column;
2260
+ gap: 2px;
2261
+ min-width: 0;
2262
+ }
2263
+ .studio-preset-text strong {
2264
+ color: #2f2f2f;
2265
+ font-size: 12px;
2266
+ font-weight: 600;
2267
+ }
2268
+ .studio-preset-text span {
2269
+ color: #8e8e8e;
2270
+ font-size: 10px;
2271
+ line-height: 1.4;
2272
+ }
2273
+ .studio-preset button {
2274
+ flex-shrink: 0;
2275
+ padding: 7px 11px;
2276
+ border: 1px solid #e5e5e5;
2277
+ border-radius: 6px;
2278
+ background: #fff;
2279
+ color: #707070;
2280
+ font-size: 11px;
2281
+ }
2282
+ .studio-preset button:disabled {
2283
+ cursor: default;
2284
+ }
2285
+
2286
+ /* Full app screens (dashboard, sign-in) span the preview like the settings page. */
2287
+ .studio-layout-card.is-screen {
2288
+ flex-basis: 100%;
2289
+ container-type: inline-size;
2290
+ min-height: 0;
2291
+ gap: 16px;
2292
+ border: 1px solid var(--color-border-default-subtle);
2293
+ background: var(--color-surface-default-card);
2294
+ color: var(--color-surface-default-card-foreground);
2295
+ }
2296
+ .studio-layout-screen-heading {
2297
+ display: flex;
2298
+ flex-wrap: wrap;
2299
+ align-items: flex-end;
2300
+ justify-content: space-between;
2301
+ gap: 12px;
2302
+ }
2303
+ .studio-layout-stats {
2304
+ display: grid;
2305
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2306
+ gap: 12px;
2307
+ }
2308
+ .studio-layout-stat {
2309
+ display: flex;
2310
+ flex-direction: column;
2311
+ gap: 4px;
2312
+ padding: 14px;
2313
+ border: 1px solid var(--color-border-default-subtle);
2314
+ border-radius: var(--radius-global-rounding-m);
2315
+ }
2316
+ .studio-layout-card.is-login {
2317
+ align-items: center;
2318
+ padding: 40px 16px;
2319
+ background: var(--color-surface-default-background);
2320
+ }
2321
+ .studio-layout-login {
2322
+ display: flex;
2323
+ flex-direction: column;
2324
+ gap: 14px;
2325
+ width: 100%;
2326
+ max-width: 360px;
2327
+ padding: 28px;
2328
+ box-sizing: border-box;
2329
+ border: 1px solid var(--color-border-default-subtle);
2330
+ border-radius: var(--radius-modal-rounding-default);
2331
+ background: var(--color-surface-default-card);
2332
+ }
2333
+ .studio-layout-login-row {
2334
+ display: flex;
2335
+ flex-wrap: wrap;
2336
+ align-items: center;
2337
+ justify-content: space-between;
2338
+ gap: 8px;
2339
+ }
2340
+ .studio-layout-login-divider {
2341
+ display: flex;
2342
+ align-items: center;
2343
+ gap: 10px;
2344
+ opacity: 0.6;
2345
+ }
2346
+ .studio-layout-login-divider::before,
2347
+ .studio-layout-login-divider::after {
2348
+ content: "";
2349
+ flex: 1;
2350
+ border-top: 1px solid var(--color-border-default-subtle);
2351
+ }
2352
+ .studio-layout-login-footer {
2353
+ text-align: center;
2354
+ }
2355
+
2356
+ /* The modal card holds a trigger; the dialog itself is portaled into the card so it inherits the preview's tokens. */
2357
+ .studio-layout-card.is-modal {
2358
+ min-height: 0;
2359
+ justify-content: space-between;
2360
+ border: 1px solid var(--color-border-default-subtle);
2361
+ background: var(--color-surface-default-card);
2362
+ color: var(--color-surface-default-card-foreground);
2363
+ }
2364
+ .studio-layout-modal {
2365
+ display: flex;
2366
+ flex-direction: column;
2367
+ gap: 14px;
2368
+ width: min(420px, 100%);
2369
+ font-family: var(--font-body);
2370
+ }
2371
+ .studio-layout-modal h4 {
2372
+ margin: 0;
2373
+ font-family: var(--font-titles);
2374
+ font-size: var(--text-h4);
2375
+ line-height: var(--text-h4--line-height);
2376
+ }
2377
+ .studio-layout-modal p {
2378
+ margin: 0;
2379
+ }
2380
+ .studio-layout-modal-actions {
2381
+ display: flex;
2382
+ justify-content: flex-end;
2383
+ gap: 8px;
2384
+ }
2385
+
2386
+ .studio-window-grip {
2387
+ position: absolute;
2388
+ top: 20px;
2389
+ right: 18px;
2390
+ z-index: 5;
2391
+ display: grid;
2392
+ place-items: center;
2393
+ border: 0;
2394
+ padding: 4px;
2395
+ background: transparent;
2396
+ color: #858585;
2397
+ touch-action: none;
2398
+ flex-shrink: 0;
2399
+ border-radius: 5px;
2400
+ }
2401
+ .studio-overlay .studio-window-grip {
2402
+ cursor: grab;
2403
+ }
2404
+ .studio-overlay .studio-window-grip:active {
2405
+ cursor: grabbing;
2406
+ }
2407
+ .studio-window-resize {
2408
+ position: absolute;
2409
+ z-index: 4;
2410
+ display: block;
2411
+ border: 0;
2412
+ padding: 0;
2413
+ background: transparent;
2414
+ touch-action: none;
2415
+ }
2416
+ .studio-window-resize-n,
2417
+ .studio-window-resize-s {
2418
+ left: 12px;
2419
+ right: 12px;
2420
+ height: 6px;
2421
+ }
2422
+ .studio-window-resize-e,
2423
+ .studio-window-resize-w {
2424
+ top: 12px;
2425
+ bottom: 12px;
2426
+ width: 6px;
2427
+ }
2428
+ .studio-window-resize-n {
2429
+ top: 0;
2430
+ cursor: ns-resize !important;
2431
+ }
2432
+ .studio-window-resize-s {
2433
+ bottom: 0;
2434
+ cursor: ns-resize !important;
2435
+ }
2436
+ .studio-window-resize-e {
2437
+ right: 0;
2438
+ cursor: ew-resize !important;
2439
+ }
2440
+ .studio-window-resize-w {
2441
+ left: 0;
2442
+ cursor: ew-resize !important;
2443
+ }
2444
+ .studio-window-resize-ne,
2445
+ .studio-window-resize-se,
2446
+ .studio-window-resize-sw,
2447
+ .studio-window-resize-nw {
2448
+ width: 12px;
2449
+ height: 12px;
2450
+ }
2451
+ .studio-window-resize-ne {
2452
+ top: 0;
2453
+ right: 0;
2454
+ cursor: nesw-resize !important;
2455
+ }
2456
+ .studio-window-resize-se {
2457
+ bottom: 0;
2458
+ right: 0;
2459
+ cursor: nwse-resize !important;
2460
+ }
2461
+ .studio-window-resize-sw {
2462
+ bottom: 0;
2463
+ left: 0;
2464
+ cursor: nesw-resize !important;
2465
+ }
2466
+ .studio-window-resize-nw {
2467
+ top: 0;
2468
+ left: 0;
2469
+ cursor: nwse-resize !important;
2470
+ }
2471
+ .studio-window-grip:focus-visible,
2472
+ .studio-window-resize:focus-visible {
2473
+ outline: 2px solid #555;
2474
+ outline-offset: -2px;
2475
+ }
2476
+ @media (max-width: 600px) {
2477
+ .studio-modal {
2478
+ width: calc(100vw - 16px);
2479
+ height: calc(100dvh - 16px);
2480
+ }
2481
+ }
2482
+
2483
+ /* The grip belongs to the window, so scrolling or hiding the preview cannot hide it. */
2484
+ .studio-preview-actions {
2485
+ padding-right: 36px;
2486
+ }
2487
+ @container (max-width: 1050px) {
2488
+ .studio-window-grip {
2489
+ top: 18px;
2490
+ }
2491
+ }
2492
+ @container (max-width: 800px) {
2493
+ .studio-window-grip {
2494
+ top: 10px;
2495
+ right: 12px;
2496
+ }
2497
+ .studio-topbar {
2498
+ padding-right: 48px;
2499
+ }
2500
+ .studio-preview-actions {
2501
+ padding-right: 0;
2502
+ }
2503
+ }
2504
+
2505
+ /* Resized windows must not inherit the gallery specimens' intrinsic minimum width. */
2506
+ .studio-layout-card {
2507
+ min-width: 0;
2508
+ max-width: 100%;
2509
+ }
2510
+ .studio-gallery-grid {
2511
+ grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
2512
+ }
2513
+ .studio-palette-actions {
2514
+ flex-shrink: 0;
2515
+ }
2516
+ @container (max-width: 800px) {
2517
+ .studio-dialog > .studio-topbar,
2518
+ .studio-body > .studio-editor,
2519
+ .studio-body > .studio-preview,
2520
+ .studio-dialog > .studio-footer {
2521
+ min-width: 0;
2522
+ max-width: 100%;
2523
+ box-sizing: border-box;
2524
+ }
2525
+ }
2526
+ /* Wide specimens (tables and steppers) scroll within their own preview, never the window. */
2527
+ .studio-layout-card.is-screen,
2528
+ .studio-gallery-demo {
2529
+ min-width: 0;
2530
+ max-width: 100%;
2531
+ overflow-x: auto;
2532
+ }
2533
+ @container (max-width: 800px) {
2534
+ .studio-topbar {
2535
+ position: sticky;
2536
+ top: 0;
2537
+ z-index: 4;
2538
+ flex-shrink: 0;
2539
+ }
2540
+ .studio-nav .studio-preview-tab {
2541
+ display: flex;
2542
+ margin-left: auto;
2543
+ }
2544
+ .studio-dialog:not([data-compact-preview]) .studio-preview,
2545
+ .studio-dialog[data-compact-preview] .studio-editor {
2546
+ display: none;
2547
+ }
2548
+ }
2549
+
2550
+ .studio-window-popout {
2551
+ position: absolute;
2552
+ top: 20px;
2553
+ right: 50px;
2554
+ z-index: 5;
2555
+ display: grid;
2556
+ place-items: center;
2557
+ width: 28px;
2558
+ height: 28px;
2559
+ border: 0;
2560
+ border-radius: 5px;
2561
+ color: #858585;
2562
+ background: transparent;
2563
+ }
2564
+ .studio-window-popout:focus-visible {
2565
+ outline: 2px solid #555;
2566
+ outline-offset: -2px;
2567
+ }
2568
+ .studio-preview-actions {
2569
+ padding-right: 68px;
2570
+ }
2571
+ @container (max-width: 1050px) {
2572
+ .studio-window-popout {
2573
+ top: 18px;
2574
+ }
2575
+ }
2576
+ @container (max-width: 800px) {
2577
+ .studio-window-popout {
2578
+ top: 10px;
2579
+ right: 44px;
2580
+ }
2581
+ .studio-topbar {
2582
+ padding-right: 80px;
2583
+ }
2584
+ .studio-preview-actions {
2585
+ padding-right: 0;
2586
+ }
2587
+ }
2588
+ [data-povio-ui-popout] .studio-overlay {
2589
+ padding: 0;
2590
+ }
2591
+ [data-povio-ui-popout] .studio-modal-popout {
2592
+ width: 100vw;
2593
+ height: 100dvh;
2594
+ border-radius: 0;
2595
+ box-shadow: none;
2596
+ }
2597
+ .studio-modal-popout .studio-window-popout {
2598
+ right: 18px;
2599
+ }
2600
+ .studio-modal-popout .studio-preview-actions {
2601
+ padding-right: 36px;
2602
+ }
2603
+ @container (max-width: 800px) {
2604
+ .studio-modal-popout .studio-topbar {
2605
+ padding-right: 48px;
2606
+ }
2607
+ .studio-modal-popout .studio-preview-actions {
2608
+ padding-right: 0;
2609
+ }
2610
+ }
2611
+
2612
+ @container (max-width: 800px) {
2613
+ .studio-topbar,
2614
+ .studio-modal-popout .studio-topbar {
2615
+ padding-right: 16px;
2616
+ }
2617
+ .studio-topbar-controls {
2618
+ margin-right: 64px;
2619
+ }
2620
+ .studio-modal-popout .studio-topbar-controls {
2621
+ margin-right: 32px;
2622
+ }
2623
+ }
2624
+ .studio-palette-native {
2625
+ position: relative;
2626
+ }
2627
+ .studio-palette-native > select {
2628
+ position: absolute;
2629
+ inset: 0;
2630
+ width: 100%;
2631
+ height: 100%;
2632
+ opacity: 0;
2633
+ cursor: pointer;
2634
+ }
2635
+ .studio-palette-native:focus-within {
2636
+ outline: 2px solid #797979;
2637
+ outline-offset: 2px;
2638
+ border-radius: 4px;
2639
+ }
2640
+
2641
+ .studio-window-minimize {
2642
+ position: absolute;
2643
+ top: 20px;
2644
+ right: 82px;
2645
+ z-index: 5;
2646
+ display: grid;
2647
+ place-items: center;
2648
+ width: 28px;
2649
+ height: 28px;
2650
+ padding: 0;
2651
+ border: 0;
2652
+ border-radius: 5px;
2653
+ color: #858585;
2654
+ background: transparent;
2655
+ }
2656
+ .studio-window-minimize:focus-visible {
2657
+ outline: 2px solid #555;
2658
+ outline-offset: -2px;
2659
+ }
2660
+ .studio-preview-actions {
2661
+ padding-right: 100px;
2662
+ }
2663
+ .studio-modal-popout .studio-window-minimize {
2664
+ right: 50px;
2665
+ }
2666
+ .studio-modal-popout .studio-preview-actions {
2667
+ padding-right: 68px;
2668
+ }
2669
+ @container (max-width: 1050px) {
2670
+ .studio-window-minimize {
2671
+ top: 18px;
2672
+ }
2673
+ }
2674
+ @container (max-width: 800px) {
2675
+ .studio-window-minimize {
2676
+ top: 10px;
2677
+ right: 76px;
2678
+ }
2679
+ .studio-topbar-controls {
2680
+ margin-right: 96px;
2681
+ }
2682
+ .studio-modal-popout .studio-topbar-controls {
2683
+ margin-right: 64px;
2684
+ }
2685
+ .studio-preview-actions,
2686
+ .studio-modal-popout .studio-preview-actions {
2687
+ padding-right: 0;
2688
+ }
2689
+ }
2690
+ .studio-floating-launcher {
2691
+ position: fixed;
2692
+ z-index: 1000;
2693
+ display: flex;
2694
+ align-items: center;
2695
+ gap: 10px;
2696
+ padding: 12px 16px;
2697
+ border: 1px solid #555;
2698
+ border-radius: 999px;
2699
+ background: #292929;
2700
+ color: #fff;
2701
+ box-shadow: 0 4px 16px #0003;
2702
+ font:
2703
+ 600 13px/1.4 "Inter Variable",
2704
+ Inter,
2705
+ sans-serif;
2706
+ cursor: grab;
2707
+ touch-action: none;
2708
+ user-select: none;
2709
+ }
2710
+ .studio-floating-launcher:active {
2711
+ cursor: grabbing;
2712
+ }
2713
+ .studio-floating-launcher:focus-visible {
2714
+ outline: 2px solid #555;
2715
+ outline-offset: 3px;
2716
+ }
2717
+
2718
+ /* Live-preview inspection keeps the canvas and property sidebar independently scrollable. */
2719
+ .studio-preview:has(.studio-hover-inspector) {
2720
+ display: flex;
2721
+ flex-direction: column;
2722
+ overflow: hidden;
2723
+ min-height: 0;
2724
+ }
2725
+ .studio-preview-heading,
2726
+ .studio-preview-note {
2727
+ flex-shrink: 0;
2728
+ }
2729
+ .studio-hover-inspector {
2730
+ display: grid;
2731
+ grid-template-columns: minmax(0, 1fr);
2732
+ grid-template-rows: auto minmax(0, 1fr);
2733
+ grid-auto-rows: minmax(0, 1fr);
2734
+ flex: 1;
2735
+ min-width: 0;
2736
+ min-height: 0;
2737
+ gap: 16px;
2738
+ container: studio-inspection / inline-size;
2739
+ }
2740
+ .studio-hover-inspector.has-inspector {
2741
+ grid-template-columns: minmax(0, 1fr) 270px;
2742
+ }
2743
+ .studio-inspector-toolbar {
2744
+ grid-column: 1 / -1;
2745
+ display: flex;
2746
+ align-items: center;
2747
+ justify-content: space-between;
2748
+ flex-wrap: wrap;
2749
+ gap: 8px;
2750
+ color: #8b8b8b;
2751
+ font-size: 10px;
2752
+ }
2753
+ .studio-inspector-toolbar .studio-mode button {
2754
+ padding: 4px 8px;
2755
+ font-size: 10px;
2756
+ }
2757
+ .studio-inspector-canvas-shell {
2758
+ position: relative;
2759
+ min-width: 0;
2760
+ min-height: 0;
2761
+ height: 100%;
2762
+ }
2763
+ .studio-inspector-canvas {
2764
+ height: 100%;
2765
+ min-height: 0;
2766
+ overflow: auto;
2767
+ overscroll-behavior: contain;
2768
+ }
2769
+ .studio-hover-outline-layer {
2770
+ position: absolute;
2771
+ inset: 0;
2772
+ overflow: hidden;
2773
+ pointer-events: none;
2774
+ z-index: 2;
2775
+ }
2776
+ .studio-hover-outline {
2777
+ position: absolute;
2778
+ border: 1px solid #8b5cf6;
2779
+ box-shadow: 0 0 0 1px #8b5cf633;
2780
+ }
2781
+ .studio-hover-outline > span {
2782
+ position: absolute;
2783
+ top: 0;
2784
+ left: 0;
2785
+ transform: translateY(-100%);
2786
+ max-width: 280px;
2787
+ padding: 2px 5px;
2788
+ border-radius: 3px 3px 0 0;
2789
+ background: #7c3aed;
2790
+ color: #fff;
2791
+ font:
2792
+ 10px/1.5 "Inter Variable",
2793
+ sans-serif;
2794
+ white-space: nowrap;
2795
+ }
2796
+ .studio-inspector-panel {
2797
+ grid-column: 2;
2798
+ position: relative;
2799
+ align-self: stretch;
2800
+ height: 100%;
2801
+ min-width: 0;
2802
+ min-height: 0;
2803
+ overflow: auto;
2804
+ box-sizing: border-box;
2805
+ border: 1px solid #dedde4;
2806
+ border-radius: 10px;
2807
+ background: #fff;
2808
+ color: #292730;
2809
+ font:
2810
+ 11px/1.5 "Inter Variable",
2811
+ Inter,
2812
+ sans-serif;
2813
+ overscroll-behavior: contain;
2814
+ }
2815
+ .studio-inspector-panel > header {
2816
+ position: sticky;
2817
+ top: 0;
2818
+ z-index: 1;
2819
+ display: flex;
2820
+ align-items: center;
2821
+ gap: 4px;
2822
+ padding: 9px 12px;
2823
+ border-bottom: 1px solid #efedf3;
2824
+ background: #fff;
2825
+ }
2826
+ .studio-inspector-panel > header > strong {
2827
+ flex: 1;
2828
+ font-size: 11px;
2829
+ }
2830
+ .studio-inspector-panel button {
2831
+ border: 0;
2832
+ border-radius: 4px;
2833
+ background: transparent;
2834
+ color: #716c7d;
2835
+ cursor: pointer;
2836
+ }
2837
+ .studio-inspector-panel > header button {
2838
+ display: grid;
2839
+ place-items: center;
2840
+ padding: 5px;
2841
+ }
2842
+ .studio-inspector-panel button[aria-pressed="true"] {
2843
+ background: #ede9fe;
2844
+ color: #7c3aed;
2845
+ }
2846
+ .studio-inspector-panel button:focus-visible {
2847
+ outline: 2px solid #8b5cf6;
2848
+ outline-offset: 1px;
2849
+ }
2850
+ .studio-inspector-panel section {
2851
+ border-top: 1px solid #efedf3;
2852
+ padding: 10px 12px;
2853
+ }
2854
+ .studio-inspector-panel h3 {
2855
+ margin: 0 0 7px;
2856
+ font-size: 9px;
2857
+ font-weight: 600;
2858
+ color: #928a9d;
2859
+ text-transform: uppercase;
2860
+ letter-spacing: 0.6px;
2861
+ }
2862
+ .studio-inspector-section-heading {
2863
+ display: flex;
2864
+ align-items: center;
2865
+ justify-content: space-between;
2866
+ margin-bottom: 10px;
2867
+ }
2868
+ .studio-inspector-section-heading h3 {
2869
+ margin: 0;
2870
+ }
2871
+ .studio-inspector-section-heading > span {
2872
+ padding: 1px 5px;
2873
+ border-radius: 4px;
2874
+ background: #f4f4f4;
2875
+ color: #777;
2876
+ font-size: 10px;
2877
+ }
2878
+ .studio-inspector-panel dl {
2879
+ margin: 0;
2880
+ }
2881
+ .studio-inspector-panel dl > div {
2882
+ display: grid;
2883
+ grid-template-columns: 85px minmax(0, 1fr);
2884
+ gap: 6px;
2885
+ padding: 3px 0;
2886
+ }
2887
+ .studio-inspector-panel dt {
2888
+ color: #817b8b;
2889
+ }
2890
+ .studio-inspector-panel dd {
2891
+ display: flex;
2892
+ flex-wrap: wrap;
2893
+ align-items: center;
2894
+ gap: 4px;
2895
+ margin: 0;
2896
+ min-width: 0;
2897
+ overflow-wrap: anywhere;
2898
+ }
2899
+ .studio-inspector-panel dd > i {
2900
+ width: 12px;
2901
+ height: 12px;
2902
+ border: 1px solid #0002;
2903
+ border-radius: 3px;
2904
+ flex-shrink: 0;
2905
+ }
2906
+ .studio-inspector-panel dd > button {
2907
+ max-width: 100%;
2908
+ padding: 2px 5px;
2909
+ background: #f3effb;
2910
+ color: #7752ae;
2911
+ font-size: 9px;
2912
+ text-align: left;
2913
+ overflow-wrap: anywhere;
2914
+ }
2915
+ .studio-inspector-empty {
2916
+ margin: 0;
2917
+ padding: 16px 12px;
2918
+ color: #89838e;
2919
+ }
2920
+ .studio-box-model {
2921
+ margin: 0;
2922
+ padding: 8px;
2923
+ border-radius: 7px;
2924
+ background: #fafafa;
2925
+ color: #393939;
2926
+ }
2927
+ .studio-box-model figcaption {
2928
+ margin-top: 6px;
2929
+ text-align: center;
2930
+ color: #8b8b8b;
2931
+ font-size: 9px;
2932
+ }
2933
+ .studio-box-layer {
2934
+ position: relative;
2935
+ padding: 24px;
2936
+ box-sizing: border-box;
2937
+ font:
2938
+ 10px/1.3 "Inter Variable",
2939
+ sans-serif;
2940
+ }
2941
+ .studio-box-layer.is-position {
2942
+ border: 1px dotted #b8b8b8;
2943
+ }
2944
+ .studio-box-layer.is-margin {
2945
+ border: 1px dashed #b8b8b8;
2946
+ }
2947
+ .studio-box-layer.is-border {
2948
+ border: 1px solid #b8b8b8;
2949
+ }
2950
+ .studio-box-layer.is-padding {
2951
+ border: 1px dashed #a7a7a7;
2952
+ background: #e9e9e9;
2953
+ }
2954
+ .studio-box-name {
2955
+ position: absolute;
2956
+ top: -7px;
2957
+ left: 8px;
2958
+ padding: 0 3px;
2959
+ background: #fafafa;
2960
+ color: #747474;
2961
+ font-size: 9px;
2962
+ }
2963
+ .studio-box-layer.is-padding > .studio-box-name {
2964
+ background: #e9e9e9;
2965
+ }
2966
+ .studio-box-value {
2967
+ position: absolute;
2968
+ font-variant-numeric: tabular-nums;
2969
+ }
2970
+ .studio-box-value.is-top {
2971
+ top: 3px;
2972
+ left: 50%;
2973
+ transform: translateX(-50%);
2974
+ }
2975
+ .studio-box-value.is-bottom {
2976
+ bottom: 3px;
2977
+ left: 50%;
2978
+ transform: translateX(-50%);
2979
+ }
2980
+ .studio-box-value.is-left {
2981
+ left: 3px;
2982
+ top: 50%;
2983
+ transform: translateY(-50%);
2984
+ }
2985
+ .studio-box-value.is-right {
2986
+ right: 3px;
2987
+ top: 50%;
2988
+ transform: translateY(-50%);
2989
+ }
2990
+ .studio-inspector-panel .studio-box-value {
2991
+ padding: 0;
2992
+ border-radius: 2px;
2993
+ color: inherit;
2994
+ line-height: 1.3;
2995
+ font-size: 10px;
2996
+ }
2997
+ .studio-inspector-panel button.studio-box-value[data-token] {
2998
+ text-decoration: underline dotted;
2999
+ text-underline-offset: 2px;
3000
+ }
3001
+ .studio-box-radius {
3002
+ position: absolute;
3003
+ padding: 1px 2px;
3004
+ border-radius: 3px;
3005
+ background: #f5f5f5;
3006
+ color: #777;
3007
+ font-size: 8px;
3008
+ line-height: 1;
3009
+ }
3010
+ .studio-box-radius.is-topLeft {
3011
+ top: 3px;
3012
+ left: 3px;
3013
+ }
3014
+ .studio-box-radius.is-topRight {
3015
+ top: 3px;
3016
+ right: 3px;
3017
+ }
3018
+ .studio-box-radius.is-bottomLeft {
3019
+ bottom: 3px;
3020
+ left: 3px;
3021
+ }
3022
+ .studio-box-radius.is-bottomRight {
3023
+ bottom: 3px;
3024
+ right: 3px;
3025
+ }
3026
+ .studio-inspector-panel .studio-box-radius {
3027
+ padding: 1px;
3028
+ color: #777;
3029
+ font-size: 8px;
3030
+ line-height: 1;
3031
+ }
3032
+ .studio-inspector-panel button.studio-box-radius[data-token] {
3033
+ text-decoration: underline dotted;
3034
+ }
3035
+ .studio-box-content {
3036
+ min-width: 0;
3037
+ padding: 5px 2px;
3038
+ border: 1px solid #b8b8b8;
3039
+ background: #fafafa;
3040
+ text-align: center;
3041
+ font-variant-numeric: tabular-nums;
3042
+ }
3043
+ .studio-box-dimensions {
3044
+ display: flex;
3045
+ justify-content: center;
3046
+ align-items: center;
3047
+ flex-wrap: wrap;
3048
+ gap: 2px;
3049
+ font-size: 9px;
3050
+ }
3051
+ .studio-box-gaps {
3052
+ display: flex;
3053
+ justify-content: center;
3054
+ margin-top: 12px;
3055
+ padding: 12px;
3056
+ border: 1px solid #e0e0e0;
3057
+ border-radius: 5px;
3058
+ }
3059
+ .studio-gap-grid {
3060
+ display: grid;
3061
+ width: 130px;
3062
+ max-width: 100%;
3063
+ align-items: center;
3064
+ justify-items: center;
3065
+ }
3066
+ .studio-gap-grid i {
3067
+ width: 100%;
3068
+ height: 100%;
3069
+ box-sizing: border-box;
3070
+ border: 1px solid #bdbdbd;
3071
+ border-radius: 2px;
3072
+ background: #e9e9e9;
3073
+ }
3074
+ .studio-gap-grid i:nth-child(1) {
3075
+ grid-column: 1;
3076
+ grid-row: 1;
3077
+ }
3078
+ .studio-gap-grid i:nth-child(2) {
3079
+ grid-column: 3;
3080
+ grid-row: 1;
3081
+ }
3082
+ .studio-gap-grid i:nth-child(3) {
3083
+ grid-column: 1;
3084
+ grid-row: 3;
3085
+ }
3086
+ .studio-gap-grid i:nth-child(4) {
3087
+ grid-column: 3;
3088
+ grid-row: 3;
3089
+ }
3090
+ .studio-gap-number {
3091
+ color: #555;
3092
+ font-size: 10px;
3093
+ }
3094
+ .studio-gap-number.is-column {
3095
+ grid-column: 2;
3096
+ grid-row: 1;
3097
+ }
3098
+ .studio-gap-number.is-row {
3099
+ grid-column: 1;
3100
+ grid-row: 2;
3101
+ }
3102
+ .studio-inspector-panel button.studio-gap-number[data-token] {
3103
+ padding: 0;
3104
+ text-decoration: underline dotted;
3105
+ font-size: 10px;
3106
+ }
3107
+ .studio-box-layer.is-position,
3108
+ .studio-box-layer.is-position .studio-box-layer {
3109
+ padding: 16px;
3110
+ }
3111
+ @container studio-inspection (max-width: 620px) {
3112
+ .studio-inspector-canvas-shell,
3113
+ .studio-inspector-panel {
3114
+ grid-column: 1 / -1;
3115
+ }
3116
+ .studio-inspector-canvas-shell {
3117
+ grid-row: 2;
3118
+ }
3119
+ .studio-inspector-panel {
3120
+ grid-row: 3;
3121
+ }
3122
+ }
3123
+ @container (max-width: 800px) {
3124
+ .studio-preview:has(.studio-hover-inspector) {
3125
+ height: max(420px, calc(100dvh - 220px));
3126
+ }
3127
+ }
3128
+ .studio-box-layer.is-border:has(.studio-box-radius) {
3129
+ border-color: transparent;
3130
+ }
3131
+ .studio-box-layer.is-border:has(.studio-box-radius)::before {
3132
+ content: "";
3133
+ position: absolute;
3134
+ inset: -3px;
3135
+ border: 1px solid #b8b8b8;
3136
+ border-radius: inherit;
3137
+ pointer-events: none;
3138
+ }
3139
+ .studio-box-radius {
3140
+ z-index: 1;
3141
+ }
3142
+ .studio-box-radius.is-topLeft {
3143
+ top: 4px;
3144
+ left: 4px;
3145
+ }
3146
+ .studio-box-radius.is-topRight {
3147
+ top: 4px;
3148
+ right: 4px;
3149
+ }
3150
+ .studio-box-radius.is-bottomLeft {
3151
+ bottom: 4px;
3152
+ left: 4px;
3153
+ }
3154
+ .studio-box-radius.is-bottomRight {
3155
+ bottom: 4px;
3156
+ right: 4px;
3157
+ }
3158
+
3159
+ .studio-measure-regions {
3160
+ position: absolute;
3161
+ inset: 0;
3162
+ pointer-events: none;
3163
+ }
3164
+ .studio-measure-region {
3165
+ position: absolute;
3166
+ box-sizing: border-box;
3167
+ background: #7c3aed88;
3168
+ color: #4c1d95;
3169
+ box-shadow:
3170
+ inset 0 0 0 1px currentColor,
3171
+ 0 0 0 1px #fff;
3172
+ }
3173
+ .studio-measure-region.is-margin {
3174
+ background: #22c55e88;
3175
+ color: #15803d;
3176
+ }
3177
+ .studio-measure-region.is-border {
3178
+ background: #2563ebbf;
3179
+ color: #1e40af;
3180
+ }
3181
+ .studio-measure-region.is-gap {
3182
+ background: repeating-linear-gradient(45deg, #fb923c88 0 3px, #ea580cbf 3px 5px);
3183
+ color: #c2410c;
3184
+ }
3185
+ .studio-measure-region.is-horizontal {
3186
+ height: 1px !important;
3187
+ border-top: 2px solid currentColor;
3188
+ background: none;
3189
+ }
3190
+ .studio-measure-region.is-vertical {
3191
+ width: 1px !important;
3192
+ border-left: 2px solid currentColor;
3193
+ background: none;
3194
+ }
3195
+ .studio-measure-region.is-horizontal::before,
3196
+ .studio-measure-region.is-horizontal::after {
3197
+ content: "";
3198
+ position: absolute;
3199
+ top: -4px;
3200
+ height: 7px;
3201
+ border-left: 2px solid currentColor;
3202
+ }
3203
+ .studio-measure-region.is-horizontal::before {
3204
+ left: 0;
3205
+ }
3206
+ .studio-measure-region.is-horizontal::after {
3207
+ right: 0;
3208
+ }
3209
+ .studio-measure-region.is-vertical::before,
3210
+ .studio-measure-region.is-vertical::after {
3211
+ content: "";
3212
+ position: absolute;
3213
+ left: -4px;
3214
+ width: 7px;
3215
+ border-top: 2px solid currentColor;
3216
+ }
3217
+ .studio-measure-region.is-vertical::before {
3218
+ top: 0;
3219
+ }
3220
+ .studio-measure-region.is-vertical::after {
3221
+ bottom: 0;
3222
+ }
3223
+ .studio-measure-region.is-corner {
3224
+ background: none;
3225
+ box-shadow: none;
3226
+ }
3227
+ .studio-measure-region.is-corner svg {
3228
+ display: block;
3229
+ width: 100%;
3230
+ height: 100%;
3231
+ overflow: visible;
3232
+ }
3233
+ .studio-measure-label {
3234
+ position: absolute;
3235
+ max-width: 220px;
3236
+ padding: 3px 6px;
3237
+ border-radius: 4px;
3238
+ background: #6d28d9;
3239
+ color: #fff;
3240
+ font:
3241
+ 10px/1.4 "Inter Variable",
3242
+ sans-serif;
3243
+ box-shadow:
3244
+ 0 0 0 1px #fff,
3245
+ 0 2px 6px #0004;
3246
+ }
3247
+ .studio-inspector-panel .studio-box-dimension-value {
3248
+ padding: 0;
3249
+ font: inherit;
3250
+ font-size: 9px;
3251
+ line-height: 1.3;
3252
+ color: inherit;
3253
+ }
3254
+ .studio-inspector-panel .studio-gap-number {
3255
+ padding: 0;
3256
+ font-size: 10px;
3257
+ }
3258
+ .studio-box-model button[data-box-highlight]:hover,
3259
+ .studio-box-model button[data-box-highlight]:focus-visible {
3260
+ background: #ede9fe;
3261
+ color: #6d28d9;
3262
+ }
3263
+
3264
+ .studio-measure-region.is-corner path {
3265
+ stroke-width: 3px;
3266
+ filter: drop-shadow(0 0 1px #fff);
3267
+ }
3268
+
3269
+ /* The canvas editor is a movable tool window; the workspace remains interactive. */
3270
+ .studio-overlay.studio-overlay-floating {
3271
+ background: transparent;
3272
+ backdrop-filter: none;
3273
+ pointer-events: none;
3274
+ }
3275
+ .studio-overlay-floating > .studio-modal {
3276
+ pointer-events: auto;
3277
+ box-shadow:
3278
+ 0 16px 64px #17102030,
3279
+ 0 0 0 1px #17102018;
3280
+ }