@phatvu/web-component-poc 1.0.6 → 1.0.8

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 (52) hide show
  1. package/dist/cjs/fast-button_6.cjs.entry.js +578 -0
  2. package/dist/cjs/{fast-button_4.cjs.entry.js → fast-carousel.cjs.entry.js} +1 -231
  3. package/dist/cjs/{index-B2BTpdbN.js → index-227GpI8K.js} +66 -2
  4. package/dist/cjs/job-card.cjs.entry.js +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/web-component-poc.cjs.js +2 -2
  7. package/dist/collection/collection-manifest.json +4 -1
  8. package/dist/collection/components/button/button.css +14 -14
  9. package/dist/collection/components/button/button.js +12 -24
  10. package/dist/collection/components/fast-form/fast-form.css +5 -0
  11. package/dist/collection/components/fast-form/fast-form.js +99 -0
  12. package/dist/collection/components/fast-input/fast-input.css +45 -0
  13. package/dist/collection/components/fast-input/fast-input.js +359 -0
  14. package/dist/collection/components/jobs-list-only/jobs-list-only.js +180 -3
  15. package/dist/collection/components/jobs-list-reactive/jobs-list-reactive.css +8 -0
  16. package/dist/collection/components/jobs-list-reactive/jobs-list-reactive.js +203 -0
  17. package/dist/components/fast-button.js +1 -1
  18. package/dist/components/fast-carousel.js +1 -1
  19. package/dist/components/fast-form.d.ts +11 -0
  20. package/dist/components/fast-form.js +1 -0
  21. package/dist/components/fast-input.d.ts +11 -0
  22. package/dist/components/fast-input.js +1 -0
  23. package/dist/components/index.js +1 -1
  24. package/dist/components/job-card.js +1 -1
  25. package/dist/components/jobs-item.js +1 -1
  26. package/dist/components/jobs-list-only.js +1 -1
  27. package/dist/components/jobs-list-reactive.d.ts +11 -0
  28. package/dist/components/jobs-list-reactive.js +1 -0
  29. package/dist/components/p-Bb27ylcX.js +1 -0
  30. package/dist/components/{p-ClQDwJJB.js → p-CzgtwPsc.js} +1 -1
  31. package/dist/esm/fast-button_6.entry.js +571 -0
  32. package/dist/esm/{fast-button_4.entry.js → fast-carousel.entry.js} +2 -229
  33. package/dist/esm/{index-Dk5CvWmb.js → index-BqjrT3zA.js} +66 -2
  34. package/dist/esm/job-card.entry.js +1 -1
  35. package/dist/esm/loader.js +3 -3
  36. package/dist/esm/web-component-poc.js +3 -3
  37. package/dist/types/components/button/button.d.ts +1 -13
  38. package/dist/types/components/fast-form/fast-form.d.ts +10 -0
  39. package/dist/types/components/fast-input/fast-input.d.ts +35 -0
  40. package/dist/types/components/jobs-list-only/jobs-list-only.d.ts +22 -0
  41. package/dist/types/components/jobs-list-reactive/jobs-list-reactive.d.ts +26 -0
  42. package/dist/types/components.d.ts +256 -11
  43. package/dist/web-component-poc/{p-52c85341.entry.js → p-14247159.entry.js} +1 -1
  44. package/dist/web-component-poc/p-309a490b.entry.js +1 -0
  45. package/dist/web-component-poc/p-7ea9a87f.entry.js +1 -0
  46. package/dist/web-component-poc/{p-Dk5CvWmb.js → p-BqjrT3zA.js} +2 -2
  47. package/dist/web-component-poc/web-component-poc.esm.js +1 -1
  48. package/hydrate/index.js +457 -27
  49. package/hydrate/index.mjs +457 -27
  50. package/package.json +7 -3
  51. package/dist/components/p-UM9TUfe3.js +0 -1
  52. package/dist/web-component-poc/p-96761988.entry.js +0 -1
@@ -1,47 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-B2BTpdbN.js');
4
-
5
- const buttonCss = () => `:host{display:inline-block}.custom-button{display:inline-flex;align-items:center;justify-content:center;padding:0.5rem 1rem;font-family:inherit;font-size:0.875rem;font-weight:500;line-height:1.25;border:none;border-radius:0.375rem;cursor:pointer;transition:background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease}.custom-button:focus{outline:2px solid var(--custom-button-focus-ring, #2563eb);outline-offset:2px}.custom-button:focus:not(:focus-visible){outline:none}.custom-button--primary{background-color:var(--custom-button-primary-bg, #2563eb);color:var(--custom-button-primary-color, #fff)}.custom-button--primary:hover:not(.custom-button--disabled){background-color:var(--custom-button-primary-hover-bg, #1d4ed8)}.custom-button--primary:active:not(.custom-button--disabled){background-color:var(--custom-button-primary-active-bg, #1e40af)}.custom-button--secondary{background-color:var(--custom-button-secondary-bg, #e5e7eb);color:var(--custom-button-secondary-color, #1f2937)}.custom-button--secondary:hover:not(.custom-button--disabled){background-color:var(--custom-button-secondary-hover-bg, #d1d5db)}.custom-button--secondary:active:not(.custom-button--disabled){background-color:var(--custom-button-secondary-active-bg, #9ca3af)}.custom-button--text{background-color:transparent;color:var(--custom-button-text-color, #2563eb)}.custom-button--text:hover:not(.custom-button--disabled){background-color:var(--custom-button-text-hover-bg, rgba(37, 99, 235, 0.08))}.custom-button--text:active:not(.custom-button--disabled){background-color:var(--custom-button-text-active-bg, rgba(37, 99, 235, 0.12))}.custom-button--disabled,.custom-button:disabled{opacity:0.6;cursor:not-allowed}`;
6
-
7
- const CustomButton = class {
8
- constructor(hostRef) {
9
- index.registerInstance(this, hostRef);
10
- this.buttonClick = index.createEvent(this, "buttonClick");
11
- }
12
- /**
13
- * Visual variant of the button.
14
- */
15
- variant = 'primary';
16
- /**
17
- * Native button type (button or submit).
18
- */
19
- type = 'button';
20
- /**
21
- * When true, the button is disabled and does not emit events.
22
- */
23
- disabled = false;
24
- /**
25
- * Emitted when the button is clicked (not emitted when disabled).
26
- */
27
- buttonClick;
28
- handleClick = (e) => {
29
- if (this.disabled) {
30
- e.preventDefault();
31
- e.stopPropagation();
32
- return;
33
- }
34
- this.buttonClick.emit(e);
35
- };
36
- render() {
37
- return (index.h("button", { key: '3b74909afe4e305dfd38f0b07657202e3d5bfccd', type: this.type, class: {
38
- 'custom-button': true,
39
- [`custom-button--${this.variant}`]: true,
40
- 'custom-button--disabled': this.disabled,
41
- }, disabled: this.disabled, onClick: this.handleClick }, index.h("slot", { key: '49845d350e4665c5c66e30bd9262f788eaaa1e20' })));
42
- }
43
- };
44
- CustomButton.style = buttonCss();
3
+ var index = require('./index-227GpI8K.js');
45
4
 
46
5
  function isNumber(subject) {
47
6
  return typeof subject === 'number';
@@ -1947,193 +1906,4 @@ const AppCarousel = class {
1947
1906
  };
1948
1907
  AppCarousel.style = carouselCss();
1949
1908
 
1950
- const jobsItemCss = () => `.results-list__item{list-style:none;padding:10px 0;border-bottom:1px solid #ddd;margin:15px 0;display:inline-block;width:100%;position:relative}.results-list__item:last-child{border-bottom:none}.results-list__item-header{margin:10px 0;font-size:18px;font-weight:700;display:flex;flex-direction:column}.results-list__item-title{margin:0}.results-list__item-title--link{text-decoration:none;color:#1f9755}.results-list__item-title--link:hover{text-decoration:underline}.reference{margin-left:8px;font-size:0.9em;color:#666}.reference.empty{display:none}.remote{background:#f3f3f3;color:#808285;border-radius:100px;padding:6px 16px;text-transform:uppercase;font-size:12px;font-weight:700;line-height:24px;margin-left:8px}.remote--empty{display:none}.results-list__item-distance{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:14px;font-weight:400}.results-list__item-distance--icon{display:inline-flex}.results-list__item-distance--icon svg{width:16px;height:16px}.results-list__item-content{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:8px}.results-list__item-info{flex:1}.results-list__item-street,.results-list__item-brand,.results-list__item-employment-type{margin:10px 0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.results-list__item-street--empty,.results-list__item-brand--empty,.results-list__item-employment-type--empty{color:#999}.results-list__item-street--icon,.results-list__item-brand--icon,.results-list__item-employment-type--icon{margin-right:6px;display:inline-flex}.results-list__item-street--icon svg,.results-list__item-brand--icon svg,.results-list__item-employment-type--icon svg{width:16px;height:16px}.results-list__item-street--more-locations__wrapper{margin-left:8px}.results-list__item-street--amount{font-weight:600}.results-list__item-apply{margin:10px 0;padding:10px 20px;display:inline-flex;align-items:center;gap:8px;background-color:#198754;color:#fff;border-radius:3px;text-decoration:none;font-weight:600;flex-shrink:0}.results-list__item-apply:hover{background-color:#1f9755;color:#fff}.results-list__item-apply--icon svg{width:14px;height:14px}`;
1951
-
1952
- function getLocationLabel(loc) {
1953
- if (loc.cityStateAbbr)
1954
- return loc.cityStateAbbr;
1955
- const parts = [loc.streetAddress, loc.city, loc.stateAbbr || loc.state, loc.countryAbbr || loc.country].filter(Boolean);
1956
- return parts.join(', ') || loc.locationText || '';
1957
- }
1958
- function getFirstLocation(job) {
1959
- const locs = job.locations;
1960
- if (!locs?.length)
1961
- return undefined;
1962
- return locs[0];
1963
- }
1964
- const JobsItem = class {
1965
- constructor(hostRef) {
1966
- index.registerInstance(this, hostRef);
1967
- }
1968
- job;
1969
- index = 0;
1970
- applyButtonText = 'Apply Now';
1971
- showBrand = true;
1972
- showReference = false;
1973
- showEmploymentType = true;
1974
- multiLocationText = 'More locations';
1975
- remoteLocationText = 'Remote';
1976
- enableKilometers = false;
1977
- formatDistance(distance) {
1978
- const value = this.enableKilometers ? distance * 1.60934 : distance;
1979
- const unit = this.enableKilometers ? 'Km' : 'Miles';
1980
- const str = `${value.toFixed(1)} ${unit}`.replace('.0', '');
1981
- return str;
1982
- }
1983
- render() {
1984
- if (!this.job)
1985
- return null;
1986
- const firstLoc = getFirstLocation(this.job);
1987
- const locationLabel = firstLoc ? getLocationLabel(firstLoc) : '';
1988
- const distance = firstLoc?.distance ?? 0;
1989
- const distanceLabel = distance > 0 ? this.formatDistance(distance) : '';
1990
- const applyHref = this.job.applyURL ||
1991
- (this.job.originalURL ? `${typeof window !== 'undefined' ? window.location.origin : ''}${this.job.originalURL}` : '#');
1992
- const applyLabel = `${this.applyButtonText}, ${this.job.title || ''}`;
1993
- const locs = this.job.locations ?? [];
1994
- const hasMultipleLocations = locs.length > 1;
1995
- return (index.h("li", { class: "results-list__item" }, index.h("div", { class: "results-list__item-header" }, index.h("h3", { class: "results-list__item-title" }, index.h("a", { class: "results-list__item-title--link", href: applyHref, target: "_blank", rel: "noopener noreferrer" }, this.job.title || ''), this.showReference && (index.h("span", { class: `reference ${this.job.reference ? '' : 'empty'}` }, this.job.reference || '')), this.job.isRemote && (index.h("span", { class: this.remoteLocationText ? 'remote' : 'remote remote--empty' }, this.remoteLocationText))), distanceLabel && (index.h("div", { class: "results-list__item-distance" }, index.h("span", { class: "results-list__item-distance--icon" }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18z" }), index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 8v4l2 2" }))), index.h("span", { class: "results-list__item-distance--label" }, distanceLabel)))), index.h("div", { class: "results-list__item-content" }, index.h("div", { class: "results-list__item-info" }, index.h("div", { class: locs.length
1996
- ? 'results-list__item-street'
1997
- : 'results-list__item-street results-list__item-street--empty' }, index.h("div", { class: "results-list__item-street--label__wrapper" }, index.h("span", { class: "results-list__item-street--icon" }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0z" }), index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0z" }))), index.h("span", { class: "results-list__item-street--label" }, locationLabel || '—')), hasMultipleLocations && (index.h("div", { class: "results-list__item-street--more-locations__wrapper" }, index.h("span", { class: "results-list__item-street--amount" }, "+", locs.length - 1), index.h("span", { class: "results-list__item-street--more-locations" }, this.multiLocationText)))), this.showBrand && (index.h("div", { class: this.job.brandName
1998
- ? 'results-list__item-brand'
1999
- : 'results-list__item-brand results-list__item-brand--empty' }, index.h("span", { class: "results-list__item-brand--icon" }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z" }))), index.h("span", { class: "results-list__item-brand--label" }, this.job.brandName || '—'))), this.showEmploymentType && (index.h("div", { class: this.job.employmentType?.length
2000
- ? 'results-list__item-employment-type'
2001
- : 'results-list__item-employment-type results-list__item-employment-type--empty' }, index.h("span", { class: "results-list__item-employment-type--icon" }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0z" }))), (this.job.employmentType?.length ? this.job.employmentType : ['—']).map((type) => (index.h("span", { key: type, class: "results-list__item-employment-type--label" }, type))))), (this.job.jobCardExtraFields ?? []).map((field, i) => (index.h("div", { key: i, class: (Array.isArray(field.value) ? field.value.length : field.value)
2002
- ? field.classname
2003
- : `${field.classname}--empty` }, Array.isArray(field.value)
2004
- ? field.value.map((v, j) => (index.h("span", { key: j, class: `${field.classname}--label` }, v)))
2005
- : (index.h("span", { class: `${field.classname}--label` }, String(field.value))))))), index.h("a", { class: "results-list__item-apply", href: applyHref, target: "_blank", rel: "noopener noreferrer", "aria-label": applyLabel }, index.h("span", { class: "results-list__item-apply--label" }, this.applyButtonText), index.h("span", { class: "results-list__item-apply--icon" }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13 7l5 5m0 0l-5 5m5-5H6" })))))));
2006
- }
2007
- };
2008
- JobsItem.style = jobsItemCss();
2009
-
2010
- /**
2011
- * Mock jobs for local development and docs.
2012
- * Use in www or static HTML: jobs='...' (JSON.stringify(mockJobs)).
2013
- */
2014
- const mockJobsListOnly = [
2015
- {
2016
- title: 'Senior Software Engineer',
2017
- reference: 'REF-001',
2018
- originalURL: '/jobs/senior-software-engineer',
2019
- applyURL: 'https://apply.example.com/1',
2020
- brandName: 'Engineering',
2021
- isRemote: false,
2022
- locations: [
2023
- {
2024
- city: 'San Francisco',
2025
- stateAbbr: 'CA',
2026
- countryAbbr: 'US',
2027
- distance: 5.2,
2028
- streetAddress: '123 Market St',
2029
- cityStateAbbr: 'San Francisco, CA',
2030
- },
2031
- ],
2032
- employmentType: ['Full-time', 'Permanent'],
2033
- },
2034
- {
2035
- title: 'Product Manager',
2036
- reference: '',
2037
- originalURL: '/jobs/product-manager',
2038
- brandName: 'Product',
2039
- isRemote: true,
2040
- locations: [],
2041
- employmentType: ['Full-time'],
2042
- },
2043
- {
2044
- title: 'UX Designer',
2045
- reference: 'REF-003',
2046
- originalURL: '/jobs/ux-designer',
2047
- brandName: 'Design',
2048
- isRemote: false,
2049
- locations: [
2050
- {
2051
- city: 'New York',
2052
- stateAbbr: 'NY',
2053
- countryAbbr: 'US',
2054
- distance: 0,
2055
- cityStateAbbr: 'New York, NY',
2056
- },
2057
- {
2058
- city: 'Boston',
2059
- stateAbbr: 'MA',
2060
- countryAbbr: 'US',
2061
- cityStateAbbr: 'Boston, MA',
2062
- },
2063
- ],
2064
- employmentType: ['Full-time', 'Contract'],
2065
- },
2066
- ];
2067
-
2068
- const jobsListOnlyCss = () => `:host{display:block}.jobs-list-root{list-style:none}.results-container{position:relative}.loader{display:inline-block;width:24px;height:24px;border:2px solid #ddd;border-top-color:#1f9755;border-radius:50%;animation:jobs-list-spin 0.8s linear infinite}.loader.hide{display:none}@keyframes jobs-list-spin{to{transform:rotate(360deg)}}.card{border:0}.results-list{list-style:none;margin:0;padding:0;display:block}.results-list.front{margin:3px 0}.share-jobs__no-results{padding:24px;text-align:center}.share-jobs__no-results h2,.share-jobs__no-results h3{margin:8px 0;font-weight:600}.card.primary-color{padding:16px;border-radius:4px;background:#f8f9fa}.result-suggestions-title{margin:0 0 12px 0;font-size:16px}.results-list .result-suggestions-line{list-style:none;margin:4px 0}`;
2069
-
2070
- const defaultNoResultsLine1 = "Sorry, we're not able to load results for your search.";
2071
- const defaultNoResultsLine2 = 'Please refine your keywords in the search bar above and try again.';
2072
- const JobsListOnly = class {
2073
- constructor(hostRef) {
2074
- index.registerInstance(this, hostRef);
2075
- }
2076
- /**
2077
- * When "true", use built-in mock data (for local/dev/docs). Otherwise use `jobs` from API/parent.
2078
- */
2079
- mockData = false;
2080
- /** List of jobs to display. Pass as JSON string from attribute or as array via property (e.g. from React). Ignored when mock-data="true". */
2081
- jobs = [];
2082
- /** Show loading spinner. Ignored when mock-data="true" (mock shows data immediately). */
2083
- loading = false;
2084
- /** Total job count (for screen readers / schema). */
2085
- totalJob = 0;
2086
- noResultsLine1 = defaultNoResultsLine1;
2087
- noResultsLine2 = defaultNoResultsLine2;
2088
- applyButtonText = 'Apply Now';
2089
- showBrand = true;
2090
- showReference = false;
2091
- showEmploymentType = true;
2092
- streetFormat = '{street}, {city_state_abbr}';
2093
- multiLocationText = 'More locations';
2094
- remoteLocationText = 'Remote';
2095
- enableKilometers = false;
2096
- /** Extra CSS class on the root element (avoid prop name "class" / "classname" reserved). */
2097
- rootClass = '';
2098
- showSuggestions = false;
2099
- clearResultSuggestionsTitleText = 'Suggestions';
2100
- clearResultSuggestionsLine1 = 'Try different keywords';
2101
- clearResultSuggestionsLine2 = 'Make sure everything is spelled correctly';
2102
- clearResultSuggestionsLine3 = 'Try other locations';
2103
- clearResultSuggestionsLine4 = '';
2104
- getJobsArray() {
2105
- if (this.mockData) {
2106
- return mockJobsListOnly;
2107
- }
2108
- const j = this.jobs;
2109
- if (Array.isArray(j))
2110
- return j;
2111
- if (typeof j === 'string') {
2112
- try {
2113
- const parsed = JSON.parse(j);
2114
- return Array.isArray(parsed) ? parsed : [];
2115
- }
2116
- catch {
2117
- return [];
2118
- }
2119
- }
2120
- return [];
2121
- }
2122
- renderJobItem(job, index$1) {
2123
- return (index.h("jobs-item", { job: job, index: index$1, applyButtonText: this.applyButtonText, showBrand: this.showBrand, showReference: this.showReference, showEmploymentType: this.showEmploymentType, multiLocationText: this.multiLocationText, remoteLocationText: this.remoteLocationText, enableKilometers: this.enableKilometers }));
2124
- }
2125
- render() {
2126
- const jobsArray = this.getJobsArray();
2127
- const loading = this.mockData ? false : this.loading;
2128
- const totalJob = this.mockData ? jobsArray.length : (this.totalJob || jobsArray.length);
2129
- const showNoResults = !loading && totalJob === 0 && !this.showSuggestions;
2130
- const showSuggestionsBlock = !loading && totalJob === 0 && this.showSuggestions;
2131
- return (index.h("div", { key: 'c22b59e35668df06633c8c11ae8a51b463e06b19', class: `jobs-list-root ${this.rootClass}`.trim() }, index.h("div", { key: 'e2b5b1bf68b75dd958b906c18c258faa8f4e1e25', class: "results-container" }, index.h("div", { key: '923d2402d2951d9de47a69c5fd87a80fda382b6e', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && (index.h("div", { key: '000c2c2d512f1b48999d628a2517701fc061dd11', class: "card" }, index.h("ul", { key: '7028fc4f1b007eb9ff9bc205201af986c6d0a9ae', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (index.h("div", { key: '4f567c7ddbf7d393469886ce3b4865dcb9f4e761', class: "share-jobs__no-results" }, index.h("h2", { key: '5f1ae77afeca0c37183dc681a9cc42eebaf0e510' }, this.noResultsLine1), index.h("h3", { key: '6f8a754181cabf1befc6a9a4cf811417075af918' }, this.noResultsLine2))), showSuggestionsBlock && (index.h("div", { key: 'a09cc45fbed615bb8672f8e77c2a8793efec2dc5', class: "card primary-color" }, index.h("h4", { key: '9e53bb60ec086f42845d90c807dbd1cb6a88721d', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), index.h("ul", { key: '0769ebd6367255dad56e688cd36a65cc41f1f366', class: "results-list front" }, index.h("li", { key: '7032fc1d77ca040be7d2c949c7bc755c62ef4df3', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), index.h("li", { key: '49e0c6d4cad62448abc42124708472d8c268c7d9', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), index.h("li", { key: 'ad76dbdad20e8de716613baa2bd1e745b6749fa7', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (index.h("li", { key: 'b141b94ceeacd5de8fd430cc9e5e05063953130a', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
2132
- }
2133
- };
2134
- JobsListOnly.style = jobsListOnlyCss();
2135
-
2136
- exports.fast_button = CustomButton;
2137
1909
  exports.fast_carousel = AppCarousel;
2138
- exports.jobs_item = JobsItem;
2139
- exports.jobs_list_only = JobsListOnly;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const NAMESPACE = 'web-component-poc';
4
- const BUILD = /* web-component-poc */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, prop: true, propChangeCallback: false, shadowDom: false, slotRelocation: true, updatable: true};
4
+ const BUILD = /* web-component-poc */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: false, shadowDom: false, slotRelocation: true, state: true, updatable: true};
5
5
 
6
6
  /*
7
7
  Stencil Client Platform v4.43.2 | MIT Licensed | https://stenciljs.com
@@ -88,7 +88,7 @@ var registerInstance = (lazyInstance, hostRef) => {
88
88
  if (!hostRef) return;
89
89
  lazyInstance.__stencil__getHostRef = () => hostRef;
90
90
  hostRef.$lazyInstance$ = lazyInstance;
91
- if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.prop)) {
91
+ if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.state)) {
92
92
  reWireGetterSetter(lazyInstance, hostRef);
93
93
  }
94
94
  };
@@ -175,6 +175,23 @@ var plt = {
175
175
  ce: (eventName, opts) => new CustomEvent(eventName, opts)
176
176
  };
177
177
  var supportsShadow = BUILD.shadowDom;
178
+ var supportsListenerOptions = /* @__PURE__ */ (() => {
179
+ var _a;
180
+ let supportsListenerOptions2 = false;
181
+ try {
182
+ (_a = win.document) == null ? void 0 : _a.addEventListener(
183
+ "e",
184
+ null,
185
+ Object.defineProperty({}, "passive", {
186
+ get() {
187
+ supportsListenerOptions2 = true;
188
+ }
189
+ })
190
+ );
191
+ } catch (e) {
192
+ }
193
+ return supportsListenerOptions2;
194
+ })();
178
195
  var promiseResolve = (v) => Promise.resolve(v);
179
196
  var supportsConstructableStylesheets = /* @__PURE__ */ (() => {
180
197
  try {
@@ -1861,6 +1878,13 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
1861
1878
  hostRef.$deferredConnectedCallback$ = false;
1862
1879
  safeCall(instance, "connectedCallback", void 0, elm);
1863
1880
  }
1881
+ {
1882
+ hostRef.$flags$ |= 256 /* isListenReady */;
1883
+ if (hostRef.$queuedListeners$) {
1884
+ hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
1885
+ hostRef.$queuedListeners$ = void 0;
1886
+ }
1887
+ }
1864
1888
  if (hostRef.$fetchedCbList$.length) {
1865
1889
  hostRef.$fetchedCbList$.forEach((cb) => cb(elm));
1866
1890
  }
@@ -2303,6 +2327,7 @@ var connectedCallback = (elm) => {
2303
2327
  initializeComponent(elm, hostRef, cmpMeta);
2304
2328
  }
2305
2329
  } else {
2330
+ addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2306
2331
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
2307
2332
  fireConnectedCallback(hostRef.$lazyInstance$, elm);
2308
2333
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
@@ -2330,6 +2355,12 @@ var disconnectInstance = (instance, elm) => {
2330
2355
  var disconnectedCallback = async (elm) => {
2331
2356
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
2332
2357
  const hostRef = getHostRef(elm);
2358
+ {
2359
+ if (hostRef == null ? void 0 : hostRef.$rmListeners$) {
2360
+ hostRef.$rmListeners$.map((rmListener) => rmListener());
2361
+ hostRef.$rmListeners$ = void 0;
2362
+ }
2363
+ }
2333
2364
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
2334
2365
  disconnectInstance(hostRef.$lazyInstance$, elm);
2335
2366
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
@@ -2381,6 +2412,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2381
2412
  {
2382
2413
  cmpMeta.$members$ = compactMeta[2];
2383
2414
  }
2415
+ {
2416
+ cmpMeta.$listeners$ = compactMeta[3];
2417
+ }
2384
2418
  const tagName = transformTag(cmpMeta.$tagName$);
2385
2419
  const HostElement = class extends HTMLElement {
2386
2420
  ["s-p"];
@@ -2399,6 +2433,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2399
2433
  }
2400
2434
  if (!this.hasRegisteredEventListeners) {
2401
2435
  this.hasRegisteredEventListeners = true;
2436
+ addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
2402
2437
  }
2403
2438
  if (appLoadFallback) {
2404
2439
  clearTimeout(appLoadFallback);
@@ -2468,6 +2503,35 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2468
2503
  }
2469
2504
  endBootstrap();
2470
2505
  };
2506
+ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
2507
+ if (listeners && win.document) {
2508
+ listeners.map(([flags, name, method]) => {
2509
+ const target = elm;
2510
+ const handler = hostListenerProxy(hostRef, method);
2511
+ const opts = hostListenerOpts(flags);
2512
+ plt.ael(target, name, handler, opts);
2513
+ (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
2514
+ });
2515
+ }
2516
+ };
2517
+ var hostListenerProxy = (hostRef, methodName) => (ev) => {
2518
+ var _a;
2519
+ try {
2520
+ {
2521
+ if (hostRef.$flags$ & 256 /* isListenReady */) {
2522
+ (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
2523
+ } else {
2524
+ (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
2525
+ }
2526
+ }
2527
+ } catch (e) {
2528
+ consoleError(e, hostRef.$hostElement$);
2529
+ }
2530
+ };
2531
+ var hostListenerOpts = (flags) => supportsListenerOptions ? {
2532
+ passive: (flags & 1 /* Passive */) !== 0,
2533
+ capture: (flags & 2 /* Capture */) !== 0
2534
+ } : (flags & 2 /* Capture */) !== 0;
2471
2535
 
2472
2536
  // src/runtime/nonce.ts
2473
2537
  var setNonce = (nonce) => plt.$nonce$ = nonce;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-B2BTpdbN.js');
3
+ var index = require('./index-227GpI8K.js');
4
4
 
5
5
  const jobCardCss = () => `.job-card{display:block;padding:16px;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 2px 4px rgba(0, 0, 0, 0.08);transition:box-shadow 0.2s ease, border-color 0.2s ease}.job-card:hover{box-shadow:0 4px 8px rgba(0, 0, 0, 0.12);border-color:#d0d0d0}.job-card__header{margin-bottom:12px}.job-card__title{margin:0;font-size:18px;font-weight:700;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.job-card__title--link{text-decoration:none;color:#1f9755;transition:color 0.2s ease}.job-card__title--link:hover{text-decoration:underline;color:#1a7a43}.job-card__reference{font-size:0.875em;color:#666;background-color:#f5f5f5;padding:2px 6px;border-radius:3px}.job-card__reference--empty{display:none}.job-card__remote{background:#e8f5e9;color:#2e7d32;border-radius:100px;padding:4px 12px;text-transform:uppercase;font-size:11px;font-weight:700;line-height:1.5;white-space:nowrap}.job-card__remote--empty{display:none}.job-card__distance{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:13px;font-weight:500;color:#555}.job-card__distance--icon{display:inline-flex;align-items:center}.job-card__distance--icon svg{width:16px;height:16px;color:#1f9755}.job-card__content{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.job-card__info{flex:1;display:flex;flex-direction:column;gap:8px}.job-card__street,.job-card__brand,.job-card__employment-type{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:14px}.job-card__street--empty,.job-card__brand--empty,.job-card__employment-type--empty{color:#999}.job-card__street--icon,.job-card__brand--icon,.job-card__employment-type--icon{display:inline-flex;align-items:center;flex-shrink:0}.job-card__street--icon svg,.job-card__brand--icon svg,.job-card__employment-type--icon svg{width:16px;height:16px;color:#666}.job-card__street--label,.job-card__brand--label,.job-card__employment-type--label{color:#333}.job-card__street--label__wrapper{display:flex;align-items:center;gap:6px}.job-card__street--more-locations__wrapper{display:flex;align-items:center;gap:2px;font-size:12px;margin-left:2px}.job-card__street--amount{font-weight:600;color:#1f9755}.job-card__street--more-locations{color:#999}.job-card__apply{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background-color:#198754;color:#fff;border-radius:4px;text-decoration:none;font-weight:600;font-size:14px;transition:background-color 0.2s ease, transform 0.1s ease;white-space:nowrap;flex-shrink:0}.job-card__apply:hover{background-color:#1a6f47;transform:translateY(-1px)}.job-card__apply:active{transform:translateY(0)}.job-card__apply--icon{display:inline-flex;align-items:center}.job-card__apply--icon svg{width:14px;height:14px}@media (max-width: 768px){.job-card{padding:12px}.job-card__content{flex-direction:column;gap:10px}.job-card__apply{width:100%;justify-content:center}.job-card__title{font-size:16px}}@media (max-width: 480px){.job-card{padding:10px}.job-card__title{font-size:15px}.job-card__distance{font-size:12px}.job-card__street,.job-card__brand,.job-card__employment-type{font-size:13px}}`;
6
6
 
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-B2BTpdbN.js');
3
+ var index = require('./index-227GpI8K.js');
4
4
  var appGlobals = require('./app-globals-V2Kpy_OQ.js');
5
5
 
6
6
  const defineCustomElements = async (win, options) => {
7
7
  if (typeof window === 'undefined') return undefined;
8
8
  await appGlobals.globalScripts();
9
- return index.bootstrapLazy([["job-card.cjs",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-button_4.cjs",[[512,"jobs-list-only",{"mockData":[4,"mock-data"],"jobs":[1],"loading":[4],"totalJob":[2,"total-job"],"noResultsLine1":[1,"no-results-line-1"],"noResultsLine2":[1,"no-results-line-2"],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"streetFormat":[1,"street-format"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"rootClass":[1,"root-class"],"showSuggestions":[4,"show-suggestions"],"clearResultSuggestionsTitleText":[1,"clear-result-suggestions-title-text"],"clearResultSuggestionsLine1":[1,"clear-result-suggestions-line-1"],"clearResultSuggestionsLine2":[1,"clear-result-suggestions-line-2"],"clearResultSuggestionsLine3":[1,"clear-result-suggestions-line-3"],"clearResultSuggestionsLine4":[1,"clear-result-suggestions-line-4"]}],[772,"fast-button",{"variant":[1],"type":[1],"disabled":[4]}],[772,"fast-carousel",{"items":[1],"loop":[4],"class":[1],"controlClass":[1,"control-class"],"slideClass":[1,"slide-class"],"itemClass":[1,"item-class"],"scrollPrev":[64],"scrollNext":[64],"goToSlide":[64],"getEmbla":[64]}],[512,"jobs-item",{"job":[16],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"]}]]]], options);
9
+ return index.bootstrapLazy([["fast-carousel.cjs",[[772,"fast-carousel",{"items":[1],"loop":[4],"class":[1],"controlClass":[1,"control-class"],"slideClass":[1,"slide-class"],"itemClass":[1,"item-class"],"scrollPrev":[64],"scrollNext":[64],"goToSlide":[64],"getEmbla":[64]}]]],["job-card.cjs",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-button_6.cjs",[[512,"jobs-list-only",{"mockData":[4,"mock-data"],"jobs":[1],"loading":[4],"totalJob":[2,"total-job"],"noResultsLine1":[1,"no-results-line-1"],"noResultsLine2":[1,"no-results-line-2"],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"streetFormat":[1,"street-format"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"rootClass":[1,"root-class"],"showCountText":[1,"show-count-text"],"showSuggestions":[4,"show-suggestions"],"clearResultSuggestionsTitleText":[1,"clear-result-suggestions-title-text"],"clearResultSuggestionsLine1":[1,"clear-result-suggestions-line-1"],"clearResultSuggestionsLine2":[1,"clear-result-suggestions-line-2"],"clearResultSuggestionsLine3":[1,"clear-result-suggestions-line-3"],"clearResultSuggestionsLine4":[1,"clear-result-suggestions-line-4"],"autoFetch":[4,"auto-fetch"],"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"fetchedJobs":[32],"fetchedTotal":[32],"fetchLoading":[32]}],[772,"fast-button",{"variant":[1],"type":[1],"disabled":[4]}],[260,"fast-form",null,[[0,"inputSubmit","handleInputSubmit"]]],[512,"fast-input",{"placeholder":[1],"value":[1],"paramName":[1,"param-name"],"enableAutocomplete":[4,"enable-autocomplete"],"autocompleteUrl":[1,"autocomplete-url"],"targetPath":[1,"target-path"],"debounceMs":[2,"debounce-ms"],"minChars":[2,"min-chars"],"inputValue":[32],"suggestions":[32],"showDropdown":[32],"autocompleteLoading":[32],"getValue":[64],"getParamName":[64]}],[772,"jobs-list-reactive",{"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"loadingClass":[1,"loading-class"],"isLoading":[32]}],[512,"jobs-item",{"job":[16],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"]}]]]], options);
10
10
  };
11
11
 
12
12
  exports.setNonce = index.setNonce;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-B2BTpdbN.js');
3
+ var index = require('./index-227GpI8K.js');
4
4
  var appGlobals = require('./app-globals-V2Kpy_OQ.js');
5
5
 
6
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["job-card.cjs",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-button_4.cjs",[[512,"jobs-list-only",{"mockData":[4,"mock-data"],"jobs":[1],"loading":[4],"totalJob":[2,"total-job"],"noResultsLine1":[1,"no-results-line-1"],"noResultsLine2":[1,"no-results-line-2"],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"streetFormat":[1,"street-format"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"rootClass":[1,"root-class"],"showSuggestions":[4,"show-suggestions"],"clearResultSuggestionsTitleText":[1,"clear-result-suggestions-title-text"],"clearResultSuggestionsLine1":[1,"clear-result-suggestions-line-1"],"clearResultSuggestionsLine2":[1,"clear-result-suggestions-line-2"],"clearResultSuggestionsLine3":[1,"clear-result-suggestions-line-3"],"clearResultSuggestionsLine4":[1,"clear-result-suggestions-line-4"]}],[772,"fast-button",{"variant":[1],"type":[1],"disabled":[4]}],[772,"fast-carousel",{"items":[1],"loop":[4],"class":[1],"controlClass":[1,"control-class"],"slideClass":[1,"slide-class"],"itemClass":[1,"item-class"],"scrollPrev":[64],"scrollNext":[64],"goToSlide":[64],"getEmbla":[64]}],[512,"jobs-item",{"job":[16],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"]}]]]], options);
22
+ return index.bootstrapLazy([["fast-carousel.cjs",[[772,"fast-carousel",{"items":[1],"loop":[4],"class":[1],"controlClass":[1,"control-class"],"slideClass":[1,"slide-class"],"itemClass":[1,"item-class"],"scrollPrev":[64],"scrollNext":[64],"goToSlide":[64],"getEmbla":[64]}]]],["job-card.cjs",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-button_6.cjs",[[512,"jobs-list-only",{"mockData":[4,"mock-data"],"jobs":[1],"loading":[4],"totalJob":[2,"total-job"],"noResultsLine1":[1,"no-results-line-1"],"noResultsLine2":[1,"no-results-line-2"],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"streetFormat":[1,"street-format"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"rootClass":[1,"root-class"],"showCountText":[1,"show-count-text"],"showSuggestions":[4,"show-suggestions"],"clearResultSuggestionsTitleText":[1,"clear-result-suggestions-title-text"],"clearResultSuggestionsLine1":[1,"clear-result-suggestions-line-1"],"clearResultSuggestionsLine2":[1,"clear-result-suggestions-line-2"],"clearResultSuggestionsLine3":[1,"clear-result-suggestions-line-3"],"clearResultSuggestionsLine4":[1,"clear-result-suggestions-line-4"],"autoFetch":[4,"auto-fetch"],"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"fetchedJobs":[32],"fetchedTotal":[32],"fetchLoading":[32]}],[772,"fast-button",{"variant":[1],"type":[1],"disabled":[4]}],[260,"fast-form",null,[[0,"inputSubmit","handleInputSubmit"]]],[512,"fast-input",{"placeholder":[1],"value":[1],"paramName":[1,"param-name"],"enableAutocomplete":[4,"enable-autocomplete"],"autocompleteUrl":[1,"autocomplete-url"],"targetPath":[1,"target-path"],"debounceMs":[2,"debounce-ms"],"minChars":[2,"min-chars"],"inputValue":[32],"suggestions":[32],"showDropdown":[32],"autocompleteLoading":[32],"getValue":[64],"getParamName":[64]}],[772,"jobs-list-reactive",{"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"loadingClass":[1,"loading-class"],"isLoading":[32]}],[512,"jobs-item",{"job":[16],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -2,9 +2,12 @@
2
2
  "entries": [
3
3
  "components/button/button.js",
4
4
  "components/fast-carousel/carousel.js",
5
+ "components/fast-form/fast-form.js",
6
+ "components/fast-input/fast-input.js",
5
7
  "components/job-card/job-card.js",
6
8
  "components/jobs-item/jobs-item.js",
7
- "components/jobs-list-only/jobs-list-only.js"
9
+ "components/jobs-list-only/jobs-list-only.js",
10
+ "components/jobs-list-reactive/jobs-list-reactive.js"
8
11
  ],
9
12
  "mixins": [],
10
13
  "compiler": {
@@ -2,7 +2,7 @@
2
2
  display: inline-block;
3
3
  }
4
4
 
5
- .custom-button {
5
+ .fast-button {
6
6
  display: inline-flex;
7
7
  align-items: center;
8
8
  justify-content: center;
@@ -17,60 +17,60 @@
17
17
  transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
18
18
  }
19
19
 
20
- .custom-button:focus {
20
+ .fast-button:focus {
21
21
  outline: 2px solid var(--custom-button-focus-ring, #2563eb);
22
22
  outline-offset: 2px;
23
23
  }
24
24
 
25
- .custom-button:focus:not(:focus-visible) {
25
+ .fast-button:focus:not(:focus-visible) {
26
26
  outline: none;
27
27
  }
28
28
 
29
29
  /* Primary */
30
- .custom-button--primary {
30
+ .fast-button--primary {
31
31
  background-color: var(--custom-button-primary-bg, #2563eb);
32
32
  color: var(--custom-button-primary-color, #fff);
33
33
  }
34
34
 
35
- .custom-button--primary:hover:not(.custom-button--disabled) {
35
+ .fast-button--primary:hover:not(.fast-button--disabled) {
36
36
  background-color: var(--custom-button-primary-hover-bg, #1d4ed8);
37
37
  }
38
38
 
39
- .custom-button--primary:active:not(.custom-button--disabled) {
39
+ .fast-button--primary:active:not(.fast-button--disabled) {
40
40
  background-color: var(--custom-button-primary-active-bg, #1e40af);
41
41
  }
42
42
 
43
43
  /* Secondary */
44
- .custom-button--secondary {
44
+ .fast-button--secondary {
45
45
  background-color: var(--custom-button-secondary-bg, #e5e7eb);
46
46
  color: var(--custom-button-secondary-color, #1f2937);
47
47
  }
48
48
 
49
- .custom-button--secondary:hover:not(.custom-button--disabled) {
49
+ .fast-button--secondary:hover:not(.fast-button--disabled) {
50
50
  background-color: var(--custom-button-secondary-hover-bg, #d1d5db);
51
51
  }
52
52
 
53
- .custom-button--secondary:active:not(.custom-button--disabled) {
53
+ .fast-button--secondary:active:not(.fast-button--disabled) {
54
54
  background-color: var(--custom-button-secondary-active-bg, #9ca3af);
55
55
  }
56
56
 
57
57
  /* Text */
58
- .custom-button--text {
58
+ .fast-button--text {
59
59
  background-color: transparent;
60
60
  color: var(--custom-button-text-color, #2563eb);
61
61
  }
62
62
 
63
- .custom-button--text:hover:not(.custom-button--disabled) {
63
+ .fast-button--text:hover:not(.fast-button--disabled) {
64
64
  background-color: var(--custom-button-text-hover-bg, rgba(37, 99, 235, 0.08));
65
65
  }
66
66
 
67
- .custom-button--text:active:not(.custom-button--disabled) {
67
+ .fast-button--text:active:not(.fast-button--disabled) {
68
68
  background-color: var(--custom-button-text-active-bg, rgba(37, 99, 235, 0.12));
69
69
  }
70
70
 
71
71
  /* Disabled */
72
- .custom-button--disabled,
73
- .custom-button:disabled {
72
+ .fast-button--disabled,
73
+ .fast-button:disabled {
74
74
  opacity: 0.6;
75
75
  cursor: not-allowed;
76
76
  }
@@ -1,20 +1,8 @@
1
1
  import { h } from "@stencil/core";
2
- export class CustomButton {
3
- /**
4
- * Visual variant of the button.
5
- */
2
+ export class FastButton {
6
3
  variant = 'primary';
7
- /**
8
- * Native button type (button or submit).
9
- */
10
- type = 'button';
11
- /**
12
- * When true, the button is disabled and does not emit events.
13
- */
4
+ type = 'submit';
14
5
  disabled = false;
15
- /**
16
- * Emitted when the button is clicked (not emitted when disabled).
17
- */
18
6
  buttonClick;
19
7
  handleClick = (e) => {
20
8
  if (this.disabled) {
@@ -25,11 +13,11 @@ export class CustomButton {
25
13
  this.buttonClick.emit(e);
26
14
  };
27
15
  render() {
28
- return (h("button", { key: '3b74909afe4e305dfd38f0b07657202e3d5bfccd', type: this.type, class: {
29
- 'custom-button': true,
30
- [`custom-button--${this.variant}`]: true,
31
- 'custom-button--disabled': this.disabled,
32
- }, disabled: this.disabled, onClick: this.handleClick }, h("slot", { key: '49845d350e4665c5c66e30bd9262f788eaaa1e20' })));
16
+ return (h("button", { key: 'b8e811748ade97c941bdf197a311d69d2801a120', type: this.type, class: {
17
+ 'fast-button': true,
18
+ [`fast-button--${this.variant}`]: true,
19
+ 'fast-button--disabled': this.disabled,
20
+ }, disabled: this.disabled, onClick: this.handleClick }, h("slot", { key: 'a6b987059cc33799abd580ea11f0fe644a3973bf' })));
33
21
  }
34
22
  static get is() { return "fast-button"; }
35
23
  static get originalStyleUrls() {
@@ -62,7 +50,7 @@ export class CustomButton {
62
50
  "optional": false,
63
51
  "docs": {
64
52
  "tags": [],
65
- "text": "Visual variant of the button."
53
+ "text": ""
66
54
  },
67
55
  "getter": false,
68
56
  "setter": false,
@@ -88,13 +76,13 @@ export class CustomButton {
88
76
  "optional": false,
89
77
  "docs": {
90
78
  "tags": [],
91
- "text": "Native button type (button or submit)."
79
+ "text": ""
92
80
  },
93
81
  "getter": false,
94
82
  "setter": false,
95
83
  "reflect": false,
96
84
  "attribute": "type",
97
- "defaultValue": "'button'"
85
+ "defaultValue": "'submit'"
98
86
  },
99
87
  "disabled": {
100
88
  "type": "boolean",
@@ -108,7 +96,7 @@ export class CustomButton {
108
96
  "optional": false,
109
97
  "docs": {
110
98
  "tags": [],
111
- "text": "When true, the button is disabled and does not emit events."
99
+ "text": ""
112
100
  },
113
101
  "getter": false,
114
102
  "setter": false,
@@ -127,7 +115,7 @@ export class CustomButton {
127
115
  "composed": true,
128
116
  "docs": {
129
117
  "tags": [],
130
- "text": "Emitted when the button is clicked (not emitted when disabled)."
118
+ "text": ""
131
119
  },
132
120
  "complexType": {
133
121
  "original": "MouseEvent",
@@ -0,0 +1,5 @@
1
+ .fast-form {
2
+ display: flex;
3
+ gap: 0.5rem;
4
+ align-items: flex-start;
5
+ }