rei-kit 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/styles.css CHANGED
@@ -832,6 +832,160 @@ to {
832
832
  inherits: false
833
833
  }
834
834
 
835
+ /* A line height of its own, so a column is exactly one digit tall without
836
+ depending on `lh` units or on whatever line height the parent set. */
837
+ .rk-ticker[data-v-e2db153c] {
838
+ display: inline-flex;
839
+ line-height: 1.15;
840
+ font-variant-numeric: tabular-nums;
841
+ }
842
+ .rk-ticker-track[data-v-e2db153c] {
843
+ display: inline-flex;
844
+ white-space: pre;
845
+ }
846
+ .rk-ticker-digit[data-v-e2db153c] {
847
+ display: inline-block;
848
+ height: 1.15em;
849
+ overflow: hidden;
850
+ }
851
+
852
+ /* Twice the slowest token: a roll is read, not glanced at. The small delay
853
+ per column, units first, is what makes it feel mechanical rather than
854
+ swapped. Both are tokens, so reduced motion takes them to zero. */
855
+ .rk-ticker-strip[data-v-e2db153c] {
856
+ display: flex;
857
+ flex-direction: column;
858
+ transition: transform calc(var(--duration-slower) * 2) var(--ease-standard);
859
+ transition-delay: calc(var(--duration-fast) / 5 * (var(--rk-ticker-order) - 1));
860
+ }
861
+ .rk-ticker-strip > span[data-v-e2db153c] {
862
+ height: 1.15em;
863
+ }
864
+
865
+ /* Tabular figures, so the number does not shake sideways as it counts. */
866
+ .rk-count[data-v-3cefce6f] {
867
+ font-variant-numeric: tabular-nums;
868
+ }
869
+
870
+ .rk-rotate[data-v-2ca5182f] {
871
+ display: inline-block;
872
+ vertical-align: bottom;
873
+ }
874
+ .rk-rotate-word[data-v-2ca5182f] {
875
+ display: inline-block;
876
+ }
877
+ .rk-rotate-enter-active[data-v-2ca5182f],
878
+ .rk-rotate-leave-active[data-v-2ca5182f] {
879
+ transition:
880
+ opacity var(--duration-base) var(--ease-standard),
881
+ transform var(--duration-base) var(--ease-standard),
882
+ filter var(--duration-base) var(--ease-standard);
883
+ }
884
+ .rk-rotate-enter-from[data-v-2ca5182f] {
885
+ opacity: 0;
886
+ transform: translateY(40%);
887
+ filter: blur(4px);
888
+ }
889
+ .rk-rotate-leave-to[data-v-2ca5182f] {
890
+ opacity: 0;
891
+ transform: translateY(-40%);
892
+ filter: blur(4px);
893
+ }
894
+
895
+ .rk-type[data-v-05f176ab] {
896
+ white-space: pre-wrap;
897
+ }
898
+
899
+ /* A bar the height of the text, in its colour. */
900
+ .rk-type-cursor[data-v-05f176ab] {
901
+ display: inline-block;
902
+ width: 0.08em;
903
+ height: 1em;
904
+ margin-left: 0.06em;
905
+ vertical-align: -0.12em;
906
+ background: currentColor;
907
+ animation: rk-type-blink-05f176ab 1s steps(1) infinite;
908
+ }
909
+ @keyframes rk-type-blink-05f176ab {
910
+ 50% {
911
+ opacity: 0;
912
+ }
913
+ }
914
+ @media (prefers-reduced-motion: reduce) {
915
+ .rk-type-cursor[data-v-05f176ab] {
916
+ animation: none;
917
+ }
918
+ }
919
+
920
+ .rk-reveal[data-v-c8b25508] {
921
+ transition:
922
+ opacity var(--duration-slower) var(--ease-standard),
923
+ transform var(--duration-slower) var(--ease-standard);
924
+ transition-delay: var(--rk-reveal-delay);
925
+ }
926
+
927
+ /* Hiding is instant; only arriving is animated. Otherwise an item leaving the
928
+ screen would fade out where nobody is looking and waste the frames. */
929
+ .rk-reveal.is-hidden[data-v-c8b25508] {
930
+ opacity: 0;
931
+ transition-duration: 0s;
932
+ transition-delay: 0s;
933
+ }
934
+ .rk-reveal-rise.is-hidden[data-v-c8b25508] {
935
+ transform: translateY(1rem);
936
+ }
937
+ .rk-reveal-scale.is-hidden[data-v-c8b25508] {
938
+ transform: scale(0.96);
939
+ }
940
+
941
+ .rk-marquee[data-v-9a25b43d] {
942
+ display: flex;
943
+ overflow: hidden;
944
+ }
945
+ .rk-marquee.is-faded[data-v-9a25b43d] {
946
+ mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
947
+ }
948
+ .rk-marquee-track[data-v-9a25b43d] {
949
+ display: flex;
950
+ width: max-content;
951
+ animation: rk-marquee-9a25b43d var(--rk-marquee-duration) linear infinite;
952
+ }
953
+ .rk-marquee.is-reverse .rk-marquee-track[data-v-9a25b43d] {
954
+ animation-direction: reverse;
955
+ }
956
+ .rk-marquee.is-paused .rk-marquee-track[data-v-9a25b43d],
957
+ .rk-marquee:hover .rk-marquee-track[data-v-9a25b43d],
958
+ .rk-marquee:focus-within .rk-marquee-track[data-v-9a25b43d] {
959
+ animation-play-state: paused;
960
+ }
961
+
962
+ /* Each group ends in the gap, so moving by exactly half the track lands the
963
+ second copy where the first began. */
964
+ .rk-marquee-group[data-v-9a25b43d] {
965
+ display: flex;
966
+ flex-shrink: 0;
967
+ align-items: center;
968
+ gap: var(--rk-marquee-gap);
969
+ padding-inline-end: var(--rk-marquee-gap);
970
+ }
971
+ @keyframes rk-marquee-9a25b43d {
972
+ to {
973
+ transform: translateX(-50%);
974
+ }
975
+ }
976
+ @media (prefers-reduced-motion: reduce) {
977
+ .rk-marquee[data-v-9a25b43d] {
978
+ overflow-x: auto;
979
+ mask-image: none;
980
+ }
981
+ .rk-marquee-track[data-v-9a25b43d] {
982
+ animation: none;
983
+ }
984
+ .rk-marquee-group[aria-hidden='true'][data-v-9a25b43d] {
985
+ display: none;
986
+ }
987
+ }
988
+
835
989
  .install-enter-active[data-v-552a4ac9],
836
990
  .install-leave-active[data-v-552a4ac9] {
837
991
  transition:
@@ -22,3 +22,19 @@ export declare function setFormatLocale(next: string): void;
22
22
  * ```
23
23
  */
24
24
  export declare function formatDate(date: Date, options: Intl.DateTimeFormatOptions): string;
25
+ /**
26
+ * Formats a number in the active locale, or in `tag` when one is given.
27
+ *
28
+ * The same cache and the same locale as `formatDate`, so a counter and the
29
+ * date beside it change language together.
30
+ *
31
+ * @param value - Number to format.
32
+ * @param options - Passed straight to `Intl.NumberFormat`: currency, percent, decimals.
33
+ * @param tag - A BCP 47 tag that overrides the active locale for this call.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * formatNumber(48200, { style: 'currency', currency: 'JPY' }) // '¥48,200'
38
+ * ```
39
+ */
40
+ export declare function formatNumber(value: number, options?: Intl.NumberFormatOptions, tag?: string): string;
package/dist/web.css CHANGED
@@ -22,6 +22,7 @@
22
22
  @import './shell/web.css';
23
23
  @import './materials.css';
24
24
  @import './palettes.css';
25
+ @import './motion.css';
25
26
  @import './styles.css';
26
27
 
27
28
  @source './**/*.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rei-kit",
3
- "version": "2.2.0",
4
- "description": "One kit, every look. 53 accessible Vue 3 + Tailwind 4 components, four materials (quiet, glass, brutal, soft) and ten WCAG-checked palettes, each switched with one attribute.",
3
+ "version": "2.3.0",
4
+ "description": "One kit, every look. 59 accessible Vue 3 + Tailwind 4 components, four materials (quiet, glass, brutal, soft) and ten WCAG-checked palettes, each switched with one attribute.",
5
5
  "keywords": [
6
6
  "vue",
7
7
  "vue3",
@@ -58,6 +58,7 @@
58
58
  "./materials/brutal.css": "./dist/materials/brutal.css",
59
59
  "./materials/soft.css": "./dist/materials/soft.css",
60
60
  "./palettes.css": "./dist/palettes.css",
61
+ "./motion.css": "./dist/motion.css",
61
62
  "./app": {
62
63
  "types": "./dist/app/index.d.ts",
63
64
  "import": "./dist/app.js"
@@ -70,6 +71,10 @@
70
71
  "types": "./dist/pwa/index.d.ts",
71
72
  "import": "./dist/pwa.js"
72
73
  },
74
+ "./motion": {
75
+ "types": "./dist/motion/index.d.ts",
76
+ "import": "./dist/motion.js"
77
+ },
73
78
  "./supabase": {
74
79
  "types": "./dist/supabase/index.d.ts",
75
80
  "import": "./dist/supabase.js"