@astryxdesign/lab 0.0.0-bootstrap.0 → 0.1.2-canary.04e71b2

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 (513) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/LICENSE +21 -0
  3. package/README.md +47 -1
  4. package/dist/Chart/Chart.d.ts +77 -0
  5. package/dist/Chart/Chart.d.ts.map +1 -0
  6. package/dist/Chart/Chart.js +247 -0
  7. package/dist/Chart/ChartArea.d.ts +28 -0
  8. package/dist/Chart/ChartArea.d.ts.map +1 -0
  9. package/dist/Chart/ChartArea.js +71 -0
  10. package/dist/Chart/ChartAxis.d.ts +27 -0
  11. package/dist/Chart/ChartAxis.d.ts.map +1 -0
  12. package/dist/Chart/ChartAxis.js +147 -0
  13. package/dist/Chart/ChartBar.d.ts +19 -0
  14. package/dist/Chart/ChartBar.d.ts.map +1 -0
  15. package/dist/Chart/ChartBar.js +61 -0
  16. package/dist/Chart/ChartBrush.d.ts +59 -0
  17. package/dist/Chart/ChartBrush.d.ts.map +1 -0
  18. package/dist/Chart/ChartBrush.js +197 -0
  19. package/dist/Chart/ChartCandlestick.d.ts +50 -0
  20. package/dist/Chart/ChartCandlestick.d.ts.map +1 -0
  21. package/dist/Chart/ChartCandlestick.js +138 -0
  22. package/dist/Chart/ChartContext.d.ts +5 -0
  23. package/dist/Chart/ChartContext.d.ts.map +1 -0
  24. package/dist/Chart/ChartContext.js +20 -0
  25. package/dist/Chart/ChartDot.d.ts +18 -0
  26. package/dist/Chart/ChartDot.d.ts.map +1 -0
  27. package/dist/Chart/ChartDot.js +43 -0
  28. package/dist/Chart/ChartDotGL.d.ts +16 -0
  29. package/dist/Chart/ChartDotGL.d.ts.map +1 -0
  30. package/dist/Chart/ChartDotGL.js +135 -0
  31. package/dist/Chart/ChartDotGLInteractive.d.ts +41 -0
  32. package/dist/Chart/ChartDotGLInteractive.d.ts.map +1 -0
  33. package/dist/Chart/ChartDotGLInteractive.js +446 -0
  34. package/dist/Chart/ChartErrorBar.d.ts +23 -0
  35. package/dist/Chart/ChartErrorBar.d.ts.map +1 -0
  36. package/dist/Chart/ChartErrorBar.js +68 -0
  37. package/dist/Chart/ChartGrid.d.ts +17 -0
  38. package/dist/Chart/ChartGrid.d.ts.map +1 -0
  39. package/dist/Chart/ChartGrid.js +67 -0
  40. package/dist/Chart/ChartHeatmapGL.d.ts +10 -0
  41. package/dist/Chart/ChartHeatmapGL.d.ts.map +1 -0
  42. package/dist/Chart/ChartHeatmapGL.js +171 -0
  43. package/dist/Chart/ChartLegend.d.ts +60 -0
  44. package/dist/Chart/ChartLegend.d.ts.map +1 -0
  45. package/dist/Chart/ChartLegend.js +161 -0
  46. package/dist/Chart/ChartLine.d.ts +23 -0
  47. package/dist/Chart/ChartLine.d.ts.map +1 -0
  48. package/dist/Chart/ChartLine.js +64 -0
  49. package/dist/Chart/ChartReferenceLine.d.ts +11 -0
  50. package/dist/Chart/ChartReferenceLine.d.ts.map +1 -0
  51. package/dist/Chart/ChartReferenceLine.js +109 -0
  52. package/dist/Chart/ChartSelect.d.ts +9 -0
  53. package/dist/Chart/ChartSelect.d.ts.map +1 -0
  54. package/dist/Chart/ChartSelect.js +90 -0
  55. package/dist/Chart/ChartStreamGL.d.ts +17 -0
  56. package/dist/Chart/ChartStreamGL.d.ts.map +1 -0
  57. package/dist/Chart/ChartStreamGL.js +157 -0
  58. package/dist/Chart/ChartTooltip.d.ts +85 -0
  59. package/dist/Chart/ChartTooltip.d.ts.map +1 -0
  60. package/dist/Chart/ChartTooltip.js +335 -0
  61. package/dist/Chart/ChartZoom.d.ts +23 -0
  62. package/dist/Chart/ChartZoom.d.ts.map +1 -0
  63. package/dist/Chart/ChartZoom.js +314 -0
  64. package/dist/Chart/formatters.d.ts +33 -0
  65. package/dist/Chart/formatters.d.ts.map +1 -0
  66. package/dist/Chart/formatters.js +101 -0
  67. package/dist/Chart/getChartColors.d.ts +56 -0
  68. package/dist/Chart/getChartColors.d.ts.map +1 -0
  69. package/dist/Chart/getChartColors.js +150 -0
  70. package/dist/Chart/index.d.ts +29 -0
  71. package/dist/Chart/index.d.ts.map +1 -0
  72. package/dist/Chart/index.js +29 -0
  73. package/dist/Chart/m4.d.ts +36 -0
  74. package/dist/Chart/m4.d.ts.map +1 -0
  75. package/dist/Chart/m4.js +106 -0
  76. package/dist/Chart/types.d.ts +55 -0
  77. package/dist/Chart/types.d.ts.map +1 -0
  78. package/dist/Chart/types.js +1 -0
  79. package/dist/Chart/useChartColors.d.ts +16 -0
  80. package/dist/Chart/useChartColors.d.ts.map +1 -0
  81. package/dist/Chart/useChartColors.js +30 -0
  82. package/dist/Chart/useChartRange.d.ts +50 -0
  83. package/dist/Chart/useChartRange.d.ts.map +1 -0
  84. package/dist/Chart/useChartRange.js +90 -0
  85. package/dist/Chart/utils.d.ts +15 -0
  86. package/dist/Chart/utils.d.ts.map +1 -0
  87. package/dist/Chart/utils.js +24 -0
  88. package/dist/Chart/webgl.d.ts +62 -0
  89. package/dist/Chart/webgl.d.ts.map +1 -0
  90. package/dist/Chart/webgl.js +169 -0
  91. package/dist/ChartV2/Chart.d.ts +32 -0
  92. package/dist/ChartV2/Chart.d.ts.map +1 -0
  93. package/dist/ChartV2/Chart.js +281 -0
  94. package/dist/ChartV2/ChartAxis.d.ts +36 -0
  95. package/dist/ChartV2/ChartAxis.d.ts.map +1 -0
  96. package/dist/ChartV2/ChartAxis.js +161 -0
  97. package/dist/ChartV2/ChartGrid.d.ts +20 -0
  98. package/dist/ChartV2/ChartGrid.d.ts.map +1 -0
  99. package/dist/ChartV2/ChartGrid.js +76 -0
  100. package/dist/ChartV2/ChartLegend.d.ts +14 -0
  101. package/dist/ChartV2/ChartLegend.d.ts.map +1 -0
  102. package/dist/ChartV2/ChartLegend.js +54 -0
  103. package/dist/ChartV2/ChartSwatch.d.ts +36 -0
  104. package/dist/ChartV2/ChartSwatch.d.ts.map +1 -0
  105. package/dist/ChartV2/ChartSwatch.js +82 -0
  106. package/dist/ChartV2/ChartTooltip.d.ts +46 -0
  107. package/dist/ChartV2/ChartTooltip.d.ts.map +1 -0
  108. package/dist/ChartV2/ChartTooltip.js +267 -0
  109. package/dist/ChartV2/ChartV2Context.d.ts +4 -0
  110. package/dist/ChartV2/ChartV2Context.d.ts.map +1 -0
  111. package/dist/ChartV2/ChartV2Context.js +12 -0
  112. package/dist/ChartV2/index.d.ts +13 -0
  113. package/dist/ChartV2/index.d.ts.map +1 -0
  114. package/dist/ChartV2/index.js +10 -0
  115. package/dist/ChartV2/layout.d.ts +25 -0
  116. package/dist/ChartV2/layout.d.ts.map +1 -0
  117. package/dist/ChartV2/layout.js +195 -0
  118. package/dist/ChartV2/legend.d.ts +18 -0
  119. package/dist/ChartV2/legend.d.ts.map +1 -0
  120. package/dist/ChartV2/legend.js +24 -0
  121. package/dist/ChartV2/marks/area.d.ts +19 -0
  122. package/dist/ChartV2/marks/area.d.ts.map +1 -0
  123. package/dist/ChartV2/marks/area.js +109 -0
  124. package/dist/ChartV2/marks/band.d.ts +9 -0
  125. package/dist/ChartV2/marks/band.d.ts.map +1 -0
  126. package/dist/ChartV2/marks/band.js +59 -0
  127. package/dist/ChartV2/marks/bar.d.ts +17 -0
  128. package/dist/ChartV2/marks/bar.d.ts.map +1 -0
  129. package/dist/ChartV2/marks/bar.js +120 -0
  130. package/dist/ChartV2/marks/candlestick.d.ts +15 -0
  131. package/dist/ChartV2/marks/candlestick.d.ts.map +1 -0
  132. package/dist/ChartV2/marks/candlestick.js +83 -0
  133. package/dist/ChartV2/marks/dot.d.ts +15 -0
  134. package/dist/ChartV2/marks/dot.d.ts.map +1 -0
  135. package/dist/ChartV2/marks/dot.js +65 -0
  136. package/dist/ChartV2/marks/dotGL.d.ts +16 -0
  137. package/dist/ChartV2/marks/dotGL.d.ts.map +1 -0
  138. package/dist/ChartV2/marks/dotGL.js +178 -0
  139. package/dist/ChartV2/marks/dotGLInteractive.d.ts +30 -0
  140. package/dist/ChartV2/marks/dotGLInteractive.d.ts.map +1 -0
  141. package/dist/ChartV2/marks/dotGLInteractive.js +464 -0
  142. package/dist/ChartV2/marks/errorBar.d.ts +27 -0
  143. package/dist/ChartV2/marks/errorBar.d.ts.map +1 -0
  144. package/dist/ChartV2/marks/errorBar.js +87 -0
  145. package/dist/ChartV2/marks/heatmapGL.d.ts +23 -0
  146. package/dist/ChartV2/marks/heatmapGL.d.ts.map +1 -0
  147. package/dist/ChartV2/marks/heatmapGL.js +242 -0
  148. package/dist/ChartV2/marks/index.d.ts +13 -0
  149. package/dist/ChartV2/marks/index.d.ts.map +1 -0
  150. package/dist/ChartV2/marks/index.js +14 -0
  151. package/dist/ChartV2/marks/line.d.ts +18 -0
  152. package/dist/ChartV2/marks/line.d.ts.map +1 -0
  153. package/dist/ChartV2/marks/line.js +76 -0
  154. package/dist/ChartV2/marks/referenceLine.d.ts +35 -0
  155. package/dist/ChartV2/marks/referenceLine.d.ts.map +1 -0
  156. package/dist/ChartV2/marks/referenceLine.js +186 -0
  157. package/dist/ChartV2/marks/streamGL.d.ts +36 -0
  158. package/dist/ChartV2/marks/streamGL.d.ts.map +1 -0
  159. package/dist/ChartV2/marks/streamGL.js +204 -0
  160. package/dist/ChartV2/tooltip.d.ts +38 -0
  161. package/dist/ChartV2/tooltip.d.ts.map +1 -0
  162. package/dist/ChartV2/tooltip.js +54 -0
  163. package/dist/ChartV2/types.d.ts +115 -0
  164. package/dist/ChartV2/types.d.ts.map +1 -0
  165. package/dist/ChartV2/types.js +35 -0
  166. package/dist/ChatReasoning/ChatReasoning.d.ts +51 -0
  167. package/dist/ChatReasoning/ChatReasoning.d.ts.map +1 -0
  168. package/dist/ChatReasoning/ChatReasoning.js +236 -0
  169. package/dist/CircularProgress/CircularProgress.d.ts +101 -0
  170. package/dist/CircularProgress/CircularProgress.d.ts.map +1 -0
  171. package/dist/CircularProgress/CircularProgress.js +263 -0
  172. package/dist/CircularProgress/index.d.ts +6 -0
  173. package/dist/CircularProgress/index.d.ts.map +1 -0
  174. package/dist/CircularProgress/index.js +8 -0
  175. package/dist/CodeBlock/index.d.ts +8 -0
  176. package/dist/CodeBlock/index.d.ts.map +1 -0
  177. package/dist/CodeBlock/index.js +9 -0
  178. package/dist/CodeEditor/CodeEditor.d.ts +46 -0
  179. package/dist/CodeEditor/CodeEditor.d.ts.map +1 -0
  180. package/dist/CodeEditor/CodeEditor.js +396 -0
  181. package/dist/CodeEditor/index.d.ts +6 -0
  182. package/dist/CodeEditor/index.d.ts.map +1 -0
  183. package/dist/CodeEditor/index.js +7 -0
  184. package/dist/Radial/RadialArea.d.ts +25 -0
  185. package/dist/Radial/RadialArea.d.ts.map +1 -0
  186. package/dist/Radial/RadialArea.js +91 -0
  187. package/dist/Radial/RadialAxis.d.ts +14 -0
  188. package/dist/Radial/RadialAxis.d.ts.map +1 -0
  189. package/dist/Radial/RadialAxis.js +55 -0
  190. package/dist/Radial/RadialChart.d.ts +70 -0
  191. package/dist/Radial/RadialChart.d.ts.map +1 -0
  192. package/dist/Radial/RadialChart.js +174 -0
  193. package/dist/Radial/RadialContext.d.ts +5 -0
  194. package/dist/Radial/RadialContext.d.ts.map +1 -0
  195. package/dist/Radial/RadialContext.js +19 -0
  196. package/dist/Radial/RadialGrid.d.ts +14 -0
  197. package/dist/Radial/RadialGrid.d.ts.map +1 -0
  198. package/dist/Radial/RadialGrid.js +70 -0
  199. package/dist/Radial/RadialSlice.d.ts +23 -0
  200. package/dist/Radial/RadialSlice.d.ts.map +1 -0
  201. package/dist/Radial/RadialSlice.js +85 -0
  202. package/dist/Radial/RadialTooltip.d.ts +44 -0
  203. package/dist/Radial/RadialTooltip.d.ts.map +1 -0
  204. package/dist/Radial/RadialTooltip.js +284 -0
  205. package/dist/Radial/index.d.ts +9 -0
  206. package/dist/Radial/index.d.ts.map +1 -0
  207. package/dist/Radial/index.js +9 -0
  208. package/dist/Radial/types.d.ts +39 -0
  209. package/dist/Radial/types.d.ts.map +1 -0
  210. package/dist/Radial/types.js +1 -0
  211. package/dist/SVGIcon/SVGIcon.d.ts +87 -0
  212. package/dist/SVGIcon/SVGIcon.d.ts.map +1 -0
  213. package/dist/SVGIcon/SVGIcon.js +299 -0
  214. package/dist/SVGIcon/icons.d.ts +49 -0
  215. package/dist/SVGIcon/icons.d.ts.map +1 -0
  216. package/dist/SVGIcon/icons.js +326 -0
  217. package/dist/SVGIcon/index.d.ts +15 -0
  218. package/dist/SVGIcon/index.d.ts.map +1 -0
  219. package/dist/SVGIcon/index.js +22 -0
  220. package/dist/SVGIcon/pathTransforms.d.ts +35 -0
  221. package/dist/SVGIcon/pathTransforms.d.ts.map +1 -0
  222. package/dist/SVGIcon/pathTransforms.js +644 -0
  223. package/dist/SVGIcon/tokens.stylex.d.ts +37 -0
  224. package/dist/SVGIcon/tokens.stylex.d.ts.map +1 -0
  225. package/dist/SVGIcon/tokens.stylex.js +40 -0
  226. package/dist/SVGIcon/variations.stylex.d.ts +44 -0
  227. package/dist/SVGIcon/variations.stylex.d.ts.map +1 -0
  228. package/dist/SVGIcon/variations.stylex.js +119 -0
  229. package/dist/SVGIcon/xif-examples.d.ts +22 -0
  230. package/dist/SVGIcon/xif-examples.d.ts.map +1 -0
  231. package/dist/SVGIcon/xif-examples.js +202 -0
  232. package/dist/SVGIcon/xif-types.d.ts +129 -0
  233. package/dist/SVGIcon/xif-types.d.ts.map +1 -0
  234. package/dist/SVGIcon/xif-types.js +1 -0
  235. package/dist/Sankey/SankeyChart.d.ts +72 -0
  236. package/dist/Sankey/SankeyChart.d.ts.map +1 -0
  237. package/dist/Sankey/SankeyChart.js +162 -0
  238. package/dist/Sankey/SankeyContext.d.ts +5 -0
  239. package/dist/Sankey/SankeyContext.d.ts.map +1 -0
  240. package/dist/Sankey/SankeyContext.js +20 -0
  241. package/dist/Sankey/SankeyGrid.d.ts +20 -0
  242. package/dist/Sankey/SankeyGrid.d.ts.map +1 -0
  243. package/dist/Sankey/SankeyGrid.js +53 -0
  244. package/dist/Sankey/SankeyLabel.d.ts +11 -0
  245. package/dist/Sankey/SankeyLabel.d.ts.map +1 -0
  246. package/dist/Sankey/SankeyLabel.js +179 -0
  247. package/dist/Sankey/SankeyLink.d.ts +29 -0
  248. package/dist/Sankey/SankeyLink.d.ts.map +1 -0
  249. package/dist/Sankey/SankeyLink.js +139 -0
  250. package/dist/Sankey/SankeyNode.d.ts +15 -0
  251. package/dist/Sankey/SankeyNode.d.ts.map +1 -0
  252. package/dist/Sankey/SankeyNode.js +56 -0
  253. package/dist/Sankey/index.d.ts +8 -0
  254. package/dist/Sankey/index.d.ts.map +1 -0
  255. package/dist/Sankey/index.js +8 -0
  256. package/dist/Sankey/layout.d.ts +26 -0
  257. package/dist/Sankey/layout.d.ts.map +1 -0
  258. package/dist/Sankey/layout.js +157 -0
  259. package/dist/Sankey/types.d.ts +84 -0
  260. package/dist/Sankey/types.d.ts.map +1 -0
  261. package/dist/Sankey/types.js +1 -0
  262. package/dist/Schedule/CalendarEvent.d.ts +36 -0
  263. package/dist/Schedule/CalendarEvent.d.ts.map +1 -0
  264. package/dist/Schedule/CalendarEvent.js +35 -0
  265. package/dist/Schedule/DayView.d.ts +8 -0
  266. package/dist/Schedule/DayView.d.ts.map +1 -0
  267. package/dist/Schedule/DayView.js +105 -0
  268. package/dist/Schedule/ListView.d.ts +6 -0
  269. package/dist/Schedule/ListView.d.ts.map +1 -0
  270. package/dist/Schedule/ListView.js +171 -0
  271. package/dist/Schedule/MonthlyView.d.ts +6 -0
  272. package/dist/Schedule/MonthlyView.d.ts.map +1 -0
  273. package/dist/Schedule/MonthlyView.js +270 -0
  274. package/dist/Schedule/Schedule.d.ts +22 -0
  275. package/dist/Schedule/Schedule.d.ts.map +1 -0
  276. package/dist/Schedule/Schedule.js +185 -0
  277. package/dist/Schedule/TimeGridView.d.ts +12 -0
  278. package/dist/Schedule/TimeGridView.d.ts.map +1 -0
  279. package/dist/Schedule/TimeGridView.js +364 -0
  280. package/dist/Schedule/WeeklyView.d.ts +9 -0
  281. package/dist/Schedule/WeeklyView.d.ts.map +1 -0
  282. package/dist/Schedule/WeeklyView.js +112 -0
  283. package/dist/Schedule/context.d.ts +20 -0
  284. package/dist/Schedule/context.d.ts.map +1 -0
  285. package/dist/Schedule/context.js +19 -0
  286. package/dist/Schedule/dateMath.d.ts +21 -0
  287. package/dist/Schedule/dateMath.d.ts.map +1 -0
  288. package/dist/Schedule/dateMath.js +63 -0
  289. package/dist/Schedule/index.d.ts +19 -0
  290. package/dist/Schedule/index.d.ts.map +1 -0
  291. package/dist/Schedule/index.js +17 -0
  292. package/dist/Schedule/plugins/PaginationPlugin.d.ts +7 -0
  293. package/dist/Schedule/plugins/PaginationPlugin.d.ts.map +1 -0
  294. package/dist/Schedule/plugins/PaginationPlugin.js +81 -0
  295. package/dist/Schedule/plugins/ViewSelectorPlugin.d.ts +11 -0
  296. package/dist/Schedule/plugins/ViewSelectorPlugin.d.ts.map +1 -0
  297. package/dist/Schedule/plugins/ViewSelectorPlugin.js +78 -0
  298. package/dist/Schedule/plugins/index.d.ts +5 -0
  299. package/dist/Schedule/plugins/index.d.ts.map +1 -0
  300. package/dist/Schedule/plugins/index.js +14 -0
  301. package/dist/Schedule/shared.d.ts +923 -0
  302. package/dist/Schedule/shared.d.ts.map +1 -0
  303. package/dist/Schedule/shared.js +1325 -0
  304. package/dist/Schedule/types.d.ts +51 -0
  305. package/dist/Schedule/types.d.ts.map +1 -0
  306. package/dist/Schedule/types.js +1 -0
  307. package/dist/Schedule/useCurrentTime.d.ts +3 -0
  308. package/dist/Schedule/useCurrentTime.d.ts.map +1 -0
  309. package/dist/Schedule/useCurrentTime.js +43 -0
  310. package/dist/Schedule/zonedDateTime.d.ts +20 -0
  311. package/dist/Schedule/zonedDateTime.d.ts.map +1 -0
  312. package/dist/Schedule/zonedDateTime.js +31 -0
  313. package/dist/Stepper/Step.d.ts +120 -0
  314. package/dist/Stepper/Step.d.ts.map +1 -0
  315. package/dist/Stepper/Step.js +573 -0
  316. package/dist/Stepper/StepStatus.d.ts +24 -0
  317. package/dist/Stepper/StepStatus.d.ts.map +1 -0
  318. package/dist/Stepper/StepStatus.js +1 -0
  319. package/dist/Stepper/Stepper.d.ts +77 -0
  320. package/dist/Stepper/Stepper.d.ts.map +1 -0
  321. package/dist/Stepper/Stepper.js +104 -0
  322. package/dist/Stepper/StepperContext.d.ts +12 -0
  323. package/dist/Stepper/StepperContext.d.ts.map +1 -0
  324. package/dist/Stepper/StepperContext.js +24 -0
  325. package/dist/Stepper/index.d.ts +8 -0
  326. package/dist/Stepper/index.d.ts.map +1 -0
  327. package/dist/Stepper/index.js +7 -0
  328. package/dist/ThreeD/ThreeDAxis.d.ts +6 -0
  329. package/dist/ThreeD/ThreeDAxis.d.ts.map +1 -0
  330. package/dist/ThreeD/ThreeDAxis.js +75 -0
  331. package/dist/ThreeD/ThreeDBar.d.ts +7 -0
  332. package/dist/ThreeD/ThreeDBar.d.ts.map +1 -0
  333. package/dist/ThreeD/ThreeDBar.js +98 -0
  334. package/dist/ThreeD/ThreeDChart.d.ts +24 -0
  335. package/dist/ThreeD/ThreeDChart.d.ts.map +1 -0
  336. package/dist/ThreeD/ThreeDChart.js +202 -0
  337. package/dist/ThreeD/ThreeDContext.d.ts +5 -0
  338. package/dist/ThreeD/ThreeDContext.d.ts.map +1 -0
  339. package/dist/ThreeD/ThreeDContext.js +19 -0
  340. package/dist/ThreeD/ThreeDGrid.d.ts +5 -0
  341. package/dist/ThreeD/ThreeDGrid.d.ts.map +1 -0
  342. package/dist/ThreeD/ThreeDGrid.js +55 -0
  343. package/dist/ThreeD/ThreeDScatter.d.ts +7 -0
  344. package/dist/ThreeD/ThreeDScatter.d.ts.map +1 -0
  345. package/dist/ThreeD/ThreeDScatter.js +57 -0
  346. package/dist/ThreeD/ThreeDScatterGL.d.ts +7 -0
  347. package/dist/ThreeD/ThreeDScatterGL.d.ts.map +1 -0
  348. package/dist/ThreeD/ThreeDScatterGL.js +243 -0
  349. package/dist/ThreeD/ThreeDSurface.d.ts +15 -0
  350. package/dist/ThreeD/ThreeDSurface.d.ts.map +1 -0
  351. package/dist/ThreeD/ThreeDSurface.js +97 -0
  352. package/dist/ThreeD/index.d.ts +10 -0
  353. package/dist/ThreeD/index.d.ts.map +1 -0
  354. package/dist/ThreeD/index.js +10 -0
  355. package/dist/ThreeD/types.d.ts +57 -0
  356. package/dist/ThreeD/types.d.ts.map +1 -0
  357. package/dist/ThreeD/types.js +1 -0
  358. package/dist/index.d.ts +26 -0
  359. package/dist/index.d.ts.map +1 -0
  360. package/dist/index.js +47 -0
  361. package/dist/lab.css +423 -0
  362. package/package.json +69 -4
  363. package/src/Chart/Chart.tsx +312 -0
  364. package/src/Chart/ChartArea.doc.mjs +16 -0
  365. package/src/Chart/ChartArea.tsx +91 -0
  366. package/src/Chart/ChartAxis.tsx +186 -0
  367. package/src/Chart/ChartBar.doc.mjs +16 -0
  368. package/src/Chart/ChartBar.tsx +71 -0
  369. package/src/Chart/ChartBrush.tsx +237 -0
  370. package/src/Chart/ChartCandlestick.doc.mjs +16 -0
  371. package/src/Chart/ChartCandlestick.tsx +186 -0
  372. package/src/Chart/ChartContext.ts +23 -0
  373. package/src/Chart/ChartDot.doc.mjs +16 -0
  374. package/src/Chart/ChartDot.tsx +44 -0
  375. package/src/Chart/ChartDotGL.doc.mjs +16 -0
  376. package/src/Chart/ChartDotGL.tsx +151 -0
  377. package/src/Chart/ChartDotGLInteractive.doc.mjs +16 -0
  378. package/src/Chart/ChartDotGLInteractive.tsx +519 -0
  379. package/src/Chart/ChartErrorBar.tsx +84 -0
  380. package/src/Chart/ChartGrid.tsx +86 -0
  381. package/src/Chart/ChartHeatmapGL.doc.mjs +16 -0
  382. package/src/Chart/ChartHeatmapGL.tsx +219 -0
  383. package/src/Chart/ChartLegend.tsx +181 -0
  384. package/src/Chart/ChartLine.doc.mjs +16 -0
  385. package/src/Chart/ChartLine.tsx +70 -0
  386. package/src/Chart/ChartReferenceLine.tsx +76 -0
  387. package/src/Chart/ChartSelect.tsx +111 -0
  388. package/src/Chart/ChartStreamGL.doc.mjs +16 -0
  389. package/src/Chart/ChartStreamGL.tsx +189 -0
  390. package/src/Chart/ChartTooltip.tsx +451 -0
  391. package/src/Chart/ChartZoom.tsx +400 -0
  392. package/src/Chart/formatters.ts +95 -0
  393. package/src/Chart/getChartColors.ts +249 -0
  394. package/src/Chart/index.ts +90 -0
  395. package/src/Chart/m4.test.ts +66 -0
  396. package/src/Chart/m4.ts +128 -0
  397. package/src/Chart/types.ts +64 -0
  398. package/src/Chart/useChartColors.ts +34 -0
  399. package/src/Chart/useChartRange.test.ts +101 -0
  400. package/src/Chart/useChartRange.ts +146 -0
  401. package/src/Chart/utils.ts +31 -0
  402. package/src/Chart/webgl.ts +192 -0
  403. package/src/ChartV2/Chart.tsx +348 -0
  404. package/src/ChartV2/ChartAxis.tsx +209 -0
  405. package/src/ChartV2/ChartGrid.tsx +99 -0
  406. package/src/ChartV2/ChartLegend.tsx +69 -0
  407. package/src/ChartV2/ChartSwatch.doc.mjs +17 -0
  408. package/src/ChartV2/ChartSwatch.tsx +86 -0
  409. package/src/ChartV2/ChartTooltip.tsx +382 -0
  410. package/src/ChartV2/ChartV2.doc.mjs +16 -0
  411. package/src/ChartV2/ChartV2Context.ts +15 -0
  412. package/src/ChartV2/index.ts +62 -0
  413. package/src/ChartV2/layout.ts +223 -0
  414. package/src/ChartV2/legend.ts +32 -0
  415. package/src/ChartV2/marks/area.tsx +122 -0
  416. package/src/ChartV2/marks/band.tsx +70 -0
  417. package/src/ChartV2/marks/bar.tsx +159 -0
  418. package/src/ChartV2/marks/candlestick.tsx +106 -0
  419. package/src/ChartV2/marks/dot.tsx +64 -0
  420. package/src/ChartV2/marks/dotGL.tsx +202 -0
  421. package/src/ChartV2/marks/dotGLInteractive.tsx +546 -0
  422. package/src/ChartV2/marks/errorBar.tsx +89 -0
  423. package/src/ChartV2/marks/heatmapGL.tsx +299 -0
  424. package/src/ChartV2/marks/index.ts +14 -0
  425. package/src/ChartV2/marks/line.tsx +94 -0
  426. package/src/ChartV2/marks/referenceLine.tsx +224 -0
  427. package/src/ChartV2/marks/streamGL.tsx +251 -0
  428. package/src/ChartV2/tooltip.ts +70 -0
  429. package/src/ChartV2/types.ts +129 -0
  430. package/src/ChatReasoning/ChatReasoning.doc.mjs +16 -0
  431. package/src/ChatReasoning/ChatReasoning.test.tsx +56 -0
  432. package/src/ChatReasoning/ChatReasoning.tsx +322 -0
  433. package/src/CircularProgress/CircularProgress.doc.mjs +174 -0
  434. package/src/CircularProgress/CircularProgress.test.tsx +157 -0
  435. package/src/CircularProgress/CircularProgress.tsx +373 -0
  436. package/src/CircularProgress/index.ts +15 -0
  437. package/src/CodeBlock/index.ts +10 -0
  438. package/src/CodeEditor/CodeEditor.doc.mjs +16 -0
  439. package/src/CodeEditor/CodeEditor.tsx +466 -0
  440. package/src/CodeEditor/index.ts +8 -0
  441. package/src/Radial/RadialArea.tsx +103 -0
  442. package/src/Radial/RadialAxis.tsx +60 -0
  443. package/src/Radial/RadialChart.doc.mjs +16 -0
  444. package/src/Radial/RadialChart.tsx +219 -0
  445. package/src/Radial/RadialContext.ts +22 -0
  446. package/src/Radial/RadialGrid.tsx +81 -0
  447. package/src/Radial/RadialSlice.tsx +130 -0
  448. package/src/Radial/RadialTooltip.tsx +347 -0
  449. package/src/Radial/index.ts +14 -0
  450. package/src/Radial/types.ts +46 -0
  451. package/src/SVGIcon/SVGIcon.doc.mjs +16 -0
  452. package/src/SVGIcon/SVGIcon.tsx +406 -0
  453. package/src/SVGIcon/icons.ts +283 -0
  454. package/src/SVGIcon/index.ts +73 -0
  455. package/src/SVGIcon/pathTransforms.ts +612 -0
  456. package/src/SVGIcon/tokens.stylex.ts +53 -0
  457. package/src/SVGIcon/variations.stylex.ts +122 -0
  458. package/src/SVGIcon/xif-examples.ts +191 -0
  459. package/src/SVGIcon/xif-types.ts +181 -0
  460. package/src/Sankey/SankeyChart.doc.mjs +16 -0
  461. package/src/Sankey/SankeyChart.tsx +220 -0
  462. package/src/Sankey/SankeyContext.ts +23 -0
  463. package/src/Sankey/SankeyGrid.tsx +69 -0
  464. package/src/Sankey/SankeyLabel.tsx +234 -0
  465. package/src/Sankey/SankeyLink.tsx +167 -0
  466. package/src/Sankey/SankeyNode.tsx +66 -0
  467. package/src/Sankey/index.ts +22 -0
  468. package/src/Sankey/layout.ts +219 -0
  469. package/src/Sankey/types.ts +93 -0
  470. package/src/Schedule/CalendarEvent.ts +74 -0
  471. package/src/Schedule/DayView.tsx +112 -0
  472. package/src/Schedule/ListView.tsx +236 -0
  473. package/src/Schedule/MonthlyView.tsx +401 -0
  474. package/src/Schedule/Schedule.doc.mjs +16 -0
  475. package/src/Schedule/Schedule.test.tsx +405 -0
  476. package/src/Schedule/Schedule.tsx +307 -0
  477. package/src/Schedule/TimeGridView.tsx +589 -0
  478. package/src/Schedule/WeeklyView.tsx +130 -0
  479. package/src/Schedule/context.tsx +49 -0
  480. package/src/Schedule/dateMath.ts +112 -0
  481. package/src/Schedule/index.ts +61 -0
  482. package/src/Schedule/plugins/PaginationPlugin.tsx +98 -0
  483. package/src/Schedule/plugins/ViewSelectorPlugin.tsx +128 -0
  484. package/src/Schedule/plugins/index.tsx +20 -0
  485. package/src/Schedule/shared.tsx +1304 -0
  486. package/src/Schedule/types.ts +86 -0
  487. package/src/Schedule/useCurrentTime.ts +50 -0
  488. package/src/Schedule/zonedDateTime.ts +71 -0
  489. package/src/Stepper/Step.doc.mjs +17 -0
  490. package/src/Stepper/Step.tsx +756 -0
  491. package/src/Stepper/StepStatus.ts +26 -0
  492. package/src/Stepper/Stepper.doc.mjs +265 -0
  493. package/src/Stepper/Stepper.test.tsx +281 -0
  494. package/src/Stepper/Stepper.tsx +157 -0
  495. package/src/Stepper/StepperContext.ts +43 -0
  496. package/src/Stepper/index.ts +14 -0
  497. package/src/ThreeD/3DBar.doc.mjs +16 -0
  498. package/src/ThreeD/3DChart.doc.mjs +16 -0
  499. package/src/ThreeD/3DScatter.doc.mjs +16 -0
  500. package/src/ThreeD/3DScatterGL.doc.mjs +16 -0
  501. package/src/ThreeD/3DSurface.doc.mjs +16 -0
  502. package/src/ThreeD/ThreeDAxis.tsx +86 -0
  503. package/src/ThreeD/ThreeDBar.tsx +130 -0
  504. package/src/ThreeD/ThreeDChart.tsx +262 -0
  505. package/src/ThreeD/ThreeDContext.ts +22 -0
  506. package/src/ThreeD/ThreeDGrid.tsx +68 -0
  507. package/src/ThreeD/ThreeDScatter.tsx +63 -0
  508. package/src/ThreeD/ThreeDScatterGL.tsx +270 -0
  509. package/src/ThreeD/ThreeDSurface.tsx +142 -0
  510. package/src/ThreeD/index.ts +11 -0
  511. package/src/ThreeD/projection.test.ts +132 -0
  512. package/src/ThreeD/types.ts +62 -0
  513. package/src/index.ts +250 -0
@@ -0,0 +1,299 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ 'use client';
4
+
5
+ /**
6
+ * @file SVGIcon.tsx
7
+ * @input SVG path data with per-element roles, variation preset, size, color
8
+ * @output CSS-variable-driven SVG icon with role-aware rendering and mask-based gaps
9
+ * @position Core implementation for the lab SVG icon system
10
+ *
11
+ * Two key concepts beyond basic CSS-var-driven icons:
12
+ *
13
+ * 1. Path roles — each element is either "fill" (closed shapes that switch between
14
+ * stroke and fill across variations) or "stroke" (lines that always stay stroked).
15
+ *
16
+ * 2. Mask-based gaps — in bold/filled mode, overlapping fill-role shapes get
17
+ * auto-generated SVG masks. Secondary fill shapes are knocked out of primary
18
+ * shapes with a configurable gap and corner rounding, producing clean negative
19
+ * space on any background.
20
+ */
21
+ import { useId } from 'react';
22
+ import * as stylex from '@stylexjs/stylex';
23
+ import '@astryxdesign/core/theme/tokens.stylex';
24
+ import { colorVars } from '@astryxdesign/core/theme/tokens.stylex';
25
+ import { mergeProps } from '@astryxdesign/core/utils';
26
+ import "./tokens.stylex.js";
27
+ import { iconVars } from "./tokens.stylex.js";
28
+ import { variations, opticalSize } from "./variations.stylex.js";
29
+ import { themeProps } from '@astryxdesign/core/utils';
30
+
31
+ // =============================================================================
32
+ // Types
33
+ // =============================================================================
34
+
35
+ /**
36
+ * Role determines how an element behaves across variations.
37
+ * - "fill": closed shapes — stroked in linear, filled in bold
38
+ * - "stroke": lines/detail strokes — always rendered as strokes
39
+ */
40
+
41
+ /** Shape element within an icon layer */
42
+
43
+ /** Definition of an SVG icon's geometry */
44
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
45
+ // =============================================================================
46
+ // Styles
47
+ // =============================================================================
48
+
49
+ const styles = {
50
+ root: {
51
+ k1xSpc: "x3nfvp2",
52
+ kmuXW: "x2lah0s",
53
+ kzqmXN: "x1oai4fc",
54
+ kZKoxP: "xhigkf7",
55
+ kZCmMZ: "xmarwi5",
56
+ kLKAdn: "xpgmcrp",
57
+ $$css: true
58
+ }
59
+ };
60
+ const colorStyles = {
61
+ primary: {
62
+ kMwMTN: "xtbr613",
63
+ $$css: true
64
+ },
65
+ secondary: {
66
+ kMwMTN: "xv9yike",
67
+ $$css: true
68
+ },
69
+ disabled: {
70
+ kMwMTN: "xqa6c3m",
71
+ $$css: true
72
+ },
73
+ accent: {
74
+ kMwMTN: "xqwr325",
75
+ $$css: true
76
+ },
77
+ positive: {
78
+ kMwMTN: "xtjic6",
79
+ $$css: true
80
+ },
81
+ negative: {
82
+ kMwMTN: "xjt36v0",
83
+ $$css: true
84
+ },
85
+ warning: {
86
+ kMwMTN: "xs3pv69",
87
+ $$css: true
88
+ },
89
+ inherit: {
90
+ kMwMTN: "x1heor9g",
91
+ $$css: true
92
+ }
93
+ };
94
+
95
+ // =============================================================================
96
+ // Shape Renderer
97
+ // =============================================================================
98
+
99
+ function renderShapeElement(attrs, type, key) {
100
+ const props = {
101
+ ...attrs,
102
+ key
103
+ };
104
+ switch (type) {
105
+ case 'path':
106
+ return /*#__PURE__*/_jsx("path", {
107
+ ...props
108
+ });
109
+ case 'circle':
110
+ return /*#__PURE__*/_jsx("circle", {
111
+ ...props
112
+ });
113
+ case 'rect':
114
+ return /*#__PURE__*/_jsx("rect", {
115
+ ...props
116
+ });
117
+ case 'line':
118
+ return /*#__PURE__*/_jsx("line", {
119
+ ...props
120
+ });
121
+ case 'polyline':
122
+ return /*#__PURE__*/_jsx("polyline", {
123
+ ...props
124
+ });
125
+ case 'polygon':
126
+ return /*#__PURE__*/_jsx("polygon", {
127
+ ...props
128
+ });
129
+ default:
130
+ return null;
131
+ }
132
+ }
133
+
134
+ // =============================================================================
135
+ // Mask Generation
136
+ // =============================================================================
137
+
138
+ /** Check whether bold mode needs a mask for this layer */
139
+ function needsMask(variation, primaryFillShapes, secondaryShapes) {
140
+ if (variation !== 'bold') {
141
+ return false;
142
+ }
143
+ return primaryFillShapes.length > 0 && secondaryShapes.length > 0;
144
+ }
145
+
146
+ /**
147
+ * Render mask knockout shapes — secondary elements become holes
148
+ * in the primary layer, with gap and corner rounding from CSS vars.
149
+ */
150
+ function renderMaskKnockouts(shapes) {
151
+ return shapes.map((shape, i) => {
152
+ const role = shape.role ?? 'fill';
153
+ // Stroke-role knockouts need wider stroke to fully cover the visible stroke + gap
154
+ // Fill-role knockouts just need the gap width for the border around the hole
155
+ const knockoutWidth = role === 'stroke' ? `calc(${iconVars['--icon-stroke-width']} + ${iconVars['--icon-gap']} * 2)` : iconVars['--icon-gap'];
156
+ return renderShapeElement({
157
+ ...shape.attrs,
158
+ fill: role === 'fill' ? 'black' : 'none',
159
+ stroke: 'black',
160
+ strokeWidth: knockoutWidth,
161
+ strokeLinecap: 'round',
162
+ strokeLinejoin: iconVars['--icon-gap-linejoin']
163
+ }, shape.type, `knockout-${i}`);
164
+ });
165
+ }
166
+
167
+ // =============================================================================
168
+ // Layer Renderers
169
+ // =============================================================================
170
+
171
+ function renderFillRoleShapes(shapes, layer, maskId) {
172
+ const fillVar = layer === 'primary' ? iconVars['--icon-layer-primary-fill'] : iconVars['--icon-layer-secondary-fill'];
173
+ const strokeVar = layer === 'primary' ? iconVars['--icon-layer-primary-stroke'] : iconVars['--icon-layer-secondary-stroke'];
174
+ const opacityVar = layer === 'primary' ? iconVars['--icon-layer-primary-opacity'] : iconVars['--icon-layer-secondary-opacity'];
175
+ if (shapes.length === 0) {
176
+ return null;
177
+ }
178
+ return /*#__PURE__*/_jsx("g", {
179
+ style: {
180
+ fill: fillVar,
181
+ stroke: strokeVar,
182
+ opacity: opacityVar,
183
+ strokeWidth: iconVars['--icon-stroke-width'],
184
+ strokeLinecap: iconVars['--icon-stroke-linecap'],
185
+ strokeLinejoin: iconVars['--icon-stroke-linejoin']
186
+ },
187
+ mask: maskId ? `url(#${maskId})` : undefined,
188
+ children: shapes.map((shape, i) => renderShapeElement(shape.attrs, shape.type, `${layer}-fill-${i}`))
189
+ });
190
+ }
191
+ function renderStrokeRoleShapes(shapes, layer) {
192
+ const fillVar = layer === 'primary' ? iconVars['--icon-layer-primary-stroke-role-fill'] : iconVars['--icon-layer-secondary-stroke-role-fill'];
193
+ const strokeVar = layer === 'primary' ? iconVars['--icon-layer-primary-stroke-role-stroke'] : iconVars['--icon-layer-secondary-stroke-role-stroke'];
194
+ const opacityVar = layer === 'primary' ? iconVars['--icon-layer-primary-stroke-role-opacity'] : iconVars['--icon-layer-secondary-stroke-role-opacity'];
195
+ const widthVar = layer === 'primary' ? iconVars['--icon-layer-primary-stroke-role-width'] : iconVars['--icon-layer-secondary-stroke-role-width'];
196
+ if (shapes.length === 0) {
197
+ return null;
198
+ }
199
+ return /*#__PURE__*/_jsx("g", {
200
+ style: {
201
+ fill: fillVar,
202
+ stroke: strokeVar,
203
+ opacity: opacityVar,
204
+ strokeWidth: widthVar,
205
+ strokeLinecap: iconVars['--icon-stroke-linecap'],
206
+ strokeLinejoin: iconVars['--icon-stroke-linejoin']
207
+ },
208
+ children: shapes.map((shape, i) => renderShapeElement(shape.attrs, shape.type, `${layer}-stroke-${i}`))
209
+ });
210
+ }
211
+
212
+ // =============================================================================
213
+ // Component
214
+ // =============================================================================
215
+
216
+ function splitByRole(shapes) {
217
+ const fill = [];
218
+ const stroke = [];
219
+ for (const shape of shapes) {
220
+ if (shape.role === 'stroke') {
221
+ stroke.push(shape);
222
+ } else {
223
+ fill.push(shape);
224
+ }
225
+ }
226
+ return {
227
+ fill,
228
+ stroke
229
+ };
230
+ }
231
+
232
+ /**
233
+ * CSS-variable-driven SVG icon with role-aware rendering.
234
+ *
235
+ * Each shape element has a role ("fill" or "stroke") that determines how it
236
+ * behaves across variations. In bold mode, overlapping fill-role shapes get
237
+ * auto-generated SVG masks for clean gap subtraction.
238
+ *
239
+ * @example
240
+ * ```
241
+ * <SVGIcon icon={bellIcon} variation="twotone" size="md" color="accent" />
242
+ * ```
243
+ */
244
+ export function SVGIcon({
245
+ icon,
246
+ variation = 'linear',
247
+ size = 'md',
248
+ color = 'primary',
249
+ strokeWidth,
250
+ style,
251
+ ...props
252
+ }) {
253
+ const uid = useId();
254
+ const viewBox = icon.viewBox ?? '0 0 24 24';
255
+ const hasSecondary = icon.secondary && icon.secondary.length > 0;
256
+ const primarySplit = splitByRole(icon.primary);
257
+ const secondarySplit = hasSecondary ? splitByRole(icon.secondary ?? []) : {
258
+ fill: [],
259
+ stroke: []
260
+ };
261
+ const allSecondary = [...secondarySplit.fill, ...secondarySplit.stroke];
262
+ const useMask = needsMask(variation, primarySplit.fill, allSecondary);
263
+ const maskId = useMask ? `${uid}-mask` : undefined;
264
+
265
+ // Extract raw CSS property name from StyleX var reference: "var(--xABC)" -> "--xABC"
266
+ const strokeWidthProp = iconVars['--icon-stroke-width'].replace(/^var\((.+)\)$/, '$1');
267
+ const strokeWidthOverride = {
268
+ [strokeWidthProp]: String(strokeWidth)
269
+ };
270
+ const overrideStyle = {
271
+ ...style,
272
+ ...(strokeWidth != null ? strokeWidthOverride : undefined)
273
+ };
274
+ return /*#__PURE__*/_jsxs("svg", {
275
+ xmlns: "http://www.w3.org/2000/svg",
276
+ viewBox: viewBox,
277
+ "aria-hidden": "true",
278
+ ...mergeProps(themeProps('svg-icon', {
279
+ variation,
280
+ size,
281
+ color
282
+ }), stylex.props(styles.root, colorStyles[color], variations[variation], opticalSize[size])),
283
+ style: overrideStyle,
284
+ ...props,
285
+ children: [useMask && /*#__PURE__*/_jsx("defs", {
286
+ children: /*#__PURE__*/_jsxs("mask", {
287
+ id: maskId,
288
+ children: [/*#__PURE__*/_jsx("rect", {
289
+ width: "24",
290
+ height: "24",
291
+ fill: "white"
292
+ }), renderMaskKnockouts([...secondarySplit.fill, ...secondarySplit.stroke])]
293
+ })
294
+ }), renderFillRoleShapes(primarySplit.fill, 'primary', maskId), renderStrokeRoleShapes(primarySplit.stroke, 'primary'), hasSecondary && !useMask && /*#__PURE__*/_jsxs(_Fragment, {
295
+ children: [renderFillRoleShapes(secondarySplit.fill, 'secondary'), renderStrokeRoleShapes(secondarySplit.stroke, 'secondary')]
296
+ })]
297
+ });
298
+ }
299
+ SVGIcon.displayName = 'SVGIcon';
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @file icons.ts
3
+ * @input Lucide icon SVG paths
4
+ * @output SVGIconDef objects with per-element roles
5
+ * @position Icon library consumed by stories and tests
6
+ *
7
+ * Each shape has a role:
8
+ * - "fill": closed shapes that switch between stroke (linear) and fill (bold)
9
+ * - "stroke": lines/strokes that always render as strokes
10
+ *
11
+ * The role defaults to "fill" if omitted.
12
+ */
13
+ import type { SVGIconDef } from './SVGIcon';
14
+ /** Simple stroke-only: X / Close — both lines are stroke-role */
15
+ export declare const xIcon: SVGIconDef;
16
+ /** Simple stroke-only: Check */
17
+ export declare const checkIcon: SVGIconDef;
18
+ /** Two-layer with mixed roles: Bell body is fill, clapper is stroke */
19
+ export declare const bellIcon: SVGIconDef;
20
+ /**
21
+ * Two-layer: Home — house outline is fill, door is fill (secondary).
22
+ * In bold mode the door gets masked out of the house body.
23
+ */
24
+ export declare const homeIcon: SVGIconDef;
25
+ /** Complex: Settings — gear body is fill, center circle is fill (secondary, masked in bold) */
26
+ export declare const settingsIcon: SVGIconDef;
27
+ /** Mixed roles: Calendar frame is fill, pegs are stroke, divider line is stroke */
28
+ export declare const calendarIcon: SVGIconDef;
29
+ /** Stroke-only: Menu / Hamburger — all lines are stroke-role */
30
+ export declare const menuIcon: SVGIconDef;
31
+ /** Single curved path: Heart */
32
+ export declare const heartIcon: SVGIconDef;
33
+ /** Nested shapes: Eye — outer shape (fill) + pupil (fill, secondary) */
34
+ export declare const eyeIcon: SVGIconDef;
35
+ /** Complex single path: Star */
36
+ export declare const starIcon: SVGIconDef;
37
+ /** Single panel: Folder */
38
+ export declare const folderIcon: SVGIconDef;
39
+ /** Single path: Shield */
40
+ export declare const shieldIcon: SVGIconDef;
41
+ /** Mixed: Search — glass (fill) + handle (stroke, secondary) */
42
+ export declare const searchIcon: SVGIconDef;
43
+ /** Mixed: Mail — body (fill) + flap line (stroke, secondary) */
44
+ export declare const mailIcon: SVGIconDef;
45
+ /** Mixed: Lock — body (fill) + shackle (stroke) */
46
+ export declare const lockIcon: SVGIconDef;
47
+ /** All starter icons for convenience */
48
+ export declare const starterIcons: SVGIconDef[];
49
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/SVGIcon/icons.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAE1C,iEAAiE;AACjE,eAAO,MAAM,KAAK,EAAE,UAcnB,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,SAAS,EAAE,UAGvB,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,QAAQ,EAAE,UAgBtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,UAkBtB,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,YAAY,EAAE,UAc1B,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,YAAY,EAAE,UAsB1B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,QAAQ,EAAE,UAmBtB,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,SAAS,EAAE,UAWvB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,OAAO,EAAE,UAcrB,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,QAAQ,EAAE,UAWtB,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,UAAU,EAAE,UAWxB,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,UAAU,EAAE,UAWxB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,EAAE,UAUxB,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,QAAQ,EAAE,UAgBtB,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,QAAQ,EAAE,UAUtB,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,YAAY,EAAE,UAAU,EAgBpC,CAAC"}
@@ -0,0 +1,326 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file icons.ts
5
+ * @input Lucide icon SVG paths
6
+ * @output SVGIconDef objects with per-element roles
7
+ * @position Icon library consumed by stories and tests
8
+ *
9
+ * Each shape has a role:
10
+ * - "fill": closed shapes that switch between stroke (linear) and fill (bold)
11
+ * - "stroke": lines/strokes that always render as strokes
12
+ *
13
+ * The role defaults to "fill" if omitted.
14
+ */
15
+
16
+ /** Simple stroke-only: X / Close — both lines are stroke-role */
17
+ export const xIcon = {
18
+ name: 'X',
19
+ primary: [{
20
+ type: 'line',
21
+ attrs: {
22
+ x1: '18',
23
+ y1: '6',
24
+ x2: '6',
25
+ y2: '18'
26
+ },
27
+ role: 'stroke'
28
+ }, {
29
+ type: 'line',
30
+ attrs: {
31
+ x1: '6',
32
+ y1: '6',
33
+ x2: '18',
34
+ y2: '18'
35
+ },
36
+ role: 'stroke'
37
+ }]
38
+ };
39
+
40
+ /** Simple stroke-only: Check */
41
+ export const checkIcon = {
42
+ name: 'Check',
43
+ primary: [{
44
+ type: 'path',
45
+ attrs: {
46
+ d: 'M20 6 9 17l-5-5'
47
+ },
48
+ role: 'stroke'
49
+ }]
50
+ };
51
+
52
+ /** Two-layer with mixed roles: Bell body is fill, clapper is stroke */
53
+ export const bellIcon = {
54
+ name: 'Bell',
55
+ primary: [{
56
+ type: 'path',
57
+ attrs: {
58
+ d: 'M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9'
59
+ },
60
+ role: 'fill'
61
+ }],
62
+ secondary: [{
63
+ type: 'path',
64
+ attrs: {
65
+ d: 'M10.3 21a1.94 1.94 0 0 0 3.4 0'
66
+ },
67
+ role: 'stroke'
68
+ }]
69
+ };
70
+
71
+ /**
72
+ * Two-layer: Home — house outline is fill, door is fill (secondary).
73
+ * In bold mode the door gets masked out of the house body.
74
+ */
75
+ export const homeIcon = {
76
+ name: 'Home',
77
+ primary: [{
78
+ type: 'path',
79
+ attrs: {
80
+ d: 'M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'
81
+ },
82
+ role: 'fill'
83
+ }],
84
+ secondary: [{
85
+ type: 'path',
86
+ attrs: {
87
+ d: 'M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8'
88
+ },
89
+ role: 'fill'
90
+ }]
91
+ };
92
+
93
+ /** Complex: Settings — gear body is fill, center circle is fill (secondary, masked in bold) */
94
+ export const settingsIcon = {
95
+ name: 'Settings',
96
+ primary: [{
97
+ type: 'path',
98
+ attrs: {
99
+ d: 'M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'
100
+ },
101
+ role: 'fill'
102
+ }],
103
+ secondary: [{
104
+ type: 'circle',
105
+ attrs: {
106
+ cx: '12',
107
+ cy: '12',
108
+ r: '3'
109
+ },
110
+ role: 'fill'
111
+ }]
112
+ };
113
+
114
+ /** Mixed roles: Calendar frame is fill, pegs are stroke, divider line is stroke */
115
+ export const calendarIcon = {
116
+ name: 'Calendar',
117
+ primary: [{
118
+ type: 'rect',
119
+ attrs: {
120
+ width: '18',
121
+ height: '18',
122
+ x: '3',
123
+ y: '4',
124
+ rx: '2'
125
+ },
126
+ role: 'fill'
127
+ }, {
128
+ type: 'line',
129
+ attrs: {
130
+ x1: '16',
131
+ y1: '2',
132
+ x2: '16',
133
+ y2: '6'
134
+ },
135
+ role: 'stroke'
136
+ }, {
137
+ type: 'line',
138
+ attrs: {
139
+ x1: '8',
140
+ y1: '2',
141
+ x2: '8',
142
+ y2: '6'
143
+ },
144
+ role: 'stroke'
145
+ }],
146
+ secondary: [{
147
+ type: 'line',
148
+ attrs: {
149
+ x1: '3',
150
+ y1: '10',
151
+ x2: '21',
152
+ y2: '10'
153
+ },
154
+ role: 'stroke'
155
+ }]
156
+ };
157
+
158
+ /** Stroke-only: Menu / Hamburger — all lines are stroke-role */
159
+ export const menuIcon = {
160
+ name: 'Menu',
161
+ primary: [{
162
+ type: 'line',
163
+ attrs: {
164
+ x1: '4',
165
+ y1: '6',
166
+ x2: '20',
167
+ y2: '6'
168
+ },
169
+ role: 'stroke'
170
+ }, {
171
+ type: 'line',
172
+ attrs: {
173
+ x1: '4',
174
+ y1: '12',
175
+ x2: '20',
176
+ y2: '12'
177
+ },
178
+ role: 'stroke'
179
+ }, {
180
+ type: 'line',
181
+ attrs: {
182
+ x1: '4',
183
+ y1: '18',
184
+ x2: '20',
185
+ y2: '18'
186
+ },
187
+ role: 'stroke'
188
+ }]
189
+ };
190
+
191
+ /** Single curved path: Heart */
192
+ export const heartIcon = {
193
+ name: 'Heart',
194
+ primary: [{
195
+ type: 'path',
196
+ attrs: {
197
+ d: 'M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5'
198
+ },
199
+ role: 'fill'
200
+ }]
201
+ };
202
+
203
+ /** Nested shapes: Eye — outer shape (fill) + pupil (fill, secondary) */
204
+ export const eyeIcon = {
205
+ name: 'Eye',
206
+ primary: [{
207
+ type: 'path',
208
+ attrs: {
209
+ d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0'
210
+ },
211
+ role: 'fill'
212
+ }],
213
+ secondary: [{
214
+ type: 'circle',
215
+ attrs: {
216
+ cx: '12',
217
+ cy: '12',
218
+ r: '3'
219
+ },
220
+ role: 'fill'
221
+ }]
222
+ };
223
+
224
+ /** Complex single path: Star */
225
+ export const starIcon = {
226
+ name: 'Star',
227
+ primary: [{
228
+ type: 'path',
229
+ attrs: {
230
+ d: 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'
231
+ },
232
+ role: 'fill'
233
+ }]
234
+ };
235
+
236
+ /** Single panel: Folder */
237
+ export const folderIcon = {
238
+ name: 'Folder',
239
+ primary: [{
240
+ type: 'path',
241
+ attrs: {
242
+ d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'
243
+ },
244
+ role: 'fill'
245
+ }]
246
+ };
247
+
248
+ /** Single path: Shield */
249
+ export const shieldIcon = {
250
+ name: 'Shield',
251
+ primary: [{
252
+ type: 'path',
253
+ attrs: {
254
+ d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'
255
+ },
256
+ role: 'fill'
257
+ }]
258
+ };
259
+
260
+ /** Mixed: Search — glass (fill) + handle (stroke, secondary) */
261
+ export const searchIcon = {
262
+ name: 'Search',
263
+ primary: [{
264
+ type: 'circle',
265
+ attrs: {
266
+ cx: '11',
267
+ cy: '11',
268
+ r: '8'
269
+ },
270
+ role: 'stroke'
271
+ }, {
272
+ type: 'path',
273
+ attrs: {
274
+ d: 'm21 21-4.34-4.34'
275
+ },
276
+ role: 'stroke'
277
+ }]
278
+ };
279
+
280
+ /** Mixed: Mail — body (fill) + flap line (stroke, secondary) */
281
+ export const mailIcon = {
282
+ name: 'Mail',
283
+ primary: [{
284
+ type: 'rect',
285
+ attrs: {
286
+ x: '2',
287
+ y: '4',
288
+ width: '20',
289
+ height: '16',
290
+ rx: '2'
291
+ },
292
+ role: 'fill'
293
+ }],
294
+ secondary: [{
295
+ type: 'path',
296
+ attrs: {
297
+ d: 'm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7'
298
+ },
299
+ role: 'stroke'
300
+ }]
301
+ };
302
+
303
+ /** Mixed: Lock — body (fill) + shackle (stroke) */
304
+ export const lockIcon = {
305
+ name: 'Lock',
306
+ primary: [{
307
+ type: 'rect',
308
+ attrs: {
309
+ width: '18',
310
+ height: '11',
311
+ x: '3',
312
+ y: '11',
313
+ rx: '2'
314
+ },
315
+ role: 'fill'
316
+ }, {
317
+ type: 'path',
318
+ attrs: {
319
+ d: 'M7 11V7a5 5 0 0 1 10 0v4'
320
+ },
321
+ role: 'stroke'
322
+ }]
323
+ };
324
+
325
+ /** All starter icons for convenience */
326
+ export const starterIcons = [xIcon, checkIcon, bellIcon, homeIcon, settingsIcon, calendarIcon, menuIcon, heartIcon, eyeIcon, starIcon, folderIcon, shieldIcon, searchIcon, mailIcon, lockIcon];
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @file index.ts
3
+ * @input SVGIcon module
4
+ * @output Re-exports all SVG icon system components, types, utilities, and starter icons
5
+ * @position Entry point for the lab SVG icon system
6
+ */
7
+ export { SVGIcon } from './SVGIcon';
8
+ export type { SVGIconProps, SVGIconVariation, SVGIconSize, SVGIconColor, SVGIconDef, IconShape, IconShapeRole, } from './SVGIcon';
9
+ export { variations, opticalSize } from './variations.stylex';
10
+ export { iconVars } from './tokens.stylex';
11
+ export { xIcon, checkIcon, bellIcon, homeIcon, settingsIcon, calendarIcon, menuIcon, heartIcon, eyeIcon, starIcon, folderIcon, shieldIcon, searchIcon, mailIcon, lockIcon, starterIcons, } from './icons';
12
+ export type { XIFIcon, XIFPath, XIFPersonality, XIFAnimate, XIFSlot, } from './xif-types';
13
+ export { xifCheck, xifHome, xifFile, xifShield, xifBell, xifStar, xifBellOverride, xifExamples, } from './xif-examples';
14
+ export { roundCorners, addCurvature, adjustTension, applyPersonality, type PathPersonality, } from './pathTransforms';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SVGIcon/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,OAAO,EACP,OAAO,EACP,cAAc,EACd,UAAU,EACV,OAAO,GACR,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC"}