@francofantomius/material-components 1.0.1 → 1.1.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.
- package/CHANGELOG.md +39 -0
- package/README.md +41 -9
- package/custom-elements.json +19060 -9017
- package/dist/chunks/account-menu-Dau0UHTl.js +1290 -0
- package/dist/chunks/account-menu-Dau0UHTl.js.map +1 -0
- package/dist/chunks/app-drawer-Du1ePzxZ.js +903 -0
- package/dist/chunks/app-drawer-Du1ePzxZ.js.map +1 -0
- package/dist/chunks/bottom-sheet-q79BBYAj.js +402 -0
- package/dist/chunks/bottom-sheet-q79BBYAj.js.map +1 -0
- package/dist/chunks/{button-B4TSZ7Sl.js → button-D2vn7kJ8.js} +9 -8
- package/dist/chunks/button-D2vn7kJ8.js.map +1 -0
- package/dist/chunks/button-group-CNqvJx1n.js +143 -0
- package/dist/chunks/button-group-CNqvJx1n.js.map +1 -0
- package/dist/chunks/carousel-item-BG6kjjjk.js +371 -0
- package/dist/chunks/carousel-item-BG6kjjjk.js.map +1 -0
- package/dist/chunks/date-picker-DJeHi4w-.js +777 -0
- package/dist/chunks/date-picker-DJeHi4w-.js.map +1 -0
- package/dist/chunks/fab-menu.css-3pu930sZ.js +320 -0
- package/dist/chunks/fab-menu.css-3pu930sZ.js.map +1 -0
- package/dist/chunks/{icon-button-BdSc7eot.js → icon-button-BQz73GLa.js} +2 -2
- package/dist/chunks/icon-button-BQz73GLa.js.map +1 -0
- package/dist/chunks/loading-indicator-CvWnZr9o.js +193 -0
- package/dist/chunks/loading-indicator-CvWnZr9o.js.map +1 -0
- package/dist/chunks/menu-item-BBSp5Cqc.js +390 -0
- package/dist/chunks/menu-item-BBSp5Cqc.js.map +1 -0
- package/dist/chunks/navigation-bar-item-C9DfOEzg.js +397 -0
- package/dist/chunks/navigation-bar-item-C9DfOEzg.js.map +1 -0
- package/dist/chunks/navigation-rail-item-6pdhNHJK.js +357 -0
- package/dist/chunks/navigation-rail-item-6pdhNHJK.js.map +1 -0
- package/dist/chunks/segmented-button-B0BvGSQ7.js +265 -0
- package/dist/chunks/segmented-button-B0BvGSQ7.js.map +1 -0
- package/dist/chunks/side-sheet-S2w081AK.js +360 -0
- package/dist/chunks/side-sheet-S2w081AK.js.map +1 -0
- package/dist/chunks/slider-D-mnO8yQ.js +450 -0
- package/dist/chunks/slider-D-mnO8yQ.js.map +1 -0
- package/dist/chunks/split-button-DUfjukQY.js +450 -0
- package/dist/chunks/split-button-DUfjukQY.js.map +1 -0
- package/dist/chunks/{table-aRTYzDyE.js → table-CqHnneAj.js} +2 -2
- package/dist/chunks/{table-aRTYzDyE.js.map → table-CqHnneAj.js.map} +1 -1
- package/dist/chunks/time-picker-CZnb2sWz.js +785 -0
- package/dist/chunks/time-picker-CZnb2sWz.js.map +1 -0
- package/dist/chunks/toolbar-DXVQbQKJ.js +271 -0
- package/dist/chunks/toolbar-DXVQbQKJ.js.map +1 -0
- package/dist/chunks/tooltip-CE7JMHMu.js +398 -0
- package/dist/chunks/tooltip-CE7JMHMu.js.map +1 -0
- package/dist/components/account-menu/account-menu.js +8 -0
- package/dist/components/app-drawer/app-drawer.js +9 -0
- package/dist/components/bottom-sheet/bottom-sheet.css.d.ts +2 -0
- package/dist/components/bottom-sheet/bottom-sheet.css.d.ts.map +1 -0
- package/dist/components/bottom-sheet/bottom-sheet.d.ts +69 -0
- package/dist/components/bottom-sheet/bottom-sheet.d.ts.map +1 -0
- package/dist/components/bottom-sheet/bottom-sheet.js +4 -0
- package/dist/components/button/button.css.d.ts.map +1 -1
- package/dist/components/button/button.js +1 -1
- package/dist/components/button-group/button-group.css.d.ts +2 -0
- package/dist/components/button-group/button-group.css.d.ts.map +1 -0
- package/dist/components/button-group/button-group.d.ts +28 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -0
- package/dist/components/button-group/button-group.js +4 -0
- package/dist/components/carousel/carousel-item.d.ts +33 -0
- package/dist/components/carousel/carousel-item.d.ts.map +1 -0
- package/dist/components/carousel/carousel-item.js +4 -0
- package/dist/components/carousel/carousel.css.d.ts +3 -0
- package/dist/components/carousel/carousel.css.d.ts.map +1 -0
- package/dist/components/carousel/carousel.d.ts +81 -0
- package/dist/components/carousel/carousel.d.ts.map +1 -0
- package/dist/components/carousel/carousel.js +284 -0
- package/dist/components/carousel/carousel.js.map +1 -0
- package/dist/components/date-picker/date-picker.css.d.ts +2 -0
- package/dist/components/date-picker/date-picker.css.d.ts.map +1 -0
- package/dist/components/date-picker/date-picker.d.ts +59 -0
- package/dist/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker/date-picker.js +4 -0
- package/dist/components/fab-menu/fab-menu-item.d.ts +35 -0
- package/dist/components/fab-menu/fab-menu-item.d.ts.map +1 -0
- package/dist/components/fab-menu/fab-menu-item.js +93 -0
- package/dist/components/fab-menu/fab-menu-item.js.map +1 -0
- package/dist/components/fab-menu/fab-menu.css.d.ts +3 -0
- package/dist/components/fab-menu/fab-menu.css.d.ts.map +1 -0
- package/dist/components/fab-menu/fab-menu.d.ts +72 -0
- package/dist/components/fab-menu/fab-menu.d.ts.map +1 -0
- package/dist/components/fab-menu/fab-menu.js +148 -0
- package/dist/components/fab-menu/fab-menu.js.map +1 -0
- package/dist/components/icon-button/icon-button.js +1 -1
- package/dist/components/loading-indicator/loading-indicator.css.d.ts +2 -0
- package/dist/components/loading-indicator/loading-indicator.css.d.ts.map +1 -0
- package/dist/components/loading-indicator/loading-indicator.d.ts +48 -0
- package/dist/components/loading-indicator/loading-indicator.d.ts.map +1 -0
- package/dist/components/loading-indicator/loading-indicator.js +4 -0
- package/dist/components/menu/menu-item.d.ts +41 -0
- package/dist/components/menu/menu-item.d.ts.map +1 -0
- package/dist/components/menu/menu-item.js +4 -0
- package/dist/components/menu/menu.css.d.ts +3 -0
- package/dist/components/menu/menu.css.d.ts.map +1 -0
- package/dist/components/menu/menu.d.ts +91 -0
- package/dist/components/menu/menu.d.ts.map +1 -0
- package/dist/components/menu/menu.js +205 -0
- package/dist/components/menu/menu.js.map +1 -0
- package/dist/components/navigation-bar/navigation-bar-item.d.ts +49 -0
- package/dist/components/navigation-bar/navigation-bar-item.d.ts.map +1 -0
- package/dist/components/navigation-bar/navigation-bar-item.js +5 -0
- package/dist/components/navigation-bar/navigation-bar.css.d.ts +3 -0
- package/dist/components/navigation-bar/navigation-bar.css.d.ts.map +1 -0
- package/dist/components/navigation-bar/navigation-bar.d.ts +50 -0
- package/dist/components/navigation-bar/navigation-bar.d.ts.map +1 -0
- package/dist/components/navigation-bar/navigation-bar.js +150 -0
- package/dist/components/navigation-bar/navigation-bar.js.map +1 -0
- package/dist/components/navigation-rail/navigation-rail-item.d.ts +36 -0
- package/dist/components/navigation-rail/navigation-rail-item.d.ts.map +1 -0
- package/dist/components/navigation-rail/navigation-rail-item.js +5 -0
- package/dist/components/navigation-rail/navigation-rail.css.d.ts +3 -0
- package/dist/components/navigation-rail/navigation-rail.css.d.ts.map +1 -0
- package/dist/components/navigation-rail/navigation-rail.d.ts +43 -0
- package/dist/components/navigation-rail/navigation-rail.d.ts.map +1 -0
- package/dist/components/navigation-rail/navigation-rail.js +121 -0
- package/dist/components/navigation-rail/navigation-rail.js.map +1 -0
- package/dist/components/segmented-button/segmented-button.css.d.ts +3 -0
- package/dist/components/segmented-button/segmented-button.css.d.ts.map +1 -0
- package/dist/components/segmented-button/segmented-button.d.ts +40 -0
- package/dist/components/segmented-button/segmented-button.d.ts.map +1 -0
- package/dist/components/segmented-button/segmented-button.js +5 -0
- package/dist/components/side-sheet/side-sheet.css.d.ts +2 -0
- package/dist/components/side-sheet/side-sheet.css.d.ts.map +1 -0
- package/dist/components/side-sheet/side-sheet.d.ts +57 -0
- package/dist/components/side-sheet/side-sheet.d.ts.map +1 -0
- package/dist/components/side-sheet/side-sheet.js +4 -0
- package/dist/components/slider/slider.css.d.ts +2 -0
- package/dist/components/slider/slider.css.d.ts.map +1 -0
- package/dist/components/slider/slider.d.ts +51 -0
- package/dist/components/slider/slider.d.ts.map +1 -0
- package/dist/components/slider/slider.js +4 -0
- package/dist/components/split-button/split-button.css.d.ts +2 -0
- package/dist/components/split-button/split-button.css.d.ts.map +1 -0
- package/dist/components/split-button/split-button.d.ts +89 -0
- package/dist/components/split-button/split-button.d.ts.map +1 -0
- package/dist/components/split-button/split-button.js +4 -0
- package/dist/components/table/table.js +1 -1
- package/dist/components/time-picker/time-picker.css.d.ts +2 -0
- package/dist/components/time-picker/time-picker.css.d.ts.map +1 -0
- package/dist/components/time-picker/time-picker.d.ts +87 -0
- package/dist/components/time-picker/time-picker.d.ts.map +1 -0
- package/dist/components/time-picker/time-picker.js +4 -0
- package/dist/components/toolbar/toolbar.css.d.ts +2 -0
- package/dist/components/toolbar/toolbar.css.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar.d.ts +53 -0
- package/dist/components/toolbar/toolbar.d.ts.map +1 -0
- package/dist/components/toolbar/toolbar.js +4 -0
- package/dist/components/tooltip/tooltip.css.d.ts +2 -0
- package/dist/components/tooltip/tooltip.css.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +89 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.js +4 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -2263
- package/dist/tokens/index.js +4 -2
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/theme.css.d.ts.map +1 -1
- package/llms.txt +2326 -0
- package/package.json +99 -2
- package/dist/chunks/button-B4TSZ7Sl.js.map +0 -1
- package/dist/chunks/icon-button-BdSc7eot.js.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-picker-CZnb2sWz.js","names":[],"sources":["../../src/components/time-picker/time-picker.css.ts","../../src/components/time-picker/time-picker.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const timePickerStyles = css`\n :host {\n display: inline-block;\n color: var(--md-sys-color-on-surface, #1d1b20);\n font-family: var(--md-sys-typescale-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif);\n user-select: none;\n box-sizing: border-box;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n :host([modal]) {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n z-index: 1000;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n }\n\n :host([modal][open]) {\n pointer-events: auto;\n }\n\n :host([modal]:not([open])) {\n display: none;\n }\n\n /* Scrim Backdrop for Modal */\n .scrim {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.32);\n z-index: -1;\n opacity: 0;\n transition: opacity 0.2s cubic-bezier(0.2, 0, 0, 1);\n }\n\n :host([modal][open]) .scrim {\n opacity: 1;\n }\n\n /* Picker Container / Surface */\n .picker-surface {\n background-color: var(--md-sys-color-surface-container-high, #ece6f0);\n color: var(--md-sys-color-on-surface, #1d1b20);\n border-radius: var(--md-sys-shape-corner-extra-large, 28px);\n padding: 24px;\n display: flex;\n flex-direction: column;\n align-items: center;\n box-shadow: var(--md-sys-elevation-3, 0 4px 8px 3px rgba(0, 0, 0, 0.15), 0 1px 3px 0 rgba(0, 0, 0, 0.3));\n max-width: 360px;\n width: 100%;\n box-sizing: border-box;\n position: relative;\n }\n\n :host(:not([modal])) .picker-surface {\n box-shadow: var(--md-sys-elevation-1, 0 1px 3px 1px rgba(0, 0, 0, 0.15), 0 1px 2px 0 rgba(0, 0, 0, 0.3));\n border: 1px solid var(--md-sys-color-outline-variant, #cac4d0);\n background-color: var(--md-sys-color-surface, #fef7ff);\n }\n\n /* Headline / Header */\n .header {\n width: 100%;\n margin-bottom: 20px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .headline {\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0.1px;\n line-height: 20px;\n color: var(--md-sys-color-on-surface-variant, #49454f);\n margin: 0;\n }\n\n /* Time Display Input / Cards Row */\n .time-display-row {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n margin-bottom: 24px;\n width: 100%;\n }\n\n .time-card-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n }\n\n .time-card {\n width: 96px;\n height: 72px;\n background-color: var(--md-sys-color-surface-container-highest, #e6e0e9);\n color: var(--md-sys-color-on-surface, #1d1b20);\n border-radius: var(--md-sys-shape-corner-medium, 8px);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 45px;\n font-weight: 400;\n line-height: 52px;\n cursor: pointer;\n border: 2px solid transparent;\n transition: all 0.2s cubic-bezier(0.2, 0, 0, 1);\n box-sizing: border-box;\n position: relative;\n outline: none;\n }\n\n .time-card:focus-visible {\n border-color: var(--md-sys-color-primary, #6750a4);\n }\n\n .time-card.active {\n background-color: var(--md-sys-color-primary-container, #eaddff);\n color: var(--md-sys-color-on-primary-container, #21005d);\n border-color: var(--md-sys-color-primary, #6750a4);\n }\n\n .time-input {\n width: 100%;\n height: 100%;\n background: transparent;\n border: none;\n outline: none;\n text-align: center;\n font-size: 45px;\n font-weight: 400;\n line-height: 52px;\n color: inherit;\n font-family: inherit;\n padding: 0;\n box-sizing: border-box;\n }\n\n .time-card-label {\n font-size: 12px;\n font-weight: 400;\n color: var(--md-sys-color-on-surface-variant, #49454f);\n text-transform: capitalize;\n }\n\n .time-separator {\n font-size: 45px;\n font-weight: 400;\n line-height: 52px;\n color: var(--md-sys-color-on-surface, #1d1b20);\n margin: 0 2px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding-bottom: 20px;\n }\n\n /* Period Toggle (AM / PM) */\n .period-toggle {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--md-sys-color-outline, #79747e);\n border-radius: var(--md-sys-shape-corner-medium, 8px);\n overflow: hidden;\n height: 72px;\n width: 48px;\n margin-left: 4px;\n box-sizing: border-box;\n }\n\n .period-button {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n font-size: 14px;\n font-weight: 500;\n color: var(--md-sys-color-on-surface-variant, #49454f);\n cursor: pointer;\n outline: none;\n transition: background-color 0.15s, color 0.15s;\n user-select: none;\n }\n\n .period-button:first-child {\n border-bottom: 1px solid var(--md-sys-color-outline, #79747e);\n }\n\n .period-button.selected {\n background-color: var(--md-sys-color-tertiary-container, #ffd8e4);\n color: var(--md-sys-color-on-tertiary-container, #31111d);\n }\n\n .period-button:focus-visible {\n background-color: var(--md-sys-color-surface-container-highest, #e6e0e9);\n }\n\n /* Clock Dial Surface */\n .dial-container {\n width: 256px;\n height: 256px;\n border-radius: 50%;\n background-color: var(--md-sys-color-surface-container-highest, #e6e0e9);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n touch-action: none;\n cursor: pointer;\n margin: 8px 0;\n }\n\n .dial-center-pin {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--md-sys-color-primary, #6750a4);\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 3;\n pointer-events: none;\n }\n\n .dial-hand {\n position: absolute;\n bottom: 50%;\n left: 50%;\n width: 2px;\n background-color: var(--md-sys-color-primary, #6750a4);\n transform-origin: bottom center;\n z-index: 2;\n pointer-events: none;\n transition: height 0.15s cubic-bezier(0.2, 0, 0, 1);\n }\n\n .dial-selector-head {\n position: absolute;\n top: -24px;\n left: -23px;\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background-color: var(--md-sys-color-primary, #6750a4);\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n }\n\n .dial-inner-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--md-sys-color-on-primary, #ffffff);\n }\n\n .dial-number {\n position: absolute;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: 500;\n color: var(--md-sys-color-on-surface, #1d1b20);\n transform: translate(-50%, -50%);\n z-index: 4;\n pointer-events: none;\n transition: color 0.15s ease;\n }\n\n .dial-number.small {\n font-size: 13px;\n color: var(--md-sys-color-on-surface-variant, #49454f);\n }\n\n .dial-number.selected {\n color: var(--md-sys-color-on-primary, #ffffff);\n }\n\n /* Actions Row */\n .actions-row {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 16px;\n }\n\n .mode-switch-btn {\n background: transparent;\n border: none;\n color: var(--md-sys-color-on-surface-variant, #49454f);\n cursor: pointer;\n padding: 8px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n transition: background-color 0.15s;\n }\n\n .mode-switch-btn:hover {\n background-color: rgba(0, 0, 0, 0.06);\n }\n\n .mode-switch-btn:focus-visible {\n background-color: rgba(0, 0, 0, 0.12);\n }\n\n .dialog-buttons {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n /* Disabled state */\n :host([disabled]) {\n pointer-events: none;\n opacity: 0.38;\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { MdFormAssociatedElement } from '../../internal/form-associated.js';\nimport '../icon/icon.js';\nimport '../button/button.js';\nimport '../icon-button/icon-button.js';\nimport { timePickerStyles } from './time-picker.css.js';\n\nexport type TimePickerFormat = '12h' | '24h';\nexport type TimePickerView = 'dial' | 'input';\nexport type TimePickerField = 'hour' | 'minute';\nexport type TimePeriod = 'AM' | 'PM';\n\n@customElement('md-time-picker')\nexport class MdTimePicker extends MdFormAssociatedElement {\n static override styles = [MdFormAssociatedElement.styles, timePickerStyles];\n\n @property({ type: String })\n value = '';\n\n @property({ type: String })\n format: TimePickerFormat = '12h';\n\n @property({ type: String })\n view: TimePickerView = 'dial';\n\n @property({ type: Boolean, reflect: true })\n modal = false;\n\n @property({ type: Boolean, reflect: true })\n open = false;\n\n @property({ type: String })\n headline = 'Select time';\n\n @property({ type: String, attribute: 'return-value' })\n returnValue = '';\n\n @property({ type: Boolean, attribute: 'auto-switch-to-minute' })\n autoSwitchToMinute = true;\n\n @property({ type: String, attribute: 'cancel-label' })\n cancelLabel = 'Cancel';\n\n @property({ type: String, attribute: 'confirm-label' })\n confirmLabel = 'OK';\n\n @state()\n activeField: TimePickerField = 'hour';\n\n @state()\n selectedHour = 12;\n\n @state()\n selectedMinute = 0;\n\n @state()\n selectedPeriod: TimePeriod = 'AM';\n\n @state()\n private isDragging = false;\n\n @query('.dial-container')\n private dialContainer?: HTMLElement;\n\n @query('#hour-input')\n private hourInputElement?: HTMLInputElement;\n\n @query('#minute-input')\n private minuteInputElement?: HTMLInputElement;\n\n override connectedCallback() {\n super.connectedCallback();\n this.parseValue(this.value);\n this.syncFormValue();\n }\n\n override willUpdate(changedProperties: Map<string, unknown>) {\n super.willUpdate(changedProperties);\n if (changedProperties.has('value')) {\n this.parseValue(this.value);\n this.syncFormValue();\n }\n }\n\n /**\n * Parses time string (e.g. \"14:30\", \"02:30 PM\", \"2:30\", \"09:15 AM\") into components.\n */\n private parseValue(val: string) {\n if (!val || typeof val !== 'string') {\n const now = new Date();\n let h = now.getHours();\n const m = now.getMinutes();\n let p: TimePeriod = 'AM';\n\n if (this.format === '12h') {\n p = h >= 12 ? 'PM' : 'AM';\n h = h % 12 || 12;\n }\n this.selectedHour = h;\n this.selectedMinute = m;\n this.selectedPeriod = p;\n return;\n }\n\n const trimmed = val.trim();\n const is12hMatch = trimmed.match(/^(\\d{1,2}):(\\d{2})\\s*(AM|PM)$/i);\n const is24hMatch = trimmed.match(/^(\\d{1,2}):(\\d{2})$/);\n\n if (is12hMatch) {\n let h = parseInt(is12hMatch[1]!, 10);\n const m = Math.min(59, Math.max(0, parseInt(is12hMatch[2]!, 10)));\n const p = (is12hMatch[3]!.toUpperCase() as TimePeriod);\n if (this.format === '24h') {\n if (p === 'PM' && h < 12) h += 12;\n if (p === 'AM' && h === 12) h = 0;\n } else {\n h = Math.min(12, Math.max(1, h));\n }\n this.selectedHour = h;\n this.selectedMinute = m;\n this.selectedPeriod = p;\n } else if (is24hMatch) {\n let h = parseInt(is24hMatch[1]!, 10);\n const m = Math.min(59, Math.max(0, parseInt(is24hMatch[2]!, 10)));\n if (this.format === '12h') {\n const p: TimePeriod = h >= 12 ? 'PM' : 'AM';\n h = h % 12 || 12;\n this.selectedPeriod = p;\n } else {\n h = Math.min(23, Math.max(0, h));\n }\n this.selectedHour = h;\n this.selectedMinute = m;\n }\n }\n\n /**\n * Formats the current time state into a string according to format.\n */\n getFormattedTime(): string {\n const minStr = this.selectedMinute.toString().padStart(2, '0');\n if (this.format === '24h') {\n const hrStr = this.selectedHour.toString().padStart(2, '0');\n return `${hrStr}:${minStr}`;\n } else {\n const hrStr = this.selectedHour.toString().padStart(2, '0');\n return `${hrStr}:${minStr} ${this.selectedPeriod}`;\n }\n }\n\n /**\n * Formats current time into standard 24h \"HH:MM\" string.\n */\n getFormatted24(): string {\n const minStr = this.selectedMinute.toString().padStart(2, '0');\n let h = this.selectedHour;\n if (this.format === '12h') {\n if (this.selectedPeriod === 'PM' && h < 12) h += 12;\n if (this.selectedPeriod === 'AM' && h === 12) h = 0;\n }\n return `${h.toString().padStart(2, '0')}:${minStr}`;\n }\n\n /**\n * Formats current time into 12h \"hh:mm A\" string.\n */\n getFormatted12(): string {\n const minStr = this.selectedMinute.toString().padStart(2, '0');\n let h = this.selectedHour;\n let p = this.selectedPeriod;\n if (this.format === '24h') {\n p = h >= 12 ? 'PM' : 'AM';\n h = h % 12 || 12;\n }\n return `${h.toString().padStart(2, '0')}:${minStr} ${p}`;\n }\n\n private syncFormValue() {\n const val = this.getFormattedTime();\n this.value = val;\n this.setFormValue(val);\n }\n\n override formResetCallback() {\n this.parseValue('');\n this.syncFormValue();\n this.activeField = 'hour';\n }\n\n /**\n * Shows the time picker dialog modal.\n */\n showModal() {\n this.modal = true;\n this.open = true;\n this.emitEvent('open');\n }\n\n /**\n * Shows the time picker.\n */\n show() {\n this.open = true;\n this.emitEvent('open');\n }\n\n /**\n * Closes the modal time picker.\n */\n close(returnValue?: string) {\n if (returnValue !== undefined) {\n this.returnValue = returnValue;\n }\n this.open = false;\n this.emitEvent('close', { returnValue: this.returnValue });\n }\n\n /**\n * Confirms the selected time and fires change event.\n */\n confirm() {\n this.syncFormValue();\n const detail = {\n value: this.value,\n hour: this.selectedHour,\n minute: this.selectedMinute,\n period: this.selectedPeriod,\n formatted24: this.getFormatted24(),\n formatted12: this.getFormatted12(),\n };\n this.emitEvent('change', detail);\n this.emitEvent('confirm', detail);\n if (this.modal) {\n this.close('confirm');\n }\n }\n\n /**\n * Cancels selection and closes modal if opened.\n */\n cancel() {\n this.emitEvent('cancel');\n if (this.modal) {\n this.close('cancel');\n }\n }\n\n private toggleView() {\n this.view = this.view === 'dial' ? 'input' : 'dial';\n }\n\n private setField(field: TimePickerField) {\n this.activeField = field;\n }\n\n private setPeriod(period: TimePeriod) {\n if (this.selectedPeriod !== period) {\n this.selectedPeriod = period;\n this.syncFormValue();\n this.notifyInput();\n }\n }\n\n private notifyInput() {\n this.emitEvent('input', {\n value: this.getFormattedTime(),\n hour: this.selectedHour,\n minute: this.selectedMinute,\n period: this.selectedPeriod,\n formatted24: this.getFormatted24(),\n formatted12: this.getFormatted12(),\n });\n }\n\n /* ------------------- Clock Dial Calculations ------------------- */\n\n private handleDialPointerDown = (e: PointerEvent) => {\n if (this.disabled) return;\n this.isDragging = true;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this.updateDialFromPointer(e);\n };\n\n private handleDialPointerMove = (e: PointerEvent) => {\n if (!this.isDragging || this.disabled) return;\n this.updateDialFromPointer(e);\n };\n\n private handleDialPointerUp = (e: PointerEvent) => {\n if (!this.isDragging || this.disabled) return;\n this.isDragging = false;\n this.updateDialFromPointer(e);\n this.syncFormValue();\n this.emitEvent('change', {\n value: this.value,\n hour: this.selectedHour,\n minute: this.selectedMinute,\n period: this.selectedPeriod,\n formatted24: this.getFormatted24(),\n formatted12: this.getFormatted12(),\n });\n\n if (this.activeField === 'hour' && this.autoSwitchToMinute) {\n this.activeField = 'minute';\n }\n };\n\n private updateDialFromPointer(e: PointerEvent) {\n if (!this.dialContainer) return;\n const rect = this.dialContainer.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n const x = e.clientX - centerX;\n const y = e.clientY - centerY;\n\n let angle = Math.atan2(y, x) * (180 / Math.PI) + 90;\n if (angle < 0) angle += 360;\n\n const distance = Math.hypot(x, y);\n\n if (this.activeField === 'hour') {\n if (this.format === '24h') {\n const isInner = distance < 80;\n let step = Math.round(angle / 30) % 12;\n if (step === 0) step = 12;\n\n if (isInner) {\n this.selectedHour = step; // 1 to 12\n } else {\n this.selectedHour = step === 12 ? 0 : step + 12; // 00, 13 to 23\n }\n } else {\n let step = Math.round(angle / 30) % 12;\n if (step === 0) step = 12;\n this.selectedHour = step;\n }\n } else {\n const step = Math.round(angle / 6) % 60;\n this.selectedMinute = step;\n }\n\n this.notifyInput();\n }\n\n /* ------------------- Text Input Mode Handlers ------------------- */\n\n private handleHourInput = (e: Event) => {\n const input = e.target as HTMLInputElement;\n let val = parseInt(input.value, 10);\n if (isNaN(val)) return;\n\n if (this.format === '24h') {\n val = Math.min(23, Math.max(0, val));\n } else {\n val = Math.min(12, Math.max(1, val));\n }\n this.selectedHour = val;\n this.syncFormValue();\n this.notifyInput();\n\n if (input.value.length >= 2 && this.minuteInputElement) {\n this.minuteInputElement.focus();\n this.minuteInputElement.select();\n }\n };\n\n private handleMinuteInput = (e: Event) => {\n const input = e.target as HTMLInputElement;\n let val = parseInt(input.value, 10);\n if (isNaN(val)) return;\n\n val = Math.min(59, Math.max(0, val));\n this.selectedMinute = val;\n this.syncFormValue();\n this.notifyInput();\n };\n\n private handleHourBlur = () => {\n if (this.hourInputElement) {\n this.hourInputElement.value = this.selectedHour.toString().padStart(2, '0');\n }\n this.syncFormValue();\n this.emitEvent('change', {\n value: this.value,\n hour: this.selectedHour,\n minute: this.selectedMinute,\n period: this.selectedPeriod,\n });\n };\n\n private handleMinuteBlur = () => {\n if (this.minuteInputElement) {\n this.minuteInputElement.value = this.selectedMinute.toString().padStart(2, '0');\n }\n this.syncFormValue();\n this.emitEvent('change', {\n value: this.value,\n hour: this.selectedHour,\n minute: this.selectedMinute,\n period: this.selectedPeriod,\n });\n };\n\n /* ------------------- Rendering ------------------- */\n\n private renderDialHand() {\n let angle = 0;\n let length = 96; // radius in px\n\n if (this.activeField === 'hour') {\n if (this.format === '24h') {\n if (this.selectedHour >= 1 && this.selectedHour <= 12) {\n angle = (this.selectedHour % 12) * 30;\n length = 64; // inner ring\n } else {\n const h = this.selectedHour === 0 ? 12 : this.selectedHour - 12;\n angle = (h % 12) * 30;\n length = 98; // outer ring\n }\n } else {\n angle = (this.selectedHour % 12) * 30;\n length = 96;\n }\n } else {\n angle = this.selectedMinute * 6;\n length = 96;\n }\n\n const isNonFiveMinute = this.activeField === 'minute' && this.selectedMinute % 5 !== 0;\n\n return html`\n <div\n class=\"dial-hand\"\n style=\"transform: rotate(${angle}deg); height: ${length}px;\"\n >\n <div class=\"dial-selector-head\">\n ${isNonFiveMinute ? html`<div class=\"dial-inner-dot\"></div>` : nothing}\n </div>\n </div>\n `;\n }\n\n private renderDialNumbers() {\n const center = 128; // half of 256px\n const numbers = [];\n\n if (this.activeField === 'hour') {\n if (this.format === '24h') {\n // Outer ring: 00, 13..23\n const outerRadius = 98;\n const outerHours = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n for (let i = 0; i < 12; i++) {\n const hVal = outerHours[i]! === 12 ? 0 : outerHours[i]! + 12;\n const display = hVal.toString().padStart(2, '0');\n const angle = (i * 30 - 90) * (Math.PI / 180);\n const x = center + outerRadius * Math.cos(angle);\n const y = center + outerRadius * Math.sin(angle);\n const isSelected = this.selectedHour === hVal;\n numbers.push(html`\n <span\n class=\"dial-number small ${isSelected ? 'selected' : ''}\"\n style=\"left: ${x}px; top: ${y}px;\"\n >\n ${display}\n </span>\n `);\n }\n\n // Inner ring: 1..12\n const innerRadius = 64;\n const innerHours = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n for (let i = 0; i < 12; i++) {\n const hVal = innerHours[i]!;\n const display = hVal.toString();\n const angle = (i * 30 - 90) * (Math.PI / 180);\n const x = center + innerRadius * Math.cos(angle);\n const y = center + innerRadius * Math.sin(angle);\n const isSelected = this.selectedHour === hVal;\n numbers.push(html`\n <span\n class=\"dial-number ${isSelected ? 'selected' : ''}\"\n style=\"left: ${x}px; top: ${y}px;\"\n >\n ${display}\n </span>\n `);\n }\n } else {\n // 12-hour dial\n const radius = 96;\n const hours = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n for (let i = 0; i < 12; i++) {\n const hVal = hours[i];\n const angle = (i * 30 - 90) * (Math.PI / 180);\n const x = center + radius * Math.cos(angle);\n const y = center + radius * Math.sin(angle);\n const isSelected = this.selectedHour === hVal;\n numbers.push(html`\n <span\n class=\"dial-number ${isSelected ? 'selected' : ''}\"\n style=\"left: ${x}px; top: ${y}px;\"\n >\n ${hVal}\n </span>\n `);\n }\n }\n } else {\n // Minutes dial: 00, 05, 10, ... 55\n const radius = 96;\n for (let i = 0; i < 12; i++) {\n const mVal = i * 5;\n const display = mVal.toString().padStart(2, '0');\n const angle = (i * 30 - 90) * (Math.PI / 180);\n const x = center + radius * Math.cos(angle);\n const y = center + radius * Math.sin(angle);\n const isSelected = this.selectedMinute === mVal;\n numbers.push(html`\n <span\n class=\"dial-number ${isSelected ? 'selected' : ''}\"\n style=\"left: ${x}px; top: ${y}px;\"\n >\n ${display}\n </span>\n `);\n }\n }\n\n return numbers;\n }\n\n override render() {\n const hourFormatted = this.selectedHour.toString().padStart(2, '0');\n const minuteFormatted = this.selectedMinute.toString().padStart(2, '0');\n\n return html`\n ${this.modal ? html`<div class=\"scrim\" @click=${this.cancel}></div>` : nothing}\n\n <div class=\"picker-surface\" role=\"dialog\" aria-modal=${this.modal ? 'true' : 'false'}>\n <div class=\"header\">\n <h2 class=\"headline\">${this.headline}</h2>\n </div>\n\n <div class=\"time-display-row\">\n <div class=\"time-card-wrapper\">\n ${this.view === 'input'\n ? html`\n <div class=\"time-card ${this.activeField === 'hour' ? 'active' : ''}\">\n <input\n id=\"hour-input\"\n class=\"time-input\"\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"2\"\n .value=${hourFormatted}\n @input=${this.handleHourInput}\n @blur=${this.handleHourBlur}\n @focus=${() => this.setField('hour')}\n aria-label=\"Hour\"\n />\n </div>\n `\n : html`\n <button\n type=\"button\"\n class=\"time-card ${this.activeField === 'hour' ? 'active' : ''}\"\n @click=${() => this.setField('hour')}\n aria-label=\"Select hour\"\n >\n ${hourFormatted}\n </button>\n `}\n ${this.view === 'input' ? html`<span class=\"time-card-label\">Hour</span>` : nothing}\n </div>\n\n <span class=\"time-separator\" aria-hidden=\"true\">:</span>\n\n <div class=\"time-card-wrapper\">\n ${this.view === 'input'\n ? html`\n <div class=\"time-card ${this.activeField === 'minute' ? 'active' : ''}\">\n <input\n id=\"minute-input\"\n class=\"time-input\"\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"2\"\n .value=${minuteFormatted}\n @input=${this.handleMinuteInput}\n @blur=${this.handleMinuteBlur}\n @focus=${() => this.setField('minute')}\n aria-label=\"Minute\"\n />\n </div>\n `\n : html`\n <button\n type=\"button\"\n class=\"time-card ${this.activeField === 'minute' ? 'active' : ''}\"\n @click=${() => this.setField('minute')}\n aria-label=\"Select minute\"\n >\n ${minuteFormatted}\n </button>\n `}\n ${this.view === 'input' ? html`<span class=\"time-card-label\">Minute</span>` : nothing}\n </div>\n\n ${this.format === '12h'\n ? html`\n <div class=\"period-toggle\" role=\"group\" aria-label=\"Period selector\">\n <button\n type=\"button\"\n class=\"period-button ${this.selectedPeriod === 'AM' ? 'selected' : ''}\"\n @click=${() => this.setPeriod('AM')}\n aria-pressed=${this.selectedPeriod === 'AM'}\n >\n AM\n </button>\n <button\n type=\"button\"\n class=\"period-button ${this.selectedPeriod === 'PM' ? 'selected' : ''}\"\n @click=${() => this.setPeriod('PM')}\n aria-pressed=${this.selectedPeriod === 'PM'}\n >\n PM\n </button>\n </div>\n `\n : nothing}\n </div>\n\n ${this.view === 'dial'\n ? html`\n <div\n class=\"dial-container\"\n @pointerdown=${this.handleDialPointerDown}\n @pointermove=${this.handleDialPointerMove}\n @pointerup=${this.handleDialPointerUp}\n >\n <div class=\"dial-center-pin\"></div>\n ${this.renderDialHand()}\n ${this.renderDialNumbers()}\n </div>\n `\n : nothing}\n\n <div class=\"actions-row\">\n <button\n type=\"button\"\n class=\"mode-switch-btn\"\n aria-label=${this.view === 'dial' ? 'Switch to text input' : 'Switch to clock dial'}\n @click=${this.toggleView}\n >\n <md-icon name=${this.view === 'dial' ? 'keyboard' : 'schedule'}></md-icon>\n </button>\n\n <div class=\"dialog-buttons\">\n <md-button variant=\"text\" @click=${this.cancel}>${this.cancelLabel}</md-button>\n <md-button variant=\"text\" @click=${this.confirm}>${this.confirmLabel}</md-button>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-time-picker': MdTimePicker;\n }\n}\n"],"mappings":";;;;;;;AAEA,IAAa,IAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { n as a, t } from "./decorate-DXuynaiA.js";
|
|
2
|
+
import { css as r, html as d, nothing as n } from "lit";
|
|
3
|
+
import { customElement as l, property as e } from "lit/decorators.js";
|
|
4
|
+
var s = r`
|
|
5
|
+
:host {
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
position: relative;
|
|
9
|
+
font-family: var(--md-sys-typescale-font-family, inherit);
|
|
10
|
+
color: var(--md-toolbar-on-container-color, var(--md-sys-color-on-surface, #1D1B20));
|
|
11
|
+
--_bg: var(--md-toolbar-container-color, var(--md-sys-color-surface-container, #F3EDF7));
|
|
12
|
+
--_elevation: var(--md-toolbar-elevation, var(--md-sys-elevation-level2, 0px 2px 6px 2px rgba(0, 0, 0, 0.15)));
|
|
13
|
+
--_shape: var(--md-toolbar-shape, var(--md-sys-shape-corner-full, 9999px));
|
|
14
|
+
--_gap: var(--md-toolbar-gap, 8px);
|
|
15
|
+
--_padding: var(--md-toolbar-padding, 8px 12px);
|
|
16
|
+
transition: background-color 200ms cubic-bezier(0.2, 0, 0, 1),
|
|
17
|
+
box-shadow 200ms cubic-bezier(0.2, 0, 0, 1),
|
|
18
|
+
border-radius 200ms cubic-bezier(0.2, 0, 0, 1);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* --- Floating Mode (Default) --- */
|
|
22
|
+
:host(:not([mode="docked"]):not([docked])) {
|
|
23
|
+
background-color: var(--_bg);
|
|
24
|
+
box-shadow: var(--_elevation);
|
|
25
|
+
border-radius: var(--_shape);
|
|
26
|
+
padding: var(--_padding);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:host([elevated]:not([mode="docked"]):not([docked])) {
|
|
30
|
+
--_elevation: var(--md-toolbar-elevation, var(--md-sys-elevation-level3, 0px 1px 3px 0px rgba(0, 0, 0, 0.30), 0px 4px 8px 3px rgba(0, 0, 0, 0.15)));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* --- Docked Mode --- */
|
|
34
|
+
:host([mode="docked"]),
|
|
35
|
+
:host([docked]) {
|
|
36
|
+
display: flex;
|
|
37
|
+
width: 100%;
|
|
38
|
+
background-color: var(--md-toolbar-container-color, var(--md-sys-color-surface, #FEF7FF));
|
|
39
|
+
border-radius: 0;
|
|
40
|
+
box-shadow: var(--md-sys-elevation-level0, none);
|
|
41
|
+
border-top: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
|
|
42
|
+
padding: var(--md-toolbar-padding, 8px 16px);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:host([mode="docked"][dock-position="top"]),
|
|
46
|
+
:host([docked][dock-position="top"]) {
|
|
47
|
+
border-top: none;
|
|
48
|
+
border-bottom: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
:host([mode="docked"][dock-position="left"]),
|
|
52
|
+
:host([docked][dock-position="left"]) {
|
|
53
|
+
width: auto;
|
|
54
|
+
height: 100%;
|
|
55
|
+
border-top: none;
|
|
56
|
+
border-right: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:host([mode="docked"][dock-position="right"]),
|
|
60
|
+
:host([docked][dock-position="right"]) {
|
|
61
|
+
width: auto;
|
|
62
|
+
height: 100%;
|
|
63
|
+
border-top: none;
|
|
64
|
+
border-left: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
:host([mode="docked"][elevated]),
|
|
68
|
+
:host([docked][elevated]) {
|
|
69
|
+
background-color: var(--md-toolbar-container-color, var(--md-sys-color-surface-container, #F3EDF7));
|
|
70
|
+
box-shadow: var(--md-sys-elevation-level2, 0px 2px 6px 2px rgba(0, 0, 0, 0.15));
|
|
71
|
+
border: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* --- Fixed Positioning --- */
|
|
75
|
+
:host([fixed]) {
|
|
76
|
+
position: fixed;
|
|
77
|
+
z-index: 8;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
:host([fixed]:not([mode="docked"]):not([docked])) {
|
|
81
|
+
bottom: 24px;
|
|
82
|
+
left: 50%;
|
|
83
|
+
transform: translateX(-50%);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:host([fixed][mode="docked"]),
|
|
87
|
+
:host([fixed][docked]) {
|
|
88
|
+
bottom: 0;
|
|
89
|
+
left: 0;
|
|
90
|
+
right: 0;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
:host([fixed][mode="docked"][dock-position="top"]),
|
|
94
|
+
:host([fixed][docked][dock-position="top"]) {
|
|
95
|
+
top: 0;
|
|
96
|
+
bottom: auto;
|
|
97
|
+
left: 0;
|
|
98
|
+
right: 0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:host([fixed][mode="docked"][dock-position="left"]),
|
|
102
|
+
:host([fixed][docked][dock-position="left"]) {
|
|
103
|
+
top: 0;
|
|
104
|
+
bottom: 0;
|
|
105
|
+
left: 0;
|
|
106
|
+
right: auto;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
:host([fixed][mode="docked"][dock-position="right"]),
|
|
110
|
+
:host([fixed][docked][dock-position="right"]) {
|
|
111
|
+
top: 0;
|
|
112
|
+
bottom: 0;
|
|
113
|
+
right: 0;
|
|
114
|
+
left: auto;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* --- Container & Orientation --- */
|
|
118
|
+
.toolbar-container {
|
|
119
|
+
display: flex;
|
|
120
|
+
align-items: center;
|
|
121
|
+
width: 100%;
|
|
122
|
+
height: 100%;
|
|
123
|
+
gap: var(--_gap);
|
|
124
|
+
box-sizing: border-box;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
:host(:not([orientation="vertical"])) .toolbar-container,
|
|
128
|
+
:host([orientation="horizontal"]) .toolbar-container {
|
|
129
|
+
flex-direction: row;
|
|
130
|
+
min-height: 48px;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
:host([orientation="vertical"]) {
|
|
134
|
+
--_padding: var(--md-toolbar-padding, 12px 8px);
|
|
135
|
+
width: auto;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
:host([orientation="vertical"]) .toolbar-container {
|
|
139
|
+
flex-direction: column;
|
|
140
|
+
min-width: 48px;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* --- Slot sections --- */
|
|
144
|
+
.leading,
|
|
145
|
+
.trailing,
|
|
146
|
+
.fab-container {
|
|
147
|
+
display: inline-flex;
|
|
148
|
+
align-items: center;
|
|
149
|
+
gap: var(--_gap);
|
|
150
|
+
flex-shrink: 0;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
:host([orientation="vertical"]) .leading,
|
|
154
|
+
:host([orientation="vertical"]) .trailing,
|
|
155
|
+
:host([orientation="vertical"]) .fab-container {
|
|
156
|
+
flex-direction: column;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.content {
|
|
160
|
+
display: inline-flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
gap: var(--_gap);
|
|
163
|
+
flex: 1;
|
|
164
|
+
min-width: 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
:host([orientation="vertical"]) .content {
|
|
168
|
+
flex-direction: column;
|
|
169
|
+
min-height: 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* Empty slot containers collapse nicely */
|
|
173
|
+
.leading:empty,
|
|
174
|
+
.trailing:empty,
|
|
175
|
+
.fab-container:empty {
|
|
176
|
+
display: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* Slotted element styles */
|
|
180
|
+
::slotted(md-divider) {
|
|
181
|
+
align-self: stretch;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
:host(:not([orientation="vertical"])) ::slotted(md-divider) {
|
|
185
|
+
height: 24px;
|
|
186
|
+
align-self: center;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
:host([orientation="vertical"]) ::slotted(md-divider) {
|
|
190
|
+
width: 24px;
|
|
191
|
+
align-self: center;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
::slotted(md-icon-button),
|
|
195
|
+
::slotted(md-button),
|
|
196
|
+
::slotted(md-fab) {
|
|
197
|
+
flex-shrink: 0;
|
|
198
|
+
}
|
|
199
|
+
`, o = class extends a {
|
|
200
|
+
constructor(...i) {
|
|
201
|
+
super(...i), this.mode = "floating", this.docked = !1, this.orientation = "horizontal", this.elevated = !1, this.fixed = !1, this.dockPosition = "none", this.ariaLabel = "";
|
|
202
|
+
}
|
|
203
|
+
static {
|
|
204
|
+
this.styles = [a.styles, s];
|
|
205
|
+
}
|
|
206
|
+
connectedCallback() {
|
|
207
|
+
super.connectedCallback(), this.hasAttribute("role") || this.setAttribute("role", "toolbar");
|
|
208
|
+
}
|
|
209
|
+
updated(i) {
|
|
210
|
+
super.updated(i), i.has("orientation") && this.setAttribute("aria-orientation", this.orientation);
|
|
211
|
+
}
|
|
212
|
+
render() {
|
|
213
|
+
return d`
|
|
214
|
+
<div
|
|
215
|
+
class="toolbar-container"
|
|
216
|
+
aria-orientation=${this.orientation}
|
|
217
|
+
aria-label=${this.ariaLabel || n}
|
|
218
|
+
>
|
|
219
|
+
<div class="leading">
|
|
220
|
+
<slot name="leading"></slot>
|
|
221
|
+
</div>
|
|
222
|
+
<div class="content">
|
|
223
|
+
<slot></slot>
|
|
224
|
+
</div>
|
|
225
|
+
<div class="trailing">
|
|
226
|
+
<slot name="trailing"></slot>
|
|
227
|
+
</div>
|
|
228
|
+
<div class="fab-container">
|
|
229
|
+
<slot name="fab">
|
|
230
|
+
<slot name="action"></slot>
|
|
231
|
+
</slot>
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
`;
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
t([e({
|
|
238
|
+
type: String,
|
|
239
|
+
reflect: !0
|
|
240
|
+
})], o.prototype, "mode", void 0);
|
|
241
|
+
t([e({
|
|
242
|
+
type: Boolean,
|
|
243
|
+
reflect: !0
|
|
244
|
+
})], o.prototype, "docked", void 0);
|
|
245
|
+
t([e({
|
|
246
|
+
type: String,
|
|
247
|
+
reflect: !0
|
|
248
|
+
})], o.prototype, "orientation", void 0);
|
|
249
|
+
t([e({
|
|
250
|
+
type: Boolean,
|
|
251
|
+
reflect: !0
|
|
252
|
+
})], o.prototype, "elevated", void 0);
|
|
253
|
+
t([e({
|
|
254
|
+
type: Boolean,
|
|
255
|
+
reflect: !0
|
|
256
|
+
})], o.prototype, "fixed", void 0);
|
|
257
|
+
t([e({
|
|
258
|
+
type: String,
|
|
259
|
+
reflect: !0,
|
|
260
|
+
attribute: "dock-position"
|
|
261
|
+
})], o.prototype, "dockPosition", void 0);
|
|
262
|
+
t([e({
|
|
263
|
+
type: String,
|
|
264
|
+
attribute: "aria-label"
|
|
265
|
+
})], o.prototype, "ariaLabel", void 0);
|
|
266
|
+
o = t([l("md-toolbar")], o);
|
|
267
|
+
export {
|
|
268
|
+
o as t
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
//# sourceMappingURL=toolbar-DXVQbQKJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar-DXVQbQKJ.js","names":[],"sources":["../../src/components/toolbar/toolbar.css.ts","../../src/components/toolbar/toolbar.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const toolbarStyles = css`\n :host {\n display: inline-flex;\n box-sizing: border-box;\n position: relative;\n font-family: var(--md-sys-typescale-font-family, inherit);\n color: var(--md-toolbar-on-container-color, var(--md-sys-color-on-surface, #1D1B20));\n --_bg: var(--md-toolbar-container-color, var(--md-sys-color-surface-container, #F3EDF7));\n --_elevation: var(--md-toolbar-elevation, var(--md-sys-elevation-level2, 0px 2px 6px 2px rgba(0, 0, 0, 0.15)));\n --_shape: var(--md-toolbar-shape, var(--md-sys-shape-corner-full, 9999px));\n --_gap: var(--md-toolbar-gap, 8px);\n --_padding: var(--md-toolbar-padding, 8px 12px);\n transition: background-color 200ms cubic-bezier(0.2, 0, 0, 1),\n box-shadow 200ms cubic-bezier(0.2, 0, 0, 1),\n border-radius 200ms cubic-bezier(0.2, 0, 0, 1);\n }\n\n /* --- Floating Mode (Default) --- */\n :host(:not([mode=\"docked\"]):not([docked])) {\n background-color: var(--_bg);\n box-shadow: var(--_elevation);\n border-radius: var(--_shape);\n padding: var(--_padding);\n }\n\n :host([elevated]:not([mode=\"docked\"]):not([docked])) {\n --_elevation: var(--md-toolbar-elevation, var(--md-sys-elevation-level3, 0px 1px 3px 0px rgba(0, 0, 0, 0.30), 0px 4px 8px 3px rgba(0, 0, 0, 0.15)));\n }\n\n /* --- Docked Mode --- */\n :host([mode=\"docked\"]),\n :host([docked]) {\n display: flex;\n width: 100%;\n background-color: var(--md-toolbar-container-color, var(--md-sys-color-surface, #FEF7FF));\n border-radius: 0;\n box-shadow: var(--md-sys-elevation-level0, none);\n border-top: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);\n padding: var(--md-toolbar-padding, 8px 16px);\n }\n\n :host([mode=\"docked\"][dock-position=\"top\"]),\n :host([docked][dock-position=\"top\"]) {\n border-top: none;\n border-bottom: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);\n }\n\n :host([mode=\"docked\"][dock-position=\"left\"]),\n :host([docked][dock-position=\"left\"]) {\n width: auto;\n height: 100%;\n border-top: none;\n border-right: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);\n }\n\n :host([mode=\"docked\"][dock-position=\"right\"]),\n :host([docked][dock-position=\"right\"]) {\n width: auto;\n height: 100%;\n border-top: none;\n border-left: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);\n }\n\n :host([mode=\"docked\"][elevated]),\n :host([docked][elevated]) {\n background-color: var(--md-toolbar-container-color, var(--md-sys-color-surface-container, #F3EDF7));\n box-shadow: var(--md-sys-elevation-level2, 0px 2px 6px 2px rgba(0, 0, 0, 0.15));\n border: none;\n }\n\n /* --- Fixed Positioning --- */\n :host([fixed]) {\n position: fixed;\n z-index: 8;\n }\n\n :host([fixed]:not([mode=\"docked\"]):not([docked])) {\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n }\n\n :host([fixed][mode=\"docked\"]),\n :host([fixed][docked]) {\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n :host([fixed][mode=\"docked\"][dock-position=\"top\"]),\n :host([fixed][docked][dock-position=\"top\"]) {\n top: 0;\n bottom: auto;\n left: 0;\n right: 0;\n }\n\n :host([fixed][mode=\"docked\"][dock-position=\"left\"]),\n :host([fixed][docked][dock-position=\"left\"]) {\n top: 0;\n bottom: 0;\n left: 0;\n right: auto;\n }\n\n :host([fixed][mode=\"docked\"][dock-position=\"right\"]),\n :host([fixed][docked][dock-position=\"right\"]) {\n top: 0;\n bottom: 0;\n right: 0;\n left: auto;\n }\n\n /* --- Container & Orientation --- */\n .toolbar-container {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n gap: var(--_gap);\n box-sizing: border-box;\n }\n\n :host(:not([orientation=\"vertical\"])) .toolbar-container,\n :host([orientation=\"horizontal\"]) .toolbar-container {\n flex-direction: row;\n min-height: 48px;\n }\n\n :host([orientation=\"vertical\"]) {\n --_padding: var(--md-toolbar-padding, 12px 8px);\n width: auto;\n }\n\n :host([orientation=\"vertical\"]) .toolbar-container {\n flex-direction: column;\n min-width: 48px;\n }\n\n /* --- Slot sections --- */\n .leading,\n .trailing,\n .fab-container {\n display: inline-flex;\n align-items: center;\n gap: var(--_gap);\n flex-shrink: 0;\n }\n\n :host([orientation=\"vertical\"]) .leading,\n :host([orientation=\"vertical\"]) .trailing,\n :host([orientation=\"vertical\"]) .fab-container {\n flex-direction: column;\n }\n\n .content {\n display: inline-flex;\n align-items: center;\n gap: var(--_gap);\n flex: 1;\n min-width: 0;\n }\n\n :host([orientation=\"vertical\"]) .content {\n flex-direction: column;\n min-height: 0;\n }\n\n /* Empty slot containers collapse nicely */\n .leading:empty,\n .trailing:empty,\n .fab-container:empty {\n display: none;\n }\n\n /* Slotted element styles */\n ::slotted(md-divider) {\n align-self: stretch;\n }\n\n :host(:not([orientation=\"vertical\"])) ::slotted(md-divider) {\n height: 24px;\n align-self: center;\n }\n\n :host([orientation=\"vertical\"]) ::slotted(md-divider) {\n width: 24px;\n align-self: center;\n }\n\n ::slotted(md-icon-button),\n ::slotted(md-button),\n ::slotted(md-fab) {\n flex-shrink: 0;\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { MdBaseElement } from '../../internal/base-component.js';\nimport { toolbarStyles } from './toolbar.css.js';\n\nexport type ToolbarMode = 'floating' | 'docked';\nexport type ToolbarOrientation = 'horizontal' | 'vertical';\nexport type ToolbarDockPosition = 'none' | 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Material Design 3 Expressive Action Toolbar component.\n *\n * @slot leading - Optional leading action/navigation items.\n * @slot - Default slot for toolbar controls, icon buttons, segmented buttons, switches, dividers.\n * @slot trailing - Optional trailing actions or overflow items.\n * @slot fab - Slotted Primary Action / Floating Action Button.\n * @slot action - Alias for fab slot.\n */\n@customElement('md-toolbar')\nexport class MdToolbar extends MdBaseElement {\n static override styles = [MdBaseElement.styles, toolbarStyles];\n\n /**\n * Toolbar layout mode: 'floating' (island pill) or 'docked' (edge-to-edge).\n */\n @property({ type: String, reflect: true })\n mode: ToolbarMode = 'floating';\n\n /**\n * Shorthand boolean to enable docked mode.\n */\n @property({ type: Boolean, reflect: true })\n docked = false;\n\n /**\n * Layout orientation of the toolbar items: 'horizontal' or 'vertical'.\n */\n @property({ type: String, reflect: true })\n orientation: ToolbarOrientation = 'horizontal';\n\n /**\n * Increases background elevation shadow.\n */\n @property({ type: Boolean, reflect: true })\n elevated = false;\n\n /**\n * Fixes toolbar position to the viewport edge.\n */\n @property({ type: Boolean, reflect: true })\n fixed = false;\n\n /**\n * When docked and fixed, specifies which viewport edge to pin to.\n */\n @property({ type: String, reflect: true, attribute: 'dock-position' })\n dockPosition: ToolbarDockPosition = 'none';\n\n /**\n * Accessible label describing the toolbar for screen readers.\n */\n @property({ type: String, attribute: 'aria-label' })\n override ariaLabel = '';\n\n override connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'toolbar');\n }\n }\n\n override updated(changedProperties: Map<string | number | symbol, unknown>) {\n super.updated(changedProperties);\n if (changedProperties.has('orientation')) {\n this.setAttribute('aria-orientation', this.orientation);\n }\n }\n\n override render() {\n return html`\n <div\n class=\"toolbar-container\"\n aria-orientation=${this.orientation}\n aria-label=${this.ariaLabel || nothing}\n >\n <div class=\"leading\">\n <slot name=\"leading\"></slot>\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n <div class=\"trailing\">\n <slot name=\"trailing\"></slot>\n </div>\n <div class=\"fab-container\">\n <slot name=\"fab\">\n <slot name=\"action\"></slot>\n </slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-toolbar': MdToolbar;\n }\n}\n"],"mappings":"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"}
|