@povio/ui 5.0.0-rc.2 → 5.0.0-rc.4

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 +3 -1
  2. package/README.md +50 -7
  3. package/dist/{Accordion-CzFKi8Bp.js → Accordion-BzwO4_ml.js} +20 -136
  4. package/dist/{Alert-T25LY8ZL.js → Alert-CnvEb1D_.js} +16 -12
  5. package/dist/{Alert-f1dG-4Uy.d.ts → Alert-DfiJbKH0.d.ts} +2 -1
  6. package/dist/{AlertDialog-B6R2MbNg.d.ts → AlertDialog-OWTbR4km.d.ts} +3 -3
  7. package/dist/{Autocomplete-CQ63Cynd.d.ts → Autocomplete-BwNHp8fy.d.ts} +1 -1
  8. package/dist/{Badge-YKlKz-Jy.d.ts → Badge-CBNpj823.d.ts} +8 -5
  9. package/dist/BadgeButton-Ccgt3oGO.d.ts +15 -0
  10. package/dist/{BottomSheet-DvqBvth_.js → BottomSheet-BXLE3161.js} +7 -6
  11. package/dist/{BottomSheet-xaymO7aQ.d.ts → BottomSheet-DbQuzfAB.d.ts} +1 -1
  12. package/dist/{BottomSheet.lazy-CGBRPve_.d.ts → BottomSheet.lazy-D9LCEo7s.d.ts} +1 -1
  13. package/dist/{Breadcrumbs-DyriI-Bi.d.ts → Breadcrumbs-CUV6CU8Q.d.ts} +1 -1
  14. package/dist/{Breadcrumbs-DiIYJAWf.js → Breadcrumbs-FF8hMfXd.js} +24 -38
  15. package/dist/Button-C5rv4Cr2.js +506 -0
  16. package/dist/{Button-BZ3is6IU.d.ts → Button-D-4qb0IR.d.ts} +3 -3
  17. package/dist/{ButtonContent-B2_dZ6vA.js → ButtonContent-c7lJayVQ.js} +10 -8
  18. package/dist/{Calendar-DzQApBCy.js → Calendar-BTjajO6i.js} +25 -148
  19. package/dist/{CheckContent-DZ7Gk8GS.js → CheckContent-D7sZPmzx.js} +2 -2
  20. package/dist/{Checkbox-BepzfVfK.js → Checkbox-CV1ILXXO.js} +6 -6
  21. package/dist/{Checkbox-CHpgW3fI.d.ts → Checkbox-DVTWaMKa.d.ts} +1 -1
  22. package/dist/{CheckboxCheckmark-B3lnOjsU.js → CheckboxCheckmark-CpC3wlMs.js} +11 -11
  23. package/dist/{CheckboxGroup-CXrR3A-c.d.ts → CheckboxGroup-DGF12cmB.d.ts} +3 -3
  24. package/dist/ComponentGallery-BWiPGUL8.js +3665 -0
  25. package/dist/{DatePicker-B3l9TEjW.d.ts → DatePicker-8xSs_jNd.d.ts} +3 -3
  26. package/dist/{DatePicker-CI87jC4_.js → DatePicker-DOLL7mkc.js} +17 -16
  27. package/dist/{DatePickerInput-UBZcTmdv.js → DatePickerInput-BLBcySA2.js} +16 -26
  28. package/dist/{DatePickerInput-CZTEsrS0.d.ts → DatePickerInput-D81ZJ3fT.d.ts} +3 -3
  29. package/dist/{DateRangePicker-BX2O5zA8.js → DateRangePicker-BF-1CztH.js} +23 -194
  30. package/dist/{DateRangePicker-DKkc2B3n.d.ts → DateRangePicker-Bfq-yDm7.d.ts} +3 -3
  31. package/dist/{DateTimePicker-CVfkp45w.js → DateTimePicker-Cj0qvJUz.js} +16 -15
  32. package/dist/{DateTimePicker-IHr-wPq8.d.ts → DateTimePicker-D4lHyf6P.d.ts} +3 -3
  33. package/dist/{Dialog-DdRP4YFC.js → Dialog-9manOgMA.js} +4 -4
  34. package/dist/{Dialog-CXoVeIkU.js → Dialog-CKLkS00H.js} +10 -2
  35. package/dist/{Dialog-DEbI_9S-.d.ts → Dialog-CW93T9X1.d.ts} +3 -2
  36. package/dist/{DropdownMenu-zrodtd44.js → DropdownMenu-5jmtgLXd.js} +8 -6
  37. package/dist/{DropdownMenu-CWDhk3XA.d.ts → DropdownMenu-JNpYT4-3.d.ts} +3 -2
  38. package/dist/{DropdownMenuDesktop-CGYxsavQ.js → DropdownMenuDesktop-Cl9gZVq0.js} +9 -38
  39. package/dist/{FileInput-Dz1eESr_.js → FileInput-Br5DQaGQ.js} +10 -9
  40. package/dist/{FileInput-BQbn77bE.d.ts → FileInput-C4CE5kuP.d.ts} +5 -4
  41. package/dist/{FileTrigger-CDXcQthK.js → FileTrigger-Cthk5_Wp.js} +1 -30
  42. package/dist/{FileUpload-D3Io7Is5.js → FileUpload--7ub3EZO.js} +53 -140
  43. package/dist/{FileUpload-qySCMcLn.d.ts → FileUpload-CR7bZxV1.d.ts} +1 -1
  44. package/dist/{FileUploadContainer-qOyGvb5J.d.ts → FileUploadContainer-042ztsaL.d.ts} +1 -1
  45. package/dist/{Form-u_N_6mwo.d.ts → Form-BJ12MjE-.d.ts} +1 -1
  46. package/dist/{FormField-CHD4OJOt.js → FormField-B99dLt8o.js} +9 -9
  47. package/dist/{FormField-B0miX3gu.d.ts → FormField-Byiehm9y.d.ts} +1 -1
  48. package/dist/{FormFieldError-QRAFHUTt.js → FormFieldError-DeOHHLo2.js} +1 -1
  49. package/dist/FormFieldHeaderTooltip-BV2Ju4oB.js +17 -0
  50. package/dist/{IconButton-KXecZgYX.d.ts → IconButton-D4thBurp.d.ts} +2 -2
  51. package/dist/IconSlot-DSK7qNxc.js +79 -0
  52. package/dist/{InlineIconButton-CbKZ2U_a.d.ts → InlineIconButton-BeJCjl-q.d.ts} +2 -2
  53. package/dist/{InlineTooltipWrapper-g5yoeH1B.js → InlineTooltipWrapper-BpApaGXV.js} +3 -3
  54. package/dist/{Input-efmPwk8f.d.ts → Input-DOanwj3l.d.ts} +3 -3
  55. package/dist/{InputContent-DuBa9FuI.d.ts → InputContent-CXuP1ghQ.d.ts} +3 -3
  56. package/dist/{InputItem-2zf6QI5L.js → InputItem-CIxbTxZu.js} +11 -11
  57. package/dist/{Inputs-C-w03Q_F.d.ts → Inputs-DA73LmLc.d.ts} +1 -1
  58. package/dist/{Inputs-BceDTmdT.js → Inputs-DJSKiaWY.js} +1 -1
  59. package/dist/{Link-QYpprkN1.d.ts → Link-Ow9H7kNv.d.ts} +3 -2
  60. package/dist/{ListBox-B7DW1S7n.js → ListBox-CL8Ar4Q_.js} +5 -4
  61. package/dist/{MenuItem--Mjd_yK8.d.ts → MenuItem-DHyqOqln.d.ts} +1 -1
  62. package/dist/{Modal-CoFt5PGP.js → Modal-w60dVQcb.js} +1 -1
  63. package/dist/{NumberField-z2JatYK0.d.ts → NumberField-Cb9Gf6QJ.d.ts} +3 -3
  64. package/dist/NumberFormatter-CLDS_LRZ.js +265 -0
  65. package/dist/{NumberRangeInput-BxVrHq8R.js → NumberRangeInput-B8-LHfg3.js} +9 -8
  66. package/dist/{NumberRangeInput-Chai3iEi.d.ts → NumberRangeInput-BfbJQqzn.d.ts} +2 -2
  67. package/dist/{Pagination-CXtIDclf.d.ts → Pagination-CwQu5Py8.d.ts} +1 -1
  68. package/dist/{PaginationList-CXG4jWFD.d.ts → PaginationList-DMRUGtf8.d.ts} +1 -1
  69. package/dist/{PaginationList-0bAmvXC0.js → PaginationList-DtvuP63b.js} +2 -2
  70. package/dist/{PasswordInput-ub2TQxef.d.ts → PasswordInput-CLwFUgl0.d.ts} +1 -1
  71. package/dist/{Popover-DUKH0q9u.d.ts → Popover-BTHPteIh.d.ts} +2 -2
  72. package/dist/{Progress-DQWiFP0L.js → Progress-B3mY9rIP.js} +2 -2
  73. package/dist/{Progress-Dho39FDs.d.ts → Progress-CjWOR38H.d.ts} +2 -1
  74. package/dist/{QuerySelect-Bo1K6gi_.d.ts → QuerySelect-BGxb6Y0K.d.ts} +2 -2
  75. package/dist/{RadioGroup-B_zJdn4y.d.ts → RadioGroup-CZg2kIMk.d.ts} +3 -3
  76. package/dist/{RadioGroup-SSZYch-J.js → RadioGroup-DOw3PRoX.js} +13 -13
  77. package/dist/{RichTextEditor-D6RewmRj.js → RichTextEditor-D4yN7Wj7.js} +52 -133
  78. package/dist/{RichTextEditor-B_JX3nor.d.ts → RichTextEditor-YxuRUlI7.d.ts} +1 -1
  79. package/dist/{Select-CuZDkeQs.js → Select-UR0ec2Ux.js} +5 -4
  80. package/dist/{Select-DeapZMYx.d.ts → Select-pHbyJdZJ.d.ts} +1 -1
  81. package/dist/{SelectBase-7SE9Za2r.d.ts → SelectBase-Omiq2D3M.d.ts} +3 -3
  82. package/dist/{Slider-DJ9K_a-x.js → Slider-CzEmKYBF.js} +11 -11
  83. package/dist/{Slider-BFViQmM3.d.ts → Slider-EYlGCLWe.d.ts} +1 -1
  84. package/dist/{Spinner-BEYBu85B.js → Spinner-BeVTUzzx.js} +1 -1
  85. package/dist/{Spinner-BbcI6IOb.d.ts → Spinner-DbXeDOa2.d.ts} +2 -1
  86. package/dist/{SplitButton-lL87EcBL.d.ts → SplitButton-D9ngY1rJ.d.ts} +3 -3
  87. package/dist/{Stepper-C1YPgTBG.js → Stepper-Cp5vbL5g.js} +4 -117
  88. package/dist/{Stepper-hlhViuaK.d.ts → Stepper-TATlHZhQ.d.ts} +9 -8
  89. package/dist/{Switch-JxRmH1dX.js → Switch-CqnGEdeD.js} +11 -11
  90. package/dist/{Switch-DPftmB1b.d.ts → Switch-s_EPn0Jz.d.ts} +1 -1
  91. package/dist/Table-piX1SWvN.js +689 -0
  92. package/dist/Tag-AHfV_XSf.d.ts +44 -0
  93. package/dist/{Tag-HiDH438e.js → Tag-DPg5sL1Z.js} +22 -21
  94. package/dist/{TextArea-gikUKKDl.js → TextArea-D8WkKsGn.js} +7 -7
  95. package/dist/{TextArea-BhrCBGbq.d.ts → TextArea-l_keyLK7.d.ts} +2 -2
  96. package/dist/{TextButton-DnXRykhF.d.ts → TextButton-XUhV_1s0.d.ts} +4 -4
  97. package/dist/{TimePicker-CmT89X7v.d.ts → TimePicker-B1POvGWs.d.ts} +2 -2
  98. package/dist/{TimePicker-DtNTOOGr.js → TimePicker-C4taAOFQ.js} +15 -14
  99. package/dist/Toast-DtG3pA61.js +53 -0
  100. package/dist/{Toast-B4cXs2rj.d.ts → Toast-ruXqONDA.d.ts} +1 -1
  101. package/dist/{ToastContainer-BbsMIwtC.js → ToastContainer-qgpzMFD4.js} +4 -3
  102. package/dist/{ToggleButton-BGuzPJDO.d.ts → ToggleButton-7aP8Jb11.d.ts} +2 -2
  103. package/dist/{ToggleGroup-D9CFdM5-.d.ts → ToggleGroup-CRFDIPGZ.d.ts} +1 -1
  104. package/dist/{ToggleGroup-Cl0NS3fe.js → ToggleGroup-DOk27fgI.js} +29 -123
  105. package/dist/{Tooltip-aE1Vswxz.js → Tooltip-CpG1nz7Y.js} +8 -49
  106. package/dist/{Tooltip-D7dNwGy9.d.ts → Tooltip-DHv6vAqW.d.ts} +6 -5
  107. package/dist/{TooltipWrapper-CRf-JFeo.js → TooltipWrapper-3jyN0Wss.js} +4 -4
  108. package/dist/{Typography-B0Gp1lpc.js → Typography-LU4z2pR1.js} +2 -2
  109. package/dist/{Typography-BiuidzDC.d.ts → Typography-XljT9s02.d.ts} +1 -1
  110. package/dist/accordion.cva-CL1bVscW.js +129 -0
  111. package/dist/{autocomplete-BJ7rqWa4.d.ts → autocomplete-DeERHN8W.d.ts} +2 -2
  112. package/dist/badgeButton.cva-B2bgCQP6.d.ts +41 -0
  113. package/dist/badgeButton.cva-CvN4CTx5.js +300 -0
  114. package/dist/breadcrumbs.cva-7zzdDhVR.js +27 -0
  115. package/dist/{button.cva-BvRI-3Gn.d.ts → button.cva-C7kEhgoA.d.ts} +7 -6
  116. package/dist/{buttonContent.cva-BDT_CReI.d.ts → buttonContent.cva-DPIlROA9.d.ts} +2 -2
  117. package/dist/{checkbox-BfcE8J5P.d.ts → checkbox-DxIPDTK5.d.ts} +1 -1
  118. package/dist/{checkbox-group-CHs2wFHS.d.ts → checkbox-group-B3BOVshI.d.ts} +1 -1
  119. package/dist/{checkbox.cva-gv87kr1W.d.ts → checkbox.cva-t1Ox50hy.d.ts} +4 -3
  120. package/dist/components/accordion.js +1 -1
  121. package/dist/components/alert-dialog.d.ts +1 -1
  122. package/dist/components/alert-dialog.js +4 -4
  123. package/dist/components/alert.d.ts +1 -1
  124. package/dist/components/alert.js +1 -1
  125. package/dist/components/autocomplete.d.ts +1 -1
  126. package/dist/components/autocomplete.js +5 -4
  127. package/dist/components/badge-button.d.ts +2 -0
  128. package/dist/components/{pill-button.js → badge-button.js} +13 -12
  129. package/dist/components/badge.d.ts +1 -1
  130. package/dist/components/badge.js +56 -37
  131. package/dist/components/bottom-sheet.d.ts +2 -2
  132. package/dist/components/bottom-sheet.js +2 -2
  133. package/dist/components/breadcrumbs.d.ts +1 -1
  134. package/dist/components/breadcrumbs.js +1 -1
  135. package/dist/components/button.d.ts +2 -2
  136. package/dist/components/button.js +1 -1
  137. package/dist/components/checkbox-group.d.ts +1 -1
  138. package/dist/components/checkbox-group.js +6 -6
  139. package/dist/components/checkbox.d.ts +1 -1
  140. package/dist/components/checkbox.js +1 -1
  141. package/dist/components/date-picker.d.ts +1 -1
  142. package/dist/components/date-picker.js +1 -1
  143. package/dist/components/date-range-picker.d.ts +1 -1
  144. package/dist/components/date-range-picker.js +1 -1
  145. package/dist/components/date-time-picker.d.ts +1 -1
  146. package/dist/components/date-time-picker.js +1 -1
  147. package/dist/components/dialog.d.ts +1 -1
  148. package/dist/components/dialog.js +1 -1
  149. package/dist/components/drawer.js +3 -3
  150. package/dist/components/dropdown-menu.d.ts +2 -2
  151. package/dist/components/dropdown-menu.js +2 -2
  152. package/dist/components/file-input.d.ts +1 -1
  153. package/dist/components/file-input.js +1 -1
  154. package/dist/components/file-upload-container.d.ts +2 -2
  155. package/dist/components/file-upload-container.js +1 -1
  156. package/dist/components/file-upload.d.ts +2 -2
  157. package/dist/components/file-upload.js +1 -1
  158. package/dist/components/form-field.d.ts +1 -1
  159. package/dist/components/form-field.js +1 -1
  160. package/dist/components/icon-button.d.ts +1 -1
  161. package/dist/components/icon-button.js +2 -2
  162. package/dist/components/icon-slot.d.ts +2 -0
  163. package/dist/components/icon-slot.js +2 -0
  164. package/dist/components/inline-icon-button.d.ts +1 -1
  165. package/dist/components/inline-icon-button.js +1 -1
  166. package/dist/components/input.d.ts +1 -1
  167. package/dist/components/input.js +7 -7
  168. package/dist/components/link.d.ts +1 -1
  169. package/dist/components/link.js +32 -1
  170. package/dist/components/number-field.d.ts +1 -1
  171. package/dist/components/number-field.js +10 -9
  172. package/dist/components/number-range-input.d.ts +1 -1
  173. package/dist/components/number-range-input.js +1 -1
  174. package/dist/components/pagination-list.d.ts +1 -1
  175. package/dist/components/pagination-list.js +1 -1
  176. package/dist/components/pagination.d.ts +1 -1
  177. package/dist/components/pagination.js +34 -30
  178. package/dist/components/password-input.d.ts +1 -1
  179. package/dist/components/popover.d.ts +1 -1
  180. package/dist/components/popover.js +6 -5
  181. package/dist/components/progress.d.ts +1 -1
  182. package/dist/components/progress.js +1 -1
  183. package/dist/components/query-autocomplete.d.ts +2 -2
  184. package/dist/components/query-autocomplete.js +2 -2
  185. package/dist/components/query-select.d.ts +1 -1
  186. package/dist/components/query-select.js +3 -3
  187. package/dist/components/radio-group.d.ts +1 -1
  188. package/dist/components/radio-group.js +1 -1
  189. package/dist/components/select.d.ts +2 -2
  190. package/dist/components/select.js +1 -1
  191. package/dist/components/slider.d.ts +1 -1
  192. package/dist/components/slider.js +1 -1
  193. package/dist/components/spinner.d.ts +1 -1
  194. package/dist/components/spinner.js +1 -1
  195. package/dist/components/split-button.d.ts +1 -1
  196. package/dist/components/split-button.js +3 -3
  197. package/dist/components/stepper.d.ts +1 -1
  198. package/dist/components/stepper.js +1 -1
  199. package/dist/components/switch.d.ts +1 -1
  200. package/dist/components/switch.js +1 -1
  201. package/dist/components/tag.d.ts +1 -1
  202. package/dist/components/tag.js +1 -1
  203. package/dist/components/text-area.d.ts +1 -1
  204. package/dist/components/text-area.js +1 -1
  205. package/dist/components/text-button.d.ts +1 -1
  206. package/dist/components/text-button.js +1 -1
  207. package/dist/components/time-picker.d.ts +1 -1
  208. package/dist/components/time-picker.js +1 -1
  209. package/dist/components/toast.d.ts +2 -2
  210. package/dist/components/toast.js +2 -2
  211. package/dist/components/toggle-button.d.ts +1 -1
  212. package/dist/components/toggle-button.js +1 -1
  213. package/dist/components/toggle-group.d.ts +2 -2
  214. package/dist/components/toggle-group.js +1 -1
  215. package/dist/components/tooltip-ellipsis.js +1 -1
  216. package/dist/components/tooltip.d.ts +1 -1
  217. package/dist/components/tooltip.js +1 -1
  218. package/dist/components/typography.d.ts +2 -2
  219. package/dist/components/typography.js +1 -1
  220. package/dist/components/use-toast.d.ts +1 -1
  221. package/dist/components/use-toast.js +2 -2
  222. package/dist/config/confirmation.d.ts +1 -1
  223. package/dist/config/link-context.d.ts +2 -2
  224. package/dist/config/ui-config.d.ts +2 -2
  225. package/dist/config/ui-config.js +1 -1
  226. package/dist/config/ui-configurator-theme.d.ts +2 -0
  227. package/dist/config/ui-configurator-theme.js +2 -0
  228. package/dist/config/ui-configurator-vite.d.ts +10 -0
  229. package/dist/config/ui-configurator-vite.js +174 -0
  230. package/dist/config/ui-configurator.d.ts +934 -0
  231. package/dist/config/ui-configurator.js +4555 -0
  232. package/dist/config/ui-overrides.d.ts +1 -1
  233. package/dist/config/ui-overrides.js +1 -1
  234. package/dist/config/ui-router.js +1 -1
  235. package/dist/{confirmation.context-DPAKsLYl.d.ts → confirmation.context-BOeEVczb.d.ts} +1 -1
  236. package/dist/{date-picker-BYFWSbN8.d.ts → date-picker-DnxDmlOW.d.ts} +1 -1
  237. package/dist/{date-range-picker-BaaXOObm.d.ts → date-range-picker-DHDOSvHN.d.ts} +1 -1
  238. package/dist/{date-time-picker-D42cTCgx.d.ts → date-time-picker-UkTa0OJ8.d.ts} +1 -1
  239. package/dist/datePickerInput.cva-Cd7UUN61.js +14 -0
  240. package/dist/{datePickerValue.utils-CFCY-fRJ.js → datePickerValue.utils-DCgoSrP3.js} +9 -9
  241. package/dist/{dialog.cva---xiOXMQ.js → dialog.cva-COhDZaVl.js} +4 -4
  242. package/dist/{dist-B8h0VT0E.js → dist-CAdwxJbe.js} +1 -208
  243. package/dist/{dom.utils-DjuRTR6U.js → dom.utils-D1AopHx9.js} +1 -1
  244. package/dist/dropdownMenu.cva-DvEmX0bs.js +34 -0
  245. package/dist/{dynamicInputs-wEEikYeg.d.ts → dynamicInputs-iP39lVKf.d.ts} +102 -100
  246. package/dist/{fieldAdapter-C0lCFmf0.js → fieldAdapter-DjYls12j.js} +1 -1
  247. package/dist/{file-input-C56GXRwz.d.ts → file-input-DkbkdI7l.d.ts} +1 -1
  248. package/dist/{file-upload-Bx0X534g.d.ts → file-upload-CTsPhxJk.d.ts} +2 -2
  249. package/dist/fileUpload.cva-ujmStxB1.js +42 -0
  250. package/dist/{fileUpload.types-DWuQKA2l.d.ts → fileUpload.types-n5FxK_F-.d.ts} +2 -2
  251. package/dist/hooks/use-filters.js +1 -1
  252. package/dist/iconSlot.cva-CnpFzAOR.d.ts +21 -0
  253. package/dist/icons.d.ts +2 -1
  254. package/dist/icons.js +2 -1
  255. package/dist/index.d.ts +87 -86
  256. package/dist/index.js +57 -46
  257. package/dist/info-iUmX3uDk.js +32 -0
  258. package/dist/{input-D2kGX0hW.d.ts → input-CdQNCPgH.d.ts} +1 -1
  259. package/dist/{input.cva-BhDJxc7r.d.ts → input.cva-BsHgYa-L.d.ts} +3 -2
  260. package/dist/{input.cva-BcXyC1vZ.js → input.cva-DJA8ovm_.js} +9 -9
  261. package/dist/{link.context-CDZn6oL2.d.ts → link.context-D5qyz9Rf.d.ts} +1 -1
  262. package/dist/link.cva-DMTHZiJG.js +12 -0
  263. package/dist/{number-field-Bw2GKr0s.d.ts → number-field-CUDbenNV.d.ts} +1 -1
  264. package/dist/{number-range-input-Dqe6x2dR.d.ts → number-range-input-DZGrcvjL.d.ts} +1 -1
  265. package/dist/numberStatic.utils-BX50PSee.js +421 -0
  266. package/dist/{password-input-DepKyhh3.d.ts → password-input-fYN20cQO.d.ts} +1 -1
  267. package/dist/{popover.cva-BJSkLndY.js → popover.cva-Bhud1wnp.js} +1 -1
  268. package/dist/popoverAnimation-DEZSvKP8.js +4 -0
  269. package/dist/{query-autocomplete-BSpHin_R.d.ts → query-autocomplete-CfuQeiYG.d.ts} +2 -2
  270. package/dist/{query-select-m1DCp4UF.d.ts → query-select-CuT_sE6a.d.ts} +2 -2
  271. package/dist/{queryAutocomplete.types-CrbVUmvl.d.ts → queryAutocomplete.types-tl3r6iaY.d.ts} +2 -2
  272. package/dist/{radio-group-Civ3Fb70.d.ts → radio-group-B3ccPf0p.d.ts} +1 -1
  273. package/dist/{radio.cva-BlOrmxzf.d.ts → radio.cva-DN9VQ3Kb.d.ts} +4 -3
  274. package/dist/rhf/autocomplete.d.ts +2 -2
  275. package/dist/rhf/autocomplete.js +1 -1
  276. package/dist/rhf/checkbox-group.d.ts +2 -2
  277. package/dist/rhf/checkbox-group.js +1 -1
  278. package/dist/rhf/checkbox.d.ts +2 -2
  279. package/dist/rhf/checkbox.js +2 -2
  280. package/dist/rhf/date-picker.d.ts +2 -2
  281. package/dist/rhf/date-picker.js +2 -2
  282. package/dist/rhf/date-range-picker.d.ts +2 -2
  283. package/dist/rhf/date-range-picker.js +2 -2
  284. package/dist/rhf/date-time-picker.d.ts +2 -2
  285. package/dist/rhf/date-time-picker.js +2 -2
  286. package/dist/rhf/file-input.d.ts +2 -2
  287. package/dist/rhf/file-input.js +2 -2
  288. package/dist/rhf/file-upload.d.ts +2 -2
  289. package/dist/rhf/file-upload.js +2 -2
  290. package/dist/rhf/input.d.ts +2 -2
  291. package/dist/rhf/input.js +1 -1
  292. package/dist/rhf/inputs.d.ts +2 -2
  293. package/dist/rhf/number-field.d.ts +2 -2
  294. package/dist/rhf/number-field.js +1 -1
  295. package/dist/rhf/number-range-input.d.ts +2 -2
  296. package/dist/rhf/number-range-input.js +2 -2
  297. package/dist/rhf/password-input.d.ts +2 -2
  298. package/dist/rhf/password-input.js +1 -1
  299. package/dist/rhf/query-autocomplete.d.ts +1 -1
  300. package/dist/rhf/query-autocomplete.js +1 -1
  301. package/dist/rhf/query-select.d.ts +1 -1
  302. package/dist/rhf/query-select.js +1 -1
  303. package/dist/rhf/radio-group.d.ts +2 -2
  304. package/dist/rhf/radio-group.js +2 -2
  305. package/dist/rhf/rich-text-editor.d.ts +2 -2
  306. package/dist/rhf/rich-text-editor.js +2 -2
  307. package/dist/rhf/select.d.ts +2 -2
  308. package/dist/rhf/select.js +2 -2
  309. package/dist/rhf/slider.d.ts +2 -2
  310. package/dist/rhf/slider.js +2 -2
  311. package/dist/rhf/switch.d.ts +2 -2
  312. package/dist/rhf/switch.js +2 -2
  313. package/dist/rhf/text-area.d.ts +2 -2
  314. package/dist/rhf/text-area.js +2 -2
  315. package/dist/rhf/time-picker.d.ts +2 -2
  316. package/dist/rhf/time-picker.js +2 -2
  317. package/dist/rhf/toggle-group.d.ts +2 -2
  318. package/dist/rhf/toggle-group.js +2 -2
  319. package/dist/{rhf-D8B7mLO1.js → rhf-t348TCCL.js} +1 -1
  320. package/dist/rhf.d.ts +87 -86
  321. package/dist/rhf.js +57 -46
  322. package/dist/{rich-text-editor-DvNEOIux.d.ts → rich-text-editor-B-Onl7T8.d.ts} +1 -1
  323. package/dist/rich-text-editor.d.ts +1 -1
  324. package/dist/rich-text-editor.js +1 -1
  325. package/dist/{router.context-B0jTMtE0.js → router.context-B4FvsTim.js} +2 -2
  326. package/dist/{select-DY5QtwqI.d.ts → select-B4a52eWW.d.ts} +2 -2
  327. package/dist/selectDesktop.cva-CHAMxhfO.js +69 -0
  328. package/dist/{slider-CrB-Gkcv.d.ts → slider-dNj9jruO.d.ts} +1 -1
  329. package/dist/staticDateTimeSegments-DtU63_dw.js +1764 -0
  330. package/dist/{staticSelect.utils-Cm7MoDVG.js → staticSelect.utils-uHa8f_c6.js} +33 -231
  331. package/dist/stepper.cva-CZ0Kj-s7.js +116 -0
  332. package/dist/style-merge.util-zLimKwt6.d.ts +40 -0
  333. package/dist/styles/color-utilities.css +13 -25
  334. package/dist/styles/configurator.css +2365 -0
  335. package/dist/styles/input.d.ts +1 -1
  336. package/dist/{switch-8WzXfTS8.d.ts → switch-C--iWnY8.d.ts} +1 -1
  337. package/dist/switch.cva-CWNzmdRc.d.ts +16 -0
  338. package/dist/table.cva-DlMT-zLD.js +48 -0
  339. package/dist/tanstack/autocomplete.d.ts +1 -1
  340. package/dist/tanstack/checkbox-group.d.ts +1 -1
  341. package/dist/tanstack/checkbox.d.ts +1 -1
  342. package/dist/tanstack/checkbox.js +1 -1
  343. package/dist/tanstack/date-picker.d.ts +1 -1
  344. package/dist/tanstack/date-picker.js +1 -1
  345. package/dist/tanstack/date-range-picker.d.ts +1 -1
  346. package/dist/tanstack/date-range-picker.js +1 -1
  347. package/dist/tanstack/date-time-picker.d.ts +1 -1
  348. package/dist/tanstack/date-time-picker.js +1 -1
  349. package/dist/tanstack/file-input.d.ts +1 -1
  350. package/dist/tanstack/file-input.js +1 -1
  351. package/dist/tanstack/file-upload.d.ts +2 -2
  352. package/dist/tanstack/file-upload.js +1 -1
  353. package/dist/tanstack/form.d.ts +1 -1
  354. package/dist/tanstack/form.js +1 -1
  355. package/dist/tanstack/input.d.ts +1 -1
  356. package/dist/tanstack/inputs.d.ts +3 -3
  357. package/dist/tanstack/inputs.js +1 -1
  358. package/dist/tanstack/number-field.d.ts +1 -1
  359. package/dist/tanstack/number-range-input.d.ts +1 -1
  360. package/dist/tanstack/number-range-input.js +1 -1
  361. package/dist/tanstack/password-input.d.ts +1 -1
  362. package/dist/tanstack/query-select.d.ts +1 -1
  363. package/dist/tanstack/radio-group.d.ts +1 -1
  364. package/dist/tanstack/radio-group.js +1 -1
  365. package/dist/tanstack/rich-text-editor.d.ts +1 -1
  366. package/dist/tanstack/rich-text-editor.js +1 -1
  367. package/dist/tanstack/select.d.ts +1 -1
  368. package/dist/tanstack/select.js +1 -1
  369. package/dist/tanstack/slider.d.ts +1 -1
  370. package/dist/tanstack/slider.js +1 -1
  371. package/dist/tanstack/switch.d.ts +1 -1
  372. package/dist/tanstack/switch.js +1 -1
  373. package/dist/tanstack/table.d.ts +1 -1
  374. package/dist/tanstack/table.js +2 -1
  375. package/dist/tanstack/text-area.d.ts +1 -1
  376. package/dist/tanstack/text-area.js +1 -1
  377. package/dist/tanstack/time-picker.d.ts +1 -1
  378. package/dist/tanstack/time-picker.js +1 -1
  379. package/dist/tanstack/toggle-group.d.ts +2 -2
  380. package/dist/tanstack/toggle-group.js +1 -1
  381. package/dist/tanstack.d.ts +71 -70
  382. package/dist/tanstack.js +68 -55
  383. package/dist/{text-area-CqnKRWKq.d.ts → text-area-DQAtpOQp.d.ts} +1 -1
  384. package/dist/theme-model-DtYPxNvH.js +406 -0
  385. package/dist/theme-model-T1zIdBg8.d.ts +12 -0
  386. package/dist/{time-picker-Cz1GIzpF.d.ts → time-picker-DoGfbil6.d.ts} +1 -1
  387. package/dist/{toast.cva-Cj6o2Rmu.d.ts → toast.cva-By5lvAfr.d.ts} +3 -2
  388. package/dist/toast.cva-C_L_RffH.js +163 -0
  389. package/dist/{toast.runtime-CIKvmkjo.js → toast.runtime-cxex9e4E.js} +2 -1
  390. package/dist/{toggle-group-CPkKHm1t.d.ts → toggle-group-C1nMDOwz.d.ts} +1 -1
  391. package/dist/toggleGroup.cva-MbpaEBg1.js +35 -0
  392. package/dist/{toggleGroup.types-DD6uRI5G.d.ts → toggleGroup.types-Bp43zbSQ.d.ts} +2 -1
  393. package/dist/tooltip.cva-BIzlOXHH.js +48 -0
  394. package/dist/{tooltipWrapper.cva-CUu8pI-a.js → tooltipWrapper.cva-BBQ4ic3D.js} +1 -1
  395. package/dist/{typography.cva-jtp6WWUH.d.ts → typography.cva-D1JOEYl-.d.ts} +2 -1
  396. package/dist/{typography.cva-CJZZSGXW.js → typography.cva-iD15k56p.js} +1 -1
  397. package/dist/{uiConfig.context-D2eUIPHn.js → uiConfig.context-BS3r_kTS.js} +1 -1
  398. package/dist/{uiConfig.context-aoarCLYX.d.ts → uiConfig.context-DeBX2beU.d.ts} +8 -8
  399. package/dist/{uiOverrides.context-Bfm2n-n8.js → uiOverrides.context-BTCH9y5a.js} +2 -2
  400. package/dist/{uiOverrides.context-C3xb4Ttq.d.ts → uiOverrides.context-DEp139He.d.ts} +11 -44
  401. package/dist/underline-66hmELxa.js +81 -0
  402. package/dist/upload-CXU83BJ4.js +30 -0
  403. package/dist/{useBreakpoint-BOA-MyoT.js → useBreakpoint-DQoMN-BG.js} +1 -1
  404. package/dist/useControlledState-CzXkZCX8.js +30 -0
  405. package/dist/{useFieldAccessibility-D2_Qm26-.js → useFieldAccessibility-ScC6Mtd5.js} +15 -8
  406. package/dist/{useFilters-kkEUFKmQ.js → useFilters-XNH27Md2.js} +1 -1
  407. package/dist/{useFormAutosave-BYFn3LH8.js → useFormAutosave-DfuP7drj.js} +2 -2
  408. package/dist/{useStaticInputHandoff-DB9PgioW.js → useStaticInputHandoff-NeZVnci-.js} +14 -11
  409. package/dist/useTableColumnConfig-BTGZiluz.js +892 -0
  410. package/dist/{useTableNav-D9mICzNW.d.ts → useTableNav-Ckj5PBRk.d.ts} +3 -2
  411. package/dist/{useToast-DMSm59Y6.d.ts → useToast-yreVCUer.d.ts} +1 -1
  412. package/package.json +31 -5
  413. package/src/configurator/README.md +71 -0
  414. package/dist/Button-sn52l1Yv.js +0 -506
  415. package/dist/FocusScope-CO9oJ1sc.js +0 -343
  416. package/dist/FormFieldHeaderTooltip-Dl24v4_j.js +0 -45
  417. package/dist/Link-Btxj2gzg.js +0 -42
  418. package/dist/PillButton-DASBXLFB.d.ts +0 -15
  419. package/dist/Tag-Cch_68QO.d.ts +0 -43
  420. package/dist/chain-DIXr2VAT.js +0 -10
  421. package/dist/components/pill-button.d.ts +0 -2
  422. package/dist/focusSafely-DCGrr2bb.js +0 -447
  423. package/dist/getScrollParent-kSR7EtoT.js +0 -47
  424. package/dist/numberStatic.utils-BMgRzyd3.js +0 -902
  425. package/dist/openLink-CQhMhfzO.js +0 -121
  426. package/dist/pillButton.cva-BEWuu0qm.d.ts +0 -34
  427. package/dist/pillButton.cva-DlP5tOT5.js +0 -197
  428. package/dist/platform-BXNIIAfU.js +0 -42
  429. package/dist/staticDateTimeSegments-DR8bJw-F.js +0 -3605
  430. package/dist/switch.cva-8T0fw31t.d.ts +0 -15
  431. package/dist/useControlledState-DQxX6LMN.js +0 -189
  432. package/dist/useFocusable-Bd0UsrQ7.js +0 -63
  433. package/dist/useFormValidationState-D3z-gafz.js +0 -1341
  434. package/dist/useLayoutEffect-B2-1tbPJ.js +0 -83
  435. package/dist/useSyncRef-RGMv0rXK.js +0 -338
  436. package/dist/useTableColumnConfig-CcJxu14U.js +0 -1625
@@ -0,0 +1,2365 @@
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
+ /* The configurator covers the whole viewport as a full page above the application. */
78
+ .studio-overlay {
79
+ position: fixed;
80
+ inset: 0;
81
+ background: #fff;
82
+ z-index: 1000;
83
+ }
84
+ .studio-modal {
85
+ width: 100%;
86
+ height: 100dvh;
87
+ background: #fff;
88
+ overflow: hidden;
89
+ }
90
+ /*
91
+ * The editor column stacks the top bar, the editor and the footer; the preview fills the second column from top to
92
+ * bottom, like a design tool's canvas.
93
+ */
94
+ .studio-dialog {
95
+ display: grid;
96
+ grid-template-columns: var(--studio-editor-track, minmax(300px, 0.8fr)) minmax(320px, 1.25fr);
97
+ grid-template-rows: auto minmax(0, 1fr) auto;
98
+ height: 100%;
99
+ outline: none;
100
+ }
101
+ .studio-title h2 {
102
+ margin: 0;
103
+ font-size: 11px;
104
+ font-weight: 650;
105
+ letter-spacing: -0.3px;
106
+ }
107
+ /* Title, section tabs and global controls share one bar above the editor; the tabs take their own row. */
108
+ .studio-topbar {
109
+ grid-column: 1;
110
+ grid-row: 1;
111
+ display: flex;
112
+ flex-wrap: wrap;
113
+ align-items: center;
114
+ gap: 8px 16px;
115
+ padding: 10px 16px;
116
+ background: #fbfbfb;
117
+ border-bottom: 1px solid #eaeaea;
118
+ min-width: 0;
119
+ }
120
+ .studio-topbar .studio-title {
121
+ gap: 9px;
122
+ flex-shrink: 0;
123
+ }
124
+ .studio-topbar .studio-nav {
125
+ order: 1;
126
+ flex-basis: 100%;
127
+ margin-inline: -4px;
128
+ }
129
+ .studio-topbar .studio-title h2 {
130
+ white-space: nowrap;
131
+ }
132
+ /* Controls share the title's row and only wrap below it once even their narrowest layout no longer fits. */
133
+ .studio-topbar-controls {
134
+ display: flex;
135
+ flex: 1 1 min-content;
136
+ justify-content: flex-end;
137
+ align-items: center;
138
+ gap: 8px;
139
+ margin-left: auto;
140
+ min-width: 0;
141
+ }
142
+ .studio-topbar .studio-search {
143
+ margin: 0;
144
+ flex: 1 1 90px;
145
+ max-width: 190px;
146
+ padding: 7px 9px;
147
+ background: #fff;
148
+ }
149
+ .studio-topbar .studio-search:has(input:disabled) {
150
+ opacity: 0.5;
151
+ }
152
+ @media (max-width: 800px) {
153
+ .studio-topbar-controls {
154
+ flex-wrap: wrap;
155
+ margin-left: 0;
156
+ flex-shrink: 1;
157
+ }
158
+ .studio-topbar .studio-search {
159
+ width: auto;
160
+ flex: 1 1 100%;
161
+ }
162
+ .studio-topbar .studio-title {
163
+ flex: 1;
164
+ }
165
+ }
166
+ /* The body only groups the panels in markup; they are placed on the dialog's grid. */
167
+ .studio-body {
168
+ display: contents;
169
+ }
170
+ .studio-body > .studio-editor {
171
+ grid-column: 1;
172
+ grid-row: 2;
173
+ }
174
+ .studio-body > .studio-preview {
175
+ grid-column: 2;
176
+ grid-row: 1 / -1;
177
+ }
178
+ /* Dividers overlap the start of their grid column and show a line and grip on hover. */
179
+ .studio-resize-handle {
180
+ grid-row: 1 / -1;
181
+ justify-self: start;
182
+ position: relative;
183
+ z-index: 2;
184
+ width: 10px;
185
+ margin-left: -5px;
186
+ cursor: col-resize;
187
+ touch-action: none;
188
+ outline: none;
189
+ }
190
+ .studio-resize-handle::before {
191
+ content: "";
192
+ position: absolute;
193
+ inset: 0 4px;
194
+ background: #393939;
195
+ opacity: 0;
196
+ transition: opacity 120ms;
197
+ }
198
+ .studio-resize-handle::after {
199
+ content: "";
200
+ position: absolute;
201
+ top: 50%;
202
+ left: 50%;
203
+ width: 6px;
204
+ height: 32px;
205
+ translate: -50% -50%;
206
+ border-radius: 3px;
207
+ background: #393939;
208
+ opacity: 0;
209
+ transition: opacity 120ms;
210
+ }
211
+ .studio-resize-handle:is(:hover, :active, :focus-visible)::before,
212
+ .studio-resize-handle:is(:hover, :active, :focus-visible)::after {
213
+ opacity: 1;
214
+ }
215
+ .studio-nav {
216
+ display: flex;
217
+ align-items: center;
218
+ gap: 2px;
219
+ min-width: 0;
220
+ overflow-x: auto;
221
+ scrollbar-width: none;
222
+ }
223
+ .studio-nav-divider {
224
+ flex-shrink: 0;
225
+ width: 1px;
226
+ height: 18px;
227
+ margin: 0 8px;
228
+ background: #e5e5e5;
229
+ }
230
+ .studio-nav button {
231
+ display: flex;
232
+ flex-shrink: 0;
233
+ align-items: center;
234
+ gap: 7px;
235
+ white-space: nowrap;
236
+ padding: 7px 10px;
237
+ color: #707070;
238
+ background: transparent;
239
+ border: 0;
240
+ border-radius: 6px;
241
+ font-size: 11px;
242
+ }
243
+ .studio-nav button[aria-current] {
244
+ background: #eeeeee;
245
+ color: #464646;
246
+ font-weight: 600;
247
+ }
248
+ .studio-editor {
249
+ --studio-editor-pad: 20px;
250
+ padding: var(--studio-editor-pad);
251
+ padding-top: 12px;
252
+ overflow: auto;
253
+ min-width: 0;
254
+ }
255
+ .studio-subtabs-bar {
256
+ display: flex;
257
+ align-items: center;
258
+ gap: 12px;
259
+ margin-bottom: 12px;
260
+ border-bottom: 1px solid #eaeaea;
261
+ }
262
+ .studio-subtabs-bar .studio-toggle-all {
263
+ margin-left: auto;
264
+ margin-bottom: 2px;
265
+ }
266
+ .studio-subtabs {
267
+ display: flex;
268
+ flex: 1;
269
+ gap: 18px;
270
+ min-width: 0;
271
+ overflow-x: auto;
272
+ scrollbar-width: none;
273
+ }
274
+ .studio-subtabs button {
275
+ display: flex;
276
+ flex-shrink: 0;
277
+ align-items: center;
278
+ gap: 6px;
279
+ padding: 0 0 9px;
280
+ margin-bottom: -1px;
281
+ border: 0;
282
+ border-bottom: 2px solid transparent;
283
+ background: transparent;
284
+ color: #707070;
285
+ font-size: 11px;
286
+ white-space: nowrap;
287
+ }
288
+ .studio-subtabs button[aria-selected="true"] {
289
+ border-bottom-color: #393939;
290
+ color: #464646;
291
+ font-weight: 600;
292
+ }
293
+ .studio-subtabs button:disabled {
294
+ opacity: 0.5;
295
+ }
296
+ .studio-editor-heading {
297
+ display: flex;
298
+ align-items: center;
299
+ justify-content: space-between;
300
+ gap: 12px;
301
+ margin-bottom: 10px;
302
+ }
303
+ .studio-editor-heading h2 {
304
+ font-size: 11px;
305
+ font-weight: 550;
306
+ letter-spacing: -0.6px;
307
+ margin: 0;
308
+ }
309
+ .studio-mode {
310
+ display: inline-flex;
311
+ border: 1px solid #e5e5e5;
312
+ background: #f7f7f7;
313
+ border-radius: 6px;
314
+ padding: 3px;
315
+ gap: 3px;
316
+ }
317
+ .studio-mode button {
318
+ display: flex;
319
+ align-items: center;
320
+ justify-content: center;
321
+ gap: 6px;
322
+ border: 0;
323
+ border-radius: 4px;
324
+ padding: 5px 11px;
325
+ font-size: 11px;
326
+ background: transparent;
327
+ color: #8e8e8e;
328
+ text-transform: capitalize;
329
+ }
330
+ .studio-mode button[aria-pressed="true"] {
331
+ background: white;
332
+ box-shadow: 0 1px 3px #37373717;
333
+ color: #454545;
334
+ }
335
+ .studio-search {
336
+ display: flex;
337
+ align-items: center;
338
+ gap: 8px;
339
+ padding: 9px 11px;
340
+ border: 1px solid #e5e5e5;
341
+ border-radius: 6px;
342
+ margin: 20px 0 12px;
343
+ color: #9f9f9f;
344
+ }
345
+ .studio-search input {
346
+ width: 100%;
347
+ outline: none;
348
+ border: 0;
349
+ background: transparent;
350
+ color: #414141;
351
+ font-size: 11px;
352
+ }
353
+ .studio-token {
354
+ padding: 4px 0;
355
+ border-bottom: 1px solid #efefef;
356
+ }
357
+ .studio-token label {
358
+ display: block;
359
+ margin-bottom: 5px;
360
+ }
361
+ .studio-token label > span {
362
+ display: block;
363
+ font-size: 11px;
364
+ font-weight: 550;
365
+ text-transform: capitalize;
366
+ }
367
+ .studio-token.is-changed label > span::after {
368
+ content: " •";
369
+ color: #727272;
370
+ }
371
+ .studio-token-value {
372
+ display: flex;
373
+ align-items: center;
374
+ gap: 8px;
375
+ }
376
+ .studio-token-value input:not([type="color"]) {
377
+ border: 1px solid #e6e6e6;
378
+ border-radius: 5px;
379
+ height: 24px;
380
+ padding: 2px 7px;
381
+ line-height: 18px;
382
+ font-family: inherit;
383
+ font-variant-numeric: tabular-nums;
384
+ font-size: 11px;
385
+ color: #6a6a6a;
386
+ min-width: 0;
387
+ width: 100%;
388
+ background: #fff;
389
+ }
390
+ .studio-token-value input[type="color"] {
391
+ width: 24px;
392
+ height: 24px;
393
+ border: 1px solid #e6e6e6;
394
+ border-radius: 5px;
395
+ padding: 2px;
396
+ flex-shrink: 0;
397
+ background: white;
398
+ }
399
+ .studio-palette-swatch {
400
+ width: 18px;
401
+ height: 18px;
402
+ flex-shrink: 0;
403
+ border: 1px solid #dadada;
404
+ border-radius: 3px;
405
+ }
406
+ /* Base palette picker for semantic colors: a swatch trigger and a grouped swatch list. */
407
+ .studio-palette-picker {
408
+ display: flex;
409
+ flex: 1;
410
+ min-width: 0;
411
+ }
412
+ .studio-palette-picker.is-custom {
413
+ flex: none;
414
+ }
415
+ .studio-token-value .studio-palette-trigger {
416
+ display: flex;
417
+ flex: 1;
418
+ align-items: center;
419
+ gap: 7px;
420
+ width: auto;
421
+ min-width: 0;
422
+ height: auto;
423
+ min-height: 24px;
424
+ padding: 0 7px;
425
+ border: 0;
426
+ background: transparent;
427
+ color: #414141;
428
+ font: inherit;
429
+ font-size: 11px;
430
+ text-align: left;
431
+ text-transform: capitalize;
432
+ cursor: pointer;
433
+ }
434
+ .studio-token-value .studio-palette-trigger:hover {
435
+ background: #f7f7f7;
436
+ }
437
+ .studio-palette-trigger > svg {
438
+ flex-shrink: 0;
439
+ margin-left: auto;
440
+ color: #939393;
441
+ }
442
+ .studio-palette-trigger-label {
443
+ overflow: hidden;
444
+ text-overflow: ellipsis;
445
+ white-space: nowrap;
446
+ }
447
+ .studio-palette-popover {
448
+ z-index: 1002;
449
+ display: flex;
450
+ width: 220px;
451
+ border: 1px solid #e5e5e5;
452
+ border-radius: 10px;
453
+ background: #fff;
454
+ box-shadow: 0 12px 40px #21212126;
455
+ font-family: "Inter Variable", Inter, sans-serif;
456
+ font-size: 11px;
457
+ color: #242424;
458
+ }
459
+ /* The list scrolls itself so opening it can bring the selected color into view. */
460
+ .studio-palette-list {
461
+ position: relative;
462
+ flex: 1;
463
+ max-height: min(420px, calc(var(--visual-viewport-height, 100vh) - 80px));
464
+ overflow: auto;
465
+ padding: 6px;
466
+ outline: none;
467
+ }
468
+ .studio-palette-list header {
469
+ padding: 10px 8px 5px;
470
+ color: #717171;
471
+ font-size: 10px;
472
+ font-weight: 600;
473
+ text-transform: capitalize;
474
+ }
475
+ .studio-palette-list section:first-child header {
476
+ padding-top: 4px;
477
+ }
478
+ .studio-palette-item {
479
+ display: flex;
480
+ align-items: center;
481
+ gap: 9px;
482
+ padding: 5px 8px;
483
+ border-radius: 6px;
484
+ outline: none;
485
+ cursor: pointer;
486
+ }
487
+ .studio-palette-item[data-focused],
488
+ .studio-palette-item[data-hovered] {
489
+ background: #f3f3f3;
490
+ }
491
+ .studio-palette-item[data-selected] {
492
+ background: #eeeeee;
493
+ color: #464646;
494
+ font-weight: 600;
495
+ }
496
+ .studio-palette-item code {
497
+ margin-left: auto;
498
+ color: #939393;
499
+ font-size: 10px;
500
+ }
501
+ .studio-palette-item.is-custom {
502
+ margin-top: 4px;
503
+ border-top: 1px solid #f0f0f0;
504
+ border-radius: 0 0 6px 6px;
505
+ color: #717171;
506
+ }
507
+ .studio-token-value button {
508
+ display: grid;
509
+ place-items: center;
510
+ width: 24px;
511
+ height: 24px;
512
+ flex-shrink: 0;
513
+ border: 0;
514
+ background: transparent;
515
+ padding: 4px;
516
+ color: #757575;
517
+ }
518
+ /* Configurator chrome only: the preview (.studio-sample) shows components with their own disabled and focus styles. */
519
+ .studio-overlay button:disabled:where(:not(.studio-sample *)) {
520
+ opacity: 0.35;
521
+ cursor: default;
522
+ }
523
+ .studio-overlay :is(input, select, textarea, button):focus-visible:where(:not(.studio-sample *)) {
524
+ outline: 2px solid #797979;
525
+ outline-offset: 3px;
526
+ }
527
+ .studio-token-value input[aria-invalid="true"] {
528
+ border-color: #c34839;
529
+ }
530
+ .studio-error {
531
+ color: #b8362c;
532
+ display: block;
533
+ margin-top: 7px;
534
+ font-size: 11px;
535
+ }
536
+ .studio-preview {
537
+ background: #f7f7f7;
538
+ border-left: 1px solid #eaeaea;
539
+ padding: 20px;
540
+ overflow: auto;
541
+ min-width: 0;
542
+ }
543
+ .studio-preview-heading {
544
+ display: flex;
545
+ justify-content: space-between;
546
+ align-items: center;
547
+ margin-bottom: 16px;
548
+ }
549
+ .studio-preview-actions {
550
+ display: flex;
551
+ flex-wrap: wrap;
552
+ justify-content: flex-end;
553
+ align-items: center;
554
+ gap: 8px;
555
+ }
556
+ .studio-preview-heading > span {
557
+ font-size: 9px;
558
+ font-weight: 600;
559
+ letter-spacing: 1.1px;
560
+ color: #8d8d8d;
561
+ }
562
+ .studio-preview-heading i {
563
+ display: inline-block;
564
+ height: 5px;
565
+ width: 5px;
566
+ border-radius: 50%;
567
+ background: #8c8c8c;
568
+ margin-right: 5px;
569
+ }
570
+ /* Shares the color mode switch's segmented style, so the preview header controls match. */
571
+ .studio-preview-modes {
572
+ flex-shrink: 0;
573
+ }
574
+ .studio-preview-modes button {
575
+ cursor: pointer;
576
+ text-transform: none;
577
+ }
578
+ .studio-preview-modes button:focus-visible {
579
+ outline: 2px solid #797979;
580
+ outline-offset: 2px;
581
+ }
582
+ .studio-preview-note {
583
+ text-align: center;
584
+ color: #a7a7a7;
585
+ font-size: 11px;
586
+ line-height: 1.7;
587
+ margin-top: 20px;
588
+ }
589
+ .studio-sample {
590
+ padding: 16px;
591
+ border-radius: 10px;
592
+ background: rgb(var(--surface-default-background-base));
593
+ color: rgb(var(--surface-default-card-foreground-base));
594
+ font-family: var(--font-body);
595
+ }
596
+ .studio-footer {
597
+ grid-column: 1;
598
+ grid-row: 3;
599
+ display: flex;
600
+ align-items: center;
601
+ gap: 10px;
602
+ padding: 10px 20px;
603
+ border-top: 1px solid #eaeaea;
604
+ flex-shrink: 0;
605
+ }
606
+ .studio-footer > button:not(.studio-primary),
607
+ .studio-export-actions button {
608
+ display: flex;
609
+ align-items: center;
610
+ justify-content: center;
611
+ gap: 7px;
612
+ color: #717171;
613
+ border: 1px solid #e7e7e7;
614
+ border-radius: 6px;
615
+ padding: 9px 12px;
616
+ background: white;
617
+ font-size: 11px;
618
+ }
619
+ .studio-footer > span {
620
+ flex: 1;
621
+ color: #929292;
622
+ font-size: 11px;
623
+ }
624
+ /* Confirmation dialogs sit above the full-page configurator. */
625
+ .studio-overlay.studio-confirm-overlay {
626
+ z-index: 1001;
627
+ display: grid;
628
+ place-items: center;
629
+ padding: 16px;
630
+ background: #20202066;
631
+ }
632
+ .studio-confirm {
633
+ width: min(420px, 100%);
634
+ background: #fff;
635
+ border-radius: 12px;
636
+ box-shadow: 0 25px 90px #21212140;
637
+ }
638
+ .studio-confirm-dialog {
639
+ padding: 22px;
640
+ outline: none;
641
+ }
642
+ .studio-confirm-dialog h2 {
643
+ margin: 0 0 8px;
644
+ font-size: 14px;
645
+ font-weight: 650;
646
+ }
647
+ .studio-confirm-dialog p {
648
+ margin: 0;
649
+ color: #717171;
650
+ font-size: 12px;
651
+ }
652
+ .studio-confirm-actions {
653
+ display: flex;
654
+ justify-content: flex-end;
655
+ gap: 8px;
656
+ margin-top: 20px;
657
+ }
658
+ .studio-confirm-actions > button:not(.studio-danger) {
659
+ padding: 9px 12px;
660
+ border: 1px solid #e7e7e7;
661
+ border-radius: 6px;
662
+ background: #fff;
663
+ color: #717171;
664
+ font-size: 11px;
665
+ }
666
+ .studio-confirm-actions > button.studio-danger {
667
+ display: flex;
668
+ align-items: center;
669
+ gap: 7px;
670
+ padding: 9px 12px;
671
+ border: 1px solid #b8362c;
672
+ border-radius: 6px;
673
+ background: #b8362c;
674
+ color: #fff;
675
+ font-size: 11px;
676
+ }
677
+ .studio-settings h3 {
678
+ font-size: 11px;
679
+ font-weight: 650;
680
+ margin: 18px 0 6px;
681
+ }
682
+ .studio-setting {
683
+ display: flex;
684
+ justify-content: space-between;
685
+ align-items: center;
686
+ gap: 10px;
687
+ padding: 10px 0;
688
+ border-bottom: 1px solid #efefef;
689
+ font-size: 11px;
690
+ }
691
+ .studio-setting select {
692
+ background: white;
693
+ border: 1px solid #e2e2e2;
694
+ border-radius: 5px;
695
+ padding: 7px;
696
+ color: #676767;
697
+ }
698
+ .studio-setting input {
699
+ accent-color: #525252;
700
+ }
701
+ .studio-setting small {
702
+ display: block;
703
+ color: #9e9e9e;
704
+ font-size: 11px;
705
+ margin-top: 4px;
706
+ }
707
+ .studio-help,
708
+ .studio-export > p {
709
+ color: #929292;
710
+ font-size: 11px;
711
+ line-height: 1.7;
712
+ margin-top: 20px;
713
+ }
714
+ .studio-export textarea {
715
+ background: #f8f8f8;
716
+ border: 1px solid #e5e5e5;
717
+ border-radius: 7px;
718
+ font-size: 11px;
719
+ font-family: monospace;
720
+ padding: 15px;
721
+ width: 100%;
722
+ height: 320px;
723
+ resize: vertical;
724
+ color: #4e4e4e;
725
+ margin: 18px 0;
726
+ }
727
+ @media (max-width: 1050px) {
728
+ .studio-dialog {
729
+ grid-template-columns: var(--studio-editor-track, minmax(260px, 0.8fr)) minmax(280px, 1.25fr);
730
+ }
731
+ .studio-editor {
732
+ --studio-editor-pad: 18px;
733
+ }
734
+ .studio-preview {
735
+ padding: 18px;
736
+ }
737
+ .studio-sample {
738
+ padding: 8px;
739
+ }
740
+ }
741
+ @media (max-width: 800px) {
742
+ /* One scrolling column: top bar, editor, preview, then the footer pinned to the bottom. */
743
+ .studio-dialog {
744
+ display: flex;
745
+ flex-direction: column;
746
+ overflow: auto;
747
+ }
748
+ .studio-footer {
749
+ position: sticky;
750
+ bottom: 0;
751
+ z-index: 3;
752
+ background: #fff;
753
+ }
754
+ .studio-resize-handle {
755
+ display: none;
756
+ }
757
+ .studio-editor,
758
+ .studio-preview {
759
+ overflow: visible;
760
+ flex-shrink: 0;
761
+ }
762
+ .studio-preview {
763
+ border-top: 1px solid #eaeaea;
764
+ }
765
+ .studio-footer {
766
+ flex-wrap: wrap;
767
+ padding: 12px;
768
+ gap: 8px;
769
+ }
770
+ .studio-footer > span {
771
+ flex-basis: 60%;
772
+ }
773
+ }
774
+
775
+ .studio-token-group {
776
+ min-width: 0;
777
+ margin: 10px 0 0;
778
+ padding: 8px 10px 10px;
779
+ border: 1px solid #e6e6e6;
780
+ border-radius: 8px;
781
+ }
782
+ .studio-token-group legend {
783
+ padding: 0 6px;
784
+ font-size: 11px;
785
+ font-weight: 600;
786
+ text-transform: capitalize;
787
+ color: #434343;
788
+ }
789
+ /* Typography keeps its compact three-field styles but shares the table's group header rows. */
790
+ :is(.studio-token-list-inline, .studio-token-list-rows) {
791
+ --studio-cell-line: #eaeaea;
792
+ }
793
+ /* Section titles are header rows of one continuous table rather than separately bordered boxes. */
794
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group {
795
+ margin: 0 calc(-1 * var(--studio-editor-pad));
796
+ padding: 0;
797
+ border: 0;
798
+ border-radius: 0;
799
+ }
800
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group legend {
801
+ float: left;
802
+ display: flex;
803
+ align-items: center;
804
+ width: 100%;
805
+ box-sizing: border-box;
806
+ margin: 0;
807
+ padding: 0 var(--studio-editor-pad) 0 0;
808
+ background: #f7f7f7;
809
+ border-bottom: 1px solid var(--studio-cell-line);
810
+ }
811
+ /* The whole header row toggles its group, not only the title text. */
812
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group .studio-group-toggle {
813
+ flex: 1;
814
+ align-self: stretch;
815
+ min-width: 0;
816
+ padding: 7px 0 7px var(--studio-editor-pad);
817
+ text-align: left;
818
+ }
819
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group:first-child legend {
820
+ border-top: 1px solid var(--studio-cell-line);
821
+ }
822
+ :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group > div {
823
+ clear: both;
824
+ }
825
+ .studio-token-list-inline .studio-token-group .studio-token {
826
+ padding-inline: var(--studio-editor-pad);
827
+ }
828
+ .studio-token-group > div > .studio-token:last-child {
829
+ border-bottom: 0;
830
+ padding-bottom: 0;
831
+ }
832
+ .studio-type-fields {
833
+ display: grid;
834
+ grid-template-columns: repeat(3, minmax(0, 1fr));
835
+ gap: 8px;
836
+ }
837
+ .studio-type-fields .studio-token {
838
+ min-width: 0;
839
+ padding: 0;
840
+ border: 0;
841
+ }
842
+ .studio-type-fields .studio-token label > span {
843
+ font-size: 11px;
844
+ white-space: nowrap;
845
+ text-transform: none;
846
+ margin-bottom: 0;
847
+ }
848
+ .studio-type-fields .studio-token-value {
849
+ position: relative;
850
+ gap: 0;
851
+ }
852
+ .studio-type-fields .studio-token-value input:not([type="color"]) {
853
+ padding-right: 27px;
854
+ }
855
+ .studio-type-fields .studio-token-value button {
856
+ position: absolute;
857
+ right: 1px;
858
+ padding: 5px;
859
+ }
860
+ @media (min-width: 801px) and (max-width: 1100px) {
861
+ .studio-type-fields {
862
+ grid-template-columns: 1fr;
863
+ }
864
+ }
865
+ @media (max-width: 420px) {
866
+ .studio-type-fields {
867
+ gap: 6px;
868
+ }
869
+ .studio-type-fields .studio-token-value input:not([type="color"]) {
870
+ padding-left: 6px;
871
+ font-size: 11px;
872
+ }
873
+ }
874
+
875
+ .studio-color-mode {
876
+ flex-shrink: 0;
877
+ }
878
+ .studio-color-mode button {
879
+ cursor: pointer;
880
+ }
881
+ .studio-color-mode button:focus-visible {
882
+ outline: 2px solid #797979;
883
+ outline-offset: 2px;
884
+ }
885
+ .studio-token-list-inline .studio-token {
886
+ display: grid;
887
+ grid-template-columns: minmax(0, 1fr) minmax(170px, 46%);
888
+ align-items: center;
889
+ gap: 6px 14px;
890
+ }
891
+ .studio-token-list-inline .studio-token label {
892
+ margin: 0;
893
+ overflow-wrap: anywhere;
894
+ }
895
+ .studio-token-list-inline .studio-token-value {
896
+ min-width: 0;
897
+ }
898
+ .studio-token-list-inline .studio-error {
899
+ grid-column: 2;
900
+ margin: 0;
901
+ }
902
+ @media (max-width: 420px) {
903
+ .studio-token-list-inline .studio-token {
904
+ grid-template-columns: minmax(0, 1fr) minmax(165px, 50%);
905
+ gap: 6px 10px;
906
+ }
907
+ }
908
+
909
+ /* A compact select that shows only a chevron; its text is hidden so the placeholder never shows. */
910
+ .studio-size-presets {
911
+ appearance: none;
912
+ width: 20px;
913
+ height: 24px;
914
+ flex-shrink: 0;
915
+ padding: 0;
916
+ border: 1px solid #e6e6e6;
917
+ border-radius: 4px;
918
+ background: #fff
919
+ 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")
920
+ center / 12px no-repeat;
921
+ color: transparent;
922
+ font-size: 11px;
923
+ cursor: pointer;
924
+ }
925
+ .studio-size-presets:hover {
926
+ border-color: #d4d4d4;
927
+ background-color: #f7f7f7;
928
+ }
929
+ .studio-size-presets :is(option, optgroup) {
930
+ color: #393939;
931
+ }
932
+ .studio-token-value:has(.studio-size-presets) {
933
+ gap: 3px;
934
+ }
935
+ .studio-type-fields .studio-token-value:has(.studio-size-presets) input {
936
+ padding-right: 5px;
937
+ }
938
+ .studio-type-fields .studio-token-value:has(.studio-size-presets) button {
939
+ position: static;
940
+ width: 20px;
941
+ }
942
+
943
+ .studio-token-input {
944
+ position: relative;
945
+ display: flex;
946
+ flex: 1;
947
+ min-width: 0;
948
+ }
949
+ .studio-token-unit {
950
+ position: absolute;
951
+ right: 7px;
952
+ top: 50%;
953
+ transform: translateY(-50%);
954
+ color: #939393;
955
+ font-size: 11px;
956
+ font-variant-numeric: tabular-nums;
957
+ pointer-events: none;
958
+ }
959
+ .studio-token-value .studio-token-input:has(.studio-token-unit) input {
960
+ padding-right: 32px;
961
+ }
962
+ /* Compact text-style fields keep their reset button inside the input, so the unit sits to its left. */
963
+ .studio-type-fields .studio-token-value:not(:has(.studio-size-presets)) .studio-token-unit {
964
+ right: 29px;
965
+ }
966
+ .studio-type-fields
967
+ .studio-token-value:not(:has(.studio-size-presets))
968
+ .studio-token-input:has(.studio-token-unit)
969
+ input {
970
+ padding-right: 52px;
971
+ }
972
+
973
+ .studio-group-toggle {
974
+ display: inline-flex;
975
+ align-items: center;
976
+ gap: 4px;
977
+ padding: 0;
978
+ border: 0;
979
+ background: transparent;
980
+ color: inherit;
981
+ font: inherit;
982
+ text-transform: inherit;
983
+ cursor: pointer;
984
+ }
985
+ .studio-group-toggle svg {
986
+ color: #929292;
987
+ transition: transform 0.15s ease;
988
+ }
989
+ .studio-group-toggle[aria-expanded="true"] svg {
990
+ transform: rotate(90deg);
991
+ }
992
+ .studio-group-toggle:focus-visible {
993
+ outline: 2px solid #797979;
994
+ outline-offset: 2px;
995
+ border-radius: 3px;
996
+ }
997
+ .studio-group-changed {
998
+ width: 5px;
999
+ height: 5px;
1000
+ border-radius: 50%;
1001
+ background: #727272;
1002
+ margin-left: 2px;
1003
+ }
1004
+ .studio-token-group.is-collapsed {
1005
+ padding-bottom: 0;
1006
+ }
1007
+
1008
+ /* A text-only action, so the section heading stays one compact line. */
1009
+ .studio-toggle-all {
1010
+ display: inline-flex;
1011
+ align-items: center;
1012
+ gap: 4px;
1013
+ flex-shrink: 0;
1014
+ padding: 2px 0;
1015
+ border: 0;
1016
+ border-radius: 4px;
1017
+ background: transparent;
1018
+ color: #6a6a6a;
1019
+ font-size: 11px;
1020
+ line-height: 1;
1021
+ cursor: pointer;
1022
+ }
1023
+ .studio-toggle-all:hover:not(:disabled) {
1024
+ color: #393939;
1025
+ text-decoration: underline;
1026
+ text-underline-offset: 2px;
1027
+ }
1028
+ .studio-toggle-all:disabled {
1029
+ opacity: 0.5;
1030
+ cursor: default;
1031
+ }
1032
+ .studio-toggle-all:focus-visible {
1033
+ outline: 2px solid #797979;
1034
+ outline-offset: 2px;
1035
+ }
1036
+ .studio-token-list:not(.studio-token-list-inline, .studio-token-list-rows) .studio-token-group.is-collapsed {
1037
+ border-inline: 0;
1038
+ border-bottom: 0;
1039
+ border-radius: 0;
1040
+ padding-inline: 0;
1041
+ }
1042
+
1043
+ /* Table rows: label | value (+ swatch/unit) | presets | reset, divided by shared hairlines. */
1044
+ .studio-token-list-inline .studio-token-group .studio-token {
1045
+ align-items: stretch;
1046
+ gap: 0;
1047
+ padding-block: 0;
1048
+ padding-right: 0;
1049
+ min-height: 32px;
1050
+ border-bottom-color: var(--studio-cell-line);
1051
+ }
1052
+ .studio-token-list-inline .studio-token-group .studio-token:hover {
1053
+ background: #fbfbfb;
1054
+ }
1055
+ .studio-token-list-inline .studio-token-group > div > .studio-token:last-child {
1056
+ border-bottom: 1px solid var(--studio-cell-line);
1057
+ }
1058
+ .studio-token-list-inline .studio-token-group .studio-token label {
1059
+ display: flex;
1060
+ align-items: center;
1061
+ padding: 6px 12px 6px 0;
1062
+ }
1063
+ .studio-token-list-inline .studio-token-group .studio-token-value {
1064
+ gap: 0;
1065
+ align-items: stretch;
1066
+ border-left: 1px solid var(--studio-cell-line);
1067
+ }
1068
+ .studio-token-list-inline .studio-token-group .studio-token-value > * + * {
1069
+ border-left: 1px solid var(--studio-cell-line);
1070
+ }
1071
+ .studio-token-list-inline .studio-token-group .studio-token-value input:not([type="color"]) {
1072
+ height: 100%;
1073
+ min-height: 32px;
1074
+ padding: 0 8px;
1075
+ border: 0;
1076
+ border-radius: 0;
1077
+ background: transparent;
1078
+ }
1079
+ .studio-token-list-inline .studio-token-group .studio-token-value input[aria-invalid="true"] {
1080
+ background: #fdf1ef;
1081
+ box-shadow: inset 0 0 0 1px #c34839;
1082
+ }
1083
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"] {
1084
+ align-self: center;
1085
+ width: 32px;
1086
+ height: 32px;
1087
+ padding: 8px;
1088
+ border: 0;
1089
+ border-radius: 0;
1090
+ background: transparent;
1091
+ cursor: pointer;
1092
+ }
1093
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-webkit-color-swatch-wrapper {
1094
+ padding: 0;
1095
+ }
1096
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-webkit-color-swatch {
1097
+ border: 1px solid #dddddd;
1098
+ border-radius: 3px;
1099
+ }
1100
+ .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-moz-color-swatch {
1101
+ border: 1px solid #dddddd;
1102
+ border-radius: 3px;
1103
+ }
1104
+ .studio-token-list-inline .studio-token-group .studio-palette-swatch {
1105
+ align-self: center;
1106
+ margin: 0 7px;
1107
+ }
1108
+ .studio-token-list-inline .studio-token-group .studio-palette-trigger {
1109
+ min-height: 32px;
1110
+ }
1111
+ .studio-token-list-inline .studio-token-group .studio-size-presets {
1112
+ width: 28px;
1113
+ height: auto;
1114
+ border: 0;
1115
+ border-radius: 0;
1116
+ /* Only the color: the chevron icon is the background image. */
1117
+ background-color: transparent;
1118
+ }
1119
+ .studio-token-list-inline .studio-token-group .studio-token-value .studio-size-presets {
1120
+ border-left: 1px solid var(--studio-cell-line);
1121
+ }
1122
+ .studio-token-list-inline .studio-token-group .studio-token-value > button {
1123
+ width: 32px;
1124
+ height: auto;
1125
+ border-radius: 0;
1126
+ }
1127
+ .studio-token-list-inline .studio-token-group .studio-token-value :is(input, select, button):focus-visible {
1128
+ outline-offset: -2px;
1129
+ }
1130
+ .studio-token-list-inline .studio-token-group .studio-error {
1131
+ margin: 0;
1132
+ padding: 6px 8px;
1133
+ border-left: 1px solid var(--studio-cell-line);
1134
+ }
1135
+
1136
+ /* Component gallery */
1137
+ .studio-sample {
1138
+ position: relative;
1139
+ }
1140
+ .studio-gallery-loading {
1141
+ margin: 0;
1142
+ padding: 24px;
1143
+ color: #8d8d8d;
1144
+ font-size: 11px;
1145
+ text-align: center;
1146
+ }
1147
+ .studio-gallery {
1148
+ display: grid;
1149
+ gap: 22px;
1150
+ }
1151
+ .studio-gallery-group h3 {
1152
+ margin: 0 0 8px;
1153
+ font:
1154
+ 600 9px "Inter Variable",
1155
+ Inter,
1156
+ sans-serif;
1157
+ letter-spacing: 1.1px;
1158
+ text-transform: uppercase;
1159
+ color: rgb(var(--surface-default-foreground-base));
1160
+ opacity: 0.8;
1161
+ }
1162
+ .studio-gallery-grid {
1163
+ display: grid;
1164
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
1165
+ gap: 24px 28px;
1166
+ }
1167
+ /* Components float freely in the preview; the whole block is the click target. */
1168
+ .studio-gallery-card {
1169
+ position: relative;
1170
+ display: flex;
1171
+ flex-direction: column;
1172
+ gap: 10px;
1173
+ min-width: 0;
1174
+ padding: 4px 0;
1175
+ }
1176
+ .studio-gallery-card-hit {
1177
+ position: absolute;
1178
+ inset: 0;
1179
+ z-index: 1;
1180
+ padding: 0;
1181
+ border: 0;
1182
+ border-radius: 4px;
1183
+ background: transparent;
1184
+ cursor: pointer;
1185
+ }
1186
+ .studio-gallery-card:hover .studio-gallery-card-title {
1187
+ color: rgb(var(--surface-default-card-foreground-base));
1188
+ }
1189
+ .studio-overlay .studio-gallery-card-hit:focus-visible {
1190
+ outline: 2px solid #797979;
1191
+ outline-offset: 4px;
1192
+ }
1193
+ .studio-gallery-card-title {
1194
+ font:
1195
+ 500 11px "Inter Variable",
1196
+ Inter,
1197
+ sans-serif;
1198
+ color: rgb(var(--surface-default-foreground-base));
1199
+ }
1200
+ .studio-gallery-demo {
1201
+ position: relative;
1202
+ min-width: 0;
1203
+ }
1204
+ .studio-gallery-card .studio-gallery-demo {
1205
+ pointer-events: none;
1206
+ }
1207
+
1208
+ /* Zoomed component */
1209
+ .studio-gallery-zoom {
1210
+ display: flex;
1211
+ flex-direction: column;
1212
+ gap: 14px;
1213
+ animation: studio-zoom-in 0.2s ease-out;
1214
+ }
1215
+ @keyframes studio-zoom-in {
1216
+ from {
1217
+ opacity: 0;
1218
+ }
1219
+ }
1220
+ .studio-gallery-zoom-bar {
1221
+ display: flex;
1222
+ align-items: center;
1223
+ gap: 10px;
1224
+ font:
1225
+ 600 11px "Inter Variable",
1226
+ Inter,
1227
+ sans-serif;
1228
+ color: rgb(var(--surface-default-card-foreground-base));
1229
+ }
1230
+ .studio-gallery-back {
1231
+ display: inline-flex;
1232
+ align-items: center;
1233
+ gap: 5px;
1234
+ padding: 5px 9px;
1235
+ border: 1px solid #e5e5e5;
1236
+ border-radius: 6px;
1237
+ background: #fff;
1238
+ color: #6a6a6a;
1239
+ font:
1240
+ 400 11px "Inter Variable",
1241
+ Inter,
1242
+ sans-serif;
1243
+ cursor: pointer;
1244
+ }
1245
+ .studio-gallery-back:hover {
1246
+ background: #f7f7f7;
1247
+ color: #454545;
1248
+ }
1249
+ .studio-gallery-zoom-stage {
1250
+ display: flex;
1251
+ justify-content: center;
1252
+ padding: 24px 0;
1253
+ }
1254
+
1255
+ /* Inspector */
1256
+ .studio-inspect-stage {
1257
+ position: relative;
1258
+ }
1259
+ .studio-inspect-layer {
1260
+ position: absolute;
1261
+ inset: 0;
1262
+ pointer-events: none;
1263
+ }
1264
+ .studio-inspect-outline {
1265
+ position: absolute;
1266
+ outline: 1px dashed #2f7fd6;
1267
+ outline-offset: 0;
1268
+ }
1269
+ .studio-inspect-region {
1270
+ position: absolute;
1271
+ padding: 0;
1272
+ border: 0;
1273
+ pointer-events: auto;
1274
+ cursor: pointer;
1275
+ opacity: 0.55;
1276
+ transition: opacity 0.1s ease;
1277
+ }
1278
+ .studio-inspect-region:hover,
1279
+ .studio-inspect-region.is-active {
1280
+ opacity: 0.85;
1281
+ }
1282
+ .studio-inspect-region.is-padding {
1283
+ background: #93c47d;
1284
+ }
1285
+ .studio-inspect-region.is-gap {
1286
+ background: repeating-linear-gradient(45deg, #b48ce0 0 3px, #d8c3ef 3px 6px);
1287
+ }
1288
+ .studio-inspect-region.is-radius {
1289
+ background: #f0a35e;
1290
+ border-radius: 50%;
1291
+ }
1292
+ .studio-overlay .studio-inspect-region:focus-visible {
1293
+ outline: 2px solid #1d5fa8;
1294
+ outline-offset: 0;
1295
+ opacity: 0.9;
1296
+ }
1297
+ .studio-inspect-label {
1298
+ position: absolute;
1299
+ z-index: 1;
1300
+ max-width: 220px;
1301
+ padding: 3px 7px;
1302
+ border-radius: 4px;
1303
+ background: #272727;
1304
+ color: #fff;
1305
+ font:
1306
+ 400 11px "Inter Variable",
1307
+ Inter,
1308
+ sans-serif;
1309
+ white-space: nowrap;
1310
+ overflow: hidden;
1311
+ text-overflow: ellipsis;
1312
+ pointer-events: none;
1313
+ }
1314
+ .studio-inspect-label strong {
1315
+ font-weight: 600;
1316
+ text-transform: capitalize;
1317
+ }
1318
+ .studio-inspect-label.is-padding strong {
1319
+ color: #b9e0a5;
1320
+ }
1321
+ .studio-inspect-label.is-gap strong {
1322
+ color: #d8c3ef;
1323
+ }
1324
+ .studio-inspect-label.is-radius strong {
1325
+ color: #f6c08f;
1326
+ }
1327
+ .studio-inspect-hint {
1328
+ margin: 14px 0 0;
1329
+ color: #8d8d8d;
1330
+ font:
1331
+ 400 11px "Inter Variable",
1332
+ Inter,
1333
+ sans-serif;
1334
+ text-align: center;
1335
+ }
1336
+
1337
+ /* Token picked in the inspector */
1338
+ .studio-token.is-highlighted {
1339
+ background: #f1f1f1;
1340
+ box-shadow: inset 3px 0 0 #797979;
1341
+ animation: studio-token-flash 1.2s ease-out;
1342
+ }
1343
+ .studio-token-list-inline .studio-token-group .studio-token.is-highlighted:hover {
1344
+ background: #ececec;
1345
+ }
1346
+ @keyframes studio-token-flash {
1347
+ 0%,
1348
+ 30% {
1349
+ background: #dfdfdf;
1350
+ }
1351
+ }
1352
+ .studio-gallery-card.is-wide {
1353
+ grid-column: 1 / -1;
1354
+ }
1355
+ .studio-gallery-card.is-wide .studio-gallery-demo,
1356
+ .studio-gallery-zoom .studio-gallery-demo {
1357
+ overflow-x: auto;
1358
+ padding-bottom: 2px;
1359
+ }
1360
+
1361
+ .studio-cva-field {
1362
+ display: grid;
1363
+ gap: 4px;
1364
+ margin: 8px 0;
1365
+ }
1366
+ .studio-cva-field > span {
1367
+ font-size: 11px;
1368
+ color: #6a6a6a;
1369
+ overflow-wrap: anywhere;
1370
+ }
1371
+ .studio-cva-field input {
1372
+ width: 100%;
1373
+ min-width: 0;
1374
+ height: 26px;
1375
+ padding: 3px 7px;
1376
+ border: 1px solid #e6e6e6;
1377
+ border-radius: 5px;
1378
+ background: white;
1379
+ color: #414141;
1380
+ font: 11px monospace;
1381
+ }
1382
+ .studio-cva-reset {
1383
+ padding: 5px 9px;
1384
+ border: 1px solid #e6e6e6;
1385
+ border-radius: 5px;
1386
+ background: white;
1387
+ color: #414141;
1388
+ font-size: 12px;
1389
+ }
1390
+
1391
+ .studio-context-preview {
1392
+ padding: 16px;
1393
+ border-radius: 10px;
1394
+ background: rgb(var(--surface-default-background-base));
1395
+ color: rgb(var(--surface-default-card-foreground-base));
1396
+ font-family: var(--font-body);
1397
+ }
1398
+ .studio-context-preview > h3,
1399
+ .studio-context-preview [data-testid="cva-preview"] > h3 {
1400
+ font: 600 14px sans-serif;
1401
+ text-transform: capitalize;
1402
+ margin: 0 0 14px;
1403
+ }
1404
+ .studio-preview-controls {
1405
+ display: grid;
1406
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1407
+ gap: 8px 12px;
1408
+ margin-bottom: 16px;
1409
+ }
1410
+ .studio-preview-controls label {
1411
+ display: flex;
1412
+ align-items: center;
1413
+ justify-content: space-between;
1414
+ gap: 5px;
1415
+ min-width: 0;
1416
+ font: 11px sans-serif;
1417
+ }
1418
+ .studio-preview-controls select {
1419
+ min-width: 0;
1420
+ max-width: 110px;
1421
+ height: 26px;
1422
+ border: 1px solid #e1e1e1;
1423
+ border-radius: 4px;
1424
+ background: white;
1425
+ color: #414141;
1426
+ }
1427
+ .studio-cva-stage {
1428
+ position: relative;
1429
+ contain: layout paint;
1430
+ isolation: isolate;
1431
+ display: grid;
1432
+ align-items: center;
1433
+ justify-items: start;
1434
+ min-height: 180px;
1435
+ padding: 24px;
1436
+ background: rgb(var(--surface-default-card-base));
1437
+ border: 1px solid rgb(var(--border-default-subtle-base));
1438
+ border-radius: 8px;
1439
+ overflow: auto;
1440
+ }
1441
+ .studio-cva-stage > * {
1442
+ max-width: 100%;
1443
+ }
1444
+ .studio-preview-caption {
1445
+ margin-top: 10px;
1446
+ font: 10px/1.5 sans-serif;
1447
+ color: #919191;
1448
+ }
1449
+ .studio-token-samples {
1450
+ display: grid;
1451
+ gap: 18px;
1452
+ }
1453
+ .studio-token-sample > span {
1454
+ display: block;
1455
+ margin-bottom: 7px;
1456
+ font: 11px sans-serif;
1457
+ text-transform: capitalize;
1458
+ }
1459
+ .studio-token-specimen {
1460
+ overflow-wrap: anywhere;
1461
+ }
1462
+
1463
+ /* Shades generator for base palette groups; its group gets top padding so the panel clears the header row. */
1464
+ .studio-token-group > div:has(> .studio-shades) {
1465
+ padding-top: 10px;
1466
+ }
1467
+ .studio-palette-actions {
1468
+ display: flex;
1469
+ gap: 6px;
1470
+ margin-left: auto;
1471
+ }
1472
+ .studio-token-group legend:has(.studio-shades-toggle) {
1473
+ display: flex;
1474
+ align-items: center;
1475
+ width: 100%;
1476
+ box-sizing: border-box;
1477
+ }
1478
+ .studio-shades-toggle {
1479
+ display: inline-flex;
1480
+ align-items: center;
1481
+ gap: 4px;
1482
+ padding: 3px 8px;
1483
+ border: 1px solid #e3e3e3;
1484
+ border-radius: 5px;
1485
+ background: #fff;
1486
+ color: #525252;
1487
+ font-size: 10px;
1488
+ font-weight: 550;
1489
+ text-transform: none;
1490
+ }
1491
+ .studio-shades {
1492
+ display: flex;
1493
+ flex-direction: column;
1494
+ gap: 12px;
1495
+ margin: 0 10px 10px;
1496
+ padding: 10px;
1497
+ border: 1px solid #e3e3e3;
1498
+ border-radius: 8px;
1499
+ background: #fbfbfb;
1500
+ }
1501
+ .studio-shades-input {
1502
+ display: flex;
1503
+ align-items: center;
1504
+ gap: 8px;
1505
+ }
1506
+ .studio-shades-input label {
1507
+ font-size: 11px;
1508
+ font-weight: 550;
1509
+ white-space: nowrap;
1510
+ }
1511
+ .studio-shades-input .studio-token-input {
1512
+ align-items: center;
1513
+ gap: 4px;
1514
+ max-width: 140px;
1515
+ padding-left: 8px;
1516
+ border: 1px solid #e5e5e5;
1517
+ border-radius: 5px;
1518
+ background: #fff;
1519
+ color: #939393;
1520
+ }
1521
+ .studio-shades-input .studio-token-input input {
1522
+ width: 100%;
1523
+ border: 0;
1524
+ padding: 6px 6px 6px 0;
1525
+ outline: none;
1526
+ font-family: ui-monospace, monospace;
1527
+ text-transform: uppercase;
1528
+ }
1529
+ /* Compact actions share the base color row to save vertical space. */
1530
+ .studio-shades-actions {
1531
+ display: flex;
1532
+ gap: 6px;
1533
+ margin-left: auto;
1534
+ }
1535
+ .studio-shades-actions button {
1536
+ padding: 4px 8px;
1537
+ border-radius: 5px;
1538
+ font-size: 10px;
1539
+ line-height: 1.3;
1540
+ }
1541
+ .studio-shades-actions button:not(.studio-primary) {
1542
+ border: 1px solid #e7e7e7;
1543
+ background: #fff;
1544
+ color: #717171;
1545
+ }
1546
+ .studio-shades-actions .studio-primary:disabled {
1547
+ opacity: 0.5;
1548
+ }
1549
+ /* Global rounding stepper at the top of the Radius section. */
1550
+ .studio-rounding {
1551
+ display: flex;
1552
+ align-items: center;
1553
+ gap: 10px;
1554
+ margin-bottom: 12px;
1555
+ padding: 10px;
1556
+ border: 1px solid #e3e3e3;
1557
+ border-radius: 8px;
1558
+ background: #fbfbfb;
1559
+ }
1560
+ .studio-rounding-preview {
1561
+ flex: none;
1562
+ width: 22px;
1563
+ height: 22px;
1564
+ border-top: 2px solid #393939;
1565
+ border-left: 2px solid #393939;
1566
+ box-sizing: border-box;
1567
+ transition: border-radius 150ms ease;
1568
+ }
1569
+ .studio-scale-preview-spacing {
1570
+ display: flex;
1571
+ justify-content: center;
1572
+ border: 0;
1573
+ transition: gap 150ms ease;
1574
+ }
1575
+ .studio-scale-preview-spacing i {
1576
+ width: 6px;
1577
+ border-radius: 2px;
1578
+ background: #393939;
1579
+ }
1580
+ .studio-scale-preview-sizing {
1581
+ width: 16px;
1582
+ height: 16px;
1583
+ margin: 3px;
1584
+ border: 2px solid #393939;
1585
+ border-radius: 3px;
1586
+ transition: scale 150ms ease;
1587
+ }
1588
+ .studio-scale-preview-font-size {
1589
+ display: flex;
1590
+ align-items: center;
1591
+ justify-content: center;
1592
+ border: 0;
1593
+ color: #393939;
1594
+ font-weight: 600;
1595
+ line-height: 1;
1596
+ transition: font-size 150ms ease;
1597
+ }
1598
+ .studio-rounding-text {
1599
+ display: flex;
1600
+ flex-direction: column;
1601
+ gap: 2px;
1602
+ min-width: 0;
1603
+ }
1604
+ .studio-rounding-text strong {
1605
+ font-size: 11px;
1606
+ font-weight: 550;
1607
+ }
1608
+ .studio-rounding-text span {
1609
+ color: #717171;
1610
+ font-size: 10px;
1611
+ }
1612
+ .studio-rounding-stepper {
1613
+ display: flex;
1614
+ align-items: center;
1615
+ margin-left: auto;
1616
+ border: 1px solid #e5e5e5;
1617
+ border-radius: 6px;
1618
+ background: #fff;
1619
+ }
1620
+ .studio-rounding-stepper button {
1621
+ display: inline-flex;
1622
+ align-items: center;
1623
+ justify-content: center;
1624
+ width: 26px;
1625
+ height: 26px;
1626
+ padding: 0;
1627
+ border: 0;
1628
+ background: none;
1629
+ color: #525252;
1630
+ }
1631
+ .studio-rounding-stepper button:disabled {
1632
+ opacity: 0.35;
1633
+ cursor: default;
1634
+ }
1635
+ .studio-rounding-stepper output {
1636
+ min-width: 56px;
1637
+ font-size: 11px;
1638
+ font-weight: 550;
1639
+ text-align: center;
1640
+ font-variant-numeric: tabular-nums;
1641
+ }
1642
+ .studio-token-list-inline .studio-token-group .studio-palette-trigger .studio-palette-swatch {
1643
+ margin: 0;
1644
+ }
1645
+
1646
+ /* Translucent colors: a half solid, half checkerboard swatch, hex value and opacity, as in Figma. */
1647
+ .studio-alpha-color {
1648
+ display: flex;
1649
+ flex: 1;
1650
+ align-items: center;
1651
+ gap: 7px;
1652
+ min-width: 0;
1653
+ padding-left: 7px;
1654
+ }
1655
+ .studio-alpha-swatch {
1656
+ position: relative;
1657
+ flex-shrink: 0;
1658
+ width: 18px;
1659
+ height: 18px;
1660
+ overflow: hidden;
1661
+ border: 1px solid #dadada;
1662
+ border-radius: 3px;
1663
+ background:
1664
+ linear-gradient(90deg, var(--swatch-solid) 50%, transparent 50%),
1665
+ linear-gradient(var(--swatch-color), var(--swatch-color)),
1666
+ repeating-conic-gradient(#cdcdcd 0 25%, #fff 0 50%) 0 0 / 8px 8px;
1667
+ }
1668
+ .studio-alpha-swatch input[type="color"] {
1669
+ position: absolute;
1670
+ inset: 0;
1671
+ width: 100%;
1672
+ height: 100%;
1673
+ padding: 0;
1674
+ border: 0;
1675
+ opacity: 0;
1676
+ cursor: pointer;
1677
+ }
1678
+ .studio-alpha-color .studio-alpha-hex {
1679
+ flex: 1;
1680
+ min-width: 0;
1681
+ padding: 6px 0;
1682
+ border: 0;
1683
+ outline: none;
1684
+ background: transparent;
1685
+ font: inherit;
1686
+ font-size: 11px;
1687
+ text-transform: uppercase;
1688
+ }
1689
+ .studio-alpha-opacity {
1690
+ display: flex;
1691
+ flex-shrink: 0;
1692
+ align-items: center;
1693
+ width: 52px;
1694
+ margin-right: 4px;
1695
+ border-radius: 4px;
1696
+ background: #f4f4f4;
1697
+ }
1698
+ .studio-alpha-opacity input {
1699
+ width: 100%;
1700
+ padding: 3px 6px;
1701
+ border: 0;
1702
+ outline: none;
1703
+ background: transparent;
1704
+ font: inherit;
1705
+ font-size: 11px;
1706
+ text-align: right;
1707
+ }
1708
+ .studio-alpha-opacity:focus-within,
1709
+ .studio-alpha-color .studio-alpha-hex:focus-visible {
1710
+ box-shadow: 0 0 0 2px #79797955;
1711
+ }
1712
+
1713
+ /* Layout preview: product cards built only from theme tokens, at the top of the gallery. */
1714
+ .studio-layout-heading {
1715
+ display: flex;
1716
+ align-items: center;
1717
+ justify-content: space-between;
1718
+ gap: 8px;
1719
+ margin-bottom: 8px;
1720
+ }
1721
+ .studio-layout-heading h3 {
1722
+ margin: 0;
1723
+ }
1724
+ /* Full screen layouts fill the window at an app's real width, still inside the preview so draft tokens apply. */
1725
+ .studio-layout-fullscreen {
1726
+ position: fixed;
1727
+ inset: 0;
1728
+ z-index: 1000;
1729
+ display: flex;
1730
+ flex-direction: column;
1731
+ overflow: auto;
1732
+ background: var(--color-surface-default-background);
1733
+ color: var(--color-surface-default-foreground);
1734
+ animation: studio-zoom-in 0.2s ease-out;
1735
+ }
1736
+ .studio-layout-fullscreen-bar {
1737
+ position: sticky;
1738
+ top: 0;
1739
+ z-index: 1;
1740
+ display: flex;
1741
+ align-items: center;
1742
+ justify-content: space-between;
1743
+ gap: 12px;
1744
+ padding: 10px 24px;
1745
+ border-bottom: 1px solid #e8e8e8;
1746
+ background: #fafafa;
1747
+ color: #393939;
1748
+ font:
1749
+ 600 11px "Inter Variable",
1750
+ Inter,
1751
+ sans-serif;
1752
+ }
1753
+ .studio-layout-fullscreen-stage {
1754
+ width: 100%;
1755
+ max-width: 1200px;
1756
+ margin: 0 auto;
1757
+ padding: 32px 24px;
1758
+ box-sizing: border-box;
1759
+ }
1760
+ /* Cards share a row but grow to fit their content, so larger buttons or text widen the card instead of overflowing. */
1761
+ .studio-layout-grid {
1762
+ display: flex;
1763
+ flex-wrap: wrap;
1764
+ gap: 14px;
1765
+ }
1766
+ .studio-layout-card {
1767
+ flex: 1 1 190px;
1768
+ min-width: min-content;
1769
+ box-sizing: border-box;
1770
+ display: flex;
1771
+ flex-direction: column;
1772
+ gap: 10px;
1773
+ min-height: 270px;
1774
+ padding: 16px;
1775
+ border-radius: var(--radius-modal-rounding-default);
1776
+ font-family: var(--font-body);
1777
+ font-size: var(--text-small);
1778
+ line-height: var(--text-small--line-height);
1779
+ }
1780
+ .studio-layout-card p,
1781
+ .studio-layout-card h4,
1782
+ .studio-layout-card ul {
1783
+ margin: 0;
1784
+ }
1785
+ .studio-layout-label {
1786
+ font-weight: 600;
1787
+ opacity: 0.7;
1788
+ }
1789
+ .studio-layout-card h4,
1790
+ .studio-layout-amount,
1791
+ .studio-layout-price {
1792
+ font-family: var(--font-titles);
1793
+ font-size: var(--text-h4);
1794
+ line-height: var(--text-h4--line-height);
1795
+ letter-spacing: var(--text-h4--letter-spacing);
1796
+ font-weight: 600;
1797
+ }
1798
+ .studio-layout-card.is-soft {
1799
+ border: 1px solid var(--color-border-default-subtle);
1800
+ background: var(--color-surface-default-background);
1801
+ color: var(--color-surface-default-card-foreground);
1802
+ }
1803
+ .studio-layout-tags {
1804
+ display: flex;
1805
+ flex-wrap: wrap;
1806
+ gap: 6px;
1807
+ }
1808
+ .studio-layout-progress {
1809
+ display: grid;
1810
+ gap: 6px;
1811
+ margin-top: auto;
1812
+ }
1813
+ .studio-layout-footer {
1814
+ display: flex;
1815
+ align-items: center;
1816
+ justify-content: space-between;
1817
+ gap: 8px;
1818
+ }
1819
+ .studio-layout-avatars {
1820
+ display: flex;
1821
+ }
1822
+ .studio-layout-avatars span {
1823
+ display: grid;
1824
+ place-items: center;
1825
+ width: 26px;
1826
+ height: 26px;
1827
+ margin-left: -6px;
1828
+ border: 2px solid var(--color-surface-default-background);
1829
+ border-radius: var(--radius-avatar-rounding-default);
1830
+ background: var(--color-interactive-subtle-secondary-background);
1831
+ color: var(--color-interactive-subtle-secondary-foreground);
1832
+ font-size: 9px;
1833
+ font-weight: 600;
1834
+ }
1835
+ .studio-layout-avatars span:first-child {
1836
+ margin-left: 0;
1837
+ }
1838
+ .studio-layout-avatars span:nth-child(2) {
1839
+ background: var(--color-interactive-primary-background);
1840
+ color: var(--color-interactive-primary-foreground);
1841
+ }
1842
+ .studio-layout-card.is-stats {
1843
+ gap: 2px;
1844
+ border: 1px solid var(--color-border-default-subtle);
1845
+ background: var(--color-surface-default-card);
1846
+ color: var(--color-surface-default-card-foreground);
1847
+ }
1848
+ .studio-layout-amount {
1849
+ margin-top: 4px;
1850
+ font-size: var(--text-h3);
1851
+ line-height: var(--text-h3--line-height);
1852
+ }
1853
+ .studio-layout-trend {
1854
+ color: var(--color-surface-success-base);
1855
+ font-weight: 600;
1856
+ }
1857
+ .studio-layout-chart {
1858
+ display: flex;
1859
+ flex: 1;
1860
+ gap: 6px;
1861
+ margin-top: 14px;
1862
+ }
1863
+ .studio-layout-bar {
1864
+ display: flex;
1865
+ flex: 1;
1866
+ flex-direction: column;
1867
+ justify-content: flex-end;
1868
+ align-items: center;
1869
+ gap: 6px;
1870
+ }
1871
+ .studio-layout-bar > span:first-child {
1872
+ width: 100%;
1873
+ max-width: 20px;
1874
+ border-radius: var(--radius-global-rounding-s) var(--radius-global-rounding-s) 0 0;
1875
+ background: color-mix(in srgb, var(--color-interactive-secondary-background) 30%, transparent);
1876
+ }
1877
+ .studio-layout-bar.is-today > span:first-child {
1878
+ background: var(--color-interactive-primary-background);
1879
+ }
1880
+ .studio-layout-day {
1881
+ opacity: 0.6;
1882
+ }
1883
+ /* The highlighted ("recommended") plan: a card outlined in the primary color, which reads in light and dark mode. */
1884
+ .studio-layout-card.is-bold {
1885
+ border: 2px solid var(--color-interactive-primary-background);
1886
+ background: var(--color-surface-default-card);
1887
+ color: var(--color-surface-default-card-foreground);
1888
+ }
1889
+ .studio-layout-price span {
1890
+ margin-left: 2px;
1891
+ font-family: var(--font-body);
1892
+ font-size: var(--text-small);
1893
+ font-weight: 400;
1894
+ opacity: 0.7;
1895
+ }
1896
+ .studio-layout-features {
1897
+ display: grid;
1898
+ gap: 8px;
1899
+ margin-top: 4px;
1900
+ padding: 0;
1901
+ list-style: none;
1902
+ }
1903
+ .studio-layout-features li {
1904
+ display: flex;
1905
+ align-items: center;
1906
+ gap: 8px;
1907
+ }
1908
+ .studio-layout-features svg {
1909
+ flex-shrink: 0;
1910
+ color: var(--color-interactive-primary-background);
1911
+ }
1912
+ .studio-layout-card .studio-layout-cta {
1913
+ margin-top: auto;
1914
+ }
1915
+ .studio-layout-card.is-form {
1916
+ flex-basis: 100%;
1917
+ container-type: inline-size;
1918
+ min-height: 0;
1919
+ gap: 14px;
1920
+ border: 1px solid var(--color-border-default-subtle);
1921
+ background: var(--color-surface-default-card);
1922
+ color: var(--color-surface-default-card-foreground);
1923
+ }
1924
+ .studio-layout-card.is-invite {
1925
+ flex-basis: 100%;
1926
+ min-height: 0;
1927
+ gap: 14px;
1928
+ border: 1px solid var(--color-border-default-subtle);
1929
+ background: var(--color-surface-default-card);
1930
+ color: var(--color-surface-default-card-foreground);
1931
+ }
1932
+ /* The submit button sits on the input's baseline row, so mismatched control heights show at a glance. */
1933
+ .studio-layout-invite {
1934
+ display: flex;
1935
+ flex-wrap: wrap;
1936
+ align-items: flex-end;
1937
+ gap: 8px;
1938
+ }
1939
+ .studio-layout-invite > :first-child {
1940
+ flex: 1 1 200px;
1941
+ }
1942
+ .studio-layout-invite-actions {
1943
+ display: flex;
1944
+ flex-wrap: wrap;
1945
+ gap: 8px;
1946
+ }
1947
+ .studio-layout-card.is-settings {
1948
+ flex-basis: 100%;
1949
+ container-type: inline-size;
1950
+ min-height: 0;
1951
+ gap: 14px;
1952
+ border: 1px solid var(--color-border-default-subtle);
1953
+ background: var(--color-surface-default-card);
1954
+ color: var(--color-surface-default-card-foreground);
1955
+ }
1956
+ /* Top navigation spans the card edge to edge, above the breadcrumbs. */
1957
+ .studio-layout-nav {
1958
+ display: flex;
1959
+ flex-wrap: wrap;
1960
+ align-items: center;
1961
+ gap: 8px 16px;
1962
+ margin: -16px -16px 0;
1963
+ padding: 10px 16px;
1964
+ border-bottom: 1px solid var(--color-border-default-subtle);
1965
+ }
1966
+ .studio-layout-brand {
1967
+ display: inline-flex;
1968
+ align-items: center;
1969
+ gap: 8px;
1970
+ font-family: var(--font-titles);
1971
+ font-size: var(--text-lead);
1972
+ font-weight: 700;
1973
+ }
1974
+ .studio-layout-brand > span {
1975
+ display: grid;
1976
+ place-items: center;
1977
+ width: 26px;
1978
+ height: 26px;
1979
+ border-radius: var(--radius-global-rounding-s);
1980
+ background: var(--color-interactive-primary-background);
1981
+ color: var(--color-interactive-primary-foreground);
1982
+ font-size: var(--text-small);
1983
+ }
1984
+ .studio-layout-nav-links {
1985
+ display: flex;
1986
+ flex-wrap: wrap;
1987
+ gap: 4px;
1988
+ }
1989
+ .studio-layout-nav-actions {
1990
+ display: flex;
1991
+ align-items: center;
1992
+ gap: 8px;
1993
+ margin-left: auto;
1994
+ }
1995
+ .studio-layout-nav-actions > :first-child {
1996
+ width: 200px;
1997
+ }
1998
+ .studio-layout-nav-avatar {
1999
+ display: grid;
2000
+ place-items: center;
2001
+ width: 32px;
2002
+ height: 32px;
2003
+ border-radius: var(--radius-avatar-rounding-default);
2004
+ background: var(--color-interactive-subtle-secondary-background);
2005
+ color: var(--color-interactive-subtle-secondary-foreground);
2006
+ font-size: var(--text-small);
2007
+ font-weight: 600;
2008
+ }
2009
+ /* Menu beside the form, stacking above it in narrow previews. */
2010
+ .studio-layout-settings {
2011
+ display: grid;
2012
+ grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
2013
+ gap: 24px;
2014
+ align-items: start;
2015
+ }
2016
+ @container (max-width: 560px) {
2017
+ .studio-layout-settings {
2018
+ grid-template-columns: minmax(0, 1fr);
2019
+ }
2020
+ }
2021
+ .studio-layout-menu {
2022
+ display: flex;
2023
+ flex-direction: column;
2024
+ overflow: hidden;
2025
+ border: 1px solid var(--color-border-default-subtle);
2026
+ border-radius: var(--radius-list-rounding-dropdown);
2027
+ }
2028
+ .studio-layout-menu button {
2029
+ width: 100%;
2030
+ font: inherit;
2031
+ text-align: left;
2032
+ }
2033
+ /* The current page uses the menu's highlighted (open) item colors. */
2034
+ .studio-layout-menu button[aria-current="page"] {
2035
+ background: var(--color-interactive-primary-background);
2036
+ color: var(--color-interactive-primary-foreground);
2037
+ }
2038
+ .studio-layout-menu-label {
2039
+ display: inline-flex;
2040
+ align-items: center;
2041
+ gap: inherit;
2042
+ }
2043
+ .studio-layout-muted {
2044
+ margin-top: 2px;
2045
+ opacity: 0.7;
2046
+ }
2047
+ .studio-layout-form {
2048
+ display: grid;
2049
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2050
+ gap: 14px 16px;
2051
+ align-items: start;
2052
+ }
2053
+ .studio-layout-form-wide {
2054
+ grid-column: 1 / -1;
2055
+ }
2056
+ @container (max-width: 440px) {
2057
+ .studio-layout-form {
2058
+ grid-template-columns: minmax(0, 1fr);
2059
+ }
2060
+ }
2061
+ .studio-layout-form-footer {
2062
+ display: flex;
2063
+ flex-wrap: wrap;
2064
+ grid-column: 1 / -1;
2065
+ align-items: center;
2066
+ justify-content: space-between;
2067
+ gap: 12px;
2068
+ }
2069
+ .studio-layout-form-actions {
2070
+ display: flex;
2071
+ gap: 8px;
2072
+ }
2073
+
2074
+ .studio-token-list-rows .studio-type-fields {
2075
+ padding: 12px var(--studio-editor-pad) 14px;
2076
+ border-bottom: 1px solid var(--studio-cell-line);
2077
+ }
2078
+ .studio-shades-toggle:disabled {
2079
+ opacity: 0.45;
2080
+ cursor: default;
2081
+ }
2082
+ /* Icon-only reset, last in the palette header row. */
2083
+ .studio-palette-reset {
2084
+ display: grid;
2085
+ place-items: center;
2086
+ /* Same width as the row reset column, and flush right so the icons line up. */
2087
+ width: 32px;
2088
+ margin-right: calc(-1 * var(--studio-editor-pad));
2089
+ height: 22px;
2090
+ padding: 0;
2091
+ border: 0;
2092
+ border-radius: 4px;
2093
+ background: transparent;
2094
+ color: #828282;
2095
+ cursor: pointer;
2096
+ }
2097
+ .studio-palette-reset:hover:not(:disabled) {
2098
+ color: #393939;
2099
+ }
2100
+ .studio-palette-reset:disabled {
2101
+ opacity: 0.4;
2102
+ cursor: default;
2103
+ }
2104
+ .studio-palette-reset:focus-visible {
2105
+ outline: 2px solid #797979;
2106
+ outline-offset: 1px;
2107
+ }
2108
+
2109
+ /* Font roles: picker cards for heading and body fonts, above the font families they choose from. */
2110
+ .studio-font-roles {
2111
+ display: grid;
2112
+ gap: 8px;
2113
+ padding: 12px 0 4px;
2114
+ }
2115
+ .studio-font-role {
2116
+ position: relative;
2117
+ display: flex;
2118
+ align-items: center;
2119
+ gap: 12px;
2120
+ padding: 10px 14px;
2121
+ border: 1px solid #e5e5e5;
2122
+ border-radius: 10px;
2123
+ background: #fff;
2124
+ }
2125
+ .studio-font-role:hover {
2126
+ border-color: #d0d0d0;
2127
+ background: #fafafa;
2128
+ }
2129
+ .studio-font-role:has(select:focus-visible) {
2130
+ outline: 2px solid #797979;
2131
+ outline-offset: 2px;
2132
+ }
2133
+ .studio-font-role-text {
2134
+ display: flex;
2135
+ flex: 1;
2136
+ flex-direction: column;
2137
+ gap: 2px;
2138
+ min-width: 0;
2139
+ }
2140
+ .studio-font-role-text span {
2141
+ color: #8e8e8e;
2142
+ font-size: 10px;
2143
+ }
2144
+ .studio-font-role-text strong {
2145
+ overflow: hidden;
2146
+ color: #2f2f2f;
2147
+ font-size: 13px;
2148
+ font-weight: 600;
2149
+ text-overflow: ellipsis;
2150
+ white-space: nowrap;
2151
+ }
2152
+ .studio-font-role-sample {
2153
+ color: #2f2f2f;
2154
+ font-size: 20px;
2155
+ line-height: 1;
2156
+ }
2157
+ .studio-font-role-select {
2158
+ position: absolute;
2159
+ inset: 0;
2160
+ width: 100%;
2161
+ opacity: 0;
2162
+ cursor: pointer;
2163
+ }
2164
+ /* The reset sits above the select so it stays clickable. */
2165
+ .studio-font-role-reset {
2166
+ position: relative;
2167
+ z-index: 1;
2168
+ display: grid;
2169
+ place-items: center;
2170
+ width: 24px;
2171
+ height: 24px;
2172
+ padding: 0;
2173
+ border: 0;
2174
+ border-radius: 4px;
2175
+ background: transparent;
2176
+ color: #7a7a7a;
2177
+ cursor: pointer;
2178
+ }
2179
+ .studio-font-role-reset:hover {
2180
+ background: #efefef;
2181
+ }
2182
+ .studio-font-divider {
2183
+ margin: 16px 0 4px;
2184
+ border: 0;
2185
+ border-top: 1px solid #e5e5e5;
2186
+ }
2187
+ .studio-font-upload {
2188
+ display: flex;
2189
+ flex-wrap: wrap;
2190
+ align-items: center;
2191
+ gap: 6px 10px;
2192
+ padding-top: 8px;
2193
+ }
2194
+ .studio-font-upload-note {
2195
+ flex: 1 1 200px;
2196
+ margin: 0;
2197
+ color: #8e8e8e;
2198
+ font-size: 10px;
2199
+ line-height: 1.5;
2200
+ }
2201
+
2202
+ /* Presets: one row per preset with a palette strip, its description and an apply button. */
2203
+ .studio-presets {
2204
+ display: grid;
2205
+ gap: 8px;
2206
+ }
2207
+ .studio-presets-intro {
2208
+ margin: 0 0 4px;
2209
+ color: #8e8e8e;
2210
+ font-size: 11px;
2211
+ line-height: 1.5;
2212
+ }
2213
+ .studio-preset {
2214
+ display: flex;
2215
+ align-items: center;
2216
+ gap: 12px;
2217
+ padding: 12px 14px;
2218
+ border: 1px solid #e5e5e5;
2219
+ border-radius: 10px;
2220
+ background: #fff;
2221
+ }
2222
+ .studio-preset.is-active {
2223
+ border-color: #b9b9b9;
2224
+ background: #fafafa;
2225
+ }
2226
+ .studio-preset-swatches {
2227
+ display: flex;
2228
+ flex-shrink: 0;
2229
+ overflow: hidden;
2230
+ border: 1px solid #e5e5e5;
2231
+ border-radius: 6px;
2232
+ }
2233
+ .studio-preset-swatches i {
2234
+ width: 12px;
2235
+ height: 28px;
2236
+ }
2237
+ .studio-preset-text {
2238
+ display: flex;
2239
+ flex: 1;
2240
+ flex-direction: column;
2241
+ gap: 2px;
2242
+ min-width: 0;
2243
+ }
2244
+ .studio-preset-text strong {
2245
+ color: #2f2f2f;
2246
+ font-size: 12px;
2247
+ font-weight: 600;
2248
+ }
2249
+ .studio-preset-text span {
2250
+ color: #8e8e8e;
2251
+ font-size: 10px;
2252
+ line-height: 1.4;
2253
+ }
2254
+ .studio-preset button {
2255
+ flex-shrink: 0;
2256
+ padding: 7px 11px;
2257
+ border: 1px solid #e5e5e5;
2258
+ border-radius: 6px;
2259
+ background: #fff;
2260
+ color: #707070;
2261
+ font-size: 11px;
2262
+ }
2263
+ .studio-preset button:disabled {
2264
+ cursor: default;
2265
+ }
2266
+
2267
+ /* Full app screens (dashboard, sign-in) span the preview like the settings page. */
2268
+ .studio-layout-card.is-screen {
2269
+ flex-basis: 100%;
2270
+ container-type: inline-size;
2271
+ min-height: 0;
2272
+ gap: 16px;
2273
+ border: 1px solid var(--color-border-default-subtle);
2274
+ background: var(--color-surface-default-card);
2275
+ color: var(--color-surface-default-card-foreground);
2276
+ }
2277
+ .studio-layout-screen-heading {
2278
+ display: flex;
2279
+ flex-wrap: wrap;
2280
+ align-items: flex-end;
2281
+ justify-content: space-between;
2282
+ gap: 12px;
2283
+ }
2284
+ .studio-layout-stats {
2285
+ display: grid;
2286
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2287
+ gap: 12px;
2288
+ }
2289
+ .studio-layout-stat {
2290
+ display: flex;
2291
+ flex-direction: column;
2292
+ gap: 4px;
2293
+ padding: 14px;
2294
+ border: 1px solid var(--color-border-default-subtle);
2295
+ border-radius: var(--radius-global-rounding-m);
2296
+ }
2297
+ .studio-layout-card.is-login {
2298
+ align-items: center;
2299
+ padding: 40px 16px;
2300
+ background: var(--color-surface-default-background);
2301
+ }
2302
+ .studio-layout-login {
2303
+ display: flex;
2304
+ flex-direction: column;
2305
+ gap: 14px;
2306
+ width: 100%;
2307
+ max-width: 360px;
2308
+ padding: 28px;
2309
+ box-sizing: border-box;
2310
+ border: 1px solid var(--color-border-default-subtle);
2311
+ border-radius: var(--radius-modal-rounding-default);
2312
+ background: var(--color-surface-default-card);
2313
+ }
2314
+ .studio-layout-login-row {
2315
+ display: flex;
2316
+ flex-wrap: wrap;
2317
+ align-items: center;
2318
+ justify-content: space-between;
2319
+ gap: 8px;
2320
+ }
2321
+ .studio-layout-login-divider {
2322
+ display: flex;
2323
+ align-items: center;
2324
+ gap: 10px;
2325
+ opacity: 0.6;
2326
+ }
2327
+ .studio-layout-login-divider::before,
2328
+ .studio-layout-login-divider::after {
2329
+ content: "";
2330
+ flex: 1;
2331
+ border-top: 1px solid var(--color-border-default-subtle);
2332
+ }
2333
+ .studio-layout-login-footer {
2334
+ text-align: center;
2335
+ }
2336
+
2337
+ /* The modal card holds a trigger; the dialog itself is portaled into the card so it inherits the preview's tokens. */
2338
+ .studio-layout-card.is-modal {
2339
+ min-height: 0;
2340
+ justify-content: space-between;
2341
+ border: 1px solid var(--color-border-default-subtle);
2342
+ background: var(--color-surface-default-card);
2343
+ color: var(--color-surface-default-card-foreground);
2344
+ }
2345
+ .studio-layout-modal {
2346
+ display: flex;
2347
+ flex-direction: column;
2348
+ gap: 14px;
2349
+ width: min(420px, 100%);
2350
+ font-family: var(--font-body);
2351
+ }
2352
+ .studio-layout-modal h4 {
2353
+ margin: 0;
2354
+ font-family: var(--font-titles);
2355
+ font-size: var(--text-h4);
2356
+ line-height: var(--text-h4--line-height);
2357
+ }
2358
+ .studio-layout-modal p {
2359
+ margin: 0;
2360
+ }
2361
+ .studio-layout-modal-actions {
2362
+ display: flex;
2363
+ justify-content: flex-end;
2364
+ gap: 8px;
2365
+ }