@namroodinc/liquid-editorial 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -2
  3. package/dist/chunks/Icon-CGY1FNXT.js +77 -0
  4. package/dist/chunks/Icon-CGY1FNXT.js.map +1 -0
  5. package/dist/chunks/Icon-CWsA1W83.cjs +2 -0
  6. package/dist/chunks/Icon-CWsA1W83.cjs.map +1 -0
  7. package/dist/components/AssetGrid/index.cjs +2 -0
  8. package/dist/components/AssetGrid/index.cjs.map +1 -0
  9. package/dist/components/AssetGrid/index.d.cts +54 -0
  10. package/dist/components/AssetGrid/index.d.cts.map +1 -0
  11. package/dist/components/AssetGrid/index.d.ts +54 -0
  12. package/dist/components/AssetGrid/index.d.ts.map +1 -0
  13. package/dist/components/AssetGrid/index.js +137 -0
  14. package/dist/components/AssetGrid/index.js.map +1 -0
  15. package/dist/components/AssetGrid/style.css +196 -0
  16. package/dist/components/Avatar/index.cjs +2 -0
  17. package/dist/components/Avatar/index.cjs.map +1 -0
  18. package/dist/components/Avatar/index.d.cts +24 -0
  19. package/dist/components/Avatar/index.d.cts.map +1 -0
  20. package/dist/components/Avatar/index.d.ts +24 -0
  21. package/dist/components/Avatar/index.d.ts.map +1 -0
  22. package/dist/components/Avatar/index.js +43 -0
  23. package/dist/components/Avatar/index.js.map +1 -0
  24. package/dist/components/Avatar/style.css +70 -0
  25. package/dist/components/Badge/index.cjs +2 -0
  26. package/dist/components/Badge/index.cjs.map +1 -0
  27. package/dist/components/Badge/index.d.cts +25 -0
  28. package/dist/components/Badge/index.d.cts.map +1 -0
  29. package/dist/components/Badge/index.d.ts +25 -0
  30. package/dist/components/Badge/index.d.ts.map +1 -0
  31. package/dist/components/Badge/index.js +28 -0
  32. package/dist/components/Badge/index.js.map +1 -0
  33. package/dist/components/Badge/style.css +103 -0
  34. package/dist/components/Board/index.cjs +2 -0
  35. package/dist/components/Board/index.cjs.map +1 -0
  36. package/dist/components/Board/index.d.cts +62 -0
  37. package/dist/components/Board/index.d.cts.map +1 -0
  38. package/dist/components/Board/index.d.ts +62 -0
  39. package/dist/components/Board/index.d.ts.map +1 -0
  40. package/dist/components/Board/index.js +227 -0
  41. package/dist/components/Board/index.js.map +1 -0
  42. package/dist/components/Board/style.css +145 -0
  43. package/dist/components/Button/index.cjs +2 -0
  44. package/dist/components/Button/index.cjs.map +1 -0
  45. package/dist/components/Button/index.d.cts +22 -0
  46. package/dist/components/Button/index.d.cts.map +1 -0
  47. package/dist/components/Button/index.d.ts +22 -0
  48. package/dist/components/Button/index.d.ts.map +1 -0
  49. package/dist/components/Button/index.js +37 -0
  50. package/dist/components/Button/index.js.map +1 -0
  51. package/dist/components/Button/style.css +139 -0
  52. package/dist/components/ButtonGroup/index.cjs +2 -0
  53. package/dist/components/ButtonGroup/index.cjs.map +1 -0
  54. package/dist/components/ButtonGroup/index.d.cts +17 -0
  55. package/dist/components/ButtonGroup/index.d.cts.map +1 -0
  56. package/dist/components/ButtonGroup/index.d.ts +17 -0
  57. package/dist/components/ButtonGroup/index.d.ts.map +1 -0
  58. package/dist/components/ButtonGroup/index.js +18 -0
  59. package/dist/components/ButtonGroup/index.js.map +1 -0
  60. package/dist/components/ButtonGroup/style.css +66 -0
  61. package/dist/components/Choice/index.cjs +2 -0
  62. package/dist/components/Choice/index.cjs.map +1 -0
  63. package/dist/components/Choice/index.d.cts +25 -0
  64. package/dist/components/Choice/index.d.cts.map +1 -0
  65. package/dist/components/Choice/index.d.ts +25 -0
  66. package/dist/components/Choice/index.d.ts.map +1 -0
  67. package/dist/components/Choice/index.js +58 -0
  68. package/dist/components/Choice/index.js.map +1 -0
  69. package/dist/components/Choice/style.css +96 -0
  70. package/dist/components/Container/index.cjs +2 -0
  71. package/dist/components/Container/index.cjs.map +1 -0
  72. package/dist/components/Container/index.d.cts +19 -0
  73. package/dist/components/Container/index.d.cts.map +1 -0
  74. package/dist/components/Container/index.d.ts +19 -0
  75. package/dist/components/Container/index.d.ts.map +1 -0
  76. package/dist/components/Container/index.js +20 -0
  77. package/dist/components/Container/index.js.map +1 -0
  78. package/dist/components/Container/style.css +41 -0
  79. package/dist/components/DatePicker/index.cjs +2 -0
  80. package/dist/components/DatePicker/index.cjs.map +1 -0
  81. package/dist/components/DatePicker/index.d.cts +57 -0
  82. package/dist/components/DatePicker/index.d.cts.map +1 -0
  83. package/dist/components/DatePicker/index.d.ts +57 -0
  84. package/dist/components/DatePicker/index.d.ts.map +1 -0
  85. package/dist/components/DatePicker/index.js +248 -0
  86. package/dist/components/DatePicker/index.js.map +1 -0
  87. package/dist/components/DatePicker/style.css +149 -0
  88. package/dist/components/Drawer/index.cjs +2 -0
  89. package/dist/components/Drawer/index.cjs.map +1 -0
  90. package/dist/components/Drawer/index.d.cts +23 -0
  91. package/dist/components/Drawer/index.d.cts.map +1 -0
  92. package/dist/components/Drawer/index.d.ts +23 -0
  93. package/dist/components/Drawer/index.d.ts.map +1 -0
  94. package/dist/components/Drawer/index.js +85 -0
  95. package/dist/components/Drawer/index.js.map +1 -0
  96. package/dist/components/Drawer/style.css +147 -0
  97. package/dist/components/EntryPicker/index.cjs +2 -0
  98. package/dist/components/EntryPicker/index.cjs.map +1 -0
  99. package/dist/components/EntryPicker/index.d.cts +36 -0
  100. package/dist/components/EntryPicker/index.d.cts.map +1 -0
  101. package/dist/components/EntryPicker/index.d.ts +36 -0
  102. package/dist/components/EntryPicker/index.d.ts.map +1 -0
  103. package/dist/components/EntryPicker/index.js +178 -0
  104. package/dist/components/EntryPicker/index.js.map +1 -0
  105. package/dist/components/EntryPicker/style.css +162 -0
  106. package/dist/components/Field/index.cjs +2 -0
  107. package/dist/components/Field/index.cjs.map +1 -0
  108. package/dist/components/Field/index.d.cts +19 -0
  109. package/dist/components/Field/index.d.cts.map +1 -0
  110. package/dist/components/Field/index.d.ts +19 -0
  111. package/dist/components/Field/index.d.ts.map +1 -0
  112. package/dist/components/Field/index.js +41 -0
  113. package/dist/components/Field/index.js.map +1 -0
  114. package/dist/components/Field/style.css +100 -0
  115. package/dist/components/FieldAffix/index.cjs +2 -0
  116. package/dist/components/FieldAffix/index.cjs.map +1 -0
  117. package/dist/components/FieldAffix/index.d.cts +19 -0
  118. package/dist/components/FieldAffix/index.d.cts.map +1 -0
  119. package/dist/components/FieldAffix/index.d.ts +19 -0
  120. package/dist/components/FieldAffix/index.d.ts.map +1 -0
  121. package/dist/components/FieldAffix/index.js +45 -0
  122. package/dist/components/FieldAffix/index.js.map +1 -0
  123. package/dist/components/FieldAffix/style.css +54 -0
  124. package/dist/components/Grid/index.cjs +2 -0
  125. package/dist/components/Grid/index.cjs.map +1 -0
  126. package/dist/components/Grid/index.d.cts +44 -0
  127. package/dist/components/Grid/index.d.cts.map +1 -0
  128. package/dist/components/Grid/index.d.ts +44 -0
  129. package/dist/components/Grid/index.d.ts.map +1 -0
  130. package/dist/components/Grid/index.js +49 -0
  131. package/dist/components/Grid/index.js.map +1 -0
  132. package/dist/components/Grid/style.css +226 -0
  133. package/dist/components/Icon/icons.d.cts +64 -0
  134. package/dist/components/Icon/icons.d.cts.map +1 -0
  135. package/dist/components/Icon/icons.d.ts +64 -0
  136. package/dist/components/Icon/icons.d.ts.map +1 -0
  137. package/dist/components/Icon/index.cjs +1 -0
  138. package/dist/components/Icon/index.d.cts +15 -0
  139. package/dist/components/Icon/index.d.cts.map +1 -0
  140. package/dist/components/Icon/index.d.ts +15 -0
  141. package/dist/components/Icon/index.d.ts.map +1 -0
  142. package/dist/components/Icon/index.js +1 -0
  143. package/dist/components/Icon/style.css +10 -0
  144. package/dist/components/ImageCropper/index.cjs +2 -0
  145. package/dist/components/ImageCropper/index.cjs.map +1 -0
  146. package/dist/components/ImageCropper/index.d.cts +66 -0
  147. package/dist/components/ImageCropper/index.d.cts.map +1 -0
  148. package/dist/components/ImageCropper/index.d.ts +66 -0
  149. package/dist/components/ImageCropper/index.d.ts.map +1 -0
  150. package/dist/components/ImageCropper/index.js +263 -0
  151. package/dist/components/ImageCropper/index.js.map +1 -0
  152. package/dist/components/ImageCropper/style.css +160 -0
  153. package/dist/components/Menu/index.cjs +2 -0
  154. package/dist/components/Menu/index.cjs.map +1 -0
  155. package/dist/components/Menu/index.d.cts +35 -0
  156. package/dist/components/Menu/index.d.cts.map +1 -0
  157. package/dist/components/Menu/index.d.ts +35 -0
  158. package/dist/components/Menu/index.d.ts.map +1 -0
  159. package/dist/components/Menu/index.js +110 -0
  160. package/dist/components/Menu/index.js.map +1 -0
  161. package/dist/components/Menu/style.css +87 -0
  162. package/dist/components/Modal/index.cjs +2 -0
  163. package/dist/components/Modal/index.cjs.map +1 -0
  164. package/dist/components/Modal/index.d.cts +19 -0
  165. package/dist/components/Modal/index.d.cts.map +1 -0
  166. package/dist/components/Modal/index.d.ts +19 -0
  167. package/dist/components/Modal/index.d.ts.map +1 -0
  168. package/dist/components/Modal/index.js +84 -0
  169. package/dist/components/Modal/index.js.map +1 -0
  170. package/dist/components/Modal/style.css +106 -0
  171. package/dist/components/NumberField/index.cjs +2 -0
  172. package/dist/components/NumberField/index.cjs.map +1 -0
  173. package/dist/components/NumberField/index.d.cts +50 -0
  174. package/dist/components/NumberField/index.d.cts.map +1 -0
  175. package/dist/components/NumberField/index.d.ts +50 -0
  176. package/dist/components/NumberField/index.d.ts.map +1 -0
  177. package/dist/components/NumberField/index.js +124 -0
  178. package/dist/components/NumberField/index.js.map +1 -0
  179. package/dist/components/NumberField/style.css +85 -0
  180. package/dist/components/Popover/index.cjs +2 -0
  181. package/dist/components/Popover/index.cjs.map +1 -0
  182. package/dist/components/Popover/index.d.cts +28 -0
  183. package/dist/components/Popover/index.d.cts.map +1 -0
  184. package/dist/components/Popover/index.d.ts +28 -0
  185. package/dist/components/Popover/index.d.ts.map +1 -0
  186. package/dist/components/Popover/index.js +52 -0
  187. package/dist/components/Popover/index.js.map +1 -0
  188. package/dist/components/Popover/style.css +23 -0
  189. package/dist/components/RichTextEditor/index.cjs +2 -0
  190. package/dist/components/RichTextEditor/index.cjs.map +1 -0
  191. package/dist/components/RichTextEditor/index.d.cts +23 -0
  192. package/dist/components/RichTextEditor/index.d.cts.map +1 -0
  193. package/dist/components/RichTextEditor/index.d.ts +23 -0
  194. package/dist/components/RichTextEditor/index.d.ts.map +1 -0
  195. package/dist/components/RichTextEditor/index.js +175 -0
  196. package/dist/components/RichTextEditor/index.js.map +1 -0
  197. package/dist/components/RichTextEditor/style.css +136 -0
  198. package/dist/components/SearchField/index.cjs +2 -0
  199. package/dist/components/SearchField/index.cjs.map +1 -0
  200. package/dist/components/SearchField/index.d.cts +11 -0
  201. package/dist/components/SearchField/index.d.cts.map +1 -0
  202. package/dist/components/SearchField/index.d.ts +11 -0
  203. package/dist/components/SearchField/index.d.ts.map +1 -0
  204. package/dist/components/SearchField/index.js +49 -0
  205. package/dist/components/SearchField/index.js.map +1 -0
  206. package/dist/components/SearchField/style.css +27 -0
  207. package/dist/components/Select/index.cjs +2 -0
  208. package/dist/components/Select/index.cjs.map +1 -0
  209. package/dist/components/Select/index.d.cts +26 -0
  210. package/dist/components/Select/index.d.cts.map +1 -0
  211. package/dist/components/Select/index.d.ts +26 -0
  212. package/dist/components/Select/index.d.ts.map +1 -0
  213. package/dist/components/Select/index.js +129 -0
  214. package/dist/components/Select/index.js.map +1 -0
  215. package/dist/components/Select/style.css +88 -0
  216. package/dist/components/SelectionCard/index.cjs +2 -0
  217. package/dist/components/SelectionCard/index.cjs.map +1 -0
  218. package/dist/components/SelectionCard/index.d.cts +32 -0
  219. package/dist/components/SelectionCard/index.d.cts.map +1 -0
  220. package/dist/components/SelectionCard/index.d.ts +32 -0
  221. package/dist/components/SelectionCard/index.d.ts.map +1 -0
  222. package/dist/components/SelectionCard/index.js +71 -0
  223. package/dist/components/SelectionCard/index.js.map +1 -0
  224. package/dist/components/SelectionCard/style.css +133 -0
  225. package/dist/components/SideNav/index.cjs +2 -0
  226. package/dist/components/SideNav/index.cjs.map +1 -0
  227. package/dist/components/SideNav/index.d.cts +58 -0
  228. package/dist/components/SideNav/index.d.cts.map +1 -0
  229. package/dist/components/SideNav/index.d.ts +58 -0
  230. package/dist/components/SideNav/index.d.ts.map +1 -0
  231. package/dist/components/SideNav/index.js +113 -0
  232. package/dist/components/SideNav/index.js.map +1 -0
  233. package/dist/components/SideNav/style.css +184 -0
  234. package/dist/components/Skeleton/index.cjs +2 -0
  235. package/dist/components/Skeleton/index.cjs.map +1 -0
  236. package/dist/components/Skeleton/index.d.cts +21 -0
  237. package/dist/components/Skeleton/index.d.cts.map +1 -0
  238. package/dist/components/Skeleton/index.d.ts +21 -0
  239. package/dist/components/Skeleton/index.d.ts.map +1 -0
  240. package/dist/components/Skeleton/index.js +31 -0
  241. package/dist/components/Skeleton/index.js.map +1 -0
  242. package/dist/components/Skeleton/style.css +55 -0
  243. package/dist/components/Slider/index.cjs +2 -0
  244. package/dist/components/Slider/index.cjs.map +1 -0
  245. package/dist/components/Slider/index.d.cts +40 -0
  246. package/dist/components/Slider/index.d.cts.map +1 -0
  247. package/dist/components/Slider/index.d.ts +40 -0
  248. package/dist/components/Slider/index.d.ts.map +1 -0
  249. package/dist/components/Slider/index.js +117 -0
  250. package/dist/components/Slider/index.js.map +1 -0
  251. package/dist/components/Slider/style.css +156 -0
  252. package/dist/components/SortableList/index.cjs +2 -0
  253. package/dist/components/SortableList/index.cjs.map +1 -0
  254. package/dist/components/SortableList/index.d.cts +27 -0
  255. package/dist/components/SortableList/index.d.cts.map +1 -0
  256. package/dist/components/SortableList/index.d.ts +27 -0
  257. package/dist/components/SortableList/index.d.ts.map +1 -0
  258. package/dist/components/SortableList/index.js +85 -0
  259. package/dist/components/SortableList/index.js.map +1 -0
  260. package/dist/components/SortableList/style.css +71 -0
  261. package/dist/components/Stepper/index.cjs +2 -0
  262. package/dist/components/Stepper/index.cjs.map +1 -0
  263. package/dist/components/Stepper/index.d.cts +32 -0
  264. package/dist/components/Stepper/index.d.cts.map +1 -0
  265. package/dist/components/Stepper/index.d.ts +32 -0
  266. package/dist/components/Stepper/index.d.ts.map +1 -0
  267. package/dist/components/Stepper/index.js +69 -0
  268. package/dist/components/Stepper/index.js.map +1 -0
  269. package/dist/components/Stepper/style.css +154 -0
  270. package/dist/components/SubNav/index.cjs +2 -0
  271. package/dist/components/SubNav/index.cjs.map +1 -0
  272. package/dist/components/SubNav/index.d.cts +31 -0
  273. package/dist/components/SubNav/index.d.cts.map +1 -0
  274. package/dist/components/SubNav/index.d.ts +31 -0
  275. package/dist/components/SubNav/index.d.ts.map +1 -0
  276. package/dist/components/SubNav/index.js +62 -0
  277. package/dist/components/SubNav/index.js.map +1 -0
  278. package/dist/components/SubNav/style.css +86 -0
  279. package/dist/components/Switch/index.cjs +2 -0
  280. package/dist/components/Switch/index.cjs.map +1 -0
  281. package/dist/components/Switch/index.d.cts +12 -0
  282. package/dist/components/Switch/index.d.cts.map +1 -0
  283. package/dist/components/Switch/index.d.ts +12 -0
  284. package/dist/components/Switch/index.d.ts.map +1 -0
  285. package/dist/components/Switch/index.js +37 -0
  286. package/dist/components/Switch/index.js.map +1 -0
  287. package/dist/components/Switch/style.css +65 -0
  288. package/dist/components/Table/index.cjs +2 -0
  289. package/dist/components/Table/index.cjs.map +1 -0
  290. package/dist/components/Table/index.d.cts +54 -0
  291. package/dist/components/Table/index.d.cts.map +1 -0
  292. package/dist/components/Table/index.d.ts +54 -0
  293. package/dist/components/Table/index.d.ts.map +1 -0
  294. package/dist/components/Table/index.js +102 -0
  295. package/dist/components/Table/index.js.map +1 -0
  296. package/dist/components/Table/style.css +122 -0
  297. package/dist/components/TagsInput/index.cjs +2 -0
  298. package/dist/components/TagsInput/index.cjs.map +1 -0
  299. package/dist/components/TagsInput/index.d.cts +22 -0
  300. package/dist/components/TagsInput/index.d.cts.map +1 -0
  301. package/dist/components/TagsInput/index.d.ts +22 -0
  302. package/dist/components/TagsInput/index.d.ts.map +1 -0
  303. package/dist/components/TagsInput/index.js +60 -0
  304. package/dist/components/TagsInput/index.js.map +1 -0
  305. package/dist/components/TagsInput/style.css +83 -0
  306. package/dist/components/TextField/index.cjs +2 -0
  307. package/dist/components/TextField/index.cjs.map +1 -0
  308. package/dist/components/TextField/index.d.cts +11 -0
  309. package/dist/components/TextField/index.d.cts.map +1 -0
  310. package/dist/components/TextField/index.d.ts +11 -0
  311. package/dist/components/TextField/index.d.ts.map +1 -0
  312. package/dist/components/TextField/index.js +29 -0
  313. package/dist/components/TextField/index.js.map +1 -0
  314. package/dist/components/TextField/style.css +1 -0
  315. package/dist/components/Time/index.cjs +2 -0
  316. package/dist/components/Time/index.cjs.map +1 -0
  317. package/dist/components/Time/index.d.cts +35 -0
  318. package/dist/components/Time/index.d.cts.map +1 -0
  319. package/dist/components/Time/index.d.ts +35 -0
  320. package/dist/components/Time/index.d.ts.map +1 -0
  321. package/dist/components/Time/index.js +98 -0
  322. package/dist/components/Time/index.js.map +1 -0
  323. package/dist/components/Time/style.css +30 -0
  324. package/dist/components/Toast/index.cjs +2 -0
  325. package/dist/components/Toast/index.cjs.map +1 -0
  326. package/dist/components/Toast/index.d.cts +30 -0
  327. package/dist/components/Toast/index.d.cts.map +1 -0
  328. package/dist/components/Toast/index.d.ts +30 -0
  329. package/dist/components/Toast/index.d.ts.map +1 -0
  330. package/dist/components/Toast/index.js +96 -0
  331. package/dist/components/Toast/index.js.map +1 -0
  332. package/dist/components/Toast/style.css +80 -0
  333. package/dist/components/TopNav/index.cjs +2 -0
  334. package/dist/components/TopNav/index.cjs.map +1 -0
  335. package/dist/components/TopNav/index.d.cts +28 -0
  336. package/dist/components/TopNav/index.d.cts.map +1 -0
  337. package/dist/components/TopNav/index.d.ts +28 -0
  338. package/dist/components/TopNav/index.d.ts.map +1 -0
  339. package/dist/components/TopNav/index.js +45 -0
  340. package/dist/components/TopNav/index.js.map +1 -0
  341. package/dist/components/TopNav/style.css +80 -0
  342. package/dist/index.cjs +1 -0
  343. package/dist/index.d.cts +77 -0
  344. package/dist/index.d.cts.map +1 -0
  345. package/dist/index.d.ts +77 -0
  346. package/dist/index.d.ts.map +1 -0
  347. package/dist/index.js +38 -0
  348. package/dist/reset.css +15 -0
  349. package/dist/reset.css.d.ts +2 -0
  350. package/dist/styles.css +39 -0
  351. package/dist/styles.css.d.ts +2 -0
  352. package/dist/tokens.css +457 -0
  353. package/dist/tokens.css.d.ts +2 -0
  354. package/package.json +130 -4
@@ -0,0 +1,457 @@
1
+ @layer tokens {
2
+ /* ─────────────────────────────────────────────────────────────────────────
3
+ * Scale tokens. Theme-independent. Never redeclared in a theme block.
4
+ * Radius and spacing use the library's shared pixel and rem scales.
5
+ * ───────────────────────────────────────────────────────────────────────── */
6
+ :root {
7
+ --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
8
+ --font-mono: 'SFMono-Regular', Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
9
+
10
+ --font-weight-regular: 400;
11
+ --font-weight-medium: 500;
12
+ --font-weight-semibold: 600;
13
+ --font-weight-bold: 700;
14
+
15
+ --font-size-xs: 0.75rem; /* 12 — badges, micro-labels */
16
+ --font-size-sm: 0.875rem; /* 14 — buttons, secondary cells */
17
+ --font-size-md: 1rem; /* 16 — body */
18
+ --font-size-md-lg: 1.0625rem; /* 17 — primary table cell */
19
+ --font-size-lead: 1.25rem; /* 20 */
20
+ --font-size-lg: 1.5rem; /* 24 — section titles */
21
+ --font-size-xl: 2rem; /* 32 — page titles */
22
+ --font-size-display: 3rem; /* 48 — empty states, marketing only */
23
+
24
+ --line-height-tight: 1.15;
25
+ --line-height-body: 1.5;
26
+
27
+ --space-1: 0.25rem;
28
+ --space-2: 0.5rem;
29
+ --space-3: 0.75rem;
30
+ --space-4: 1rem;
31
+ --space-5: 1.25rem;
32
+ --space-6: 1.5rem;
33
+ --space-8: 2rem;
34
+ --space-10: 2.5rem;
35
+ --space-12: 3rem;
36
+
37
+ --radius-sm: 6px;
38
+ --radius-md: 8px;
39
+ --radius-lg: 12px;
40
+ --radius-xl: 16px;
41
+ --radius-pill: 999px;
42
+ --field-radius: 4px;
43
+
44
+ --field-height-sm: var(--space-8); /* 32 */
45
+ --field-height-md: var(--space-10); /* 40 */
46
+ --field-height-lg: var(--space-12); /* 48 */
47
+ --field-font-size-sm: 0.8125rem; /* 13 */
48
+ --field-font-size-md: 0.9375rem; /* 15 */
49
+
50
+ /* Writing surfaces — the editor's three body heights. */
51
+ --editor-height-sm: 8rem;
52
+ --editor-height-md: 14rem;
53
+ --editor-height-lg: 22rem;
54
+
55
+ /* Navigation — one rail width, one bar height, everywhere in the product. */
56
+ --sidenav-width: 17rem;
57
+ --sidenav-width-collapsed: 4rem;
58
+ --nav-item-height: var(--space-10);
59
+ --topnav-height: 4rem;
60
+ --subnav-height: var(--space-12);
61
+ --choice-card-min-width: 15rem;
62
+
63
+ /* Stepper — one marker size, one connector weight. */
64
+ --stepper-marker-size: var(--space-8);
65
+ --stepper-marker-size-sm: var(--space-6);
66
+ --stepper-connector-width: var(--control-border-width);
67
+
68
+
69
+ /* Boards — one lane width, so every board in the product lines up. */
70
+ --board-column-width: 19rem;
71
+ --board-column-max-height: 34rem;
72
+ --board-column-min-body: 6rem;
73
+
74
+ /* Media library — one tile width everywhere, so grids line up across
75
+ * pickers, drawers and full pages. The grid auto-fills to the container. */
76
+ --asset-tile-min-width: 11rem;
77
+ --asset-tile-gap: var(--space-4);
78
+ --asset-thumb-aspect: 4 / 3;
79
+
80
+ /* Cropper — the stage is a fixed working surface, not a preview. */
81
+ --cropper-stage-height: 22rem;
82
+ --cropper-grid-color: rgb(255 255 255 / 28%);
83
+ --cropper-veil: rgb(0 0 0 / 45%);
84
+
85
+ /* Pickers — one popover height everywhere a list floats over the page. */
86
+ --menu-max-height: 18rem;
87
+ --calendar-cell-size: 2.25rem;
88
+
89
+ /* Sliders — one track, one thumb, in every size of field. */
90
+ --slider-track-height: 6px;
91
+ --slider-thumb-size: 20px;
92
+
93
+ /* Switch — the only control whose knob moves; the frame never does. */
94
+ --switch-width: 44px;
95
+ --switch-height: 24px;
96
+ --switch-knob-size: 16px;
97
+
98
+ /* Entry picker — thumbnail square and the list's working height. */
99
+ --entry-thumb-size: 3rem;
100
+ --entry-list-max-height: 24rem;
101
+
102
+
103
+
104
+
105
+
106
+
107
+ /* Bold layer. The house style lives here — a heavy outer frame, hairline
108
+ * inner rules, and a solid selection rail. Changing these three values
109
+ * restyles every collection surface in the product at once. */
110
+ --frame-width: 3px;
111
+ --frame-color: var(--color-text);
112
+ --rule-width: 1px;
113
+ --rule-color: var(--color-border-muted);
114
+ --rail-width: 4px;
115
+ --rail-color: var(--color-primary);
116
+
117
+ /* Hard border. Buttons, fields, checkboxes and badges all carry a constant
118
+ * 2px stroke; state stays on the fill so nothing shifts on interaction.
119
+ * Deliberately thinner than --frame-width: the container must outrank its
120
+ * contents. Controls stroke in --control-border-color; badges stroke in
121
+ * their own tone, so a badge never competes with a button for attention. */
122
+ --control-border-width: 2px;
123
+ --control-border-color: var(--color-text);
124
+ --badge-border-width: 2px;
125
+
126
+ --table-head-size: 0.8125rem; /* 13 */
127
+ --table-head-weight: var(--font-weight-bold);
128
+ --table-head-tracking: 0.06em;
129
+ --table-cell-size: var(--font-size-md);
130
+ --table-cell-primary-size: var(--font-size-md-lg);
131
+ --table-row-pad-block: var(--space-4);
132
+ --table-row-pad-inline: var(--space-5);
133
+
134
+ --icon-sm: 16px;
135
+ --icon-md: 20px;
136
+ --icon-lg: 24px;
137
+ --icon-stroke: 2.25;
138
+
139
+ --scrim: rgb(15 23 42 / 42%);
140
+ --overlay-radius: var(--radius-xl);
141
+ --drawer-width: 560px;
142
+ --drawer-width-wide: 760px;
143
+ --modal-width: 720px;
144
+ --modal-width-wide: 920px;
145
+ --dialog-width: 440px;
146
+ --toast-width: 400px;
147
+ --toast-duration: 5000ms;
148
+
149
+ --content-width-md: 840px;
150
+ --content-width-lg: 1040px;
151
+ --content-max-width: 88rem;
152
+ --sidebar-width: 16rem;
153
+ --breakpoint-nav: 56rem;
154
+
155
+ /* ── The measure scale ─────────────────────────────────────────────────
156
+ * Five widths, and every content area in the product picks one. The same
157
+ * five values are the breakpoints components respond at, so a layout
158
+ * changes shape exactly where a measure runs out. Container queries take
159
+ * literals (custom properties are not allowed there), so the numbers are
160
+ * repeated in Grid.css / Container.css — change them together. */
161
+ --width-xs: 24rem; /* 384 — a dialog body */
162
+ --width-sm: 30rem; /* 480 — a single-column form */
163
+ --width-md: 40rem; /* 640 — prose */
164
+ --width-lg: 60rem; /* 960 — a page body */
165
+ --width-xl: 80rem; /* 1280 — a full working surface */
166
+ --container-gutter: var(--space-6);
167
+
168
+
169
+ --skeleton-duration: 1400ms;
170
+ --skeleton-easing: ease-in-out;
171
+ --skeleton-stagger: 60ms;
172
+
173
+ --duration-fast: 120ms;
174
+ --duration-base: 150ms;
175
+ --duration-panel: 280ms;
176
+ --ease-standard: ease;
177
+ --ease-panel: cubic-bezier(0.22, 1, 0.36, 1);
178
+
179
+ /* Field fill system. Derived from --color-text / --color-danger, which every
180
+ * theme redefines — so these six never need duplicating into a theme block.
181
+ * Any container that is not the page canvas overrides --field-bg locally. */
182
+ --field-bg: var(--color-canvas);
183
+ --tint-rest: 4%;
184
+ --tint-hover: 7%;
185
+ --tint-focus: 11%;
186
+ --tint-pressed: 15%;
187
+ --field-rest: color-mix(in srgb, var(--color-text) var(--tint-rest), var(--field-bg));
188
+ --field-hover: color-mix(in srgb, var(--color-text) var(--tint-hover), var(--field-bg));
189
+ --field-focus: color-mix(in srgb, var(--color-text) var(--tint-focus), var(--field-bg));
190
+ --field-pressed: color-mix(in srgb, var(--color-text) var(--tint-pressed), var(--field-bg));
191
+ --field-invalid: color-mix(in srgb, var(--color-danger) 9%, var(--field-bg));
192
+ --field-invalid-focus: color-mix(in srgb, var(--color-danger) 16%, var(--field-bg));
193
+
194
+ /* ── The interaction ladder ────────────────────────────────────────────
195
+ * Every interactive surface moves rest → hover → pressed on FILL ONLY.
196
+ * Two kinds of ladder, and a component uses one or the other, never both:
197
+ *
198
+ * SOLID --color-<tone> rest
199
+ * --color-<tone>-hover hover hand-picked per theme, because
200
+ * --color-<tone>-pressed pressed a dark theme lightens where a
201
+ * light theme darkens
202
+ *
203
+ * SOFT --color-<tone>-soft rest derived — one rule, every tone,
204
+ * --color-<tone>-soft-hover hover every theme, nothing to hand-pick
205
+ * --color-<tone>-soft-pressed press and nothing to get wrong
206
+ *
207
+ * Text on a soft fill is the tone itself, except where that fails 4.5:1 —
208
+ * those get a --color-<tone>-text override in their theme block, and the
209
+ * override is the exception that proves the rule rather than a habit.
210
+ *
211
+ * Solid ladders exist only for the three tones that are ever a button fill:
212
+ * primary, danger, accent. Success, warning and review are tones, not
213
+ * actions — if one of them ever needs a solid ladder, that is a decision
214
+ * record, not a token. */
215
+ --soft-step-hover: 10%;
216
+ --soft-step-pressed: 18%;
217
+ --color-primary-soft-hover: color-mix(in srgb, var(--color-primary) var(--soft-step-hover), var(--color-primary-soft));
218
+ --color-primary-soft-pressed: color-mix(in srgb, var(--color-primary) var(--soft-step-pressed), var(--color-primary-soft));
219
+ --color-accent-soft-hover: color-mix(in srgb, var(--color-accent) var(--soft-step-hover), var(--color-accent-soft));
220
+ --color-accent-soft-pressed: color-mix(in srgb, var(--color-accent) var(--soft-step-pressed), var(--color-accent-soft));
221
+ --color-success-soft-hover: color-mix(in srgb, var(--color-success) var(--soft-step-hover), var(--color-success-soft));
222
+ --color-success-soft-pressed: color-mix(in srgb, var(--color-success) var(--soft-step-pressed), var(--color-success-soft));
223
+ --color-warning-soft-hover: color-mix(in srgb, var(--color-warning) var(--soft-step-hover), var(--color-warning-soft));
224
+ --color-warning-soft-pressed: color-mix(in srgb, var(--color-warning) var(--soft-step-pressed), var(--color-warning-soft));
225
+ --color-danger-soft-hover: color-mix(in srgb, var(--color-danger) var(--soft-step-hover), var(--color-danger-soft));
226
+ --color-danger-soft-pressed: color-mix(in srgb, var(--color-danger) var(--soft-step-pressed), var(--color-danger-soft));
227
+ --color-review-soft-hover: color-mix(in srgb, var(--color-review) var(--soft-step-hover), var(--color-review-soft));
228
+ --color-review-soft-pressed: color-mix(in srgb, var(--color-review) var(--soft-step-pressed), var(--color-review-soft));
229
+
230
+ /* Text on a soft fill. Every theme may override; only two need to. */
231
+ --color-primary-text: var(--color-primary);
232
+ --color-accent-text: var(--color-accent);
233
+ --color-success-text: var(--color-success);
234
+ --color-warning-text: var(--color-warning);
235
+ --color-danger-text: var(--color-danger);
236
+ --color-review-text: var(--color-review);
237
+
238
+ /* Derived tone borders, used by soft-filled callouts and banners. */
239
+ --color-primary-border: color-mix(in srgb, var(--color-primary) 50%, var(--color-primary-soft));
240
+ --color-success-border: color-mix(in srgb, var(--color-success) 50%, var(--color-success-soft));
241
+ --color-warning-border: color-mix(in srgb, var(--color-warning) 50%, var(--color-warning-soft));
242
+ --color-danger-border: color-mix(in srgb, var(--color-danger) 50%, var(--color-danger-soft));
243
+
244
+ /* Publication status. Aliases only — every theme inherits these by
245
+ redefining the semantic tones above. Six states, no seventh. */
246
+ --status-draft: var(--color-border-strong);
247
+ --status-draft-text: var(--color-text-muted);
248
+ --status-draft-soft: var(--color-surface-muted);
249
+ --status-scheduled: var(--color-primary);
250
+ --status-scheduled-soft: var(--color-primary-soft);
251
+ --status-published: var(--color-success);
252
+ --status-published-soft: var(--color-success-soft);
253
+ --status-changed: var(--color-warning);
254
+ --status-changed-soft: var(--color-warning-soft);
255
+ --status-unpublished: var(--color-danger);
256
+ --status-unpublished-soft: var(--color-danger-soft);
257
+ --status-archived: var(--color-border);
258
+ --status-archived-text: color-mix(in srgb, var(--color-text-muted) 70%, var(--color-surface));
259
+ --status-archived-soft: transparent;
260
+ /* Status tabs are interactive, so each soft needs its two further steps.
261
+ * Four inherit their tone's ladder; draft and archived have no tone of
262
+ * their own and fall back to the neutral field ladder. */
263
+ --status-draft-soft-hover: var(--field-hover);
264
+ --status-draft-soft-pressed: var(--field-pressed);
265
+ --status-scheduled-soft-hover: var(--color-primary-soft-hover);
266
+ --status-scheduled-soft-pressed: var(--color-primary-soft-pressed);
267
+ --status-published-soft-hover: var(--color-success-soft-hover);
268
+ --status-published-soft-pressed: var(--color-success-soft-pressed);
269
+ --status-changed-soft-hover: var(--color-warning-soft-hover);
270
+ --status-changed-soft-pressed: var(--color-warning-soft-pressed);
271
+ --status-unpublished-soft-hover: var(--color-danger-soft-hover);
272
+ --status-unpublished-soft-pressed: var(--color-danger-soft-pressed);
273
+ --status-archived-soft-hover: var(--field-hover);
274
+ --status-archived-soft-pressed: var(--field-pressed);
275
+
276
+ }
277
+
278
+ /* ── Theme: light (default) ───────────────────────────────────────────── */
279
+ :root {
280
+ color-scheme: light;
281
+ --color-canvas: #f4f6f9;
282
+ --color-surface: #ffffff;
283
+ --color-surface-raised: #fbfcfe;
284
+ --color-surface-subtle: #eef2f7;
285
+ --color-border: #d5dce7;
286
+ --color-border-muted: #e1e8f0;
287
+ --color-border-strong: #b8c4d6;
288
+ --color-text: #0f1728;
289
+ --color-text-muted: #51617b;
290
+ --color-text-on-solid: #ffffff;
291
+ --color-primary: #0052cc;
292
+ --color-primary-hover: #003f9e;
293
+ --color-primary-pressed: #00337f;
294
+ --color-primary-soft: #dbe8ff;
295
+ --color-success: #136c3f;
296
+ --color-success-soft: #daf4e6;
297
+ --color-warning: #8a5800;
298
+ --color-warning-soft: #fff0c9;
299
+ --color-danger: #a72020;
300
+ --color-danger-soft: #fee7e7;
301
+ --color-review: #7c53d6;
302
+ --color-review-soft: #efe9fb;
303
+ --color-focus: #3a74ff;
304
+ --color-accent: var(--color-primary);
305
+ --color-accent-hover: var(--color-primary-hover);
306
+ --color-accent-pressed: var(--color-primary-pressed);
307
+ --color-accent-soft: var(--color-primary-soft);
308
+ --color-text-on-accent: #ffffff;
309
+ --shadow-sm: 0 1px 2px rgb(16 24 40 / 6%), 0 1px 3px rgb(16 24 40 / 9%);
310
+ --shadow-md: 0 2px 4px -2px rgb(16 24 40 / 8%), 0 6px 12px -3px rgb(16 24 40 / 10%);
311
+ --shadow-lg: 0 8px 16px -6px rgb(16 24 40 / 12%), 0 18px 40px -12px rgb(16 24 40 / 16%);
312
+ }
313
+
314
+ /* ── Theme: dark ──────────────────────────────────────────────────────── */
315
+ [data-theme='dark'] {
316
+ color-scheme: dark;
317
+ --color-canvas: #0d1117;
318
+ --color-surface: #161b22;
319
+ --color-surface-raised: #1c2230;
320
+ --color-surface-subtle: #21262d;
321
+ --color-border: #30363d;
322
+ --color-border-muted: #21262d;
323
+ --color-border-strong: #484f58;
324
+ --color-text: #e6edf3;
325
+ --color-text-muted: #8b949e;
326
+ --color-text-on-solid: #0d1117;
327
+ --color-primary: #388bfd;
328
+ --color-primary-hover: #58a6ff;
329
+ --color-primary-pressed: #79b8ff;
330
+ --color-primary-soft: #1a2e4a;
331
+ --color-success: #3fb950;
332
+ --color-success-soft: #122a1d;
333
+ --color-warning: #d29922;
334
+ --color-warning-soft: #2d2208;
335
+ --color-danger: #f85149;
336
+ --color-danger-hover: #ff6b63;
337
+ --color-danger-pressed: #ff8a84;
338
+ --color-danger-soft: #3a1515;
339
+ --color-review: #a78bfa;
340
+ --color-review-soft: #2d1f4a;
341
+ --color-focus: #58a6ff;
342
+ --color-accent: var(--color-primary);
343
+ --color-accent-hover: var(--color-primary-hover);
344
+ --color-accent-pressed: var(--color-primary-pressed);
345
+ --color-accent-soft: var(--color-primary-soft);
346
+ --color-text-on-accent: #0d1117;
347
+ --shadow-sm: 0 1px 2px rgb(0 0 0 / 30%), 0 1px 3px rgb(0 0 0 / 40%);
348
+ --shadow-md: 0 4px 10px -3px rgb(0 0 0 / 45%);
349
+ --shadow-lg: 0 12px 32px -8px rgb(0 0 0 / 55%);
350
+ }
351
+
352
+ /* ── Theme: cherry-glaze ──────────────────────────────────────────────── */
353
+ [data-theme='cherry-glaze'] {
354
+ color-scheme: light;
355
+ --color-canvas: #e7d8cd;
356
+ --color-surface: #f5f2ea;
357
+ --color-surface-raised: #efe4dc;
358
+ --color-surface-subtle: #d7a3be;
359
+ --color-border: #d7a3be;
360
+ --color-border-muted: #e7d8cd;
361
+ --color-border-strong: #b86b9c;
362
+ --color-text: #2f1d28;
363
+ --color-text-muted: #7c6470;
364
+ --color-text-on-solid: #f5f2ea;
365
+ --color-primary: #496f24;
366
+ --color-primary-hover: #3a5a1c;
367
+ --color-primary-pressed: #2d4615;
368
+ --color-primary-soft: #b7c991;
369
+ --color-success: #496f24;
370
+ --color-success-soft: #b7c991;
371
+ --color-warning: #6f4f24;
372
+ --color-warning-soft: #e7d8cd;
373
+ --color-danger: #8f3e6e;
374
+ --color-danger-hover: #743158;
375
+ --color-danger-pressed: #5c2746;
376
+ --color-danger-soft: #d7a3be;
377
+ --color-review: #7c53d6;
378
+ --color-review-soft: #e8e0f8;
379
+ --color-focus: #7fa34c;
380
+ --color-accent: #b86b9c;
381
+ --color-accent-hover: #a55b8a;
382
+ --color-accent-pressed: #8f4c76;
383
+ --color-accent-soft: #e8c2d3;
384
+ /* Cherry Glaze is one of the two overrides: the accent pink lands at 2.9:1
385
+ * on its own soft fill, so text on it goes darker than the accent itself. */
386
+ --color-accent-text: #66304f;
387
+ --color-text-on-accent: #201018;
388
+ --shadow-sm: 0 1px 2px rgb(73 111 36 / 8%), 0 1px 3px rgb(73 111 36 / 12%);
389
+ --shadow-md: 0 2px 4px -2px rgb(73 111 36 / 10%), 0 6px 12px -3px rgb(73 111 36 / 12%);
390
+ --shadow-lg: 0 8px 16px -6px rgb(73 111 36 / 14%), 0 18px 40px -12px rgb(73 111 36 / 18%);
391
+ }
392
+
393
+ /* ── Theme: black-hawaii ──────────────────────────────────────────────── */
394
+ [data-theme='black-hawaii'] {
395
+ color-scheme: dark;
396
+ --color-canvas: #101010;
397
+ --color-surface: #242321;
398
+ --color-surface-raised: #3a2a22;
399
+ --color-surface-subtle: #3a2a22;
400
+ --color-border: #6e6a63;
401
+ --color-border-muted: #3a2a22;
402
+ --color-border-strong: #c99a5f;
403
+ --color-text: #f1e6d6;
404
+ --color-text-muted: #c99a5f;
405
+ --color-text-on-solid: #101010;
406
+ --color-primary: #d66a3a;
407
+ --color-primary-hover: #e0854f;
408
+ --color-primary-pressed: #ea9f73;
409
+ --color-primary-soft: #3a2a22;
410
+ --color-success: #4e8f8a;
411
+ --color-success-soft: #242321;
412
+ --color-warning: #c99a5f;
413
+ --color-warning-soft: #3a2a22;
414
+ /* Lifted from #c44040, which sat at 3.8:1 against --color-text-on-solid. */
415
+ --color-danger: #d45454;
416
+ --color-danger-hover: #df6868;
417
+ --color-danger-pressed: #e98282;
418
+ --color-danger-soft: #3a2a22;
419
+ --color-review: #9b7fe8;
420
+ --color-review-soft: #2a2040;
421
+ --color-focus: #e0854f;
422
+ --color-accent: #d66a3a;
423
+ --color-accent-hover: #e0854f;
424
+ --color-accent-pressed: #ea9f73;
425
+ --color-accent-soft: #3a2a22;
426
+ /* The second override: the accent orange is 3.9:1 on its own soft fill. */
427
+ --color-accent-text: #e0854f;
428
+ --color-text-on-accent: #101010;
429
+ --shadow-sm: 0 1px 2px rgb(0 0 0 / 40%), 0 1px 3px rgb(0 0 0 / 50%);
430
+ --shadow-md: 0 4px 10px -3px rgb(0 0 0 / 55%);
431
+ --shadow-lg: 0 12px 32px -8px rgb(0 0 0 / 62%);
432
+ }
433
+
434
+ /* Skeletons pulse between the two fills a control moves between — structure
435
+ * never pulses, only content. Stagger by --skeleton-stagger per row or tile.
436
+ * The element MUST also set background: var(--field-rest) statically: during
437
+ * the stagger delay, and whenever the animation is suppressed by
438
+ * prefers-reduced-motion, the keyframe supplies no fill at all. */
439
+ @keyframes skeleton-pulse {
440
+ 0%,
441
+ 100% {
442
+ background-color: var(--field-rest);
443
+ }
444
+
445
+ 50% {
446
+ background-color: var(--field-hover);
447
+ }
448
+ }
449
+
450
+ @media (prefers-reduced-motion: reduce) {
451
+ :root {
452
+ --duration-fast: 0ms;
453
+ --duration-base: 0ms;
454
+ --duration-panel: 0ms;
455
+ }
456
+ }
457
+ }
@@ -0,0 +1,2 @@
1
+ declare const stylesheet: string;
2
+ export default stylesheet;
package/package.json CHANGED
@@ -1,6 +1,132 @@
1
1
  {
2
2
  "name": "@namroodinc/liquid-editorial",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "A bold, accessible React component library for editorial products.",
5
+ "author": "Namrood Inc",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.cjs",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "typesVersions": {
12
+ "*": {
13
+ "components/*": ["dist/components/*/index.d.ts"],
14
+ "styles.css": ["dist/styles.css.d.ts"],
15
+ "tokens.css": ["dist/tokens.css.d.ts"],
16
+ "reset.css": ["dist/reset.css.d.ts"]
17
+ }
18
+ },
19
+ "files": ["dist", "README.md", "LICENSE"],
20
+ "sideEffects": ["**/*.css"],
21
+ "exports": {
22
+ ".": {
23
+ "import": {
24
+ "types": "./dist/index.d.ts",
25
+ "default": "./dist/index.js"
26
+ },
27
+ "require": {
28
+ "types": "./dist/index.d.cts",
29
+ "default": "./dist/index.cjs"
30
+ }
31
+ },
32
+ "./components/*": {
33
+ "import": {
34
+ "types": "./dist/components/*/index.d.ts",
35
+ "default": "./dist/components/*/index.js"
36
+ },
37
+ "require": {
38
+ "types": "./dist/components/*/index.d.cts",
39
+ "default": "./dist/components/*/index.cjs"
40
+ }
41
+ },
42
+ "./styles.css": {
43
+ "types": "./dist/styles.css.d.ts",
44
+ "default": "./dist/styles.css"
45
+ },
46
+ "./tokens.css": {
47
+ "types": "./dist/tokens.css.d.ts",
48
+ "default": "./dist/tokens.css"
49
+ },
50
+ "./reset.css": {
51
+ "types": "./dist/reset.css.d.ts",
52
+ "default": "./dist/reset.css"
53
+ },
54
+ "./package.json": "./package.json"
55
+ },
56
+ "repository": {
57
+ "type": "git",
58
+ "url": "git+https://github.com/namroodinc/liquid-editorial.git"
59
+ },
60
+ "bugs": { "url": "https://github.com/namroodinc/liquid-editorial/issues" },
61
+ "homepage": "https://github.com/namroodinc/liquid-editorial#readme",
62
+ "keywords": ["react", "components", "design-system", "editorial", "typescript"],
63
+ "publishConfig": { "access": "public" },
64
+ "scripts": {
65
+ "clean": "node scripts/clean.mjs",
66
+ "dev": "storybook dev -p 6006",
67
+ "storybook": "storybook dev -p 6006",
68
+ "build:storybook": "storybook build",
69
+ "build": "npm run clean && vite build && tsc -p tsconfig.build.json && node scripts/copy-declarations.mjs && node scripts/copy-css.mjs",
70
+ "typecheck": "tsc --noEmit",
71
+ "lint": "eslint .",
72
+ "test": "vitest run",
73
+ "test:watch": "vitest",
74
+ "test:coverage": "vitest run --coverage",
75
+ "fallow": "fallow dead-code --no-cache --fail-on-issues",
76
+ "fallow:report": "node scripts/generate-fallow-report.mjs",
77
+ "package:smoke": "node scripts/package-smoke.mjs",
78
+ "package:lint": "publint --strict",
79
+ "package:types": "attw --pack .",
80
+ "package:check": "npm run build && publint --strict && attw --pack . && npm run package:smoke",
81
+ "validate": "npm run lint && npm run typecheck && npm run test:coverage && npm run build:storybook && npm run package:check && npm run fallow",
82
+ "prepack": "npm run build"
83
+ },
84
+ "peerDependencies": {
85
+ "react": ">=18.2.0 <20",
86
+ "react-dom": ">=18.2.0 <20"
87
+ },
88
+ "dependencies": {
89
+ "@dnd-kit/core": "^6.3.1",
90
+ "@dnd-kit/modifiers": "^9.0.0",
91
+ "@dnd-kit/sortable": "^10.0.0",
92
+ "@dnd-kit/utilities": "^3.2.2",
93
+ "@tiptap/extension-link": "^3.30.3",
94
+ "@tiptap/extension-placeholder": "^3.30.3",
95
+ "@tiptap/react": "^3.30.3",
96
+ "@tiptap/starter-kit": "^3.30.3",
97
+ "lucide-react": "^1.33.0"
98
+ },
99
+ "devDependencies": {
100
+ "@arethetypeswrong/cli": "^0.18.2",
101
+ "@eslint/js": "^9.39.1",
102
+ "@storybook/addon-a11y": "^10.0.0",
103
+ "@storybook/addon-docs": "^10.0.0",
104
+ "@storybook/react": "^10.0.0",
105
+ "@storybook/react-vite": "^10.0.0",
106
+ "@testing-library/jest-dom": "^6.9.1",
107
+ "@testing-library/react": "^16.3.0",
108
+ "@testing-library/user-event": "^14.6.1",
109
+ "@types/jest-axe": "^3.5.9",
110
+ "@types/node": "^24.0.0",
111
+ "@types/react": "^19.2.0",
112
+ "@types/react-dom": "^19.2.0",
113
+ "@vitejs/plugin-react": "^5.2.0",
114
+ "@vitest/coverage-v8": "^4.0.0",
115
+ "eslint": "^9.39.1",
116
+ "eslint-plugin-react-hooks": "^7.0.1",
117
+ "eslint-plugin-react-refresh": "^0.4.24",
118
+ "fallow": "2.95.0",
119
+ "globals": "^16.5.0",
120
+ "jest-axe": "^10.0.0",
121
+ "jsdom": "^27.0.0",
122
+ "publint": "^0.3.16",
123
+ "react": "^19.2.0",
124
+ "react-dom": "^19.2.0",
125
+ "storybook": "^10.0.0",
126
+ "typescript": "^5.9.0",
127
+ "typescript-eslint": "^8.46.2",
128
+ "vite": "^8.0.16",
129
+ "vitest": "^4.0.0"
130
+ },
131
+ "engines": { "node": ">=22" }
132
+ }