@thesage/ui 1.1.0 → 1.3.1

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 (56) hide show
  1. package/.claude/CLAUDE.md +3 -3
  2. package/LICENSE +21 -0
  3. package/README.md +3 -4
  4. package/dist/dates.js +15 -5
  5. package/dist/dates.js.map +1 -1
  6. package/dist/dates.mjs +15 -5
  7. package/dist/dates.mjs.map +1 -1
  8. package/dist/{fontThemes-Cum0S1DI.d.mts → fontThemes-Dh8mtXES.d.mts} +27 -1
  9. package/dist/{fontThemes-Cum0S1DI.d.ts → fontThemes-Dh8mtXES.d.ts} +27 -1
  10. package/dist/forms.js +1 -1
  11. package/dist/forms.js.map +1 -1
  12. package/dist/forms.mjs +1 -1
  13. package/dist/forms.mjs.map +1 -1
  14. package/dist/{hooks-CobTQpCg.d.mts → hooks-1b8WaQf1.d.mts} +2 -2
  15. package/dist/{hooks-DHPlUx3T.d.ts → hooks-CKW8vE9H.d.ts} +2 -2
  16. package/dist/hooks.d.mts +2 -2
  17. package/dist/hooks.d.ts +2 -2
  18. package/dist/hooks.js +3 -375
  19. package/dist/hooks.js.map +1 -1
  20. package/dist/hooks.mjs +3 -375
  21. package/dist/hooks.mjs.map +1 -1
  22. package/dist/index-DscTIrZ2.d.mts +29 -0
  23. package/dist/index-DscTIrZ2.d.ts +29 -0
  24. package/dist/index.d.mts +62 -36
  25. package/dist/index.d.ts +62 -36
  26. package/dist/index.js +617 -331
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +634 -348
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/providers-aJW1AKg6.d.mts +30 -0
  31. package/dist/providers-qfyBVcPW.d.ts +30 -0
  32. package/dist/providers.d.mts +2 -1
  33. package/dist/providers.d.ts +2 -1
  34. package/dist/providers.js +226 -375
  35. package/dist/providers.js.map +1 -1
  36. package/dist/providers.mjs +226 -375
  37. package/dist/providers.mjs.map +1 -1
  38. package/dist/tables.js +5 -5
  39. package/dist/tables.js.map +1 -1
  40. package/dist/tables.mjs +5 -5
  41. package/dist/tables.mjs.map +1 -1
  42. package/dist/tokens.d.mts +165 -3
  43. package/dist/tokens.d.ts +165 -3
  44. package/dist/tokens.js +219 -1
  45. package/dist/tokens.js.map +1 -1
  46. package/dist/tokens.mjs +217 -1
  47. package/dist/tokens.mjs.map +1 -1
  48. package/dist/{utils-xrpHqxXR.d.ts → utils-CIIM7dAC.d.ts} +1 -1
  49. package/dist/{utils-DlJKRVzQ.d.mts → utils-Cs04sxth.d.mts} +1 -1
  50. package/dist/utils.d.mts +1 -1
  51. package/dist/utils.d.ts +1 -1
  52. package/package.json +22 -10
  53. package/dist/index-L8R3gyuQ.d.mts +0 -23
  54. package/dist/index-L8R3gyuQ.d.ts +0 -23
  55. package/dist/providers-Dv3LFGtJ.d.mts +0 -17
  56. package/dist/providers-Dv3LFGtJ.d.ts +0 -17
package/dist/tokens.mjs CHANGED
@@ -728,6 +728,206 @@ var voltTokens = {
728
728
  }
729
729
  };
730
730
 
731
+ // ../tokens/src/speedboat.ts
732
+ var speedboatTokens = {
733
+ light: {
734
+ colors: {
735
+ // Backgrounds
736
+ background: "#FFFFFF",
737
+ backgroundSecondary: "#F8F8F8",
738
+ // grey50
739
+ backgroundTertiary: "#ECECEC",
740
+ // grey100
741
+ // Foregrounds
742
+ foreground: "#212121",
743
+ // grey900 — ContentPrimary
744
+ foregroundSecondary: "#5D5D5D",
745
+ // grey700 — ContentSecondary
746
+ foregroundTertiary: "#8891A7",
747
+ // grey500 — muted icons
748
+ // Brand
749
+ primary: "#346BEA",
750
+ // accent blue
751
+ primaryForeground: "#FFFFFF",
752
+ secondary: "#EBF0FD",
753
+ // blue100 — chip bg
754
+ secondaryForeground: "#1E49AA",
755
+ // blue600 — chip text
756
+ accent: "#346BEA",
757
+ // same as primary for Speedboat
758
+ accentForeground: "#FFFFFF",
759
+ // Borders
760
+ border: "#ECECEC",
761
+ // grey100 — BorderPrimary
762
+ borderSubtle: "#F8F8F8",
763
+ // grey50
764
+ // States
765
+ hover: "#F8F8F8",
766
+ // grey50
767
+ active: "#ECECEC",
768
+ // grey100
769
+ // Link hover states
770
+ linkHover: "#1E49AA",
771
+ // blue600
772
+ linkHoverForeground: "#FFFFFF",
773
+ // Semantic
774
+ success: "#2E7D32",
775
+ successForeground: "#FFFFFF",
776
+ warning: "#E65100",
777
+ warningForeground: "#FFFFFF",
778
+ error: "#C62828",
779
+ errorForeground: "#FFFFFF",
780
+ info: "#346BEA",
781
+ infoForeground: "#FFFFFF",
782
+ // Component-specific colors
783
+ card: "#FFFFFF",
784
+ cardForeground: "#212121",
785
+ popover: "#FFFFFF",
786
+ popoverForeground: "#212121",
787
+ muted: "#F8F8F8",
788
+ // grey50
789
+ mutedForeground: "#8891A7",
790
+ // grey500
791
+ destructive: "#C62828",
792
+ // error red
793
+ destructiveForeground: "#FFFFFF",
794
+ input: "#DFDFDF",
795
+ // grey200 — input borders
796
+ ring: "#346BEA",
797
+ // accent blue for focus rings
798
+ // Surface
799
+ surface: "#F8F8F8",
800
+ // grey50
801
+ // Glass effects
802
+ glass: "rgba(255, 255, 255, 0.85)",
803
+ glassBorder: "rgba(0, 0, 0, 0.08)"
804
+ },
805
+ effects: {
806
+ blur: {
807
+ sm: "blur(4px)",
808
+ md: "blur(8px)",
809
+ lg: "blur(16px)",
810
+ xl: "blur(24px)"
811
+ },
812
+ shadow: {
813
+ sm: "0 1px 2px rgba(0, 0, 0, 0.05)",
814
+ md: "0 2px 8px rgba(0, 0, 0, 0.08)",
815
+ lg: "0 4px 16px rgba(0, 0, 0, 0.10)",
816
+ xl: "0 8px 24px rgba(0, 0, 0, 0.12)",
817
+ "2xl": "0 16px 48px rgba(0, 0, 0, 0.16)"
818
+ }
819
+ }
820
+ },
821
+ dark: {
822
+ colors: {
823
+ // Backgrounds — derived dark palette
824
+ background: "#0F1117",
825
+ backgroundSecondary: "#1A1C25",
826
+ backgroundTertiary: "#252833",
827
+ // Foregrounds
828
+ foreground: "#F0F0F2",
829
+ foregroundSecondary: "#A0A3B1",
830
+ foregroundTertiary: "#6B6F80",
831
+ // Brand — keep the accent blue, slightly brighten for dark bg
832
+ primary: "#4A7FF7",
833
+ primaryForeground: "#FFFFFF",
834
+ secondary: "#1E2540",
835
+ secondaryForeground: "#A6C1FF",
836
+ // blue300
837
+ accent: "#4A7FF7",
838
+ accentForeground: "#FFFFFF",
839
+ // Borders
840
+ border: "#2E3140",
841
+ borderSubtle: "#1A1C25",
842
+ // States
843
+ hover: "#1A1C25",
844
+ active: "#252833",
845
+ // Link hover states
846
+ linkHover: "#A6C1FF",
847
+ // blue300 — lighter for dark mode
848
+ linkHoverForeground: "#0F1117",
849
+ // Semantic — slightly brighter versions for dark bg
850
+ success: "#4CAF50",
851
+ successForeground: "#FFFFFF",
852
+ warning: "#FF8A50",
853
+ warningForeground: "#FFFFFF",
854
+ error: "#EF5350",
855
+ errorForeground: "#FFFFFF",
856
+ info: "#4A7FF7",
857
+ infoForeground: "#FFFFFF",
858
+ // Component-specific colors
859
+ card: "#1A1C25",
860
+ cardForeground: "#F0F0F2",
861
+ popover: "#1A1C25",
862
+ popoverForeground: "#F0F0F2",
863
+ muted: "#252833",
864
+ mutedForeground: "#6B6F80",
865
+ destructive: "#EF5350",
866
+ destructiveForeground: "#FFFFFF",
867
+ input: "#2E3140",
868
+ ring: "#4A7FF7",
869
+ // Surface
870
+ surface: "#1A1C25",
871
+ // Glass effects
872
+ glass: "rgba(15, 17, 23, 0.85)",
873
+ glassBorder: "rgba(255, 255, 255, 0.08)"
874
+ },
875
+ effects: {
876
+ blur: {
877
+ sm: "blur(4px)",
878
+ md: "blur(8px)",
879
+ lg: "blur(16px)",
880
+ xl: "blur(24px)"
881
+ },
882
+ shadow: {
883
+ sm: "0 1px 2px rgba(0, 0, 0, 0.20)",
884
+ md: "0 2px 8px rgba(0, 0, 0, 0.30)",
885
+ lg: "0 4px 16px rgba(0, 0, 0, 0.35)",
886
+ xl: "0 8px 24px rgba(0, 0, 0, 0.40)",
887
+ "2xl": "0 16px 48px rgba(0, 0, 0, 0.50)"
888
+ }
889
+ }
890
+ },
891
+ /**
892
+ * Motion personality for Speedboat theme
893
+ * Professional and snappy — slightly faster than Studio
894
+ */
895
+ motion: {
896
+ getDuration: (intensity) => {
897
+ if (intensity === 0) return "0ms";
898
+ const ms = 120 + (intensity - 1) * 35;
899
+ return `${ms}ms`;
900
+ },
901
+ ease: {
902
+ default: "cubic-bezier(0.4, 0, 0.2, 1)",
903
+ in: "cubic-bezier(0.4, 0, 1, 1)",
904
+ out: "cubic-bezier(0, 0, 0.2, 1)",
905
+ spring: "cubic-bezier(0.16, 1, 0.3, 1)"
906
+ }
907
+ },
908
+ /**
909
+ * Typography for Speedboat theme
910
+ * Montserrat headings + Roboto body — Moloco brand fonts
911
+ */
912
+ typography: {
913
+ heading: {
914
+ fontFamily: "var(--font-montserrat)",
915
+ fontWeight: "700",
916
+ letterSpacing: "-0.01em"
917
+ },
918
+ body: {
919
+ fontFamily: "var(--font-roboto)",
920
+ fontWeight: "400",
921
+ letterSpacing: "0"
922
+ },
923
+ mono: {
924
+ fontFamily: "var(--font-geist-mono)",
925
+ fontWeight: "400",
926
+ letterSpacing: "0"
927
+ }
928
+ }
929
+ };
930
+
731
931
  // ../tokens/src/typography.ts
732
932
  var fontFamilies = {
733
933
  studio: {
@@ -771,6 +971,19 @@ var fontFamilies = {
771
971
  sans: "All sans-serif needs",
772
972
  mono: "Code blocks, technical content"
773
973
  }
974
+ },
975
+ speedboat: {
976
+ heading: "Montserrat",
977
+ body: "Roboto",
978
+ sans: "Roboto",
979
+ mono: "Fira Code",
980
+ description: "Moloco brand typography \u2014 Montserrat headings with Roboto body",
981
+ usage: {
982
+ heading: "Brand headings, section titles",
983
+ body: "UI text, data labels, form content",
984
+ sans: "All sans-serif needs",
985
+ mono: "Code blocks, technical content"
986
+ }
774
987
  }
775
988
  };
776
989
  var fontLoadingConfig = {
@@ -2257,10 +2470,12 @@ function generateScale(fontTheme) {
2257
2470
  }
2258
2471
 
2259
2472
  // ../tokens/src/index.ts
2260
- var THEME_NAMES = ["studio", "terra", "volt"];
2473
+ var THEME_NAMES = ["studio", "terra", "volt", "speedboat"];
2474
+ var PUBLIC_THEME_NAMES = ["studio", "terra", "volt"];
2261
2475
  var COLOR_MODES = ["light", "dark"];
2262
2476
  export {
2263
2477
  COLOR_MODES,
2478
+ PUBLIC_THEME_NAMES,
2264
2479
  THEME_NAMES,
2265
2480
  accentColorDerivations,
2266
2481
  adjustLightness,
@@ -2307,6 +2522,7 @@ export {
2307
2522
  semanticSizes,
2308
2523
  semanticWeights,
2309
2524
  spacing,
2525
+ speedboatTokens,
2310
2526
  studioTokens,
2311
2527
  syntaxColors,
2312
2528
  terraTokens,