@tb-dev/vue 0.3.24 → 0.3.25

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,9 +1,9 @@
1
- import { Component } from 'vue';
1
+ import { Component, HTMLAttributes } from 'vue';
2
2
  export interface ButtonIconProps<T extends string> {
3
- buttonClass?: string;
4
- class?: string;
3
+ buttonClass?: HTMLAttributes['class'];
4
+ class?: HTMLAttributes['class'];
5
5
  icon: Component;
6
- iconClass?: string;
6
+ iconClass?: HTMLAttributes['class'];
7
7
  iconSize?: number;
8
8
  to?: T;
9
9
  }
@@ -1,10 +1,12 @@
1
+ import { HTMLAttributes } from 'vue';
1
2
  import { Option } from '@tb-dev/utils';
2
3
  import { ButtonSize, ButtonVariant } from '../button';
3
4
  export interface ButtonLinkProps<T extends string> {
4
- buttonClass?: string;
5
+ buttonClass?: HTMLAttributes['class'];
5
6
  disabled?: Option<boolean>;
6
7
  label?: string;
7
8
  size?: ButtonSize;
9
+ style?: HTMLAttributes['style'];
8
10
  to: T;
9
11
  variant?: ButtonVariant;
10
12
  }
@@ -1,9 +1,10 @@
1
+ import { HTMLAttributes } from 'vue';
1
2
  export interface CardProps {
2
- contentClass?: string;
3
- descriptionClass?: string;
4
- footerClass?: string;
5
- headerClass?: string;
6
- scrollAreaClass?: string;
3
+ contentClass?: HTMLAttributes['class'];
4
+ descriptionClass?: HTMLAttributes['class'];
5
+ footerClass?: HTMLAttributes['class'];
6
+ headerClass?: HTMLAttributes['class'];
7
+ scrollAreaClass?: HTMLAttributes['class'];
7
8
  scrollAreaHeight?: number | string;
8
- titleClass?: string;
9
+ titleClass?: HTMLAttributes['class'];
9
10
  }
@@ -1,8 +1,11 @@
1
+ import { HTMLAttributes } from 'vue';
1
2
  import { CheckboxRootProps } from 'reka-ui';
2
3
  export type CheckboxValue = CheckboxRootProps['modelValue'];
3
4
  export interface CheckboxProps {
5
+ class?: HTMLAttributes['class'];
4
6
  defaultValue?: CheckboxRootProps['defaultValue'];
5
7
  disabled?: CheckboxRootProps['disabled'];
6
8
  label?: string;
7
9
  labelClass?: string;
10
+ style?: HTMLAttributes['style'];
8
11
  }
@@ -1,12 +1,12 @@
1
1
  import { Option } from '@tb-dev/utils';
2
- import { InputHTMLAttributes } from 'vue';
2
+ import { HTMLAttributes, InputHTMLAttributes } from 'vue';
3
3
  export interface InputProps {
4
4
  autocomplete?: InputHTMLAttributes['autocomplete'];
5
5
  autofocus?: InputHTMLAttributes['autofocus'];
6
- class?: string;
6
+ class?: HTMLAttributes['class'];
7
7
  disabled?: InputHTMLAttributes['disabled'];
8
8
  label?: string;
9
- labelClass?: string;
9
+ labelClass?: HTMLAttributes['class'];
10
10
  max?: InputHTMLAttributes['maxlength'];
11
11
  min?: InputHTMLAttributes['minlength'];
12
12
  modelValue: Option<string>;
@@ -16,5 +16,6 @@ export interface InputProps {
16
16
  required?: InputHTMLAttributes['required'];
17
17
  size?: InputHTMLAttributes['size'];
18
18
  spellcheck?: InputHTMLAttributes['spellcheck'];
19
+ style?: HTMLAttributes['style'];
19
20
  type?: InputHTMLAttributes['type'];
20
21
  }
@@ -1,7 +1,8 @@
1
+ import { HTMLAttributes } from 'vue';
1
2
  import { Option } from '@tb-dev/utils';
2
3
  import { NumberFieldRootProps } from 'reka-ui';
3
4
  export interface InputNumberProps {
4
- class?: string;
5
+ class?: HTMLAttributes['class'];
5
6
  defaultValue?: number;
6
7
  disabled?: boolean;
7
8
  disableDecrement?: boolean;
@@ -9,10 +10,11 @@ export interface InputNumberProps {
9
10
  disableWheelChange?: NumberFieldRootProps['disableWheelChange'];
10
11
  formatOptions?: NumberFieldRootProps['formatOptions'];
11
12
  label?: string;
12
- labelClass?: string;
13
+ labelClass?: HTMLAttributes['class'];
13
14
  max?: NumberFieldRootProps['max'];
14
15
  min?: NumberFieldRootProps['min'];
15
16
  modelValue: Option<number>;
16
17
  step?: NumberFieldRootProps['step'];
17
18
  stepSnapping?: NumberFieldRootProps['stepSnapping'];
19
+ style?: HTMLAttributes['style'];
18
20
  }
@@ -1,10 +1,10 @@
1
- import { InputHTMLAttributes } from 'vue';
1
+ import { HTMLAttributes, InputHTMLAttributes } from 'vue';
2
2
  export interface InputTextProps {
3
3
  autocomplete?: InputHTMLAttributes['autocomplete'];
4
4
  autofocus?: InputHTMLAttributes['autofocus'];
5
5
  disabled?: InputHTMLAttributes['disabled'];
6
6
  label?: string;
7
- labelClass?: string;
7
+ labelClass?: HTMLAttributes['class'];
8
8
  max?: InputHTMLAttributes['maxlength'];
9
9
  min?: InputHTMLAttributes['minlength'];
10
10
  onBlur?: () => void;
@@ -13,4 +13,5 @@ export interface InputTextProps {
13
13
  required?: InputHTMLAttributes['required'];
14
14
  size?: InputHTMLAttributes['size'];
15
15
  spellcheck?: InputHTMLAttributes['spellcheck'];
16
+ style?: HTMLAttributes['style'];
16
17
  }
@@ -1,4 +1,5 @@
1
+ import { HTMLAttributes } from 'vue';
1
2
  export interface PopoverProps {
2
- contentClass?: string;
3
+ contentClass?: HTMLAttributes['class'];
3
4
  keepOpen?: boolean;
4
5
  }
@@ -1,14 +1,16 @@
1
1
  import { Option } from '@tb-dev/utils';
2
- import { SelectHTMLAttributes } from 'vue';
2
+ import { HTMLAttributes, SelectHTMLAttributes } from 'vue';
3
3
  export interface SelectProps {
4
4
  autocomplete?: SelectHTMLAttributes['autocomplete'];
5
5
  autofocus?: SelectHTMLAttributes['autofocus'];
6
- contentClass?: string;
6
+ class?: HTMLAttributes['class'];
7
+ contentClass?: HTMLAttributes['class'];
7
8
  disabled?: boolean;
8
9
  label?: string;
9
- labelClass?: string;
10
+ labelClass?: HTMLAttributes['class'];
10
11
  modelValue: Option<string>;
11
12
  placeholder?: string;
12
13
  required?: boolean;
13
- triggerClass?: string;
14
+ style?: HTMLAttributes['style'];
15
+ triggerClass?: HTMLAttributes['class'];
14
16
  }
@@ -1,6 +1,9 @@
1
+ import { HTMLAttributes } from 'vue';
1
2
  export interface SwitchProps {
3
+ class?: HTMLAttributes['class'];
2
4
  disabled?: boolean;
3
5
  label?: string;
4
- labelClass?: string;
6
+ labelClass?: HTMLAttributes['class'];
5
7
  position?: 'after' | 'before';
8
+ style?: HTMLAttributes['style'];
6
9
  }
@@ -1,15 +1,15 @@
1
1
  import { Option } from '@tb-dev/utils';
2
- import { TextareaHTMLAttributes } from 'vue';
2
+ import { HTMLAttributes, TextareaHTMLAttributes } from 'vue';
3
3
  export interface TextareaProps {
4
4
  autocapitalize?: TextareaHTMLAttributes['autocapitalize'];
5
5
  autocomplete?: TextareaHTMLAttributes['autocomplete'];
6
6
  autocorrect?: TextareaHTMLAttributes['autocorrect'];
7
7
  autofocus?: TextareaHTMLAttributes['autofocus'];
8
- class?: string;
8
+ class?: HTMLAttributes['class'];
9
9
  cols?: TextareaHTMLAttributes['cols'];
10
10
  disabled?: boolean;
11
11
  label?: string;
12
- labelClass?: string;
12
+ labelClass?: HTMLAttributes['class'];
13
13
  max?: TextareaHTMLAttributes['maxlength'];
14
14
  min?: TextareaHTMLAttributes['minlength'];
15
15
  modelValue: Option<string>;
@@ -19,4 +19,5 @@ export interface TextareaProps {
19
19
  required?: TextareaHTMLAttributes['required'];
20
20
  rows?: TextareaHTMLAttributes['rows'];
21
21
  spellcheck?: TextareaHTMLAttributes['spellcheck'];
22
+ style?: HTMLAttributes['style'];
22
23
  }
package/dist/index.js CHANGED
@@ -191,12 +191,16 @@ const buttonVariants = cva(
191
191
  const _hoisted_1$j = { key: 0 };
192
192
  const _hoisted_2$2 = { key: 0 };
193
193
  const _sfc_main$2X = /* @__PURE__ */ defineComponent({
194
+ ...{
195
+ inheritAttrs: false
196
+ },
194
197
  __name: "ButtonLink",
195
198
  props: {
196
199
  buttonClass: {},
197
200
  disabled: {},
198
201
  label: {},
199
202
  size: { default: "default" },
203
+ style: {},
200
204
  to: {},
201
205
  variant: { default: "ghost" }
202
206
  },
@@ -210,13 +214,14 @@ const _sfc_main$2X = /* @__PURE__ */ defineComponent({
210
214
  variant: _ctx.variant,
211
215
  size: _ctx.size,
212
216
  disabled: _ctx.disabled,
217
+ style: _ctx.style,
213
218
  class: unref(cn)("size-full", _ctx.buttonClass)
214
219
  }), {
215
220
  default: withCtx(() => [
216
221
  _ctx.label ? (openBlock(), createElementBlock("span", _hoisted_1$j, toDisplayString(_ctx.label), 1)) : renderSlot(_ctx.$slots, "default", { key: 1 })
217
222
  ]),
218
223
  _: 3
219
- }, 16, ["variant", "size", "disabled", "class"])
224
+ }, 16, ["variant", "size", "disabled", "style", "class"])
220
225
  ]),
221
226
  _: 3
222
227
  }),
@@ -630,18 +635,24 @@ const _sfc_main$2L = /* @__PURE__ */ defineComponent({
630
635
 
631
636
  const _hoisted_1$i = { class: "w-full" };
632
637
  const _sfc_main$2K = /* @__PURE__ */ defineComponent({
638
+ ...{
639
+ inheritAttrs: false
640
+ },
633
641
  __name: "Checkbox",
634
642
  props: /* @__PURE__ */ mergeModels({
643
+ class: {},
635
644
  defaultValue: { type: [Boolean, String] },
636
645
  disabled: { type: Boolean },
637
646
  label: {},
638
- labelClass: {}
647
+ labelClass: {},
648
+ style: {}
639
649
  }, {
640
650
  "modelValue": { type: [Boolean, String, null], ...{ required: false } },
641
651
  "modelModifiers": {}
642
652
  }),
643
653
  emits: ["update:modelValue"],
644
654
  setup(__props) {
655
+ const props = __props;
645
656
  const value = useModel(__props, "modelValue");
646
657
  const [DefineTemplate, ReuseTemplate] = createReusableTemplate();
647
658
  return (_ctx, _cache) => {
@@ -652,8 +663,10 @@ const _sfc_main$2K = /* @__PURE__ */ defineComponent({
652
663
  modelValue: value.value,
653
664
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
654
665
  "default-value": _ctx.defaultValue,
655
- disabled: _ctx.disabled
656
- }), null, 16, ["modelValue", "default-value", "disabled"])
666
+ disabled: _ctx.disabled,
667
+ style: _ctx.style,
668
+ class: props.class
669
+ }), null, 16, ["modelValue", "default-value", "disabled", "style", "class"])
657
670
  ]),
658
671
  _: 1
659
672
  }),
@@ -2328,6 +2341,9 @@ const _sfc_main$1V = /* @__PURE__ */ defineComponent({
2328
2341
 
2329
2342
  const _hoisted_1$c = { class: "w-full" };
2330
2343
  const _sfc_main$1U = /* @__PURE__ */ defineComponent({
2344
+ ...{
2345
+ inheritAttrs: false
2346
+ },
2331
2347
  __name: "Input",
2332
2348
  props: {
2333
2349
  autocomplete: {},
@@ -2345,6 +2361,7 @@ const _sfc_main$1U = /* @__PURE__ */ defineComponent({
2345
2361
  required: {},
2346
2362
  size: {},
2347
2363
  spellcheck: { default: "false" },
2364
+ style: {},
2348
2365
  type: { default: "text" }
2349
2366
  },
2350
2367
  emits: ["update:modelValue"],
@@ -2376,9 +2393,10 @@ const _sfc_main$1U = /* @__PURE__ */ defineComponent({
2376
2393
  required: _ctx.required,
2377
2394
  size: _ctx.size,
2378
2395
  spellcheck: _ctx.spellcheck,
2396
+ style: _ctx.style,
2379
2397
  class: unref(cn)("focus-visible:ring-0 disabled:cursor-default", props.class),
2380
2398
  onBlur: _ctx.onBlur
2381
- }), null, 16, ["modelValue", "type", "autocomplete", "autofocus", "placeholder", "disabled", "maxlength", "minlength", "readonly", "required", "size", "spellcheck", "class", "onBlur"])
2399
+ }), null, 16, ["modelValue", "type", "autocomplete", "autofocus", "placeholder", "disabled", "maxlength", "minlength", "readonly", "required", "size", "spellcheck", "style", "class", "onBlur"])
2382
2400
  ]),
2383
2401
  _: 1
2384
2402
  }),
@@ -2550,6 +2568,9 @@ const _sfc_main$1P = /* @__PURE__ */ defineComponent({
2550
2568
 
2551
2569
  const _hoisted_1$b = { class: "w-full" };
2552
2570
  const _sfc_main$1O = /* @__PURE__ */ defineComponent({
2571
+ ...{
2572
+ inheritAttrs: false
2573
+ },
2553
2574
  __name: "InputNumber",
2554
2575
  props: {
2555
2576
  class: {},
@@ -2565,7 +2586,8 @@ const _sfc_main$1O = /* @__PURE__ */ defineComponent({
2565
2586
  min: {},
2566
2587
  modelValue: {},
2567
2588
  step: {},
2568
- stepSnapping: { type: Boolean }
2589
+ stepSnapping: { type: Boolean },
2590
+ style: {}
2569
2591
  },
2570
2592
  emits: ["update:modelValue"],
2571
2593
  setup(__props, { emit: __emit }) {
@@ -2592,6 +2614,7 @@ const _sfc_main$1O = /* @__PURE__ */ defineComponent({
2592
2614
  max: _ctx.max,
2593
2615
  step: _ctx.step,
2594
2616
  "step-snapping": _ctx.stepSnapping,
2617
+ style: _ctx.style,
2595
2618
  class: unref(cn)("w-full", props.class)
2596
2619
  }), {
2597
2620
  default: withCtx(() => [
@@ -2609,7 +2632,7 @@ const _sfc_main$1O = /* @__PURE__ */ defineComponent({
2609
2632
  })
2610
2633
  ]),
2611
2634
  _: 1
2612
- }, 16, ["modelValue", "default-value", "disabled", "disable-wheel-change", "format-options", "min", "max", "step", "step-snapping", "class"])
2635
+ }, 16, ["modelValue", "default-value", "disabled", "disable-wheel-change", "format-options", "min", "max", "step", "step-snapping", "style", "class"])
2613
2636
  ]),
2614
2637
  _: 1
2615
2638
  }),
@@ -2629,6 +2652,9 @@ const _sfc_main$1O = /* @__PURE__ */ defineComponent({
2629
2652
  });
2630
2653
 
2631
2654
  const _sfc_main$1N = /* @__PURE__ */ defineComponent({
2655
+ ...{
2656
+ inheritAttrs: false
2657
+ },
2632
2658
  __name: "InputText",
2633
2659
  props: /* @__PURE__ */ mergeModels({
2634
2660
  autocomplete: {},
@@ -2643,7 +2669,8 @@ const _sfc_main$1N = /* @__PURE__ */ defineComponent({
2643
2669
  readonly: {},
2644
2670
  required: {},
2645
2671
  size: {},
2646
- spellcheck: { default: "false" }
2672
+ spellcheck: { default: "false" },
2673
+ style: {}
2647
2674
  }, {
2648
2675
  "modelValue": { required: true },
2649
2676
  "modelModifiers": {}
@@ -2668,8 +2695,9 @@ const _sfc_main$1N = /* @__PURE__ */ defineComponent({
2668
2695
  readonly: _ctx.readonly,
2669
2696
  required: _ctx.required,
2670
2697
  size: _ctx.size,
2671
- spellcheck: _ctx.spellcheck
2672
- }, null, 8, ["modelValue", "autocomplete", "autofocus", "disabled", "label", "label-class", "max", "min", "on-blur", "placeholder", "readonly", "required", "size", "spellcheck"]);
2698
+ spellcheck: _ctx.spellcheck,
2699
+ style: normalizeStyle(_ctx.style)
2700
+ }, null, 8, ["modelValue", "autocomplete", "autofocus", "disabled", "label", "label-class", "max", "min", "on-blur", "placeholder", "readonly", "required", "size", "spellcheck", "style"]);
2673
2701
  };
2674
2702
  }
2675
2703
  });
@@ -4127,10 +4155,14 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
4127
4155
  const _hoisted_1$5 = { class: "flex w-full items-center justify-center gap-2" };
4128
4156
  const _hoisted_2$1 = { class: "w-full" };
4129
4157
  const _sfc_main$13 = /* @__PURE__ */ defineComponent({
4158
+ ...{
4159
+ inheritAttrs: false
4160
+ },
4130
4161
  __name: "Select",
4131
4162
  props: {
4132
4163
  autocomplete: {},
4133
4164
  autofocus: {},
4165
+ class: {},
4134
4166
  contentClass: {},
4135
4167
  disabled: { type: Boolean },
4136
4168
  label: {},
@@ -4138,6 +4170,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
4138
4170
  modelValue: {},
4139
4171
  placeholder: {},
4140
4172
  required: { type: Boolean },
4173
+ style: {},
4141
4174
  triggerClass: {}
4142
4175
  },
4143
4176
  emits: ["update:modelValue"],
@@ -4161,7 +4194,9 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
4161
4194
  autocomplete: _ctx.autocomplete,
4162
4195
  autofocus: _ctx.autofocus,
4163
4196
  disabled: _ctx.disabled,
4164
- required: _ctx.required
4197
+ required: _ctx.required,
4198
+ style: _ctx.style,
4199
+ class: props.class
4165
4200
  }), {
4166
4201
  default: withCtx(() => [
4167
4202
  createVNode(unref(_sfc_main$15), {
@@ -4182,7 +4217,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
4182
4217
  }, 8, ["class"])
4183
4218
  ]),
4184
4219
  _: 3
4185
- }, 16, ["modelValue", "autocomplete", "autofocus", "disabled", "required"]),
4220
+ }, 16, ["modelValue", "autocomplete", "autofocus", "disabled", "required", "style", "class"]),
4186
4221
  renderSlot(_ctx.$slots, "action")
4187
4222
  ])
4188
4223
  ]),
@@ -5602,18 +5637,24 @@ const _hoisted_1$3 = {
5602
5637
  class: "w-full"
5603
5638
  };
5604
5639
  const _sfc_main$o = /* @__PURE__ */ defineComponent({
5640
+ ...{
5641
+ inheritAttrs: false
5642
+ },
5605
5643
  __name: "Switch",
5606
5644
  props: /* @__PURE__ */ mergeModels({
5645
+ class: {},
5607
5646
  disabled: { type: Boolean },
5608
5647
  label: {},
5609
5648
  labelClass: {},
5610
- position: { default: "before" }
5649
+ position: { default: "before" },
5650
+ style: {}
5611
5651
  }, {
5612
5652
  "modelValue": { type: Boolean, ...{ required: true } },
5613
5653
  "modelModifiers": {}
5614
5654
  }),
5615
5655
  emits: ["update:modelValue"],
5616
5656
  setup(__props) {
5657
+ const props = __props;
5617
5658
  const toggled = useModel(__props, "modelValue");
5618
5659
  const [DefineTemplate, ReuseTemplate] = createReusableTemplate();
5619
5660
  return (_ctx, _cache) => {
@@ -5623,7 +5664,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5623
5664
  createVNode(unref(_sfc_main$p), mergeProps(_ctx.$attrs, {
5624
5665
  modelValue: toggled.value,
5625
5666
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => toggled.value = $event),
5626
- disabled: _ctx.disabled
5667
+ disabled: _ctx.disabled,
5668
+ style: _ctx.style,
5669
+ class: props.class
5627
5670
  }), createSlots({ _: 2 }, [
5628
5671
  _ctx.$slots.thumb ? {
5629
5672
  name: "thumb",
@@ -5632,7 +5675,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
5632
5675
  ]),
5633
5676
  key: "0"
5634
5677
  } : void 0
5635
- ]), 1040, ["modelValue", "disabled"])
5678
+ ]), 1040, ["modelValue", "disabled", "style", "class"])
5636
5679
  ]),
5637
5680
  _: 3
5638
5681
  }),
@@ -6241,6 +6284,9 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
6241
6284
 
6242
6285
  const _hoisted_1 = { class: "w-full" };
6243
6286
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6287
+ ...{
6288
+ inheritAttrs: false
6289
+ },
6244
6290
  __name: "Textarea",
6245
6291
  props: {
6246
6292
  autocapitalize: {},
@@ -6260,7 +6306,8 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6260
6306
  readonly: {},
6261
6307
  required: {},
6262
6308
  rows: {},
6263
- spellcheck: { default: "false" }
6309
+ spellcheck: { default: "false" },
6310
+ style: {}
6264
6311
  },
6265
6312
  emits: ["update:modelValue"],
6266
6313
  setup(__props, { emit: __emit }) {
@@ -6293,12 +6340,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6293
6340
  required: _ctx.required,
6294
6341
  rows: _ctx.rows,
6295
6342
  spellcheck: _ctx.spellcheck,
6343
+ style: _ctx.style,
6296
6344
  class: unref(cn)(
6297
6345
  "size-full resize-none font-normal focus-visible:ring-0 disabled:cursor-default",
6298
6346
  props.class
6299
6347
  ),
6300
6348
  onBlur: _ctx.onBlur
6301
- }), null, 16, ["modelValue", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "cols", "disabled", "maxlength", "minlength", "placeholder", "readonly", "required", "rows", "spellcheck", "class", "onBlur"])
6349
+ }), null, 16, ["modelValue", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "cols", "disabled", "maxlength", "minlength", "placeholder", "readonly", "required", "rows", "spellcheck", "style", "class", "onBlur"])
6302
6350
  ]),
6303
6351
  _: 1
6304
6352
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tb-dev/vue",
3
- "version": "0.3.24",
3
+ "version": "0.3.25",
4
4
  "description": "Vue utilities",
5
5
  "license": "MIT",
6
6
  "type": "module",