@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
@@ -64,6 +64,10 @@ function handlebarsHelpers(handlebars) {
64
64
  const options = args.pop();
65
65
  return args.some((arg) => !!arg) ? options.fn(this) : options.inverse(this);
66
66
  });
67
+ handlebars.registerHelper("ifAll", function(...args) {
68
+ const options = args.pop();
69
+ return args.every((arg) => !!arg) ? options.fn(this) : options.inverse(this);
70
+ });
67
71
  handlebars.registerHelper("now", function() {
68
72
  return (/* @__PURE__ */ new Date()).toISOString();
69
73
  });
@@ -244,7 +248,7 @@ var init_backToTop = __esm({
244
248
  var banner_default;
245
249
  var init_banner = __esm({
246
250
  "src/components/bs5/banner/banner.hbs?raw"() {
247
- banner_default = '<!-- QGDS Banner Component -->\n <div class="qld-banner qld-banner-grid {{ bannerType }} {{ variantClass }} {{ backgroundType }}" role="banner">\n <div class="container-fluid">\n <div class="banner-inner">\n\n <div class="banner-breadcrumbs">\n {{> breadcrumbs breadcrumbs }}\n </div>\n\n <div class="banner-content">\n\n {{#if title}}\n\n {{!-- titleClasses accepts a "title-block" class --}}\n <h1 class="banner-title-wrap {{ join titleClasses }}">\n <span class="banner-title">{{~title~}}</span>\n {{#if subtitle }}\n <span class="banner-subtitle">{{~subtitle~}}</span>\n {{/if}}\n </h1>\n {{/if}}\n\n\n {{#if abstract}}\n <div class="banner-abstract">\n {{abstract}}\n </div>\n {{/if}}\n\n {{!-- CTA Buttons block. Pass an array of button data objects --}}\n {{#if buttons}}\n <div class="banner-cta" role="group" aria-label="Available options">\n <div class="cta-buttons">\n {{#each buttons}}\n {{> button this }}\n {{/each}}\n </div>\n </div>\n {{/if}}\n\n {{!-- CTA Cards block. Pass an array of card data objects --}}\n {{#if cards}}\n <div class="banner-cta" role="group" aria-label="Available options">\n <div class="cta-cards">\n {{#each cards }}\n {{> card this }}\n {{/each }}\n </div>\n </div>\n {{/if}}\n\n </div>\n {{!-- End banner content --}}\n\n {{#if image }}\n <div class="banner-image {{ join image.classes }}">\n <div class="banner-image-inner" style="background-image:url({{image.url}})" role="img"\n aria-label="{{ image.alt }}"></div>\n </div>\n {{/if}}\n\n </div>\n\n </div>\n </div>';
251
+ banner_default = '<!-- QGDS Banner Component -->\n <div class="qld-banner qld-banner-grid {{ bannerType }} {{ variantClass }} {{ backgroundType }}" >\n <div class="container-fluid">\n <div class="banner-inner">\n\n <div class="banner-breadcrumbs">\n {{> breadcrumbs breadcrumbs }}\n </div>\n\n <div class="banner-content">\n\n {{#if title}}\n {{!-- titleClasses accepts a "title-block" class --}}\n <h1 class="banner-title-wrap {{ join titleClasses }}">\n <span class="banner-title">{{~title~}}</span>\n {{#if subtitle }}\n <span class="banner-subtitle">{{~subtitle~}}</span>\n {{/if}}\n </h1>\n {{/if}}\n\n\n {{#if abstract}}\n <div class="banner-abstract">\n {{abstract}}\n </div>\n {{/if}}\n\n {{!-- CTA Buttons block. Pass an array of button data objects --}}\n {{#if buttons}}\n <div class="banner-cta" role="group" aria-label="Available options">\n <div class="cta-buttons">\n {{#each buttons}}\n {{> button this }}\n {{/each}}\n </div>\n </div>\n {{/if}}\n\n {{!-- CTA Cards block. Pass an array of card data objects --}}\n {{#if cards}}\n <div class="banner-cta" role="group" aria-label="Available options">\n <div class="cta-cards">\n {{#each cards }}\n {{> card this }}\n {{/each }}\n </div>\n </div>\n {{/if}}\n\n </div>\n {{!-- End banner content --}}\n\n {{#ifAll image image.url (cond backgroundType "==" "with-hero-image")}}\n <div class="banner-image {{ join image.classes }}">\n <div class="banner-image-inner" style="background-image:url({{image.url}})" role="img"\n aria-label="{{ image.alt }}"></div>\n </div>\n {{/ifAll}}\n </div>\n </div>\n </div>';
248
252
  }
249
253
  });
250
254
 
@@ -396,13 +400,13 @@ var init_card = __esm({
396
400
  {{#if date}}
397
401
  <div class="card-date">{{date}}</div>
398
402
  {{/if}}
399
- <h3 class="card-title">
403
+ <{{isdefined headingTag 'h3'}} class="card-title">
400
404
  {{#if link}}
401
405
  <a href="{{link}}" {{#ifCond action '===' 'single'}}class="stretched-link"{{/ifCond}}>{{title}}</a>
402
406
  {{else}}
403
407
  {{ title }}
404
408
  {{/if }}
405
- </h3>
409
+ </{{isdefined headingTag 'h3'}}>
406
410
  {{#if description}}
407
411
  <div class="card-text">
408
412
  {{{description}}}
@@ -619,7 +623,7 @@ var init_customLinks = __esm({
619
623
  var dateinput_default;
620
624
  var init_dateinput = __esm({
621
625
  "src/components/bs5/dateinput/dateinput.hbs?raw"() {
622
- dateinput_default = '<!-- QGDS Component: Date input -->\n\n<!-- Label -->\n<label id="dategroup-label"\n class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}"\n for="example-1">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span>\n {{/if}}\n</label>\n\n<!-- Hint text -->\n{{#if hint-text}}\n<span class="qld-hint-text" id="example-1-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}\n<span id="text-field-success" class="qld-input-success">\n {{successMessageText}}\n</span>\n{{/contains}}\n\n{{#contains "qld-input-error" customClass}}\n<span id="text-field-error" class="qld-input-error">\n {{errorMessageText}}\n</span>\n{{/contains}}\n\n<div aria-labelledby="dategroup-label" role="group" class="row date-container {{customClass}}">\n <!-- day group -->\n <div class="day-group">\n <label for="dayinput" class="date-label qld-text-input-label">Day</label>\n <div>\n <input aria-required="true" aria-labelledby="dategroup-label" placeholder="{{day-placeholder}}" type="text"\n inputmode="numeric" maxlength="2"\n class="qld-text-input form-control dayinput {{customClass}} {{#if isFilled}}form-style-filled{{/if}}" id="dayinput" ref="day"\n aria-invalid="false" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required aria-required="true"\n {{/if}}>\n </div>\n </div>\n <!-- month group -->\n <div class="date-group">\n <label for="monthinput" class="date-label qld-text-input-label">Month</label>\n <div>\n <input aria-required="true" aria-labelledby="dategroup-label" placeholder="{{month-placeholder}}"\n type="text" inputmode="numeric" maxlength="2"\n class="qld-text-input form-control monthinput {{customClass}} {{#if isFilled}}form-style-filled{{/if}}" id="monthinput" ref="month"\n aria-invalid="false" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required aria-required="true"\n {{/if}}>\n </div>\n </div>\n <!-- year group -->\n <div class="date-group">\n <label for="yearinput" class="date-label">Year</label>\n <div class="year-label">\n <input aria-required="true" aria-labelledby="dategroup-label qld-text-input-label"\n placeholder="{{year-placeholder}}" type="text" inputmode="numeric" maxlength="4"\n class="qld-text-input form-control yearinput {{customClass}} {{#if isFilled}}form-style-filled{{/if}}"\n id="yearinput" ref="year" aria-invalid="false" {{#if isDisabled}}disabled{{/if}} {{#if\n isRequired}}required aria-required="true" {{/if}}>\n </div>\n </div>\n</div>\n';
626
+ dateinput_default = '<!-- QGDS Component: Date input -->\n\n<label id="{{id}}-label"\n class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}"\n for="{{id}}">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span>\n {{/if}}\n</label>\n\n{{#if hint-text}}\n<span class="qld-hint-text" id="{{id}}-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}{{! legacy support for feedback classes `qld-input-success`}}\n<span class="qld-input-success">{{successMessageText}}</span>\n{{else}}\n{{#if successMessageText}}{{! updated bootstrap style classes - `valid-feedback`}}\n<div class="valid-feedback">{{successMessageText}}</div>\n{{/if}}{{/contains}}\n\n{{#contains "qld-input-error" customClass}}{{! legacy support for feedback classes `qld-input-error`}}\n<span class="qld-input-error">{{errorMessageText}}</span>\n{{else}}\n{{#if errorMessageText}}{{! updated bootstrap style classes - `invalid-feedback`}}\n<div class="invalid-feedback">{{errorMessageText}}</div>\n{{/if}}{{/contains}}\n\n<div aria-labelledby="{{id}}-label" role="group" class="row date-container {{customClass}}">\n <!-- day group -->\n <div class="day-group">\n <label id="{{id}}-dayinput-label" for="{{id}}-dayinput" class="date-label qld-text-input-label">Day</label>\n <div>\n <input id="{{id}}-dayinput" aria-required="true" aria-labelledby="{{id}}-label {{id}}-dayinput-label" placeholder="{{day-placeholder}}" type="text"\n inputmode="numeric" maxlength="2"\n class="qld-text-input form-control dayinput {{customClass}} {{#if isFilled}}form-style-filled{{/if}} {{#if isValid}}is-valid{{else}}{{#ifCond isValid "===" false}}is-invalid{{/ifCond}}{{/if}}" ref="day"\n aria-invalid="false" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required aria-required="true"\n {{/if}}>\n </div>\n </div>\n <!-- month group -->\n <div class="date-group">\n <label id="{{id}}-monthinput-label" for="{{id}}-monthinput" class="date-label qld-text-input-label">Month</label>\n <div>\n <input id="{{id}}-monthinput" aria-required="true" aria-labelledby="{{id}}-label {{id}}-monthinput-label" placeholder="{{month-placeholder}}"\n type="text" inputmode="numeric" maxlength="2"\n class="qld-text-input form-control monthinput {{customClass}} {{#if isFilled}}form-style-filled{{/if}} {{#if isValid}}is-valid{{else}}{{#ifCond isValid "===" false}}is-invalid{{/ifCond}}{{/if}}" ref="month"\n aria-invalid="false" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required aria-required="true"\n {{/if}}>\n </div>\n </div>\n <!-- year group -->\n <div class="date-group">\n <label id="{{id}}-yearinput-label" for="{{id}}-yearinput" class="date-label">Year</label>\n <div class="year-label">\n <input id="{{id}}-yearinput" aria-required="true" aria-labelledby="{{id}}-label {{id}}-yearinput-label"\n placeholder="{{year-placeholder}}" type="text" inputmode="numeric" maxlength="4"\n class="qld-text-input form-control yearinput {{customClass}} {{#if isFilled}}form-style-filled{{/if}} {{#if isValid}}is-valid{{else}}{{#ifCond isValid "===" false}}is-invalid{{/ifCond}}{{/if}}"\n ref="year" aria-invalid="false" {{#if isDisabled}}disabled{{/if}} {{#if\n isRequired}}required{{/if}}>\n </div>\n </div>\n</div>\n';
623
627
  }
624
628
  });
625
629
 
@@ -902,7 +906,7 @@ var init_footer = __esm({
902
906
  var formcheck_default;
903
907
  var init_formcheck = __esm({
904
908
  "src/components/bs5/formcheck/formcheck.hbs?raw"() {
905
- formcheck_default = ' \n {{#if questionLabel}}\n <div class="qld-text-input-label {{listClasses}}">\n {{questionLabel}}\n {{#if optionalLabel}}\n <span class="label-text-optional">{{optionalLabel}}</span>\n {{/if}}\n </div>\n {{/if}}\n\n {{#if hintLabel}}\n <span class="qld-hint-text">{{hintLabel}}</span>\n {{/if}}\n \n {{#each listitems}}\n <div class="form-check">\n <input class="form-check-input" type="{{type}}" name="{{name}}" id="{{id}}" value="{{value}}" {{#if isDisabled}}disabled{{/if}} {{#if isChecked}}checked{{/if}}>\n <label class="form-check-label" for="{{id}}">\n {{label}}\n </label>\n </div>\n {{/each}}\n ';
909
+ formcheck_default = ' \n {{#if questionLabel}}\n <div class="qld-text-input-label {{listClasses}}">\n {{questionLabel}}\n {{#if optionalLabel}}\n <span class="label-text-optional">{{optionalLabel}}</span>\n {{/if}}\n </div>\n {{/if}}\n\n {{#if hintLabel}}\n <span class="qld-hint-text">{{hintLabel}}</span>\n {{/if}}\n\n {{#if successMessageText}}\n <div class="valid-feedback">{{successMessageText}}</div>\n {{/if}}\n\n {{#if errorMessageText}}\n <div class="invalid-feedback">{{errorMessageText}}</div>\n {{/if}}\n \n {{#each listitems}}\n <div class="form-check {{#if ../isValid}}is-valid{{else}}{{#ifCond ../isValid "===" false}}is-invalid{{/ifCond}}{{/if}}">\n <input class="form-check-input" type="{{#if ../type}}{{../type}}{{else}}{{#if type}}{{type}}{{else}}checkbox{{/if}}{{/if}}" name="{{name}}" id="{{id}}" value="{{value}}" {{#if isDisabled}}disabled{{/if}} {{#if isChecked}}checked{{/if}} {{#if isRequired}}required{{/if}} >\n <label class="form-check-label" for="{{id}}">\n {{label}}\n </label>\n </div>\n {{/each}}\n ';
906
910
  }
907
911
  });
908
912
 
@@ -962,7 +966,7 @@ var head_default;
962
966
  var init_head = __esm({
963
967
  "src/components/bs5/head/head.hbs?raw"() {
964
968
  head_default = `
965
- <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.10","branch":"HEAD","tag":"v2.0.10","commit":"0c2b6d8a1c3232b2314e3f6283476abe5b254c53","majorVersion":"v2"} -->
969
+ <!-- VERSION_DETAILS={"project_id":"@qld-gov-au/qgds-bootstrap5","version":"2.0.12","branch":"HEAD","tag":"v2.0.12","commit":"8a144c9ab3a88493219cbc779eb61a0ca8b8d059","majorVersion":"v2"} -->
966
970
 
967
971
  {{! Select environment, used verbatium if not using predefind key
968
972
  cdn := PROD|STAGING|BETA|TEST|DEV|???
@@ -1365,7 +1369,51 @@ var init_quickexit = __esm({
1365
1369
  var searchInput_default;
1366
1370
  var init_searchInput = __esm({
1367
1371
  "src/components/bs5/searchInput/searchInput.hbs?raw"() {
1368
- searchInput_default = '<!-- \n QGDS Component: Search input \n-->\n<div class="qld-search-input {{customClass}}">\n <input id="{{ inputID }}" name="{{ inputName }}" class="form-control" type="text" autocomplete="off"\n aria-label="{{ ariaLabel }}" {{#each tags}} data-{{@key}}="{{this}}" {{/each}} />\n <button class="btn btn-primary" type="{{ buttonType }}" id="{{ buttonID }}">\n <span class="btn-icon"></span>\n <span class="btn-label">{{ buttonLabel }}</span>\n </button>\n {{#if suggestions}}\n <div class="suggestions suggestions__group d-none">\n <div class="default-suggestions">\n <div class="suggestions-category mt-16">\n <strong class="suggestions-category-label d-block">Popular services</strong>\n <ul class="mt-2">\n {{#each default_suggestions.popular_services}}\n <li><a href="{{link}}">{{title}}</a></li>\n {{/each}}\n </ul>\n </div>\n\n <div class="suggestions-category mt-16">\n <strong class="suggestions-category-label d-block">Browse by category</strong>\n <ul class="mt-12 mb-0">\n {{#each default_suggestions.categories}}\n <li><a href="{{link}}">{{title}}</a></li>\n {{/each}}\n </ul>\n </div>\n\n {{#if default_suggestions.options.view_more}}\n <div class="suggestions-category">\n <a class="px-16 pt-12 pb-16 d-block suggestions-category-view-more"\n href="{{default_suggestions.options.href}}">{{default_suggestions.options.label}}</a>\n </div>\n {{/if}}\n </div>\n <div class="dynamic-suggestions"></div>\n </div>\n {{/if}}\n \n</div>';
1372
+ searchInput_default = `<!--
1373
+ QGDS Component: Search input
1374
+ -->
1375
+ <div class="qld-search-input {{customClass}}">
1376
+ <input id="{{ inputID }}" name="{{ inputName }}" class="form-control" type="text" autocomplete="off"
1377
+ aria-label="{{ ariaLabel }}" {{#each tags}} data-{{@key}}="{{this}}" {{/each}} />
1378
+ <button class="btn btn-primary" type="{{ buttonType }}" id="{{ buttonID }}">
1379
+ <span class="btn-icon"></span>
1380
+ <span class="btn-label">{{ buttonLabel }}</span>
1381
+ </button>
1382
+ {{#ifCond hasDynamicSuggestions '||' hasDefaultSuggestions}}
1383
+ <div class="suggestions suggestions__group d-none default">
1384
+ {{#if hasDefaultSuggestions}}
1385
+ <div class="default-suggestions">
1386
+ <div class="suggestions-category">
1387
+ <strong class="suggestions-category-label d-block">{{defaultSuggestions.popularServicesTitle}}</strong>
1388
+ <ul>
1389
+ {{#each defaultSuggestions.popularServices}}
1390
+ <li><a href="{{link}}">{{title}}</a></li>
1391
+ {{/each}}
1392
+ {{#if defaultSuggestions.popularServicesLink}}
1393
+ <li><a href="{{defaultSuggestions.popularServicesLink.href}}" class="view-more">{{#if defaultSuggestions.popularServicesLink.label}}{{defaultSuggestions.popularServicesLink.label}}{{else}}View More{{/if}}</a></li>
1394
+ {{/if}}
1395
+ </ul>
1396
+ </div>
1397
+
1398
+ <div class="suggestions-category">
1399
+ <strong class="suggestions-category-label d-block">{{defaultSuggestions.categoriesTitle}}</strong>
1400
+ <ul>
1401
+ {{#each defaultSuggestions.categories}}
1402
+ <li><a href="{{link}}">{{title}}</a></li>
1403
+ {{/each}}
1404
+ {{#if defaultSuggestions.categoriesLink}}
1405
+ <li><a href="{{defaultSuggestions.categoriesLink.href}}" class="view-more">{{#if defaultSuggestions.categoriesLink.label}}{{defaultSuggestions.categoriesLink.label}}{{else}}View More{{/if}}</a></li>
1406
+ {{/if}}
1407
+ </ul>
1408
+ </div>
1409
+ </div>
1410
+ {{/if}}
1411
+ {{#if hasDynamicSuggestions}}
1412
+ <div class="dynamic-suggestions" {{#if dynamicSuggestionsServiceLink.href}}data-view-more="{{dynamicSuggestionsServiceLink.href}}"{{/if}}></div>
1413
+ {{/if}}
1414
+ </div>
1415
+ {{/ifCond}}
1416
+ </div>`;
1369
1417
  }
1370
1418
  });
1371
1419
 
@@ -1373,7 +1421,7 @@ var init_searchInput = __esm({
1373
1421
  var select_default;
1374
1422
  var init_select = __esm({
1375
1423
  "src/components/bs5/select/select.hbs?raw"() {
1376
- select_default = '<!-- QGDS Component: Select -->\n\n<!-- Label for the first input field -->\n<label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}" for="example-1">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span></label>\n {{/if}}\n\n<!-- Hint text for the first input field -->\n{{#if hint-text}}\n<span class="qld-hint-text" id="example-1-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}\n<span id="text-field-success" class="qld-input-success">\n {{successMessageText}}\n</span>\n{{/contains}}\n\n{{#contains "qld-input-error" customClass}}\n<span id="text-field-error" class="qld-input-error">\n {{errorMessageText}}\n</span>\n{{/contains}}\n\n<!-- First text input field, described by the hint text above -->\n<select class="qld-text-input form-select qld-select qld-field-width-1-quarter {{customClass}}"\n aria-label="Default select example" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required aria-required="true"{{/if}}>\n <option selected>{{placeholder}}</option>\n <option value="1">Option 1</option>\n <option value="2">Option 2</option>\n <option value="3">Option 3</option>\n</select>\n';
1424
+ select_default = '<!-- QGDS Component: Select -->\n\n<label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}" for="{{id}}">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span>\n {{/if}}\n</label>\n\n{{#if hint-text}}\n<span class="qld-hint-text" id="{{id}}-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}{{! legacy support for feedback classes `qld-input-success`}}\n<span class="qld-input-success">{{successMessageText}}</span>\n{{else}}{{! updated bootstrap style classes - `valid-feedback`}}\n{{#if successMessageText}}\n<div class="valid-feedback">{{successMessageText}}</div>\n{{/if}}{{/contains}}\n\n{{#contains "qld-input-error" customClass}}{{! legacy support for feedback classes `qld-input-error`}}\n<span class="qld-input-error">{{errorMessageText}}</span>\n{{else}}{{! updated bootstrap style classes - `invalid-feedback`}}\n{{#if errorMessageText}}\n<div class="invalid-feedback">{{errorMessageText}}</div>\n{{/if}}{{/contains}}\n\n<select id={{id}} class="form-select {{#if isFilled}}is-filled{{/if}} {{#if isValid}}is-valid{{else}}{{#ifCond isValid "===" false}}is-invalid{{/ifCond}}{{/if}} {{customClass}}" \n {{#if hint-text}}aria-describedby="{{id}}-hint"{{/if}} {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required{{/if}} >\n <option selected value="">{{placeholder}}</option>\n <option value="1">Option 1</option>\n <option value="2">Option 2</option>\n <option value="3">Option 3</option>\n</select>\n';
1377
1425
  }
1378
1426
  });
1379
1427
 
@@ -1474,7 +1522,7 @@ var init_tabs = __esm({
1474
1522
  var tag_default;
1475
1523
  var init_tag = __esm({
1476
1524
  "src/components/bs5/tag/tag.hbs?raw"() {
1477
- tag_default = '<!-- QGDS Component: Tag -->\n\n<ul class="tag-list {{variant}}">\n {{#each tagItems}}\n <li class="tag-item {{classes}} {{../size}} {{../emphasis}}">\n {{{content}}}\n {{#if applied-filter}}\n <button class="tag-clear-filter-button" aria-label="Remove"></button>\n {{/if}}\n </li>\n {{/each }}\n</ul>\n';
1525
+ tag_default = '<!-- QGDS Component: Tag -->\n\n<ul class="tag-list {{variant}} {{classes}}">\n {{#each tagItems}}\n <li class="tag-item {{classes}} {{../size}} {{../emphasis}}">\n {{{content}}}\n {{#if applied-filter}}\n <button class="tag-clear-filter-button" aria-label="Remove"></button>\n {{/if}}\n </li>\n {{/each }}\n</ul>\n';
1478
1526
  }
1479
1527
  });
1480
1528
 
@@ -1482,7 +1530,7 @@ var init_tag = __esm({
1482
1530
  var textarea_default;
1483
1531
  var init_textarea = __esm({
1484
1532
  "src/components/bs5/textarea/textarea.hbs?raw"() {
1485
- textarea_default = '<!-- QGDS Component: Textarea -->\n\n<!-- Label for the first input field -->\n<label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}"\n for="example-1">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span>\n {{/if}}\n</label>\n\n<!-- Hint text for the first input field -->\n{{#if hint-text}}\n<span class="qld-hint-text" id="example-1-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}\n<span id="text-field-success" class="qld-input-success">\n {{successMessageText}}\n</span>\n{{/contains}}\n\n{{#contains "qld-input-error" customClass}}\n<span id="text-field-error" class="qld-input-error">\n {{errorMessageText}}\n</span>\n{{/contains}}\n\n<!-- First text input field, described by the hint text above -->\n<textarea id="example-1" class="qld-text-input form-control {{customClass}} {{#if isFilled}}form-style-filled{{/if}}"\n placeholder="{{placeholder}}" rows="{{rows}}" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required\n aria-required="true" {{/if}}></textarea>';
1533
+ textarea_default = '<!-- QGDS Component: Textarea -->\n\n<label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}"\n for="{{id}}">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span>\n {{/if}}\n</label>\n\n{{#if hint-text}}\n<span class="qld-hint-text" id="{{id}}-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}{{! legacy support for feedback classes `qld-input-success`}}\n<span class="qld-input-success">{{successMessageText}}</span>\n{{else}}\n{{#if successMessageText}}{{! updated bootstrap style classes - `valid-feedback`}}\n<div class="valid-feedback">{{successMessageText}}</div>\n{{/if}}{{/contains}}\n\n{{#contains "qld-input-error" customClass}}{{! legacy support for feedback classes `qld-input-error`}}\n<span class="qld-input-error">{{errorMessageText}}</span>\n{{else}}\n{{#if errorMessageText}}{{! updated bootstrap style classes - `invalid-feedback`}}\n<div class="invalid-feedback">{{errorMessageText}}</div>\n{{/if}}{{/contains}}\n\n<!-- First text input field, described by the hint text above -->\n<textarea id="{{id}}" class="form-control {{customClass}} {{#if isFilled}}is-filled{{/if}} {{#if isValid}}is-valid{{else}}{{#ifCond isValid "===" false}}is-invalid{{/ifCond}}{{/if}}"\n placeholder="{{placeholder}}" rows="{{rows}}" {{#if isDisabled}}disabled{{/if}} {{#if isRequired}}required{{/if}}\n {{#if hint-text}}aria-describedby="{{id}}-hint"{{/if}}>{{value}}</textarea>';
1486
1534
  }
1487
1535
  });
1488
1536
 
@@ -1490,7 +1538,7 @@ var init_textarea = __esm({
1490
1538
  var textbox_default;
1491
1539
  var init_textbox = __esm({
1492
1540
  "src/components/bs5/textbox/textbox.hbs?raw"() {
1493
- textbox_default = '<!-- QGDS Component: Textbox -->\n\n<!-- Label for the first input field -->\n<label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}"\n for="example-1">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span>\n {{/if}}\n</label>\n\n<!-- Hint text for the first input field -->\n{{#if hint-text}}\n<span class="qld-hint-text" id="example-1-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}\n<span id="text-field-success" class="qld-input-success">\n {{successMessageText}}\n</span>\n{{/contains}}\n\n{{#contains "qld-input-error" customClass}}\n<span id="text-field-error" class="qld-input-error">\n {{errorMessageText}}\n</span>\n{{/contains}}\n\n<!-- First text input field, described by the hint text above -->\n<input id="example-1" class="qld-text-input form-control {{customClass}} {{#if isFilled}}form-style-filled{{/if}}"\n type="text" placeholder="{{placeholder}}" aria-label="Text input example" {{#if isDisabled}}disabled{{/if}} {{#if\n isRequired}}required aria-required="true" {{/if}} />';
1541
+ textbox_default = '<!-- QGDS Component: Textbox -->\n\n<label class="qld-text-input-label {{#if isRequired}}field-required{{/if}} {{#if isDisabled}}field-disabled{{/if}}"\n for="{{id}}">\n {{label-text}}\n {{#if optional-text}}\n <span class="label-text-optional">({{optional-text}})</span>\n {{/if}}\n</label>\n\n{{#if hint-text}}\n<span class="qld-hint-text" id="{{id}}-hint">{{hint-text}}</span>\n{{/if}}\n\n{{#contains "qld-input-success" customClass}}{{! legacy support for feedback classes `qld-input-success`}}\n<span class="qld-input-success">{{successMessageText}}</span>\n{{else}}\n{{#if successMessageText}}{{! updated bootstrap style classes - `valid-feedback`}}\n<div class="valid-feedback">{{successMessageText}}</div>\n{{/if}}{{/contains}}\n\n{{#contains "qld-input-error" customClass}}{{! legacy support for feedback classes `qld-input-error`}}\n<span class="qld-input-error">{{errorMessageText}}</span>\n{{else}}\n{{#if errorMessageText}}{{! updated bootstrap style classes - `invalid-feedback`}}\n<div class="invalid-feedback">{{errorMessageText}}</div>\n{{/if}}{{/contains}}\n\n<input id={{id}} {{#if value}}value="{{value}}"{{/if}} class="form-control {{customClass}} {{#if isFilled}}is-filled{{/if}} {{#if isValid}}is-valid{{else}}{{#ifCond isValid "===" false}}is-invalid{{/ifCond}}{{/if}}"\n type="text" placeholder="{{placeholder}}" {{#if isDisabled}}disabled{{/if}} {{#if\n isRequired}}required{{/if}} {{#if hint-text}}aria-describedby="{{id}}-hint"{{/if}} />';
1494
1542
  }
1495
1543
  });
1496
1544