adp-web-components 0.3.18 → 0.3.19
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.
- package/dist/cjs/branch-slot-dropdown_15.cjs.entry.js +31 -31
- package/dist/cjs/dead-stock-lookup_3.cjs.entry.js +9 -9
- package/dist/cjs/flexible-container.cjs.entry.js +3 -3
- package/dist/cjs/form-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/form-date-picker.cjs.entry.js +5 -5
- package/dist/cjs/form-input_7.cjs.entry.js +17 -17
- package/dist/cjs/form-switch.cjs.entry.js +2 -2
- package/dist/cjs/form-time-picker.cjs.entry.js +6 -6
- package/dist/cjs/{functions-C9XsBzrL.js → functions-DL7oNhTD.js} +1 -1
- package/dist/cjs/general-form.cjs.entry.js +4 -4
- package/dist/cjs/general-inquiry-form.cjs.entry.js +4 -4
- package/dist/cjs/{get-local-language-BnUadlVY.js → get-local-language-BuK1vyX4.js} +1 -1
- package/dist/cjs/{get-mock-files-Dr5dpq1N.js → get-mock-files-D0TNQtTV.js} +1 -1
- package/dist/cjs/information-table.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loading-spinner.cjs.entry.js +2 -2
- package/dist/cjs/manufacturer-part-lookup.cjs.entry.js +3 -3
- package/dist/cjs/part-lookup.cjs.entry.js +2 -2
- package/dist/cjs/service-booking-form.cjs.entry.js +4 -4
- package/dist/cjs/shift-accordion.cjs.entry.js +1 -1
- package/dist/cjs/shift-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/shift-components.cjs.js +1 -1
- package/dist/cjs/shift-slider.cjs.entry.js +2 -2
- package/dist/cjs/shift-switch.cjs.entry.js +1 -1
- package/dist/cjs/shift-tab-content.cjs.entry.js +2 -2
- package/dist/cjs/shift-tabs_2.cjs.entry.js +92 -34
- package/dist/cjs/ssc-lookup-form.cjs.entry.js +4 -4
- package/dist/cjs/test-drive-form.cjs.entry.js +4 -4
- package/dist/cjs/triangle-alert-CTvU1eGY.js +248 -0
- package/dist/cjs/vehicle-accessories_8.cjs.entry.js +177 -117
- package/dist/cjs/vehicle-lookup.cjs.entry.js +3 -3
- package/dist/cjs/vehicle-quotation-form.cjs.entry.js +4 -4
- package/dist/collection/components/components/flexible-container.css +1 -1
- package/dist/collection/components/components/flexible-container.js +2 -2
- package/dist/collection/components/components/information-table.css +1 -1
- package/dist/collection/components/components/loading-spinner.css +1 -1
- package/dist/collection/components/components/loading-spinner.js +1 -1
- package/dist/collection/components/components/shift-accordion.js +1 -1
- package/dist/collection/components/components/shift-checkbox.js +1 -1
- package/dist/collection/components/components/shift-portal.css +1 -1
- package/dist/collection/components/components/shift-select-dropdown.css +1 -1
- package/dist/collection/components/components/shift-select-dropdown.js +2 -2
- package/dist/collection/components/components/shift-select.css +1 -1
- package/dist/collection/components/components/shift-select.js +3 -3
- package/dist/collection/components/components/shift-slider.css +1 -1
- package/dist/collection/components/components/shift-slider.js +1 -1
- package/dist/collection/components/components/shift-switch.js +1 -1
- package/dist/collection/components/components/shift-tab-content.css +1 -1
- package/dist/collection/components/components/shift-tab-content.js +1 -1
- package/dist/collection/components/components/shift-tabs.css +1 -1
- package/dist/collection/components/components/shift-tabs.js +2 -2
- package/dist/collection/components/form-elements/branch-slot-dropdown.js +1 -1
- package/dist/collection/components/form-elements/branch-slot-picker.js +2 -2
- package/dist/collection/components/form-elements/form-checkbox.js +1 -1
- package/dist/collection/components/form-elements/form-date-picker-legacy.js +4 -4
- package/dist/collection/components/form-elements/form-dialog.js +1 -1
- package/dist/collection/components/form-elements/form-file.js +2 -2
- package/dist/collection/components/form-elements/form-input.js +2 -2
- package/dist/collection/components/form-elements/form-inputs.css +1 -1
- package/dist/collection/components/form-elements/form-picker-input.js +2 -2
- package/dist/collection/components/form-elements/form-shadow-input.js +1 -1
- package/dist/collection/components/form-elements/form-stepper-control.js +2 -2
- package/dist/collection/components/form-elements/form-stepper-submit.js +2 -2
- package/dist/collection/components/form-elements/form-stepper.js +1 -1
- package/dist/collection/components/form-elements/form-structure-error.js +1 -1
- package/dist/collection/components/form-elements/form-submit.js +2 -2
- package/dist/collection/components/form-elements/form-switch.js +1 -1
- package/dist/collection/components/form-elements/form-text-area.js +2 -2
- package/dist/collection/components/form-elements/form-time-picker-legacy.js +5 -5
- package/dist/collection/components/form-elements/form-vin-input.js +2 -2
- package/dist/collection/components/forms/general-form.js +2 -2
- package/dist/collection/components/forms/general-inquiry.js +2 -2
- package/dist/collection/components/forms/service-booking.js +2 -2
- package/dist/collection/components/forms/ssc-lookup.js +2 -2
- package/dist/collection/components/forms/test-drive.js +2 -2
- package/dist/collection/components/forms/vehicle-quotation.js +2 -2
- package/dist/collection/components/part-lookup/dead-stock-lookup.css +1 -1
- package/dist/collection/components/part-lookup/dead-stock-lookup.js +2 -2
- package/dist/collection/components/part-lookup/distributor-lookup.css +1 -1
- package/dist/collection/components/part-lookup/distributor-lookup.js +2 -2
- package/dist/collection/components/part-lookup/manufacturer-lookup.css +1 -1
- package/dist/collection/components/part-lookup/manufacturer-part-lookup.css +1 -1
- package/dist/collection/components/part-lookup/manufacturer-part-lookup.js +1 -1
- package/dist/collection/components/part-lookup/part-lookup.css +1 -1
- package/dist/collection/components/vehicle-lookup/components/claimable-item-popover.js +37 -29
- package/dist/collection/components/vehicle-lookup/components/claimable-trace-modal.js +6 -2
- package/dist/collection/components/vehicle-lookup/components/service-history-sub-row.js +3 -3
- package/dist/collection/components/vehicle-lookup/vehicle-accessories.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-accessories.js +2 -2
- package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.js +121 -70
- package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.js +89 -29
- package/dist/collection/components/vehicle-lookup/vehicle-lookup.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-paint-thickness.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-sale-information.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-sale-information.js +2 -2
- package/dist/collection/components/vehicle-lookup/vehicle-service-history.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-service-history.js +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-specification.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-specification.js +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-warranty-details.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.js +1 -1
- package/dist/collection/components/vin-extractor/vin-extractor.js +1 -1
- package/dist/collection/global/lib/overlay.js +154 -0
- package/dist/collection/templates/assets/adp-wordmark.svg +1 -0
- package/dist/collection/templates/harness-theme.js +44 -0
- package/dist/collection/templates/harness.js +264 -0
- package/dist/components/branch-slot-dropdown.js +1 -1
- package/dist/components/branch-slot-picker.js +1 -1
- package/dist/components/dead-stock-lookup.js +1 -1
- package/dist/components/distributor-lookup.js +1 -1
- package/dist/components/flexible-container.js +1 -1
- package/dist/components/form-checkbox.js +1 -1
- package/dist/components/form-date-picker.js +1 -1
- package/dist/components/form-dialog.js +1 -1
- package/dist/components/form-file.js +1 -1
- package/dist/components/form-input-preview.js +1 -1
- package/dist/components/form-input.js +1 -1
- package/dist/components/form-phone-number.js +1 -1
- package/dist/components/form-picker-input.js +1 -1
- package/dist/components/form-select.js +1 -1
- package/dist/components/form-shadow-input.js +1 -1
- package/dist/components/form-stepper-control.js +1 -1
- package/dist/components/form-stepper-submit.js +1 -1
- package/dist/components/form-stepper.js +1 -1
- package/dist/components/form-structure-error.js +1 -1
- package/dist/components/form-structure.js +1 -1
- package/dist/components/form-submit.js +1 -1
- package/dist/components/form-switch.js +1 -1
- package/dist/components/form-text-area.js +1 -1
- package/dist/components/form-time-picker.js +1 -1
- package/dist/components/form-vin-input.js +1 -1
- package/dist/components/general-form.js +1 -1
- package/dist/components/general-inquiry-form.js +1 -1
- package/dist/components/information-table.js +1 -1
- package/dist/components/loading-spinner.js +1 -1
- package/dist/components/manufacturer-lookup.js +1 -1
- package/dist/components/manufacturer-part-lookup.js +1 -1
- package/dist/components/{p-Dseg250d.js → p-1fzw9lBq.js} +1 -1
- package/dist/components/{p-BVdlf8rx.js → p-6RmAcc2q.js} +1 -1
- package/dist/components/p-7Gq_FyNj.js +5 -0
- package/dist/components/p-8jIkK-Kb.js +5 -0
- package/dist/components/{p-DG-IgRFW.js → p-B2w49gNR.js} +1 -1
- package/dist/components/{p-B0lK-5c_.js → p-B7G2HjX0.js} +1 -1
- package/dist/components/{p-BMnQwtNn.js → p-B8hl68AM.js} +1 -1
- package/dist/components/{p-TtDq4UV5.js → p-B9xLzbPr.js} +1 -1
- package/dist/components/{p-Bs5AIefE.js → p-BKzXBxxc.js} +1 -1
- package/dist/components/{p-Cg4l7ICV.js → p-BUepGDZV.js} +1 -1
- package/dist/components/{p-Ci6LbIzY.js → p-B__72-PA.js} +1 -1
- package/dist/components/{p-DgJ9CCPI.js → p-BaZAgTxG.js} +1 -1
- package/dist/components/p-Bb2xDuqh.js +5 -0
- package/dist/components/{p-DTdm5I7a.js → p-BbQAkWw4.js} +1 -1
- package/dist/components/{p-BmQrqnnJ.js → p-BdPZ7u2w.js} +1 -1
- package/dist/components/{p-k8G1hnHC.js → p-Bj3cvdzl.js} +1 -1
- package/dist/components/{p-Bb4mauUH.js → p-BvMcY9Sk.js} +1 -1
- package/dist/components/p-C-yTwaAA.js +5 -0
- package/dist/components/{p-C31A3MHr.js → p-C6U9Fs9H.js} +1 -1
- package/dist/components/{p-CNqcMKLv.js → p-C8B9jarP.js} +1 -1
- package/dist/components/p-C8S2P4sw.js +5 -0
- package/dist/components/{p-B6EgLMus.js → p-CC16uGpN.js} +1 -1
- package/dist/components/p-CCounVqq.js +5 -0
- package/dist/components/{p-Dhi7g1w3.js → p-CIPh05sT.js} +1 -1
- package/dist/components/{p-CCuYl9VQ.js → p-CKwgX_v0.js} +1 -1
- package/dist/components/{p-Be01Kv65.js → p-CL5G_ZDE.js} +1 -1
- package/dist/components/{p-C2trAVtF.js → p-CPBmhspv.js} +1 -1
- package/dist/components/p-ClT5CzCZ.js +5 -0
- package/dist/components/{p-gzdpekMI.js → p-Cm94OAx9.js} +1 -1
- package/dist/components/{p-l738xIxs.js → p-CwbJMZVZ.js} +1 -1
- package/dist/components/{p-oZMLGlUq.js → p-D7Sj02XY.js} +1 -1
- package/dist/components/{p-BogCz_yJ.js → p-DWjIts4C.js} +1 -1
- package/dist/components/p-DbnN292R.js +5 -0
- package/dist/components/{p-D9pKibY5.js → p-DcMgXNpe.js} +1 -1
- package/dist/components/{p-B_jDD5xI.js → p-Dd_Xnn2b.js} +1 -1
- package/dist/components/{p-CuTemmgW.js → p-DeipsN8N.js} +1 -1
- package/dist/components/{p-Bl_BMBad.js → p-DkagL-e-.js} +1 -1
- package/dist/components/{p-DlqfD7uh.js → p-DpXLfNHS.js} +1 -1
- package/dist/components/{p-BiaT4YFg.js → p-Dsk1SNut.js} +1 -1
- package/dist/components/{p-uPiGNvhQ.js → p-DtZM3yHS.js} +1 -1
- package/dist/components/p-G7teNuSi.js +5 -0
- package/dist/components/{p-Ci6k5mSb.js → p-LkNhSGDO.js} +1 -1
- package/dist/components/{p-B0tcNl8W.js → p-Qh1y1RV2.js} +1 -1
- package/dist/components/{p-DcB3e3j1.js → p-R_rAJ4hF.js} +1 -1
- package/dist/components/p-_apNp6J3.js +5 -0
- package/dist/components/{p-D7wRHBb3.js → p-l2FHTMzv.js} +1 -1
- package/dist/components/part-lookup.js +1 -1
- package/dist/components/service-booking-form.js +1 -1
- package/dist/components/shift-accordion.js +1 -1
- package/dist/components/shift-checkbox.js +1 -1
- package/dist/components/shift-portal.js +1 -1
- package/dist/components/shift-select-dropdown.js +1 -1
- package/dist/components/shift-select.js +1 -1
- package/dist/components/shift-slider.js +1 -1
- package/dist/components/shift-switch.js +1 -1
- package/dist/components/shift-tab-content.js +1 -1
- package/dist/components/shift-tabs.js +1 -1
- package/dist/components/ssc-lookup-form.js +1 -1
- package/dist/components/test-drive-form.js +1 -1
- package/dist/components/vehicle-accessories.js +1 -1
- package/dist/components/vehicle-claimable-items.js +1 -1
- package/dist/components/vehicle-item-claim-form.js +1 -1
- package/dist/components/vehicle-lookup.js +1 -1
- package/dist/components/vehicle-paint-thickness.js +1 -1
- package/dist/components/vehicle-quotation-form.js +1 -1
- package/dist/components/vehicle-sale-information.js +1 -1
- package/dist/components/vehicle-service-history.js +1 -1
- package/dist/components/vehicle-specification.js +1 -1
- package/dist/components/vehicle-warranty-details.js +1 -1
- package/dist/components/vehicle-warranty-timeline.js +1 -1
- package/dist/components/vin-extractor.js +1 -1
- package/dist/esm/branch-slot-dropdown_15.entry.js +31 -31
- package/dist/esm/dead-stock-lookup_3.entry.js +9 -9
- package/dist/esm/flexible-container.entry.js +3 -3
- package/dist/esm/form-checkbox.entry.js +2 -2
- package/dist/esm/form-date-picker.entry.js +5 -5
- package/dist/esm/form-input_7.entry.js +17 -17
- package/dist/esm/form-switch.entry.js +2 -2
- package/dist/esm/form-time-picker.entry.js +6 -6
- package/dist/esm/{functions-COLiDjnd.js → functions-Ccrile_u.js} +1 -1
- package/dist/esm/general-form.entry.js +4 -4
- package/dist/esm/general-inquiry-form.entry.js +4 -4
- package/dist/esm/{get-local-language-CACck9dv.js → get-local-language-oNw84Rsz.js} +1 -1
- package/dist/esm/{get-mock-files-BEIYZlS_.js → get-mock-files-C26lznN1.js} +1 -1
- package/dist/esm/information-table.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loading-spinner.entry.js +2 -2
- package/dist/esm/manufacturer-part-lookup.entry.js +3 -3
- package/dist/esm/part-lookup.entry.js +2 -2
- package/dist/esm/service-booking-form.entry.js +4 -4
- package/dist/esm/shift-accordion.entry.js +1 -1
- package/dist/esm/shift-checkbox.entry.js +1 -1
- package/dist/esm/shift-components.js +1 -1
- package/dist/esm/shift-slider.entry.js +2 -2
- package/dist/esm/shift-switch.entry.js +1 -1
- package/dist/esm/shift-tab-content.entry.js +2 -2
- package/dist/esm/shift-tabs_2.entry.js +92 -34
- package/dist/esm/ssc-lookup-form.entry.js +4 -4
- package/dist/esm/test-drive-form.entry.js +4 -4
- package/dist/esm/triangle-alert-BlnfPzWh.js +237 -0
- package/dist/esm/vehicle-accessories_8.entry.js +177 -117
- package/dist/esm/vehicle-lookup.entry.js +3 -3
- package/dist/esm/vehicle-quotation-form.entry.js +4 -4
- package/dist/integration-manifest.json +1 -1
- package/dist/locales/vehicleLookup/serviceHistory/en.json +2 -2
- package/dist/shift-components/{p-65aad39b.entry.js → p-09a0fd99.entry.js} +1 -1
- package/dist/shift-components/{p-6263bc0c.entry.js → p-0da97a29.entry.js} +1 -1
- package/dist/shift-components/{p-782fe0e1.entry.js → p-12e295ba.entry.js} +1 -1
- package/dist/shift-components/{p-48a9feb9.entry.js → p-1355934b.entry.js} +1 -1
- package/dist/shift-components/{p-e7a99998.entry.js → p-138af7f3.entry.js} +1 -1
- package/dist/shift-components/{p-bb172fc4.entry.js → p-30e84a3b.entry.js} +1 -1
- package/dist/shift-components/{p-829f24b9.entry.js → p-31718ec2.entry.js} +1 -1
- package/dist/shift-components/p-323ffb6e.entry.js +5 -0
- package/dist/shift-components/{p-c66b18c9.entry.js → p-327fddd8.entry.js} +1 -1
- package/dist/shift-components/p-34e9053b.entry.js +5 -0
- package/dist/shift-components/{p-a0d13479.entry.js → p-3aad8840.entry.js} +1 -1
- package/dist/shift-components/{p-cfcfdb20.entry.js → p-53cd54e8.entry.js} +1 -1
- package/dist/shift-components/{p-ec2a7d65.entry.js → p-63713eae.entry.js} +1 -1
- package/dist/shift-components/{p-fdf94f65.entry.js → p-68722c7b.entry.js} +1 -1
- package/dist/shift-components/{p-c4cf0a18.entry.js → p-729d8d4b.entry.js} +1 -1
- package/dist/shift-components/p-8374f629.entry.js +5 -0
- package/dist/shift-components/p-9b13a82b.entry.js +5 -0
- package/dist/shift-components/p-BkVfhjgg.js +5 -0
- package/dist/shift-components/{p-jmNTa9tM.js → p-BugYpTL6.js} +1 -1
- package/dist/shift-components/{p-f2b86186.entry.js → p-a15fdf1e.entry.js} +1 -1
- package/dist/shift-components/{p-D0Md1Xf7.js → p-awXOnuq1.js} +1 -1
- package/dist/shift-components/p-c25a6c0d.entry.js +5 -0
- package/dist/shift-components/{p-b1270d98.entry.js → p-c9ba7fd5.entry.js} +1 -1
- package/dist/shift-components/{p-537507ee.entry.js → p-d58404bd.entry.js} +1 -1
- package/dist/shift-components/{p-1923fdb9.entry.js → p-d59276b6.entry.js} +1 -1
- package/dist/shift-components/p-dacdff2a.entry.js +5 -0
- package/dist/shift-components/{p-853f1b8b.entry.js → p-e90c354a.entry.js} +1 -1
- package/dist/shift-components/{p-ac91d4ce.entry.js → p-eb265a3e.entry.js} +1 -1
- package/dist/shift-components/{p-b2048d87.entry.js → p-f2a546db.entry.js} +1 -1
- package/dist/shift-components/{p--JyU3LyU.js → p-urLq-GEs.js} +1 -1
- package/dist/shift-components/shift-components.esm.js +1 -1
- package/dist/stencil-docs.json +1 -1
- package/dist/types/components/vehicle-lookup/components/claimable-item-popover.d.ts +10 -1
- package/dist/types/components/vehicle-lookup/components/claimable-trace-modal.d.ts +3 -0
- package/dist/types/components/vehicle-lookup/vehicle-claimable-items.d.ts +14 -4
- package/dist/types/components/vehicle-lookup/vehicle-item-claim-form.d.ts +23 -3
- package/dist/types/global/lib/overlay.d.ts +61 -0
- package/package.json +10 -3
- package/dist/cjs/triangle-alert-BjQBwsRv.js +0 -92
- package/dist/components/p-BQHywBX6.js +0 -5
- package/dist/components/p-BUczNscD.js +0 -5
- package/dist/components/p-BvFDjUZZ.js +0 -5
- package/dist/components/p-CZWmJ1vV.js +0 -5
- package/dist/components/p-D0oXezbg.js +0 -5
- package/dist/components/p-DBKG_o1-.js +0 -5
- package/dist/components/p-Dlm9wHfQ.js +0 -5
- package/dist/components/p-DsMy6H9e.js +0 -5
- package/dist/components/p-EVz84xxv.js +0 -5
- package/dist/components/p-SnXklPq9.js +0 -5
- package/dist/esm/triangle-alert-Brtqhx2d.js +0 -86
- package/dist/shift-components/p-34dffc00.entry.js +0 -5
- package/dist/shift-components/p-6fa1121c.entry.js +0 -5
- package/dist/shift-components/p-9a6450f6.entry.js +0 -5
- package/dist/shift-components/p-B9kqtQjS.js +0 -5
- package/dist/shift-components/p-a91ed0fc.entry.js +0 -5
- package/dist/shift-components/p-c9a7e5ab.entry.js +0 -5
- package/dist/shift-components/p-fa7a961c.entry.js +0 -5
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by ShiftSoftware
|
|
3
|
+
* Copyright (c)
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Getting an overlay out of whatever container the host page put this component in.
|
|
7
|
+
*
|
|
8
|
+
* These components are published to unknown hosts, so an overlay can end up nested in an animated
|
|
9
|
+
* modal, a slide-up footer, an accordion mid-transition or a virtualised list. Any ancestor with a
|
|
10
|
+
* `transform`, `filter`, `backdrop-filter`, `perspective`, `contain` or a `will-change` naming one
|
|
11
|
+
* of them becomes the containing block for `position: fixed`, and the overlay is laid out and
|
|
12
|
+
* clipped inside that ancestor instead of against the viewport.
|
|
13
|
+
*
|
|
14
|
+
* The browser's top layer is the only way out that does not move the element: it paints above every
|
|
15
|
+
* stacking context, is clipped by no ancestor, and ignores caging ancestors entirely — while the
|
|
16
|
+
* element stays in its shadow root, so scoped styles, refs and measurements keep working.
|
|
17
|
+
*
|
|
18
|
+
* The two flavours are not interchangeable:
|
|
19
|
+
*
|
|
20
|
+
* - `modal` (dialog.showModal) inerts the rest of the page. Right for a claim form, fatal for a
|
|
21
|
+
* hover card — it would make every other card unhoverable.
|
|
22
|
+
* - `popover` (popover="manual" + showPopover) is non-modal, so the page stays interactive.
|
|
23
|
+
*
|
|
24
|
+
* Promotion is not free: the top layer cannot be overridden by a host's z-index, so a host can no
|
|
25
|
+
* longer place its own toast or nav above us. A modal should outrank those anyway, so it always
|
|
26
|
+
* promotes. A hover card should not, so it promotes only when staying put would actually clip it.
|
|
27
|
+
*/
|
|
28
|
+
var _a, _b;
|
|
29
|
+
const cagingWillChange = /\b(transform|perspective|filter|backdrop-filter|contain)\b/;
|
|
30
|
+
const cagingContain = /\b(paint|layout|strict|content)\b/;
|
|
31
|
+
const isCagingStyle = (style) => {
|
|
32
|
+
if (!style)
|
|
33
|
+
return false;
|
|
34
|
+
if (style.transform && style.transform !== 'none')
|
|
35
|
+
return true;
|
|
36
|
+
if (style.perspective && style.perspective !== 'none')
|
|
37
|
+
return true;
|
|
38
|
+
if (style.filter && style.filter !== 'none')
|
|
39
|
+
return true;
|
|
40
|
+
const backdropFilter = style.backdropFilter || style.webkitBackdropFilter;
|
|
41
|
+
if (backdropFilter && backdropFilter !== 'none')
|
|
42
|
+
return true;
|
|
43
|
+
if (style.contain && cagingContain.test(style.contain))
|
|
44
|
+
return true;
|
|
45
|
+
if (style.willChange && cagingWillChange.test(style.willChange))
|
|
46
|
+
return true;
|
|
47
|
+
return false;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Walks up from the element, stepping out of every shadow root on the way, looking for an ancestor
|
|
51
|
+
* that would become the containing block for a `position: fixed` child.
|
|
52
|
+
*/
|
|
53
|
+
export const isCaged = (element) => {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
if (!element || typeof getComputedStyle !== 'function')
|
|
56
|
+
return false;
|
|
57
|
+
let current = element.parentElement;
|
|
58
|
+
let root = (_a = element.getRootNode) === null || _a === void 0 ? void 0 : _a.call(element);
|
|
59
|
+
while (true) {
|
|
60
|
+
if (!current) {
|
|
61
|
+
// Out of parents: hop through the shadow boundary and keep going up the host's tree.
|
|
62
|
+
if (!(root instanceof ShadowRoot))
|
|
63
|
+
return false;
|
|
64
|
+
current = root.host;
|
|
65
|
+
root = (_b = current === null || current === void 0 ? void 0 : current.getRootNode) === null || _b === void 0 ? void 0 : _b.call(current);
|
|
66
|
+
if (!current)
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
if (isCagingStyle(getComputedStyle(current)))
|
|
70
|
+
return true;
|
|
71
|
+
current = current.parentElement;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
export const supportsModalDialog = typeof HTMLDialogElement !== 'undefined' && typeof ((_a = HTMLDialogElement.prototype) === null || _a === void 0 ? void 0 : _a.showModal) === 'function';
|
|
75
|
+
export const supportsPopover = typeof HTMLElement !== 'undefined' && typeof ((_b = HTMLElement.prototype) === null || _b === void 0 ? void 0 : _b.showPopover) === 'function';
|
|
76
|
+
/**
|
|
77
|
+
* Shows a modal overlay in the top layer, falling back to the `open` attribute where <dialog> is
|
|
78
|
+
* unimplemented — WebKit only shipped it in 15.4, which on iOS means Safari, every WKWebView and
|
|
79
|
+
* every installed PWA on the device. There the overlay renders in place exactly as it did before
|
|
80
|
+
* the top layer existed: correct, just clippable.
|
|
81
|
+
*
|
|
82
|
+
* Returns whether the top layer was actually used, so callers can supply what it would have given
|
|
83
|
+
* them for free (page inerting, Escape) on the path where it did not.
|
|
84
|
+
*/
|
|
85
|
+
export const openModalOverlay = (dialog) => {
|
|
86
|
+
if (!dialog || dialog.open)
|
|
87
|
+
return supportsModalDialog;
|
|
88
|
+
if (supportsModalDialog) {
|
|
89
|
+
dialog.showModal();
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
dialog.setAttribute('open', '');
|
|
93
|
+
return false;
|
|
94
|
+
};
|
|
95
|
+
export const closeModalOverlay = (dialog) => {
|
|
96
|
+
if (!dialog)
|
|
97
|
+
return;
|
|
98
|
+
if (supportsModalDialog && dialog.open)
|
|
99
|
+
dialog.close();
|
|
100
|
+
else
|
|
101
|
+
dialog.removeAttribute('open');
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Promotes a non-modal overlay, but only when an ancestor would otherwise cage it — so in the
|
|
105
|
+
* ordinary case the host keeps the ability to stack its own UI above ours.
|
|
106
|
+
*
|
|
107
|
+
* The `popover` attribute is added here rather than in markup on purpose: it carries
|
|
108
|
+
* `[popover]:not(:popover-open) { display: none }`, which would hide an overlay that never gets
|
|
109
|
+
* promoted, and a set of UA box styles that only need overriding while it is applied.
|
|
110
|
+
*/
|
|
111
|
+
export const promoteOverlayIfCaged = (element) => {
|
|
112
|
+
if (!element || !supportsPopover || element.hasAttribute('popover'))
|
|
113
|
+
return false;
|
|
114
|
+
if (!isCaged(element))
|
|
115
|
+
return false;
|
|
116
|
+
element.setAttribute('popover', 'manual');
|
|
117
|
+
try {
|
|
118
|
+
element.showPopover();
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
catch (_a) {
|
|
122
|
+
// Not connected, or already shown by something else — leave it laid out normally.
|
|
123
|
+
element.removeAttribute('popover');
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
export const demoteOverlay = (element) => {
|
|
128
|
+
if (!element || !element.hasAttribute('popover'))
|
|
129
|
+
return;
|
|
130
|
+
try {
|
|
131
|
+
element.hidePopover();
|
|
132
|
+
}
|
|
133
|
+
catch (_a) {
|
|
134
|
+
/* already hidden */
|
|
135
|
+
}
|
|
136
|
+
element.removeAttribute('popover');
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Escape handling for the fallback path only. A modal dialog reports Escape as a `cancel` event;
|
|
140
|
+
* without `showModal` there is no such event, so the key has to be watched directly.
|
|
141
|
+
*
|
|
142
|
+
* Capture, deliberately: an overlay that stacks something of its own on top (the claim form's image
|
|
143
|
+
* viewer) listens on `document`, and a bubble-phase listener on `window` would run *after* that one
|
|
144
|
+
* had already dismissed it and cleared the state this handler checks — closing both at once.
|
|
145
|
+
* Capture at `window` runs first, so the inner overlay still owns the key.
|
|
146
|
+
*/
|
|
147
|
+
export const bindEscapeFallback = (handler) => {
|
|
148
|
+
const listener = (event) => {
|
|
149
|
+
if (event.key === 'Escape')
|
|
150
|
+
handler(event);
|
|
151
|
+
};
|
|
152
|
+
window.addEventListener('keydown', listener, true);
|
|
153
|
+
return () => window.removeEventListener('keydown', listener, true);
|
|
154
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="103 520 2256 932" role="img" aria-label="ADP"><title>ADP</title><path fill="currentColor" d="m755 1406.8l-249.3-761.5-248.2 761.5v-1.1q-6.8 17-19.2 28.3-11.4 10.2-28.4 10.2-9 0-18.1-1.1-7.9-2.3-17-4.6h1.1q-64.5-20.4-47.5-72.5l258.3-785.3q5.7-18.1 19.3-30.6 14.7-12.5 34-14.7 19.2-3.4 37.4-4.6 18.1-2.2 28.3-2.2 10.2 0 28.3 2.2 18.2 1.2 37.4 3.4 15.9 2.3 30.6 17 15.9 14.8 23.8 29.5 63.5 194.9 128.1 393.2 65.7 197.2 129.2 392.1 15.8 52.1-47.6 72.5-9.1 2.3-17 4.6-6.8 1.1-15.9 1.1-15.9 0-29.5-10.2-12.4-11.3-18.1-28.3zm-164.3-244.8q0 36.3-26.1 62.3-24.9 25-61.2 25-36.2 0-61.1-25-25-26-25-62.3 0-36.3 25-61.2 24.9-26.1 61.1-26.1 36.3 0 61.2 26.1 26.1 24.9 26.1 61.2zm640.3 158.6h154.1q41.9 0 58.9-23.7 17-23.8 17-53.3v-519q0-28.3-17-52.1-17-23.8-58.9-23.8h-265.2l-1.1 738.8q0 24.9-19.3 39.7-19.3 14.7-47.6 14.7-66.8 0-66.8-54.4v-785.3q0-40.8 20.4-54.4 21.5-13.6 50.9-13.6h357q29.5 0 61.2 12.5 31.7 12.4 61.2 31.7h-1.1q29.4 21.5 45.3 56.7 15.8 34 15.8 79.3v538.3q0 91.7-61.1 137.1-29.5 21.5-61.2 34-30.6 11.3-60.1 11.3h-190.4q-19.2 0-30.6-15.9-10.2-15.8-10.2-41.9 0-56.7 48.8-56.7zm938.2-219.8h-156.3q-19.3 0-30.6-14.7-10.2-15.9-10.2-42 0-57.7 47.6-57.7h120.1q41.9 0 58.9-23.8 18.1-23.8 18.1-52.2v-185.8q0-28.3-18.1-52.1-17-23.8-58.9-23.8h-238v739.9q0 54.4-68 54.4-65.7 0-65.7-54.4v-786.4q0-40.8 20.4-54.4 20.4-13.6 49.9-13.6h330.8q28.4 0 60.1 12.5 31.7 12.4 61.2 31.7h-1.1q29.4 21.5 45.3 56.7 15.9 34 15.9 79.3v205.1q0 91.8-61.2 137.1-29.5 21.5-60.1 32.9-30.6 11.3-60.1 11.3z"/></svg>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared theme state for the showcase pages.
|
|
3
|
+
*
|
|
4
|
+
* Loaded as a plain blocking script in <head> — deliberately not a module. A
|
|
5
|
+
* module is deferred, which would let the page paint in the wrong theme before
|
|
6
|
+
* the stored choice is applied.
|
|
7
|
+
*
|
|
8
|
+
* The names map onto the daisyUI themes declared in harness.src.css; 'system'
|
|
9
|
+
* removes the attribute entirely so `prefersdark` takes over.
|
|
10
|
+
*/
|
|
11
|
+
(function () {
|
|
12
|
+
const KEY = 'adp-harness-theme';
|
|
13
|
+
const THEMES = { light: 'harness', dark: 'harness-dark' };
|
|
14
|
+
|
|
15
|
+
function read() {
|
|
16
|
+
// Private windows and blocked site data both throw rather than return null.
|
|
17
|
+
try {
|
|
18
|
+
return localStorage.getItem(KEY);
|
|
19
|
+
} catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function apply(theme) {
|
|
25
|
+
const resolved = theme || 'system';
|
|
26
|
+
|
|
27
|
+
if (resolved === 'system') delete document.documentElement.dataset.theme;
|
|
28
|
+
else document.documentElement.dataset.theme = THEMES[resolved] ?? resolved;
|
|
29
|
+
|
|
30
|
+
try {
|
|
31
|
+
localStorage.setItem(KEY, resolved);
|
|
32
|
+
} catch {
|
|
33
|
+
// Theme still applies for this page; it just will not survive navigation.
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function current() {
|
|
38
|
+
return read() || 'system';
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
window.harnessTheme = { apply, current };
|
|
42
|
+
|
|
43
|
+
apply(current());
|
|
44
|
+
})();
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* adp-web-components — dev harness controls (Alpine).
|
|
3
|
+
*
|
|
4
|
+
* Provides the `harness()` Alpine data factory and stamps the standard rail
|
|
5
|
+
* markup into any `[data-harness-rail]` element, so a page describes what it is
|
|
6
|
+
* testing instead of re-implementing the same six controls:
|
|
7
|
+
*
|
|
8
|
+
* <aside class="card border-base-300 bg-base-100 flex flex-col gap-4 border border-dashed p-4"
|
|
9
|
+
* data-harness-rail
|
|
10
|
+
* x-data="harness({ subject: '#subject', mocks: 'vehicle-lookup' })"></aside>
|
|
11
|
+
*
|
|
12
|
+
* A page that needs a different rail just writes its own markup against the same
|
|
13
|
+
* state — every method below is public.
|
|
14
|
+
*
|
|
15
|
+
* Control order is fixed on purpose (R5), and the language control flips page
|
|
16
|
+
* direction because half of the supported set is RTL (R6). See
|
|
17
|
+
* .shift/repos/adp/web-components/templates-design-language.md.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const DEFAULTS = {
|
|
21
|
+
subject: '#subject',
|
|
22
|
+
mocks: null,
|
|
23
|
+
labels: {},
|
|
24
|
+
languages: ['en', 'ku', 'ar', 'ru'],
|
|
25
|
+
rtl: ['ar', 'ku'],
|
|
26
|
+
platforms: [
|
|
27
|
+
{ label: '360', value: '360px' },
|
|
28
|
+
{ label: '414', value: '414px' },
|
|
29
|
+
{ label: '768', value: '768px' },
|
|
30
|
+
{ label: 'Full', value: '100%' },
|
|
31
|
+
],
|
|
32
|
+
theme: true,
|
|
33
|
+
mode: true,
|
|
34
|
+
platform: true,
|
|
35
|
+
log: true,
|
|
36
|
+
apply: (subject, data) => subject.setMockData(data),
|
|
37
|
+
select: (subject, key) => subject.fetchVin(key),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
window.harness = function harness(options = {}) {
|
|
41
|
+
const config = { ...DEFAULTS, ...options };
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
config,
|
|
45
|
+
subject: null,
|
|
46
|
+
|
|
47
|
+
languages: config.languages,
|
|
48
|
+
platforms: config.platforms,
|
|
49
|
+
show: {
|
|
50
|
+
theme: config.theme,
|
|
51
|
+
mode: config.mode,
|
|
52
|
+
platform: config.platform,
|
|
53
|
+
log: config.log,
|
|
54
|
+
fixtures: Boolean(config.mocks),
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
language: config.languages[0],
|
|
58
|
+
theme: window.harnessTheme?.current() ?? 'system',
|
|
59
|
+
// Development is the default: it is the only mode that works without a local
|
|
60
|
+
// API running, which is how these pages are opened most of the time.
|
|
61
|
+
mode: 'dev',
|
|
62
|
+
width: '100%',
|
|
63
|
+
fixtures: [],
|
|
64
|
+
fixture: null,
|
|
65
|
+
lines: [],
|
|
66
|
+
|
|
67
|
+
get dir() {
|
|
68
|
+
return config.rtl.includes(this.language) ? 'rtl' : 'ltr';
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
async init() {
|
|
72
|
+
this.subject = document.querySelector(config.subject);
|
|
73
|
+
|
|
74
|
+
if (!this.subject) return this.write('harness', `no element matches ${config.subject}`);
|
|
75
|
+
|
|
76
|
+
// Properties set before upgrade would be shadowed by the prototype
|
|
77
|
+
// accessors, and @Method members do not exist yet. Wait for both.
|
|
78
|
+
await customElements.whenDefined(this.subject.localName);
|
|
79
|
+
await this.subject.componentOnReady?.();
|
|
80
|
+
|
|
81
|
+
this.setLanguage(this.subject.language || this.language);
|
|
82
|
+
this.subject.isDev = true;
|
|
83
|
+
|
|
84
|
+
if (config.log) this.observe();
|
|
85
|
+
if (config.mocks) await this.loadFixtures();
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
/* ---------- controls ---------- */
|
|
89
|
+
|
|
90
|
+
setLanguage(language) {
|
|
91
|
+
this.language = language;
|
|
92
|
+
this.subject.language = language;
|
|
93
|
+
|
|
94
|
+
document.documentElement.lang = language;
|
|
95
|
+
document.documentElement.dir = this.dir;
|
|
96
|
+
|
|
97
|
+
this.write('language', `${language} · ${this.dir}`);
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
setTheme(theme) {
|
|
101
|
+
this.theme = theme;
|
|
102
|
+
|
|
103
|
+
// harness-theme.js owns this so the choice survives navigation. Pages that
|
|
104
|
+
// do not load it still get a working control, just not a sticky one.
|
|
105
|
+
if (window.harnessTheme) window.harnessTheme.apply(theme);
|
|
106
|
+
else if (theme === 'system') delete document.documentElement.dataset.theme;
|
|
107
|
+
else document.documentElement.dataset.theme = theme === 'dark' ? 'harness-dark' : 'harness';
|
|
108
|
+
|
|
109
|
+
this.write('theme', theme);
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
setMode(mode) {
|
|
113
|
+
this.mode = mode;
|
|
114
|
+
this.subject.isDev = mode === 'dev';
|
|
115
|
+
|
|
116
|
+
this.write('mode', mode === 'dev' ? 'development · mock data' : `production · ${this.subject.baseUrl || 'no base-url set'}`);
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
setWidth(width) {
|
|
120
|
+
this.width = width;
|
|
121
|
+
this.subject.closest('.frame')?.style.setProperty('--frame-w', width);
|
|
122
|
+
|
|
123
|
+
this.write('width', width);
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
/* ---------- fixtures ---------- */
|
|
127
|
+
|
|
128
|
+
async loadFixtures() {
|
|
129
|
+
let data = {};
|
|
130
|
+
|
|
131
|
+
try {
|
|
132
|
+
data = (await window.loadMockData(config.mocks)) ?? {};
|
|
133
|
+
await config.apply(this.subject, data);
|
|
134
|
+
} catch (error) {
|
|
135
|
+
this.write('fixtures', `failed to load — ${error.message}`);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Generated from the mock keys, never hand-listed: a hardcoded list drifts
|
|
139
|
+
// the moment someone adds a scenario (R7). Labels only annotate.
|
|
140
|
+
this.fixtures = [{ value: '', label: 'Empty' }, { value: 'error', label: 'Error' }, ...Object.keys(data).map(key => ({ value: key, label: key, note: config.labels[key] }))];
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
run(key) {
|
|
144
|
+
this.fixture = key;
|
|
145
|
+
this.write('fetch', key === '' ? '(empty)' : key);
|
|
146
|
+
|
|
147
|
+
config.select(this.subject, key);
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
reload() {
|
|
151
|
+
this.run(this.fixture ?? '');
|
|
152
|
+
},
|
|
153
|
+
|
|
154
|
+
/* ---------- live events ---------- */
|
|
155
|
+
|
|
156
|
+
observe() {
|
|
157
|
+
this.subject.loadingStateChange = isLoading => this.write(isLoading ? 'loading' : 'idle', '');
|
|
158
|
+
this.subject.errorCallback = message => this.write('error', String(message));
|
|
159
|
+
this.subject.loadedResponse = response => this.write('loaded', summarise(response));
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
write(label, detail) {
|
|
163
|
+
// Bound with x-text, so component-supplied text is never parsed as markup.
|
|
164
|
+
this.lines.unshift({ id: `${label}-${this.lines.length}-${detail}`, label, detail: String(detail ?? '') });
|
|
165
|
+
|
|
166
|
+
if (this.lines.length > 200) this.lines.pop();
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
function summarise(response) {
|
|
172
|
+
if (!response) return '(nothing)';
|
|
173
|
+
|
|
174
|
+
const vin = response.vin ?? response.identifiers?.vin;
|
|
175
|
+
const keys = Object.keys(response).length;
|
|
176
|
+
|
|
177
|
+
return vin ? `${vin} · ${keys} keys` : `${keys} keys`;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* ---------- the standard rail ---------- */
|
|
181
|
+
|
|
182
|
+
const RAIL = /* html */ `
|
|
183
|
+
<div class="flex items-center justify-between gap-3">
|
|
184
|
+
<p class="eyebrow text-neutral font-bold">Harness</p>
|
|
185
|
+
<a href="/" class="btn btn-xs btn-ghost gap-1.5" aria-label="Showcase home">
|
|
186
|
+
<span class="adp-logo text-accent h-3.5 w-[34px]" aria-hidden="true"></span>
|
|
187
|
+
Home
|
|
188
|
+
</a>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<div class="flex flex-col gap-1.5">
|
|
192
|
+
<span class="eyebrow text-neutral" x-text="'Language · ' + dir.toUpperCase()"></span>
|
|
193
|
+
<div class="flex flex-wrap gap-1.5" role="group" aria-label="Language">
|
|
194
|
+
<template x-for="item in languages" :key="item">
|
|
195
|
+
<button type="button" class="btn btn-sm" :class="language === item ? 'btn-primary' : 'btn-outline'"
|
|
196
|
+
:aria-pressed="language === item" @click="setLanguage(item)" x-text="item.toUpperCase()"></button>
|
|
197
|
+
</template>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
|
|
201
|
+
<template x-if="show.theme">
|
|
202
|
+
<div class="flex flex-col gap-1.5">
|
|
203
|
+
<span class="eyebrow text-neutral">Theme</span>
|
|
204
|
+
<div class="flex flex-wrap gap-1.5" role="group" aria-label="Theme">
|
|
205
|
+
<template x-for="item in ['system', 'light', 'dark']" :key="item">
|
|
206
|
+
<button type="button" class="btn btn-sm capitalize" :class="theme === item ? 'btn-primary' : 'btn-outline'"
|
|
207
|
+
:aria-pressed="theme === item" @click="setTheme(item)" x-text="item"></button>
|
|
208
|
+
</template>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
</template>
|
|
212
|
+
|
|
213
|
+
<template x-if="show.mode">
|
|
214
|
+
<div class="flex flex-col gap-1.5">
|
|
215
|
+
<span class="eyebrow text-neutral">Mode</span>
|
|
216
|
+
<div class="flex flex-wrap gap-1.5" role="group" aria-label="Mode">
|
|
217
|
+
<template x-for="item in [{ value: 'dev', label: 'Development' }, { value: 'prod', label: 'Production' }]" :key="item.value">
|
|
218
|
+
<button type="button" class="btn btn-sm" :class="mode === item.value ? 'btn-primary' : 'btn-outline'"
|
|
219
|
+
:aria-pressed="mode === item.value" @click="setMode(item.value)" x-text="item.label"></button>
|
|
220
|
+
</template>
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
</template>
|
|
224
|
+
|
|
225
|
+
<template x-if="show.platform">
|
|
226
|
+
<div class="flex flex-col gap-1.5">
|
|
227
|
+
<span class="eyebrow text-neutral">Platform width</span>
|
|
228
|
+
<div class="flex flex-wrap gap-1.5" role="group" aria-label="Platform width">
|
|
229
|
+
<template x-for="item in platforms" :key="item.value">
|
|
230
|
+
<button type="button" class="btn btn-sm" :class="width === item.value ? 'btn-primary' : 'btn-outline'"
|
|
231
|
+
:aria-pressed="width === item.value" @click="setWidth(item.value)" x-text="item.label"></button>
|
|
232
|
+
</template>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
</template>
|
|
236
|
+
|
|
237
|
+
<template x-if="show.fixtures">
|
|
238
|
+
<div class="flex flex-col gap-1.5">
|
|
239
|
+
<span class="eyebrow text-neutral">Fixtures</span>
|
|
240
|
+
<button type="button" class="btn btn-sm btn-outline self-start" @click="reload()">Reload</button>
|
|
241
|
+
<div class="flex flex-wrap gap-1.5" role="group" aria-label="Fixtures">
|
|
242
|
+
<template x-for="item in fixtures" :key="item.value">
|
|
243
|
+
<button type="button" class="btn btn-sm font-mono font-normal" :class="fixture === item.value ? 'btn-primary' : 'btn-outline'"
|
|
244
|
+
:aria-pressed="fixture === item.value" @click="run(item.value)">
|
|
245
|
+
<span x-text="item.label"></span>
|
|
246
|
+
<span class="opacity-70 font-sans" x-show="item.note" x-text="item.note"></span>
|
|
247
|
+
</button>
|
|
248
|
+
</template>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
</template>
|
|
252
|
+
|
|
253
|
+
<template x-if="show.log">
|
|
254
|
+
<div class="flex flex-col gap-1.5">
|
|
255
|
+
<span class="eyebrow text-neutral">Live events</span>
|
|
256
|
+
<pre class="log m-0 p-2.5 rounded-field bg-base-200 text-base-content/70 border border-base-300"><template x-if="!lines.length"><span>waiting…</span></template><template x-for="line in lines" :key="line.id"><span><b class="text-accent" x-text="line.label"></b> <span x-text="line.detail"></span>
|
|
257
|
+
</span></template></pre>
|
|
258
|
+
</div>
|
|
259
|
+
</template>
|
|
260
|
+
`;
|
|
261
|
+
|
|
262
|
+
document.querySelectorAll('[data-harness-rail]').forEach(rail => {
|
|
263
|
+
rail.innerHTML = RAIL;
|
|
264
|
+
});
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Built by ShiftSoftware
|
|
3
3
|
* Copyright (c)
|
|
4
4
|
*/
|
|
5
|
-
import{B as o,d as s}from"./p-
|
|
5
|
+
import{B as o,d as s}from"./p-CKwgX_v0.js";const p=o,r=s;export{p as BranchSlotDropdown,r as defineCustomElement}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Built by ShiftSoftware
|
|
3
3
|
* Copyright (c)
|
|
4
4
|
*/
|
|
5
|
-
import{B as o,d as
|
|
5
|
+
import{B as o,d as p}from"./p-BUepGDZV.js";const s=o,r=p;export{s as BranchSlotPicker,r as defineCustomElement}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Built by ShiftSoftware
|
|
3
3
|
* Copyright (c)
|
|
4
4
|
*/
|
|
5
|
-
import{D as o,d as s}from"./p-
|
|
5
|
+
import{D as o,d as s}from"./p-B8hl68AM.js";const p=o,r=s;export{p as DeadStockLookup,r as defineCustomElement}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Built by ShiftSoftware
|
|
3
3
|
* Copyright (c)
|
|
4
4
|
*/
|
|
5
|
-
import{D as o,d as s}from"./p-
|
|
5
|
+
import{D as o,d as s}from"./p-Dd_Xnn2b.js";const n=o,p=s;export{n as DistributorLookup,p as defineCustomElement}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Built by ShiftSoftware
|
|
3
3
|
* Copyright (c)
|
|
4
4
|
*/
|
|
5
|
-
import{F as o,d as s}from"./p-
|
|
5
|
+
import{F as o,d as s}from"./p-B7G2HjX0.js";const p=o,r=s;export{p as FlexibleContainer,r as defineCustomElement}
|