origam 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/CHANGELOG.md +224 -0
  2. package/README.md +22 -0
  3. package/dist/src/assets/css/tokens/dark.css +318 -0
  4. package/dist/src/assets/css/tokens/light.css +159 -0
  5. package/dist/src/assets/locales/index.js +2 -2
  6. package/dist/src/assets/scss/tokens/_dark.scss +159 -0
  7. package/dist/src/assets/scss/tokens/_light.scss +159 -0
  8. package/dist/src/components/Bracket/OrigamBracket.vue +530 -0
  9. package/dist/src/components/Bracket/OrigamBracketCompetitor.vue +210 -0
  10. package/dist/src/components/Bracket/OrigamBracketMatch.vue +288 -0
  11. package/dist/src/components/Bracket/OrigamBracketRound.vue +150 -0
  12. package/dist/src/components/Bracket/index.cjs +34 -0
  13. package/dist/src/components/Bracket/index.d.ts +4 -0
  14. package/dist/src/components/Bracket/index.js +4 -0
  15. package/dist/src/components/ClientOnly/OrigamClientOnly.vue +28 -0
  16. package/dist/src/components/ClientOnly/index.cjs +13 -0
  17. package/dist/src/components/ClientOnly/index.d.ts +1 -0
  18. package/dist/src/components/ClientOnly/index.js +1 -0
  19. package/dist/src/components/Code/OrigamCode.vue +449 -0
  20. package/dist/src/components/Code/index.cjs +13 -0
  21. package/dist/src/components/Code/index.d.ts +1 -0
  22. package/dist/src/components/Code/index.js +1 -0
  23. package/dist/src/components/ColorPickerField/OrigamColorPickerField.vue +1 -0
  24. package/dist/src/components/CommandPalette/OrigamCommandPalette.vue +614 -0
  25. package/dist/src/components/CommandPalette/index.cjs +13 -0
  26. package/dist/src/components/CommandPalette/index.d.ts +1 -0
  27. package/dist/src/components/CommandPalette/index.js +1 -0
  28. package/dist/src/components/DatePickerField/OrigamDatePickerField.vue +1 -0
  29. package/dist/src/components/Parallax/OrigamParallax.vue +65 -34
  30. package/dist/src/components/Parallax/OrigamParallaxLayer.vue +119 -0
  31. package/dist/src/components/Parallax/index.cjs +7 -0
  32. package/dist/src/components/Parallax/index.d.ts +1 -0
  33. package/dist/src/components/Parallax/index.js +1 -0
  34. package/dist/src/components/PasswordField/OrigamPasswordField.vue +1 -0
  35. package/dist/src/components/Select/OrigamSelect.vue +1 -0
  36. package/dist/src/components/SnackbarStack/OrigamSnackbarStack.vue +457 -0
  37. package/dist/src/components/SnackbarStack/index.cjs +13 -0
  38. package/dist/src/components/SnackbarStack/index.d.ts +1 -0
  39. package/dist/src/components/SnackbarStack/index.js +1 -0
  40. package/dist/src/components/Tabs/OrigamTab.vue +263 -0
  41. package/dist/src/components/Tabs/OrigamTabPanel.vue +112 -0
  42. package/dist/src/components/Tabs/OrigamTabPanels.vue +139 -0
  43. package/dist/src/components/Tabs/OrigamTabs.vue +242 -0
  44. package/dist/src/components/Tabs/index.cjs +34 -0
  45. package/dist/src/components/Tabs/index.d.ts +4 -0
  46. package/dist/src/components/Tabs/index.js +4 -0
  47. package/dist/src/components/TextField/OrigamTextField.vue +75 -5
  48. package/dist/src/components/TextareaField/OrigamRichToolbar.vue +284 -0
  49. package/dist/src/components/TextareaField/OrigamTextareaField.vue +192 -5
  50. package/dist/src/components/TextareaField/index.cjs +7 -0
  51. package/dist/src/components/TextareaField/index.d.ts +1 -0
  52. package/dist/src/components/TextareaField/index.js +1 -0
  53. package/dist/src/components/index.cjs +66 -0
  54. package/dist/src/components/index.d.ts +6 -0
  55. package/dist/src/components/index.js +6 -0
  56. package/dist/src/composables/Code/code.composable.cjs +98 -0
  57. package/dist/src/composables/Code/code.composable.d.ts +10 -0
  58. package/dist/src/composables/Code/code.composable.js +82 -0
  59. package/dist/src/composables/CommandPalette/command.composable.cjs +53 -0
  60. package/dist/src/composables/CommandPalette/command.composable.d.ts +37 -0
  61. package/dist/src/composables/CommandPalette/command.composable.js +46 -0
  62. package/dist/src/composables/Commons/virtual.composable.cjs +1 -0
  63. package/dist/src/composables/Commons/virtual.composable.js +1 -0
  64. package/dist/src/composables/CssSupport/cssSupport.composable.cjs +12 -0
  65. package/dist/src/composables/CssSupport/cssSupport.composable.d.ts +25 -0
  66. package/dist/src/composables/CssSupport/cssSupport.composable.js +10 -1
  67. package/dist/src/composables/DataTable/headers.composable.d.ts +36 -36
  68. package/dist/src/composables/Mask/index.cjs +16 -0
  69. package/dist/src/composables/Mask/index.d.ts +1 -0
  70. package/dist/src/composables/Mask/index.js +1 -0
  71. package/dist/src/composables/Mask/mask.composable.cjs +57 -0
  72. package/dist/src/composables/Mask/mask.composable.d.ts +39 -0
  73. package/dist/src/composables/Mask/mask.composable.js +51 -0
  74. package/dist/src/composables/Parallax/parallax.composable.cjs +232 -0
  75. package/dist/src/composables/Parallax/parallax.composable.d.ts +60 -0
  76. package/dist/src/composables/Parallax/parallax.composable.js +219 -0
  77. package/dist/src/composables/Responsive/aspect.composable.cjs +6 -1
  78. package/dist/src/composables/Responsive/aspect.composable.d.ts +10 -0
  79. package/dist/src/composables/Responsive/aspect.composable.js +6 -1
  80. package/dist/src/composables/SnackbarStack/snackbar-stack.composable.cjs +102 -0
  81. package/dist/src/composables/SnackbarStack/snackbar-stack.composable.d.ts +58 -0
  82. package/dist/src/composables/SnackbarStack/snackbar-stack.composable.js +92 -0
  83. package/dist/src/composables/Textarea/textarea-rich.composable.cjs +263 -0
  84. package/dist/src/composables/Textarea/textarea-rich.composable.d.ts +41 -0
  85. package/dist/src/composables/Textarea/textarea-rich.composable.js +257 -0
  86. package/dist/src/composables/index.cjs +66 -0
  87. package/dist/src/composables/index.d.ts +6 -0
  88. package/dist/src/composables/index.js +6 -0
  89. package/dist/src/consts/Bracket/bracket.const.cjs +12 -0
  90. package/dist/src/consts/Bracket/bracket.const.d.ts +34 -0
  91. package/dist/src/consts/Bracket/bracket.const.js +15 -0
  92. package/dist/src/consts/Code/code.const.cjs +26 -0
  93. package/dist/src/consts/Code/code.const.d.ts +40 -0
  94. package/dist/src/consts/Code/code.const.js +35 -0
  95. package/dist/src/consts/CommandPalette/command-palette.const.cjs +10 -0
  96. package/dist/src/consts/CommandPalette/command-palette.const.d.ts +16 -0
  97. package/dist/src/consts/CommandPalette/command-palette.const.js +7 -0
  98. package/dist/src/consts/Mask/built-in-patterns.const.cjs +66 -0
  99. package/dist/src/consts/Mask/built-in-patterns.const.d.ts +20 -0
  100. package/dist/src/consts/Mask/built-in-patterns.const.js +60 -0
  101. package/dist/src/consts/Parallax/parallax-layer.const.cjs +7 -0
  102. package/dist/src/consts/Parallax/parallax-layer.const.d.ts +3 -0
  103. package/dist/src/consts/Parallax/parallax-layer.const.js +1 -0
  104. package/dist/src/consts/SnackbarStack/snackbar-stack.const.cjs +12 -0
  105. package/dist/src/consts/SnackbarStack/snackbar-stack.const.d.ts +33 -0
  106. package/dist/src/consts/SnackbarStack/snackbar-stack.const.js +18 -0
  107. package/dist/src/consts/Tabs/tabs.const.cjs +9 -0
  108. package/dist/src/consts/Tabs/tabs.const.d.ts +23 -0
  109. package/dist/src/consts/Tabs/tabs.const.js +3 -0
  110. package/dist/src/consts/Textarea/textarea.const.cjs +28 -0
  111. package/dist/src/consts/Textarea/textarea.const.d.ts +38 -0
  112. package/dist/src/consts/Textarea/textarea.const.js +65 -0
  113. package/dist/src/consts/Theme/theme.const.cjs +15 -0
  114. package/dist/src/consts/Theme/theme.const.d.ts +9 -0
  115. package/dist/src/consts/Theme/theme.const.js +9 -0
  116. package/dist/src/consts/index.cjs +99 -0
  117. package/dist/src/consts/index.d.ts +9 -0
  118. package/dist/src/consts/index.js +9 -0
  119. package/dist/src/enums/Bracket/bracket-match-status.enum.cjs +13 -0
  120. package/dist/src/enums/Bracket/bracket-match-status.enum.d.ts +6 -0
  121. package/dist/src/enums/Bracket/bracket-match-status.enum.js +7 -0
  122. package/dist/src/enums/Bracket/bracket-variant.enum.cjs +12 -0
  123. package/dist/src/enums/Bracket/bracket-variant.enum.d.ts +5 -0
  124. package/dist/src/enums/Bracket/bracket-variant.enum.js +6 -0
  125. package/dist/src/enums/Code/code-lang.enum.cjs +23 -0
  126. package/dist/src/enums/Code/code-lang.enum.d.ts +25 -0
  127. package/dist/src/enums/Code/code-lang.enum.js +17 -0
  128. package/dist/src/enums/Code/code-theme.enum.cjs +12 -0
  129. package/dist/src/enums/Code/code-theme.enum.d.ts +12 -0
  130. package/dist/src/enums/Code/code-theme.enum.js +6 -0
  131. package/dist/src/enums/Mask/mask.enum.cjs +28 -0
  132. package/dist/src/enums/Mask/mask.enum.d.ts +36 -0
  133. package/dist/src/enums/Mask/mask.enum.js +22 -0
  134. package/dist/src/enums/Parallax/parallax-direction.enum.cjs +12 -0
  135. package/dist/src/enums/Parallax/parallax-direction.enum.d.ts +5 -0
  136. package/dist/src/enums/Parallax/parallax-direction.enum.js +6 -0
  137. package/dist/src/enums/Parallax/parallax-easing.enum.cjs +12 -0
  138. package/dist/src/enums/Parallax/parallax-easing.enum.d.ts +5 -0
  139. package/dist/src/enums/Parallax/parallax-easing.enum.js +6 -0
  140. package/dist/src/enums/Tabs/tab-variant.enum.cjs +12 -0
  141. package/dist/src/enums/Tabs/tab-variant.enum.d.ts +5 -0
  142. package/dist/src/enums/Tabs/tab-variant.enum.js +6 -0
  143. package/dist/src/enums/Textarea/textarea-mode.enum.cjs +11 -0
  144. package/dist/src/enums/Textarea/textarea-mode.enum.d.ts +13 -0
  145. package/dist/src/enums/Textarea/textarea-mode.enum.js +5 -0
  146. package/dist/src/enums/Textarea/textarea-output.enum.cjs +11 -0
  147. package/dist/src/enums/Textarea/textarea-output.enum.d.ts +14 -0
  148. package/dist/src/enums/Textarea/textarea-output.enum.js +5 -0
  149. package/dist/src/enums/Textarea/textarea-toolbar-command.enum.cjs +21 -0
  150. package/dist/src/enums/Textarea/textarea-toolbar-command.enum.d.ts +20 -0
  151. package/dist/src/enums/Textarea/textarea-toolbar-command.enum.js +15 -0
  152. package/dist/src/enums/Textarea/textarea-toolbar-position.enum.cjs +12 -0
  153. package/dist/src/enums/Textarea/textarea-toolbar-position.enum.d.ts +10 -0
  154. package/dist/src/enums/Textarea/textarea-toolbar-position.enum.js +6 -0
  155. package/dist/src/enums/index.cjs +132 -0
  156. package/dist/src/enums/index.d.ts +12 -0
  157. package/dist/src/enums/index.js +12 -0
  158. package/dist/src/interfaces/Bracket/bracket-competitor-component.interface.cjs +1 -0
  159. package/dist/src/interfaces/Bracket/bracket-competitor-component.interface.d.ts +53 -0
  160. package/dist/src/interfaces/Bracket/bracket-competitor-component.interface.js +0 -0
  161. package/dist/src/interfaces/Bracket/bracket-competitor.interface.cjs +1 -0
  162. package/dist/src/interfaces/Bracket/bracket-competitor.interface.d.ts +25 -0
  163. package/dist/src/interfaces/Bracket/bracket-competitor.interface.js +0 -0
  164. package/dist/src/interfaces/Bracket/bracket-match-component.interface.cjs +1 -0
  165. package/dist/src/interfaces/Bracket/bracket-match-component.interface.d.ts +45 -0
  166. package/dist/src/interfaces/Bracket/bracket-match-component.interface.js +0 -0
  167. package/dist/src/interfaces/Bracket/bracket-match.interface.cjs +1 -0
  168. package/dist/src/interfaces/Bracket/bracket-match.interface.d.ts +51 -0
  169. package/dist/src/interfaces/Bracket/bracket-match.interface.js +0 -0
  170. package/dist/src/interfaces/Bracket/bracket-round-component.interface.cjs +1 -0
  171. package/dist/src/interfaces/Bracket/bracket-round-component.interface.d.ts +26 -0
  172. package/dist/src/interfaces/Bracket/bracket-round-component.interface.js +0 -0
  173. package/dist/src/interfaces/Bracket/bracket-round.interface.cjs +1 -0
  174. package/dist/src/interfaces/Bracket/bracket-round.interface.d.ts +27 -0
  175. package/dist/src/interfaces/Bracket/bracket-round.interface.js +0 -0
  176. package/dist/src/interfaces/Bracket/bracket.interface.cjs +1 -0
  177. package/dist/src/interfaces/Bracket/bracket.interface.d.ts +71 -0
  178. package/dist/src/interfaces/Bracket/bracket.interface.js +0 -0
  179. package/dist/src/interfaces/Code/code.interface.cjs +1 -0
  180. package/dist/src/interfaces/Code/code.interface.d.ts +99 -0
  181. package/dist/src/interfaces/Code/code.interface.js +0 -0
  182. package/dist/src/interfaces/CommandPalette/command-palette.interface.cjs +1 -0
  183. package/dist/src/interfaces/CommandPalette/command-palette.interface.d.ts +57 -0
  184. package/dist/src/interfaces/CommandPalette/command-palette.interface.js +0 -0
  185. package/dist/src/interfaces/CommandPalette/command.interface.cjs +1 -0
  186. package/dist/src/interfaces/CommandPalette/command.interface.d.ts +51 -0
  187. package/dist/src/interfaces/CommandPalette/command.interface.js +0 -0
  188. package/dist/src/interfaces/Mask/mask-options.interface.cjs +1 -0
  189. package/dist/src/interfaces/Mask/mask-options.interface.d.ts +48 -0
  190. package/dist/src/interfaces/Mask/mask-options.interface.js +0 -0
  191. package/dist/src/interfaces/Nuxt/nuxt-module.interface.cjs +1 -0
  192. package/dist/src/interfaces/Nuxt/nuxt-module.interface.d.ts +73 -0
  193. package/dist/src/interfaces/Nuxt/nuxt-module.interface.js +0 -0
  194. package/dist/src/interfaces/Parallax/parallax-layer.interface.cjs +1 -0
  195. package/dist/src/interfaces/Parallax/parallax-layer.interface.d.ts +39 -0
  196. package/dist/src/interfaces/Parallax/parallax-layer.interface.js +0 -0
  197. package/dist/src/interfaces/Parallax/parallax.interface.d.ts +83 -3
  198. package/dist/src/interfaces/SnackbarStack/snackbar-stack-item.interface.cjs +1 -0
  199. package/dist/src/interfaces/SnackbarStack/snackbar-stack-item.interface.d.ts +60 -0
  200. package/dist/src/interfaces/SnackbarStack/snackbar-stack-item.interface.js +0 -0
  201. package/dist/src/interfaces/SnackbarStack/snackbar-stack.interface.cjs +1 -0
  202. package/dist/src/interfaces/SnackbarStack/snackbar-stack.interface.d.ts +60 -0
  203. package/dist/src/interfaces/SnackbarStack/snackbar-stack.interface.js +0 -0
  204. package/dist/src/interfaces/Tabs/tab-panel.interface.cjs +1 -0
  205. package/dist/src/interfaces/Tabs/tab-panel.interface.d.ts +12 -0
  206. package/dist/src/interfaces/Tabs/tab-panel.interface.js +0 -0
  207. package/dist/src/interfaces/Tabs/tab-panels.interface.cjs +1 -0
  208. package/dist/src/interfaces/Tabs/tab-panels.interface.d.ts +28 -0
  209. package/dist/src/interfaces/Tabs/tab-panels.interface.js +0 -0
  210. package/dist/src/interfaces/Tabs/tab.interface.cjs +1 -0
  211. package/dist/src/interfaces/Tabs/tab.interface.d.ts +18 -0
  212. package/dist/src/interfaces/Tabs/tab.interface.js +0 -0
  213. package/dist/src/interfaces/Tabs/tabs.interface.cjs +1 -0
  214. package/dist/src/interfaces/Tabs/tabs.interface.d.ts +26 -0
  215. package/dist/src/interfaces/Tabs/tabs.interface.js +0 -0
  216. package/dist/src/interfaces/TextField/text-field.interface.d.ts +21 -1
  217. package/dist/src/interfaces/Textarea/textarea-rich.interface.cjs +1 -0
  218. package/dist/src/interfaces/Textarea/textarea-rich.interface.d.ts +41 -0
  219. package/dist/src/interfaces/Textarea/textarea-rich.interface.js +0 -0
  220. package/dist/src/interfaces/Textarea/textarea-toolbar.interface.cjs +1 -0
  221. package/dist/src/interfaces/Textarea/textarea-toolbar.interface.d.ts +31 -0
  222. package/dist/src/interfaces/Textarea/textarea-toolbar.interface.js +0 -0
  223. package/dist/src/interfaces/TextareaField/textarea-field.interface.d.ts +38 -1
  224. package/dist/src/interfaces/index.cjs +231 -0
  225. package/dist/src/interfaces/index.d.ts +21 -0
  226. package/dist/src/interfaces/index.js +21 -0
  227. package/dist/src/nuxt/index.cjs +13 -0
  228. package/dist/src/nuxt/index.d.ts +2 -0
  229. package/dist/src/nuxt/index.js +1 -0
  230. package/dist/src/nuxt/module.cjs +74 -0
  231. package/dist/src/nuxt/module.d.ts +31 -0
  232. package/dist/src/nuxt/module.js +68 -0
  233. package/dist/src/nuxt/plugin.client.cjs +44 -0
  234. package/dist/src/nuxt/plugin.client.d.ts +2 -0
  235. package/dist/src/nuxt/plugin.client.js +36 -0
  236. package/dist/src/nuxt/plugin.server.cjs +51 -0
  237. package/dist/src/nuxt/plugin.server.d.ts +2 -0
  238. package/dist/src/nuxt/plugin.server.js +45 -0
  239. package/dist/src/types/Bracket/bracket-direction.type.cjs +1 -0
  240. package/dist/src/types/Bracket/bracket-direction.type.d.ts +13 -0
  241. package/dist/src/types/Bracket/bracket-direction.type.js +0 -0
  242. package/dist/src/types/Bracket/bracket-match-status.type.cjs +1 -0
  243. package/dist/src/types/Bracket/bracket-match-status.type.d.ts +2 -0
  244. package/dist/src/types/Bracket/bracket-match-status.type.js +0 -0
  245. package/dist/src/types/Bracket/bracket-round-side.type.cjs +1 -0
  246. package/dist/src/types/Bracket/bracket-round-side.type.d.ts +12 -0
  247. package/dist/src/types/Bracket/bracket-round-side.type.js +0 -0
  248. package/dist/src/types/Bracket/bracket-variant.type.cjs +1 -0
  249. package/dist/src/types/Bracket/bracket-variant.type.d.ts +2 -0
  250. package/dist/src/types/Bracket/bracket-variant.type.js +0 -0
  251. package/dist/src/types/Code/code-lang.type.cjs +1 -0
  252. package/dist/src/types/Code/code-lang.type.d.ts +2 -0
  253. package/dist/src/types/Code/code-lang.type.js +0 -0
  254. package/dist/src/types/Code/code-theme.type.cjs +1 -0
  255. package/dist/src/types/Code/code-theme.type.d.ts +2 -0
  256. package/dist/src/types/Code/code-theme.type.js +0 -0
  257. package/dist/src/types/CommandPalette/command-palette-hotkey.type.cjs +1 -0
  258. package/dist/src/types/CommandPalette/command-palette-hotkey.type.d.ts +5 -0
  259. package/dist/src/types/CommandPalette/command-palette-hotkey.type.js +0 -0
  260. package/dist/src/types/Mask/built-in-pattern.type.cjs +1 -0
  261. package/dist/src/types/Mask/built-in-pattern.type.d.ts +7 -0
  262. package/dist/src/types/Mask/built-in-pattern.type.js +0 -0
  263. package/dist/src/types/Mask/mask.type.cjs +1 -0
  264. package/dist/src/types/Mask/mask.type.d.ts +19 -0
  265. package/dist/src/types/Mask/mask.type.js +0 -0
  266. package/dist/src/types/Mask/pattern-validator.type.cjs +1 -0
  267. package/dist/src/types/Mask/pattern-validator.type.d.ts +16 -0
  268. package/dist/src/types/Mask/pattern-validator.type.js +0 -0
  269. package/dist/src/types/Parallax/parallax-direction.type.cjs +1 -0
  270. package/dist/src/types/Parallax/parallax-direction.type.d.ts +2 -0
  271. package/dist/src/types/Parallax/parallax-direction.type.js +0 -0
  272. package/dist/src/types/Parallax/parallax-easing.type.cjs +1 -0
  273. package/dist/src/types/Parallax/parallax-easing.type.d.ts +2 -0
  274. package/dist/src/types/Parallax/parallax-easing.type.js +0 -0
  275. package/dist/src/types/SnackbarStack/snackbar-stack-direction.type.cjs +1 -0
  276. package/dist/src/types/SnackbarStack/snackbar-stack-direction.type.d.ts +11 -0
  277. package/dist/src/types/SnackbarStack/snackbar-stack-direction.type.js +0 -0
  278. package/dist/src/types/SnackbarStack/snackbar-stack-location.type.cjs +1 -0
  279. package/dist/src/types/SnackbarStack/snackbar-stack-location.type.d.ts +9 -0
  280. package/dist/src/types/SnackbarStack/snackbar-stack-location.type.js +0 -0
  281. package/dist/src/types/SnackbarStack/snackbar-stack.type.cjs +1 -0
  282. package/dist/src/types/SnackbarStack/snackbar-stack.type.d.ts +2 -0
  283. package/dist/src/types/SnackbarStack/snackbar-stack.type.js +0 -0
  284. package/dist/src/types/Tabs/tab-panel.type.cjs +1 -0
  285. package/dist/src/types/Tabs/tab-panel.type.d.ts +2 -0
  286. package/dist/src/types/Tabs/tab-panel.type.js +0 -0
  287. package/dist/src/types/Tabs/tab-panels.type.cjs +1 -0
  288. package/dist/src/types/Tabs/tab-panels.type.d.ts +2 -0
  289. package/dist/src/types/Tabs/tab-panels.type.js +0 -0
  290. package/dist/src/types/Tabs/tab-variant.type.cjs +1 -0
  291. package/dist/src/types/Tabs/tab-variant.type.d.ts +2 -0
  292. package/dist/src/types/Tabs/tab-variant.type.js +0 -0
  293. package/dist/src/types/Tabs/tab.type.cjs +1 -0
  294. package/dist/src/types/Tabs/tab.type.d.ts +2 -0
  295. package/dist/src/types/Tabs/tab.type.js +0 -0
  296. package/dist/src/types/Tabs/tabs.type.cjs +1 -0
  297. package/dist/src/types/Tabs/tabs.type.d.ts +2 -0
  298. package/dist/src/types/Tabs/tabs.type.js +0 -0
  299. package/dist/src/types/Textarea/textarea-mode.type.cjs +1 -0
  300. package/dist/src/types/Textarea/textarea-mode.type.d.ts +2 -0
  301. package/dist/src/types/Textarea/textarea-mode.type.js +0 -0
  302. package/dist/src/types/Textarea/textarea-output.type.cjs +1 -0
  303. package/dist/src/types/Textarea/textarea-output.type.d.ts +2 -0
  304. package/dist/src/types/Textarea/textarea-output.type.js +0 -0
  305. package/dist/src/types/Textarea/textarea-toolbar-command.type.cjs +1 -0
  306. package/dist/src/types/Textarea/textarea-toolbar-command.type.d.ts +2 -0
  307. package/dist/src/types/Textarea/textarea-toolbar-command.type.js +0 -0
  308. package/dist/src/types/Textarea/textarea-toolbar-position.type.cjs +1 -0
  309. package/dist/src/types/Textarea/textarea-toolbar-position.type.d.ts +2 -0
  310. package/dist/src/types/Textarea/textarea-toolbar-position.type.js +0 -0
  311. package/dist/src/types/index.cjs +264 -0
  312. package/dist/src/types/index.d.ts +24 -0
  313. package/dist/src/types/index.js +24 -0
  314. package/dist/src/types/tokens.type.d.ts +1 -1
  315. package/dist/src/utils/Code/parse-highlight-lines.util.cjs +34 -0
  316. package/dist/src/utils/Code/parse-highlight-lines.util.d.ts +24 -0
  317. package/dist/src/utils/Code/parse-highlight-lines.util.js +28 -0
  318. package/dist/src/utils/CommandPalette/fuzzy-match.util.cjs +84 -0
  319. package/dist/src/utils/CommandPalette/fuzzy-match.util.d.ts +51 -0
  320. package/dist/src/utils/CommandPalette/fuzzy-match.util.js +62 -0
  321. package/dist/src/utils/Mask/apply-mask.util.cjs +120 -0
  322. package/dist/src/utils/Mask/apply-mask.util.d.ts +13 -0
  323. package/dist/src/utils/Mask/apply-mask.util.js +91 -0
  324. package/dist/src/utils/Mask/index.cjs +38 -0
  325. package/dist/src/utils/Mask/index.d.ts +3 -0
  326. package/dist/src/utils/Mask/index.js +3 -0
  327. package/dist/src/utils/Mask/resolve-mask-config.util.cjs +31 -0
  328. package/dist/src/utils/Mask/resolve-mask-config.util.d.ts +15 -0
  329. package/dist/src/utils/Mask/resolve-mask-config.util.js +21 -0
  330. package/dist/src/utils/Mask/validate-pattern.util.cjs +92 -0
  331. package/dist/src/utils/Mask/validate-pattern.util.d.ts +41 -0
  332. package/dist/src/utils/Mask/validate-pattern.util.js +81 -0
  333. package/dist/src/utils/Textarea/html-to-markdown.util.cjs +85 -0
  334. package/dist/src/utils/Textarea/html-to-markdown.util.d.ts +21 -0
  335. package/dist/src/utils/Textarea/html-to-markdown.util.js +78 -0
  336. package/dist/src/utils/Textarea/sanitize-html.util.cjs +82 -0
  337. package/dist/src/utils/Textarea/sanitize-html.util.d.ts +17 -0
  338. package/dist/src/utils/Textarea/sanitize-html.util.js +83 -0
  339. package/dist/src/utils/index.cjs +77 -0
  340. package/dist/src/utils/index.d.ts +7 -0
  341. package/dist/src/utils/index.js +7 -0
  342. package/package.json +13 -3
  343. package/dist/src/globals.d.ts +0 -172
  344. package/dist/src/shims.d.ts +0 -36
  345. package/dist/src/vite-env.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -11,6 +11,230 @@ This project follows [Semantic Versioning](https://semver.org).
11
11
 
12
12
  ---
13
13
 
14
+ ## [Unreleased]
15
+
16
+ _(empty — next features will land here.)_
17
+
18
+ ---
19
+
20
+ ## [2.3.0] — 2026-05-15
21
+
22
+ > **The features release.** Four new components, four major
23
+ > enrichments, an official Nuxt module, and a comprehensive SSR
24
+ > safety audit. All additions are backward-compatible — drop-in
25
+ > upgrade from 2.2.x. 378 unit tests (+158 vs 2.2.1), 0 lint errors.
26
+
27
+ ### Added
28
+
29
+ - `origam/nuxt` sub-export — official Nuxt 3 / Nuxt 4 module. Auto-imports
30
+ components and composables. SSR-safe theme resolution via cookie +
31
+ `Sec-CH-Prefers-Color-Scheme` header (no FOUC, no hydration mismatch).
32
+ Auto-injects token CSS files (primitive + selected themes + utilities).
33
+ Configurable via `origam: {}` in `nuxt.config.ts`. Resolves through
34
+ `modules: ['origam/nuxt']`. New `IOrigamNuxtModuleOptions` and
35
+ `IOrigamNuxtRuntimeConfig` interfaces; new theme constants
36
+ (`ORIGAM_THEME_AUTO`, `ORIGAM_THEME_LIGHT`, `ORIGAM_THEME_DARK`,
37
+ `ORIGAM_THEME_ATTR`, `ORIGAM_THEME_STORAGE_KEY`). Reference
38
+ documentation at `docs/integrations/nuxt.md`.
39
+
40
+ ### Changed
41
+
42
+ - `OrigamTextField` — new `mask` prop with built-in patterns
43
+ (`phone:fr`, `phone:us`, `phone:international`, `iban`, `siret`,
44
+ `creditcard`, `date:iso`, `date:fr`, `date:us`, `time`, `time:12h`,
45
+ `postcode:fr`, `postcode:us`) plus a custom pattern syntax
46
+ (`#` = digit, `A` = letter, `*` = any, anything else is a literal).
47
+ In-house mask engine — zero external dependency (no `imask.js` /
48
+ `cleave.js` / `vue-the-mask`). Reactive validation pipeline with
49
+ built-in `luhn` (credit card), `iban` (mod-97) and date parsers
50
+ (`date:iso` / `date:fr` / `date:us`); custom validators accepted as
51
+ `(unmasked) => boolean`. New emits `@valid(boolean)` and
52
+ `@complete({ complete, unmasked })` fire on every value change. The
53
+ v-model exposes the **unmasked** value while the DOM input displays
54
+ the formatted (masked) one — paste handling strips literals and
55
+ reformats, `aria-invalid` toggles on touched fields, and the engine
56
+ auto-promotes phone-shaped patterns to `type="tel"` for mobile
57
+ keyboard hints. New `useMask` composable, `applyMask` / `unmaskValue`
58
+ / `resolveMaskConfig` / `validatePattern` utils, new `IMaskOptions`
59
+ interface and `TMask` / `TBuiltInPattern` / `TPatternValidator`
60
+ types.
61
+ - `OrigamTextareaField` — new `mode="rich"` enabling a lightweight
62
+ HTML / Markdown editor based on `contenteditable`. Built in-house
63
+ with zero external dependencies (no TipTap, ProseMirror, Quill).
64
+ 9 toolbar commands (`bold`, `italic`, `underline`, `link`,
65
+ `list-bullet`, `list-ordered`, `heading`, `code-inline`,
66
+ `clear-format`), customisable via the new `toolbar` prop (or
67
+ `toolbar: false` to hide). Keyboard shortcuts (Cmd/Ctrl+B/I/U/K/E
68
+ and Cmd/Ctrl+Shift+7/8 for the two list modes). New `output` prop
69
+ switches the v-model serialisation between `'html'` (sanitised) and
70
+ `'markdown'` (CommonMark-flavoured subset). New `toolbarPosition`
71
+ prop (`'top' | 'bottom' | 'floating'`). New `format` emit fired on
72
+ every toolbar click or keyboard shortcut with the command id (and
73
+ the URL for link insertion). New slots `#toolbar` and
74
+ `#toolbar-item` allow replacing the default UI entirely. Internal
75
+ sub-component `OrigamRichToolbar.vue` + composable
76
+ `useTextareaRich` own the contenteditable contract. In-house HTML
77
+ sanitiser with allowlist on tags (`p`, `br`, `strong`, `b`, `em`,
78
+ `i`, `u`, `a`, `ul`, `ol`, `li`, `h1`, `h2`, `h3`, `code`),
79
+ attributes (`href` restricted to `http:` / `https:` / `mailto:` /
80
+ `tel:` plus relative URLs; `class` restricted to the
81
+ `origam-rich--*` prefix), and stripping every `on*` event handler
82
+ before per-tag filtering. External links are auto-hardened with
83
+ `rel="noopener noreferrer nofollow" target="_blank"`. ARIA:
84
+ `role="toolbar" + aria-label` on the toolbar, real `<button>` per
85
+ command with `aria-label` + `aria-pressed`, the editing surface
86
+ carries `role="textbox" + aria-multiline="true"`. New tokens under
87
+ `component/textarea-field/rich-*` (toolbar surface, button states,
88
+ content padding, inline-code colors, link color, heading sizes).
89
+ The plain-mode (`mode="plain"`, default) API is fully
90
+ backward-compatible — passing nothing keeps the previous
91
+ `<textarea>` behaviour.
92
+
93
+ - `OrigamCode` — major enrichment via shiki integration. Syntax
94
+ highlighting for 13 languages (vue, ts, js, tsx, jsx, scss, css, json,
95
+ bash, html, xml, yaml, md) plus `plaintext`. New props: `lineNumbers`,
96
+ `highlightLines` (accepts both `number[]` and the range syntax
97
+ `'2,5-7'`), `copyable`, `maxHeight`, `theme` (`'auto' | 'light' | 'dark'`),
98
+ `wrap`, `filename`. Copy button with `navigator.clipboard` and an
99
+ `execCommand('copy')` fallback for legacy WebViews. Lazy-init shiki
100
+ highlighter cached as a module-level singleton across instances; an
101
+ LRU (max 64 entries) caches highlighted HTML by `(code, lang, theme)`
102
+ so re-renders never re-tokenise. Theme defaults to `auto` and tracks
103
+ the host `<html data-theme>` attribute. New `useCode` composable
104
+ exposing `{ highlight, prime, isReady, resetCacheForTesting }`. New
105
+ utility `parseHighlightLines()` shared with stories/tests. Pure-CSS
106
+ line-numbers gutter (CSS counter, no JS layout) and line-highlight
107
+ swap (class toggle on already-rendered rows, no re-tokenisation).
108
+ ARIA: `role="region"` on the surface, `aria-live="polite"` on the
109
+ copy feedback, hidden line numbers. `shiki` (`^3.8.1`) promoted from
110
+ `devDependencies` to `dependencies` (it's a runtime dep now); the
111
+ bundle adds ~3 MB to installed `node_modules` for the curated subset.
112
+ New tokens under `component/code` (35 vars: surface, header, filename,
113
+ copy button, line-number gutter, line-highlight, scrollbar). The v2.x
114
+ plain-text `<pre>` API is fully backward-compatible — passing just
115
+ `code` and `lang` keeps the previous behaviour.
116
+
117
+ - `OrigamParallax` — major enrichment. Multi-layer support via new
118
+ `OrigamParallaxLayer` subcomponent (`speed`, `offsetX`, `offsetY`,
119
+ `zIndex` props; layers register themselves into the host runtime and
120
+ receive direct DOM mutations of `transform` outside Vue reactivity).
121
+ Host gains `direction` (`'vertical' | 'horizontal' | 'both'`),
122
+ `easing` (`'linear' | 'ease-out' | 'spring'`, in addition to the
123
+ legacy raw CSS timing-function string), `disabled`, `speed`,
124
+ `threshold` props. New emits: `@enter`, `@leave`,
125
+ `@scroll-progress(0→1)` driven by `IntersectionObserver` +
126
+ `requestAnimationFrame`. `prefers-reduced-motion: reduce` is honoured
127
+ natively — layers stay at `translate3d(offsetX, offsetY, 0)` and the
128
+ rAF loop short-circuits. CSS-first scroll-driven animations
129
+ (`animation-timeline: view()`) when `view-timeline` is supported
130
+ (Chrome 115+, Edge 115+) AND `easing === 'linear'`; JS fallback
131
+ otherwise. Spring easing implemented as a damped lerp in the JS path.
132
+ Existing single-layer / `<OrigamParallaxElement>` API preserved (the
133
+ two layer kinds use independent injection contexts and can coexist
134
+ inside the same host). New tokens: `parallax.transition-duration-spring`,
135
+ `parallax.transition-easing-default` / `-spring`,
136
+ `parallax.layer.will-change` / `.transform-origin`.
137
+
138
+ ### Added
139
+
140
+ - `OrigamCommandPalette` — ⌘K command launcher. Built on a teleported
141
+ dialog with focus trap + focus restoration. Custom subsequence-based
142
+ fuzzy-match algorithm (no external dep) ranks results by
143
+ consecutive-run + label-prefix + first-position bonuses. Composable
144
+ `useCommand` exposes a process-wide command registry — entries
145
+ registered inside a Vue effect scope auto-unregister on dispose.
146
+ Reuses `OrigamKbd` for inline shortcut display. Hotkey listener
147
+ built on `useHotkey` (default `⌘+K` on macOS, `Ctrl+K` on
148
+ Windows / Linux, configurable per combination or disabled with
149
+ `:hotkey="null"`). ARIA combobox pattern (`role="combobox"` on the
150
+ input, `role="listbox"` on the result list, `role="option"` per
151
+ item, `aria-activedescendant` tracking the keyboard cursor) +
152
+ `role="dialog"` + `aria-modal="true"` on the surface. Tokens exposed
153
+ under `tokens/component/command-palette.json`
154
+ (`--origam-command-palette---*`,
155
+ `--origam-command-palette__input---*`,
156
+ `--origam-command-palette__item---*`,
157
+ `--origam-command-palette__group-title---*`,
158
+ `--origam-command-palette__empty---*`,
159
+ `--origam-command-palette__footer---*`,
160
+ `--origam-command-palette--backdrop---*`).
161
+
162
+ - `OrigamBracket` — e-sport tournament tree. Supports single-elimination,
163
+ double-elimination and round-robin variants. SVG connectors
164
+ auto-computed from `nextMatchId` (with positional fallback). Slots for
165
+ custom match / competitor / round-title / connector rendering. ARIA
166
+ `role="region"` with per-round `role="group"` + `aria-labelledby`
167
+ pointing at title headings. Tokens exposed under
168
+ `tokens/component/bracket.json` (`--origam-bracket---*`,
169
+ `--origam-bracket-match---*`, `--origam-bracket-competitor---*`,
170
+ `--origam-bracket-connector---*`, `--origam-bracket-round-robin---*`).
171
+
172
+ - `OrigamSnackbarStack` — multi-toast notification system. Reuses
173
+ `OrigamSnackbar` styling vocabulary for rendering. Composable
174
+ `useSnackbarStack({ id })` exposes `notify` / `dismiss` /
175
+ `dismissAll`. 8 anchor locations, max stack size with FIFO eviction,
176
+ per-item auto-dismiss (or `0` for sticky), action buttons with
177
+ optional `keepOpen`, ARIA `role="region"` on the stack root +
178
+ `role="status"` / `"alert"` per intent on each item with matching
179
+ `aria-live`. Slide-in / slide-out transitions degrade to a fade under
180
+ `prefers-reduced-motion`. Tokens exposed under
181
+ `tokens/component/snackbar-stack.json`
182
+ (`--origam-snackbar-stack---*`, `--origam-snackbar-stack__item---*`).
183
+
184
+ - `OrigamTabs` / `OrigamTab` / `OrigamTabPanels` / `OrigamTabPanel` —
185
+ full tab system with horizontal / vertical orientation, three visual
186
+ variants (`default` / `pills` / `underline`), ARIA `role="tablist"` +
187
+ `role="tab"` + `role="tabpanel"` wiring, full keyboard navigation
188
+ (`←`/`→`/`↑`/`↓`/`Home`/`End`/`Enter`/`Space`), lazy or eager panel
189
+ mounting, optional touch-swipeable panels. Reuses the shared
190
+ `useGroup` orchestration so the selection state, mandatory behaviour
191
+ and disabled-tab semantics align with the rest of the system
192
+ (`OrigamBtnToggle`, `OrigamCarousel`, `OrigamBottomNav`). Tokens
193
+ exposed under `tokens/component/tabs.json` (item color, indicator
194
+ color, panel padding, transition duration).
195
+
196
+ - `OrigamClientOnly` — SSR helper component that renders its default
197
+ slot only after `onMounted`. Optional `#fallback` slot (or
198
+ `placeholder-tag` / `placeholder-class` props) reserves layout space
199
+ during SSR to avoid CLS. Use to wrap fragments whose markup truly must
200
+ differ between server and client (audio, deviceorientation,
201
+ IntersectionObserver-driven features, …) without triggering hydration
202
+ mismatches.
203
+
204
+ - `useCssSupportClient(feature, { defaultValue })` — hydration-safe
205
+ feature-gate helper. Returns a `Ref<boolean>` that starts at
206
+ `defaultValue` (default `false`) on both SSR and first client render,
207
+ then flips to the real `CSS.supports()` result inside `onMounted`.
208
+ Use to gate **markup** branches (template `v-if`) when the regular
209
+ `useCssSupport().css.value.X` would produce a hydration mismatch
210
+ (class-only branches keep using the existing API — Vue 3 reconciles
211
+ class diffs fine).
212
+
213
+ ### Fixed
214
+
215
+ - SSR safety — comprehensive audit of all composables and components
216
+ that previously could crash on server render (`window is not defined`,
217
+ `document is not defined`). `useCssSupport` already returned all-false
218
+ flags during SSR; the rest of the surface (`useTheme`, `useCommand`,
219
+ `useSnackbarStack`, `useCode`, `useMask`, `useTouch`, `useHotkey`,
220
+ `useSticky`, `useSheetSwipe`, `useScroll`, `useParallax`, `useStyleTag`,
221
+ `useTeleport`, `useLocationStrategies`, `useScrollStrategies`,
222
+ `useDisplay`) was confirmed safe via the audit and patched where a
223
+ composable's public method or a `computed` could be evaluated during
224
+ SSR. Specifically: `useAspectRatio` no longer dereferences
225
+ `window.innerWidth/Height` when no explicit `aspectRatio` prop is
226
+ given; `useVirtual`'s `viewportHeight` computed guards
227
+ `document.documentElement`; `useSnackbarStack.dismiss()` guards
228
+ `window.clearTimeout`. Overlay components (Dialog, Drawer, Menu,
229
+ Tooltip, Snackbar, ContextualMenu, SnackbarStack, CommandPalette)
230
+ confirmed SSR-safe via `<Teleport>` (Vue defers the mount until the
231
+ client). New guide `docs/guide/ssr.md`. New `src/__tests__/ssr-smoke.spec.ts`
232
+ exercises every refactored composable in a simulated SSR environment
233
+ (window/document/CSS stripped) **and** through `@vue/server-renderer`'s
234
+ real `renderToString()`.
235
+
236
+ ---
237
+
14
238
  ## [2.2.1] — 2026-05-14
15
239
 
16
240
  ### Fixed
package/README.md CHANGED
@@ -212,6 +212,28 @@ so the matrix stays auditable.
212
212
 
213
213
  ---
214
214
 
215
+ ## Nuxt integration
216
+
217
+ origam ships an official Nuxt 3 / Nuxt 4 module as a sub-export — no
218
+ separate package to install. Add `'origam/nuxt'` to your `modules` and
219
+ get auto-imports for every component and composable, SSR-safe theme
220
+ resolution (cookie + `Sec-CH-Prefers-Color-Scheme` — no FOUC, no
221
+ hydration mismatch) and the right token stylesheets injected in order.
222
+
223
+ ```ts
224
+ export default defineNuxtConfig({
225
+ modules: ['origam/nuxt'],
226
+ origam: {
227
+ themes: ['light', 'dark'],
228
+ defaultTheme: 'auto'
229
+ }
230
+ })
231
+ ```
232
+
233
+ Full reference: [`docs/integrations/nuxt.md`](./docs/integrations/nuxt.md).
234
+
235
+ ---
236
+
215
237
  ## Browser support
216
238
 
217
239
  | Browser | Minimum |
@@ -1185,6 +1185,34 @@
1185
1185
  --origam-textarea-field__grip---border-color: #262626;
1186
1186
  --origam-textarea-field__grip---opacity: 0.26;
1187
1187
  --origam-textarea-field__grip---height: 9px;
1188
+ --origam-textarea-field---rich-toolbar-bg-color: #0a0a0a;
1189
+ --origam-textarea-field---rich-toolbar-border-color: #262626;
1190
+ --origam-textarea-field---rich-toolbar-border-radius: 8px;
1191
+ --origam-textarea-field---rich-toolbar-padding: 8px;
1192
+ --origam-textarea-field---rich-toolbar-gap: 4px;
1193
+ --origam-textarea-field---rich-toolbar-btn-size: 32px;
1194
+ --origam-textarea-field---rich-toolbar-btn-padding: 4px;
1195
+ --origam-textarea-field---rich-toolbar-btn-border-radius: 4px;
1196
+ --origam-textarea-field---rich-toolbar-btn-bg-color: rgba(0, 0, 0, 0);
1197
+ --origam-textarea-field---rich-toolbar-btn-color: #fafafa;
1198
+ --origam-textarea-field---rich-toolbar-btn-hover-bg-color: #262626;
1199
+ --origam-textarea-field---rich-toolbar-btn-hover-color: #fafafa;
1200
+ --origam-textarea-field---rich-toolbar-btn-active-bg-color: #8b5cf6;
1201
+ --origam-textarea-field---rich-toolbar-btn-active-color: #ffffff;
1202
+ --origam-textarea-field---rich-toolbar-btn-focus-outline-color: #8b5cf6;
1203
+ --origam-textarea-field---rich-content-padding: 12px;
1204
+ --origam-textarea-field---rich-content-min-height: 120px;
1205
+ --origam-textarea-field---rich-content-line-height: 1.5;
1206
+ --origam-textarea-field---rich-content-paragraph-gap: 12px;
1207
+ --origam-textarea-field---rich-content-placeholder-color: #a3a3a3;
1208
+ --origam-textarea-field---rich-code-inline-bg-color: #0a0a0a;
1209
+ --origam-textarea-field---rich-code-inline-color: #fafafa;
1210
+ --origam-textarea-field---rich-link-color: #8b5cf6;
1211
+ --origam-textarea-field---rich-link-text-decoration: underline;
1212
+ --origam-textarea-field---rich-list-padding-inline-start: 24px;
1213
+ --origam-textarea-field---rich-heading-font-size-h1: 1.75rem;
1214
+ --origam-textarea-field---rich-heading-font-size-h2: 1.35rem;
1215
+ --origam-textarea-field---rich-heading-font-size-h3: 1.1rem;
1188
1216
  --origam-overlay---display: flex;
1189
1217
  --origam-overlay---position: fixed;
1190
1218
  --origam-overlay---border-radius: inherit;
@@ -1984,6 +2012,41 @@
1984
2012
  --origam-date-picker-field__icon---color: #a3a3a3;
1985
2013
  --origam-date-picker-field__icon---color-hover: #fafafa;
1986
2014
  --origam-date-picker-field__icon---color-error: #cf6679;
2015
+ --origam-code---background-color: #0a0a0a;
2016
+ --origam-code---color: #fafafa;
2017
+ --origam-code---border-color: #262626;
2018
+ --origam-code---border-width: 1px;
2019
+ --origam-code---border-radius: 8px;
2020
+ --origam-code---padding-block: 16px;
2021
+ --origam-code---padding-inline: 16px;
2022
+ --origam-code---font-family: 'JetBrains Mono', 'Fira Code', monospace;
2023
+ --origam-code---font-size: 0.75rem;
2024
+ --origam-code---line-height: 1.6;
2025
+ --origam-code__header---background-color: #262626;
2026
+ --origam-code__header---color: #a3a3a3;
2027
+ --origam-code__header---padding-block: 8px;
2028
+ --origam-code__header---padding-inline: 16px;
2029
+ --origam-code__header---gap: 8px;
2030
+ --origam-code__filename---color: #a3a3a3;
2031
+ --origam-code__filename---font-size: 0.625rem;
2032
+ --origam-code__filename---font-weight: 500;
2033
+ --origam-code__copy---color: #a3a3a3;
2034
+ --origam-code__copy---color-hover: #fafafa;
2035
+ --origam-code__copy---background-color: rgba(0, 0, 0, 0);
2036
+ --origam-code__copy---background-color-hover: #171717;
2037
+ --origam-code__copy---padding-block: 4px;
2038
+ --origam-code__copy---padding-inline: 8px;
2039
+ --origam-code__copy---border-radius: 4px;
2040
+ --origam-code__copy---font-size: 0.625rem;
2041
+ --origam-code__copy---gap: 4px;
2042
+ --origam-code__copy---offset: 8px;
2043
+ --origam-code---line-number-color: #525252;
2044
+ --origam-code---line-number-width: 3rem;
2045
+ --origam-code---line-number-padding-right: 12px;
2046
+ --origam-code---line-highlight-background-color: #171717;
2047
+ --origam-code---line-highlight-accent-color: #fbbf24;
2048
+ --origam-code__row---padding-inline: 0;
2049
+ --origam-code__scrollbar---color: #262626;
1987
2050
  --origam-color-picker---background-color: #171717;
1988
2051
  --origam-color-picker---border-radius: 8px;
1989
2052
  --origam-color-picker---padding-block: 16px;
@@ -2246,12 +2309,17 @@
2246
2309
  --origam-parallax---aspect-ratio: 1.7778;
2247
2310
  --origam-parallax---transition-duration: 280ms;
2248
2311
  --origam-parallax---transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2312
+ --origam-parallax---transition-duration-spring: 400ms;
2313
+ --origam-parallax---transition-easing-default: cubic-bezier(0.4, 0, 0.2, 1);
2314
+ --origam-parallax---transition-easing-spring: cubic-bezier(0.16, 1, 0.3, 1);
2249
2315
  --origam-parallax---perspective: 1000px;
2250
2316
  --origam-parallax---transform-origin: center center;
2251
2317
  --origam-parallax---translate-multiplier: 0.5;
2252
2318
  --origam-parallax---background-color: rgba(0, 0, 0, 0);
2253
2319
  --origam-parallax---color: #fafafa;
2254
2320
  --origam-parallax__element---transition-duration: 200ms;
2321
+ --origam-parallax__layer---will-change: transform;
2322
+ --origam-parallax__layer---transform-origin: center center;
2255
2323
  --origam-slide---transition-duration: 200ms;
2256
2324
  --origam-slide---transition-duration-reverse: 200ms;
2257
2325
  --origam-slide---transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -2396,6 +2464,97 @@
2396
2464
  --origam-treeview---size-color: #a3a3a3;
2397
2465
  --origam-treeview---guide-color: #262626;
2398
2466
  --origam-treeview---guide-thickness: 1px;
2467
+ --origam-tabs---background-color: rgba(0, 0, 0, 0);
2468
+ --origam-tabs---border-color: #262626;
2469
+ --origam-tabs---border-style: solid;
2470
+ --origam-tabs---border-width: 0px;
2471
+ --origam-tabs---border-radius: 0px;
2472
+ --origam-tabs---color: #fafafa;
2473
+ --origam-tabs---padding-block: 0px;
2474
+ --origam-tabs---padding-inline: 0px;
2475
+ --origam-tabs---gap: 0px;
2476
+ --origam-tabs---height: 48px;
2477
+ --origam-tabs__item---color: #a3a3a3;
2478
+ --origam-tabs__item---background-color: rgba(0, 0, 0, 0);
2479
+ --origam-tabs__item---padding-inline: 16px;
2480
+ --origam-tabs__item---padding-block: 0px;
2481
+ --origam-tabs__item---gap: 8px;
2482
+ --origam-tabs__item---height: 48px;
2483
+ --origam-tabs__item---font-size: 0.75rem;
2484
+ --origam-tabs__item---font-weight: 500;
2485
+ --origam-tabs__item---letter-spacing: 0.0094em;
2486
+ --origam-tabs__item---text-transform: none;
2487
+ --origam-tabs__item---border-radius: 0px;
2488
+ --origam-tabs__item---border-width: 0px;
2489
+ --origam-tabs__item---transition-duration: 100ms;
2490
+ --origam-tabs__item---transition-easing: cubic-bezier(0.4, 0, 0.2, 1);
2491
+ --origam-tabs__indicator---color: #8b5cf6;
2492
+ --origam-tabs__indicator---height: 2px;
2493
+ --origam-tabs__panel---padding-block: 16px;
2494
+ --origam-tabs__panel---padding-inline: 0px;
2495
+ --origam-tabs__panel---transition-duration: 100ms;
2496
+ --origam-snackbar-stack---z-index: 1060;
2497
+ --origam-snackbar-stack---gap: 12px;
2498
+ --origam-snackbar-stack---max-width: 420px;
2499
+ --origam-snackbar-stack---transition-duration: 100ms;
2500
+ --origam-snackbar-stack---position-top: 16px;
2501
+ --origam-snackbar-stack---position-bottom: 16px;
2502
+ --origam-snackbar-stack---position-left: 16px;
2503
+ --origam-snackbar-stack---position-right: 16px;
2504
+ --origam-snackbar-stack__item---gap: 12px;
2505
+ --origam-snackbar-stack__item---min-width: 288px;
2506
+ --origam-snackbar-stack__item---max-width: 420px;
2507
+ --origam-snackbar-stack__item---padding: 12px 14px;
2508
+ --origam-snackbar-stack__item---border-radius: 8px;
2509
+ --origam-snackbar-stack__item---border-width: 1px;
2510
+ --origam-snackbar-stack__item---background-color: #0a0a0a;
2511
+ --origam-snackbar-stack__item---border-color: #262626;
2512
+ --origam-snackbar-stack__item---color: #fafafa;
2513
+ --origam-snackbar-stack__item---box-shadow: 0px 6px 24px 0px rgba(0,0,0,0.05), 0px 0px 0px 1px rgba(0,0,0,0.08);
2514
+ --origam-snackbar-stack__item---font-size: 0.875rem;
2515
+ --origam-snackbar-stack__item---content-gap: 8px;
2516
+ --origam-snackbar-stack__item---prepend-color: currentColor;
2517
+ --origam-snackbar-stack__item---text-gap: 4px;
2518
+ --origam-snackbar-stack__item---title-font-weight: 600;
2519
+ --origam-snackbar-stack__item---message-font-weight: 400;
2520
+ --origam-snackbar-stack__item---message-color: currentColor;
2521
+ --origam-snackbar-stack__item---message-opacity: 0.85;
2522
+ --origam-snackbar-stack__item---action-color: #ffffff;
2523
+ --origam-command-palette---z-index: 1050;
2524
+ --origam-command-palette---padding-top: 18vh;
2525
+ --origam-command-palette---width: 640px;
2526
+ --origam-command-palette---max-height: 480px;
2527
+ --origam-command-palette---background-color: #171717;
2528
+ --origam-command-palette---color: #fafafa;
2529
+ --origam-command-palette---border-color: #262626;
2530
+ --origam-command-palette---border-width: 1px;
2531
+ --origam-command-palette---border-radius: 12px;
2532
+ --origam-command-palette---box-shadow: 0px 11px 8px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12);
2533
+ --origam-command-palette__input---padding: 12px 16px;
2534
+ --origam-command-palette__input---font-size: 0.875rem;
2535
+ --origam-command-palette__input---border-color: #262626;
2536
+ --origam-command-palette__input---icon-color: #a3a3a3;
2537
+ --origam-command-palette__input---placeholder-color: #525252;
2538
+ --origam-command-palette__list---padding: 8px;
2539
+ --origam-command-palette__item---height: 40px;
2540
+ --origam-command-palette__item---padding: 8px 12px;
2541
+ --origam-command-palette__item---border-radius: 8px;
2542
+ --origam-command-palette__item---background-color: rgba(0, 0, 0, 0);
2543
+ --origam-command-palette__item---background-color-active: #262626;
2544
+ --origam-command-palette__item---color: #fafafa;
2545
+ --origam-command-palette__item---color-active: #fafafa;
2546
+ --origam-command-palette__item---icon-color: #a3a3a3;
2547
+ --origam-command-palette__item---description-color: #a3a3a3;
2548
+ --origam-command-palette---item-kbd-gap: 4px;
2549
+ --origam-command-palette---group-title-padding: 10px 12px 6px;
2550
+ --origam-command-palette---group-title-color: #a3a3a3;
2551
+ --origam-command-palette---group-title-font-size: 0.625rem;
2552
+ --origam-command-palette__empty---color: #a3a3a3;
2553
+ --origam-command-palette__footer---padding: 8px 12px;
2554
+ --origam-command-palette__footer---border-color: #262626;
2555
+ --origam-command-palette__footer---color: #a3a3a3;
2556
+ --origam-command-palette__backdrop---background-color: rgba(0, 0, 0, 0.45);
2557
+ --origam-command-palette__backdrop---backdrop-filter: blur(6px);
2399
2558
  }
2400
2559
  @media (prefers-color-scheme: dark) {
2401
2560
  :root:not([data-theme]) {
@@ -3585,6 +3744,34 @@
3585
3744
  --origam-textarea-field__grip---border-color: #262626;
3586
3745
  --origam-textarea-field__grip---opacity: 0.26;
3587
3746
  --origam-textarea-field__grip---height: 9px;
3747
+ --origam-textarea-field---rich-toolbar-bg-color: #0a0a0a;
3748
+ --origam-textarea-field---rich-toolbar-border-color: #262626;
3749
+ --origam-textarea-field---rich-toolbar-border-radius: 8px;
3750
+ --origam-textarea-field---rich-toolbar-padding: 8px;
3751
+ --origam-textarea-field---rich-toolbar-gap: 4px;
3752
+ --origam-textarea-field---rich-toolbar-btn-size: 32px;
3753
+ --origam-textarea-field---rich-toolbar-btn-padding: 4px;
3754
+ --origam-textarea-field---rich-toolbar-btn-border-radius: 4px;
3755
+ --origam-textarea-field---rich-toolbar-btn-bg-color: rgba(0, 0, 0, 0);
3756
+ --origam-textarea-field---rich-toolbar-btn-color: #fafafa;
3757
+ --origam-textarea-field---rich-toolbar-btn-hover-bg-color: #262626;
3758
+ --origam-textarea-field---rich-toolbar-btn-hover-color: #fafafa;
3759
+ --origam-textarea-field---rich-toolbar-btn-active-bg-color: #8b5cf6;
3760
+ --origam-textarea-field---rich-toolbar-btn-active-color: #ffffff;
3761
+ --origam-textarea-field---rich-toolbar-btn-focus-outline-color: #8b5cf6;
3762
+ --origam-textarea-field---rich-content-padding: 12px;
3763
+ --origam-textarea-field---rich-content-min-height: 120px;
3764
+ --origam-textarea-field---rich-content-line-height: 1.5;
3765
+ --origam-textarea-field---rich-content-paragraph-gap: 12px;
3766
+ --origam-textarea-field---rich-content-placeholder-color: #a3a3a3;
3767
+ --origam-textarea-field---rich-code-inline-bg-color: #0a0a0a;
3768
+ --origam-textarea-field---rich-code-inline-color: #fafafa;
3769
+ --origam-textarea-field---rich-link-color: #8b5cf6;
3770
+ --origam-textarea-field---rich-link-text-decoration: underline;
3771
+ --origam-textarea-field---rich-list-padding-inline-start: 24px;
3772
+ --origam-textarea-field---rich-heading-font-size-h1: 1.75rem;
3773
+ --origam-textarea-field---rich-heading-font-size-h2: 1.35rem;
3774
+ --origam-textarea-field---rich-heading-font-size-h3: 1.1rem;
3588
3775
  --origam-overlay---display: flex;
3589
3776
  --origam-overlay---position: fixed;
3590
3777
  --origam-overlay---border-radius: inherit;
@@ -4384,6 +4571,41 @@
4384
4571
  --origam-date-picker-field__icon---color: #a3a3a3;
4385
4572
  --origam-date-picker-field__icon---color-hover: #fafafa;
4386
4573
  --origam-date-picker-field__icon---color-error: #cf6679;
4574
+ --origam-code---background-color: #0a0a0a;
4575
+ --origam-code---color: #fafafa;
4576
+ --origam-code---border-color: #262626;
4577
+ --origam-code---border-width: 1px;
4578
+ --origam-code---border-radius: 8px;
4579
+ --origam-code---padding-block: 16px;
4580
+ --origam-code---padding-inline: 16px;
4581
+ --origam-code---font-family: 'JetBrains Mono', 'Fira Code', monospace;
4582
+ --origam-code---font-size: 0.75rem;
4583
+ --origam-code---line-height: 1.6;
4584
+ --origam-code__header---background-color: #262626;
4585
+ --origam-code__header---color: #a3a3a3;
4586
+ --origam-code__header---padding-block: 8px;
4587
+ --origam-code__header---padding-inline: 16px;
4588
+ --origam-code__header---gap: 8px;
4589
+ --origam-code__filename---color: #a3a3a3;
4590
+ --origam-code__filename---font-size: 0.625rem;
4591
+ --origam-code__filename---font-weight: 500;
4592
+ --origam-code__copy---color: #a3a3a3;
4593
+ --origam-code__copy---color-hover: #fafafa;
4594
+ --origam-code__copy---background-color: rgba(0, 0, 0, 0);
4595
+ --origam-code__copy---background-color-hover: #171717;
4596
+ --origam-code__copy---padding-block: 4px;
4597
+ --origam-code__copy---padding-inline: 8px;
4598
+ --origam-code__copy---border-radius: 4px;
4599
+ --origam-code__copy---font-size: 0.625rem;
4600
+ --origam-code__copy---gap: 4px;
4601
+ --origam-code__copy---offset: 8px;
4602
+ --origam-code---line-number-color: #525252;
4603
+ --origam-code---line-number-width: 3rem;
4604
+ --origam-code---line-number-padding-right: 12px;
4605
+ --origam-code---line-highlight-background-color: #171717;
4606
+ --origam-code---line-highlight-accent-color: #fbbf24;
4607
+ --origam-code__row---padding-inline: 0;
4608
+ --origam-code__scrollbar---color: #262626;
4387
4609
  --origam-color-picker---background-color: #171717;
4388
4610
  --origam-color-picker---border-radius: 8px;
4389
4611
  --origam-color-picker---padding-block: 16px;
@@ -4646,12 +4868,17 @@
4646
4868
  --origam-parallax---aspect-ratio: 1.7778;
4647
4869
  --origam-parallax---transition-duration: 280ms;
4648
4870
  --origam-parallax---transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
4871
+ --origam-parallax---transition-duration-spring: 400ms;
4872
+ --origam-parallax---transition-easing-default: cubic-bezier(0.4, 0, 0.2, 1);
4873
+ --origam-parallax---transition-easing-spring: cubic-bezier(0.16, 1, 0.3, 1);
4649
4874
  --origam-parallax---perspective: 1000px;
4650
4875
  --origam-parallax---transform-origin: center center;
4651
4876
  --origam-parallax---translate-multiplier: 0.5;
4652
4877
  --origam-parallax---background-color: rgba(0, 0, 0, 0);
4653
4878
  --origam-parallax---color: #fafafa;
4654
4879
  --origam-parallax__element---transition-duration: 200ms;
4880
+ --origam-parallax__layer---will-change: transform;
4881
+ --origam-parallax__layer---transform-origin: center center;
4655
4882
  --origam-slide---transition-duration: 200ms;
4656
4883
  --origam-slide---transition-duration-reverse: 200ms;
4657
4884
  --origam-slide---transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -4796,5 +5023,96 @@
4796
5023
  --origam-treeview---size-color: #a3a3a3;
4797
5024
  --origam-treeview---guide-color: #262626;
4798
5025
  --origam-treeview---guide-thickness: 1px;
5026
+ --origam-tabs---background-color: rgba(0, 0, 0, 0);
5027
+ --origam-tabs---border-color: #262626;
5028
+ --origam-tabs---border-style: solid;
5029
+ --origam-tabs---border-width: 0px;
5030
+ --origam-tabs---border-radius: 0px;
5031
+ --origam-tabs---color: #fafafa;
5032
+ --origam-tabs---padding-block: 0px;
5033
+ --origam-tabs---padding-inline: 0px;
5034
+ --origam-tabs---gap: 0px;
5035
+ --origam-tabs---height: 48px;
5036
+ --origam-tabs__item---color: #a3a3a3;
5037
+ --origam-tabs__item---background-color: rgba(0, 0, 0, 0);
5038
+ --origam-tabs__item---padding-inline: 16px;
5039
+ --origam-tabs__item---padding-block: 0px;
5040
+ --origam-tabs__item---gap: 8px;
5041
+ --origam-tabs__item---height: 48px;
5042
+ --origam-tabs__item---font-size: 0.75rem;
5043
+ --origam-tabs__item---font-weight: 500;
5044
+ --origam-tabs__item---letter-spacing: 0.0094em;
5045
+ --origam-tabs__item---text-transform: none;
5046
+ --origam-tabs__item---border-radius: 0px;
5047
+ --origam-tabs__item---border-width: 0px;
5048
+ --origam-tabs__item---transition-duration: 100ms;
5049
+ --origam-tabs__item---transition-easing: cubic-bezier(0.4, 0, 0.2, 1);
5050
+ --origam-tabs__indicator---color: #8b5cf6;
5051
+ --origam-tabs__indicator---height: 2px;
5052
+ --origam-tabs__panel---padding-block: 16px;
5053
+ --origam-tabs__panel---padding-inline: 0px;
5054
+ --origam-tabs__panel---transition-duration: 100ms;
5055
+ --origam-snackbar-stack---z-index: 1060;
5056
+ --origam-snackbar-stack---gap: 12px;
5057
+ --origam-snackbar-stack---max-width: 420px;
5058
+ --origam-snackbar-stack---transition-duration: 100ms;
5059
+ --origam-snackbar-stack---position-top: 16px;
5060
+ --origam-snackbar-stack---position-bottom: 16px;
5061
+ --origam-snackbar-stack---position-left: 16px;
5062
+ --origam-snackbar-stack---position-right: 16px;
5063
+ --origam-snackbar-stack__item---gap: 12px;
5064
+ --origam-snackbar-stack__item---min-width: 288px;
5065
+ --origam-snackbar-stack__item---max-width: 420px;
5066
+ --origam-snackbar-stack__item---padding: 12px 14px;
5067
+ --origam-snackbar-stack__item---border-radius: 8px;
5068
+ --origam-snackbar-stack__item---border-width: 1px;
5069
+ --origam-snackbar-stack__item---background-color: #0a0a0a;
5070
+ --origam-snackbar-stack__item---border-color: #262626;
5071
+ --origam-snackbar-stack__item---color: #fafafa;
5072
+ --origam-snackbar-stack__item---box-shadow: 0px 6px 24px 0px rgba(0,0,0,0.05), 0px 0px 0px 1px rgba(0,0,0,0.08);
5073
+ --origam-snackbar-stack__item---font-size: 0.875rem;
5074
+ --origam-snackbar-stack__item---content-gap: 8px;
5075
+ --origam-snackbar-stack__item---prepend-color: currentColor;
5076
+ --origam-snackbar-stack__item---text-gap: 4px;
5077
+ --origam-snackbar-stack__item---title-font-weight: 600;
5078
+ --origam-snackbar-stack__item---message-font-weight: 400;
5079
+ --origam-snackbar-stack__item---message-color: currentColor;
5080
+ --origam-snackbar-stack__item---message-opacity: 0.85;
5081
+ --origam-snackbar-stack__item---action-color: #ffffff;
5082
+ --origam-command-palette---z-index: 1050;
5083
+ --origam-command-palette---padding-top: 18vh;
5084
+ --origam-command-palette---width: 640px;
5085
+ --origam-command-palette---max-height: 480px;
5086
+ --origam-command-palette---background-color: #171717;
5087
+ --origam-command-palette---color: #fafafa;
5088
+ --origam-command-palette---border-color: #262626;
5089
+ --origam-command-palette---border-width: 1px;
5090
+ --origam-command-palette---border-radius: 12px;
5091
+ --origam-command-palette---box-shadow: 0px 11px 8px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12);
5092
+ --origam-command-palette__input---padding: 12px 16px;
5093
+ --origam-command-palette__input---font-size: 0.875rem;
5094
+ --origam-command-palette__input---border-color: #262626;
5095
+ --origam-command-palette__input---icon-color: #a3a3a3;
5096
+ --origam-command-palette__input---placeholder-color: #525252;
5097
+ --origam-command-palette__list---padding: 8px;
5098
+ --origam-command-palette__item---height: 40px;
5099
+ --origam-command-palette__item---padding: 8px 12px;
5100
+ --origam-command-palette__item---border-radius: 8px;
5101
+ --origam-command-palette__item---background-color: rgba(0, 0, 0, 0);
5102
+ --origam-command-palette__item---background-color-active: #262626;
5103
+ --origam-command-palette__item---color: #fafafa;
5104
+ --origam-command-palette__item---color-active: #fafafa;
5105
+ --origam-command-palette__item---icon-color: #a3a3a3;
5106
+ --origam-command-palette__item---description-color: #a3a3a3;
5107
+ --origam-command-palette---item-kbd-gap: 4px;
5108
+ --origam-command-palette---group-title-padding: 10px 12px 6px;
5109
+ --origam-command-palette---group-title-color: #a3a3a3;
5110
+ --origam-command-palette---group-title-font-size: 0.625rem;
5111
+ --origam-command-palette__empty---color: #a3a3a3;
5112
+ --origam-command-palette__footer---padding: 8px 12px;
5113
+ --origam-command-palette__footer---border-color: #262626;
5114
+ --origam-command-palette__footer---color: #a3a3a3;
5115
+ --origam-command-palette__backdrop---background-color: rgba(0, 0, 0, 0.45);
5116
+ --origam-command-palette__backdrop---backdrop-filter: blur(6px);
4799
5117
  }
4800
5118
  }