@frollo/frollo-web-ui 0.0.10 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -1259,7 +1259,7 @@ $$1({ target: 'Object', stat: true }, {
1259
1259
  entries: function entries(O) {
1260
1260
  return $entries(O);
1261
1261
  }
1262
- });var script$3 = vue.defineComponent({
1262
+ });var script$4 = vue.defineComponent({
1263
1263
  name: 'FwCard',
1264
1264
  props: {
1265
1265
  /**
@@ -1298,22 +1298,22 @@ $$1({ target: 'Object', stat: true }, {
1298
1298
  componentName: componentName
1299
1299
  };
1300
1300
  }
1301
- });var _hoisted_1$2 = {
1301
+ });var _hoisted_1$3 = {
1302
1302
  key: 0,
1303
1303
  "class": "fw-card--header text-lg px-8 py-4 font-bold bg-grey-lightest rounded-t-lg border-opacity-0"
1304
1304
  };
1305
- var _hoisted_2$2 = {
1305
+ var _hoisted_2$3 = {
1306
1306
  key: 0,
1307
1307
  "class": "fw-card--prefix-title text-primary"
1308
1308
  };
1309
- var _hoisted_3$2 = {
1309
+ var _hoisted_3$3 = {
1310
1310
  key: 1
1311
1311
  };
1312
- var _hoisted_4$2 = {
1312
+ var _hoisted_4$3 = {
1313
1313
  key: 1,
1314
1314
  "class": "p-8"
1315
1315
  };
1316
- function render$3(_ctx, _cache, $props, $setup, $data, $options) {
1316
+ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
1317
1317
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.componentName), {
1318
1318
  to: _ctx.to ? _ctx.to : null,
1319
1319
  href: _ctx.href ? _ctx.href : null,
@@ -1321,11 +1321,11 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
1321
1321
  "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' : ''])
1322
1322
  }, {
1323
1323
  "default": vue.withCtx(function () {
1324
- return [_ctx.title || _ctx.prefixTitle ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_1$2, [_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$2, [vue.renderSlot(_ctx.$slots, "default")])) : vue.createCommentVNode("", true)];
1324
+ return [_ctx.title || _ctx.prefixTitle ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_1$3, [_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$3, [vue.renderSlot(_ctx.$slots, "default")])) : vue.createCommentVNode("", true)];
1325
1325
  }),
1326
1326
  _: 3
1327
1327
  }, 8, ["to", "href", "tabindex", "class"]);
1328
- }script$3.render = render$3;var es_array_includes = {};var objectDefineProperties = {};var DESCRIPTORS$1 = descriptors;
1328
+ }script$4.render = render$4;var es_array_includes = {};var objectDefineProperties = {};var DESCRIPTORS$1 = descriptors;
1329
1329
  var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
1330
1330
  var definePropertyModule$1 = objectDefineProperty;
1331
1331
  var anObject$1 = anObject$4;
@@ -1461,7 +1461,7 @@ $({ target: 'Array', proto: true }, {
1461
1461
  });
1462
1462
 
1463
1463
  // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
1464
- addToUnscopables('includes');var script$2 = vue.defineComponent({
1464
+ addToUnscopables('includes');var script$3 = vue.defineComponent({
1465
1465
  name: 'FwButton',
1466
1466
  emits: ['click', 'mouseover', 'mouseout', 'focusin', 'focusout'],
1467
1467
  props: {
@@ -1496,7 +1496,18 @@ addToUnscopables('includes');var script$2 = vue.defineComponent({
1496
1496
  type: String,
1497
1497
  "default": 'primary',
1498
1498
  validator: function validator(value) {
1499
- return ['primary', 'secondary', 'tertiary', 'error', 'success', 'text'].includes(value);
1499
+ return ['primary', 'secondary', 'tertiary', 'error', 'success', 'link', 'text'].includes(value);
1500
+ }
1501
+ },
1502
+
1503
+ /**
1504
+ * The type attribute of the button
1505
+ */
1506
+ buttonType: {
1507
+ type: String,
1508
+ "default": 'button',
1509
+ validator: function validator(value) {
1510
+ return ['button', 'submit', 'reset'].includes(value);
1500
1511
  }
1501
1512
  }
1502
1513
  },
@@ -1505,32 +1516,37 @@ addToUnscopables('includes');var script$2 = vue.defineComponent({
1505
1516
  primary: {
1506
1517
  text: 'text-tertiary hover:text-primary active:text-primary',
1507
1518
  background: 'bg-primary hover:bg-tertiary active:bg-tertiary',
1508
- border: 'border-primary focus:ring-primary'
1519
+ border: 'border-primary focus-visible:ring-primary'
1509
1520
  },
1510
1521
  secondary: {
1511
1522
  text: 'text-primary hover:text-tertiary active:text-tertiary',
1512
1523
  background: 'bg-tertiary hover:bg-primary active:bg-primary',
1513
- border: 'border-primary focus:ring-primary'
1524
+ border: 'border-primary focus-visible:ring-primary'
1514
1525
  },
1515
1526
  tertiary: {
1516
1527
  text: 'text-tertiary hover:text-secondary active:text-secondary',
1517
1528
  background: 'bg-secondary hover:bg-tertiary active:bg-tertiary',
1518
- border: 'border-tertiary focus:ring-tertiary'
1529
+ border: 'border-secondary focus-visible:ring-secondary'
1519
1530
  },
1520
1531
  success: {
1521
1532
  text: 'text-white hover:text-success active:text-success',
1522
1533
  background: 'bg-success hover:bg-white active:bg-white',
1523
- border: 'border-success focus:ring-success'
1534
+ border: 'border-success focus-visible:ring-success'
1524
1535
  },
1525
1536
  error: {
1526
1537
  text: 'text-white hover:text-error active:text-error',
1527
1538
  background: 'bg-error hover:bg-white active:bg-white',
1528
- border: 'border-error focus:ring-error'
1539
+ border: 'border-error focus-visible:ring-error'
1540
+ },
1541
+ link: {
1542
+ text: 'text-primary font-normal underline hover:no-underline active:no-underline focus-visible:no-underline',
1543
+ background: '',
1544
+ border: 'border-none focus-visible:ring-primary'
1529
1545
  },
1530
1546
  text: {
1531
1547
  text: 'text-body font-medium hover:text-white active:text-white',
1532
1548
  background: 'bg-white hover:bg-body active:bg-body',
1533
- border: 'border-transparent focus:ring-body'
1549
+ border: 'border-transparent focus-visible:ring-body'
1534
1550
  }
1535
1551
  });
1536
1552
  var sizes = vue.ref({
@@ -1610,10 +1626,10 @@ addToUnscopables('includes');var script$2 = vue.defineComponent({
1610
1626
  tagName: tagName
1611
1627
  };
1612
1628
  }
1613
- });function render$2(_ctx, _cache, $props, $setup, $data, $options) {
1629
+ });function render$3(_ctx, _cache, $props, $setup, $data, $options) {
1614
1630
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tagName), {
1615
- "class": vue.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]]),
1616
- type: _ctx.tagName === 'button' ? _ctx.tagName : null,
1631
+ "class": vue.normalizeClass(["fw-button 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']]),
1632
+ type: _ctx.tagName === 'button' ? _ctx.buttonType : null,
1617
1633
  to: _ctx.to ? _ctx.to : null,
1618
1634
  href: _ctx.href ? _ctx.href : null,
1619
1635
  tabindex: _ctx.to ? 0 : null,
@@ -1653,13 +1669,13 @@ addToUnscopables('includes');var script$2 = vue.defineComponent({
1653
1669
  } else {
1654
1670
  style.appendChild(document.createTextNode(css));
1655
1671
  }
1656
- }var css_248z$2 = ".fw-button{-webkit-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in}";
1657
- var stylesheet$2 = ".fw-button{-webkit-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in}";
1658
- styleInject(css_248z$2);script$2.render = render$2;var script$1 = vue.defineComponent({
1672
+ }var css_248z$3 = ".fw-button{-webkit-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in}";
1673
+ var stylesheet$3 = ".fw-button{-webkit-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in}";
1674
+ styleInject(css_248z$3);script$3.render = render$3;var script$2 = vue.defineComponent({
1659
1675
  name: 'FwNavigationMenu',
1660
1676
  emits: ['action'],
1661
1677
  components: {
1662
- FwButton: script$2
1678
+ FwButton: script$3
1663
1679
  },
1664
1680
  props: {
1665
1681
  /**
@@ -1695,32 +1711,32 @@ styleInject(css_248z$2);script$2.render = render$2;var script$1 = vue.defineComp
1695
1711
  actionClicked: actionClicked
1696
1712
  };
1697
1713
  }
1698
- });var _hoisted_1$1 = {
1714
+ });var _hoisted_1$2 = {
1699
1715
  "class": "fw-nav-menu relative z-50 h-20 shadow-md"
1700
1716
  };
1701
- var _hoisted_2$1 = {
1717
+ var _hoisted_2$2 = {
1702
1718
  "class": "px-6 flex-1 h-full flex bg-white items-stretch justify-between"
1703
1719
  };
1704
- var _hoisted_3$1 = {
1720
+ var _hoisted_3$2 = {
1705
1721
  key: 0,
1706
1722
  "class": "flex-shrink-0 flex items-center"
1707
1723
  };
1708
- var _hoisted_4$1 = {
1724
+ var _hoisted_4$2 = {
1709
1725
  key: 1,
1710
1726
  "class": "container hidden sm:flex items-center justify-start sm:ml-6"
1711
1727
  };
1712
- var _hoisted_5$1 = {
1728
+ var _hoisted_5$2 = {
1713
1729
  "class": "flex space-x-2"
1714
1730
  };
1715
- var _hoisted_6$1 = {
1731
+ var _hoisted_6$2 = {
1716
1732
  key: 2,
1717
1733
  "class": "hidden sm:flex items-center justify-start sm:ml-6"
1718
1734
  };
1719
- var _hoisted_7$1 = {
1735
+ var _hoisted_7$2 = {
1720
1736
  "class": "flex items-center sm:hidden"
1721
1737
  };
1722
1738
 
1723
- var _hoisted_8$1 = /*#__PURE__*/vue.createElementVNode("span", {
1739
+ var _hoisted_8$2 = /*#__PURE__*/vue.createElementVNode("span", {
1724
1740
  "class": "sr-only"
1725
1741
  }, "Open main menu", -1);
1726
1742
 
@@ -1737,15 +1753,15 @@ var _hoisted_11$1 = {
1737
1753
  key: 0,
1738
1754
  "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"
1739
1755
  };
1740
- var _hoisted_12 = {
1756
+ var _hoisted_12$1 = {
1741
1757
  "class": "w-full flex flex-col"
1742
1758
  };
1743
- function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1759
+ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
1744
1760
  var _ctx$menuItems;
1745
1761
 
1746
1762
  var _component_FwButton = vue.resolveComponent("FwButton");
1747
1763
 
1748
- return vue.openBlock(), vue.createElementBlock("nav", _hoisted_1$1, [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$1, [vue.createElementVNode("div", _hoisted_5$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menuItems, function (item, i) {
1764
+ return vue.openBlock(), vue.createElementBlock("nav", _hoisted_1$2, [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$2, [vue.createElementVNode("div", _hoisted_5$2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menuItems, function (item, i) {
1749
1765
  return vue.openBlock(), vue.createBlock(_component_FwButton, {
1750
1766
  key: i,
1751
1767
  variant: "text",
@@ -1759,7 +1775,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1759
1775
  }),
1760
1776
  _: 2
1761
1777
  }, 1032, ["href", "to"]);
1762
- }), 128))])])) : vue.createCommentVNode("", true), _ctx.actionLabel ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$1, [vue.createVNode(_component_FwButton, {
1778
+ }), 128))])])) : vue.createCommentVNode("", true), _ctx.actionLabel ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$2, [vue.createVNode(_component_FwButton, {
1763
1779
  onClick: _ctx.actionClicked,
1764
1780
  size: "md",
1765
1781
  "aria-label": _ctx.actionLabel
@@ -1768,13 +1784,13 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1768
1784
  return [vue.createTextVNode(vue.toDisplayString(_ctx.actionLabel), 1)];
1769
1785
  }),
1770
1786
  _: 1
1771
- }, 8, ["onClick", "aria-label"])])) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_7$1, [vue.createVNode(_component_FwButton, {
1787
+ }, 8, ["onClick", "aria-label"])])) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_7$2, [vue.createVNode(_component_FwButton, {
1772
1788
  variant: "text",
1773
1789
  size: "sm",
1774
1790
  onClick: _ctx.toggleMobileMenu
1775
1791
  }, {
1776
1792
  "default": vue.withCtx(function () {
1777
- return [_hoisted_8$1, (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$1, [vue.createElementVNode("path", {
1793
+ return [_hoisted_8$2, (vue.openBlock(), vue.createElementBlock("svg", _hoisted_9$1, [vue.createElementVNode("path", {
1778
1794
  "stroke-linecap": "round",
1779
1795
  "stroke-linejoin": "round",
1780
1796
  "stroke-width": "2",
@@ -1788,7 +1804,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1788
1804
  "default": vue.withCtx(function () {
1789
1805
  var _ctx$menuItems2;
1790
1806
 
1791
- 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) {
1807
+ 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$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menuItems, function (item, i) {
1792
1808
  return vue.openBlock(), vue.createBlock(_component_FwButton, {
1793
1809
  key: i,
1794
1810
  "class": "w-full rounded-md px-2",
@@ -1817,9 +1833,9 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
1817
1833
  }),
1818
1834
  _: 1
1819
1835
  })]);
1820
- }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}}";
1821
- 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}}";
1822
- styleInject(css_248z$1);script$1.render = render$1;function getDevtoolsGlobalHook() {
1836
+ }var css_248z$2 = ".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}}";
1837
+ var stylesheet$2 = ".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}}";
1838
+ styleInject(css_248z$2);script$2.render = render$2;function getDevtoolsGlobalHook() {
1823
1839
  return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;
1824
1840
  }
1825
1841
  function getTarget() {
@@ -4945,7 +4961,7 @@ function useSubmitForm(cb) {
4945
4961
  }
4946
4962
  return onSubmit(e);
4947
4963
  };
4948
- }var script = vue.defineComponent({
4964
+ }var script$1 = vue.defineComponent({
4949
4965
  name: 'FwInput',
4950
4966
  emits: ['update:modelValue'],
4951
4967
  components: {
@@ -4999,6 +5015,21 @@ function useSubmitForm(cb) {
4999
5015
  */
5000
5016
  rules: {
5001
5017
  type: [String, Object, Function]
5018
+ },
5019
+
5020
+ /**
5021
+ * Converts the input into a readonly disabled field
5022
+ */
5023
+ readonly: {
5024
+ type: Boolean,
5025
+ "default": false
5026
+ },
5027
+
5028
+ /**
5029
+ * The hint text shown below the input
5030
+ */
5031
+ hint: {
5032
+ type: String
5002
5033
  }
5003
5034
  },
5004
5035
  setup: function setup(props, ctx) {
@@ -5038,27 +5069,29 @@ if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
5038
5069
  }
5039
5070
  }
5040
5071
  });
5041
- }var _hoisted_1 = {
5072
+ }var _hoisted_1$1 = {
5042
5073
  "class": "fw-input w-full"
5043
5074
  };
5044
- var _hoisted_2 = {
5075
+ var _hoisted_2$1 = {
5045
5076
  "class": "flex flex-col"
5046
5077
  };
5047
- var _hoisted_3 = ["for"];
5048
- var _hoisted_4 = {
5049
- "class": "relative"
5078
+ var _hoisted_3$1 = {
5079
+ "class": "flex flex-row justify-between"
5050
5080
  };
5051
- var _hoisted_5 = {
5052
- key: 0,
5053
- "class": "flex text-grey-base absolute w-9 h-full inset-y-0 left-0 items-center pl-3 pointer-events-none"
5081
+ var _hoisted_4$1 = ["for"];
5082
+ var _hoisted_5$1 = {
5083
+ key: 1
5054
5084
  };
5055
- var _hoisted_6 = ["placeholder", "type"];
5056
- var _hoisted_7 = {
5085
+ var _hoisted_6$1 = {
5086
+ "class": "relative"
5087
+ };
5088
+ var _hoisted_7$1 = {
5057
5089
  key: 0,
5058
- "class": "flex text-error absolute w-9 h-full inset-y-0 right-0 items-center pr-3 pointer-events-none"
5090
+ "class": "flex text-black absolute w-9 h-full inset-y-0 left-0 items-center pl-3 pointer-events-none"
5059
5091
  };
5092
+ var _hoisted_8$1 = ["placeholder", "type", "readonly", "disabled"];
5060
5093
 
5061
- var _hoisted_8 = /*#__PURE__*/vue.createElementVNode("svg", {
5094
+ var _hoisted_9 = /*#__PURE__*/vue.createElementVNode("svg", {
5062
5095
  fill: "currentColor",
5063
5096
  "aria-hidden": "true",
5064
5097
  focusable: "false",
@@ -5069,17 +5102,25 @@ var _hoisted_8 = /*#__PURE__*/vue.createElementVNode("svg", {
5069
5102
  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"
5070
5103
  })], -1);
5071
5104
 
5072
- var _hoisted_9 = [_hoisted_8];
5073
- var _hoisted_10 = {
5074
- "class": "text-error italic text-right text-sm font-medium mt-2 min-h-[21px]"
5075
- };
5105
+ var _hoisted_10 = [_hoisted_9];
5076
5106
  var _hoisted_11 = {
5077
- key: 0
5107
+ key: 1,
5108
+ "class": "flex text-black absolute w-10 h-full inset-y-0 right-0 items-center pr-3"
5078
5109
  };
5079
- function render(_ctx, _cache, $props, $setup, $data, $options) {
5110
+ var _hoisted_12 = {
5111
+ "class": "italic text-right text-sm font-medium mt-2 min-h-[21px]"
5112
+ };
5113
+ var _hoisted_13 = {
5114
+ key: 0,
5115
+ "class": "text-error"
5116
+ };
5117
+ var _hoisted_14 = {
5118
+ key: 1
5119
+ };
5120
+ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
5080
5121
  var _component_InputField = vue.resolveComponent("InputField");
5081
5122
 
5082
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [vue.createVNode(_component_InputField, {
5123
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [vue.createVNode(_component_InputField, {
5083
5124
  modelValue: _ctx.inputValue,
5084
5125
  "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
5085
5126
  return _ctx.inputValue = $event;
@@ -5092,37 +5133,138 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
5092
5133
  errors = _ref.errors,
5093
5134
  errorMessage = _ref.errorMessage,
5094
5135
  meta = _ref.meta;
5095
- return [vue.createElementVNode("div", _hoisted_2, [_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
5136
+ return [vue.createElementVNode("div", _hoisted_2$1, [vue.createElementVNode("div", _hoisted_3$1, [_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
5096
5137
  key: 0,
5097
5138
  "for": _ctx.name,
5098
5139
  "class": "block mb-2"
5099
- }, vue.toDisplayString(_ctx.label), 9, _hoisted_3)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_4, [_ctx.$slots.prefixIcon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [vue.renderSlot(_ctx.$slots, "prefixIcon")])) : vue.createCommentVNode("", true), vue.createElementVNode("input", vue.mergeProps(field, {
5140
+ }, vue.toDisplayString(_ctx.label), 9, _hoisted_4$1)) : vue.createCommentVNode("", true), _ctx.$slots.action ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, [vue.renderSlot(_ctx.$slots, "action")])) : vue.createCommentVNode("", true)]), vue.createElementVNode("div", _hoisted_6$1, [_ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$1, [vue.renderSlot(_ctx.$slots, "prefix")])) : vue.createCommentVNode("", true), vue.createElementVNode("input", vue.mergeProps(field, {
5100
5141
  placeholder: _ctx.placeholder,
5101
5142
  type: _ctx.type,
5143
+ readonly: _ctx.readonly,
5144
+ disabled: _ctx.readonly,
5102
5145
  "class": ["border-2 border-grey-lightest rounded-lg focus:outline-none focus:ring-2 focus:ring-primary block w-full p-2.5", {
5103
- 'pl-10': !!_ctx.$slots.prefixIcon
5146
+ 'pl-10': !!_ctx.$slots.prefix,
5147
+ 'pr-20': !!_ctx.$slots.suffix
5104
5148
  }]
5105
- }), null, 16, _hoisted_6), vue.createVNode(vue.Transition, {
5106
- name: "errorFadeIn"
5149
+ }), null, 16, _hoisted_8$1), vue.createVNode(vue.Transition, {
5150
+ name: "fwFadeIn"
5107
5151
  }, {
5108
5152
  "default": vue.withCtx(function () {
5109
- return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, _hoisted_9)) : vue.createCommentVNode("", true)];
5153
+ return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("div", {
5154
+ key: 0,
5155
+ "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' : ''])
5156
+ }, _hoisted_10, 2)) : vue.createCommentVNode("", true)];
5110
5157
  }),
5111
5158
  _: 2
5112
- }, 1024)]), vue.createElementVNode("div", _hoisted_10, [vue.createVNode(vue.Transition, {
5113
- name: "errorFadeIn"
5159
+ }, 1024), _ctx.$slots.suffix ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, [vue.renderSlot(_ctx.$slots, "suffix")])) : vue.createCommentVNode("", true)]), vue.createElementVNode("div", _hoisted_12, [vue.createVNode(vue.Transition, {
5160
+ name: "fwFadeIn",
5161
+ mode: "out-in"
5114
5162
  }, {
5115
5163
  "default": vue.withCtx(function () {
5116
- return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_11, vue.toDisplayString(errorMessage || errors[0]), 1)) : vue.createCommentVNode("", true)];
5164
+ return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_13, vue.toDisplayString(errorMessage || errors[0]), 1)) : _ctx.hint ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_14, vue.toDisplayString(_ctx.hint), 1)) : vue.createCommentVNode("", true)];
5117
5165
  }),
5118
5166
  _: 2
5119
5167
  }, 1024)])])];
5120
5168
  }),
5121
5169
  _: 3
5122
5170
  }, 8, ["modelValue", "name", "rules"])]);
5123
- }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}}";
5124
- var stylesheet = ".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}}";
5125
- styleInject(css_248z);script.render = render;var components$1=/*#__PURE__*/Object.freeze({__proto__:null,FwCard:script$3,FwButton:script$2,FwNavigationMenu:script$1,FwForm:Form,FwInput:script});var install = function install(app) {
5171
+ }var css_248z$1 = ".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}}";
5172
+ var stylesheet$1 = ".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}}";
5173
+ styleInject(css_248z$1);script$1.render = render$1;var script = vue.defineComponent({
5174
+ name: 'FwCheckbox',
5175
+ components: {
5176
+ InputField: Field
5177
+ },
5178
+ props: {
5179
+ /**
5180
+ * The name of the input field. Must be unique per form.
5181
+ */
5182
+ name: {
5183
+ type: String,
5184
+ required: true
5185
+ },
5186
+
5187
+ /**
5188
+ * Label for the input. Also renders to an aria-label attribute
5189
+ */
5190
+ label: {
5191
+ type: String
5192
+ },
5193
+
5194
+ /**
5195
+ * Validation rules. Accepts a string, object, function or schema.
5196
+ */
5197
+ rules: {
5198
+ type: [String, Object, Function]
5199
+ },
5200
+
5201
+ /**
5202
+ * The hint text shown below the input
5203
+ */
5204
+ hint: {
5205
+ type: String
5206
+ }
5207
+ }
5208
+ });var _hoisted_1 = {
5209
+ "class": "fw-checkbox w-full"
5210
+ };
5211
+ var _hoisted_2 = {
5212
+ "class": "flex flex-col"
5213
+ };
5214
+ var _hoisted_3 = ["for"];
5215
+ var _hoisted_4 = ["value", "name"];
5216
+ var _hoisted_5 = ["innerHTML"];
5217
+ var _hoisted_6 = {
5218
+ "class": "italic text-sm font-medium min-h-[21px]"
5219
+ };
5220
+ var _hoisted_7 = {
5221
+ key: 0,
5222
+ "class": "text-error"
5223
+ };
5224
+ var _hoisted_8 = {
5225
+ key: 1
5226
+ };
5227
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
5228
+ var _component_InputField = vue.resolveComponent("InputField");
5229
+
5230
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [vue.createVNode(_component_InputField, {
5231
+ name: _ctx.name,
5232
+ value: _ctx.name,
5233
+ type: "checkbox",
5234
+ rules: _ctx.rules
5235
+ }, {
5236
+ "default": vue.withCtx(function (_ref) {
5237
+ var field = _ref.field,
5238
+ errors = _ref.errors,
5239
+ errorMessage = _ref.errorMessage,
5240
+ meta = _ref.meta;
5241
+ return [vue.createElementVNode("div", _hoisted_2, [_ctx.label ? (vue.openBlock(), vue.createElementBlock("label", {
5242
+ key: 0,
5243
+ "for": _ctx.name,
5244
+ "class": "inline-flex items-center mb-3"
5245
+ }, [vue.createElementVNode("input", vue.mergeProps(field, {
5246
+ value: _ctx.name,
5247
+ name: _ctx.name,
5248
+ type: "checkbox",
5249
+ "class": "text-primary w-6 h-6 cursor-pointer bg-white border-grey-light border rounded"
5250
+ }), null, 16, _hoisted_4), vue.createElementVNode("span", {
5251
+ "class": "ml-2",
5252
+ innerHTML: _ctx.label
5253
+ }, null, 8, _hoisted_5)], 8, _hoisted_3)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_6, [vue.createVNode(vue.Transition, {
5254
+ name: "fwFadeIn",
5255
+ mode: "out-in"
5256
+ }, {
5257
+ "default": vue.withCtx(function () {
5258
+ return [(errorMessage || errors[0]) && meta.touched ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7, vue.toDisplayString(errorMessage || errors[0]), 1)) : _ctx.hint ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_8, vue.toDisplayString(_ctx.hint), 1)) : vue.createCommentVNode("", true)];
5259
+ }),
5260
+ _: 2
5261
+ }, 1024)])])];
5262
+ }),
5263
+ _: 1
5264
+ }, 8, ["name", "value", "rules"])]);
5265
+ }var css_248z = ".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}";
5266
+ var stylesheet = ".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}";
5267
+ styleInject(css_248z);script.render = render;var components$1=/*#__PURE__*/Object.freeze({__proto__:null,FwCard:script$4,FwButton:script$3,FwNavigationMenu:script$2,FwForm:Form,FwInput:script$1,FwCheckbox:script});var install = function install(app) {
5126
5268
  Object.entries(components$1).forEach(function (_ref) {
5127
5269
  var _ref2 = _slicedToArray(_ref, 2),
5128
5270
  componentName = _ref2[0],
@@ -5130,7 +5272,7 @@ styleInject(css_248z);script.render = render;var components$1=/*#__PURE__*/Objec
5130
5272
 
5131
5273
  app.component(componentName, component);
5132
5274
  });
5133
- };var components=/*#__PURE__*/Object.freeze({__proto__:null,'default':install,FwCard:script$3,FwButton:script$2,FwNavigationMenu:script$1,FwForm:Form,FwInput:script});Object.entries(components).forEach(function (_ref) {
5275
+ };var components=/*#__PURE__*/Object.freeze({__proto__:null,'default':install,FwCard:script$4,FwButton:script$3,FwNavigationMenu:script$2,FwForm:Form,FwInput:script$1,FwCheckbox:script});Object.entries(components).forEach(function (_ref) {
5134
5276
  var _ref2 = _slicedToArray(_ref, 2),
5135
5277
  componentName = _ref2[0],
5136
5278
  component = _ref2[1];