@frollo/frollo-web-ui 0.0.8 → 0.0.11

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.
@@ -1716,7 +1716,18 @@ var script$2 = defineComponent({
1716
1716
  type: String,
1717
1717
  "default": 'primary',
1718
1718
  validator: function validator(value) {
1719
- return ['primary', 'secondary', 'tertiary', 'error', 'success', 'text'].includes(value);
1719
+ return ['primary', 'secondary', 'tertiary', 'error', 'success', 'link', 'text'].includes(value);
1720
+ }
1721
+ },
1722
+
1723
+ /**
1724
+ * The type attribute of the button
1725
+ */
1726
+ buttonType: {
1727
+ type: String,
1728
+ "default": 'button',
1729
+ validator: function validator(value) {
1730
+ return ['button', 'submit', 'reset'].includes(value);
1720
1731
  }
1721
1732
  }
1722
1733
  },
@@ -1725,32 +1736,37 @@ var script$2 = defineComponent({
1725
1736
  primary: {
1726
1737
  text: 'text-tertiary hover:text-primary active:text-primary',
1727
1738
  background: 'bg-primary hover:bg-tertiary active:bg-tertiary',
1728
- border: 'border-primary focus:ring-primary'
1739
+ border: 'border-primary focus-visible:ring-primary'
1729
1740
  },
1730
1741
  secondary: {
1731
1742
  text: 'text-primary hover:text-tertiary active:text-tertiary',
1732
1743
  background: 'bg-tertiary hover:bg-primary active:bg-primary',
1733
- border: 'border-primary focus:ring-primary'
1744
+ border: 'border-primary focus-visible:ring-primary'
1734
1745
  },
1735
1746
  tertiary: {
1736
1747
  text: 'text-tertiary hover:text-secondary active:text-secondary',
1737
1748
  background: 'bg-secondary hover:bg-tertiary active:bg-tertiary',
1738
- border: 'border-tertiary focus:ring-tertiary'
1749
+ border: 'border-secondary focus-visible:ring-secondary'
1739
1750
  },
1740
1751
  success: {
1741
1752
  text: 'text-white hover:text-success active:text-success',
1742
1753
  background: 'bg-success hover:bg-white active:bg-white',
1743
- border: 'border-success focus:ring-success'
1754
+ border: 'border-success focus-visible:ring-success'
1744
1755
  },
1745
1756
  error: {
1746
1757
  text: 'text-white hover:text-error active:text-error',
1747
1758
  background: 'bg-error hover:bg-white active:bg-white',
1748
- border: 'border-error focus:ring-error'
1759
+ border: 'border-error focus-visible:ring-error'
1760
+ },
1761
+ link: {
1762
+ text: 'text-primary underline hover:no-underline active:no-underline focus-visible:no-underline',
1763
+ background: '',
1764
+ border: 'border-none rounded-none focus-visible:ring-primary'
1749
1765
  },
1750
1766
  text: {
1751
1767
  text: 'text-body font-medium hover:text-white active:text-white',
1752
1768
  background: 'bg-white hover:bg-body active:bg-body',
1753
- border: 'border-transparent focus:ring-body'
1769
+ border: 'border-transparent focus-visible:ring-body'
1754
1770
  }
1755
1771
  });
1756
1772
  var sizes = ref({
@@ -1834,8 +1850,8 @@ var script$2 = defineComponent({
1834
1850
 
1835
1851
  function render$2(_ctx, _cache, $props, $setup, $data, $options) {
1836
1852
  return openBlock(), createBlock(resolveDynamicComponent(_ctx.tagName), {
1837
- "class": normalizeClass(["fw-button font-bold cursor-pointer whitespace-nowrap rounded-full border-2 focus:outline-none ring-offset-2 focus:ring", [_ctx.textColorClass, _ctx.bgColorClass, _ctx.sizeClass, _ctx.borderClass]]),
1838
- type: _ctx.tagName === 'button' ? _ctx.tagName : null,
1853
+ "class": normalizeClass(["fw-button font-bold cursor-pointer whitespace-nowrap rounded-full border-2 focus:outline-0 focus-visible:outline-0 focus:ring-none ring-offset-2 focus-visible:ring", [_ctx.textColorClass, _ctx.bgColorClass, _ctx.sizeClass, _ctx.borderClass, _ctx.variant === 'link' ? 'pl-0 pr-0 pt-0 pb-0' : '']]),
1854
+ type: _ctx.tagName === 'button' ? _ctx.buttonType : null,
1839
1855
  to: _ctx.to ? _ctx.to : null,
1840
1856
  href: _ctx.href ? _ctx.href : null,
1841
1857
  tabindex: _ctx.to ? 0 : null,
@@ -1965,7 +1981,7 @@ var _hoisted_9$1 = {
1965
1981
  "aria-hidden": "true"
1966
1982
  };
1967
1983
  var _hoisted_10$1 = ["d"];
1968
- var _hoisted_11 = {
1984
+ var _hoisted_11$1 = {
1969
1985
  key: 0,
1970
1986
  "class": "fw-nav-menu--mobile min-h-screen top-0 left-0 pt-20 absolute w-full flex flex-col justify-between px-2 bg-white shadow-md pb-3 space-y-1"
1971
1987
  };
@@ -2020,7 +2036,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
2020
2036
  "default": withCtx(function () {
2021
2037
  var _ctx$menuItems2;
2022
2038
 
2023
- return [((_ctx$menuItems2 = _ctx.menuItems) === null || _ctx$menuItems2 === void 0 ? void 0 : _ctx$menuItems2.length) > 0 && _ctx.isMobileMenuOpen ? (openBlock(), createElementBlock("div", _hoisted_11, [createElementVNode("div", _hoisted_12, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.menuItems, function (item, i) {
2039
+ return [((_ctx$menuItems2 = _ctx.menuItems) === null || _ctx$menuItems2 === void 0 ? void 0 : _ctx$menuItems2.length) > 0 && _ctx.isMobileMenuOpen ? (openBlock(), createElementBlock("div", _hoisted_11$1, [createElementVNode("div", _hoisted_12, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.menuItems, function (item, i) {
2024
2040
  return openBlock(), createBlock(_component_FwButton, {
2025
2041
  key: i,
2026
2042
  "class": "w-full rounded-md px-2",
@@ -5247,6 +5263,14 @@ var script = defineComponent({
5247
5263
  */
5248
5264
  rules: {
5249
5265
  type: [String, Object, Function]
5266
+ },
5267
+
5268
+ /**
5269
+ * Converts the input into a readonly disabled field
5270
+ */
5271
+ readonly: {
5272
+ type: Boolean,
5273
+ "default": false
5250
5274
  }
5251
5275
  },
5252
5276
  setup: function setup(props, ctx) {
@@ -5293,23 +5317,26 @@ if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
5293
5317
  }
5294
5318
 
5295
5319
  var _hoisted_1 = {
5320
+ "class": "fw-input w-full"
5321
+ };
5322
+ var _hoisted_2 = {
5296
5323
  "class": "flex flex-col"
5297
5324
  };
5298
- var _hoisted_2 = ["for"];
5299
- var _hoisted_3 = {
5325
+ var _hoisted_3 = ["for"];
5326
+ var _hoisted_4 = {
5300
5327
  "class": "relative"
5301
5328
  };
5302
- var _hoisted_4 = {
5329
+ var _hoisted_5 = {
5303
5330
  key: 0,
5304
5331
  "class": "flex text-grey-base absolute w-9 h-full inset-y-0 left-0 items-center pl-3 pointer-events-none"
5305
5332
  };
5306
- var _hoisted_5 = ["placeholder", "type"];
5307
- var _hoisted_6 = {
5333
+ var _hoisted_6 = ["placeholder", "type", "readonly", "disabled"];
5334
+ var _hoisted_7 = {
5308
5335
  key: 0,
5309
5336
  "class": "flex text-error absolute w-9 h-full inset-y-0 right-0 items-center pr-3 pointer-events-none"
5310
5337
  };
5311
5338
 
5312
- var _hoisted_7 = /*#__PURE__*/createElementVNode("svg", {
5339
+ var _hoisted_8 = /*#__PURE__*/createElementVNode("svg", {
5313
5340
  fill: "currentColor",
5314
5341
  "aria-hidden": "true",
5315
5342
  focusable: "false",
@@ -5317,20 +5344,20 @@ var _hoisted_7 = /*#__PURE__*/createElementVNode("svg", {
5317
5344
  xmlns: "http://www.w3.org/2000/svg",
5318
5345
  viewBox: "0 0 512 512"
5319
5346
  }, [/*#__PURE__*/createElementVNode("path", {
5320
- d: "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8\n 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36\n 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4\n 400 256 400z"
5347
+ d: "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8\n 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36\n 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4\n 400 256 400z"
5321
5348
  })], -1);
5322
5349
 
5323
- var _hoisted_8 = [_hoisted_7];
5324
- var _hoisted_9 = {
5325
- "class": "text-error text-right text-sm font-medium mt-2 min-h-[21px]"
5326
- };
5350
+ var _hoisted_9 = [_hoisted_8];
5327
5351
  var _hoisted_10 = {
5352
+ "class": "text-error italic text-right text-sm font-medium mt-2 min-h-[21px]"
5353
+ };
5354
+ var _hoisted_11 = {
5328
5355
  key: 0
5329
5356
  };
5330
5357
  function render(_ctx, _cache, $props, $setup, $data, $options) {
5331
5358
  var _component_InputField = resolveComponent("InputField");
5332
5359
 
5333
- return openBlock(), createBlock(_component_InputField, {
5360
+ return openBlock(), createElementBlock("div", _hoisted_1, [createVNode(_component_InputField, {
5334
5361
  modelValue: _ctx.inputValue,
5335
5362
  "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
5336
5363
  return _ctx.inputValue = $event;
@@ -5340,36 +5367,39 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
5340
5367
  }, {
5341
5368
  "default": withCtx(function (_ref) {
5342
5369
  var field = _ref.field,
5370
+ errors = _ref.errors,
5343
5371
  errorMessage = _ref.errorMessage,
5344
5372
  meta = _ref.meta;
5345
- return [createElementVNode("div", _hoisted_1, [_ctx.label ? (openBlock(), createElementBlock("label", {
5373
+ return [createElementVNode("div", _hoisted_2, [_ctx.label ? (openBlock(), createElementBlock("label", {
5346
5374
  key: 0,
5347
5375
  "for": _ctx.name,
5348
5376
  "class": "block mb-2"
5349
- }, toDisplayString(_ctx.label), 9, _hoisted_2)) : createCommentVNode("", true), createElementVNode("div", _hoisted_3, [_ctx.$slots.prefixIcon ? (openBlock(), createElementBlock("div", _hoisted_4, [renderSlot(_ctx.$slots, "prefixIcon")])) : createCommentVNode("", true), createElementVNode("input", mergeProps(field, {
5377
+ }, toDisplayString(_ctx.label), 9, _hoisted_3)) : createCommentVNode("", true), createElementVNode("div", _hoisted_4, [_ctx.$slots.prefixIcon ? (openBlock(), createElementBlock("div", _hoisted_5, [renderSlot(_ctx.$slots, "prefixIcon")])) : createCommentVNode("", true), createElementVNode("input", mergeProps(field, {
5350
5378
  placeholder: _ctx.placeholder,
5351
5379
  type: _ctx.type,
5380
+ readonly: _ctx.readonly,
5381
+ disabled: _ctx.readonly,
5352
5382
  "class": ["border-2 border-grey-lightest rounded-lg focus:outline-none focus:ring-2 focus:ring-primary block w-full p-2.5", {
5353
5383
  'pl-10': !!_ctx.$slots.prefixIcon
5354
5384
  }]
5355
- }), null, 16, _hoisted_5), createVNode(Transition, {
5385
+ }), null, 16, _hoisted_6), createVNode(Transition, {
5356
5386
  name: "errorFadeIn"
5357
5387
  }, {
5358
5388
  "default": withCtx(function () {
5359
- return [errorMessage && meta.touched ? (openBlock(), createElementBlock("div", _hoisted_6, _hoisted_8)) : createCommentVNode("", true)];
5389
+ return [(errorMessage || errors[0]) && meta.touched ? (openBlock(), createElementBlock("div", _hoisted_7, _hoisted_9)) : createCommentVNode("", true)];
5360
5390
  }),
5361
5391
  _: 2
5362
- }, 1024)]), createElementVNode("div", _hoisted_9, [createVNode(Transition, {
5392
+ }, 1024)]), createElementVNode("div", _hoisted_10, [createVNode(Transition, {
5363
5393
  name: "errorFadeIn"
5364
5394
  }, {
5365
5395
  "default": withCtx(function () {
5366
- return [errorMessage && meta.touched ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(errorMessage), 1)) : createCommentVNode("", true)];
5396
+ return [(errorMessage || errors[0]) && meta.touched ? (openBlock(), createElementBlock("span", _hoisted_11, toDisplayString(errorMessage || errors[0]), 1)) : createCommentVNode("", true)];
5367
5397
  }),
5368
5398
  _: 2
5369
5399
  }, 1024)])])];
5370
5400
  }),
5371
5401
  _: 3
5372
- }, 8, ["modelValue", "name", "rules"]);
5402
+ }, 8, ["modelValue", "name", "rules"])]);
5373
5403
  }
5374
5404
 
5375
5405
  var css_248z = ".errorFadeIn-enter-active{-webkit-animation:errorFadeIn .35s;animation:errorFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.errorFadeIn-leave-active{animation:errorFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes errorFadeIn{0%{opacity:0}to{opacity:1}}@keyframes errorFadeIn{0%{opacity:0}to{opacity:1}}";
@@ -5383,6 +5413,7 @@ var components = /*#__PURE__*/Object.freeze({
5383
5413
  FwCard: script$3,
5384
5414
  FwButton: script$2,
5385
5415
  FwNavigationMenu: script$1,
5416
+ FwForm: Form,
5386
5417
  FwInput: script
5387
5418
  });
5388
5419
 
@@ -5396,4 +5427,4 @@ var install = function install(app) {
5396
5427
  });
5397
5428
  };
5398
5429
 
5399
- export { script$2 as FwButton, script$3 as FwCard, script as FwInput, script$1 as FwNavigationMenu, install as default };
5430
+ export { script$2 as FwButton, script$3 as FwCard, Form as FwForm, script as FwInput, script$1 as FwNavigationMenu, install as default };
package/icons/index.ts CHANGED
@@ -4,6 +4,7 @@ import ManageSvg from './manage.svg';
4
4
  import NotFoundSvg from './not-found.svg';
5
5
  import EmailFilledSvg from './email-filled.svg';
6
6
  import AlertSvg from './alert.svg';
7
+ import LockSvg from './lock.svg';
7
8
 
8
9
  export {
9
10
  ViewSvg,
@@ -11,5 +12,6 @@ export {
11
12
  ManageSvg,
12
13
  NotFoundSvg,
13
14
  EmailFilledSvg,
14
- AlertSvg
15
+ AlertSvg,
16
+ LockSvg
15
17
  };
package/icons/lock.svg ADDED
@@ -0,0 +1,3 @@
1
+ <svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+ <path d="M17,9V7c0-2.8-2.2-5-5-5S7,4.2,7,7v2c-1.7,0-3,1.3-3,3v7c0,1.7,1.3,3,3,3h10c1.7,0,3-1.3,3-3v-7C20,10.3,18.7,9,17,9z M9,7c0-1.7,1.3-3,3-3s3,1.3,3,3v2H9V7z"/>
3
+ </svg>
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as vue from 'vue';
2
2
  import { PropType, Plugin } from 'vue';
3
+ export { Form as FwForm } from 'vee-validate';
3
4
 
4
5
  declare const _default$3: vue.DefineComponent<{
5
6
  /**
@@ -51,7 +52,7 @@ declare const _default$3: vue.DefineComponent<{
51
52
  href: StringConstructor;
52
53
  }>>, {}>;
53
54
 
54
- declare type ButtonVariantName = 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' | 'text';
55
+ declare type ButtonVariantName = 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' | 'text' | 'link';
55
56
  interface ButtonDefinition {
56
57
  text: string;
57
58
  background: string;
@@ -64,11 +65,13 @@ declare type ButtonSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
64
65
  declare type ButtonSizes = {
65
66
  [key in ButtonSize]: string;
66
67
  };
68
+ declare type ButtonTypeAttribute = 'button' | 'submit' | 'reset';
67
69
  interface FwButtonProps {
68
70
  to?: string | object;
69
71
  href?: string;
70
72
  size?: ButtonSize;
71
73
  variant?: ButtonVariantName;
74
+ buttonType?: ButtonTypeAttribute;
72
75
  }
73
76
  declare const _default$2: vue.DefineComponent<{
74
77
  /**
@@ -98,6 +101,14 @@ declare const _default$2: vue.DefineComponent<{
98
101
  default: string;
99
102
  validator: (value: string) => boolean;
100
103
  };
104
+ /**
105
+ * The type attribute of the button
106
+ */
107
+ buttonType: {
108
+ type: PropType<ButtonTypeAttribute>;
109
+ default: string;
110
+ validator: (value: string) => boolean;
111
+ };
101
112
  }, {
102
113
  textColorClass: vue.ComputedRef<string>;
103
114
  bgColorClass: vue.ComputedRef<string>;
@@ -108,7 +119,7 @@ declare const _default$2: vue.DefineComponent<{
108
119
  onMouseout: (this: GlobalEventHandlers, ev: MouseEvent) => any;
109
120
  onFocusin: (this: GlobalEventHandlers, ev: FocusEvent) => any;
110
121
  onFocusout: (this: GlobalEventHandlers, ev: FocusEvent) => any;
111
- tagName: vue.ComputedRef<"router-link" | "a" | "button">;
122
+ tagName: vue.ComputedRef<"button" | "router-link" | "a">;
112
123
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("click" | "mouseover" | "mouseout" | "focusin" | "focusout")[], "click" | "mouseover" | "mouseout" | "focusin" | "focusout", vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
113
124
  /**
114
125
  * A `router-link` path or object
@@ -137,6 +148,14 @@ declare const _default$2: vue.DefineComponent<{
137
148
  default: string;
138
149
  validator: (value: string) => boolean;
139
150
  };
151
+ /**
152
+ * The type attribute of the button
153
+ */
154
+ buttonType: {
155
+ type: PropType<ButtonTypeAttribute>;
156
+ default: string;
157
+ validator: (value: string) => boolean;
158
+ };
140
159
  }>> & {
141
160
  onClick?: ((...args: any[]) => any) | undefined;
142
161
  onMouseover?: ((...args: any[]) => any) | undefined;
@@ -146,6 +165,7 @@ declare const _default$2: vue.DefineComponent<{
146
165
  }, {
147
166
  size: ButtonSize;
148
167
  variant: ButtonVariantName;
168
+ buttonType: ButtonTypeAttribute;
149
169
  }>;
150
170
 
151
171
  interface NavMenuItem {
@@ -199,6 +219,7 @@ interface FwInputProps {
199
219
  label?: string;
200
220
  placeholder?: string;
201
221
  rules?: string | object | Function;
222
+ readonly?: boolean;
202
223
  }
203
224
  declare const _default: vue.DefineComponent<{
204
225
  /**
@@ -242,6 +263,13 @@ declare const _default: vue.DefineComponent<{
242
263
  rules: {
243
264
  type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
244
265
  };
266
+ /**
267
+ * Converts the input into a readonly disabled field
268
+ */
269
+ readonly: {
270
+ type: BooleanConstructor;
271
+ default: boolean;
272
+ };
245
273
  }, {
246
274
  inputValue: vue.WritableComputedRef<string>;
247
275
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
@@ -286,16 +314,24 @@ declare const _default: vue.DefineComponent<{
286
314
  rules: {
287
315
  type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
288
316
  };
317
+ /**
318
+ * Converts the input into a readonly disabled field
319
+ */
320
+ readonly: {
321
+ type: BooleanConstructor;
322
+ default: boolean;
323
+ };
289
324
  }>> & {
290
325
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
291
326
  }, {
292
327
  modelValue: string;
293
328
  type: InputType;
294
329
  placeholder: string;
330
+ readonly: boolean;
295
331
  }>;
296
332
 
297
333
  declare const install: Exclude<Plugin['install'], undefined>;
298
334
 
299
335
  declare module '@frollo/frollo-web-ui/icons' { }
300
336
 
301
- export { ButtonDefinition, ButtonDefinitionList, ButtonSize, ButtonSizes, ButtonVariantName, _default$2 as FwButton, FwButtonProps, _default$3 as FwCard, _default as FwInput, FwInputProps, _default$1 as FwNavigationMenu, InputType, NavMenuItem, install as default };
337
+ export { ButtonDefinition, ButtonDefinitionList, ButtonSize, ButtonSizes, ButtonTypeAttribute, ButtonVariantName, _default$2 as FwButton, FwButtonProps, _default$3 as FwCard, _default as FwInput, FwInputProps, _default$1 as FwNavigationMenu, InputType, NavMenuItem, install as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frollo/frollo-web-ui",
3
- "version": "0.0.8",
3
+ "version": "0.0.11",
4
4
  "description": "Frollo's UI library for components, utilities and configs",
5
5
  "exports": {
6
6
  "./icons": "./icons/index.ts",
@@ -1,5 +1,5 @@
1
1
  import { PropType } from 'vue';
2
- export declare type ButtonVariantName = 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' | 'text';
2
+ export declare type ButtonVariantName = 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' | 'text' | 'link';
3
3
  export interface ButtonDefinition {
4
4
  text: string;
5
5
  background: string;
@@ -12,11 +12,13 @@ export declare type ButtonSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
12
12
  export declare type ButtonSizes = {
13
13
  [key in ButtonSize]: string;
14
14
  };
15
+ export declare type ButtonTypeAttribute = 'button' | 'submit' | 'reset';
15
16
  export interface FwButtonProps {
16
17
  to?: string | object;
17
18
  href?: string;
18
19
  size?: ButtonSize;
19
20
  variant?: ButtonVariantName;
21
+ buttonType?: ButtonTypeAttribute;
20
22
  }
21
23
  declare const _default: import("vue").DefineComponent<{
22
24
  /**
@@ -46,6 +48,14 @@ declare const _default: import("vue").DefineComponent<{
46
48
  default: string;
47
49
  validator: (value: string) => boolean;
48
50
  };
51
+ /**
52
+ * The type attribute of the button
53
+ */
54
+ buttonType: {
55
+ type: PropType<ButtonTypeAttribute>;
56
+ default: string;
57
+ validator: (value: string) => boolean;
58
+ };
49
59
  }, {
50
60
  textColorClass: import("vue").ComputedRef<string>;
51
61
  bgColorClass: import("vue").ComputedRef<string>;
@@ -56,7 +66,7 @@ declare const _default: import("vue").DefineComponent<{
56
66
  onMouseout: (this: GlobalEventHandlers, ev: MouseEvent) => any;
57
67
  onFocusin: (this: GlobalEventHandlers, ev: FocusEvent) => any;
58
68
  onFocusout: (this: GlobalEventHandlers, ev: FocusEvent) => any;
59
- tagName: import("vue").ComputedRef<"router-link" | "a" | "button">;
69
+ tagName: import("vue").ComputedRef<"button" | "router-link" | "a">;
60
70
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "mouseover" | "mouseout" | "focusin" | "focusout")[], "click" | "mouseover" | "mouseout" | "focusin" | "focusout", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
61
71
  /**
62
72
  * A `router-link` path or object
@@ -85,6 +95,14 @@ declare const _default: import("vue").DefineComponent<{
85
95
  default: string;
86
96
  validator: (value: string) => boolean;
87
97
  };
98
+ /**
99
+ * The type attribute of the button
100
+ */
101
+ buttonType: {
102
+ type: PropType<ButtonTypeAttribute>;
103
+ default: string;
104
+ validator: (value: string) => boolean;
105
+ };
88
106
  }>> & {
89
107
  onClick?: ((...args: any[]) => any) | undefined;
90
108
  onMouseover?: ((...args: any[]) => any) | undefined;
@@ -94,5 +112,6 @@ declare const _default: import("vue").DefineComponent<{
94
112
  }, {
95
113
  size: ButtonSize;
96
114
  variant: ButtonVariantName;
115
+ buttonType: ButtonTypeAttribute;
97
116
  }>;
98
117
  export default _default;
@@ -0,0 +1,2 @@
1
+ import { Form as FwForm } from 'vee-validate';
2
+ export { FwForm };
@@ -7,6 +7,7 @@ export interface FwInputProps {
7
7
  label?: string;
8
8
  placeholder?: string;
9
9
  rules?: string | object | Function;
10
+ readonly?: boolean;
10
11
  }
11
12
  declare const _default: import("vue").DefineComponent<{
12
13
  /**
@@ -50,6 +51,13 @@ declare const _default: import("vue").DefineComponent<{
50
51
  rules: {
51
52
  type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
52
53
  };
54
+ /**
55
+ * Converts the input into a readonly disabled field
56
+ */
57
+ readonly: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
53
61
  }, {
54
62
  inputValue: import("vue").WritableComputedRef<string>;
55
63
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -94,11 +102,19 @@ declare const _default: import("vue").DefineComponent<{
94
102
  rules: {
95
103
  type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
96
104
  };
105
+ /**
106
+ * Converts the input into a readonly disabled field
107
+ */
108
+ readonly: {
109
+ type: BooleanConstructor;
110
+ default: boolean;
111
+ };
97
112
  }>> & {
98
113
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
99
114
  }, {
100
115
  modelValue: string;
101
116
  type: InputType;
102
117
  placeholder: string;
118
+ readonly: boolean;
103
119
  }>;
104
120
  export default _default;
@@ -1,4 +1,5 @@
1
1
  export * from './fw-card';
2
2
  export * from './fw-button';
3
3
  export * from './fw-navigation-menu';
4
+ export * from './fw-form';
4
5
  export * from './fw-input';
@@ -4,4 +4,5 @@ import ManageSvg from './manage.svg';
4
4
  import NotFoundSvg from './not-found.svg';
5
5
  import EmailFilledSvg from './email-filled.svg';
6
6
  import AlertSvg from './alert.svg';
7
- export { ViewSvg, GenerateSvg, ManageSvg, NotFoundSvg, EmailFilledSvg, AlertSvg };
7
+ import LockSvg from './lock.svg';
8
+ export { ViewSvg, GenerateSvg, ManageSvg, NotFoundSvg, EmailFilledSvg, AlertSvg, LockSvg };