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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["avatar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,kBAAkB,CAAC,EAAE,GAAG,CAAC;CAE1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAKrE,CAAC","sourcesContent":["// GENERATED FILE — DO NOT EDIT.\n// Source: components/avatar/ + scripts/generate-react-adapters.js\n// Rebuild: npm run generate:react-adapters\nimport { createReactAdapter, type SniceReactComponent } from './wrapper';\nimport type { SniceBaseProps, SniceComponentRef } from './types';\n\n\n/**\n * Props for the Avatar component\n */\nexport interface AvatarProps extends SniceBaseProps {\n src?: any;\n alt?: any;\n name?: any;\n size?: any;\n shape?: any;\n fallbackColor?: any;\n fallbackBackground?: any;\n\n}\n\n/**\n * Avatar - React adapter for snice-avatar\n *\n * This is an auto-generated React wrapper for the Snice avatar component.\n * Make sure to import the Snice component before using this wrapper:\n *\n * @example\n * ```tsx\n * import 'snice/components/avatar/snice-avatar';\n * import { Avatar } from 'snice/react';\n *\n * function MyComponent() {\n * return <Avatar />;\n * }\n * ```\n */\nexport const Avatar: SniceReactComponent<AvatarProps, SniceComponentRef> = createReactAdapter<AvatarProps, false>({\n tagName: 'snice-avatar',\n properties: [\"src\",\"alt\",\"name\",\"size\",\"shape\",\"fallbackColor\",\"fallbackBackground\"],\n events: {},\n formAssociated: false\n});\n"]}
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["avatar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,kBAAkB,CAAC,EAAE,GAAG,CAAC;CAE1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,EAAE,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAKrE,CAAC","sourcesContent":["// GENERATED FILE — DO NOT EDIT.\n// Source: components/avatar/ + scripts/generate-react-adapters.js\n// Rebuild: npm run generate:react-adapters\nimport { createReactAdapter, type SniceReactComponent } from './wrapper';\nimport type { SniceBaseProps, SniceComponentRef } from './types';\n\n\n/**\n * Props for the Avatar component\n */\nexport interface AvatarProps extends SniceBaseProps {\n src?: any;\n alt?: any;\n name?: any;\n size?: any;\n shape?: any;\n loading?: any;\n fallbackColor?: any;\n fallbackBackground?: any;\n\n}\n\n/**\n * Avatar - React adapter for snice-avatar\n *\n * This is an auto-generated React wrapper for the Snice avatar component.\n * Make sure to import the Snice component before using this wrapper:\n *\n * @example\n * ```tsx\n * import 'snice/components/avatar/snice-avatar';\n * import { Avatar } from 'snice/react';\n *\n * function MyComponent() {\n * return <Avatar />;\n * }\n * ```\n */\nexport const Avatar: SniceReactComponent<AvatarProps, SniceComponentRef> = createReactAdapter<AvatarProps, false>({\n tagName: 'snice-avatar',\n properties: [\"src\",\"alt\",\"name\",\"size\",\"shape\",\"loading\",\"fallbackColor\",\"fallbackBackground\"],\n events: {},\n formAssociated: false\n});\n"]}
|
package/adapters/react/avatar.js
CHANGED
|
@@ -20,7 +20,7 @@ import { createReactAdapter } from './wrapper';
|
|
|
20
20
|
*/
|
|
21
21
|
export const Avatar = createReactAdapter({
|
|
22
22
|
tagName: 'snice-avatar',
|
|
23
|
-
properties: ["src", "alt", "name", "size", "shape", "fallbackColor", "fallbackBackground"],
|
|
23
|
+
properties: ["src", "alt", "name", "size", "shape", "loading", "fallbackColor", "fallbackBackground"],
|
|
24
24
|
events: {},
|
|
25
25
|
formAssociated: false
|
|
26
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["avatar.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,kEAAkE;AAClE,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAA4B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["avatar.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,kEAAkE;AAClE,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAA4B,MAAM,WAAW,CAAC;AAmBzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,MAAM,GAAwD,kBAAkB,CAAqB;IAChH,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,CAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,eAAe,EAAC,oBAAoB,CAAC;IAC9F,MAAM,EAAE,EAAE;IACV,cAAc,EAAE,KAAK;CACtB,CAAC,CAAC","sourcesContent":["// GENERATED FILE — DO NOT EDIT.\n// Source: components/avatar/ + scripts/generate-react-adapters.js\n// Rebuild: npm run generate:react-adapters\nimport { createReactAdapter, type SniceReactComponent } from './wrapper';\nimport type { SniceBaseProps, SniceComponentRef } from './types';\n\n\n/**\n * Props for the Avatar component\n */\nexport interface AvatarProps extends SniceBaseProps {\n src?: any;\n alt?: any;\n name?: any;\n size?: any;\n shape?: any;\n loading?: any;\n fallbackColor?: any;\n fallbackBackground?: any;\n\n}\n\n/**\n * Avatar - React adapter for snice-avatar\n *\n * This is an auto-generated React wrapper for the Snice avatar component.\n * Make sure to import the Snice component before using this wrapper:\n *\n * @example\n * ```tsx\n * import 'snice/components/avatar/snice-avatar';\n * import { Avatar } from 'snice/react';\n *\n * function MyComponent() {\n * return <Avatar />;\n * }\n * ```\n */\nexport const Avatar: SniceReactComponent<AvatarProps, SniceComponentRef> = createReactAdapter<AvatarProps, false>({\n tagName: 'snice-avatar',\n properties: [\"src\",\"alt\",\"name\",\"size\",\"shape\",\"loading\",\"fallbackColor\",\"fallbackBackground\"],\n events: {},\n formAssociated: false\n});\n"]}
|
|
@@ -14,6 +14,7 @@ export interface AvatarProps extends SniceBaseProps {
|
|
|
14
14
|
name?: any;
|
|
15
15
|
size?: any;
|
|
16
16
|
shape?: any;
|
|
17
|
+
loading?: any;
|
|
17
18
|
fallbackColor?: any;
|
|
18
19
|
fallbackBackground?: any;
|
|
19
20
|
|
|
@@ -37,7 +38,7 @@ export interface AvatarProps extends SniceBaseProps {
|
|
|
37
38
|
*/
|
|
38
39
|
export const Avatar: SniceReactComponent<AvatarProps, SniceComponentRef> = createReactAdapter<AvatarProps, false>({
|
|
39
40
|
tagName: 'snice-avatar',
|
|
40
|
-
properties: ["src","alt","name","size","shape","fallbackColor","fallbackBackground"],
|
|
41
|
+
properties: ["src","alt","name","size","shape","loading","fallbackColor","fallbackBackground"],
|
|
41
42
|
events: {},
|
|
42
43
|
formAssociated: false
|
|
43
44
|
});
|
|
@@ -14,6 +14,10 @@ export interface CalendarProps extends SniceBaseProps {
|
|
|
14
14
|
showWeekNumbers?: any;
|
|
15
15
|
firstDayOfWeek?: any;
|
|
16
16
|
locale?: any;
|
|
17
|
+
noDaySelect?: any;
|
|
18
|
+
cellSizing?: any;
|
|
19
|
+
eventTooltip?: any;
|
|
20
|
+
eventPopover?: any;
|
|
17
21
|
onCalendarChange?: (event: any) => void;
|
|
18
22
|
onCalendarEventClick?: (event: any) => void;
|
|
19
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["calendar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,EAAE,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAKzE,CAAC","sourcesContent":["// GENERATED FILE — DO NOT EDIT.\n// Source: components/calendar/ + scripts/generate-react-adapters.js\n// Rebuild: npm run generate:react-adapters\nimport { createReactAdapter, type SniceReactComponent } from './wrapper';\nimport type { SniceBaseProps, SniceComponentRef } from './types';\n\n\n/**\n * Props for the Calendar component\n */\nexport interface CalendarProps extends SniceBaseProps {\n value?: any;\n view?: any;\n events?: any;\n minDate?: any;\n maxDate?: any;\n disabledDates?: any;\n highlightToday?: any;\n showWeekNumbers?: any;\n firstDayOfWeek?: any;\n locale?: any;\n onCalendarChange?: (event: any) => void;\n onCalendarEventClick?: (event: any) => void;\n}\n\n/**\n * Calendar - React adapter for snice-calendar\n *\n * This is an auto-generated React wrapper for the Snice calendar component.\n * Make sure to import the Snice component before using this wrapper:\n *\n * @example\n * ```tsx\n * import 'snice/components/calendar/snice-calendar';\n * import { Calendar } from 'snice/react';\n *\n * function MyComponent() {\n * return <Calendar />;\n * }\n * ```\n */\nexport const Calendar: SniceReactComponent<CalendarProps, SniceComponentRef> = createReactAdapter<CalendarProps, false>({\n tagName: 'snice-calendar',\n properties: [\"value\",\"view\",\"events\",\"minDate\",\"maxDate\",\"disabledDates\",\"highlightToday\",\"showWeekNumbers\",\"firstDayOfWeek\",\"locale\"],\n events: {\"calendar-change\":\"onCalendarChange\",\"calendar-event-click\":\"onCalendarEventClick\"},\n formAssociated: false\n});\n"]}
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["calendar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,EAAE,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAKzE,CAAC","sourcesContent":["// GENERATED FILE — DO NOT EDIT.\n// Source: components/calendar/ + scripts/generate-react-adapters.js\n// Rebuild: npm run generate:react-adapters\nimport { createReactAdapter, type SniceReactComponent } from './wrapper';\nimport type { SniceBaseProps, SniceComponentRef } from './types';\n\n\n/**\n * Props for the Calendar component\n */\nexport interface CalendarProps extends SniceBaseProps {\n value?: any;\n view?: any;\n events?: any;\n minDate?: any;\n maxDate?: any;\n disabledDates?: any;\n highlightToday?: any;\n showWeekNumbers?: any;\n firstDayOfWeek?: any;\n locale?: any;\n noDaySelect?: any;\n cellSizing?: any;\n eventTooltip?: any;\n eventPopover?: any;\n onCalendarChange?: (event: any) => void;\n onCalendarEventClick?: (event: any) => void;\n}\n\n/**\n * Calendar - React adapter for snice-calendar\n *\n * This is an auto-generated React wrapper for the Snice calendar component.\n * Make sure to import the Snice component before using this wrapper:\n *\n * @example\n * ```tsx\n * import 'snice/components/calendar/snice-calendar';\n * import { Calendar } from 'snice/react';\n *\n * function MyComponent() {\n * return <Calendar />;\n * }\n * ```\n */\nexport const Calendar: SniceReactComponent<CalendarProps, SniceComponentRef> = createReactAdapter<CalendarProps, false>({\n tagName: 'snice-calendar',\n properties: [\"value\",\"view\",\"events\",\"minDate\",\"maxDate\",\"disabledDates\",\"highlightToday\",\"showWeekNumbers\",\"firstDayOfWeek\",\"locale\",\"noDaySelect\",\"cellSizing\",\"eventTooltip\",\"eventPopover\"],\n events: {\"calendar-change\":\"onCalendarChange\",\"calendar-event-click\":\"onCalendarEventClick\"},\n formAssociated: false\n});\n"]}
|
|
@@ -20,7 +20,7 @@ import { createReactAdapter } from './wrapper';
|
|
|
20
20
|
*/
|
|
21
21
|
export const Calendar = createReactAdapter({
|
|
22
22
|
tagName: 'snice-calendar',
|
|
23
|
-
properties: ["value", "view", "events", "minDate", "maxDate", "disabledDates", "highlightToday", "showWeekNumbers", "firstDayOfWeek", "locale"],
|
|
23
|
+
properties: ["value", "view", "events", "minDate", "maxDate", "disabledDates", "highlightToday", "showWeekNumbers", "firstDayOfWeek", "locale", "noDaySelect", "cellSizing", "eventTooltip", "eventPopover"],
|
|
24
24
|
events: { "calendar-change": "onCalendarChange", "calendar-event-click": "onCalendarEventClick" },
|
|
25
25
|
formAssociated: false
|
|
26
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["calendar.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,oEAAoE;AACpE,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAA4B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["calendar.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,oEAAoE;AACpE,2CAA2C;AAC3C,OAAO,EAAE,kBAAkB,EAA4B,MAAM,WAAW,CAAC;AA0BzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA0D,kBAAkB,CAAuB;IACtH,OAAO,EAAE,gBAAgB;IACzB,UAAU,EAAE,CAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,eAAe,EAAC,gBAAgB,EAAC,iBAAiB,EAAC,gBAAgB,EAAC,QAAQ,EAAC,aAAa,EAAC,YAAY,EAAC,cAAc,EAAC,cAAc,CAAC;IAC/L,MAAM,EAAE,EAAC,iBAAiB,EAAC,kBAAkB,EAAC,sBAAsB,EAAC,sBAAsB,EAAC;IAC5F,cAAc,EAAE,KAAK;CACtB,CAAC,CAAC","sourcesContent":["// GENERATED FILE — DO NOT EDIT.\n// Source: components/calendar/ + scripts/generate-react-adapters.js\n// Rebuild: npm run generate:react-adapters\nimport { createReactAdapter, type SniceReactComponent } from './wrapper';\nimport type { SniceBaseProps, SniceComponentRef } from './types';\n\n\n/**\n * Props for the Calendar component\n */\nexport interface CalendarProps extends SniceBaseProps {\n value?: any;\n view?: any;\n events?: any;\n minDate?: any;\n maxDate?: any;\n disabledDates?: any;\n highlightToday?: any;\n showWeekNumbers?: any;\n firstDayOfWeek?: any;\n locale?: any;\n noDaySelect?: any;\n cellSizing?: any;\n eventTooltip?: any;\n eventPopover?: any;\n onCalendarChange?: (event: any) => void;\n onCalendarEventClick?: (event: any) => void;\n}\n\n/**\n * Calendar - React adapter for snice-calendar\n *\n * This is an auto-generated React wrapper for the Snice calendar component.\n * Make sure to import the Snice component before using this wrapper:\n *\n * @example\n * ```tsx\n * import 'snice/components/calendar/snice-calendar';\n * import { Calendar } from 'snice/react';\n *\n * function MyComponent() {\n * return <Calendar />;\n * }\n * ```\n */\nexport const Calendar: SniceReactComponent<CalendarProps, SniceComponentRef> = createReactAdapter<CalendarProps, false>({\n tagName: 'snice-calendar',\n properties: [\"value\",\"view\",\"events\",\"minDate\",\"maxDate\",\"disabledDates\",\"highlightToday\",\"showWeekNumbers\",\"firstDayOfWeek\",\"locale\",\"noDaySelect\",\"cellSizing\",\"eventTooltip\",\"eventPopover\"],\n events: {\"calendar-change\":\"onCalendarChange\",\"calendar-event-click\":\"onCalendarEventClick\"},\n formAssociated: false\n});\n"]}
|
|
@@ -19,6 +19,10 @@ export interface CalendarProps extends SniceBaseProps {
|
|
|
19
19
|
showWeekNumbers?: any;
|
|
20
20
|
firstDayOfWeek?: any;
|
|
21
21
|
locale?: any;
|
|
22
|
+
noDaySelect?: any;
|
|
23
|
+
cellSizing?: any;
|
|
24
|
+
eventTooltip?: any;
|
|
25
|
+
eventPopover?: any;
|
|
22
26
|
onCalendarChange?: (event: any) => void;
|
|
23
27
|
onCalendarEventClick?: (event: any) => void;
|
|
24
28
|
}
|
|
@@ -41,7 +45,7 @@ export interface CalendarProps extends SniceBaseProps {
|
|
|
41
45
|
*/
|
|
42
46
|
export const Calendar: SniceReactComponent<CalendarProps, SniceComponentRef> = createReactAdapter<CalendarProps, false>({
|
|
43
47
|
tagName: 'snice-calendar',
|
|
44
|
-
properties: ["value","view","events","minDate","maxDate","disabledDates","highlightToday","showWeekNumbers","firstDayOfWeek","locale"],
|
|
48
|
+
properties: ["value","view","events","minDate","maxDate","disabledDates","highlightToday","showWeekNumbers","firstDayOfWeek","locale","noDaySelect","cellSizing","eventTooltip","eventPopover"],
|
|
45
49
|
events: {"calendar-change":"onCalendarChange","calendar-event-click":"onCalendarEventClick"},
|
|
46
50
|
formAssociated: false
|
|
47
51
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v7.
|
|
2
|
+
* snice v7.6.0
|
|
3
3
|
* A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
@@ -42,6 +42,72 @@ function routeSpecificity(spec) {
|
|
|
42
42
|
return score;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
const EMPTY_QUERY_MARKER = '__snice_empty_query_value__';
|
|
46
|
+
const QUERY_PARAM_PATTERN = /=:[\w-]+\)?$/;
|
|
47
|
+
function containsDecodedMarker(url, marker) {
|
|
48
|
+
if (url.includes(marker))
|
|
49
|
+
return true;
|
|
50
|
+
const queryIndex = url.indexOf('?');
|
|
51
|
+
if (queryIndex === -1)
|
|
52
|
+
return false;
|
|
53
|
+
return url.slice(queryIndex + 1).split('&').some(part => {
|
|
54
|
+
try {
|
|
55
|
+
return decodeURIComponent(part).includes(marker);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function emptyQueryMarker(route, url) {
|
|
63
|
+
let marker = EMPTY_QUERY_MARKER;
|
|
64
|
+
while (route.spec.includes(marker) || containsDecodedMarker(url, marker)) {
|
|
65
|
+
marker += '_';
|
|
66
|
+
}
|
|
67
|
+
return marker;
|
|
68
|
+
}
|
|
69
|
+
function fillEmptyQueryParams(route, url, marker) {
|
|
70
|
+
const urlQueryIndex = url.indexOf('?');
|
|
71
|
+
const routeQueryIndex = route.spec.indexOf('?');
|
|
72
|
+
if (urlQueryIndex === -1 || routeQueryIndex === -1)
|
|
73
|
+
return null;
|
|
74
|
+
const urlParts = url.slice(urlQueryIndex + 1).split('&');
|
|
75
|
+
const routeParts = route.spec.slice(routeQueryIndex + 1).split('&');
|
|
76
|
+
let changed = false;
|
|
77
|
+
const normalizedParts = urlParts.map((part, index) => {
|
|
78
|
+
if (part.endsWith('=') && QUERY_PARAM_PATTERN.test(routeParts[index] ?? '')) {
|
|
79
|
+
changed = true;
|
|
80
|
+
return `${part}${marker}`;
|
|
81
|
+
}
|
|
82
|
+
return part;
|
|
83
|
+
});
|
|
84
|
+
if (!changed)
|
|
85
|
+
return null;
|
|
86
|
+
return `${url.slice(0, urlQueryIndex + 1)}${normalizedParts.join('&')}`;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Match through pica-route while preserving legal empty query parameter values.
|
|
90
|
+
* pica-route 1.1.2 rejects an empty param and therefore discards the whole route.
|
|
91
|
+
* Keep this compatibility shim in sync with packages/core/src/route-match.ts.
|
|
92
|
+
*/
|
|
93
|
+
function matchRoute(route, url) {
|
|
94
|
+
const directMatch = route.match(url);
|
|
95
|
+
if (directMatch !== false)
|
|
96
|
+
return directMatch;
|
|
97
|
+
const marker = emptyQueryMarker(route, url);
|
|
98
|
+
const normalizedUrl = fillEmptyQueryParams(route, url, marker);
|
|
99
|
+
if (normalizedUrl === null)
|
|
100
|
+
return false;
|
|
101
|
+
const params = route.match(normalizedUrl);
|
|
102
|
+
if (params === false)
|
|
103
|
+
return false;
|
|
104
|
+
for (const name of Object.keys(params)) {
|
|
105
|
+
if (params[name] === marker)
|
|
106
|
+
params[name] = '';
|
|
107
|
+
}
|
|
108
|
+
return params;
|
|
109
|
+
}
|
|
110
|
+
|
|
45
111
|
/**
|
|
46
112
|
* Match a URL path against an array of route configs.
|
|
47
113
|
* Uses pica-route — same matching as vanilla Snice's Router.
|
|
@@ -62,7 +128,7 @@ function matchRoutes(routes, pathname) {
|
|
|
62
128
|
|| a.registrationOrder - b.registrationOrder);
|
|
63
129
|
for (const route of sorted) {
|
|
64
130
|
const matcher = new Route(route.path);
|
|
65
|
-
const params = matcher
|
|
131
|
+
const params = matchRoute(matcher, pathname);
|
|
66
132
|
if (params !== false) {
|
|
67
133
|
return {
|
|
68
134
|
index: route.index,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchRoute.js","sources":["../../src/react/route-specificity.ts","../../src/react/matchRoute.ts"],"sourcesContent":["/**\n * Route specificity scorer for the React binding.\n *\n * IMPORTANT: keep this in exact sync with `src/route-specificity.ts`. The React\n * integration is bundled in isolation (rootDir: src/react) and cannot import\n * across that boundary, so the scorer is mirrored here. The `matchRoutes`\n * resolution tests exercise this copy, so behavioral drift is caught.\n *\n * Scoring is per-segment by ROLE, not string length: a static segment outweighs\n * a dynamic (`:param`) segment, which outweighs a wildcard (`*` / `*name`). So\n * `/post/new` beats `/post/:id`, and a splat always ranks last. Sort callers\n * descending by this score (highest = most specific = first).\n */\nconst STATIC_SEGMENT = 10;\nconst DYNAMIC_SEGMENT = 3;\nconst WILDCARD_SEGMENT = -2;\n\nexport function routeSpecificity(spec: string): number {\n const segments = spec.split('/').filter(Boolean);\n // Base on segment count so a deeper path outranks a shallower one on ties.\n let score = segments.length;\n\n for (const segment of segments) {\n if (segment.startsWith('*')) {\n score += WILDCARD_SEGMENT;\n } else if (segment.startsWith(':')) {\n score += DYNAMIC_SEGMENT;\n } else {\n score += STATIC_SEGMENT;\n }\n }\n\n return score;\n}\n","import { Route, type RouteParams } from 'pica-route';\nimport { routeSpecificity } from './route-specificity';\n\nexport interface RouteConfig {\n path: string;\n index: number;\n /** Lower values win when route specificity ties. Defaults to 0. */\n order?: number;\n}\n\nexport interface MatchResult {\n index: number;\n params: RouteParams;\n path: string;\n}\n\n/**\n * Match a URL path against an array of route configs.\n * Uses pica-route — same matching as vanilla Snice's Router.\n * Routes are sorted by per-segment specificity (static > dynamic > wildcard),\n * then optional lower-first order, then declaration order.\n */\nexport function matchRoutes(routes: RouteConfig[], pathname: string): MatchResult | null {\n for (const route of routes) {\n if (route.order !== undefined && !Number.isFinite(route.order)) {\n throw new TypeError(`Route order for \"${route.path}\" must be a finite number.`);\n }\n }\n // Sort by specificity (most specific first), same model as the vanilla Router.\n const sorted = routes\n .map((route, registrationOrder) => ({ ...route, registrationOrder }))\n .sort((a, b) =>\n routeSpecificity(b.path) - routeSpecificity(a.path)\n || (a.order ?? 0) - (b.order ?? 0)\n || a.registrationOrder - b.registrationOrder\n );\n\n for (const route of sorted) {\n const matcher = new Route(route.path);\n const params = matcher
|
|
1
|
+
{"version":3,"file":"matchRoute.js","sources":["../../src/react/route-specificity.ts","../../src/react/route-match.ts","../../src/react/matchRoute.ts"],"sourcesContent":["/**\n * Route specificity scorer for the React binding.\n *\n * IMPORTANT: keep this in exact sync with `src/route-specificity.ts`. The React\n * integration is bundled in isolation (rootDir: src/react) and cannot import\n * across that boundary, so the scorer is mirrored here. The `matchRoutes`\n * resolution tests exercise this copy, so behavioral drift is caught.\n *\n * Scoring is per-segment by ROLE, not string length: a static segment outweighs\n * a dynamic (`:param`) segment, which outweighs a wildcard (`*` / `*name`). So\n * `/post/new` beats `/post/:id`, and a splat always ranks last. Sort callers\n * descending by this score (highest = most specific = first).\n */\nconst STATIC_SEGMENT = 10;\nconst DYNAMIC_SEGMENT = 3;\nconst WILDCARD_SEGMENT = -2;\n\nexport function routeSpecificity(spec: string): number {\n const segments = spec.split('/').filter(Boolean);\n // Base on segment count so a deeper path outranks a shallower one on ties.\n let score = segments.length;\n\n for (const segment of segments) {\n if (segment.startsWith('*')) {\n score += WILDCARD_SEGMENT;\n } else if (segment.startsWith(':')) {\n score += DYNAMIC_SEGMENT;\n } else {\n score += STATIC_SEGMENT;\n }\n }\n\n return score;\n}\n","import type { Route, RouteParams } from 'pica-route';\n\nconst EMPTY_QUERY_MARKER = '__snice_empty_query_value__';\nconst QUERY_PARAM_PATTERN = /=:[\\w-]+\\)?$/;\n\nfunction containsDecodedMarker(url: string, marker: string): boolean {\n if (url.includes(marker)) return true;\n\n const queryIndex = url.indexOf('?');\n if (queryIndex === -1) return false;\n\n return url.slice(queryIndex + 1).split('&').some(part => {\n try {\n return decodeURIComponent(part).includes(marker);\n } catch {\n return false;\n }\n });\n}\n\nfunction emptyQueryMarker(route: Route, url: string): string {\n let marker = EMPTY_QUERY_MARKER;\n while (route.spec.includes(marker) || containsDecodedMarker(url, marker)) {\n marker += '_';\n }\n return marker;\n}\n\nfunction fillEmptyQueryParams(route: Route, url: string, marker: string): string | null {\n const urlQueryIndex = url.indexOf('?');\n const routeQueryIndex = route.spec.indexOf('?');\n if (urlQueryIndex === -1 || routeQueryIndex === -1) return null;\n\n const urlParts = url.slice(urlQueryIndex + 1).split('&');\n const routeParts = route.spec.slice(routeQueryIndex + 1).split('&');\n let changed = false;\n\n const normalizedParts = urlParts.map((part, index) => {\n if (part.endsWith('=') && QUERY_PARAM_PATTERN.test(routeParts[index] ?? '')) {\n changed = true;\n return `${part}${marker}`;\n }\n return part;\n });\n\n if (!changed) return null;\n return `${url.slice(0, urlQueryIndex + 1)}${normalizedParts.join('&')}`;\n}\n\n/**\n * Match through pica-route while preserving legal empty query parameter values.\n * pica-route 1.1.2 rejects an empty param and therefore discards the whole route.\n * Keep this compatibility shim in sync with packages/core/src/route-match.ts.\n */\nexport function matchRoute(route: Route, url: string): RouteParams | false {\n const directMatch = route.match(url);\n if (directMatch !== false) return directMatch;\n\n const marker = emptyQueryMarker(route, url);\n const normalizedUrl = fillEmptyQueryParams(route, url, marker);\n if (normalizedUrl === null) return false;\n\n const params = route.match(normalizedUrl);\n if (params === false) return false;\n\n for (const name of Object.keys(params)) {\n if (params[name] === marker) params[name] = '';\n }\n return params;\n}\n","import { Route, type RouteParams } from 'pica-route';\nimport { routeSpecificity } from './route-specificity';\nimport { matchRoute } from './route-match';\n\nexport interface RouteConfig {\n path: string;\n index: number;\n /** Lower values win when route specificity ties. Defaults to 0. */\n order?: number;\n}\n\nexport interface MatchResult {\n index: number;\n params: RouteParams;\n path: string;\n}\n\n/**\n * Match a URL path against an array of route configs.\n * Uses pica-route — same matching as vanilla Snice's Router.\n * Routes are sorted by per-segment specificity (static > dynamic > wildcard),\n * then optional lower-first order, then declaration order.\n */\nexport function matchRoutes(routes: RouteConfig[], pathname: string): MatchResult | null {\n for (const route of routes) {\n if (route.order !== undefined && !Number.isFinite(route.order)) {\n throw new TypeError(`Route order for \"${route.path}\" must be a finite number.`);\n }\n }\n // Sort by specificity (most specific first), same model as the vanilla Router.\n const sorted = routes\n .map((route, registrationOrder) => ({ ...route, registrationOrder }))\n .sort((a, b) =>\n routeSpecificity(b.path) - routeSpecificity(a.path)\n || (a.order ?? 0) - (b.order ?? 0)\n || a.registrationOrder - b.registrationOrder\n );\n\n for (const route of sorted) {\n const matcher = new Route(route.path);\n const params = matchRoute(matcher, pathname);\n if (params !== false) {\n return {\n index: route.index,\n params: params as RouteParams,\n path: route.path,\n };\n }\n }\n\n return null;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Route, RouteParams } from 'pica-route';
|
|
2
|
+
/**
|
|
3
|
+
* Match through pica-route while preserving legal empty query parameter values.
|
|
4
|
+
* pica-route 1.1.2 rejects an empty param and therefore discards the whole route.
|
|
5
|
+
* Keep this compatibility shim in sync with packages/core/src/route-match.ts.
|
|
6
|
+
*/
|
|
7
|
+
export declare function matchRoute(route: Route, url: string): RouteParams | false;
|
|
@@ -21,7 +21,7 @@ export const ANALYZER_CONTRACTS = {
|
|
|
21
21
|
"componentModules": 188,
|
|
22
22
|
"componentUtilityModules": 31,
|
|
23
23
|
"reactWrappers": 193,
|
|
24
|
-
"rootExports":
|
|
24
|
+
"rootExports": 119
|
|
25
25
|
},
|
|
26
26
|
"rootExports": [
|
|
27
27
|
"AdoptedOptions",
|
|
@@ -37,6 +37,7 @@ export const ANALYZER_CONTRACTS = {
|
|
|
37
37
|
"DispatchOptions",
|
|
38
38
|
"Duration",
|
|
39
39
|
"ElementOptions",
|
|
40
|
+
"EventTiming",
|
|
40
41
|
"Fetcher",
|
|
41
42
|
"Guard",
|
|
42
43
|
"IController",
|
|
@@ -1399,6 +1400,14 @@ export const ANALYZER_CONTRACTS = {
|
|
|
1399
1400
|
"type": "string",
|
|
1400
1401
|
"literals": []
|
|
1401
1402
|
},
|
|
1403
|
+
"loading": {
|
|
1404
|
+
"property": "loading",
|
|
1405
|
+
"type": "'lazy' | 'eager'",
|
|
1406
|
+
"literals": [
|
|
1407
|
+
"lazy",
|
|
1408
|
+
"eager"
|
|
1409
|
+
]
|
|
1410
|
+
},
|
|
1402
1411
|
"name": {
|
|
1403
1412
|
"property": "name",
|
|
1404
1413
|
"type": "string",
|
|
@@ -1447,6 +1456,11 @@ export const ANALYZER_CONTRACTS = {
|
|
|
1447
1456
|
"attribute": "fallback-color",
|
|
1448
1457
|
"structured": false
|
|
1449
1458
|
},
|
|
1459
|
+
"loading": {
|
|
1460
|
+
"type": "'lazy' | 'eager'",
|
|
1461
|
+
"attribute": "loading",
|
|
1462
|
+
"structured": false
|
|
1463
|
+
},
|
|
1450
1464
|
"name": {
|
|
1451
1465
|
"type": "string",
|
|
1452
1466
|
"attribute": "name",
|
|
@@ -2412,6 +2426,14 @@ export const ANALYZER_CONTRACTS = {
|
|
|
2412
2426
|
"sourceModule": "dist/components/calendar/snice-calendar.js",
|
|
2413
2427
|
"family": "calendar",
|
|
2414
2428
|
"attributes": {
|
|
2429
|
+
"cell-sizing": {
|
|
2430
|
+
"property": "cellSizing",
|
|
2431
|
+
"type": "'square' | 'stretch'",
|
|
2432
|
+
"literals": [
|
|
2433
|
+
"square",
|
|
2434
|
+
"stretch"
|
|
2435
|
+
]
|
|
2436
|
+
},
|
|
2415
2437
|
"first-day-of-week": {
|
|
2416
2438
|
"property": "firstDayOfWeek",
|
|
2417
2439
|
"type": "number",
|
|
@@ -2437,6 +2459,11 @@ export const ANALYZER_CONTRACTS = {
|
|
|
2437
2459
|
"type": "Date",
|
|
2438
2460
|
"literals": []
|
|
2439
2461
|
},
|
|
2462
|
+
"no-day-select": {
|
|
2463
|
+
"property": "noDaySelect",
|
|
2464
|
+
"type": "boolean",
|
|
2465
|
+
"literals": []
|
|
2466
|
+
},
|
|
2440
2467
|
"show-week-numbers": {
|
|
2441
2468
|
"property": "showWeekNumbers",
|
|
2442
2469
|
"type": "boolean",
|
|
@@ -2458,16 +2485,31 @@ export const ANALYZER_CONTRACTS = {
|
|
|
2458
2485
|
}
|
|
2459
2486
|
},
|
|
2460
2487
|
"properties": {
|
|
2488
|
+
"cellSizing": {
|
|
2489
|
+
"type": "'square' | 'stretch'",
|
|
2490
|
+
"attribute": "cell-sizing",
|
|
2491
|
+
"structured": false
|
|
2492
|
+
},
|
|
2461
2493
|
"disabledDates": {
|
|
2462
2494
|
"type": "unknown[]",
|
|
2463
2495
|
"attribute": null,
|
|
2464
2496
|
"structured": true
|
|
2465
2497
|
},
|
|
2498
|
+
"eventPopover": {
|
|
2499
|
+
"type": "CalendarEventPopoverProvider | null",
|
|
2500
|
+
"attribute": null,
|
|
2501
|
+
"structured": false
|
|
2502
|
+
},
|
|
2466
2503
|
"events": {
|
|
2467
2504
|
"type": "unknown[]",
|
|
2468
2505
|
"attribute": null,
|
|
2469
2506
|
"structured": true
|
|
2470
2507
|
},
|
|
2508
|
+
"eventTooltip": {
|
|
2509
|
+
"type": "CalendarEventTooltip | null",
|
|
2510
|
+
"attribute": null,
|
|
2511
|
+
"structured": false
|
|
2512
|
+
},
|
|
2471
2513
|
"firstDayOfWeek": {
|
|
2472
2514
|
"type": "number",
|
|
2473
2515
|
"attribute": "first-day-of-week",
|
|
@@ -2493,6 +2535,11 @@ export const ANALYZER_CONTRACTS = {
|
|
|
2493
2535
|
"attribute": "min-date",
|
|
2494
2536
|
"structured": false
|
|
2495
2537
|
},
|
|
2538
|
+
"noDaySelect": {
|
|
2539
|
+
"type": "boolean",
|
|
2540
|
+
"attribute": "no-day-select",
|
|
2541
|
+
"structured": false
|
|
2542
|
+
},
|
|
2496
2543
|
"showWeekNumbers": {
|
|
2497
2544
|
"type": "boolean",
|
|
2498
2545
|
"attribute": "show-week-numbers",
|
|
@@ -21890,6 +21937,7 @@ export const ANALYZER_CONTRACTS = {
|
|
|
21890
21937
|
"snice/react/rating",
|
|
21891
21938
|
"snice/react/receipt",
|
|
21892
21939
|
"snice/react/recipe",
|
|
21940
|
+
"snice/react/route-match",
|
|
21893
21941
|
"snice/react/route-specificity",
|
|
21894
21942
|
"snice/react/row",
|
|
21895
21943
|
"snice/react/sankey",
|
|
@@ -22264,6 +22312,7 @@ export const ANALYZER_CONTRACTS = {
|
|
|
22264
22312
|
"name",
|
|
22265
22313
|
"size",
|
|
22266
22314
|
"shape",
|
|
22315
|
+
"loading",
|
|
22267
22316
|
"fallbackColor",
|
|
22268
22317
|
"fallbackBackground"
|
|
22269
22318
|
],
|
|
@@ -22274,6 +22323,7 @@ export const ANALYZER_CONTRACTS = {
|
|
|
22274
22323
|
"name",
|
|
22275
22324
|
"size",
|
|
22276
22325
|
"shape",
|
|
22326
|
+
"loading",
|
|
22277
22327
|
"fallbackColor",
|
|
22278
22328
|
"fallbackBackground"
|
|
22279
22329
|
],
|
|
@@ -22583,7 +22633,11 @@ export const ANALYZER_CONTRACTS = {
|
|
|
22583
22633
|
"highlightToday",
|
|
22584
22634
|
"showWeekNumbers",
|
|
22585
22635
|
"firstDayOfWeek",
|
|
22586
|
-
"locale"
|
|
22636
|
+
"locale",
|
|
22637
|
+
"noDaySelect",
|
|
22638
|
+
"cellSizing",
|
|
22639
|
+
"eventTooltip",
|
|
22640
|
+
"eventPopover"
|
|
22587
22641
|
],
|
|
22588
22642
|
"events": {
|
|
22589
22643
|
"calendar-change": "onCalendarChange",
|
|
@@ -22600,6 +22654,10 @@ export const ANALYZER_CONTRACTS = {
|
|
|
22600
22654
|
"showWeekNumbers",
|
|
22601
22655
|
"firstDayOfWeek",
|
|
22602
22656
|
"locale",
|
|
22657
|
+
"noDaySelect",
|
|
22658
|
+
"cellSizing",
|
|
22659
|
+
"eventTooltip",
|
|
22660
|
+
"eventPopover",
|
|
22603
22661
|
"onCalendarChange",
|
|
22604
22662
|
"onCalendarEventClick"
|
|
22605
22663
|
],
|