@frollo/frollo-web-ui 0.0.21 → 0.0.22

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.
Files changed (41) hide show
  1. package/cjs/index.js +629 -126
  2. package/esm/{add-to-unscopables-874257d1.js → add-to-unscopables-c6a09beb.js} +1 -1
  3. package/esm/{es.array.includes-ef2f18f4.js → es.array.includes-1b7043c3.js} +2 -2
  4. package/esm/{es.function.name-43e1ffbd.js → es.function.name-f416c9da.js} +1 -1
  5. package/esm/{function-name-a620492a.js → function-name-982253be.js} +1 -1
  6. package/esm/{fw-button-fee2541f.js → fw-button-0826e6fc.js} +4 -4
  7. package/esm/fw-button.js +4 -4
  8. package/esm/fw-card.js +1 -1
  9. package/esm/fw-checkbox.js +2 -2
  10. package/esm/fw-input.js +4 -4
  11. package/esm/fw-modal.js +475 -0
  12. package/esm/fw-navigation-menu.js +7 -8
  13. package/esm/fw-tabs.js +3 -3
  14. package/esm/{index-5430e7a3.js → index-9de6159f.js} +2 -2
  15. package/esm/index.js +88 -16
  16. package/frollo-web-ui.esm.js +682 -138
  17. package/index.d.ts +213 -27
  18. package/package.json +4 -2
  19. package/styles/tailwind.scss +58 -0
  20. package/styles/transitions.scss +20 -0
  21. package/styles/typography.scss +38 -0
  22. package/tailwind.config.js +2 -2
  23. package/types/components/fw-button/fw-button.vue.d.ts +1 -21
  24. package/types/components/fw-button/index.types.d.ts +29 -0
  25. package/types/components/fw-card/index.types.d.ts +6 -0
  26. package/types/components/fw-checkbox/fw-checkbox.vue.d.ts +0 -6
  27. package/types/components/fw-checkbox/index.types.d.ts +6 -0
  28. package/types/components/fw-input/fw-input.vue.d.ts +4 -14
  29. package/types/components/fw-input/index.types.d.ts +14 -0
  30. package/types/components/fw-modal/fw-modal.vue.d.ts +145 -0
  31. package/types/components/fw-modal/index.d.ts +2 -0
  32. package/types/components/fw-modal/index.types.d.ts +12 -0
  33. package/types/components/fw-navigation-menu/fw-navigation-menu.vue.d.ts +1 -5
  34. package/types/components/fw-navigation-menu/index.types.d.ts +5 -0
  35. package/types/components/index.d.ts +1 -0
  36. package/types/components/index.types.d.ts +6 -0
  37. package/types/index-types.esm.d.ts +2 -7
  38. package/types/index.d.ts +1 -0
  39. package/types/index.esm.d.ts +2 -1
  40. package/types/services/index.d.ts +1 -0
  41. package/types/services/modal.d.ts +9 -0
package/cjs/index.js CHANGED
@@ -150,11 +150,11 @@ var functionUncurryThis = NATIVE_BIND$1 ? function (fn) {
150
150
  };
151
151
  };var uncurryThis$h = functionUncurryThis;
152
152
 
153
- var toString$4 = uncurryThis$h({}.toString);
153
+ var toString$5 = uncurryThis$h({}.toString);
154
154
  var stringSlice = uncurryThis$h(''.slice);
155
155
 
156
156
  var classofRaw$1 = function (it) {
157
- return stringSlice(toString$4(it), 8, -1);
157
+ return stringSlice(toString$5(it), 8, -1);
158
158
  };var global$q = global$r;
159
159
  var uncurryThis$g = functionUncurryThis;
160
160
  var fails$7 = fails$a;
@@ -259,7 +259,7 @@ var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
259
259
 
260
260
  var Object$3 = global$m.Object;
261
261
 
262
- var isSymbol$3 = USE_SYMBOL_AS_UID$1 ? function (it) {
262
+ var isSymbol$4 = USE_SYMBOL_AS_UID$1 ? function (it) {
263
263
  return typeof it == 'symbol';
264
264
  } : function (it) {
265
265
  var $Symbol = getBuiltIn$3('Symbol');
@@ -348,20 +348,20 @@ var toObject$2 = function (argument) {
348
348
  };var uncurryThis$e = functionUncurryThis;
349
349
  var toObject$1 = toObject$2;
350
350
 
351
- var hasOwnProperty = uncurryThis$e({}.hasOwnProperty);
351
+ var hasOwnProperty$1 = uncurryThis$e({}.hasOwnProperty);
352
352
 
353
353
  // `HasOwnProperty` abstract operation
354
354
  // https://tc39.es/ecma262/#sec-hasownproperty
355
355
  var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
356
- return hasOwnProperty(toObject$1(it), key);
356
+ return hasOwnProperty$1(toObject$1(it), key);
357
357
  };var uncurryThis$d = functionUncurryThis;
358
358
 
359
359
  var id = 0;
360
360
  var postfix = Math.random();
361
- var toString$3 = uncurryThis$d(1.0.toString);
361
+ var toString$4 = uncurryThis$d(1.0.toString);
362
362
 
363
363
  var uid$2 = function (key) {
364
- return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$3(++id + postfix, 36);
364
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$4(++id + postfix, 36);
365
365
  };var global$f = global$r;
366
366
  var shared$2 = shared$4.exports;
367
367
  var hasOwn$7 = hasOwnProperty_1;
@@ -370,15 +370,15 @@ var NATIVE_SYMBOL = nativeSymbol;
370
370
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
371
371
 
372
372
  var WellKnownSymbolsStore = shared$2('wks');
373
- var Symbol$1 = global$f.Symbol;
374
- var symbolFor = Symbol$1 && Symbol$1['for'];
375
- var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;
373
+ var Symbol$2 = global$f.Symbol;
374
+ var symbolFor = Symbol$2 && Symbol$2['for'];
375
+ var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$1;
376
376
 
377
377
  var wellKnownSymbol$5 = function (name) {
378
378
  if (!hasOwn$7(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
379
379
  var description = 'Symbol.' + name;
380
- if (NATIVE_SYMBOL && hasOwn$7(Symbol$1, name)) {
381
- WellKnownSymbolsStore[name] = Symbol$1[name];
380
+ if (NATIVE_SYMBOL && hasOwn$7(Symbol$2, name)) {
381
+ WellKnownSymbolsStore[name] = Symbol$2[name];
382
382
  } else if (USE_SYMBOL_AS_UID && symbolFor) {
383
383
  WellKnownSymbolsStore[name] = symbolFor(description);
384
384
  } else {
@@ -388,7 +388,7 @@ var wellKnownSymbol$5 = function (name) {
388
388
  };var global$e = global$r;
389
389
  var call$1 = functionCall;
390
390
  var isObject$6 = isObject$8;
391
- var isSymbol$2 = isSymbol$3;
391
+ var isSymbol$3 = isSymbol$4;
392
392
  var getMethod = getMethod$1;
393
393
  var ordinaryToPrimitive = ordinaryToPrimitive$1;
394
394
  var wellKnownSymbol$4 = wellKnownSymbol$5;
@@ -399,25 +399,25 @@ var TO_PRIMITIVE = wellKnownSymbol$4('toPrimitive');
399
399
  // `ToPrimitive` abstract operation
400
400
  // https://tc39.es/ecma262/#sec-toprimitive
401
401
  var toPrimitive$2 = function (input, pref) {
402
- if (!isObject$6(input) || isSymbol$2(input)) return input;
402
+ if (!isObject$6(input) || isSymbol$3(input)) return input;
403
403
  var exoticToPrim = getMethod(input, TO_PRIMITIVE);
404
404
  var result;
405
405
  if (exoticToPrim) {
406
406
  if (pref === undefined) pref = 'default';
407
407
  result = call$1(exoticToPrim, input, pref);
408
- if (!isObject$6(result) || isSymbol$2(result)) return result;
408
+ if (!isObject$6(result) || isSymbol$3(result)) return result;
409
409
  throw TypeError$6("Can't convert object to primitive value");
410
410
  }
411
411
  if (pref === undefined) pref = 'number';
412
412
  return ordinaryToPrimitive(input, pref);
413
413
  };var toPrimitive$1 = toPrimitive$2;
414
- var isSymbol$1 = isSymbol$3;
414
+ var isSymbol$2 = isSymbol$4;
415
415
 
416
416
  // `ToPropertyKey` abstract operation
417
417
  // https://tc39.es/ecma262/#sec-topropertykey
418
418
  var toPropertyKey$2 = function (argument) {
419
419
  var key = toPrimitive$1(argument, 'string');
420
- return isSymbol$1(key) ? key : key + '';
420
+ return isSymbol$2(key) ? key : key + '';
421
421
  };var global$d = global$r;
422
422
  var isObject$5 = isObject$8;
423
423
 
@@ -801,17 +801,17 @@ var anObject$3 = anObject$5;
801
801
  var concat = uncurryThis$9([].concat);
802
802
 
803
803
  // all object keys, includes non-enumerable and symbols
804
- var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) {
804
+ var ownKeys$2 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) {
805
805
  var keys = getOwnPropertyNamesModule.f(anObject$3(it));
806
806
  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
807
807
  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
808
808
  };var hasOwn$1 = hasOwnProperty_1;
809
- var ownKeys = ownKeys$1;
809
+ var ownKeys$1 = ownKeys$2;
810
810
  var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
811
811
  var definePropertyModule$2 = objectDefineProperty;
812
812
 
813
813
  var copyConstructorProperties$1 = function (target, source, exceptions) {
814
- var keys = ownKeys(source);
814
+ var keys = ownKeys$1(source);
815
815
  var defineProperty = definePropertyModule$2.f;
816
816
  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
817
817
  for (var i = 0; i < keys.length; i++) {
@@ -912,7 +912,7 @@ var functionBindContext = function (fn, that) {
912
912
  // `IsArray` abstract operation
913
913
  // https://tc39.es/ecma262/#sec-isarray
914
914
  // eslint-disable-next-line es/no-array-isarray -- safe
915
- var isArray$1 = Array.isArray || function isArray(argument) {
915
+ var isArray$2 = Array.isArray || function isArray(argument) {
916
916
  return classof$4(argument) == 'Array';
917
917
  };var wellKnownSymbol$3 = wellKnownSymbol$5;
918
918
 
@@ -1002,7 +1002,7 @@ var isConstructor$1 = !construct || fails$2(function () {
1002
1002
  || !isConstructorModern(function () { called = true; })
1003
1003
  || called;
1004
1004
  }) ? isConstructorLegacy : isConstructorModern;var global$5 = global$r;
1005
- var isArray = isArray$1;
1005
+ var isArray$1 = isArray$2;
1006
1006
  var isConstructor = isConstructor$1;
1007
1007
  var isObject$2 = isObject$8;
1008
1008
  var wellKnownSymbol$1 = wellKnownSymbol$5;
@@ -1014,10 +1014,10 @@ var Array$1 = global$5.Array;
1014
1014
  // https://tc39.es/ecma262/#sec-arrayspeciescreate
1015
1015
  var arraySpeciesConstructor$1 = function (originalArray) {
1016
1016
  var C;
1017
- if (isArray(originalArray)) {
1017
+ if (isArray$1(originalArray)) {
1018
1018
  C = originalArray.constructor;
1019
1019
  // cross-realm fallback
1020
- if (isConstructor(C) && (C === Array$1 || isArray(C.prototype))) C = undefined;
1020
+ if (isConstructor(C) && (C === Array$1 || isArray$1(C.prototype))) C = undefined;
1021
1021
  else if (isObject$2(C)) {
1022
1022
  C = C[SPECIES];
1023
1023
  if (C === null) C = undefined;
@@ -1136,16 +1136,16 @@ var classof$1 = classof$3;
1136
1136
 
1137
1137
  // `Object.prototype.toString` method implementation
1138
1138
  // https://tc39.es/ecma262/#sec-object.prototype.tostring
1139
- var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() {
1139
+ var objectToString$1 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() {
1140
1140
  return '[object ' + classof$1(this) + ']';
1141
1141
  };var TO_STRING_TAG_SUPPORT = toStringTagSupport;
1142
1142
  var redefine$1 = redefine$4.exports;
1143
- var toString$2 = objectToString;
1143
+ var toString$3 = objectToString$1;
1144
1144
 
1145
1145
  // `Object.prototype.toString` method
1146
1146
  // https://tc39.es/ecma262/#sec-object.prototype.tostring
1147
1147
  if (!TO_STRING_TAG_SUPPORT) {
1148
- redefine$1(Object.prototype, 'toString', toString$2, { unsafe: true });
1148
+ redefine$1(Object.prototype, 'toString', toString$3, { unsafe: true });
1149
1149
  }var web_domCollections_forEach = {};// iterable DOM collections
1150
1150
  // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
1151
1151
  var domIterables = {
@@ -4521,7 +4521,7 @@ $$1({ target: 'Array', proto: true }, {
4521
4521
  });
4522
4522
 
4523
4523
  // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
4524
- addToUnscopables$1('includes');var script$6 = vue.defineComponent({
4524
+ addToUnscopables$1('includes');var script$7 = vue.defineComponent({
4525
4525
  name: 'FwInput',
4526
4526
  emits: ['update:modelValue'],
4527
4527
  components: {
@@ -4629,29 +4629,29 @@ if (DESCRIPTORS$1 && !FUNCTION_NAME_EXISTS) {
4629
4629
  }
4630
4630
  }
4631
4631
  });
4632
- }var _hoisted_1$5 = {
4632
+ }var _hoisted_1$6 = {
4633
4633
  "class": "fw-input w-full"
4634
4634
  };
4635
- var _hoisted_2$4 = {
4635
+ var _hoisted_2$5 = {
4636
4636
  "class": "flex flex-col"
4637
4637
  };
4638
- var _hoisted_3$4 = {
4638
+ var _hoisted_3$5 = {
4639
4639
  "class": "flex flex-row justify-between"
4640
4640
  };
4641
- var _hoisted_4$3 = ["for"];
4642
- var _hoisted_5$2 = {
4641
+ var _hoisted_4$4 = ["for"];
4642
+ var _hoisted_5$3 = {
4643
4643
  key: 1
4644
4644
  };
4645
- var _hoisted_6$2 = {
4645
+ var _hoisted_6$3 = {
4646
4646
  "class": "relative"
4647
4647
  };
4648
- var _hoisted_7$2 = {
4648
+ var _hoisted_7$3 = {
4649
4649
  key: 0,
4650
4650
  "class": "flex text-black absolute w-9 h-full inset-y-0 left-0 items-center pl-3 pointer-events-none"
4651
4651
  };
4652
- var _hoisted_8$2 = ["placeholder", "type", "readonly", "disabled"];
4652
+ var _hoisted_8$3 = ["placeholder", "type", "readonly", "disabled"];
4653
4653
 
4654
- var _hoisted_9$1 = /*#__PURE__*/vue.createElementVNode("svg", {
4654
+ var _hoisted_9$2 = /*#__PURE__*/vue.createElementVNode("svg", {
4655
4655
  fill: "currentColor",
4656
4656
  "aria-hidden": "true",
4657
4657
  focusable: "false",
@@ -4662,8 +4662,8 @@ var _hoisted_9$1 = /*#__PURE__*/vue.createElementVNode("svg", {
4662
4662
  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"
4663
4663
  })], -1);
4664
4664
 
4665
- var _hoisted_10$1 = [_hoisted_9$1];
4666
- var _hoisted_11$1 = {
4665
+ var _hoisted_10$2 = [_hoisted_9$2];
4666
+ var _hoisted_11$2 = {
4667
4667
  key: 1,
4668
4668
  "class": "flex text-black absolute w-10 h-full inset-y-0 right-0 items-center pr-3"
4669
4669
  };
@@ -4677,10 +4677,10 @@ var _hoisted_13 = {
4677
4677
  var _hoisted_14 = {
4678
4678
  key: 1
4679
4679
  };
4680
- function render$6(_ctx, _cache, $props, $setup, $data, $options) {
4680
+ function render$7(_ctx, _cache, $props, $setup, $data, $options) {
4681
4681
  var _component_InputField = vue.resolveComponent("InputField");
4682
4682
 
4683
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [vue.createVNode(_component_InputField, {
4683
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [vue.createVNode(_component_InputField, {
4684
4684
  modelValue: _ctx.inputValue,
4685
4685
  "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
4686
4686
  return _ctx.inputValue = $event;
@@ -4693,11 +4693,11 @@ function render$6(_ctx, _cache, $props, $setup, $data, $options) {
4693
4693
  errors = _ref.errors,
4694
4694
  errorMessage = _ref.errorMessage,
4695
4695
  meta = _ref.meta;
4696
- return [vue.createElementVNode("div", _hoisted_2$4, [vue.createElementVNode("div", _hoisted_3$4, [_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
4696
+ return [vue.createElementVNode("div", _hoisted_2$5, [vue.createElementVNode("div", _hoisted_3$5, [_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
4697
4697
  key: 0,
4698
4698
  "for": _ctx.name,
4699
4699
  "class": "block mb-2"
4700
- }, vue.toDisplayString(_ctx.label), 9, _hoisted_4$3)) : vue.createCommentVNode("", true), _ctx.$slots.action ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$2, [vue.renderSlot(_ctx.$slots, "action")])) : vue.createCommentVNode("", true)]), vue.createElementVNode("div", _hoisted_6$2, [_ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, [vue.renderSlot(_ctx.$slots, "prefix")])) : vue.createCommentVNode("", true), vue.createElementVNode("input", vue.mergeProps(field, {
4700
+ }, vue.toDisplayString(_ctx.label), 9, _hoisted_4$4)) : vue.createCommentVNode("", true), _ctx.$slots.action ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$3, [vue.renderSlot(_ctx.$slots, "action")])) : vue.createCommentVNode("", true)]), vue.createElementVNode("div", _hoisted_6$3, [_ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, [vue.renderSlot(_ctx.$slots, "prefix")])) : vue.createCommentVNode("", true), vue.createElementVNode("input", vue.mergeProps(field, {
4701
4701
  placeholder: _ctx.placeholder,
4702
4702
  type: _ctx.type,
4703
4703
  readonly: _ctx.readonly,
@@ -4706,17 +4706,17 @@ function render$6(_ctx, _cache, $props, $setup, $data, $options) {
4706
4706
  'pl-10': !!_ctx.$slots.prefix,
4707
4707
  'pr-20': !!_ctx.$slots.suffix
4708
4708
  }]
4709
- }), null, 16, _hoisted_8$2), vue.createVNode(vue.Transition, {
4709
+ }), null, 16, _hoisted_8$3), vue.createVNode(vue.Transition, {
4710
4710
  name: "fwFadeIn"
4711
4711
  }, {
4712
4712
  "default": vue.withCtx(function () {
4713
4713
  return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("div", {
4714
4714
  key: 0,
4715
4715
  "class": vue.normalizeClass(["flex text-error absolute w-9 h-full inset-y-0 right-0 items-center pr-3 pointer-events-none", _ctx.$slots.suffix ? 'mr-8' : ''])
4716
- }, _hoisted_10$1, 2)) : vue.createCommentVNode("", true)];
4716
+ }, _hoisted_10$2, 2)) : vue.createCommentVNode("", true)];
4717
4717
  }),
4718
4718
  _: 2
4719
- }, 1024), _ctx.$slots.suffix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$1, [vue.renderSlot(_ctx.$slots, "suffix")])) : vue.createCommentVNode("", true)]), vue.createElementVNode("div", _hoisted_12$1, [vue.createVNode(vue.Transition, {
4719
+ }, 1024), _ctx.$slots.suffix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$2, [vue.renderSlot(_ctx.$slots, "suffix")])) : vue.createCommentVNode("", true)]), vue.createElementVNode("div", _hoisted_12$1, [vue.createVNode(vue.Transition, {
4720
4720
  name: "fwFadeIn",
4721
4721
  mode: "out-in"
4722
4722
  }, {
@@ -4753,9 +4753,9 @@ function render$6(_ctx, _cache, $props, $setup, $data, $options) {
4753
4753
  } else {
4754
4754
  style.appendChild(document.createTextNode(css));
4755
4755
  }
4756
- }var css_248z$3 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}";
4757
- var stylesheet$3 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}";
4758
- styleInject(css_248z$3);script$6.render = render$6;var script$5 = vue.defineComponent({
4756
+ }var css_248z$4 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}";
4757
+ var stylesheet$4 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}";
4758
+ styleInject(css_248z$4);script$7.render = render$7;var script$6 = vue.defineComponent({
4759
4759
  name: 'FwCheckbox',
4760
4760
  components: {
4761
4761
  InputField: Field
@@ -4790,29 +4790,29 @@ styleInject(css_248z$3);script$6.render = render$6;var script$5 = vue.defineComp
4790
4790
  type: String
4791
4791
  }
4792
4792
  }
4793
- });var _hoisted_1$4 = {
4793
+ });var _hoisted_1$5 = {
4794
4794
  "class": "fw-checkbox w-full"
4795
4795
  };
4796
- var _hoisted_2$3 = {
4796
+ var _hoisted_2$4 = {
4797
4797
  "class": "flex flex-col"
4798
4798
  };
4799
- var _hoisted_3$3 = ["for"];
4800
- var _hoisted_4$2 = ["value", "name"];
4801
- var _hoisted_5$1 = ["innerHTML"];
4802
- var _hoisted_6$1 = {
4799
+ var _hoisted_3$4 = ["for"];
4800
+ var _hoisted_4$3 = ["value", "name"];
4801
+ var _hoisted_5$2 = ["innerHTML"];
4802
+ var _hoisted_6$2 = {
4803
4803
  "class": "italic text-sm font-medium min-h-[21px]"
4804
4804
  };
4805
- var _hoisted_7$1 = {
4805
+ var _hoisted_7$2 = {
4806
4806
  key: 0,
4807
4807
  "class": "text-error"
4808
4808
  };
4809
- var _hoisted_8$1 = {
4809
+ var _hoisted_8$2 = {
4810
4810
  key: 1
4811
4811
  };
4812
- function render$5(_ctx, _cache, $props, $setup, $data, $options) {
4812
+ function render$6(_ctx, _cache, $props, $setup, $data, $options) {
4813
4813
  var _component_InputField = vue.resolveComponent("InputField");
4814
4814
 
4815
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [vue.createVNode(_component_InputField, {
4815
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [vue.createVNode(_component_InputField, {
4816
4816
  name: _ctx.name,
4817
4817
  value: _ctx.name,
4818
4818
  type: "checkbox",
@@ -4823,7 +4823,7 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
4823
4823
  errors = _ref.errors,
4824
4824
  errorMessage = _ref.errorMessage,
4825
4825
  meta = _ref.meta;
4826
- return [vue.createElementVNode("div", _hoisted_2$3, [_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
4826
+ return [vue.createElementVNode("div", _hoisted_2$4, [_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
4827
4827
  key: 0,
4828
4828
  "for": _ctx.name,
4829
4829
  "class": "inline-flex items-center mb-3"
@@ -4832,24 +4832,24 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
4832
4832
  name: _ctx.name,
4833
4833
  type: "checkbox",
4834
4834
  "class": "text-primary w-6 h-6 cursor-pointer bg-white border-grey-light border rounded"
4835
- }), null, 16, _hoisted_4$2), vue.createElementVNode("span", {
4835
+ }), null, 16, _hoisted_4$3), vue.createElementVNode("span", {
4836
4836
  "class": "ml-2",
4837
4837
  innerHTML: _ctx.label
4838
- }, null, 8, _hoisted_5$1)], 8, _hoisted_3$3)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_6$1, [vue.createVNode(vue.Transition, {
4838
+ }, null, 8, _hoisted_5$2)], 8, _hoisted_3$4)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_6$2, [vue.createVNode(vue.Transition, {
4839
4839
  name: "fwFadeIn",
4840
4840
  mode: "out-in"
4841
4841
  }, {
4842
4842
  "default": vue.withCtx(function () {
4843
- return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$1, vue.toDisplayString(errorMessage || errors[0]), 1)) : _ctx.hint ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_8$1, vue.toDisplayString(_ctx.hint), 1)) : vue.createCommentVNode("", true)];
4843
+ return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$2, vue.toDisplayString(errorMessage || errors[0]), 1)) : _ctx.hint ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_8$2, vue.toDisplayString(_ctx.hint), 1)) : vue.createCommentVNode("", true)];
4844
4844
  }),
4845
4845
  _: 2
4846
4846
  }, 1024)])])];
4847
4847
  }),
4848
4848
  _: 1
4849
4849
  }, 8, ["name", "value", "rules"])]);
4850
- }var css_248z$2 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}.fw-checkbox input{-webkit-print-color-adjust:exact;-ms-flex-negative:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-origin:border-box;color-adjust:exact;display:inline-block;flex-shrink:0;-webkit-transition:background .2s ease-in;-o-transition:background .2s ease-in;transition:background .2s ease-in;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.fw-checkbox input:checked{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='3 3 10 10' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}";
4851
- var stylesheet$2 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}.fw-checkbox input{-webkit-print-color-adjust:exact;-ms-flex-negative:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-origin:border-box;color-adjust:exact;display:inline-block;flex-shrink:0;-webkit-transition:background .2s ease-in;-o-transition:background .2s ease-in;transition:background .2s ease-in;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.fw-checkbox input:checked{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='3 3 10 10' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}";
4852
- styleInject(css_248z$2);script$5.render = render$5;var script$4 = vue.defineComponent({
4850
+ }var css_248z$3 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}.fw-checkbox input{-webkit-print-color-adjust:exact;-ms-flex-negative:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-origin:border-box;color-adjust:exact;display:inline-block;flex-shrink:0;-webkit-transition:background .2s ease-in;-o-transition:background .2s ease-in;transition:background .2s ease-in;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.fw-checkbox input:checked{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='3 3 10 10' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}";
4851
+ var stylesheet$3 = ".fwFadeIn-enter-active{-webkit-animation:fwFadeIn .35s;animation:fwFadeIn .35s;-webkit-transition:opacity .35s ease-in;-o-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active{animation:fwFadeIn .35s reverse;-webkit-transition:opacity .35s ease-out;-o-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn{0%{opacity:0}to{opacity:1}}.fw-checkbox input{-webkit-print-color-adjust:exact;-ms-flex-negative:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-origin:border-box;color-adjust:exact;display:inline-block;flex-shrink:0;-webkit-transition:background .2s ease-in;-o-transition:background .2s ease-in;transition:background .2s ease-in;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.fw-checkbox input:checked{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='3 3 10 10' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}";
4852
+ styleInject(css_248z$3);script$6.render = render$6;var script$5 = vue.defineComponent({
4853
4853
  name: 'FwCard',
4854
4854
  props: {
4855
4855
  /**
@@ -4888,22 +4888,22 @@ styleInject(css_248z$2);script$5.render = render$5;var script$4 = vue.defineComp
4888
4888
  componentName: componentName
4889
4889
  };
4890
4890
  }
4891
- });var _hoisted_1$3 = {
4891
+ });var _hoisted_1$4 = {
4892
4892
  key: 0,
4893
- "class": "fw-card--header text-lg px-8 py-4 font-bold bg-grey-lightest rounded-t-lg border-opacity-0"
4893
+ "class": "fw-card--header px-8 py-4 bg-grey-lightest rounded-t-lg border-opacity-0"
4894
4894
  };
4895
- var _hoisted_2$2 = {
4895
+ var _hoisted_2$3 = {
4896
4896
  key: 0,
4897
4897
  "class": "fw-card--prefix-title text-primary"
4898
4898
  };
4899
- var _hoisted_3$2 = {
4899
+ var _hoisted_3$3 = {
4900
4900
  key: 1
4901
4901
  };
4902
- var _hoisted_4$1 = {
4902
+ var _hoisted_4$2 = {
4903
4903
  key: 1,
4904
4904
  "class": "p-8"
4905
4905
  };
4906
- function render$4(_ctx, _cache, $props, $setup, $data, $options) {
4906
+ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
4907
4907
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.componentName), {
4908
4908
  to: _ctx.to ? _ctx.to : null,
4909
4909
  href: _ctx.href ? _ctx.href : null,
@@ -4911,11 +4911,11 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
4911
4911
  "class": vue.normalizeClass(["fw-card shadow-card rounded-lg", _ctx.to || _ctx.href ? 'block cursor-pointer focus:outline-none ring-offset-3 focus:ring focus:ring-primary transform-none transition-transform hover:-translate-y-1' : ''])
4912
4912
  }, {
4913
4913
  "default": vue.withCtx(function () {
4914
- return [_ctx.title || _ctx.prefixTitle ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_1$3, [_ctx.prefixTitle ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$2, vue.toDisplayString(_ctx.prefixTitle), 1)) : vue.createCommentVNode("", true), _ctx.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$2, vue.toDisplayString(_ctx.title), 1)) : vue.createCommentVNode("", true)])) : vue.createCommentVNode("", true), _ctx.$slots["default"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, [vue.renderSlot(_ctx.$slots, "default")])) : vue.createCommentVNode("", true)];
4914
+ return [_ctx.title || _ctx.prefixTitle ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_1$4, [_ctx.prefixTitle ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$3, vue.toDisplayString(_ctx.prefixTitle), 1)) : vue.createCommentVNode("", true), _ctx.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$3, vue.toDisplayString(_ctx.title), 1)) : vue.createCommentVNode("", true)])) : vue.createCommentVNode("", true), _ctx.$slots["default"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [vue.renderSlot(_ctx.$slots, "default")])) : vue.createCommentVNode("", true)];
4915
4915
  }),
4916
4916
  _: 3
4917
4917
  }, 8, ["to", "href", "tabindex", "class"]);
4918
- }script$4.render = render$4;var script$3 = vue.defineComponent({
4918
+ }script$5.render = render$5;var script$4 = vue.defineComponent({
4919
4919
  name: 'FwButton',
4920
4920
  emits: ['click', 'mouseover', 'mouseout', 'focusin', 'focusout'],
4921
4921
  props: {
@@ -4998,7 +4998,7 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
4998
4998
  border: 'border-none focus-visible:ring-primary'
4999
4999
  },
5000
5000
  text: {
5001
- text: 'text-body font-medium hover:text-white active:text-white',
5001
+ text: 'text-body hover:text-white active:text-white',
5002
5002
  background: 'bg-white hover:bg-body active:bg-body',
5003
5003
  border: 'border-transparent focus-visible:ring-body'
5004
5004
  }
@@ -5080,7 +5080,7 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
5080
5080
  tagName: tagName
5081
5081
  };
5082
5082
  }
5083
- });function render$3(_ctx, _cache, $props, $setup, $data, $options) {
5083
+ });function render$4(_ctx, _cache, $props, $setup, $data, $options) {
5084
5084
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tagName), {
5085
5085
  "class": vue.normalizeClass(["fw-button inline-block text-center cursor-pointer whitespace-nowrap 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 rounded-none font-normal' : 'font-bold rounded-full']]),
5086
5086
  type: _ctx.tagName === 'button' ? _ctx.buttonType : null,
@@ -5098,13 +5098,13 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
5098
5098
  }),
5099
5099
  _: 3
5100
5100
  }, 8, ["class", "type", "to", "href", "tabindex", "onClick", "onFocusin", "onFocusout", "onMouseover", "onMouseout"]);
5101
- }var css_248z$1 = ".fw-button{line-height:normal;-webkit-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in}";
5102
- var stylesheet$1 = ".fw-button{line-height:normal;-webkit-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in}";
5103
- styleInject(css_248z$1);script$3.render = render$3;var script$2 = vue.defineComponent({
5101
+ }var css_248z$2 = ".fw-button{line-height:normal;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}";
5102
+ var stylesheet$2 = ".fw-button{line-height:normal;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}";
5103
+ styleInject(css_248z$2);script$4.render = render$4;var script$3 = vue.defineComponent({
5104
5104
  name: 'FwNavigationMenu',
5105
5105
  emits: ['action'],
5106
5106
  components: {
5107
- FwButton: script$3
5107
+ FwButton: script$4
5108
5108
  },
5109
5109
  props: {
5110
5110
  /**
@@ -5140,36 +5140,36 @@ styleInject(css_248z$1);script$3.render = render$3;var script$2 = vue.defineComp
5140
5140
  actionClicked: actionClicked
5141
5141
  };
5142
5142
  }
5143
- });var _hoisted_1$2 = {
5143
+ });var _hoisted_1$3 = {
5144
5144
  "class": "fw-nav-menu relative z-50 h-20 shadow-md"
5145
5145
  };
5146
- var _hoisted_2$1 = {
5146
+ var _hoisted_2$2 = {
5147
5147
  "class": "px-6 flex-1 h-full flex bg-white items-stretch justify-between"
5148
5148
  };
5149
- var _hoisted_3$1 = {
5149
+ var _hoisted_3$2 = {
5150
5150
  key: 0,
5151
5151
  "class": "flex-shrink-0 flex items-center"
5152
5152
  };
5153
- var _hoisted_4 = {
5153
+ var _hoisted_4$1 = {
5154
5154
  key: 1,
5155
- "class": "container hidden sm:flex items-center justify-start sm:ml-6"
5155
+ "class": "container hidden sm:flex items-center justify-start max-w-[600px] sm:ml-6"
5156
5156
  };
5157
- var _hoisted_5 = {
5157
+ var _hoisted_5$1 = {
5158
5158
  "class": "flex space-x-2"
5159
5159
  };
5160
- var _hoisted_6 = {
5160
+ var _hoisted_6$1 = {
5161
5161
  key: 2,
5162
5162
  "class": "hidden sm:flex items-center justify-start sm:ml-6"
5163
5163
  };
5164
- var _hoisted_7 = {
5164
+ var _hoisted_7$1 = {
5165
5165
  "class": "flex items-center sm:hidden"
5166
5166
  };
5167
5167
 
5168
- var _hoisted_8 = /*#__PURE__*/vue.createElementVNode("span", {
5168
+ var _hoisted_8$1 = /*#__PURE__*/vue.createElementVNode("span", {
5169
5169
  "class": "sr-only"
5170
5170
  }, "Open main menu", -1);
5171
5171
 
5172
- var _hoisted_9 = {
5172
+ var _hoisted_9$1 = {
5173
5173
  "class": "block h-6 w-6",
5174
5174
  xmlns: "http://www.w3.org/2000/svg",
5175
5175
  fill: "none",
@@ -5177,20 +5177,20 @@ var _hoisted_9 = {
5177
5177
  stroke: "currentColor",
5178
5178
  "aria-hidden": "true"
5179
5179
  };
5180
- var _hoisted_10 = ["d"];
5181
- var _hoisted_11 = {
5180
+ var _hoisted_10$1 = ["d"];
5181
+ var _hoisted_11$1 = {
5182
5182
  key: 0,
5183
5183
  "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"
5184
5184
  };
5185
5185
  var _hoisted_12 = {
5186
5186
  "class": "w-full flex flex-col"
5187
5187
  };
5188
- function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5188
+ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
5189
5189
  var _ctx$menuItems;
5190
5190
 
5191
5191
  var _component_FwButton = vue.resolveComponent("FwButton");
5192
5192
 
5193
- return vue.openBlock(), vue.createElementBlock("nav", _hoisted_1$2, [vue.createElementVNode("div", _hoisted_2$1, [_ctx.$slots.logo ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$1, [vue.renderSlot(_ctx.$slots, "logo")])) : vue.createCommentVNode("", true), ((_ctx$menuItems = _ctx.menuItems) === null || _ctx$menuItems === void 0 ? void 0 : _ctx$menuItems.length) > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [vue.createElementVNode("div", _hoisted_5, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menuItems, function (item, i) {
5193
+ return vue.openBlock(), vue.createElementBlock("nav", _hoisted_1$3, [vue.createElementVNode("div", _hoisted_2$2, [_ctx.$slots.logo ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$2, [vue.renderSlot(_ctx.$slots, "logo")])) : vue.createCommentVNode("", true), ((_ctx$menuItems = _ctx.menuItems) === null || _ctx$menuItems === void 0 ? void 0 : _ctx$menuItems.length) > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, [vue.createElementVNode("div", _hoisted_5$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menuItems, function (item, i) {
5194
5194
  return vue.openBlock(), vue.createBlock(_component_FwButton, {
5195
5195
  key: i,
5196
5196
  variant: "text",
@@ -5204,7 +5204,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5204
5204
  }),
5205
5205
  _: 2
5206
5206
  }, 1032, ["href", "to"]);
5207
- }), 128))])])) : vue.createCommentVNode("", true), _ctx.actionLabel ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [vue.createVNode(_component_FwButton, {
5207
+ }), 128))])])) : vue.createCommentVNode("", true), _ctx.actionLabel ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$1, [vue.createVNode(_component_FwButton, {
5208
5208
  onClick: _ctx.actionClicked,
5209
5209
  size: "md",
5210
5210
  "aria-label": _ctx.actionLabel
@@ -5213,18 +5213,18 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5213
5213
  return [vue.createTextVNode(vue.toDisplayString(_ctx.actionLabel), 1)];
5214
5214
  }),
5215
5215
  _: 1
5216
- }, 8, ["onClick", "aria-label"])])) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_7, [vue.createVNode(_component_FwButton, {
5216
+ }, 8, ["onClick", "aria-label"])])) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_7$1, [vue.createVNode(_component_FwButton, {
5217
5217
  variant: "text",
5218
5218
  size: "sm",
5219
5219
  onClick: _ctx.toggleMobileMenu
5220
5220
  }, {
5221
5221
  "default": vue.withCtx(function () {
5222
- return [_hoisted_8, (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9, [vue.createElementVNode("path", {
5222
+ return [_hoisted_8$1, (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$1, [vue.createElementVNode("path", {
5223
5223
  "stroke-linecap": "round",
5224
5224
  "stroke-linejoin": "round",
5225
5225
  "stroke-width": "2",
5226
5226
  d: _ctx.isMobileMenuOpen ? 'M6 18L18 6M6 6l12 12' : 'M4 6h16M4 12h16M4 18h16'
5227
- }, null, 8, _hoisted_10)]))];
5227
+ }, null, 8, _hoisted_10$1)]))];
5228
5228
  }),
5229
5229
  _: 1
5230
5230
  }, 8, ["onClick"])])]), vue.createVNode(vue.Transition, {
@@ -5233,10 +5233,10 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5233
5233
  "default": vue.withCtx(function () {
5234
5234
  var _ctx$menuItems2;
5235
5235
 
5236
- return [((_ctx$menuItems2 = _ctx.menuItems) === null || _ctx$menuItems2 === void 0 ? void 0 : _ctx$menuItems2.length) > 0 && _ctx.isMobileMenuOpen ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, [vue.createElementVNode("div", _hoisted_12, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menuItems, function (item, i) {
5236
+ return [((_ctx$menuItems2 = _ctx.menuItems) === null || _ctx$menuItems2 === void 0 ? void 0 : _ctx$menuItems2.length) > 0 && _ctx.isMobileMenuOpen ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$1, [vue.createElementVNode("div", _hoisted_12, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menuItems, function (item, i) {
5237
5237
  return vue.openBlock(), vue.createBlock(_component_FwButton, {
5238
5238
  key: i,
5239
- "class": "w-full rounded-md px-2",
5239
+ "class": "w-full rounded-md",
5240
5240
  variant: "text",
5241
5241
  href: item.href,
5242
5242
  to: item.to,
@@ -5251,8 +5251,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5251
5251
  }), 128))]), _ctx.actionLabel ? (vue.openBlock(), vue.createBlock(_component_FwButton, {
5252
5252
  key: 0,
5253
5253
  "class": "w-full rounded-md px-2",
5254
- onClick: _ctx.actionClicked,
5255
- size: "md"
5254
+ onClick: _ctx.actionClicked
5256
5255
  }, {
5257
5256
  "default": vue.withCtx(function () {
5258
5257
  return [vue.createTextVNode(vue.toDisplayString(_ctx.actionLabel), 1)];
@@ -5262,9 +5261,9 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5262
5261
  }),
5263
5262
  _: 1
5264
5263
  })]);
5265
- }var css_248z = ".fw-nav-menu--mobile{z-index:-1}.fw-nav-menu--mobile,.slideInLeft-enter-active{-webkit-transition:left .35s ease-in;-o-transition:left .35s ease-in;transition:left .35s ease-in}.slideInLeft-enter-active{-webkit-animation:slideInLeft .35s;animation:slideInLeft .35s}.slideInLeft-leave-active{animation:slideInLeft .35s reverse;-webkit-transition:left .35s ease-in-out;-o-transition:left .35s ease-in-out;transition:left .35s ease-in-out}@-webkit-keyframes slideInLeft{0%{left:100%}to{left:0}}@keyframes slideInLeft{0%{left:100%}to{left:0}}";
5266
- var stylesheet = ".fw-nav-menu--mobile{z-index:-1}.fw-nav-menu--mobile,.slideInLeft-enter-active{-webkit-transition:left .35s ease-in;-o-transition:left .35s ease-in;transition:left .35s ease-in}.slideInLeft-enter-active{-webkit-animation:slideInLeft .35s;animation:slideInLeft .35s}.slideInLeft-leave-active{animation:slideInLeft .35s reverse;-webkit-transition:left .35s ease-in-out;-o-transition:left .35s ease-in-out;transition:left .35s ease-in-out}@-webkit-keyframes slideInLeft{0%{left:100%}to{left:0}}@keyframes slideInLeft{0%{left:100%}to{left:0}}";
5267
- styleInject(css_248z);script$2.render = render$2;var es_number_constructor = {};var global$3 = global$r;
5264
+ }var css_248z$1 = ".fw-nav-menu--mobile{z-index:-1}.fw-nav-menu--mobile,.slideInLeft-enter-active{-webkit-transition:left .35s ease-in;-o-transition:left .35s ease-in;transition:left .35s ease-in}.slideInLeft-enter-active{-webkit-animation:slideInLeft .35s;animation:slideInLeft .35s}.slideInLeft-leave-active{animation:slideInLeft .35s reverse;-webkit-transition:left .35s ease-in-out;-o-transition:left .35s ease-in-out;transition:left .35s ease-in-out}@-webkit-keyframes slideInLeft{0%{left:100%}to{left:0}}@keyframes slideInLeft{0%{left:100%}to{left:0}}";
5265
+ var stylesheet$1 = ".fw-nav-menu--mobile{z-index:-1}.fw-nav-menu--mobile,.slideInLeft-enter-active{-webkit-transition:left .35s ease-in;-o-transition:left .35s ease-in;transition:left .35s ease-in}.slideInLeft-enter-active{-webkit-animation:slideInLeft .35s;animation:slideInLeft .35s}.slideInLeft-leave-active{animation:slideInLeft .35s reverse;-webkit-transition:left .35s ease-in-out;-o-transition:left .35s ease-in-out;transition:left .35s ease-in-out}@-webkit-keyframes slideInLeft{0%{left:100%}to{left:0}}@keyframes slideInLeft{0%{left:100%}to{left:0}}";
5266
+ styleInject(css_248z$1);script$3.render = render$3;var es_number_constructor = {};var global$3 = global$r;
5268
5267
  var isCallable$1 = isCallable$e;
5269
5268
 
5270
5269
  var String$2 = global$3.String;
@@ -5326,14 +5325,14 @@ var classof = classof$3;
5326
5325
 
5327
5326
  var String$1 = global$2.String;
5328
5327
 
5329
- var toString$1 = function (argument) {
5328
+ var toString$2 = function (argument) {
5330
5329
  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
5331
5330
  return String$1(argument);
5332
5331
  };// a string of all valid unicode whitespaces
5333
5332
  var whitespaces$1 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
5334
5333
  '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';var uncurryThis$1 = functionUncurryThis;
5335
5334
  var requireObjectCoercible = requireObjectCoercible$3;
5336
- var toString = toString$1;
5335
+ var toString$1 = toString$2;
5337
5336
  var whitespaces = whitespaces$1;
5338
5337
 
5339
5338
  var replace = uncurryThis$1(''.replace);
@@ -5344,7 +5343,7 @@ var rtrim = RegExp(whitespace + whitespace + '*$');
5344
5343
  // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
5345
5344
  var createMethod = function (TYPE) {
5346
5345
  return function ($this) {
5347
- var string = toString(requireObjectCoercible($this));
5346
+ var string = toString$1(requireObjectCoercible($this));
5348
5347
  if (TYPE & 1) string = replace(string, ltrim, '');
5349
5348
  if (TYPE & 2) string = replace(string, rtrim, '');
5350
5349
  return string;
@@ -5370,7 +5369,7 @@ var redefine = redefine$4.exports;
5370
5369
  var hasOwn = hasOwnProperty_1;
5371
5370
  var inheritIfRequired = inheritIfRequired$1;
5372
5371
  var isPrototypeOf = objectIsPrototypeOf;
5373
- var isSymbol = isSymbol$3;
5372
+ var isSymbol$1 = isSymbol$4;
5374
5373
  var toPrimitive = toPrimitive$2;
5375
5374
  var fails = fails$a;
5376
5375
  var getOwnPropertyNames = objectGetOwnPropertyNames.f;
@@ -5398,7 +5397,7 @@ var toNumeric = function (value) {
5398
5397
  var toNumber = function (argument) {
5399
5398
  var it = toPrimitive(argument, 'number');
5400
5399
  var first, third, radix, maxCode, digits, length, index, code;
5401
- if (isSymbol(it)) throw TypeError$1('Cannot convert a Symbol value to a number');
5400
+ if (isSymbol$1(it)) throw TypeError$1('Cannot convert a Symbol value to a number');
5402
5401
  if (typeof it == 'string' && it.length > 2) {
5403
5402
  it = trim(it);
5404
5403
  first = charCodeAt(it, 0);
@@ -5448,7 +5447,7 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
5448
5447
  NumberWrapper.prototype = NumberPrototype;
5449
5448
  NumberPrototype.constructor = NumberWrapper;
5450
5449
  redefine(global$1, NUMBER, NumberWrapper);
5451
- }var script$1 = vue.defineComponent({
5450
+ }var script$2 = vue.defineComponent({
5452
5451
  name: 'FwTabs',
5453
5452
  emits: ['update:modelValue'],
5454
5453
  props: {
@@ -5480,16 +5479,16 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
5480
5479
  selectTab: selectTab
5481
5480
  };
5482
5481
  }
5483
- });var _hoisted_1$1 = {
5482
+ });var _hoisted_1$2 = {
5484
5483
  "class": "fw-tabs"
5485
5484
  };
5486
- var _hoisted_2 = {
5485
+ var _hoisted_2$1 = {
5487
5486
  key: 0,
5488
5487
  "class": "flex flex-wrap -mb-px border-b border-grey-light dark:text-grey-base dark:border-grey-base"
5489
5488
  };
5490
- var _hoisted_3 = ["onClick"];
5491
- function render$1(_ctx, _cache, $props, $setup, $data, $options) {
5492
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [_ctx.tabs ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs, function (tab, i) {
5489
+ var _hoisted_3$1 = ["onClick"];
5490
+ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
5491
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [_ctx.tabs ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_2$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs, function (tab, i) {
5493
5492
  return vue.openBlock(), vue.createElementBlock("li", {
5494
5493
  "class": "mr-2",
5495
5494
  key: i
@@ -5499,9 +5498,9 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
5499
5498
  return _ctx.selectTab(i);
5500
5499
  },
5501
5500
  "class": vue.normalizeClass(["inline-block p-4 outline-primary border-b-2 border-transparent transition ease-in", _ctx.active === i ? 'font-medium border-black' : 'hover:bg-grey-lightest'])
5502
- }, vue.toDisplayString(tab.props.label), 11, _hoisted_3)]);
5501
+ }, vue.toDisplayString(tab.props.label), 11, _hoisted_3$1)]);
5503
5502
  }), 128))])) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default")]);
5504
- }script$1.render = render$1;var es_array_findIndex = {};'use strict';
5503
+ }script$2.render = render$2;var es_array_findIndex = {};'use strict';
5505
5504
  var $ = _export;
5506
5505
  var $findIndex = arrayIteration.findIndex;
5507
5506
  var addToUnscopables = addToUnscopables$2;
@@ -5521,7 +5520,7 @@ $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
5521
5520
  });
5522
5521
 
5523
5522
  // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
5524
- addToUnscopables(FIND_INDEX);var script = vue.defineComponent({
5523
+ addToUnscopables(FIND_INDEX);var script$1 = vue.defineComponent({
5525
5524
  name: 'FwTab',
5526
5525
  props: {
5527
5526
  /**
@@ -5562,22 +5561,526 @@ addToUnscopables(FIND_INDEX);var script = vue.defineComponent({
5562
5561
  index: index
5563
5562
  };
5564
5563
  }
5565
- });var _hoisted_1 = {
5564
+ });var _hoisted_1$1 = {
5566
5565
  key: 0,
5567
5566
  "class": "fw-tab w-full"
5568
5567
  };
5568
+ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
5569
+ return _ctx.isActive ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [vue.renderSlot(_ctx.$slots, "default")])) : vue.createCommentVNode("", true);
5570
+ }script$1.render = render$1;/** Detect free variable `global` from Node.js. */
5571
+ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;/** Detect free variable `self`. */
5572
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
5573
+
5574
+ /** Used as a reference to the global object. */
5575
+ var root = freeGlobal || freeSelf || Function('return this')();/** Built-in value references. */
5576
+ var Symbol$1 = root.Symbol;/**
5577
+ * A specialized version of `_.map` for arrays without support for iteratee
5578
+ * shorthands.
5579
+ *
5580
+ * @private
5581
+ * @param {Array} [array] The array to iterate over.
5582
+ * @param {Function} iteratee The function invoked per iteration.
5583
+ * @returns {Array} Returns the new mapped array.
5584
+ */
5585
+ function arrayMap(array, iteratee) {
5586
+ var index = -1,
5587
+ length = array == null ? 0 : array.length,
5588
+ result = Array(length);
5589
+
5590
+ while (++index < length) {
5591
+ result[index] = iteratee(array[index], index, array);
5592
+ }
5593
+ return result;
5594
+ }/**
5595
+ * Checks if `value` is classified as an `Array` object.
5596
+ *
5597
+ * @static
5598
+ * @memberOf _
5599
+ * @since 0.1.0
5600
+ * @category Lang
5601
+ * @param {*} value The value to check.
5602
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
5603
+ * @example
5604
+ *
5605
+ * _.isArray([1, 2, 3]);
5606
+ * // => true
5607
+ *
5608
+ * _.isArray(document.body.children);
5609
+ * // => false
5610
+ *
5611
+ * _.isArray('abc');
5612
+ * // => false
5613
+ *
5614
+ * _.isArray(_.noop);
5615
+ * // => false
5616
+ */
5617
+ var isArray = Array.isArray;/** Used for built-in method references. */
5618
+ var objectProto$1 = Object.prototype;
5619
+
5620
+ /** Used to check objects for own properties. */
5621
+ var hasOwnProperty = objectProto$1.hasOwnProperty;
5622
+
5623
+ /**
5624
+ * Used to resolve the
5625
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
5626
+ * of values.
5627
+ */
5628
+ var nativeObjectToString$1 = objectProto$1.toString;
5629
+
5630
+ /** Built-in value references. */
5631
+ var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
5632
+
5633
+ /**
5634
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
5635
+ *
5636
+ * @private
5637
+ * @param {*} value The value to query.
5638
+ * @returns {string} Returns the raw `toStringTag`.
5639
+ */
5640
+ function getRawTag(value) {
5641
+ var isOwn = hasOwnProperty.call(value, symToStringTag$1),
5642
+ tag = value[symToStringTag$1];
5643
+
5644
+ try {
5645
+ value[symToStringTag$1] = undefined;
5646
+ var unmasked = true;
5647
+ } catch (e) {}
5648
+
5649
+ var result = nativeObjectToString$1.call(value);
5650
+ if (unmasked) {
5651
+ if (isOwn) {
5652
+ value[symToStringTag$1] = tag;
5653
+ } else {
5654
+ delete value[symToStringTag$1];
5655
+ }
5656
+ }
5657
+ return result;
5658
+ }/** Used for built-in method references. */
5659
+ var objectProto = Object.prototype;
5660
+
5661
+ /**
5662
+ * Used to resolve the
5663
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
5664
+ * of values.
5665
+ */
5666
+ var nativeObjectToString = objectProto.toString;
5667
+
5668
+ /**
5669
+ * Converts `value` to a string using `Object.prototype.toString`.
5670
+ *
5671
+ * @private
5672
+ * @param {*} value The value to convert.
5673
+ * @returns {string} Returns the converted string.
5674
+ */
5675
+ function objectToString(value) {
5676
+ return nativeObjectToString.call(value);
5677
+ }/** `Object#toString` result references. */
5678
+ var nullTag = '[object Null]',
5679
+ undefinedTag = '[object Undefined]';
5680
+
5681
+ /** Built-in value references. */
5682
+ var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;
5683
+
5684
+ /**
5685
+ * The base implementation of `getTag` without fallbacks for buggy environments.
5686
+ *
5687
+ * @private
5688
+ * @param {*} value The value to query.
5689
+ * @returns {string} Returns the `toStringTag`.
5690
+ */
5691
+ function baseGetTag(value) {
5692
+ if (value == null) {
5693
+ return value === undefined ? undefinedTag : nullTag;
5694
+ }
5695
+ return (symToStringTag && symToStringTag in Object(value))
5696
+ ? getRawTag(value)
5697
+ : objectToString(value);
5698
+ }/**
5699
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
5700
+ * and has a `typeof` result of "object".
5701
+ *
5702
+ * @static
5703
+ * @memberOf _
5704
+ * @since 4.0.0
5705
+ * @category Lang
5706
+ * @param {*} value The value to check.
5707
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
5708
+ * @example
5709
+ *
5710
+ * _.isObjectLike({});
5711
+ * // => true
5712
+ *
5713
+ * _.isObjectLike([1, 2, 3]);
5714
+ * // => true
5715
+ *
5716
+ * _.isObjectLike(_.noop);
5717
+ * // => false
5718
+ *
5719
+ * _.isObjectLike(null);
5720
+ * // => false
5721
+ */
5722
+ function isObjectLike(value) {
5723
+ return value != null && typeof value == 'object';
5724
+ }/** `Object#toString` result references. */
5725
+ var symbolTag = '[object Symbol]';
5726
+
5727
+ /**
5728
+ * Checks if `value` is classified as a `Symbol` primitive or object.
5729
+ *
5730
+ * @static
5731
+ * @memberOf _
5732
+ * @since 4.0.0
5733
+ * @category Lang
5734
+ * @param {*} value The value to check.
5735
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
5736
+ * @example
5737
+ *
5738
+ * _.isSymbol(Symbol.iterator);
5739
+ * // => true
5740
+ *
5741
+ * _.isSymbol('abc');
5742
+ * // => false
5743
+ */
5744
+ function isSymbol(value) {
5745
+ return typeof value == 'symbol' ||
5746
+ (isObjectLike(value) && baseGetTag(value) == symbolTag);
5747
+ }/** Used as references for various `Number` constants. */
5748
+ var INFINITY = 1 / 0;
5749
+
5750
+ /** Used to convert symbols to primitives and strings. */
5751
+ var symbolProto = Symbol$1 ? Symbol$1.prototype : undefined,
5752
+ symbolToString = symbolProto ? symbolProto.toString : undefined;
5753
+
5754
+ /**
5755
+ * The base implementation of `_.toString` which doesn't convert nullish
5756
+ * values to empty strings.
5757
+ *
5758
+ * @private
5759
+ * @param {*} value The value to process.
5760
+ * @returns {string} Returns the string.
5761
+ */
5762
+ function baseToString(value) {
5763
+ // Exit early for strings to avoid a performance hit in some environments.
5764
+ if (typeof value == 'string') {
5765
+ return value;
5766
+ }
5767
+ if (isArray(value)) {
5768
+ // Recursively convert values (susceptible to call stack limits).
5769
+ return arrayMap(value, baseToString) + '';
5770
+ }
5771
+ if (isSymbol(value)) {
5772
+ return symbolToString ? symbolToString.call(value) : '';
5773
+ }
5774
+ var result = (value + '');
5775
+ return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
5776
+ }/**
5777
+ * Converts `value` to a string. An empty string is returned for `null`
5778
+ * and `undefined` values. The sign of `-0` is preserved.
5779
+ *
5780
+ * @static
5781
+ * @memberOf _
5782
+ * @since 4.0.0
5783
+ * @category Lang
5784
+ * @param {*} value The value to convert.
5785
+ * @returns {string} Returns the converted string.
5786
+ * @example
5787
+ *
5788
+ * _.toString(null);
5789
+ * // => ''
5790
+ *
5791
+ * _.toString(-0);
5792
+ * // => '-0'
5793
+ *
5794
+ * _.toString([1, 2, 3]);
5795
+ * // => '1,2,3'
5796
+ */
5797
+ function toString(value) {
5798
+ return value == null ? '' : baseToString(value);
5799
+ }/** Used to generate unique IDs. */
5800
+ var idCounter = 0;
5801
+
5802
+ /**
5803
+ * Generates a unique ID. If `prefix` is given, the ID is appended to it.
5804
+ *
5805
+ * @static
5806
+ * @since 0.1.0
5807
+ * @memberOf _
5808
+ * @category Util
5809
+ * @param {string} [prefix=''] The value to prefix the ID with.
5810
+ * @returns {string} Returns the unique ID.
5811
+ * @example
5812
+ *
5813
+ * _.uniqueId('contact_');
5814
+ * // => 'contact_104'
5815
+ *
5816
+ * _.uniqueId();
5817
+ * // => '105'
5818
+ */
5819
+ function uniqueId(prefix) {
5820
+ var id = ++idCounter;
5821
+ return toString(prefix) + id;
5822
+ }var script = vue.defineComponent({
5823
+ name: 'FwModal',
5824
+ components: {
5825
+ FwButton: script$4
5826
+ },
5827
+ emits: ['cancel', 'confirm'],
5828
+ props: {
5829
+ /**
5830
+ * The header title of the modal
5831
+ */
5832
+ header: {
5833
+ type: String
5834
+ },
5835
+
5836
+ /**
5837
+ * The body description of the modal
5838
+ */
5839
+ body: {
5840
+ type: String
5841
+ },
5842
+
5843
+ /**
5844
+ * The aria role of the modal container. Defaults to `dialog`
5845
+ */
5846
+ role: {
5847
+ type: String,
5848
+ "default": 'dialog'
5849
+ },
5850
+
5851
+ /**
5852
+ * Whether to show the cancel button
5853
+ */
5854
+ showCancel: {
5855
+ type: Boolean,
5856
+ "default": false
5857
+ },
5858
+
5859
+ /**
5860
+ * Whether to show the confirm button
5861
+ */
5862
+ showConfirm: {
5863
+ type: Boolean,
5864
+ "default": true
5865
+ },
5866
+
5867
+ /**
5868
+ * Custom text for the cancel button
5869
+ */
5870
+ cancelButtonText: {
5871
+ type: String,
5872
+ "default": 'Cancel'
5873
+ },
5874
+
5875
+ /**
5876
+ * Button variant for the cancel button
5877
+ */
5878
+ cancelButtonType: {
5879
+ type: String,
5880
+ "default": 'secondary',
5881
+ validator: function validator(value) {
5882
+ return ['primary', 'secondary', 'tertiary', 'error', 'success', 'link', 'text'].includes(value);
5883
+ }
5884
+ },
5885
+
5886
+ /**
5887
+ * Custom text for the confirm button
5888
+ */
5889
+ confirmButtonText: {
5890
+ type: String,
5891
+ "default": 'Confirm'
5892
+ },
5893
+
5894
+ /**
5895
+ * Button variant for the confirm button
5896
+ */
5897
+ confirmButtonType: {
5898
+ type: String,
5899
+ "default": 'primary',
5900
+ validator: function validator(value) {
5901
+ return ['primary', 'secondary', 'tertiary', 'error', 'success', 'link', 'text'].includes(value);
5902
+ }
5903
+ }
5904
+ },
5905
+ setup: function setup() {
5906
+ var uuid = uniqueId();
5907
+ return {
5908
+ uuid: uuid
5909
+ };
5910
+ }
5911
+ });var _withScopeId = function _withScopeId(n) {
5912
+ return vue.pushScopeId("data-v-d1d6dbae"), n = n(), vue.popScopeId(), n;
5913
+ };
5914
+
5915
+ var _hoisted_1 = {
5916
+ "class": "fw-modal"
5917
+ };
5918
+ var _hoisted_2 = {
5919
+ "class": "fw-modal--mask fixed z-[9999] top-0 left-0 w-full h-full bg-black bg-opacity-50"
5920
+ };
5921
+ var _hoisted_3 = {
5922
+ "class": "fw-modal--wrapper text-center overflow-auto flex justify-center items-center h-full"
5923
+ };
5924
+ var _hoisted_4 = ["role", "aria-labelledby", "aria-describedby"];
5925
+ var _hoisted_5 = {
5926
+ key: 0,
5927
+ "class": "fw-modal--header text-center"
5928
+ };
5929
+ var _hoisted_6 = {
5930
+ key: 0,
5931
+ id: "modal-logo",
5932
+ "class": "flex justify-center"
5933
+ };
5934
+ var _hoisted_7 = ["id"];
5935
+ var _hoisted_8 = ["id", "innerHTML"];
5936
+ var _hoisted_9 = ["id"];
5937
+ var _hoisted_10 = ["innerHTML", "id"];
5938
+ var _hoisted_11 = {
5939
+ key: 3,
5940
+ "class": "modal-footer flex space-x-4 pt-4 justify-center"
5941
+ };
5569
5942
  function render(_ctx, _cache, $props, $setup, $data, $options) {
5570
- return _ctx.isActive ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [vue.renderSlot(_ctx.$slots, "default")])) : vue.createCommentVNode("", true);
5571
- }script.render = render;// Form components
5572
- var components$1=/*#__PURE__*/Object.freeze({__proto__:null,FwForm:Form,FwInput:script$6,FwCheckbox:script$5,FwCard:script$4,FwButton:script$3,FwNavigationMenu:script$2,FwTabs:script$1,FwTab:script});var install = function install(app) {
5573
- Object.entries(components$1).forEach(function (_ref) {
5943
+ var _component_FwButton = vue.resolveComponent("FwButton");
5944
+
5945
+ return vue.openBlock(), vue.createBlock(vue.Transition, {
5946
+ name: "modalFadeIn"
5947
+ }, {
5948
+ "default": vue.withCtx(function () {
5949
+ return [vue.createElementVNode("div", _hoisted_1, [vue.createElementVNode("div", _hoisted_2, [vue.createElementVNode("div", _hoisted_3, [vue.createElementVNode("div", {
5950
+ role: _ctx.role,
5951
+ "class": "fw-modal--container p-12 m-8 inline-block w-full max-w-[540px] bg-white rounded-2xl shadow",
5952
+ "aria-labelledby": _ctx.$slots.header || _ctx.header ? "modal_".concat(_ctx.uuid, "_header") : null,
5953
+ "aria-describedby": _ctx.$slots.body ? "modal_".concat(_ctx.uuid, "_body") : null
5954
+ }, [_ctx.$slots.icon || _ctx.$slots.header || _ctx.header ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [_ctx.$slots.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [vue.renderSlot(_ctx.$slots, "icon")])) : vue.createCommentVNode("", true), _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("h2", {
5955
+ key: 1,
5956
+ id: "modal_".concat(_ctx.uuid, "_header")
5957
+ }, [vue.renderSlot(_ctx.$slots, "header")], 8, _hoisted_7)) : _ctx.header ? (vue.openBlock(), vue.createElementBlock("h2", {
5958
+ key: 2,
5959
+ id: "modal_".concat(_ctx.uuid, "_header"),
5960
+ innerHTML: _ctx.header
5961
+ }, null, 8, _hoisted_8)) : vue.createCommentVNode("", true)])) : vue.createCommentVNode("", true), _ctx.$slots.body ? (vue.openBlock(), vue.createElementBlock("div", {
5962
+ key: 1,
5963
+ "class": "modal-body mt-4",
5964
+ id: "modal_".concat(_ctx.uuid, "_body")
5965
+ }, [vue.renderSlot(_ctx.$slots, "body")], 8, _hoisted_9)) : _ctx.body ? (vue.openBlock(), vue.createElementBlock("div", {
5966
+ key: 2,
5967
+ innerHTML: _ctx.body,
5968
+ "class": "modal-body mt-4",
5969
+ id: "modal_".concat(_ctx.uuid, "_body")
5970
+ }, null, 8, _hoisted_10)) : vue.createCommentVNode("", true), _ctx.showConfirm || _ctx.showCancel ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, [_ctx.showCancel ? (vue.openBlock(), vue.createBlock(_component_FwButton, {
5971
+ key: 0,
5972
+ "class": "basis-1/2",
5973
+ variant: _ctx.cancelButtonType,
5974
+ "aria-label": _ctx.cancelButtonText,
5975
+ onClick: _cache[0] || (_cache[0] = function ($event) {
5976
+ return _ctx.$emit('cancel');
5977
+ })
5978
+ }, {
5979
+ "default": vue.withCtx(function () {
5980
+ return [vue.createTextVNode(vue.toDisplayString(_ctx.cancelButtonText), 1)];
5981
+ }),
5982
+ _: 1
5983
+ }, 8, ["variant", "aria-label"])) : vue.createCommentVNode("", true), _ctx.showConfirm ? (vue.openBlock(), vue.createBlock(_component_FwButton, {
5984
+ key: 1,
5985
+ "class": "basis-1/2",
5986
+ variant: _ctx.confirmButtonType,
5987
+ "aria-label": _ctx.confirmButtonText,
5988
+ onClick: _cache[1] || (_cache[1] = function ($event) {
5989
+ return _ctx.$emit('confirm');
5990
+ })
5991
+ }, {
5992
+ "default": vue.withCtx(function () {
5993
+ return [vue.createTextVNode(vue.toDisplayString(_ctx.confirmButtonText), 1)];
5994
+ }),
5995
+ _: 1
5996
+ }, 8, ["variant", "aria-label"])) : vue.createCommentVNode("", true)])) : vue.createCommentVNode("", true)], 8, _hoisted_4)])])])];
5997
+ }),
5998
+ _: 3
5999
+ });
6000
+ }var css_248z = ".modalFadeIn-enter-active[data-v-d1d6dbae]{-webkit-animation:modalFadeIn-d1d6dbae .4s;animation:modalFadeIn-d1d6dbae .4s;-webkit-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.modalFadeIn-leave-active[data-v-d1d6dbae]{animation:modalFadeIn-d1d6dbae .4s reverse;-webkit-transition:opacity .4s ease-out;-o-transition:opacity .4s ease-out;transition:opacity .4s ease-out}@-webkit-keyframes modalFadeIn-d1d6dbae{0%{opacity:0}to{opacity:1}}@keyframes modalFadeIn-d1d6dbae{0%{opacity:0}to{opacity:1}}";
6001
+ var stylesheet = ".modalFadeIn-enter-active[data-v-d1d6dbae]{-webkit-animation:modalFadeIn-d1d6dbae .4s;animation:modalFadeIn-d1d6dbae .4s;-webkit-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.modalFadeIn-leave-active[data-v-d1d6dbae]{animation:modalFadeIn-d1d6dbae .4s reverse;-webkit-transition:opacity .4s ease-out;-o-transition:opacity .4s ease-out;transition:opacity .4s ease-out}@-webkit-keyframes modalFadeIn-d1d6dbae{0%{opacity:0}to{opacity:1}}@keyframes modalFadeIn-d1d6dbae{0%{opacity:0}to{opacity:1}}";
6002
+ styleInject(css_248z);script.render = render;
6003
+ script.__scopeId = "data-v-d1d6dbae";// Form components
6004
+ var Components=/*#__PURE__*/Object.freeze({__proto__:null,FwForm:Form,FwInput:script$7,FwCheckbox:script$6,FwCard:script$5,FwButton:script$4,FwNavigationMenu:script$3,FwTabs:script$2,FwTab:script$1,FwModal:script});function _defineProperty(obj, key, value) {
6005
+ if (key in obj) {
6006
+ Object.defineProperty(obj, key, {
6007
+ value: value,
6008
+ enumerable: true,
6009
+ configurable: true,
6010
+ writable: true
6011
+ });
6012
+ } else {
6013
+ obj[key] = value;
6014
+ }
6015
+
6016
+ return obj;
6017
+ }function ownKeys(object, enumerableOnly) {
6018
+ var keys = Object.keys(object);
6019
+
6020
+ if (Object.getOwnPropertySymbols) {
6021
+ var symbols = Object.getOwnPropertySymbols(object);
6022
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
6023
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
6024
+ })), keys.push.apply(keys, symbols);
6025
+ }
6026
+
6027
+ return keys;
6028
+ }
6029
+
6030
+ function _objectSpread2(target) {
6031
+ for (var i = 1; i < arguments.length; i++) {
6032
+ var source = null != arguments[i] ? arguments[i] : {};
6033
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
6034
+ _defineProperty(target, key, source[key]);
6035
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
6036
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
6037
+ });
6038
+ }
6039
+
6040
+ return target;
6041
+ }var modalService = function modalService(options, element) {
6042
+ var _getCurrentInstance;
6043
+
6044
+ var elementToMount = document.createElement('div');
6045
+ var modalVNode = null;
6046
+ var appContext = (_getCurrentInstance = vue.getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.appContext;
6047
+ var elAppend = element || document.body;
6048
+
6049
+ var open = function open() {
6050
+ modalVNode = vue.createVNode(script, _objectSpread2(_objectSpread2({}, options), {}, {
6051
+ "class": 'modalFadeIn-enter-active'
6052
+ }));
6053
+ modalVNode.appContext = appContext ? appContext : null;
6054
+ vue.render(modalVNode, elementToMount);
6055
+ elAppend.appendChild(elementToMount);
6056
+ };
6057
+
6058
+ var close = function close() {
6059
+ vue.render(null, elementToMount);
6060
+
6061
+ if (elementToMount) {
6062
+ elementToMount.remove();
6063
+ }
6064
+
6065
+ modalVNode = null;
6066
+ };
6067
+
6068
+ vue.onUnmounted(function () {
6069
+ close();
6070
+ });
6071
+ return {
6072
+ open: open,
6073
+ close: close
6074
+ };
6075
+ };var install = function install(app) {
6076
+ Object.entries(Components).forEach(function (_ref) {
5574
6077
  var _ref2 = _slicedToArray(_ref, 2),
5575
6078
  componentName = _ref2[0],
5576
6079
  component = _ref2[1];
5577
6080
 
5578
6081
  app.component(componentName, component);
5579
6082
  });
5580
- };var components=/*#__PURE__*/Object.freeze({__proto__:null,'default':install,FwForm:Form,FwInput:script$6,FwCheckbox:script$5,FwCard:script$4,FwButton:script$3,FwNavigationMenu:script$2,FwTabs:script$1,FwTab:script});Object.entries(components).forEach(function (_ref) {
6083
+ };Object.entries(Components).forEach(function (_ref) {
5581
6084
  var _ref2 = _slicedToArray(_ref, 2),
5582
6085
  componentName = _ref2[0],
5583
6086
  component = _ref2[1];
@@ -5587,4 +6090,4 @@ var components$1=/*#__PURE__*/Object.freeze({__proto__:null,FwForm:Form,FwInput:
5587
6090
  var val = component;
5588
6091
  install[key] = val;
5589
6092
  }
5590
- });exports["default"]=install;
6093
+ });exports["default"]=install;exports.modalService=modalService;