@flikk/ui 1.0.0-beta.30 → 1.0.0-beta.31

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 (295) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/dist/components/ai/AgentStatus/AgentStatus.d.ts +3 -0
  3. package/dist/components/ai/AgentStatus/AgentStatus.js +144 -0
  4. package/dist/components/ai/AgentStatus/AgentStatus.theme.d.ts +2 -0
  5. package/dist/components/ai/AgentStatus/AgentStatus.theme.js +37 -0
  6. package/dist/components/ai/AgentStatus/AgentStatus.types.d.ts +116 -0
  7. package/dist/components/ai/AgentStatus/index.d.ts +3 -0
  8. package/dist/components/ai/CodeBlock/CodeBlock.js +3 -3
  9. package/dist/components/ai/CodeBlock/CodeBlock.theme.js +1 -1
  10. package/dist/components/ai/PromptInput/PromptInput.js +13 -14
  11. package/dist/components/ai/PromptInput/PromptInput.theme.js +1 -1
  12. package/dist/components/ai/PromptInput/VoiceRecorder.js +3 -3
  13. package/dist/components/ai/Reasoning/Reasoning.d.ts +5 -0
  14. package/dist/components/ai/Reasoning/Reasoning.js +16 -0
  15. package/dist/components/ai/Reasoning/Reasoning.types.d.ts +20 -0
  16. package/dist/components/ai/Reasoning/index.d.ts +2 -0
  17. package/dist/components/ai/SourceCitation/SourceCitation.d.ts +4 -0
  18. package/dist/components/ai/SourceCitation/SourceCitation.js +29 -0
  19. package/dist/components/ai/SourceCitation/SourceCitation.theme.d.ts +2 -0
  20. package/dist/components/ai/SourceCitation/SourceCitation.theme.js +23 -0
  21. package/dist/components/ai/SourceCitation/SourceCitation.types.d.ts +55 -0
  22. package/dist/components/ai/SourceCitation/index.d.ts +3 -0
  23. package/dist/components/ai/StreamingResponse/ErrorDisplay.js +2 -2
  24. package/dist/components/ai/StreamingResponse/StreamingResponse.js +1 -3
  25. package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +3 -1
  26. package/dist/components/ai/TokenCounter/TokenCounter.js +2 -2
  27. package/dist/components/ai/index.d.ts +3 -0
  28. package/dist/components/ai/index.js +6 -3
  29. package/dist/components/ai/shared/StatusIndicator.d.ts +8 -0
  30. package/dist/components/ai/shared/StatusIndicator.js +34 -0
  31. package/dist/components/canvas/CanvasToolbar.js +2 -2
  32. package/dist/components/canvas/NodeControls.js +2 -2
  33. package/dist/components/canvas/NodeRenderer.js +2 -2
  34. package/dist/components/charts/ActivityRings/ActivityRings.js +2 -2
  35. package/dist/components/charts/AreaChart/AreaChart.js +21 -32
  36. package/dist/components/charts/AreaChart/AreaChart.theme.d.ts +1 -6
  37. package/dist/components/charts/AreaChart/AreaChart.theme.js +7 -19
  38. package/dist/components/charts/AreaChart/AreaChart.types.d.ts +18 -11
  39. package/dist/components/charts/AreaChart/AreaChart.types.js +10 -3
  40. package/dist/components/charts/AreaChart/index.d.ts +1 -1
  41. package/dist/components/charts/BarChart/BarChart.js +9 -28
  42. package/dist/components/charts/BarChart/BarChart.types.d.ts +20 -16
  43. package/dist/components/charts/BarChart/BarChart.types.js +11 -4
  44. package/dist/components/charts/ComboChart/BarRenderer.js +8 -5
  45. package/dist/components/charts/ComboChart/ComboChart.js +11 -24
  46. package/dist/components/charts/ComboChart/ComboChart.types.d.ts +15 -13
  47. package/dist/components/charts/ComboChart/ComboChart.types.js +14 -2
  48. package/dist/components/charts/ComboChart/LineRenderer.js +15 -10
  49. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.d.ts +16 -0
  50. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.js +237 -0
  51. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.d.ts +62 -0
  52. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.js +21 -0
  53. package/dist/components/charts/HorizontalBarChart/index.d.ts +3 -0
  54. package/dist/components/charts/LineChart/LineChart.js +9 -26
  55. package/dist/components/charts/LineChart/LineChart.types.d.ts +11 -14
  56. package/dist/components/charts/LineChart/LineChart.types.js +11 -3
  57. package/dist/components/charts/LollipopChart/LollipopChart.d.ts +3 -0
  58. package/dist/components/charts/LollipopChart/LollipopChart.js +361 -0
  59. package/dist/components/charts/LollipopChart/LollipopChart.types.d.ts +42 -0
  60. package/dist/components/charts/LollipopChart/LollipopChart.types.js +12 -0
  61. package/dist/components/charts/LollipopChart/index.d.ts +3 -0
  62. package/dist/components/charts/ScatterPlot/ScatterPlot.js +5 -4
  63. package/dist/components/charts/ScatterPlot/ScatterPlot.types.d.ts +14 -19
  64. package/dist/components/charts/ScatterPlot/ScatterPlot.types.js +9 -2
  65. package/dist/components/charts/StackedBarChart/StackedBarChart.js +150 -132
  66. package/dist/components/charts/StackedBarChart/StackedBarChart.types.d.ts +20 -18
  67. package/dist/components/charts/StackedBarChart/StackedBarChart.types.js +10 -4
  68. package/dist/components/charts/hooks/useChartAccessibility.d.ts +1 -1
  69. package/dist/components/charts/hooks/useChartAccessibility.js +3 -0
  70. package/dist/components/charts/hooks/useTooltipPosition.js +18 -6
  71. package/dist/components/charts/index.d.ts +6 -0
  72. package/dist/components/charts/index.js +6 -0
  73. package/dist/components/charts/shared/ChartAxis/CategoryYAxis.d.ts +14 -0
  74. package/dist/components/charts/shared/ChartAxis/CategoryYAxis.js +35 -0
  75. package/dist/components/charts/shared/ChartAxis/ChartAxis.types.d.ts +69 -8
  76. package/dist/components/charts/shared/ChartAxis/ValueXAxis.d.ts +14 -0
  77. package/dist/components/charts/shared/ChartAxis/ValueXAxis.js +64 -0
  78. package/dist/components/charts/shared/ChartAxis/XAxis.js +1 -1
  79. package/dist/components/charts/shared/ChartAxis/YAxis.js +2 -2
  80. package/dist/components/charts/shared/ChartAxis/index.d.ts +3 -1
  81. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.d.ts +0 -2
  82. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.js +1 -1
  83. package/dist/components/charts/shared/ChartGrid/VerticalGrid.d.ts +29 -0
  84. package/dist/components/charts/shared/ChartGrid/VerticalGrid.js +26 -0
  85. package/dist/components/charts/shared/ChartGrid/index.d.ts +2 -0
  86. package/dist/components/charts/shared/ChartMarker/ChartMarker.js +7 -1
  87. package/dist/components/charts/theme/chart.theme.js +18 -23
  88. package/dist/components/charts/types/chart.types.d.ts +9 -5
  89. package/dist/components/charts/types/chart.types.js +1 -7
  90. package/dist/components/charts/utils/animation-utils.js +1 -3
  91. package/dist/components/charts/utils/bar-emphasis.d.ts +32 -3
  92. package/dist/components/charts/utils/bar-emphasis.js +24 -8
  93. package/dist/components/charts/utils/index.d.ts +1 -0
  94. package/dist/components/charts/utils/series-color.d.ts +7 -0
  95. package/dist/components/charts/utils/series-color.js +20 -0
  96. package/dist/components/core/Accordion/Accordion.theme.js +2 -2
  97. package/dist/components/core/Accordion/AccordionTrigger.js +2 -2
  98. package/dist/components/core/Alert/Alert.animations.d.ts +2 -1
  99. package/dist/components/core/Alert/Alert.animations.js +21 -6
  100. package/dist/components/core/Alert/Alert.js +7 -7
  101. package/dist/components/core/Avatar/Avatar.js +50 -42
  102. package/dist/components/core/Avatar/Avatar.theme.d.ts +8 -4
  103. package/dist/components/core/Avatar/Avatar.theme.js +64 -8
  104. package/dist/components/core/Avatar/Avatar.types.d.ts +13 -2
  105. package/dist/components/core/Avatar/index.d.ts +1 -1
  106. package/dist/components/core/AvatarGroup/AvatarGroup.js +6 -8
  107. package/dist/components/core/AvatarGroup/AvatarGroup.theme.d.ts +1 -2
  108. package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +2 -6
  109. package/dist/components/core/AvatarGroup/AvatarGroup.types.d.ts +0 -6
  110. package/dist/components/core/AvatarGroup/index.d.ts +1 -1
  111. package/dist/components/core/Badge/Badge.animations.js +4 -2
  112. package/dist/components/core/Badge/Badge.js +9 -4
  113. package/dist/components/core/Badge/Badge.theme.js +18 -12
  114. package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.d.ts +1 -4
  115. package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.js +2 -2
  116. package/dist/components/core/Button/Button.js +9 -17
  117. package/dist/components/core/Button/Button.ripple.js +2 -2
  118. package/dist/components/core/Button/Button.theme.d.ts +2 -0
  119. package/dist/components/core/Button/Button.theme.js +34 -21
  120. package/dist/components/core/Button/Button.types.d.ts +18 -1
  121. package/dist/components/core/Calendar/Calendar.js +20 -5
  122. package/dist/components/core/Calendar/Calendar.theme.js +14 -22
  123. package/dist/components/core/Calendar/Calendar.types.d.ts +0 -1
  124. package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +3 -3
  125. package/dist/components/core/Card/Card.theme.js +12 -4
  126. package/dist/components/core/Card/CardBody.js +1 -1
  127. package/dist/components/core/Card/CardFooter.js +1 -1
  128. package/dist/components/core/Card/CardHeader.js +1 -1
  129. package/dist/components/core/Carousel/CarouselNext.js +2 -2
  130. package/dist/components/core/Carousel/CarouselPrevious.js +2 -2
  131. package/dist/components/core/CommandPalette/CommandPalette.js +5 -4
  132. package/dist/components/core/CommandPalette/CommandPalette.theme.js +3 -7
  133. package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +2 -0
  134. package/dist/components/core/ContextMenu/ContextMenuItem.js +2 -2
  135. package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +2 -2
  136. package/dist/components/core/Drawer/Drawer.theme.js +7 -4
  137. package/dist/components/core/Drawer/DrawerHeader.js +2 -2
  138. package/dist/components/core/Dropdown/Dropdown.theme.js +3 -1
  139. package/dist/components/core/Dropdown/DropdownItem.js +2 -2
  140. package/dist/components/core/Dropdown/DropdownTrigger.js +16 -5
  141. package/dist/components/core/HeroCard/HeroCard.theme.js +5 -2
  142. package/dist/components/core/Kbd/Kbd.theme.js +4 -2
  143. package/dist/components/core/Link/Link.js +6 -4
  144. package/dist/components/core/Message/Message.js +2 -2
  145. package/dist/components/core/Message/Message.theme.js +5 -7
  146. package/dist/components/core/Message/MessageAudio.js +2 -2
  147. package/dist/components/core/Message/MessageFile.js +2 -2
  148. package/dist/components/core/Message/MessageLink.js +2 -2
  149. package/dist/components/core/Message/MessageStatusIndicator.js +5 -5
  150. package/dist/components/core/Modal/Modal.d.ts +1 -1
  151. package/dist/components/core/Modal/Modal.js +2 -2
  152. package/dist/components/core/Modal/Modal.theme.js +9 -4
  153. package/dist/components/core/Modal/ModalHeader.js +2 -2
  154. package/dist/components/core/ModalStack/ModalStackModal.js +2 -2
  155. package/dist/components/core/NavItem/NavItem.js +6 -6
  156. package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.d.ts +22 -0
  157. package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.js +54 -0
  158. package/dist/components/core/OfflineIndicator/OfflineIndicator.js +23 -24
  159. package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +25 -6
  160. package/dist/components/core/OfflineIndicator/OfflineIndicator.types.d.ts +17 -0
  161. package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
  162. package/dist/components/core/PageHeading/PageHeadingBackButton.js +2 -2
  163. package/dist/components/core/Pagination/Pagination.js +3 -3
  164. package/dist/components/core/Pagination/Pagination.theme.js +3 -3
  165. package/dist/components/core/Pill/Pill.js +4 -2
  166. package/dist/components/core/Pill/Pill.theme.js +6 -4
  167. package/dist/components/core/Rating/Rating.js +4 -5
  168. package/dist/components/core/Rating/Rating.theme.js +1 -1
  169. package/dist/components/core/Segmented/Segmented.theme.js +9 -6
  170. package/dist/components/core/Sidebar/Sidebar.types.d.ts +4 -2
  171. package/dist/components/core/Sidebar/SidebarHeader.js +2 -2
  172. package/dist/components/core/Sidebar/SidebarMobileTrigger.js +2 -2
  173. package/dist/components/core/Sidebar/SidebarSearch.js +3 -3
  174. package/dist/components/core/Sidebar/SidebarToggle.js +3 -3
  175. package/dist/components/core/Sidebar/SidebarUserProfile.js +2 -2
  176. package/dist/components/core/Sortable/Sortable.js +2 -2
  177. package/dist/components/core/Tag/Tag.js +2 -2
  178. package/dist/components/core/Tag/Tag.theme.js +4 -2
  179. package/dist/components/core/Toast/Toast.js +3 -3
  180. package/dist/components/core/Toast/Toast.types.d.ts +1 -1
  181. package/dist/components/core/Toast/useToast.js +5 -5
  182. package/dist/components/core/Tooltip/Tooltip.d.ts +1 -1
  183. package/dist/components/core/Tooltip/Tooltip.js +42 -10
  184. package/dist/components/core/Tooltip/Tooltip.types.d.ts +25 -0
  185. package/dist/components/core/Tree/Tree.js +2 -2
  186. package/dist/components/core/shared/interaction.animations.d.ts +51 -0
  187. package/dist/components/core/shared/interaction.animations.js +59 -0
  188. package/dist/components/data-display/Feed/Feed.js +2 -2
  189. package/dist/components/data-display/GanttChart/GanttChart.theme.js +1 -1
  190. package/dist/components/data-display/GanttChart/GanttChartPanel.js +2 -2
  191. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +3 -3
  192. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +2 -2
  193. package/dist/components/data-display/GanttChart/GanttToolbar.js +2 -2
  194. package/dist/components/data-display/KPI/KPI.js +2 -2
  195. package/dist/components/data-display/KPI/KPI.theme.js +4 -4
  196. package/dist/components/data-display/Metric/Metric.js +2 -2
  197. package/dist/components/data-display/Metric/Metric.theme.js +25 -8
  198. package/dist/components/data-display/Metric/Metric.types.d.ts +1 -1
  199. package/dist/components/data-display/Table/Table.theme.js +9 -9
  200. package/dist/components/data-display/Table/TableActions.js +2 -2
  201. package/dist/components/data-display/Table/TableActionsMenu.js +1 -1
  202. package/dist/components/data-display/Table/TableColumnManager.js +2 -2
  203. package/dist/components/data-display/Table/TableDeclarative.js +3 -3
  204. package/dist/components/data-display/Table/TableFilter.js +4 -4
  205. package/dist/components/data-display/Table/TableHeader.js +3 -3
  206. package/dist/components/data-display/Table/TableRow.js +2 -2
  207. package/dist/components/data-display/Table/TableSelectionHeader.js +3 -3
  208. package/dist/components/data-display/Timeline/TimelineMarker.js +2 -2
  209. package/dist/components/effects/CustomCursor/CustomCursor.js +2 -2
  210. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +2 -2
  211. package/dist/components/effects/DotPattern/DotPattern.js +6 -0
  212. package/dist/components/effects/DotPattern/DotPattern.types.d.ts +4 -2
  213. package/dist/components/effects/MeshGradient/MeshGradient.utils.d.ts +1 -1
  214. package/dist/components/effects/MeshGradient/MeshGradient.utils.js +1 -1
  215. package/dist/components/forms/Checkbox/Checkbox.js +2 -1
  216. package/dist/components/forms/Checkbox/Checkbox.theme.js +2 -2
  217. package/dist/components/forms/ColorPicker/ColorPickerEyeDropper.js +2 -2
  218. package/dist/components/forms/ColorPicker/ColorPickerGradient.js +2 -2
  219. package/dist/components/forms/ColorPicker/ColorPickerHeader.js +2 -2
  220. package/dist/components/forms/ColorPicker/ColorPickerImage.js +3 -3
  221. package/dist/components/forms/ColorPicker/ColorPickerInput.js +2 -2
  222. package/dist/components/forms/ColorPicker/ColorPickerPresets.js +2 -2
  223. package/dist/components/forms/ColorPicker/ColorPickerSavedColors.js +2 -2
  224. package/dist/components/forms/Combobox/Combobox.js +3 -3
  225. package/dist/components/forms/Combobox/Combobox.theme.js +2 -2
  226. package/dist/components/forms/DatePicker/DatePicker.animations.js +16 -25
  227. package/dist/components/forms/DatePicker/DatePicker.theme.js +2 -2
  228. package/dist/components/forms/DatePicker/DatePickerBody.js +1 -1
  229. package/dist/components/forms/DatePicker/DatePickerTrigger.js +2 -2
  230. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +3 -3
  231. package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +1 -1
  232. package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +2 -2
  233. package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +2 -2
  234. package/dist/components/forms/FileUpload/FileUpload.js +4 -4
  235. package/dist/components/forms/FileUpload/FileUpload.theme.js +5 -1
  236. package/dist/components/forms/FileUpload/FileUploadProgress.js +7 -7
  237. package/dist/components/forms/Input/Input.js +6 -7
  238. package/dist/components/forms/Input/Input.theme.js +19 -15
  239. package/dist/components/forms/InputAddress/InputAddress.js +10 -3
  240. package/dist/components/forms/InputCounter/InputCounter.js +3 -3
  241. package/dist/components/forms/InputOTP/InputOTP.d.ts +3 -12
  242. package/dist/components/forms/InputOTP/InputOTP.js +140 -151
  243. package/dist/components/forms/InputOTP/InputOTP.theme.d.ts +5 -1
  244. package/dist/components/forms/InputOTP/InputOTP.theme.js +40 -5
  245. package/dist/components/forms/InputOTP/InputOTP.types.d.ts +45 -2
  246. package/dist/components/forms/InputOTP/index.d.ts +1 -1
  247. package/dist/components/forms/InputTag/InputTag.js +5 -5
  248. package/dist/components/forms/InputTag/InputTag.theme.js +1 -2
  249. package/dist/components/forms/Mention/Mention.theme.js +3 -5
  250. package/dist/components/forms/Radio/Radio.js +3 -2
  251. package/dist/components/forms/Radio/Radio.theme.js +2 -2
  252. package/dist/components/forms/RichTextEditor/RichTextEditor.js +22 -23
  253. package/dist/components/forms/Select/Select.d.ts +5 -1
  254. package/dist/components/forms/Select/Select.js +12 -11
  255. package/dist/components/forms/Select/Select.theme.js +4 -4
  256. package/dist/components/forms/Select/Select.types.d.ts +4 -1
  257. package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +1 -2
  258. package/dist/components/forms/SelectableCard/SelectableCard.animations.js +6 -7
  259. package/dist/components/forms/SelectableCard/SelectableCard.js +1 -1
  260. package/dist/components/forms/Signature/Signature.js +1 -1
  261. package/dist/components/forms/Slider/Slider.js +24 -11
  262. package/dist/components/forms/Slider/Slider.theme.js +9 -3
  263. package/dist/components/forms/Switch/Switch.theme.js +1 -1
  264. package/dist/components/forms/TimePicker/TimePicker.theme.js +6 -7
  265. package/dist/components/forms/TimePicker/TimePickerContent.js +1 -1
  266. package/dist/components/forms/TimePicker/TimePickerTrigger.js +3 -3
  267. package/dist/components/forms/forms.theme.js +23 -12
  268. package/dist/components/forms/index.js +1 -1
  269. package/dist/components/generative/registry.js +195 -2
  270. package/dist/components/generative/resolvers.js +16 -16
  271. package/dist/components/generative/schema.generated.js +2687 -379
  272. package/dist/components/layout/Section/Section.theme.js +1 -1
  273. package/dist/generative.schema.json +2687 -379
  274. package/dist/hooks/index.d.ts +2 -0
  275. package/dist/hooks/useElapsedTime.d.ts +28 -0
  276. package/dist/hooks/useElapsedTime.js +37 -0
  277. package/dist/hooks/useSelectPortal.d.ts +10 -2
  278. package/dist/hooks/useSelectPortal.js +6 -3
  279. package/dist/index.js +1 -1
  280. package/dist/registry.json +835 -261
  281. package/dist/shadcn-compat.css +1 -1
  282. package/dist/styles.css +1 -1
  283. package/dist/theme.css +5 -1
  284. package/dist/themes/ember.css +131 -0
  285. package/dist/themes/iris.css +94 -0
  286. package/dist/themes/jade.css +139 -0
  287. package/dist/tools.json +2705 -361
  288. package/dist/utils/colorUtils.d.ts +6 -6
  289. package/dist/utils/colorUtils.js +8 -8
  290. package/package.json +9 -6
  291. package/src/global.scss +15 -4
  292. package/src/styles/theme.css +440 -152
  293. package/tailwind.preset.cjs +52 -34
  294. package/dist/components/core/Pill/Pill.animations.d.ts +0 -32
  295. package/dist/components/core/Pill/Pill.animations.js +0 -16
package/dist/theme.css CHANGED
@@ -1,5 +1,9 @@
1
+ /* NOTE: this file ships as dist/theme.css (copied verbatim by build:copy-css) and is
2
+ only ever consumed from there. Paths below are therefore resolved relative to dist/:
3
+ `../src/global.scss` = the shipped src/global.scss (package.json `files` ships src/global.scss
4
+ + src/styles), and `../dist` = the built components scanned for used classes. */
1
5
  @source "../dist";
2
- @import "./global.scss";
6
+ @import "../src/global.scss";
3
7
 
4
8
  @theme {
5
9
  --font-weight-light: 300;
@@ -0,0 +1,131 @@
1
+ /* ============================================================
2
+ @flikk/ui — Ember theme
3
+ Coral/burnt-orange primary × Plus Jakarta Sans × pill geometry × zinc neutrals.
4
+
5
+ Usage (import AFTER styles.css):
6
+ import "@flikk/ui/styles.css";
7
+ import "@flikk/ui/themes/ember.css";
8
+
9
+ Theme-file authoring rules (applies to every preset theme):
10
+ - All rules live in `@layer theme` — an unlayered :root would beat the
11
+ layered `.dark` overrides in styles.css and break dark mode.
12
+ - Any token overridden here in :root that styles.css ALSO overrides in
13
+ `.dark` MUST get an explicit `.dark` value below (this file is later in
14
+ source order, so its :root wins over styles.css's `.dark` otherwise).
15
+ - Never redeclare `--color-*-contrast` — it auto-derives from the live
16
+ base var (see CLAUDE.md §3).
17
+ ============================================================ */
18
+ @import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap");
19
+
20
+ @layer theme {
21
+ :root {
22
+ /* Primary — Tailwind v4 orange ramp (coral/terracotta accent) */
23
+ --color-primary-50: oklch(98% 0.016 73.684);
24
+ --color-primary-100: oklch(95.4% 0.038 75.164);
25
+ --color-primary-200: oklch(90.1% 0.076 70.697);
26
+ --color-primary-300: oklch(83.7% 0.128 66.29);
27
+ --color-primary-400: oklch(75% 0.183 55.934);
28
+ --color-primary-500: oklch(70.5% 0.213 47.604);
29
+ --color-primary-600: oklch(64.6% 0.222 41.116);
30
+ --color-primary-700: oklch(55.3% 0.195 38.402);
31
+ --color-primary-800: oklch(47% 0.157 37.304);
32
+ --color-primary-900: oklch(40.8% 0.123 38.172);
33
+ --color-primary-950: oklch(26.6% 0.079 36.259);
34
+ --color-primary: var(--color-primary-600);
35
+
36
+ /* Neutrals — Tailwind v4 zinc ramp (cool near-neutral cast; reads as the
37
+ dark navy-black used for filled badges/buttons/headings in the
38
+ reference dashboard). Dark text tokens reference these rungs by var(),
39
+ so dark picks the cast up too. */
40
+ --color-mono-50: oklch(98.5% 0 0);
41
+ --color-mono-100: oklch(96.7% 0.001 286.375);
42
+ --color-mono-200: oklch(92% 0.004 286.32);
43
+ --color-mono-300: oklch(87.1% 0.006 286.286);
44
+ --color-mono-400: oklch(70.5% 0.015 286.067);
45
+ --color-mono-500: oklch(55.2% 0.016 285.938);
46
+ --color-mono-600: oklch(44.2% 0.017 285.786);
47
+ --color-mono-700: oklch(37% 0.013 285.805);
48
+ --color-mono-800: oklch(27.4% 0.006 286.033);
49
+ --color-mono-900: oklch(21% 0.006 285.885);
50
+ --color-mono-950: oklch(14.1% 0.005 285.823);
51
+
52
+ /* Borders — zinc-tinted hairlines at the same lightness rungs as the
53
+ base theme's neutral borders (93% / 87% / 80%) */
54
+ --color-border: oklch(92% 0.004 286.32);
55
+ --color-border-secondary: oklch(87.1% 0.006 286.286);
56
+ --color-border-hover: oklch(80% 0.01 286);
57
+
58
+ /* Typography */
59
+ --font-family-base: "Plus Jakarta Sans", var(--font-sans);
60
+
61
+ /* Geometry — rounder, softer cards; every --*-radius derives from this */
62
+ --radius-base: 24px;
63
+
64
+ /* Taller, pill-leaning controls (base: 32/40/48). Buttons inherit via
65
+ --button-min-h-* = var(--form-min-h-*). */
66
+ --form-min-h-sm: 40px;
67
+ --form-min-h-md: 48px;
68
+ --form-min-h-lg: 56px;
69
+
70
+ /* Wider padding to suit the pill shape */
71
+ --form-px-sm: 16px;
72
+ --form-px-md: 20px;
73
+ --form-px-lg: 24px;
74
+ --button-px-sm: 18px;
75
+ --button-px-md: 22px;
76
+ --button-px-lg: 28px;
77
+ --button-icon-p-sm: 8px;
78
+ --button-icon-p-md: 10px;
79
+ --button-icon-p-lg: 12px;
80
+
81
+ /* Chip tier — grow badges/pills/tags/keycaps to match the spacious controls.
82
+ Radius rides --radius-base (24px → pill), so only padding is set here. */
83
+ --badge-px-sm: 8px;
84
+ --badge-px-md: 10px;
85
+ --badge-py-sm: 2px;
86
+ --badge-py-md: 4px;
87
+ --badge-pill-px-sm: 12px;
88
+ --badge-pill-px-md: 14px;
89
+ --pill-px-sm: 14px;
90
+ --pill-px-md: 14px;
91
+ --pill-px-lg: 18px;
92
+ --pill-py-sm: 4px;
93
+ --pill-py-md: 4px;
94
+ --pill-py-lg: 6px;
95
+ --tag-px-sm: 12px;
96
+ --tag-px-md: 12px;
97
+ --tag-pl-md: 14px;
98
+ --tag-py-sm: 4px;
99
+ --tag-py-md: 4px;
100
+ --kbd-px-sm: 8px;
101
+ --kbd-px-md: 10px;
102
+ }
103
+
104
+ .dark {
105
+ /* One step lighter on dark surfaces, matching Iris/Jade: orange-500 keeps
106
+ saturated white-on-coral legible without reading washy like -400 would
107
+ on a big filled button. */
108
+ --color-primary: var(--color-primary-500);
109
+
110
+ /* Zinc in light, NEUTRAL in dark. Mid/deep zinc rungs read violet-tinted
111
+ against the hueless dark surfaces (#171717…) — same judgment as
112
+ Iris's "slate reads navy" — so the whole dark ramp reverts to the base
113
+ hueless values; light keeps the cool zinc cast. */
114
+ --color-mono-50: oklch(98.5% 0 0);
115
+ --color-mono-100: oklch(97% 0 0);
116
+ --color-mono-200: oklch(92.2% 0 0);
117
+ --color-mono-300: oklch(87% 0 0);
118
+ --color-mono-400: oklch(70.8% 0 0);
119
+ --color-mono-500: oklch(55.6% 0 0);
120
+ --color-mono-600: oklch(43.9% 0 0);
121
+ --color-mono-700: oklch(37.1% 0 0);
122
+ --color-mono-800: oklch(26.9% 0 0);
123
+ --color-mono-900: oklch(20.5% 0 0);
124
+ --color-mono-950: oklch(14.5% 0 0);
125
+
126
+ /* Restated verbatim from styles.css .dark (see authoring rules above) */
127
+ --color-border: oklch(100% 0.01 255 / 0.05);
128
+ --color-border-secondary: oklch(100% 0.01 255 / 0.1);
129
+ --color-border-hover: oklch(100% 0.01 255 / 0.18);
130
+ }
131
+ }
@@ -0,0 +1,94 @@
1
+ /* ============================================================
2
+ @flikk/ui — Iris theme
3
+ Indigo primary × Bricolage Grotesque × rounder geometry × slate neutrals.
4
+
5
+ Usage (import AFTER styles.css):
6
+ import "@flikk/ui/styles.css";
7
+ import "@flikk/ui/themes/iris.css";
8
+
9
+ Theme-file authoring rules (applies to every preset theme):
10
+ - All rules live in `@layer theme` — an unlayered :root would beat the
11
+ layered `.dark` overrides in styles.css and break dark mode.
12
+ - Any token overridden here in :root that styles.css ALSO overrides in
13
+ `.dark` MUST get an explicit `.dark` value below (this file is later in
14
+ source order, so its :root wins over styles.css's `.dark` otherwise).
15
+ - Never redeclare `--color-*-contrast` — it auto-derives from the live
16
+ base var (see CLAUDE.md §3).
17
+ ============================================================ */
18
+ @import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap");
19
+
20
+ @layer theme {
21
+ :root {
22
+ /* Primary — Tailwind v4 indigo ramp */
23
+ --color-primary-50: oklch(96.2% 0.018 272.314);
24
+ --color-primary-100: oklch(93% 0.034 272.788);
25
+ --color-primary-200: oklch(87% 0.065 274.039);
26
+ --color-primary-300: oklch(78.5% 0.115 274.713);
27
+ --color-primary-400: oklch(67.3% 0.182 276.935);
28
+ --color-primary-500: oklch(58.5% 0.233 277.117);
29
+ --color-primary-600: oklch(51.1% 0.262 276.966);
30
+ --color-primary-700: oklch(45.7% 0.24 277.023);
31
+ --color-primary-800: oklch(39.8% 0.195 277.366);
32
+ --color-primary-900: oklch(35.9% 0.144 278.697);
33
+ --color-primary-950: oklch(25.7% 0.09 281.288);
34
+ --color-primary: var(--color-primary-600);
35
+
36
+ /* Neutrals — Tailwind v4 slate ramp (cool cast on text/fills; dark text
37
+ tokens reference these rungs by var(), so dark picks the cast up too) */
38
+ --color-mono-50: oklch(98.4% 0.003 247.858);
39
+ --color-mono-100: oklch(96.8% 0.007 247.896);
40
+ --color-mono-200: oklch(92.9% 0.013 255.508);
41
+ --color-mono-300: oklch(86.9% 0.022 252.894);
42
+ --color-mono-400: oklch(70.4% 0.04 256.788);
43
+ --color-mono-500: oklch(55.4% 0.046 257.417);
44
+ --color-mono-600: oklch(44.6% 0.043 257.281);
45
+ --color-mono-700: oklch(37.2% 0.044 257.287);
46
+ --color-mono-800: oklch(27.9% 0.041 260.031);
47
+ --color-mono-900: oklch(20.8% 0.042 265.755);
48
+ --color-mono-950: oklch(12.9% 0.042 264.695);
49
+
50
+ /* Borders — slate-tinted hairlines at the same lightness rungs as the
51
+ base theme's neutral borders (93% / 87% / 80%) */
52
+ --color-border: oklch(92.9% 0.013 255.508);
53
+ --color-border-secondary: oklch(86.9% 0.022 252.894);
54
+ --color-border-hover: oklch(80% 0.03 255);
55
+
56
+ /* Typography */
57
+ --font-family-base: "Bricolage Grotesque", var(--font-sans);
58
+
59
+ /* Geometry — rounder, friendlier; every --*-radius derives from this */
60
+ --radius-base: 16px;
61
+ }
62
+
63
+ .dark {
64
+ /* Hue ramps read one step lighter on dark surfaces: indigo-400 filled
65
+ controls keep white text via the auto -contrast formula */
66
+ --color-primary: var(--color-primary-400);
67
+
68
+ /* Slate in light, NEUTRAL in dark. Mid/deep slate rungs read navy against
69
+ the hueless dark surfaces (#171717…) — visible anywhere a component
70
+ legitimately paints from the ramp in dark (Button/Badge soft-neutral
71
+ fills, disabled text/fill tokens, …). The base theme itself makes this
72
+ call (dark text-secondary is hardcoded hueless: "slate was too blue").
73
+ So the whole dark ramp reverts to the base hueless values; light keeps
74
+ the slate cast. Text tokens need no pins — placeholder/muted alpha-derive
75
+ from text-primary, and the rest resolve through these rungs. */
76
+ --color-mono-50: oklch(98.5% 0 0);
77
+ --color-mono-100: oklch(97% 0 0);
78
+ --color-mono-200: oklch(92.2% 0 0);
79
+ --color-mono-300: oklch(87% 0 0);
80
+ --color-mono-400: oklch(70.8% 0 0);
81
+ --color-mono-500: oklch(55.6% 0 0);
82
+ --color-mono-600: oklch(43.9% 0 0);
83
+ --color-mono-700: oklch(37.1% 0 0);
84
+ --color-mono-800: oklch(26.9% 0 0);
85
+ --color-mono-900: oklch(20.5% 0 0);
86
+ --color-mono-950: oklch(14.5% 0 0);
87
+
88
+ /* Restated verbatim from styles.css .dark (see authoring rules above) —
89
+ the translucent light hairlines already carry a cool hue */
90
+ --color-border: oklch(100% 0.01 255 / 0.05);
91
+ --color-border-secondary: oklch(100% 0.01 255 / 0.1);
92
+ --color-border-hover: oklch(100% 0.01 255 / 0.18);
93
+ }
94
+ }
@@ -0,0 +1,139 @@
1
+ /* ============================================================
2
+ @flikk/ui — Jade theme
3
+ Emerald primary × Poppins × pill geometry × warm stone neutrals.
4
+
5
+ Usage (import AFTER styles.css):
6
+ import "@flikk/ui/styles.css";
7
+ import "@flikk/ui/themes/jade.css";
8
+
9
+ Theme-file authoring rules (applies to every preset theme):
10
+ - All rules live in `@layer theme` — an unlayered :root would beat the
11
+ layered `.dark` overrides in styles.css and break dark mode.
12
+ - Any token overridden here in :root that styles.css ALSO overrides in
13
+ `.dark` MUST get an explicit `.dark` value below (this file is later in
14
+ source order, so its :root wins over styles.css's `.dark` otherwise).
15
+ - Never redeclare `--color-*-contrast` — it auto-derives from the live
16
+ base var (see CLAUDE.md §3).
17
+ ============================================================ */
18
+ @import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap");
19
+
20
+ @layer theme {
21
+ :root {
22
+ /* Primary — Tailwind v4 emerald ramp */
23
+ --color-primary-50: oklch(97.9% 0.021 166.113);
24
+ --color-primary-100: oklch(95% 0.052 163.051);
25
+ --color-primary-200: oklch(90.5% 0.093 164.15);
26
+ --color-primary-300: oklch(84.5% 0.143 164.978);
27
+ --color-primary-400: oklch(76.5% 0.177 163.223);
28
+ --color-primary-500: oklch(69.6% 0.17 162.48);
29
+ --color-primary-600: oklch(59.6% 0.145 163.225);
30
+ --color-primary-700: oklch(50.8% 0.118 165.612);
31
+ --color-primary-800: oklch(43.2% 0.095 166.913);
32
+ --color-primary-900: oklch(37.8% 0.077 168.94);
33
+ --color-primary-950: oklch(26.2% 0.051 172.552);
34
+ --color-primary: var(--color-primary-600);
35
+
36
+ /* Neutrals — Tailwind v4 stone ramp (warm cast; jade-and-sandstone
37
+ pairing). Dark text tokens reference these rungs by var(), and
38
+ placeholder/muted alpha-derive from text-primary automatically. */
39
+ --color-mono-50: oklch(98.5% 0.001 106.423);
40
+ --color-mono-100: oklch(97% 0.001 106.424);
41
+ --color-mono-200: oklch(92.3% 0.003 48.717);
42
+ --color-mono-300: oklch(86.9% 0.005 56.366);
43
+ --color-mono-400: oklch(70.9% 0.01 56.259);
44
+ --color-mono-500: oklch(55.3% 0.013 58.071);
45
+ --color-mono-600: oklch(44.4% 0.011 73.639);
46
+ --color-mono-700: oklch(37.4% 0.01 67.558);
47
+ --color-mono-800: oklch(26.8% 0.007 34.298);
48
+ --color-mono-900: oklch(21.6% 0.006 56.043);
49
+ --color-mono-950: oklch(14.7% 0.004 49.25);
50
+
51
+ /* Borders — stone-tinted hairlines at the base lightness rungs
52
+ (93% / 87% / 80%) */
53
+ --color-border: oklch(92.3% 0.003 48.717);
54
+ --color-border-secondary: oklch(86.9% 0.005 56.366);
55
+ --color-border-hover: oklch(80% 0.008 56);
56
+
57
+ /* Typography — Poppins on a 14px-based text scale (--font-scale multiplies
58
+ the whole --text-* ramp, rounded to whole px; text-sm 12px, text-base
59
+ 14px). Spacing and the px geometry tokens below are unaffected. */
60
+ --font-family-base: "Poppins", var(--font-sans);
61
+ --font-scale: 0.875;
62
+
63
+ /* Geometry — pill-leaning: at the taller control heights below, buttons
64
+ and inputs read as soft pills; cards round to 30px */
65
+ --radius-base: 20px;
66
+
67
+ /* Card padding — roomier to suit the taller, pill-leaning geometry */
68
+ --card-px: 32px;
69
+ --card-py: 32px;
70
+
71
+ /* Taller, comfier controls (base: 32/40/48). Buttons inherit via
72
+ --button-min-h-* = var(--form-min-h-*). */
73
+ --form-min-h-sm: 36px;
74
+ --form-min-h-md: 44px;
75
+ --form-min-h-lg: 52px;
76
+
77
+ /* Wider padding to suit the pill shape */
78
+ --form-px-sm: 14px;
79
+ --form-px-md: 18px;
80
+ --form-px-lg: 20px;
81
+ --button-px-sm: 16px;
82
+ --button-px-md: 20px;
83
+ --button-px-lg: 24px;
84
+ --button-icon-p-sm: 8px;
85
+ --button-icon-p-md: 10px;
86
+ --button-icon-p-lg: 12px;
87
+
88
+ /* Chip tier — grow badges/pills/tags/keycaps to match the taller controls.
89
+ Radius rides --radius-base (20px → pill), so only padding is set here. */
90
+ --badge-px-sm: 7px;
91
+ --badge-px-md: 9px;
92
+ --badge-py-sm: 1px;
93
+ --badge-py-md: 3px;
94
+ --badge-pill-px-sm: 11px;
95
+ --badge-pill-px-md: 13px;
96
+ --pill-px-sm: 13px;
97
+ --pill-px-md: 13px;
98
+ --pill-px-lg: 16px;
99
+ --pill-py-sm: 3px;
100
+ --pill-py-md: 3px;
101
+ --pill-py-lg: 5px;
102
+ --tag-px-sm: 11px;
103
+ --tag-px-md: 11px;
104
+ --tag-pl-md: 13px;
105
+ --tag-py-sm: 3px;
106
+ --tag-py-md: 3px;
107
+ --kbd-px-sm: 7px;
108
+ --kbd-px-md: 9px;
109
+ }
110
+
111
+ .dark {
112
+ /* One step lighter on dark surfaces. -500, not -400: the emerald ramp
113
+ runs light (400 = L 0.765) and the auto -contrast crossover would still
114
+ give it white text — washy on a big filled button. 500 keeps saturated
115
+ white-on-green legible. */
116
+ --color-primary: var(--color-primary-500);
117
+
118
+ /* Stone in light, NEUTRAL in dark. Warm stone rungs read muddy-brown
119
+ against the hueless dark surfaces (#171717…) — same judgment as Iris's
120
+ "slate reads navy" — so the whole dark ramp reverts to the base hueless
121
+ values; light keeps the warm cast. */
122
+ --color-mono-50: oklch(98.5% 0 0);
123
+ --color-mono-100: oklch(97% 0 0);
124
+ --color-mono-200: oklch(92.2% 0 0);
125
+ --color-mono-300: oklch(87% 0 0);
126
+ --color-mono-400: oklch(70.8% 0 0);
127
+ --color-mono-500: oklch(55.6% 0 0);
128
+ --color-mono-600: oklch(43.9% 0 0);
129
+ --color-mono-700: oklch(37.1% 0 0);
130
+ --color-mono-800: oklch(26.9% 0 0);
131
+ --color-mono-900: oklch(20.5% 0 0);
132
+ --color-mono-950: oklch(14.5% 0 0);
133
+
134
+ /* Restated verbatim from styles.css .dark (see authoring rules above) */
135
+ --color-border: oklch(100% 0.01 255 / 0.05);
136
+ --color-border-secondary: oklch(100% 0.01 255 / 0.1);
137
+ --color-border-hover: oklch(100% 0.01 255 / 0.18);
138
+ }
139
+ }