@leaflink/stash 50.0.6 → 50.0.8
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/dist/CurrencyInput.js +23 -19
- package/dist/CurrencyInput.js.map +1 -1
- package/dist/CurrencyInput.vue.d.ts +31 -10
- package/dist/Field.js +1 -1
- package/dist/Field.vue.d.ts +9 -0
- package/dist/{Field.vue_vue_type_script_setup_true_lang--tBfZB2K.js → Field.vue_vue_type_script_setup_true_lang-DEizIcDo.js} +35 -32
- package/dist/Field.vue_vue_type_script_setup_true_lang-DEizIcDo.js.map +1 -0
- package/dist/FilterSelect.js +67 -56
- package/dist/FilterSelect.js.map +1 -1
- package/dist/FilterSelect.vue.d.ts +54 -2
- package/dist/Filters.vue.d.ts +162 -105
- package/dist/Input.js +71 -68
- package/dist/Input.js.map +1 -1
- package/dist/Input.vue.d.ts +31 -28
- package/dist/InputOptions.js +76 -68
- package/dist/InputOptions.js.map +1 -1
- package/dist/InputOptions.vue.d.ts +55 -23
- package/dist/ListView.vue.d.ts +213 -146
- package/dist/RadioGroup.js +67 -70
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.vue.d.ts +54 -45
- package/dist/Select.js +223 -224
- package/dist/Select.js.map +1 -1
- package/dist/Select.vue.d.ts +54 -51
- package/dist/TextEditor.js +671 -684
- package/dist/TextEditor.js.map +1 -1
- package/dist/TextEditor.vue.d.ts +54 -61
- package/dist/Textarea.js +63 -60
- package/dist/Textarea.js.map +1 -1
- package/dist/Textarea.vue.d.ts +50 -39
- package/dist/components.css +2 -2
- package/package.json +1 -1
- package/dist/Field.vue_vue_type_script_setup_true_lang--tBfZB2K.js.map +0 -1
package/dist/InputOptions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputOptions.js","sources":["../src/components/InputOptions/InputOptions.vue"],"sourcesContent":["<script lang=\"ts\">\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type Option = any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type SelectedOption = any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export interface InputOptionsProps
|
|
1
|
+
{"version":3,"file":"InputOptions.js","sources":["../src/components/InputOptions/InputOptions.vue"],"sourcesContent":["<script lang=\"ts\">\n import Field, { type FieldProps } from '../Field/Field.vue';\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type Option = any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type SelectedOption = any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export interface InputOptionsProps extends FieldProps {\n /**\n * The current value inclusive of the input & select\n */\n modelValue?: { value: string; option?: SelectedOption };\n\n /**\n * Input type\n */\n type?: string extends 'button' | 'checkbox' | 'radio' | 'submit' ? never : string;\n\n /**\n * Prevents the Selected Option from being truncated, if true\n */\n noTruncate?: boolean;\n\n /**\n * Options for the select\n */\n options?: Option[];\n\n /**\n * Placeholder text for the input\n * **Note:** placeholders should be used to display examples; they should not be used as labels because they are not accessible as labels. If a real label cannot be used, use the `aria-label` attribute.\n */\n placeholder?: string;\n\n /**\n * If `options` are an object, this is what prop to use for display.\n */\n displayBy?: string;\n\n /**\n * Default field to track selected options by.\n */\n trackBy?: string;\n }\n</script>\n\n<script lang=\"ts\" setup>\n import { ref, useAttrs, useCssModule, useSlots, watch, watchEffect } from 'vue';\n\n import Input from '../Input/Input.vue';\n import Select from '../Select/Select.vue';\n\n defineOptions({\n name: 'll-input-options',\n });\n\n const props = withDefaults(defineProps<InputOptionsProps>(), {\n modelValue: () => ({ value: '', option: undefined }),\n noTruncate: false,\n options: () => [],\n type: 'text',\n placeholder: undefined,\n displayBy: undefined,\n trackBy: undefined,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the model value changes\n */\n (\n e: 'update:model-value',\n v: { value?: string; option?: SelectedOption; isValueChange: boolean; type: 'input' | 'select' },\n ): void;\n /**\n * Emitted when either the input or select changes\n */\n (\n e: 'change',\n v: { value?: string; option?: SelectedOption; isValueChange: boolean; type: 'input' | 'select' },\n ): void;\n }>();\n\n const attrs = useAttrs();\n const slots = useSlots();\n const classes = useCssModule();\n const internalInput = ref<string>();\n const isInputFocused = ref(false);\n const selectedOption = ref<Option | undefined>();\n\n // Input value changed\n function handleInput(val?: string | number) {\n internalInput.value = String(val);\n\n emit('update:model-value', {\n value: internalInput.value,\n option: selectedOption.value,\n isValueChange: true,\n type: 'input',\n });\n }\n\n // Input blurred\n function handleInputChange() {\n emit('change', {\n value: internalInput.value,\n option: selectedOption.value,\n isValueChange: true,\n type: 'input',\n });\n }\n\n function handleSelectChange(val?: Option) {\n selectedOption.value = val;\n\n emit('change', {\n value: internalInput.value,\n option: selectedOption.value,\n isValueChange: false,\n type: 'select',\n });\n emit('update:model-value', {\n value: internalInput.value,\n option: selectedOption.value,\n isValueChange: false,\n type: 'select',\n });\n }\n\n watchEffect(() => {\n if (!selectedOption.value) {\n selectedOption.value = props.options[0];\n }\n });\n\n watch(\n () => props.modelValue.value,\n () => {\n internalInput.value = props.modelValue.value;\n },\n { immediate: true },\n );\n\n watch(\n () => props.modelValue.option,\n () => {\n selectedOption.value = props.modelValue.option;\n },\n { immediate: true },\n );\n\n if (attrs.value) {\n throw new Error('ll-input-options: use :model-value or v-model instead of :value.');\n }\n\n if (attrs.onInput) {\n throw new Error('ll-input-options: use the @update:model-value event instead of @input');\n }\n</script>\n\n<template>\n <Field v-bind=\"props\" class=\"stash-input-options\" data-test=\"stash-input-options\">\n <template #default=\"{ fieldId, labelId }\">\n <div v-if=\"props.isReadOnly\" class=\"tw-flex tw-h-input tw-items-center tw-text-sm\">\n <span :id=\"fieldId\" :aria-labelledby=\"labelId\" class=\"tw-h-min\"\n >{{ internalInput || 0 }} {{ selectedOption?.name }}</span\n >\n </div>\n <div v-else class=\"tw-flex\" :class=\"{ [classes['has-error']]: !!props.errorText }\">\n <Input\n :id=\"fieldId\"\n class=\"stash-input-options__input -tw-mr-[1px] tw-inline-block tw-flex-1\"\n :class=\"[classes.input, { 'tw-z-control': isInputFocused }]\"\n data-test=\"stash-input-options|input\"\n :type=\"props.type\"\n :model-value=\"internalInput\"\n :disabled=\"props.isDisabled || props.disabled\"\n :placeholder=\"props.placeholder\"\n @change=\"handleInputChange\"\n @update:model-value=\"handleInput\"\n @blur=\"isInputFocused = false\"\n @focus=\"isInputFocused = true\"\n />\n\n <Select\n single\n hide-search\n prevent-empty\n class=\"stash-input-options__select tw-min-w-20\"\n data-test=\"stash-input-options|select\"\n :class=\"classes.select\"\n :no-truncate=\"noTruncate\"\n :options=\"options\"\n :model-value=\"selectedOption\"\n :display-by=\"props.displayBy\"\n :track-by=\"props.trackBy\"\n :disabled=\"props.isDisabled || props.disabled\"\n @update:model-value=\"handleSelectChange\"\n />\n </div>\n </template>\n <template v-if=\"slots.hint\" #hint>\n <!-- @slot Hint slot for rendering text below the input -->\n <slot name=\"hint\"></slot>\n </template>\n </Field>\n</template>\n\n<style module>\n .input input {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n\n .select :global(.stash-select__content) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n\n .select:global(.stash-select--active .stash-select__content) {\n min-width: 0;\n }\n\n .has-error input,\n .has-error input:hover:not(:focus),\n .has-error :global(.stash-select__content),\n .has-error :global(.stash-select__content:hover:not(:focus)) {\n border-color: var(--color-red-500);\n }\n</style>\n"],"names":["props","__props","emit","__emit","attrs","useAttrs","slots","useSlots","classes","useCssModule","internalInput","ref","isInputFocused","selectedOption","handleInput","val","handleInputChange","handleSelectChange","watchEffect","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DE,UAAMA,IAAQC,GAURC,IAAOC,GAiBPC,IAAQC,KACRC,IAAQC,KACRC,IAAUC,KACVC,IAAgBC,KAChBC,IAAiBD,EAAI,EAAK,GAC1BE,IAAiBF;AAGvB,aAASG,EAAYC,GAAuB;AAC5B,MAAAL,EAAA,QAAQ,OAAOK,CAAG,GAEhCb,EAAK,sBAAsB;AAAA,QACzB,OAAOQ,EAAc;AAAA,QACrB,QAAQG,EAAe;AAAA,QACvB,eAAe;AAAA,QACf,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAGA,aAASG,IAAoB;AAC3B,MAAAd,EAAK,UAAU;AAAA,QACb,OAAOQ,EAAc;AAAA,QACrB,QAAQG,EAAe;AAAA,QACvB,eAAe;AAAA,QACf,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAEA,aAASI,EAAmBF,GAAc;AACxC,MAAAF,EAAe,QAAQE,GAEvBb,EAAK,UAAU;AAAA,QACb,OAAOQ,EAAc;AAAA,QACrB,QAAQG,EAAe;AAAA,QACvB,eAAe;AAAA,QACf,MAAM;AAAA,MAAA,CACP,GACDX,EAAK,sBAAsB;AAAA,QACzB,OAAOQ,EAAc;AAAA,QACrB,QAAQG,EAAe;AAAA,QACvB,eAAe;AAAA,QACf,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAwBA,QAtBAK,EAAY,MAAM;AACZ,MAACL,EAAe,UACHA,EAAA,QAAQb,EAAM,QAAQ,CAAC;AAAA,IACxC,CACD,GAEDmB;AAAA,MACE,MAAMnB,EAAM,WAAW;AAAA,MACvB,MAAM;AACU,QAAAU,EAAA,QAAQV,EAAM,WAAW;AAAA,MACzC;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IAAA,GAGpBmB;AAAA,MACE,MAAMnB,EAAM,WAAW;AAAA,MACvB,MAAM;AACW,QAAAa,EAAA,QAAQb,EAAM,WAAW;AAAA,MAC1C;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IAAA,GAGhBI,EAAM;AACF,YAAA,IAAI,MAAM,kEAAkE;AAGpF,QAAIA,EAAM;AACF,YAAA,IAAI,MAAM,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -39,13 +39,10 @@ option: undefined;
|
|
|
39
39
|
};
|
|
40
40
|
noTruncate: boolean;
|
|
41
41
|
options: () => never[];
|
|
42
|
-
errorText: undefined;
|
|
43
|
-
hintText: undefined;
|
|
44
|
-
label: undefined;
|
|
45
42
|
type: string;
|
|
46
43
|
placeholder: undefined;
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
displayBy: undefined;
|
|
45
|
+
trackBy: undefined;
|
|
49
46
|
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
50
47
|
"update:model-value": (v: {
|
|
51
48
|
value?: string | undefined;
|
|
@@ -66,13 +63,10 @@ option: undefined;
|
|
|
66
63
|
};
|
|
67
64
|
noTruncate: boolean;
|
|
68
65
|
options: () => never[];
|
|
69
|
-
errorText: undefined;
|
|
70
|
-
hintText: undefined;
|
|
71
|
-
label: undefined;
|
|
72
66
|
type: string;
|
|
73
67
|
placeholder: undefined;
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
displayBy: undefined;
|
|
69
|
+
trackBy: undefined;
|
|
76
70
|
}>>> & Readonly<{
|
|
77
71
|
onChange?: ((v: {
|
|
78
72
|
value?: string | undefined;
|
|
@@ -88,12 +82,9 @@ type: 'input' | 'select';
|
|
|
88
82
|
}) => any) | undefined;
|
|
89
83
|
}>, {
|
|
90
84
|
type: string;
|
|
91
|
-
|
|
92
|
-
label: string;
|
|
93
|
-
errorText: string;
|
|
94
|
-
hintText: string;
|
|
95
|
-
isReadOnly: boolean;
|
|
85
|
+
trackBy: string;
|
|
96
86
|
placeholder: string;
|
|
87
|
+
displayBy: string;
|
|
97
88
|
options: any[];
|
|
98
89
|
modelValue: {
|
|
99
90
|
value: string;
|
|
@@ -105,19 +96,60 @@ noTruncate: boolean;
|
|
|
105
96
|
}>;
|
|
106
97
|
export default _default;
|
|
107
98
|
|
|
108
|
-
|
|
99
|
+
declare interface FieldProps {
|
|
109
100
|
/**
|
|
110
|
-
*
|
|
101
|
+
* Adds spacing under the field that is consistent whether hint/error text is displayed.
|
|
102
|
+
*/
|
|
103
|
+
addBottomSpace?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Error text to display. Replaces `hintText` (if provided) & adds error styling.
|
|
111
106
|
*/
|
|
112
107
|
errorText?: string;
|
|
113
108
|
/**
|
|
114
|
-
*
|
|
109
|
+
* Displays text below the input; hidden when the isReadOnly prop is truthy.
|
|
115
110
|
*/
|
|
116
111
|
hintText?: string;
|
|
117
112
|
/**
|
|
118
|
-
* Label
|
|
113
|
+
* ID for the Label and Input; must be unique
|
|
114
|
+
*/
|
|
115
|
+
id?: string;
|
|
116
|
+
/**
|
|
117
|
+
* ID for the error text element; useful for aria-errormessage
|
|
118
|
+
*/
|
|
119
|
+
errorId?: string;
|
|
120
|
+
/**
|
|
121
|
+
* Whether it's a readonly field.
|
|
122
|
+
*/
|
|
123
|
+
isReadOnly?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Whether the field is required.
|
|
126
|
+
*/
|
|
127
|
+
isRequired?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Label to render above the input.
|
|
119
130
|
*/
|
|
120
131
|
label?: string;
|
|
132
|
+
/**
|
|
133
|
+
* Show "(optional)" to the right of the label text
|
|
134
|
+
*/
|
|
135
|
+
showOptionalInLabel?: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Indicates wheter the field is a fieldset or not
|
|
138
|
+
*/
|
|
139
|
+
fieldset?: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Indicates whether the field is disabled.
|
|
142
|
+
*/
|
|
143
|
+
isDisabled?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Indicates whether the field is disabled.
|
|
146
|
+
*
|
|
147
|
+
* @deprecated Use `isDisabled` instead.
|
|
148
|
+
*/
|
|
149
|
+
disabled?: boolean;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export declare interface InputOptionsProps extends FieldProps {
|
|
121
153
|
/**
|
|
122
154
|
* The current value inclusive of the input & select
|
|
123
155
|
*/
|
|
@@ -143,13 +175,13 @@ export declare interface InputOptionsProps {
|
|
|
143
175
|
*/
|
|
144
176
|
placeholder?: string;
|
|
145
177
|
/**
|
|
146
|
-
*
|
|
178
|
+
* If `options` are an object, this is what prop to use for display.
|
|
147
179
|
*/
|
|
148
|
-
|
|
180
|
+
displayBy?: string;
|
|
149
181
|
/**
|
|
150
|
-
*
|
|
182
|
+
* Default field to track selected options by.
|
|
151
183
|
*/
|
|
152
|
-
|
|
184
|
+
trackBy?: string;
|
|
153
185
|
}
|
|
154
186
|
|
|
155
187
|
declare type Option_2 = any;
|