@bug-on/m3-expressive 1.2.3 → 1.2.4
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/CHANGELOG.md +6 -0
- package/dist/buttons.d.mts +1 -1
- package/dist/buttons.d.ts +1 -1
- package/dist/buttons.js +27 -8
- package/dist/buttons.js.map +1 -1
- package/dist/buttons.mjs +27 -8
- package/dist/buttons.mjs.map +1 -1
- package/dist/index.d.mts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +501 -141
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +501 -141
- package/dist/index.mjs.map +1 -1
- package/dist/layout.js +4 -1
- package/dist/layout.js.map +1 -1
- package/dist/layout.mjs +4 -1
- package/dist/layout.mjs.map +1 -1
- package/dist/md3-expressive-shapes-CPcfl_Hf.d.mts +498 -0
- package/dist/md3-expressive-shapes-CPcfl_Hf.d.ts +498 -0
- package/dist/navigation.d.mts +66 -13
- package/dist/navigation.d.ts +66 -13
- package/dist/navigation.js +2403 -133
- package/dist/navigation.js.map +1 -1
- package/dist/navigation.mjs +2402 -134
- package/dist/navigation.mjs.map +1 -1
- package/dist/shapes.d.mts +3 -498
- package/dist/shapes.d.ts +3 -498
- package/dist/{split-button-trailing-uncheckable-DHJqNeq_.d.mts → split-button-trailing-uncheckable-BTWfIN2k.d.mts} +5 -0
- package/dist/{split-button-trailing-uncheckable-C-qQlyZx.d.ts → split-button-trailing-uncheckable-DtxrcLxH.d.ts} +5 -0
- package/package.json +3 -3
package/dist/navigation.js
CHANGED
|
@@ -2626,6 +2626,1922 @@ function TouchTarget() {
|
|
|
2626
2626
|
}
|
|
2627
2627
|
);
|
|
2628
2628
|
}
|
|
2629
|
+
|
|
2630
|
+
// src/shapes/core/features.ts
|
|
2631
|
+
function cornerFeature(cubics, convex2) {
|
|
2632
|
+
return { type: "corner", cubics, convex: convex2 };
|
|
2633
|
+
}
|
|
2634
|
+
function edgeFeature(cubics) {
|
|
2635
|
+
return { type: "edge", cubics };
|
|
2636
|
+
}
|
|
2637
|
+
function transformFeature(feature, fn) {
|
|
2638
|
+
const cubics = feature.cubics.map((c) => c.transformed(fn));
|
|
2639
|
+
if (feature.type === "corner") {
|
|
2640
|
+
return cornerFeature(cubics, feature.convex);
|
|
2641
|
+
}
|
|
2642
|
+
return edgeFeature(cubics);
|
|
2643
|
+
}
|
|
2644
|
+
|
|
2645
|
+
// src/shapes/math/corner-rounding.ts
|
|
2646
|
+
var UNROUNDED = Object.freeze({
|
|
2647
|
+
radius: 0,
|
|
2648
|
+
smoothing: 0
|
|
2649
|
+
});
|
|
2650
|
+
|
|
2651
|
+
// src/shapes/utils/utils.ts
|
|
2652
|
+
var DISTANCE_EPSILON = 1e-4;
|
|
2653
|
+
var FLOAT_PI = Math.PI;
|
|
2654
|
+
function distance(dx, dy) {
|
|
2655
|
+
return Math.sqrt(dx * dx + dy * dy);
|
|
2656
|
+
}
|
|
2657
|
+
function distanceSquared(dx, dy) {
|
|
2658
|
+
return dx * dx + dy * dy;
|
|
2659
|
+
}
|
|
2660
|
+
function radialToCartesian(radius, angle) {
|
|
2661
|
+
return [radius * Math.cos(angle), radius * Math.sin(angle)];
|
|
2662
|
+
}
|
|
2663
|
+
function interpolate(start, stop, fraction) {
|
|
2664
|
+
return start + (stop - start) * fraction;
|
|
2665
|
+
}
|
|
2666
|
+
function square(value) {
|
|
2667
|
+
return value * value;
|
|
2668
|
+
}
|
|
2669
|
+
function convex(prevX, prevY, currX, currY, nextX, nextY) {
|
|
2670
|
+
const v1x = currX - prevX;
|
|
2671
|
+
const v1y = currY - prevY;
|
|
2672
|
+
const v2x = nextX - currX;
|
|
2673
|
+
const v2y = nextY - currY;
|
|
2674
|
+
return v1x * v2y - v1y * v2x > 0;
|
|
2675
|
+
}
|
|
2676
|
+
|
|
2677
|
+
// src/shapes/math/point.ts
|
|
2678
|
+
function point(x, y) {
|
|
2679
|
+
return { x, y };
|
|
2680
|
+
}
|
|
2681
|
+
|
|
2682
|
+
// src/shapes/math/cubic.ts
|
|
2683
|
+
var Cubic = class _Cubic {
|
|
2684
|
+
constructor(points) {
|
|
2685
|
+
if (points.length !== 8)
|
|
2686
|
+
throw new Error("Cubic points array must have exactly 8 elements");
|
|
2687
|
+
this.points = points;
|
|
2688
|
+
}
|
|
2689
|
+
/** First anchor point X */
|
|
2690
|
+
get anchor0X() {
|
|
2691
|
+
return this.points[0];
|
|
2692
|
+
}
|
|
2693
|
+
/** First anchor point Y */
|
|
2694
|
+
get anchor0Y() {
|
|
2695
|
+
return this.points[1];
|
|
2696
|
+
}
|
|
2697
|
+
/** First control point X */
|
|
2698
|
+
get control0X() {
|
|
2699
|
+
return this.points[2];
|
|
2700
|
+
}
|
|
2701
|
+
/** First control point Y */
|
|
2702
|
+
get control0Y() {
|
|
2703
|
+
return this.points[3];
|
|
2704
|
+
}
|
|
2705
|
+
/** Second control point X */
|
|
2706
|
+
get control1X() {
|
|
2707
|
+
return this.points[4];
|
|
2708
|
+
}
|
|
2709
|
+
/** Second control point Y */
|
|
2710
|
+
get control1Y() {
|
|
2711
|
+
return this.points[5];
|
|
2712
|
+
}
|
|
2713
|
+
/** Second anchor point X */
|
|
2714
|
+
get anchor1X() {
|
|
2715
|
+
return this.points[6];
|
|
2716
|
+
}
|
|
2717
|
+
/** Second anchor point Y */
|
|
2718
|
+
get anchor1Y() {
|
|
2719
|
+
return this.points[7];
|
|
2720
|
+
}
|
|
2721
|
+
/**
|
|
2722
|
+
* Returns a point on the curve at parameter t (0=start, 1=end).
|
|
2723
|
+
* Uses the standard cubic Bézier formula.
|
|
2724
|
+
* @param t - Parameter in [0, 1]
|
|
2725
|
+
*/
|
|
2726
|
+
pointOnCurve(t) {
|
|
2727
|
+
const u = 1 - t;
|
|
2728
|
+
return point(
|
|
2729
|
+
this.anchor0X * (u * u * u) + this.control0X * (3 * t * u * u) + this.control1X * (3 * t * t * u) + this.anchor1X * (t * t * t),
|
|
2730
|
+
this.anchor0Y * (u * u * u) + this.control0Y * (3 * t * u * u) + this.control1Y * (3 * t * t * u) + this.anchor1Y * (t * t * t)
|
|
2731
|
+
);
|
|
2732
|
+
}
|
|
2733
|
+
/**
|
|
2734
|
+
* Returns true if this curve has (near) zero length.
|
|
2735
|
+
*/
|
|
2736
|
+
zeroLength() {
|
|
2737
|
+
return Math.abs(this.anchor0X - this.anchor1X) < DISTANCE_EPSILON && Math.abs(this.anchor0Y - this.anchor1Y) < DISTANCE_EPSILON;
|
|
2738
|
+
}
|
|
2739
|
+
/**
|
|
2740
|
+
* Splits this cubic at parameter t, returning two cubics.
|
|
2741
|
+
* Uses De Casteljau's algorithm.
|
|
2742
|
+
* @param t - Split parameter in [0, 1]
|
|
2743
|
+
* @returns [left, right] pair
|
|
2744
|
+
*/
|
|
2745
|
+
split(t) {
|
|
2746
|
+
const u = 1 - t;
|
|
2747
|
+
const mid = this.pointOnCurve(t);
|
|
2748
|
+
const left = new _Cubic([
|
|
2749
|
+
this.anchor0X,
|
|
2750
|
+
this.anchor0Y,
|
|
2751
|
+
this.anchor0X * u + this.control0X * t,
|
|
2752
|
+
this.anchor0Y * u + this.control0Y * t,
|
|
2753
|
+
this.anchor0X * (u * u) + this.control0X * (2 * u * t) + this.control1X * (t * t),
|
|
2754
|
+
this.anchor0Y * (u * u) + this.control0Y * (2 * u * t) + this.control1Y * (t * t),
|
|
2755
|
+
mid.x,
|
|
2756
|
+
mid.y
|
|
2757
|
+
]);
|
|
2758
|
+
const right = new _Cubic([
|
|
2759
|
+
mid.x,
|
|
2760
|
+
mid.y,
|
|
2761
|
+
this.control0X * (u * u) + this.control1X * (2 * u * t) + this.anchor1X * (t * t),
|
|
2762
|
+
this.control0Y * (u * u) + this.control1Y * (2 * u * t) + this.anchor1Y * (t * t),
|
|
2763
|
+
this.control1X * u + this.anchor1X * t,
|
|
2764
|
+
this.control1Y * u + this.anchor1Y * t,
|
|
2765
|
+
this.anchor1X,
|
|
2766
|
+
this.anchor1Y
|
|
2767
|
+
]);
|
|
2768
|
+
return [left, right];
|
|
2769
|
+
}
|
|
2770
|
+
/**
|
|
2771
|
+
* Returns a reversed copy of this cubic (anchor0 ↔ anchor1, controls swapped).
|
|
2772
|
+
*/
|
|
2773
|
+
reverse() {
|
|
2774
|
+
return new _Cubic([
|
|
2775
|
+
this.anchor1X,
|
|
2776
|
+
this.anchor1Y,
|
|
2777
|
+
this.control1X,
|
|
2778
|
+
this.control1Y,
|
|
2779
|
+
this.control0X,
|
|
2780
|
+
this.control0Y,
|
|
2781
|
+
this.anchor0X,
|
|
2782
|
+
this.anchor0Y
|
|
2783
|
+
]);
|
|
2784
|
+
}
|
|
2785
|
+
/**
|
|
2786
|
+
* Calculates the axis-aligned bounding box.
|
|
2787
|
+
* @param approximate - If true, uses control point hull (faster). Default: false.
|
|
2788
|
+
* @returns [minX, minY, maxX, maxY]
|
|
2789
|
+
*/
|
|
2790
|
+
calculateBounds(approximate = false) {
|
|
2791
|
+
if (this.zeroLength()) {
|
|
2792
|
+
return [this.anchor0X, this.anchor0Y, this.anchor0X, this.anchor0Y];
|
|
2793
|
+
}
|
|
2794
|
+
let minX = Math.min(this.anchor0X, this.anchor1X);
|
|
2795
|
+
let minY = Math.min(this.anchor0Y, this.anchor1Y);
|
|
2796
|
+
let maxX = Math.max(this.anchor0X, this.anchor1X);
|
|
2797
|
+
let maxY = Math.max(this.anchor0Y, this.anchor1Y);
|
|
2798
|
+
if (approximate) {
|
|
2799
|
+
minX = Math.min(minX, this.control0X, this.control1X);
|
|
2800
|
+
minY = Math.min(minY, this.control0Y, this.control1Y);
|
|
2801
|
+
maxX = Math.max(maxX, this.control0X, this.control1X);
|
|
2802
|
+
maxY = Math.max(maxY, this.control0Y, this.control1Y);
|
|
2803
|
+
return [minX, minY, maxX, maxY];
|
|
2804
|
+
}
|
|
2805
|
+
const xa = -this.anchor0X + 3 * this.control0X - 3 * this.control1X + this.anchor1X;
|
|
2806
|
+
const xb = 2 * this.anchor0X - 4 * this.control0X + 2 * this.control1X;
|
|
2807
|
+
const xc = -this.anchor0X + this.control0X;
|
|
2808
|
+
const expandX = (t) => {
|
|
2809
|
+
if (t >= 0 && t <= 1) {
|
|
2810
|
+
const v = this.pointOnCurve(t).x;
|
|
2811
|
+
if (v < minX) minX = v;
|
|
2812
|
+
if (v > maxX) maxX = v;
|
|
2813
|
+
}
|
|
2814
|
+
};
|
|
2815
|
+
if (Math.abs(xa) < DISTANCE_EPSILON) {
|
|
2816
|
+
if (xb !== 0) expandX(2 * xc / (-2 * xb));
|
|
2817
|
+
} else {
|
|
2818
|
+
const xs = xb * xb - 4 * xa * xc;
|
|
2819
|
+
if (xs >= 0) {
|
|
2820
|
+
expandX((-xb + Math.sqrt(xs)) / (2 * xa));
|
|
2821
|
+
expandX((-xb - Math.sqrt(xs)) / (2 * xa));
|
|
2822
|
+
}
|
|
2823
|
+
}
|
|
2824
|
+
const ya = -this.anchor0Y + 3 * this.control0Y - 3 * this.control1Y + this.anchor1Y;
|
|
2825
|
+
const yb = 2 * this.anchor0Y - 4 * this.control0Y + 2 * this.control1Y;
|
|
2826
|
+
const yc = -this.anchor0Y + this.control0Y;
|
|
2827
|
+
const expandY = (t) => {
|
|
2828
|
+
if (t >= 0 && t <= 1) {
|
|
2829
|
+
const v = this.pointOnCurve(t).y;
|
|
2830
|
+
if (v < minY) minY = v;
|
|
2831
|
+
if (v > maxY) maxY = v;
|
|
2832
|
+
}
|
|
2833
|
+
};
|
|
2834
|
+
if (Math.abs(ya) < DISTANCE_EPSILON) {
|
|
2835
|
+
if (yb !== 0) expandY(2 * yc / (-2 * yb));
|
|
2836
|
+
} else {
|
|
2837
|
+
const ys = yb * yb - 4 * ya * yc;
|
|
2838
|
+
if (ys >= 0) {
|
|
2839
|
+
expandY((-yb + Math.sqrt(ys)) / (2 * ya));
|
|
2840
|
+
expandY((-yb - Math.sqrt(ys)) / (2 * ya));
|
|
2841
|
+
}
|
|
2842
|
+
}
|
|
2843
|
+
return [minX, minY, maxX, maxY];
|
|
2844
|
+
}
|
|
2845
|
+
/**
|
|
2846
|
+
* Interpolates between this cubic and another at fraction t.
|
|
2847
|
+
* @param other - Target cubic
|
|
2848
|
+
* @param t - Fraction [0, 1]
|
|
2849
|
+
*/
|
|
2850
|
+
interpolateTo(other, t) {
|
|
2851
|
+
return new _Cubic(
|
|
2852
|
+
this.points.map((v, i) => interpolate(v, other.points[i], t))
|
|
2853
|
+
);
|
|
2854
|
+
}
|
|
2855
|
+
/**
|
|
2856
|
+
* Applies a PointTransformer to all anchor and control points.
|
|
2857
|
+
* @param fn - The transform function
|
|
2858
|
+
*/
|
|
2859
|
+
transformed(fn) {
|
|
2860
|
+
const p = this.points.slice();
|
|
2861
|
+
for (let i = 0; i < 8; i += 2) {
|
|
2862
|
+
const [tx, ty] = fn(p[i], p[i + 1]);
|
|
2863
|
+
p[i] = tx;
|
|
2864
|
+
p[i + 1] = ty;
|
|
2865
|
+
}
|
|
2866
|
+
return new _Cubic(p);
|
|
2867
|
+
}
|
|
2868
|
+
toString() {
|
|
2869
|
+
return `Cubic(a0=(${this.anchor0X},${this.anchor0Y}) c0=(${this.control0X},${this.control0Y}) c1=(${this.control1X},${this.control1Y}) a1=(${this.anchor1X},${this.anchor1Y}))`;
|
|
2870
|
+
}
|
|
2871
|
+
// ─── Static factories ─────────────────────────────────────────────────────
|
|
2872
|
+
/**
|
|
2873
|
+
* Creates a cubic representing a straight line.
|
|
2874
|
+
* Control points lie at 1/3 and 2/3 of the line.
|
|
2875
|
+
* @param x0 - Start anchor X
|
|
2876
|
+
* @param y0 - Start anchor Y
|
|
2877
|
+
* @param x1 - End anchor X
|
|
2878
|
+
* @param y1 - End anchor Y
|
|
2879
|
+
*/
|
|
2880
|
+
static straightLine(x0, y0, x1, y1) {
|
|
2881
|
+
return new _Cubic([
|
|
2882
|
+
x0,
|
|
2883
|
+
y0,
|
|
2884
|
+
interpolate(x0, x1, 1 / 3),
|
|
2885
|
+
interpolate(y0, y1, 1 / 3),
|
|
2886
|
+
interpolate(x0, x1, 2 / 3),
|
|
2887
|
+
interpolate(y0, y1, 2 / 3),
|
|
2888
|
+
x1,
|
|
2889
|
+
y1
|
|
2890
|
+
]);
|
|
2891
|
+
}
|
|
2892
|
+
/**
|
|
2893
|
+
* Creates a cubic approximating a circular arc.
|
|
2894
|
+
* p0 and p1 must be equidistant from the center.
|
|
2895
|
+
* For arcs > 180°, use multiple cubics.
|
|
2896
|
+
*
|
|
2897
|
+
* @param centerX - Arc center X
|
|
2898
|
+
* @param centerY - Arc center Y
|
|
2899
|
+
* @param x0 - Start point X (on circle)
|
|
2900
|
+
* @param y0 - Start point Y (on circle)
|
|
2901
|
+
* @param x1 - End point X (on circle)
|
|
2902
|
+
* @param y1 - End point Y (on circle)
|
|
2903
|
+
*/
|
|
2904
|
+
static circularArc(centerX, centerY, x0, y0, x1, y1) {
|
|
2905
|
+
const p0dx = x0 - centerX;
|
|
2906
|
+
const p0dy = y0 - centerY;
|
|
2907
|
+
const p1dx = x1 - centerX;
|
|
2908
|
+
const p1dy = y1 - centerY;
|
|
2909
|
+
const d0 = Math.sqrt(p0dx * p0dx + p0dy * p0dy);
|
|
2910
|
+
const d1 = Math.sqrt(p1dx * p1dx + p1dy * p1dy);
|
|
2911
|
+
if (d0 < DISTANCE_EPSILON || d1 < DISTANCE_EPSILON) {
|
|
2912
|
+
return _Cubic.straightLine(x0, y0, x1, y1);
|
|
2913
|
+
}
|
|
2914
|
+
const nx0 = p0dx / d0, ny0 = p0dy / d0;
|
|
2915
|
+
const nx1 = p1dx / d1, ny1 = p1dy / d1;
|
|
2916
|
+
const rx0 = -ny0, ry0 = nx0;
|
|
2917
|
+
const rx1 = -ny1, ry1 = nx1;
|
|
2918
|
+
const cosa = nx0 * nx1 + ny0 * ny1;
|
|
2919
|
+
if (cosa > 0.999) return _Cubic.straightLine(x0, y0, x1, y1);
|
|
2920
|
+
const clockwise = rx0 * p1dx + ry0 * p1dy >= 0;
|
|
2921
|
+
const k = d0 * (4 / 3) * (Math.sqrt(2 * (1 - cosa)) - Math.sqrt(1 - square(cosa))) / (1 - cosa) * (clockwise ? 1 : -1);
|
|
2922
|
+
return new _Cubic([
|
|
2923
|
+
x0,
|
|
2924
|
+
y0,
|
|
2925
|
+
x0 + rx0 * k,
|
|
2926
|
+
y0 + ry0 * k,
|
|
2927
|
+
x1 - rx1 * k,
|
|
2928
|
+
y1 - ry1 * k,
|
|
2929
|
+
x1,
|
|
2930
|
+
y1
|
|
2931
|
+
]);
|
|
2932
|
+
}
|
|
2933
|
+
/**
|
|
2934
|
+
* Creates a zero-length cubic at the given point.
|
|
2935
|
+
* @param x - X coordinate
|
|
2936
|
+
* @param y - Y coordinate
|
|
2937
|
+
*/
|
|
2938
|
+
static empty(x, y) {
|
|
2939
|
+
return new _Cubic([x, y, x, y, x, y, x, y]);
|
|
2940
|
+
}
|
|
2941
|
+
};
|
|
2942
|
+
|
|
2943
|
+
// src/shapes/core/rounded-polygon.ts
|
|
2944
|
+
var RoundedCorner = class {
|
|
2945
|
+
constructor(p0, p1, p2, rounding = UNROUNDED) {
|
|
2946
|
+
this.p0 = p0;
|
|
2947
|
+
this.p1 = p1;
|
|
2948
|
+
this.p2 = p2;
|
|
2949
|
+
this.rounding = rounding;
|
|
2950
|
+
this.center = point(0, 0);
|
|
2951
|
+
const v01x = p0.x - p1.x, v01y = p0.y - p1.y;
|
|
2952
|
+
const v21x = p2.x - p1.x, v21y = p2.y - p1.y;
|
|
2953
|
+
const d01 = distance(v01x, v01y);
|
|
2954
|
+
const d21 = distance(v21x, v21y);
|
|
2955
|
+
if (d01 > 0 && d21 > 0) {
|
|
2956
|
+
this.d1 = point(v01x / d01, v01y / d01);
|
|
2957
|
+
this.d2 = point(v21x / d21, v21y / d21);
|
|
2958
|
+
this.cornerRadius = rounding.radius;
|
|
2959
|
+
this.smoothing = rounding.smoothing;
|
|
2960
|
+
const cosA = this.d1.x * this.d2.x + this.d1.y * this.d2.y;
|
|
2961
|
+
this.sinAngle = Math.sqrt(Math.max(0, 1 - square(cosA)));
|
|
2962
|
+
this.expectedRoundCut = this.sinAngle > 1e-3 ? this.cornerRadius * (cosA + 1) / this.sinAngle : 0;
|
|
2963
|
+
} else {
|
|
2964
|
+
this.d1 = point(0, 0);
|
|
2965
|
+
this.d2 = point(0, 0);
|
|
2966
|
+
this.cornerRadius = 0;
|
|
2967
|
+
this.smoothing = 0;
|
|
2968
|
+
this.sinAngle = 0;
|
|
2969
|
+
this.expectedRoundCut = 0;
|
|
2970
|
+
}
|
|
2971
|
+
}
|
|
2972
|
+
get expectedCut() {
|
|
2973
|
+
return (1 + this.smoothing) * this.expectedRoundCut;
|
|
2974
|
+
}
|
|
2975
|
+
getCubics(allowedCut0, allowedCut1 = allowedCut0) {
|
|
2976
|
+
const allowedCut = Math.min(allowedCut0, allowedCut1);
|
|
2977
|
+
if (this.expectedRoundCut < DISTANCE_EPSILON || allowedCut < DISTANCE_EPSILON || this.cornerRadius < DISTANCE_EPSILON) {
|
|
2978
|
+
this.center = this.p1;
|
|
2979
|
+
return [Cubic.straightLine(this.p1.x, this.p1.y, this.p1.x, this.p1.y)];
|
|
2980
|
+
}
|
|
2981
|
+
const actualRoundCut = Math.min(allowedCut, this.expectedRoundCut);
|
|
2982
|
+
const actualSmoothing0 = this.calcSmoothingValue(allowedCut0);
|
|
2983
|
+
const actualSmoothing1 = this.calcSmoothingValue(allowedCut1);
|
|
2984
|
+
const actualR = this.cornerRadius * actualRoundCut / this.expectedRoundCut;
|
|
2985
|
+
const centerDist = Math.sqrt(square(actualR) + square(actualRoundCut));
|
|
2986
|
+
const midDirX = (this.d1.x + this.d2.x) / 2;
|
|
2987
|
+
const midDirY = (this.d1.y + this.d2.y) / 2;
|
|
2988
|
+
const midDist = distance(midDirX, midDirY);
|
|
2989
|
+
this.center = point(
|
|
2990
|
+
this.p1.x + midDirX / midDist * centerDist,
|
|
2991
|
+
this.p1.y + midDirY / midDist * centerDist
|
|
2992
|
+
);
|
|
2993
|
+
const ci0 = point(
|
|
2994
|
+
this.p1.x + this.d1.x * actualRoundCut,
|
|
2995
|
+
this.p1.y + this.d1.y * actualRoundCut
|
|
2996
|
+
);
|
|
2997
|
+
const ci2 = point(
|
|
2998
|
+
this.p1.x + this.d2.x * actualRoundCut,
|
|
2999
|
+
this.p1.y + this.d2.y * actualRoundCut
|
|
3000
|
+
);
|
|
3001
|
+
const flanking0 = this.computeFlankingCurve(
|
|
3002
|
+
actualRoundCut,
|
|
3003
|
+
actualSmoothing0,
|
|
3004
|
+
this.p1,
|
|
3005
|
+
this.p0,
|
|
3006
|
+
ci0,
|
|
3007
|
+
ci2,
|
|
3008
|
+
this.center,
|
|
3009
|
+
actualR
|
|
3010
|
+
);
|
|
3011
|
+
const flanking2 = this.computeFlankingCurve(
|
|
3012
|
+
actualRoundCut,
|
|
3013
|
+
actualSmoothing1,
|
|
3014
|
+
this.p1,
|
|
3015
|
+
this.p2,
|
|
3016
|
+
ci2,
|
|
3017
|
+
ci0,
|
|
3018
|
+
this.center,
|
|
3019
|
+
actualR
|
|
3020
|
+
).reverse();
|
|
3021
|
+
return [
|
|
3022
|
+
flanking0,
|
|
3023
|
+
Cubic.circularArc(
|
|
3024
|
+
this.center.x,
|
|
3025
|
+
this.center.y,
|
|
3026
|
+
flanking0.anchor1X,
|
|
3027
|
+
flanking0.anchor1Y,
|
|
3028
|
+
flanking2.anchor0X,
|
|
3029
|
+
flanking2.anchor0Y
|
|
3030
|
+
),
|
|
3031
|
+
flanking2
|
|
3032
|
+
];
|
|
3033
|
+
}
|
|
3034
|
+
calcSmoothingValue(allowedCut) {
|
|
3035
|
+
if (allowedCut > this.expectedCut) return this.smoothing;
|
|
3036
|
+
if (allowedCut > this.expectedRoundCut) {
|
|
3037
|
+
return this.smoothing * (allowedCut - this.expectedRoundCut) / (this.expectedCut - this.expectedRoundCut);
|
|
3038
|
+
}
|
|
3039
|
+
return 0;
|
|
3040
|
+
}
|
|
3041
|
+
computeFlankingCurve(actualRoundCut, actualSmoothing, corner, sideStart, circleIntersect, otherIntersect, circleCenter, actualR) {
|
|
3042
|
+
var _a;
|
|
3043
|
+
const sdx = sideStart.x - corner.x, sdy = sideStart.y - corner.y;
|
|
3044
|
+
const sd = distance(sdx, sdy);
|
|
3045
|
+
const sideDir = point(sdx / sd, sdy / sd);
|
|
3046
|
+
const curveStart = point(
|
|
3047
|
+
corner.x + sideDir.x * actualRoundCut * (1 + actualSmoothing),
|
|
3048
|
+
corner.y + sideDir.y * actualRoundCut * (1 + actualSmoothing)
|
|
3049
|
+
);
|
|
3050
|
+
const px = interpolate(
|
|
3051
|
+
circleIntersect.x,
|
|
3052
|
+
(circleIntersect.x + otherIntersect.x) / 2,
|
|
3053
|
+
actualSmoothing
|
|
3054
|
+
);
|
|
3055
|
+
const py = interpolate(
|
|
3056
|
+
circleIntersect.y,
|
|
3057
|
+
(circleIntersect.y + otherIntersect.y) / 2,
|
|
3058
|
+
actualSmoothing
|
|
3059
|
+
);
|
|
3060
|
+
const ptoCx = px - circleCenter.x, ptoCy = py - circleCenter.y;
|
|
3061
|
+
const ptoCd = distance(ptoCx, ptoCy);
|
|
3062
|
+
const curveEnd = point(
|
|
3063
|
+
circleCenter.x + ptoCx / ptoCd * actualR,
|
|
3064
|
+
circleCenter.y + ptoCy / ptoCd * actualR
|
|
3065
|
+
);
|
|
3066
|
+
const tangentX = -(curveEnd.y - circleCenter.y);
|
|
3067
|
+
const tangentY = curveEnd.x - circleCenter.x;
|
|
3068
|
+
const anchorEnd = (_a = lineIntersection(
|
|
3069
|
+
sideStart,
|
|
3070
|
+
sideDir,
|
|
3071
|
+
curveEnd,
|
|
3072
|
+
point(tangentX, tangentY)
|
|
3073
|
+
)) != null ? _a : circleIntersect;
|
|
3074
|
+
const anchorStart = point(
|
|
3075
|
+
(curveStart.x + anchorEnd.x * 2) / 3,
|
|
3076
|
+
(curveStart.y + anchorEnd.y * 2) / 3
|
|
3077
|
+
);
|
|
3078
|
+
return new Cubic([
|
|
3079
|
+
curveStart.x,
|
|
3080
|
+
curveStart.y,
|
|
3081
|
+
anchorStart.x,
|
|
3082
|
+
anchorStart.y,
|
|
3083
|
+
anchorEnd.x,
|
|
3084
|
+
anchorEnd.y,
|
|
3085
|
+
curveEnd.x,
|
|
3086
|
+
curveEnd.y
|
|
3087
|
+
]);
|
|
3088
|
+
}
|
|
3089
|
+
};
|
|
3090
|
+
function lineIntersection(p0, d0, p1, d1) {
|
|
3091
|
+
const rd1x = -d1.y, rd1y = d1.x;
|
|
3092
|
+
const den = d0.x * rd1x + d0.y * rd1y;
|
|
3093
|
+
if (Math.abs(den) < DISTANCE_EPSILON) return null;
|
|
3094
|
+
const num = (p1.x - p0.x) * rd1x + (p1.y - p0.y) * rd1y;
|
|
3095
|
+
if (Math.abs(den) < DISTANCE_EPSILON * Math.abs(num)) return null;
|
|
3096
|
+
const k = num / den;
|
|
3097
|
+
return point(p0.x + d0.x * k, p0.y + d0.y * k);
|
|
3098
|
+
}
|
|
3099
|
+
function calculateCenter(vertices) {
|
|
3100
|
+
let cx = 0, cy = 0;
|
|
3101
|
+
for (let i = 0; i < vertices.length; i += 2) {
|
|
3102
|
+
cx += vertices[i];
|
|
3103
|
+
cy += vertices[i + 1];
|
|
3104
|
+
}
|
|
3105
|
+
const n = vertices.length / 2;
|
|
3106
|
+
return point(cx / n, cy / n);
|
|
3107
|
+
}
|
|
3108
|
+
function verticesFromNumVerts(numVertices, radius, cx, cy) {
|
|
3109
|
+
const result = [];
|
|
3110
|
+
for (let i = 0; i < numVertices; i++) {
|
|
3111
|
+
const angle = FLOAT_PI / numVertices * 2 * i;
|
|
3112
|
+
const [rx, ry] = radialToCartesian(radius, angle);
|
|
3113
|
+
result.push(cx + rx, cy + ry);
|
|
3114
|
+
}
|
|
3115
|
+
return result;
|
|
3116
|
+
}
|
|
3117
|
+
var RoundedPolygon = class _RoundedPolygon {
|
|
3118
|
+
/** @internal Use static factory methods instead */
|
|
3119
|
+
constructor(features, center) {
|
|
3120
|
+
this.features = features;
|
|
3121
|
+
this.center = center;
|
|
3122
|
+
this.cubics = buildCubicsList(features);
|
|
3123
|
+
validateContiguity(this.cubics);
|
|
3124
|
+
}
|
|
3125
|
+
get centerX() {
|
|
3126
|
+
return this.center.x;
|
|
3127
|
+
}
|
|
3128
|
+
get centerY() {
|
|
3129
|
+
return this.center.y;
|
|
3130
|
+
}
|
|
3131
|
+
// ─── Static factories ────────────────────────────────────────────────
|
|
3132
|
+
/**
|
|
3133
|
+
* Creates a polygon from a vertex count (regular polygon).
|
|
3134
|
+
* @param numVertices - Number of vertices (≥ 3)
|
|
3135
|
+
* @param radius - Circumradius (default: 1)
|
|
3136
|
+
* @param centerX - Center X (default: 0)
|
|
3137
|
+
* @param centerY - Center Y (default: 0)
|
|
3138
|
+
* @param rounding - Corner rounding for all vertices
|
|
3139
|
+
* @param perVertexRounding - Per-vertex rounding overrides
|
|
3140
|
+
*/
|
|
3141
|
+
static fromNumVertices(numVertices, radius = 1, centerX = 0, centerY = 0, rounding = UNROUNDED, perVertexRounding) {
|
|
3142
|
+
if (numVertices < 3)
|
|
3143
|
+
throw new Error("Polygon must have at least 3 vertices");
|
|
3144
|
+
const vertices = verticesFromNumVerts(
|
|
3145
|
+
numVertices,
|
|
3146
|
+
radius,
|
|
3147
|
+
centerX,
|
|
3148
|
+
centerY
|
|
3149
|
+
);
|
|
3150
|
+
return _RoundedPolygon.fromVertices(
|
|
3151
|
+
vertices,
|
|
3152
|
+
rounding,
|
|
3153
|
+
perVertexRounding,
|
|
3154
|
+
centerX,
|
|
3155
|
+
centerY
|
|
3156
|
+
);
|
|
3157
|
+
}
|
|
3158
|
+
/**
|
|
3159
|
+
* Creates a polygon from a flat vertex array [x0, y0, x1, y1, ...].
|
|
3160
|
+
* @param vertices - Flat array of x,y pairs (length must be even and ≥ 6)
|
|
3161
|
+
* @param rounding - Corner rounding for all vertices
|
|
3162
|
+
* @param perVertexRounding - Per-vertex rounding overrides
|
|
3163
|
+
* @param centerX - Center X (auto-calculated if not provided)
|
|
3164
|
+
* @param centerY - Center Y (auto-calculated if not provided)
|
|
3165
|
+
*/
|
|
3166
|
+
static fromVertices(vertices, rounding = UNROUNDED, perVertexRounding, centerX, centerY) {
|
|
3167
|
+
if (vertices.length < 6)
|
|
3168
|
+
throw new Error("Polygon must have at least 3 vertices");
|
|
3169
|
+
if (vertices.length % 2 !== 0)
|
|
3170
|
+
throw new Error("Vertices array must have even length");
|
|
3171
|
+
if (perVertexRounding && perVertexRounding.length * 2 !== vertices.length) {
|
|
3172
|
+
throw new Error("perVertexRounding must match vertex count");
|
|
3173
|
+
}
|
|
3174
|
+
const n = vertices.length / 2;
|
|
3175
|
+
const roundedCorners = [];
|
|
3176
|
+
for (let i = 0; i < n; i++) {
|
|
3177
|
+
const vtxRounding = perVertexRounding ? perVertexRounding[i] : rounding;
|
|
3178
|
+
const prevIdx = (i + n - 1) % n * 2;
|
|
3179
|
+
const nextIdx = (i + 1) % n * 2;
|
|
3180
|
+
roundedCorners.push(
|
|
3181
|
+
new RoundedCorner(
|
|
3182
|
+
point(vertices[prevIdx], vertices[prevIdx + 1]),
|
|
3183
|
+
point(vertices[i * 2], vertices[i * 2 + 1]),
|
|
3184
|
+
point(vertices[nextIdx], vertices[nextIdx + 1]),
|
|
3185
|
+
vtxRounding
|
|
3186
|
+
)
|
|
3187
|
+
);
|
|
3188
|
+
}
|
|
3189
|
+
const cutAdjusts = [];
|
|
3190
|
+
for (let ix = 0; ix < n; ix++) {
|
|
3191
|
+
const expectedRoundCut = roundedCorners[ix].expectedRoundCut + roundedCorners[(ix + 1) % n].expectedRoundCut;
|
|
3192
|
+
const expectedCut = roundedCorners[ix].expectedCut + roundedCorners[(ix + 1) % n].expectedCut;
|
|
3193
|
+
const vx = vertices[ix * 2], vy = vertices[ix * 2 + 1];
|
|
3194
|
+
const nx = vertices[(ix + 1) % n * 2], ny = vertices[(ix + 1) % n * 2 + 1];
|
|
3195
|
+
const sideSize = distance(vx - nx, vy - ny);
|
|
3196
|
+
if (expectedRoundCut > sideSize) {
|
|
3197
|
+
cutAdjusts.push([sideSize / expectedRoundCut, 0]);
|
|
3198
|
+
} else if (expectedCut > sideSize) {
|
|
3199
|
+
cutAdjusts.push([
|
|
3200
|
+
1,
|
|
3201
|
+
(sideSize - expectedRoundCut) / (expectedCut - expectedRoundCut)
|
|
3202
|
+
]);
|
|
3203
|
+
} else {
|
|
3204
|
+
cutAdjusts.push([1, 1]);
|
|
3205
|
+
}
|
|
3206
|
+
}
|
|
3207
|
+
const corners = [];
|
|
3208
|
+
for (let i = 0; i < n; i++) {
|
|
3209
|
+
const allowedCuts = [];
|
|
3210
|
+
for (const delta of [0, 1]) {
|
|
3211
|
+
const [roundCutRatio, cutRatio] = cutAdjusts[(i + n - 1 + delta) % n];
|
|
3212
|
+
allowedCuts.push(
|
|
3213
|
+
roundedCorners[i].expectedRoundCut * roundCutRatio + (roundedCorners[i].expectedCut - roundedCorners[i].expectedRoundCut) * cutRatio
|
|
3214
|
+
);
|
|
3215
|
+
}
|
|
3216
|
+
corners.push(roundedCorners[i].getCubics(allowedCuts[0], allowedCuts[1]));
|
|
3217
|
+
}
|
|
3218
|
+
const tempFeatures = [];
|
|
3219
|
+
for (let i = 0; i < n; i++) {
|
|
3220
|
+
const prevIdx = (i + n - 1) % n;
|
|
3221
|
+
const nextIdx = (i + 1) % n;
|
|
3222
|
+
const currV = point(vertices[i * 2], vertices[i * 2 + 1]);
|
|
3223
|
+
const prevV = point(vertices[prevIdx * 2], vertices[prevIdx * 2 + 1]);
|
|
3224
|
+
const nextV = point(vertices[nextIdx * 2], vertices[nextIdx * 2 + 1]);
|
|
3225
|
+
const isConvex = convex(
|
|
3226
|
+
prevV.x,
|
|
3227
|
+
prevV.y,
|
|
3228
|
+
currV.x,
|
|
3229
|
+
currV.y,
|
|
3230
|
+
nextV.x,
|
|
3231
|
+
nextV.y
|
|
3232
|
+
);
|
|
3233
|
+
tempFeatures.push(cornerFeature(corners[i], isConvex));
|
|
3234
|
+
const lastCornerA1 = corners[i][corners[i].length - 1];
|
|
3235
|
+
const nextCornerA0 = corners[(i + 1) % n][0];
|
|
3236
|
+
tempFeatures.push(
|
|
3237
|
+
edgeFeature([
|
|
3238
|
+
Cubic.straightLine(
|
|
3239
|
+
lastCornerA1.anchor1X,
|
|
3240
|
+
lastCornerA1.anchor1Y,
|
|
3241
|
+
nextCornerA0.anchor0X,
|
|
3242
|
+
nextCornerA0.anchor0Y
|
|
3243
|
+
)
|
|
3244
|
+
])
|
|
3245
|
+
);
|
|
3246
|
+
}
|
|
3247
|
+
const cx = centerX != null ? centerX : calculateCenter(vertices).x;
|
|
3248
|
+
const cy = centerY != null ? centerY : calculateCenter(vertices).y;
|
|
3249
|
+
return new _RoundedPolygon(tempFeatures, point(cx, cy));
|
|
3250
|
+
}
|
|
3251
|
+
/**
|
|
3252
|
+
* Creates a polygon from a pre-built Feature list.
|
|
3253
|
+
* @param features - Feature list (≥ 2 features)
|
|
3254
|
+
* @param centerX - Center X (auto-calculated if NaN)
|
|
3255
|
+
* @param centerY - Center Y (auto-calculated if NaN)
|
|
3256
|
+
*/
|
|
3257
|
+
static fromFeatures(features, centerX = Number.NaN, centerY = Number.NaN) {
|
|
3258
|
+
if (features.length < 2)
|
|
3259
|
+
throw new Error("Polygon must have at least 2 features");
|
|
3260
|
+
const allVertices = [];
|
|
3261
|
+
for (const f of features) {
|
|
3262
|
+
for (const c of f.cubics) {
|
|
3263
|
+
allVertices.push(c.anchor0X, c.anchor0Y);
|
|
3264
|
+
}
|
|
3265
|
+
}
|
|
3266
|
+
const cx = Number.isNaN(centerX) ? calculateCenter(allVertices).x : centerX;
|
|
3267
|
+
const cy = Number.isNaN(centerY) ? calculateCenter(allVertices).y : centerY;
|
|
3268
|
+
return new _RoundedPolygon(features, point(cx, cy));
|
|
3269
|
+
}
|
|
3270
|
+
// ─── Instance methods ────────────────────────────────────────────────
|
|
3271
|
+
/**
|
|
3272
|
+
* Returns a new RoundedPolygon with all points transformed.
|
|
3273
|
+
* @param fn - Transform function: (x, y) => [x', y']
|
|
3274
|
+
*/
|
|
3275
|
+
transformed(fn) {
|
|
3276
|
+
const [cx, cy] = fn(this.center.x, this.center.y);
|
|
3277
|
+
return new _RoundedPolygon(
|
|
3278
|
+
this.features.map((f) => transformFeature(f, fn)),
|
|
3279
|
+
point(cx, cy)
|
|
3280
|
+
);
|
|
3281
|
+
}
|
|
3282
|
+
/**
|
|
3283
|
+
* Returns a normalized copy: scaled and centered to fit in [0,1] × [0,1].
|
|
3284
|
+
* Maintains aspect ratio by using the larger dimension.
|
|
3285
|
+
*/
|
|
3286
|
+
normalized() {
|
|
3287
|
+
const [minX, minY, maxX, maxY] = this.calculateBounds(false);
|
|
3288
|
+
const width = maxX - minX;
|
|
3289
|
+
const height = maxY - minY;
|
|
3290
|
+
const side = Math.max(width, height);
|
|
3291
|
+
const offsetX = (side - width) / 2 - minX;
|
|
3292
|
+
const offsetY = (side - height) / 2 - minY;
|
|
3293
|
+
return this.transformed((x, y) => [
|
|
3294
|
+
(x + offsetX) / side,
|
|
3295
|
+
(y + offsetY) / side
|
|
3296
|
+
]);
|
|
3297
|
+
}
|
|
3298
|
+
/**
|
|
3299
|
+
* Calculates the axis-aligned bounding box.
|
|
3300
|
+
* @param approximate - If true, uses control point hull (faster). Default: true.
|
|
3301
|
+
* @returns [minX, minY, maxX, maxY]
|
|
3302
|
+
*/
|
|
3303
|
+
calculateBounds(approximate = true) {
|
|
3304
|
+
let minX = Number.MAX_VALUE, minY = Number.MAX_VALUE;
|
|
3305
|
+
let maxX = -Number.MAX_VALUE, maxY = -Number.MAX_VALUE;
|
|
3306
|
+
for (const c of this.cubics) {
|
|
3307
|
+
const [cx0, cy0, cx1, cy1] = c.calculateBounds(approximate);
|
|
3308
|
+
if (cx0 < minX) minX = cx0;
|
|
3309
|
+
if (cy0 < minY) minY = cy0;
|
|
3310
|
+
if (cx1 > maxX) maxX = cx1;
|
|
3311
|
+
if (cy1 > maxY) maxY = cy1;
|
|
3312
|
+
}
|
|
3313
|
+
return [minX, minY, maxX, maxY];
|
|
3314
|
+
}
|
|
3315
|
+
/**
|
|
3316
|
+
* Calculates the maximum bounding square (useful for shapes that rotate).
|
|
3317
|
+
* @returns [minX, minY, maxX, maxY] of the max-bounds square
|
|
3318
|
+
*/
|
|
3319
|
+
calculateMaxBounds() {
|
|
3320
|
+
let maxDistSq = 0;
|
|
3321
|
+
for (const c of this.cubics) {
|
|
3322
|
+
const ad = distanceSquared(
|
|
3323
|
+
c.anchor0X - this.centerX,
|
|
3324
|
+
c.anchor0Y - this.centerY
|
|
3325
|
+
);
|
|
3326
|
+
const mid = c.pointOnCurve(0.5);
|
|
3327
|
+
const md = distanceSquared(mid.x - this.centerX, mid.y - this.centerY);
|
|
3328
|
+
const m31 = Math.max(ad, md);
|
|
3329
|
+
if (m31 > maxDistSq) maxDistSq = m31;
|
|
3330
|
+
}
|
|
3331
|
+
const d = Math.sqrt(maxDistSq);
|
|
3332
|
+
return [
|
|
3333
|
+
this.centerX - d,
|
|
3334
|
+
this.centerY - d,
|
|
3335
|
+
this.centerX + d,
|
|
3336
|
+
this.centerY + d
|
|
3337
|
+
];
|
|
3338
|
+
}
|
|
3339
|
+
};
|
|
3340
|
+
function buildCubicsList(features) {
|
|
3341
|
+
const result = [];
|
|
3342
|
+
let firstCubic = null;
|
|
3343
|
+
let lastCubic = null;
|
|
3344
|
+
let firstFeatureSplitStart = null;
|
|
3345
|
+
let firstFeatureSplitEnd = null;
|
|
3346
|
+
if (features.length > 0 && features[0].cubics.length === 3) {
|
|
3347
|
+
const center = features[0].cubics[1];
|
|
3348
|
+
const [start, end] = center.split(0.5);
|
|
3349
|
+
firstFeatureSplitStart = [features[0].cubics[0], start];
|
|
3350
|
+
firstFeatureSplitEnd = [end, features[0].cubics[2]];
|
|
3351
|
+
}
|
|
3352
|
+
for (let i = 0; i <= features.length; i++) {
|
|
3353
|
+
let featureCubics;
|
|
3354
|
+
if (i === 0 && firstFeatureSplitEnd) {
|
|
3355
|
+
featureCubics = firstFeatureSplitEnd;
|
|
3356
|
+
} else if (i === features.length) {
|
|
3357
|
+
if (firstFeatureSplitStart) featureCubics = firstFeatureSplitStart;
|
|
3358
|
+
else break;
|
|
3359
|
+
} else {
|
|
3360
|
+
featureCubics = features[i].cubics;
|
|
3361
|
+
}
|
|
3362
|
+
for (const cubic of featureCubics) {
|
|
3363
|
+
if (!cubic.zeroLength()) {
|
|
3364
|
+
if (lastCubic) result.push(lastCubic);
|
|
3365
|
+
lastCubic = cubic;
|
|
3366
|
+
if (!firstCubic) firstCubic = cubic;
|
|
3367
|
+
} else if (lastCubic) {
|
|
3368
|
+
const p = lastCubic.points.slice();
|
|
3369
|
+
p[6] = cubic.anchor1X;
|
|
3370
|
+
p[7] = cubic.anchor1Y;
|
|
3371
|
+
lastCubic = new Cubic(p);
|
|
3372
|
+
}
|
|
3373
|
+
}
|
|
3374
|
+
}
|
|
3375
|
+
if (lastCubic && firstCubic) {
|
|
3376
|
+
result.push(
|
|
3377
|
+
new Cubic([
|
|
3378
|
+
lastCubic.anchor0X,
|
|
3379
|
+
lastCubic.anchor0Y,
|
|
3380
|
+
lastCubic.control0X,
|
|
3381
|
+
lastCubic.control0Y,
|
|
3382
|
+
lastCubic.control1X,
|
|
3383
|
+
lastCubic.control1Y,
|
|
3384
|
+
firstCubic.anchor0X,
|
|
3385
|
+
firstCubic.anchor0Y
|
|
3386
|
+
])
|
|
3387
|
+
);
|
|
3388
|
+
} else {
|
|
3389
|
+
result.push(Cubic.empty(0, 0));
|
|
3390
|
+
}
|
|
3391
|
+
return result;
|
|
3392
|
+
}
|
|
3393
|
+
function validateContiguity(cubics) {
|
|
3394
|
+
let prev = cubics[cubics.length - 1];
|
|
3395
|
+
for (const cubic of cubics) {
|
|
3396
|
+
if (Math.abs(cubic.anchor0X - prev.anchor1X) > DISTANCE_EPSILON || Math.abs(cubic.anchor0Y - prev.anchor1Y) > DISTANCE_EPSILON) {
|
|
3397
|
+
throw new Error(
|
|
3398
|
+
`RoundedPolygon must be contiguous: gap between (${cubic.anchor0X},${cubic.anchor0Y}) and (${prev.anchor1X},${prev.anchor1Y})`
|
|
3399
|
+
);
|
|
3400
|
+
}
|
|
3401
|
+
prev = cubic;
|
|
3402
|
+
}
|
|
3403
|
+
}
|
|
3404
|
+
|
|
3405
|
+
// src/shapes/catalog/md3-expressive-shapes.ts
|
|
3406
|
+
function createShape(pts) {
|
|
3407
|
+
const cubics = pts.map((p) => new Cubic(p));
|
|
3408
|
+
return RoundedPolygon.fromFeatures(
|
|
3409
|
+
cubics.map((c) => cornerFeature([c], false))
|
|
3410
|
+
);
|
|
3411
|
+
}
|
|
3412
|
+
var archShape = createShape([
|
|
3413
|
+
[1, 0.83461, 1, 0.8547, 1, 0.86477, 0.99898, 0.87322],
|
|
3414
|
+
[0.99898, 0.87322, 0.99115, 0.93918, 0.93918, 0.99115, 0.87322, 0.99898],
|
|
3415
|
+
[0.87322, 0.99898, 0.86477, 1, 0.8547, 1, 0.83461, 1],
|
|
3416
|
+
[0.83461, 1, 0.61154, 1, 0.38847, 1, 0.1654, 1],
|
|
3417
|
+
[0.1654, 1, 0.14529, 1, 0.13524, 1, 0.12679, 0.99898],
|
|
3418
|
+
[0.12679, 0.99898, 0.06084, 0.99115, 884e-5, 0.93918, 1e-3, 0.87322],
|
|
3419
|
+
[1e-3, 0.87322, 0, 0.86477, 0, 0.8547, 0, 0.83461],
|
|
3420
|
+
[0, 0.83461, 0, 0.72307, 0, 0.61154, 0, 0.5],
|
|
3421
|
+
[0, 0.5, 0, 0.22385, 0.22386, 0, 0.5, 0],
|
|
3422
|
+
[0.5, 0, 0.77615, 0, 1, 0.22385, 1, 0.5],
|
|
3423
|
+
[1, 0.5, 1, 0.61154, 1, 0.72307, 1, 0.83461]
|
|
3424
|
+
]);
|
|
3425
|
+
var arrowShape = createShape([
|
|
3426
|
+
[0.8594, 0.44684, 0.81504, 0.37855, 0.77068, 0.31016, 0.72632, 0.24187],
|
|
3427
|
+
[0.72632, 0.24187, 0.69754, 0.19753, 0.66825, 0.1526, 0.62934, 0.11738],
|
|
3428
|
+
[0.62934, 0.11738, 0.59043, 0.08209, 0.54003, 0.05716, 0.48834, 0.06041],
|
|
3429
|
+
[0.48834, 0.06041, 0.44296, 0.06333, 0.4009, 0.08773, 0.36769, 0.11959],
|
|
3430
|
+
[0.36769, 0.11959, 0.33449, 0.15146, 0.30869, 0.1907, 0.28332, 0.22956],
|
|
3431
|
+
[0.28332, 0.22956, 0.21469, 0.33456, 0.14598, 0.43956, 0.07736, 0.54462],
|
|
3432
|
+
[0.07736, 0.54462, 0.04474, 0.5945, 0.01128, 0.64655, 226e-5, 0.70598],
|
|
3433
|
+
[226e-5, 0.70598, -864e-5, 0.77779, 0.02074, 0.85092, 0.07284, 0.89867],
|
|
3434
|
+
[0.07284, 0.89867, 0.12733, 0.94861, 0.21563, 0.94456, 0.28196, 0.93089],
|
|
3435
|
+
[0.28196, 0.93089, 0.35467, 0.91586, 0.42576, 0.8876, 0.49992, 0.88769],
|
|
3436
|
+
[0.49992, 0.88769, 0.56344, 0.88769, 0.62483, 0.90858, 0.68664, 0.92377],
|
|
3437
|
+
[0.68664, 0.92377, 0.74837, 0.93886, 0.8147, 0.94817, 0.8743, 0.9257],
|
|
3438
|
+
[0.8743, 0.9257, 0.94829, 0.89788, 1.00142, 0.81877, 0.99997, 0.73757],
|
|
3439
|
+
[0.99997, 0.73757, 0.99861, 0.66348, 0.95714, 0.59731, 0.91721, 0.53567],
|
|
3440
|
+
[0.91721, 0.53567, 0.89797, 0.50608, 0.87873, 0.47643, 0.85948, 0.44684],
|
|
3441
|
+
[0.85948, 0.44684, 0.85946, 0.44684, 0.85943, 0.44684, 0.8594, 0.44684]
|
|
3442
|
+
]);
|
|
3443
|
+
var boomShape = createShape([
|
|
3444
|
+
[0.49006, 0.03176, 0.49241, 0.01294, 0.49359, 354e-5, 0.49537, 185e-5],
|
|
3445
|
+
[0.49537, 185e-5, 0.49796, -62e-5, 0.50203, -62e-5, 0.50462, 185e-5],
|
|
3446
|
+
[0.50462, 185e-5, 0.50641, 354e-5, 0.50759, 0.01294, 0.50994, 0.03176],
|
|
3447
|
+
[0.50994, 0.03176, 0.51992, 0.11153, 0.5299, 0.1913, 0.53987, 0.27107],
|
|
3448
|
+
[0.53987, 0.27107, 0.54082, 0.27866, 0.5413, 0.28244, 0.54266, 0.28403],
|
|
3449
|
+
[0.54266, 0.28403, 0.54464, 0.28628, 0.54787, 0.287, 0.5506, 0.28572],
|
|
3450
|
+
[0.5506, 0.28572, 0.55248, 0.28485, 0.55445, 0.28157, 0.55839, 0.275],
|
|
3451
|
+
[0.55839, 0.275, 0.59978, 0.20621, 0.64116, 0.13742, 0.68254, 0.06863],
|
|
3452
|
+
[0.68254, 0.06863, 0.69231, 0.05241, 0.69719, 0.04429, 0.6995, 0.04348],
|
|
3453
|
+
[0.6995, 0.04348, 0.70287, 0.04232, 0.70657, 0.04398, 0.70795, 0.04729],
|
|
3454
|
+
[0.70795, 0.04729, 0.70891, 0.04954, 0.70617, 0.05863, 0.70071, 0.07679],
|
|
3455
|
+
[0.70071, 0.07679, 0.67756, 0.15373, 0.6544, 0.23068, 0.63124, 0.30763],
|
|
3456
|
+
[0.63124, 0.30763, 0.62904, 0.31497, 0.62794, 0.31863, 0.62855, 0.3206],
|
|
3457
|
+
[0.62855, 0.3206, 0.62942, 0.32348, 0.6321, 0.32544, 0.63512, 0.32541],
|
|
3458
|
+
[0.63512, 0.32541, 0.63719, 0.32538, 0.64031, 0.32319, 0.64656, 0.31882],
|
|
3459
|
+
[0.64656, 0.31882, 0.7122, 0.2729, 0.77783, 0.22698, 0.84347, 0.18107],
|
|
3460
|
+
[0.84347, 0.18107, 0.85895, 0.17022, 0.86669, 0.16482, 0.86913, 0.16501],
|
|
3461
|
+
[0.86913, 0.16501, 0.87269, 0.16533, 0.87539, 0.16834, 0.87532, 0.17191],
|
|
3462
|
+
[0.87532, 0.17191, 0.87528, 0.17438, 0.86911, 0.18157, 0.85678, 0.19591],
|
|
3463
|
+
[0.85678, 0.19591, 0.80449, 0.25674, 0.75221, 0.31758, 0.69992, 0.37841],
|
|
3464
|
+
[0.69992, 0.37841, 0.69494, 0.38419, 0.69246, 0.3871, 0.69221, 0.38916],
|
|
3465
|
+
[0.69221, 0.38916, 0.69185, 0.39216, 0.6935, 0.39503, 0.69627, 0.39622],
|
|
3466
|
+
[0.69627, 0.39622, 0.69817, 0.39706, 0.70191, 0.39631, 0.70939, 0.39488],
|
|
3467
|
+
[0.70939, 0.39488, 0.78793, 0.37977, 0.86646, 0.36467, 0.945, 0.34957],
|
|
3468
|
+
[0.945, 0.34957, 0.96353, 0.346, 0.9728, 0.34422, 0.97494, 0.34541],
|
|
3469
|
+
[0.97494, 0.34541, 0.97806, 0.34713, 0.97931, 0.351, 0.9778, 0.35425],
|
|
3470
|
+
[0.9778, 0.35425, 0.97676, 0.35647, 0.96822, 0.3605, 0.95115, 0.36856],
|
|
3471
|
+
[0.95115, 0.36856, 0.87878, 0.40276, 0.80641, 0.43696, 0.73403, 0.47116],
|
|
3472
|
+
[0.73403, 0.47116, 0.72714, 0.47441, 0.7237, 0.47603, 0.72263, 0.47781],
|
|
3473
|
+
[0.72263, 0.47781, 0.72109, 0.48041, 0.72144, 0.48372, 0.72348, 0.48594],
|
|
3474
|
+
[0.72348, 0.48594, 0.72489, 0.48747, 0.7286, 0.48834, 0.73601, 0.49006],
|
|
3475
|
+
[0.73601, 0.49006, 0.81387, 0.50839, 0.89173, 0.52671, 0.96959, 0.54503],
|
|
3476
|
+
[0.96959, 0.54503, 0.98796, 0.54934, 0.99715, 0.5515, 0.99862, 0.55347],
|
|
3477
|
+
[0.99862, 0.55347, 1.00077, 0.55631, 1.00035, 0.56037, 0.99766, 0.56272],
|
|
3478
|
+
[0.99766, 0.56272, 0.9958, 0.56431, 0.98638, 0.56453, 0.96751, 0.56491],
|
|
3479
|
+
[0.96751, 0.56491, 0.88757, 0.56654, 0.80762, 0.56818, 0.72767, 0.56981],
|
|
3480
|
+
[0.72767, 0.56981, 0.72006, 0.56997, 0.71626, 0.57006, 0.71456, 0.57125],
|
|
3481
|
+
[0.71456, 0.57125, 0.7121, 0.573, 0.71108, 0.57617, 0.71206, 0.57903],
|
|
3482
|
+
[0.71206, 0.57903, 0.71272, 0.581, 0.71576, 0.58331, 0.72182, 0.58794],
|
|
3483
|
+
[0.72182, 0.58794, 0.78555, 0.6365, 0.84927, 0.68506, 0.91299, 0.73362],
|
|
3484
|
+
[0.91299, 0.73362, 0.92802, 0.74509, 0.93554, 0.75084, 0.93609, 0.75322],
|
|
3485
|
+
[0.93609, 0.75322, 0.93691, 0.7567, 0.93489, 0.76022, 0.93147, 0.76128],
|
|
3486
|
+
[0.93147, 0.76128, 0.92912, 0.762, 0.92043, 0.75831, 0.90304, 0.75097],
|
|
3487
|
+
[0.90304, 0.75097, 0.82934, 0.71977, 0.75565, 0.68857, 0.68195, 0.65737],
|
|
3488
|
+
[0.68195, 0.65737, 0.67493, 0.6544, 0.67142, 0.6529, 0.66939, 0.65331],
|
|
3489
|
+
[0.66939, 0.65331, 0.66644, 0.65391, 0.66423, 0.65637, 0.66396, 0.65937],
|
|
3490
|
+
[0.66396, 0.65937, 0.66378, 0.66144, 0.66561, 0.66481, 0.66928, 0.6715],
|
|
3491
|
+
[0.66928, 0.6715, 0.70784, 0.74193, 0.74641, 0.81237, 0.78497, 0.88281],
|
|
3492
|
+
[0.78497, 0.88281, 0.79407, 0.8994, 0.79862, 0.90771, 0.79815, 0.91015],
|
|
3493
|
+
[0.79815, 0.91015, 0.79748, 0.91366, 0.79421, 0.91604, 0.79067, 0.91562],
|
|
3494
|
+
[0.79067, 0.91562, 0.78824, 0.91531, 0.78179, 0.9084, 0.76888, 0.89456],
|
|
3495
|
+
[0.76888, 0.89456, 0.71418, 0.83591, 0.65947, 0.77727, 0.60477, 0.71862],
|
|
3496
|
+
[0.60477, 0.71862, 0.59956, 0.71306, 0.59695, 0.71025, 0.59494, 0.70981],
|
|
3497
|
+
[0.59494, 0.70981, 0.592, 0.70912, 0.58897, 0.71048, 0.58752, 0.71312],
|
|
3498
|
+
[0.58752, 0.71312, 0.58651, 0.71493, 0.58683, 0.71875, 0.58747, 0.72637],
|
|
3499
|
+
[0.58747, 0.72637, 0.59421, 0.80649, 0.60094, 0.8866, 0.60768, 0.96671],
|
|
3500
|
+
[0.60768, 0.96671, 0.60927, 0.98562, 0.61006, 0.99506, 0.60866, 0.99709],
|
|
3501
|
+
[0.60866, 0.99709, 0.60663, 1.00002, 0.60267, 1.00087, 0.59962, 0.99902],
|
|
3502
|
+
[0.59962, 0.99902, 0.59752, 0.99774, 0.59442, 0.98877, 0.58823, 0.97087],
|
|
3503
|
+
[0.58823, 0.97087, 0.56197, 0.89493, 0.53572, 0.819, 0.50946, 0.74306],
|
|
3504
|
+
[0.50946, 0.74306, 0.50696, 0.73581, 0.50571, 0.73222, 0.50406, 0.73097],
|
|
3505
|
+
[0.50406, 0.73097, 0.50165, 0.72916, 0.49834, 0.72916, 0.49594, 0.73097],
|
|
3506
|
+
[0.49594, 0.73097, 0.49428, 0.73222, 0.49303, 0.73581, 0.49053, 0.74306],
|
|
3507
|
+
[0.49053, 0.74306, 0.46428, 0.819, 0.43803, 0.89493, 0.41177, 0.97087],
|
|
3508
|
+
[0.41177, 0.97087, 0.40558, 0.98877, 0.40248, 0.99774, 0.40038, 0.99902],
|
|
3509
|
+
[0.40038, 0.99902, 0.39733, 1.00087, 0.39338, 1.00002, 0.39134, 0.99709],
|
|
3510
|
+
[0.39134, 0.99709, 0.38994, 0.99506, 0.39073, 0.98562, 0.39232, 0.96671],
|
|
3511
|
+
[0.39232, 0.96671, 0.39906, 0.8866, 0.40579, 0.80649, 0.41253, 0.72637],
|
|
3512
|
+
[0.41253, 0.72637, 0.41317, 0.71875, 0.41349, 0.71493, 0.41248, 0.71312],
|
|
3513
|
+
[0.41248, 0.71312, 0.41104, 0.71048, 0.408, 0.70912, 0.40507, 0.70981],
|
|
3514
|
+
[0.40507, 0.70981, 0.40305, 0.71025, 0.40044, 0.71306, 0.39523, 0.71862],
|
|
3515
|
+
[0.39523, 0.71862, 0.34053, 0.77727, 0.28582, 0.83591, 0.23112, 0.89456],
|
|
3516
|
+
[0.23112, 0.89456, 0.21821, 0.9084, 0.21176, 0.91531, 0.20933, 0.91562],
|
|
3517
|
+
[0.20933, 0.91562, 0.20578, 0.91604, 0.20252, 0.91366, 0.20184, 0.91015],
|
|
3518
|
+
[0.20184, 0.91015, 0.20138, 0.90771, 0.20593, 0.8994, 0.21503, 0.88281],
|
|
3519
|
+
[0.21503, 0.88281, 0.25359, 0.81237, 0.29215, 0.74193, 0.33072, 0.6715],
|
|
3520
|
+
[0.33072, 0.6715, 0.33439, 0.66481, 0.33622, 0.66144, 0.33604, 0.65937],
|
|
3521
|
+
[0.33604, 0.65937, 0.33577, 0.65637, 0.33356, 0.65391, 0.3306, 0.65331],
|
|
3522
|
+
[0.3306, 0.65331, 0.32857, 0.6529, 0.32506, 0.6544, 0.31805, 0.65737],
|
|
3523
|
+
[0.31805, 0.65737, 0.24435, 0.68857, 0.17065, 0.71977, 0.09695, 0.75097],
|
|
3524
|
+
[0.09695, 0.75097, 0.07957, 0.75831, 0.07087, 0.762, 0.06853, 0.76128],
|
|
3525
|
+
[0.06853, 0.76128, 0.06511, 0.76022, 0.06309, 0.7567, 0.06391, 0.75322],
|
|
3526
|
+
[0.06391, 0.75322, 0.06446, 0.75084, 0.07198, 0.74509, 0.08701, 0.73362],
|
|
3527
|
+
[0.08701, 0.73362, 0.15073, 0.68506, 0.21445, 0.6365, 0.27817, 0.58794],
|
|
3528
|
+
[0.27817, 0.58794, 0.28424, 0.58331, 0.28727, 0.581, 0.28794, 0.57903],
|
|
3529
|
+
[0.28794, 0.57903, 0.28892, 0.57617, 0.2879, 0.573, 0.28543, 0.57125],
|
|
3530
|
+
[0.28543, 0.57125, 0.28374, 0.57006, 0.27993, 0.56997, 0.27232, 0.56981],
|
|
3531
|
+
[0.27232, 0.56981, 0.19238, 0.56818, 0.11243, 0.56654, 0.03248, 0.56491],
|
|
3532
|
+
[0.03248, 0.56491, 0.01362, 0.56453, 419e-5, 0.56431, 234e-5, 0.56272],
|
|
3533
|
+
[234e-5, 0.56272, -35e-5, 0.56036, -77e-5, 0.55633, 138e-5, 0.55347],
|
|
3534
|
+
[138e-5, 0.55347, 285e-5, 0.5515, 0.01204, 0.54934, 0.03041, 0.54503],
|
|
3535
|
+
[0.03041, 0.54503, 0.10827, 0.52671, 0.18613, 0.50839, 0.26399, 0.49006],
|
|
3536
|
+
[0.26399, 0.49006, 0.2714, 0.48834, 0.27511, 0.48747, 0.27652, 0.48594],
|
|
3537
|
+
[0.27652, 0.48594, 0.27856, 0.48372, 0.27891, 0.48041, 0.27736, 0.47781],
|
|
3538
|
+
[0.27736, 0.47781, 0.2763, 0.47603, 0.27286, 0.47441, 0.26597, 0.47116],
|
|
3539
|
+
[0.26597, 0.47116, 0.19359, 0.43696, 0.12122, 0.40276, 0.04885, 0.36856],
|
|
3540
|
+
[0.04885, 0.36856, 0.03177, 0.3605, 0.02324, 0.35647, 0.0222, 0.35425],
|
|
3541
|
+
[0.0222, 0.35425, 0.02068, 0.35101, 0.02193, 0.34715, 0.02506, 0.34541],
|
|
3542
|
+
[0.02506, 0.34541, 0.0272, 0.34422, 0.03647, 0.346, 0.055, 0.34957],
|
|
3543
|
+
[0.055, 0.34957, 0.13353, 0.36467, 0.21207, 0.37977, 0.29061, 0.39488],
|
|
3544
|
+
[0.29061, 0.39488, 0.29809, 0.39631, 0.30183, 0.39706, 0.30373, 0.39622],
|
|
3545
|
+
[0.30373, 0.39622, 0.3065, 0.39502, 0.30815, 0.39215, 0.30779, 0.38916],
|
|
3546
|
+
[0.30779, 0.38916, 0.30755, 0.3871, 0.30506, 0.38419, 0.30008, 0.37841],
|
|
3547
|
+
[0.30008, 0.37841, 0.24779, 0.31758, 0.19551, 0.25674, 0.14322, 0.19591],
|
|
3548
|
+
[0.14322, 0.19591, 0.13089, 0.18157, 0.12472, 0.17438, 0.12468, 0.17191],
|
|
3549
|
+
[0.12468, 0.17191, 0.12461, 0.16834, 0.12731, 0.16533, 0.13086, 0.16501],
|
|
3550
|
+
[0.13086, 0.16501, 0.1333, 0.16482, 0.14104, 0.17022, 0.15653, 0.18107],
|
|
3551
|
+
[0.15653, 0.18107, 0.22217, 0.22698, 0.2878, 0.2729, 0.35344, 0.31882],
|
|
3552
|
+
[0.35344, 0.31882, 0.35969, 0.32319, 0.36281, 0.32538, 0.36488, 0.32541],
|
|
3553
|
+
[0.36488, 0.32541, 0.3679, 0.32544, 0.37058, 0.32348, 0.37145, 0.3206],
|
|
3554
|
+
[0.37145, 0.3206, 0.37206, 0.31863, 0.37096, 0.31497, 0.36875, 0.30763],
|
|
3555
|
+
[0.36875, 0.30763, 0.3456, 0.23068, 0.32244, 0.15373, 0.29929, 0.07679],
|
|
3556
|
+
[0.29929, 0.07679, 0.29382, 0.05863, 0.29109, 0.04954, 0.29205, 0.04729],
|
|
3557
|
+
[0.29205, 0.04729, 0.29342, 0.04399, 0.29711, 0.04232, 0.3005, 0.04348],
|
|
3558
|
+
[0.3005, 0.04348, 0.30281, 0.04429, 0.30769, 0.05241, 0.31745, 0.06863],
|
|
3559
|
+
[0.31745, 0.06863, 0.35884, 0.13742, 0.40022, 0.20621, 0.44161, 0.275],
|
|
3560
|
+
[0.44161, 0.275, 0.44555, 0.28157, 0.44752, 0.28485, 0.4494, 0.28572],
|
|
3561
|
+
[0.4494, 0.28572, 0.45212, 0.287, 0.45536, 0.28628, 0.45734, 0.28403],
|
|
3562
|
+
[0.45734, 0.28403, 0.4587, 0.28244, 0.45917, 0.27866, 0.46012, 0.27107],
|
|
3563
|
+
[0.46012, 0.27107, 0.4701, 0.1913, 0.48008, 0.11153, 0.49006, 0.03176]
|
|
3564
|
+
]);
|
|
3565
|
+
var bunShape = createShape([
|
|
3566
|
+
[0.01546, 0.25425, 0.01545, 0.18682, 0.04224, 0.12214, 0.08992, 0.07446],
|
|
3567
|
+
[0.08992, 0.07446, 0.1376, 0.02678, 0.20228, -1e-5, 0.26971, 0],
|
|
3568
|
+
[0.26971, 0, 0.42313, 0, 0.57654, 0, 0.72996, 0],
|
|
3569
|
+
[0.72996, 0, 0.85665, -17e-5, 0.96413, 0.09297, 0.98198, 0.2184],
|
|
3570
|
+
[0.98198, 0.2184, 0.99983, 0.34383, 0.92261, 0.46325, 0.8009, 0.49844],
|
|
3571
|
+
[0.8009, 0.49844, 0.8002, 0.49863, 0.79972, 0.49927, 0.79974, 0.5],
|
|
3572
|
+
[0.79974, 0.5, 0.79974, 0.50072, 0.80021, 0.50134, 0.8009, 0.50156],
|
|
3573
|
+
[0.8009, 0.50156, 0.92232, 0.537, 0.99924, 0.65629, 0.98142, 0.78152],
|
|
3574
|
+
[0.98142, 0.78152, 0.96359, 0.90675, 0.85645, 0.99984, 0.72996, 1],
|
|
3575
|
+
[0.72996, 1, 0.57654, 1, 0.42313, 1, 0.26971, 1],
|
|
3576
|
+
[0.26971, 1, 0.20228, 1.00001, 0.1376, 0.97322, 0.08992, 0.92554],
|
|
3577
|
+
[0.08992, 0.92554, 0.04224, 0.87786, 0.01545, 0.81318, 0.01546, 0.74575],
|
|
3578
|
+
[0.01546, 0.74575, 0.01548, 0.63344, 0.08915, 0.53444, 0.19671, 0.50216],
|
|
3579
|
+
[0.19671, 0.50216, 0.19766, 0.50187, 0.19832, 0.501, 0.19832, 0.5],
|
|
3580
|
+
[0.19832, 0.5, 0.19832, 0.49901, 0.19766, 0.49813, 0.19671, 0.49784],
|
|
3581
|
+
[0.19671, 0.49784, 0.08915, 0.46556, 0.01548, 0.36656, 0.01546, 0.25425]
|
|
3582
|
+
]);
|
|
3583
|
+
var burstShape = createShape([
|
|
3584
|
+
[0.49184, 797e-5, 0.49416, 384e-5, 0.49528, 181e-5, 0.49669, 94e-5],
|
|
3585
|
+
[0.49669, 94e-5, 0.49872, -31e-5, 0.50128, -31e-5, 0.50331, 94e-5],
|
|
3586
|
+
[0.50331, 94e-5, 0.50472, 181e-5, 0.50584, 384e-5, 0.50816, 797e-5],
|
|
3587
|
+
[0.50816, 797e-5, 0.53447, 0.055, 0.56078, 0.10203, 0.58709, 0.14906],
|
|
3588
|
+
[0.58709, 0.14906, 0.5885, 0.15159, 0.58922, 0.15287, 0.59019, 0.15362],
|
|
3589
|
+
[0.59019, 0.15362, 0.59156, 0.15475, 0.59334, 0.15522, 0.59509, 0.15494],
|
|
3590
|
+
[0.59509, 0.15494, 0.59631, 0.15475, 0.59756, 0.15403, 0.60003, 0.15253],
|
|
3591
|
+
[0.60003, 0.15253, 0.64634, 0.12496, 0.69266, 0.09739, 0.73897, 0.06981],
|
|
3592
|
+
[0.73897, 0.06981, 0.743, 0.06741, 0.74503, 0.06619, 0.74666, 0.06616],
|
|
3593
|
+
[0.74666, 0.06616, 0.74906, 0.06606, 0.75125, 0.06734, 0.75241, 0.06944],
|
|
3594
|
+
[0.75241, 0.06944, 0.75319, 0.07091, 0.75316, 0.07325, 0.75309, 0.07797],
|
|
3595
|
+
[0.75309, 0.07797, 0.75236, 0.13185, 0.75164, 0.18574, 0.75091, 0.23962],
|
|
3596
|
+
[0.75091, 0.23962, 0.75084, 0.24253, 0.75084, 0.24397, 0.75128, 0.24512],
|
|
3597
|
+
[0.75128, 0.24512, 0.75191, 0.24678, 0.75322, 0.24809, 0.75488, 0.24872],
|
|
3598
|
+
[0.75488, 0.24872, 0.75603, 0.24916, 0.75747, 0.24916, 0.76038, 0.24909],
|
|
3599
|
+
[0.76038, 0.24909, 0.81426, 0.24836, 0.86815, 0.24764, 0.92203, 0.24691],
|
|
3600
|
+
[0.92203, 0.24691, 0.92675, 0.24684, 0.92909, 0.24681, 0.93056, 0.24759],
|
|
3601
|
+
[0.93056, 0.24759, 0.93266, 0.24875, 0.93394, 0.25094, 0.93384, 0.25334],
|
|
3602
|
+
[0.93384, 0.25334, 0.93381, 0.25497, 0.93259, 0.257, 0.93019, 0.26103],
|
|
3603
|
+
[0.93019, 0.26103, 0.90261, 0.30734, 0.87504, 0.35366, 0.84747, 0.39997],
|
|
3604
|
+
[0.84747, 0.39997, 0.84597, 0.40244, 0.84525, 0.40369, 0.84506, 0.40491],
|
|
3605
|
+
[0.84506, 0.40491, 0.84478, 0.40666, 0.84525, 0.40844, 0.84638, 0.40981],
|
|
3606
|
+
[0.84638, 0.40981, 0.84713, 0.41078, 0.84841, 0.4115, 0.85094, 0.41291],
|
|
3607
|
+
[0.85094, 0.41291, 0.89797, 0.43922, 0.945, 0.46553, 0.99203, 0.49184],
|
|
3608
|
+
[0.99203, 0.49184, 0.99616, 0.49416, 0.99819, 0.49528, 0.99906, 0.49669],
|
|
3609
|
+
[0.99906, 0.49669, 1.00031, 0.49872, 1.00031, 0.50128, 0.99906, 0.50331],
|
|
3610
|
+
[0.99906, 0.50331, 0.99819, 0.50472, 0.99616, 0.50584, 0.99203, 0.50816],
|
|
3611
|
+
[0.99203, 0.50816, 0.945, 0.53447, 0.89797, 0.56078, 0.85094, 0.58709],
|
|
3612
|
+
[0.85094, 0.58709, 0.84841, 0.5885, 0.84713, 0.58922, 0.84638, 0.59019],
|
|
3613
|
+
[0.84638, 0.59019, 0.84525, 0.59156, 0.84478, 0.59334, 0.84506, 0.59509],
|
|
3614
|
+
[0.84506, 0.59509, 0.84525, 0.59631, 0.84597, 0.59756, 0.84747, 0.60003],
|
|
3615
|
+
[0.84747, 0.60003, 0.87504, 0.64634, 0.90261, 0.69266, 0.93019, 0.73897],
|
|
3616
|
+
[0.93019, 0.73897, 0.93259, 0.743, 0.93381, 0.74503, 0.93384, 0.74666],
|
|
3617
|
+
[0.93384, 0.74666, 0.93394, 0.74906, 0.93266, 0.75125, 0.93056, 0.75241],
|
|
3618
|
+
[0.93056, 0.75241, 0.92909, 0.75319, 0.92675, 0.75316, 0.92203, 0.75309],
|
|
3619
|
+
[0.92203, 0.75309, 0.86815, 0.75236, 0.81426, 0.75164, 0.76038, 0.75091],
|
|
3620
|
+
[0.76038, 0.75091, 0.75747, 0.75084, 0.75603, 0.75084, 0.75488, 0.75128],
|
|
3621
|
+
[0.75488, 0.75128, 0.75322, 0.75191, 0.75191, 0.75322, 0.75128, 0.75488],
|
|
3622
|
+
[0.75128, 0.75488, 0.75084, 0.75603, 0.75084, 0.75747, 0.75091, 0.76038],
|
|
3623
|
+
[0.75091, 0.76038, 0.75164, 0.81426, 0.75236, 0.86815, 0.75309, 0.92203],
|
|
3624
|
+
[0.75309, 0.92203, 0.75316, 0.92675, 0.75319, 0.92909, 0.75241, 0.93056],
|
|
3625
|
+
[0.75241, 0.93056, 0.75125, 0.93266, 0.74906, 0.93394, 0.74666, 0.93384],
|
|
3626
|
+
[0.74666, 0.93384, 0.74503, 0.93381, 0.743, 0.93259, 0.73897, 0.93019],
|
|
3627
|
+
[0.73897, 0.93019, 0.69266, 0.90261, 0.64634, 0.87504, 0.60003, 0.84747],
|
|
3628
|
+
[0.60003, 0.84747, 0.59756, 0.84597, 0.59631, 0.84525, 0.59509, 0.84506],
|
|
3629
|
+
[0.59509, 0.84506, 0.59334, 0.84478, 0.59156, 0.84525, 0.59019, 0.84638],
|
|
3630
|
+
[0.59019, 0.84638, 0.58922, 0.84713, 0.5885, 0.84841, 0.58709, 0.85094],
|
|
3631
|
+
[0.58709, 0.85094, 0.56078, 0.89797, 0.53447, 0.945, 0.50816, 0.99203],
|
|
3632
|
+
[0.50816, 0.99203, 0.50584, 0.99616, 0.50472, 0.99819, 0.50331, 0.99906],
|
|
3633
|
+
[0.50331, 0.99906, 0.50128, 1.00031, 0.49872, 1.00031, 0.49669, 0.99906],
|
|
3634
|
+
[0.49669, 0.99906, 0.49528, 0.99819, 0.49416, 0.99616, 0.49184, 0.99203],
|
|
3635
|
+
[0.49184, 0.99203, 0.46553, 0.945, 0.43922, 0.89797, 0.41291, 0.85094],
|
|
3636
|
+
[0.41291, 0.85094, 0.4115, 0.84841, 0.41078, 0.84713, 0.40981, 0.84638],
|
|
3637
|
+
[0.40981, 0.84638, 0.40844, 0.84525, 0.40666, 0.84478, 0.40491, 0.84506],
|
|
3638
|
+
[0.40491, 0.84506, 0.40369, 0.84525, 0.40244, 0.84597, 0.39997, 0.84747],
|
|
3639
|
+
[0.39997, 0.84747, 0.35366, 0.87504, 0.30734, 0.90261, 0.26103, 0.93019],
|
|
3640
|
+
[0.26103, 0.93019, 0.257, 0.93259, 0.25497, 0.93381, 0.25334, 0.93384],
|
|
3641
|
+
[0.25334, 0.93384, 0.25094, 0.93394, 0.24875, 0.93266, 0.24759, 0.93056],
|
|
3642
|
+
[0.24759, 0.93056, 0.24681, 0.92909, 0.24684, 0.92675, 0.24691, 0.92203],
|
|
3643
|
+
[0.24691, 0.92203, 0.24764, 0.86815, 0.24836, 0.81426, 0.24909, 0.76038],
|
|
3644
|
+
[0.24909, 0.76038, 0.24916, 0.75747, 0.24916, 0.75603, 0.24872, 0.75488],
|
|
3645
|
+
[0.24872, 0.75488, 0.24809, 0.75322, 0.24678, 0.75191, 0.24513, 0.75128],
|
|
3646
|
+
[0.24513, 0.75128, 0.24397, 0.75084, 0.24253, 0.75084, 0.23963, 0.75091],
|
|
3647
|
+
[0.23963, 0.75091, 0.18574, 0.75164, 0.13185, 0.75236, 0.07797, 0.75309],
|
|
3648
|
+
[0.07797, 0.75309, 0.07325, 0.75316, 0.07091, 0.75319, 0.06944, 0.75241],
|
|
3649
|
+
[0.06944, 0.75241, 0.06734, 0.75127, 0.06607, 0.74904, 0.06616, 0.74666],
|
|
3650
|
+
[0.06616, 0.74666, 0.06619, 0.74503, 0.06741, 0.743, 0.06981, 0.73897],
|
|
3651
|
+
[0.06981, 0.73897, 0.09739, 0.69266, 0.12496, 0.64634, 0.15253, 0.60003],
|
|
3652
|
+
[0.15253, 0.60003, 0.15403, 0.59756, 0.15475, 0.59631, 0.15494, 0.59509],
|
|
3653
|
+
[0.15494, 0.59509, 0.15522, 0.59334, 0.15475, 0.59156, 0.15363, 0.59019],
|
|
3654
|
+
[0.15363, 0.59019, 0.15288, 0.58922, 0.15159, 0.5885, 0.14906, 0.58709],
|
|
3655
|
+
[0.14906, 0.58709, 0.10203, 0.56078, 0.055, 0.53447, 797e-5, 0.50816],
|
|
3656
|
+
[797e-5, 0.50816, 384e-5, 0.50584, 181e-5, 0.50472, 94e-5, 0.50331],
|
|
3657
|
+
[94e-5, 0.50331, -31e-5, 0.50128, -31e-5, 0.49872, 94e-5, 0.49669],
|
|
3658
|
+
[94e-5, 0.49669, 181e-5, 0.49528, 384e-5, 0.49416, 797e-5, 0.49184],
|
|
3659
|
+
[797e-5, 0.49184, 0.055, 0.46553, 0.10203, 0.43922, 0.14906, 0.41291],
|
|
3660
|
+
[0.14906, 0.41291, 0.15159, 0.4115, 0.15287, 0.41078, 0.15362, 0.40981],
|
|
3661
|
+
[0.15362, 0.40981, 0.15475, 0.40844, 0.15522, 0.40666, 0.15494, 0.40491],
|
|
3662
|
+
[0.15494, 0.40491, 0.15475, 0.40369, 0.15403, 0.40244, 0.15253, 0.39997],
|
|
3663
|
+
[0.15253, 0.39997, 0.12496, 0.35366, 0.09739, 0.30734, 0.06981, 0.26103],
|
|
3664
|
+
[0.06981, 0.26103, 0.06741, 0.257, 0.06619, 0.25497, 0.06616, 0.25334],
|
|
3665
|
+
[0.06616, 0.25334, 0.06606, 0.25094, 0.06734, 0.24875, 0.06944, 0.24759],
|
|
3666
|
+
[0.06944, 0.24759, 0.07091, 0.24681, 0.07325, 0.24684, 0.07797, 0.24691],
|
|
3667
|
+
[0.07797, 0.24691, 0.13185, 0.24764, 0.18574, 0.24836, 0.23963, 0.24909],
|
|
3668
|
+
[0.23963, 0.24909, 0.24253, 0.24916, 0.24397, 0.24916, 0.24513, 0.24872],
|
|
3669
|
+
[0.24513, 0.24872, 0.24678, 0.24809, 0.24809, 0.24678, 0.24872, 0.24512],
|
|
3670
|
+
[0.24872, 0.24512, 0.24916, 0.24397, 0.24916, 0.24253, 0.24909, 0.23962],
|
|
3671
|
+
[0.24909, 0.23962, 0.24836, 0.18574, 0.24764, 0.13185, 0.24691, 0.07797],
|
|
3672
|
+
[0.24691, 0.07797, 0.24684, 0.07325, 0.24681, 0.07091, 0.24759, 0.06944],
|
|
3673
|
+
[0.24759, 0.06944, 0.24875, 0.06734, 0.25094, 0.06606, 0.25334, 0.06616],
|
|
3674
|
+
[0.25334, 0.06616, 0.25497, 0.06619, 0.257, 0.06741, 0.26103, 0.06981],
|
|
3675
|
+
[0.26103, 0.06981, 0.30734, 0.09739, 0.35366, 0.12496, 0.39997, 0.15253],
|
|
3676
|
+
[0.39997, 0.15253, 0.40244, 0.15403, 0.40369, 0.15475, 0.40491, 0.15494],
|
|
3677
|
+
[0.40491, 0.15494, 0.40666, 0.15522, 0.40844, 0.15475, 0.40981, 0.15362],
|
|
3678
|
+
[0.40981, 0.15362, 0.41078, 0.15287, 0.4115, 0.15159, 0.41291, 0.14906],
|
|
3679
|
+
[0.41291, 0.14906, 0.43922, 0.10203, 0.46553, 0.055, 0.49184, 797e-5]
|
|
3680
|
+
]);
|
|
3681
|
+
var circleShape = createShape([
|
|
3682
|
+
[1, 0.5, 1, 0.77614, 0.77614, 1, 0.5, 1],
|
|
3683
|
+
[0.5, 1, 0.22386, 1, 0, 0.77614, 0, 0.5],
|
|
3684
|
+
[0, 0.5, 0, 0.22386, 0.22386, 0, 0.5, 0],
|
|
3685
|
+
[0.5, 0, 0.77614, 0, 1, 0.22386, 1, 0.5]
|
|
3686
|
+
]);
|
|
3687
|
+
var clamshellShape = createShape([
|
|
3688
|
+
[0.95752, 0.36588, 0.97848, 0.4081, 0.98896, 0.42921, 0.99426, 0.45126],
|
|
3689
|
+
[0.99426, 0.45126, 1.00191, 0.4833, 1.00191, 0.5167, 0.99426, 0.54874],
|
|
3690
|
+
[0.99426, 0.54874, 0.98896, 0.57079, 0.97848, 0.5919, 0.95752, 0.63412],
|
|
3691
|
+
[0.95752, 0.63412, 0.93623, 0.677, 0.91494, 0.71987, 0.89365, 0.76275],
|
|
3692
|
+
[0.89365, 0.76275, 0.87268, 0.80497, 0.8622, 0.82608, 0.84842, 0.84244],
|
|
3693
|
+
[0.84842, 0.84244, 0.8285, 0.86609, 0.80339, 0.88295, 0.77581, 0.89118],
|
|
3694
|
+
[0.77581, 0.89118, 0.75673, 0.89688, 0.73577, 0.89688, 0.69384, 0.89688],
|
|
3695
|
+
[0.69384, 0.89688, 0.56461, 0.89688, 0.43539, 0.89688, 0.30616, 0.89688],
|
|
3696
|
+
[0.30616, 0.89688, 0.26423, 0.89688, 0.24327, 0.89688, 0.22419, 0.89118],
|
|
3697
|
+
[0.22419, 0.89118, 0.19661, 0.88295, 0.1715, 0.86609, 0.15158, 0.84244],
|
|
3698
|
+
[0.15158, 0.84244, 0.1378, 0.82608, 0.12732, 0.80497, 0.10635, 0.76275],
|
|
3699
|
+
[0.10635, 0.76275, 0.08506, 0.71987, 0.06377, 0.677, 0.04248, 0.63412],
|
|
3700
|
+
[0.04248, 0.63412, 0.02152, 0.5919, 0.01104, 0.57079, 574e-5, 0.54874],
|
|
3701
|
+
[574e-5, 0.54874, -191e-5, 0.5167, -191e-5, 0.4833, 574e-5, 0.45126],
|
|
3702
|
+
[574e-5, 0.45126, 0.01104, 0.42921, 0.02152, 0.4081, 0.04248, 0.36588],
|
|
3703
|
+
[0.04248, 0.36588, 0.06377, 0.323, 0.08506, 0.28013, 0.10635, 0.23725],
|
|
3704
|
+
[0.10635, 0.23725, 0.12732, 0.19503, 0.1378, 0.17392, 0.15158, 0.15756],
|
|
3705
|
+
[0.15158, 0.15756, 0.1715, 0.13391, 0.19661, 0.11705, 0.22419, 0.10882],
|
|
3706
|
+
[0.22419, 0.10882, 0.24327, 0.10312, 0.26423, 0.10312, 0.30616, 0.10312],
|
|
3707
|
+
[0.30616, 0.10312, 0.43539, 0.10312, 0.56461, 0.10312, 0.69384, 0.10312],
|
|
3708
|
+
[0.69384, 0.10312, 0.73577, 0.10312, 0.75673, 0.10312, 0.77581, 0.10882],
|
|
3709
|
+
[0.77581, 0.10882, 0.80339, 0.11705, 0.8285, 0.13391, 0.84842, 0.15756],
|
|
3710
|
+
[0.84842, 0.15756, 0.8622, 0.17392, 0.87268, 0.19503, 0.89365, 0.23725],
|
|
3711
|
+
[0.89365, 0.23725, 0.91494, 0.28013, 0.93623, 0.323, 0.95752, 0.36588]
|
|
3712
|
+
]);
|
|
3713
|
+
var diamondShape = createShape([
|
|
3714
|
+
[0.67951, 0.864, 0.62689, 0.93286, 0.60059, 0.96728, 0.57021, 0.98296],
|
|
3715
|
+
[0.57021, 0.98296, 0.52616, 1.00568, 0.47384, 1.00568, 0.42979, 0.98296],
|
|
3716
|
+
[0.42979, 0.98296, 0.39941, 0.96728, 0.37311, 0.93286, 0.32049, 0.864],
|
|
3717
|
+
[0.32049, 0.864, 0.26225, 0.78778, 0.20401, 0.71156, 0.14577, 0.63534],
|
|
3718
|
+
[0.14577, 0.63534, 0.11377, 0.59346, 0.09777, 0.57252, 0.08984, 0.5501],
|
|
3719
|
+
[0.08984, 0.5501, 0.07838, 0.51768, 0.07838, 0.48232, 0.08984, 0.4499],
|
|
3720
|
+
[0.08984, 0.4499, 0.09777, 0.42748, 0.11377, 0.40654, 0.14577, 0.36466],
|
|
3721
|
+
[0.14577, 0.36466, 0.20401, 0.28844, 0.26225, 0.21222, 0.32049, 0.136],
|
|
3722
|
+
[0.32049, 0.136, 0.37311, 0.06714, 0.39941, 0.03271, 0.42979, 0.01704],
|
|
3723
|
+
[0.42979, 0.01704, 0.47384, -568e-5, 0.52616, -568e-5, 0.57021, 0.01704],
|
|
3724
|
+
[0.57021, 0.01704, 0.60059, 0.03272, 0.62689, 0.06714, 0.67951, 0.136],
|
|
3725
|
+
[0.67951, 0.136, 0.73775, 0.21222, 0.79599, 0.28844, 0.85423, 0.36466],
|
|
3726
|
+
[0.85423, 0.36466, 0.88623, 0.40654, 0.90223, 0.42748, 0.91016, 0.4499],
|
|
3727
|
+
[0.91016, 0.4499, 0.92162, 0.48232, 0.92162, 0.51768, 0.91016, 0.5501],
|
|
3728
|
+
[0.91016, 0.5501, 0.90223, 0.57252, 0.88623, 0.59346, 0.85423, 0.63534],
|
|
3729
|
+
[0.85423, 0.63534, 0.79599, 0.71156, 0.73775, 0.78778, 0.67951, 0.864]
|
|
3730
|
+
]);
|
|
3731
|
+
var fanShape = createShape([
|
|
3732
|
+
[0, 0.15789, 0, 0.15232, 0, 0.14954, 7e-5, 0.14718],
|
|
3733
|
+
[7e-5, 0.14718, 256e-5, 0.06699, 0.06699, 256e-5, 0.14718, 8e-5],
|
|
3734
|
+
[0.14718, 8e-5, 0.14954, 0, 0.15232, 0, 0.1579, 0],
|
|
3735
|
+
[0.1579, 0, 0.18761, 0, 0.20246, 0, 0.21503, 39e-5],
|
|
3736
|
+
[0.21503, 39e-5, 0.64271, 0.01366, 0.98632, 0.35728, 0.99961, 0.78497],
|
|
3737
|
+
[0.99961, 0.78497, 1, 0.79753, 1, 0.81239, 1, 0.8421],
|
|
3738
|
+
[1, 0.8421, 1, 0.84767, 1, 0.85046, 0.99993, 0.85282],
|
|
3739
|
+
[0.99993, 0.85282, 0.99743, 0.93301, 0.933, 0.99744, 0.85282, 0.99993],
|
|
3740
|
+
[0.85282, 0.99993, 0.85046, 1, 0.84768, 1, 0.84211, 1],
|
|
3741
|
+
[0.84211, 1, 0.63634, 1, 0.43057, 1, 0.2248, 1],
|
|
3742
|
+
[0.2248, 1, 0.15688, 1, 0.12292, 1, 0.09598, 0.98933],
|
|
3743
|
+
[0.09598, 0.98933, 0.05698, 0.97389, 0.02611, 0.94301, 0.01067, 0.90402],
|
|
3744
|
+
[0.01067, 0.90402, 0, 0.87708, 0, 0.84312, 0, 0.7752],
|
|
3745
|
+
[0, 0.7752, 0, 0.56943, 0, 0.36366, 0, 0.15789]
|
|
3746
|
+
]);
|
|
3747
|
+
var flowerShape = createShape([
|
|
3748
|
+
[0.85353, 0.14645, 0.81641, 0.10934, 0.73184, 0.12769, 0.62984, 0.1865],
|
|
3749
|
+
[0.62984, 0.1865, 0.59928, 0.07277, 0.55247, 0, 0.5, 0],
|
|
3750
|
+
[0.5, 0, 0.4475, 0, 0.40069, 0.07276, 0.37016, 0.18649],
|
|
3751
|
+
[0.37016, 0.18649, 0.26813, 0.12768, 0.18359, 0.10934, 0.14647, 0.14644],
|
|
3752
|
+
[0.14647, 0.14644, 0.10938, 0.18355, 0.12772, 0.26811, 0.18653, 0.37014],
|
|
3753
|
+
[0.18653, 0.37014, 0.07278, 0.40069, 0, 0.44751, 0, 0.5],
|
|
3754
|
+
[0, 0.5, 0, 0.55248, 0.07275, 0.59929, 0.1865, 0.62984],
|
|
3755
|
+
[0.1865, 0.62984, 0.12766, 0.73188, 0.10931, 0.81644, 0.14641, 0.85355],
|
|
3756
|
+
[0.14641, 0.85355, 0.18353, 0.89067, 0.26809, 0.87231, 0.37012, 0.81347],
|
|
3757
|
+
[0.37012, 0.81347, 0.40069, 0.92722, 0.4475, 1, 0.5, 1],
|
|
3758
|
+
[0.5, 1, 0.55247, 1, 0.59928, 0.92722, 0.62984, 0.81346],
|
|
3759
|
+
[0.62984, 0.81346, 0.73191, 0.8723, 0.81647, 0.89066, 0.85359, 0.85355],
|
|
3760
|
+
[0.85359, 0.85355, 0.89069, 0.81644, 0.87234, 0.73188, 0.8135, 0.62984],
|
|
3761
|
+
[0.8135, 0.62984, 0.92725, 0.59929, 1, 0.55248, 1, 0.5],
|
|
3762
|
+
[1, 0.5, 1, 0.44751, 0.92722, 0.40069, 0.81344, 0.37014],
|
|
3763
|
+
[0.81344, 0.37014, 0.87228, 0.26811, 0.89063, 0.18356, 0.85353, 0.14645]
|
|
3764
|
+
]);
|
|
3765
|
+
var gemShape = createShape([
|
|
3766
|
+
[0.31244, 0.08536, 0.37064, 0.04306, 0.39978, 0.02191, 0.4308, 0.0114],
|
|
3767
|
+
[0.4308, 0.0114, 0.47568, -38e-4, 0.52432, -38e-4, 0.5692, 0.0114],
|
|
3768
|
+
[0.5692, 0.0114, 0.60022, 0.02191, 0.62936, 0.04306, 0.68756, 0.08536],
|
|
3769
|
+
[0.68756, 0.08536, 0.73121, 0.11706, 0.77485, 0.14876, 0.81849, 0.18046],
|
|
3770
|
+
[0.81849, 0.18046, 0.85308, 0.20558, 0.87038, 0.21814, 0.88446, 0.23321],
|
|
3771
|
+
[0.88446, 0.23321, 0.90483, 0.25499, 0.92046, 0.28077, 0.93035, 0.30891],
|
|
3772
|
+
[0.93035, 0.30891, 0.93721, 0.32838, 0.94032, 0.34951, 0.9466, 0.39178],
|
|
3773
|
+
[0.9466, 0.39178, 0.95468, 0.44627, 0.96276, 0.50076, 0.97083, 0.55524],
|
|
3774
|
+
[0.97083, 0.55524, 0.98183, 0.6294, 0.98734, 0.66648, 0.9818, 0.69989],
|
|
3775
|
+
[0.9818, 0.69989, 0.97375, 0.74823, 0.9495, 0.79239, 0.91301, 0.8251],
|
|
3776
|
+
[0.91301, 0.8251, 0.88779, 0.84771, 0.85353, 0.86296, 0.78503, 0.89347],
|
|
3777
|
+
[0.78503, 0.89347, 0.73331, 0.91651, 0.68159, 0.93954, 0.62987, 0.96258],
|
|
3778
|
+
[0.62987, 0.96258, 0.58853, 0.98099, 0.56785, 0.99019, 0.54663, 0.9949],
|
|
3779
|
+
[0.54663, 0.9949, 0.51592, 1.0017, 0.48408, 1.0017, 0.45337, 0.9949],
|
|
3780
|
+
[0.45337, 0.9949, 0.43215, 0.99019, 0.41147, 0.98099, 0.37013, 0.96258],
|
|
3781
|
+
[0.37013, 0.96258, 0.31841, 0.93954, 0.26669, 0.91651, 0.21497, 0.89347],
|
|
3782
|
+
[0.21497, 0.89347, 0.14647, 0.86296, 0.11221, 0.84771, 0.08699, 0.8251],
|
|
3783
|
+
[0.08699, 0.8251, 0.0505, 0.79239, 0.02625, 0.74823, 0.0182, 0.69989],
|
|
3784
|
+
[0.0182, 0.69989, 0.01266, 0.66648, 0.01817, 0.6294, 0.02917, 0.55524],
|
|
3785
|
+
[0.02917, 0.55524, 0.03724, 0.50076, 0.04532, 0.44627, 0.0534, 0.39178],
|
|
3786
|
+
[0.0534, 0.39178, 0.05968, 0.34951, 0.06279, 0.32838, 0.06965, 0.30891],
|
|
3787
|
+
[0.06965, 0.30891, 0.07954, 0.28077, 0.09517, 0.25499, 0.11554, 0.23321],
|
|
3788
|
+
[0.11554, 0.23321, 0.12962, 0.21814, 0.14692, 0.20558, 0.18151, 0.18046],
|
|
3789
|
+
[0.18151, 0.18046, 0.22515, 0.14876, 0.26879, 0.11706, 0.31244, 0.08536]
|
|
3790
|
+
]);
|
|
3791
|
+
var ghostishShape = createShape([
|
|
3792
|
+
[0, 0.47619, 0, 0.2132, 0.22386, 0, 0.5, 0],
|
|
3793
|
+
[0.5, 0, 0.77614, 0, 1, 0.2132, 1, 0.47619],
|
|
3794
|
+
[1, 0.47619, 1, 0.5873, 1, 0.69841, 1, 0.80952],
|
|
3795
|
+
[1, 0.80952, 1, 0.91472, 0.91046, 1, 0.8, 1],
|
|
3796
|
+
[0.8, 1, 0.76726, 1, 0.73636, 0.99251, 0.70908, 0.97923],
|
|
3797
|
+
[0.70908, 0.97923, 0.69518, 0.97246, 0.68131, 0.96504, 0.66738, 0.95759],
|
|
3798
|
+
[0.66738, 0.95759, 0.61838, 0.93137, 0.56864, 0.90476, 0.51423, 0.90476],
|
|
3799
|
+
[0.51423, 0.90476, 0.50474, 0.90476, 0.49526, 0.90476, 0.48577, 0.90476],
|
|
3800
|
+
[0.48577, 0.90476, 0.43136, 0.90476, 0.38163, 0.93137, 0.33262, 0.95759],
|
|
3801
|
+
[0.33262, 0.95759, 0.31869, 0.96504, 0.30482, 0.97246, 0.29092, 0.97923],
|
|
3802
|
+
[0.29092, 0.97923, 0.26364, 0.99251, 0.23274, 1, 0.2, 1],
|
|
3803
|
+
[0.2, 1, 0.08954, 1, 0, 0.91472, 0, 0.80952],
|
|
3804
|
+
[0, 0.80952, 0, 0.69841, 0, 0.5873, 0, 0.47619]
|
|
3805
|
+
]);
|
|
3806
|
+
var heartShape = createShape([
|
|
3807
|
+
[0.78469, 0.05353, 0.717, 0.05353, 0.6566, 0.08531, 0.61713, 0.135],
|
|
3808
|
+
[0.61713, 0.135, 0.57809, 0.17803, 0.53904, 0.22106, 0.5, 0.26409],
|
|
3809
|
+
[0.5, 0.26409, 0.5, 0.26396, 0.5, 0.26382, 0.5, 0.26369],
|
|
3810
|
+
[0.5, 0.26369, 0.46096, 0.22065, 0.42191, 0.1776, 0.38287, 0.13456],
|
|
3811
|
+
[0.38287, 0.13456, 0.3434, 0.08491, 0.283, 0.05312, 0.21531, 0.05312],
|
|
3812
|
+
[0.21531, 0.05312, 0.0964, 0.05312, 0, 0.15116, 0, 0.27206],
|
|
3813
|
+
[0, 0.27206, 0, 0.37831, 0.08867, 0.45772, 0.15287, 0.534],
|
|
3814
|
+
[0.15287, 0.534, 0.21684, 0.61003, 0.2808, 0.686, 0.34476, 0.762],
|
|
3815
|
+
[0.34476, 0.762, 0.39262, 0.81887, 0.44049, 0.87575, 0.48835, 0.93263],
|
|
3816
|
+
[0.48835, 0.93263, 0.49224, 0.93722, 0.49611, 0.94184, 0.5, 0.94647],
|
|
3817
|
+
[0.5, 0.94647, 0.5, 0.9466, 0.5, 0.94674, 0.5, 0.94688],
|
|
3818
|
+
[0.5, 0.94688, 0.50389, 0.94225, 0.50776, 0.93766, 0.51165, 0.93303],
|
|
3819
|
+
[0.51165, 0.93303, 0.55951, 0.87616, 0.60737, 0.81931, 0.65524, 0.76244],
|
|
3820
|
+
[0.65524, 0.76244, 0.7192, 0.68644, 0.78317, 0.61044, 0.84713, 0.53444],
|
|
3821
|
+
[0.84713, 0.53444, 0.91133, 0.45816, 1, 0.37875, 1, 0.27247],
|
|
3822
|
+
[1, 0.27247, 1, 0.15156, 0.9036, 0.05353, 0.78469, 0.05353]
|
|
3823
|
+
]);
|
|
3824
|
+
var clover4LeafShape = createShape([
|
|
3825
|
+
[0.07095, 0.5, 0.02669, 0.44709, 0, 0.37882, 0, 0.30426],
|
|
3826
|
+
[0, 0.30426, 0, 0.13622, 0.13551, 0, 0.3027, 0],
|
|
3827
|
+
[0.3027, 0, 0.37834, 0, 0.44753, 0.02791, 0.50057, 0.07402],
|
|
3828
|
+
[0.50057, 0.07402, 0.55351, 0.02791, 0.62253, 0, 0.69801, 0],
|
|
3829
|
+
[0.69801, 0, 0.8648, 0, 1, 0.13622, 1, 0.30426],
|
|
3830
|
+
[1, 0.30426, 1, 0.37882, 0.97338, 0.44709, 0.92922, 0.5],
|
|
3831
|
+
[0.92922, 0.5, 0.97338, 0.55291, 1, 0.62118, 1, 0.69574],
|
|
3832
|
+
[1, 0.69574, 1, 0.86378, 0.8648, 1, 0.69801, 1],
|
|
3833
|
+
[0.69801, 1, 0.62253, 1, 0.55351, 0.97209, 0.50057, 0.92598],
|
|
3834
|
+
[0.50057, 0.92598, 0.44753, 0.97209, 0.37834, 1, 0.3027, 1],
|
|
3835
|
+
[0.3027, 1, 0.13551, 1, 0, 0.86378, 0, 0.69574],
|
|
3836
|
+
[0, 0.69574, 0, 0.62118, 0.02669, 0.55291, 0.07095, 0.5]
|
|
3837
|
+
]);
|
|
3838
|
+
var clover8LeafShape = createShape([
|
|
3839
|
+
[0.96431, 0.5, 1.0451, 0.6505, 0.98406, 0.78678, 0.82834, 0.82831],
|
|
3840
|
+
[0.82834, 0.82831, 0.78678, 0.98406, 0.6505, 1.04506, 0.5, 0.96431],
|
|
3841
|
+
[0.5, 0.96431, 0.34947, 1.0451, 0.21319, 0.98406, 0.17166, 0.82834],
|
|
3842
|
+
[0.17166, 0.82834, 0.01594, 0.78678, -0.0451, 0.6505, 0.03569, 0.5],
|
|
3843
|
+
[0.03569, 0.5, -0.0451, 0.34947, 0.01594, 0.21319, 0.17166, 0.17166],
|
|
3844
|
+
[0.17166, 0.17166, 0.21319, 0.01594, 0.34947, -0.0451, 0.5, 0.03569],
|
|
3845
|
+
[0.5, 0.03569, 0.6505, -0.0451, 0.78678, 0.01594, 0.82831, 0.17166],
|
|
3846
|
+
[0.82831, 0.17166, 0.98406, 0.21319, 1.04506, 0.34947, 0.96431, 0.5]
|
|
3847
|
+
]);
|
|
3848
|
+
var ovalShape = createShape([
|
|
3849
|
+
[0.77103, 0.77103, 0.53902, 1.00303, 0.22959, 1.06979, 0.07991, 0.9201],
|
|
3850
|
+
[0.07991, 0.9201, -0.06978, 0.7704, -304e-5, 0.46097, 0.22897, 0.22897],
|
|
3851
|
+
[0.22897, 0.22897, 0.46098, -303e-5, 0.77041, -0.06979, 0.92009, 0.0799],
|
|
3852
|
+
[0.92009, 0.0799, 1.06978, 0.2296, 1.00304, 0.53903, 0.77103, 0.77103]
|
|
3853
|
+
]);
|
|
3854
|
+
var pentagonShape = createShape([
|
|
3855
|
+
[0.3426, 0.07617, 0.39138, 0.03842, 0.41575, 0.01954, 0.44181, 0.01017],
|
|
3856
|
+
[0.44181, 0.01017, 0.47942, -336e-5, 0.52058, -336e-5, 0.55819, 0.01017],
|
|
3857
|
+
[0.55819, 0.01017, 0.58425, 0.01954, 0.60862, 0.03842, 0.6574, 0.07617],
|
|
3858
|
+
[0.6574, 0.07617, 0.69296, 0.1037, 0.72853, 0.13123, 0.76409, 0.15876],
|
|
3859
|
+
[0.76409, 0.15876, 0.79963, 0.18455, 0.83517, 0.21034, 0.87071, 0.23613],
|
|
3860
|
+
[0.87071, 0.23613, 0.9213, 0.27285, 0.94662, 0.29123, 0.96352, 0.31429],
|
|
3861
|
+
[0.96352, 0.31429, 0.98796, 0.34769, 1.00083, 0.38872, 0.99996, 0.43069],
|
|
3862
|
+
[0.99996, 0.43069, 0.99933, 0.45972, 0.9893, 0.49006, 0.96918, 0.55072],
|
|
3863
|
+
[0.96918, 0.55072, 0.95522, 0.59283, 0.94126, 0.63495, 0.9273, 0.67706],
|
|
3864
|
+
[0.9273, 0.67706, 0.91443, 0.72021, 0.90155, 0.76335, 0.88868, 0.8065],
|
|
3865
|
+
[0.88868, 0.8065, 0.87052, 0.86724, 0.86146, 0.89762, 0.84562, 0.92124],
|
|
3866
|
+
[0.84562, 0.92124, 0.82268, 0.95543, 0.78934, 0.98055, 0.75099, 0.99259],
|
|
3867
|
+
[0.75099, 0.99259, 0.7245, 1.00093, 0.69393, 1.00043, 0.63281, 0.99946],
|
|
3868
|
+
[0.63281, 0.99946, 0.58854, 0.99876, 0.54427, 0.99806, 0.5, 0.99737],
|
|
3869
|
+
[0.5, 0.99737, 0.45573, 0.99806, 0.41146, 0.99876, 0.36719, 0.99946],
|
|
3870
|
+
[0.36719, 0.99946, 0.30607, 1.00043, 0.2755, 1.00093, 0.24901, 0.99259],
|
|
3871
|
+
[0.24901, 0.99259, 0.21066, 0.98055, 0.17732, 0.95543, 0.15438, 0.92124],
|
|
3872
|
+
[0.15438, 0.92124, 0.13854, 0.89762, 0.12948, 0.86724, 0.11132, 0.8065],
|
|
3873
|
+
[0.11132, 0.8065, 0.09845, 0.76335, 0.08557, 0.72021, 0.0727, 0.67706],
|
|
3874
|
+
[0.0727, 0.67706, 0.05874, 0.63495, 0.04478, 0.59283, 0.03082, 0.55072],
|
|
3875
|
+
[0.03082, 0.55072, 0.0107, 0.49006, 67e-5, 0.45972, 4e-5, 0.43069],
|
|
3876
|
+
[4e-5, 0.43069, -83e-5, 0.38872, 0.01204, 0.34769, 0.03648, 0.31429],
|
|
3877
|
+
[0.03648, 0.31429, 0.05338, 0.29123, 0.0787, 0.27285, 0.12929, 0.23613],
|
|
3878
|
+
[0.12929, 0.23613, 0.16483, 0.21034, 0.20037, 0.18455, 0.23591, 0.15876],
|
|
3879
|
+
[0.23591, 0.15876, 0.27147, 0.13123, 0.30704, 0.1037, 0.3426, 0.07617]
|
|
3880
|
+
]);
|
|
3881
|
+
var pillShape = createShape([
|
|
3882
|
+
[0.2662, 0.1259, 0.43407, -0.04197, 0.70623, -0.04197, 0.8741, 0.1259],
|
|
3883
|
+
[0.8741, 0.1259, 1.04197, 0.29377, 1.04197, 0.56593, 0.8741, 0.7338],
|
|
3884
|
+
[0.8741, 0.7338, 0.82733, 0.78057, 0.78057, 0.82733, 0.7338, 0.8741],
|
|
3885
|
+
[0.7338, 0.8741, 0.56593, 1.04197, 0.29377, 1.04197, 0.1259, 0.8741],
|
|
3886
|
+
[0.1259, 0.8741, -0.04197, 0.70623, -0.04197, 0.43407, 0.1259, 0.2662],
|
|
3887
|
+
[0.1259, 0.2662, 0.17267, 0.21943, 0.21943, 0.17267, 0.2662, 0.1259]
|
|
3888
|
+
]);
|
|
3889
|
+
var pixelCircleShape = createShape([
|
|
3890
|
+
[0.70372, 0, 0.56791, 0, 0.43209, 0, 0.29628, 0],
|
|
3891
|
+
[0.29628, 0, 0.29628, 0.0216, 0.29628, 0.04321, 0.29628, 0.06481],
|
|
3892
|
+
[0.29628, 0.06481, 0.24999, 0.06481, 0.2037, 0.06481, 0.15741, 0.06481],
|
|
3893
|
+
[0.15741, 0.06481, 0.15741, 0.09259, 0.15741, 0.12037, 0.15741, 0.14816],
|
|
3894
|
+
[0.15741, 0.14816, 0.12963, 0.14816, 0.10185, 0.14816, 0.07408, 0.14816],
|
|
3895
|
+
[0.07408, 0.14816, 0.07408, 0.19753, 0.07408, 0.24691, 0.07408, 0.29628],
|
|
3896
|
+
[0.07408, 0.29628, 0.04938, 0.29628, 0.02469, 0.29628, 0, 0.29628],
|
|
3897
|
+
[0, 0.29628, 0, 0.43209, 0, 0.56791, 0, 0.70372],
|
|
3898
|
+
[0, 0.70372, 0.02469, 0.70372, 0.04938, 0.70372, 0.07408, 0.70372],
|
|
3899
|
+
[0.07408, 0.70372, 0.07408, 0.75309, 0.07408, 0.80247, 0.07408, 0.85184],
|
|
3900
|
+
[0.07408, 0.85184, 0.10185, 0.85184, 0.12963, 0.85184, 0.15741, 0.85184],
|
|
3901
|
+
[0.15741, 0.85184, 0.15741, 0.87962, 0.15741, 0.90741, 0.15741, 0.93519],
|
|
3902
|
+
[0.15741, 0.93519, 0.2037, 0.93519, 0.24999, 0.93519, 0.29628, 0.93519],
|
|
3903
|
+
[0.29628, 0.93519, 0.29628, 0.95679, 0.29628, 0.9784, 0.29628, 1],
|
|
3904
|
+
[0.29628, 1, 0.43209, 1, 0.56791, 1, 0.70372, 1],
|
|
3905
|
+
[0.70372, 1, 0.70372, 0.9784, 0.70372, 0.95679, 0.70372, 0.93519],
|
|
3906
|
+
[0.70372, 0.93519, 0.75001, 0.93519, 0.7963, 0.93519, 0.84259, 0.93519],
|
|
3907
|
+
[0.84259, 0.93519, 0.84259, 0.90741, 0.84259, 0.87962, 0.84259, 0.85184],
|
|
3908
|
+
[0.84259, 0.85184, 0.87037, 0.85184, 0.89816, 0.85184, 0.92594, 0.85184],
|
|
3909
|
+
[0.92594, 0.85184, 0.92594, 0.80247, 0.92594, 0.75309, 0.92594, 0.70372],
|
|
3910
|
+
[0.92594, 0.70372, 0.95062, 0.70372, 0.97531, 0.70372, 1, 0.70372],
|
|
3911
|
+
[1, 0.70372, 1, 0.56791, 1, 0.43209, 1, 0.29628],
|
|
3912
|
+
[1, 0.29628, 0.97531, 0.29628, 0.95062, 0.29628, 0.92594, 0.29628],
|
|
3913
|
+
[0.92594, 0.29628, 0.92594, 0.24691, 0.92594, 0.19753, 0.92594, 0.14816],
|
|
3914
|
+
[0.92594, 0.14816, 0.89816, 0.14816, 0.87037, 0.14816, 0.84259, 0.14816],
|
|
3915
|
+
[0.84259, 0.14816, 0.84259, 0.12038, 0.84259, 0.09259, 0.84259, 0.06481],
|
|
3916
|
+
[0.84259, 0.06481, 0.7963, 0.06481, 0.75001, 0.06481, 0.70372, 0.06481],
|
|
3917
|
+
[0.70372, 0.06481, 0.70372, 0.04321, 0.70372, 0.0216, 0.70372, 0]
|
|
3918
|
+
]);
|
|
3919
|
+
var pixelTriangleShape = createShape([
|
|
3920
|
+
[0.28637, 0, 0.22842, 0, 0.17046, 0, 0.1125, 0],
|
|
3921
|
+
[0.1125, 0, 0.1125, 0.33333, 0.1125, 0.66667, 0.1125, 1],
|
|
3922
|
+
[0.1125, 1, 0.17046, 1, 0.22842, 1, 0.28637, 1],
|
|
3923
|
+
[0.28637, 1, 0.28637, 0.97101, 0.28637, 0.94203, 0.28637, 0.91304],
|
|
3924
|
+
[0.28637, 0.91304, 0.33108, 0.91304, 0.37579, 0.91304, 0.4205, 0.91304],
|
|
3925
|
+
[0.4205, 0.91304, 0.4205, 0.88551, 0.4205, 0.85797, 0.4205, 0.83043],
|
|
3926
|
+
[0.4205, 0.83043, 0.46688, 0.83043, 0.51325, 0.83043, 0.55963, 0.83043],
|
|
3927
|
+
[0.55963, 0.83043, 0.55963, 0.79855, 0.55963, 0.76667, 0.55963, 0.73478],
|
|
3928
|
+
[0.55963, 0.73478, 0.59771, 0.73478, 0.63579, 0.73478, 0.67388, 0.73478],
|
|
3929
|
+
[0.67388, 0.73478, 0.67388, 0.70869, 0.67388, 0.68261, 0.67388, 0.65652],
|
|
3930
|
+
[0.67388, 0.65652, 0.71197, 0.65652, 0.75006, 0.65652, 0.78816, 0.65652],
|
|
3931
|
+
[0.78816, 0.65652, 0.78816, 0.62464, 0.78816, 0.59275, 0.78816, 0.56087],
|
|
3932
|
+
[0.78816, 0.56087, 0.82127, 0.56087, 0.85439, 0.56087, 0.8875, 0.56087],
|
|
3933
|
+
[0.8875, 0.56087, 0.8875, 0.52029, 0.8875, 0.47971, 0.8875, 0.43913],
|
|
3934
|
+
[0.8875, 0.43913, 0.85439, 0.43913, 0.82127, 0.43913, 0.78816, 0.43913],
|
|
3935
|
+
[0.78816, 0.43913, 0.78816, 0.40725, 0.78816, 0.37536, 0.78816, 0.34347],
|
|
3936
|
+
[0.78816, 0.34347, 0.75006, 0.34347, 0.71197, 0.34347, 0.67388, 0.34347],
|
|
3937
|
+
[0.67388, 0.34347, 0.67388, 0.31739, 0.67388, 0.2913, 0.67388, 0.26522],
|
|
3938
|
+
[0.67388, 0.26522, 0.63579, 0.26522, 0.59771, 0.26522, 0.55963, 0.26522],
|
|
3939
|
+
[0.55963, 0.26522, 0.55963, 0.23333, 0.55963, 0.20145, 0.55963, 0.16957],
|
|
3940
|
+
[0.55963, 0.16957, 0.51325, 0.16957, 0.46688, 0.16957, 0.4205, 0.16957],
|
|
3941
|
+
[0.4205, 0.16957, 0.4205, 0.14203, 0.4205, 0.11449, 0.4205, 0.08696],
|
|
3942
|
+
[0.4205, 0.08696, 0.37579, 0.08696, 0.33108, 0.08696, 0.28637, 0.08696],
|
|
3943
|
+
[0.28637, 0.08696, 0.28637, 0.05797, 0.28637, 0.02899, 0.28637, 0]
|
|
3944
|
+
]);
|
|
3945
|
+
var puffyDiamondShape = createShape([
|
|
3946
|
+
[0.77937, 0.78048, 0.81712, 0.7427, 0.8299, 0.6894, 0.81768, 0.64111],
|
|
3947
|
+
[0.81768, 0.64111, 0.86599, 0.65339, 0.91937, 0.64063, 0.95718, 0.60282],
|
|
3948
|
+
[0.95718, 0.60282, 1.01427, 0.54574, 1.01427, 0.45319, 0.95718, 0.39611],
|
|
3949
|
+
[0.95718, 0.39611, 0.91959, 0.35852, 0.86662, 0.34569, 0.81856, 0.3576],
|
|
3950
|
+
[0.81856, 0.3576, 0.82928, 0.31027, 0.81621, 0.25865, 0.77937, 0.2218],
|
|
3951
|
+
[0.77937, 0.2218, 0.7415, 0.18394, 0.68803, 0.17119, 0.63969, 0.18355],
|
|
3952
|
+
[0.63969, 0.18355, 0.6525, 0.13492, 0.63984, 0.08095, 0.60169, 0.04282],
|
|
3953
|
+
[0.60169, 0.04282, 0.54462, -0.01426, 0.45206, -0.01426, 0.395, 0.04282],
|
|
3954
|
+
[0.395, 0.04282, 0.3571, 0.08073, 0.34435, 0.13427, 0.35678, 0.18269],
|
|
3955
|
+
[0.35678, 0.18269, 0.30938, 0.17184, 0.2576, 0.18487, 0.22069, 0.2218],
|
|
3956
|
+
[0.22069, 0.2218, 0.18385, 0.25865, 0.17079, 0.31028, 0.1815, 0.35761],
|
|
3957
|
+
[0.1815, 0.35761, 0.13341, 0.34568, 0.08041, 0.35851, 0.04282, 0.39611],
|
|
3958
|
+
[0.04282, 0.39611, -0.01427, 0.45319, -0.01427, 0.54574, 0.04282, 0.60282],
|
|
3959
|
+
[0.04282, 0.60282, 0.08063, 0.64064, 0.13404, 0.6534, 0.18235, 0.6411],
|
|
3960
|
+
[0.18235, 0.6411, 0.17013, 0.68939, 0.18291, 0.7427, 0.22069, 0.78048],
|
|
3961
|
+
[0.22069, 0.78048, 0.25744, 0.81725, 0.30894, 0.83033, 0.35619, 0.81973],
|
|
3962
|
+
[0.35619, 0.81973, 0.34478, 0.8675, 0.35772, 0.9199, 0.395, 0.95718],
|
|
3963
|
+
[0.395, 0.95718, 0.45206, 1.01426, 0.54462, 1.01426, 0.60169, 0.95718],
|
|
3964
|
+
[0.60169, 0.95718, 0.63919, 0.91968, 0.65206, 0.86688, 0.64028, 0.81888],
|
|
3965
|
+
[0.64028, 0.81888, 0.6885, 0.83098, 0.74165, 0.81817, 0.77937, 0.78048]
|
|
3966
|
+
]);
|
|
3967
|
+
var puffyShape = createShape([
|
|
3968
|
+
[0.99994, 0.49408, 0.99912, 0.42679, 0.94916, 0.37292, 0.88825, 0.37382],
|
|
3969
|
+
[0.88825, 0.37382, 0.88491, 0.37382, 0.88159, 0.3741, 0.87831, 0.37449],
|
|
3970
|
+
[0.87831, 0.37449, 0.88087, 0.37218, 0.88337, 0.36982, 0.88575, 0.36722],
|
|
3971
|
+
[0.88575, 0.36722, 0.92937, 0.32028, 0.93028, 0.24307, 0.88784, 0.19483],
|
|
3972
|
+
[0.88784, 0.19483, 0.88534, 0.19201, 0.88287, 0.18919, 0.88031, 0.18648],
|
|
3973
|
+
[0.88031, 0.18648, 0.83669, 0.13954, 0.76694, 0.14055, 0.72444, 0.1888],
|
|
3974
|
+
[0.72444, 0.1888, 0.72209, 0.19144, 0.71997, 0.19421, 0.71787, 0.19703],
|
|
3975
|
+
[0.71787, 0.19703, 0.71822, 0.19342, 0.71844, 0.18975, 0.7185, 0.18603],
|
|
3976
|
+
[0.7185, 0.18603, 0.71934, 0.11874, 0.67066, 0.06346, 0.60981, 0.0625],
|
|
3977
|
+
[0.60981, 0.0625, 0.60682, 0.0625, 0.60383, 0.0625, 0.60084, 0.0625],
|
|
3978
|
+
[0.60084, 0.0625, 0.55575, 0.0625, 0.51706, 0.09248, 0.5, 0.13537],
|
|
3979
|
+
[0.5, 0.13537, 0.48294, 0.09248, 0.44422, 0.0625, 0.39916, 0.0625],
|
|
3980
|
+
[0.39916, 0.0625, 0.39617, 0.0625, 0.39318, 0.0625, 0.39019, 0.0625],
|
|
3981
|
+
[0.39019, 0.0625, 0.32934, 0.0634, 0.28066, 0.11869, 0.28147, 0.18603],
|
|
3982
|
+
[0.28147, 0.18603, 0.28147, 0.18975, 0.28172, 0.19342, 0.28206, 0.19703],
|
|
3983
|
+
[0.28206, 0.19703, 0.28, 0.19418, 0.27781, 0.19144, 0.2755, 0.1888],
|
|
3984
|
+
[0.2755, 0.1888, 0.23306, 0.14055, 0.16325, 0.13954, 0.11962, 0.18648],
|
|
3985
|
+
[0.11962, 0.18648, 0.11709, 0.18925, 0.11453, 0.19201, 0.11209, 0.19483],
|
|
3986
|
+
[0.11209, 0.19483, 0.06966, 0.24307, 0.07056, 0.32022, 0.11419, 0.36722],
|
|
3987
|
+
[0.11419, 0.36722, 0.11659, 0.36982, 0.11906, 0.37218, 0.12162, 0.37449],
|
|
3988
|
+
[0.12162, 0.37449, 0.11833, 0.37409, 0.11501, 0.37387, 0.11169, 0.37382],
|
|
3989
|
+
[0.11169, 0.37382, 0.05084, 0.37292, 87e-5, 0.42679, 0, 0.49408],
|
|
3990
|
+
[0, 0.49408, 0, 0.49803, 0, 0.50197, 0, 0.50592],
|
|
3991
|
+
[0, 0.50592, 81e-5, 0.57321, 0.05081, 0.62708, 0.11169, 0.62618],
|
|
3992
|
+
[0.11169, 0.62618, 0.11506, 0.62618, 0.11837, 0.6259, 0.12162, 0.62551],
|
|
3993
|
+
[0.12162, 0.62551, 0.11906, 0.62782, 0.11659, 0.63018, 0.11419, 0.63278],
|
|
3994
|
+
[0.11419, 0.63278, 0.07056, 0.67972, 0.06966, 0.75693, 0.11209, 0.80518],
|
|
3995
|
+
[0.11209, 0.80518, 0.11459, 0.80799, 0.11709, 0.81081, 0.11962, 0.81352],
|
|
3996
|
+
[0.11962, 0.81352, 0.16325, 0.86046, 0.233, 0.85945, 0.2755, 0.8112],
|
|
3997
|
+
[0.2755, 0.8112, 0.27784, 0.80856, 0.28, 0.80579, 0.28206, 0.80297],
|
|
3998
|
+
[0.28206, 0.80298, 0.28171, 0.80663, 0.28151, 0.8103, 0.28147, 0.81397],
|
|
3999
|
+
[0.28147, 0.81397, 0.28066, 0.88126, 0.32931, 0.9366, 0.39019, 0.9375],
|
|
4000
|
+
[0.39019, 0.9375, 0.39318, 0.9375, 0.39617, 0.9375, 0.39916, 0.9375],
|
|
4001
|
+
[0.39916, 0.9375, 0.44425, 0.9375, 0.48294, 0.90752, 0.5, 0.86463],
|
|
4002
|
+
[0.5, 0.86463, 0.51706, 0.90752, 0.55578, 0.9375, 0.60084, 0.9375],
|
|
4003
|
+
[0.60084, 0.9375, 0.60383, 0.9375, 0.60682, 0.9375, 0.60981, 0.9375],
|
|
4004
|
+
[0.60981, 0.9375, 0.67066, 0.9366, 0.71934, 0.88131, 0.71853, 0.81397],
|
|
4005
|
+
[0.71853, 0.81397, 0.71853, 0.81025, 0.71828, 0.80658, 0.71794, 0.80297],
|
|
4006
|
+
[0.71794, 0.80297, 0.72, 0.80579, 0.72216, 0.80856, 0.7245, 0.8112],
|
|
4007
|
+
[0.7245, 0.8112, 0.76694, 0.85945, 0.83675, 0.86046, 0.88037, 0.81352],
|
|
4008
|
+
[0.88037, 0.81352, 0.88291, 0.81075, 0.88547, 0.80799, 0.88791, 0.80518],
|
|
4009
|
+
[0.88791, 0.80518, 0.93034, 0.75693, 0.92944, 0.67978, 0.88581, 0.63278],
|
|
4010
|
+
[0.88581, 0.63278, 0.88341, 0.63018, 0.88094, 0.62782, 0.87838, 0.62551],
|
|
4011
|
+
[0.87838, 0.62551, 0.88167, 0.62591, 0.88499, 0.62613, 0.88831, 0.62618],
|
|
4012
|
+
[0.88831, 0.62618, 0.94916, 0.62708, 0.99919, 0.57327, 1, 0.50592],
|
|
4013
|
+
[1, 0.50592, 1, 0.50197, 1, 0.49803, 1, 0.49408],
|
|
4014
|
+
[1, 0.49408, 0.99998, 0.49408, 0.99996, 0.49408, 0.99994, 0.49408]
|
|
4015
|
+
]);
|
|
4016
|
+
var semiCircleShape = createShape([
|
|
4017
|
+
[1, 0.70913, 1, 0.76622, 0.95372, 0.8125, 0.89663, 0.8125],
|
|
4018
|
+
[0.89663, 0.8125, 0.63221, 0.8125, 0.36779, 0.8125, 0.10337, 0.8125],
|
|
4019
|
+
[0.10337, 0.8125, 0.04628, 0.8125, 0, 0.76622, 0, 0.70913],
|
|
4020
|
+
[0, 0.70913, 0, 0.70192, 0, 0.69471, 0, 0.6875],
|
|
4021
|
+
[0, 0.6875, 0, 0.41134, 0.22386, 0.1875, 0.5, 0.1875],
|
|
4022
|
+
[0.5, 0.1875, 0.77614, 0.1875, 1, 0.41134, 1, 0.6875],
|
|
4023
|
+
[1, 0.6875, 1, 0.69471, 1, 0.70192, 1, 0.70913]
|
|
4024
|
+
]);
|
|
4025
|
+
var cookie12SidedShape = createShape([
|
|
4026
|
+
[0.42719, 0.03077, 0.42887, 0.02912, 0.42972, 0.02827, 0.43044, 0.02759],
|
|
4027
|
+
[0.43044, 0.02759, 0.46953, -92e-4, 0.53047, -92e-4, 0.56956, 0.02759],
|
|
4028
|
+
[0.56956, 0.02759, 0.57028, 0.02827, 0.57113, 0.02912, 0.57281, 0.03077],
|
|
4029
|
+
[0.57281, 0.03077, 0.57384, 0.03174, 0.57434, 0.03224, 0.57481, 0.03271],
|
|
4030
|
+
[0.57481, 0.03271, 0.59982, 0.05657, 0.63526, 0.06606, 0.66885, 0.0579],
|
|
4031
|
+
[0.66885, 0.0579, 0.6695, 0.05774, 0.67019, 0.05756, 0.67157, 0.05721],
|
|
4032
|
+
[0.67157, 0.05721, 0.67385, 0.05662, 0.675, 0.05634, 0.67597, 0.05609],
|
|
4033
|
+
[0.67597, 0.05609, 0.72819, 0.04377, 0.781, 0.07424, 0.79644, 0.12565],
|
|
4034
|
+
[0.79644, 0.12565, 0.79672, 0.12662, 0.79704, 0.12774, 0.79769, 0.13003],
|
|
4035
|
+
[0.79769, 0.13003, 0.79807, 0.1314, 0.79825, 0.13209, 0.79844, 0.13274],
|
|
4036
|
+
[0.79844, 0.13274, 0.80817, 0.1659, 0.8341, 0.19183, 0.86726, 0.20156],
|
|
4037
|
+
[0.86726, 0.20156, 0.86791, 0.20175, 0.8686, 0.20193, 0.86997, 0.20231],
|
|
4038
|
+
[0.86997, 0.20231, 0.87226, 0.20296, 0.87338, 0.20328, 0.87435, 0.20356],
|
|
4039
|
+
[0.87435, 0.20356, 0.92576, 0.219, 0.95623, 0.27181, 0.94391, 0.32403],
|
|
4040
|
+
[0.94391, 0.32403, 0.94366, 0.325, 0.94338, 0.32615, 0.94279, 0.32843],
|
|
4041
|
+
[0.94279, 0.32843, 0.94244, 0.32981, 0.94226, 0.3305, 0.9421, 0.33115],
|
|
4042
|
+
[0.9421, 0.33115, 0.93394, 0.36474, 0.94343, 0.40018, 0.96729, 0.42519],
|
|
4043
|
+
[0.96729, 0.42519, 0.96776, 0.42566, 0.96826, 0.42616, 0.96923, 0.42719],
|
|
4044
|
+
[0.96923, 0.42719, 0.97088, 0.42887, 0.97173, 0.42972, 0.97241, 0.43044],
|
|
4045
|
+
[0.97241, 0.43044, 1.0092, 0.46953, 1.0092, 0.53047, 0.97241, 0.56956],
|
|
4046
|
+
[0.97241, 0.56956, 0.97173, 0.57028, 0.97088, 0.57113, 0.96923, 0.57281],
|
|
4047
|
+
[0.96923, 0.57281, 0.96826, 0.57384, 0.96776, 0.57434, 0.96729, 0.57481],
|
|
4048
|
+
[0.96729, 0.57481, 0.94343, 0.59982, 0.93394, 0.63526, 0.9421, 0.66885],
|
|
4049
|
+
[0.9421, 0.66885, 0.94226, 0.6695, 0.94244, 0.67019, 0.94279, 0.67157],
|
|
4050
|
+
[0.94279, 0.67157, 0.94338, 0.67385, 0.94366, 0.675, 0.94391, 0.67597],
|
|
4051
|
+
[0.94391, 0.67597, 0.95623, 0.72819, 0.92576, 0.781, 0.87435, 0.79644],
|
|
4052
|
+
[0.87435, 0.79644, 0.87338, 0.79672, 0.87226, 0.79704, 0.86997, 0.79769],
|
|
4053
|
+
[0.86997, 0.79769, 0.8686, 0.79807, 0.86791, 0.79825, 0.86726, 0.79844],
|
|
4054
|
+
[0.86726, 0.79844, 0.8341, 0.80817, 0.80817, 0.8341, 0.79844, 0.86726],
|
|
4055
|
+
[0.79844, 0.86726, 0.79825, 0.86791, 0.79807, 0.8686, 0.79769, 0.86997],
|
|
4056
|
+
[0.79769, 0.86997, 0.79704, 0.87226, 0.79672, 0.87338, 0.79644, 0.87435],
|
|
4057
|
+
[0.79644, 0.87435, 0.781, 0.92576, 0.72819, 0.95623, 0.67597, 0.94391],
|
|
4058
|
+
[0.67597, 0.94391, 0.675, 0.94366, 0.67385, 0.94338, 0.67157, 0.94279],
|
|
4059
|
+
[0.67157, 0.94279, 0.67019, 0.94244, 0.6695, 0.94226, 0.66885, 0.9421],
|
|
4060
|
+
[0.66885, 0.9421, 0.63526, 0.93394, 0.59982, 0.94343, 0.57481, 0.96729],
|
|
4061
|
+
[0.57481, 0.96729, 0.57434, 0.96776, 0.57384, 0.96826, 0.57281, 0.96923],
|
|
4062
|
+
[0.57281, 0.96923, 0.57113, 0.97088, 0.57028, 0.97173, 0.56956, 0.97241],
|
|
4063
|
+
[0.56956, 0.97241, 0.53047, 1.0092, 0.46953, 1.0092, 0.43044, 0.97241],
|
|
4064
|
+
[0.43044, 0.97241, 0.42972, 0.97173, 0.42887, 0.97088, 0.42719, 0.96923],
|
|
4065
|
+
[0.42719, 0.96923, 0.42616, 0.96826, 0.42566, 0.96776, 0.42519, 0.96729],
|
|
4066
|
+
[0.42519, 0.96729, 0.40018, 0.94343, 0.36474, 0.93394, 0.33115, 0.9421],
|
|
4067
|
+
[0.33115, 0.9421, 0.3305, 0.94226, 0.32981, 0.94244, 0.32843, 0.94279],
|
|
4068
|
+
[0.32843, 0.94279, 0.32615, 0.94338, 0.325, 0.94366, 0.32403, 0.94391],
|
|
4069
|
+
[0.32403, 0.94391, 0.27181, 0.95623, 0.219, 0.92576, 0.20356, 0.87435],
|
|
4070
|
+
[0.20356, 0.87435, 0.20328, 0.87338, 0.20296, 0.87226, 0.20231, 0.86997],
|
|
4071
|
+
[0.20231, 0.86997, 0.20193, 0.8686, 0.20175, 0.86791, 0.20156, 0.86726],
|
|
4072
|
+
[0.20156, 0.86726, 0.19183, 0.8341, 0.1659, 0.80817, 0.13274, 0.79844],
|
|
4073
|
+
[0.13274, 0.79844, 0.13209, 0.79825, 0.1314, 0.79807, 0.13003, 0.79769],
|
|
4074
|
+
[0.13003, 0.79769, 0.12774, 0.79704, 0.12662, 0.79672, 0.12565, 0.79644],
|
|
4075
|
+
[0.12565, 0.79644, 0.07424, 0.781, 0.04377, 0.72819, 0.05609, 0.67597],
|
|
4076
|
+
[0.05609, 0.67597, 0.05634, 0.675, 0.05662, 0.67385, 0.05721, 0.67157],
|
|
4077
|
+
[0.05721, 0.67157, 0.05756, 0.67019, 0.05774, 0.6695, 0.0579, 0.66885],
|
|
4078
|
+
[0.0579, 0.66885, 0.06606, 0.63526, 0.05657, 0.59982, 0.03271, 0.57481],
|
|
4079
|
+
[0.03271, 0.57481, 0.03224, 0.57434, 0.03174, 0.57384, 0.03077, 0.57281],
|
|
4080
|
+
[0.03077, 0.57281, 0.02912, 0.57113, 0.02827, 0.57028, 0.02759, 0.56956],
|
|
4081
|
+
[0.02759, 0.56956, -92e-4, 0.53047, -92e-4, 0.46953, 0.02759, 0.43044],
|
|
4082
|
+
[0.02759, 0.43044, 0.02827, 0.42972, 0.02912, 0.42887, 0.03077, 0.42719],
|
|
4083
|
+
[0.03077, 0.42719, 0.03174, 0.42616, 0.03224, 0.42566, 0.03271, 0.42519],
|
|
4084
|
+
[0.03271, 0.42519, 0.05657, 0.40018, 0.06606, 0.36474, 0.0579, 0.33115],
|
|
4085
|
+
[0.0579, 0.33115, 0.05774, 0.3305, 0.05756, 0.32981, 0.05721, 0.32843],
|
|
4086
|
+
[0.05721, 0.32843, 0.05662, 0.32615, 0.05634, 0.325, 0.05609, 0.32403],
|
|
4087
|
+
[0.05609, 0.32403, 0.04377, 0.27181, 0.07424, 0.219, 0.12565, 0.20356],
|
|
4088
|
+
[0.12565, 0.20356, 0.12662, 0.20328, 0.12774, 0.20296, 0.13003, 0.20231],
|
|
4089
|
+
[0.13003, 0.20231, 0.1314, 0.20193, 0.13209, 0.20175, 0.13274, 0.20156],
|
|
4090
|
+
[0.13274, 0.20156, 0.1659, 0.19183, 0.19183, 0.1659, 0.20156, 0.13274],
|
|
4091
|
+
[0.20156, 0.13274, 0.20175, 0.13209, 0.20193, 0.1314, 0.20231, 0.13003],
|
|
4092
|
+
[0.20231, 0.13003, 0.20296, 0.12774, 0.20328, 0.12662, 0.20356, 0.12565],
|
|
4093
|
+
[0.20356, 0.12565, 0.219, 0.07424, 0.27181, 0.04377, 0.32403, 0.05609],
|
|
4094
|
+
[0.32403, 0.05609, 0.325, 0.05634, 0.32615, 0.05662, 0.32843, 0.05721],
|
|
4095
|
+
[0.32843, 0.05721, 0.32981, 0.05756, 0.3305, 0.05774, 0.33115, 0.0579],
|
|
4096
|
+
[0.33115, 0.0579, 0.36474, 0.06606, 0.40018, 0.05657, 0.42519, 0.03271],
|
|
4097
|
+
[0.42519, 0.03271, 0.42566, 0.03224, 0.42616, 0.03174, 0.42719, 0.03077]
|
|
4098
|
+
]);
|
|
4099
|
+
var cookie4SidedShape = createShape([
|
|
4100
|
+
[0.63833, 0.02217, 0.85312, -0.07111, 1.07112, 0.14689, 0.97783, 0.36168],
|
|
4101
|
+
[0.97783, 0.36168, 0.97269, 0.37351, 0.96755, 0.38534, 0.9624, 0.39718],
|
|
4102
|
+
[0.9624, 0.39718, 0.93394, 0.46277, 0.93394, 0.53723, 0.9624, 0.60282],
|
|
4103
|
+
[0.9624, 0.60282, 0.96755, 0.61466, 0.97269, 0.62649, 0.97783, 0.63832],
|
|
4104
|
+
[0.97783, 0.63832, 1.07112, 0.85311, 0.85312, 1.07111, 0.63833, 0.97783],
|
|
4105
|
+
[0.63833, 0.97783, 0.6265, 0.97268, 0.61466, 0.96754, 0.60283, 0.9624],
|
|
4106
|
+
[0.60283, 0.9624, 0.53724, 0.93393, 0.46278, 0.93393, 0.39718, 0.9624],
|
|
4107
|
+
[0.39718, 0.9624, 0.38535, 0.96754, 0.37352, 0.97268, 0.36168, 0.97783],
|
|
4108
|
+
[0.36168, 0.97783, 0.14689, 1.07111, -0.07112, 0.85311, 0.02217, 0.63832],
|
|
4109
|
+
[0.02217, 0.63832, 0.02731, 0.62649, 0.03245, 0.61466, 0.03759, 0.60282],
|
|
4110
|
+
[0.03759, 0.60282, 0.06608, 0.53723, 0.06608, 0.46277, 0.03759, 0.39718],
|
|
4111
|
+
[0.03759, 0.39718, 0.03245, 0.38534, 0.02731, 0.37351, 0.02217, 0.36168],
|
|
4112
|
+
[0.02217, 0.36168, -0.07112, 0.14689, 0.14689, -0.07111, 0.36168, 0.02217],
|
|
4113
|
+
[0.36168, 0.02217, 0.37352, 0.02732, 0.38535, 0.03246, 0.39718, 0.0376],
|
|
4114
|
+
[0.39718, 0.0376, 0.46278, 0.06607, 0.53724, 0.06607, 0.60283, 0.0376],
|
|
4115
|
+
[0.60283, 0.0376, 0.61466, 0.03246, 0.6265, 0.02732, 0.63833, 0.02217]
|
|
4116
|
+
]);
|
|
4117
|
+
var cookie6SidedShape = createShape([
|
|
4118
|
+
[0.32337, 0.07142, 0.42176, -0.02381, 0.57824, -0.02381, 0.67663, 0.07142],
|
|
4119
|
+
[0.67663, 0.07142, 0.70677, 0.10055, 0.74365, 0.12178, 0.78399, 0.13319],
|
|
4120
|
+
[0.78399, 0.13319, 0.91589, 0.17053, 0.99413, 0.30566, 0.96061, 0.4382],
|
|
4121
|
+
[0.96061, 0.4382, 0.95036, 0.47876, 0.95036, 0.52124, 0.96061, 0.5618],
|
|
4122
|
+
[0.96061, 0.5618, 0.99413, 0.69434, 0.91589, 0.82947, 0.78399, 0.86681],
|
|
4123
|
+
[0.78399, 0.86681, 0.74365, 0.87822, 0.70677, 0.89945, 0.67663, 0.92858],
|
|
4124
|
+
[0.67663, 0.92858, 0.57824, 1.02381, 0.42176, 1.02381, 0.32337, 0.92858],
|
|
4125
|
+
[0.32337, 0.92858, 0.29323, 0.89945, 0.25635, 0.87822, 0.21601, 0.86681],
|
|
4126
|
+
[0.21601, 0.86681, 0.08411, 0.82947, 587e-5, 0.69434, 0.03939, 0.5618],
|
|
4127
|
+
[0.03939, 0.5618, 0.04964, 0.52124, 0.04964, 0.47876, 0.03939, 0.4382],
|
|
4128
|
+
[0.03939, 0.4382, 587e-5, 0.30566, 0.08411, 0.17053, 0.21601, 0.13319],
|
|
4129
|
+
[0.21601, 0.13319, 0.25635, 0.12178, 0.29323, 0.10055, 0.32337, 0.07142]
|
|
4130
|
+
]);
|
|
4131
|
+
var cookie7SidedShape = createShape([
|
|
4132
|
+
[0.35209, 0.06806, 0.36326, 0.05824, 0.36884, 0.05334, 0.37397, 0.04937],
|
|
4133
|
+
[0.37397, 0.04937, 0.4482, -813e-5, 0.5518, -813e-5, 0.62603, 0.04937],
|
|
4134
|
+
[0.62603, 0.04937, 0.63116, 0.05334, 0.63674, 0.05824, 0.64791, 0.06806],
|
|
4135
|
+
[0.64791, 0.06806, 0.65164, 0.07137, 0.65351, 0.07299, 0.65539, 0.07459],
|
|
4136
|
+
[0.65539, 0.07459, 0.68167, 0.09662, 0.71303, 0.11176, 0.74663, 0.11862],
|
|
4137
|
+
[0.74663, 0.11862, 0.74903, 0.11912, 0.75147, 0.11956, 0.75637, 0.12043],
|
|
4138
|
+
[0.75637, 0.12043, 0.771, 0.12306, 0.77831, 0.12434, 0.78461, 0.1259],
|
|
4139
|
+
[0.78461, 0.1259, 0.87573, 0.14821, 0.94032, 0.2294, 0.94176, 0.3234],
|
|
4140
|
+
[0.94176, 0.3234, 0.94186, 0.3299, 0.94151, 0.33734, 0.9408, 0.35221],
|
|
4141
|
+
[0.9408, 0.35221, 0.94057, 0.35721, 0.94045, 0.35968, 0.94039, 0.36215],
|
|
4142
|
+
[0.94039, 0.36215, 0.93958, 0.39649, 0.94732, 0.43049, 0.96293, 0.46109],
|
|
4143
|
+
[0.96293, 0.46109, 0.96404, 0.46328, 0.96523, 0.46546, 0.96759, 0.46987],
|
|
4144
|
+
[0.96759, 0.46987, 0.97467, 0.48296, 0.97821, 0.4895, 0.98093, 0.4954],
|
|
4145
|
+
[0.98093, 0.4954, 1.02032, 0.58071, 0.99727, 0.68196, 0.92484, 0.74168],
|
|
4146
|
+
[0.92484, 0.74168, 0.91984, 0.74584, 0.91381, 0.75018, 0.90177, 0.7589],
|
|
4147
|
+
[0.90177, 0.7589, 0.89774, 0.76184, 0.89572, 0.76328, 0.89377, 0.76478],
|
|
4148
|
+
[0.89377, 0.76478, 0.86646, 0.78557, 0.84476, 0.81284, 0.83064, 0.84412],
|
|
4149
|
+
[0.83064, 0.84412, 0.82963, 0.84637, 0.82865, 0.84865, 0.82671, 0.85325],
|
|
4150
|
+
[0.82671, 0.85325, 0.82091, 0.86696, 0.818, 0.87381, 0.8151, 0.87962],
|
|
4151
|
+
[0.8151, 0.87962, 0.7731, 0.96368, 0.67977, 1.00875, 0.58801, 0.98925],
|
|
4152
|
+
[0.58801, 0.98925, 0.58166, 0.98787, 0.57451, 0.98587, 0.56019, 0.98187],
|
|
4153
|
+
[0.56019, 0.98187, 0.5554, 0.98056, 0.55301, 0.97987, 0.55063, 0.97928],
|
|
4154
|
+
[0.55063, 0.97928, 0.51741, 0.97084, 0.48259, 0.97084, 0.44937, 0.97928],
|
|
4155
|
+
[0.44937, 0.97928, 0.44699, 0.97987, 0.4446, 0.98056, 0.43981, 0.98187],
|
|
4156
|
+
[0.43981, 0.98187, 0.42549, 0.98587, 0.41834, 0.98787, 0.41199, 0.98925],
|
|
4157
|
+
[0.41199, 0.98925, 0.32023, 1.00875, 0.2269, 0.96368, 0.1849, 0.87962],
|
|
4158
|
+
[0.1849, 0.87962, 0.18199, 0.87381, 0.17909, 0.86696, 0.17329, 0.85325],
|
|
4159
|
+
[0.17329, 0.85325, 0.17135, 0.84865, 0.17037, 0.84637, 0.16936, 0.84412],
|
|
4160
|
+
[0.16936, 0.84412, 0.15523, 0.81284, 0.13353, 0.78557, 0.10623, 0.76478],
|
|
4161
|
+
[0.10623, 0.76478, 0.10428, 0.76328, 0.10226, 0.76184, 0.09823, 0.7589],
|
|
4162
|
+
[0.09823, 0.7589, 0.08619, 0.75018, 0.08017, 0.74584, 0.07516, 0.74168],
|
|
4163
|
+
[0.07516, 0.74168, 273e-5, 0.68196, -0.02032, 0.58071, 0.01907, 0.4954],
|
|
4164
|
+
[0.01907, 0.4954, 0.02179, 0.4895, 0.02533, 0.48296, 0.03241, 0.46987],
|
|
4165
|
+
[0.03241, 0.46987, 0.03477, 0.46546, 0.03596, 0.46328, 0.03707, 0.46109],
|
|
4166
|
+
[0.03707, 0.46109, 0.05268, 0.43049, 0.06042, 0.39649, 0.05961, 0.36215],
|
|
4167
|
+
[0.05961, 0.36215, 0.05955, 0.35968, 0.05943, 0.35721, 0.0592, 0.35221],
|
|
4168
|
+
[0.0592, 0.35221, 0.05849, 0.33734, 0.05813, 0.3299, 0.05824, 0.3234],
|
|
4169
|
+
[0.05824, 0.3234, 0.05968, 0.2294, 0.12427, 0.14821, 0.21539, 0.1259],
|
|
4170
|
+
[0.21539, 0.1259, 0.22169, 0.12434, 0.229, 0.12306, 0.24363, 0.12043],
|
|
4171
|
+
[0.24363, 0.12043, 0.24853, 0.11956, 0.25097, 0.11912, 0.25337, 0.11862],
|
|
4172
|
+
[0.25337, 0.11862, 0.28697, 0.11176, 0.31833, 0.09662, 0.34461, 0.07459],
|
|
4173
|
+
[0.34461, 0.07459, 0.34649, 0.07299, 0.34836, 0.07137, 0.35209, 0.06806]
|
|
4174
|
+
]);
|
|
4175
|
+
var cookie9SidedShape = createShape([
|
|
4176
|
+
[0.39144, 0.04182, 0.39684, 0.03735, 0.39953, 0.03513, 0.402, 0.03326],
|
|
4177
|
+
[0.402, 0.03326, 0.45981, -0.01109, 0.54019, -0.01109, 0.598, 0.03326],
|
|
4178
|
+
[0.598, 0.03326, 0.60047, 0.03513, 0.60316, 0.03735, 0.60856, 0.04182],
|
|
4179
|
+
[0.60856, 0.04182, 0.61097, 0.04379, 0.61216, 0.04479, 0.61334, 0.04576],
|
|
4180
|
+
[0.61334, 0.04576, 0.64056, 0.06743, 0.67404, 0.07974, 0.70881, 0.08085],
|
|
4181
|
+
[0.70881, 0.08085, 0.71031, 0.08088, 0.71187, 0.08091, 0.71497, 0.08094],
|
|
4182
|
+
[0.71497, 0.08094, 0.72194, 0.08104, 0.72544, 0.08107, 0.7285, 0.08123],
|
|
4183
|
+
[0.7285, 0.08123, 0.80112, 0.08494, 0.86243, 0.13694, 0.87865, 0.20854],
|
|
4184
|
+
[0.87865, 0.20854, 0.87934, 0.21157, 0.88, 0.21504, 0.88131, 0.22194],
|
|
4185
|
+
[0.88131, 0.22194, 0.88187, 0.22504, 0.88215, 0.22657, 0.88247, 0.22807],
|
|
4186
|
+
[0.88247, 0.22807, 0.88956, 0.26244, 0.90737, 0.29357, 0.93325, 0.31694],
|
|
4187
|
+
[0.93325, 0.31694, 0.9344, 0.31797, 0.93556, 0.319, 0.93793, 0.32104],
|
|
4188
|
+
[0.93793, 0.32104, 0.94321, 0.32563, 0.94584, 0.32794, 0.94809, 0.33007],
|
|
4189
|
+
[0.94809, 0.33007, 1.00137, 0.38004, 1.01528, 0.45972, 0.98215, 0.5251],
|
|
4190
|
+
[0.98215, 0.5251, 0.98075, 0.52788, 0.97903, 0.53094, 0.97562, 0.53707],
|
|
4191
|
+
[0.97562, 0.53707, 0.97409, 0.53982, 0.97334, 0.54119, 0.97262, 0.54253],
|
|
4192
|
+
[0.97262, 0.54253, 0.9562, 0.57351, 0.95003, 0.60889, 0.955, 0.6436],
|
|
4193
|
+
[0.955, 0.6436, 0.95521, 0.64513, 0.95546, 0.64666, 0.95596, 0.64975],
|
|
4194
|
+
[0.95596, 0.64975, 0.95709, 0.65672, 0.95765, 0.66019, 0.95803, 0.66328],
|
|
4195
|
+
[0.95803, 0.66328, 0.96703, 0.73616, 0.927, 0.80622, 0.86003, 0.83478],
|
|
4196
|
+
[0.86003, 0.83478, 0.85718, 0.836, 0.8539, 0.83725, 0.8474, 0.83975],
|
|
4197
|
+
[0.8474, 0.83975, 0.8445, 0.84084, 0.84303, 0.84141, 0.84162, 0.84197],
|
|
4198
|
+
[0.84162, 0.84197, 0.80937, 0.855, 0.78212, 0.87812, 0.76381, 0.90794],
|
|
4199
|
+
[0.76381, 0.90794, 0.76303, 0.90925, 0.76225, 0.91059, 0.76065, 0.91328],
|
|
4200
|
+
[0.76065, 0.91328, 0.75709, 0.91934, 0.75531, 0.92237, 0.75362, 0.925],
|
|
4201
|
+
[0.75362, 0.925, 0.71415, 0.98665, 0.63894, 1.01434, 0.56944, 0.99272],
|
|
4202
|
+
[0.56944, 0.99272, 0.5665, 0.99181, 0.56319, 0.99065, 0.55662, 0.98831],
|
|
4203
|
+
[0.55662, 0.98831, 0.55369, 0.98728, 0.55222, 0.98675, 0.55078, 0.98628],
|
|
4204
|
+
[0.55078, 0.98628, 0.51782, 0.97531, 0.48218, 0.97531, 0.44922, 0.98628],
|
|
4205
|
+
[0.44922, 0.98628, 0.44778, 0.98675, 0.44631, 0.98728, 0.44338, 0.98831],
|
|
4206
|
+
[0.44338, 0.98831, 0.43681, 0.99065, 0.4335, 0.99181, 0.43056, 0.99272],
|
|
4207
|
+
[0.43056, 0.99272, 0.36106, 1.01434, 0.28585, 0.98665, 0.24638, 0.925],
|
|
4208
|
+
[0.24638, 0.925, 0.24469, 0.92237, 0.24291, 0.91934, 0.23935, 0.91328],
|
|
4209
|
+
[0.23935, 0.91328, 0.23775, 0.91059, 0.23697, 0.90925, 0.23619, 0.90794],
|
|
4210
|
+
[0.23619, 0.90794, 0.21788, 0.87812, 0.19063, 0.855, 0.15838, 0.84197],
|
|
4211
|
+
[0.15838, 0.84197, 0.15697, 0.84141, 0.1555, 0.84084, 0.1526, 0.83975],
|
|
4212
|
+
[0.1526, 0.83975, 0.1461, 0.83725, 0.14282, 0.836, 0.13997, 0.83478],
|
|
4213
|
+
[0.13997, 0.83478, 0.073, 0.80622, 0.03297, 0.73616, 0.04197, 0.66328],
|
|
4214
|
+
[0.04197, 0.66328, 0.04235, 0.66019, 0.04291, 0.65672, 0.04404, 0.64975],
|
|
4215
|
+
[0.04404, 0.64975, 0.04454, 0.64666, 0.04479, 0.64513, 0.045, 0.6436],
|
|
4216
|
+
[0.045, 0.6436, 0.04997, 0.60889, 0.0438, 0.57351, 0.02738, 0.54253],
|
|
4217
|
+
[0.02738, 0.54253, 0.02666, 0.54119, 0.02591, 0.53982, 0.02438, 0.53707],
|
|
4218
|
+
[0.02438, 0.53707, 0.02097, 0.53094, 0.01925, 0.52788, 0.01785, 0.5251],
|
|
4219
|
+
[0.01785, 0.5251, -0.01528, 0.45972, -137e-5, 0.38004, 0.05191, 0.33007],
|
|
4220
|
+
[0.05191, 0.33007, 0.05416, 0.32794, 0.05679, 0.32563, 0.06207, 0.32104],
|
|
4221
|
+
[0.06207, 0.32104, 0.06444, 0.319, 0.0656, 0.31797, 0.06675, 0.31694],
|
|
4222
|
+
[0.06675, 0.31694, 0.0927, 0.29347, 0.11049, 0.26234, 0.11753, 0.22807],
|
|
4223
|
+
[0.11753, 0.22807, 0.11785, 0.22657, 0.11813, 0.22504, 0.11869, 0.22194],
|
|
4224
|
+
[0.11869, 0.22194, 0.12, 0.21504, 0.12066, 0.21157, 0.12135, 0.20854],
|
|
4225
|
+
[0.12135, 0.20854, 0.13757, 0.13694, 0.19888, 0.08494, 0.2715, 0.08123],
|
|
4226
|
+
[0.2715, 0.08123, 0.27456, 0.08107, 0.27806, 0.08104, 0.28503, 0.08094],
|
|
4227
|
+
[0.28503, 0.08094, 0.28813, 0.08091, 0.28969, 0.08088, 0.29119, 0.08085],
|
|
4228
|
+
[0.29119, 0.08085, 0.32596, 0.07974, 0.35944, 0.06743, 0.38666, 0.04576],
|
|
4229
|
+
[0.38666, 0.04576, 0.38784, 0.04479, 0.38903, 0.04379, 0.39144, 0.04182]
|
|
4230
|
+
]);
|
|
4231
|
+
var slantedShape = createShape([
|
|
4232
|
+
[0.04911, 0.28294, 0.05715, 0.20613, 0.06118, 0.16772, 0.07595, 0.13743],
|
|
4233
|
+
[0.07595, 0.13743, 0.09732, 0.09358, 0.13462, 0.05972, 0.18009, 0.04288],
|
|
4234
|
+
[0.18009, 0.04288, 0.21151, 0.03125, 0.24979, 0.03125, 0.32635, 0.03125],
|
|
4235
|
+
[0.32635, 0.03125, 0.45521, 0.03125, 0.58407, 0.03125, 0.71293, 0.03125],
|
|
4236
|
+
[0.71293, 0.03125, 0.80551, 0.03125, 0.85181, 0.03125, 0.88715, 0.04642],
|
|
4237
|
+
[0.88715, 0.04642, 0.93832, 0.06838, 0.97725, 0.11203, 0.99352, 0.16569],
|
|
4238
|
+
[0.99352, 0.16569, 1.00476, 0.20272, 0.9999, 0.24916, 0.99017, 0.34206],
|
|
4239
|
+
[0.99017, 0.34206, 0.97708, 0.46706, 0.96398, 0.59206, 0.95089, 0.71706],
|
|
4240
|
+
[0.95089, 0.71706, 0.94285, 0.79387, 0.93883, 0.83228, 0.92405, 0.86256],
|
|
4241
|
+
[0.92405, 0.86256, 0.90268, 0.90641, 0.86538, 0.94028, 0.81991, 0.95712],
|
|
4242
|
+
[0.81991, 0.95712, 0.78849, 0.96875, 0.75021, 0.96875, 0.67365, 0.96875],
|
|
4243
|
+
[0.67365, 0.96875, 0.54479, 0.96875, 0.41593, 0.96875, 0.28707, 0.96875],
|
|
4244
|
+
[0.28707, 0.96875, 0.19449, 0.96875, 0.14819, 0.96875, 0.11285, 0.95359],
|
|
4245
|
+
[0.11285, 0.95359, 0.06169, 0.93162, 0.02275, 0.88797, 648e-5, 0.83431],
|
|
4246
|
+
[648e-5, 0.83431, -476e-5, 0.79728, 1e-4, 0.75084, 983e-5, 0.65794],
|
|
4247
|
+
[983e-5, 0.65794, 0.02292, 0.53294, 0.03602, 0.40794, 0.04911, 0.28294]
|
|
4248
|
+
]);
|
|
4249
|
+
var softBoomShape = createShape([
|
|
4250
|
+
[0.54668, 0.26546, 0.61712, -0.08849, 0.38296, -0.08849, 0.45337, 0.26546],
|
|
4251
|
+
[0.45337, 0.26546, 0.38296, -0.08849, 0.16664, 11e-4, 0.36715, 0.30118],
|
|
4252
|
+
[0.36715, 0.30118, 0.16664, 11e-4, 11e-4, 0.16665, 0.30118, 0.36715],
|
|
4253
|
+
[0.30118, 0.36715, 11e-4, 0.16665, -0.08849, 0.38296, 0.26546, 0.45334],
|
|
4254
|
+
[0.26546, 0.45334, -0.08849, 0.38293, -0.08849, 0.61706, 0.26546, 0.54665],
|
|
4255
|
+
[0.26546, 0.54665, -0.08849, 0.61706, 114e-5, 0.83334, 0.30118, 0.63284],
|
|
4256
|
+
[0.30118, 0.63284, 114e-5, 0.83334, 0.16668, 0.9989, 0.36715, 0.69881],
|
|
4257
|
+
[0.36715, 0.69881, 0.16664, 0.99884, 0.38296, 1.08843, 0.45334, 0.73452],
|
|
4258
|
+
[0.45334, 0.73452, 0.38293, 1.08849, 0.61706, 1.08849, 0.54665, 0.73452],
|
|
4259
|
+
[0.54665, 0.73452, 0.61706, 1.08849, 0.83334, 0.99884, 0.63284, 0.69881],
|
|
4260
|
+
[0.63284, 0.69881, 0.83334, 0.99884, 0.9989, 0.83331, 0.69881, 0.63284],
|
|
4261
|
+
[0.69881, 0.63284, 0.99884, 0.83334, 1.08843, 0.61702, 0.73452, 0.54665],
|
|
4262
|
+
[0.73452, 0.54665, 1.08849, 0.61706, 1.08849, 0.38293, 0.73452, 0.45334],
|
|
4263
|
+
[0.73452, 0.45334, 1.08849, 0.38293, 0.99884, 0.16665, 0.69881, 0.36715],
|
|
4264
|
+
[0.69881, 0.36715, 0.99884, 0.16665, 0.83331, 11e-4, 0.63284, 0.30118],
|
|
4265
|
+
[0.63284, 0.30118, 0.83334, 114e-5, 0.61702, -0.08845, 0.54665, 0.26546],
|
|
4266
|
+
[0.54665, 0.26546, 0.54666, 0.26546, 0.54667, 0.26546, 0.54668, 0.26546]
|
|
4267
|
+
]);
|
|
4268
|
+
var softBurstShape = createShape([
|
|
4269
|
+
[0.45359, 0.0247, 0.47494, -823e-5, 0.52506, -823e-5, 0.54641, 0.0247],
|
|
4270
|
+
[0.54641, 0.0247, 0.56348, 0.05101, 0.58055, 0.07733, 0.59763, 0.10364],
|
|
4271
|
+
[0.59763, 0.10364, 0.61166, 0.12529, 0.64, 0.1341, 0.66466, 0.12447],
|
|
4272
|
+
[0.66466, 0.12447, 0.69464, 0.11278, 0.72462, 0.10108, 0.7546, 0.08939],
|
|
4273
|
+
[0.7546, 0.08939, 0.79213, 0.07475, 0.83266, 0.10291, 0.82972, 0.14156],
|
|
4274
|
+
[0.82972, 0.14156, 0.82736, 0.17245, 0.82499, 0.20334, 0.82263, 0.23422],
|
|
4275
|
+
[0.82263, 0.23422, 0.82066, 0.25963, 0.83816, 0.28266, 0.86403, 0.28875],
|
|
4276
|
+
[0.86403, 0.28875, 0.89548, 0.29614, 0.92693, 0.30352, 0.95838, 0.31091],
|
|
4277
|
+
[0.95838, 0.31091, 0.99772, 0.32016, 1.01322, 0.36572, 0.98707, 0.39535],
|
|
4278
|
+
[0.98707, 0.39535, 0.96617, 0.41899, 0.94527, 0.44264, 0.92438, 0.46629],
|
|
4279
|
+
[0.92438, 0.46629, 0.90719, 0.48575, 0.90719, 0.51425, 0.92438, 0.53372],
|
|
4280
|
+
[0.92438, 0.53372, 0.94527, 0.55737, 0.96617, 0.58102, 0.98707, 0.60466],
|
|
4281
|
+
[0.98707, 0.60466, 1.01322, 0.63429, 0.99772, 0.67985, 0.95838, 0.6891],
|
|
4282
|
+
[0.95838, 0.6891, 0.92693, 0.69648, 0.89548, 0.70387, 0.86403, 0.71126],
|
|
4283
|
+
[0.86403, 0.71126, 0.83816, 0.71735, 0.82066, 0.74038, 0.82263, 0.76579],
|
|
4284
|
+
[0.82263, 0.76579, 0.82499, 0.79667, 0.82736, 0.82756, 0.82972, 0.85844],
|
|
4285
|
+
[0.82972, 0.85844, 0.83266, 0.8971, 0.79213, 0.92526, 0.7546, 0.91063],
|
|
4286
|
+
[0.7546, 0.91063, 0.72462, 0.89893, 0.69464, 0.88724, 0.66466, 0.87554],
|
|
4287
|
+
[0.66466, 0.87554, 0.64, 0.86591, 0.61166, 0.87473, 0.59763, 0.89638],
|
|
4288
|
+
[0.59763, 0.89638, 0.58055, 0.92269, 0.56348, 0.94901, 0.54641, 0.97532],
|
|
4289
|
+
[0.54641, 0.97532, 0.52506, 1.00823, 0.47494, 1.00823, 0.45359, 0.97532],
|
|
4290
|
+
[0.45359, 0.97532, 0.43652, 0.94901, 0.41945, 0.92269, 0.40237, 0.89638],
|
|
4291
|
+
[0.40237, 0.89638, 0.38834, 0.87473, 0.36, 0.86591, 0.33534, 0.87554],
|
|
4292
|
+
[0.33534, 0.87554, 0.30536, 0.88724, 0.27538, 0.89893, 0.2454, 0.91063],
|
|
4293
|
+
[0.2454, 0.91063, 0.20787, 0.92526, 0.16734, 0.8971, 0.17028, 0.85844],
|
|
4294
|
+
[0.17028, 0.85844, 0.17264, 0.82756, 0.17501, 0.79667, 0.17737, 0.76579],
|
|
4295
|
+
[0.17737, 0.76579, 0.17934, 0.74038, 0.16184, 0.71735, 0.13597, 0.71126],
|
|
4296
|
+
[0.13597, 0.71126, 0.10452, 0.70387, 0.07307, 0.69648, 0.04162, 0.6891],
|
|
4297
|
+
[0.04162, 0.6891, 228e-5, 0.67985, -0.01322, 0.63429, 0.01293, 0.60466],
|
|
4298
|
+
[0.01293, 0.60466, 0.03383, 0.58102, 0.05473, 0.55737, 0.07562, 0.53372],
|
|
4299
|
+
[0.07562, 0.53372, 0.09281, 0.51425, 0.09281, 0.48575, 0.07562, 0.46629],
|
|
4300
|
+
[0.07562, 0.46629, 0.05473, 0.44264, 0.03383, 0.41899, 0.01293, 0.39535],
|
|
4301
|
+
[0.01293, 0.39535, -0.01322, 0.36572, 228e-5, 0.32016, 0.04162, 0.31091],
|
|
4302
|
+
[0.04162, 0.31091, 0.07307, 0.30352, 0.10452, 0.29614, 0.13597, 0.28875],
|
|
4303
|
+
[0.13597, 0.28875, 0.16184, 0.28266, 0.17934, 0.25963, 0.17737, 0.23422],
|
|
4304
|
+
[0.17737, 0.23422, 0.17501, 0.20334, 0.17264, 0.17245, 0.17028, 0.14156],
|
|
4305
|
+
[0.17028, 0.14156, 0.16734, 0.10291, 0.20787, 0.07475, 0.2454, 0.08939],
|
|
4306
|
+
[0.2454, 0.08939, 0.27538, 0.10108, 0.30536, 0.11278, 0.33534, 0.12447],
|
|
4307
|
+
[0.33534, 0.12447, 0.36, 0.1341, 0.38834, 0.12529, 0.40237, 0.10364],
|
|
4308
|
+
[0.40237, 0.10364, 0.41945, 0.07733, 0.43652, 0.05101, 0.45359, 0.0247]
|
|
4309
|
+
]);
|
|
4310
|
+
var squareShape = createShape([
|
|
4311
|
+
[1, 0.5375, 1, 0.67725, 1, 0.74712, 0.97806, 0.80253],
|
|
4312
|
+
[0.97806, 0.80253, 0.94628, 0.88278, 0.88278, 0.94628, 0.80253, 0.97806],
|
|
4313
|
+
[0.80253, 0.97806, 0.74713, 1, 0.67725, 1, 0.5375, 1],
|
|
4314
|
+
[0.5375, 1, 0.5125, 1, 0.4875, 1, 0.4625, 1],
|
|
4315
|
+
[0.4625, 1, 0.32275, 1, 0.25288, 1, 0.19747, 0.97806],
|
|
4316
|
+
[0.19747, 0.97806, 0.11722, 0.94628, 0.05372, 0.88278, 0.02194, 0.80253],
|
|
4317
|
+
[0.02194, 0.80253, 0, 0.74713, 0, 0.67725, 0, 0.5375],
|
|
4318
|
+
[0, 0.5375, 0, 0.5125, 0, 0.4875, 0, 0.4625],
|
|
4319
|
+
[0, 0.4625, 0, 0.32275, 0, 0.25288, 0.02194, 0.19747],
|
|
4320
|
+
[0.02194, 0.19747, 0.0537, 0.11723, 0.11723, 0.05371, 0.19747, 0.02194],
|
|
4321
|
+
[0.19747, 0.02194, 0.25288, 0, 0.32275, 0, 0.4625, 0],
|
|
4322
|
+
[0.4625, 0, 0.4875, 0, 0.5125, 0, 0.5375, 0],
|
|
4323
|
+
[0.5375, 0, 0.67725, 0, 0.74712, 0, 0.80253, 0.02194],
|
|
4324
|
+
[0.80253, 0.02194, 0.88277, 0.05371, 0.9463, 0.11723, 0.97806, 0.19747],
|
|
4325
|
+
[0.97806, 0.19747, 1, 0.25288, 1, 0.32275, 1, 0.4625],
|
|
4326
|
+
[1, 0.4625, 1, 0.4875, 1, 0.5125, 1, 0.5375]
|
|
4327
|
+
]);
|
|
4328
|
+
var sunnyShape = createShape([
|
|
4329
|
+
[0.77016, 0.1213, 0.80126, 0.12342, 0.81681, 0.12448, 0.82938, 0.12995],
|
|
4330
|
+
[0.82938, 0.12995, 0.84756, 0.13791, 0.86208, 0.15244, 0.87004, 0.17062],
|
|
4331
|
+
[0.87004, 0.17062, 0.87554, 0.18318, 0.8766, 0.19874, 0.87871, 0.22983],
|
|
4332
|
+
[0.87871, 0.22983, 0.88031, 0.25348, 0.88192, 0.27714, 0.88353, 0.3008],
|
|
4333
|
+
[0.88353, 0.3008, 0.88439, 0.31338, 0.88481, 0.31968, 0.88618, 0.32568],
|
|
4334
|
+
[0.88618, 0.32568, 0.88816, 0.33436, 0.89159, 0.34264, 0.89633, 0.35018],
|
|
4335
|
+
[0.89633, 0.35018, 0.89961, 0.35541, 0.90376, 0.36015, 0.91204, 0.36965],
|
|
4336
|
+
[0.91204, 0.36965, 0.92764, 0.38751, 0.94323, 0.40537, 0.95882, 0.42324],
|
|
4337
|
+
[0.95882, 0.42324, 0.97932, 0.44674, 0.98957, 0.45847, 0.99457, 0.47124],
|
|
4338
|
+
[0.99457, 0.47124, 1.0018, 0.48973, 1.0018, 0.51027, 0.99457, 0.52876],
|
|
4339
|
+
[0.99457, 0.52876, 0.98957, 0.54153, 0.97932, 0.55326, 0.95882, 0.57676],
|
|
4340
|
+
[0.95882, 0.57676, 0.94323, 0.59463, 0.92764, 0.61249, 0.91204, 0.63035],
|
|
4341
|
+
[0.91204, 0.63035, 0.90376, 0.63985, 0.89961, 0.64459, 0.89633, 0.64982],
|
|
4342
|
+
[0.89633, 0.64982, 0.89159, 0.65736, 0.88816, 0.66564, 0.88618, 0.67432],
|
|
4343
|
+
[0.88618, 0.67432, 0.88481, 0.68032, 0.88439, 0.68662, 0.88353, 0.6992],
|
|
4344
|
+
[0.88353, 0.6992, 0.88192, 0.72286, 0.88031, 0.74652, 0.87871, 0.77017],
|
|
4345
|
+
[0.87871, 0.77017, 0.8766, 0.80126, 0.87554, 0.81682, 0.87004, 0.82938],
|
|
4346
|
+
[0.87004, 0.82938, 0.86208, 0.84756, 0.84756, 0.86209, 0.82938, 0.87005],
|
|
4347
|
+
[0.82938, 0.87005, 0.81681, 0.87552, 0.80126, 0.87658, 0.77016, 0.8787],
|
|
4348
|
+
[0.77016, 0.8787, 0.7465, 0.88031, 0.72285, 0.88192, 0.69919, 0.88352],
|
|
4349
|
+
[0.69919, 0.88352, 0.68661, 0.88438, 0.68032, 0.88482, 0.67431, 0.88617],
|
|
4350
|
+
[0.67431, 0.88617, 0.66563, 0.88815, 0.65735, 0.89158, 0.64981, 0.89632],
|
|
4351
|
+
[0.64981, 0.89632, 0.6446, 0.89961, 0.63985, 0.90376, 0.63035, 0.91205],
|
|
4352
|
+
[0.63035, 0.91205, 0.61248, 0.92764, 0.59462, 0.94323, 0.57675, 0.95882],
|
|
4353
|
+
[0.57675, 0.95882, 0.55327, 0.97932, 0.54153, 0.98955, 0.52875, 0.99455],
|
|
4354
|
+
[0.52875, 0.99455, 0.51027, 1.00182, 0.48973, 1.00182, 0.47125, 0.99455],
|
|
4355
|
+
[0.47125, 0.99455, 0.45847, 0.98955, 0.44673, 0.97932, 0.42325, 0.95882],
|
|
4356
|
+
[0.42325, 0.95882, 0.40538, 0.94323, 0.38752, 0.92764, 0.36965, 0.91205],
|
|
4357
|
+
[0.36965, 0.91205, 0.36015, 0.90376, 0.3554, 0.89961, 0.35019, 0.89632],
|
|
4358
|
+
[0.35019, 0.89632, 0.34265, 0.89158, 0.33437, 0.88815, 0.32569, 0.88617],
|
|
4359
|
+
[0.32569, 0.88617, 0.31968, 0.88482, 0.31339, 0.88438, 0.30081, 0.88352],
|
|
4360
|
+
[0.30081, 0.88352, 0.27715, 0.88192, 0.2535, 0.88031, 0.22984, 0.8787],
|
|
4361
|
+
[0.22984, 0.8787, 0.19874, 0.87658, 0.18319, 0.87552, 0.17062, 0.87005],
|
|
4362
|
+
[0.17062, 0.87005, 0.15244, 0.86209, 0.13792, 0.84756, 0.12996, 0.82938],
|
|
4363
|
+
[0.12996, 0.82938, 0.12446, 0.81682, 0.1234, 0.80126, 0.12129, 0.77017],
|
|
4364
|
+
[0.12129, 0.77017, 0.11968, 0.74652, 0.11807, 0.72286, 0.11647, 0.6992],
|
|
4365
|
+
[0.11647, 0.6992, 0.11561, 0.68662, 0.11519, 0.68032, 0.11382, 0.67432],
|
|
4366
|
+
[0.11382, 0.67432, 0.11185, 0.66564, 0.10841, 0.65736, 0.10367, 0.64982],
|
|
4367
|
+
[0.10367, 0.64982, 0.10039, 0.64459, 0.09624, 0.63985, 0.08796, 0.63035],
|
|
4368
|
+
[0.08796, 0.63035, 0.07236, 0.61249, 0.05677, 0.59463, 0.04118, 0.57676],
|
|
4369
|
+
[0.04118, 0.57676, 0.02068, 0.55326, 0.01043, 0.54153, 543e-5, 0.52876],
|
|
4370
|
+
[543e-5, 0.52876, -18e-4, 0.51027, -18e-4, 0.48973, 543e-5, 0.47124],
|
|
4371
|
+
[543e-5, 0.47124, 0.01043, 0.45847, 0.02068, 0.44674, 0.04118, 0.42324],
|
|
4372
|
+
[0.04118, 0.42324, 0.05677, 0.40537, 0.07236, 0.38751, 0.08796, 0.36965],
|
|
4373
|
+
[0.08796, 0.36965, 0.09624, 0.36015, 0.10039, 0.35541, 0.10367, 0.35018],
|
|
4374
|
+
[0.10367, 0.35018, 0.10841, 0.34264, 0.11184, 0.33436, 0.11382, 0.32568],
|
|
4375
|
+
[0.11382, 0.32568, 0.11519, 0.31968, 0.11561, 0.31338, 0.11647, 0.3008],
|
|
4376
|
+
[0.11647, 0.3008, 0.11808, 0.27714, 0.11969, 0.25348, 0.12129, 0.22983],
|
|
4377
|
+
[0.12129, 0.22983, 0.1234, 0.19874, 0.12446, 0.18318, 0.12996, 0.17062],
|
|
4378
|
+
[0.12996, 0.17062, 0.13792, 0.15244, 0.15244, 0.13791, 0.17062, 0.12995],
|
|
4379
|
+
[0.17062, 0.12995, 0.18319, 0.12448, 0.19874, 0.12342, 0.22984, 0.1213],
|
|
4380
|
+
[0.22984, 0.1213, 0.2535, 0.11969, 0.27716, 0.11808, 0.30081, 0.11648],
|
|
4381
|
+
[0.30081, 0.11648, 0.31339, 0.11562, 0.31968, 0.11518, 0.32569, 0.11383],
|
|
4382
|
+
[0.32569, 0.11383, 0.33437, 0.11185, 0.34266, 0.10842, 0.35019, 0.10368],
|
|
4383
|
+
[0.35019, 0.10368, 0.3554, 0.10039, 0.36015, 0.09624, 0.36965, 0.08795],
|
|
4384
|
+
[0.36965, 0.08795, 0.38752, 0.07236, 0.40538, 0.05677, 0.42325, 0.04118],
|
|
4385
|
+
[0.42325, 0.04118, 0.44673, 0.02068, 0.45847, 0.01045, 0.47125, 545e-5],
|
|
4386
|
+
[0.47125, 545e-5, 0.48973, -182e-5, 0.51027, -182e-5, 0.52875, 545e-5],
|
|
4387
|
+
[0.52875, 545e-5, 0.54153, 0.01045, 0.55327, 0.02068, 0.57675, 0.04118],
|
|
4388
|
+
[0.57675, 0.04118, 0.59462, 0.05677, 0.61248, 0.07236, 0.63035, 0.08795],
|
|
4389
|
+
[0.63035, 0.08795, 0.63985, 0.09624, 0.6446, 0.10039, 0.64981, 0.10368],
|
|
4390
|
+
[0.64981, 0.10368, 0.65735, 0.10842, 0.66563, 0.11185, 0.67431, 0.11383],
|
|
4391
|
+
[0.67431, 0.11383, 0.68032, 0.11518, 0.68661, 0.11562, 0.69919, 0.11648],
|
|
4392
|
+
[0.69919, 0.11648, 0.72285, 0.11808, 0.7465, 0.11969, 0.77016, 0.1213]
|
|
4393
|
+
]);
|
|
4394
|
+
var triangleShape = createShape([
|
|
4395
|
+
[0.33058, 0.2095, 0.37847, 0.12601, 0.40242, 0.08427, 0.43146, 0.06665],
|
|
4396
|
+
[0.43146, 0.06665, 0.47358, 0.04108, 0.52643, 0.04108, 0.56854, 0.06665],
|
|
4397
|
+
[0.56854, 0.06665, 0.59758, 0.08427, 0.62153, 0.12601, 0.66943, 0.2095],
|
|
4398
|
+
[0.66943, 0.2095, 0.75568, 0.35983, 0.84194, 0.51017, 0.92819, 0.66051],
|
|
4399
|
+
[0.92819, 0.66051, 0.97563, 0.7432, 0.99935, 0.78452, 0.99998, 0.81829],
|
|
4400
|
+
[0.99998, 0.81829, 1.00088, 0.86728, 0.97451, 0.91273, 0.93153, 0.93626],
|
|
4401
|
+
[0.93153, 0.93626, 0.90188, 0.95253, 0.85417, 0.95253, 0.75877, 0.95253],
|
|
4402
|
+
[0.75877, 0.95253, 0.58626, 0.95253, 0.41375, 0.95253, 0.24124, 0.95253],
|
|
4403
|
+
[0.24124, 0.95253, 0.14583, 0.95253, 0.09812, 0.95253, 0.06847, 0.93626],
|
|
4404
|
+
[0.06847, 0.93626, 0.02548, 0.91274, -89e-5, 0.86729, 2e-5, 0.81829],
|
|
4405
|
+
[2e-5, 0.81829, 65e-5, 0.78452, 0.02437, 0.7432, 0.07181, 0.66051],
|
|
4406
|
+
[0.07181, 0.66051, 0.15807, 0.51017, 0.24432, 0.35983, 0.33058, 0.2095]
|
|
4407
|
+
]);
|
|
4408
|
+
var verySunnyShape = createShape([
|
|
4409
|
+
[0.42725, 0.04123, 0.46018, -0.01374, 0.53981, -0.01374, 0.57275, 0.04123],
|
|
4410
|
+
[0.57275, 0.04123, 0.58508, 0.06182, 0.59741, 0.08241, 0.60974, 0.10301],
|
|
4411
|
+
[0.60974, 0.10301, 0.62896, 0.13504, 0.66687, 0.15076, 0.70309, 0.14166],
|
|
4412
|
+
[0.70309, 0.14166, 0.72638, 0.13583, 0.74967, 0.13, 0.77296, 0.12416],
|
|
4413
|
+
[0.77296, 0.12416, 0.83512, 0.1086, 0.8914, 0.16488, 0.87583, 0.22704],
|
|
4414
|
+
[0.87583, 0.22704, 0.87, 0.25033, 0.86417, 0.27362, 0.85833, 0.29691],
|
|
4415
|
+
[0.85833, 0.29691, 0.84924, 0.33313, 0.86496, 0.37103, 0.89699, 0.39025],
|
|
4416
|
+
[0.89699, 0.39025, 0.91758, 0.40258, 0.93818, 0.41492, 0.95877, 0.42725],
|
|
4417
|
+
[0.95877, 0.42725, 1.01374, 0.46019, 1.01374, 0.53981, 0.95877, 0.57275],
|
|
4418
|
+
[0.95877, 0.57275, 0.93818, 0.58508, 0.91758, 0.59742, 0.89699, 0.60975],
|
|
4419
|
+
[0.89699, 0.60975, 0.86496, 0.62897, 0.84924, 0.66687, 0.85833, 0.70309],
|
|
4420
|
+
[0.85833, 0.70309, 0.86417, 0.72638, 0.87, 0.74967, 0.87583, 0.77296],
|
|
4421
|
+
[0.87583, 0.77296, 0.8914, 0.83512, 0.83512, 0.8914, 0.77296, 0.87584],
|
|
4422
|
+
[0.77296, 0.87584, 0.74967, 0.87, 0.72638, 0.86417, 0.70309, 0.85834],
|
|
4423
|
+
[0.70309, 0.85834, 0.66687, 0.84924, 0.62896, 0.86496, 0.60974, 0.89699],
|
|
4424
|
+
[0.60974, 0.89699, 0.59741, 0.91759, 0.58508, 0.93818, 0.57275, 0.95877],
|
|
4425
|
+
[0.57275, 0.95877, 0.53981, 1.01374, 0.46018, 1.01374, 0.42725, 0.95877],
|
|
4426
|
+
[0.42725, 0.95877, 0.41491, 0.93818, 0.40258, 0.91759, 0.39025, 0.89699],
|
|
4427
|
+
[0.39025, 0.89699, 0.37103, 0.86496, 0.33312, 0.84924, 0.29691, 0.85834],
|
|
4428
|
+
[0.29691, 0.85834, 0.27361, 0.86417, 0.25031, 0.87, 0.22702, 0.87584],
|
|
4429
|
+
[0.22702, 0.87584, 0.16489, 0.8914, 0.10859, 0.83512, 0.12416, 0.77296],
|
|
4430
|
+
[0.12416, 0.77296, 0.12999, 0.74967, 0.13583, 0.72638, 0.14167, 0.70309],
|
|
4431
|
+
[0.14167, 0.70309, 0.15075, 0.66687, 0.13505, 0.62897, 0.103, 0.60975],
|
|
4432
|
+
[0.103, 0.60975, 0.08241, 0.59742, 0.06181, 0.58508, 0.04121, 0.57275],
|
|
4433
|
+
[0.04121, 0.57275, -0.01373, 0.53981, -0.01373, 0.46019, 0.04121, 0.42725],
|
|
4434
|
+
[0.04121, 0.42725, 0.06181, 0.41492, 0.08241, 0.40258, 0.103, 0.39025],
|
|
4435
|
+
[0.103, 0.39025, 0.13505, 0.37103, 0.15075, 0.33313, 0.14167, 0.29691],
|
|
4436
|
+
[0.14167, 0.29691, 0.13583, 0.27362, 0.12999, 0.25033, 0.12416, 0.22704],
|
|
4437
|
+
[0.12416, 0.22704, 0.10859, 0.16488, 0.16489, 0.1086, 0.22702, 0.12416],
|
|
4438
|
+
[0.22702, 0.12416, 0.25031, 0.13, 0.27361, 0.13583, 0.29691, 0.14166],
|
|
4439
|
+
[0.29691, 0.14166, 0.33312, 0.15076, 0.37103, 0.13504, 0.39025, 0.10301],
|
|
4440
|
+
[0.39025, 0.10301, 0.40258, 0.08241, 0.41491, 0.06182, 0.42725, 0.04123]
|
|
4441
|
+
]);
|
|
4442
|
+
function reversePolygon(polygon) {
|
|
4443
|
+
const reversedFeatures = polygon.features.map((f) => {
|
|
4444
|
+
const reversedCubics = f.cubics.map((c) => c.reverse()).reverse();
|
|
4445
|
+
if (f.type === "corner") {
|
|
4446
|
+
return cornerFeature(reversedCubics, f.convex);
|
|
4447
|
+
} else {
|
|
4448
|
+
return edgeFeature(reversedCubics);
|
|
4449
|
+
}
|
|
4450
|
+
}).reverse();
|
|
4451
|
+
return RoundedPolygon.fromFeatures(
|
|
4452
|
+
reversedFeatures,
|
|
4453
|
+
polygon.centerX,
|
|
4454
|
+
polygon.centerY
|
|
4455
|
+
);
|
|
4456
|
+
}
|
|
4457
|
+
function rotate180(polygon) {
|
|
4458
|
+
return polygon.transformed((x, y) => [1 - x, 1 - y]);
|
|
4459
|
+
}
|
|
4460
|
+
function flipV(polygon) {
|
|
4461
|
+
const flipped = polygon.transformed((x, y) => [x, 1 - y]);
|
|
4462
|
+
return reversePolygon(flipped);
|
|
4463
|
+
}
|
|
4464
|
+
var MD3Shapes = {
|
|
4465
|
+
arch: flipV(archShape),
|
|
4466
|
+
arrow: flipV(arrowShape),
|
|
4467
|
+
boom: boomShape,
|
|
4468
|
+
bun: bunShape,
|
|
4469
|
+
burst: burstShape,
|
|
4470
|
+
circle: circleShape,
|
|
4471
|
+
clamshell: clamshellShape,
|
|
4472
|
+
diamond: diamondShape,
|
|
4473
|
+
fan: rotate180(fanShape),
|
|
4474
|
+
flower: flowerShape,
|
|
4475
|
+
gem: flipV(gemShape),
|
|
4476
|
+
ghostish: flipV(ghostishShape),
|
|
4477
|
+
heart: flipV(heartShape),
|
|
4478
|
+
clover4Leaf: clover4LeafShape,
|
|
4479
|
+
clover8Leaf: clover8LeafShape,
|
|
4480
|
+
oval: flipV(ovalShape),
|
|
4481
|
+
pentagon: flipV(pentagonShape),
|
|
4482
|
+
pill: flipV(pillShape),
|
|
4483
|
+
pixelCircle: pixelCircleShape,
|
|
4484
|
+
pixelTriangle: pixelTriangleShape,
|
|
4485
|
+
puffyDiamond: puffyDiamondShape,
|
|
4486
|
+
puffy: puffyShape,
|
|
4487
|
+
semiCircle: flipV(semiCircleShape),
|
|
4488
|
+
cookie12Sided: cookie12SidedShape,
|
|
4489
|
+
cookie4Sided: cookie4SidedShape,
|
|
4490
|
+
cookie6Sided: cookie6SidedShape,
|
|
4491
|
+
cookie7Sided: cookie7SidedShape,
|
|
4492
|
+
cookie9Sided: cookie9SidedShape,
|
|
4493
|
+
slanted: flipV(slantedShape),
|
|
4494
|
+
softBoom: softBoomShape,
|
|
4495
|
+
softBurst: softBurstShape,
|
|
4496
|
+
square: squareShape,
|
|
4497
|
+
sunny: sunnyShape,
|
|
4498
|
+
triangle: flipV(triangleShape),
|
|
4499
|
+
verySunny: verySunnyShape
|
|
4500
|
+
};
|
|
4501
|
+
|
|
4502
|
+
// src/shapes/render/shape-rendering.ts
|
|
4503
|
+
function toSvgPath(cubics, width = 1, height = 1) {
|
|
4504
|
+
if (cubics.length === 0) return "";
|
|
4505
|
+
const paddingX = width * 0.015;
|
|
4506
|
+
const paddingY = height * 0.015;
|
|
4507
|
+
const sx = width - 2 * paddingX;
|
|
4508
|
+
const sy = height - 2 * paddingY;
|
|
4509
|
+
const flipY = (y) => paddingY + sy * (1 - y);
|
|
4510
|
+
const parts = [
|
|
4511
|
+
`M ${fmt(paddingX + cubics[0].anchor0X * sx)} ${fmt(flipY(cubics[0].anchor0Y))}`
|
|
4512
|
+
];
|
|
4513
|
+
for (const c of cubics) {
|
|
4514
|
+
parts.push(
|
|
4515
|
+
`C ${fmt(paddingX + c.control0X * sx)} ${fmt(flipY(c.control0Y))},${fmt(paddingX + c.control1X * sx)} ${fmt(flipY(c.control1Y))},${fmt(paddingX + c.anchor1X * sx)} ${fmt(flipY(c.anchor1Y))}`
|
|
4516
|
+
);
|
|
4517
|
+
}
|
|
4518
|
+
parts.push("Z");
|
|
4519
|
+
return parts.join(" ");
|
|
4520
|
+
}
|
|
4521
|
+
function toClipPath(polygon, width, height) {
|
|
4522
|
+
const pathData = toSvgPath(polygon.cubics, width, height);
|
|
4523
|
+
return `path('${pathData}')`;
|
|
4524
|
+
}
|
|
4525
|
+
function fmt(v) {
|
|
4526
|
+
return Number(v.toFixed(4)).toString();
|
|
4527
|
+
}
|
|
4528
|
+
|
|
4529
|
+
// src/ui/navigation/navigation-shape-utils.ts
|
|
4530
|
+
function getNavigationShapeStyle(shape, width = 56, height = 56) {
|
|
4531
|
+
if (!shape || shape === "pill" || shape === "circle") {
|
|
4532
|
+
return void 0;
|
|
4533
|
+
}
|
|
4534
|
+
const polygon = MD3Shapes[shape];
|
|
4535
|
+
if (!polygon) {
|
|
4536
|
+
return void 0;
|
|
4537
|
+
}
|
|
4538
|
+
return {
|
|
4539
|
+
clipPath: toClipPath(polygon, width, height)
|
|
4540
|
+
};
|
|
4541
|
+
}
|
|
4542
|
+
function isSquareShape(shape) {
|
|
4543
|
+
return Boolean(shape && shape !== "pill");
|
|
4544
|
+
}
|
|
2629
4545
|
var NavigationBarContext = React36__namespace.createContext({ variant: "flexible" });
|
|
2630
4546
|
function cloneIconWithFill(icon, selected) {
|
|
2631
4547
|
if (!React36__namespace.isValidElement(icon)) return icon;
|
|
@@ -2637,16 +4553,23 @@ function cloneIconWithFill(icon, selected) {
|
|
|
2637
4553
|
}
|
|
2638
4554
|
return icon;
|
|
2639
4555
|
}
|
|
2640
|
-
function ActivePill(
|
|
4556
|
+
function ActivePill({
|
|
4557
|
+
shape = "pill",
|
|
4558
|
+
width = 56,
|
|
4559
|
+
height = 32
|
|
4560
|
+
}) {
|
|
2641
4561
|
const { activeIndicatorTransition } = React36__namespace.useContext(NavigationBarContext);
|
|
4562
|
+
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
2642
4563
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2643
4564
|
react.m.div,
|
|
2644
4565
|
{
|
|
2645
|
-
className:
|
|
2646
|
-
|
|
2647
|
-
|
|
4566
|
+
className: cn(
|
|
4567
|
+
"bg-m3-secondary-container pointer-events-none",
|
|
4568
|
+
shapeStyle ? "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-none" : shape === "circle" ? "absolute inset-0 rounded-full" : "absolute inset-0 rounded-full"
|
|
4569
|
+
),
|
|
4570
|
+
style: __spreadValues(__spreadValues({
|
|
2648
4571
|
zIndex: 0
|
|
2649
|
-
},
|
|
4572
|
+
}, shapeStyle ? { width, height } : {}), shapeStyle),
|
|
2650
4573
|
initial: { opacity: 0, scale: 0.5 },
|
|
2651
4574
|
animate: { opacity: 1, scale: 1 },
|
|
2652
4575
|
exit: { opacity: 0, scale: 0.5 },
|
|
@@ -2654,11 +4577,42 @@ function ActivePill() {
|
|
|
2654
4577
|
}
|
|
2655
4578
|
);
|
|
2656
4579
|
}
|
|
2657
|
-
function HoverStateLayer(
|
|
2658
|
-
|
|
4580
|
+
function HoverStateLayer({
|
|
4581
|
+
shape = "pill",
|
|
4582
|
+
width = 56,
|
|
4583
|
+
height = 32
|
|
4584
|
+
}) {
|
|
4585
|
+
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
4586
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4587
|
+
"div",
|
|
4588
|
+
{
|
|
4589
|
+
className: cn(
|
|
4590
|
+
"bg-m3-on-surface opacity-0 group-hover:opacity-[0.08] group-focus-visible:opacity-[0.10] active:opacity-[0.10] transition-opacity duration-200 pointer-events-none z-0",
|
|
4591
|
+
shapeStyle ? "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-none" : shape === "circle" ? "absolute inset-0 rounded-full" : "absolute inset-0 rounded-[16px]"
|
|
4592
|
+
),
|
|
4593
|
+
style: __spreadValues(__spreadValues({}, shapeStyle ? { width, height } : {}), shapeStyle)
|
|
4594
|
+
}
|
|
4595
|
+
);
|
|
2659
4596
|
}
|
|
2660
|
-
function RippleLayer({
|
|
2661
|
-
|
|
4597
|
+
function RippleLayer({
|
|
4598
|
+
ripples,
|
|
4599
|
+
onRippleDone,
|
|
4600
|
+
shape = "pill",
|
|
4601
|
+
width = 56,
|
|
4602
|
+
height = 32
|
|
4603
|
+
}) {
|
|
4604
|
+
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
4605
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4606
|
+
"div",
|
|
4607
|
+
{
|
|
4608
|
+
className: cn(
|
|
4609
|
+
"overflow-hidden pointer-events-none z-0",
|
|
4610
|
+
shapeStyle ? "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-none" : shape === "circle" ? "absolute inset-0 rounded-full" : "absolute inset-0 rounded-[16px]"
|
|
4611
|
+
),
|
|
4612
|
+
style: __spreadValues(__spreadValues({}, shapeStyle ? { width, height } : {}), shapeStyle),
|
|
4613
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Ripple, { ripples, onRippleDone })
|
|
4614
|
+
}
|
|
4615
|
+
);
|
|
2662
4616
|
}
|
|
2663
4617
|
function IconContainer({ selected, badge, children }) {
|
|
2664
4618
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2684,19 +4638,33 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2684
4638
|
onClick,
|
|
2685
4639
|
disabled = false,
|
|
2686
4640
|
badge,
|
|
4641
|
+
shape: shapeProp,
|
|
4642
|
+
shapeSize: shapeSizeProp,
|
|
4643
|
+
hideLabel = false,
|
|
2687
4644
|
className,
|
|
2688
4645
|
"aria-label": ariaLabelProp,
|
|
2689
4646
|
asChild = false,
|
|
2690
4647
|
children
|
|
2691
4648
|
}, ref) => {
|
|
2692
|
-
var _a;
|
|
4649
|
+
var _a, _b, _c;
|
|
2693
4650
|
const {
|
|
2694
4651
|
variant,
|
|
2695
4652
|
itemLayout,
|
|
4653
|
+
shape: contextShape,
|
|
4654
|
+
labelVisibility: contextLabelVisibility,
|
|
4655
|
+
shapeSize: contextShapeSize,
|
|
2696
4656
|
itemClassName: contextItemClassName
|
|
2697
4657
|
} = React36__namespace.useContext(NavigationBarContext);
|
|
4658
|
+
const activeShape = (_a = shapeProp != null ? shapeProp : contextShape) != null ? _a : "pill";
|
|
4659
|
+
const isSquare = isSquareShape(activeShape);
|
|
4660
|
+
const resolvedShapeSize = (_b = shapeSizeProp != null ? shapeSizeProp : contextShapeSize) != null ? _b : 56;
|
|
2698
4661
|
const isForcedHorizontal = itemLayout === "horizontal";
|
|
2699
4662
|
const isResponsiveHorizontal = (variant === "flexible" || variant === "xr") && itemLayout === void 0;
|
|
4663
|
+
const shouldShowLabel = !hideLabel && (() => {
|
|
4664
|
+
if (contextLabelVisibility === "unlabeled") return false;
|
|
4665
|
+
if (contextLabelVisibility === "auto") return selected;
|
|
4666
|
+
return true;
|
|
4667
|
+
})();
|
|
2700
4668
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
2701
4669
|
disabled
|
|
2702
4670
|
});
|
|
@@ -2724,6 +4692,8 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2724
4692
|
contextItemClassName,
|
|
2725
4693
|
className
|
|
2726
4694
|
);
|
|
4695
|
+
const iconPillWidth = isSquare ? resolvedShapeSize : 56;
|
|
4696
|
+
const iconPillHeight = isSquare ? resolvedShapeSize : 32;
|
|
2727
4697
|
if (asChild && children) {
|
|
2728
4698
|
const child = React36__namespace.Children.only(children);
|
|
2729
4699
|
const innerContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -2733,10 +4703,12 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2733
4703
|
className: cn(
|
|
2734
4704
|
"relative flex items-center justify-center flex-col gap-y-1 w-full px-1 py-1.5",
|
|
2735
4705
|
isResponsiveHorizontal && "min-[600px]:flex-row min-[600px]:gap-y-0 min-[600px]:gap-x-1.5 min-[600px]:h-10 min-[600px]:px-4 min-[600px]:py-0 min-[600px]:rounded-full min-[600px]:w-auto",
|
|
2736
|
-
isForcedHorizontal && "flex-row gap-y-0 gap-x-1.5 h-10 px-4 py-0 rounded-full w-auto"
|
|
4706
|
+
isForcedHorizontal && "flex-row gap-y-0 gap-x-1.5 h-10 px-4 py-0 rounded-full w-auto",
|
|
4707
|
+
// When label is hidden and not horizontal, remove bottom gap
|
|
4708
|
+
!shouldShowLabel && !isForcedHorizontal && "gap-y-0"
|
|
2737
4709
|
),
|
|
2738
4710
|
children: [
|
|
2739
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4711
|
+
!isSquare && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2740
4712
|
"div",
|
|
2741
4713
|
{
|
|
2742
4714
|
className: cn(
|
|
@@ -2745,9 +4717,18 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2745
4717
|
isForcedHorizontal && "block!"
|
|
2746
4718
|
),
|
|
2747
4719
|
children: [
|
|
2748
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill, {}) }),
|
|
2749
|
-
/* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, {}),
|
|
2750
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4720
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill, { shape: activeShape, width: 56, height: 40 }) }),
|
|
4721
|
+
/* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, { shape: activeShape, width: 56, height: 40 }),
|
|
4722
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4723
|
+
RippleLayer,
|
|
4724
|
+
{
|
|
4725
|
+
ripples,
|
|
4726
|
+
onRippleDone: removeRipple,
|
|
4727
|
+
shape: activeShape,
|
|
4728
|
+
width: 56,
|
|
4729
|
+
height: 40
|
|
4730
|
+
}
|
|
4731
|
+
)
|
|
2751
4732
|
]
|
|
2752
4733
|
}
|
|
2753
4734
|
),
|
|
@@ -2756,23 +4737,47 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2756
4737
|
{
|
|
2757
4738
|
className: cn(
|
|
2758
4739
|
"relative flex items-center justify-center shrink-0 z-10",
|
|
2759
|
-
"h-8 w-
|
|
2760
|
-
isResponsiveHorizontal && "min-[600px]:size-6 min-[600px]:w-auto min-[600px]:h-auto",
|
|
2761
|
-
isForcedHorizontal && "size-6 w-auto h-auto"
|
|
4740
|
+
isSquare ? "mx-auto" : "h-8 w-14 mx-auto rounded-[16px]",
|
|
4741
|
+
!isSquare && isResponsiveHorizontal && "min-[600px]:size-6 min-[600px]:w-auto min-[600px]:h-auto",
|
|
4742
|
+
!isSquare && isForcedHorizontal && "size-6 w-auto h-auto"
|
|
2762
4743
|
),
|
|
4744
|
+
style: isSquare ? { width: resolvedShapeSize, height: resolvedShapeSize } : void 0,
|
|
2763
4745
|
children: [
|
|
2764
4746
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2765
4747
|
"div",
|
|
2766
4748
|
{
|
|
2767
4749
|
className: cn(
|
|
2768
4750
|
"absolute inset-0 z-0",
|
|
2769
|
-
isResponsiveHorizontal && "min-[600px]:hidden",
|
|
2770
|
-
isForcedHorizontal && "hidden"
|
|
4751
|
+
!isSquare && isResponsiveHorizontal && "min-[600px]:hidden",
|
|
4752
|
+
!isSquare && isForcedHorizontal && "hidden"
|
|
2771
4753
|
),
|
|
2772
4754
|
children: [
|
|
2773
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2774
|
-
|
|
2775
|
-
|
|
4755
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4756
|
+
ActivePill,
|
|
4757
|
+
{
|
|
4758
|
+
shape: activeShape,
|
|
4759
|
+
width: iconPillWidth,
|
|
4760
|
+
height: iconPillHeight
|
|
4761
|
+
}
|
|
4762
|
+
) }),
|
|
4763
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4764
|
+
HoverStateLayer,
|
|
4765
|
+
{
|
|
4766
|
+
shape: activeShape,
|
|
4767
|
+
width: iconPillWidth,
|
|
4768
|
+
height: iconPillHeight
|
|
4769
|
+
}
|
|
4770
|
+
),
|
|
4771
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4772
|
+
RippleLayer,
|
|
4773
|
+
{
|
|
4774
|
+
ripples,
|
|
4775
|
+
onRippleDone: removeRipple,
|
|
4776
|
+
shape: activeShape,
|
|
4777
|
+
width: iconPillWidth,
|
|
4778
|
+
height: iconPillHeight
|
|
4779
|
+
}
|
|
4780
|
+
)
|
|
2776
4781
|
]
|
|
2777
4782
|
}
|
|
2778
4783
|
),
|
|
@@ -2780,15 +4785,19 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2780
4785
|
]
|
|
2781
4786
|
}
|
|
2782
4787
|
),
|
|
2783
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2784
|
-
|
|
4788
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "popLayout", initial: false, children: shouldShowLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4789
|
+
react.m.span,
|
|
2785
4790
|
{
|
|
4791
|
+
initial: { opacity: 0, height: 0, scale: 0.85, y: -2 },
|
|
4792
|
+
animate: { opacity: 1, height: "auto", scale: 1, y: 0 },
|
|
4793
|
+
exit: { opacity: 0, height: 0, scale: 0.85, y: -2 },
|
|
4794
|
+
transition: SPRING_TRANSITION_EXPRESSIVE,
|
|
2786
4795
|
className: cn(
|
|
2787
|
-
"z-10 transition-
|
|
2788
|
-
selected ? "text-m3-on-surface" : "text-m3-on-surface-variant",
|
|
2789
|
-
"
|
|
4796
|
+
"z-10 transition-colors duration-200 truncate px-1 inline-block overflow-hidden",
|
|
4797
|
+
selected ? "text-m3-on-surface font-medium" : "text-m3-on-surface-variant font-medium",
|
|
4798
|
+
"text-[12px] leading-4 tracking-[0.5px]"
|
|
2790
4799
|
),
|
|
2791
|
-
children: (
|
|
4800
|
+
children: (_c = child.props.children) != null ? _c : label
|
|
2792
4801
|
},
|
|
2793
4802
|
"nav-label"
|
|
2794
4803
|
) })
|
|
@@ -2804,7 +4813,10 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2804
4813
|
role: "menuitem",
|
|
2805
4814
|
"aria-current": selected ? "page" : void 0,
|
|
2806
4815
|
"aria-disabled": disabled ? true : void 0,
|
|
2807
|
-
"aria-label":
|
|
4816
|
+
"aria-label": (
|
|
4817
|
+
// Always provide aria-label even when label is visually hidden
|
|
4818
|
+
ariaLabelProp || (typeof label === "string" ? label : void 0)
|
|
4819
|
+
),
|
|
2808
4820
|
onClick: handleClick,
|
|
2809
4821
|
onPointerDown,
|
|
2810
4822
|
className: itemClassName,
|
|
@@ -2820,7 +4832,10 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2820
4832
|
role: "menuitem",
|
|
2821
4833
|
"aria-current": selected ? "page" : void 0,
|
|
2822
4834
|
"aria-disabled": disabled ? true : void 0,
|
|
2823
|
-
"aria-label":
|
|
4835
|
+
"aria-label": (
|
|
4836
|
+
// Always provide aria-label even when label is visually hidden
|
|
4837
|
+
ariaLabelProp || (typeof label === "string" ? label : void 0)
|
|
4838
|
+
),
|
|
2824
4839
|
onClick: handleClick,
|
|
2825
4840
|
onPointerDown,
|
|
2826
4841
|
className: itemClassName,
|
|
@@ -2831,10 +4846,12 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2831
4846
|
className: cn(
|
|
2832
4847
|
"relative flex items-center justify-center flex-col gap-y-1 w-full px-1 py-1.5",
|
|
2833
4848
|
isResponsiveHorizontal && "min-[600px]:flex-row min-[600px]:gap-y-0 min-[600px]:gap-x-1.5 min-[600px]:h-10 min-[600px]:px-4 min-[600px]:py-0 min-[600px]:rounded-full min-[600px]:w-auto",
|
|
2834
|
-
isForcedHorizontal && "flex-row gap-y-0 gap-x-1.5 h-10 px-4 py-0 rounded-full w-auto"
|
|
4849
|
+
isForcedHorizontal && "flex-row gap-y-0 gap-x-1.5 h-10 px-4 py-0 rounded-full w-auto",
|
|
4850
|
+
// When label is hidden and not horizontal, remove bottom gap
|
|
4851
|
+
!shouldShowLabel && !isForcedHorizontal && "gap-y-0"
|
|
2835
4852
|
),
|
|
2836
4853
|
children: [
|
|
2837
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4854
|
+
!isSquare && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2838
4855
|
"div",
|
|
2839
4856
|
{
|
|
2840
4857
|
className: cn(
|
|
@@ -2843,9 +4860,18 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2843
4860
|
isForcedHorizontal && "block!"
|
|
2844
4861
|
),
|
|
2845
4862
|
children: [
|
|
2846
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill, {}) }),
|
|
2847
|
-
/* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, {}),
|
|
2848
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4863
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill, { shape: activeShape, width: 56, height: 40 }) }),
|
|
4864
|
+
/* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, { shape: activeShape, width: 56, height: 40 }),
|
|
4865
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4866
|
+
RippleLayer,
|
|
4867
|
+
{
|
|
4868
|
+
ripples,
|
|
4869
|
+
onRippleDone: removeRipple,
|
|
4870
|
+
shape: activeShape,
|
|
4871
|
+
width: 56,
|
|
4872
|
+
height: 40
|
|
4873
|
+
}
|
|
4874
|
+
)
|
|
2849
4875
|
]
|
|
2850
4876
|
}
|
|
2851
4877
|
),
|
|
@@ -2854,23 +4880,47 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2854
4880
|
{
|
|
2855
4881
|
className: cn(
|
|
2856
4882
|
"relative flex items-center justify-center shrink-0 z-10",
|
|
2857
|
-
"h-8 w-
|
|
2858
|
-
isResponsiveHorizontal && "min-[600px]:size-6 min-[600px]:w-auto min-[600px]:h-auto",
|
|
2859
|
-
isForcedHorizontal && "size-6 w-auto h-auto"
|
|
4883
|
+
isSquare ? "mx-auto" : "h-8 w-14 mx-auto rounded-[16px]",
|
|
4884
|
+
!isSquare && isResponsiveHorizontal && "min-[600px]:size-6 min-[600px]:w-auto min-[600px]:h-auto",
|
|
4885
|
+
!isSquare && isForcedHorizontal && "size-6 w-auto h-auto"
|
|
2860
4886
|
),
|
|
4887
|
+
style: isSquare ? { width: resolvedShapeSize, height: resolvedShapeSize } : void 0,
|
|
2861
4888
|
children: [
|
|
2862
4889
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2863
4890
|
"div",
|
|
2864
4891
|
{
|
|
2865
4892
|
className: cn(
|
|
2866
4893
|
"absolute inset-0 z-0",
|
|
2867
|
-
isResponsiveHorizontal && "min-[600px]:hidden",
|
|
2868
|
-
isForcedHorizontal && "hidden"
|
|
4894
|
+
!isSquare && isResponsiveHorizontal && "min-[600px]:hidden",
|
|
4895
|
+
!isSquare && isForcedHorizontal && "hidden"
|
|
2869
4896
|
),
|
|
2870
4897
|
children: [
|
|
2871
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2872
|
-
|
|
2873
|
-
|
|
4898
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4899
|
+
ActivePill,
|
|
4900
|
+
{
|
|
4901
|
+
shape: activeShape,
|
|
4902
|
+
width: iconPillWidth,
|
|
4903
|
+
height: iconPillHeight
|
|
4904
|
+
}
|
|
4905
|
+
) }),
|
|
4906
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4907
|
+
HoverStateLayer,
|
|
4908
|
+
{
|
|
4909
|
+
shape: activeShape,
|
|
4910
|
+
width: iconPillWidth,
|
|
4911
|
+
height: iconPillHeight
|
|
4912
|
+
}
|
|
4913
|
+
),
|
|
4914
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4915
|
+
RippleLayer,
|
|
4916
|
+
{
|
|
4917
|
+
ripples,
|
|
4918
|
+
onRippleDone: removeRipple,
|
|
4919
|
+
shape: activeShape,
|
|
4920
|
+
width: iconPillWidth,
|
|
4921
|
+
height: iconPillHeight
|
|
4922
|
+
}
|
|
4923
|
+
)
|
|
2874
4924
|
]
|
|
2875
4925
|
}
|
|
2876
4926
|
),
|
|
@@ -2878,13 +4928,17 @@ var NavigationBarItemComponent = React36__namespace.forwardRef(
|
|
|
2878
4928
|
]
|
|
2879
4929
|
}
|
|
2880
4930
|
),
|
|
2881
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2882
|
-
|
|
4931
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "popLayout", initial: false, children: shouldShowLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4932
|
+
react.m.span,
|
|
2883
4933
|
{
|
|
4934
|
+
initial: { opacity: 0, height: 0, scale: 0.85, y: -2 },
|
|
4935
|
+
animate: { opacity: 1, height: "auto", scale: 1, y: 0 },
|
|
4936
|
+
exit: { opacity: 0, height: 0, scale: 0.85, y: -2 },
|
|
4937
|
+
transition: SPRING_TRANSITION_EXPRESSIVE,
|
|
2884
4938
|
className: cn(
|
|
2885
|
-
"z-10 transition-
|
|
2886
|
-
selected ? "text-m3-on-surface" : "text-m3-on-surface-variant",
|
|
2887
|
-
"
|
|
4939
|
+
"z-10 transition-colors duration-200 truncate px-1 inline-block overflow-hidden",
|
|
4940
|
+
selected ? "text-m3-on-surface font-medium" : "text-m3-on-surface-variant font-medium",
|
|
4941
|
+
"text-[12px] leading-4 tracking-[0.5px]"
|
|
2888
4942
|
),
|
|
2889
4943
|
children: label
|
|
2890
4944
|
},
|
|
@@ -2906,9 +4960,9 @@ var navContainerVariants = classVarianceAuthority.cva(
|
|
|
2906
4960
|
{
|
|
2907
4961
|
variants: {
|
|
2908
4962
|
variant: {
|
|
2909
|
-
flexible: "bottom-0 left-0 right-0 w-full h-16 pb-safe",
|
|
2910
|
-
baseline: "bottom-0 left-0 right-0 w-full h-20 pb-safe",
|
|
2911
|
-
xr: "bottom-6 left-1/2 -translate-x-1/2 w-auto max-w-[calc(100%-2rem)] min-[600px]:max-w-fit h-20 min-[600px]:h-16 rounded-[48px] px-2"
|
|
4963
|
+
flexible: "bottom-0 left-0 right-0 w-full min-h-16 py-1 pb-safe",
|
|
4964
|
+
baseline: "bottom-0 left-0 right-0 w-full min-h-20 py-1 pb-safe",
|
|
4965
|
+
xr: "bottom-6 left-1/2 -translate-x-1/2 w-auto max-w-[calc(100%-2rem)] min-[600px]:max-w-fit min-h-20 min-[600px]:min-h-16 rounded-[48px] px-2 py-1"
|
|
2912
4966
|
},
|
|
2913
4967
|
position: {
|
|
2914
4968
|
fixed: "fixed",
|
|
@@ -2930,6 +4984,9 @@ var NavigationBarComponent = React36__namespace.forwardRef(
|
|
|
2930
4984
|
({
|
|
2931
4985
|
variant = "flexible",
|
|
2932
4986
|
itemLayout,
|
|
4987
|
+
shape,
|
|
4988
|
+
labelVisibility,
|
|
4989
|
+
shapeSize,
|
|
2933
4990
|
hideOnScroll = false,
|
|
2934
4991
|
elevated = false,
|
|
2935
4992
|
fixed = true,
|
|
@@ -2944,6 +5001,13 @@ var NavigationBarComponent = React36__namespace.forwardRef(
|
|
|
2944
5001
|
const lastScrollY = React36__namespace.useRef(
|
|
2945
5002
|
typeof window !== "undefined" ? window.scrollY : 0
|
|
2946
5003
|
);
|
|
5004
|
+
const isSquare = isSquareShape(shape);
|
|
5005
|
+
const effectiveShapeSize = shapeSize != null ? shapeSize : isSquare ? 56 : 32;
|
|
5006
|
+
const computedMinHeight = React36__namespace.useMemo(() => {
|
|
5007
|
+
const baseHeight = variant === "baseline" ? 80 : 64;
|
|
5008
|
+
const requiredHeight = itemLayout === "horizontal" || labelVisibility === "unlabeled" ? effectiveShapeSize + 16 : effectiveShapeSize + 32;
|
|
5009
|
+
return Math.max(baseHeight, requiredHeight);
|
|
5010
|
+
}, [variant, itemLayout, labelVisibility, effectiveShapeSize]);
|
|
2947
5011
|
React36__namespace.useEffect(() => {
|
|
2948
5012
|
if (typeof window === "undefined" || !hideOnScroll) {
|
|
2949
5013
|
setIsVisible(true);
|
|
@@ -2990,6 +5054,9 @@ var NavigationBarComponent = React36__namespace.forwardRef(
|
|
|
2990
5054
|
value: {
|
|
2991
5055
|
variant,
|
|
2992
5056
|
itemLayout,
|
|
5057
|
+
shape,
|
|
5058
|
+
labelVisibility,
|
|
5059
|
+
shapeSize,
|
|
2993
5060
|
activeIndicatorTransition,
|
|
2994
5061
|
itemClassName
|
|
2995
5062
|
},
|
|
@@ -3000,7 +5067,7 @@ var NavigationBarComponent = React36__namespace.forwardRef(
|
|
|
3000
5067
|
role: "navigation",
|
|
3001
5068
|
"aria-label": "Main navigation",
|
|
3002
5069
|
className: navBaseClasses,
|
|
3003
|
-
style,
|
|
5070
|
+
style: __spreadValues({ minHeight: computedMinHeight }, style),
|
|
3004
5071
|
initial: false,
|
|
3005
5072
|
animate: {
|
|
3006
5073
|
y: isVisible ? "0%" : variant === "xr" ? "calc(100% + 40px)" : "100%"
|
|
@@ -3012,8 +5079,8 @@ var NavigationBarComponent = React36__namespace.forwardRef(
|
|
|
3012
5079
|
role: "menubar",
|
|
3013
5080
|
"aria-orientation": "horizontal",
|
|
3014
5081
|
className: cn(
|
|
3015
|
-
"flex w-full h-full mx-auto",
|
|
3016
|
-
variant === "xr" ? "gap-0 min-[600px]:gap-1.5
|
|
5082
|
+
"flex w-full h-full mx-auto items-center justify-center",
|
|
5083
|
+
variant === "xr" ? "gap-0 min-[600px]:gap-1.5 px-1" : "max-w-7xl gap-1.5"
|
|
3017
5084
|
),
|
|
3018
5085
|
children
|
|
3019
5086
|
}
|
|
@@ -3026,7 +5093,11 @@ var NavigationBarComponent = React36__namespace.forwardRef(
|
|
|
3026
5093
|
);
|
|
3027
5094
|
NavigationBarComponent.displayName = "NavigationBar";
|
|
3028
5095
|
var NavigationBar = React36__namespace.memo(NavigationBarComponent);
|
|
3029
|
-
var NavigationRailContext = React36__namespace.createContext({
|
|
5096
|
+
var NavigationRailContext = React36__namespace.createContext({
|
|
5097
|
+
variant: "collapsed",
|
|
5098
|
+
labelVisibility: "labeled",
|
|
5099
|
+
activeIndicatorWidth: "hug"
|
|
5100
|
+
});
|
|
3030
5101
|
var MD3_MODAL_TRANSITION = {
|
|
3031
5102
|
type: "tween",
|
|
3032
5103
|
ease: [0.05, 0.7, 0.1, 1],
|
|
@@ -3037,9 +5108,9 @@ var railContainerVariants = classVarianceAuthority.cva(
|
|
|
3037
5108
|
{
|
|
3038
5109
|
variants: {
|
|
3039
5110
|
variant: {
|
|
3040
|
-
collapsed: "items-center h-full pt-11 pb-
|
|
3041
|
-
expanded: "items-start h-full pt-11 pb-
|
|
3042
|
-
modal: "bg-m3-surface shadow-lg rounded-r-[var(--m3-shape-corner-large)] h-full pt-11 pb-
|
|
5111
|
+
collapsed: "items-center h-full pt-11 pb-14 shadow-none bg-m3-surface rounded-none",
|
|
5112
|
+
expanded: "items-start h-full pt-11 pb-14 shadow-none bg-m3-surface rounded-none",
|
|
5113
|
+
modal: "bg-m3-surface shadow-lg rounded-r-[var(--m3-shape-corner-large)] h-full pt-11 pb-14",
|
|
3043
5114
|
xr: "h-fit py-5 rounded-[48px] shadow-xl bg-m3-surface border border-white/5"
|
|
3044
5115
|
},
|
|
3045
5116
|
narrow: {
|
|
@@ -3082,14 +5153,28 @@ function setFocusedItem(items, index) {
|
|
|
3082
5153
|
target.focus();
|
|
3083
5154
|
}
|
|
3084
5155
|
}
|
|
3085
|
-
function ActivePill2({
|
|
5156
|
+
function ActivePill2({
|
|
5157
|
+
layoutId,
|
|
5158
|
+
disableInitial = false,
|
|
5159
|
+
shape = "pill",
|
|
5160
|
+
width = 56,
|
|
5161
|
+
height = 32
|
|
5162
|
+
}) {
|
|
3086
5163
|
const { activeIndicatorTransition } = React36__namespace.useContext(NavigationRailContext);
|
|
5164
|
+
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
3087
5165
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3088
5166
|
react.m.div,
|
|
3089
5167
|
{
|
|
3090
5168
|
layoutId,
|
|
3091
|
-
className:
|
|
3092
|
-
|
|
5169
|
+
className: cn(
|
|
5170
|
+
"bg-m3-secondary-container pointer-events-none",
|
|
5171
|
+
shapeStyle ? "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-none" : "absolute inset-0 rounded-full"
|
|
5172
|
+
),
|
|
5173
|
+
style: __spreadValues(__spreadValues({
|
|
5174
|
+
zIndex: 0,
|
|
5175
|
+
originX: 0.5,
|
|
5176
|
+
originY: 0.5
|
|
5177
|
+
}, shapeStyle ? { width, height } : {}), shapeStyle),
|
|
3093
5178
|
initial: disableInitial ? false : { opacity: 0, scale: 0.5 },
|
|
3094
5179
|
animate: { opacity: 1, scale: 1 },
|
|
3095
5180
|
exit: { opacity: 0, scale: 0.5, transition: { duration: 0.15 } },
|
|
@@ -3097,11 +5182,42 @@ function ActivePill2({ layoutId, disableInitial = false }) {
|
|
|
3097
5182
|
}
|
|
3098
5183
|
);
|
|
3099
5184
|
}
|
|
3100
|
-
function HoverStateLayer2(
|
|
3101
|
-
|
|
5185
|
+
function HoverStateLayer2({
|
|
5186
|
+
shape = "pill",
|
|
5187
|
+
width = 56,
|
|
5188
|
+
height = 32
|
|
5189
|
+
}) {
|
|
5190
|
+
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
5191
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5192
|
+
"div",
|
|
5193
|
+
{
|
|
5194
|
+
className: cn(
|
|
5195
|
+
"bg-m3-on-surface opacity-0 group-hover:opacity-[0.08] transition-opacity duration-200 pointer-events-none z-0",
|
|
5196
|
+
shapeStyle ? "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-none" : "absolute inset-0 rounded-full"
|
|
5197
|
+
),
|
|
5198
|
+
style: __spreadValues(__spreadValues({}, shapeStyle ? { width, height } : {}), shapeStyle)
|
|
5199
|
+
}
|
|
5200
|
+
);
|
|
3102
5201
|
}
|
|
3103
|
-
function RippleLayer2({
|
|
3104
|
-
|
|
5202
|
+
function RippleLayer2({
|
|
5203
|
+
ripples,
|
|
5204
|
+
onRippleDone,
|
|
5205
|
+
shape = "pill",
|
|
5206
|
+
width = 56,
|
|
5207
|
+
height = 32
|
|
5208
|
+
}) {
|
|
5209
|
+
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
5210
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5211
|
+
"div",
|
|
5212
|
+
{
|
|
5213
|
+
className: cn(
|
|
5214
|
+
"overflow-hidden pointer-events-none z-0",
|
|
5215
|
+
shapeStyle ? "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-none" : "absolute inset-0 rounded-full"
|
|
5216
|
+
),
|
|
5217
|
+
style: __spreadValues(__spreadValues({}, shapeStyle ? { width, height } : {}), shapeStyle),
|
|
5218
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Ripple, { ripples, onRippleDone })
|
|
5219
|
+
}
|
|
5220
|
+
);
|
|
3105
5221
|
}
|
|
3106
5222
|
function IconContainer2({ selected, badge, children }) {
|
|
3107
5223
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3127,18 +5243,31 @@ var NavigationRailItemComponent = React36__namespace.forwardRef(
|
|
|
3127
5243
|
onClick,
|
|
3128
5244
|
disabled = false,
|
|
3129
5245
|
badge,
|
|
5246
|
+
shape: shapeProp,
|
|
5247
|
+
shapeSize: shapeSizeProp,
|
|
5248
|
+
activeIndicatorWidth: activeIndicatorWidthProp,
|
|
3130
5249
|
className,
|
|
3131
5250
|
"aria-label": ariaLabelProp,
|
|
3132
5251
|
asChild = false,
|
|
3133
5252
|
children
|
|
3134
5253
|
}, ref) => {
|
|
3135
|
-
var _a;
|
|
3136
|
-
const {
|
|
3137
|
-
|
|
3138
|
-
|
|
5254
|
+
var _a, _b, _c, _d;
|
|
5255
|
+
const {
|
|
5256
|
+
variant,
|
|
5257
|
+
labelVisibility,
|
|
5258
|
+
shape: contextShape,
|
|
5259
|
+
shapeSize: contextShapeSize,
|
|
5260
|
+
activeIndicatorWidth: contextActiveIndicatorWidth
|
|
5261
|
+
} = React36__namespace.useContext(NavigationRailContext);
|
|
5262
|
+
const activeShape = (_a = shapeProp != null ? shapeProp : contextShape) != null ? _a : "pill";
|
|
5263
|
+
const isSquare = isSquareShape(activeShape);
|
|
5264
|
+
const resolvedShapeSize = (_b = shapeSizeProp != null ? shapeSizeProp : contextShapeSize) != null ? _b : 56;
|
|
5265
|
+
const activeIndicatorWidth = (_c = activeIndicatorWidthProp != null ? activeIndicatorWidthProp : contextActiveIndicatorWidth) != null ? _c : "hug";
|
|
3139
5266
|
const isExpanded = variant === "expanded" || variant === "modal";
|
|
3140
5267
|
const isModal = variant === "modal";
|
|
3141
5268
|
const enableLayout = !isModal;
|
|
5269
|
+
const isExpandedPill = isExpanded && !isSquare;
|
|
5270
|
+
const expandedPillWidthClass = activeIndicatorWidth === "fill" ? "w-full" : "w-fit";
|
|
3142
5271
|
const activePillId = `rail-pill-${React36__namespace.useId()}`;
|
|
3143
5272
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
3144
5273
|
disabled
|
|
@@ -3163,6 +5292,8 @@ var NavigationRailItemComponent = React36__namespace.forwardRef(
|
|
|
3163
5292
|
isExpanded ? "w-full flex-row items-center px-3 h-14" : "w-full flex-col justify-center h-14",
|
|
3164
5293
|
className
|
|
3165
5294
|
);
|
|
5295
|
+
const iconPillWidth = isSquare ? resolvedShapeSize : 56;
|
|
5296
|
+
const iconPillHeight = isSquare ? resolvedShapeSize : 32;
|
|
3166
5297
|
if (asChild && children) {
|
|
3167
5298
|
const child = React36__namespace.Children.only(children);
|
|
3168
5299
|
const innerContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -3172,31 +5303,71 @@ var NavigationRailItemComponent = React36__namespace.forwardRef(
|
|
|
3172
5303
|
layout: enableLayout,
|
|
3173
5304
|
className: cn(
|
|
3174
5305
|
"relative flex z-10",
|
|
3175
|
-
isExpanded ?
|
|
5306
|
+
isExpanded ? cn(
|
|
5307
|
+
"flex-row items-center h-14 px-4 gap-x-3 rounded-full",
|
|
5308
|
+
expandedPillWidthClass
|
|
5309
|
+
) : "flex-col items-center justify-center w-full gap-y-1 rounded-full"
|
|
3176
5310
|
),
|
|
3177
5311
|
children: [
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
5312
|
+
isExpandedPill && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5313
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5314
|
+
ActivePill2,
|
|
5315
|
+
{
|
|
5316
|
+
layoutId: activePillId,
|
|
5317
|
+
disableInitial: isModal,
|
|
5318
|
+
shape: activeShape
|
|
5319
|
+
}
|
|
5320
|
+
) }),
|
|
5321
|
+
/* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer2, { shape: activeShape }),
|
|
5322
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5323
|
+
RippleLayer2,
|
|
5324
|
+
{
|
|
5325
|
+
ripples,
|
|
5326
|
+
onRippleDone: removeRipple,
|
|
5327
|
+
shape: activeShape
|
|
5328
|
+
}
|
|
5329
|
+
)
|
|
5330
|
+
] }),
|
|
3187
5331
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3188
5332
|
react.m.div,
|
|
3189
5333
|
{
|
|
3190
5334
|
layout: enableLayout,
|
|
3191
5335
|
className: cn(
|
|
3192
5336
|
"relative flex items-center justify-center shrink-0 z-10",
|
|
3193
|
-
|
|
5337
|
+
isSquare ? "mx-auto" : isExpandedPill ? "size-6" : "h-8 w-14 mx-auto rounded-full"
|
|
3194
5338
|
),
|
|
3195
|
-
style: {
|
|
5339
|
+
style: isSquare ? { width: resolvedShapeSize, height: resolvedShapeSize } : void 0,
|
|
3196
5340
|
children: [
|
|
3197
|
-
!
|
|
3198
|
-
|
|
3199
|
-
|
|
5341
|
+
!isExpandedPill && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5342
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5343
|
+
ActivePill2,
|
|
5344
|
+
{
|
|
5345
|
+
layoutId: activePillId,
|
|
5346
|
+
disableInitial: isModal,
|
|
5347
|
+
shape: activeShape,
|
|
5348
|
+
width: iconPillWidth,
|
|
5349
|
+
height: iconPillHeight
|
|
5350
|
+
}
|
|
5351
|
+
) }),
|
|
5352
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5353
|
+
HoverStateLayer2,
|
|
5354
|
+
{
|
|
5355
|
+
shape: activeShape,
|
|
5356
|
+
width: iconPillWidth,
|
|
5357
|
+
height: iconPillHeight
|
|
5358
|
+
}
|
|
5359
|
+
),
|
|
5360
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5361
|
+
RippleLayer2,
|
|
5362
|
+
{
|
|
5363
|
+
ripples,
|
|
5364
|
+
onRippleDone: removeRipple,
|
|
5365
|
+
shape: activeShape,
|
|
5366
|
+
width: iconPillWidth,
|
|
5367
|
+
height: iconPillHeight
|
|
5368
|
+
}
|
|
5369
|
+
)
|
|
5370
|
+
] }),
|
|
3200
5371
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3201
5372
|
react.m.div,
|
|
3202
5373
|
{
|
|
@@ -3218,10 +5389,10 @@ var NavigationRailItemComponent = React36__namespace.forwardRef(
|
|
|
3218
5389
|
transition: SPRING_TRANSITION,
|
|
3219
5390
|
className: cn(
|
|
3220
5391
|
"z-10 transition-colors duration-200 whitespace-nowrap",
|
|
3221
|
-
selected ? "text-m3-on-surface" : "text-m3-on-surface-variant",
|
|
3222
|
-
isExpanded ? "text-sm
|
|
5392
|
+
selected ? isExpandedPill ? "text-m3-on-secondary-container font-medium" : "text-m3-on-surface font-medium" : "text-m3-on-surface-variant font-medium",
|
|
5393
|
+
isExpanded ? "text-sm tracking-wide text-left" : "text-xs tracking-wide"
|
|
3223
5394
|
),
|
|
3224
|
-
children: (
|
|
5395
|
+
children: (_d = child.props.children) != null ? _d : label
|
|
3225
5396
|
},
|
|
3226
5397
|
"rail-label"
|
|
3227
5398
|
) })
|
|
@@ -3267,31 +5438,71 @@ var NavigationRailItemComponent = React36__namespace.forwardRef(
|
|
|
3267
5438
|
layout: enableLayout,
|
|
3268
5439
|
className: cn(
|
|
3269
5440
|
"relative flex z-10",
|
|
3270
|
-
isExpanded ?
|
|
5441
|
+
isExpanded ? cn(
|
|
5442
|
+
"flex-row items-center h-14 px-4 gap-x-3 rounded-full",
|
|
5443
|
+
expandedPillWidthClass
|
|
5444
|
+
) : "flex-col items-center justify-center w-full gap-y-1 rounded-full"
|
|
3271
5445
|
),
|
|
3272
5446
|
children: [
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
5447
|
+
isExpandedPill && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5448
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5449
|
+
ActivePill2,
|
|
5450
|
+
{
|
|
5451
|
+
layoutId: activePillId,
|
|
5452
|
+
disableInitial: isModal,
|
|
5453
|
+
shape: activeShape
|
|
5454
|
+
}
|
|
5455
|
+
) }),
|
|
5456
|
+
/* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer2, { shape: activeShape }),
|
|
5457
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5458
|
+
RippleLayer2,
|
|
5459
|
+
{
|
|
5460
|
+
ripples,
|
|
5461
|
+
onRippleDone: removeRipple,
|
|
5462
|
+
shape: activeShape
|
|
5463
|
+
}
|
|
5464
|
+
)
|
|
5465
|
+
] }),
|
|
3282
5466
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3283
5467
|
react.m.div,
|
|
3284
5468
|
{
|
|
3285
5469
|
layout: enableLayout,
|
|
3286
5470
|
className: cn(
|
|
3287
5471
|
"relative flex items-center justify-center shrink-0 z-10",
|
|
3288
|
-
|
|
5472
|
+
isSquare ? "mx-auto" : isExpandedPill ? "size-6" : "h-8 w-14 mx-auto rounded-full"
|
|
3289
5473
|
),
|
|
3290
|
-
style: {
|
|
5474
|
+
style: isSquare ? { width: resolvedShapeSize, height: resolvedShapeSize } : void 0,
|
|
3291
5475
|
children: [
|
|
3292
|
-
!
|
|
3293
|
-
|
|
3294
|
-
|
|
5476
|
+
!isExpandedPill && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5477
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5478
|
+
ActivePill2,
|
|
5479
|
+
{
|
|
5480
|
+
layoutId: activePillId,
|
|
5481
|
+
disableInitial: isModal,
|
|
5482
|
+
shape: activeShape,
|
|
5483
|
+
width: iconPillWidth,
|
|
5484
|
+
height: iconPillHeight
|
|
5485
|
+
}
|
|
5486
|
+
) }),
|
|
5487
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5488
|
+
HoverStateLayer2,
|
|
5489
|
+
{
|
|
5490
|
+
shape: activeShape,
|
|
5491
|
+
width: iconPillWidth,
|
|
5492
|
+
height: iconPillHeight
|
|
5493
|
+
}
|
|
5494
|
+
),
|
|
5495
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5496
|
+
RippleLayer2,
|
|
5497
|
+
{
|
|
5498
|
+
ripples,
|
|
5499
|
+
onRippleDone: removeRipple,
|
|
5500
|
+
shape: activeShape,
|
|
5501
|
+
width: iconPillWidth,
|
|
5502
|
+
height: iconPillHeight
|
|
5503
|
+
}
|
|
5504
|
+
)
|
|
5505
|
+
] }),
|
|
3295
5506
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3296
5507
|
react.m.div,
|
|
3297
5508
|
{
|
|
@@ -3313,8 +5524,8 @@ var NavigationRailItemComponent = React36__namespace.forwardRef(
|
|
|
3313
5524
|
transition: SPRING_TRANSITION,
|
|
3314
5525
|
className: cn(
|
|
3315
5526
|
"z-10 transition-colors duration-200 whitespace-nowrap",
|
|
3316
|
-
selected ? "text-m3-on-surface" : "text-m3-on-surface-variant",
|
|
3317
|
-
isExpanded ? "text-sm
|
|
5527
|
+
selected ? isExpandedPill ? "text-m3-on-secondary-container font-medium" : "text-m3-on-surface font-medium" : "text-m3-on-surface-variant font-medium",
|
|
5528
|
+
isExpanded ? "text-sm tracking-wide text-left" : "text-xs tracking-wide"
|
|
3318
5529
|
),
|
|
3319
5530
|
children: label
|
|
3320
5531
|
},
|
|
@@ -3374,6 +5585,9 @@ var NavigationRailComponent = React36__namespace.forwardRef(
|
|
|
3374
5585
|
({
|
|
3375
5586
|
variant = "collapsed",
|
|
3376
5587
|
labelVisibility = "labeled",
|
|
5588
|
+
shape,
|
|
5589
|
+
shapeSize,
|
|
5590
|
+
activeIndicatorWidth = "hug",
|
|
3377
5591
|
header,
|
|
3378
5592
|
fab,
|
|
3379
5593
|
fabPlacement = "contained",
|
|
@@ -3387,6 +5601,7 @@ var NavigationRailComponent = React36__namespace.forwardRef(
|
|
|
3387
5601
|
style
|
|
3388
5602
|
}, ref) => {
|
|
3389
5603
|
const isModal = variant === "modal";
|
|
5604
|
+
const isExpanded = variant === "expanded" || variant === "modal";
|
|
3390
5605
|
const isXr = variant === "xr";
|
|
3391
5606
|
const isSpatial = isXr && fabPlacement === "spatialized";
|
|
3392
5607
|
const applyAnimation = !isXr || !isSpatial;
|
|
@@ -3428,10 +5643,12 @@ var NavigationRailComponent = React36__namespace.forwardRef(
|
|
|
3428
5643
|
transition: isModal ? MD3_MODAL_TRANSITION : SPRING_TRANSITION,
|
|
3429
5644
|
children: [
|
|
3430
5645
|
(header || fab && !isSpatial) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3431
|
-
|
|
5646
|
+
react.m.div,
|
|
3432
5647
|
{
|
|
5648
|
+
layout: true,
|
|
3433
5649
|
className: cn(
|
|
3434
|
-
"flex w-full flex-col
|
|
5650
|
+
"flex w-full flex-col justify-start shrink-0 empty:hidden",
|
|
5651
|
+
isExpanded ? "items-start px-3" : "items-center",
|
|
3435
5652
|
navHeaderSpacing
|
|
3436
5653
|
),
|
|
3437
5654
|
children: [
|
|
@@ -3497,6 +5714,9 @@ var NavigationRailComponent = React36__namespace.forwardRef(
|
|
|
3497
5714
|
const contextValue = {
|
|
3498
5715
|
variant,
|
|
3499
5716
|
labelVisibility,
|
|
5717
|
+
shape,
|
|
5718
|
+
shapeSize,
|
|
5719
|
+
activeIndicatorWidth,
|
|
3500
5720
|
activeIndicatorTransition
|
|
3501
5721
|
};
|
|
3502
5722
|
if (isModal) {
|
|
@@ -6431,6 +8651,10 @@ var ToolbarToggleButtonTokens = {
|
|
|
6431
8651
|
PaddingX: 16,
|
|
6432
8652
|
Gap: 8
|
|
6433
8653
|
};
|
|
8654
|
+
var ToolbarToggleButtonRadiusTokens = {
|
|
8655
|
+
pillRadius: 24,
|
|
8656
|
+
pressedRadius: 12
|
|
8657
|
+
};
|
|
6434
8658
|
var ALIGNMENT_CLASS = {
|
|
6435
8659
|
start: "justify-start",
|
|
6436
8660
|
center: "justify-center",
|
|
@@ -6947,6 +9171,34 @@ function useFloatingToolbarScrollBehavior(options = {}) {
|
|
|
6947
9171
|
exitDirection
|
|
6948
9172
|
};
|
|
6949
9173
|
}
|
|
9174
|
+
var BUTTON_RADIUS_SPRING = FAST_EFFECTS_SPRING;
|
|
9175
|
+
({
|
|
9176
|
+
xs: {
|
|
9177
|
+
// 1dp
|
|
9178
|
+
squareShapeRadius: m3Tokens.cornerRadius.medium,
|
|
9179
|
+
// 12dp
|
|
9180
|
+
pressedShapeRadius: m3Tokens.cornerRadius.small},
|
|
9181
|
+
sm: {
|
|
9182
|
+
// 1dp
|
|
9183
|
+
squareShapeRadius: m3Tokens.cornerRadius.medium,
|
|
9184
|
+
// 12dp
|
|
9185
|
+
pressedShapeRadius: m3Tokens.cornerRadius.small},
|
|
9186
|
+
md: {
|
|
9187
|
+
// 1dp
|
|
9188
|
+
squareShapeRadius: m3Tokens.cornerRadius.large,
|
|
9189
|
+
// 16dp
|
|
9190
|
+
pressedShapeRadius: m3Tokens.cornerRadius.medium},
|
|
9191
|
+
lg: {
|
|
9192
|
+
// 2dp
|
|
9193
|
+
squareShapeRadius: m3Tokens.cornerRadius.extraLarge,
|
|
9194
|
+
// 28dp
|
|
9195
|
+
pressedShapeRadius: m3Tokens.cornerRadius.large},
|
|
9196
|
+
xl: {
|
|
9197
|
+
// 3dp
|
|
9198
|
+
squareShapeRadius: m3Tokens.cornerRadius.extraLarge,
|
|
9199
|
+
// 28dp
|
|
9200
|
+
pressedShapeRadius: m3Tokens.cornerRadius.large}
|
|
9201
|
+
});
|
|
6950
9202
|
var MOTION_PROP_KEYS = [
|
|
6951
9203
|
"animate",
|
|
6952
9204
|
"exit",
|
|
@@ -6977,29 +9229,34 @@ var ToolbarToggleButton = React36__namespace.forwardRef(
|
|
|
6977
9229
|
selected = false,
|
|
6978
9230
|
icon,
|
|
6979
9231
|
children,
|
|
6980
|
-
|
|
6981
|
-
|
|
9232
|
+
pressExpand = true,
|
|
9233
|
+
pressExpandRatio = 0.06,
|
|
6982
9234
|
ripple = true,
|
|
6983
9235
|
asChild = false,
|
|
6984
9236
|
className,
|
|
6985
9237
|
type = "button",
|
|
6986
9238
|
disabled,
|
|
6987
|
-
onPointerDown: onPointerDownProp
|
|
9239
|
+
onPointerDown: onPointerDownProp,
|
|
9240
|
+
onPointerUp: onPointerUpProp,
|
|
9241
|
+
onPointerLeave: onPointerLeaveProp
|
|
6988
9242
|
} = _b, props = __objRest(_b, [
|
|
6989
9243
|
"emphasis",
|
|
6990
9244
|
"selected",
|
|
6991
9245
|
"icon",
|
|
6992
9246
|
"children",
|
|
6993
|
-
"
|
|
6994
|
-
"
|
|
9247
|
+
"pressExpand",
|
|
9248
|
+
"pressExpandRatio",
|
|
6995
9249
|
"ripple",
|
|
6996
9250
|
"asChild",
|
|
6997
9251
|
"className",
|
|
6998
9252
|
"type",
|
|
6999
9253
|
"disabled",
|
|
7000
|
-
"onPointerDown"
|
|
9254
|
+
"onPointerDown",
|
|
9255
|
+
"onPointerUp",
|
|
9256
|
+
"onPointerLeave"
|
|
7001
9257
|
]);
|
|
7002
9258
|
const context = useToolbarContext();
|
|
9259
|
+
const [isPressed, setIsPressed] = React36__namespace.useState(false);
|
|
7003
9260
|
const {
|
|
7004
9261
|
ripples,
|
|
7005
9262
|
onPointerDown: handleRipplePointerDown,
|
|
@@ -7009,6 +9266,7 @@ var ToolbarToggleButton = React36__namespace.forwardRef(
|
|
|
7009
9266
|
});
|
|
7010
9267
|
const handlePointerDown = React36__namespace.useCallback(
|
|
7011
9268
|
(e) => {
|
|
9269
|
+
setIsPressed(true);
|
|
7012
9270
|
if (!disabled && ripple) {
|
|
7013
9271
|
handleRipplePointerDown(e);
|
|
7014
9272
|
}
|
|
@@ -7016,7 +9274,21 @@ var ToolbarToggleButton = React36__namespace.forwardRef(
|
|
|
7016
9274
|
},
|
|
7017
9275
|
[disabled, ripple, handleRipplePointerDown, onPointerDownProp]
|
|
7018
9276
|
);
|
|
7019
|
-
const
|
|
9277
|
+
const handlePointerUp = React36__namespace.useCallback(
|
|
9278
|
+
(e) => {
|
|
9279
|
+
setIsPressed(false);
|
|
9280
|
+
onPointerUpProp == null ? void 0 : onPointerUpProp(e);
|
|
9281
|
+
},
|
|
9282
|
+
[onPointerUpProp]
|
|
9283
|
+
);
|
|
9284
|
+
const handlePointerLeave = React36__namespace.useCallback(
|
|
9285
|
+
(e) => {
|
|
9286
|
+
setIsPressed(false);
|
|
9287
|
+
onPointerLeaveProp == null ? void 0 : onPointerLeaveProp(e);
|
|
9288
|
+
},
|
|
9289
|
+
[onPointerLeaveProp]
|
|
9290
|
+
);
|
|
9291
|
+
const baseClasses = "relative overflow-hidden inline-flex items-center justify-center min-w-[95px] h-[48px] px-4 text-sm font-medium select-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/40 disabled:pointer-events-none disabled:opacity-38";
|
|
7020
9292
|
const variantClasses = {
|
|
7021
9293
|
standard: selected ? "bg-current/16 text-current hover:bg-current/20 active:bg-current/24" : "bg-transparent text-current hover:bg-current/8 active:bg-current/12",
|
|
7022
9294
|
tonal: selected ? "bg-m3-secondary-container text-m3-on-secondary-container hover:shadow-sm" : "bg-m3-surface-container-high text-m3-on-surface hover:bg-m3-surface-container-highest",
|
|
@@ -7028,27 +9300,17 @@ var ToolbarToggleButton = React36__namespace.forwardRef(
|
|
|
7028
9300
|
context == null ? void 0 : context.itemClassName,
|
|
7029
9301
|
className
|
|
7030
9302
|
);
|
|
7031
|
-
const
|
|
9303
|
+
const animateConfig = React36__namespace.useMemo(
|
|
7032
9304
|
() => ({
|
|
7033
|
-
|
|
7034
|
-
|
|
7035
|
-
0,
|
|
7036
|
-
-pressBounceOffset,
|
|
7037
|
-
pressBounceOffset,
|
|
7038
|
-
-pressBounceOffset / 2,
|
|
7039
|
-
pressBounceOffset / 2,
|
|
7040
|
-
0
|
|
7041
|
-
] : 0
|
|
9305
|
+
scaleX: pressExpand && isPressed ? 1 + pressExpandRatio : 1,
|
|
9306
|
+
borderRadius: isPressed ? ToolbarToggleButtonRadiusTokens.pressedRadius : ToolbarToggleButtonRadiusTokens.pillRadius
|
|
7042
9307
|
}),
|
|
7043
|
-
[
|
|
9308
|
+
[pressExpand, pressExpandRatio, isPressed]
|
|
7044
9309
|
);
|
|
7045
9310
|
const transitionConfig = React36__namespace.useMemo(
|
|
7046
|
-
() =>
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
duration: 0.35,
|
|
7050
|
-
ease: "easeInOut"
|
|
7051
|
-
}
|
|
9311
|
+
() => ({
|
|
9312
|
+
scaleX: FAST_SPATIAL_SPRING,
|
|
9313
|
+
borderRadius: BUTTON_RADIUS_SPRING
|
|
7052
9314
|
}),
|
|
7053
9315
|
[]
|
|
7054
9316
|
);
|
|
@@ -7102,7 +9364,9 @@ var ToolbarToggleButton = React36__namespace.forwardRef(
|
|
|
7102
9364
|
ref,
|
|
7103
9365
|
"aria-pressed": selected,
|
|
7104
9366
|
className: combinedClassName,
|
|
7105
|
-
onPointerDown: handlePointerDown
|
|
9367
|
+
onPointerDown: handlePointerDown,
|
|
9368
|
+
onPointerUp: handlePointerUp,
|
|
9369
|
+
onPointerLeave: handlePointerLeave
|
|
7106
9370
|
}, strippedProps), {
|
|
7107
9371
|
children: React36__namespace.cloneElement(child, { children: innerChildContent })
|
|
7108
9372
|
})
|
|
@@ -7115,9 +9379,13 @@ var ToolbarToggleButton = React36__namespace.forwardRef(
|
|
|
7115
9379
|
type,
|
|
7116
9380
|
"aria-pressed": selected,
|
|
7117
9381
|
disabled,
|
|
7118
|
-
|
|
9382
|
+
animate: animateConfig,
|
|
7119
9383
|
transition: transitionConfig,
|
|
9384
|
+
initial: false,
|
|
9385
|
+
style: { transformOrigin: "center" },
|
|
7120
9386
|
onPointerDown: handlePointerDown,
|
|
9387
|
+
onPointerUp: handlePointerUp,
|
|
9388
|
+
onPointerLeave: handlePointerLeave,
|
|
7121
9389
|
className: combinedClassName
|
|
7122
9390
|
}, props), {
|
|
7123
9391
|
children: [
|
|
@@ -7221,7 +9489,9 @@ exports.VerticalMenuContent = VerticalMenuContent;
|
|
|
7221
9489
|
exports.VerticalMenuDivider = VerticalMenuDivider;
|
|
7222
9490
|
exports.VerticalMenuGroup = VerticalMenuGroup;
|
|
7223
9491
|
exports.appBarTypography = appBarTypography;
|
|
9492
|
+
exports.getNavigationShapeStyle = getNavigationShapeStyle;
|
|
7224
9493
|
exports.getToolbarColors = getToolbarColors;
|
|
9494
|
+
exports.isSquareShape = isSquareShape;
|
|
7225
9495
|
exports.standardFloatingToolbarColors = standardFloatingToolbarColors;
|
|
7226
9496
|
exports.surfaceContainerHighFloatingToolbarColors = surfaceContainerHighFloatingToolbarColors;
|
|
7227
9497
|
exports.surfaceContainerHighestFloatingToolbarColors = surfaceContainerHighestFloatingToolbarColors;
|