@frollo/frollo-web-ui 8.5.3 → 9.0.0

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 (135) hide show
  1. package/cjs/index.js +29804 -28762
  2. package/esm/{_rollupPluginBabelHelpers-DpC_oIQV.js → _rollupPluginBabelHelpers-DODWUb5N.js} +307 -345
  3. package/esm/fw-accordion.js +59 -56
  4. package/esm/fw-alert.js +68 -0
  5. package/esm/fw-bar-chart.js +4 -4
  6. package/esm/fw-button-CnQvA7oM.js +296 -0
  7. package/esm/fw-button.js +2 -4
  8. package/esm/{fw-card-bsYbpPmW.js → fw-card-D45R4kN-.js} +33 -9
  9. package/esm/fw-card.js +3 -1
  10. package/esm/fw-checkbox.js +39 -20
  11. package/esm/fw-date-picker.js +110 -78
  12. package/esm/fw-drawer.js +119 -83
  13. package/esm/{fw-dropdown-CbgOvgOt.js → fw-dropdown-58wyuzsW.js} +80 -61
  14. package/esm/fw-dropdown.js +5 -5
  15. package/esm/fw-icons.js +34 -0
  16. package/esm/{fw-image-Dl96Dc27.js → fw-image-D-OHafdw.js} +30 -13
  17. package/esm/fw-image.js +4 -4
  18. package/esm/{fw-input-XeI-IKly.js → fw-input-C2-cZ-BY.js} +65 -43
  19. package/esm/fw-input.js +2 -2
  20. package/esm/fw-loading-bar-DecYSBC_.js +45 -0
  21. package/esm/fw-loading.js +34 -15
  22. package/esm/fw-media-picker.js +43 -31
  23. package/esm/fw-modal.js +102 -48
  24. package/esm/fw-navigation-menu.js +180 -52
  25. package/esm/fw-popover-B4bsfuxm.js +620 -0
  26. package/esm/fw-popover.js +6 -293
  27. package/esm/fw-progress-bar.js +3 -2
  28. package/esm/fw-provider-list.js +58 -34
  29. package/esm/fw-sidebar-menu.js +22 -13
  30. package/esm/fw-slider.js +4 -4
  31. package/esm/fw-switch.js +147 -0
  32. package/esm/{fw-table-row-BetVCzHJ.js → fw-table-row-C61Bi8KB.js} +59 -59
  33. package/esm/fw-table.js +8 -7
  34. package/esm/fw-tabs.js +7 -7
  35. package/esm/{fw-tag-V0jMl-It.js → fw-tag-FWH6KttB.js} +37 -26
  36. package/esm/fw-tag.js +4 -6
  37. package/esm/fw-toast.js +14 -15
  38. package/esm/fw-transactions-card.js +8 -8
  39. package/esm/get-root-colours-DCjlYelc.js +62 -0
  40. package/esm/{index-CzZMBMV_.js → index-BsEH8YYr.js} +433 -130
  41. package/esm/index.js +76 -68
  42. package/esm/{uniqueId-DK6xzFd8.js → uniqueId-DZdGzBh8.js} +1 -1
  43. package/frollo-web-ui.esm.js +30114 -29022
  44. package/icons/arrow-connect.svg +3 -0
  45. package/icons/arrow-left.svg +3 -0
  46. package/icons/arrow-out-square.svg +3 -0
  47. package/icons/arrow-right.svg +3 -0
  48. package/icons/circle-exclamation.svg +5 -0
  49. package/icons/clock.svg +10 -0
  50. package/icons/default-provider.svg +5 -0
  51. package/icons/desktop.svg +8 -0
  52. package/icons/error.svg +3 -0
  53. package/icons/folder-arrow-down.svg +3 -0
  54. package/icons/index.ts +35 -3
  55. package/icons/loading.svg +0 -1
  56. package/icons/manual-account.svg +3 -0
  57. package/icons/mobile.svg +3 -0
  58. package/icons/paper-plane.svg +3 -0
  59. package/icons/pending.svg +10 -0
  60. package/icons/success-hill.svg +5 -0
  61. package/icons/user-plus.svg +3 -0
  62. package/index.d.ts +807 -571
  63. package/package.json +23 -29
  64. package/styles/tailwind.css +52 -0
  65. package/styles/typography.scss +24 -7
  66. package/styles/web-components.scss +2 -2
  67. package/tailwind.config.js +128 -22
  68. package/types/components/fw-accordion/fw-accordion.vue.d.ts +20 -20
  69. package/types/components/fw-alert/fw-alert.vue.d.ts +43 -0
  70. package/types/components/fw-alert/index.d.ts +2 -0
  71. package/types/components/fw-alert/index.types.d.ts +4 -0
  72. package/types/components/fw-bar-chart/fw-bar-chart.vue.d.ts +8 -8
  73. package/types/components/fw-button/fw-button.vue.d.ts +15 -17
  74. package/types/components/fw-button/index.d.ts +2 -0
  75. package/types/components/fw-button/index.types.d.ts +1 -3
  76. package/types/components/fw-card/fw-card.vue.d.ts +3 -2
  77. package/types/components/fw-checkbox/fw-checkbox.vue.d.ts +8 -5
  78. package/types/components/fw-date-picker/fw-date-picker.vue.d.ts +14 -19
  79. package/types/components/fw-date-picker/index.types.d.ts +5 -4
  80. package/types/components/fw-drawer/fw-drawer.vue.d.ts +26 -10
  81. package/types/components/fw-drawer/index.types.d.ts +1 -1
  82. package/types/components/fw-dropdown/fw-dropdown.vue.d.ts +11 -9
  83. package/types/components/fw-icons/index.d.ts +2 -0
  84. package/types/components/fw-image/fw-image.vue.d.ts +7 -5
  85. package/types/components/fw-input/fw-input.vue.d.ts +11 -17
  86. package/types/components/fw-input/index.types.d.ts +1 -1
  87. package/types/components/fw-loading/fw-loading-bar.vue.d.ts +5 -2
  88. package/types/components/fw-loading/fw-loading-dots.vue.d.ts +2 -0
  89. package/types/components/fw-loading/index.d.ts +2 -1
  90. package/types/components/fw-modal/fw-modal.vue.d.ts +51 -11
  91. package/types/components/fw-modal/index.types.d.ts +1 -1
  92. package/types/components/fw-navigation-menu/fw-navigation-menu.vue.d.ts +77 -6
  93. package/types/components/fw-navigation-menu/index.types.d.ts +11 -0
  94. package/types/components/fw-popover/fw-popover.vue.d.ts +10 -5
  95. package/types/components/fw-provider-list/fw-provider-list.vue.d.ts +8 -5
  96. package/types/components/fw-sidebar-menu/fw-sidebar-menu.vue.d.ts +20 -3
  97. package/types/components/fw-sidebar-menu/index.types.d.ts +9 -0
  98. package/types/components/fw-switch/fw-switch.vue.d.ts +101 -0
  99. package/types/components/fw-switch/index.d.ts +2 -0
  100. package/types/components/fw-switch/index.types.d.ts +8 -0
  101. package/types/components/fw-table/fw-table.vue.d.ts +7 -7
  102. package/types/components/fw-table/index.types.d.ts +0 -3
  103. package/types/components/fw-tabs/fw-tabs.vue.d.ts +1 -1
  104. package/types/components/fw-tabs/index.types.d.ts +1 -1
  105. package/types/components/fw-tag/fw-tag.vue.d.ts +2 -2
  106. package/types/components/fw-tag/index.types.d.ts +3 -3
  107. package/types/components/fw-toast/fw-toast.vue.d.ts +2 -2
  108. package/types/components/index.d.ts +4 -3
  109. package/types/components/index.types.d.ts +1 -0
  110. package/types/helpers/get-root-colours.d.ts +3 -0
  111. package/types/helpers/index.d.ts +2 -0
  112. package/types/helpers/vue-component-to-html.d.ts +2 -0
  113. package/types/icons/index.d.ts +18 -2
  114. package/types/index-types.esm.d.ts +1 -0
  115. package/types/index.d.ts +1 -0
  116. package/types/index.esm.d.ts +1 -0
  117. package/types/services/toast.d.ts +1 -1
  118. package/web-components/index.js +30112 -29028
  119. package/esm/check--YD4Ts6g.js +0 -17
  120. package/esm/fw-animations.js +0 -123
  121. package/esm/fw-button-DNozvo7B.js +0 -286
  122. package/esm/fw-loading-bar-DThRjdw1.js +0 -22
  123. package/esm/fw-loading-spinner-BFpFFRJm.js +0 -20
  124. package/esm/fw-period-selector.js +0 -90
  125. package/esm/get-root-colours-DYEoJPEb.js +0 -37
  126. package/icons/icons.stories.ts +0 -28
  127. package/styles/tailwind.scss +0 -68
  128. package/types/components/fw-animations/fw-email-pulse.vue.d.ts +0 -24
  129. package/types/components/fw-animations/fw-success-pulse.vue.d.ts +0 -24
  130. package/types/components/fw-animations/index.d.ts +0 -4
  131. package/types/components/fw-period-selector/fw-period-selector.vue.d.ts +0 -56
  132. package/types/components/fw-period-selector/index.d.ts +0 -2
  133. package/types/components/fw-period-selector/index.types.d.ts +0 -1
  134. /package/icons/{arrows-rotate.svg → arrow-rotate.svg} +0 -0
  135. /package/types/components/{fw-animations/fw-loading-spinner.vue.d.ts → fw-icons/fw-success-animation.vue.d.ts} +0 -0
@@ -0,0 +1,147 @@
1
+ import { defineComponent, ref, pushScopeId, popScopeId, createElementVNode, resolveComponent, createElementBlock, openBlock, createVNode, withCtx, createCommentVNode, normalizeClass, mergeProps, Transition, toDisplayString } from 'vue';
2
+ import { a as Field } from './vee-validate.esm-3ptvCDR1.js';
3
+ import { u as uniqueId } from './uniqueId-DZdGzBh8.js';
4
+ import { s as styleInject } from './style-inject.es-tgCJW-Cu.js';
5
+
6
+ var script = defineComponent({
7
+ name: 'FwSwitch',
8
+ components: {
9
+ InputField: Field
10
+ },
11
+ props: {
12
+ /**
13
+ * The name of the switch input field.
14
+ * Multiple switches can use the same name with a unique value.
15
+ */
16
+ name: {
17
+ type: String,
18
+ required: true
19
+ },
20
+ /**
21
+ * The value of the input field. Must be unique per name.
22
+ */
23
+ value: {
24
+ type: String,
25
+ required: false
26
+ },
27
+ /**
28
+ * Validation rules. Accepts an object, stringm schema or validation function.
29
+ */
30
+ rules: {
31
+ type: [Object, String, Function]
32
+ },
33
+ /**
34
+ * The hint text shown below the input
35
+ */
36
+ hint: {
37
+ type: String
38
+ },
39
+ /**
40
+ * Enable or disable the error hidden element
41
+ */
42
+ enableErrors: {
43
+ type: Boolean,
44
+ "default": true
45
+ },
46
+ /**
47
+ * Progmatically set the checked state of the input.
48
+ * Used outside a FwForm element
49
+ */
50
+ isChecked: {
51
+ type: Boolean,
52
+ required: false,
53
+ "default": false
54
+ }
55
+ },
56
+ emits: ['change'],
57
+ setup: function setup(props, ctx) {
58
+ var isSwitched = ref(props.isChecked);
59
+ var uuid = uniqueId();
60
+ var toggleSwitch = function toggleSwitch() {
61
+ isSwitched.value = !isSwitched.value;
62
+ ctx.emit('change', isSwitched.value);
63
+ };
64
+ return {
65
+ isSwitched: isSwitched,
66
+ toggleSwitch: toggleSwitch,
67
+ uuid: uuid
68
+ };
69
+ }
70
+ });
71
+
72
+ var _withScopeId = function _withScopeId(n) {
73
+ return pushScopeId("data-v-0adb13d4"), n = n(), popScopeId(), n;
74
+ };
75
+ var _hoisted_1 = {
76
+ "class": "flex flex-col"
77
+ };
78
+ var _hoisted_2 = /*#__PURE__*/_withScopeId(function () {
79
+ return /*#__PURE__*/createElementVNode("div", {
80
+ "class": "size-4 rounded-[50%] bg-white"
81
+ }, null, -1);
82
+ });
83
+ var _hoisted_3 = [_hoisted_2];
84
+ var _hoisted_4 = ["for"];
85
+ var _hoisted_5 = ["id", "value", "name", "checked"];
86
+ var _hoisted_6 = {
87
+ key: 0,
88
+ "class": "italic text-sm font-medium min-h-[21px]"
89
+ };
90
+ var _hoisted_7 = {
91
+ key: 0,
92
+ "class": "text-brand-error-text"
93
+ };
94
+ var _hoisted_8 = {
95
+ key: 1
96
+ };
97
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
98
+ var _component_InputField = resolveComponent("InputField");
99
+ return openBlock(), createElementBlock("button", {
100
+ "class": "fw-switch rounded-full ring-primary ring-offset-1 focus:outline-0 focus:ring-none focus-visible:outline-0 focus-visible:ring-2",
101
+ onClick: _cache[0] || (_cache[0] = function ($event) {
102
+ return _ctx.toggleSwitch();
103
+ })
104
+ }, [createVNode(_component_InputField, {
105
+ name: _ctx.name,
106
+ value: _ctx.value ? _ctx.value : _ctx.name,
107
+ type: "checkbox",
108
+ rules: _ctx.rules
109
+ }, {
110
+ "default": withCtx(function (_ref) {
111
+ var field = _ref.field,
112
+ errors = _ref.errors,
113
+ errorMessage = _ref.errorMessage,
114
+ meta = _ref.meta;
115
+ return [createElementVNode("div", _hoisted_1, [createElementVNode("div", {
116
+ "class": normalizeClass(["w-[40px] h-[24px] rounded-[20px] flex items-center py-1 box-border transition-all ease-out duration-300 hover:brightness-95", _ctx.isSwitched ? 'bg-brand-success-new justify-end pl-5 pr-1' : 'bg-brand-text2 pl-1 pr-5'])
117
+ }, _hoisted_3, 2), createElementVNode("label", {
118
+ "for": "fw-switch-".concat(_ctx.name, "-").concat(_ctx.uuid),
119
+ "class": "hidden"
120
+ }, [createElementVNode("input", mergeProps(field, {
121
+ id: "fw-switch-".concat(_ctx.name, "-").concat(_ctx.uuid),
122
+ value: _ctx.value ? _ctx.value : _ctx.name,
123
+ name: "fw-switch-".concat(_ctx.name, "-").concat(_ctx.uuid),
124
+ type: "checkbox",
125
+ checked: _ctx.isSwitched
126
+ }), null, 16, _hoisted_5)], 8, _hoisted_4), _ctx.enableErrors ? (openBlock(), createElementBlock("div", _hoisted_6, [createVNode(Transition, {
127
+ name: "fwFadeIn",
128
+ mode: "out-in"
129
+ }, {
130
+ "default": withCtx(function () {
131
+ return [(errorMessage || errors[0]) && meta.touched ? (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(errorMessage || errors[0]), 1)) : _ctx.hint ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(_ctx.hint), 1)) : createCommentVNode("", true)];
132
+ }),
133
+ _: 2
134
+ }, 1024)])) : createCommentVNode("", true)])];
135
+ }),
136
+ _: 1
137
+ }, 8, ["name", "value", "rules"])]);
138
+ }
139
+
140
+ var css_248z = ".fwFadeIn-enter-active[data-v-0adb13d4]{-webkit-animation:fwFadeIn-0adb13d4 .35s;-moz-animation:fwFadeIn-0adb13d4 .35s;animation:fwFadeIn-0adb13d4 .35s;-webkit-transition:opacity .35s ease-in;-moz-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active[data-v-0adb13d4]{animation:fwFadeIn-0adb13d4 .35s reverse;-webkit-transition:opacity .35s ease-out;-moz-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn-0adb13d4{0%{opacity:0}to{opacity:1}}@-moz-keyframes fwFadeIn-0adb13d4{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn-0adb13d4{0%{opacity:0}to{opacity:1}}";
141
+ var stylesheet = ".fwFadeIn-enter-active[data-v-0adb13d4]{-webkit-animation:fwFadeIn-0adb13d4 .35s;-moz-animation:fwFadeIn-0adb13d4 .35s;animation:fwFadeIn-0adb13d4 .35s;-webkit-transition:opacity .35s ease-in;-moz-transition:opacity .35s ease-in;transition:opacity .35s ease-in}.fwFadeIn-leave-active[data-v-0adb13d4]{animation:fwFadeIn-0adb13d4 .35s reverse;-webkit-transition:opacity .35s ease-out;-moz-transition:opacity .35s ease-out;transition:opacity .35s ease-out}@-webkit-keyframes fwFadeIn-0adb13d4{0%{opacity:0}to{opacity:1}}@-moz-keyframes fwFadeIn-0adb13d4{0%{opacity:0}to{opacity:1}}@keyframes fwFadeIn-0adb13d4{0%{opacity:0}to{opacity:1}}";
142
+ styleInject(css_248z);
143
+
144
+ script.render = render;
145
+ script.__scopeId = "data-v-0adb13d4";
146
+
147
+ export { script as FwSwitch };
@@ -1,24 +1,23 @@
1
- import { m as render$3, n as render$4, o as render$5, l as render$6 } from './index-CzZMBMV_.js';
2
- import { defineComponent, computed, ref, onMounted, useCssVars, pushScopeId, popScopeId, resolveComponent, openBlock, createElementBlock, createElementVNode, mergeProps, renderSlot, createCommentVNode, Fragment, renderList, normalizeClass, withKeys, toDisplayString, createBlock, createVNode, withCtx } from 'vue';
3
- import { u as useColours } from './get-root-colours-DYEoJPEb.js';
4
- import { s as script$2 } from './fw-loading-bar-DThRjdw1.js';
5
- import { s as script$3 } from './fw-button-DNozvo7B.js';
1
+ import { b as _toConsumableArray } from './_rollupPluginBabelHelpers-DODWUb5N.js';
2
+ import { defineComponent, computed, ref, onMounted, useCssVars, pushScopeId, popScopeId, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, renderSlot, Fragment, renderList, withKeys, toDisplayString, createBlock, createVNode, withCtx } from 'vue';
3
+ import { u as useColours } from './get-root-colours-DCjlYelc.js';
4
+ import './fw-button.js';
5
+ import { o as render$3, p as render$4, q as render$5, s as render$6 } from './index-BsEH8YYr.js';
6
+ import './fw-loading.js';
7
+ import { s as script$2 } from './fw-button-CnQvA7oM.js';
8
+ import { _ as __default__$1 } from './fw-loading-bar-DecYSBC_.js';
6
9
  import { s as styleInject } from './style-inject.es-tgCJW-Cu.js';
7
10
 
8
11
  var __default__ = defineComponent({
9
12
  name: 'FwTable',
10
13
  components: {
11
- ArrowSortSvg: render$3,
12
- ArrowDownSvg: render$4,
13
- ChevronLeftSvg: render$5,
14
- ChevronRightSvg: render$6,
15
- FwLoadingBar: script$2,
16
- FwButton: script$3
14
+ FwLoadingBar: __default__$1,
15
+ FwButton: script$2,
16
+ ArrowDownSvg: render$6,
17
+ ArrowSortSvg: render$5,
18
+ ChevronLeftSvg: render$4,
19
+ ChevronRightSvg: render$3
17
20
  },
18
- emits: [/** Fired when a row is clicked with row data */
19
- 'rowClicked', /** Fired when a column is sorted */
20
- 'columnSorted', /** Fired when a page number or arrow is clicked */
21
- 'pageChanged'],
22
21
  props: {
23
22
  items: {
24
23
  type: Array,
@@ -54,9 +53,11 @@ var __default__ = defineComponent({
54
53
  type: Number
55
54
  }
56
55
  },
57
- setup: function setup(props, _ref) {
58
- var emit = _ref.emit,
59
- expose = _ref.expose;
56
+ emits: [/** Fired when a row is clicked with row data */
57
+ 'rowClicked', /** Fired when a column is sorted */
58
+ 'columnSorted', /** Fired when a page number or arrow is clicked */
59
+ 'pageChanged'],
60
+ setup: function setup(props, ctx) {
60
61
  var columns = computed(function () {
61
62
  return Object.keys(props.items[0]);
62
63
  });
@@ -64,16 +65,14 @@ var __default__ = defineComponent({
64
65
  var sortDirection = ref('asc');
65
66
  var currentSortedColumn = ref('');
66
67
  var currentPage = ref(1);
67
- var maxPageAmount = computed(function () {
68
- if (props.totalAmount && props.pageSize) {
69
- return Math.ceil(props.totalAmount / props.pageSize);
70
- }
71
- return undefined;
72
- });
68
+ var maxPageAmount = ref();
73
69
  onMounted(function () {
74
70
  if (Number(props.autoSortColumn) >= 0) {
75
71
  sortColumn(columns.value[Number(props.autoSortColumn)], false);
76
72
  }
73
+ if (props.totalAmount && props.pageSize) {
74
+ maxPageAmount.value = Math.ceil(props.totalAmount / props.pageSize);
75
+ }
77
76
  });
78
77
  var _useColours = useColours(),
79
78
  bgHoverColor = _useColours.primaryFade5;
@@ -87,18 +86,17 @@ var __default__ = defineComponent({
87
86
  sortBy.value = column;
88
87
  sortDirection.value = columnInitSort(column);
89
88
  }
90
- if (isAction) emit('columnSorted', column, sortDirection.value);
89
+ if (isAction) ctx.emit('columnSorted', column, sortDirection.value);
91
90
  };
92
91
  var sortedData = computed(function () {
92
+ var _props$options$sortBy;
93
93
  if (!sortBy.value) {
94
94
  return props.items;
95
95
  }
96
- var data = props.items;
97
- if (props.options) {
98
- var customSort = props.options[sortBy.value].sort;
99
- if (customSort) {
100
- return customSort(data, sortBy.value, sortDirection.value);
101
- }
96
+ var data = _toConsumableArray(props.items);
97
+ var customSort = props.options ? (_props$options$sortBy = props.options[sortBy.value]) === null || _props$options$sortBy === void 0 ? void 0 : _props$options$sortBy.sort : false;
98
+ if (customSort) {
99
+ return customSort(data, sortBy.value, sortDirection.value);
102
100
  } else {
103
101
  data.sort(function (a, b) {
104
102
  var sortVal = typeof a[sortBy.value] === 'string' ? a[sortBy.value].toString().toLowerCase() > b[sortBy.value].toString().toLowerCase() ? 1 : -1 : a[sortBy.value] > b[sortBy.value] ? 1 : -1;
@@ -148,19 +146,16 @@ var __default__ = defineComponent({
148
146
  return false;
149
147
  };
150
148
  var rowClicked = function rowClicked(row) {
151
- if (props.clickableRows) emit('rowClicked', row);
149
+ if (props.clickableRows) ctx.emit('rowClicked', row);
152
150
  };
153
151
  var pageArrowClick = function pageArrowClick(next) {
154
152
  currentPage.value = currentPage.value + (next ? 1 : -1);
155
- emit('pageChanged', next);
156
- };
157
- var resetPage = function resetPage() {
158
- currentPage.value = 1;
153
+ ctx.emit('pageChanged', next);
154
+ window.scrollTo({
155
+ top: 0,
156
+ behavior: 'smooth'
157
+ });
159
158
  };
160
- var exposeApi = {
161
- resetPage: resetPage
162
- };
163
- expose(exposeApi);
164
159
  return {
165
160
  columns: columns,
166
161
  sortBy: sortBy,
@@ -183,7 +178,7 @@ var __default__ = defineComponent({
183
178
  var __injectCSSVars__ = function __injectCSSVars__() {
184
179
  useCssVars(function (_ctx) {
185
180
  return {
186
- "7a48f11c": _ctx.bgHoverColor
181
+ "00d6962e": _ctx.bgHoverColor
187
182
  };
188
183
  });
189
184
  };
@@ -194,14 +189,14 @@ __default__.setup = __setup__ ? function (props, ctx) {
194
189
  } : __injectCSSVars__;
195
190
 
196
191
  var _withScopeId = function _withScopeId(n) {
197
- return pushScopeId("data-v-1a900878"), n = n(), popScopeId(), n;
192
+ return pushScopeId("data-v-d847bfa2"), n = n(), popScopeId(), n;
198
193
  };
199
194
  var _hoisted_1$2 = {
200
195
  "class": "flex flex-col"
201
196
  };
202
197
  var _hoisted_2$1 = ["aria-busy"];
203
198
  var _hoisted_3$1 = {
204
- "class": "text-p2 border-b border-grey-40"
199
+ "class": "text-base border-b border-grey-60"
205
200
  };
206
201
  var _hoisted_4 = ["tabindex", "onKeydown", "onClick"];
207
202
  var _hoisted_5 = {
@@ -212,7 +207,7 @@ var _hoisted_6 = {
212
207
  "class": "ml-1 flex items-center justify-center w-5"
213
208
  };
214
209
  var _hoisted_7 = {
215
- "class": "text-p2 bg-white font-light"
210
+ "class": "text-base bg-white font-normal"
216
211
  };
217
212
  var _hoisted_8 = {
218
213
  key: 0,
@@ -222,7 +217,7 @@ var _hoisted_9 = {
222
217
  key: 0,
223
218
  "class": "py-4 pl-5 pr-3 text-left"
224
219
  };
225
- var _hoisted_10 = ["onClick", "tabindex", "onKeydown"];
220
+ var _hoisted_10 = ["tabindex", "onClick", "onKeydown"];
226
221
  var _hoisted_11 = ["innerHTML"];
227
222
  var _hoisted_12 = {
228
223
  key: 0,
@@ -235,18 +230,18 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
235
230
  var _component_ChevronLeftSvg = resolveComponent("ChevronLeftSvg");
236
231
  var _component_FwButton = resolveComponent("FwButton");
237
232
  var _component_ChevronRightSvg = resolveComponent("ChevronRightSvg");
238
- return openBlock(), createElementBlock("div", _hoisted_1$2, [createElementVNode("table", mergeProps(_ctx.$attrs, {
239
- "class": ["fw-table table-auto table-responsive rounded-md shadow-card flex-1", _ctx.loading ? 'cursor-wait' : ''],
233
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [createElementVNode("table", {
234
+ "class": normalizeClass(["fw-table table-auto flex-1", _ctx.loading ? 'cursor-wait' : '']),
240
235
  "aria-live": "polite",
241
236
  "aria-busy": _ctx.loading
242
- }), [createElementVNode("thead", _hoisted_3$1, [createElementVNode("tr", null, [_ctx.$slots.preHead ? renderSlot(_ctx.$slots, "preHead", {
237
+ }, [createElementVNode("thead", _hoisted_3$1, [createElementVNode("tr", null, [_ctx.$slots.preHead ? renderSlot(_ctx.$slots, "preHead", {
243
238
  key: 0
244
239
  }) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.columns, function (column, thKey) {
245
240
  return openBlock(), createElementBlock(Fragment, {
246
241
  key: thKey
247
242
  }, [!_ctx.isDisabled(column) ? (openBlock(), createElementBlock("th", {
248
243
  key: 0,
249
- "class": normalizeClass(["fw-table-head py-6 pl-5 pr-3 text-left font-medium", _ctx.isColumnSortable(column) ? 'cursor-pointer fw-table-head--sortable' : '']),
244
+ "class": normalizeClass(["fw-table-head py-6 pl-5 pr-3 text-left font-medium text-brand-text1", _ctx.isColumnSortable(column) ? 'cursor-pointer fw-table-head--sortable' : '']),
250
245
  tabindex: _ctx.isColumnSortable(column) ? 0 : -1,
251
246
  onKeydown: withKeys(function ($event) {
252
247
  return _ctx.sortColumn(column);
@@ -258,12 +253,15 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
258
253
  "class": normalizeClass(_ctx.sortedIcon('asc', column) || _ctx.sortedIcon('desc', column) ? 'text-primary' : '')
259
254
  }, toDisplayString(column), 3), _ctx.isColumnSortable(column) ? (openBlock(), createElementBlock("span", _hoisted_6, [!_ctx.sortedIcon('asc', column) && !_ctx.sortedIcon('desc', column) ? (openBlock(), createBlock(_component_ArrowSortSvg, {
260
255
  key: 0,
261
- "class": "inline-block w-full text-grey-base"
256
+ name: "arrow-sort",
257
+ "class": "inline-block w-full text-brand-text2"
262
258
  })) : createCommentVNode("", true), _ctx.sortedIcon('asc', column) ? (openBlock(), createBlock(_component_ArrowDownSvg, {
263
259
  key: 1,
260
+ name: "arrow-down",
264
261
  "class": "inline-block w-4 text-primary rotate-180"
265
262
  })) : createCommentVNode("", true), _ctx.sortedIcon('desc', column) ? (openBlock(), createBlock(_component_ArrowDownSvg, {
266
263
  key: 2,
264
+ name: "arrow-down",
267
265
  "class": "inline-block w-4 text-primary"
268
266
  })) : createCommentVNode("", true)])) : createCommentVNode("", true)])], 42, _hoisted_4)) : createCommentVNode("", true)], 64);
269
267
  }), 128)), _ctx.$slots.head ? renderSlot(_ctx.$slots, "head", {
@@ -286,15 +284,15 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
286
284
  key: 1
287
285
  }, renderList(_ctx.sortedData, function (row, trKey) {
288
286
  return openBlock(), createElementBlock("tr", {
289
- "class": normalizeClass(["fw-table-row border-b border-grey-40", _ctx.clickableRows ? 'cursor-pointer' : '']),
287
+ key: trKey,
288
+ "class": normalizeClass(["fw-table-row border-b last:border-b-0 border-grey-60", _ctx.clickableRows ? 'cursor-pointer' : '']),
289
+ tabindex: _ctx.clickableRows ? 0 : -1,
290
290
  onClick: function onClick($event) {
291
291
  return _ctx.rowClicked(row);
292
292
  },
293
- tabindex: _ctx.clickableRows ? 0 : -1,
294
293
  onKeydown: withKeys(function ($event) {
295
294
  return _ctx.rowClicked(row);
296
- }, ["enter", "space"]),
297
- key: trKey
295
+ }, ["enter", "space"])
298
296
  }, [_ctx.$slots.preRow ? renderSlot(_ctx.$slots, "preRow", {
299
297
  key: 0,
300
298
  row: row
@@ -303,14 +301,14 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
303
301
  key: colKey
304
302
  }, [!_ctx.isDisabled(column) ? (openBlock(), createElementBlock("td", {
305
303
  key: 0,
306
- "class": "py-2 pl-5 pr-3 text-left",
304
+ "class": "py-5 pl-5 pr-3 text-left",
307
305
  innerHTML: _ctx.formattedText(row, column)
308
306
  }, null, 8, _hoisted_11)) : createCommentVNode("", true)], 64);
309
307
  }), 128)), _ctx.$slots.row ? renderSlot(_ctx.$slots, "row", {
310
308
  key: 1,
311
309
  row: row
312
310
  }) : createCommentVNode("", true)], 42, _hoisted_10);
313
- }), 128))])], 16, _hoisted_2$1), _ctx.enablePagination ? (openBlock(), createElementBlock("div", _hoisted_12, [createVNode(_component_FwButton, {
311
+ }), 128))])], 10, _hoisted_2$1), _ctx.enablePagination ? (openBlock(), createElementBlock("div", _hoisted_12, [createVNode(_component_FwButton, {
314
312
  variant: 'tertiary',
315
313
  disabled: _ctx.currentPage === 1,
316
314
  size: "sm",
@@ -321,6 +319,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
321
319
  }, {
322
320
  "default": withCtx(function () {
323
321
  return [createVNode(_component_ChevronLeftSvg, {
322
+ name: "chevron-left",
324
323
  "class": "h-4 w-4",
325
324
  "stroke-width": "3"
326
325
  })];
@@ -337,6 +336,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
337
336
  }, {
338
337
  "default": withCtx(function () {
339
338
  return [createVNode(_component_ChevronRightSvg, {
339
+ name: "chevron-right",
340
340
  "class": "h-4 w-4"
341
341
  })];
342
342
  }),
@@ -344,12 +344,12 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
344
344
  }, 8, ["disabled"])])) : createCommentVNode("", true)]);
345
345
  }
346
346
 
347
- var css_248z = ".fw-table-head--sortable[data-v-1a900878]:hover{background-color:var(--7a48f11c)}.fw-table-row[data-v-1a900878]:hover{background-color:var(--7a48f11c)}";
348
- var stylesheet = ".fw-table-head--sortable[data-v-1a900878]:hover{background-color:var(--7a48f11c)}.fw-table-row[data-v-1a900878]:hover{background-color:var(--7a48f11c)}";
347
+ var css_248z = ".fw-table-head--sortable[data-v-d847bfa2]:hover{background-color:var(--00d6962e)}.fw-table-row[data-v-d847bfa2]:hover{background-color:var(--00d6962e)}";
348
+ var stylesheet = ".fw-table-head--sortable[data-v-d847bfa2]:hover{background-color:var(--00d6962e)}.fw-table-row[data-v-d847bfa2]:hover{background-color:var(--00d6962e)}";
349
349
  styleInject(css_248z);
350
350
 
351
351
  __default__.render = render$2;
352
- __default__.__scopeId = "data-v-1a900878";
352
+ __default__.__scopeId = "data-v-d847bfa2";
353
353
 
354
354
  var script$1 = defineComponent({
355
355
  name: 'FwTableHead'
package/esm/fw-table.js CHANGED
@@ -1,9 +1,10 @@
1
- export { _ as FwTable, s as FwTableHead, a as FwTableRow } from './fw-table-row-BetVCzHJ.js';
2
- import './index-CzZMBMV_.js';
1
+ export { _ as FwTable, s as FwTableHead, a as FwTableRow } from './fw-table-row-C61Bi8KB.js';
2
+ import './_rollupPluginBabelHelpers-DODWUb5N.js';
3
3
  import 'vue';
4
- import './check--YD4Ts6g.js';
5
- import './get-root-colours-DYEoJPEb.js';
6
- import './fw-loading-bar-DThRjdw1.js';
4
+ import './get-root-colours-DCjlYelc.js';
5
+ import './fw-button.js';
6
+ import './fw-button-CnQvA7oM.js';
7
+ import './index-BsEH8YYr.js';
7
8
  import './style-inject.es-tgCJW-Cu.js';
8
- import './fw-button-DNozvo7B.js';
9
- import './fw-loading-spinner-BFpFFRJm.js';
9
+ import './fw-loading.js';
10
+ import './fw-loading-bar-DecYSBC_.js';
package/esm/fw-tabs.js CHANGED
@@ -1,8 +1,7 @@
1
- import { defineComponent, reactive, computed, ref, provide, openBlock, createElementBlock, Fragment, renderList, createElementVNode, normalizeClass, toDisplayString, createCommentVNode, renderSlot, getCurrentInstance, inject, watchEffect, withDirectives, vShow } from 'vue';
1
+ import { defineComponent, reactive, ref, computed, provide, createElementBlock, openBlock, createCommentVNode, renderSlot, Fragment, renderList, createElementVNode, normalizeClass, toDisplayString, getCurrentInstance, inject, watchEffect, withDirectives, vShow } from 'vue';
2
2
 
3
3
  var script$1 = defineComponent({
4
4
  name: 'FwTabs',
5
- emits: ['update:modelValue'],
6
5
  props: {
7
6
  /**
8
7
  * The active tab v-model
@@ -12,6 +11,7 @@ var script$1 = defineComponent({
12
11
  required: true
13
12
  }
14
13
  },
14
+ emits: ['update:modelValue'],
15
15
  setup: function setup(props, ctx) {
16
16
  var state = reactive({
17
17
  active: computed(function () {
@@ -35,20 +35,20 @@ var _hoisted_1$1 = {
35
35
  };
36
36
  var _hoisted_2 = {
37
37
  key: 0,
38
- "class": "flex flex-wrap -mb-px border-b border-grey-light dark:text-grey-base dark:border-grey-base"
38
+ "class": "flex flex-wrap -mb-px border-b border-brand-border2"
39
39
  };
40
40
  var _hoisted_3 = ["onClick"];
41
41
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
42
42
  return openBlock(), createElementBlock("div", _hoisted_1$1, [_ctx.state.tabs ? (openBlock(), createElementBlock("ul", _hoisted_2, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.state.tabs, function (tab, i) {
43
43
  return openBlock(), createElementBlock("li", {
44
- "class": "mr-2",
45
- key: i
44
+ key: i,
45
+ "class": "mr-2"
46
46
  }, [createElementVNode("button", {
47
47
  type: "button",
48
+ "class": normalizeClass(["inline-block p-4 outline-primary border-b-2 border-transparent transition ease-in", _ctx.state.active === i && '!border-primary']),
48
49
  onClick: function onClick($event) {
49
50
  return _ctx.selectTab(i);
50
- },
51
- "class": normalizeClass(["inline-block p-4 outline-primary border-b-2 border-transparent transition ease-in", _ctx.state.active === i ? '!font-semibold !border-body' : 'hover:bg-grey-lightest'])
51
+ }
52
52
  }, toDisplayString(tab.props.label), 11, _hoisted_3)]);
53
53
  }), 128))])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")]);
54
54
  }
@@ -1,8 +1,8 @@
1
- import { defineComponent, ref, computed, useCssVars, resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, createTextVNode, toDisplayString, renderSlot, createCommentVNode, createBlock, withCtx, createVNode } from 'vue';
1
+ import { defineComponent, ref, computed, useCssVars, resolveComponent, createElementBlock, openBlock, normalizeClass, renderSlot, createCommentVNode, createBlock, Fragment, createTextVNode, toDisplayString, withCtx, createVNode } from 'vue';
2
2
  import './fw-button.js';
3
- import { b as render$1 } from './index-CzZMBMV_.js';
4
- import { u as useColours } from './get-root-colours-DYEoJPEb.js';
5
- import { s as script } from './fw-button-DNozvo7B.js';
3
+ import { d as render$1 } from './index-BsEH8YYr.js';
4
+ import { u as useColours } from './get-root-colours-DCjlYelc.js';
5
+ import { s as script } from './fw-button-CnQvA7oM.js';
6
6
  import { s as styleInject } from './style-inject.es-tgCJW-Cu.js';
7
7
 
8
8
  var __default__ = defineComponent({
@@ -11,8 +11,6 @@ var __default__ = defineComponent({
11
11
  FwButton: script,
12
12
  XMarkSvg: render$1
13
13
  },
14
- emits: [/** Fires when the tag is dismissed. */
15
- 'dismissed'],
16
14
  props: {
17
15
  /**
18
16
  * The label text of the tag.
@@ -38,7 +36,7 @@ var __default__ = defineComponent({
38
36
  type: String,
39
37
  "default": 'primary',
40
38
  validator: function validator(value) {
41
- return ['primary', 'secondary', 'alert', 'error', 'success'].includes(value);
39
+ return ['primary', 'secondary', 'tertiary', 'quaternary', 'alert', 'error', 'success'].includes(value);
42
40
  }
43
41
  },
44
42
  /**
@@ -49,41 +47,53 @@ var __default__ = defineComponent({
49
47
  "default": false
50
48
  }
51
49
  },
50
+ emits: [/** Fires when the tag is dismissed. */
51
+ 'dismissed'],
52
52
  setup: function setup(props) {
53
- var baseClass = ref("\n inline-flex items-center justify-center font-semibold text-center whitespace-nowrap rounded-full shadow\n ");
53
+ var baseClass = ref("\n inline-flex items-center justify-center text-center whitespace-nowrap rounded-full\n ");
54
54
  var _useColours = useColours(),
55
55
  primaryFade5 = _useColours.primaryFade5;
56
56
  var tagClasses = ref({
57
57
  primary: {
58
58
  text: 'text-button-primary-text',
59
59
  background: 'bg-button-primary-bg',
60
- iconType: 'primary'
60
+ iconButtonType: 'primary'
61
61
  },
62
62
  secondary: {
63
63
  text: 'text-primary',
64
64
  background: 'fw-tag--secondary-bg',
65
- iconType: 'tertiary'
65
+ iconButtonType: 'tertiary'
66
+ },
67
+ tertiary: {
68
+ text: 'text-body',
69
+ background: 'bg-brand-bg4',
70
+ iconButtonType: 'tertiary'
71
+ },
72
+ quaternary: {
73
+ text: 'text-body',
74
+ background: 'bg-brand-bg3',
75
+ iconButtonType: 'tertiary'
66
76
  },
67
77
  alert: {
68
78
  text: 'text-white',
69
- background: 'bg-alert',
70
- iconType: 'error'
79
+ background: 'bg-brand-warning-bg',
80
+ iconButtonType: 'error'
71
81
  },
72
82
  success: {
73
- text: 'text-white',
74
- background: 'bg-success',
75
- iconType: 'success'
83
+ text: 'text-secondary',
84
+ background: 'bg-brand-success-new',
85
+ iconButtonType: 'success'
76
86
  },
77
87
  error: {
78
88
  text: 'text-white',
79
- background: 'bg-error',
80
- iconType: 'error'
89
+ background: 'bg-brand-error-text',
90
+ iconButtonType: 'error'
81
91
  }
82
92
  });
83
93
  var sizes = ref({
84
94
  xs: 'px-2 py-px text-xs',
85
95
  sm: 'px-4 py-1 text-xs',
86
- md: 'px-3 py-[4.75px] text-xs'
96
+ md: 'px-4 py-3 h-6 text-sm'
87
97
  });
88
98
  var iconSizes = ref({
89
99
  xs: 'w-4 h-4',
@@ -97,7 +107,7 @@ var __default__ = defineComponent({
97
107
  return tagClasses.value[props.variant].background;
98
108
  });
99
109
  var iconButtonType = computed(function () {
100
- return tagClasses.value[props.variant].iconType;
110
+ return tagClasses.value[props.variant].iconButtonType;
101
111
  });
102
112
  var sizeClass = computed(function () {
103
113
  return sizes.value[props.size];
@@ -119,7 +129,7 @@ var __default__ = defineComponent({
119
129
  var __injectCSSVars__ = function __injectCSSVars__() {
120
130
  useCssVars(function (_ctx) {
121
131
  return {
122
- "8d62bc46": _ctx.primaryFade5
132
+ "819938ae": _ctx.primaryFade5
123
133
  };
124
134
  });
125
135
  };
@@ -133,7 +143,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
133
143
  var _component_XMarkSvg = resolveComponent("XMarkSvg");
134
144
  var _component_FwButton = resolveComponent("FwButton");
135
145
  return openBlock(), createElementBlock("span", {
136
- "class": normalizeClass(["fw-tag", [_ctx.baseClass, _ctx.textColorClass, _ctx.bgColorClass, _ctx.sizeClass]])
146
+ "class": normalizeClass(["fw-tag", [_ctx.baseClass, _ctx.textColorClass, _ctx.bgColorClass, _ctx.sizeClass, _ctx.dismissable ? 'shadow font-semibold' : 'font-normal']])
137
147
  }, [_ctx.label ? (openBlock(), createElementBlock(Fragment, {
138
148
  key: 0
139
149
  }, [createTextVNode(toDisplayString(_ctx.label), 1)], 64)) : _ctx.$slots["default"] ? renderSlot(_ctx.$slots, "default", {
@@ -141,24 +151,25 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
141
151
  }) : createCommentVNode("", true), _ctx.dismissable ? (openBlock(), createBlock(_component_FwButton, {
142
152
  key: 2,
143
153
  variant: _ctx.iconButtonType,
154
+ "class": normalizeClass([_ctx.iconSizeClass, "ml-1 !p-0 flex items-center justify-center border-none rounded-full"]),
144
155
  tabindex: "",
145
156
  title: "Dismiss filter",
146
157
  onClick: _cache[0] || (_cache[0] = function ($event) {
147
158
  return _ctx.$emit('dismissed');
148
- }),
149
- "class": normalizeClass([_ctx.iconSizeClass, "ml-1 !p-0 flex items-center justify-center border-none rounded-full"])
159
+ })
150
160
  }, {
151
161
  "default": withCtx(function () {
152
162
  return [createVNode(_component_XMarkSvg, {
153
- "class": "w-full h-full font-semibold m-0"
163
+ name: "xmark",
164
+ "class": "w-3 h-3 font-semibold m-0"
154
165
  })];
155
166
  }),
156
167
  _: 1
157
168
  }, 8, ["variant", "class"])) : createCommentVNode("", true)], 2);
158
169
  }
159
170
 
160
- var css_248z = ".fw-tag{line-height:normal;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;transition:all .25s ease-in-out}.fw-tag--secondary-bg{background:var(--8d62bc46)}";
161
- var stylesheet = ".fw-tag{line-height:normal;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;transition:all .25s ease-in-out}.fw-tag--secondary-bg{background:var(--8d62bc46)}";
171
+ var css_248z = ".fw-tag{line-height:normal;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;transition:all .25s ease-in-out}.fw-tag--secondary-bg{background:var(--819938ae)}";
172
+ var stylesheet = ".fw-tag{line-height:normal;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;transition:all .25s ease-in-out}.fw-tag--secondary-bg{background:var(--819938ae)}";
162
173
  styleInject(css_248z);
163
174
 
164
175
  __default__.render = render;
package/esm/fw-tag.js CHANGED
@@ -1,9 +1,7 @@
1
- export { _ as FwTag } from './fw-tag-V0jMl-It.js';
1
+ export { _ as FwTag } from './fw-tag-FWH6KttB.js';
2
2
  import 'vue';
3
3
  import './fw-button.js';
4
- import './fw-button-DNozvo7B.js';
5
- import './fw-loading-spinner-BFpFFRJm.js';
6
- import './index-CzZMBMV_.js';
7
- import './check--YD4Ts6g.js';
4
+ import './fw-button-CnQvA7oM.js';
5
+ import './index-BsEH8YYr.js';
8
6
  import './style-inject.es-tgCJW-Cu.js';
9
- import './get-root-colours-DYEoJPEb.js';
7
+ import './get-root-colours-DCjlYelc.js';