@prioticket/design-system-web 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/COMPONENT-DOCUMENTATION.md +608 -0
  2. package/README.md +229 -0
  3. package/component-documentation.json +1681 -0
  4. package/dist/components/pd-button.cjs.js +99 -0
  5. package/dist/components/pd-button.es.js +156 -0
  6. package/dist/components/pd-card.cjs.js +59 -0
  7. package/dist/components/pd-card.es.js +93 -0
  8. package/dist/components/pd-checkbox.cjs.js +85 -0
  9. package/dist/components/pd-checkbox.es.js +154 -0
  10. package/dist/components/pd-chip.cjs.js +118 -0
  11. package/dist/components/pd-chip.es.js +220 -0
  12. package/dist/components/pd-dialog.cjs.js +195 -0
  13. package/dist/components/pd-dialog.es.js +285 -0
  14. package/dist/components/pd-expandable-card.cjs.js +134 -0
  15. package/dist/components/pd-expandable-card.es.js +205 -0
  16. package/dist/components/pd-fab.cjs.js +119 -0
  17. package/dist/components/pd-fab.es.js +179 -0
  18. package/dist/components/pd-icon-button.cjs.js +159 -0
  19. package/dist/components/pd-icon-button.es.js +268 -0
  20. package/dist/components/pd-icon.cjs.js +71 -0
  21. package/dist/components/pd-icon.es.js +102 -0
  22. package/dist/components/pd-list.cjs.js +108 -0
  23. package/dist/components/pd-list.es.js +229 -0
  24. package/dist/components/pd-menu-item.cjs.js +85 -0
  25. package/dist/components/pd-menu-item.es.js +156 -0
  26. package/dist/components/pd-menu.cjs.js +42 -0
  27. package/dist/components/pd-menu.es.js +122 -0
  28. package/dist/components/pd-progress.cjs.js +72 -0
  29. package/dist/components/pd-progress.es.js +119 -0
  30. package/dist/components/pd-radio.cjs.js +38 -0
  31. package/dist/components/pd-radio.es.js +153 -0
  32. package/dist/components/pd-segmented-button.cjs.js +135 -0
  33. package/dist/components/pd-segmented-button.es.js +234 -0
  34. package/dist/components/pd-segmented-stepper.cjs.js +191 -0
  35. package/dist/components/pd-segmented-stepper.es.js +333 -0
  36. package/dist/components/pd-select.cjs.js +59 -0
  37. package/dist/components/pd-select.es.js +136 -0
  38. package/dist/components/pd-slider.cjs.js +42 -0
  39. package/dist/components/pd-slider.es.js +123 -0
  40. package/dist/components/pd-stepper.cjs.js +279 -0
  41. package/dist/components/pd-stepper.es.js +375 -0
  42. package/dist/components/pd-switch.cjs.js +57 -0
  43. package/dist/components/pd-switch.es.js +126 -0
  44. package/dist/components/pd-tabs.cjs.js +32 -0
  45. package/dist/components/pd-tabs.es.js +139 -0
  46. package/dist/components/pd-text-field.cjs.js +86 -0
  47. package/dist/components/pd-text-field.es.js +202 -0
  48. package/dist/design-system-web.css +1 -0
  49. package/dist/fonts/ProximaNova-Bold.woff2 +0 -0
  50. package/dist/fonts/ProximaNova-Extrabld.woff2 +0 -0
  51. package/dist/fonts/ProximaNova-Light.woff2 +0 -0
  52. package/dist/fonts/ProximaNova-Medium.woff2 +0 -0
  53. package/dist/fonts/ProximaNova-Regular.woff2 +0 -0
  54. package/dist/fonts/ProximaNova-Semibold.woff2 +0 -0
  55. package/dist/fonts/ProximaNovaCond-Semibold.woff2 +0 -0
  56. package/dist/fonts-only.css +59 -0
  57. package/dist/fonts.cjs.js +1 -0
  58. package/dist/fonts.es.js +1 -0
  59. package/dist/prioticket-design-system-web.cjs.js +1 -0
  60. package/dist/prioticket-design-system-web.es.js +52 -0
  61. package/dist/theme-only.css +311 -0
  62. package/dist/theme-with-fonts.cjs.js +1 -0
  63. package/dist/theme-with-fonts.css +372 -0
  64. package/dist/theme-with-fonts.es.js +2 -0
  65. package/dist/theme.cjs.js +1 -0
  66. package/dist/theme.es.js +1 -0
  67. package/dist/types/components/pd-button.d.ts +30 -0
  68. package/dist/types/components/pd-card.d.ts +8 -0
  69. package/dist/types/components/pd-checkbox.d.ts +16 -0
  70. package/dist/types/components/pd-chip.d.ts +26 -0
  71. package/dist/types/components/pd-dialog.d.ts +49 -0
  72. package/dist/types/components/pd-expandable-card.d.ts +39 -0
  73. package/dist/types/components/pd-fab.d.ts +17 -0
  74. package/dist/types/components/pd-icon-button.d.ts +24 -0
  75. package/dist/types/components/pd-icon.d.ts +9 -0
  76. package/dist/types/components/pd-list.d.ts +36 -0
  77. package/dist/types/components/pd-menu-item.d.ts +38 -0
  78. package/dist/types/components/pd-menu.d.ts +58 -0
  79. package/dist/types/components/pd-progress.d.ts +30 -0
  80. package/dist/types/components/pd-radio.d.ts +54 -0
  81. package/dist/types/components/pd-segmented-button.d.ts +53 -0
  82. package/dist/types/components/pd-segmented-stepper.d.ts +65 -0
  83. package/dist/types/components/pd-select.d.ts +46 -0
  84. package/dist/types/components/pd-slider.d.ts +43 -0
  85. package/dist/types/components/pd-stepper.d.ts +47 -0
  86. package/dist/types/components/pd-switch.d.ts +37 -0
  87. package/dist/types/components/pd-tabs.d.ts +54 -0
  88. package/dist/types/components/pd-text-field.d.ts +30 -0
  89. package/dist/types/fonts.d.ts +1 -0
  90. package/dist/types/index.d.ts +22 -0
  91. package/dist/types/theme-with-fonts.d.ts +2 -0
  92. package/dist/types/theme.d.ts +1 -0
  93. package/package.json +93 -0
@@ -0,0 +1,333 @@
1
+ import { css as h, LitElement as m, html as c } from "lit";
2
+ import { property as o, state as b, customElement as u } from "lit/decorators.js";
3
+ import "@material/web/icon/icon.js";
4
+ var v = Object.defineProperty, f = Object.getOwnPropertyDescriptor, i = (e, t, s, l) => {
5
+ for (var p = l > 1 ? void 0 : l ? f(t, s) : t, n = e.length - 1, d; n >= 0; n--)
6
+ (d = e[n]) && (p = (l ? d(t, s, p) : d(p)) || p);
7
+ return l && p && v(t, s, p), p;
8
+ };
9
+ let a = class extends m {
10
+ constructor() {
11
+ super(...arguments), this.activeStep = 0, this.completedSteps = [], this.size = "medium", this.disabled = !1, this.allowStepNavigation = !0, this._steps = [];
12
+ }
13
+ connectedCallback() {
14
+ super.connectedCallback(), this.addEventListener("stepper-item-click", this._handleStepClick);
15
+ }
16
+ disconnectedCallback() {
17
+ super.disconnectedCallback(), this.removeEventListener("stepper-item-click", this._handleStepClick);
18
+ }
19
+ firstUpdated() {
20
+ this._updateSteps();
21
+ }
22
+ updated(e) {
23
+ super.updated(e), (e.has("activeStep") || e.has("completedSteps") || e.has("disabled") || e.has("allowStepNavigation")) && this._updateSteps();
24
+ }
25
+ _updateSteps() {
26
+ const e = this.querySelectorAll("pd-stepper-item");
27
+ this._steps = Array.from(e), this._steps.forEach((t, s) => {
28
+ t.disabled = this.disabled || t.disabled, t.setAttribute("data-step-index", s.toString()), t.stepNumber = s + 1, this.completedSteps.includes(s) ? t.state = "completed" : s === this.activeStep ? t.state = "active" : t.state = "pending", t.clickable = this.allowStepNavigation && (t.state === "completed" || t.state === "active" && !this.disabled);
29
+ });
30
+ }
31
+ _handleStepClick(e) {
32
+ if (this.disabled) return;
33
+ const t = e.target, s = parseInt(t.getAttribute("data-step-index") || "0");
34
+ this.allowStepNavigation && (this.completedSteps.includes(s) || s === this.activeStep) && this.goToStep(s);
35
+ }
36
+ /** Navigate to a specific step. */
37
+ goToStep(e) {
38
+ if (e >= 0 && e < this._steps.length) {
39
+ const t = this.activeStep;
40
+ this.activeStep = e, this._updateSteps(), this.dispatchEvent(new CustomEvent("stepchange", {
41
+ detail: {
42
+ activeStep: this.activeStep,
43
+ previousStep: t,
44
+ totalSteps: this._steps.length
45
+ },
46
+ bubbles: !0,
47
+ composed: !0
48
+ }));
49
+ }
50
+ }
51
+ /** Move to the next step. */
52
+ nextStep() {
53
+ this.activeStep < this._steps.length - 1 && this.goToStep(this.activeStep + 1);
54
+ }
55
+ /** Move to the previous step. */
56
+ previousStep() {
57
+ this.activeStep > 0 && this.goToStep(this.activeStep - 1);
58
+ }
59
+ /** Mark the current step as completed and move to the next step. */
60
+ completeCurrentStep() {
61
+ this.completeStep(this.activeStep);
62
+ }
63
+ /** Mark a specific step as completed. */
64
+ completeStep(e) {
65
+ this.completedSteps.includes(e) || (this.completedSteps = [...this.completedSteps, e].sort((t, s) => t - s), this._updateSteps(), this.dispatchEvent(new CustomEvent("stepcomplete", {
66
+ detail: {
67
+ completedStep: e,
68
+ completedSteps: this.completedSteps,
69
+ totalSteps: this._steps.length
70
+ },
71
+ bubbles: !0,
72
+ composed: !0
73
+ }))), e === this.activeStep && this.activeStep < this._steps.length - 1 && this.nextStep();
74
+ }
75
+ /** Reset all steps to pending state. */
76
+ reset() {
77
+ this.activeStep = 0, this.completedSteps = [], this._updateSteps();
78
+ }
79
+ render() {
80
+ return c`
81
+ <div class="segmented-stepper" role="group" aria-label="Progress stepper">
82
+ <slot @slotchange=${this._updateSteps}></slot>
83
+ </div>
84
+ `;
85
+ }
86
+ };
87
+ a.styles = h`
88
+ :host {
89
+ display: inline-flex;
90
+ font-family: var(--md-sys-typescale-body-large-font, 'Proxima Nova', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
91
+ }
92
+
93
+ .segmented-stepper {
94
+ display: inline-flex;
95
+ border-radius: var(--md-sys-shape-corner-small, 8px);
96
+ border: 1px solid var(--md-sys-color-outline-variant, #cac4d0);
97
+ overflow: hidden;
98
+ background: var(--md-sys-color-surface, #fef7ff);
99
+ }
100
+
101
+ :host([disabled]) .segmented-stepper {
102
+ border-color: var(--md-sys-color-on-surface-opacity-12, rgba(29, 27, 32, 0.12));
103
+ background: var(--md-sys-color-surface-variant, #e7e0ec);
104
+ }
105
+
106
+ /* Size variants */
107
+ :host([size='small']) {
108
+ --md-stepper-container-height: var(--md-sys-button-container-height-small, 2rem);
109
+ }
110
+
111
+ :host([size='medium']) {
112
+ --md-stepper-container-height: var(--md-sys-button-container-height-medium, 2.5rem);
113
+ }
114
+
115
+ :host([size='large']) {
116
+ --md-stepper-container-height: var(--md-sys-button-container-height-large, 3rem);
117
+ }
118
+
119
+ ::slotted(pd-stepper-item) {
120
+ border-right: 1px solid var(--md-sys-color-outline-variant, #cac4d0);
121
+ }
122
+
123
+ ::slotted(pd-stepper-item:last-child) {
124
+ border-right: none;
125
+ }
126
+
127
+ :host([disabled]) ::slotted(pd-stepper-item) {
128
+ border-right-color: var(--md-sys-color-on-surface-opacity-12, rgba(29, 27, 32, 0.12));
129
+ }
130
+ `;
131
+ i([
132
+ o({ type: Number, attribute: "active-step" })
133
+ ], a.prototype, "activeStep", 2);
134
+ i([
135
+ o({ type: Array, attribute: "completed-steps" })
136
+ ], a.prototype, "completedSteps", 2);
137
+ i([
138
+ o({ type: String, reflect: !0 })
139
+ ], a.prototype, "size", 2);
140
+ i([
141
+ o({ type: Boolean, reflect: !0 })
142
+ ], a.prototype, "disabled", 2);
143
+ i([
144
+ o({ type: Boolean, attribute: "allow-step-navigation" })
145
+ ], a.prototype, "allowStepNavigation", 2);
146
+ i([
147
+ b()
148
+ ], a.prototype, "_steps", 2);
149
+ a = i([
150
+ u("pd-segmented-stepper")
151
+ ], a);
152
+ let r = class extends m {
153
+ constructor() {
154
+ super(...arguments), this.stepNumber = 1, this.state = "pending", this.disabled = !1, this.clickable = !1, this.icon = "";
155
+ }
156
+ _handleClick() {
157
+ this.disabled || !this.clickable || this.dispatchEvent(new CustomEvent("stepper-item-click", {
158
+ detail: { stepNumber: this.stepNumber },
159
+ bubbles: !0,
160
+ composed: !0
161
+ }));
162
+ }
163
+ render() {
164
+ const e = this.state === "completed" && !this.icon, t = this.state !== "completed" && !this.icon;
165
+ return c`
166
+ <button
167
+ class="step ${this.state} ${this.clickable ? "clickable" : ""}"
168
+ ?disabled=${this.disabled}
169
+ @click=${this._handleClick}
170
+ aria-current=${this.state === "active" ? "step" : "false"}
171
+ aria-label="Step ${this.stepNumber}: ${this.state}"
172
+ >
173
+ <div class="step-indicator">
174
+ ${e ? c`<md-icon class="check-icon">check</md-icon>` : ""}
175
+ ${this.icon ? c`<md-icon class="step-icon">${this.icon}</md-icon>` : ""}
176
+ ${t ? c`<span class="step-number">${this.stepNumber}</span>` : ""}
177
+ </div>
178
+ <span class="step-label"><slot></slot></span>
179
+ </button>
180
+ `;
181
+ }
182
+ };
183
+ r.styles = h`
184
+ :host {
185
+ display: inline-flex;
186
+ }
187
+
188
+ .step {
189
+ display: inline-flex;
190
+ align-items: center;
191
+ gap: var(--md-sys-spacing-200, 8px);
192
+ padding: 0 var(--md-sys-spacing-300, 12px);
193
+ height: var(--md-stepper-container-height, 2.5rem);
194
+ border: none;
195
+ background: transparent;
196
+ color: var(--md-sys-color-on-surface-variant, #49454f);
197
+ font-family: inherit;
198
+ font-size: var(--md-sys-typescale-label-large-size, 0.875rem);
199
+ font-weight: var(--md-sys-typescale-label-large-weight, 500);
200
+ cursor: default;
201
+ transition: all 150ms ease-in-out;
202
+ position: relative;
203
+ outline: none;
204
+ min-width: fit-content;
205
+ }
206
+
207
+ .step.clickable {
208
+ cursor: pointer;
209
+ }
210
+
211
+ .step.clickable:hover:not(:disabled) {
212
+ background: var(--md-sys-color-surface-container-highest, rgba(29, 27, 32, 0.08));
213
+ }
214
+
215
+ .step.clickable:focus-visible {
216
+ background: var(--md-sys-color-surface-container-highest, rgba(29, 27, 32, 0.12));
217
+ outline: 2px solid var(--md-sys-color-primary, #6750a4);
218
+ outline-offset: -2px;
219
+ }
220
+
221
+ .step.clickable:active:not(:disabled) {
222
+ background: var(--md-sys-color-surface-container-highest, rgba(29, 27, 32, 0.16));
223
+ }
224
+
225
+ /* Step states */
226
+ .step.pending {
227
+ color: var(--md-sys-color-on-surface-variant, #49454f);
228
+ }
229
+
230
+ .step.active {
231
+ background: var(--md-sys-color-primary-container, #eaddff);
232
+ color: var(--md-sys-color-on-primary-container, #21005d);
233
+ font-weight: 600;
234
+ }
235
+
236
+ .step.completed {
237
+ background: var(--md-sys-color-secondary-container, #e8def8);
238
+ color: var(--md-sys-color-on-secondary-container, #1d192b);
239
+ }
240
+
241
+ .step.disabled {
242
+ color: var(--md-sys-color-on-surface-opacity-38, rgba(29, 27, 32, 0.38));
243
+ cursor: not-allowed;
244
+ }
245
+
246
+ /* Step indicator */
247
+ .step-indicator {
248
+ display: flex;
249
+ align-items: center;
250
+ justify-content: center;
251
+ width: 20px;
252
+ height: 20px;
253
+ border-radius: 50%;
254
+ background: var(--md-sys-color-outline-variant, #cac4d0);
255
+ color: var(--md-sys-color-on-surface, #1d1b20);
256
+ font-size: 0.75rem;
257
+ font-weight: 600;
258
+ flex-shrink: 0;
259
+ transition: all 150ms ease-in-out;
260
+ }
261
+
262
+ .step.pending .step-indicator {
263
+ background: var(--md-sys-color-outline-variant, #cac4d0);
264
+ color: var(--md-sys-color-on-surface-variant, #49454f);
265
+ }
266
+
267
+ .step.active .step-indicator {
268
+ background: var(--md-sys-color-primary, #6750a4);
269
+ color: var(--md-sys-color-on-primary, #ffffff);
270
+ }
271
+
272
+ .step.completed .step-indicator {
273
+ background: var(--md-sys-color-secondary, #625b71);
274
+ color: var(--md-sys-color-on-secondary, #ffffff);
275
+ }
276
+
277
+ .step.disabled .step-indicator {
278
+ background: var(--md-sys-color-on-surface-opacity-12, rgba(29, 27, 32, 0.12));
279
+ color: var(--md-sys-color-on-surface-opacity-38, rgba(29, 27, 32, 0.38));
280
+ }
281
+
282
+ /* Icons */
283
+ .check-icon,
284
+ .step-icon {
285
+ --md-icon-size: 14px;
286
+ }
287
+
288
+ .step-number {
289
+ font-size: 0.75rem;
290
+ font-weight: 600;
291
+ line-height: 1;
292
+ }
293
+
294
+ .step-label {
295
+ white-space: nowrap;
296
+ }
297
+
298
+ /* Accessibility */
299
+ @media (prefers-reduced-motion: reduce) {
300
+ .step,
301
+ .step-indicator {
302
+ transition: none;
303
+ }
304
+ }
305
+
306
+ /* Focus ring for keyboard navigation */
307
+ .step:focus-visible {
308
+ outline: 2px solid var(--md-sys-color-primary, #6750a4);
309
+ outline-offset: 2px;
310
+ }
311
+ `;
312
+ i([
313
+ o({ type: Number, attribute: "step-number" })
314
+ ], r.prototype, "stepNumber", 2);
315
+ i([
316
+ o({ type: String, reflect: !0 })
317
+ ], r.prototype, "state", 2);
318
+ i([
319
+ o({ type: Boolean, reflect: !0 })
320
+ ], r.prototype, "disabled", 2);
321
+ i([
322
+ o({ type: Boolean })
323
+ ], r.prototype, "clickable", 2);
324
+ i([
325
+ o({ type: String })
326
+ ], r.prototype, "icon", 2);
327
+ r = i([
328
+ u("pd-stepper-item")
329
+ ], r);
330
+ export {
331
+ a as PdSegmentedStepper,
332
+ r as PdStepperItem
333
+ };
@@ -0,0 +1,59 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lit"),e=require("lit/decorators.js");require("@material/web/select/filled-select.js");require("@material/web/select/outlined-select.js");require("@material/web/select/select-option.js");require("@material/web/icon/icon.js");var p=Object.defineProperty,c=Object.getOwnPropertyDescriptor,t=(n,r,i,s)=>{for(var l=s>1?void 0:s?c(r,i):r,d=n.length-1,a;d>=0;d--)(a=n[d])&&(l=(s?a(r,i,l):a(l))||l);return s&&l&&p(r,i,l),l};exports.PdSelect=class extends o.LitElement{constructor(){super(...arguments),this.variant="outlined",this.label="",this.value="",this.disabled=!1,this.required=!1,this.errorText="",this.error=!1,this.supportingText="",this.options=[],this.leadingIcon=""}handleChange(r){r.stopPropagation();const i=r.target;this.value=i.value,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}}))}handleOpen(){this.trailingIcon?.classList.add("rotated")}handleClose(){this.trailingIcon?.classList.remove("rotated")}render(){const r=o.html`
2
+ ${this.leadingIcon?o.html`<md-icon slot="leading-icon">${this.leadingIcon}</md-icon>`:""}
3
+ <md-icon slot="trailing-icon">keyboard_arrow_down</md-icon>
4
+
5
+ ${this.options.map(i=>o.html`
6
+ <md-select-option .value=${i.value} ?disabled=${i.disabled}>
7
+ <div slot="headline">${i.label}</div>
8
+ </md-select-option>
9
+ `)}
10
+ `;return this.variant==="filled"?o.html`
11
+ <md-filled-select
12
+ .label=${this.label}
13
+ .value=${this.value}
14
+ ?disabled=${this.disabled}
15
+ ?required=${this.required}
16
+ ?error=${this.error}
17
+ .errorText=${this.errorText}
18
+ .supportingText=${this.supportingText}
19
+ @change=${this.handleChange}
20
+ @opening=${this.handleOpen}
21
+ @closed=${this.handleClose}
22
+ >
23
+ ${r}
24
+ </md-filled-select>
25
+ `:o.html`
26
+ <md-outlined-select
27
+ .label=${this.label}
28
+ .value=${this.value}
29
+ ?disabled=${this.disabled}
30
+ ?required=${this.required}
31
+ ?error=${this.error}
32
+ .errorText=${this.errorText}
33
+ .supportingText=${this.supportingText}
34
+ @change=${this.handleChange}
35
+ @opening=${this.handleOpen}
36
+ @closed=${this.handleClose}
37
+ >
38
+ ${r}
39
+ </md-outlined-select>
40
+ `}};exports.PdSelect.styles=o.css`
41
+ :host {
42
+ display: inline-block;
43
+ width: 100%;
44
+ --md-filled-select-text-field-container-shape: var(--md-sys-shape-corner-small);
45
+ --md-outlined-select-text-field-container-shape: var(--md-sys-shape-corner-small);
46
+ }
47
+ md-filled-select,
48
+ md-outlined-select {
49
+ width: 100%;
50
+ }
51
+
52
+ [slot="trailing-icon"] {
53
+ transition: transform var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-emphasized, ease);
54
+ }
55
+
56
+ [slot="trailing-icon"].rotated {
57
+ transform: rotate(180deg);
58
+ }
59
+ `;t([e.query("md-filled-select, md-outlined-select")],exports.PdSelect.prototype,"select",2);t([e.query('[slot="trailing-icon"]')],exports.PdSelect.prototype,"trailingIcon",2);t([e.property({type:String})],exports.PdSelect.prototype,"variant",2);t([e.property({type:String})],exports.PdSelect.prototype,"label",2);t([e.property({type:String,reflect:!0})],exports.PdSelect.prototype,"value",2);t([e.property({type:Boolean,reflect:!0})],exports.PdSelect.prototype,"disabled",2);t([e.property({type:Boolean})],exports.PdSelect.prototype,"required",2);t([e.property({type:String,attribute:"error-text"})],exports.PdSelect.prototype,"errorText",2);t([e.property({type:Boolean})],exports.PdSelect.prototype,"error",2);t([e.property({type:String,attribute:"supporting-text"})],exports.PdSelect.prototype,"supportingText",2);t([e.property({type:Array})],exports.PdSelect.prototype,"options",2);t([e.property({type:String,attribute:"leading-icon"})],exports.PdSelect.prototype,"leadingIcon",2);exports.PdSelect=t([e.customElement("pd-select")],exports.PdSelect);
@@ -0,0 +1,136 @@
1
+ import { css as c, LitElement as u, html as l } from "lit";
2
+ import { query as h, property as i, customElement as m } from "lit/decorators.js";
3
+ import "@material/web/select/filled-select.js";
4
+ import "@material/web/select/outlined-select.js";
5
+ import "@material/web/select/select-option.js";
6
+ import "@material/web/icon/icon.js";
7
+ var g = Object.defineProperty, y = Object.getOwnPropertyDescriptor, t = (o, r, a, n) => {
8
+ for (var s = n > 1 ? void 0 : n ? y(r, a) : r, d = o.length - 1, p; d >= 0; d--)
9
+ (p = o[d]) && (s = (n ? p(r, a, s) : p(s)) || s);
10
+ return n && s && g(r, a, s), s;
11
+ };
12
+ let e = class extends u {
13
+ constructor() {
14
+ super(...arguments), this.variant = "outlined", this.label = "", this.value = "", this.disabled = !1, this.required = !1, this.errorText = "", this.error = !1, this.supportingText = "", this.options = [], this.leadingIcon = "";
15
+ }
16
+ handleChange(o) {
17
+ o.stopPropagation();
18
+ const r = o.target;
19
+ this.value = r.value, this.dispatchEvent(new CustomEvent("change", {
20
+ bubbles: !0,
21
+ composed: !0,
22
+ detail: { value: this.value }
23
+ }));
24
+ }
25
+ handleOpen() {
26
+ this.trailingIcon?.classList.add("rotated");
27
+ }
28
+ handleClose() {
29
+ this.trailingIcon?.classList.remove("rotated");
30
+ }
31
+ render() {
32
+ const o = l`
33
+ ${this.leadingIcon ? l`<md-icon slot="leading-icon">${this.leadingIcon}</md-icon>` : ""}
34
+ <md-icon slot="trailing-icon">keyboard_arrow_down</md-icon>
35
+
36
+ ${this.options.map((r) => l`
37
+ <md-select-option .value=${r.value} ?disabled=${r.disabled}>
38
+ <div slot="headline">${r.label}</div>
39
+ </md-select-option>
40
+ `)}
41
+ `;
42
+ return this.variant === "filled" ? l`
43
+ <md-filled-select
44
+ .label=${this.label}
45
+ .value=${this.value}
46
+ ?disabled=${this.disabled}
47
+ ?required=${this.required}
48
+ ?error=${this.error}
49
+ .errorText=${this.errorText}
50
+ .supportingText=${this.supportingText}
51
+ @change=${this.handleChange}
52
+ @opening=${this.handleOpen}
53
+ @closed=${this.handleClose}
54
+ >
55
+ ${o}
56
+ </md-filled-select>
57
+ ` : l`
58
+ <md-outlined-select
59
+ .label=${this.label}
60
+ .value=${this.value}
61
+ ?disabled=${this.disabled}
62
+ ?required=${this.required}
63
+ ?error=${this.error}
64
+ .errorText=${this.errorText}
65
+ .supportingText=${this.supportingText}
66
+ @change=${this.handleChange}
67
+ @opening=${this.handleOpen}
68
+ @closed=${this.handleClose}
69
+ >
70
+ ${o}
71
+ </md-outlined-select>
72
+ `;
73
+ }
74
+ };
75
+ e.styles = c`
76
+ :host {
77
+ display: inline-block;
78
+ width: 100%;
79
+ --md-filled-select-text-field-container-shape: var(--md-sys-shape-corner-small);
80
+ --md-outlined-select-text-field-container-shape: var(--md-sys-shape-corner-small);
81
+ }
82
+ md-filled-select,
83
+ md-outlined-select {
84
+ width: 100%;
85
+ }
86
+
87
+ [slot="trailing-icon"] {
88
+ transition: transform var(--md-sys-motion-duration-medium2, 300ms) var(--md-sys-motion-easing-emphasized, ease);
89
+ }
90
+
91
+ [slot="trailing-icon"].rotated {
92
+ transform: rotate(180deg);
93
+ }
94
+ `;
95
+ t([
96
+ h("md-filled-select, md-outlined-select")
97
+ ], e.prototype, "select", 2);
98
+ t([
99
+ h('[slot="trailing-icon"]')
100
+ ], e.prototype, "trailingIcon", 2);
101
+ t([
102
+ i({ type: String })
103
+ ], e.prototype, "variant", 2);
104
+ t([
105
+ i({ type: String })
106
+ ], e.prototype, "label", 2);
107
+ t([
108
+ i({ type: String, reflect: !0 })
109
+ ], e.prototype, "value", 2);
110
+ t([
111
+ i({ type: Boolean, reflect: !0 })
112
+ ], e.prototype, "disabled", 2);
113
+ t([
114
+ i({ type: Boolean })
115
+ ], e.prototype, "required", 2);
116
+ t([
117
+ i({ type: String, attribute: "error-text" })
118
+ ], e.prototype, "errorText", 2);
119
+ t([
120
+ i({ type: Boolean })
121
+ ], e.prototype, "error", 2);
122
+ t([
123
+ i({ type: String, attribute: "supporting-text" })
124
+ ], e.prototype, "supportingText", 2);
125
+ t([
126
+ i({ type: Array })
127
+ ], e.prototype, "options", 2);
128
+ t([
129
+ i({ type: String, attribute: "leading-icon" })
130
+ ], e.prototype, "leadingIcon", 2);
131
+ e = t([
132
+ m("pd-select")
133
+ ], e);
134
+ export {
135
+ e as PdSelect
136
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("lit"),t=require("lit/decorators.js");require("@material/web/slider/slider.js");var u=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=(s,a,e,i)=>{for(var l=i>1?void 0:i?n(a,e):a,d=s.length-1,o;d>=0;d--)(o=s[d])&&(l=(i?o(a,e,l):o(l))||l);return i&&l&&u(a,e,l),l};exports.PdSlider=class extends p.LitElement{constructor(){super(...arguments),this.disabled=!1,this.min=0,this.max=100,this.value=0,this.step=1,this.ticks=!1,this.labeled=!1,this.valueIndicator=!1,this.ariaLabel="",this.ariaLabelStart="",this.ariaLabelEnd=""}render(){const a=this.valueStart!==void 0||this.valueEnd!==void 0;return p.html`
2
+ <md-slider
3
+ ?disabled=${this.disabled}
4
+ min=${this.min}
5
+ max=${this.max}
6
+ .value=${this.value}
7
+ .valueStart=${this.valueStart}
8
+ .valueEnd=${this.valueEnd}
9
+ step=${this.step}
10
+ ?ticks=${this.ticks}
11
+ ?labeled=${this.labeled}
12
+ ?range=${a}
13
+ aria-label=${this.ariaLabel}
14
+ aria-label-start=${this.ariaLabelStart}
15
+ aria-label-end=${this.ariaLabelEnd}
16
+ @input=${this.handleInput}
17
+ @change=${this.handleChange}
18
+ ></md-slider>
19
+ `}handleInput(a){const e=a.target;this.value=e.value??0,e.valueStart!==void 0&&(this.valueStart=e.valueStart),e.valueEnd!==void 0&&(this.valueEnd=e.valueEnd),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value,valueStart:this.valueStart,valueEnd:this.valueEnd}}))}handleChange(a){const e=a.target;this.value=e.value??0,e.valueStart!==void 0&&(this.valueStart=e.valueStart),e.valueEnd!==void 0&&(this.valueEnd=e.valueEnd),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value,valueStart:this.valueStart,valueEnd:this.valueEnd}}))}};exports.PdSlider.styles=p.css`
20
+ :host {
21
+ display: inline-block;
22
+ width: 100%;
23
+ }
24
+
25
+ md-slider {
26
+ width: 100%;
27
+ /* Apply Prioticket design system tokens */
28
+ --md-slider-handle-color: var(--md-sys-color-primary);
29
+ --md-slider-active-track-color: var(--md-sys-color-primary);
30
+ --md-slider-inactive-track-color: var(--md-sys-color-outline-variant);
31
+ --md-slider-handle-shape: var(--md-sys-shape-corner-full);
32
+ --md-slider-tick-color: var(--md-sys-color-on-surface-variant);
33
+ --md-slider-label-container-color: var(--md-sys-color-inverse-surface);
34
+ --md-slider-label-text-color: var(--md-sys-color-inverse-on-surface);
35
+ }
36
+
37
+ :host([disabled]) md-slider {
38
+ --md-slider-handle-color: var(--md-sys-color-on-surface);
39
+ --md-slider-active-track-color: var(--md-sys-color-on-surface);
40
+ opacity: 0.38;
41
+ }
42
+ `;r([t.query("md-slider")],exports.PdSlider.prototype,"slider",2);r([t.property({type:Boolean,reflect:!0})],exports.PdSlider.prototype,"disabled",2);r([t.property({type:Number})],exports.PdSlider.prototype,"min",2);r([t.property({type:Number})],exports.PdSlider.prototype,"max",2);r([t.property({type:Number})],exports.PdSlider.prototype,"value",2);r([t.property({type:Number})],exports.PdSlider.prototype,"step",2);r([t.property({type:Boolean})],exports.PdSlider.prototype,"ticks",2);r([t.property({type:Boolean})],exports.PdSlider.prototype,"labeled",2);r([t.property({type:Boolean,attribute:"value-indicator"})],exports.PdSlider.prototype,"valueIndicator",2);r([t.property({type:Number,attribute:"value-start"})],exports.PdSlider.prototype,"valueStart",2);r([t.property({type:Number,attribute:"value-end"})],exports.PdSlider.prototype,"valueEnd",2);r([t.property({type:String,attribute:"aria-label"})],exports.PdSlider.prototype,"ariaLabel",2);r([t.property({type:String,attribute:"aria-label-start"})],exports.PdSlider.prototype,"ariaLabelStart",2);r([t.property({type:String,attribute:"aria-label-end"})],exports.PdSlider.prototype,"ariaLabelEnd",2);exports.PdSlider=r([t.customElement("pd-slider")],exports.PdSlider);
@@ -0,0 +1,123 @@
1
+ import { css as u, LitElement as v, html as p } from "lit";
2
+ import { query as h, property as r, customElement as c } from "lit/decorators.js";
3
+ import "@material/web/slider/slider.js";
4
+ var m = Object.defineProperty, b = Object.getOwnPropertyDescriptor, a = (l, t, o, s) => {
5
+ for (var i = s > 1 ? void 0 : s ? b(t, o) : t, d = l.length - 1, n; d >= 0; d--)
6
+ (n = l[d]) && (i = (s ? n(t, o, i) : n(i)) || i);
7
+ return s && i && m(t, o, i), i;
8
+ };
9
+ let e = class extends v {
10
+ constructor() {
11
+ super(...arguments), this.disabled = !1, this.min = 0, this.max = 100, this.value = 0, this.step = 1, this.ticks = !1, this.labeled = !1, this.valueIndicator = !1, this.ariaLabel = "", this.ariaLabelStart = "", this.ariaLabelEnd = "";
12
+ }
13
+ render() {
14
+ const l = this.valueStart !== void 0 || this.valueEnd !== void 0;
15
+ return p`
16
+ <md-slider
17
+ ?disabled=${this.disabled}
18
+ min=${this.min}
19
+ max=${this.max}
20
+ .value=${this.value}
21
+ .valueStart=${this.valueStart}
22
+ .valueEnd=${this.valueEnd}
23
+ step=${this.step}
24
+ ?ticks=${this.ticks}
25
+ ?labeled=${this.labeled}
26
+ ?range=${l}
27
+ aria-label=${this.ariaLabel}
28
+ aria-label-start=${this.ariaLabelStart}
29
+ aria-label-end=${this.ariaLabelEnd}
30
+ @input=${this.handleInput}
31
+ @change=${this.handleChange}
32
+ ></md-slider>
33
+ `;
34
+ }
35
+ handleInput(l) {
36
+ const t = l.target;
37
+ this.value = t.value ?? 0, t.valueStart !== void 0 && (this.valueStart = t.valueStart), t.valueEnd !== void 0 && (this.valueEnd = t.valueEnd), this.dispatchEvent(new CustomEvent("input", {
38
+ bubbles: !0,
39
+ composed: !0,
40
+ detail: { value: this.value, valueStart: this.valueStart, valueEnd: this.valueEnd }
41
+ }));
42
+ }
43
+ handleChange(l) {
44
+ const t = l.target;
45
+ this.value = t.value ?? 0, t.valueStart !== void 0 && (this.valueStart = t.valueStart), t.valueEnd !== void 0 && (this.valueEnd = t.valueEnd), this.dispatchEvent(new CustomEvent("change", {
46
+ bubbles: !0,
47
+ composed: !0,
48
+ detail: { value: this.value, valueStart: this.valueStart, valueEnd: this.valueEnd }
49
+ }));
50
+ }
51
+ };
52
+ e.styles = u`
53
+ :host {
54
+ display: inline-block;
55
+ width: 100%;
56
+ }
57
+
58
+ md-slider {
59
+ width: 100%;
60
+ /* Apply Prioticket design system tokens */
61
+ --md-slider-handle-color: var(--md-sys-color-primary);
62
+ --md-slider-active-track-color: var(--md-sys-color-primary);
63
+ --md-slider-inactive-track-color: var(--md-sys-color-outline-variant);
64
+ --md-slider-handle-shape: var(--md-sys-shape-corner-full);
65
+ --md-slider-tick-color: var(--md-sys-color-on-surface-variant);
66
+ --md-slider-label-container-color: var(--md-sys-color-inverse-surface);
67
+ --md-slider-label-text-color: var(--md-sys-color-inverse-on-surface);
68
+ }
69
+
70
+ :host([disabled]) md-slider {
71
+ --md-slider-handle-color: var(--md-sys-color-on-surface);
72
+ --md-slider-active-track-color: var(--md-sys-color-on-surface);
73
+ opacity: 0.38;
74
+ }
75
+ `;
76
+ a([
77
+ h("md-slider")
78
+ ], e.prototype, "slider", 2);
79
+ a([
80
+ r({ type: Boolean, reflect: !0 })
81
+ ], e.prototype, "disabled", 2);
82
+ a([
83
+ r({ type: Number })
84
+ ], e.prototype, "min", 2);
85
+ a([
86
+ r({ type: Number })
87
+ ], e.prototype, "max", 2);
88
+ a([
89
+ r({ type: Number })
90
+ ], e.prototype, "value", 2);
91
+ a([
92
+ r({ type: Number })
93
+ ], e.prototype, "step", 2);
94
+ a([
95
+ r({ type: Boolean })
96
+ ], e.prototype, "ticks", 2);
97
+ a([
98
+ r({ type: Boolean })
99
+ ], e.prototype, "labeled", 2);
100
+ a([
101
+ r({ type: Boolean, attribute: "value-indicator" })
102
+ ], e.prototype, "valueIndicator", 2);
103
+ a([
104
+ r({ type: Number, attribute: "value-start" })
105
+ ], e.prototype, "valueStart", 2);
106
+ a([
107
+ r({ type: Number, attribute: "value-end" })
108
+ ], e.prototype, "valueEnd", 2);
109
+ a([
110
+ r({ type: String, attribute: "aria-label" })
111
+ ], e.prototype, "ariaLabel", 2);
112
+ a([
113
+ r({ type: String, attribute: "aria-label-start" })
114
+ ], e.prototype, "ariaLabelStart", 2);
115
+ a([
116
+ r({ type: String, attribute: "aria-label-end" })
117
+ ], e.prototype, "ariaLabelEnd", 2);
118
+ e = a([
119
+ c("pd-slider")
120
+ ], e);
121
+ export {
122
+ e as PdSlider
123
+ };