@ahrowe/ui 0.26.0 → 0.27.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.
@@ -1 +1 @@
1
- {"version":3,"file":"roomDrawer.module.mjs","names":[],"sources":["../../../../package/common/roomDrawer/roomDrawer.module.pcss"],"sourcesContent":[".roomDrawer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-s, 8px);\n color: var(--text-color);\n\n &:focus-visible {\n outline: 2px solid var(--focus-border-color, var(--primary-color));\n outline-offset: 2px;\n border-radius: var(--default-border-radius);\n }\n\n &-disabled {\n opacity: 0.6;\n pointer-events: none;\n }\n\n /* ── Toolbar ── */\n\n &-toolbar {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 4px;\n padding: 4px;\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n\n &-separator {\n width: 1px;\n align-self: stretch;\n margin: 2px 4px;\n background: var(--border-color);\n }\n }\n\n &-toolButton,\n &-viewButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 34px;\n height: 34px;\n padding: 0 8px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-color);\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover:not(:disabled) {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n\n &:disabled {\n opacity: 0.4;\n cursor: default;\n }\n }\n\n &-toolButtonActive {\n background: var(--primary-color);\n color: var(--text-on-primary);\n\n &:hover {\n background: var(--primary-color);\n }\n }\n\n &-toolIcon {\n pointer-events: none;\n }\n\n &-viewControls {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n margin-left: auto;\n }\n\n &-zoomLabel {\n min-width: 62px;\n height: 34px;\n padding: 0 6px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-dark);\n font-size: 12px;\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n }\n\n /* Storeys, top one first. A strip rather than a dropdown because switching floors is\n something you do constantly while drawing, and a dropdown costs two clicks each time. */\n &-floorBar {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-wrap: wrap;\n padding: var(--spacing-xs, 4px);\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n }\n\n &-floorTab {\n height: 28px;\n padding: 0 10px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-dark);\n font-size: 12px;\n white-space: nowrap;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n\n &-active {\n background: var(--primary-color);\n border-color: var(--primary-color);\n color: var(--text-on-primary);\n font-weight: 600;\n\n &:hover {\n background: var(--primary-color);\n }\n }\n\n &-add {\n padding: 0 8px;\n color: var(--text-dark);\n }\n }\n\n /* ── Canvas ── */\n\n &-canvasWrapper {\n position: relative;\n overflow: hidden;\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n background: var(--background);\n /* Without this the browser claims the gesture and pointermove stops firing mid-drag. */\n touch-action: none;\n cursor: default;\n -webkit-tap-highlight-color: transparent;\n\n &-drawing {\n cursor: crosshair;\n }\n }\n\n /* ── Screen-space overlay ── */\n\n &-preview {\n fill: var(--primary-accent);\n fill-opacity: 0.12;\n stroke: var(--primary-color);\n stroke-width: 1.5;\n stroke-dasharray: 5 4;\n }\n\n &-marquee {\n fill: var(--primary-color);\n fill-opacity: 0.1;\n stroke: var(--primary-color);\n stroke-width: 1;\n stroke-dasharray: 4 3;\n }\n\n &-handle {\n fill: var(--background);\n stroke: var(--primary-color);\n stroke-width: 2;\n\n &-active {\n fill: var(--primary-color);\n }\n }\n\n /* A latched toggle (snap, angle lock, grid): on, but not the active tool. */\n &-toolButtonOn {\n border-color: var(--primary-color);\n color: var(--primary-color);\n }\n\n /* ── Snap feedback ── */\n\n &-guide {\n stroke: var(--plan-guide-color, var(--info-color));\n stroke-width: 1;\n stroke-dasharray: 4 4;\n opacity: 0.8;\n pointer-events: none;\n\n /* Angle lock gets the brand colour: it is the one the user asked for by name. */\n &-angle {\n stroke: var(--primary-color);\n stroke-dasharray: 6 3;\n opacity: 0.9;\n }\n }\n\n &-snapMarker {\n fill: none;\n stroke: var(--primary-color);\n stroke-width: 1.5;\n pointer-events: none;\n }\n\n /* A measurement, not geometry: dashed and in the accent colour so it can never be\n mistaken for a wall that was actually drawn. */\n &-measureLine {\n pointer-events: none;\n\n line {\n stroke: var(--plan-measure-color, var(--primary-color));\n stroke-width: 1.25;\n stroke-dasharray: 5 4;\n }\n\n line + line {\n stroke-dasharray: none;\n }\n\n &-hovered line {\n stroke-width: 2;\n opacity: 1;\n }\n }\n\n /* Only drawn while the ruler is the active tool, so it never competes with a corner\n handle for the same pixel. */\n &-measureGrip {\n fill: var(--background);\n stroke: var(--plan-measure-color, var(--primary-color));\n stroke-width: 1.5;\n cursor: grab;\n -webkit-tap-highlight-color: transparent;\n }\n\n /* Hollow and smaller than a corner handle: it marks a corner that does not exist yet. */\n &-midHandle {\n fill: var(--background);\n stroke: var(--primary-color);\n stroke-width: 1.5;\n stroke-dasharray: 2.5 2;\n }\n\n &-measure {\n fill: var(--text-color);\n font-size: 11px;\n font-variant-numeric: tabular-nums;\n paint-order: stroke;\n stroke: var(--background);\n stroke-width: 3px;\n stroke-linejoin: round;\n\n &-locked {\n fill: var(--primary-color);\n font-weight: 600;\n }\n\n /* How far a room has been dragged. Carries a chip behind it because it floats over the\n room's own fill rather than sitting on a wall, where the halo alone would do. */\n &-offset {\n fill: var(--text-on-primary);\n font-weight: 600;\n paint-order: stroke;\n stroke: var(--primary-color);\n stroke-width: 8px;\n stroke-linejoin: round;\n }\n\n /* A consequence of the edit rather than its subject: still readable, but clearly\n secondary to the wall or corner actually being moved. */\n &-secondary {\n fill: var(--text-dark);\n opacity: 0.75;\n }\n }\n\n /* ── Inspector ── */\n\n &-inspector {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n padding: 8px;\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n\n &-action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n height: 34px;\n padding: 0 12px;\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n background: var(--background);\n color: var(--text-color);\n font-size: 13px;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover:not(:disabled) {\n background: var(--background-accent-light);\n }\n\n &:disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n }\n\n &-label {\n color: var(--text-dark);\n font-size: 12px;\n font-variant-numeric: tabular-nums;\n }\n\n /* What is selected. Carries the bar on its own for a corner, which has nothing to edit\n but a position that is already being edited by dragging it. */\n &-kind {\n display: flex;\n align-items: center;\n flex: none;\n /* Always rendered, so it is what holds the row open to a field's height whether or\n not the selection has any fields. Setting this on the bar itself would not do:\n it is border-box, so the figure would have to know the padding. */\n min-height: 34px;\n color: var(--text-dark);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n white-space: nowrap;\n }\n\n &-kindEmpty {\n opacity: 0.6;\n font-weight: 500;\n text-transform: none;\n letter-spacing: 0;\n font-size: 12px;\n }\n\n /* Sized to their contents, so the row stays a row. A field at its natural full width\n wrapped onto a line of its own and took the bar to three of them. They still wrap\n when the drawer is genuinely too narrow for them. */\n &-field {\n flex: none;\n /* Wide enough for the longest floating label, `Thickness (mm)`, plus the stepper\n arrows: a narrower box left the label hanging over its own border. */\n width: 142px;\n }\n\n &-name {\n flex: 1 1 150px;\n min-width: 120px;\n max-width: 280px;\n }\n\n /* The one action that applies to every kind of selection, and the only destructive one,\n so it sits apart at the end rather than in the run of fields. */\n &-delete {\n margin-left: auto;\n color: var(--error-color, var(--text-color));\n }\n }\n\n /* ── Hint ── */\n\n &-hint {\n color: var(--text-dark);\n font-size: 12px;\n line-height: 1.4;\n\n /* What an opened file needed doing to it. Louder than a hint because it is the only\n account of what happened to the user's file. */\n &-report {\n color: var(--error-color, var(--text-color));\n font-weight: 500;\n }\n }\n\n /* The picker is opened from the toolbar button, so the input itself is never shown.\n Hidden by clipping rather than `display: none`, which stops `.click()` opening the\n dialog in some browsers. */\n &-fileInput {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n border: 0;\n clip-path: inset(50%);\n overflow: hidden;\n white-space: nowrap;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"roomDrawer.module.mjs","names":[],"sources":["../../../../package/common/roomDrawer/roomDrawer.module.pcss"],"sourcesContent":[".roomDrawer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-s, 8px);\n color: var(--text-color);\n position: relative;\n\n &:focus-visible {\n outline: 2px solid var(--focus-border-color, var(--primary-color));\n outline-offset: 2px;\n border-radius: var(--default-border-radius);\n }\n\n &-disabled {\n opacity: 0.6;\n pointer-events: none;\n }\n\n /* ── Toolbar ── */\n\n &-toolbar {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 4px;\n padding: 4px;\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n\n &-separator {\n width: 1px;\n align-self: stretch;\n margin: 2px 4px;\n background: var(--border-color);\n }\n }\n\n &-toolButton,\n &-viewButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 34px;\n height: 34px;\n padding: 0 8px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-color);\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover:not(:disabled) {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n\n &:disabled {\n opacity: 0.4;\n cursor: default;\n }\n }\n\n &-toolButtonActive {\n background: var(--primary-color);\n color: var(--text-on-primary);\n\n &:hover {\n background: var(--primary-color);\n }\n }\n\n &-toolIcon {\n pointer-events: none;\n }\n\n &-viewControls {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n margin-left: auto;\n }\n\n &-zoomLabel {\n min-width: 62px;\n height: 34px;\n padding: 0 6px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-dark);\n font-size: 12px;\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n }\n\n /* Storeys, top one first. A strip rather than a dropdown because switching floors is\n something you do constantly while drawing, and a dropdown costs two clicks each time. */\n &-floorBar {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-wrap: wrap;\n padding: var(--spacing-xs, 4px);\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n }\n\n &-floorTab {\n height: 28px;\n padding: 0 10px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-dark);\n font-size: 12px;\n white-space: nowrap;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n\n &-active {\n background: var(--primary-color);\n border-color: var(--primary-color);\n color: var(--text-on-primary);\n font-weight: 600;\n\n &:hover {\n background: var(--primary-color);\n }\n }\n\n &-add {\n padding: 0 8px;\n color: var(--text-dark);\n }\n }\n\n /* ── Canvas ── */\n\n &-canvasWrapper {\n position: relative;\n overflow: hidden;\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n background: var(--background);\n /* Without this the browser claims the gesture and pointermove stops firing mid-drag. */\n touch-action: none;\n cursor: default;\n -webkit-tap-highlight-color: transparent;\n\n &-drawing {\n cursor: crosshair;\n }\n }\n\n /* ── Screen-space overlay ── */\n\n &-preview {\n fill: var(--primary-accent);\n fill-opacity: 0.12;\n stroke: var(--primary-color);\n stroke-width: 1.5;\n stroke-dasharray: 5 4;\n }\n\n &-marquee {\n fill: var(--primary-color);\n fill-opacity: 0.1;\n stroke: var(--primary-color);\n stroke-width: 1;\n stroke-dasharray: 4 3;\n }\n\n &-handle {\n fill: var(--background);\n stroke: var(--primary-color);\n stroke-width: 2;\n\n &-active {\n fill: var(--primary-color);\n }\n }\n\n /* A latched toggle (snap, angle lock, grid): on, but not the active tool. */\n &-toolButtonOn {\n border-color: var(--primary-color);\n color: var(--primary-color);\n }\n\n /* ── Snap feedback ── */\n\n &-guide {\n stroke: var(--plan-guide-color, var(--info-color));\n stroke-width: 1;\n stroke-dasharray: 4 4;\n opacity: 0.8;\n pointer-events: none;\n\n /* Angle lock gets the brand colour: it is the one the user asked for by name. */\n &-angle {\n stroke: var(--primary-color);\n stroke-dasharray: 6 3;\n opacity: 0.9;\n }\n }\n\n &-snapMarker {\n fill: none;\n stroke: var(--primary-color);\n stroke-width: 1.5;\n pointer-events: none;\n }\n\n /* A measurement, not geometry: dashed and in the accent colour so it can never be\n mistaken for a wall that was actually drawn. */\n &-measureLine {\n pointer-events: none;\n\n line {\n stroke: var(--plan-measure-color, var(--primary-color));\n stroke-width: 1.25;\n stroke-dasharray: 5 4;\n }\n\n line + line {\n stroke-dasharray: none;\n }\n\n &-hovered line {\n stroke-width: 2;\n opacity: 1;\n }\n }\n\n /* Only drawn while the ruler is the active tool, so it never competes with a corner\n handle for the same pixel. */\n &-measureGrip {\n fill: var(--background);\n stroke: var(--plan-measure-color, var(--primary-color));\n stroke-width: 1.5;\n cursor: grab;\n -webkit-tap-highlight-color: transparent;\n }\n\n /* Hollow and smaller than a corner handle: it marks a corner that does not exist yet. */\n &-midHandle {\n fill: var(--background);\n stroke: var(--primary-color);\n stroke-width: 1.5;\n stroke-dasharray: 2.5 2;\n }\n\n &-measure {\n fill: var(--text-color);\n font-size: 11px;\n font-variant-numeric: tabular-nums;\n paint-order: stroke;\n stroke: var(--background);\n stroke-width: 3px;\n stroke-linejoin: round;\n\n &-locked {\n fill: var(--primary-color);\n font-weight: 600;\n }\n\n /* How far a room has been dragged. Carries a chip behind it because it floats over the\n room's own fill rather than sitting on a wall, where the halo alone would do. */\n &-offset {\n fill: var(--text-on-primary);\n font-weight: 600;\n paint-order: stroke;\n stroke: var(--primary-color);\n stroke-width: 8px;\n stroke-linejoin: round;\n }\n\n /* A consequence of the edit rather than its subject: still readable, but clearly\n secondary to the wall or corner actually being moved. */\n &-secondary {\n fill: var(--text-dark);\n opacity: 0.75;\n }\n }\n\n /* ── Inspector ── */\n\n &-inspector {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n padding: 8px;\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n\n &-action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n height: 34px;\n padding: 0 12px;\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n background: var(--background);\n color: var(--text-color);\n font-size: 13px;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover:not(:disabled) {\n background: var(--background-accent-light);\n }\n\n &:disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n }\n\n &-label {\n color: var(--text-dark);\n font-size: 12px;\n font-variant-numeric: tabular-nums;\n }\n\n /* What is selected. Carries the bar on its own for a corner, which has nothing to edit\n but a position that is already being edited by dragging it. */\n &-kind {\n display: flex;\n align-items: center;\n flex: none;\n /* Always rendered, so it is what holds the row open to a field's height whether or\n not the selection has any fields. Setting this on the bar itself would not do:\n it is border-box, so the figure would have to know the padding. */\n min-height: 34px;\n color: var(--text-dark);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n white-space: nowrap;\n }\n\n &-kindEmpty {\n opacity: 0.6;\n font-weight: 500;\n text-transform: none;\n letter-spacing: 0;\n font-size: 12px;\n }\n\n /* Sized to their contents, so the row stays a row. A field at its natural full width\n wrapped onto a line of its own and took the bar to three of them. They still wrap\n when the drawer is genuinely too narrow for them. */\n &-field {\n flex: none;\n /* Wide enough for the longest floating label, `Thickness (mm)`, plus the stepper\n arrows: a narrower box left the label hanging over its own border. */\n width: 142px;\n }\n\n &-name {\n flex: 1 1 150px;\n min-width: 120px;\n max-width: 280px;\n }\n\n /* The one action that applies to every kind of selection, and the only destructive one,\n so it sits apart at the end rather than in the run of fields. */\n &-delete {\n margin-left: auto;\n color: var(--error-color, var(--text-color));\n }\n }\n\n /* ── Hint ── */\n\n &-hint {\n color: var(--text-dark);\n font-size: 12px;\n line-height: 1.4;\n\n /* What an opened file needed doing to it. Louder than a hint because it is the only\n account of what happened to the user's file. */\n &-report {\n color: var(--error-color, var(--text-color));\n font-weight: 500;\n }\n }\n\n /* The picker is opened from the toolbar button, so the input itself is never shown.\n Hidden by clipping rather than `display: none`, which stops `.click()` opening the\n dialog in some browsers. */\n &-fileInput {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n border: 0;\n clip-path: inset(50%);\n overflow: hidden;\n white-space: nowrap;\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"roomViewer.module.mjs","names":[],"sources":["../../../../package/common/roomViewer/roomViewer.module.pcss"],"sourcesContent":[".roomViewer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-s, 8px);\n\n /* Storeys, top first, the way a building reads in section. */\n &-floorBar {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-wrap: wrap;\n padding: var(--spacing-xs, 4px);\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n }\n\n &-floorTab {\n height: 28px;\n padding: 0 10px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-dark);\n font-size: 12px;\n white-space: nowrap;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n\n &-active {\n background: var(--primary-color);\n border-color: var(--primary-color);\n color: var(--text-on-primary);\n font-weight: 600;\n\n &:hover {\n background: var(--primary-color);\n }\n }\n }\n\n &-canvasWrapper {\n position: relative;\n overflow: hidden;\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n background: var(--background);\n\n &-pannable {\n /* Without this the browser claims the gesture and pointermove stops firing. */\n touch-action: none;\n cursor: grab;\n -webkit-tap-highlight-color: transparent;\n }\n }\n\n &-viewControls {\n position: absolute;\n right: var(--spacing-s, 8px);\n bottom: var(--spacing-s, 8px);\n display: flex;\n gap: 2px;\n padding: 2px;\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n }\n\n &-viewButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-color);\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n }\n\n &-empty {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--text-dark);\n font-size: 13px;\n }\n\n /* Announces the selection to a screen reader. A room selected by clicking its shape is\n otherwise silent, and there is nowhere useful for focus to land. */\n &-live {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n border: 0;\n clip-path: inset(50%);\n overflow: hidden;\n white-space: nowrap;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"roomViewer.module.mjs","names":[],"sources":["../../../../package/common/roomViewer/roomViewer.module.pcss"],"sourcesContent":[".roomViewer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-s, 8px);\n position: relative;\n\n /* Storeys, top first, the way a building reads in section. */\n &-floorBar {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-wrap: wrap;\n padding: var(--spacing-xs, 4px);\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n }\n\n &-floorTab {\n height: 28px;\n padding: 0 10px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-dark);\n font-size: 12px;\n white-space: nowrap;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n\n &-active {\n background: var(--primary-color);\n border-color: var(--primary-color);\n color: var(--text-on-primary);\n font-weight: 600;\n\n &:hover {\n background: var(--primary-color);\n }\n }\n }\n\n &-canvasWrapper {\n position: relative;\n overflow: hidden;\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n background: var(--background);\n\n &-pannable {\n /* Without this the browser claims the gesture and pointermove stops firing. */\n touch-action: none;\n cursor: grab;\n -webkit-tap-highlight-color: transparent;\n }\n }\n\n &-viewControls {\n position: absolute;\n right: var(--spacing-s, 8px);\n bottom: var(--spacing-s, 8px);\n display: flex;\n gap: 2px;\n padding: 2px;\n background: var(--background-accent);\n border: 1px solid var(--border-color);\n border-radius: var(--default-border-radius);\n }\n\n &-viewButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid transparent;\n border-radius: var(--default-border-radius);\n background: transparent;\n color: var(--text-color);\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background: var(--background-accent-light);\n }\n\n &:focus-visible {\n outline: none;\n border-color: var(--focus-border-color, var(--primary-color));\n }\n }\n\n &-empty {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--text-dark);\n font-size: 13px;\n }\n\n /* Announces the selection to a screen reader. A room selected by clicking its shape is\n otherwise silent, and there is nowhere useful for focus to land. */\n &-live {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n border: 0;\n clip-path: inset(50%);\n overflow: hidden;\n white-space: nowrap;\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- import{AccordionStyleType as e}from"./common/accordion/accordion.types.mjs";import t from"./common/configProvider/configProvider.mjs";import{useComponentDefaults as n}from"./common/configProvider/useComponentDefaults.mjs";import{usePresentationDefault as r}from"./common/configProvider/usePresentationDefault.mjs";import i from"./common/accordion/accordion.mjs";import a from"./common/loading/spinnerLoading/index.mjs";import{ButtonSize as o,ButtonStyleType as s,ButtonType as c}from"./common/button/button.types.mjs";import l from"./common/ripple/ripple.mjs";import u from"./common/button/button.mjs";import d from"./common/actionButtons/actionButtons.mjs";import f from"./common/interactableDiv/index.mjs";import p from"./common/actionIcon/actionIcon.mjs";import{AlertStyleType as m}from"./common/alert/alert.types.mjs";import h from"./common/alert/alert.mjs";import g from"./common/animatedLogo/animatedLogo.mjs";import{AnimatedTextUnit as _,AnimatedTextVariant as v}from"./common/animatedText/animatedText.types.mjs";import y from"./common/animatedText/animatedText.mjs";import{BadgePosition as b,BadgeStyleType as x}from"./common/badge/badge.types.mjs";import S from"./common/badge/badge.mjs";import C from"./common/avatar/avatar.mjs";import w from"./common/avatar/avatarGroup.mjs";import T from"./common/bodyEnd/bodyEnd.mjs";import{Align as E,Presentation as D}from"./common/floatingMenu/floatingMenu.types.mjs";import O from"./common/floatingMenu/floatingMenu.mjs";import k from"./common/breadcrumb/breadcrumb.mjs";import{ButtonGroupOrientation as A}from"./common/buttonGroup/buttonGroup.types.mjs";import j from"./common/buttonGroup/buttonGroup.mjs";import{CardStyleType as M}from"./common/card/card.types.mjs";import N from"./common/card/Card.mjs";import P from"./common/card/CardHeader.mjs";import F from"./common/card/CardMedia.mjs";import I from"./common/card/CardContent.mjs";import L from"./common/card/CardActions.mjs";import R from"./common/carousel/carousel.mjs";import z from"./common/checkbox/checkbox.mjs";import{ChipStyleType as B}from"./common/chip/chip.types.mjs";import V from"./common/chip/chip.mjs";import H from"./common/chip/chipContainer.mjs";import U from"./common/tooltip/tooltip.mjs";import{InputIconPosition as W,InputType as G}from"./common/input/input.types.mjs";import K from"./common/input/input.mjs";import q from"./common/colorPicker/colorPicker.mjs";import J from"./common/modal/modal.mjs";import Y from"./common/confirmModal/confirmModal.mjs";import{getLocale as X,mapLocale as Z,setLocale as Q}from"./services/localization.mjs";import $ from"./common/infiniteBlock/infiniteBlock.mjs";import ee from"./common/dropdown/dropdown.mjs";import te from"./common/datePicker/datePicker.mjs";import{DividerOrientation as ne,DividerTextPosition as re}from"./common/divider/divider.types.mjs";import ie from"./common/divider/divider.mjs";import ae from"./common/drawer/drawer.mjs";import{DropZoneReturnType as oe,DropZoneStatus as se}from"./common/dropZone/dropZone.types.mjs";import ce from"./common/dropZone/dropZone.mjs";import le from"./common/emptyState/emptyState.mjs";import{showToast as ue}from"./common/toast/toastService.mjs";import de from"./common/toast/toastProvider.mjs";import fe from"./common/errorBoundary/errorBoundary.mjs";import pe from"./common/fab/fab.mjs";import me from"./common/flip/flip.mjs";import{DoorSwing as he,OpeningKind as ge,PlanIssueKind as _e,PlanUnitSystem as ve,WallType as ye}from"./common/floorPlan/floorPlan.types.mjs";import{MIN_OPENING_WIDTH as be,MIN_WALL_LENGTH as xe}from"./common/floorPlan/floorPlan.geometry.mjs";import{DEFAULT_WALL_ATTRS as Se,addOpening as Ce,addRect as we,addWall as Te,cleanupPlan as Ee,dissolveNode as De,mergeNodes as Oe,moveNode as ke,removeOpening as Ae,removeWall as je,scalePlan as Me,splitWall as Ne,transformPlan as Pe,updateOpening as Fe,validatePlan as Ie,wallLength as Le}from"./common/floorPlan/floorPlan.graph.mjs";import{MIN_FLOOR_HEIGHT as Re,addFloor as ze,duplicateFloor as Be,emptyFloor as Ve,emptyFloorPlan as He,floorBelow as Ue,floorBounds as We,floorIndex as Ge,getFloor as Ke,moveFloor as qe,removeFloor as Je,renameFloor as Ye,setFloor as Xe,setFloorHeight as Ze,updateFloor as Qe}from"./common/floorPlan/floorPlan.plan.mjs";import{deriveFaces as $e,nodeDegrees as et}from"./common/floorPlan/floorPlan.faces.mjs";import{commitDerivation as tt,derivePlan as nt,pruneUnmatchedRooms as rt,roomAtPoint as it}from"./common/floorPlan/floorPlan.rooms.mjs";import{buildWallPaths as at,openingGeometry as ot,wallCentrelineSpans as st}from"./common/floorPlan/floorPlan.path.mjs";import{HIT_PX as ct,HIT_PX_COARSE as lt,hitTest as ut,selectionsEqual as dt,worldTolerances as ft}from"./common/floorPlan/floorPlan.hit.mjs";import{DEFAULT_SNAP_OPTIONS as pt,SnapKind as mt,clientToWorld as ht,resolveSnap as gt,screenScale as _t}from"./common/floorPlan/floorPlan.snap.mjs";import{PLAN_FORMAT_VERSION as vt,planFromJson as yt,planToJson as bt}from"./common/floorPlan/floorPlan.json.mjs";import{planFromLegacySvg as xt}from"./common/floorPlan/legacySvg.mjs";import St from"./common/iconPicker/iconPicker.mjs";import Ct from"./common/idleManager/idleManager.mjs";import wt from"./common/inputDropdown/inputDropdown.mjs";import Tt from"./common/kanbanBoard/KanbanColumn.mjs";import Et from"./common/kanbanBoard/KanbanBoard.mjs";import Dt from"./common/searchInput/searchInput.mjs";import Ot from"./common/klipyPicker/klipyPicker.mjs";import kt from"./common/loading/iconLoading/index.mjs";import At from"./common/numberInput/index.mjs";import jt from"./common/optionPicker/optionPicker.mjs";import{OtpInputCharset as Mt}from"./common/otpInput/otpInput.types.mjs";import Nt from"./common/otpInput/otpInput.mjs";import Pt from"./common/overscroll/overscroll.mjs";import{PopoverAlign as Ft,PopoverPlacement as It,PopoverTrigger as Lt}from"./common/popover/popover.types.mjs";import Rt from"./common/popover/popover.mjs";import zt from"./common/progressBar/progressBar.mjs";import{RadioGroupOrientation as Bt}from"./common/radioGroup/radioGroup.types.mjs";import Vt from"./common/radioGroup/radioGroup.mjs";import Ht from"./common/rating/rating.mjs";import Ut from"./common/revealLens/revealLens.mjs";import Wt from"./common/roomDrawer/roomDrawer.mjs";import Gt from"./common/roomViewer/roomViewer.mjs";import Kt from"./common/scrollbarProvider/index.mjs";import{SectionHeaderSize as qt}from"./common/sectionHeader/sectionHeader.types.mjs";import Jt from"./common/sectionHeader/sectionHeader.mjs";import{SkeletonAnimation as Yt,SkeletonVariant as Xt}from"./common/skeleton/skeleton.types.mjs";import Zt from"./common/skeleton/skeleton.mjs";import Qt from"./common/slider/slider.mjs";import $t from"./common/splitButton/splitButton.mjs";import{StepperAlignment as en,StepperCollapse as tn,StepperLabelPlacement as nn,StepperStyleType as rn}from"./common/stepper/stepper.types.mjs";import an from"./common/stepper/stepper.mjs";import on from"./common/sticky/sticky.mjs";import sn from"./common/switch/switch.mjs";import cn from"./common/tabHeader/tabHeader.mjs";import ln from"./common/textarea/textarea.mjs";import{defaultTheme as un}from"./common/themeProvider/defaultTheme.mjs";import dn from"./common/themeProvider/themeProvider.mjs";import{useTheme as fn}from"./common/themeProvider/useTheme.mjs";import pn,{TiltGroupContext as mn,useTiltGroup as hn}from"./common/tiltGroup/tiltGroup.mjs";import{defaultTiltEasing as gn}from"./common/tilt/tiltMath.mjs";import _n from"./common/tilt/tilt.mjs";import vn from"./common/timeInput/timeInput.mjs";import{TimelineAlignment as yn,TimelineItemStatus as bn}from"./common/timeline/timeline.types.mjs";import xn from"./common/timeline/timeline.mjs";import Sn from"./common/timer/timer.mjs";import Cn from"./common/virtualList/virtualList.mjs";import wn from"./common/wizard/wizard.mjs";import Tn from"./services/formValidation/FormValidatorGroupWithForm.mjs";import En from"./services/formValidation/validatableComponent.mjs";import{useFormValidatorGroup as Dn}from"./services/formValidation/useFormValidatorGroup.mjs";import{FormValidator as On,Validators as kn,useFormValidator as An}from"./services/formValidation/index.mjs";import{hasEightPasswordChars as jn,hasOnePasswordDigit as Mn,hasOnePasswordLetter as Nn,isBic as Pn,isDate as Fn,isEmail as In,isISODate as Ln,isNumber as Rn,isPassword as zn,isURL as Bn}from"@ahrowe/form-validation";export{i as Accordion,e as AccordionStyleType,d as ActionButtons,p as ActionIcon,h as Alert,m as AlertStyleType,E as Align,g as AnimatedLogo,y as AnimatedText,_ as AnimatedTextUnit,v as AnimatedTextVariant,C as Avatar,w as AvatarGroup,S as Badge,b as BadgePosition,x as BadgeStyleType,T as BodyEnd,k as Breadcrumb,u as Button,j as ButtonGroup,A as ButtonGroupOrientation,o as ButtonSize,s as ButtonStyleType,c as ButtonType,N as Card,L as CardActions,I as CardContent,P as CardHeader,F as CardMedia,M as CardStyleType,R as Carousel,z as Checkbox,V as Chip,H as ChipContainer,B as ChipStyleType,q as ColorPicker,t as ConfigProvider,Y as ConfirmModal,pt as DEFAULT_SNAP_OPTIONS,Se as DEFAULT_WALL_ATTRS,te as DatePicker,ie as Divider,ne as DividerOrientation,re as DividerTextPosition,he as DoorSwing,ae as Drawer,ce as DropZone,oe as DropZoneReturnType,se as DropZoneStatus,ee as Dropdown,le as EmptyState,fe as ErrorBoundary,pe as Fab,me as Flip,O as FloatingMenu,On as FormValidator,Tn as FormValidatorGroup,ct as HIT_PX,lt as HIT_PX_COARSE,kt as IconLoading,St as IconPicker,Ct as IdleManager,$ as InfiniteBlock,K as Input,wt as InputDropdown,W as InputIconPosition,G as InputType,f as InteractableDiv,Et as KanbanBoard,Tt as KanbanColumn,Ot as KlipyPicker,Re as MIN_FLOOR_HEIGHT,be as MIN_OPENING_WIDTH,xe as MIN_WALL_LENGTH,J as Modal,At as NumberInput,ge as OpeningKind,jt as OptionPicker,Nt as OtpInput,Mt as OtpInputCharset,Pt as Overscroll,vt as PLAN_FORMAT_VERSION,_e as PlanIssueKind,ve as PlanUnitSystem,Rt as Popover,Ft as PopoverAlign,It as PopoverPlacement,Lt as PopoverTrigger,D as Presentation,zt as ProgressBar,Vt as RadioGroup,Bt as RadioGroupOrientation,Ht as Rating,Ut as RevealLens,l as Ripple,Wt as RoomDrawer,Gt as RoomViewer,Kt as ScrollbarProvider,Dt as SearchInput,Jt as SectionHeader,qt as SectionHeaderSize,Zt as Skeleton,Yt as SkeletonAnimation,Xt as SkeletonVariant,Qt as Slider,mt as SnapKind,a as SpinnerLoading,$t as SplitButton,an as Stepper,en as StepperAlignment,tn as StepperCollapse,nn as StepperLabelPlacement,rn as StepperStyleType,on as Sticky,sn as Switch,cn as TabHeader,ln as Textarea,dn as ThemeProvider,_n as Tilt,pn as TiltGroup,mn as TiltGroupContext,vn as TimeInput,xn as Timeline,yn as TimelineAlignment,bn as TimelineItemStatus,Sn as Timer,de as ToastProvider,U as Tooltip,En as ValidatableComponent,kn as Validators,Cn as VirtualList,ye as WallType,wn as Wizard,ze as addFloor,Ce as addOpening,we as addRect,Te as addWall,at as buildWallPaths,Ee as cleanupPlan,ht as clientToWorld,tt as commitDerivation,un as defaultTheme,gn as defaultTiltEasing,$e as deriveFaces,nt as derivePlan,De as dissolveNode,Be as duplicateFloor,Ve as emptyFloor,He as emptyFloorPlan,Ue as floorBelow,We as floorBounds,Ge as floorIndex,Ke as getFloor,X as getLocale,jn as hasEightPasswordChars,Mn as hasOnePasswordDigit,Nn as hasOnePasswordLetter,ut as hitTest,Pn as isBic,Fn as isDate,In as isEmail,Ln as isISODate,Rn as isNumber,zn as isPassword,Bn as isURL,Z as mapLocale,Oe as mergeNodes,qe as moveFloor,ke as moveNode,et as nodeDegrees,ot as openingGeometry,yt as planFromJson,xt as planFromLegacySvg,bt as planToJson,rt as pruneUnmatchedRooms,Je as removeFloor,Ae as removeOpening,je as removeWall,Ye as renameFloor,gt as resolveSnap,it as roomAtPoint,Me as scalePlan,_t as screenScale,dt as selectionsEqual,Xe as setFloor,Ze as setFloorHeight,Q as setLocale,ue as showToast,Ne as splitWall,Pe as transformPlan,Qe as updateFloor,Fe as updateOpening,n as useComponentDefaults,An as useFormValidator,Dn as useFormValidatorGroup,r as usePresentationDefault,fn as useTheme,hn as useTiltGroup,Ie as validatePlan,st as wallCentrelineSpans,Le as wallLength,ft as worldTolerances};
1
+ import{AccordionStyleType as e}from"./common/accordion/accordion.types.mjs";import t from"./common/configProvider/configProvider.mjs";import{useComponentDefaults as n}from"./common/configProvider/useComponentDefaults.mjs";import{usePresentationDefault as r}from"./common/configProvider/usePresentationDefault.mjs";import i from"./common/accordion/accordion.mjs";import a from"./common/loading/spinnerLoading/index.mjs";import{ButtonSize as o,ButtonStyleType as s,ButtonType as c}from"./common/button/button.types.mjs";import l from"./common/ripple/ripple.mjs";import u from"./common/button/button.mjs";import d from"./common/actionButtons/actionButtons.mjs";import f from"./common/interactableDiv/index.mjs";import p from"./common/actionIcon/actionIcon.mjs";import{AlertStyleType as m}from"./common/alert/alert.types.mjs";import h from"./common/alert/alert.mjs";import g from"./common/animatedLogo/animatedLogo.mjs";import{AnimatedTextUnit as _,AnimatedTextVariant as v}from"./common/animatedText/animatedText.types.mjs";import y from"./common/animatedText/animatedText.mjs";import{BadgePosition as b,BadgeStyleType as x}from"./common/badge/badge.types.mjs";import S from"./common/badge/badge.mjs";import C from"./common/avatar/avatar.mjs";import w from"./common/avatar/avatarGroup.mjs";import T from"./common/bodyEnd/bodyEnd.mjs";import{Align as E,Presentation as D}from"./common/floatingMenu/floatingMenu.types.mjs";import O from"./common/floatingMenu/floatingMenu.mjs";import k from"./common/breadcrumb/breadcrumb.mjs";import{ButtonGroupOrientation as A}from"./common/buttonGroup/buttonGroup.types.mjs";import j from"./common/buttonGroup/buttonGroup.mjs";import{CardStyleType as M}from"./common/card/card.types.mjs";import N from"./common/card/Card.mjs";import P from"./common/card/CardHeader.mjs";import F from"./common/card/CardMedia.mjs";import I from"./common/card/CardContent.mjs";import L from"./common/card/CardActions.mjs";import R from"./common/carousel/carousel.mjs";import z from"./common/checkbox/checkbox.mjs";import{ChipStyleType as B}from"./common/chip/chip.types.mjs";import V from"./common/chip/chip.mjs";import H from"./common/chip/chipContainer.mjs";import U from"./common/tooltip/tooltip.mjs";import{InputIconPosition as W,InputType as G}from"./common/input/input.types.mjs";import K from"./common/input/input.mjs";import q from"./common/colorPicker/colorPicker.mjs";import J from"./common/modal/modal.mjs";import Y from"./common/confirmModal/confirmModal.mjs";import{getLocale as X,mapLocale as Z,setLocale as Q}from"./services/localization.mjs";import $ from"./common/infiniteBlock/infiniteBlock.mjs";import ee from"./common/dropdown/dropdown.mjs";import te from"./common/datePicker/datePicker.mjs";import{DividerOrientation as ne,DividerTextPosition as re}from"./common/divider/divider.types.mjs";import ie from"./common/divider/divider.mjs";import ae from"./common/drawer/drawer.mjs";import{DropZoneReturnType as oe,DropZoneStatus as se}from"./common/dropZone/dropZone.types.mjs";import ce from"./common/dropZone/dropZone.mjs";import le from"./common/emptyState/emptyState.mjs";import{showToast as ue}from"./common/toast/toastService.mjs";import de from"./common/toast/toastProvider.mjs";import fe from"./common/errorBoundary/errorBoundary.mjs";import pe from"./common/fab/fab.mjs";import me from"./common/flip/flip.mjs";import{DoorSwing as he,OpeningKind as ge,PlanIssueKind as _e,PlanUnitSystem as ve,WallType as ye}from"./common/floorPlan/floorPlan.types.mjs";import{MIN_OPENING_WIDTH as be,MIN_WALL_LENGTH as xe}from"./common/floorPlan/floorPlan.geometry.mjs";import{DEFAULT_WALL_ATTRS as Se,addOpening as Ce,addRect as we,addWall as Te,cleanupPlan as Ee,detachWall as De,dissolveNode as Oe,mergeNodes as ke,moveNode as Ae,removeOpening as je,removeWall as Me,scalePlan as Ne,splitWall as Pe,transformPlan as Fe,updateOpening as Ie,validatePlan as Le,wallLength as Re,weldShortWalls as ze}from"./common/floorPlan/floorPlan.graph.mjs";import{MIN_FLOOR_HEIGHT as Be,addFloor as Ve,duplicateFloor as He,emptyFloor as Ue,emptyFloorPlan as We,floorBelow as Ge,floorBounds as Ke,floorIndex as qe,getFloor as Je,moveFloor as Ye,removeFloor as Xe,renameFloor as Ze,setFloor as Qe,setFloorHeight as $e,updateFloor as et}from"./common/floorPlan/floorPlan.plan.mjs";import{deriveFaces as tt,nodeDegrees as nt}from"./common/floorPlan/floorPlan.faces.mjs";import{commitDerivation as rt,derivePlan as it,pruneUnmatchedRooms as at,roomAtPoint as ot}from"./common/floorPlan/floorPlan.rooms.mjs";import{buildWallPaths as st,openingGeometry as ct,wallCentrelineSpans as lt}from"./common/floorPlan/floorPlan.path.mjs";import{HIT_PX as ut,HIT_PX_COARSE as dt,hitTest as ft,selectionsEqual as pt,worldTolerances as mt}from"./common/floorPlan/floorPlan.hit.mjs";import{DEFAULT_SNAP_OPTIONS as ht,SnapKind as gt,clientToWorld as _t,resolveSnap as vt,screenScale as yt}from"./common/floorPlan/floorPlan.snap.mjs";import{PLAN_FORMAT_VERSION as bt,planFromJson as xt,planToJson as St}from"./common/floorPlan/floorPlan.json.mjs";import{buildPlanMesh as Ct}from"./common/floorPlan/floorPlan.mesh.mjs";import{planFromLegacySvg as wt}from"./common/floorPlan/legacySvg.mjs";import Tt from"./common/iconPicker/iconPicker.mjs";import Et from"./common/idleManager/idleManager.mjs";import Dt from"./common/inputDropdown/inputDropdown.mjs";import Ot from"./common/kanbanBoard/KanbanColumn.mjs";import kt from"./common/kanbanBoard/KanbanBoard.mjs";import At from"./common/searchInput/searchInput.mjs";import jt from"./common/klipyPicker/klipyPicker.mjs";import Mt from"./common/loading/iconLoading/index.mjs";import Nt from"./common/numberInput/index.mjs";import Pt from"./common/optionPicker/optionPicker.mjs";import{OtpInputCharset as Ft}from"./common/otpInput/otpInput.types.mjs";import It from"./common/otpInput/otpInput.mjs";import Lt from"./common/overscroll/overscroll.mjs";import{PopoverAlign as Rt,PopoverPlacement as zt,PopoverTrigger as Bt}from"./common/popover/popover.types.mjs";import Vt from"./common/popover/popover.mjs";import Ht from"./common/progressBar/progressBar.mjs";import{RadioGroupOrientation as Ut}from"./common/radioGroup/radioGroup.types.mjs";import Wt from"./common/radioGroup/radioGroup.mjs";import Gt from"./common/rating/rating.mjs";import Kt from"./common/revealLens/revealLens.mjs";import qt from"./common/roomDrawer/roomDrawer.mjs";import Jt from"./common/roomViewer/roomViewer.mjs";import Yt from"./common/scrollbarProvider/index.mjs";import{SectionHeaderSize as Xt}from"./common/sectionHeader/sectionHeader.types.mjs";import Zt from"./common/sectionHeader/sectionHeader.mjs";import{SkeletonAnimation as Qt,SkeletonVariant as $t}from"./common/skeleton/skeleton.types.mjs";import en from"./common/skeleton/skeleton.mjs";import tn from"./common/slider/slider.mjs";import nn from"./common/splitButton/splitButton.mjs";import{StepperAlignment as rn,StepperCollapse as an,StepperLabelPlacement as on,StepperStyleType as sn}from"./common/stepper/stepper.types.mjs";import cn from"./common/stepper/stepper.mjs";import ln from"./common/sticky/sticky.mjs";import un from"./common/switch/switch.mjs";import dn from"./common/tabHeader/tabHeader.mjs";import fn from"./common/textarea/textarea.mjs";import{defaultTheme as pn}from"./common/themeProvider/defaultTheme.mjs";import mn from"./common/themeProvider/themeProvider.mjs";import{useTheme as hn}from"./common/themeProvider/useTheme.mjs";import gn,{TiltGroupContext as _n,useTiltGroup as vn}from"./common/tiltGroup/tiltGroup.mjs";import{defaultTiltEasing as yn}from"./common/tilt/tiltMath.mjs";import bn from"./common/tilt/tilt.mjs";import xn from"./common/timeInput/timeInput.mjs";import{TimelineAlignment as Sn,TimelineItemStatus as Cn}from"./common/timeline/timeline.types.mjs";import wn from"./common/timeline/timeline.mjs";import Tn from"./common/timer/timer.mjs";import En from"./common/virtualList/virtualList.mjs";import Dn from"./common/wizard/wizard.mjs";import On from"./services/formValidation/FormValidatorGroupWithForm.mjs";import kn from"./services/formValidation/validatableComponent.mjs";import{useFormValidatorGroup as An}from"./services/formValidation/useFormValidatorGroup.mjs";import{FormValidator as jn,Validators as Mn,useFormValidator as Nn}from"./services/formValidation/index.mjs";import{hasEightPasswordChars as Pn,hasOnePasswordDigit as Fn,hasOnePasswordLetter as In,isBic as Ln,isDate as Rn,isEmail as zn,isISODate as Bn,isNumber as Vn,isPassword as Hn,isURL as Un}from"@ahrowe/form-validation";export{i as Accordion,e as AccordionStyleType,d as ActionButtons,p as ActionIcon,h as Alert,m as AlertStyleType,E as Align,g as AnimatedLogo,y as AnimatedText,_ as AnimatedTextUnit,v as AnimatedTextVariant,C as Avatar,w as AvatarGroup,S as Badge,b as BadgePosition,x as BadgeStyleType,T as BodyEnd,k as Breadcrumb,u as Button,j as ButtonGroup,A as ButtonGroupOrientation,o as ButtonSize,s as ButtonStyleType,c as ButtonType,N as Card,L as CardActions,I as CardContent,P as CardHeader,F as CardMedia,M as CardStyleType,R as Carousel,z as Checkbox,V as Chip,H as ChipContainer,B as ChipStyleType,q as ColorPicker,t as ConfigProvider,Y as ConfirmModal,ht as DEFAULT_SNAP_OPTIONS,Se as DEFAULT_WALL_ATTRS,te as DatePicker,ie as Divider,ne as DividerOrientation,re as DividerTextPosition,he as DoorSwing,ae as Drawer,ce as DropZone,oe as DropZoneReturnType,se as DropZoneStatus,ee as Dropdown,le as EmptyState,fe as ErrorBoundary,pe as Fab,me as Flip,O as FloatingMenu,jn as FormValidator,On as FormValidatorGroup,ut as HIT_PX,dt as HIT_PX_COARSE,Mt as IconLoading,Tt as IconPicker,Et as IdleManager,$ as InfiniteBlock,K as Input,Dt as InputDropdown,W as InputIconPosition,G as InputType,f as InteractableDiv,kt as KanbanBoard,Ot as KanbanColumn,jt as KlipyPicker,Be as MIN_FLOOR_HEIGHT,be as MIN_OPENING_WIDTH,xe as MIN_WALL_LENGTH,J as Modal,Nt as NumberInput,ge as OpeningKind,Pt as OptionPicker,It as OtpInput,Ft as OtpInputCharset,Lt as Overscroll,bt as PLAN_FORMAT_VERSION,_e as PlanIssueKind,ve as PlanUnitSystem,Vt as Popover,Rt as PopoverAlign,zt as PopoverPlacement,Bt as PopoverTrigger,D as Presentation,Ht as ProgressBar,Wt as RadioGroup,Ut as RadioGroupOrientation,Gt as Rating,Kt as RevealLens,l as Ripple,qt as RoomDrawer,Jt as RoomViewer,Yt as ScrollbarProvider,At as SearchInput,Zt as SectionHeader,Xt as SectionHeaderSize,en as Skeleton,Qt as SkeletonAnimation,$t as SkeletonVariant,tn as Slider,gt as SnapKind,a as SpinnerLoading,nn as SplitButton,cn as Stepper,rn as StepperAlignment,an as StepperCollapse,on as StepperLabelPlacement,sn as StepperStyleType,ln as Sticky,un as Switch,dn as TabHeader,fn as Textarea,mn as ThemeProvider,bn as Tilt,gn as TiltGroup,_n as TiltGroupContext,xn as TimeInput,wn as Timeline,Sn as TimelineAlignment,Cn as TimelineItemStatus,Tn as Timer,de as ToastProvider,U as Tooltip,kn as ValidatableComponent,Mn as Validators,En as VirtualList,ye as WallType,Dn as Wizard,Ve as addFloor,Ce as addOpening,we as addRect,Te as addWall,Ct as buildPlanMesh,st as buildWallPaths,Ee as cleanupPlan,_t as clientToWorld,rt as commitDerivation,pn as defaultTheme,yn as defaultTiltEasing,tt as deriveFaces,it as derivePlan,De as detachWall,Oe as dissolveNode,He as duplicateFloor,Ue as emptyFloor,We as emptyFloorPlan,Ge as floorBelow,Ke as floorBounds,qe as floorIndex,Je as getFloor,X as getLocale,Pn as hasEightPasswordChars,Fn as hasOnePasswordDigit,In as hasOnePasswordLetter,ft as hitTest,Ln as isBic,Rn as isDate,zn as isEmail,Bn as isISODate,Vn as isNumber,Hn as isPassword,Un as isURL,Z as mapLocale,ke as mergeNodes,Ye as moveFloor,Ae as moveNode,nt as nodeDegrees,ct as openingGeometry,xt as planFromJson,wt as planFromLegacySvg,St as planToJson,at as pruneUnmatchedRooms,Xe as removeFloor,je as removeOpening,Me as removeWall,Ze as renameFloor,vt as resolveSnap,ot as roomAtPoint,Ne as scalePlan,yt as screenScale,pt as selectionsEqual,Qe as setFloor,$e as setFloorHeight,Q as setLocale,ue as showToast,Pe as splitWall,Fe as transformPlan,et as updateFloor,Ie as updateOpening,n as useComponentDefaults,Nn as useFormValidator,An as useFormValidatorGroup,r as usePresentationDefault,hn as useTheme,vn as useTiltGroup,Le as validatePlan,lt as wallCentrelineSpans,Re as wallLength,ze as weldShortWalls,mt as worldTolerances};