@frollo/frollo-web-ui 8.5.4 → 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 +29797 -28753
  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-Db7951fr.js → fw-table-row-C61Bi8KB.js} +57 -55
  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 +30139 -29045
  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 +30134 -29048
  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,14 +86,15 @@ 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
- var customSort = props.options ? props.options[sortBy.value].sort : undefined;
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
98
  if (customSort) {
99
99
  return customSort(data, sortBy.value, sortDirection.value);
100
100
  } else {
@@ -146,19 +146,16 @@ var __default__ = defineComponent({
146
146
  return false;
147
147
  };
148
148
  var rowClicked = function rowClicked(row) {
149
- if (props.clickableRows) emit('rowClicked', row);
149
+ if (props.clickableRows) ctx.emit('rowClicked', row);
150
150
  };
151
151
  var pageArrowClick = function pageArrowClick(next) {
152
152
  currentPage.value = currentPage.value + (next ? 1 : -1);
153
- emit('pageChanged', next);
154
- };
155
- var resetPage = function resetPage() {
156
- currentPage.value = 1;
157
- };
158
- var exposeApi = {
159
- resetPage: resetPage
153
+ ctx.emit('pageChanged', next);
154
+ window.scrollTo({
155
+ top: 0,
156
+ behavior: 'smooth'
157
+ });
160
158
  };
161
- expose(exposeApi);
162
159
  return {
163
160
  columns: columns,
164
161
  sortBy: sortBy,
@@ -181,7 +178,7 @@ var __default__ = defineComponent({
181
178
  var __injectCSSVars__ = function __injectCSSVars__() {
182
179
  useCssVars(function (_ctx) {
183
180
  return {
184
- "121d9c09": _ctx.bgHoverColor
181
+ "00d6962e": _ctx.bgHoverColor
185
182
  };
186
183
  });
187
184
  };
@@ -192,14 +189,14 @@ __default__.setup = __setup__ ? function (props, ctx) {
192
189
  } : __injectCSSVars__;
193
190
 
194
191
  var _withScopeId = function _withScopeId(n) {
195
- return pushScopeId("data-v-5b704401"), n = n(), popScopeId(), n;
192
+ return pushScopeId("data-v-d847bfa2"), n = n(), popScopeId(), n;
196
193
  };
197
194
  var _hoisted_1$2 = {
198
195
  "class": "flex flex-col"
199
196
  };
200
197
  var _hoisted_2$1 = ["aria-busy"];
201
198
  var _hoisted_3$1 = {
202
- "class": "text-p2 border-b border-grey-40"
199
+ "class": "text-base border-b border-grey-60"
203
200
  };
204
201
  var _hoisted_4 = ["tabindex", "onKeydown", "onClick"];
205
202
  var _hoisted_5 = {
@@ -210,7 +207,7 @@ var _hoisted_6 = {
210
207
  "class": "ml-1 flex items-center justify-center w-5"
211
208
  };
212
209
  var _hoisted_7 = {
213
- "class": "text-p2 bg-white font-light"
210
+ "class": "text-base bg-white font-normal"
214
211
  };
215
212
  var _hoisted_8 = {
216
213
  key: 0,
@@ -220,7 +217,7 @@ var _hoisted_9 = {
220
217
  key: 0,
221
218
  "class": "py-4 pl-5 pr-3 text-left"
222
219
  };
223
- var _hoisted_10 = ["onClick", "tabindex", "onKeydown"];
220
+ var _hoisted_10 = ["tabindex", "onClick", "onKeydown"];
224
221
  var _hoisted_11 = ["innerHTML"];
225
222
  var _hoisted_12 = {
226
223
  key: 0,
@@ -233,18 +230,18 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
233
230
  var _component_ChevronLeftSvg = resolveComponent("ChevronLeftSvg");
234
231
  var _component_FwButton = resolveComponent("FwButton");
235
232
  var _component_ChevronRightSvg = resolveComponent("ChevronRightSvg");
236
- return openBlock(), createElementBlock("div", _hoisted_1$2, [createElementVNode("table", mergeProps(_ctx.$attrs, {
237
- "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' : '']),
238
235
  "aria-live": "polite",
239
236
  "aria-busy": _ctx.loading
240
- }), [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", {
241
238
  key: 0
242
239
  }) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.columns, function (column, thKey) {
243
240
  return openBlock(), createElementBlock(Fragment, {
244
241
  key: thKey
245
242
  }, [!_ctx.isDisabled(column) ? (openBlock(), createElementBlock("th", {
246
243
  key: 0,
247
- "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' : '']),
248
245
  tabindex: _ctx.isColumnSortable(column) ? 0 : -1,
249
246
  onKeydown: withKeys(function ($event) {
250
247
  return _ctx.sortColumn(column);
@@ -256,12 +253,15 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
256
253
  "class": normalizeClass(_ctx.sortedIcon('asc', column) || _ctx.sortedIcon('desc', column) ? 'text-primary' : '')
257
254
  }, toDisplayString(column), 3), _ctx.isColumnSortable(column) ? (openBlock(), createElementBlock("span", _hoisted_6, [!_ctx.sortedIcon('asc', column) && !_ctx.sortedIcon('desc', column) ? (openBlock(), createBlock(_component_ArrowSortSvg, {
258
255
  key: 0,
259
- "class": "inline-block w-full text-grey-base"
256
+ name: "arrow-sort",
257
+ "class": "inline-block w-full text-brand-text2"
260
258
  })) : createCommentVNode("", true), _ctx.sortedIcon('asc', column) ? (openBlock(), createBlock(_component_ArrowDownSvg, {
261
259
  key: 1,
260
+ name: "arrow-down",
262
261
  "class": "inline-block w-4 text-primary rotate-180"
263
262
  })) : createCommentVNode("", true), _ctx.sortedIcon('desc', column) ? (openBlock(), createBlock(_component_ArrowDownSvg, {
264
263
  key: 2,
264
+ name: "arrow-down",
265
265
  "class": "inline-block w-4 text-primary"
266
266
  })) : createCommentVNode("", true)])) : createCommentVNode("", true)])], 42, _hoisted_4)) : createCommentVNode("", true)], 64);
267
267
  }), 128)), _ctx.$slots.head ? renderSlot(_ctx.$slots, "head", {
@@ -284,15 +284,15 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
284
284
  key: 1
285
285
  }, renderList(_ctx.sortedData, function (row, trKey) {
286
286
  return openBlock(), createElementBlock("tr", {
287
- "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,
288
290
  onClick: function onClick($event) {
289
291
  return _ctx.rowClicked(row);
290
292
  },
291
- tabindex: _ctx.clickableRows ? 0 : -1,
292
293
  onKeydown: withKeys(function ($event) {
293
294
  return _ctx.rowClicked(row);
294
- }, ["enter", "space"]),
295
- key: trKey
295
+ }, ["enter", "space"])
296
296
  }, [_ctx.$slots.preRow ? renderSlot(_ctx.$slots, "preRow", {
297
297
  key: 0,
298
298
  row: row
@@ -301,14 +301,14 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
301
301
  key: colKey
302
302
  }, [!_ctx.isDisabled(column) ? (openBlock(), createElementBlock("td", {
303
303
  key: 0,
304
- "class": "py-2 pl-5 pr-3 text-left",
304
+ "class": "py-5 pl-5 pr-3 text-left",
305
305
  innerHTML: _ctx.formattedText(row, column)
306
306
  }, null, 8, _hoisted_11)) : createCommentVNode("", true)], 64);
307
307
  }), 128)), _ctx.$slots.row ? renderSlot(_ctx.$slots, "row", {
308
308
  key: 1,
309
309
  row: row
310
310
  }) : createCommentVNode("", true)], 42, _hoisted_10);
311
- }), 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, {
312
312
  variant: 'tertiary',
313
313
  disabled: _ctx.currentPage === 1,
314
314
  size: "sm",
@@ -319,6 +319,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
319
319
  }, {
320
320
  "default": withCtx(function () {
321
321
  return [createVNode(_component_ChevronLeftSvg, {
322
+ name: "chevron-left",
322
323
  "class": "h-4 w-4",
323
324
  "stroke-width": "3"
324
325
  })];
@@ -335,6 +336,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
335
336
  }, {
336
337
  "default": withCtx(function () {
337
338
  return [createVNode(_component_ChevronRightSvg, {
339
+ name: "chevron-right",
338
340
  "class": "h-4 w-4"
339
341
  })];
340
342
  }),
@@ -342,12 +344,12 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
342
344
  }, 8, ["disabled"])])) : createCommentVNode("", true)]);
343
345
  }
344
346
 
345
- var css_248z = ".fw-table-head--sortable[data-v-5b704401]:hover{background-color:var(--121d9c09)}.fw-table-row[data-v-5b704401]:hover{background-color:var(--121d9c09)}";
346
- var stylesheet = ".fw-table-head--sortable[data-v-5b704401]:hover{background-color:var(--121d9c09)}.fw-table-row[data-v-5b704401]:hover{background-color:var(--121d9c09)}";
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)}";
347
349
  styleInject(css_248z);
348
350
 
349
351
  __default__.render = render$2;
350
- __default__.__scopeId = "data-v-5b704401";
352
+ __default__.__scopeId = "data-v-d847bfa2";
351
353
 
352
354
  var script$1 = defineComponent({
353
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-Db7951fr.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';