@qld-gov-au/qgds-bootstrap5 2.0.10 → 2.0.12

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 (113) hide show
  1. package/.storybook/main.mjs +2 -2
  2. package/.storybook/preview.js +5 -2
  3. package/dist/assets/components/bs5/banner/banner.hbs +3 -6
  4. package/dist/assets/components/bs5/card/card.hbs +2 -2
  5. package/dist/assets/components/bs5/dateinput/dateinput.hbs +27 -27
  6. package/dist/assets/components/bs5/formcheck/formcheck.hbs +10 -2
  7. package/dist/assets/components/bs5/head/head.hbs +1 -1
  8. package/dist/assets/components/bs5/searchInput/searchInput.hbs +31 -29
  9. package/dist/assets/components/bs5/select/select.hbs +19 -19
  10. package/dist/assets/components/bs5/tag/tag.hbs +1 -1
  11. package/dist/assets/components/bs5/textarea/textarea.hbs +17 -17
  12. package/dist/assets/components/bs5/textbox/textbox.hbs +17 -18
  13. package/dist/assets/css/qld.bootstrap.css +2 -2
  14. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  15. package/dist/assets/css/qld.bootstrap.legacy.css +2 -2
  16. package/dist/assets/css/qld.bootstrap.legacy.css.map +3 -3
  17. package/dist/assets/js/handlebars.helpers.bundle.js +2 -2
  18. package/dist/assets/js/handlebars.helpers.bundle.js.map +2 -2
  19. package/dist/assets/js/handlebars.init.min.js +141 -135
  20. package/dist/assets/js/handlebars.init.min.js.map +2 -2
  21. package/dist/assets/js/handlebars.partials.js +141 -135
  22. package/dist/assets/js/handlebars.partials.js.map +2 -2
  23. package/dist/assets/js/qld.bootstrap.min.js +9 -10
  24. package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
  25. package/dist/assets/node/handlebars.init.min.js +59 -11
  26. package/dist/assets/node/handlebars.init.min.js.map +2 -2
  27. package/dist/components/bs5/banner/banner.hbs +3 -6
  28. package/dist/components/bs5/card/card.hbs +2 -2
  29. package/dist/components/bs5/dateinput/dateinput.hbs +27 -27
  30. package/dist/components/bs5/formcheck/formcheck.hbs +10 -2
  31. package/dist/components/bs5/head/head.hbs +1 -1
  32. package/dist/components/bs5/searchInput/searchInput.hbs +31 -29
  33. package/dist/components/bs5/select/select.hbs +19 -19
  34. package/dist/components/bs5/tag/tag.hbs +1 -1
  35. package/dist/components/bs5/textarea/textarea.hbs +17 -17
  36. package/dist/components/bs5/textbox/textbox.hbs +17 -18
  37. package/dist/package.json +1 -1
  38. package/dist/sample-data/card/card.data.json +4 -1
  39. package/dist/sample-data/dateinput/dateinput.data.json +14 -12
  40. package/dist/sample-data/formcheck/stories/checkbox/checkbox.data.json +4 -5
  41. package/dist/sample-data/formcheck/stories/radio/radio.data.json +4 -4
  42. package/dist/sample-data/searchInput/searchInput.data.json +19 -10
  43. package/dist/sample-data/select/select.data.json +12 -10
  44. package/dist/sample-data/tag/tag.data.json +149 -143
  45. package/dist/sample-data/textarea/textarea.data.json +14 -11
  46. package/dist/sample-data/textbox/textbox.data.json +13 -10
  47. package/package.json +1 -1
  48. package/src/components/bs5/banner/banner.hbs +3 -6
  49. package/src/components/bs5/banner/banner.scss +10 -7
  50. package/src/components/bs5/banner/banner.stories.js +2 -5
  51. package/src/components/bs5/button/button.scss +4 -11
  52. package/src/components/bs5/button/button.stories.js +17 -15
  53. package/src/components/bs5/card/Card.js +31 -2
  54. package/src/components/bs5/card/Card.mdx +4 -0
  55. package/src/components/bs5/card/card--icon-list-footer.stories.js +2 -24
  56. package/src/components/bs5/card/card--multi-action.stories.js +9 -28
  57. package/src/components/bs5/card/card--no-action.stories.js +5 -27
  58. package/src/components/bs5/card/card--single-action.stories.js +4 -33
  59. package/src/components/bs5/card/card.data.json +4 -1
  60. package/src/components/bs5/card/card.hbs +2 -2
  61. package/src/components/bs5/dateinput/Dateinput.js +26 -11
  62. package/src/components/bs5/dateinput/dateinput.data.json +14 -12
  63. package/src/components/bs5/dateinput/dateinput.hbs +27 -27
  64. package/src/components/bs5/footer/footer_formio.scss +5 -5
  65. package/src/components/bs5/formcheck/Formcheck.js +57 -6
  66. package/src/components/bs5/formcheck/_form-variables.scss +131 -0
  67. package/src/components/bs5/formcheck/formcheck.hbs +10 -2
  68. package/src/components/bs5/formcheck/formcheck.scss +229 -66
  69. package/src/components/bs5/formcheck/stories/bootstrap-validation/bootstrap-validation.stories.js +304 -0
  70. package/src/components/bs5/formcheck/stories/checkbox/checkbox.data.json +4 -5
  71. package/src/components/bs5/formcheck/stories/checkbox/checkbox.stories.js +19 -111
  72. package/src/components/bs5/formcheck/stories/radio/radio.data.json +4 -4
  73. package/src/components/bs5/formcheck/stories/radio/radio.stories.js +30 -122
  74. package/src/components/bs5/inpageAlert/inpageAlert.scss +1 -1
  75. package/src/components/bs5/modal/modal.scss +106 -99
  76. package/src/components/bs5/navbar/navbar.functions.js +122 -19
  77. package/src/components/bs5/pageLayout/{ThemeShowcase.stories.js → PaletteShowcase.stories.js} +36 -35
  78. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +24 -28
  79. package/src/components/bs5/searchInput/search.functions.js +93 -76
  80. package/src/components/bs5/searchInput/searchInput.data.json +19 -10
  81. package/src/components/bs5/searchInput/searchInput.hbs +31 -29
  82. package/src/components/bs5/searchInput/searchInput.scss +140 -196
  83. package/src/components/bs5/searchInput/searchInput.stories.js +35 -13
  84. package/src/components/bs5/searchInput/searchInput.test.js +5 -1
  85. package/src/components/bs5/select/Select.js +13 -5
  86. package/src/components/bs5/select/Select.stories.js +27 -83
  87. package/src/components/bs5/select/select.data.json +12 -10
  88. package/src/components/bs5/select/select.hbs +19 -19
  89. package/src/components/bs5/tag/tag--status.stories.js +1 -0
  90. package/src/components/bs5/tag/tag.data.json +149 -143
  91. package/src/components/bs5/tag/tag.hbs +1 -1
  92. package/src/components/bs5/tag/tag.scss +2 -5
  93. package/src/components/bs5/tag/tag.stories.js +1 -0
  94. package/src/components/bs5/textarea/Textarea.js +13 -5
  95. package/src/components/bs5/textarea/Textarea.stories.js +29 -55
  96. package/src/components/bs5/textarea/textarea.data.json +14 -11
  97. package/src/components/bs5/textarea/textarea.hbs +17 -17
  98. package/src/components/bs5/textbox/Textbox.js +16 -5
  99. package/src/components/bs5/textbox/Textbox.stories.js +26 -51
  100. package/src/components/bs5/textbox/textInput.scss +12 -232
  101. package/src/components/bs5/textbox/textbox.data.json +13 -10
  102. package/src/components/bs5/textbox/textbox.hbs +17 -18
  103. package/src/components/bs5/typography/typography.stories.js +1 -1
  104. package/src/css/functions/_index.scss +2 -0
  105. package/src/css/functions/remify.scss +32 -0
  106. package/src/css/functions/snap-line-height.scss +7 -0
  107. package/src/css/main.scss +1 -1
  108. package/src/css/mixins/focusable.scss +4 -1
  109. package/src/css/mixins/make-icon.scss +1 -1
  110. package/src/css/{qld-theme.scss → qld-palettes.scss} +30 -23
  111. package/src/js/handlebars.helpers.js +9 -1
  112. package/src/js/utils.js +142 -0
  113. package/src/components/bs5/formcheck/_formcheck.stories.bak.js +0 -432
@@ -1,131 +1,75 @@
1
1
  // ComponentExample.stories.js
2
- import { Select } from "./Select.js";
2
+ import { Select, argTypes } from "./Select.js";
3
3
  import defaultdata from "./select.data.json";
4
4
 
5
5
  export default {
6
6
  tags: ["autodocs"],
7
7
  title: "3. Components/Forms/Select",
8
8
  render: (args) => {
9
-
10
- //Storybook produces a comma delimited string when using the check control type (table-striped, table-bordered) etc.
9
+ //Storybook produces a comma delimited string when using the check control type (table-striped, table-bordered) etc.
11
10
  //We can't use commas on our class="..." attribute, so we need to replace the commas with spaces.
12
11
 
13
- if( typeof(args.customClass) === 'string' ) {
14
- args.customClass = args.customClass.replaceAll(","," ");
15
- } else if ( typeof(args.customClass) === 'object' ) {
12
+ if (typeof args.customClass === "string") {
13
+ args.customClass = args.customClass.replaceAll(",", " ");
14
+ } else if (typeof args.customClass === "object") {
16
15
  args.customClass = args.customClass.join(" ");
17
16
  }
18
-
17
+
19
18
  return new Select(args).html;
20
-
21
19
  },
20
+ parameters: { backgrounds: { disable: false } },
21
+ globals: { backgrounds: { value: "default" } },
22
22
 
23
23
  //https://storybook.js.org/docs/api/arg-types
24
- argTypes: {
25
- /*customClass: {
26
- name: "Classes",
27
- description: 'Settable classes for the component',
28
- control: {
29
- type: "check",
30
- labels: {
31
- "form-style-filled": "Filled",
32
- },
33
- },
34
- options: [
35
- "form-style-filled",
36
- ],
37
- },
38
- states: {
39
- name: "States",
40
- description: `Valid/Invalid states`,
41
- control: {
42
- type: "radio",
43
- labels: {
44
- "default": "Default",
45
- "qld-input-success": "Success",
46
- "qld-input-error": "Error",
47
- },
48
- },
49
- options: [
50
- "default",
51
- "qld-input-success",
52
- "qld-input-error",
53
- ],
54
- },*/
55
- },
24
+ argTypes,
56
25
  };
57
26
 
58
27
  /**
59
- * Default textbox
28
+ * Default palette context
60
29
  */
61
30
  export const Default = {
62
31
  args: defaultdata,
63
32
  };
64
33
 
65
34
  /**
66
- * Dark themed textbox
35
+ * Dark pallete context
67
36
  */
68
37
  export const Dark = {
69
- args: {
70
- ...defaultdata,
71
- ...{isDisabled: false},
72
- },
73
- parameters: {
74
- backgrounds: {
75
- default: 'Dark',
76
- values: [
77
- { name: 'Dark', value: 'var(--qld-brand-primary)' },
78
- ],
79
- },
38
+ args: {
39
+ ...defaultdata,
40
+ isDisabled: false,
80
41
  },
81
- decorators: [
82
- (Story) => {
83
- return `
84
- <div class="dark">
85
- ${Story()}
86
- </div>
87
- `;
88
- },
89
- ],
42
+ globals: { backgrounds: { value: "dark" } },
43
+ render: (args) => `<div class="dark">${new Select(args).html}</div>`,
90
44
  };
91
45
 
92
46
  /**
93
- * Filled style select
47
+ * Add custom class `form-style-filled`
94
48
  */
95
49
  export const Filled = {
96
- args: {
97
- ...defaultdata,
98
- ...{customClass: "form-style-filled"},
50
+ args: {
51
+ ...defaultdata,
52
+ isFilled: "true",
99
53
  },
100
54
  };
101
55
 
102
-
103
- /**
104
- * Disabled select
105
- */
106
56
  export const Disabled = {
107
- args: {
108
- ...defaultdata,
109
- ...{isDisabled: true},
57
+ args: {
58
+ ...defaultdata,
59
+ isDisabled: true,
110
60
  },
111
61
  };
112
62
 
113
- /**
114
- * Valid select
115
- */
116
63
  export const Valid = {
117
64
  args: {
118
- ...defaultdata,
119
- ...{customClass: "qld-input-success"},
65
+ ...defaultdata,
66
+ isValid: true,
120
67
  },
121
68
  };
122
69
 
123
- /**
124
- * Invalid select
125
- */
126
70
  export const Invalid = {
127
71
  args: {
128
- ...defaultdata,
129
- ...{customClass: "qld-input-error"},
72
+ ...defaultdata,
73
+ isValid: false,
130
74
  },
131
75
  };
@@ -1,12 +1,14 @@
1
1
  {
2
- "isDisabled": false,
3
- "isRequired": true,
4
- "isFilled": false,
5
- "customClass": "",
6
- "label-text": "Label",
7
- "placeholder": "Please select",
8
- "optional-text": "optional",
9
- "hint-text": "Hint",
10
- "successMessageText": "Success message",
11
- "errorMessageText": "Error message"
2
+ "id": "example-1",
3
+ "isDisabled": false,
4
+ "isRequired": true,
5
+ "isFilled": false,
6
+ "isValid": null,
7
+ "customClass": "",
8
+ "label-text": "Label",
9
+ "placeholder": "Please select",
10
+ "optional-text": "optional",
11
+ "hint-text": "Hint",
12
+ "successMessageText": "Success message",
13
+ "errorMessageText": "Error message"
12
14
  }
@@ -1,33 +1,33 @@
1
1
  <!-- QGDS Component: Select -->
2
2
 
3
- <!-- Label for the first input field -->
4
- <label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}" for="example-1">
3
+ <label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}" for="{{id}}">
5
4
  {{label-text}}
6
5
  {{#if optional-text}}
7
- <span class="label-text-optional">({{optional-text}})</span></label>
6
+ <span class="label-text-optional">({{optional-text}})</span>
8
7
  {{/if}}
8
+ </label>
9
9
 
10
- <!-- Hint text for the first input field -->
11
10
  {{#if hint-text}}
12
- <span class="qld-hint-text" id="example-1-hint">{{hint-text}}</span>
11
+ <span class="qld-hint-text" id="{{id}}-hint">{{hint-text}}</span>
13
12
  {{/if}}
14
13
 
15
- {{#contains "qld-input-success" customClass}}
16
- <span id="text-field-success" class="qld-input-success">
17
- {{successMessageText}}
18
- </span>
19
- {{/contains}}
14
+ {{#contains "qld-input-success" customClass}}{{! legacy support for feedback classes `qld-input-success`}}
15
+ <span class="qld-input-success">{{successMessageText}}</span>
16
+ {{else}}{{! updated bootstrap style classes - `valid-feedback`}}
17
+ {{#if successMessageText}}
18
+ <div class="valid-feedback">{{successMessageText}}</div>
19
+ {{/if}}{{/contains}}
20
20
 
21
- {{#contains "qld-input-error" customClass}}
22
- <span id="text-field-error" class="qld-input-error">
23
- {{errorMessageText}}
24
- </span>
25
- {{/contains}}
21
+ {{#contains "qld-input-error" customClass}}{{! legacy support for feedback classes `qld-input-error`}}
22
+ <span class="qld-input-error">{{errorMessageText}}</span>
23
+ {{else}}{{! updated bootstrap style classes - `invalid-feedback`}}
24
+ {{#if errorMessageText}}
25
+ <div class="invalid-feedback">{{errorMessageText}}</div>
26
+ {{/if}}{{/contains}}
26
27
 
27
- <!-- First text input field, described by the hint text above -->
28
- <select class="qld-text-input form-select qld-select qld-field-width-1-quarter {{customClass}}"
29
- aria-label="Default select example" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required aria-required="true"{{/if}}>
30
- <option selected>{{placeholder}}</option>
28
+ <select id={{id}} class="form-select {{#if isFilled}}is-filled{{/if}} {{#if isValid}}is-valid{{else}}{{#ifCond isValid "===" false}}is-invalid{{/ifCond}}{{/if}} {{customClass}}"
29
+ {{#if hint-text}}aria-describedby="{{id}}-hint"{{/if}} {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required{{/if}} >
30
+ <option selected value="">{{placeholder}}</option>
31
31
  <option value="1">Option 1</option>
32
32
  <option value="2">Option 2</option>
33
33
  <option value="3">Option 3</option>
@@ -42,6 +42,7 @@ function statusVariantsMarkup() {
42
42
  //Generate Tag component markup from all possible tag types.
43
43
  const tagHtml = new Tag({
44
44
  variant: defaultdata.status.variant,
45
+ classes: "p-4 my-2",
45
46
  tagItems: tagItems,
46
47
  size: sizeClass,
47
48
  emphasis: emClass,
@@ -1,145 +1,151 @@
1
1
  {
2
- "default": {
3
- "variant": "tag-default",
4
- "tagItems": [
5
- {
6
- "id": "One",
7
- "content": "Tag text"
8
- },
9
- {
10
- "id": "Two",
11
- "content": "Tag text"
12
- },
13
- {
14
- "id": "Three",
15
- "content": "Tag text"
16
- },
17
- {
18
- "id": "Four",
19
- "content": "Tag text"
20
- }
21
- ]
22
- },
23
- "large": {
24
- "variant": "",
25
- "tagItems": [
26
- {
27
- "id": "One",
28
- "content": "Tag text",
29
- "classes": "tag-large"
30
- },
31
- {
32
- "id": "Two",
33
- "content": "Tag text",
34
- "classes": "tag-large"
35
- },
36
- {
37
- "id": "Three",
38
- "content": "Tag text",
39
- "classes": "tag-large"
40
- }
41
- ]
42
- },
43
- "action": {
44
- "variant": "",
45
- "tagItems": [
46
- {
47
- "id": "One",
48
- "content": "<a href='javascript:void(0)'>Tag text</a>",
49
- "classes": "tag-link"
50
- },
51
- {
52
- "id": "Two",
53
- "content": "<a href='javascript:void(0)'>Tag text</a>",
54
- "classes": "tag-link"
55
- },
56
- {
57
- "id": "Three",
58
- "content": "<a href='javascript:void(0)'>Tag text</a>",
59
- "classes": "tag-link"
60
- }
61
- ]
62
- },
63
- "dark": {
64
- "classes": "",
65
- "variant": "tag-dark",
66
- "tagItems": [
67
- {
68
- "id": "One",
69
- "content": "Tag text"
70
- },
71
- {
72
- "id": "Two",
73
- "content": "Tag text"
74
- },
75
- {
76
- "id": "Three",
77
- "content": "Tag text"
78
- }
79
- ]
80
- },
81
- "info": {
82
- "variant": "",
83
- "tagItems": [
84
- {
85
- "id": "One",
86
- "content": "Tag text",
87
- "classes": "tag-info"
88
- },
89
- {
90
- "id": "Two",
91
- "content": "Tag text",
92
- "classes": "tag-info"
93
- },
94
- {
95
- "id": "Three",
96
- "content": "Tag text",
97
- "classes": "tag-info"
98
- }
99
- ]
100
- },
101
- "filter": {
102
- "variant": "",
103
- "tagItems": [
104
- {
105
- "id": "One",
106
- "content": "Policies and procedures",
107
- "classes": "tag-large",
108
- "applied-filter": true
109
- },
110
- {
111
- "id": "Two",
112
- "content": "Publications",
113
- "classes": "tag-large",
114
- "applied-filter": true
115
- }
116
- ]
117
- },
118
- "status": {
119
- "variant": "tag-status",
120
- "tagItems": [
121
- {
122
- "content": "Neutral",
123
- "classes": "tag-neutral"
124
- },
125
- {
126
- "content": "Success",
127
- "classes": "tag-success"
128
- },
129
- {
130
- "content": "Warning",
131
- "classes": "tag-warning"
132
- },
133
- {
134
- "content": "Error",
135
- "classes": "tag-error"
136
- },
137
- {
138
- "content": "Information",
139
- "classes": "tag-information"
140
- }
141
- ],
142
- "size": "tag-small",
143
- "emphasis": "tag-low"
144
- }
2
+ "default": {
3
+ "variant": "tag-default",
4
+ "classes": "p-4 my-2",
5
+ "tagItems": [
6
+ {
7
+ "id": "One",
8
+ "content": "Tag text"
9
+ },
10
+ {
11
+ "id": "Two",
12
+ "content": "Tag text"
13
+ },
14
+ {
15
+ "id": "Three",
16
+ "content": "Tag text"
17
+ },
18
+ {
19
+ "id": "Four",
20
+ "content": "Tag text"
21
+ }
22
+ ]
23
+ },
24
+ "large": {
25
+ "variant": "",
26
+ "classes": "p-4 my-2",
27
+ "tagItems": [
28
+ {
29
+ "id": "One",
30
+ "content": "Tag text",
31
+ "classes": "tag-large"
32
+ },
33
+ {
34
+ "id": "Two",
35
+ "content": "Tag text",
36
+ "classes": "tag-large"
37
+ },
38
+ {
39
+ "id": "Three",
40
+ "content": "Tag text",
41
+ "classes": "tag-large"
42
+ }
43
+ ]
44
+ },
45
+ "action": {
46
+ "variant": "",
47
+ "classes": "p-4 my-2",
48
+ "tagItems": [
49
+ {
50
+ "id": "One",
51
+ "content": "<a href='javascript:void(0)'>Tag text</a>",
52
+ "classes": "tag-link"
53
+ },
54
+ {
55
+ "id": "Two",
56
+ "content": "<a href='javascript:void(0)'>Tag text</a>",
57
+ "classes": "tag-link"
58
+ },
59
+ {
60
+ "id": "Three",
61
+ "content": "<a href='javascript:void(0)'>Tag text</a>",
62
+ "classes": "tag-link"
63
+ }
64
+ ]
65
+ },
66
+ "dark": {
67
+ "classes": "p-4 my-2",
68
+ "variant": "tag-dark",
69
+ "tagItems": [
70
+ {
71
+ "id": "One",
72
+ "content": "Tag text"
73
+ },
74
+ {
75
+ "id": "Two",
76
+ "content": "Tag text"
77
+ },
78
+ {
79
+ "id": "Three",
80
+ "content": "Tag text"
81
+ }
82
+ ]
83
+ },
84
+ "info": {
85
+ "variant": "",
86
+ "classes": "p-4 my-2",
87
+ "tagItems": [
88
+ {
89
+ "id": "One",
90
+ "content": "Tag text",
91
+ "classes": "tag-info"
92
+ },
93
+ {
94
+ "id": "Two",
95
+ "content": "Tag text",
96
+ "classes": "tag-info"
97
+ },
98
+ {
99
+ "id": "Three",
100
+ "content": "Tag text",
101
+ "classes": "tag-info"
102
+ }
103
+ ]
104
+ },
105
+ "filter": {
106
+ "variant": "",
107
+ "classes": "p-4 my-2",
108
+ "tagItems": [
109
+ {
110
+ "id": "One",
111
+ "content": "Policies and procedures",
112
+ "classes": "tag-large",
113
+ "applied-filter": true
114
+ },
115
+ {
116
+ "id": "Two",
117
+ "content": "Publications",
118
+ "classes": "tag-large",
119
+ "applied-filter": true
120
+ }
121
+ ]
122
+ },
123
+ "status": {
124
+ "variant": "tag-status",
125
+ "classes": "p-4 my-2",
126
+ "tagItems": [
127
+ {
128
+ "content": "Neutral",
129
+ "classes": "tag-neutral"
130
+ },
131
+ {
132
+ "content": "Success",
133
+ "classes": "tag-success"
134
+ },
135
+ {
136
+ "content": "Warning",
137
+ "classes": "tag-warning"
138
+ },
139
+ {
140
+ "content": "Error",
141
+ "classes": "tag-error"
142
+ },
143
+ {
144
+ "content": "Information",
145
+ "classes": "tag-information"
146
+ }
147
+ ],
148
+ "size": "tag-small",
149
+ "emphasis": "tag-low"
150
+ }
145
151
  }
@@ -1,6 +1,6 @@
1
1
  <!-- QGDS Component: Tag -->
2
2
 
3
- <ul class="tag-list {{variant}}">
3
+ <ul class="tag-list {{variant}} {{classes}}">
4
4
  {{#each tagItems}}
5
5
  <li class="tag-item {{classes}} {{../size}} {{../emphasis}}">
6
6
  {{{content}}}
@@ -91,9 +91,8 @@ $_icon-status-cancel: url('data:image/svg+xml,<svg width="32" height="32" viewBo
91
91
  // General styling rules.
92
92
  .tag-list {
93
93
  list-style-type: none;
94
- margin: 0.5rem 0;
95
- padding: 30px;
96
94
  display: flex;
95
+ flex-wrap: wrap;
97
96
  align-items: center;
98
97
  gap: 1rem;
99
98
 
@@ -114,9 +113,7 @@ $_icon-status-cancel: url('data:image/svg+xml,<svg width="32" height="32" viewBo
114
113
  border: var(--_border-width) solid var(--#{$prefix}neutral-lighter);
115
114
  border-radius: 1rem;
116
115
  font-size: 0.875rem;
117
- line-height: 1.5;
118
-
119
- height: var(--_height);
116
+ line-height: 1.4;
120
117
 
121
118
  &.tag-large {
122
119
  --_padding-y: 0.5rem;
@@ -45,6 +45,7 @@ export const ParentContextComparison = {
45
45
  render: () => {
46
46
  const testTags = {
47
47
  variant: "",
48
+ classes: "p-4 my-2",
48
49
  tagItems: [
49
50
  {
50
51
  content: "default",
@@ -1,13 +1,21 @@
1
- import Component from '../../../js/QGDSComponent.js'
1
+ import Component from "../../../js/QGDSComponent.js";
2
2
  import template from "./textarea.hbs?raw";
3
3
 
4
4
  export class Textarea {
5
-
6
5
  // Use the global Component class to create a new instance of the Textarea component.
7
- // A data object, containing the Handlebars placeholder replacement strings, should be provided as an argument.
6
+ // A data object, containing the Handlebars placeholder replacement strings, should be provided as an argument.
8
7
 
9
- constructor( data = {} ) {
8
+ constructor(data = {}) {
10
9
  return new Component(template, data);
11
10
  }
12
-
13
11
  }
12
+
13
+ export const argTypes = {
14
+ isValid: {
15
+ description:
16
+ "For server-side validation, set to true or false. Omit or set to null to to indicate the input is yet to be validated.",
17
+ control: "radio",
18
+ options: [true, false, null],
19
+ type: "boolean | null",
20
+ },
21
+ };