fluekit 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,7 +17,7 @@ interface Props {
17
17
  }
18
18
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
19
19
  color: string | Color;
20
- animating: boolean;
21
20
  radius: number;
21
+ animating: boolean;
22
22
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
23
23
  export default _default;
@@ -1,4 +1,5 @@
1
1
  import { Color } from './Color';
2
+ import { BorderRadius } from './BorderRadius';
2
3
  interface Props {
3
4
  /**
4
5
  * The value of the progress indicator, from 0.0 to 1.0.
@@ -18,6 +19,10 @@ interface Props {
18
19
  * Default: 4.0
19
20
  */
20
21
  minHeight?: number;
22
+ /**
23
+ * The border radius of the progress indicator.
24
+ */
25
+ borderRadius?: number | BorderRadius;
21
26
  }
22
27
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
23
28
  minHeight: number;
package/dist/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .fluekit-button[data-v-0af78380]{appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;text-align:inherit;box-sizing:border-box;background:0 0;border:0;outline:0;margin:0;padding:0}.fluekit-button[data-v-0af78380]:disabled{cursor:default}.fluekit-image[data-v-ce382550]{display:block}.fluekit-icon[data-v-34336b05]{-webkit-user-select:none;user-select:none;pointer-events:none}.icon-svg[data-v-34336b05]{fill:currentColor;width:100%;height:100%;display:block}[data-v-34336b05] svg{fill:currentColor;width:100%;height:100%}.flutter-stack[data-v-aefe47c2]>*{grid-area:1/1/2/2}.fluekit-text-field[data-v-daef18e4]{margin-top:16px;font-family:inherit;position:relative}.fluekit-input-container[data-v-daef18e4]{box-sizing:border-box;width:100%}.fluekit-input-element[data-v-daef18e4]{width:100%;color:inherit;resize:none;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-family:inherit;font-size:16px}.fluekit-input-label[data-v-daef18e4]{z-index:1}.fluekit-input-footer[data-v-daef18e4]{justify-content:space-between;margin-top:4px;display:flex}.fluekit-input-helper[data-v-daef18e4]{color:#666;font-size:12px}.fluekit-input-helper-spacer[data-v-daef18e4]{flex:1}.fluekit-input-counter[data-v-daef18e4]{color:#666;margin-left:auto;font-size:12px}.fluekit-input-helper.is-error[data-v-daef18e4]{color:#f44336}.flutter-transform[data-v-c4ab6ce1]{box-sizing:border-box}.ink-well[data-v-a4b9dd0e]{cursor:pointer;display:block;position:relative;overflow:hidden}.ink-well.disabled[data-v-a4b9dd0e]{cursor:default}.ripple[data-v-a4b9dd0e]{pointer-events:none;border-radius:50%;animation:.6s linear ripple-a4b9dd0e;position:absolute;transform:scale(0)}@keyframes ripple-a4b9dd0e{to{opacity:0;transform:scale(4)}}.slider-container[data-v-715d86f8],.range-slider-container[data-v-f10382ff]{width:100%;position:relative}.bottom-sheet-overlay[data-v-6948b23d]{z-index:9999;background-color:#0000008a;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:before{content:"";position:html;background-color:var(--v4cadb9aa);border-radius:10px;width:100%;height:25%;display:block}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]{opacity:0;animation:1s linear infinite flue-cupertino-fade-32d57a59}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:first-child{animation-delay:-1s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(2){animation-delay:-.9167s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(3){animation-delay:-.8333s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(4){animation-delay:-.75s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(5){animation-delay:-.6667s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(6){animation-delay:-.5833s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(7){animation-delay:-.5s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(8){animation-delay:-.4167s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(9){animation-delay:-.3333s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(10){animation-delay:-.25s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(11){animation-delay:-.1667s}.flue-cupertino-activity-indicator-blade[data-v-32d57a59]:nth-child(12){animation-delay:-.0833s}@keyframes flue-cupertino-fade-32d57a59{0%{opacity:1}to{opacity:.3}}.flue-cupertino-navigation-bar[data-v-b5a5c6bf]{-webkit-backdrop-filter:blur(20px);z-index:100;width:100%}.flue-nav-bar-middle[data-v-b5a5c6bf]{justify-content:center;align-items:center;max-width:60%;display:flex}.snackbar-overlay[data-v-d8abf3ed]{z-index:9999;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.snackbar-overlay[data-v-d8abf3ed]>*{pointer-events:auto}.flue-app-bar-leading[data-v-0a553bf2]{align-items:center;margin-right:16px;display:flex}.flue-app-bar-actions[data-v-0a553bf2]{align-items:center;margin-left:16px;display:flex}.fluekit-bottom-navigation-bar-ios[data-v-11798dea]{-webkit-backdrop-filter:blur(20px)}.fluekit-context-menu-anchor[data-v-34f987d4]{display:inline-block}.fluekit-context-menu-overlay[data-v-34f987d4]{z-index:9999;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fluekit-context-menu-backdrop[data-v-34f987d4]{-webkit-backdrop-filter:blur(10px);background:#0006;width:100%;height:100%;position:absolute;top:0;left:0}.fluekit-context-menu-content[data-v-34f987d4]{z-index:10001;width:250px;animation:.2s ease-out scale-in-34f987d4;position:relative}.fluekit-action-group[data-v-34f987d4]{-webkit-backdrop-filter:blur(20px);background:#f9f9f9c7;border-radius:14px;margin-bottom:16px;overflow:hidden}.fluekit-context-menu-action[data-v-34f987d4]{text-align:center;cursor:pointer;background:0 0;border-bottom:.5px solid #0000001a;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.fluekit-context-menu-action[data-v-34f987d4]:last-child{border-bottom:none}.fluekit-context-menu-action[data-v-34f987d4]:active{background:#0000001a}.action-text[data-v-34f987d4]{color:#007aff;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px}.is-destructive .action-text[data-v-34f987d4]{color:#ff3b30}.is-default .action-text[data-v-34f987d4]{font-weight:600}.cancel-group[data-v-34f987d4]{margin-top:8px}.cancel-action .action-text[data-v-34f987d4]{font-weight:600}.fade-enter-active[data-v-34f987d4],.fade-leave-active[data-v-34f987d4]{transition:opacity .2s}.fade-enter-from[data-v-34f987d4],.fade-leave-to[data-v-34f987d4]{opacity:0}@keyframes scale-in-34f987d4{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.flue-aspect-ratio[data-v-e23e6712]{grid-template-rows:100%;grid-template-columns:100%;display:grid}.flue-image-color-background[data-v-de3ea6be]{box-sizing:border-box;flex-direction:column;display:flex}.flue-linear-progress-indicator[data-v-66847fc1]{border-radius:0}@keyframes flue-linear-indeterminate-66847fc1{0%{transform:translate(0)scaleX(0)}40%{transform:translate(0)scaleX(.4)}to{transform:translate(100%)scaleX(.5)}}@keyframes flue-circular-rotate-f3b133b5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes flue-circular-dash-f3b133b5{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:89 200;stroke-dashoffset:-35px}to{stroke-dasharray:89 200;stroke-dashoffset:-124px}}
1
+ .fluekit-button[data-v-0af78380]{appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;text-align:inherit;box-sizing:border-box;background:0 0;border:0;outline:0;margin:0;padding:0}.fluekit-button[data-v-0af78380]:disabled{cursor:default}.fluekit-image[data-v-ce382550]{display:block}.fluekit-icon[data-v-34336b05]{-webkit-user-select:none;user-select:none;pointer-events:none}.icon-svg[data-v-34336b05]{fill:currentColor;width:100%;height:100%;display:block}[data-v-34336b05] svg{fill:currentColor;width:100%;height:100%}.flutter-stack[data-v-aefe47c2]>*{grid-area:1/1/2/2}.fluekit-text-field[data-v-daef18e4]{margin-top:16px;font-family:inherit;position:relative}.fluekit-input-container[data-v-daef18e4]{box-sizing:border-box;width:100%}.fluekit-input-element[data-v-daef18e4]{width:100%;color:inherit;resize:none;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0;font-family:inherit;font-size:16px}.fluekit-input-label[data-v-daef18e4]{z-index:1}.fluekit-input-footer[data-v-daef18e4]{justify-content:space-between;margin-top:4px;display:flex}.fluekit-input-helper[data-v-daef18e4]{color:#666;font-size:12px}.fluekit-input-helper-spacer[data-v-daef18e4]{flex:1}.fluekit-input-counter[data-v-daef18e4]{color:#666;margin-left:auto;font-size:12px}.fluekit-input-helper.is-error[data-v-daef18e4]{color:#f44336}.flutter-transform[data-v-c4ab6ce1]{box-sizing:border-box}.ink-well[data-v-a4b9dd0e]{cursor:pointer;display:block;position:relative;overflow:hidden}.ink-well.disabled[data-v-a4b9dd0e]{cursor:default}.ripple[data-v-a4b9dd0e]{pointer-events:none;border-radius:50%;animation:.6s linear ripple-a4b9dd0e;position:absolute;transform:scale(0)}@keyframes ripple-a4b9dd0e{to{opacity:0;transform:scale(4)}}.slider-container[data-v-715d86f8],.range-slider-container[data-v-f10382ff]{width:100%;position:relative}.bottom-sheet-overlay[data-v-6948b23d]{z-index:9999;background-color:#0000008a;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.flue-cupertino-navigation-bar[data-v-b5a5c6bf]{-webkit-backdrop-filter:blur(20px);z-index:100;width:100%}.flue-nav-bar-middle[data-v-b5a5c6bf]{justify-content:center;align-items:center;max-width:60%;display:flex}.snackbar-overlay[data-v-d8abf3ed]{z-index:9999;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.snackbar-overlay[data-v-d8abf3ed]>*{pointer-events:auto}.flue-app-bar-leading[data-v-0a553bf2]{align-items:center;margin-right:16px;display:flex}.flue-app-bar-actions[data-v-0a553bf2]{align-items:center;margin-left:16px;display:flex}.fluekit-bottom-navigation-bar-ios[data-v-11798dea]{-webkit-backdrop-filter:blur(20px)}.fluekit-context-menu-anchor[data-v-34f987d4]{display:inline-block}.fluekit-context-menu-overlay[data-v-34f987d4]{z-index:9999;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fluekit-context-menu-backdrop[data-v-34f987d4]{-webkit-backdrop-filter:blur(10px);background:#0006;width:100%;height:100%;position:absolute;top:0;left:0}.fluekit-context-menu-content[data-v-34f987d4]{z-index:10001;width:250px;animation:.2s ease-out scale-in-34f987d4;position:relative}.fluekit-action-group[data-v-34f987d4]{-webkit-backdrop-filter:blur(20px);background:#f9f9f9c7;border-radius:14px;margin-bottom:16px;overflow:hidden}.fluekit-context-menu-action[data-v-34f987d4]{text-align:center;cursor:pointer;background:0 0;border-bottom:.5px solid #0000001a;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.fluekit-context-menu-action[data-v-34f987d4]:last-child{border-bottom:none}.fluekit-context-menu-action[data-v-34f987d4]:active{background:#0000001a}.action-text[data-v-34f987d4]{color:#007aff;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px}.is-destructive .action-text[data-v-34f987d4]{color:#ff3b30}.is-default .action-text[data-v-34f987d4]{font-weight:600}.cancel-group[data-v-34f987d4]{margin-top:8px}.cancel-action .action-text[data-v-34f987d4]{font-weight:600}.fade-enter-active[data-v-34f987d4],.fade-leave-active[data-v-34f987d4]{transition:opacity .2s}.fade-enter-from[data-v-34f987d4],.fade-leave-to[data-v-34f987d4]{opacity:0}@keyframes scale-in-34f987d4{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.flue-aspect-ratio[data-v-e23e6712]{grid-template-rows:100%;grid-template-columns:100%;display:grid}.flue-image-color-background[data-v-de3ea6be]{box-sizing:border-box;flex-direction:column;display:flex}.flue-linear-progress-indicator[data-v-56dbe01e]{border-radius:0}@keyframes flue-linear-indeterminate-56dbe01e{0%{transform:translate(0)scaleX(0)}40%{transform:translate(0)scaleX(.4)}to{transform:translate(100%)scaleX(.5)}}@keyframes flue-circular-rotate-f3b133b5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes flue-circular-dash-f3b133b5{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:89 200;stroke-dashoffset:-35px}to{stroke-dasharray:89 200;stroke-dashoffset:-124px}}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:before{content:"";position:html;background-color:var(--v1892c8c4);border-radius:10px;width:100%;height:25%;display:block}.flue-cupertino-activity-indicator-blade[data-v-387402c7]{opacity:0;animation:1s linear infinite flue-cupertino-fade-387402c7}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:first-child{animation-delay:-1s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(2){animation-delay:-.9167s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(3){animation-delay:-.8333s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(4){animation-delay:-.75s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(5){animation-delay:-.6667s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(6){animation-delay:-.5833s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(7){animation-delay:-.5s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(8){animation-delay:-.4167s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(9){animation-delay:-.3333s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(10){animation-delay:-.25s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(11){animation-delay:-.1667s}.flue-cupertino-activity-indicator-blade[data-v-387402c7]:nth-child(12){animation-delay:-.0833s}@keyframes flue-cupertino-fade-387402c7{0%{opacity:1}to{opacity:.3}}
2
2
  /*$vite$:1*/
package/dist/index.d.ts CHANGED
@@ -50,7 +50,6 @@ export { default as SegmentedControl } from './SegmentedControl';
50
50
  export { default as Builder } from './Builder';
51
51
  export { default as LayoutBuilder } from './LayoutBuilder';
52
52
  export { default as MediaQuery } from './MediaQuery';
53
- export { default as CupertinoActivityIndicator } from './CupertinoActivityIndicator';
54
53
  export { default as CupertinoPageScaffold } from './CupertinoPageScaffold';
55
54
  export { default as CupertinoNavigationBar } from './CupertinoNavigationBar';
56
55
  export { SnackBar } from './SnackBar';
@@ -63,6 +62,7 @@ export { default as ConstrainedBox } from './ConstrainedBox';
63
62
  export { default as ImageColorBackground } from './ImageColorBackground';
64
63
  export { default as LinearProgressIndicator } from './LinearProgressIndicator';
65
64
  export { default as CircularProgressIndicator } from './CircularProgressIndicator';
65
+ export { default as CupertinoActivityIndicator } from './CupertinoActivityIndicator';
66
66
  export * from './Color';
67
67
  export * from './ImageUtils';
68
68
  export * from './Colors';
package/dist/index.js CHANGED
@@ -3597,206 +3597,7 @@ var MediaQuery_default = /* @__PURE__ */ defineComponent({
3597
3597
  setup(e) {
3598
3598
  return provide(MediaQueryKey, e.data), (e, C) => renderSlot(e.$slots, "default");
3599
3599
  }
3600
- }), Color = class e {
3601
- _r;
3602
- _g;
3603
- _b;
3604
- _a;
3605
- constructor(e) {
3606
- this._a = e >> 24 & 255, this._r = e >> 16 & 255, this._g = e >> 8 & 255, this._b = e & 255;
3607
- }
3608
- static fromARGB(C, w, T, E) {
3609
- return new e(((C & 255) << 24 | (w & 255) << 16 | (T & 255) << 8 | E & 255) >>> 0);
3610
- }
3611
- static fromRGBO(C, w, T, E) {
3612
- let D = Math.round(E * 255);
3613
- return e.fromRGB(C, w, T, D);
3614
- }
3615
- static fromRGB(C, w, T, E = 255) {
3616
- return e.fromARGB(E, C, w, T);
3617
- }
3618
- static fromString(C) {
3619
- if (!C || C === "transparent") return new e(0);
3620
- if (C.startsWith("#")) {
3621
- let w = C.slice(1);
3622
- if (w.length === 3 && (w = w.split("").map((e) => e + e).join("")), w.length === 6) return new e(4278190080 | parseInt(w, 16));
3623
- if (w.length === 8) {
3624
- let C = parseInt(w.substring(0, 2), 16), T = parseInt(w.substring(2, 4), 16), E = parseInt(w.substring(4, 6), 16), D = parseInt(w.substring(6, 8), 16);
3625
- return e.fromARGB(D, C, T, E);
3626
- }
3627
- }
3628
- if (C.startsWith("rgb")) {
3629
- let w = C.match(/[\d.]+/g);
3630
- if (w && w.length >= 3) {
3631
- let C = parseFloat(w[0]), T = parseFloat(w[1]), E = parseFloat(w[2]), D = w[3] === void 0 ? 1 : parseFloat(w[3]);
3632
- return e.fromRGBO(C, T, E, D);
3633
- }
3634
- }
3635
- return console.warn(`[Color] Could not parse color string: ${C}`), new e(0);
3636
- }
3637
- get alpha() {
3638
- return this._a;
3639
- }
3640
- get opacity() {
3641
- return this._a / 255;
3642
- }
3643
- get red() {
3644
- return this._r;
3645
- }
3646
- get green() {
3647
- return this._g;
3648
- }
3649
- get blue() {
3650
- return this._b;
3651
- }
3652
- withAlpha(C) {
3653
- return e.fromARGB(C, this._r, this._g, this._b);
3654
- }
3655
- withOpacity(C) {
3656
- return e.fromRGBO(this._r, this._g, this._b, C);
3657
- }
3658
- withRed(C) {
3659
- return e.fromARGB(this._a, C, this._g, this._b);
3660
- }
3661
- withGreen(C) {
3662
- return e.fromARGB(this._a, this._r, C, this._b);
3663
- }
3664
- withBlue(C) {
3665
- return e.fromARGB(this._a, this._r, this._g, C);
3666
- }
3667
- computeLuminance() {
3668
- let e = this._r / 255, C = this._g / 255, w = this._b / 255, T = e <= .03928 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, E = C <= .03928 ? C / 12.92 : ((C + .055) / 1.055) ** 2.4, D = w <= .03928 ? w / 12.92 : ((w + .055) / 1.055) ** 2.4;
3669
- return .2126 * T + .7152 * E + .0722 * D;
3670
- }
3671
- toString() {
3672
- if (this._a === 255) return `rgb(${this._r}, ${this._g}, ${this._b})`;
3673
- let e = Number((this._a / 255).toFixed(3));
3674
- return `rgba(${this._r}, ${this._g}, ${this._b}, ${e})`;
3675
- }
3676
- get value() {
3677
- return ((this._a & 255) << 24 | (this._r & 255) << 16 | (this._g & 255) << 8 | this._b & 255) >>> 0;
3678
- }
3679
- };
3680
- function withOpacity(e, C) {
3681
- return (e instanceof Color ? e : Color.fromString(e)).withOpacity(C).toString();
3682
- }
3683
- function withAlpha(e, C) {
3684
- return (e instanceof Color ? e : Color.fromString(e)).withAlpha(C).toString();
3685
- }
3686
- function withRed(e, C) {
3687
- return (e instanceof Color ? e : Color.fromString(e)).withRed(C).toString();
3688
- }
3689
- function withGreen(e, C) {
3690
- return (e instanceof Color ? e : Color.fromString(e)).withGreen(C).toString();
3691
- }
3692
- function withBlue(e, C) {
3693
- return (e instanceof Color ? e : Color.fromString(e)).withBlue(C).toString();
3694
- }
3695
- function computeLuminance(e) {
3696
- return (e instanceof Color ? e : Color.fromString(e)).computeLuminance();
3697
- }
3698
- function lighten(e, C) {
3699
- let w = e instanceof Color ? e : Color.fromString(e), T = Math.max(0, Math.min(1, C)), E = Math.round(w.red + (255 - w.red) * T), D = Math.round(w.green + (255 - w.green) * T), O = Math.round(w.blue + (255 - w.blue) * T);
3700
- return Color.fromARGB(w.alpha, E, D, O).toString();
3701
- }
3702
- function darken(e, C) {
3703
- let w = e instanceof Color ? e : Color.fromString(e), T = Math.max(0, Math.min(1, C)), E = Math.round(w.red * (1 - T)), D = Math.round(w.green * (1 - T)), O = Math.round(w.blue * (1 - T));
3704
- return Color.fromARGB(w.alpha, E, D, O).toString();
3705
- }
3706
- const ColorUtils = {
3707
- withOpacity,
3708
- withAlpha,
3709
- withRed,
3710
- withGreen,
3711
- withBlue,
3712
- lighten,
3713
- darken,
3714
- computeLuminance
3715
- }, CupertinoColors = {
3716
- withOpacity: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withOpacity(C),
3717
- withAlpha: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withAlpha(C),
3718
- withRed: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withRed(C),
3719
- withGreen: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withGreen(C),
3720
- withBlue: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withBlue(C),
3721
- computeLuminance: (e) => (typeof e == "string" ? Color.fromString(e) : e).computeLuminance(),
3722
- lighten: (e, C) => Color.fromString(typeof e == "string" ? e : e.toString()),
3723
- darken: (e, C) => Color.fromString(typeof e == "string" ? e : e.toString()),
3724
- activeBlue: Color.fromString("#007AFF"),
3725
- activeGreen: Color.fromString("#34C759"),
3726
- activeOrange: Color.fromString("#FF9500"),
3727
- white: Color.fromString("#FFFFFF"),
3728
- black: Color.fromString("#000000"),
3729
- lightBackgroundGray: Color.fromString("#EFEFF4"),
3730
- extraLightBackgroundGray: Color.fromString("#EFEFF4"),
3731
- darkBackgroundGray: Color.fromString("#171717"),
3732
- label: Color.fromString("#000000"),
3733
- secondaryLabel: Color.fromString("rgba(60, 60, 67, 0.60)"),
3734
- tertiaryLabel: Color.fromString("rgba(60, 60, 67, 0.30)"),
3735
- quaternaryLabel: Color.fromString("rgba(60, 60, 67, 0.18)"),
3736
- systemBlue: Color.fromString("#007AFF"),
3737
- systemGreen: Color.fromString("#34C759"),
3738
- systemIndigo: Color.fromString("#5856D6"),
3739
- systemOrange: Color.fromString("#FF9500"),
3740
- systemPink: Color.fromString("#FF2D55"),
3741
- systemPurple: Color.fromString("#AF52DE"),
3742
- systemRed: Color.fromString("#FF3B30"),
3743
- systemTeal: Color.fromString("#5AC8FA"),
3744
- systemYellow: Color.fromString("#FFCC00"),
3745
- systemGrey: Color.fromString("#8E8E93"),
3746
- systemGrey2: Color.fromString("#AEAEB2"),
3747
- systemGrey3: Color.fromString("#C7C7CC"),
3748
- systemGrey4: Color.fromString("#D1D1D6"),
3749
- systemGrey5: Color.fromString("#E5E5EA"),
3750
- systemGrey6: Color.fromString("#F2F2F7"),
3751
- systemBackground: Color.fromString("#FFFFFF"),
3752
- secondarySystemBackground: Color.fromString("#F2F2F7"),
3753
- tertiarySystemBackground: Color.fromString("#FFFFFF"),
3754
- systemGroupedBackground: Color.fromString("#F2F2F7"),
3755
- secondarySystemGroupedBackground: Color.fromString("#FFFFFF"),
3756
- tertiarySystemGroupedBackground: Color.fromString("#F2F2F7"),
3757
- separator: Color.fromString("rgba(60, 60, 67, 0.29)"),
3758
- opaqueSeparator: Color.fromString("#C6C6C8"),
3759
- link: Color.fromString("#007AFF"),
3760
- destructiveRed: Color.fromString("#FF3B30")
3761
- };
3762
- var CupertinoActivityIndicator_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
3763
- __name: "CupertinoActivityIndicator",
3764
- props: {
3765
- animating: {
3766
- type: Boolean,
3767
- default: !0
3768
- },
3769
- color: { default: () => CupertinoColors.systemGrey },
3770
- radius: { default: 10 }
3771
- },
3772
- setup(e) {
3773
- useCssVars((e) => ({ v4cadb9aa: w.color.toString() }));
3774
- let w = e, T = computed(() => ({
3775
- width: `${w.radius * 2}px`,
3776
- height: `${w.radius * 2}px`,
3777
- position: "relative",
3778
- display: "inline-block"
3779
- })), E = (e) => {
3780
- let C = w.radius / 3.5;
3781
- return w.radius / 1.2, w.color.toString(), {
3782
- position: "absolute",
3783
- top: "0",
3784
- left: `calc(50% - ${C / 2}px)`,
3785
- width: `${C}px`,
3786
- height: "100%",
3787
- transform: `rotate(${e * 30}deg)`
3788
- };
3789
- };
3790
- return (e, w) => (openBlock(), createElementBlock("div", {
3791
- class: "flue-cupertino-activity-indicator",
3792
- style: normalizeStyle(T.value)
3793
- }, [(openBlock(), createElementBlock(Fragment, null, renderList(12, (e) => createElementVNode("div", {
3794
- key: e,
3795
- class: "flue-cupertino-activity-indicator-blade",
3796
- style: normalizeStyle(E(e - 1))
3797
- }, null, 4)), 64))], 4));
3798
- }
3799
- }), [["__scopeId", "data-v-32d57a59"]]), CupertinoPageScaffold_default = /* @__PURE__ */ defineComponent({
3600
+ }), CupertinoPageScaffold_default = /* @__PURE__ */ defineComponent({
3800
3601
  __name: "CupertinoPageScaffold",
3801
3602
  props: { backgroundColor: { default: "#F2F2F7" } },
3802
3603
  setup(e) {
@@ -4283,7 +4084,123 @@ var CupertinoActivityIndicator_default = /* @__PURE__ */ __plugin_vue_export_hel
4283
4084
  class: "flue-constrained-box"
4284
4085
  }, [renderSlot(e.$slots, "default")], 4));
4285
4086
  }
4286
- }), sharedCanvas = null, sharedCtx = null, getCanvasContext = () => sharedCtx || (typeof OffscreenCanvas < "u" ? (sharedCanvas = new OffscreenCanvas(1, 1), sharedCtx = sharedCanvas.getContext("2d", { willReadFrequently: !0 })) : (sharedCanvas = document.createElement("canvas"), sharedCtx = sharedCanvas.getContext("2d", { willReadFrequently: !0 })), sharedCtx);
4087
+ }), Color = class e {
4088
+ _r;
4089
+ _g;
4090
+ _b;
4091
+ _a;
4092
+ constructor(e) {
4093
+ this._a = e >> 24 & 255, this._r = e >> 16 & 255, this._g = e >> 8 & 255, this._b = e & 255;
4094
+ }
4095
+ static fromARGB(C, w, T, E) {
4096
+ return new e(((C & 255) << 24 | (w & 255) << 16 | (T & 255) << 8 | E & 255) >>> 0);
4097
+ }
4098
+ static fromRGBO(C, w, T, E) {
4099
+ let D = Math.round(E * 255);
4100
+ return e.fromRGB(C, w, T, D);
4101
+ }
4102
+ static fromRGB(C, w, T, E = 255) {
4103
+ return e.fromARGB(E, C, w, T);
4104
+ }
4105
+ static fromString(C) {
4106
+ if (!C || C === "transparent") return new e(0);
4107
+ if (C.startsWith("#")) {
4108
+ let w = C.slice(1);
4109
+ if (w.length === 3 && (w = w.split("").map((e) => e + e).join("")), w.length === 6) return new e(4278190080 | parseInt(w, 16));
4110
+ if (w.length === 8) {
4111
+ let C = parseInt(w.substring(0, 2), 16), T = parseInt(w.substring(2, 4), 16), E = parseInt(w.substring(4, 6), 16), D = parseInt(w.substring(6, 8), 16);
4112
+ return e.fromARGB(D, C, T, E);
4113
+ }
4114
+ }
4115
+ if (C.startsWith("rgb")) {
4116
+ let w = C.match(/[\d.]+/g);
4117
+ if (w && w.length >= 3) {
4118
+ let C = parseFloat(w[0]), T = parseFloat(w[1]), E = parseFloat(w[2]), D = w[3] === void 0 ? 1 : parseFloat(w[3]);
4119
+ return e.fromRGBO(C, T, E, D);
4120
+ }
4121
+ }
4122
+ return console.warn(`[Color] Could not parse color string: ${C}`), new e(0);
4123
+ }
4124
+ get alpha() {
4125
+ return this._a;
4126
+ }
4127
+ get opacity() {
4128
+ return this._a / 255;
4129
+ }
4130
+ get red() {
4131
+ return this._r;
4132
+ }
4133
+ get green() {
4134
+ return this._g;
4135
+ }
4136
+ get blue() {
4137
+ return this._b;
4138
+ }
4139
+ withAlpha(C) {
4140
+ return e.fromARGB(C, this._r, this._g, this._b);
4141
+ }
4142
+ withOpacity(C) {
4143
+ return e.fromRGBO(this._r, this._g, this._b, C);
4144
+ }
4145
+ withRed(C) {
4146
+ return e.fromARGB(this._a, C, this._g, this._b);
4147
+ }
4148
+ withGreen(C) {
4149
+ return e.fromARGB(this._a, this._r, C, this._b);
4150
+ }
4151
+ withBlue(C) {
4152
+ return e.fromARGB(this._a, this._r, this._g, C);
4153
+ }
4154
+ computeLuminance() {
4155
+ let e = this._r / 255, C = this._g / 255, w = this._b / 255, T = e <= .03928 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, E = C <= .03928 ? C / 12.92 : ((C + .055) / 1.055) ** 2.4, D = w <= .03928 ? w / 12.92 : ((w + .055) / 1.055) ** 2.4;
4156
+ return .2126 * T + .7152 * E + .0722 * D;
4157
+ }
4158
+ toString() {
4159
+ if (this._a === 255) return `rgb(${this._r}, ${this._g}, ${this._b})`;
4160
+ let e = Number((this._a / 255).toFixed(3));
4161
+ return `rgba(${this._r}, ${this._g}, ${this._b}, ${e})`;
4162
+ }
4163
+ get value() {
4164
+ return ((this._a & 255) << 24 | (this._r & 255) << 16 | (this._g & 255) << 8 | this._b & 255) >>> 0;
4165
+ }
4166
+ };
4167
+ function withOpacity(e, C) {
4168
+ return (e instanceof Color ? e : Color.fromString(e)).withOpacity(C).toString();
4169
+ }
4170
+ function withAlpha(e, C) {
4171
+ return (e instanceof Color ? e : Color.fromString(e)).withAlpha(C).toString();
4172
+ }
4173
+ function withRed(e, C) {
4174
+ return (e instanceof Color ? e : Color.fromString(e)).withRed(C).toString();
4175
+ }
4176
+ function withGreen(e, C) {
4177
+ return (e instanceof Color ? e : Color.fromString(e)).withGreen(C).toString();
4178
+ }
4179
+ function withBlue(e, C) {
4180
+ return (e instanceof Color ? e : Color.fromString(e)).withBlue(C).toString();
4181
+ }
4182
+ function computeLuminance(e) {
4183
+ return (e instanceof Color ? e : Color.fromString(e)).computeLuminance();
4184
+ }
4185
+ function lighten(e, C) {
4186
+ let w = e instanceof Color ? e : Color.fromString(e), T = Math.max(0, Math.min(1, C)), E = Math.round(w.red + (255 - w.red) * T), D = Math.round(w.green + (255 - w.green) * T), O = Math.round(w.blue + (255 - w.blue) * T);
4187
+ return Color.fromARGB(w.alpha, E, D, O).toString();
4188
+ }
4189
+ function darken(e, C) {
4190
+ let w = e instanceof Color ? e : Color.fromString(e), T = Math.max(0, Math.min(1, C)), E = Math.round(w.red * (1 - T)), D = Math.round(w.green * (1 - T)), O = Math.round(w.blue * (1 - T));
4191
+ return Color.fromARGB(w.alpha, E, D, O).toString();
4192
+ }
4193
+ const ColorUtils = {
4194
+ withOpacity,
4195
+ withAlpha,
4196
+ withRed,
4197
+ withGreen,
4198
+ withBlue,
4199
+ lighten,
4200
+ darken,
4201
+ computeLuminance
4202
+ };
4203
+ var sharedCanvas = null, sharedCtx = null, getCanvasContext = () => sharedCtx || (typeof OffscreenCanvas < "u" ? (sharedCanvas = new OffscreenCanvas(1, 1), sharedCtx = sharedCanvas.getContext("2d", { willReadFrequently: !0 })) : (sharedCanvas = document.createElement("canvas"), sharedCtx = sharedCanvas.getContext("2d", { willReadFrequently: !0 })), sharedCtx);
4287
4204
  async function extractDominantColor(e) {
4288
4205
  return new Promise((C, w) => {
4289
4206
  let T = new Image();
@@ -4664,16 +4581,20 @@ var LinearProgressIndicator_default = /* @__PURE__ */ __plugin_vue_export_helper
4664
4581
  value: { default: null },
4665
4582
  color: { default: () => Colors.blue },
4666
4583
  backgroundColor: { default: () => Colors.blue.withOpacity(.2) },
4667
- minHeight: { default: 4 }
4584
+ minHeight: { default: 4 },
4585
+ borderRadius: {}
4668
4586
  },
4669
4587
  setup(e) {
4670
- let C = e, w = computed(() => ({
4671
- height: `${C.minHeight}px`,
4672
- backgroundColor: C.backgroundColor.toString(),
4673
- overflow: "hidden",
4674
- position: "relative",
4675
- width: "100%"
4676
- })), T = computed(() => {
4588
+ let C = e, w = computed(() => {
4589
+ let e = {
4590
+ height: `${C.minHeight}px`,
4591
+ backgroundColor: C.backgroundColor.toString(),
4592
+ overflow: "hidden",
4593
+ position: "relative",
4594
+ width: "100%"
4595
+ };
4596
+ return C.borderRadius && (typeof C.borderRadius == "number" ? Object.assign(e, borderRadiusToStyle(BorderRadius.circular(C.borderRadius))) : isBorderRadius(C.borderRadius) && Object.assign(e, borderRadiusToStyle(C.borderRadius))), e;
4597
+ }), T = computed(() => {
4677
4598
  let e = C.value === null, w = C.color.toString();
4678
4599
  return e ? {
4679
4600
  backgroundColor: w,
@@ -4696,7 +4617,7 @@ var LinearProgressIndicator_default = /* @__PURE__ */ __plugin_vue_export_helper
4696
4617
  style: normalizeStyle(T.value)
4697
4618
  }, null, 4)], 4));
4698
4619
  }
4699
- }), [["__scopeId", "data-v-66847fc1"]]), _hoisted_1 = ["stroke", "stroke-width"], _hoisted_2 = [
4620
+ }), [["__scopeId", "data-v-56dbe01e"]]), _hoisted_1 = ["stroke", "stroke-width"], _hoisted_2 = [
4700
4621
  "stroke",
4701
4622
  "stroke-width",
4702
4623
  "stroke-dasharray",
@@ -4754,5 +4675,90 @@ var LinearProgressIndicator_default = /* @__PURE__ */ __plugin_vue_export_helper
4754
4675
  }, null, 12, _hoisted_2)], 4))], 4));
4755
4676
  }
4756
4677
  }), [["__scopeId", "data-v-f3b133b5"]]);
4678
+ const CupertinoColors = {
4679
+ withOpacity: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withOpacity(C),
4680
+ withAlpha: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withAlpha(C),
4681
+ withRed: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withRed(C),
4682
+ withGreen: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withGreen(C),
4683
+ withBlue: (e, C) => (typeof e == "string" ? Color.fromString(e) : e).withBlue(C),
4684
+ computeLuminance: (e) => (typeof e == "string" ? Color.fromString(e) : e).computeLuminance(),
4685
+ lighten: (e, C) => Color.fromString(typeof e == "string" ? e : e.toString()),
4686
+ darken: (e, C) => Color.fromString(typeof e == "string" ? e : e.toString()),
4687
+ activeBlue: Color.fromString("#007AFF"),
4688
+ activeGreen: Color.fromString("#34C759"),
4689
+ activeOrange: Color.fromString("#FF9500"),
4690
+ white: Color.fromString("#FFFFFF"),
4691
+ black: Color.fromString("#000000"),
4692
+ lightBackgroundGray: Color.fromString("#EFEFF4"),
4693
+ extraLightBackgroundGray: Color.fromString("#EFEFF4"),
4694
+ darkBackgroundGray: Color.fromString("#171717"),
4695
+ label: Color.fromString("#000000"),
4696
+ secondaryLabel: Color.fromString("rgba(60, 60, 67, 0.60)"),
4697
+ tertiaryLabel: Color.fromString("rgba(60, 60, 67, 0.30)"),
4698
+ quaternaryLabel: Color.fromString("rgba(60, 60, 67, 0.18)"),
4699
+ systemBlue: Color.fromString("#007AFF"),
4700
+ systemGreen: Color.fromString("#34C759"),
4701
+ systemIndigo: Color.fromString("#5856D6"),
4702
+ systemOrange: Color.fromString("#FF9500"),
4703
+ systemPink: Color.fromString("#FF2D55"),
4704
+ systemPurple: Color.fromString("#AF52DE"),
4705
+ systemRed: Color.fromString("#FF3B30"),
4706
+ systemTeal: Color.fromString("#5AC8FA"),
4707
+ systemYellow: Color.fromString("#FFCC00"),
4708
+ systemGrey: Color.fromString("#8E8E93"),
4709
+ systemGrey2: Color.fromString("#AEAEB2"),
4710
+ systemGrey3: Color.fromString("#C7C7CC"),
4711
+ systemGrey4: Color.fromString("#D1D1D6"),
4712
+ systemGrey5: Color.fromString("#E5E5EA"),
4713
+ systemGrey6: Color.fromString("#F2F2F7"),
4714
+ systemBackground: Color.fromString("#FFFFFF"),
4715
+ secondarySystemBackground: Color.fromString("#F2F2F7"),
4716
+ tertiarySystemBackground: Color.fromString("#FFFFFF"),
4717
+ systemGroupedBackground: Color.fromString("#F2F2F7"),
4718
+ secondarySystemGroupedBackground: Color.fromString("#FFFFFF"),
4719
+ tertiarySystemGroupedBackground: Color.fromString("#F2F2F7"),
4720
+ separator: Color.fromString("rgba(60, 60, 67, 0.29)"),
4721
+ opaqueSeparator: Color.fromString("#C6C6C8"),
4722
+ link: Color.fromString("#007AFF"),
4723
+ destructiveRed: Color.fromString("#FF3B30")
4724
+ };
4725
+ var CupertinoActivityIndicator_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
4726
+ __name: "CupertinoActivityIndicator",
4727
+ props: {
4728
+ animating: {
4729
+ type: Boolean,
4730
+ default: !0
4731
+ },
4732
+ color: { default: () => CupertinoColors.systemGrey },
4733
+ radius: { default: 10 }
4734
+ },
4735
+ setup(e) {
4736
+ useCssVars((e) => ({ v1892c8c4: w.color.toString() }));
4737
+ let w = e, T = computed(() => ({
4738
+ width: `${w.radius * 2}px`,
4739
+ height: `${w.radius * 2}px`,
4740
+ position: "relative",
4741
+ display: "inline-block"
4742
+ })), E = (e) => {
4743
+ let C = w.radius / 3.5;
4744
+ return w.radius / 1.2, w.color.toString(), {
4745
+ position: "absolute",
4746
+ top: "0",
4747
+ left: `calc(50% - ${C / 2}px)`,
4748
+ width: `${C}px`,
4749
+ height: "100%",
4750
+ transform: `rotate(${e * 30}deg)`
4751
+ };
4752
+ };
4753
+ return (e, w) => (openBlock(), createElementBlock("div", {
4754
+ class: "flue-cupertino-activity-indicator",
4755
+ style: normalizeStyle(T.value)
4756
+ }, [(openBlock(), createElementBlock(Fragment, null, renderList(12, (e) => createElementVNode("div", {
4757
+ key: e,
4758
+ class: "flue-cupertino-activity-indicator-blade",
4759
+ style: normalizeStyle(E(e - 1))
4760
+ }, null, 4)), 64))], 4));
4761
+ }
4762
+ }), [["__scopeId", "data-v-387402c7"]]);
4757
4763
  setTransform(!1);
4758
4764
  export { AlertDialog_default as AlertDialog, Align_default as Align, Alignment, AnimatedContainer_default as AnimatedContainer, AnimatedOpacity_default as AnimatedOpacity, AppBar_default as AppBar, AspectRatio_default as AspectRatio, AssetImage, BlurStyle, Border, BorderRadius, BorderSide, BottomNavigationBar_default as BottomNavigationBar, BottomSheet_default as BottomSheet, Box_default as Box, BoxAlignment, BoxConstraints, BoxDecoration, BoxFit, BoxShadow, BoxShape, Builder_default as Builder, Button_default as Button, ButtonStyle, Card_default as Card, Center_default as Center, Checkbox_default as Checkbox, CheckboxGroup_default as CheckboxGroup, CircularProgressIndicator_default as CircularProgressIndicator, Clip, ClipOval_default as ClipOval, ClipRRect_default as ClipRRect, Color, ColorUtils, Colors, Column_default as Column, ConstrainedBox_default as ConstrainedBox, Container_default as Container, CrossAxisAlignment, CupertinoActivityIndicator_default as CupertinoActivityIndicator, CupertinoColors, CupertinoContextMenu_default as CupertinoContextMenu, CupertinoNavigationBar_default as CupertinoNavigationBar, CupertinoPageScaffold_default as CupertinoPageScaffold, DecorationImage, Divider_default as Divider, EdgeInsets, Expanded_default as Expanded, Fixed_default as Fixed, FlexBox_default as FlexBox, FontStyle, FontWeight, GestureDetector_default as GestureDetector, GridView_default as GridView, Icon_default as Icon, IgnorePointer_default as IgnorePointer, Image_default as Image, ImageColorBackground_default as ImageColorBackground, ImageUtils, InkWell_default as InkWell, LayoutBuilder_default as LayoutBuilder, LinearGradient, LinearProgressIndicator_default as LinearProgressIndicator, ListTile_default as ListTile, ListView_default as ListView, MainAxisAlignment, Matrix4, MediaQuery_default as MediaQuery, MediaQueryKey, MemoryImage, NetworkImage, Opacity_default as Opacity, Orientation, OutlineInputBorder, Padding_default as Padding, Positioned_default as Positioned, RadialGradient, Radio_default as Radio, RadioGroup_default as RadioGroup, RadioListTile_default as RadioListTile, RangeSlider_default as RangeSlider, Row_default as Row, SafeArea_default as SafeArea, Scaffold_default as Scaffold, ScrollView_default as ScrollView, SegmentedControl_default as SegmentedControl, Size, SizedBox_default as SizedBox, Slider_default as Slider, SnackBar, Spacer_default as Spacer, Stack_default as Stack, StackFit, Sticky_default as Sticky, Switch_default as Switch, Text_default as Text, TextAlign, TextArea_default as TextArea, TextBaseline, TextDecoration, TextDecorationStyle, TextDirection, TextField_default as TextField, TextOverflow, TextStyle, TileMode, Transform_default as Transform, UnderlineInputBorder, Wrap_default as Wrap, borderRadiusToStyle, borderSideToStyle, borderToStyle, boxConstraintsToStyle, boxDecorationToStyle, boxShadowToCSS, buttonStyleToStyle, computeLuminance, createAssetImage, darken, decorationImageToStyle, edgeInsetsToStyle, extractDominantColor, isBorderRadius, isBorderSide, isBorders, isBoxConstraints, isBoxDecoration, isBoxShadow, isEdgeInsets, isImageProvider, isTextStyle, lighten, marginToStyle, matrix4ToCSSStyle, normalizeSrc, paddingToStyle, px2vw, setAssetBaseURL, setBaseUrl, setDefaultVW, setTransform, sizeToStyle, toCSSStyle as textStyleToCSSStyle, toCSSStyle, useMediaQuery, withAlpha, withBlue, withGreen, withOpacity, withRed };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluekit",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "A Flutter-style Layout UI kit for Vue",
5
5
  "homepage": "https://fi2zz.github.io/fluekit/",
6
6
  "repository": {