ui-thing 0.1.18 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.1.19
4
+
5
+ [compare changes](https://github.com/BayBreezy/ui-thing-cli/compare/v0.1.18...v0.1.19)
6
+
7
+ ### 🚀 Enhancements
8
+
9
+ - **Number Field:** Add number field component ([30745ec](https://github.com/BayBreezy/ui-thing-cli/commit/30745ec))
10
+
11
+ ### ❤️ Contributors
12
+
13
+ - Behon Baker ([@BayBreezy](http://github.com/BayBreezy))
14
+
3
15
  ## v0.1.18
4
16
 
5
17
  [compare changes](https://github.com/BayBreezy/ui-thing-cli/compare/v0.1.17...v0.1.18)
package/dist/index.js CHANGED
@@ -5241,7 +5241,7 @@ export function useFormField() {
5241
5241
  const props = defineProps<HoverCardTriggerProps>();
5242
5242
  </script>
5243
5243
  `}],utils:[],composables:[],plugins:[]},{name:"Input",value:"input",devDeps:["@vueuse/core"],files:[{fileName:"Input.vue",dirPath:"components/UI",fileContent:`<template>
5244
- <input v-bind="props" v-model="localModel" :class="styles({ class: props.class })" />
5244
+ <input v-bind="props" v-model="localModel" :class="styles({ class: props.class })" >
5245
5245
  </template>
5246
5246
 
5247
5247
  <script lang="ts" setup>
@@ -6371,6 +6371,125 @@ export function useFormField() {
6371
6371
  base: "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
6372
6372
  });
6373
6373
  </script>
6374
+ `}],utils:[],composables:[],plugins:[]},{name:"Number Field",value:"number-field",deps:["@internationalized/number"],files:[{fileName:"NumberField/Decrement.vue",dirPath:"components/UI",fileContent:`<template>
6375
+ <NumberFieldDecrement v-bind="forwarded" :class="styles({ class: props.class })">
6376
+ <slot>
6377
+ <Icon :name="props.icon" />
6378
+ </slot>
6379
+ </NumberFieldDecrement>
6380
+ </template>
6381
+
6382
+ <script lang="ts" setup>
6383
+ import { NumberFieldDecrement, useForwardProps } from "radix-vue";
6384
+ import type { NumberFieldDecrementProps } from "radix-vue";
6385
+
6386
+ const props = withDefaults(
6387
+ defineProps<
6388
+ NumberFieldDecrementProps & {
6389
+ class?: any;
6390
+ icon?: string;
6391
+ }
6392
+ >(),
6393
+ { icon: "lucide:minus" }
6394
+ );
6395
+
6396
+ const forwarded = useForwardProps(reactiveOmit(props, "class"));
6397
+
6398
+ const styles = tv({
6399
+ base: "flex h-full shrink-0 items-center justify-center bg-transparent p-3 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",
6400
+ });
6401
+ </script>
6402
+ `},{fileName:"NumberField/Increment.vue",dirPath:"components/UI",fileContent:`<template>
6403
+ <NumberFieldIncrement v-bind="forwarded" :class="styles({ class: props.class })">
6404
+ <slot>
6405
+ <Icon :name="props.icon" />
6406
+ </slot>
6407
+ </NumberFieldIncrement>
6408
+ </template>
6409
+
6410
+ <script lang="ts" setup>
6411
+ import { NumberFieldIncrement, useForwardProps } from "radix-vue";
6412
+ import type { NumberFieldIncrementProps } from "radix-vue";
6413
+
6414
+ const props = withDefaults(
6415
+ defineProps<
6416
+ NumberFieldIncrementProps & {
6417
+ class?: any;
6418
+ icon?: string;
6419
+ }
6420
+ >(),
6421
+ { icon: "lucide:plus" }
6422
+ );
6423
+
6424
+ const forwarded = useForwardProps(reactiveOmit(props, "class"));
6425
+
6426
+ const styles = tv({
6427
+ base: "flex h-full shrink-0 items-center justify-center bg-transparent p-3 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",
6428
+ });
6429
+ </script>
6430
+ `},{fileName:"NumberField/Input.vue",dirPath:"components/UI",fileContent:`<template>
6431
+ <NumberFieldInput v-bind="forwarded" :class="styles({ class: props.class })" />
6432
+ </template>
6433
+
6434
+ <script lang="ts" setup>
6435
+ import { NumberFieldInput, useForwardProps } from "radix-vue";
6436
+ import type { NumberFieldInputProps } from "radix-vue";
6437
+
6438
+ const props = withDefaults(
6439
+ defineProps<
6440
+ NumberFieldInputProps & {
6441
+ class?: any;
6442
+ }
6443
+ >(),
6444
+ {}
6445
+ );
6446
+
6447
+ const forwarded = useForwardProps(reactiveOmit(props, "class"));
6448
+
6449
+ const styles = tv({
6450
+ base: "h-full w-full grow bg-transparent text-center text-base placeholder:text-muted-foreground/80 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",
6451
+ });
6452
+ </script>
6453
+ `},{fileName:"NumberField/NumberField.vue",dirPath:"components/UI",fileContent:`<template>
6454
+ <NumberFieldRoot
6455
+ v-slot="rootSlotProps"
6456
+ v-bind="forwarded"
6457
+ :class="styles({ class: props.class })"
6458
+ >
6459
+ <slot v-bind="rootSlotProps">
6460
+ <slot name="decrement">
6461
+ <UiNumberFieldDecrement />
6462
+ </slot>
6463
+ <slot name="input">
6464
+ <UiNumberFieldInput />
6465
+ </slot>
6466
+ <slot name="increment">
6467
+ <UiNumberFieldIncrement />
6468
+ </slot>
6469
+ </slot>
6470
+ </NumberFieldRoot>
6471
+ </template>
6472
+
6473
+ <script lang="ts" setup>
6474
+ import { NumberFieldRoot, useForwardPropsEmits } from "radix-vue";
6475
+ import type { NumberFieldRootEmits, NumberFieldRootProps } from "radix-vue";
6476
+
6477
+ const props = withDefaults(
6478
+ defineProps<
6479
+ NumberFieldRootProps & {
6480
+ class?: any;
6481
+ }
6482
+ >(),
6483
+ {}
6484
+ );
6485
+
6486
+ const emit = defineEmits<NumberFieldRootEmits>();
6487
+ const forwarded = useForwardPropsEmits(reactiveOmit(props, "class"), emit);
6488
+
6489
+ const styles = tv({
6490
+ base: "flex h-10 w-full items-center gap-1 rounded-md border border-input bg-background text-base focus-within:border-input focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 focus-within:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 sm:text-sm",
6491
+ });
6492
+ </script>
6374
6493
  `}],utils:[],composables:[],plugins:[]},{name:"Pagination",value:"pagination",files:[{fileName:"Pagination/Ellipsis.vue",dirPath:"components/UI",fileContent:`<template>
6375
6494
  <PaginationEllipsis v-bind="reactiveOmit(props, 'icon')">
6376
6495
  <slot>
@@ -10014,6 +10133,66 @@ export { toast, useToast };
10014
10133
  --ms-empty-color: theme("colors.muted.foreground");
10015
10134
  }
10016
10135
  </style>
10136
+ `}],utils:[],composables:[],plugins:[]},{name:"VeeNumberField",value:"vee-number-field",deps:["@vee-validate/nuxt","@morev/vue-transitions","@internationalized/number"],askValidator:!0,nuxtModules:["@vee-validate/nuxt","@morev/vue-transitions/nuxt"],components:["label","number-field"],files:[{fileName:"Vee/NumberField.vue",dirPath:"components/UI",fileContent:`<template>
10137
+ <div class="w-full">
10138
+ <UiLabel
10139
+ v-if="label"
10140
+ :for="inputId"
10141
+ :hint="labelHint"
10142
+ :class="[disabled && 'text-muted-foreground', errorMessage && 'text-destructive', 'mb-2']"
10143
+ ><span>{{ label }} <span v-if="required" class="text-destructive">*</span></span></UiLabel
10144
+ >
10145
+ <div class="relative">
10146
+ <UiNumberField
10147
+ v-bind="($attrs, props)"
10148
+ :id="inputId"
10149
+ v-model="value"
10150
+ :disabled="disabled"
10151
+ :required="required"
10152
+ :name="name"
10153
+ >
10154
+ <template v-for="(_, slotName) in $slots" #[slotName]="scope">
10155
+ <slot :name="slotName" v-bind="scope" />
10156
+ </template>
10157
+ </UiNumberField>
10158
+ </div>
10159
+ <TransitionSlide group tag="div">
10160
+ <p v-if="hint && !errorMessage" key="hint" class="mt-1.5 text-sm text-muted-foreground">
10161
+ {{ hint }}
10162
+ </p>
10163
+
10164
+ <p v-if="errorMessage" key="errorMessage" class="mt-1.5 text-sm text-destructive">
10165
+ {{ errorMessage }}
10166
+ </p>
10167
+ </TransitionSlide>
10168
+ </div>
10169
+ </template>
10170
+
10171
+ <script lang="ts" setup>
10172
+ import type { NumberFieldRootProps } from "radix-vue";
10173
+
10174
+ interface Props extends NumberFieldRootProps {
10175
+ label?: string;
10176
+ labelHint?: string;
10177
+ hint?: string;
10178
+ disabled?: boolean;
10179
+ name?: string;
10180
+ id?: string;
10181
+ rules?: any;
10182
+ validateOnMount?: boolean;
10183
+ required?: boolean;
10184
+ }
10185
+ const props = defineProps<Props>();
10186
+
10187
+ const inputId = computed(() => props.id || useId());
10188
+
10189
+ const { errorMessage, value } = useField(() => props.name || inputId.value, props.rules, {
10190
+ initialValue: props.modelValue,
10191
+ label: props.label,
10192
+ validateOnMount: props.validateOnMount,
10193
+ syncVModel: true,
10194
+ });
10195
+ </script>
10017
10196
  `}],utils:[],composables:[],plugins:[]},{name:"Vee Pin Input",value:"vee-pin-input",deps:["@vee-validate/nuxt","@morev/vue-transitions"],askValidator:!0,nuxtModules:["@vee-validate/nuxt","@morev/vue-transitions/nuxt"],components:["label","pin-input"],files:[{fileName:"Vee/PinInput.vue",dirPath:"components/UI",fileContent:`<template>
10018
10197
  <div class="w-full">
10019
10198
  <UiLabel