fluekit 1.5.77 → 1.5.78

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.
@@ -1,17 +1,30 @@
1
- interface Props {
2
- value: boolean;
3
- onChanged?: (value: boolean) => void;
1
+ export interface CheckboxProps<T> {
2
+ value?: T;
3
+ onChanged?: (value: T) => void;
4
4
  activeColor?: string;
5
5
  checkColor?: string;
6
+ labelPosition?: "left" | "right";
7
+ hideIcon?: boolean;
6
8
  }
7
- declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
8
- change: (value: boolean) => any;
9
- "update:value": (value: boolean) => any;
10
- }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
11
- onChange?: ((value: boolean) => any) | undefined;
12
- "onUpdate:value"?: ((value: boolean) => any) | undefined;
13
- }>, {
14
- activeColor: string;
15
- checkColor: string;
16
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
10
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
11
+ readonly onChange?: ((value: T) => any) | undefined;
12
+ readonly "onUpdate:value"?: ((value: T) => any) | undefined;
13
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onChange" | "onUpdate:value"> & CheckboxProps<T> & Partial<{}>> & import('vue').PublicProps;
14
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
15
+ attrs: any;
16
+ slots: {
17
+ default?(_: {}): any;
18
+ default?(_: {}): any;
19
+ };
20
+ emit: {
21
+ (e: "update:value", value: T): void;
22
+ (e: "change", value: T): void;
23
+ };
24
+ }>) => import('vue').VNode & {
25
+ __ctx?: Awaited<typeof __VLS_setup>;
26
+ };
17
27
  export default _default;
28
+ type __VLS_PrettifyLocal<T> = {
29
+ [K in keyof T]: T[K];
30
+ } & {};
@@ -0,0 +1,25 @@
1
+ export interface CheckboxGroupProps<T> {
2
+ value?: T[];
3
+ disabled?: boolean;
4
+ }
5
+ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
6
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
7
+ readonly onChange?: ((value: T[]) => any) | undefined;
8
+ readonly "onUpdate:value"?: ((value: T[]) => any) | undefined;
9
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onChange" | "onUpdate:value"> & CheckboxGroupProps<T> & Partial<{}>> & import('vue').PublicProps;
10
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
11
+ attrs: any;
12
+ slots: {
13
+ default?(_: {}): any;
14
+ };
15
+ emit: {
16
+ (e: "update:value", value: T[]): void;
17
+ (e: "change", value: T[]): void;
18
+ };
19
+ }>) => import('vue').VNode & {
20
+ __ctx?: Awaited<typeof __VLS_setup>;
21
+ };
22
+ export default _default;
23
+ type __VLS_PrettifyLocal<T> = {
24
+ [K in keyof T]: T[K];
25
+ } & {};
@@ -0,0 +1,7 @@
1
+ import { Ref, InjectionKey } from 'vue';
2
+ export interface CheckboxGroupContext<T = any> {
3
+ value: Ref<T[]>;
4
+ disabled: Ref<boolean>;
5
+ updateValue: (val: T) => void;
6
+ }
7
+ export declare const CheckboxGroupKey: InjectionKey<CheckboxGroupContext>;
package/dist/Radio.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  export interface RadioProps<T> {
2
2
  value: T;
3
- groupValue: T;
3
+ groupValue?: T;
4
4
  onChanged?: (value: T) => void;
5
5
  activeColor?: string;
6
+ fillColor?: string;
7
+ labelPosition?: "left" | "right";
8
+ hideIcon?: boolean;
6
9
  }
7
10
  declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
11
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
@@ -11,7 +14,10 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
11
14
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onChange" | "onUpdate:groupValue"> & RadioProps<T> & Partial<{}>> & import('vue').PublicProps;
12
15
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
13
16
  attrs: any;
14
- slots: {};
17
+ slots: {
18
+ default?(_: {}): any;
19
+ default?(_: {}): any;
20
+ };
15
21
  emit: {
16
22
  (e: "update:groupValue", value: T): void;
17
23
  (e: "change", value: T): void;
@@ -0,0 +1,26 @@
1
+ export interface RadioGroupProps<T> {
2
+ value?: T;
3
+ activeColor?: string;
4
+ disabled?: boolean;
5
+ }
6
+ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
7
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
8
+ readonly onChange?: ((value: T) => any) | undefined;
9
+ readonly "onUpdate:value"?: ((value: T) => any) | undefined;
10
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onChange" | "onUpdate:value"> & RadioGroupProps<T> & Partial<{}>> & import('vue').PublicProps;
11
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
12
+ attrs: any;
13
+ slots: {
14
+ default?(_: {}): any;
15
+ };
16
+ emit: {
17
+ (e: "update:value", value: T): void;
18
+ (e: "change", value: T): void;
19
+ };
20
+ }>) => import('vue').VNode & {
21
+ __ctx?: Awaited<typeof __VLS_setup>;
22
+ };
23
+ export default _default;
24
+ type __VLS_PrettifyLocal<T> = {
25
+ [K in keyof T]: T[K];
26
+ } & {};
@@ -0,0 +1,43 @@
1
+ import { EdgeInsets } from './EdgeInsets';
2
+ export interface RadioListTileProps<T> {
3
+ value: T;
4
+ groupValue: T;
5
+ onChanged?: (value: T) => void;
6
+ activeColor?: string;
7
+ fillColor?: string;
8
+ title?: string;
9
+ subtitle?: string;
10
+ secondary?: any;
11
+ controlAffinity?: "leading" | "trailing";
12
+ contentPadding?: EdgeInsets;
13
+ tileColor?: string;
14
+ selected?: boolean;
15
+ selectedColor?: string;
16
+ enabled?: boolean;
17
+ dense?: boolean;
18
+ hideIcon?: boolean;
19
+ }
20
+ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
21
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
22
+ readonly onChange?: ((value: T) => any) | undefined;
23
+ readonly "onUpdate:groupValue"?: ((value: T) => any) | undefined;
24
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onChange" | "onUpdate:groupValue"> & RadioListTileProps<T> & Partial<{}>> & import('vue').PublicProps;
25
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
26
+ attrs: any;
27
+ slots: {
28
+ secondary?(_: {}): any;
29
+ secondary?(_: {}): any;
30
+ title?(_: {}): any;
31
+ subtitle?(_: {}): any;
32
+ };
33
+ emit: {
34
+ (e: "update:groupValue", value: T): void;
35
+ (e: "change", value: T): void;
36
+ };
37
+ }>) => import('vue').VNode & {
38
+ __ctx?: Awaited<typeof __VLS_setup>;
39
+ };
40
+ export default _default;
41
+ type __VLS_PrettifyLocal<T> = {
42
+ [K in keyof T]: T[K];
43
+ } & {};
@@ -0,0 +1,8 @@
1
+ import { Ref, InjectionKey } from 'vue';
2
+ export interface RadioGroupContext<T = any> {
3
+ groupValue: Ref<T | undefined>;
4
+ updateValue: (val: T) => void;
5
+ activeColor?: Ref<string | undefined>;
6
+ disabled?: Ref<boolean>;
7
+ }
8
+ export declare const RadioGroupKey: InjectionKey<RadioGroupContext>;
package/dist/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .fluekit-button[data-v-2bc95a68]{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-2bc95a68]:disabled{cursor:default}.fluekit-image[data-v-ce382550]{display:block}.flutter-list-view[data-v-7ba20c73]{flex-direction:column;display:flex}.list-view-shrink-wrap[data-v-7ba20c73]{flex:none}.flutter-stack[data-v-aefe47c2]>*{grid-area:1/1/2/2}.fluekit-text-field[data-v-0b411f19]{margin-top:16px;font-family:inherit;position:relative}.fluekit-input-container[data-v-0b411f19]{box-sizing:border-box;width:100%}.fluekit-input-element[data-v-0b411f19]{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-0b411f19]{z-index:1}.fluekit-input-footer[data-v-0b411f19]{justify-content:space-between;margin-top:4px;display:flex}.fluekit-input-helper[data-v-0b411f19]{color:#666;font-size:12px}.fluekit-input-helper-spacer[data-v-0b411f19]{flex:1}.fluekit-input-counter[data-v-0b411f19]{color:#666;margin-left:auto;font-size:12px}.fluekit-input-helper.is-error[data-v-0b411f19]{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}@keyframes cupertino-activity-indicator-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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}
1
+ .fluekit-button[data-v-2bc95a68]{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-2bc95a68]:disabled{cursor:default}.fluekit-image[data-v-ce382550]{display:block}.flutter-list-view[data-v-7ba20c73]{flex-direction:column;display:flex}.list-view-shrink-wrap[data-v-7ba20c73]{flex:none}.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}@keyframes cupertino-activity-indicator-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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}
2
2
  /*$vite$:1*/
package/dist/index.d.ts CHANGED
@@ -36,7 +36,10 @@ export { default as ListTile } from './ListTile';
36
36
  export { default as InkWell } from './InkWell';
37
37
  export { default as Switch } from './Switch';
38
38
  export { default as Checkbox } from './Checkbox';
39
+ export { default as CheckboxGroup } from './CheckboxGroup';
39
40
  export { default as Radio } from './Radio';
41
+ export { default as RadioGroup } from './RadioGroup';
42
+ export { default as RadioListTile } from './RadioListTile';
40
43
  export { default as Slider } from './Slider';
41
44
  export { default as RangeSlider } from './RangeSlider';
42
45
  export { default as AlertDialog } from './AlertDialog';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Comment, Fragment, Text, cloneVNode, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, h, inject, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, provide, reactive, ref, render, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, unref, useAttrs, useSlots, warn, watch, withCtx, withModifiers } from "vue";
1
+ import { Comment, Fragment, Text, cloneVNode, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, h, inject, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, provide, reactive, ref, render, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toRefs, unref, useAttrs, useSlots, warn, watch, withCtx, withModifiers } from "vue";
2
2
  function isUndefined(e) {
3
3
  return e === void 0;
4
4
  }
@@ -1018,7 +1018,7 @@ var GestureDetector_default = defineComponent({
1018
1018
  return e ? e.type === Text ? h("span", O, [e]) : isHtmlTag(e) ? cloneVNode(e, O) : e : null;
1019
1019
  };
1020
1020
  }
1021
- }), _hoisted_1$4 = ["disabled"], Button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1021
+ }), _hoisted_1$7 = ["disabled"], Button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1022
1022
  inheritAttrs: !1,
1023
1023
  __name: "Button",
1024
1024
  props: {
@@ -1080,7 +1080,7 @@ var GestureDetector_default = defineComponent({
1080
1080
  class: ["fluekit-button", unref(k).class],
1081
1081
  style: L.value,
1082
1082
  disabled: e.disabled
1083
- }, F.value), [renderSlot(w.$slots, "default", {}, void 0, !0)], 16, _hoisted_1$4)]),
1083
+ }, F.value), [renderSlot(w.$slots, "default", {}, void 0, !0)], 16, _hoisted_1$7)]),
1084
1084
  _: 3
1085
1085
  }, 8, ["behavior"]));
1086
1086
  }
@@ -1502,7 +1502,7 @@ function createAssetImage(e) {
1502
1502
  ...T
1503
1503
  });
1504
1504
  }
1505
- var _hoisted_1$3 = ["src", "alt"], Image_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
1505
+ var _hoisted_1$6 = ["src", "alt"], Image_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
1506
1506
  inheritAttrs: !1,
1507
1507
  __name: "Image",
1508
1508
  props: {
@@ -1560,9 +1560,9 @@ var _hoisted_1$3 = ["src", "alt"], Image_default = /* @__PURE__ */ __plugin_vue_
1560
1560
  alt: e.alt,
1561
1561
  onLoad: F,
1562
1562
  onError: I
1563
- }, null, 44, _hoisted_1$3)], 16));
1563
+ }, null, 44, _hoisted_1$6)], 16));
1564
1564
  }
1565
- }), [["__scopeId", "data-v-ce382550"]]), _hoisted_1$2 = {
1565
+ }), [["__scopeId", "data-v-ce382550"]]), _hoisted_1$5 = {
1566
1566
  key: 0,
1567
1567
  class: "list-view-separator"
1568
1568
  }, ListView_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -1608,7 +1608,7 @@ var _hoisted_1$3 = ["src", "alt"], Image_default = /* @__PURE__ */ __plugin_vue_
1608
1608
  default: withCtx(() => [createElementVNode("div", {
1609
1609
  class: "list-view-content",
1610
1610
  style: normalizeStyle(M.value)
1611
- }, [e.itemCount ? (openBlock(!0), createElementBlock(Fragment, { key: 1 }, renderList(e.itemCount, (E) => (openBlock(), createElementBlock(Fragment, { key: E - 1 }, [renderSlot(T.$slots, "item", { index: E - 1 }, void 0, !0), e.separator && E < e.itemCount ? (openBlock(), createElementBlock("div", _hoisted_1$2, [renderSlot(T.$slots, "separator", { index: E - 1 }, void 0, !0)])) : createCommentVNode("", !0)], 64))), 128)) : renderSlot(T.$slots, "default", { key: 0 }, void 0, !0)], 4)]),
1611
+ }, [e.itemCount ? (openBlock(!0), createElementBlock(Fragment, { key: 1 }, renderList(e.itemCount, (E) => (openBlock(), createElementBlock(Fragment, { key: E - 1 }, [renderSlot(T.$slots, "item", { index: E - 1 }, void 0, !0), e.separator && E < e.itemCount ? (openBlock(), createElementBlock("div", _hoisted_1$5, [renderSlot(T.$slots, "separator", { index: E - 1 }, void 0, !0)])) : createCommentVNode("", !0)], 64))), 128)) : renderSlot(T.$slots, "default", { key: 0 }, void 0, !0)], 4)]),
1612
1612
  _: 3
1613
1613
  }, 8, [
1614
1614
  "scroll-direction",
@@ -1916,7 +1916,7 @@ function UnderlineInputBorder(e = {}) {
1916
1916
  isOutline: !1
1917
1917
  };
1918
1918
  }
1919
- var _hoisted_1$1 = {
1919
+ var _hoisted_1$4 = {
1920
1920
  key: 1,
1921
1921
  class: "fluekit-input-suffix"
1922
1922
  }, _hoisted_2 = {
@@ -2093,7 +2093,7 @@ var _hoisted_1$1 = {
2093
2093
  "enterkeyhint",
2094
2094
  "autocorrect"
2095
2095
  ])),
2096
- w.$slots.suffix || e.decoration?.suffixText ? (openBlock(), createElementBlock("div", _hoisted_1$1, [renderSlot(w.$slots, "suffix", {}, () => [createTextVNode(toDisplayString(e.decoration?.suffixText), 1)], !0)])) : createCommentVNode("", !0)
2096
+ w.$slots.suffix || e.decoration?.suffixText ? (openBlock(), createElementBlock("div", _hoisted_1$4, [renderSlot(w.$slots, "suffix", {}, () => [createTextVNode(toDisplayString(e.decoration?.suffixText), 1)], !0)])) : createCommentVNode("", !0)
2097
2097
  ], 4),
2098
2098
  e.decoration?.errorText || e.decoration?.helperText || e.maxLength && e.maxLength > 0 ? (openBlock(), createElementBlock("div", _hoisted_2, [e.decoration?.errorText || e.decoration?.helperText ? (openBlock(), createElementBlock("div", {
2099
2099
  key: 0,
@@ -2101,7 +2101,7 @@ var _hoisted_1$1 = {
2101
2101
  }, toDisplayString(e.decoration?.errorText || e.decoration?.helperText), 3)) : (openBlock(), createElementBlock("div", _hoisted_3)), e.maxLength && e.maxLength > 0 ? (openBlock(), createElementBlock("div", _hoisted_4, toDisplayString(String(e.modelValue).length) + " / " + toDisplayString(e.maxLength), 1)) : createCommentVNode("", !0)])) : createCommentVNode("", !0)
2102
2102
  ], 2));
2103
2103
  }
2104
- }), [["__scopeId", "data-v-0b411f19"]]), TextArea_default = /* @__PURE__ */ defineComponent({
2104
+ }), [["__scopeId", "data-v-daef18e4"]]), TextArea_default = /* @__PURE__ */ defineComponent({
2105
2105
  inheritAttrs: !1,
2106
2106
  __name: "TextArea",
2107
2107
  props: { maxLines: { default: 4 } },
@@ -2633,88 +2633,270 @@ var Transform_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @_
2633
2633
  _: 1
2634
2634
  }));
2635
2635
  }
2636
- }), Checkbox_default = /* @__PURE__ */ defineComponent({
2636
+ });
2637
+ const CheckboxGroupKey = Symbol("CheckboxGroup");
2638
+ var _hoisted_1$3 = ["fill"], Checkbox_default = /* @__PURE__ */ defineComponent({
2637
2639
  __name: "Checkbox",
2638
2640
  props: {
2639
- value: { type: Boolean },
2641
+ value: {},
2640
2642
  onChanged: {},
2641
2643
  activeColor: { default: "#2196F3" },
2642
- checkColor: { default: "#FFFFFF" }
2644
+ checkColor: { default: "#FFFFFF" },
2645
+ labelPosition: { default: "right" },
2646
+ hideIcon: {
2647
+ type: Boolean,
2648
+ default: !1
2649
+ }
2643
2650
  },
2644
2651
  emits: ["update:value", "change"],
2645
2652
  setup(e, { emit: w }) {
2646
- let T = e, E = w, A = () => {
2647
- let e = !T.value;
2648
- E("change", e), E("update:value", e);
2649
- }, j = computed(() => BoxDecoration({
2650
- color: T.value ? T.activeColor : "transparent",
2651
- border: T.value ? void 0 : Border.all({
2653
+ let T = e, E = w, M = inject(CheckboxGroupKey, null), N = computed(() => M ? M.value.value.includes(T.value) : T.value === !0), F = computed(() => M?.disabled.value), I = () => {
2654
+ if (!F.value) if (M) M.updateValue(T.value);
2655
+ else {
2656
+ let e = !T.value;
2657
+ E("change", e), E("update:value", e);
2658
+ }
2659
+ }, L = computed(() => BoxDecoration({
2660
+ color: N.value ? T.activeColor : "transparent",
2661
+ border: N.value ? void 0 : Border.all({
2652
2662
  color: "rgba(0,0,0,0.54)",
2653
2663
  width: 2,
2654
2664
  style: "solid"
2655
2665
  }),
2656
2666
  borderRadius: BorderRadius.circular(2)
2657
2667
  }));
2658
- return (w, T) => (openBlock(), createBlock(GestureDetector_default, { onTap: A }, {
2659
- default: withCtx(() => [createVNode(Container_default, {
2660
- width: 18,
2661
- height: 18,
2662
- decoration: j.value,
2663
- alignment: "center"
2668
+ return (w, T) => (openBlock(), createBlock(GestureDetector_default, { onTap: I }, {
2669
+ default: withCtx(() => [createVNode(Row_default, {
2670
+ "main-axis-size": "min",
2671
+ "cross-axis-alignment": "center",
2672
+ gap: 8
2664
2673
  }, {
2665
- default: withCtx(() => [e.value ? (openBlock(), createBlock(Container_default, {
2666
- key: 0,
2667
- width: 10,
2668
- height: 10,
2669
- color: "white",
2670
- transform: "scale(1)"
2671
- })) : createCommentVNode("", !0)]),
2672
- _: 1
2673
- }, 8, ["decoration"])]),
2674
- _: 1
2674
+ default: withCtx(() => [
2675
+ e.labelPosition === "left" ? renderSlot(w.$slots, "default", { key: 0 }) : createCommentVNode("", !0),
2676
+ e.hideIcon ? createCommentVNode("", !0) : (openBlock(), createBlock(Container_default, {
2677
+ key: 1,
2678
+ width: 18,
2679
+ height: 18,
2680
+ decoration: L.value,
2681
+ alignment: "center"
2682
+ }, {
2683
+ default: withCtx(() => [N.value ? (openBlock(), createElementBlock("svg", {
2684
+ key: 0,
2685
+ viewBox: "0 0 24 24",
2686
+ width: 14,
2687
+ height: 14,
2688
+ fill: e.checkColor,
2689
+ style: { display: "block" }
2690
+ }, [...T[0] ||= [createElementVNode("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" }, null, -1)]], 8, _hoisted_1$3)) : createCommentVNode("", !0)]),
2691
+ _: 1
2692
+ }, 8, ["decoration"])),
2693
+ e.labelPosition === "right" ? renderSlot(w.$slots, "default", { key: 2 }) : createCommentVNode("", !0)
2694
+ ]),
2695
+ _: 3
2696
+ })]),
2697
+ _: 3
2675
2698
  }));
2676
2699
  }
2677
- }), Radio_default = /* @__PURE__ */ defineComponent({
2700
+ }), _hoisted_1$2 = { class: "flue-checkbox-group" }, CheckboxGroup_default = /* @__PURE__ */ defineComponent({
2701
+ __name: "CheckboxGroup",
2702
+ props: {
2703
+ value: { default: () => [] },
2704
+ disabled: {
2705
+ type: Boolean,
2706
+ default: !1
2707
+ }
2708
+ },
2709
+ emits: ["update:value", "change"],
2710
+ setup(e, { emit: w }) {
2711
+ let T = e, E = w, D = (e) => {
2712
+ let w = [...T.value], D = w.indexOf(e);
2713
+ D === -1 ? w.push(e) : w.splice(D, 1), E("update:value", w), E("change", w);
2714
+ }, { value: O, disabled: k } = toRefs(T);
2715
+ return provide(CheckboxGroupKey, {
2716
+ value: O,
2717
+ disabled: k,
2718
+ updateValue: D
2719
+ }), (e, w) => (openBlock(), createElementBlock("div", _hoisted_1$2, [renderSlot(e.$slots, "default")]));
2720
+ }
2721
+ });
2722
+ const RadioGroupKey = Symbol("RadioGroup");
2723
+ var Radio_default = /* @__PURE__ */ defineComponent({
2678
2724
  __name: "Radio",
2679
2725
  props: {
2680
2726
  value: {},
2681
2727
  groupValue: {},
2682
- onChanged: { type: Function },
2683
- activeColor: {}
2728
+ onChanged: {},
2729
+ activeColor: { default: "#007AFF" },
2730
+ fillColor: {},
2731
+ labelPosition: { default: "right" },
2732
+ hideIcon: {
2733
+ type: Boolean,
2734
+ default: !1
2735
+ }
2684
2736
  },
2685
2737
  emits: ["update:groupValue", "change"],
2686
2738
  setup(e, { emit: w }) {
2687
- let T = e, E = w, A = computed(() => T.value === T.groupValue), j = () => {
2688
- T.onChanged && T.onChanged(T.value), E("update:groupValue", T.value);
2689
- }, M = computed(() => BoxDecoration({
2739
+ let T = e, E = w, A = inject(RadioGroupKey, null), j = computed(() => A ? T.value === A.groupValue.value : T.value === T.groupValue), M = computed(() => A?.disabled?.value), N = computed(() => A && A.activeColor?.value ? A.activeColor.value : T.activeColor), F = () => {
2740
+ M.value || j.value || (A ? A.updateValue(T.value) : (T.onChanged && T.onChanged(T.value), E("update:groupValue", T.value), E("change", T.value)));
2741
+ }, I = computed(() => BoxDecoration({
2690
2742
  shape: BoxShape.circle,
2691
2743
  border: Border.all({
2692
- color: A.value ? T.activeColor : "rgba(0,0,0,0.54)",
2744
+ color: j.value ? N.value : "rgba(0,0,0,0.25)",
2693
2745
  width: 2,
2694
2746
  style: "solid"
2695
- })
2696
- })), N = computed(() => BoxDecoration({
2747
+ }),
2748
+ color: T.fillColor
2749
+ })), L = computed(() => BoxDecoration({
2697
2750
  shape: BoxShape.circle,
2698
- color: T.activeColor
2751
+ color: N.value
2699
2752
  }));
2700
- return (e, w) => (openBlock(), createBlock(GestureDetector_default, { onTap: j }, {
2701
- default: withCtx(() => [createVNode(Container_default, {
2702
- width: 20,
2703
- height: 20,
2704
- decoration: M.value,
2705
- alignment: "center"
2753
+ return (w, T) => (openBlock(), createBlock(GestureDetector_default, { onTap: F }, {
2754
+ default: withCtx(() => [createVNode(Row_default, {
2755
+ "main-axis-size": "min",
2756
+ "cross-axis-alignment": "center",
2757
+ gap: 8
2706
2758
  }, {
2707
- default: withCtx(() => [A.value ? (openBlock(), createBlock(Container_default, {
2708
- key: 0,
2709
- width: 10,
2710
- height: 10,
2711
- decoration: N.value
2712
- }, null, 8, ["decoration"])) : createCommentVNode("", !0)]),
2713
- _: 1
2714
- }, 8, ["decoration"])]),
2715
- _: 1
2759
+ default: withCtx(() => [
2760
+ e.labelPosition === "left" ? renderSlot(w.$slots, "default", { key: 0 }) : createCommentVNode("", !0),
2761
+ e.hideIcon ? createCommentVNode("", !0) : (openBlock(), createBlock(Container_default, {
2762
+ key: 1,
2763
+ width: 20,
2764
+ height: 20,
2765
+ decoration: I.value,
2766
+ alignment: "center"
2767
+ }, {
2768
+ default: withCtx(() => [j.value ? (openBlock(), createBlock(Container_default, {
2769
+ key: 0,
2770
+ width: 10,
2771
+ height: 10,
2772
+ decoration: L.value
2773
+ }, null, 8, ["decoration"])) : createCommentVNode("", !0)]),
2774
+ _: 1
2775
+ }, 8, ["decoration"])),
2776
+ e.labelPosition === "right" ? renderSlot(w.$slots, "default", { key: 2 }) : createCommentVNode("", !0)
2777
+ ]),
2778
+ _: 3
2779
+ })]),
2780
+ _: 3
2716
2781
  }));
2717
2782
  }
2783
+ }), _hoisted_1$1 = { class: "flue-radio-group" }, RadioGroup_default = /* @__PURE__ */ defineComponent({
2784
+ __name: "RadioGroup",
2785
+ props: {
2786
+ value: {},
2787
+ activeColor: {},
2788
+ disabled: {
2789
+ type: Boolean,
2790
+ default: !1
2791
+ }
2792
+ },
2793
+ emits: ["update:value", "change"],
2794
+ setup(e, { emit: w }) {
2795
+ let T = e, E = w, D = (e) => {
2796
+ T.value !== e && (E("update:value", e), E("change", e));
2797
+ }, { value: O, activeColor: k, disabled: j } = toRefs(T);
2798
+ return provide(RadioGroupKey, {
2799
+ groupValue: O,
2800
+ updateValue: D,
2801
+ activeColor: k,
2802
+ disabled: j
2803
+ }), (e, w) => (openBlock(), createElementBlock("div", _hoisted_1$1, [renderSlot(e.$slots, "default")]));
2804
+ }
2805
+ }), RadioListTile_default = /* @__PURE__ */ defineComponent({
2806
+ __name: "RadioListTile",
2807
+ props: {
2808
+ value: {},
2809
+ groupValue: {},
2810
+ onChanged: {},
2811
+ activeColor: {},
2812
+ fillColor: {},
2813
+ title: {},
2814
+ subtitle: {},
2815
+ secondary: {},
2816
+ controlAffinity: { default: "leading" },
2817
+ contentPadding: {},
2818
+ tileColor: {},
2819
+ selected: { type: Boolean },
2820
+ selectedColor: {},
2821
+ enabled: {
2822
+ type: Boolean,
2823
+ default: !0
2824
+ },
2825
+ dense: {
2826
+ type: Boolean,
2827
+ default: !1
2828
+ },
2829
+ hideIcon: {
2830
+ type: Boolean,
2831
+ default: !1
2832
+ }
2833
+ },
2834
+ emits: ["update:groupValue", "change"],
2835
+ setup(e, { emit: w }) {
2836
+ let T = e, E = w, D = () => {
2837
+ T.enabled && T.value !== T.groupValue && (T.onChanged && T.onChanged(T.value), E("update:groupValue", T.value), E("change", T.value));
2838
+ };
2839
+ return (w, T) => (openBlock(), createBlock(ListTile_default, {
2840
+ onTap: D,
2841
+ title: e.title,
2842
+ subtitle: e.subtitle,
2843
+ "content-padding": e.contentPadding,
2844
+ "tile-color": e.tileColor,
2845
+ selected: e.selected,
2846
+ "selected-color": e.selectedColor,
2847
+ enabled: e.enabled,
2848
+ dense: e.dense
2849
+ }, {
2850
+ leading: withCtx(() => [e.controlAffinity === "leading" ? (openBlock(), createBlock(Radio_default, {
2851
+ key: 0,
2852
+ value: e.value,
2853
+ "group-value": e.groupValue,
2854
+ "active-color": e.activeColor,
2855
+ "fill-color": e.fillColor,
2856
+ "hide-icon": e.hideIcon,
2857
+ onClick: T[0] ||= withModifiers(() => {}, ["stop"])
2858
+ }, null, 8, [
2859
+ "value",
2860
+ "group-value",
2861
+ "active-color",
2862
+ "fill-color",
2863
+ "hide-icon"
2864
+ ])) : renderSlot(w.$slots, "secondary", { key: 1 }, () => [e.secondary ? (openBlock(), createBlock(resolveDynamicComponent(e.secondary), { key: 0 })) : createCommentVNode("", !0)])]),
2865
+ title: withCtx(() => [renderSlot(w.$slots, "title", {}, () => [e.title ? (openBlock(), createBlock(Text_default, { key: 0 }, {
2866
+ default: withCtx(() => [createTextVNode(toDisplayString(e.title), 1)]),
2867
+ _: 1
2868
+ })) : createCommentVNode("", !0)])]),
2869
+ subtitle: withCtx(() => [renderSlot(w.$slots, "subtitle", {}, () => [e.subtitle ? (openBlock(), createBlock(Text_default, { key: 0 }, {
2870
+ default: withCtx(() => [createTextVNode(toDisplayString(e.subtitle), 1)]),
2871
+ _: 1
2872
+ })) : createCommentVNode("", !0)])]),
2873
+ trailing: withCtx(() => [e.controlAffinity === "trailing" ? (openBlock(), createBlock(Radio_default, {
2874
+ key: 0,
2875
+ value: e.value,
2876
+ "group-value": e.groupValue,
2877
+ "active-color": e.activeColor,
2878
+ "fill-color": e.fillColor,
2879
+ "hide-icon": e.hideIcon,
2880
+ onClick: T[1] ||= withModifiers(() => {}, ["stop"])
2881
+ }, null, 8, [
2882
+ "value",
2883
+ "group-value",
2884
+ "active-color",
2885
+ "fill-color",
2886
+ "hide-icon"
2887
+ ])) : renderSlot(w.$slots, "secondary", { key: 1 }, () => [e.secondary ? (openBlock(), createBlock(resolveDynamicComponent(e.secondary), { key: 0 })) : createCommentVNode("", !0)])]),
2888
+ _: 3
2889
+ }, 8, [
2890
+ "title",
2891
+ "subtitle",
2892
+ "content-padding",
2893
+ "tile-color",
2894
+ "selected",
2895
+ "selected-color",
2896
+ "enabled",
2897
+ "dense"
2898
+ ]));
2899
+ }
2718
2900
  }), Slider_default = /* @__PURE__ */ __plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
2719
2901
  __name: "Slider",
2720
2902
  props: {
@@ -3508,4 +3690,4 @@ var MediaQuery_default = /* @__PURE__ */ defineComponent({
3508
3690
  }
3509
3691
  };
3510
3692
  setTransform(!1);
3511
- export { AlertDialog_default as AlertDialog, Align_default as Align, Alignment, AnimatedContainer_default as AnimatedContainer, AnimatedOpacity_default as AnimatedOpacity, AssetImage, BlurStyle, Border, BorderRadius, BorderSide, 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, Clip, ClipOval_default as ClipOval, ClipRRect_default as ClipRRect, Column_default as Column, Container_default as Container, CrossAxisAlignment, CupertinoActivityIndicator_default as CupertinoActivityIndicator, DecorationImage, Divider_default as Divider, EdgeInsets, Expanded_default as Expanded, Fixed_default as Fixed, FontStyle, FontWeight, GestureDetector_default as GestureDetector, GridView_default as GridView, IgnorePointer_default as IgnorePointer, Image_default as Image, InkWell_default as InkWell, LayoutBuilder_default as LayoutBuilder, LinearGradient, 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, RangeSlider_default as RangeSlider, Row_default as Row, SafeArea_default as SafeArea, 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, createAssetImage, decorationImageToStyle, edgeInsetsToStyle, isBorderRadius, isBorderSide, isBorders, isBoxConstraints, isBoxDecoration, isBoxShadow, isEdgeInsets, isImageProvider, isTextStyle, marginToStyle, matrix4ToCSSStyle, normalizeSrc, paddingToStyle, px2vw, setAssetBaseURL, setBaseUrl, setDefaultVW, setTransform, sizeToStyle, toCSSStyle as textStyleToCSSStyle, toCSSStyle, useMediaQuery };
3693
+ export { AlertDialog_default as AlertDialog, Align_default as Align, Alignment, AnimatedContainer_default as AnimatedContainer, AnimatedOpacity_default as AnimatedOpacity, AssetImage, BlurStyle, Border, BorderRadius, BorderSide, 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, Clip, ClipOval_default as ClipOval, ClipRRect_default as ClipRRect, Column_default as Column, Container_default as Container, CrossAxisAlignment, CupertinoActivityIndicator_default as CupertinoActivityIndicator, DecorationImage, Divider_default as Divider, EdgeInsets, Expanded_default as Expanded, Fixed_default as Fixed, FontStyle, FontWeight, GestureDetector_default as GestureDetector, GridView_default as GridView, IgnorePointer_default as IgnorePointer, Image_default as Image, InkWell_default as InkWell, LayoutBuilder_default as LayoutBuilder, LinearGradient, 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, 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, createAssetImage, decorationImageToStyle, edgeInsetsToStyle, isBorderRadius, isBorderSide, isBorders, isBoxConstraints, isBoxDecoration, isBoxShadow, isEdgeInsets, isImageProvider, isTextStyle, marginToStyle, matrix4ToCSSStyle, normalizeSrc, paddingToStyle, px2vw, setAssetBaseURL, setBaseUrl, setDefaultVW, setTransform, sizeToStyle, toCSSStyle as textStyleToCSSStyle, toCSSStyle, useMediaQuery };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluekit",
3
- "version": "1.5.77",
3
+ "version": "1.5.78",
4
4
  "description": "A Flutter-style Layout UI kit for Vue",
5
5
  "homepage": "https://fi2zz.github.io/fluekit/",
6
6
  "repository": {