snice 7.5.0 → 7.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/react/SniceProvider.js +1 -1
- package/adapters/react/SniceRouter.js +1 -1
- package/adapters/react/avatar.d.ts +1 -0
- package/adapters/react/avatar.d.ts.map +1 -1
- package/adapters/react/avatar.js +1 -1
- package/adapters/react/avatar.js.map +1 -1
- package/adapters/react/avatar.tsx +2 -1
- package/adapters/react/calendar.d.ts +4 -0
- package/adapters/react/calendar.d.ts.map +1 -1
- package/adapters/react/calendar.js +1 -1
- package/adapters/react/calendar.js.map +1 -1
- package/adapters/react/calendar.tsx +5 -1
- package/adapters/react/matchRoute.js +68 -2
- package/adapters/react/matchRoute.js.map +1 -1
- package/adapters/react/route-match.d.ts +7 -0
- package/adapters/react/useRequestHandler.js +1 -1
- package/bin/analyzer-contracts.js +60 -2
- package/bin/project-analyzer.js +1262 -118
- package/bin/snice.js +95 -5
- package/custom-elements.json +112 -0
- 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/README.md +1 -1
- package/dist/cdn/avatar/snice-avatar.js +9 -3
- package/dist/cdn/avatar/snice-avatar.js.map +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +2 -2
- package/dist/cdn/avatar/snice-avatar.min.js.map +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 +2 -2
- package/dist/cdn/button/snice-button.js.map +1 -1
- package/dist/cdn/button/snice-button.min.js +1 -1
- package/dist/cdn/button/snice-button.min.js.map +1 -1
- package/dist/cdn/calendar/README.md +2 -2
- package/dist/cdn/calendar/snice-calendar.js +562 -40
- package/dist/cdn/calendar/snice-calendar.js.map +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +28 -1
- package/dist/cdn/calendar/snice-calendar.min.js.map +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/README.md +1 -1
- package/dist/cdn/login/snice-login.js +2 -2
- package/dist/cdn/login/snice-login.js.map +1 -1
- package/dist/cdn/login/snice-login.min.js +1 -1
- package/dist/cdn/login/snice-login.min.js.map +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 +1 -1
- package/dist/cdn/runtime/README.md +2 -2
- package/dist/cdn/runtime/snice-runtime.esm.js +706 -267
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +706 -267
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +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 +3 -1
- package/dist/cdn/select/snice-select.js.map +1 -1
- package/dist/cdn/select/snice-select.min.js +2 -2
- package/dist/cdn/select/snice-select.min.js.map +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/README.md +1 -1
- package/dist/cdn/switch/snice-switch.js +8 -4
- package/dist/cdn/switch/snice-switch.js.map +1 -1
- package/dist/cdn/switch/snice-switch.min.js +8 -4
- package/dist/cdn/switch/snice-switch.min.js.map +1 -1
- package/dist/cdn/table/README.md +2 -2
- package/dist/cdn/table/snice-table.esm.js +77 -5
- package/dist/cdn/table/snice-table.esm.js.map +1 -1
- package/dist/cdn/table/snice-table.esm.min.js +68 -47
- package/dist/cdn/table/snice-table.esm.min.js.map +1 -1
- package/dist/cdn/table/snice-table.js +76 -4
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +53 -32
- 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 +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/snice-video-player.js +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/avatar/snice-avatar.d.ts +1 -0
- package/dist/components/avatar/snice-avatar.js +8 -2
- package/dist/components/avatar/snice-avatar.js.map +1 -1
- package/dist/components/avatar/snice-avatar.types.d.ts +2 -0
- package/dist/components/button/snice-button.js +1 -1
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/components/calendar/snice-calendar.d.ts +38 -1
- package/dist/components/calendar/snice-calendar.js +390 -40
- package/dist/components/calendar/snice-calendar.js.map +1 -1
- package/dist/components/calendar/snice-calendar.types.d.ts +63 -0
- package/dist/components/select/snice-select.js +2 -0
- package/dist/components/select/snice-select.js.map +1 -1
- package/dist/components/switch/snice-switch.js +7 -3
- package/dist/components/switch/snice-switch.js.map +1 -1
- package/dist/components/table/snice-table.d.ts +9 -0
- package/dist/components/table/snice-table.js +72 -2
- package/dist/components/table/snice-table.js.map +1 -1
- package/dist/components/table/table-keyboard.js +1 -1
- package/dist/components/table/table-keyboard.js.map +1 -1
- package/dist/index.cjs +703 -264
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.esm.js +703 -264
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +703 -264
- package/dist/index.iife.js.map +1 -1
- package/dist/parts.d.ts +14 -4
- 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 +68 -2
- package/dist/react/matchRoute.js.map +1 -1
- package/dist/react/route-match.d.ts +7 -0
- package/dist/react/useRequestHandler.js +1 -1
- package/dist/render-errors.d.ts +9 -0
- package/dist/route-match.d.ts +7 -0
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/template-marker.d.ts +5 -0
- package/dist/testing-dom.cjs +1 -1
- package/dist/testing-dom.esm.js +1 -1
- package/dist/testing.d.ts +3 -0
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/dist/types/dispatch-options.d.ts +5 -4
- package/dist/types/event-timing.d.ts +7 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/on-options.d.ts +21 -6
- package/dist/utils.d.ts +3 -0
- package/docs/ai/DEVELOPMENT.md +1 -1
- package/docs/ai/api.md +7 -2
- package/docs/ai/cli.md +14 -0
- package/docs/ai/components/avatar.md +1 -0
- package/docs/ai/components/calendar.md +24 -1
- package/docs/ai/components/switch.md +3 -0
- package/docs/ai/components/table.md +1 -1
- package/docs/ai/decorators.md +3 -2
- package/docs/ai/events.md +45 -8
- package/docs/ai/rendering.md +7 -0
- package/docs/ai/routing.md +6 -1
- package/docs/ai/testing.md +17 -0
- package/docs/cli.md +19 -0
- package/docs/components/avatar.md +1 -0
- package/docs/components/calendar.md +112 -2
- package/docs/components/switch.md +7 -1
- package/docs/components/table.md +2 -1
- package/docs/events.md +90 -10
- package/docs/rendering.md +10 -0
- package/docs/routing.md +22 -1
- package/docs/testing.md +19 -0
- package/package.json +2 -2
- package/vscode.html-custom-data.json +28 -0
|
@@ -3,7 +3,7 @@ import { element, state, property, query, render, styles, ready, reconnect, on,
|
|
|
3
3
|
import { applyElementInternalsFormValue, hasValidityError, applyElementInternalsValidity, findFormOwner } from '../form-control-validity.js';
|
|
4
4
|
import { FormLabelAssociation } from '../form-label-association.js';
|
|
5
5
|
|
|
6
|
-
var cssContent = ":host([hidden]){display:none}:host{display:inline-flex;align-items:center;align-self:flex-end;min-height:2.5rem;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif)}:host([size=small]){min-height:2rem;align-self:center}:host([size=large]){min-height:3rem;align-self:center}.switch-wrapper{display:inline-flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);cursor:pointer;user-select:none}.switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.switch-input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;display:inline-block;background:var(--snice-color-border,rgb(226 226 226));border-radius:999px;transition:background-color var(--snice-transition-fast, 150ms) ease}.switch-track--small{width:2.25rem;height:1.25rem}.switch-track--medium{width:2.75rem;height:1.5rem}.switch-track--large{width:3.25rem;height:1.75rem}.switch-thumb{position:absolute;top:2px;left:2px;background:var(--snice-color-surface-container-lowest,rgb(255 255 255));border-radius:50%;box-shadow:var(--snice-shadow-sm,0 2px 6px 0 rgb(0 0 0 / .04),0 2px 4px -1px rgb(0 0 0 / .06));transition:
|
|
6
|
+
var cssContent = ":host([hidden]){display:none}:host{display:inline-flex;align-items:center;align-self:flex-end;min-height:2.5rem;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif)}:host([size=small]){min-height:2rem;align-self:center}:host([size=large]){min-height:3rem;align-self:center}.switch-wrapper{display:inline-flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);cursor:pointer;user-select:none}.switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.switch-input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;display:inline-block;background:var(--snice-color-border,rgb(226 226 226));border-radius:999px;transition:background-color var(--snice-transition-fast, 150ms) ease}.switch-track--small{min-width:2.25rem;height:1.25rem}.switch-track--medium{min-width:2.75rem;height:1.5rem}.switch-track--large{min-width:3.25rem;height:1.75rem}.switch-thumb{position:absolute;top:2px;left:2px;background:var(--snice-color-surface-container-lowest,rgb(255 255 255));border-radius:50%;box-shadow:var(--snice-shadow-sm,0 2px 6px 0 rgb(0 0 0 / .04),0 2px 4px -1px rgb(0 0 0 / .06));transition:left var(--snice-transition-fast, 150ms) ease;z-index:2}.switch-track--small .switch-thumb{width:1rem;height:1rem}.switch-track--medium .switch-thumb{width:1.25rem;height:1.25rem}.switch-track--large .switch-thumb{width:1.5rem;height:1.5rem}.switch-input:checked~.switch-track{background:var(--snice-color-primary,rgb(37 99 235))}.switch-input:checked~.switch-track--small .switch-thumb{left:calc(100% - 1rem - 2px)}.switch-input:checked~.switch-track--medium .switch-thumb{left:calc(100% - 1.25rem - 2px)}.switch-input:checked~.switch-track--large .switch-thumb{left:calc(100% - 1.5rem - 2px)}.switch-input:focus-visible~.switch-track{box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.switch-input:disabled~.switch-track{background:var(--snice-color-surface-container-low,rgb(250 250 250))}.switch-input:disabled~.switch-track .switch-thumb{background:var(--snice-color-surface-container-lowest,rgb(255 255 255))}.switch-input:disabled:checked~.switch-track{background:var(--snice-color-text-secondary,rgb(82 82 82))}.switch-track--invalid{background:var(--snice-color-danger-subtle,rgb(254 226 226))}.switch-input:checked~.switch-track--invalid{background:var(--snice-color-danger,rgb(220 38 38))}.switch-wrapper:not(.switch-wrapper--disabled):hover .switch-track{background:var(--snice-color-border-hover,rgb(163 163 163))}.switch-wrapper:not(.switch-wrapper--disabled):hover .switch-input:checked~.switch-track{background:var(--snice-color-primary-hover,rgb(29 78 216))}.switch-label{color:var(--snice-color-text,rgb(23 23 23));cursor:pointer}.switch-label--small{font-size:var(--snice-font-size-sm, .875rem)}.switch-label--medium{font-size:var(--snice-font-size-md, 1rem)}.switch-label--large{font-size:var(--snice-font-size-lg, 1.125rem)}.switch-wrapper--disabled .switch-label{color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:not-allowed}.switch-label--required::after{content:' *';color:var(--snice-color-danger,rgb(220 38 38))}.switch-state-label,.switch-track-sizer>span{font-size:.5rem;font-weight:var(--snice-font-weight-bold,700);text-transform:uppercase;letter-spacing:var(--snice-tracking-widest, .1em)}.switch-state-label{position:absolute;top:50%;transform:translateY(-50%);opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease;pointer-events:none;z-index:1}.switch-track-sizer{display:grid;visibility:hidden}.switch-track-sizer>span{grid-area:1/1;white-space:nowrap}.switch-state-label--on{left:.3125rem;color:var(--snice-color-text-inverse,rgb(250 250 250))}.switch-state-label--off{right:.375rem;color:var(--snice-color-text,rgb(23 23 23))}.switch-track--medium .switch-state-label,.switch-track--medium .switch-track-sizer>span{font-size:.5625rem}.switch-track--medium .switch-track-sizer{padding-left:calc(1.25rem + 6px);padding-right:.5rem}.switch-track--large .switch-track-sizer{padding-left:calc(1.5rem + 6px);padding-right:.5rem}.switch-track--medium .switch-state-label--on{left:.3125rem}.switch-track--medium .switch-state-label--off{right:.5rem}.switch-track--large .switch-state-label,.switch-track--large .switch-track-sizer>span{font-size:.625rem}.switch-track--large .switch-state-label--on{left:.4375rem}.switch-track--large .switch-state-label--off{right:.5rem}.switch-input:checked~.switch-track .switch-state-label--on,.switch-input:not(:checked)~.switch-track .switch-state-label--off{opacity:1}.switch-track--small .switch-state-label,.switch-track--small .switch-track-sizer{display:none}.switch-track--loading .switch-thumb{animation:1s ease-in-out infinite switch-pulse}@keyframes switch-pulse{0%,100%{opacity:1}50%{opacity:.5}}.switch-wrapper--loading{cursor:wait;opacity:.7}.switch-track--loading{cursor:wait}.switch-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:none}.switch-spinner::after{content:'';display:block;width:.625em;height:.625em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}";
|
|
7
7
|
|
|
8
8
|
let SniceSwitch = (() => {
|
|
9
9
|
let _classDecorators = [element('snice-switch', { formAssociated: true, delegatesFocus: true })];
|
|
@@ -266,8 +266,12 @@ let SniceSwitch = (() => {
|
|
|
266
266
|
</if>
|
|
267
267
|
</span>
|
|
268
268
|
<if ${this.labelOn || this.labelOff}>
|
|
269
|
-
<span class="switch-state-label switch-state-label--on">${this.labelOn}</span>
|
|
270
|
-
<span class="switch-state-label switch-state-label--off">${this.labelOff}</span>
|
|
269
|
+
<span class="switch-state-label switch-state-label--on" part="label-on">${this.labelOn}</span>
|
|
270
|
+
<span class="switch-state-label switch-state-label--off" part="label-off">${this.labelOff}</span>
|
|
271
|
+
<span class="switch-track-sizer" aria-hidden="true">
|
|
272
|
+
<span>${this.labelOn}</span>
|
|
273
|
+
<span>${this.labelOff}</span>
|
|
274
|
+
</span>
|
|
271
275
|
</if>
|
|
272
276
|
</span>
|
|
273
277
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-switch.js","sources":["../../../components/switch/snice-switch.css?inline","../../../../components/switch/snice-switch.ts"],"sourcesContent":["export default \":host([hidden]){display:none}:host{display:inline-flex;align-items:center;align-self:flex-end;min-height:2.5rem;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif)}:host([size=small]){min-height:2rem;align-self:center}:host([size=large]){min-height:3rem;align-self:center}.switch-wrapper{display:inline-flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);cursor:pointer;user-select:none}.switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.switch-input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;display:inline-block;background:var(--snice-color-border,rgb(226 226 226));border-radius:999px;transition:background-color var(--snice-transition-fast, 150ms) ease}.switch-track--small{width:2.25rem;height:1.25rem}.switch-track--medium{width:2.75rem;height:1.5rem}.switch-track--large{width:3.25rem;height:1.75rem}.switch-thumb{position:absolute;top:2px;left:2px;background:var(--snice-color-surface-container-lowest,rgb(255 255 255));border-radius:50%;box-shadow:var(--snice-shadow-sm,0 2px 6px 0 rgb(0 0 0 / .04),0 2px 4px -1px rgb(0 0 0 / .06));transition:transform var(--snice-transition-fast, 150ms) ease;z-index:2}.switch-track--small .switch-thumb{width:1rem;height:1rem}.switch-track--medium .switch-thumb{width:1.25rem;height:1.25rem}.switch-track--large .switch-thumb{width:1.5rem;height:1.5rem}.switch-input:checked~.switch-track{background:var(--snice-color-primary,rgb(37 99 235))}.switch-input:checked~.switch-track--small .switch-thumb{transform:translateX(1rem)}.switch-input:checked~.switch-track--medium .switch-thumb{transform:translateX(1.25rem)}.switch-input:checked~.switch-track--large .switch-thumb{transform:translateX(1.5rem)}.switch-input:focus-visible~.switch-track{box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.switch-input:disabled~.switch-track{background:var(--snice-color-surface-container-low,rgb(250 250 250))}.switch-input:disabled~.switch-track .switch-thumb{background:var(--snice-color-surface-container-lowest,rgb(255 255 255))}.switch-input:disabled:checked~.switch-track{background:var(--snice-color-text-secondary,rgb(82 82 82))}.switch-track--invalid{background:var(--snice-color-danger-subtle,rgb(254 226 226))}.switch-input:checked~.switch-track--invalid{background:var(--snice-color-danger,rgb(220 38 38))}.switch-wrapper:not(.switch-wrapper--disabled):hover .switch-track{background:var(--snice-color-border-hover,rgb(163 163 163))}.switch-wrapper:not(.switch-wrapper--disabled):hover .switch-input:checked~.switch-track{background:var(--snice-color-primary-hover,rgb(29 78 216))}.switch-label{color:var(--snice-color-text,rgb(23 23 23));cursor:pointer}.switch-label--small{font-size:var(--snice-font-size-sm, .875rem)}.switch-label--medium{font-size:var(--snice-font-size-md, 1rem)}.switch-label--large{font-size:var(--snice-font-size-lg, 1.125rem)}.switch-wrapper--disabled .switch-label{color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:not-allowed}.switch-label--required::after{content:' *';color:var(--snice-color-danger,rgb(220 38 38))}.switch-state-label{position:absolute;top:50%;transform:translateY(-50%);font-size:.5rem;font-weight:var(--snice-font-weight-bold,700);text-transform:uppercase;letter-spacing:var(--snice-tracking-widest, .1em);opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease;pointer-events:none;z-index:1}.switch-state-label--on{left:.3125rem;color:var(--snice-color-text-inverse,rgb(250 250 250));mix-blend-mode:overlay}.switch-state-label--off{right:.375rem;color:var(--snice-color-text,rgb(23 23 23))}.switch-track--medium .switch-state-label{font-size:.5625rem}.switch-track--medium .switch-state-label--on{left:.3125rem}.switch-track--medium .switch-state-label--off{right:.5rem}.switch-track--large .switch-state-label{font-size:.625rem}.switch-track--large .switch-state-label--on{left:.4375rem}.switch-track--large .switch-state-label--off{right:.5rem}.switch-input:checked~.switch-track .switch-state-label--on,.switch-input:not(:checked)~.switch-track .switch-state-label--off{opacity:.7}.switch-track--small .switch-state-label{display:none}.switch-track--loading .switch-thumb{animation:1s ease-in-out infinite switch-pulse}@keyframes switch-pulse{0%,100%{opacity:1}50%{opacity:.5}}.switch-wrapper--loading{cursor:wait;opacity:.7}.switch-track--loading{cursor:wait}.switch-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:none}.switch-spinner::after{content:'';display:block;width:.625em;height:.625em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}:host([label-off]) .switch-track--small,:host([label-on]) .switch-track--small{width:3rem}:host([label-off]) .switch-track--medium,:host([label-on]) .switch-track--medium{width:3.5rem}:host([label-off]) .switch-track--large,:host([label-on]) .switch-track--large{width:4rem}:host([label-off]) .switch-input:checked~.switch-track--small .switch-thumb,:host([label-on]) .switch-input:checked~.switch-track--small .switch-thumb{transform:translateX(1.75rem)}:host([label-off]) .switch-input:checked~.switch-track--medium .switch-thumb,:host([label-on]) .switch-input:checked~.switch-track--medium .switch-thumb{transform:translateX(2rem)}:host([label-off]) .switch-input:checked~.switch-track--large .switch-thumb,:host([label-on]) .switch-input:checked~.switch-track--large .switch-thumb{transform:translateX(2.25rem)}\";","import { element, property, state, query, on, watch, dispatch, ready, reconnect, dispose, render, styles, html, css } from 'snice';\nimport cssContent from './snice-switch.css?inline';\nimport type { SwitchSize, SniceSwitchElement } from './snice-switch.types';\nimport { applyElementInternalsFormValue, applyElementInternalsValidity, findFormOwner, hasValidityError } from '../form-control-validity';\nimport { FormLabelAssociation } from '../form-label-association';\n\n@element('snice-switch', { formAssociated: true, delegatesFocus: true })\nexport class SniceSwitch extends HTMLElement implements SniceSwitchElement {\n internals!: ElementInternals;\n private dirtyCheckedness = false;\n\n @state()\n private checkedState = false;\n\n @state()\n private formDisabled = false;\n\n @state()\n private constraintInvalid = false;\n\n private customValidationMessage = '';\n private readonly labelAssociation: FormLabelAssociation;\n\n constructor() {\n super();\n if (typeof this.attachInternals == 'function') {\n this.internals = this.attachInternals();\n }\n this.labelAssociation = new FormLabelAssociation(\n this,\n () => this.internals,\n () => this.interactionDisabled ? undefined : this.input,\n () => this.label || 'Switch'\n );\n }\n\n /**\n * Live checkedness. Assignments do not rewrite the authored default.\n * @public\n */\n get checked(): boolean {\n return this.checkedState;\n }\n\n set checked(value: boolean) {\n this.setCheckedness(Boolean(value), true);\n }\n\n /** The `checked` content attribute and form-reset default. */\n @property({ type: Boolean, attribute: 'checked' })\n defaultChecked = false;\n\n formAssociatedCallback() {\n this.syncFormState();\n }\n\n formResetCallback() {\n this.dirtyCheckedness = false;\n this.setCheckedness(this.defaultChecked, false);\n this.syncFormState();\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncValidity();\n }\n\n formStateRestoreCallback(state: File | string | FormData | null) {\n if (state === 'checked') this.setCheckedness(true, true);\n else if (state === 'unchecked') this.setCheckedness(false, true);\n this.syncFormState();\n }\n\n @property({ type: Boolean, })\n disabled = false;\n\n @property({ type: Boolean, })\n loading = false;\n\n @property({ type: Boolean, })\n required = false;\n\n @property({ type: Boolean, })\n invalid = false;\n\n @property({ })\n size: SwitchSize = 'medium';\n\n @property({ })\n name = '';\n\n @property({ })\n value = 'on';\n\n @property({ })\n label = '';\n\n @property({ attribute: 'label-on' })\n labelOn = '';\n\n @property({ attribute: 'label-off' })\n labelOff = '';\n\n @query('.switch-input')\n input?: HTMLInputElement;\n\n @query('.switch-track')\n track?: HTMLElement;\n\n @query('.switch-label')\n labelElement?: HTMLElement;\n\n @query('.switch-wrapper')\n wrapper?: HTMLElement;\n\n @query('.switch-state-label--on')\n onLabel?: HTMLElement;\n\n @query('.switch-state-label--off')\n offLabel?: HTMLElement;\n\n private inputId = `snice-switch-${Math.random().toString(36).slice(2, 10)}`;\n private labelId = `${this.inputId}-label`;\n\n private get interactionDisabled(): boolean {\n return this.disabled || this.formDisabled || this.loading;\n }\n\n @render()\n render() {\n const displayedInvalid = this.invalid || this.constraintInvalid;\n const accessibleName = this.labelAssociation.accessibleName;\n const wrapperClasses = `switch-wrapper${this.interactionDisabled ? ' switch-wrapper--disabled' : ''}${this.loading ? ' switch-wrapper--loading' : ''}`;\n const trackClasses = `switch-track switch-track--${this.size}${displayedInvalid ? ' switch-track--invalid' : ''}${this.loading ? ' switch-track--loading' : ''}`;\n const labelClasses = `switch-label switch-label--${this.size}${this.required ? ' switch-label--required' : ''}`;\n\n return html/*html*/`\n <label class=\"${wrapperClasses}\" for=\"${this.inputId}\">\n <input\n id=\"${this.inputId}\"\n type=\"checkbox\"\n class=\"switch-input\"\n ?checked=\"${this.checked}\"\n ?disabled=\"${this.interactionDisabled}\"\n ?required=\"${this.required}\"\n name=\"${this.name}\"\n value=\"${this.value}\"\n aria-invalid=\"${displayedInvalid}\"\n aria-checked=\"${this.checked}\"\n aria-label=\"${accessibleName}\"\n role=\"switch\"\n part=\"input\"\n @change=${this.handleChange}\n />\n\n <span class=\"${trackClasses}\" part=\"track\">\n <span class=\"switch-thumb\" part=\"thumb\">\n <if ${this.loading}>\n <span class=\"switch-spinner\" part=\"spinner\"></span>\n </if>\n </span>\n <if ${this.labelOn || this.labelOff}>\n <span class=\"switch-state-label switch-state-label--on\">${this.labelOn}</span>\n <span class=\"switch-state-label switch-state-label--off\">${this.labelOff}</span>\n </if>\n </span>\n\n <if ${this.label}>\n <span class=\"${labelClasses}\" part=\"label\" id=\"${this.labelId}\">\n ${this.label}\n </span>\n </if>\n </label>\n `;\n }\n\n @styles()\n styles() {\n return css/*css*/`${cssContent}`;\n }\n\n @ready()\n init() {\n if (Object.prototype.hasOwnProperty.call(this, 'checked')) {\n const checked = Boolean((this as { checked: unknown }).checked);\n delete (this as Partial<{ checked: unknown }>).checked;\n this.checked = checked;\n } else if (!this.dirtyCheckedness) {\n this.setCheckedness(this.defaultChecked, false);\n }\n\n // Set initial states\n if (this.input) {\n this.input.checked = this.checked;\n\n // Set form value\n if (this.name) {\n this.input.name = this.name;\n }\n if (this.value) {\n this.input.value = this.value;\n }\n }\n\n this.syncFormState();\n this.labelAssociation.connect();\n\n // Update state labels if provided\n this.updateStateLabels();\n }\n\n @reconnect()\n private onReconnect() {\n this.labelAssociation.connect();\n }\n\n private setCheckedness(checked: boolean, dirty: boolean) {\n if (dirty) this.dirtyCheckedness = true;\n this.checkedState = checked;\n }\n\n private syncFormState() {\n applyElementInternalsFormValue(\n this.internals,\n this.checked ? this.value : null,\n this.checked ? 'checked' : 'unchecked'\n );\n this.syncValidity();\n }\n\n private syncValidity() {\n if (this.input) {\n this.input.checked = this.checked;\n this.input.required = this.required;\n this.input.disabled = this.interactionDisabled;\n this.input.setCustomValidity(this.customValidationMessage);\n }\n\n const flags: ValidityStateFlags = this.interactionDisabled ? {} : {\n customError: Boolean(this.customValidationMessage),\n valueMissing: this.required && !this.checked\n };\n const hasError = hasValidityError(flags);\n const message = this.customValidationMessage || this.input?.validationMessage ||\n (hasError ? 'Please turn on this switch.' : '');\n this.constraintInvalid = hasError;\n const displayedInvalid = this.invalid || hasError;\n this.input?.setAttribute('aria-invalid', String(displayedInvalid));\n this.track?.classList.toggle('switch-track--invalid', displayedInvalid);\n applyElementInternalsValidity(this.internals, flags, message, this.input);\n }\n\n handleChange(e: Event) {\n const target = e.currentTarget as HTMLElement;\n if (!target.matches('.switch-input')) return;\n\n const input = target as HTMLInputElement;\n this.checked = input.checked;\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n this.dispatchChangeEvent();\n }\n\n @on('click')\n handleClick(e: Event) {\n const target = e.target as HTMLElement;\n if (!target.matches('.switch-input')) return;\n\n // Allow click to propagate for label association\n e.stopPropagation();\n }\n\n @watch('checkedState')\n handleCheckedChange() {\n if (this.input) {\n this.input.checked = this.checked;\n this.input.setAttribute('aria-checked', String(this.checked));\n }\n this.syncFormState();\n }\n\n @watch('disabled', 'loading', 'formDisabled')\n handleDisabledChange() {\n if (this.input) {\n this.input.disabled = this.interactionDisabled;\n }\n if (this.wrapper) {\n this.wrapper.classList.toggle('switch-wrapper--disabled', this.interactionDisabled);\n }\n this.syncValidity();\n }\n\n @watch('invalid')\n handleInvalidChange() {\n if (this.input) {\n this.input.setAttribute('aria-invalid', String(this.invalid || this.constraintInvalid));\n }\n if (this.track) {\n this.track.classList.toggle('switch-track--invalid', this.invalid || this.constraintInvalid);\n }\n }\n\n @watch('required')\n handleRequiredChange() {\n if (this.input) {\n this.input.required = this.required;\n }\n if (this.labelElement) {\n this.labelElement.classList.toggle('switch-label--required', this.required);\n }\n this.syncValidity();\n }\n\n @watch('label')\n handleLabelChange() {\n if (this.labelElement) {\n this.labelElement.textContent = this.label;\n this.labelElement.style.display = this.label ? '' : 'none';\n }\n this.labelAssociation.sync();\n }\n\n @watch('labelOn', 'labelOff')\n handleStateLabelChange() {\n this.updateStateLabels();\n }\n\n @watch('name')\n handleNameChange() {\n if (this.input) {\n this.input.name = this.name;\n }\n }\n\n @watch('value')\n handleValueChange() {\n if (this.input) {\n this.input.value = this.value;\n }\n this.syncFormState();\n }\n\n @watch('defaultChecked')\n handleDefaultCheckedChange() {\n if (!this.dirtyCheckedness) this.setCheckedness(this.defaultChecked, false);\n }\n\n private updateStateLabels() {\n if (this.onLabel) {\n this.onLabel.textContent = this.labelOn;\n this.onLabel.style.display = this.labelOn ? '' : 'none';\n }\n if (this.offLabel) {\n this.offLabel.textContent = this.labelOff;\n this.offLabel.style.display = this.labelOff ? '' : 'none';\n }\n }\n\n @dispatch('switch-change', { bubbles: true, composed: true })\n private dispatchChangeEvent() {\n return {\n checked: this.checked,\n switch: this\n };\n }\n\n // Public API\n focus() {\n this.input?.focus();\n }\n\n blur() {\n this.input?.blur();\n }\n\n click() {\n if (this.interactionDisabled) return;\n this.input?.click();\n }\n\n toggle() {\n this.click();\n }\n\n /** Native-compatible control type. @public */\n get type(): 'checkbox' {\n return 'checkbox';\n }\n\n /** Owning form, including association through a `form` attribute. @public */\n get form(): HTMLFormElement | null {\n return findFormOwner(this, this.internals);\n }\n\n /** Current native constraint-validation state. @public */\n get validity(): ValidityState {\n return this.internals?.validity ?? this.input!.validity;\n }\n\n /** Current localized validation message. @public */\n get validationMessage(): string {\n return this.internals?.validationMessage ?? this.input?.validationMessage ?? '';\n }\n\n /** Whether this switch currently participates in constraint validation. @public */\n get willValidate(): boolean {\n if (this.interactionDisabled) return false;\n return this.internals?.willValidate ?? this.input?.willValidate ?? false;\n }\n\n /** Labels associated with the host. @public */\n get labels(): NodeList | null {\n return this.labelAssociation.labels;\n }\n\n checkValidity(): boolean {\n this.syncValidity();\n return this.internals?.checkValidity() ?? this.input?.checkValidity() ?? true;\n }\n\n reportValidity(): boolean {\n this.syncValidity();\n return this.internals?.reportValidity() ?? this.input?.reportValidity() ?? true;\n }\n\n setCustomValidity(message: string): void {\n this.customValidationMessage = String(message);\n this.syncValidity();\n }\n\n @dispose()\n private cleanup() {\n this.labelAssociation.disconnect();\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snice-switch.js","sources":["../../../components/switch/snice-switch.css?inline","../../../../components/switch/snice-switch.ts"],"sourcesContent":["export default \":host([hidden]){display:none}:host{display:inline-flex;align-items:center;align-self:flex-end;min-height:2.5rem;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif)}:host([size=small]){min-height:2rem;align-self:center}:host([size=large]){min-height:3rem;align-self:center}.switch-wrapper{display:inline-flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);cursor:pointer;user-select:none}.switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.switch-input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;display:inline-block;background:var(--snice-color-border,rgb(226 226 226));border-radius:999px;transition:background-color var(--snice-transition-fast, 150ms) ease}.switch-track--small{min-width:2.25rem;height:1.25rem}.switch-track--medium{min-width:2.75rem;height:1.5rem}.switch-track--large{min-width:3.25rem;height:1.75rem}.switch-thumb{position:absolute;top:2px;left:2px;background:var(--snice-color-surface-container-lowest,rgb(255 255 255));border-radius:50%;box-shadow:var(--snice-shadow-sm,0 2px 6px 0 rgb(0 0 0 / .04),0 2px 4px -1px rgb(0 0 0 / .06));transition:left var(--snice-transition-fast, 150ms) ease;z-index:2}.switch-track--small .switch-thumb{width:1rem;height:1rem}.switch-track--medium .switch-thumb{width:1.25rem;height:1.25rem}.switch-track--large .switch-thumb{width:1.5rem;height:1.5rem}.switch-input:checked~.switch-track{background:var(--snice-color-primary,rgb(37 99 235))}.switch-input:checked~.switch-track--small .switch-thumb{left:calc(100% - 1rem - 2px)}.switch-input:checked~.switch-track--medium .switch-thumb{left:calc(100% - 1.25rem - 2px)}.switch-input:checked~.switch-track--large .switch-thumb{left:calc(100% - 1.5rem - 2px)}.switch-input:focus-visible~.switch-track{box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.switch-input:disabled~.switch-track{background:var(--snice-color-surface-container-low,rgb(250 250 250))}.switch-input:disabled~.switch-track .switch-thumb{background:var(--snice-color-surface-container-lowest,rgb(255 255 255))}.switch-input:disabled:checked~.switch-track{background:var(--snice-color-text-secondary,rgb(82 82 82))}.switch-track--invalid{background:var(--snice-color-danger-subtle,rgb(254 226 226))}.switch-input:checked~.switch-track--invalid{background:var(--snice-color-danger,rgb(220 38 38))}.switch-wrapper:not(.switch-wrapper--disabled):hover .switch-track{background:var(--snice-color-border-hover,rgb(163 163 163))}.switch-wrapper:not(.switch-wrapper--disabled):hover .switch-input:checked~.switch-track{background:var(--snice-color-primary-hover,rgb(29 78 216))}.switch-label{color:var(--snice-color-text,rgb(23 23 23));cursor:pointer}.switch-label--small{font-size:var(--snice-font-size-sm, .875rem)}.switch-label--medium{font-size:var(--snice-font-size-md, 1rem)}.switch-label--large{font-size:var(--snice-font-size-lg, 1.125rem)}.switch-wrapper--disabled .switch-label{color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:not-allowed}.switch-label--required::after{content:' *';color:var(--snice-color-danger,rgb(220 38 38))}.switch-state-label,.switch-track-sizer>span{font-size:.5rem;font-weight:var(--snice-font-weight-bold,700);text-transform:uppercase;letter-spacing:var(--snice-tracking-widest, .1em)}.switch-state-label{position:absolute;top:50%;transform:translateY(-50%);opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease;pointer-events:none;z-index:1}.switch-track-sizer{display:grid;visibility:hidden}.switch-track-sizer>span{grid-area:1/1;white-space:nowrap}.switch-state-label--on{left:.3125rem;color:var(--snice-color-text-inverse,rgb(250 250 250))}.switch-state-label--off{right:.375rem;color:var(--snice-color-text,rgb(23 23 23))}.switch-track--medium .switch-state-label,.switch-track--medium .switch-track-sizer>span{font-size:.5625rem}.switch-track--medium .switch-track-sizer{padding-left:calc(1.25rem + 6px);padding-right:.5rem}.switch-track--large .switch-track-sizer{padding-left:calc(1.5rem + 6px);padding-right:.5rem}.switch-track--medium .switch-state-label--on{left:.3125rem}.switch-track--medium .switch-state-label--off{right:.5rem}.switch-track--large .switch-state-label,.switch-track--large .switch-track-sizer>span{font-size:.625rem}.switch-track--large .switch-state-label--on{left:.4375rem}.switch-track--large .switch-state-label--off{right:.5rem}.switch-input:checked~.switch-track .switch-state-label--on,.switch-input:not(:checked)~.switch-track .switch-state-label--off{opacity:1}.switch-track--small .switch-state-label,.switch-track--small .switch-track-sizer{display:none}.switch-track--loading .switch-thumb{animation:1s ease-in-out infinite switch-pulse}@keyframes switch-pulse{0%,100%{opacity:1}50%{opacity:.5}}.switch-wrapper--loading{cursor:wait;opacity:.7}.switch-track--loading{cursor:wait}.switch-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:none}.switch-spinner::after{content:'';display:block;width:.625em;height:.625em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";","import { element, property, state, query, on, watch, dispatch, ready, reconnect, dispose, render, styles, html, css } from 'snice';\nimport cssContent from './snice-switch.css?inline';\nimport type { SwitchSize, SniceSwitchElement } from './snice-switch.types';\nimport { applyElementInternalsFormValue, applyElementInternalsValidity, findFormOwner, hasValidityError } from '../form-control-validity';\nimport { FormLabelAssociation } from '../form-label-association';\n\n@element('snice-switch', { formAssociated: true, delegatesFocus: true })\nexport class SniceSwitch extends HTMLElement implements SniceSwitchElement {\n internals!: ElementInternals;\n private dirtyCheckedness = false;\n\n @state()\n private checkedState = false;\n\n @state()\n private formDisabled = false;\n\n @state()\n private constraintInvalid = false;\n\n private customValidationMessage = '';\n private readonly labelAssociation: FormLabelAssociation;\n\n constructor() {\n super();\n if (typeof this.attachInternals == 'function') {\n this.internals = this.attachInternals();\n }\n this.labelAssociation = new FormLabelAssociation(\n this,\n () => this.internals,\n () => this.interactionDisabled ? undefined : this.input,\n () => this.label || 'Switch'\n );\n }\n\n /**\n * Live checkedness. Assignments do not rewrite the authored default.\n * @public\n */\n get checked(): boolean {\n return this.checkedState;\n }\n\n set checked(value: boolean) {\n this.setCheckedness(Boolean(value), true);\n }\n\n /** The `checked` content attribute and form-reset default. */\n @property({ type: Boolean, attribute: 'checked' })\n defaultChecked = false;\n\n formAssociatedCallback() {\n this.syncFormState();\n }\n\n formResetCallback() {\n this.dirtyCheckedness = false;\n this.setCheckedness(this.defaultChecked, false);\n this.syncFormState();\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncValidity();\n }\n\n formStateRestoreCallback(state: File | string | FormData | null) {\n if (state === 'checked') this.setCheckedness(true, true);\n else if (state === 'unchecked') this.setCheckedness(false, true);\n this.syncFormState();\n }\n\n @property({ type: Boolean, })\n disabled = false;\n\n @property({ type: Boolean, })\n loading = false;\n\n @property({ type: Boolean, })\n required = false;\n\n @property({ type: Boolean, })\n invalid = false;\n\n @property({ })\n size: SwitchSize = 'medium';\n\n @property({ })\n name = '';\n\n @property({ })\n value = 'on';\n\n @property({ })\n label = '';\n\n @property({ attribute: 'label-on' })\n labelOn = '';\n\n @property({ attribute: 'label-off' })\n labelOff = '';\n\n @query('.switch-input')\n input?: HTMLInputElement;\n\n @query('.switch-track')\n track?: HTMLElement;\n\n @query('.switch-label')\n labelElement?: HTMLElement;\n\n @query('.switch-wrapper')\n wrapper?: HTMLElement;\n\n @query('.switch-state-label--on')\n onLabel?: HTMLElement;\n\n @query('.switch-state-label--off')\n offLabel?: HTMLElement;\n\n private inputId = `snice-switch-${Math.random().toString(36).slice(2, 10)}`;\n private labelId = `${this.inputId}-label`;\n\n private get interactionDisabled(): boolean {\n return this.disabled || this.formDisabled || this.loading;\n }\n\n @render()\n render() {\n const displayedInvalid = this.invalid || this.constraintInvalid;\n const accessibleName = this.labelAssociation.accessibleName;\n const wrapperClasses = `switch-wrapper${this.interactionDisabled ? ' switch-wrapper--disabled' : ''}${this.loading ? ' switch-wrapper--loading' : ''}`;\n const trackClasses = `switch-track switch-track--${this.size}${displayedInvalid ? ' switch-track--invalid' : ''}${this.loading ? ' switch-track--loading' : ''}`;\n const labelClasses = `switch-label switch-label--${this.size}${this.required ? ' switch-label--required' : ''}`;\n\n return html/*html*/`\n <label class=\"${wrapperClasses}\" for=\"${this.inputId}\">\n <input\n id=\"${this.inputId}\"\n type=\"checkbox\"\n class=\"switch-input\"\n ?checked=\"${this.checked}\"\n ?disabled=\"${this.interactionDisabled}\"\n ?required=\"${this.required}\"\n name=\"${this.name}\"\n value=\"${this.value}\"\n aria-invalid=\"${displayedInvalid}\"\n aria-checked=\"${this.checked}\"\n aria-label=\"${accessibleName}\"\n role=\"switch\"\n part=\"input\"\n @change=${this.handleChange}\n />\n\n <span class=\"${trackClasses}\" part=\"track\">\n <span class=\"switch-thumb\" part=\"thumb\">\n <if ${this.loading}>\n <span class=\"switch-spinner\" part=\"spinner\"></span>\n </if>\n </span>\n <if ${this.labelOn || this.labelOff}>\n <span class=\"switch-state-label switch-state-label--on\" part=\"label-on\">${this.labelOn}</span>\n <span class=\"switch-state-label switch-state-label--off\" part=\"label-off\">${this.labelOff}</span>\n <span class=\"switch-track-sizer\" aria-hidden=\"true\">\n <span>${this.labelOn}</span>\n <span>${this.labelOff}</span>\n </span>\n </if>\n </span>\n\n <if ${this.label}>\n <span class=\"${labelClasses}\" part=\"label\" id=\"${this.labelId}\">\n ${this.label}\n </span>\n </if>\n </label>\n `;\n }\n\n @styles()\n styles() {\n return css/*css*/`${cssContent}`;\n }\n\n @ready()\n init() {\n if (Object.prototype.hasOwnProperty.call(this, 'checked')) {\n const checked = Boolean((this as { checked: unknown }).checked);\n delete (this as Partial<{ checked: unknown }>).checked;\n this.checked = checked;\n } else if (!this.dirtyCheckedness) {\n this.setCheckedness(this.defaultChecked, false);\n }\n\n // Set initial states\n if (this.input) {\n this.input.checked = this.checked;\n\n // Set form value\n if (this.name) {\n this.input.name = this.name;\n }\n if (this.value) {\n this.input.value = this.value;\n }\n }\n\n this.syncFormState();\n this.labelAssociation.connect();\n\n // Update state labels if provided\n this.updateStateLabels();\n }\n\n @reconnect()\n private onReconnect() {\n this.labelAssociation.connect();\n }\n\n private setCheckedness(checked: boolean, dirty: boolean) {\n if (dirty) this.dirtyCheckedness = true;\n this.checkedState = checked;\n }\n\n private syncFormState() {\n applyElementInternalsFormValue(\n this.internals,\n this.checked ? this.value : null,\n this.checked ? 'checked' : 'unchecked'\n );\n this.syncValidity();\n }\n\n private syncValidity() {\n if (this.input) {\n this.input.checked = this.checked;\n this.input.required = this.required;\n this.input.disabled = this.interactionDisabled;\n this.input.setCustomValidity(this.customValidationMessage);\n }\n\n const flags: ValidityStateFlags = this.interactionDisabled ? {} : {\n customError: Boolean(this.customValidationMessage),\n valueMissing: this.required && !this.checked\n };\n const hasError = hasValidityError(flags);\n const message = this.customValidationMessage || this.input?.validationMessage ||\n (hasError ? 'Please turn on this switch.' : '');\n this.constraintInvalid = hasError;\n const displayedInvalid = this.invalid || hasError;\n this.input?.setAttribute('aria-invalid', String(displayedInvalid));\n this.track?.classList.toggle('switch-track--invalid', displayedInvalid);\n applyElementInternalsValidity(this.internals, flags, message, this.input);\n }\n\n handleChange(e: Event) {\n const target = e.currentTarget as HTMLElement;\n if (!target.matches('.switch-input')) return;\n\n const input = target as HTMLInputElement;\n this.checked = input.checked;\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n this.dispatchChangeEvent();\n }\n\n @on('click')\n handleClick(e: Event) {\n const target = e.target as HTMLElement;\n if (!target.matches('.switch-input')) return;\n\n // Allow click to propagate for label association\n e.stopPropagation();\n }\n\n @watch('checkedState')\n handleCheckedChange() {\n if (this.input) {\n this.input.checked = this.checked;\n this.input.setAttribute('aria-checked', String(this.checked));\n }\n this.syncFormState();\n }\n\n @watch('disabled', 'loading', 'formDisabled')\n handleDisabledChange() {\n if (this.input) {\n this.input.disabled = this.interactionDisabled;\n }\n if (this.wrapper) {\n this.wrapper.classList.toggle('switch-wrapper--disabled', this.interactionDisabled);\n }\n this.syncValidity();\n }\n\n @watch('invalid')\n handleInvalidChange() {\n if (this.input) {\n this.input.setAttribute('aria-invalid', String(this.invalid || this.constraintInvalid));\n }\n if (this.track) {\n this.track.classList.toggle('switch-track--invalid', this.invalid || this.constraintInvalid);\n }\n }\n\n @watch('required')\n handleRequiredChange() {\n if (this.input) {\n this.input.required = this.required;\n }\n if (this.labelElement) {\n this.labelElement.classList.toggle('switch-label--required', this.required);\n }\n this.syncValidity();\n }\n\n @watch('label')\n handleLabelChange() {\n if (this.labelElement) {\n this.labelElement.textContent = this.label;\n this.labelElement.style.display = this.label ? '' : 'none';\n }\n this.labelAssociation.sync();\n }\n\n @watch('labelOn', 'labelOff')\n handleStateLabelChange() {\n this.updateStateLabels();\n }\n\n @watch('name')\n handleNameChange() {\n if (this.input) {\n this.input.name = this.name;\n }\n }\n\n @watch('value')\n handleValueChange() {\n if (this.input) {\n this.input.value = this.value;\n }\n this.syncFormState();\n }\n\n @watch('defaultChecked')\n handleDefaultCheckedChange() {\n if (!this.dirtyCheckedness) this.setCheckedness(this.defaultChecked, false);\n }\n\n private updateStateLabels() {\n if (this.onLabel) {\n this.onLabel.textContent = this.labelOn;\n this.onLabel.style.display = this.labelOn ? '' : 'none';\n }\n if (this.offLabel) {\n this.offLabel.textContent = this.labelOff;\n this.offLabel.style.display = this.labelOff ? '' : 'none';\n }\n }\n\n @dispatch('switch-change', { bubbles: true, composed: true })\n private dispatchChangeEvent() {\n return {\n checked: this.checked,\n switch: this\n };\n }\n\n // Public API\n focus() {\n this.input?.focus();\n }\n\n blur() {\n this.input?.blur();\n }\n\n click() {\n if (this.interactionDisabled) return;\n this.input?.click();\n }\n\n toggle() {\n this.click();\n }\n\n /** Native-compatible control type. @public */\n get type(): 'checkbox' {\n return 'checkbox';\n }\n\n /** Owning form, including association through a `form` attribute. @public */\n get form(): HTMLFormElement | null {\n return findFormOwner(this, this.internals);\n }\n\n /** Current native constraint-validation state. @public */\n get validity(): ValidityState {\n return this.internals?.validity ?? this.input!.validity;\n }\n\n /** Current localized validation message. @public */\n get validationMessage(): string {\n return this.internals?.validationMessage ?? this.input?.validationMessage ?? '';\n }\n\n /** Whether this switch currently participates in constraint validation. @public */\n get willValidate(): boolean {\n if (this.interactionDisabled) return false;\n return this.internals?.willValidate ?? this.input?.willValidate ?? false;\n }\n\n /** Labels associated with the host. @public */\n get labels(): NodeList | null {\n return this.labelAssociation.labels;\n }\n\n checkValidity(): boolean {\n this.syncValidity();\n return this.internals?.checkValidity() ?? this.input?.checkValidity() ?? true;\n }\n\n reportValidity(): boolean {\n this.syncValidity();\n return this.internals?.reportValidity() ?? this.input?.reportValidity() ?? true;\n }\n\n setCustomValidity(message: string): void {\n this.customValidationMessage = String(message);\n this.syncValidity();\n }\n\n @dispose()\n private cleanup() {\n this.labelAssociation.disconnect();\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -141,6 +141,7 @@ export declare class SniceTable extends HTMLElement implements SniceTableElement
|
|
|
141
141
|
styles(): import("snice").CSSResult;
|
|
142
142
|
render(): import("snice").TemplateResult;
|
|
143
143
|
renderControls(): void;
|
|
144
|
+
handleFrameResize(): void;
|
|
144
145
|
initialize(): Promise<void>;
|
|
145
146
|
private processSlottedContent;
|
|
146
147
|
/** Whether declarative rows need the full grouping/aggregation table model. */
|
|
@@ -190,6 +191,14 @@ export declare class SniceTable extends HTMLElement implements SniceTableElement
|
|
|
190
191
|
renderHeader(): void;
|
|
191
192
|
renderSortableHeader(column: any): string;
|
|
192
193
|
renderBody(): void;
|
|
194
|
+
/**
|
|
195
|
+
* When the host is taller than its rows, append an inert filler row so the
|
|
196
|
+
* column grid runs to the bottom edge of the frame. Cloned from the last
|
|
197
|
+
* data row, so column widths, pinning, and alignment track the table
|
|
198
|
+
* engine natively. Removed entirely when content fills (or overflows) the
|
|
199
|
+
* frame, restoring the plain last-row styling.
|
|
200
|
+
*/
|
|
201
|
+
private updateFillRow;
|
|
193
202
|
private reconcileRows;
|
|
194
203
|
/**
|
|
195
204
|
* A structural fingerprint of everything `createRow` reads that is NOT
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from 'tslib';
|
|
2
|
-
import { element, property, query, request, styles, render, ready, on, watch, dispatch, dispose, css, html } from 'snice';
|
|
2
|
+
import { element, property, query, request, styles, render, observe, ready, on, watch, dispatch, dispose, css, html } from 'snice';
|
|
3
3
|
import '../input/snice-input.js';
|
|
4
4
|
import '../select/snice-select.js';
|
|
5
5
|
import '../button/snice-button.js';
|
|
@@ -192,6 +192,7 @@ let SniceTable = (() => {
|
|
|
192
192
|
let _getTableData_decorators;
|
|
193
193
|
let _styles_decorators;
|
|
194
194
|
let _render_decorators;
|
|
195
|
+
let _handleFrameResize_decorators;
|
|
195
196
|
let _initialize_decorators;
|
|
196
197
|
let _handleDeclarativeColumnChange_decorators;
|
|
197
198
|
let _handleSelectorOptionsChange_decorators;
|
|
@@ -289,6 +290,7 @@ let SniceTable = (() => {
|
|
|
289
290
|
_getTableData_decorators = [request('table/data')];
|
|
290
291
|
_styles_decorators = [styles()];
|
|
291
292
|
_render_decorators = [render()];
|
|
293
|
+
_handleFrameResize_decorators = [observe('resize', '.table-frame')];
|
|
292
294
|
_initialize_decorators = [ready()];
|
|
293
295
|
_handleDeclarativeColumnChange_decorators = [on('column-changed')];
|
|
294
296
|
_handleSelectorOptionsChange_decorators = [watch('selectorOptions')];
|
|
@@ -337,6 +339,7 @@ let SniceTable = (() => {
|
|
|
337
339
|
__esDecorate(this, null, _getTableData_decorators, { kind: "method", name: "getTableData", static: false, private: false, access: { has: obj => "getTableData" in obj, get: obj => obj.getTableData }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
338
340
|
__esDecorate(this, null, _styles_decorators, { kind: "method", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
339
341
|
__esDecorate(this, null, _render_decorators, { kind: "method", name: "render", static: false, private: false, access: { has: obj => "render" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
342
|
+
__esDecorate(this, null, _handleFrameResize_decorators, { kind: "method", name: "handleFrameResize", static: false, private: false, access: { has: obj => "handleFrameResize" in obj, get: obj => obj.handleFrameResize }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
340
343
|
__esDecorate(this, null, _initialize_decorators, { kind: "method", name: "initialize", static: false, private: false, access: { has: obj => "initialize" in obj, get: obj => obj.initialize }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
341
344
|
__esDecorate(this, null, _handleDeclarativeColumnChange_decorators, { kind: "method", name: "handleDeclarativeColumnChange", static: false, private: false, access: { has: obj => "handleDeclarativeColumnChange" in obj, get: obj => obj.handleDeclarativeColumnChange }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
342
345
|
__esDecorate(this, null, _handleSelectorOptionsChange_decorators, { kind: "method", name: "handleSelectorOptionsChange", static: false, private: false, access: { has: obj => "handleSelectorOptionsChange" in obj, get: obj => obj.handleSelectorOptionsChange }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -655,6 +658,27 @@ let SniceTable = (() => {
|
|
|
655
658
|
border-bottom: none;
|
|
656
659
|
}
|
|
657
660
|
|
|
661
|
+
/* Height fill: when the host is taller than its rows, an inert filler
|
|
662
|
+
row (cloned from the last data row, so column widths and pinning
|
|
663
|
+
track the table engine) keeps the column grid running to the bottom
|
|
664
|
+
edge instead of the borders cutting off where the rows end. */
|
|
665
|
+
tbody tr.table-fill-row {
|
|
666
|
+
pointer-events: none;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
tbody tr.table-fill-row td {
|
|
670
|
+
border-bottom: none;
|
|
671
|
+
padding: 0;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
:host([striped]) tbody tr.table-fill-row {
|
|
675
|
+
background: transparent;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
:host([hoverable]) tbody tr.table-fill-row:hover {
|
|
679
|
+
background: transparent;
|
|
680
|
+
}
|
|
681
|
+
|
|
658
682
|
th {
|
|
659
683
|
padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-sm, 0.75rem);
|
|
660
684
|
}
|
|
@@ -1678,6 +1702,11 @@ let SniceTable = (() => {
|
|
|
1678
1702
|
}
|
|
1679
1703
|
container.appendChild(controlsDiv);
|
|
1680
1704
|
}
|
|
1705
|
+
// Re-derive the fill row whenever the frame's box changes (host resized,
|
|
1706
|
+
// fullscreen toggled) — the leftover space below the rows changes with it.
|
|
1707
|
+
handleFrameResize() {
|
|
1708
|
+
this.updateFillRow();
|
|
1709
|
+
}
|
|
1681
1710
|
async initialize() {
|
|
1682
1711
|
// Listen for controller attached event
|
|
1683
1712
|
this.addEventListener('controller-attached', this.onAttached);
|
|
@@ -2656,6 +2685,44 @@ let SniceTable = (() => {
|
|
|
2656
2685
|
if (this.pagination) {
|
|
2657
2686
|
this.renderPagination();
|
|
2658
2687
|
}
|
|
2688
|
+
this.updateFillRow();
|
|
2689
|
+
}
|
|
2690
|
+
/**
|
|
2691
|
+
* When the host is taller than its rows, append an inert filler row so the
|
|
2692
|
+
* column grid runs to the bottom edge of the frame. Cloned from the last
|
|
2693
|
+
* data row, so column widths, pinning, and alignment track the table
|
|
2694
|
+
* engine natively. Removed entirely when content fills (or overflows) the
|
|
2695
|
+
* frame, restoring the plain last-row styling.
|
|
2696
|
+
*/
|
|
2697
|
+
updateFillRow() {
|
|
2698
|
+
const frame = this.shadowRoot?.querySelector('.table-frame');
|
|
2699
|
+
const tableEl = frame?.querySelector('table');
|
|
2700
|
+
const tbody = tableEl?.querySelector('tbody');
|
|
2701
|
+
if (!frame || !tableEl || !tbody)
|
|
2702
|
+
return;
|
|
2703
|
+
tbody.querySelector('tr.table-fill-row')?.remove();
|
|
2704
|
+
if (this.list && this.listRenderer)
|
|
2705
|
+
return;
|
|
2706
|
+
const rows = tbody.querySelectorAll('tr[data-index]');
|
|
2707
|
+
const lastRow = rows[rows.length - 1];
|
|
2708
|
+
if (!lastRow)
|
|
2709
|
+
return;
|
|
2710
|
+
const leftover = Math.floor(frame.clientHeight - tableEl.offsetHeight);
|
|
2711
|
+
if (leftover <= 1)
|
|
2712
|
+
return;
|
|
2713
|
+
const fill = lastRow.cloneNode(true);
|
|
2714
|
+
fill.className = 'table-fill-row';
|
|
2715
|
+
for (const attr of ['data-index', 'data-selected', 'role', 'aria-rowindex', 'aria-selected', 'tabindex', 'id']) {
|
|
2716
|
+
fill.removeAttribute(attr);
|
|
2717
|
+
}
|
|
2718
|
+
fill.setAttribute('aria-hidden', 'true');
|
|
2719
|
+
fill.querySelectorAll('td').forEach(td => {
|
|
2720
|
+
td.replaceChildren();
|
|
2721
|
+
for (const attr of ['role', 'aria-colindex', 'tabindex', 'aria-selected'])
|
|
2722
|
+
td.removeAttribute(attr);
|
|
2723
|
+
});
|
|
2724
|
+
fill.style.height = `${leftover}px`;
|
|
2725
|
+
tbody.appendChild(fill);
|
|
2659
2726
|
}
|
|
2660
2727
|
// ── Task B: render-path reconciler ──────────────────────────────────────
|
|
2661
2728
|
//
|
|
@@ -4410,7 +4477,10 @@ let SniceTable = (() => {
|
|
|
4410
4477
|
const td = document.createElement('td');
|
|
4411
4478
|
td.setAttribute('data-key', column.key);
|
|
4412
4479
|
td.setAttribute('part', 'cell');
|
|
4413
|
-
const
|
|
4480
|
+
const rawValue = rowData[column.key];
|
|
4481
|
+
// Display path must run the same valueGetter the sort/grouping/editor
|
|
4482
|
+
// paths already apply.
|
|
4483
|
+
const value = column.valueGetter ? column.valueGetter(rawValue, rowData) : rawValue;
|
|
4414
4484
|
this.applyCellPresentation(td, column, value, rowData);
|
|
4415
4485
|
// Column span
|
|
4416
4486
|
const colSpanDef = column.colSpan;
|