snice 7.0.2 → 7.0.3
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/adapters/react/SniceProvider.js +1 -1
- package/adapters/react/SniceRouter.js +1 -1
- package/adapters/react/matchRoute.js +1 -1
- package/adapters/react/useRequestHandler.js +1 -1
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/action-bar/snice-action-bar.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/availability/snice-availability.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
- package/dist/cdn/badge/snice-badge.js +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/binpack/snice-binpack.js +1 -1
- package/dist/cdn/book/snice-book.js +1 -1
- package/dist/cdn/booking/snice-booking.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/cdn/button/snice-button.js +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.js +1 -1
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/carousel/snice-carousel.js +1 -1
- package/dist/cdn/cart/snice-cart.js +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/code-block/snice-code-block.js +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/comments/snice-comments.js +1 -1
- package/dist/cdn/countdown/snice-countdown.js +1 -1
- package/dist/cdn/cropper/snice-cropper.js +1 -1
- package/dist/cdn/data-card/snice-data-card.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
- package/dist/cdn/diff/snice-diff.js +1 -1
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/estimate/snice-estimate.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.js +1 -1
- package/dist/cdn/flow/snice-flow.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.js +1 -1
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/gantt/snice-gantt.js +1 -1
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/grid/snice-grid.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/invoice/snice-invoice.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/key-value/snice-key-value.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/layout/snice-layout.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/list/snice-list.js +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/login/snice-login.js +1 -1
- package/dist/cdn/map/snice-map.js +1 -1
- package/dist/cdn/markdown/snice-markdown.js +1 -1
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/nav/snice-nav.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.js +1 -1
- package/dist/cdn/pagination/snice-pagination.js +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
- package/dist/cdn/popover/snice-popover.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
- package/dist/cdn/product-card/snice-product-card.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.js +1 -1
- package/dist/cdn/rating/snice-rating.js +1 -1
- package/dist/cdn/receipt/snice-receipt.js +1 -1
- package/dist/cdn/recipe/snice-recipe.js +2 -2
- package/dist/cdn/recipe/snice-recipe.js.map +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.js +4 -4
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +4 -4
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/sortable/snice-sortable.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/split-button/snice-split-button.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.js +1 -1
- package/dist/cdn/step-input/snice-step-input.js +1 -1
- package/dist/cdn/stepper/snice-stepper.js +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/table/README.md +2 -2
- package/dist/cdn/table/snice-table.esm.js +20 -3
- package/dist/cdn/table/snice-table.esm.js.map +1 -1
- package/dist/cdn/table/snice-table.esm.min.js +35 -35
- package/dist/cdn/table/snice-table.esm.min.js.map +1 -1
- package/dist/cdn/table/snice-table.js +20 -3
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +29 -29
- package/dist/cdn/table/snice-table.min.js.map +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tag/snice-tag.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +2 -1
- package/dist/cdn/terminal/snice-terminal.js.map +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -0
- package/dist/cdn/terminal/snice-terminal.min.js.map +1 -1
- package/dist/cdn/testimonial/snice-testimonial.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tree/snice-tree.js +1 -1
- package/dist/cdn/treemap/snice-treemap.js +1 -1
- package/dist/cdn/user-card/snice-user-card.js +1 -1
- package/dist/cdn/video-player/README.md +1 -1
- package/dist/cdn/video-player/snice-video-player.js +2 -1
- package/dist/cdn/video-player/snice-video-player.js.map +1 -1
- package/dist/cdn/video-player/snice-video-player.min.js +1 -0
- package/dist/cdn/video-player/snice-video-player.min.js.map +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.js +1 -1
- package/dist/cdn/weather/snice-weather.js +1 -1
- package/dist/cdn/work-order/snice-work-order.js +1 -1
- package/dist/components/recipe/snice-recipe.js +1 -1
- package/dist/components/recipe/snice-recipe.js.map +1 -1
- package/dist/components/table/snice-table.d.ts +1 -0
- package/dist/components/table/snice-table.js +18 -2
- package/dist/components/table/snice-table.js.map +1 -1
- package/dist/components/table/table-tree-data.js +1 -0
- package/dist/components/table/table-tree-data.js.map +1 -1
- package/dist/components/terminal/snice-terminal.js +1 -0
- package/dist/components/terminal/snice-terminal.js.map +1 -1
- package/dist/components/video-player/snice-video-player.js +1 -0
- package/dist/components/video-player/snice-video-player.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/react/SniceProvider.js +1 -1
- package/dist/react/SniceRouter.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/matchRoute.js +1 -1
- package/dist/react/useRequestHandler.js +1 -1
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/components/avatar.md +8 -8
- package/docs/ai/components/breadcrumbs.md +2 -1
- package/docs/ai/components/button.md +2 -7
- package/docs/ai/components/calendar.md +1 -1
- package/docs/ai/components/camera.md +1 -1
- package/docs/ai/components/chart.md +3 -1
- package/docs/ai/components/code-block.md +2 -2
- package/docs/ai/components/date-picker.md +5 -19
- package/docs/ai/components/date-range-picker.md +4 -12
- package/docs/ai/components/draw.md +5 -5
- package/docs/ai/components/drawer.md +4 -4
- package/docs/ai/components/form-layout.md +2 -0
- package/docs/ai/components/icons.md +7 -16
- package/docs/ai/components/key-value.md +3 -22
- package/docs/ai/components/layout.md +8 -12
- package/docs/ai/components/leaderboard.md +2 -2
- package/docs/ai/components/link-preview.md +4 -3
- package/docs/ai/components/login.md +11 -0
- package/docs/ai/components/markdown.md +7 -0
- package/docs/ai/components/masonry.md +6 -0
- package/docs/ai/components/menu.md +1 -1
- package/docs/ai/components/modal.md +7 -0
- package/docs/ai/components/notification-center.md +5 -4
- package/docs/ai/components/radio.md +7 -0
- package/docs/ai/components/rating.md +3 -3
- package/docs/ai/components/select.md +4 -13
- package/docs/ai/components/spotlight.md +2 -0
- package/docs/ai/components/table.md +1 -4
- package/docs/ai/components/tag-input.md +6 -0
- package/docs/ai/components/terminal.md +6 -0
- package/docs/ai/components/tooltip.md +10 -16
- package/docs/ai/components/tree.md +2 -2
- package/docs/ai/components/video-player.md +5 -0
- package/docs/ai/components/waterfall.md +7 -0
- package/docs/ai/events.md +29 -0
- package/docs/components/breadcrumbs.md +2 -1
- package/docs/components/calendar.md +1 -1
- package/docs/components/camera.md +1 -1
- package/docs/components/chart.md +1 -1
- package/docs/components/code-block.md +13 -4
- package/docs/components/color-picker.md +6 -5
- package/docs/components/date-time-picker.md +14 -0
- package/docs/components/diff.md +2 -1
- package/docs/components/draw.md +5 -5
- package/docs/components/drawer.md +4 -4
- package/docs/components/input.md +1 -0
- package/docs/components/layout.md +20 -22
- package/docs/components/leaderboard.md +10 -3
- package/docs/components/link-preview.md +11 -9
- package/docs/components/login.md +4 -0
- package/docs/components/menu.md +1 -1
- package/docs/components/modal.md +1 -0
- package/docs/components/nav.md +1 -0
- package/docs/components/network-graph.md +1 -0
- package/docs/components/notification-center.md +2 -1
- package/docs/components/product-card.md +1 -0
- package/docs/components/qr-reader.md +1 -0
- package/docs/components/rating.md +4 -4
- package/docs/components/select.md +1 -0
- package/docs/components/spotlight.md +2 -0
- package/docs/components/tabs.md +1 -0
- package/docs/components/terminal.md +3 -0
- package/docs/components/textarea.md +1 -1
- package/docs/components/time-picker.md +14 -0
- package/docs/components/tooltip.md +2 -0
- package/docs/components/tree.md +2 -2
- package/docs/events.md +73 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-recipe.js","sources":["../../../components/recipe/snice-recipe.css?inline","../../../../components/recipe/snice-recipe.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);color:var(--snice-color-text,rgb(23 23 23));width:100%;--recipe-bg:var(--snice-color-surface-container-high, rgb(252 251 249));--recipe-border:var(--snice-color-border, rgb(226 226 226));--recipe-text:var(--snice-color-text, rgb(23 23 23));--recipe-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--recipe-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--recipe-primary:var(--snice-color-primary, rgb(37 99 235));--recipe-success:var(--snice-color-success, rgb(22 163 74));--recipe-danger:var(--snice-color-danger, rgb(220 38 38));--recipe-radius:var(--snice-border-radius-lg, 0.5rem);--recipe-shadow:var(--snice-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1))}.recipe{background:var(--recipe-bg);border-radius:var(--recipe-radius);box-shadow:var(--recipe-shadow);overflow:hidden}.recipe__hero{position:relative;width:100%;overflow:hidden}.recipe__hero img{width:100%;height:auto;display:block;object-fit:cover;max-height:25rem}.recipe__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding:var(--snice-spacing-lg,1.5rem)}.recipe__title{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0 0 var(--snice-spacing-xs,.5rem);font-size:var(--snice-heading-xl, 1.5rem);font-weight:var(--snice-font-weight-bold,700);line-height:var(--snice-line-height-normal, 1.5);color:var(--recipe-text)}.recipe__description{margin:0 0 var(--snice-spacing-sm,.75rem);font-size:var(--snice-font-size-md, 1rem);color:var(--recipe-text-secondary);line-height:var(--snice-line-height-normal, 1.5)}.recipe__author{font-size:var(--snice-font-size-sm, .875rem);color:var(--recipe-text-tertiary)}.recipe__tags{display:flex;flex-wrap:wrap;gap:var(--snice-spacing-2xs,.25rem);margin-top:var(--snice-spacing-sm,.75rem)}.recipe__tag{display:inline-flex;align-items:center;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);font-size:var(--snice-font-size-xs, .75rem);border-radius:9999px;background:var(--snice-color-surface,rgb(255 255 255));border:1px solid var(--recipe-border);color:var(--recipe-text-secondary)}.recipe__meta{display:flex;flex-wrap:wrap;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--recipe-border);border-bottom:1px solid var(--recipe-border);background:var(--snice-color-surface,rgb(255 255 255))}.recipe__meta-item{display:flex;flex-direction:column;align-items:center;gap:var(--snice-spacing-3xs,.125rem);min-width:4rem}.recipe__meta-label{font-size:var(--snice-font-size-xs, .75rem);color:var(--recipe-text-tertiary);text-transform:uppercase;letter-spacing:var(--snice-tracking-wide, .03em)}.recipe__meta-value{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--recipe-text)}.recipe__difficulty--easy{color:var(--recipe-success)}.recipe__difficulty--medium{color:var(--snice-color-warning,rgb(234 179 8))}.recipe__difficulty--hard{color:var(--recipe-danger)}.recipe__content{display:grid;grid-template-columns:1fr 2fr;gap:var(--snice-spacing-lg,1.5rem);padding:var(--snice-spacing-lg,1.5rem)}@media (max-width:768px){.recipe__content{grid-template-columns:1fr}}.recipe__servings-adjuster{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);margin-bottom:var(--snice-spacing-md,1rem)}.recipe__servings-adjuster span{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--recipe-text)}.recipe__servings-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--recipe-border);border-radius:50%;background:var(--snice-color-surface,rgb(255 255 255));color:var(--recipe-text);font-size:var(--snice-font-size-lg, 1.125rem);cursor:pointer;transition:background var(--snice-transition-fast, 150ms),border-color var(--snice-transition-fast, 150ms);padding:0;line-height:1}.recipe__servings-btn:hover{border-color:var(--recipe-primary);background:var(--snice-color-primary-subtle,rgb(239 246 255))}.recipe__servings-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__servings-count{min-width:2rem;text-align:center;font-weight:var(--snice-font-weight-bold,700);font-size:var(--snice-font-size-lg, 1.125rem)}.recipe__ingredients-section{position:relative}.recipe__section-title{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-md, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);margin:0 0 var(--snice-spacing-sm,.75rem);color:var(--recipe-text)}.recipe__ingredient-group-title{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-sm, 1rem);font-weight:var(--snice-font-weight-medium,500);color:var(--recipe-text-secondary);margin:var(--snice-spacing-sm,.75rem) 0 var(--snice-spacing-2xs,.25rem)}.recipe__ingredients-list{list-style:none;padding:0;margin:0}.recipe__ingredient{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-xs,.5rem) 0;border-bottom:1px solid var(--recipe-border);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms)}.recipe__ingredient:last-child{border-bottom:none}.recipe__ingredient--checked{opacity:.5}.recipe__ingredient--checked .recipe__ingredient-text{text-decoration:line-through}.recipe__ingredient-checkbox{appearance:none;width:1.125rem;height:1.125rem;border:2px solid var(--recipe-border);border-radius:3px;cursor:pointer;flex-shrink:0;position:relative;transition:background var(--snice-transition-fast, 150ms),border-color var(--snice-transition-fast, 150ms)}.recipe__ingredient-checkbox:checked{background:var(--recipe-primary);border-color:var(--recipe-primary)}.recipe__ingredient-checkbox:checked::after{content:'';position:absolute;left:3px;top:0;width:.375rem;height:.625rem;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.recipe__ingredient-checkbox:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__ingredient-amount{font-weight:var(--snice-font-weight-semibold,600);white-space:nowrap;color:var(--recipe-text)}.recipe__ingredient-text{color:var(--recipe-text-secondary)}.recipe__steps-section{position:relative}.recipe__steps-list{list-style:none;padding:0;margin:0;counter-reset:step-counter}.recipe__step{display:flex;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-md,1rem) 0;border-bottom:1px solid var(--recipe-border);counter-increment:step-counter;transition:opacity var(--snice-transition-fast, 150ms)}.recipe__step:last-child{border-bottom:none}.recipe__step--completed{opacity:.5}.recipe__step--active{background:var(--snice-color-primary-subtle,rgb(239 246 255));margin:0 calc(-1 * var(--snice-spacing-sm,.75rem));padding-left:var(--snice-spacing-sm,.75rem);padding-right:var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem)}.recipe__step-number{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--recipe-primary);color:var(--snice-color-text-inverse,rgb(250 250 250));font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-bold,700);cursor:pointer;transition:background var(--snice-transition-fast, 150ms)}.recipe__step--completed .recipe__step-number{background:var(--recipe-success)}.recipe__step-number:hover{opacity:.8}.recipe__step-body{flex:1;min-width:0}.recipe__step-text{font-size:var(--snice-font-size-md, 1rem);line-height:var(--snice-line-height-normal, 1.5);color:var(--recipe-text)}.recipe__step-tip{margin-top:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);background:var(--snice-color-primary-subtle,rgb(239 246 255));border-left:3px solid var(--recipe-primary);border-radius:0 var(--snice-border-radius-md,.25rem) var(--snice-border-radius-md,.25rem) 0;font-size:var(--snice-font-size-sm, .875rem);color:var(--recipe-text-secondary)}.recipe__step-image{margin-top:var(--snice-spacing-xs,.5rem);width:100%;max-width:20rem;border-radius:var(--snice-border-radius-md,.25rem)}.recipe__step-timer-btn{display:inline-flex;align-items:center;gap:var(--snice-spacing-3xs,.125rem);margin-top:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border:1px solid var(--recipe-primary);border-radius:var(--snice-border-radius-md,.25rem);background:0 0;color:var(--recipe-primary);font-size:var(--snice-font-size-sm, .875rem);cursor:pointer;transition:background var(--snice-transition-fast, 150ms)}.recipe__step-timer-btn:hover{background:var(--snice-color-primary-subtle,rgb(239 246 255))}.recipe__step-timer-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__step-timer-btn svg{width:.875rem;height:.875rem}.recipe__active-timer{display:inline-flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);margin-top:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);background:var(--snice-color-primary-subtle,rgb(239 246 255));border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--recipe-primary)}.recipe__active-timer--done{background:var(--snice-color-success-subtle,rgb(220 252 231));color:var(--recipe-success)}.recipe__timer-cancel{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:none;border-radius:50%;background:0 0;color:inherit;cursor:pointer;padding:0;font-size:.75rem}.recipe__timer-cancel:hover{background:rgb(0 0 0 / .1)}.recipe__nutrition{padding:var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--recipe-border)}.recipe__nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:var(--snice-spacing-md,1rem);margin-top:var(--snice-spacing-sm,.75rem)}.recipe__nutrition-item{text-align:center;padding:var(--snice-spacing-sm,.75rem);background:var(--snice-color-surface,rgb(255 255 255));border-radius:var(--snice-border-radius-md,.25rem);border:1px solid var(--recipe-border)}.recipe__nutrition-value{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-bold,700);color:var(--recipe-text)}.recipe__nutrition-label{font-size:var(--snice-font-size-xs, .75rem);color:var(--recipe-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.recipe__step-controls{display:flex;gap:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--recipe-border)}.recipe__step-controls button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border:1px solid var(--recipe-border);border-radius:var(--snice-border-radius-md,.25rem);background:var(--snice-color-surface,rgb(255 255 255));color:var(--recipe-text);font-size:var(--snice-font-size-sm, .875rem);cursor:pointer;transition:background var(--snice-transition-fast, 150ms),border-color var(--snice-transition-fast, 150ms)}.recipe__step-controls button:hover{border-color:var(--recipe-primary);background:var(--snice-color-primary-subtle,rgb(239 246 255))}.recipe__step-controls button:disabled{opacity:.4;cursor:not-allowed}.recipe__step-controls button:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__print-btn{margin-left:auto}:host([variant=card]) .recipe__content{grid-template-columns:1fr;padding:var(--snice-spacing-md,1rem)}:host([variant=card]) .recipe__hero img{max-height:15rem}:host([variant=card]) .recipe__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding:var(--snice-spacing-md,1rem)}@media print{.recipe{box-shadow:none;border:1px solid #ccc}.recipe__active-timer,.recipe__servings-btn,.recipe__step-controls,.recipe__step-timer-btn,.recipe__timer-cancel{display:none!important}.recipe__ingredient--checked,.recipe__step--completed{opacity:1}.recipe__ingredient--checked .recipe__ingredient-text{text-decoration:none}}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";","import { element, property, render, styles, dispatch, watch, dispose, html, css } from 'snice';\nimport cssContent from './snice-recipe.css?inline';\nimport type { RecipeDifficulty, RecipeVariant, RecipeIngredient, RecipeStep, RecipeNutrition, SniceRecipeElement } from './snice-recipe.types';\n\n@element('snice-recipe')\nexport class SniceRecipe extends HTMLElement implements SniceRecipeElement {\n @property()\n title = '';\n\n @property()\n description = '';\n\n @property()\n image = '';\n\n @property()\n author = '';\n\n @property({ type: Number, attribute: 'prep-time' })\n prepTime = 0;\n\n @property({ type: Number, attribute: 'cook-time' })\n cookTime = 0;\n\n @property({ type: Number })\n servings = 4;\n\n @property()\n difficulty: RecipeDifficulty = 'medium';\n\n @property()\n cuisine = '';\n\n @property()\n variant: RecipeVariant = 'full';\n\n @property({ type: Array, attribute: false })\n ingredients: RecipeIngredient[] = [];\n\n @property({ type: Array, attribute: false })\n steps: RecipeStep[] = [];\n\n @property({ type: Object, attribute: false })\n nutrition: RecipeNutrition | null = null;\n\n @property({ type: Array, attribute: false })\n tags: string[] = [];\n\n // Internal state\n @property({ type: Number })\n private currentServings = 0;\n\n @property({ type: Array })\n private checkedIngredients: boolean[] = [];\n\n @property({ type: Array })\n private completedSteps: boolean[] = [];\n\n @property({ type: Number })\n private activeStep = -1;\n\n @property({ type: Number })\n private timerVersion = 0;\n\n private activeTimers: Map<number, { remaining: number; intervalId: number; done: boolean }> = new Map();\n\n private baseServings = 0;\n\n @watch('servings')\n onServingsChange() {\n if (this.baseServings === 0) {\n this.baseServings = this.servings;\n this.currentServings = this.servings;\n }\n }\n\n @watch('ingredients')\n onIngredientsChange() {\n this.checkedIngredients = new Array(this.ingredients.length).fill(false);\n }\n\n @watch('steps')\n onStepsChange() {\n this.completedSteps = new Array(this.steps.length).fill(false);\n this.activeStep = -1;\n }\n\n setServings(count: number): void {\n if (count < 1) return;\n const previous = this.currentServings;\n this.currentServings = count;\n this.emitServingChange(previous);\n }\n\n print(): void {\n window.print();\n }\n\n reset(): void {\n this.checkedIngredients = new Array(this.ingredients.length).fill(false);\n this.completedSteps = new Array(this.steps.length).fill(false);\n this.activeStep = -1;\n this.currentServings = this.baseServings || this.servings;\n // Clear all active timers\n for (const [, timer] of this.activeTimers.entries()) {\n clearInterval(timer.intervalId);\n }\n this.activeTimers.clear();\n this.timerVersion++;\n }\n\n private scaleAmount(amount: number): number {\n const base = this.baseServings || this.servings;\n if (base === 0) return amount;\n const scaled = (amount * this.currentServings) / base;\n return Math.round(scaled * 100) / 100;\n }\n\n private formatAmount(amount: number): string {\n const scaled = this.scaleAmount(amount);\n if (scaled === Math.floor(scaled)) return scaled.toString();\n // Common fractions\n const frac = scaled - Math.floor(scaled);\n const whole = Math.floor(scaled);\n const fractionMap: [number, string][] = [\n [0.25, '\\u00BC'], [0.33, '\\u2153'], [0.5, '\\u00BD'],\n [0.67, '\\u2154'], [0.75, '\\u00BE'],\n ];\n for (const [val, sym] of fractionMap) {\n if (Math.abs(frac - val) < 0.05) {\n return whole > 0 ? `${whole}${sym}` : sym;\n }\n }\n return scaled.toFixed(1);\n }\n\n private toggleIngredient(index: number): void {\n const updated = [...this.checkedIngredients];\n updated[index] = !updated[index];\n this.checkedIngredients = updated;\n this.emitIngredientCheck(index, updated[index]);\n }\n\n private toggleStepComplete(index: number): void {\n const updated = [...this.completedSteps];\n updated[index] = !updated[index];\n this.completedSteps = updated;\n this.emitStepComplete(index, updated[index]);\n }\n\n private decrementServings(): void {\n if (this.currentServings > 1) {\n this.setServings(this.currentServings - 1);\n }\n }\n\n private incrementServings(): void {\n this.setServings(this.currentServings + 1);\n }\n\n private goToPrevStep(): void {\n if (this.activeStep > 0) {\n this.activeStep = this.activeStep - 1;\n }\n }\n\n private goToNextStep(): void {\n if (this.activeStep < this.steps.length - 1) {\n this.activeStep = this.activeStep + 1;\n } else {\n this.activeStep = -1;\n }\n }\n\n private startStepByStep(): void {\n this.activeStep = 0;\n }\n\n private startTimer(stepIndex: number, minutes: number): void {\n if (this.activeTimers.has(stepIndex)) return;\n\n const remaining = minutes * 60;\n const intervalId = window.setInterval(() => {\n const timer = this.activeTimers.get(stepIndex);\n if (!timer) return;\n\n if (timer.remaining <= 1) {\n clearInterval(timer.intervalId);\n this.activeTimers.set(stepIndex, { ...timer, remaining: 0, done: true });\n this.timerVersion++;\n return;\n }\n\n this.activeTimers.set(stepIndex, { ...timer, remaining: timer.remaining - 1 });\n this.timerVersion++;\n }, 1000);\n\n this.activeTimers.set(stepIndex, { remaining, intervalId, done: false });\n this.timerVersion++;\n }\n\n @dispose()\n cleanup() {\n for (const [, timer] of this.activeTimers.entries()) {\n clearInterval(timer.intervalId);\n }\n this.activeTimers.clear();\n }\n\n private cancelTimer(stepIndex: number): void {\n const timer = this.activeTimers.get(stepIndex);\n if (timer) {\n clearInterval(timer.intervalId);\n this.activeTimers.delete(stepIndex);\n this.timerVersion++;\n }\n }\n\n private formatTimer(seconds: number): string {\n const m = Math.floor(seconds / 60);\n const s = seconds % 60;\n return `${m}:${s.toString().padStart(2, '0')}`;\n }\n\n private formatMinutes(minutes: number): string {\n if (minutes < 60) return `${minutes} min`;\n const hrs = Math.floor(minutes / 60);\n const mins = minutes % 60;\n return mins > 0 ? `${hrs}h ${mins}m` : `${hrs}h`;\n }\n\n @dispatch('recipe-serving-change', { bubbles: true, composed: true })\n private emitServingChange(previousServings: number) {\n return { servings: this.currentServings, previousServings };\n }\n\n @dispatch('recipe-step-complete', { bubbles: true, composed: true })\n private emitStepComplete(stepIndex: number, completed: boolean) {\n return { stepIndex, completed };\n }\n\n @dispatch('recipe-ingredient-check', { bubbles: true, composed: true })\n private emitIngredientCheck(ingredientIndex: number, checked: boolean) {\n return { ingredientIndex, checked, ingredient: this.ingredients[ingredientIndex] };\n }\n\n @styles()\n styles() {\n return css/*css*/`${cssContent}`;\n }\n\n @render()\n template() {\n // Initialize base servings on first render\n if (this.baseServings === 0 && this.servings > 0) {\n this.baseServings = this.servings;\n this.currentServings = this.servings;\n }\n\n const totalTime = this.prepTime + this.cookTime;\n\n // Group ingredients\n const groups = new Map<string, { ingredient: RecipeIngredient; index: number }[]>();\n this.ingredients.forEach((ing, i) => {\n const group = ing.group || '';\n if (!groups.has(group)) groups.set(group, []);\n groups.get(group)!.push({ ingredient: ing, index: i });\n });\n\n const hasStepByStep = this.activeStep >= 0;\n const hasTags = this.tags.length > 0 || this.cuisine.length > 0;\n const hasCuisine = this.cuisine.length > 0;\n const hasIngredients = this.ingredients.length > 0;\n const hasSteps = this.steps.length > 0;\n const hasContent = hasIngredients || hasSteps;\n const hasMeta = this.prepTime > 0 || this.cookTime > 0 || this.servings > 0 || this.difficulty.length > 0;\n\n // Pre-compute nutrition values to avoid null access in template\n const hasNutrition = this.nutrition !== null;\n const nutritionCalories = hasNutrition ? this.nutrition!.calories : 0;\n const nutritionProtein = hasNutrition ? this.nutrition!.protein : 0;\n const nutritionCarbs = hasNutrition ? this.nutrition!.carbs : 0;\n const nutritionFat = hasNutrition ? this.nutrition!.fat : 0;\n const nutritionFiber = hasNutrition ? this.nutrition!.fiber : 0;\n const nutritionSodium = hasNutrition ? this.nutrition!.sodium : 0;\n const hasFiber = hasNutrition && this.nutrition!.fiber !== undefined;\n const hasSodium = hasNutrition && this.nutrition!.sodium !== undefined;\n\n // Pre-build ingredient items to avoid nested template issues\n const ingredientItems: any[] = [];\n for (const [groupName, items] of groups.entries()) {\n if (groupName) {\n ingredientItems.push(html`<li class=\"recipe__ingredient-group-title\">${groupName}</li>`);\n }\n for (const { ingredient, index } of items) {\n const isChecked = this.checkedIngredients[index] || false;\n const checkedClass = isChecked ? 'recipe__ingredient--checked' : '';\n ingredientItems.push(html`\n <li class=\"recipe__ingredient ${checkedClass}\" @click=${() => this.toggleIngredient(index)}>\n <input type=\"checkbox\" class=\"recipe__ingredient-checkbox\" ?checked=${isChecked} @click=${(e: Event) => e.stopPropagation()} @change=${() => this.toggleIngredient(index)} />\n <span class=\"recipe__ingredient-amount\">${this.formatAmount(ingredient.amount)} ${ingredient.unit}</span>\n <span class=\"recipe__ingredient-text\">${ingredient.name}</span>\n </li>\n `);\n }\n }\n\n return html/*html*/`\n <div class=\"recipe\" part=\"container\">\n <if ${this.image}>\n <div class=\"recipe__hero\" part=\"hero\">\n <img src=\"${this.image}\" alt=\"${this.title}\" loading=\"lazy\" />\n </div>\n </if>\n\n <div class=\"recipe__header\" part=\"header\">\n <h2 class=\"recipe__title\">${this.title}</h2>\n <if ${this.description}>\n <p class=\"recipe__description\">${this.description}</p>\n </if>\n <if ${this.author}>\n <span class=\"recipe__author\">By ${this.author}</span>\n </if>\n <if ${hasTags}>\n <div class=\"recipe__tags\">\n <if ${hasCuisine}>\n <span class=\"recipe__tag\">${this.cuisine}</span>\n </if>\n ${this.tags.map(tag => html`<span class=\"recipe__tag\">${tag}</span>`)}\n </div>\n </if>\n </div>\n\n <if ${hasMeta}>\n <div class=\"recipe__meta\" part=\"meta\">\n <if ${this.prepTime > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Prep</span>\n <span class=\"recipe__meta-value\">${this.formatMinutes(this.prepTime)}</span>\n </div>\n </if>\n <if ${this.cookTime > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Cook</span>\n <span class=\"recipe__meta-value\">${this.formatMinutes(this.cookTime)}</span>\n </div>\n </if>\n <if ${totalTime > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Total</span>\n <span class=\"recipe__meta-value\">${this.formatMinutes(totalTime)}</span>\n </div>\n </if>\n <if ${this.currentServings > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Servings</span>\n <span class=\"recipe__meta-value\">${this.currentServings}</span>\n </div>\n </if>\n <if ${this.difficulty}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Difficulty</span>\n <span class=\"recipe__meta-value recipe__difficulty--${this.difficulty}\">${this.difficulty}</span>\n </div>\n </if>\n </div>\n </if>\n\n <if ${hasContent}>\n <div class=\"recipe__content\" part=\"content\">\n <if ${hasIngredients}>\n <div class=\"recipe__ingredients-section\" part=\"ingredients\">\n <h3 class=\"recipe__section-title\">Ingredients</h3>\n <div class=\"recipe__servings-adjuster\">\n <button class=\"recipe__servings-btn\" @click=${() => this.decrementServings()} aria-label=\"Decrease servings\">-</button>\n <span class=\"recipe__servings-count\">${this.currentServings}</span>\n <button class=\"recipe__servings-btn\" @click=${() => this.incrementServings()} aria-label=\"Increase servings\">+</button>\n <span>servings</span>\n </div>\n <ul class=\"recipe__ingredients-list\">\n ${ingredientItems}\n </ul>\n </div>\n </if>\n\n <if ${hasSteps}>\n <div class=\"recipe__steps-section\" part=\"steps\">\n <h3 class=\"recipe__section-title\">Instructions</h3>\n <ol class=\"recipe__steps-list\">\n ${this.steps.map((step, i) => {\n const isCompleted = this.completedSteps[i] || false;\n const isActive = this.activeStep === i;\n const timer = this.activeTimers.get(i);\n const hasTimer = timer !== undefined;\n const timerDone = hasTimer && timer.done;\n const timerClass = timerDone ? 'recipe__active-timer--done' : '';\n const timerText = hasTimer ? (timer.done ? 'Done!' : this.formatTimer(timer.remaining)) : '';\n const showTimerBtn = step.time && !hasTimer;\n return html`\n <li class=\"recipe__step ${isCompleted ? 'recipe__step--completed' : ''} ${isActive ? 'recipe__step--active' : ''}\">\n <span class=\"recipe__step-number\" @click=${() => this.toggleStepComplete(i)} title=\"${isCompleted ? 'Mark incomplete' : 'Mark complete'}\">\n ${isCompleted ? '\\u2713' : i + 1}\n </span>\n <div class=\"recipe__step-body\">\n <div class=\"recipe__step-text\">${step.text}</div>\n <if ${step.tip}>\n <div class=\"recipe__step-tip\">${step.tip}</div>\n </if>\n <if ${step.image}>\n <img class=\"recipe__step-image\" src=\"${step.image}\" alt=\"Step ${i + 1}\" loading=\"lazy\" />\n </if>\n <if ${showTimerBtn}>\n <button class=\"recipe__step-timer-btn\" @click=${() => this.startTimer(i, step.time!)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/><polyline points=\"12 6 12 12 16 14\"/>\n </svg>\n ${this.formatMinutes(step.time!)}\n </button>\n </if>\n <if ${hasTimer}>\n <span class=\"recipe__active-timer ${timerClass}\">\n ${timerText}\n <button class=\"recipe__timer-cancel\" @click=${() => this.cancelTimer(i)} title=\"Cancel timer\">\\u2715</button>\n </span>\n </if>\n </div>\n </li>\n `;\n })}\n </ol>\n </div>\n </if>\n </div>\n </if>\n\n <if ${hasNutrition}>\n <div class=\"recipe__nutrition\" part=\"nutrition\">\n <h3 class=\"recipe__section-title\">Nutrition Facts</h3>\n <span class=\"recipe__author\">Per serving</span>\n <div class=\"recipe__nutrition-grid\">\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionCalories}</div>\n <div class=\"recipe__nutrition-label\">Calories</div>\n </div>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionProtein}g</div>\n <div class=\"recipe__nutrition-label\">Protein</div>\n </div>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionCarbs}g</div>\n <div class=\"recipe__nutrition-label\">Carbs</div>\n </div>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionFat}g</div>\n <div class=\"recipe__nutrition-label\">Fat</div>\n </div>\n <if ${hasFiber}>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionFiber}g</div>\n <div class=\"recipe__nutrition-label\">Fiber</div>\n </div>\n </if>\n <if ${hasSodium}>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionSodium}mg</div>\n <div class=\"recipe__nutrition-label\">Sodium</div>\n </div>\n </if>\n </div>\n </div>\n </if>\n\n <if ${hasSteps}>\n <div class=\"recipe__step-controls\" part=\"controls\">\n <if ${!hasStepByStep}>\n <button @click=${() => this.startStepByStep()}>Step-by-Step</button>\n </if>\n <if ${hasStepByStep}>\n <button @click=${() => this.goToPrevStep()} ?disabled=${this.activeStep <= 0}>Previous</button>\n <button @click=${() => this.goToNextStep()}>\n ${this.activeStep >= this.steps.length - 1 ? 'Finish' : 'Next'}\n </button>\n </if>\n <button class=\"recipe__print-btn\" @click=${() => this.print()}>Print</button>\n <button @click=${() => this.reset()}>Reset</button>\n </div>\n </if>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'snice-recipe': SniceRecipe;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snice-recipe.js","sources":["../../../components/recipe/snice-recipe.css?inline","../../../../components/recipe/snice-recipe.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);color:var(--snice-color-text,rgb(23 23 23));width:100%;--recipe-bg:var(--snice-color-surface-container-high, rgb(252 251 249));--recipe-border:var(--snice-color-border, rgb(226 226 226));--recipe-text:var(--snice-color-text, rgb(23 23 23));--recipe-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--recipe-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--recipe-primary:var(--snice-color-primary, rgb(37 99 235));--recipe-success:var(--snice-color-success, rgb(22 163 74));--recipe-danger:var(--snice-color-danger, rgb(220 38 38));--recipe-radius:var(--snice-border-radius-lg, 0.5rem);--recipe-shadow:var(--snice-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1))}.recipe{background:var(--recipe-bg);border-radius:var(--recipe-radius);box-shadow:var(--recipe-shadow);overflow:hidden}.recipe__hero{position:relative;width:100%;overflow:hidden}.recipe__hero img{width:100%;height:auto;display:block;object-fit:cover;max-height:25rem}.recipe__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding:var(--snice-spacing-lg,1.5rem)}.recipe__title{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0 0 var(--snice-spacing-xs,.5rem);font-size:var(--snice-heading-xl, 1.5rem);font-weight:var(--snice-font-weight-bold,700);line-height:var(--snice-line-height-normal, 1.5);color:var(--recipe-text)}.recipe__description{margin:0 0 var(--snice-spacing-sm,.75rem);font-size:var(--snice-font-size-md, 1rem);color:var(--recipe-text-secondary);line-height:var(--snice-line-height-normal, 1.5)}.recipe__author{font-size:var(--snice-font-size-sm, .875rem);color:var(--recipe-text-tertiary)}.recipe__tags{display:flex;flex-wrap:wrap;gap:var(--snice-spacing-2xs,.25rem);margin-top:var(--snice-spacing-sm,.75rem)}.recipe__tag{display:inline-flex;align-items:center;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);font-size:var(--snice-font-size-xs, .75rem);border-radius:9999px;background:var(--snice-color-surface,rgb(255 255 255));border:1px solid var(--recipe-border);color:var(--recipe-text-secondary)}.recipe__meta{display:flex;flex-wrap:wrap;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--recipe-border);border-bottom:1px solid var(--recipe-border);background:var(--snice-color-surface,rgb(255 255 255))}.recipe__meta-item{display:flex;flex-direction:column;align-items:center;gap:var(--snice-spacing-3xs,.125rem);min-width:4rem}.recipe__meta-label{font-size:var(--snice-font-size-xs, .75rem);color:var(--recipe-text-tertiary);text-transform:uppercase;letter-spacing:var(--snice-tracking-wide, .03em)}.recipe__meta-value{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--recipe-text)}.recipe__difficulty--easy{color:var(--recipe-success)}.recipe__difficulty--medium{color:var(--snice-color-warning,rgb(234 179 8))}.recipe__difficulty--hard{color:var(--recipe-danger)}.recipe__content{display:grid;grid-template-columns:1fr 2fr;gap:var(--snice-spacing-lg,1.5rem);padding:var(--snice-spacing-lg,1.5rem)}@media (max-width:768px){.recipe__content{grid-template-columns:1fr}}.recipe__servings-adjuster{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);margin-bottom:var(--snice-spacing-md,1rem)}.recipe__servings-adjuster span{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--recipe-text)}.recipe__servings-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--recipe-border);border-radius:50%;background:var(--snice-color-surface,rgb(255 255 255));color:var(--recipe-text);font-size:var(--snice-font-size-lg, 1.125rem);cursor:pointer;transition:background var(--snice-transition-fast, 150ms),border-color var(--snice-transition-fast, 150ms);padding:0;line-height:1}.recipe__servings-btn:hover{border-color:var(--recipe-primary);background:var(--snice-color-primary-subtle,rgb(239 246 255))}.recipe__servings-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__servings-count{min-width:2rem;text-align:center;font-weight:var(--snice-font-weight-bold,700);font-size:var(--snice-font-size-lg, 1.125rem)}.recipe__ingredients-section{position:relative}.recipe__section-title{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-md, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);margin:0 0 var(--snice-spacing-sm,.75rem);color:var(--recipe-text)}.recipe__ingredient-group-title{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-sm, 1rem);font-weight:var(--snice-font-weight-medium,500);color:var(--recipe-text-secondary);margin:var(--snice-spacing-sm,.75rem) 0 var(--snice-spacing-2xs,.25rem)}.recipe__ingredients-list{list-style:none;padding:0;margin:0}.recipe__ingredient{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-xs,.5rem) 0;border-bottom:1px solid var(--recipe-border);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms)}.recipe__ingredient:last-child{border-bottom:none}.recipe__ingredient--checked{opacity:.5}.recipe__ingredient--checked .recipe__ingredient-text{text-decoration:line-through}.recipe__ingredient-checkbox{appearance:none;width:1.125rem;height:1.125rem;border:2px solid var(--recipe-border);border-radius:3px;cursor:pointer;flex-shrink:0;position:relative;transition:background var(--snice-transition-fast, 150ms),border-color var(--snice-transition-fast, 150ms)}.recipe__ingredient-checkbox:checked{background:var(--recipe-primary);border-color:var(--recipe-primary)}.recipe__ingredient-checkbox:checked::after{content:'';position:absolute;left:3px;top:0;width:.375rem;height:.625rem;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.recipe__ingredient-checkbox:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__ingredient-amount{font-weight:var(--snice-font-weight-semibold,600);white-space:nowrap;color:var(--recipe-text)}.recipe__ingredient-text{color:var(--recipe-text-secondary)}.recipe__steps-section{position:relative}.recipe__steps-list{list-style:none;padding:0;margin:0;counter-reset:step-counter}.recipe__step{display:flex;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-md,1rem) 0;border-bottom:1px solid var(--recipe-border);counter-increment:step-counter;transition:opacity var(--snice-transition-fast, 150ms)}.recipe__step:last-child{border-bottom:none}.recipe__step--completed{opacity:.5}.recipe__step--active{background:var(--snice-color-primary-subtle,rgb(239 246 255));margin:0 calc(-1 * var(--snice-spacing-sm,.75rem));padding-left:var(--snice-spacing-sm,.75rem);padding-right:var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem)}.recipe__step-number{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--recipe-primary);color:var(--snice-color-text-inverse,rgb(250 250 250));font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-bold,700);cursor:pointer;transition:background var(--snice-transition-fast, 150ms)}.recipe__step--completed .recipe__step-number{background:var(--recipe-success)}.recipe__step-number:hover{opacity:.8}.recipe__step-body{flex:1;min-width:0}.recipe__step-text{font-size:var(--snice-font-size-md, 1rem);line-height:var(--snice-line-height-normal, 1.5);color:var(--recipe-text)}.recipe__step-tip{margin-top:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);background:var(--snice-color-primary-subtle,rgb(239 246 255));border-left:3px solid var(--recipe-primary);border-radius:0 var(--snice-border-radius-md,.25rem) var(--snice-border-radius-md,.25rem) 0;font-size:var(--snice-font-size-sm, .875rem);color:var(--recipe-text-secondary)}.recipe__step-image{margin-top:var(--snice-spacing-xs,.5rem);width:100%;max-width:20rem;border-radius:var(--snice-border-radius-md,.25rem)}.recipe__step-timer-btn{display:inline-flex;align-items:center;gap:var(--snice-spacing-3xs,.125rem);margin-top:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border:1px solid var(--recipe-primary);border-radius:var(--snice-border-radius-md,.25rem);background:0 0;color:var(--recipe-primary);font-size:var(--snice-font-size-sm, .875rem);cursor:pointer;transition:background var(--snice-transition-fast, 150ms)}.recipe__step-timer-btn:hover{background:var(--snice-color-primary-subtle,rgb(239 246 255))}.recipe__step-timer-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__step-timer-btn svg{width:.875rem;height:.875rem}.recipe__active-timer{display:inline-flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);margin-top:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);background:var(--snice-color-primary-subtle,rgb(239 246 255));border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--recipe-primary)}.recipe__active-timer--done{background:var(--snice-color-success-subtle,rgb(220 252 231));color:var(--recipe-success)}.recipe__timer-cancel{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:none;border-radius:50%;background:0 0;color:inherit;cursor:pointer;padding:0;font-size:.75rem}.recipe__timer-cancel:hover{background:rgb(0 0 0 / .1)}.recipe__nutrition{padding:var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--recipe-border)}.recipe__nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:var(--snice-spacing-md,1rem);margin-top:var(--snice-spacing-sm,.75rem)}.recipe__nutrition-item{text-align:center;padding:var(--snice-spacing-sm,.75rem);background:var(--snice-color-surface,rgb(255 255 255));border-radius:var(--snice-border-radius-md,.25rem);border:1px solid var(--recipe-border)}.recipe__nutrition-value{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-bold,700);color:var(--recipe-text)}.recipe__nutrition-label{font-size:var(--snice-font-size-xs, .75rem);color:var(--recipe-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.recipe__step-controls{display:flex;gap:var(--snice-spacing-xs,.5rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--recipe-border)}.recipe__step-controls button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border:1px solid var(--recipe-border);border-radius:var(--snice-border-radius-md,.25rem);background:var(--snice-color-surface,rgb(255 255 255));color:var(--recipe-text);font-size:var(--snice-font-size-sm, .875rem);cursor:pointer;transition:background var(--snice-transition-fast, 150ms),border-color var(--snice-transition-fast, 150ms)}.recipe__step-controls button:hover{border-color:var(--recipe-primary);background:var(--snice-color-primary-subtle,rgb(239 246 255))}.recipe__step-controls button:disabled{opacity:.4;cursor:not-allowed}.recipe__step-controls button:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.recipe__print-btn{margin-left:auto}:host([variant=card]) .recipe__content{grid-template-columns:1fr;padding:var(--snice-spacing-md,1rem)}:host([variant=card]) .recipe__hero img{max-height:15rem}:host([variant=card]) .recipe__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding:var(--snice-spacing-md,1rem)}@media print{.recipe{box-shadow:none;border:1px solid #ccc}.recipe__active-timer,.recipe__servings-btn,.recipe__step-controls,.recipe__step-timer-btn,.recipe__timer-cancel{display:none!important}.recipe__ingredient--checked,.recipe__step--completed{opacity:1}.recipe__ingredient--checked .recipe__ingredient-text{text-decoration:none}}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";","import { element, property, render, styles, dispatch, watch, dispose, html, css } from 'snice';\nimport cssContent from './snice-recipe.css?inline';\nimport type { RecipeDifficulty, RecipeVariant, RecipeIngredient, RecipeStep, RecipeNutrition, SniceRecipeElement } from './snice-recipe.types';\n\n@element('snice-recipe')\nexport class SniceRecipe extends HTMLElement implements SniceRecipeElement {\n @property()\n title = '';\n\n @property()\n description = '';\n\n @property()\n image = '';\n\n @property()\n author = '';\n\n @property({ type: Number, attribute: 'prep-time' })\n prepTime = 0;\n\n @property({ type: Number, attribute: 'cook-time' })\n cookTime = 0;\n\n @property({ type: Number })\n servings = 4;\n\n @property()\n difficulty: RecipeDifficulty = 'medium';\n\n @property()\n cuisine = '';\n\n @property()\n variant: RecipeVariant = 'full';\n\n @property({ type: Array, attribute: false })\n ingredients: RecipeIngredient[] = [];\n\n @property({ type: Array, attribute: false })\n steps: RecipeStep[] = [];\n\n @property({ type: Object, attribute: false })\n nutrition: RecipeNutrition | null = null;\n\n @property({ type: Array, attribute: false })\n tags: string[] = [];\n\n // Internal state\n @property({ type: Number })\n private currentServings = 0;\n\n @property({ type: Array })\n private checkedIngredients: boolean[] = [];\n\n @property({ type: Array })\n private completedSteps: boolean[] = [];\n\n @property({ type: Number })\n private activeStep = -1;\n\n @property({ type: Number })\n private timerVersion = 0;\n\n private activeTimers: Map<number, { remaining: number; intervalId: number; done: boolean }> = new Map();\n\n private baseServings = 0;\n\n @watch('servings')\n onServingsChange() {\n if (this.baseServings === 0) {\n this.baseServings = this.servings;\n this.currentServings = this.servings;\n }\n }\n\n @watch('ingredients')\n onIngredientsChange() {\n this.checkedIngredients = new Array(this.ingredients.length).fill(false);\n }\n\n @watch('steps')\n onStepsChange() {\n this.completedSteps = new Array(this.steps.length).fill(false);\n this.activeStep = -1;\n }\n\n setServings(count: number): void {\n if (count < 1) return;\n const previous = this.currentServings;\n this.currentServings = count;\n this.emitServingChange(previous);\n }\n\n print(): void {\n window.print();\n }\n\n reset(): void {\n this.checkedIngredients = new Array(this.ingredients.length).fill(false);\n this.completedSteps = new Array(this.steps.length).fill(false);\n this.activeStep = -1;\n this.currentServings = this.baseServings || this.servings;\n // Clear all active timers\n for (const [, timer] of this.activeTimers.entries()) {\n clearInterval(timer.intervalId);\n }\n this.activeTimers.clear();\n this.timerVersion++;\n }\n\n private scaleAmount(amount: number): number {\n const base = this.baseServings || this.servings;\n if (base === 0) return amount;\n const scaled = (amount * this.currentServings) / base;\n return Math.round(scaled * 100) / 100;\n }\n\n private formatAmount(amount: number): string {\n const scaled = this.scaleAmount(amount);\n if (scaled === Math.floor(scaled)) return scaled.toString();\n // Common fractions\n const frac = scaled - Math.floor(scaled);\n const whole = Math.floor(scaled);\n const fractionMap: [number, string][] = [\n [0.25, '\\u00BC'], [0.33, '\\u2153'], [0.5, '\\u00BD'],\n [0.67, '\\u2154'], [0.75, '\\u00BE'],\n ];\n for (const [val, sym] of fractionMap) {\n if (Math.abs(frac - val) < 0.05) {\n return whole > 0 ? `${whole}${sym}` : sym;\n }\n }\n return scaled.toFixed(1);\n }\n\n private toggleIngredient(index: number): void {\n const updated = [...this.checkedIngredients];\n updated[index] = !updated[index];\n this.checkedIngredients = updated;\n this.emitIngredientCheck(index, updated[index]);\n }\n\n private toggleStepComplete(index: number): void {\n const updated = [...this.completedSteps];\n updated[index] = !updated[index];\n this.completedSteps = updated;\n this.emitStepComplete(index, updated[index]);\n }\n\n private decrementServings(): void {\n if (this.currentServings > 1) {\n this.setServings(this.currentServings - 1);\n }\n }\n\n private incrementServings(): void {\n this.setServings(this.currentServings + 1);\n }\n\n private goToPrevStep(): void {\n if (this.activeStep > 0) {\n this.activeStep = this.activeStep - 1;\n }\n }\n\n private goToNextStep(): void {\n if (this.activeStep < this.steps.length - 1) {\n this.activeStep = this.activeStep + 1;\n } else {\n this.activeStep = -1;\n }\n }\n\n private startStepByStep(): void {\n this.activeStep = 0;\n }\n\n private startTimer(stepIndex: number, minutes: number): void {\n if (this.activeTimers.has(stepIndex)) return;\n\n const remaining = minutes * 60;\n const intervalId = window.setInterval(() => {\n const timer = this.activeTimers.get(stepIndex);\n if (!timer) return;\n\n if (timer.remaining <= 1) {\n clearInterval(timer.intervalId);\n this.activeTimers.set(stepIndex, { ...timer, remaining: 0, done: true });\n this.timerVersion++;\n return;\n }\n\n this.activeTimers.set(stepIndex, { ...timer, remaining: timer.remaining - 1 });\n this.timerVersion++;\n }, 1000);\n\n this.activeTimers.set(stepIndex, { remaining, intervalId, done: false });\n this.timerVersion++;\n }\n\n @dispose()\n cleanup() {\n for (const [, timer] of this.activeTimers.entries()) {\n clearInterval(timer.intervalId);\n }\n this.activeTimers.clear();\n }\n\n private cancelTimer(stepIndex: number): void {\n const timer = this.activeTimers.get(stepIndex);\n if (timer) {\n clearInterval(timer.intervalId);\n this.activeTimers.delete(stepIndex);\n this.timerVersion++;\n }\n }\n\n private formatTimer(seconds: number): string {\n const m = Math.floor(seconds / 60);\n const s = seconds % 60;\n return `${m}:${s.toString().padStart(2, '0')}`;\n }\n\n private formatMinutes(minutes: number): string {\n if (minutes < 60) return `${minutes} min`;\n const hrs = Math.floor(minutes / 60);\n const mins = minutes % 60;\n return mins > 0 ? `${hrs}h ${mins}m` : `${hrs}h`;\n }\n\n @dispatch('recipe-serving-change', { bubbles: true, composed: true })\n private emitServingChange(previousServings: number) {\n return { servings: this.currentServings, previousServings };\n }\n\n @dispatch('recipe-step-complete', { bubbles: true, composed: true })\n private emitStepComplete(stepIndex: number, completed: boolean) {\n return { stepIndex, completed };\n }\n\n @dispatch('recipe-ingredient-check', { bubbles: true, composed: true })\n private emitIngredientCheck(ingredientIndex: number, checked: boolean) {\n return { ingredientIndex, checked, ingredient: this.ingredients[ingredientIndex] };\n }\n\n @styles()\n styles() {\n return css/*css*/`${cssContent}`;\n }\n\n @render()\n template() {\n // Initialize base servings on first render\n if (this.baseServings === 0 && this.servings > 0) {\n this.baseServings = this.servings;\n this.currentServings = this.servings;\n }\n\n const totalTime = this.prepTime + this.cookTime;\n\n // Group ingredients\n const groups = new Map<string, { ingredient: RecipeIngredient; index: number }[]>();\n this.ingredients.forEach((ing, i) => {\n const group = ing.group || '';\n if (!groups.has(group)) groups.set(group, []);\n groups.get(group)!.push({ ingredient: ing, index: i });\n });\n\n const hasStepByStep = this.activeStep >= 0;\n const hasTags = this.tags.length > 0 || this.cuisine.length > 0;\n const hasCuisine = this.cuisine.length > 0;\n const hasIngredients = this.ingredients.length > 0;\n const hasSteps = this.steps.length > 0;\n const hasContent = hasIngredients || hasSteps;\n const hasMeta = this.prepTime > 0 || this.cookTime > 0 || this.servings > 0 || this.difficulty.length > 0;\n\n // Pre-compute nutrition values to avoid null access in template\n const hasNutrition = this.nutrition !== null;\n const nutritionCalories = hasNutrition ? this.nutrition!.calories : 0;\n const nutritionProtein = hasNutrition ? this.nutrition!.protein : 0;\n const nutritionCarbs = hasNutrition ? this.nutrition!.carbs : 0;\n const nutritionFat = hasNutrition ? this.nutrition!.fat : 0;\n const nutritionFiber = hasNutrition ? this.nutrition!.fiber : 0;\n const nutritionSodium = hasNutrition ? this.nutrition!.sodium : 0;\n const hasFiber = hasNutrition && this.nutrition!.fiber !== undefined;\n const hasSodium = hasNutrition && this.nutrition!.sodium !== undefined;\n\n // Pre-build ingredient items to avoid nested template issues\n const ingredientItems: any[] = [];\n for (const [groupName, items] of groups.entries()) {\n if (groupName) {\n ingredientItems.push(html`<li class=\"recipe__ingredient-group-title\">${groupName}</li>`);\n }\n for (const { ingredient, index } of items) {\n const isChecked = this.checkedIngredients[index] || false;\n const checkedClass = isChecked ? 'recipe__ingredient--checked' : '';\n ingredientItems.push(html`\n <li class=\"recipe__ingredient ${checkedClass}\" @click=${() => this.toggleIngredient(index)}>\n <input type=\"checkbox\" class=\"recipe__ingredient-checkbox\" aria-label=\"${ingredient.name}\" ?checked=${isChecked} @click=${(e: Event) => e.stopPropagation()} @change=${() => this.toggleIngredient(index)} />\n <span class=\"recipe__ingredient-amount\">${this.formatAmount(ingredient.amount)} ${ingredient.unit}</span>\n <span class=\"recipe__ingredient-text\">${ingredient.name}</span>\n </li>\n `);\n }\n }\n\n return html/*html*/`\n <div class=\"recipe\" part=\"container\">\n <if ${this.image}>\n <div class=\"recipe__hero\" part=\"hero\">\n <img src=\"${this.image}\" alt=\"${this.title}\" loading=\"lazy\" />\n </div>\n </if>\n\n <div class=\"recipe__header\" part=\"header\">\n <h2 class=\"recipe__title\">${this.title}</h2>\n <if ${this.description}>\n <p class=\"recipe__description\">${this.description}</p>\n </if>\n <if ${this.author}>\n <span class=\"recipe__author\">By ${this.author}</span>\n </if>\n <if ${hasTags}>\n <div class=\"recipe__tags\">\n <if ${hasCuisine}>\n <span class=\"recipe__tag\">${this.cuisine}</span>\n </if>\n ${this.tags.map(tag => html`<span class=\"recipe__tag\">${tag}</span>`)}\n </div>\n </if>\n </div>\n\n <if ${hasMeta}>\n <div class=\"recipe__meta\" part=\"meta\">\n <if ${this.prepTime > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Prep</span>\n <span class=\"recipe__meta-value\">${this.formatMinutes(this.prepTime)}</span>\n </div>\n </if>\n <if ${this.cookTime > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Cook</span>\n <span class=\"recipe__meta-value\">${this.formatMinutes(this.cookTime)}</span>\n </div>\n </if>\n <if ${totalTime > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Total</span>\n <span class=\"recipe__meta-value\">${this.formatMinutes(totalTime)}</span>\n </div>\n </if>\n <if ${this.currentServings > 0}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Servings</span>\n <span class=\"recipe__meta-value\">${this.currentServings}</span>\n </div>\n </if>\n <if ${this.difficulty}>\n <div class=\"recipe__meta-item\">\n <span class=\"recipe__meta-label\">Difficulty</span>\n <span class=\"recipe__meta-value recipe__difficulty--${this.difficulty}\">${this.difficulty}</span>\n </div>\n </if>\n </div>\n </if>\n\n <if ${hasContent}>\n <div class=\"recipe__content\" part=\"content\">\n <if ${hasIngredients}>\n <div class=\"recipe__ingredients-section\" part=\"ingredients\">\n <h3 class=\"recipe__section-title\">Ingredients</h3>\n <div class=\"recipe__servings-adjuster\">\n <button class=\"recipe__servings-btn\" @click=${() => this.decrementServings()} aria-label=\"Decrease servings\">-</button>\n <span class=\"recipe__servings-count\">${this.currentServings}</span>\n <button class=\"recipe__servings-btn\" @click=${() => this.incrementServings()} aria-label=\"Increase servings\">+</button>\n <span>servings</span>\n </div>\n <ul class=\"recipe__ingredients-list\">\n ${ingredientItems}\n </ul>\n </div>\n </if>\n\n <if ${hasSteps}>\n <div class=\"recipe__steps-section\" part=\"steps\">\n <h3 class=\"recipe__section-title\">Instructions</h3>\n <ol class=\"recipe__steps-list\">\n ${this.steps.map((step, i) => {\n const isCompleted = this.completedSteps[i] || false;\n const isActive = this.activeStep === i;\n const timer = this.activeTimers.get(i);\n const hasTimer = timer !== undefined;\n const timerDone = hasTimer && timer.done;\n const timerClass = timerDone ? 'recipe__active-timer--done' : '';\n const timerText = hasTimer ? (timer.done ? 'Done!' : this.formatTimer(timer.remaining)) : '';\n const showTimerBtn = step.time && !hasTimer;\n return html`\n <li class=\"recipe__step ${isCompleted ? 'recipe__step--completed' : ''} ${isActive ? 'recipe__step--active' : ''}\">\n <span class=\"recipe__step-number\" @click=${() => this.toggleStepComplete(i)} title=\"${isCompleted ? 'Mark incomplete' : 'Mark complete'}\">\n ${isCompleted ? '\\u2713' : i + 1}\n </span>\n <div class=\"recipe__step-body\">\n <div class=\"recipe__step-text\">${step.text}</div>\n <if ${step.tip}>\n <div class=\"recipe__step-tip\">${step.tip}</div>\n </if>\n <if ${step.image}>\n <img class=\"recipe__step-image\" src=\"${step.image}\" alt=\"Step ${i + 1}\" loading=\"lazy\" />\n </if>\n <if ${showTimerBtn}>\n <button class=\"recipe__step-timer-btn\" @click=${() => this.startTimer(i, step.time!)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/><polyline points=\"12 6 12 12 16 14\"/>\n </svg>\n ${this.formatMinutes(step.time!)}\n </button>\n </if>\n <if ${hasTimer}>\n <span class=\"recipe__active-timer ${timerClass}\">\n ${timerText}\n <button class=\"recipe__timer-cancel\" @click=${() => this.cancelTimer(i)} title=\"Cancel timer\">\\u2715</button>\n </span>\n </if>\n </div>\n </li>\n `;\n })}\n </ol>\n </div>\n </if>\n </div>\n </if>\n\n <if ${hasNutrition}>\n <div class=\"recipe__nutrition\" part=\"nutrition\">\n <h3 class=\"recipe__section-title\">Nutrition Facts</h3>\n <span class=\"recipe__author\">Per serving</span>\n <div class=\"recipe__nutrition-grid\">\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionCalories}</div>\n <div class=\"recipe__nutrition-label\">Calories</div>\n </div>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionProtein}g</div>\n <div class=\"recipe__nutrition-label\">Protein</div>\n </div>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionCarbs}g</div>\n <div class=\"recipe__nutrition-label\">Carbs</div>\n </div>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionFat}g</div>\n <div class=\"recipe__nutrition-label\">Fat</div>\n </div>\n <if ${hasFiber}>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionFiber}g</div>\n <div class=\"recipe__nutrition-label\">Fiber</div>\n </div>\n </if>\n <if ${hasSodium}>\n <div class=\"recipe__nutrition-item\">\n <div class=\"recipe__nutrition-value\">${nutritionSodium}mg</div>\n <div class=\"recipe__nutrition-label\">Sodium</div>\n </div>\n </if>\n </div>\n </div>\n </if>\n\n <if ${hasSteps}>\n <div class=\"recipe__step-controls\" part=\"controls\">\n <if ${!hasStepByStep}>\n <button @click=${() => this.startStepByStep()}>Step-by-Step</button>\n </if>\n <if ${hasStepByStep}>\n <button @click=${() => this.goToPrevStep()} ?disabled=${this.activeStep <= 0}>Previous</button>\n <button @click=${() => this.goToNextStep()}>\n ${this.activeStep >= this.steps.length - 1 ? 'Finish' : 'Next'}\n </button>\n </if>\n <button class=\"recipe__print-btn\" @click=${() => this.print()}>Print</button>\n <button @click=${() => this.reset()}>Reset</button>\n </div>\n </if>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'snice-recipe': SniceRecipe;\n }\n}\n"],"names":[],"mappings":";;;AAAA,iBAAe,2uZAA2uZ;;ICK7uZ,WAAW,GAAA,CAAA,MAAA;4BADvB,OAAO,CAAC,cAAc,CAAC,CAAA;;;;sBACS,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;AAE1C,YAAA,IAAA,CAAA,KAAK,IAFM,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAW,EAAA,iBAAA,CAAA,IAAA,EAAA,mBAAA,EAEd,EAAE,CAAA,CAAA;YAGV,IAAA,CAAA,WAAW,IAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,yBAAA,EAAG,EAAE,CAAA,CAAA;YAGhB,IAAA,CAAA,KAAK,IAAA,iBAAA,CAAA,IAAA,EAAA,8BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,mBAAA,EAAG,EAAE,CAAA,CAAA;YAGV,IAAA,CAAA,MAAM,IAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,oBAAA,EAAG,EAAE,CAAA,CAAA;YAGX,IAAA,CAAA,QAAQ,IAAA,iBAAA,CAAA,IAAA,EAAA,yBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAG,CAAC,CAAA,CAAA;YAGZ,IAAA,CAAA,QAAQ,IAAA,iBAAA,CAAA,IAAA,EAAA,2BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAG,CAAC,CAAA,CAAA;YAGZ,IAAA,CAAA,QAAQ,IAAA,iBAAA,CAAA,IAAA,EAAA,2BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAG,CAAC,CAAA,CAAA;YAGZ,IAAA,CAAA,UAAU,IAAA,iBAAA,CAAA,IAAA,EAAA,2BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,EAAqB,QAAQ,CAAA,CAAA;YAGvC,IAAA,CAAA,OAAO,IAAA,iBAAA,CAAA,IAAA,EAAA,6BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,qBAAA,EAAG,EAAE,CAAA,CAAA;YAGZ,IAAA,CAAA,OAAO,IAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,qBAAA,EAAkB,MAAM,CAAA,CAAA;YAG/B,IAAA,CAAA,WAAW,IAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,yBAAA,EAAuB,EAAE,CAAA,CAAA;YAGpC,IAAA,CAAA,KAAK,IAAA,iBAAA,CAAA,IAAA,EAAA,8BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,mBAAA,EAAiB,EAAE,CAAA,CAAA;YAGxB,IAAA,CAAA,SAAS,IAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,uBAAA,EAA2B,IAAI,CAAA,CAAA;YAGxC,IAAA,CAAA,IAAI,IAAA,iBAAA,CAAA,IAAA,EAAA,4BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,kBAAA,EAAa,EAAE,CAAA,CAAA;;YAIX,IAAA,CAAA,eAAe,IAAA,iBAAA,CAAA,IAAA,EAAA,uBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,6BAAA,EAAG,CAAC,CAAA,CAAA;YAGnB,IAAA,CAAA,kBAAkB,IAAA,iBAAA,CAAA,IAAA,EAAA,kCAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,gCAAA,EAAc,EAAE,CAAA,CAAA;YAGlC,IAAA,CAAA,cAAc,IAAA,iBAAA,CAAA,IAAA,EAAA,qCAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,4BAAA,EAAc,EAAE,CAAA,CAAA;YAG9B,IAAA,CAAA,UAAU,IAAA,iBAAA,CAAA,IAAA,EAAA,iCAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,EAAG,EAAE,CAAA,CAAA;YAGf,IAAA,CAAA,YAAY,IAAA,iBAAA,CAAA,IAAA,EAAA,6BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,EAAG,CAAC,CAAA,CAAA;AAEhB,YAAA,IAAA,CAAA,YAAY,IAAA,iBAAA,CAAA,IAAA,EAAA,+BAAA,CAAA,EAA0E,IAAI,GAAG,EAAE,CAAA;YAE/F,IAAA,CAAA,YAAY,GAAG,CAAC;QAwa1B;;;AApeG,YAAA,iBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;AAGV,YAAA,uBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;AAGV,YAAA,iBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;AAGV,YAAA,kBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;oCAGV,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;oCAGlD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;AAGlD,YAAA,oBAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAG1B,YAAA,sBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;AAGV,YAAA,mBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;AAGV,YAAA,mBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;uCAGV,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;iCAG3C,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;qCAG3C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;gCAG5C,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;AAI3C,YAAA,2BAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAG1B,YAAA,8BAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AAGzB,YAAA,0BAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AAGzB,YAAA,sBAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAG1B,YAAA,wBAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;4CAO1B,KAAK,CAAC,UAAU,CAAC,CAAA;+CAQjB,KAAK,CAAC,aAAa,CAAC,CAAA;yCAKpB,KAAK,CAAC,OAAO,CAAC,CAAA;AAwHd,YAAA,mBAAA,GAAA,CAAA,OAAO,EAAE,CAAA;AA8BT,YAAA,6BAAA,GAAA,CAAA,QAAQ,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;AAKpE,YAAA,4BAAA,GAAA,CAAA,QAAQ,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;AAKnE,YAAA,+BAAA,GAAA,CAAA,QAAQ,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;AAKtE,YAAA,kBAAA,GAAA,CAAA,MAAM,EAAE,CAAA;AAKR,YAAA,oBAAA,GAAA,CAAA,MAAM,EAAE,CAAA;AAtLT,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,4BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,kBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,gBAAgB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAQhB,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,+BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,qBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,mBAAmB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAKnB,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,eAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,aAAa,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAwHb,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AA8BP,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,6BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,mBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,iBAAiB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAKzB,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,4BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,kBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,gBAAgB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAKxB,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,+BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,qBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,mBAAmB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAK3B,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,QAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,MAAM,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAKN,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,UAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,QAAQ,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;YArPR,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,KAAK,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAL,KAAK,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA;YAGL,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,aAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,WAAW,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAX,WAAW,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,8BAAA,CAAA;YAGX,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,KAAK,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAL,KAAK,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA;YAGL,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,QAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,QAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,MAAM,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAN,MAAM,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,CAAA;YAGN,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,UAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,QAAQ,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAR,QAAQ,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,2BAAA,CAAA;YAGR,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,UAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,QAAQ,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAR,QAAQ,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,2BAAA,CAAA;YAGR,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,UAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,QAAQ,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAR,QAAQ,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,2BAAA,CAAA;YAGR,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,YAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,UAAU,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAV,UAAU,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,wBAAA,EAAA,6BAAA,CAAA;YAGV,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAP,OAAO,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,CAAA;YAGP,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAP,OAAO,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,CAAA;YAGP,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,aAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,WAAW,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAX,WAAW,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,8BAAA,CAAA;YAGX,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,KAAK,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAL,KAAK,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA;YAGL,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,WAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,WAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,SAAS,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAT,SAAS,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,uBAAA,EAAA,4BAAA,CAAA;YAGT,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,MAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,IAAI,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAJ,IAAI,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,uBAAA,CAAA;YAIJ,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,2BAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,iBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,eAAe,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAf,eAAe,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,6BAAA,EAAA,kCAAA,CAAA;YAGvB,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,8BAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,oBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,kBAAkB,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAlB,kBAAkB,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,gCAAA,EAAA,qCAAA,CAAA;YAG1B,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,0BAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,gBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,cAAc,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAd,cAAc,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,4BAAA,EAAA,iCAAA,CAAA;YAGtB,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,YAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,UAAU,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAV,UAAU,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,wBAAA,EAAA,6BAAA,CAAA;YAGlB,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,cAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,cAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAQ,YAAY,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAZ,YAAY,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA;YAzDtB,YAAA,CAAA,IAAA,EAAA,gBAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,uBAAA,CAAA;;;YAAa,iBAAA,CAAA,UAAA,EAAA,uBAAA,CAAA;;QAgEX,gBAAgB,GAAA;AACd,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;AACjC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;YACtC;QACF;QAGA,mBAAmB,GAAA;AACjB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1E;QAGA,aAAa,GAAA;AACX,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;QACtB;AAEA,QAAA,WAAW,CAAC,KAAa,EAAA;YACvB,IAAI,KAAK,GAAG,CAAC;gBAAE;AACf,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe;AACrC,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAClC;QAEA,KAAK,GAAA;YACH,MAAM,CAAC,KAAK,EAAE;QAChB;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACxE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ;;AAEzD,YAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;AACnD,gBAAA,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;YACjC;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACzB,IAAI,CAAC,YAAY,EAAE;QACrB;AAEQ,QAAA,WAAW,CAAC,MAAc,EAAA;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ;YAC/C,IAAI,IAAI,KAAK,CAAC;AAAE,gBAAA,OAAO,MAAM;YAC7B,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG;QACvC;AAEQ,QAAA,YAAY,CAAC,MAAc,EAAA;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACvC,YAAA,IAAI,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAAE,gBAAA,OAAO,MAAM,CAAC,QAAQ,EAAE;;YAE3D,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAChC,YAAA,MAAM,WAAW,GAAuB;AACtC,gBAAA,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;gBACnD,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;aACnC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE;gBACpC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE;AAC/B,oBAAA,OAAO,KAAK,GAAG,CAAC,GAAG,CAAA,EAAG,KAAK,CAAA,EAAG,GAAG,CAAA,CAAE,GAAG,GAAG;gBAC3C;YACF;AACA,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1B;AAEQ,QAAA,gBAAgB,CAAC,KAAa,EAAA;YACpC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,kBAAkB,GAAG,OAAO;YACjC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjD;AAEQ,QAAA,kBAAkB,CAAC,KAAa,EAAA;YACtC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO;YAC7B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C;QAEQ,iBAAiB,GAAA;AACvB,YAAA,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YAC5C;QACF;QAEQ,iBAAiB,GAAA;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAC5C;QAEQ,YAAY,GAAA;AAClB,YAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;YACvC;QACF;QAEQ,YAAY,GAAA;AAClB,YAAA,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;YACvC;iBAAO;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACtB;QACF;QAEQ,eAAe,GAAA;AACrB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACrB;QAEQ,UAAU,CAAC,SAAiB,EAAE,OAAe,EAAA;AACnD,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE;AAEtC,YAAA,MAAM,SAAS,GAAG,OAAO,GAAG,EAAE;AAC9B,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9C,gBAAA,IAAI,CAAC,KAAK;oBAAE;AAEZ,gBAAA,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE;AACxB,oBAAA,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACxE,IAAI,CAAC,YAAY,EAAE;oBACnB;gBACF;gBAEA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC9E,IAAI,CAAC,YAAY,EAAE;YACrB,CAAC,EAAE,IAAI,CAAC;AAER,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACxE,IAAI,CAAC,YAAY,EAAE;QACrB;QAGA,OAAO,GAAA;AACL,YAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;AACnD,gBAAA,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;YACjC;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;QAC3B;AAEQ,QAAA,WAAW,CAAC,SAAiB,EAAA;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;YAC9C,IAAI,KAAK,EAAE;AACT,gBAAA,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;gBACnC,IAAI,CAAC,YAAY,EAAE;YACrB;QACF;AAEQ,QAAA,WAAW,CAAC,OAAe,EAAA;YACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;AAClC,YAAA,MAAM,CAAC,GAAG,OAAO,GAAG,EAAE;AACtB,YAAA,OAAO,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;QAChD;AAEQ,QAAA,aAAa,CAAC,OAAe,EAAA;YACnC,IAAI,OAAO,GAAG,EAAE;gBAAE,OAAO,CAAA,EAAG,OAAO,CAAA,IAAA,CAAM;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;AACpC,YAAA,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE;AACzB,YAAA,OAAO,IAAI,GAAG,CAAC,GAAG,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,IAAI,GAAG,GAAG,CAAA,EAAG,GAAG,GAAG;QAClD;AAGQ,QAAA,iBAAiB,CAAC,gBAAwB,EAAA;YAChD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,EAAE;QAC7D;QAGQ,gBAAgB,CAAC,SAAiB,EAAE,SAAkB,EAAA;AAC5D,YAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;QACjC;QAGQ,mBAAmB,CAAC,eAAuB,EAAE,OAAgB,EAAA;AACnE,YAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE;QACpF;QAGA,MAAM,GAAA;AACJ,YAAA,OAAO,GAAG,SAAO,CAAA,EAAG,UAAU,EAAE;QAClC;QAGA,QAAQ,GAAA;;AAEN,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;AACjC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;YACtC;YAEA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;;AAG/C,YAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6D;YACnF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AAClC,gBAAA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE;AAC7B,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AAAE,oBAAA,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;AAC7C,gBAAA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACxD,YAAA,CAAC,CAAC;AAEF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC;AAC1C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACtC,YAAA,MAAM,UAAU,GAAG,cAAc,IAAI,QAAQ;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;;AAGzG,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI;AAC5C,YAAA,MAAM,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAAC,SAAU,CAAC,QAAQ,GAAG,CAAC;AACrE,YAAA,MAAM,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC,SAAU,CAAC,OAAO,GAAG,CAAC;AACnE,YAAA,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,CAAC,SAAU,CAAC,KAAK,GAAG,CAAC;AAC/D,YAAA,MAAM,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,SAAU,CAAC,GAAG,GAAG,CAAC;AAC3D,YAAA,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,CAAC,SAAU,CAAC,KAAK,GAAG,CAAC;AAC/D,YAAA,MAAM,eAAe,GAAG,YAAY,GAAG,IAAI,CAAC,SAAU,CAAC,MAAM,GAAG,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,IAAI,IAAI,CAAC,SAAU,CAAC,KAAK,KAAK,SAAS;YACpE,MAAM,SAAS,GAAG,YAAY,IAAI,IAAI,CAAC,SAAU,CAAC,MAAM,KAAK,SAAS;;YAGtE,MAAM,eAAe,GAAU,EAAE;AACjC,YAAA,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;gBACjD,IAAI,SAAS,EAAE;oBACb,eAAe,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA,2CAAA,EAA8C,SAAS,CAAA,KAAA,CAAO,CAAC;gBAC1F;gBACA,KAAK,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE;oBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK;oBACzD,MAAM,YAAY,GAAG,SAAS,GAAG,6BAA6B,GAAG,EAAE;AACnE,oBAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAA;0CACS,YAAY,CAAA,SAAA,EAAY,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;qFACf,UAAU,CAAC,IAAI,CAAA,WAAA,EAAc,SAAS,WAAW,CAAC,CAAQ,KAAK,CAAC,CAAC,eAAe,EAAE,CAAA,SAAA,EAAY,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;sDAC/J,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,UAAU,CAAC,IAAI,CAAA;AACzD,kDAAA,EAAA,UAAU,CAAC,IAAI,CAAA;;AAE1D,QAAA,CAAA,CAAC;gBACJ;YACF;YAEA,OAAO,IAAI,UAAQ;;AAET,YAAA,EAAA,IAAI,CAAC,KAAK,CAAA;;AAEA,sBAAA,EAAA,IAAI,CAAC,KAAK,CAAA,OAAA,EAAU,IAAI,CAAC,KAAK,CAAA;;;;;AAKhB,oCAAA,EAAA,IAAI,CAAC,KAAK,CAAA;AAChC,cAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AACa,2CAAA,EAAA,IAAI,CAAC,WAAW,CAAA;;AAE7C,cAAA,EAAA,IAAI,CAAC,MAAM,CAAA;AACmB,4CAAA,EAAA,IAAI,CAAC,MAAM,CAAA;;gBAEzC,OAAO,CAAA;;oBAEH,UAAU,CAAA;AACc,0CAAA,EAAA,IAAI,CAAC,OAAO,CAAA;;AAExC,cAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAA,CAAA,0BAAA,EAA6B,GAAG,SAAS,CAAC;;;;;cAKrE,OAAO,CAAA;;kBAEH,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;;;AAGgB,iDAAA,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;;;kBAGlE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;;;AAGgB,iDAAA,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;;;AAGlE,gBAAA,EAAA,SAAS,GAAG,CAAC,CAAA;;;AAGoB,iDAAA,EAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;;;kBAG9D,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;;;AAGS,iDAAA,EAAA,IAAI,CAAC,eAAe,CAAA;;;AAGrD,gBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;;;AAGqC,oEAAA,EAAA,IAAI,CAAC,UAAU,CAAA,EAAA,EAAK,IAAI,CAAC,UAAU,CAAA;;;;;;cAM3F,UAAU,CAAA;;kBAEN,cAAc,CAAA;;;;AAIgC,8DAAA,EAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;AACrC,uDAAA,EAAA,IAAI,CAAC,eAAe,CAAA;AACb,8DAAA,EAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;;;;oBAI1E,eAAe;;;;;kBAKjB,QAAQ,CAAA;;;;oBAIN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;gBAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK;AACnD,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,gBAAA,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS;AACpC,gBAAA,MAAM,SAAS,GAAG,QAAQ,IAAI,KAAK,CAAC,IAAI;gBACxC,MAAM,UAAU,GAAG,SAAS,GAAG,4BAA4B,GAAG,EAAE;AAChE,gBAAA,MAAM,SAAS,GAAG,QAAQ,IAAI,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;gBAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;AAC3C,gBAAA,OAAO,IAAI,CAAA;AACiB,8CAAA,EAAA,WAAW,GAAG,yBAAyB,GAAG,EAAE,CAAA,CAAA,EAAI,QAAQ,GAAG,sBAAsB,GAAG,EAAE,CAAA;AACnE,iEAAA,EAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA,QAAA,EAAW,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAA;4BACnI,WAAW,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC;;;AAGC,yDAAA,EAAA,IAAI,CAAC,IAAI,CAAA;AACpC,8BAAA,EAAA,IAAI,CAAC,GAAG,CAAA;AACoB,0DAAA,EAAA,IAAI,CAAC,GAAG,CAAA;;AAEpC,8BAAA,EAAA,IAAI,CAAC,KAAK,CAAA;AACyB,iEAAA,EAAA,IAAI,CAAC,KAAK,CAAA,YAAA,EAAe,CAAC,GAAG,CAAC,CAAA;;gCAEjE,YAAY,CAAA;4EACgC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAK,CAAC,CAAA;;;;AAIhF,8BAAA,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAK,CAAC;;;gCAG9B,QAAQ,CAAA;gEACwB,UAAU,CAAA;gCAC1C,SAAS;AACmC,0EAAA,EAAA,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;;;;;qBAKhF;AACH,YAAA,CAAC,CAAC;;;;;;;cAON,YAAY,CAAA;;;;;;uDAM6B,iBAAiB,CAAA;;;;uDAIjB,gBAAgB,CAAA;;;;uDAIhB,cAAc,CAAA;;;;uDAId,YAAY,CAAA;;;oBAG/C,QAAQ,CAAA;;yDAE6B,cAAc,CAAA;;;;oBAInD,SAAS,CAAA;;yDAE4B,eAAe,CAAA;;;;;;;;cAQ1D,QAAQ,CAAA;;AAEJ,gBAAA,EAAA,CAAC,aAAa,CAAA;AACD,6BAAA,EAAA,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;;kBAEzC,aAAa,CAAA;+BACA,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA,WAAA,EAAc,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;AAC3D,6BAAA,EAAA,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;AACtC,gBAAA,EAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,MAAM;;;AAGvB,qDAAA,EAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;AAC5C,2BAAA,EAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;;;;KAI1C;QACH;;;;;;;"}
|
|
@@ -232,6 +232,7 @@ export declare class SniceTable extends HTMLElement implements SniceTableElement
|
|
|
232
232
|
getCellTagName(type: string): string;
|
|
233
233
|
private fsExitHandler;
|
|
234
234
|
toggleFullscreen: () => Promise<void>;
|
|
235
|
+
private handleKeydown;
|
|
235
236
|
private handleClick;
|
|
236
237
|
private handleChange;
|
|
237
238
|
private onAttached;
|
|
@@ -432,6 +432,18 @@ let SniceTable = (() => {
|
|
|
432
432
|
document.addEventListener('fullscreenchange', this.fsExitHandler);
|
|
433
433
|
}
|
|
434
434
|
};
|
|
435
|
+
this.handleKeydown = (e) => {
|
|
436
|
+
if (e.key !== 'Enter' && e.key !== ' ')
|
|
437
|
+
return;
|
|
438
|
+
const th = e.target.closest('th.sortable');
|
|
439
|
+
if (!th)
|
|
440
|
+
return;
|
|
441
|
+
const columnKey = th.getAttribute('data-key');
|
|
442
|
+
if (!columnKey)
|
|
443
|
+
return;
|
|
444
|
+
e.preventDefault();
|
|
445
|
+
this.toggleSort(columnKey, true);
|
|
446
|
+
};
|
|
435
447
|
this.handleClick = (e) => {
|
|
436
448
|
const target = e.target;
|
|
437
449
|
// Handle sortable header click — every click adds/cycles in multi-sort.
|
|
@@ -1958,7 +1970,7 @@ let SniceTable = (() => {
|
|
|
1958
1970
|
if (hasSlottedRows) {
|
|
1959
1971
|
// Use slotted rows layout
|
|
1960
1972
|
return html /*html*/ `
|
|
1961
|
-
<div class="snice-table snice-table--slotted" @click=${this.handleClick} @change=${this.handleChange} @checkbox-change=${this.handleChange}>
|
|
1973
|
+
<div class="snice-table snice-table--slotted" @click=${this.handleClick} @keydown=${this.handleKeydown} @change=${this.handleChange} @checkbox-change=${this.handleChange}>
|
|
1962
1974
|
<div class="table-controls-container"></div>
|
|
1963
1975
|
<div class="table-header" id="slotted-header"></div>
|
|
1964
1976
|
<div class="table-body">
|
|
@@ -1971,7 +1983,7 @@ let SniceTable = (() => {
|
|
|
1971
1983
|
else {
|
|
1972
1984
|
// Use traditional table layout
|
|
1973
1985
|
return html /*html*/ `
|
|
1974
|
-
<div class="snice-table" @click=${this.handleClick} @change=${this.handleChange} @checkbox-change=${this.handleChange}>
|
|
1986
|
+
<div class="snice-table" @click=${this.handleClick} @keydown=${this.handleKeydown} @change=${this.handleChange} @checkbox-change=${this.handleChange}>
|
|
1975
1987
|
<div class="table-controls-container"></div>
|
|
1976
1988
|
<div class="table-frame">
|
|
1977
1989
|
<div class="table-superheader" part="superheader">
|
|
@@ -2587,6 +2599,10 @@ let SniceTable = (() => {
|
|
|
2587
2599
|
if (this.sortable && column.sortable !== false) {
|
|
2588
2600
|
th.classList.add('sortable');
|
|
2589
2601
|
th.setAttribute('role', 'button');
|
|
2602
|
+
// A role=button must be focusable and named, or the keyboard cannot
|
|
2603
|
+
// sort at all. Matches the declarative header in snice-header.ts.
|
|
2604
|
+
th.setAttribute('tabindex', '0');
|
|
2605
|
+
th.setAttribute('aria-label', `Sort by ${column.label}`);
|
|
2590
2606
|
th.innerHTML = this.renderSortableHeader(column);
|
|
2591
2607
|
}
|
|
2592
2608
|
else {
|