le-kit 0.1.19 → 0.2.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/dist/cjs/index-pT2cVC5w.js.map +1 -1
- package/dist/cjs/le-button_13.cjs.entry.js +17 -21
- package/dist/cjs/le-icon.cjs.entry.js +108 -0
- package/dist/cjs/le-kit.cjs.js +1 -1
- package/dist/cjs/le-multiselect.cjs.entry.js +3 -3
- package/dist/cjs/le-navigation.cjs.entry.js +499 -0
- package/dist/cjs/le-number-input.cjs.entry.js +1 -1
- package/dist/cjs/le-round-progress.cjs.entry.js +1 -1
- package/dist/cjs/le-segmented-control.cjs.entry.js +1 -1
- package/dist/cjs/le-stack.cjs.entry.js +1 -1
- package/dist/cjs/le-tab-bar.cjs.entry.js +1 -1
- package/dist/cjs/le-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/le-tab.cjs.entry.js +1 -1
- package/dist/cjs/le-tabs.cjs.entry.js +2 -2
- package/dist/cjs/le-tag.cjs.entry.js +1 -1
- package/dist/cjs/le-turntable.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/icons/chevron-down.svg +3 -0
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/le-collapse/le-collapse.css +3 -3
- package/dist/collection/components/le-collapse/le-collapse.js +11 -15
- package/dist/collection/components/le-collapse/le-collapse.js.map +1 -1
- package/dist/collection/components/le-icon/le-icon.css +13 -0
- package/dist/collection/components/le-icon/le-icon.js +168 -0
- package/dist/collection/components/le-icon/le-icon.js.map +1 -0
- package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
- package/dist/collection/components/le-navigation/le-navigation.css +323 -0
- package/dist/collection/components/le-navigation/le-navigation.js +742 -0
- package/dist/collection/components/le-navigation/le-navigation.js.map +1 -0
- package/dist/collection/components/le-number-input/le-number-input.js +1 -1
- package/dist/collection/components/le-popover/le-popover.js +3 -3
- package/dist/collection/components/le-popup/le-popup.js +7 -7
- package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
- package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +1 -1
- package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
- package/dist/collection/components/le-select/le-select.js +2 -2
- package/dist/collection/components/le-slot/le-slot.js +1 -1
- package/dist/collection/components/le-stack/le-stack.js +1 -1
- package/dist/collection/components/le-string-input/le-string-input.js +2 -2
- package/dist/collection/components/le-tab/le-tab.js +1 -1
- package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
- package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
- package/dist/collection/components/le-tabs/le-tabs.js +2 -2
- package/dist/collection/components/le-tag/le-tag.js +1 -1
- package/dist/collection/components/le-turntable/le-turntable.js +1 -1
- package/dist/collection/dist/components/assets/custom-elements.json +1278 -533
- package/dist/collection/dist/components/assets/icons/chevron-down.json +13 -0
- package/dist/collection/dist/components/assets/icons/chevron-down.svg +3 -0
- package/dist/collection/types/options.js.map +1 -1
- package/dist/components/assets/custom-elements.json +1278 -533
- package/dist/components/assets/icons/chevron-down.json +13 -0
- package/dist/components/assets/icons/chevron-down.svg +3 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/le-button2.js +5 -5
- package/dist/components/le-collapse.js +1 -137
- package/dist/components/le-collapse.js.map +1 -1
- package/dist/components/le-collapse2.js +138 -0
- package/dist/components/le-collapse2.js.map +1 -0
- package/dist/components/le-icon.d.ts +11 -0
- package/dist/components/le-icon.js +9 -0
- package/dist/components/le-icon.js.map +1 -0
- package/dist/components/le-icon2.js +133 -0
- package/dist/components/le-icon2.js.map +1 -0
- package/dist/components/le-multiselect.js +3 -3
- package/dist/components/le-navigation.d.ts +11 -0
- package/dist/components/le-navigation.js +598 -0
- package/dist/components/le-navigation.js.map +1 -0
- package/dist/components/le-number-input.js +1 -1
- package/dist/components/le-popover2.js +3 -3
- package/dist/components/le-round-progress.js +1 -1
- package/dist/components/le-scroll-progress.js +1 -1
- package/dist/components/le-segmented-control.js +1 -1
- package/dist/components/le-stack.js +1 -1
- package/dist/components/le-tab-bar.js +1 -1
- package/dist/components/le-tab-panel.js +2 -2
- package/dist/components/le-tab2.js +1 -1
- package/dist/components/le-tabs.js +2 -2
- package/dist/components/le-tag2.js +1 -1
- package/dist/components/le-turntable.js +1 -1
- package/dist/docs.json +515 -27
- package/dist/esm/index-CNv6tzAt.js.map +1 -1
- package/dist/esm/le-button_13.entry.js +17 -21
- package/dist/esm/le-icon.entry.js +106 -0
- package/dist/esm/le-icon.entry.js.map +1 -0
- package/dist/esm/le-kit.js +1 -1
- package/dist/esm/le-multiselect.entry.js +3 -3
- package/dist/esm/le-navigation.entry.js +497 -0
- package/dist/esm/le-navigation.entry.js.map +1 -0
- package/dist/esm/le-number-input.entry.js +1 -1
- package/dist/esm/le-round-progress.entry.js +1 -1
- package/dist/esm/le-segmented-control.entry.js +1 -1
- package/dist/esm/le-stack.entry.js +1 -1
- package/dist/esm/le-tab-bar.entry.js +1 -1
- package/dist/esm/le-tab-panel.entry.js +2 -2
- package/dist/esm/le-tab.entry.js +1 -1
- package/dist/esm/le-tabs.entry.js +2 -2
- package/dist/esm/le-tag.entry.js +1 -1
- package/dist/esm/le-turntable.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/le-kit/dist/components/assets/custom-elements.json +1278 -533
- package/dist/le-kit/dist/components/assets/icons/chevron-down.json +13 -0
- package/dist/le-kit/dist/components/assets/icons/chevron-down.svg +3 -0
- package/dist/le-kit/le-kit.esm.js +1 -1
- package/dist/le-kit/{p-3327b089.entry.js → p-0ac4397c.entry.js} +2 -2
- package/dist/le-kit/{p-dfd20890.entry.js → p-25a29e69.entry.js} +2 -2
- package/dist/le-kit/{p-64c2cee1.entry.js → p-511fbb63.entry.js} +2 -2
- package/dist/le-kit/{p-4bdb03cb.entry.js → p-58120921.entry.js} +2 -2
- package/dist/le-kit/{p-b7c008de.entry.js → p-5ceb06d8.entry.js} +2 -2
- package/dist/le-kit/p-8c5a8f1e.entry.js +2 -0
- package/dist/le-kit/p-8c5a8f1e.entry.js.map +1 -0
- package/dist/le-kit/{p-e3f3cc8f.entry.js → p-9a3bdbe1.entry.js} +2 -2
- package/dist/le-kit/p-CNv6tzAt.js.map +1 -1
- package/dist/le-kit/{p-f88c804a.entry.js → p-a0d2c580.entry.js} +2 -2
- package/dist/le-kit/p-b1dc7e06.entry.js +2 -0
- package/dist/le-kit/p-b1dc7e06.entry.js.map +1 -0
- package/dist/le-kit/p-bb160082.entry.js +2 -0
- package/dist/le-kit/p-bb160082.entry.js.map +1 -0
- package/dist/le-kit/{p-da0265c5.entry.js → p-de5638c9.entry.js} +2 -2
- package/dist/le-kit/{p-1733d907.entry.js → p-e24d3e33.entry.js} +2 -2
- package/dist/le-kit/{p-6acdf000.entry.js → p-ec20e438.entry.js} +2 -2
- package/dist/le-kit/{p-02532919.entry.js → p-f4f2c3e7.entry.js} +2 -2
- package/dist/types/components/le-collapse/le-collapse.d.ts +5 -3
- package/dist/types/components/le-icon/le-icon.d.ts +28 -0
- package/dist/types/components/le-navigation/le-navigation.d.ts +112 -0
- package/dist/types/components.d.ts +194 -10
- package/dist/types/types/options.d.ts +5 -0
- package/package.json +1 -1
- package/dist/collection/dist/components/assets/.gitkeep +0 -1
- package/dist/components/assets/.gitkeep +0 -1
- package/dist/le-kit/dist/components/assets/.gitkeep +0 -1
- package/dist/le-kit/p-83007215.entry.js +0 -2
- package/dist/le-kit/p-83007215.entry.js.map +0 -1
- /package/dist/le-kit/{p-3327b089.entry.js.map → p-0ac4397c.entry.js.map} +0 -0
- /package/dist/le-kit/{p-dfd20890.entry.js.map → p-25a29e69.entry.js.map} +0 -0
- /package/dist/le-kit/{p-64c2cee1.entry.js.map → p-511fbb63.entry.js.map} +0 -0
- /package/dist/le-kit/{p-4bdb03cb.entry.js.map → p-58120921.entry.js.map} +0 -0
- /package/dist/le-kit/{p-b7c008de.entry.js.map → p-5ceb06d8.entry.js.map} +0 -0
- /package/dist/le-kit/{p-e3f3cc8f.entry.js.map → p-9a3bdbe1.entry.js.map} +0 -0
- /package/dist/le-kit/{p-f88c804a.entry.js.map → p-a0d2c580.entry.js.map} +0 -0
- /package/dist/le-kit/{p-da0265c5.entry.js.map → p-de5638c9.entry.js.map} +0 -0
- /package/dist/le-kit/{p-1733d907.entry.js.map → p-e24d3e33.entry.js.map} +0 -0
- /package/dist/le-kit/{p-6acdf000.entry.js.map → p-ec20e438.entry.js.map} +0 -0
- /package/dist/le-kit/{p-02532919.entry.js.map → p-f4f2c3e7.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"le-navigation.js","sourceRoot":"","sources":["../../../src/components/le-navigation/le-navigation.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n Element,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport { LeOption } from '../../types/options';\nimport { classnames, generateId } from '../../utils/utils';\n\nexport interface LeNavigationItemSelectDetail {\n item: LeOption;\n id: string;\n href?: string;\n originalEvent: MouseEvent;\n}\n\nexport interface LeNavigationItemToggleDetail {\n item: LeOption;\n id: string;\n open: boolean;\n originalEvent: MouseEvent;\n}\n\ninterface VerticalListRenderOptions {\n depth: number;\n pathPrefix: string;\n autoOpenIds?: Set<string>;\n searchable?: boolean;\n searchQuery?: string;\n searchPlaceholder?: string;\n emptyText?: string;\n submenuId?: string;\n}\n\n/**\n * Navigation component with vertical (tree) and horizontal (menu) layouts.\n *\n * - Accepts items as `LeOption[]` or a JSON string.\n * - Supports hierarchical items via `children`.\n * - Supports persisted expansion via `open` on items.\n *\n * @cmsEditable true\n * @cmsCategory Navigation\n */\n@Component({\n tag: 'le-navigation',\n styleUrl: 'le-navigation.css',\n shadow: true,\n})\nexport class LeNavigation {\n @Element() el: HTMLElement;\n\n /**\n * Navigation items.\n * Can be passed as an array or JSON string (same pattern as le-select).\n */\n @Prop() items: LeOption[] | string = [];\n\n /**\n * Layout orientation.\n */\n @Prop({ reflect: true }) orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /**\n * Horizontal wrapping behavior.\n * If false, overflow behavior depends on `overflowMode`.\n */\n @Prop({ reflect: true }) wrap: boolean = true;\n\n /**\n * Overflow behavior for horizontal, non-wrapping menus.\n * - more: moves overflow items into a \"More\" popover\n * - hamburger: turns the whole nav into a hamburger popover\n */\n @Prop({ reflect: true }) overflowMode: 'more' | 'hamburger' = 'more';\n\n /**\n * Enables a search input for the vertical navigation.\n */\n @Prop() searchable: boolean = false;\n\n /**\n * Placeholder text for the search input.\n */\n @Prop() searchPlaceholder: string = 'Search...';\n\n /**\n * Text shown when no items match the filter.\n */\n @Prop() emptyText: string = 'No results found';\n\n /**\n * Whether submenu popovers should include a filter input.\n */\n @Prop() submenuSearchable: boolean = false;\n\n /**\n * Fired when a navigation item is activated.\n *\n * This event is cancelable. Call `event.preventDefault()` to prevent\n * default browser navigation and implement custom routing.\n */\n @Event({ cancelable: true }) leNavItemSelect: EventEmitter<LeNavigationItemSelectDetail>;\n\n /**\n * Fired when a tree branch is toggled.\n */\n @Event() leNavItemToggle: EventEmitter<LeNavigationItemToggleDetail>;\n\n @State() private searchQuery: string = '';\n\n @State() private openState: Record<string, boolean> = {};\n\n @State() private overflowIds: string[] = [];\n\n @State() private hamburgerActive: boolean = false;\n\n @State() private submenuQueries: Record<string, string> = {};\n\n private navContainerEl?: HTMLElement;\n\n private measureEl?: HTMLElement;\n private measureMoreEl?: HTMLElement;\n\n private topItemEls: Map<string, HTMLElement> = new Map();\n\n private popoverRefs: Map<string, HTMLLePopoverElement> = new Map();\n\n private resizeObserver?: ResizeObserver;\n\n private instanceId: string = generateId('le-nav');\n\n @Watch('items')\n @Watch('orientation')\n @Watch('wrap')\n @Watch('overflowMode')\n handleLayoutInputsChange() {\n this.scheduleOverflowRecalc();\n }\n\n componentDidLoad() {\n this.setupResizeObserver();\n this.scheduleOverflowRecalc();\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n componentDidRender() {\n // In case refs change after render.\n this.scheduleOverflowRecalc();\n }\n\n private setupResizeObserver() {\n this.resizeObserver?.disconnect();\n\n if (typeof ResizeObserver === 'undefined') return;\n\n this.resizeObserver = new ResizeObserver(() => this.computeOverflow());\n this.observeContainer(this.navContainerEl);\n }\n\n private observeContainer(el?: HTMLElement) {\n if (!this.resizeObserver) return;\n this.resizeObserver.disconnect();\n if (el) this.resizeObserver.observe(el);\n }\n\n private scheduleOverflowRecalc() {\n // Avoid work for vertical layout.\n if (this.orientation !== 'horizontal') return;\n\n // Ensure it runs after layout.\n requestAnimationFrame(() => this.computeOverflow());\n }\n\n private get parsedItems(): LeOption[] {\n if (typeof this.items === 'string') {\n try {\n return JSON.parse(this.items);\n } catch {\n return [];\n }\n }\n\n return this.items;\n }\n\n private getItemId(item: LeOption, path: string): string {\n return item.id ?? `${this.instanceId}:${path}`;\n }\n\n private getChildItems(item: LeOption): LeOption[] {\n return Array.isArray(item.children) ? item.children : [];\n }\n\n private isOpen(item: LeOption, id: string): boolean {\n const fromState = this.openState[id];\n if (typeof fromState === 'boolean') return fromState;\n return !!item.open;\n }\n\n private setOpen(id: string, open: boolean) {\n if (this.openState[id] === open) return;\n this.openState = {\n ...this.openState,\n [id]: open,\n };\n }\n\n private matchesQuery(option: LeOption, query: string): boolean {\n if (!query) return true;\n\n const q = query.toLowerCase();\n return (\n option.label.toLowerCase().includes(q) ||\n (option.description?.toLowerCase().includes(q) ?? false)\n );\n }\n\n private filterTree(\n items: LeOption[],\n query: string,\n pathPrefix: string,\n autoOpen: Set<string>,\n ): LeOption[] {\n if (!query) return items;\n\n const result: LeOption[] = [];\n\n items.forEach((item, index) => {\n const path = pathPrefix ? `${pathPrefix}.${index}` : String(index);\n const id = this.getItemId(item, path);\n\n const children = this.getChildItems(item);\n const filteredChildren = this.filterTree(children, query, path, autoOpen);\n const selfMatch = this.matchesQuery(item, query);\n const childMatch = filteredChildren.length > 0;\n\n if (selfMatch || childMatch) {\n if (childMatch) {\n autoOpen.add(id);\n }\n\n if (childMatch && filteredChildren !== children) {\n result.push({\n ...item,\n children: filteredChildren,\n });\n } else {\n result.push(item);\n }\n }\n });\n\n return result;\n }\n\n private handleItemSelect = (e: MouseEvent, item: LeOption, id: string) => {\n if (item.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n const emitted = this.leNavItemSelect.emit({\n item,\n id,\n href: item.href,\n originalEvent: e,\n });\n\n if (emitted.defaultPrevented) {\n e.preventDefault();\n }\n };\n\n private handleToggle = (e: MouseEvent, item: LeOption, id: string) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (item.disabled) return;\n\n const next = !this.isOpen(item, id);\n this.setOpen(id, next);\n\n this.leNavItemToggle.emit({\n item,\n id,\n open: next,\n originalEvent: e,\n });\n };\n\n private handleSearchInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n };\n\n private handleSubmenuSearchInput = (submenuId: string, e: Event) => {\n const target = e.target as HTMLInputElement;\n const value = target.value;\n\n if (this.submenuQueries[submenuId] === value) return;\n\n this.submenuQueries = {\n ...this.submenuQueries,\n [submenuId]: value,\n };\n\n // Position may change as items filter.\n requestAnimationFrame(() => this.popoverRefs.get(submenuId)?.updatePosition());\n };\n\n private getTopLevelIds(items: LeOption[]): string[] {\n return items.map((item, index) => this.getItemId(item, String(index)));\n }\n\n private computeOverflow() {\n // Only applies to horizontal, non-wrapping navs.\n if (this.orientation !== 'horizontal' || this.wrap) {\n if (this.overflowIds.length) this.overflowIds = [];\n if (this.hamburgerActive) this.hamburgerActive = false;\n return;\n }\n\n const container = this.navContainerEl;\n if (!container) return;\n\n const topIds = this.getTopLevelIds(this.parsedItems);\n const widths = topIds.map(id => this.topItemEls.get(id)?.getBoundingClientRect().width ?? 0);\n\n const totalWidth = widths.reduce((a, b) => a + b, 0);\n const availableWidth = container.getBoundingClientRect().width;\n\n if (this.overflowMode === 'hamburger') {\n const shouldHamburger = totalWidth > availableWidth;\n if (shouldHamburger !== this.hamburgerActive) {\n this.hamburgerActive = shouldHamburger;\n }\n if (this.overflowIds.length) this.overflowIds = [];\n return;\n }\n\n // overflowMode === 'more'\n this.computeOverflowMoreByWrap(availableWidth);\n }\n\n private computeOverflowMoreByWrap(availableWidth: number) {\n const container = this.navContainerEl;\n const measure = this.measureEl;\n const measureMore = this.measureMoreEl;\n const items = this.parsedItems;\n\n if (!container || !measure) return;\n\n // Ensure measurement container matches visible container width.\n measure.style.width = `${availableWidth}px`;\n\n const allIds = this.getTopLevelIds(items);\n const itemEls = allIds\n .map(id => measure.querySelector<HTMLElement>(`[data-nav-id=\"${CSS.escape(id)}\"]`))\n .filter((el): el is HTMLElement => !!el);\n\n // Reset measurement visibility.\n itemEls.forEach(el => {\n el.style.display = '';\n });\n if (measureMore) {\n measureMore.style.display = 'none';\n }\n\n if (itemEls.length === 0) {\n if (this.overflowIds.length) this.overflowIds = [];\n return;\n }\n\n const firstRowTop = Math.min(...itemEls.map(el => el.offsetTop));\n const overflowSet = new Set<string>();\n\n // Pass 1: detect which items fall onto rows > 1 (without \"More\" in flow).\n itemEls.forEach(el => {\n const id = el.getAttribute('data-nav-id');\n if (!id) return;\n if (el.offsetTop > firstRowTop) overflowSet.add(id);\n });\n\n if (overflowSet.size === 0) {\n if (this.overflowIds.length) this.overflowIds = [];\n return;\n }\n\n // Pass 2: show \"More\" and iteratively move items into overflow until \"More\" fits on row 1.\n if (measureMore) {\n measureMore.style.display = '';\n }\n\n // Hide currently overflowing items.\n itemEls.forEach(el => {\n const id = el.getAttribute('data-nav-id');\n if (!id) return;\n if (overflowSet.has(id)) el.style.display = 'none';\n });\n\n const getVisibleItemEls = () => itemEls.filter(el => el.style.display !== 'none');\n\n while (measureMore) {\n const visible = getVisibleItemEls();\n const rowTop = visible.length ? Math.min(...visible.map(el => el.offsetTop)) : 0;\n\n if (measureMore.offsetTop <= rowTop) break;\n if (visible.length === 0) break;\n\n // Remove one last visible item and retry.\n const last = visible[visible.length - 1];\n const lastId = last.getAttribute('data-nav-id');\n if (!lastId) break;\n\n last.style.display = 'none';\n overflowSet.add(lastId);\n }\n\n const overflowIds = allIds.filter(id => overflowSet.has(id));\n\n const same =\n overflowIds.length === this.overflowIds.length &&\n overflowIds.every((v, i) => v === this.overflowIds[i]);\n\n if (!same) {\n this.overflowIds = overflowIds;\n }\n }\n\n private renderHorizontalMeasureItem(item: LeOption, index: number) {\n const id = this.getItemId(item, String(index));\n const children = this.getChildItems(item);\n const hasChildren = children.length > 0;\n\n const setRef = (el?: HTMLElement) => {\n if (el) this.topItemEls.set(id, el);\n };\n\n if (!hasChildren) {\n return (\n <div class=\"h-item\" ref={setRef} data-nav-id={id}>\n <span class=\"h-link\">\n {item.iconStart && (\n <span class=\"nav-icon\" aria-hidden=\"true\">\n {item.iconStart}\n </span>\n )}\n <span class=\"h-label\">{item.label}</span>\n {item.iconEnd && (\n <span class=\"nav-icon nav-icon-end\" aria-hidden=\"true\">\n {item.iconEnd}\n </span>\n )}\n </span>\n </div>\n );\n }\n\n return (\n <div class=\"h-item\" ref={setRef} data-nav-id={id}>\n <span class=\"h-trigger\">\n <span class=\"h-link\">\n {item.iconStart && (\n <span class=\"nav-icon\" aria-hidden=\"true\">\n {item.iconStart}\n </span>\n )}\n <span class=\"h-label\">{item.label}</span>\n </span>\n <span class=\"h-submenu-toggle\" aria-hidden=\"true\">\n <span class=\"nav-chevron\">▼</span>\n </span>\n </span>\n </div>\n );\n }\n\n private renderVerticalList(\n items: LeOption[],\n {\n depth,\n pathPrefix,\n autoOpenIds,\n searchable,\n searchQuery,\n searchPlaceholder,\n emptyText,\n submenuId,\n }: VerticalListRenderOptions,\n ) {\n const query = searchQuery ?? '';\n const openFromSearch = autoOpenIds ?? new Set<string>();\n\n const filtered = query ? this.filterTree(items, query, pathPrefix, openFromSearch) : items;\n\n return (\n <div class={classnames('nav-vertical', { 'is-submenu': !!submenuId })}>\n {searchable && (\n <div class=\"nav-search\">\n <le-string-input\n mode=\"default\"\n class=\"nav-search-input\"\n placeholder={searchPlaceholder ?? 'Search...'}\n value={query}\n onInput={(e: Event) =>\n submenuId ? this.handleSubmenuSearchInput(submenuId, e) : this.handleSearchInput(e)\n }\n />\n </div>\n )}\n\n {filtered.length === 0 ? (\n <div class=\"nav-empty\">{emptyText ?? this.emptyText}</div>\n ) : (\n <ul class=\"nav-list\" role=\"tree\">\n {filtered.map((item, index) => {\n const path = pathPrefix ? `${pathPrefix}.${index}` : String(index);\n const id = this.getItemId(item, path);\n const children = this.getChildItems(item);\n const hasChildren = children.length > 0;\n const open = hasChildren && (this.isOpen(item, id) || openFromSearch.has(id));\n\n const paddingLeft = `calc(var(--le-nav-item-padding-x) + ${depth} * var(--le-spacing-4))`;\n\n const TagType = item.href && !item.disabled ? 'a' : 'button';\n const attrs =\n TagType === 'a'\n ? { href: item.href, role: 'treeitem' }\n : { type: 'button', role: 'treeitem' };\n\n return (\n <li\n class={classnames('nav-node', {\n 'disabled': item.disabled,\n 'selected': item.selected,\n open,\n 'has-children': hasChildren,\n })}\n key={id}\n role=\"none\"\n >\n <div class=\"nav-row\" style={{ paddingLeft }}>\n {hasChildren ? (\n <button\n type=\"button\"\n class=\"nav-toggle\"\n aria-label={open ? 'Collapse' : 'Expand'}\n aria-expanded={open ? 'true' : 'false'}\n onClick={(e: MouseEvent) => this.handleToggle(e, item, id)}\n disabled={item.disabled}\n >\n <le-icon name=\"chevron-down\" class=\"nav-chevron\" aria-hidden=\"true\" />\n </button>\n ) : (\n <span class=\"nav-toggle-spacer\" aria-hidden=\"true\" />\n )}\n\n <TagType\n class=\"nav-item\"\n {...attrs}\n aria-disabled={item.disabled ? 'true' : undefined}\n onClick={(e: MouseEvent) => {\n // For buttons, also toggle if this is a purely structural node.\n this.handleItemSelect(e, item, id);\n if (!item.href && hasChildren && !item.disabled) {\n this.handleToggle(e, item, id);\n }\n }}\n >\n {item.iconStart && (\n <span class=\"nav-icon\" aria-hidden=\"true\">\n {item.iconStart}\n </span>\n )}\n <span class=\"nav-text\">\n <span class=\"nav-label\">{item.label}</span>\n {item.description && (\n <span class=\"nav-description\">{item.description}</span>\n )}\n </span>\n {item.iconEnd && (\n <span class=\"nav-icon nav-icon-end\" aria-hidden=\"true\">\n {item.iconEnd}\n </span>\n )}\n </TagType>\n </div>\n\n {hasChildren && (\n <le-collapse class=\"nav-children\" closed={!open} noFading={true} role=\"group\">\n {this.renderVerticalList(children, {\n depth: depth + 1,\n pathPrefix: path,\n autoOpenIds: openFromSearch,\n })}\n </le-collapse>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n }\n\n private renderHorizontalItem(item: LeOption, index: number) {\n const id = this.getItemId(item, String(index));\n const children = this.getChildItems(item);\n const hasChildren = children.length > 0;\n\n if (!hasChildren) {\n const TagType = item.href && !item.disabled ? 'a' : 'button';\n const attrs =\n TagType === 'a'\n ? { href: item.href, role: 'menuitem' }\n : { type: 'button', role: 'menuitem' };\n\n return (\n <div class=\"h-item\">\n <TagType\n class={classnames('h-link', {\n disabled: item.disabled,\n selected: item.selected,\n })}\n {...attrs}\n aria-disabled={item.disabled ? 'true' : undefined}\n onClick={(e: MouseEvent) => this.handleItemSelect(e, item, id)}\n >\n {item.iconStart && (\n <span class=\"nav-icon\" aria-hidden=\"true\">\n {item.iconStart}\n </span>\n )}\n <span class=\"h-label\">{item.label}</span>\n {item.iconEnd && (\n <span class=\"nav-icon nav-icon-end\" aria-hidden=\"true\">\n {item.iconEnd}\n </span>\n )}\n </TagType>\n </div>\n );\n }\n\n const submenuId = id;\n\n return (\n <div class=\"h-item\">\n <le-popover\n ref={el => {\n if (el) this.popoverRefs.set(submenuId, el);\n }}\n mode=\"default\"\n showClose={false}\n closeOnClickOutside={true}\n closeOnEscape={true}\n position=\"bottom\"\n align=\"start\"\n minWidth=\"240px\"\n >\n <div\n slot=\"trigger\"\n class={classnames('h-trigger', {\n disabled: item.disabled,\n selected: item.selected,\n })}\n role=\"menuitem\"\n aria-disabled={item.disabled ? 'true' : undefined}\n onClick={(e: MouseEvent) => {\n // Don’t let le-popover auto-toggle from its internal wrapper.\n e.stopPropagation();\n if (item.disabled) return;\n\n if (item.href) {\n this.handleItemSelect(e, item, id);\n } else {\n this.popoverRefs.get(submenuId)?.toggle();\n }\n }}\n >\n {item.href ? (\n <a\n class=\"h-link\"\n href={item.href}\n onClick={(e: MouseEvent) => {\n e.stopPropagation();\n this.handleItemSelect(e, item, id);\n }}\n >\n {item.iconStart && (\n <span class=\"nav-icon\" aria-hidden=\"true\">\n {item.iconStart}\n </span>\n )}\n <span class=\"h-label\">{item.label}</span>\n </a>\n ) : (\n <button\n type=\"button\"\n class=\"h-link\"\n onClick={(e: MouseEvent) => {\n e.stopPropagation();\n if (item.disabled) return;\n this.popoverRefs.get(submenuId)?.toggle();\n }}\n >\n {item.iconStart && (\n <span class=\"nav-icon\" aria-hidden=\"true\">\n {item.iconStart}\n </span>\n )}\n <span class=\"h-label\">{item.label}</span>\n </button>\n )}\n\n <button\n type=\"button\"\n class=\"h-submenu-toggle\"\n aria-label=\"Open submenu\"\n onClick={(e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (item.disabled) return;\n this.popoverRefs.get(submenuId)?.toggle();\n }}\n >\n <span class=\"nav-chevron\" aria-hidden=\"true\">\n <le-icon name=\"chevron-down\" />\n </span>\n </button>\n </div>\n\n <div class=\"popover-menu\">\n {this.renderVerticalList(children, {\n depth: 0,\n pathPrefix: String(index),\n searchable: this.submenuSearchable,\n searchQuery: this.submenuQueries[submenuId] ?? '',\n searchPlaceholder: this.searchPlaceholder,\n emptyText: this.emptyText,\n submenuId,\n })}\n </div>\n </le-popover>\n </div>\n );\n }\n\n private renderHorizontal() {\n const items = this.parsedItems;\n\n const overflowSet = new Set(this.overflowIds);\n\n const overflowItems: LeOption[] = [];\n items.forEach((item, index) => {\n const id = this.getItemId(item, String(index));\n if (!this.wrap && this.overflowMode === 'more' && overflowSet.has(id)) {\n overflowItems.push(item);\n }\n });\n\n // Hamburger mode: show a single trigger if anything overflows.\n if (!this.wrap && this.overflowMode === 'hamburger' && this.hamburgerActive) {\n return (\n <div class=\"nav-horizontal-shell\">\n <div\n class=\"nav-horizontal-measure\"\n aria-hidden=\"true\"\n ref={el => {\n this.measureEl = el as HTMLElement;\n }}\n >\n {items.map((item, index) => this.renderHorizontalMeasureItem(item, index))}\n <div\n class=\"h-item\"\n ref={el => {\n this.measureMoreEl = el as HTMLElement;\n }}\n >\n <button type=\"button\" class=\"overflow-trigger\">\n More\n </button>\n </div>\n </div>\n\n <div\n class=\"nav-horizontal\"\n ref={el => {\n this.navContainerEl = el as HTMLElement;\n this.setupResizeObserver();\n this.observeContainer(this.navContainerEl);\n }}\n >\n <le-popover\n mode=\"default\"\n showClose={false}\n closeOnClickOutside={true}\n closeOnEscape={true}\n position=\"bottom\"\n align=\"end\"\n minWidth=\"260px\"\n >\n <button slot=\"trigger\" type=\"button\" class=\"overflow-trigger\" aria-label=\"Open menu\">\n ☰\n </button>\n <div class=\"popover-menu\">\n {this.renderVerticalList(items, { depth: 0, pathPrefix: '' })}\n </div>\n </le-popover>\n </div>\n </div>\n );\n }\n\n const showMore = !this.wrap && this.overflowMode === 'more' && overflowItems.length > 0;\n\n return (\n <div class=\"nav-horizontal-shell\" role=\"menubar\">\n <div\n class=\"nav-horizontal-measure\"\n aria-hidden=\"true\"\n ref={el => {\n this.measureEl = el as HTMLElement;\n }}\n >\n {items.map((item, index) => this.renderHorizontalMeasureItem(item, index))}\n <div\n class=\"h-item\"\n ref={el => {\n this.measureMoreEl = el as HTMLElement;\n }}\n >\n <button type=\"button\" class=\"overflow-trigger\">\n More\n </button>\n </div>\n </div>\n\n <div\n class={classnames('nav-horizontal', {\n wrap: this.wrap,\n nowrap: !this.wrap,\n })}\n ref={el => {\n this.navContainerEl = el as HTMLElement;\n this.setupResizeObserver();\n this.observeContainer(this.navContainerEl);\n }}\n >\n {items.map((item, index) => {\n const id = this.getItemId(item, String(index));\n const isOverflow = !this.wrap && this.overflowMode === 'more' && overflowSet.has(id);\n if (isOverflow) return null;\n return this.renderHorizontalItem(item, index);\n })}\n\n {/* Render a hidden trigger for measurement when not visible */}\n <div\n class={classnames('more-trigger-wrap', {\n 'is-visible': showMore,\n 'is-measure': !showMore,\n })}\n >\n <le-popover\n mode=\"default\"\n position=\"bottom\"\n align=\"end\"\n minWidth=\"260px\"\n showClose={false}\n >\n <button slot=\"trigger\" type=\"button\" class=\"overflow-trigger\" aria-label=\"More\">\n More\n </button>\n <div class=\"popover-menu\">\n {this.renderVerticalList(overflowItems, { depth: 0, pathPrefix: '' })}\n </div>\n </le-popover>\n </div>\n </div>\n </div>\n );\n }\n\n render() {\n const items = this.parsedItems;\n\n if (this.orientation === 'horizontal') {\n return (\n <Host>\n <le-component component=\"le-navigation\">{this.renderHorizontal()}</le-component>\n </Host>\n );\n }\n\n return (\n <Host>\n <le-component component=\"le-navigation\">\n {this.renderVerticalList(items, {\n depth: 0,\n pathPrefix: '',\n searchable: this.searchable,\n searchQuery: this.searchQuery,\n searchPlaceholder: this.searchPlaceholder,\n emptyText: this.emptyText,\n })}\n </le-component>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -195,7 +195,7 @@ export class LeNumberInput {
|
|
|
195
195
|
this.emitChange();
|
|
196
196
|
};
|
|
197
197
|
render() {
|
|
198
|
-
return (h("le-component", { key: '
|
|
198
|
+
return (h("le-component", { key: '5ca731314dea05358c17f1d1341f60c092f7f3cf', component: "le-number-input", hostClass: classnames({ 'disabled': this.disabled }) }, h("div", { key: '59d4e240934731b055ac907ae2834e0b298cfa43', class: "le-input-wrapper" }, this.label && (h("label", { key: 'c69754d91ce30e387336e79cb964d2b3811b6143', class: "le-input-label", htmlFor: this.name }, this.label)), h("div", { key: '87b8fd88f702752b78e392b668081dcabc3ee818', class: classnames('le-input-container', { 'has-error': !this.isValid }) }, this.iconStart && (h("span", { key: 'df1ae914d42940d08378af548b3f75a61da4221d', class: "icon-start" }, this.iconStart)), h("input", { key: '65cf776d7ed9ba024cb74b0b28340e4122789f1d', id: this.name, type: "number", name: this.name, placeholder: this.placeholder, min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, readOnly: this.readonly, required: this.required, onInput: this.handleInput, onChange: this.handleChange, onKeyDown: this.handleKeyDown, onWheel: this.handleWheel }), this.showSpinners && (h("div", { key: '2011b1d921ce59471f73e0e8ee71c31009cd6ccd', class: "le-input-controls" }, h("le-button", { key: '19d8bfdda57d33770d577477abc065b1f3c9f8bd', mode: "default", variant: "clear", size: "small", "icon-only": true, class: "le-input-control-btn", onClick: this.increment, disabled: this.disabled || this.readonly || (this.max !== undefined && this.value >= this.max), tabindex: "-1" }, h("span", { key: 'b9e929938c42d29d3d8f52547dbb2ea0d6660f59', slot: "icon-only" }, "\u2191")), h("le-button", { key: '0ac2bc5438d684deb4b29e229b7a7b1db09578e7', mode: "default", variant: "clear", size: "small", "icon-only": true, class: "le-input-control-btn", onClick: this.decrement, disabled: this.disabled || this.readonly || (this.min !== undefined && this.value <= this.min), tabindex: "-1" }, h("span", { key: 'ec2933d49fbff75b14c2c7a3ff994f15ab22b08f', slot: "icon-only" }, "\u2193"))))), !this.isValid && h("div", { key: '7dc47495f4c2aaf3f91efaad08f56fae47de3d05', class: "le-input-error" }, this.validationMessage), h("div", { key: '165415790fab9e911ab236570e2f2723043deebb', class: "le-input-description" }, h("le-slot", { key: 'bc6401930e0546dfae4bba8436ae56392fef3c1b', name: "description", type: "text", tag: "p", label: "Description" }, h("slot", { key: '0f39013377f404bfd78a4f19318a76e20d66f99a', name: "description" }))))));
|
|
199
199
|
}
|
|
200
200
|
static get is() { return "le-number-input"; }
|
|
201
201
|
static get encapsulation() { return "shadow"; }
|
|
@@ -459,12 +459,12 @@ export class LePopover {
|
|
|
459
459
|
popoverStyles.minWidth = this.minWidth;
|
|
460
460
|
if (this.maxWidth)
|
|
461
461
|
popoverStyles.maxWidth = this.maxWidth;
|
|
462
|
-
return (h(Host, { key: '
|
|
462
|
+
return (h(Host, { key: 'ab4a38788350cd0571637978291dc3cacf128290', "trigger-full-width": this.triggerFullWidth }, h("div", { key: 'aeae05965add2ef93145fecfc444124ef998e868', class: classnames('le-popover-trigger', {
|
|
463
463
|
'le-popover-trigger-full-width': this.triggerFullWidth,
|
|
464
|
-
}), ref: el => (this.triggerEl = el), onClick: this.handleTriggerClick, part: "trigger" }, h("slot", { key: '
|
|
464
|
+
}), ref: el => (this.triggerEl = el), onClick: this.handleTriggerClick, part: "trigger" }, h("slot", { key: 'db68f48f01d2d729e46a8fe46e7a10f3c28cecd6', name: "trigger" }, h("button", { key: 'e2ab0f5516d18b8cb209c3172c84d46041089c39', type: "button", class: "le-popover-default-trigger" }, h("span", { key: '1a8062028340b3696fbce2f2911b7cecba947841' }, "\u2295")))), h("div", { key: '19ff2c84398d3851c51f64f3369017790e9a6ab2', id: this.uniqueId, class: "le-popover-content",
|
|
465
465
|
// Always use manual mode so nested popovers can be open together.
|
|
466
466
|
// We implement click-outside and Escape handling ourselves.
|
|
467
|
-
popover: "manual", ref: el => (this.popoverEl = el), style: popoverStyles, "data-fallback-open": this.supportsPopoverApi ? undefined : String(this.open) }, (this.popoverTitle || this.showClose) && (h("div", { key: '
|
|
467
|
+
popover: "manual", ref: el => (this.popoverEl = el), style: popoverStyles, "data-fallback-open": this.supportsPopoverApi ? undefined : String(this.open) }, (this.popoverTitle || this.showClose) && (h("div", { key: 'fba07fb0c59685f51dd0952560d47abbce7b7424', class: "le-popover-header" }, this.popoverTitle && h("span", { key: '064851cf48684a1bb9e2a27c8d415bcf449fc871', class: "le-popover-title" }, this.popoverTitle), this.showClose && (h("button", { key: '281803ab3f5aeab0f0ed842dba513ef5991f6619', type: "button", class: "le-popover-close", onClick: () => this.hide(), "aria-label": "Close" }, "\u00D7")))), h("div", { key: '4aea10af963421a60145b6ed0913f1447b8f0599', class: "le-popover-body", part: "content" }, h("slot", { key: 'e4310d522411a43164d08eb74a935777782e6bac' })))));
|
|
468
468
|
}
|
|
469
469
|
static get is() { return "le-popover"; }
|
|
470
470
|
static get encapsulation() { return "shadow"; }
|
|
@@ -280,7 +280,7 @@ export class LePopup {
|
|
|
280
280
|
"references": {
|
|
281
281
|
"PopupType": {
|
|
282
282
|
"location": "local",
|
|
283
|
-
"path": "/
|
|
283
|
+
"path": "/home/runner/work/le-kit/le-kit/src/components/le-popup/le-popup.tsx",
|
|
284
284
|
"id": "src/components/le-popup/le-popup.tsx::PopupType"
|
|
285
285
|
}
|
|
286
286
|
}
|
|
@@ -364,7 +364,7 @@ export class LePopup {
|
|
|
364
364
|
"references": {
|
|
365
365
|
"PopupPosition": {
|
|
366
366
|
"location": "local",
|
|
367
|
-
"path": "/
|
|
367
|
+
"path": "/home/runner/work/le-kit/le-kit/src/components/le-popup/le-popup.tsx",
|
|
368
368
|
"id": "src/components/le-popup/le-popup.tsx::PopupPosition"
|
|
369
369
|
}
|
|
370
370
|
}
|
|
@@ -505,7 +505,7 @@ export class LePopup {
|
|
|
505
505
|
"references": {
|
|
506
506
|
"PopupResult": {
|
|
507
507
|
"location": "local",
|
|
508
|
-
"path": "/
|
|
508
|
+
"path": "/home/runner/work/le-kit/le-kit/src/components/le-popup/le-popup.tsx",
|
|
509
509
|
"id": "src/components/le-popup/le-popup.tsx::PopupResult"
|
|
510
510
|
}
|
|
511
511
|
}
|
|
@@ -526,7 +526,7 @@ export class LePopup {
|
|
|
526
526
|
"references": {
|
|
527
527
|
"PopupResult": {
|
|
528
528
|
"location": "local",
|
|
529
|
-
"path": "/
|
|
529
|
+
"path": "/home/runner/work/le-kit/le-kit/src/components/le-popup/le-popup.tsx",
|
|
530
530
|
"id": "src/components/le-popup/le-popup.tsx::PopupResult"
|
|
531
531
|
}
|
|
532
532
|
}
|
|
@@ -562,7 +562,7 @@ export class LePopup {
|
|
|
562
562
|
"references": {
|
|
563
563
|
"PopupResult": {
|
|
564
564
|
"location": "local",
|
|
565
|
-
"path": "/
|
|
565
|
+
"path": "/home/runner/work/le-kit/le-kit/src/components/le-popup/le-popup.tsx",
|
|
566
566
|
"id": "src/components/le-popup/le-popup.tsx::PopupResult"
|
|
567
567
|
}
|
|
568
568
|
}
|
|
@@ -582,7 +582,7 @@ export class LePopup {
|
|
|
582
582
|
},
|
|
583
583
|
"PopupResult": {
|
|
584
584
|
"location": "local",
|
|
585
|
-
"path": "/
|
|
585
|
+
"path": "/home/runner/work/le-kit/le-kit/src/components/le-popup/le-popup.tsx",
|
|
586
586
|
"id": "src/components/le-popup/le-popup.tsx::PopupResult"
|
|
587
587
|
}
|
|
588
588
|
},
|
|
@@ -608,7 +608,7 @@ export class LePopup {
|
|
|
608
608
|
},
|
|
609
609
|
"PopupResult": {
|
|
610
610
|
"location": "local",
|
|
611
|
-
"path": "/
|
|
611
|
+
"path": "/home/runner/work/le-kit/le-kit/src/components/le-popup/le-popup.tsx",
|
|
612
612
|
"id": "src/components/le-popup/le-popup.tsx::PopupResult"
|
|
613
613
|
}
|
|
614
614
|
},
|
|
@@ -85,7 +85,7 @@ export class LeRoundProgress {
|
|
|
85
85
|
return (h("svg", { viewBox: this.getViewBox(), class: "round-progress" }, paths));
|
|
86
86
|
}
|
|
87
87
|
render() {
|
|
88
|
-
return (h("div", { key: '
|
|
88
|
+
return (h("div", { key: '3ffd4b3088bb03af650e413b3c24b5c8206abe7b', class: "round-progress--container" }, this.getPaths(), h("svg", { key: 'd5b1a23bc9bf3092fa1e97857dcd1cb3d690d39d', viewBox: this.getViewBox(), class: "round-progress round-progress--progress" }, h("path", { key: 'a3ded815f03c77fbb693822223e10979ae0db760', class: "round-progress--circle", "stroke-dasharray": this.getStrokeDashArray(), d: this.getPath() })), h("slot", { key: '3d54c7c12e5930d51bc4dfcdcf1b82829eea8ad9' })));
|
|
89
89
|
}
|
|
90
90
|
static get is() { return "le-round-progress"; }
|
|
91
91
|
static get encapsulation() { return "shadow"; }
|
|
@@ -118,7 +118,7 @@ export class LeScrollProgress {
|
|
|
118
118
|
}
|
|
119
119
|
render() {
|
|
120
120
|
const width = `${this.progress * 100}%`;
|
|
121
|
-
return (h(Host, { key: '
|
|
121
|
+
return (h(Host, { key: 'bbbf42c0402c2b565d6d6b740e0863ed9543cc43' }, h("div", { key: '085ca4aad35549d49ef1553d2eb0fd805df2af4a', class: "track", part: "track", "aria-hidden": "true" }, h("div", { key: '12dc1e4bc87afa64e47d75d3c3c097af82b74b94', class: "fill", part: "fill", style: { width } }))));
|
|
122
122
|
}
|
|
123
123
|
static get is() { return "le-scroll-progress"; }
|
|
124
124
|
static get encapsulation() { return "shadow"; }
|
|
@@ -236,7 +236,7 @@ export class LeSegmentedControl {
|
|
|
236
236
|
'full-width': fullWidth,
|
|
237
237
|
'disabled': disabled,
|
|
238
238
|
};
|
|
239
|
-
return (h(Host, { key: '
|
|
239
|
+
return (h(Host, { key: '559bbf293fcd9108dfc04025562cee8d87fe87ba', class: `overflow-${this.overflow}` }, h("le-component", { key: '12cb853ddae94c506c5788882fb3336301e283c6', component: "le-segmented-control" }, h("div", { key: 'bedce1c124e8ab3daa089a74915afa8f6ed62f3d', class: classes, ref: el => (this.containerRef = el), role: "radiogroup", part: "container", onKeyDown: this.handleKeyDown, tabIndex: 0 }, segmentConfigs.map(option => {
|
|
240
240
|
const optValue = this.getOptionValue(option);
|
|
241
241
|
const isSelected = optValue === value;
|
|
242
242
|
const isDisabled = option.disabled || disabled;
|
|
@@ -192,13 +192,13 @@ export class LeSelect {
|
|
|
192
192
|
}
|
|
193
193
|
render() {
|
|
194
194
|
const hasValue = this.selectedOption !== undefined;
|
|
195
|
-
return (h("le-component", { key: '
|
|
195
|
+
return (h("le-component", { key: '6f2eebab3f0afcef9d1801812ad0cc4cfb4456b6', component: "le-select" }, h("le-dropdown-base", { key: 'eb34e28681f84fbd5a75d415facd9f1f79012010', ref: el => (this.dropdownEl = el), options: this.parsedOptions, value: this.value, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose, fullWidth: this.fullWidth }, h("le-button", { key: 'e8507bfd78aa3267fb2513810599361cd223f8eb', variant: this.variant && this.variant !== 'default' ? this.variant : 'outlined', slot: "trigger", align: "space-between", class: {
|
|
196
196
|
'select-trigger': true,
|
|
197
197
|
'has-value': hasValue,
|
|
198
198
|
'is-open': this.open,
|
|
199
199
|
}, mode: "default", size: this.size, disabled: this.disabled, "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown, fullWidth: this.fullWidth, iconStart: hasValue && this.selectedOption?.iconStart
|
|
200
200
|
? this.renderIcon(this.selectedOption.iconStart)
|
|
201
|
-
: null, iconEnd: h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { d: "M4 6l4 4 4-4" })) }, h("span", { key: '
|
|
201
|
+
: null, iconEnd: h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { d: "M4 6l4 4 4-4" })) }, h("span", { key: 'afd07c274a9b340ed16d89844495fdf588e7ebfe', class: "trigger-label" }, hasValue ? this.selectedOption.label : this.placeholder)), this.searchable && this.open && (h("div", { key: 'baeaf8eb5ad2083d3860d9e02991d32144e23038', class: "multiselect-search", slot: "header" }, h("le-string-input", { key: '4d3a7d002fb4476db71f2e37ce44dc62cc89f2fc', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name && h("input", { key: '37e3432981fda47a0bbf09bcb56851bd5dab4ca4', type: "hidden", name: this.name, value: this.value?.toString() ?? '' })));
|
|
202
202
|
}
|
|
203
203
|
static get is() { return "le-select"; }
|
|
204
204
|
static get encapsulation() { return "shadow"; }
|
|
@@ -343,7 +343,7 @@ export class LeSlot {
|
|
|
343
343
|
render() {
|
|
344
344
|
const displayLabel = this.label || this.name;
|
|
345
345
|
// Always render the same structure, CSS handles visibility via .admin-mode class
|
|
346
|
-
return (h(Host, { key: '
|
|
346
|
+
return (h(Host, { key: '0b2b3edf3690ed9769438ef019111638e5de0276', class: {
|
|
347
347
|
'admin-mode': this.adminMode,
|
|
348
348
|
'invalid-html': !this.isValidHtml,
|
|
349
349
|
}, role: this.adminMode ? 'region' : undefined, "aria-label": this.adminMode ? `Slot: ${displayLabel}` : undefined, "data-slot-name": this.name, "data-slot-type": this.type, "data-allowed": this.allowedComponents, "data-multiple": this.multiple, "data-required": this.required }, this.adminMode ? (h("div", { class: "le-slot-container" }, h("div", { class: classnames('le-slot-header', {
|
|
@@ -134,7 +134,7 @@ export class LeStack {
|
|
|
134
134
|
});
|
|
135
135
|
// Slot style for admin mode - make items display in the same direction
|
|
136
136
|
const slotStyle = `display: flex; flex-direction: ${this.getFlexDirection()}; gap: ${this.gap || 'var(--le-space-md)'}; flex-wrap: ${this.wrap ? 'wrap' : 'nowrap'}; justify-content: ${this.getJustifyContent()}; align-items: ${this.getAlignItems()};`;
|
|
137
|
-
return (h("le-component", { key: '
|
|
137
|
+
return (h("le-component", { key: '5f01f4afc716be565227e396952da314182de505', component: "le-stack", hostClass: hostClass }, h("div", { key: '1eef9ac4318f39038282c3574d0019c4d904b421', class: "stack", part: "stack", style: style }, h("le-slot", { key: 'f4445ca2070d685a3621df06dffe02b40cbb2db3', name: "", description: `Items arranged ${this.direction}ly${this.maxItems ? ` (max ${this.maxItems})` : ''}`, type: "slot", "allowed-components": "le-text,le-box,le-card,le-button,le-stack", slotStyle: slotStyle }, h("slot", { key: '90d40bfa5c766d6161614e90ab8f8cec8a0a6dc3' })))));
|
|
138
138
|
}
|
|
139
139
|
static get is() { return "le-stack"; }
|
|
140
140
|
static get encapsulation() { return "shadow"; }
|
|
@@ -99,11 +99,11 @@ export class LeStringInput {
|
|
|
99
99
|
ev.stopPropagation();
|
|
100
100
|
};
|
|
101
101
|
render() {
|
|
102
|
-
return (h("le-component", { key: '
|
|
102
|
+
return (h("le-component", { key: 'c28242025bd09955e03d3aa7e5f7d1fd0693817f', component: "le-string-input", hostClass: classnames({ disabled: this.disabled }) }, h("div", { key: 'e995b83c1668d4818c634f39acb16683baef844c', class: "le-input-wrapper" }, this.label && (h("label", { key: 'cb0a17558b2a07bf211bdb5ecd7d4e8aec9554cc', class: "le-input-label", htmlFor: this.name }, this.label)), h("div", { key: 'c50a27c4e0732c05b37d6ff6ea77e74f05e942d6', class: "le-input-container", part: "container" }, this.iconStart && h("span", { key: 'f9e01713742664671938e66498a407fd0d408b5f', class: "icon-start" }, this.iconStart), h("input", { key: '2357145ebdb43bc6eb52450508f707699253da91', ref: el => {
|
|
103
103
|
if (this.inputRef) {
|
|
104
104
|
this.inputRef(el);
|
|
105
105
|
}
|
|
106
|
-
}, id: this.name, type: this.type, name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }), this.iconEnd && h("span", { key: '
|
|
106
|
+
}, id: this.name, type: this.type, name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }), this.iconEnd && h("span", { key: '22ea7682c0e74910905d08fceeab2b4d0270af60', class: "icon-end" }, this.iconEnd)), !this.hideDescription && (h("div", { key: 'e281b9cc97935296dda68bf52fa3318997a6c39d', class: "le-input-description" }, h("le-slot", { key: '438f02f1a197968f9d5aa751214a680fc17eb2ba', name: "description", type: "text", tag: "p", label: "Description" }, h("slot", { key: '3e52eb43aede04916d0004449fc03c4987d62715', name: "description" })))))));
|
|
107
107
|
}
|
|
108
108
|
static get is() { return "le-string-input"; }
|
|
109
109
|
static get encapsulation() { return "shadow"; }
|
|
@@ -135,7 +135,7 @@ export class LeTab {
|
|
|
135
135
|
const attrs = this.href
|
|
136
136
|
? { href: this.href, target: this.target, role: 'button' }
|
|
137
137
|
: { disabled: this.disabled };
|
|
138
|
-
return (h(Host, { key: '
|
|
138
|
+
return (h(Host, { key: '7e073b5ca3bba044c2325571ca9aed94b0be66de' }, h("le-component", { key: 'b6c6952c9f8b48b5f4f7851d1216de160dd16c45', component: "le-tab" }, h(TagType, { key: 'e1c901c60e75ff9104420c28452964d090f67365', class: classnames('le-tab-container', `le-tab-align-${this.align}`, classes), part: "button", ...attrs, onClick: this.handleClick, tabIndex: this.focusable ? 0 : -1 }, this.icon !== undefined ? (h("div", { class: "icon-only" }, h("div", { class: "icon" }, this.icon), this.showLabel && h("span", { class: "icon-label" }, this.label))) : (h(Fragment, null, h("span", { class: "le-tab-label" }, this.iconStart && (h("span", { class: "icon-start", part: "icon-start" }, this.iconStart)), h("le-slot", { name: "", description: "Tab text", type: "text", class: "content", part: "content" }, h("slot", null, this.label))), this.iconEnd && (h("span", { class: "icon-end", part: "icon-end" }, this.iconEnd))))))));
|
|
139
139
|
}
|
|
140
140
|
static get is() { return "le-tab"; }
|
|
141
141
|
static get encapsulation() { return "shadow"; }
|
|
@@ -236,7 +236,7 @@ export class LeTabBar {
|
|
|
236
236
|
'position-top': this.position === 'top',
|
|
237
237
|
'position-bottom': this.position === 'bottom',
|
|
238
238
|
};
|
|
239
|
-
return (h(Host, { key: '
|
|
239
|
+
return (h(Host, { key: '99ecfa8de9c894f913ab1ea2a2293c4fe863a6e9', class: classes }, h("le-component", { key: '59de2d9ffe9710d9480b6666a539039b0a38675e', component: "le-tab-bar" }, h("div", { key: '13b4037e84ee994d924bd08dc6305f1ad7bab3bd', class: "tablist", role: "tablist", "aria-orientation": "horizontal", part: "tablist", onKeyDown: this.handleKeyDown }, h("le-slot", { key: 'cab80272032e911ce09549fbdc18c2eb9df1de74', name: "", type: "slot", allowedComponents: "le-tab" }, tabConfigs.map(tab => {
|
|
240
240
|
const value = this.getTabValue(tab);
|
|
241
241
|
const isSelected = value === selected;
|
|
242
242
|
return (h("le-tab", { key: value, class: "tab", role: "tab", variant: "icon-only", label: tab.label, value: tab.value, icon: tab.icon, href: tab.href, selected: isSelected, disabled: tab.disabled, showLabel: this.showLabels, size: size, part: isSelected ? 'tab tab-active' : 'tab', "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": tab.disabled ? 'true' : undefined, tabIndex: -1, onClick: () => this.handleTabClick(tab) }, h("span", { class: "tab-label" }, tab.label)));
|
|
@@ -88,11 +88,11 @@ export class LeTabPanel {
|
|
|
88
88
|
}
|
|
89
89
|
render() {
|
|
90
90
|
const shouldRender = this.shouldRenderContent();
|
|
91
|
-
return (h("le-component", { key: '
|
|
91
|
+
return (h("le-component", { key: '19aab1adeb6de102df6c92d84df1ea65b4143912', component: "le-tab-panel" }, h("div", { key: 'e7c75b5a093da0cf0563b4e374c98c2fba2e8cb1', class: {
|
|
92
92
|
'tab-panel': true,
|
|
93
93
|
'active': this.active,
|
|
94
94
|
'lazy-hidden': this.lazy && !this.active,
|
|
95
|
-
}, role: "tabpanel", "aria-hidden": !this.active ? 'true' : undefined, tabIndex: this.active ? 0 : -1 }, h("le-slot", { key: '
|
|
95
|
+
}, role: "tabpanel", "aria-hidden": !this.active ? 'true' : undefined, tabIndex: this.active ? 0 : -1 }, h("le-slot", { key: '0847f8b0cb41f5fbc131839160eadb51e9d5f5a4', name: "", description: "Tab panel content", type: "slot" }, shouldRender && h("slot", { key: 'c52b444823c3e981a3e832c16fa1cd5db53d6d33' })))));
|
|
96
96
|
}
|
|
97
97
|
static get is() { return "le-tab-panel"; }
|
|
98
98
|
static get encapsulation() { return "shadow"; }
|
|
@@ -291,7 +291,7 @@ export class LeTabs {
|
|
|
291
291
|
: this.position === 'start'
|
|
292
292
|
? 'top'
|
|
293
293
|
: 'bottom';
|
|
294
|
-
return (h("le-component", { key: '
|
|
294
|
+
return (h("le-component", { key: '6882b32d3be8f1686c1f367bdcd9fc54ee92a8ee', component: "le-tabs", hostClass: classnames(classes) }, h("div", { key: 'd50731bf95b4898dec01f1a003f6b8e1f694ef87', class: classes }, h("div", { key: '1e07303c43016d13dedff719b6efc5374f97d7db', class: {
|
|
295
295
|
'tablist': true,
|
|
296
296
|
'wrap-tabs': this.wrap,
|
|
297
297
|
[`overflow-${this.overflow}`]: true,
|
|
@@ -300,7 +300,7 @@ export class LeTabs {
|
|
|
300
300
|
const tabId = `tab-${config.value}`;
|
|
301
301
|
const panelId = `panel-${config.value}`;
|
|
302
302
|
return (h("le-tab", { key: config.value, id: tabId, class: "tab", mode: "default", variant: this.variant, selected: isSelected, disabled: config.disabled, size: this.size, position: tabPosition, align: this.orientation === 'vertical' ? 'start' : 'center', role: "tab", part: isSelected ? 'tab tab-active' : 'tab', "aria-selected": isSelected ? 'true' : 'false', "aria-controls": panelId, "aria-disabled": config.disabled ? 'true' : undefined, focusable: false, onClick: () => this.handleTabClick(config), iconStart: config.iconStart, iconEnd: config.iconEnd }, h("span", { class: "tab-label" }, config.label)));
|
|
303
|
-
})), h("div", { key: '
|
|
303
|
+
})), h("div", { key: 'dcd32445495900eda29cc610c30261da6262c3c4', class: "panels", part: "panels" }, isDeclarativeMode ? (
|
|
304
304
|
// Declarative mode - render slot for le-tab-panel children
|
|
305
305
|
h("le-slot", { name: "", description: "Tab panels", type: "slot", allowedComponents: "le-tab-panel" }, h("slot", null))) : (
|
|
306
306
|
// Programmatic mode - render named slots
|
|
@@ -89,7 +89,7 @@ export class LeTag {
|
|
|
89
89
|
return h("span", { class: "tag-icon" }, this.icon);
|
|
90
90
|
}
|
|
91
91
|
render() {
|
|
92
|
-
return (h("le-component", { key: '
|
|
92
|
+
return (h("le-component", { key: '0cae0957e69fe0a1304f81e69d12d31c18ba9d19', component: "le-tag" }, h("span", { key: 'b9d141aa16c0d8a22f2a0ee274feae4af3f330a4', class: "tag" }, this.renderIcon(), h("span", { key: '721836b45727b79547f4207a59c0a42266f3b24a', class: "tag-label" }, h("le-slot", { key: '48be93bc17af5fa8fd8de18f6c53b81b26dee01b', name: "", tag: "span", type: "text" }, h("slot", { key: '482d37fe79b37fade8460a8abde4813e3ececa99' }, this.label))), this.dismissible && (h("button", { key: 'a0de79ab2ea5ce3e6f37b255028096a31ca06a33', type: "button", class: "tag-dismiss", onClick: this.handleDismiss, disabled: this.disabled, "aria-label": "Remove" }, h("svg", { key: 'ff30daa4aaffa92e7fc7d29b66c0ee401c9541ac', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { key: '3f7d739758c3213847f0214cb6377c4e5c48abab', d: "M4 4l8 8M12 4l-8 8" })))))));
|
|
93
93
|
}
|
|
94
94
|
static get is() { return "le-tag"; }
|
|
95
95
|
static get encapsulation() { return "shadow"; }
|
|
@@ -120,7 +120,7 @@ export class LeTurntable {
|
|
|
120
120
|
this.el.style.transform = `rotate(${angle}deg)`;
|
|
121
121
|
}
|
|
122
122
|
render() {
|
|
123
|
-
return (h("div", { key: '
|
|
123
|
+
return (h("div", { key: 'ddc71a1cc9dd4e1d61c460969b056e75a0c26e29', class: "turntable", onMouseDown: this.handleMouseDown.bind(this) }, h("slot", { key: '12df0788fd0baeae7d73badfdfe21976ff989497' })));
|
|
124
124
|
}
|
|
125
125
|
static get is() { return "le-turntable"; }
|
|
126
126
|
static get encapsulation() { return "shadow"; }
|