@omnitron-dev/prism 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accessibility/index.d.ts +7 -151
- package/dist/accessibility/index.d.ts.map +1 -0
- package/dist/accessibility/index.js +0 -1
- package/dist/accessibility/index.js.map +1 -1
- package/dist/accessibility/vision-mode.d.ts +154 -0
- package/dist/accessibility/vision-mode.d.ts.map +1 -0
- package/dist/blocks/auth-block/auth-block.d.ts +107 -0
- package/dist/blocks/auth-block/auth-block.d.ts.map +1 -0
- package/dist/blocks/auth-block/guards.d.ts +262 -0
- package/dist/blocks/auth-block/guards.d.ts.map +1 -0
- package/dist/blocks/auth-block/index.d.ts +13 -0
- package/dist/blocks/auth-block/index.d.ts.map +1 -0
- package/dist/blocks/auth-block/types.d.ts +232 -0
- package/dist/blocks/auth-block/types.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/dashboard-block.d.ts +53 -0
- package/dist/blocks/dashboard-block/dashboard-block.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/index.d.ts +12 -0
- package/dist/blocks/dashboard-block/index.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/types.d.ts +182 -0
- package/dist/blocks/dashboard-block/types.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts +95 -0
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts.map +1 -0
- package/dist/blocks/data-grid-block/data-grid-block.d.ts +81 -0
- package/dist/blocks/data-grid-block/data-grid-block.d.ts.map +1 -0
- package/dist/blocks/data-grid-block/index.d.ts +11 -0
- package/dist/blocks/data-grid-block/index.d.ts.map +1 -0
- package/dist/blocks/data-grid-block/types.d.ts +304 -0
- package/dist/blocks/data-grid-block/types.d.ts.map +1 -0
- package/dist/blocks/index.d.ts +10 -1235
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +187 -50
- package/dist/blocks/index.js.map +1 -1
- package/dist/{chunk-UR6X3W5I.js → chunk-6AHI4GSV.js} +3 -3
- package/dist/chunk-6AHI4GSV.js.map +1 -0
- package/dist/{chunk-JDTC2SBY.js → chunk-AD4W7HYC.js} +2 -2
- package/dist/chunk-AD4W7HYC.js.map +1 -0
- package/dist/{chunk-BTIT7WYH.js → chunk-ADG4HZEP.js} +3 -3
- package/dist/chunk-ADG4HZEP.js.map +1 -0
- package/dist/{chunk-JNU4QHJK.js → chunk-AYYFMTMI.js} +5 -4
- package/dist/{chunk-JNU4QHJK.js.map → chunk-AYYFMTMI.js.map} +1 -1
- package/dist/{chunk-HO2GKTWJ.js → chunk-BRDWQVRT.js} +2 -2
- package/dist/chunk-BRDWQVRT.js.map +1 -0
- package/dist/{chunk-WC2WM2JD.js → chunk-BZOL7GMU.js} +36 -18
- package/dist/chunk-BZOL7GMU.js.map +1 -0
- package/dist/chunk-DRFNMZLG.js +192 -0
- package/dist/chunk-DRFNMZLG.js.map +1 -0
- package/dist/{chunk-BV32OJ2A.js → chunk-GUFHFEPZ.js} +2 -2
- package/dist/chunk-GUFHFEPZ.js.map +1 -0
- package/dist/{chunk-LAEY5USO.js → chunk-OBJ244BO.js} +608 -95
- package/dist/chunk-OBJ244BO.js.map +1 -0
- package/dist/{chunk-E3XANPTO.js → chunk-S6SEGBX6.js} +32 -209
- package/dist/chunk-S6SEGBX6.js.map +1 -0
- package/dist/chunk-SNZK5X6F.js +594 -0
- package/dist/chunk-SNZK5X6F.js.map +1 -0
- package/dist/chunk-WFD54GQQ.js +1940 -0
- package/dist/chunk-WFD54GQQ.js.map +1 -0
- package/dist/{chunk-DDY7TLUI.js → chunk-XIXSSI3B.js} +28 -2
- package/dist/chunk-XIXSSI3B.js.map +1 -0
- package/dist/chunk-YQW43BDH.js +11978 -0
- package/dist/chunk-YQW43BDH.js.map +1 -0
- package/dist/{chunk-XWL6J6IO.js → chunk-YSIG2XYH.js} +2 -2
- package/dist/chunk-YSIG2XYH.js.map +1 -0
- package/dist/chunk-Z5OSPAOC.js +1576 -0
- package/dist/chunk-Z5OSPAOC.js.map +1 -0
- package/dist/{chunk-DXXZ3ITR.js → chunk-ZTATTUH7.js} +851 -500
- package/dist/chunk-ZTATTUH7.js.map +1 -0
- package/dist/cli/commands/add.d.ts +22 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/diff.d.ts +13 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/doctor.d.ts +13 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +13 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/list.d.ts +13 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/remove.d.ts +13 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/update.d.ts +13 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/config.d.ts +73 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/constants.d.ts +60 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/index.d.ts +27 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +35 -41
- package/dist/cli/index.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +149 -0
- package/dist/components/accordion/accordion.d.ts.map +1 -0
- package/dist/components/accordion/index.d.ts +7 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/admin-filters/admin-data-table.d.ts +185 -0
- package/dist/components/admin-filters/admin-data-table.d.ts.map +1 -0
- package/dist/components/admin-filters/amount-cell.d.ts +39 -0
- package/dist/components/admin-filters/amount-cell.d.ts.map +1 -0
- package/dist/components/admin-filters/filter-toolbar.d.ts +99 -0
- package/dist/components/admin-filters/filter-toolbar.d.ts.map +1 -0
- package/dist/components/admin-filters/index.d.ts +13 -0
- package/dist/components/admin-filters/index.d.ts.map +1 -0
- package/dist/components/admin-filters/status-chip.d.ts +55 -0
- package/dist/components/admin-filters/status-chip.d.ts.map +1 -0
- package/dist/components/alert/alert.d.ts +159 -0
- package/dist/components/alert/alert.d.ts.map +1 -0
- package/dist/components/alert/index.d.ts +7 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/animate/animate-border.d.ts +33 -0
- package/dist/components/animate/animate-border.d.ts.map +1 -0
- package/dist/components/animate/index.d.ts +3 -0
- package/dist/components/animate/index.d.ts.map +1 -0
- package/dist/components/animate/motion-lazy.d.ts +5 -0
- package/dist/components/animate/motion-lazy.d.ts.map +1 -0
- package/dist/components/avatar/avatar.d.ts +78 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/index.d.ts +7 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/badge/badge.d.ts +102 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/index.d.ts +7 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +100 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +7 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/card/card.d.ts +127 -0
- package/dist/components/card/card.d.ts.map +1 -0
- package/dist/components/card/index.d.ts +7 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/carousel/carousel.d.ts +35 -0
- package/dist/components/carousel/carousel.d.ts.map +1 -0
- package/dist/components/carousel/classes.d.ts +35 -0
- package/dist/components/carousel/classes.d.ts.map +1 -0
- package/dist/components/carousel/index.d.ts +10 -0
- package/dist/components/carousel/index.d.ts.map +1 -0
- package/dist/components/carousel/types.d.ts +167 -0
- package/dist/components/carousel/types.d.ts.map +1 -0
- package/dist/components/carousel/use-carousel.d.ts +51 -0
- package/dist/components/carousel/use-carousel.d.ts.map +1 -0
- package/dist/components/changelog/changelog-entry.d.ts +10 -0
- package/dist/components/changelog/changelog-entry.d.ts.map +1 -0
- package/dist/components/changelog/changelog-timeline.d.ts +9 -0
- package/dist/components/changelog/changelog-timeline.d.ts.map +1 -0
- package/dist/components/changelog/index.d.ts +3 -0
- package/dist/components/changelog/index.d.ts.map +1 -0
- package/dist/components/chart/chart.d.ts +39 -0
- package/dist/components/chart/chart.d.ts.map +1 -0
- package/dist/components/chart/classes.d.ts +24 -0
- package/dist/components/chart/classes.d.ts.map +1 -0
- package/dist/components/chart/components/chart-legends.d.ts +24 -0
- package/dist/components/chart/components/chart-legends.d.ts.map +1 -0
- package/dist/components/chart/components/chart-loading.d.ts +21 -0
- package/dist/components/chart/components/chart-loading.d.ts.map +1 -0
- package/dist/components/chart/components/index.d.ts +8 -0
- package/dist/components/chart/components/index.d.ts.map +1 -0
- package/dist/components/chart/index.d.ts +14 -0
- package/dist/components/chart/index.d.ts.map +1 -0
- package/dist/components/chart/types.d.ts +264 -0
- package/dist/components/chart/types.d.ts.map +1 -0
- package/dist/components/chart/use-chart.d.ts +34 -0
- package/dist/components/chart/use-chart.d.ts.map +1 -0
- package/dist/components/command-palette/command-palette.d.ts +73 -0
- package/dist/components/command-palette/command-palette.d.ts.map +1 -0
- package/dist/components/command-palette/index.d.ts +7 -0
- package/dist/components/command-palette/index.d.ts.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.d.ts +89 -0
- package/dist/components/confirm-dialog/confirm-dialog.d.ts.map +1 -0
- package/dist/components/confirm-dialog/index.d.ts +7 -0
- package/dist/components/confirm-dialog/index.d.ts.map +1 -0
- package/dist/components/content-renderer/classes.d.ts +33 -0
- package/dist/components/content-renderer/classes.d.ts.map +1 -0
- package/dist/components/content-renderer/content-renderer.d.ts +37 -0
- package/dist/components/content-renderer/content-renderer.d.ts.map +1 -0
- package/dist/components/content-renderer/html-tags.d.ts +6 -0
- package/dist/components/content-renderer/html-tags.d.ts.map +1 -0
- package/dist/components/content-renderer/html-to-markdown.d.ts +7 -0
- package/dist/components/content-renderer/html-to-markdown.d.ts.map +1 -0
- package/dist/components/content-renderer/index.d.ts +7 -0
- package/dist/components/content-renderer/index.d.ts.map +1 -0
- package/dist/components/content-renderer/markdown.d.ts +23 -0
- package/dist/components/content-renderer/markdown.d.ts.map +1 -0
- package/dist/components/content-renderer/remark-spoiler.d.ts +9 -0
- package/dist/components/content-renderer/remark-spoiler.d.ts.map +1 -0
- package/dist/components/content-renderer/styles.d.ts +2 -0
- package/dist/components/content-renderer/styles.d.ts.map +1 -0
- package/dist/components/country-select/country-select.d.ts +101 -0
- package/dist/components/country-select/country-select.d.ts.map +1 -0
- package/dist/components/country-select/flag-icon.d.ts +36 -0
- package/dist/components/country-select/flag-icon.d.ts.map +1 -0
- package/dist/components/country-select/index.d.ts +5 -0
- package/dist/components/country-select/index.d.ts.map +1 -0
- package/dist/components/date-range-picker/date-range-input.d.ts +48 -0
- package/dist/components/date-range-picker/date-range-input.d.ts.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -0
- package/dist/components/date-range-picker/index.d.ts +7 -0
- package/dist/components/date-range-picker/index.d.ts.map +1 -0
- package/dist/components/date-range-picker/use-date-range-picker.d.ts +28 -0
- package/dist/components/date-range-picker/use-date-range-picker.d.ts.map +1 -0
- package/dist/components/deadline-chip/deadline-chip.d.ts +41 -0
- package/dist/components/deadline-chip/deadline-chip.d.ts.map +1 -0
- package/dist/components/deadline-chip/index.d.ts +7 -0
- package/dist/components/deadline-chip/index.d.ts.map +1 -0
- package/dist/components/doc-layout/doc-layout.d.ts +17 -0
- package/dist/components/doc-layout/doc-layout.d.ts.map +1 -0
- package/dist/components/doc-layout/doc-section-nav.d.ts +16 -0
- package/dist/components/doc-layout/doc-section-nav.d.ts.map +1 -0
- package/dist/components/doc-layout/doc-sidebar.d.ts +15 -0
- package/dist/components/doc-layout/doc-sidebar.d.ts.map +1 -0
- package/dist/components/doc-layout/index.d.ts +4 -0
- package/dist/components/doc-layout/index.d.ts.map +1 -0
- package/dist/components/drawer/drawer.d.ts +65 -0
- package/dist/components/drawer/drawer.d.ts.map +1 -0
- package/dist/components/drawer/index.d.ts +7 -0
- package/dist/components/drawer/index.d.ts.map +1 -0
- package/dist/components/duration-picker/duration-picker.d.ts +24 -0
- package/dist/components/duration-picker/duration-picker.d.ts.map +1 -0
- package/dist/components/duration-picker/index.d.ts +2 -0
- package/dist/components/duration-picker/index.d.ts.map +1 -0
- package/dist/components/editor/classes.d.ts +52 -0
- package/dist/components/editor/classes.d.ts.map +1 -0
- package/dist/components/editor/editor.d.ts +15 -0
- package/dist/components/editor/editor.d.ts.map +1 -0
- package/dist/components/editor/extensions/clear-format.d.ts +3 -0
- package/dist/components/editor/extensions/clear-format.d.ts.map +1 -0
- package/dist/components/editor/extensions/index.d.ts +3 -0
- package/dist/components/editor/extensions/index.d.ts.map +1 -0
- package/dist/components/editor/extensions/text-transform.d.ts +20 -0
- package/dist/components/editor/extensions/text-transform.d.ts.map +1 -0
- package/dist/components/editor/icons/index.d.ts +42 -0
- package/dist/components/editor/icons/index.d.ts.map +1 -0
- package/dist/components/editor/index.d.ts +44 -0
- package/dist/components/editor/index.d.ts.map +1 -0
- package/dist/components/editor/index.js +3 -0
- package/dist/components/editor/index.js.map +1 -0
- package/dist/components/editor/presets.d.ts +3 -0
- package/dist/components/editor/presets.d.ts.map +1 -0
- package/dist/components/editor/styles.d.ts +2 -0
- package/dist/components/editor/styles.d.ts.map +1 -0
- package/dist/components/editor/toolbar/bubble-toolbar.d.ts +9 -0
- package/dist/components/editor/toolbar/bubble-toolbar.d.ts.map +1 -0
- package/dist/components/editor/toolbar/code-highlight-block.d.ts +3 -0
- package/dist/components/editor/toolbar/code-highlight-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/heading-block.d.ts +11 -0
- package/dist/components/editor/toolbar/heading-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/image-block.d.ts +11 -0
- package/dist/components/editor/toolbar/image-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/link-block.d.ts +13 -0
- package/dist/components/editor/toolbar/link-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/toolbar-item.d.ts +3 -0
- package/dist/components/editor/toolbar/toolbar-item.d.ts.map +1 -0
- package/dist/components/editor/toolbar/toolbar.d.ts +3 -0
- package/dist/components/editor/toolbar/toolbar.d.ts.map +1 -0
- package/dist/components/editor/toolbar/use-toolbar-state.d.ts +24 -0
- package/dist/components/editor/toolbar/use-toolbar-state.d.ts.map +1 -0
- package/dist/components/editor/types.d.ts +130 -0
- package/dist/components/editor/types.d.ts.map +1 -0
- package/dist/components/emoji-picker/emoji-picker.d.ts +24 -0
- package/dist/components/emoji-picker/emoji-picker.d.ts.map +1 -0
- package/dist/components/emoji-picker/emoji-search.d.ts +22 -0
- package/dist/components/emoji-picker/emoji-search.d.ts.map +1 -0
- package/dist/components/emoji-picker/emoji.d.ts +19 -0
- package/dist/components/emoji-picker/emoji.d.ts.map +1 -0
- package/dist/components/emoji-picker/index.d.ts +14 -0
- package/dist/components/emoji-picker/index.d.ts.map +1 -0
- package/dist/components/emoji-picker/index.js +3 -0
- package/dist/components/emoji-picker/index.js.map +1 -0
- package/dist/components/emoji-picker/twemoji-url.d.ts +26 -0
- package/dist/components/emoji-picker/twemoji-url.d.ts.map +1 -0
- package/dist/components/emoji-picker/types.d.ts +96 -0
- package/dist/components/emoji-picker/types.d.ts.map +1 -0
- package/dist/components/emoji-picker/use-emoji-data.d.ts +26 -0
- package/dist/components/emoji-picker/use-emoji-data.d.ts.map +1 -0
- package/dist/components/emoji-picker/use-recent-emojis.d.ts +16 -0
- package/dist/components/emoji-picker/use-recent-emojis.d.ts.map +1 -0
- package/dist/components/empty-content/empty-content.d.ts +92 -0
- package/dist/components/empty-content/empty-content.d.ts.map +1 -0
- package/dist/components/empty-content/index.d.ts +7 -0
- package/dist/components/empty-content/index.d.ts.map +1 -0
- package/dist/components/error-boundary/error-boundary.d.ts +162 -0
- package/dist/components/error-boundary/error-boundary.d.ts.map +1 -0
- package/dist/components/error-boundary/index.d.ts +7 -0
- package/dist/components/error-boundary/index.d.ts.map +1 -0
- package/dist/components/field/field-autocomplete.d.ts +74 -0
- package/dist/components/field/field-autocomplete.d.ts.map +1 -0
- package/dist/components/field/field-checkbox.d.ts +42 -0
- package/dist/components/field/field-checkbox.d.ts.map +1 -0
- package/dist/components/field/field-code.d.ts +80 -0
- package/dist/components/field/field-code.d.ts.map +1 -0
- package/dist/components/field/field-country-select.d.ts +84 -0
- package/dist/components/field/field-country-select.d.ts.map +1 -0
- package/dist/components/field/field-date-picker.d.ts +58 -0
- package/dist/components/field/field-date-picker.d.ts.map +1 -0
- package/dist/components/field/field-datetime-picker.d.ts +96 -0
- package/dist/components/field/field-datetime-picker.d.ts.map +1 -0
- package/dist/components/field/field-editor.d.ts +218 -0
- package/dist/components/field/field-editor.d.ts.map +1 -0
- package/dist/components/field/field-multi-checkbox.d.ts +91 -0
- package/dist/components/field/field-multi-checkbox.d.ts.map +1 -0
- package/dist/components/field/field-multi-select.d.ts +85 -0
- package/dist/components/field/field-multi-select.d.ts.map +1 -0
- package/dist/components/field/field-multi-switch.d.ts +93 -0
- package/dist/components/field/field-multi-switch.d.ts.map +1 -0
- package/dist/components/field/field-number.d.ts +50 -0
- package/dist/components/field/field-number.d.ts.map +1 -0
- package/dist/components/field/field-phone.d.ts +82 -0
- package/dist/components/field/field-phone.d.ts.map +1 -0
- package/dist/components/field/field-radio.d.ts +64 -0
- package/dist/components/field/field-radio.d.ts.map +1 -0
- package/dist/components/field/field-rating.d.ts +43 -0
- package/dist/components/field/field-rating.d.ts.map +1 -0
- package/dist/components/field/field-select.d.ts +50 -0
- package/dist/components/field/field-select.d.ts.map +1 -0
- package/dist/components/field/field-slider.d.ts +56 -0
- package/dist/components/field/field-slider.d.ts.map +1 -0
- package/dist/components/field/field-switch.d.ts +44 -0
- package/dist/components/field/field-switch.d.ts.map +1 -0
- package/dist/components/field/field-text.d.ts +38 -0
- package/dist/components/field/field-text.d.ts.map +1 -0
- package/dist/components/field/field-time-picker.d.ts +79 -0
- package/dist/components/field/field-time-picker.d.ts.map +1 -0
- package/dist/components/field/field-upload.d.ts +120 -0
- package/dist/components/field/field-upload.d.ts.map +1 -0
- package/dist/components/field/index.d.ts +149 -0
- package/dist/components/field/index.d.ts.map +1 -0
- package/dist/components/image/image.d.ts +79 -0
- package/dist/components/image/image.d.ts.map +1 -0
- package/dist/components/image/index.d.ts +7 -0
- package/dist/components/image/index.d.ts.map +1 -0
- package/dist/components/index.css +131 -0
- package/dist/components/index.css.map +1 -0
- package/dist/components/index.d.ts +61 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +13 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/label/index.d.ts +7 -0
- package/dist/components/label/index.d.ts.map +1 -0
- package/dist/components/label/label.d.ts +71 -0
- package/dist/components/label/label.d.ts.map +1 -0
- package/dist/components/lightbox/classes.d.ts +34 -0
- package/dist/components/lightbox/classes.d.ts.map +1 -0
- package/dist/components/lightbox/index.d.ts +11 -0
- package/dist/components/lightbox/index.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.d.ts +42 -0
- package/dist/components/lightbox/lightbox.d.ts.map +1 -0
- package/dist/components/lightbox/types.d.ts +233 -0
- package/dist/components/lightbox/types.d.ts.map +1 -0
- package/dist/components/lightbox/use-lightbox.d.ts +42 -0
- package/dist/components/lightbox/use-lightbox.d.ts.map +1 -0
- package/dist/components/loading-screen/index.d.ts +8 -0
- package/dist/components/loading-screen/index.d.ts.map +1 -0
- package/dist/components/loading-screen/loading-screen.d.ts +37 -0
- package/dist/components/loading-screen/loading-screen.d.ts.map +1 -0
- package/dist/components/loading-screen/splash-screen.d.ts +80 -0
- package/dist/components/loading-screen/splash-screen.d.ts.map +1 -0
- package/dist/components/map/Map.d.ts +63 -0
- package/dist/components/map/Map.d.ts.map +1 -0
- package/dist/components/map/MapCoverageLayer.d.ts +25 -0
- package/dist/components/map/MapCoverageLayer.d.ts.map +1 -0
- package/dist/components/map/MapMarker.d.ts +17 -0
- package/dist/components/map/MapMarker.d.ts.map +1 -0
- package/dist/components/map/MapPointPicker.d.ts +26 -0
- package/dist/components/map/MapPointPicker.d.ts.map +1 -0
- package/dist/components/map/index.d.ts +14 -0
- package/dist/components/map/index.d.ts.map +1 -0
- package/dist/components/mega-menu/index.d.ts +12 -0
- package/dist/components/mega-menu/index.d.ts.map +1 -0
- package/dist/components/mega-menu/mega-menu-horizontal.d.ts +41 -0
- package/dist/components/mega-menu/mega-menu-horizontal.d.ts.map +1 -0
- package/dist/components/mega-menu/mega-menu-mobile.d.ts +28 -0
- package/dist/components/mega-menu/mega-menu-mobile.d.ts.map +1 -0
- package/dist/components/mega-menu/mega-menu-vertical.d.ts +28 -0
- package/dist/components/mega-menu/mega-menu-vertical.d.ts.map +1 -0
- package/dist/components/mega-menu/styles.d.ts +18 -0
- package/dist/components/mega-menu/styles.d.ts.map +1 -0
- package/dist/components/mega-menu/types.d.ts +200 -0
- package/dist/components/mega-menu/types.d.ts.map +1 -0
- package/dist/components/menu/index.d.ts +7 -0
- package/dist/components/menu/index.d.ts.map +1 -0
- package/dist/components/menu/menu.d.ts +144 -0
- package/dist/components/menu/menu.d.ts.map +1 -0
- package/dist/components/nav-card/index.d.ts +8 -0
- package/dist/components/nav-card/index.d.ts.map +1 -0
- package/dist/components/nav-card/nav-card-grid.d.ts +57 -0
- package/dist/components/nav-card/nav-card-grid.d.ts.map +1 -0
- package/dist/components/nav-card/nav-card.d.ts +69 -0
- package/dist/components/nav-card/nav-card.d.ts.map +1 -0
- package/dist/components/nav-section/components.d.ts +143 -0
- package/dist/components/nav-section/components.d.ts.map +1 -0
- package/dist/components/nav-section/index.d.ts +15 -0
- package/dist/components/nav-section/index.d.ts.map +1 -0
- package/dist/components/nav-section/nav-context.d.ts +80 -0
- package/dist/components/nav-section/nav-context.d.ts.map +1 -0
- package/dist/components/nav-section/nav-item.d.ts +20 -0
- package/dist/components/nav-section/nav-item.d.ts.map +1 -0
- package/dist/components/nav-section/nav-list.d.ts +25 -0
- package/dist/components/nav-section/nav-list.d.ts.map +1 -0
- package/dist/components/nav-section/nav-section-horizontal.d.ts +29 -0
- package/dist/components/nav-section/nav-section-horizontal.d.ts.map +1 -0
- package/dist/components/nav-section/nav-section-mini.d.ts +30 -0
- package/dist/components/nav-section/nav-section-mini.d.ts.map +1 -0
- package/dist/components/nav-section/nav-section-vertical.d.ts +37 -0
- package/dist/components/nav-section/nav-section-vertical.d.ts.map +1 -0
- package/dist/components/nav-section/styles.d.ts +35 -0
- package/dist/components/nav-section/styles.d.ts.map +1 -0
- package/dist/components/nav-section/types.d.ts +178 -0
- package/dist/components/nav-section/types.d.ts.map +1 -0
- package/dist/components/navigation-progress/index.d.ts +7 -0
- package/dist/components/navigation-progress/index.d.ts.map +1 -0
- package/dist/components/navigation-progress/navigation-progress.d.ts +36 -0
- package/dist/components/navigation-progress/navigation-progress.d.ts.map +1 -0
- package/dist/components/page-content/index.d.ts +7 -0
- package/dist/components/page-content/index.d.ts.map +1 -0
- package/dist/components/page-content/page-content.d.ts +55 -0
- package/dist/components/page-content/page-content.d.ts.map +1 -0
- package/dist/components/popover/index.d.ts +7 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/popover.d.ts +124 -0
- package/dist/components/popover/popover.d.ts.map +1 -0
- package/dist/components/progress/countdown-ring.d.ts +60 -0
- package/dist/components/progress/countdown-ring.d.ts.map +1 -0
- package/dist/components/progress/index.d.ts +8 -0
- package/dist/components/progress/index.d.ts.map +1 -0
- package/dist/components/progress/progress.d.ts +106 -0
- package/dist/components/progress/progress.d.ts.map +1 -0
- package/dist/components/rail/index.d.ts +7 -0
- package/dist/components/rail/index.d.ts.map +1 -0
- package/dist/components/rail/rail.d.ts +39 -0
- package/dist/components/rail/rail.d.ts.map +1 -0
- package/dist/components/scroll-spy/index.d.ts +3 -0
- package/dist/components/scroll-spy/index.d.ts.map +1 -0
- package/dist/components/scroll-spy/scroll-spy-provider.d.ts +26 -0
- package/dist/components/scroll-spy/scroll-spy-provider.d.ts.map +1 -0
- package/dist/components/scroll-spy/scroll-spy-section.d.ts +10 -0
- package/dist/components/scroll-spy/scroll-spy-section.d.ts.map +1 -0
- package/dist/components/scroll-to-top/index.d.ts +7 -0
- package/dist/components/scroll-to-top/index.d.ts.map +1 -0
- package/dist/components/scroll-to-top/scroll-to-top.d.ts +25 -0
- package/dist/components/scroll-to-top/scroll-to-top.d.ts.map +1 -0
- package/dist/components/scrollbar/index.d.ts +7 -0
- package/dist/components/scrollbar/index.d.ts.map +1 -0
- package/dist/components/scrollbar/scrollbar.d.ts +59 -0
- package/dist/components/scrollbar/scrollbar.d.ts.map +1 -0
- package/dist/components/search-input/index.d.ts +2 -0
- package/dist/components/search-input/index.d.ts.map +1 -0
- package/dist/components/search-input/search-input.d.ts +46 -0
- package/dist/components/search-input/search-input.d.ts.map +1 -0
- package/dist/components/settings/index.d.ts +10 -0
- package/dist/components/settings/index.d.ts.map +1 -0
- package/dist/components/settings/settings-drawer.d.ts +39 -0
- package/dist/components/settings/settings-drawer.d.ts.map +1 -0
- package/dist/components/settings/settings-provider.d.ts +106 -0
- package/dist/components/settings/settings-provider.d.ts.map +1 -0
- package/dist/components/skeleton/index.d.ts +7 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +77 -0
- package/dist/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/snackbar/index.d.ts +7 -0
- package/dist/components/snackbar/index.d.ts.map +1 -0
- package/dist/components/snackbar/snackbar.d.ts +120 -0
- package/dist/components/snackbar/snackbar.d.ts.map +1 -0
- package/dist/components/sponsored-slot/index.d.ts +3 -0
- package/dist/components/sponsored-slot/index.d.ts.map +1 -0
- package/dist/components/sponsored-slot/sponsored-slot.d.ts +16 -0
- package/dist/components/sponsored-slot/sponsored-slot.d.ts.map +1 -0
- package/dist/components/sponsored-slot/types.d.ts +45 -0
- package/dist/components/sponsored-slot/types.d.ts.map +1 -0
- package/dist/components/stepper/index.d.ts +7 -0
- package/dist/components/stepper/index.d.ts.map +1 -0
- package/dist/components/stepper/stepper.d.ts +145 -0
- package/dist/components/stepper/stepper.d.ts.map +1 -0
- package/dist/components/svg-color/index.d.ts +7 -0
- package/dist/components/svg-color/index.d.ts.map +1 -0
- package/dist/components/svg-color/svg-color.d.ts +80 -0
- package/dist/components/svg-color/svg-color.d.ts.map +1 -0
- package/dist/components/table/index.d.ts +7 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/table.d.ts +184 -0
- package/dist/components/table/table.d.ts.map +1 -0
- package/dist/components/tabs/index.d.ts +7 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/tabs.d.ts +146 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -0
- package/dist/components/tag-cloud/index.d.ts +7 -0
- package/dist/components/tag-cloud/index.d.ts.map +1 -0
- package/dist/components/tag-cloud/tag-cloud.d.ts +58 -0
- package/dist/components/tag-cloud/tag-cloud.d.ts.map +1 -0
- package/dist/components/tiptap-renderer/index.d.ts +2 -0
- package/dist/components/tiptap-renderer/index.d.ts.map +1 -0
- package/dist/components/tiptap-renderer/tiptap-renderer.d.ts +45 -0
- package/dist/components/tiptap-renderer/tiptap-renderer.d.ts.map +1 -0
- package/dist/components/tooltip/index.d.ts +7 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +38 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/virtual-list/index.d.ts +7 -0
- package/dist/components/virtual-list/index.d.ts.map +1 -0
- package/dist/components/virtual-list/virtual-list.d.ts +64 -0
- package/dist/components/virtual-list/virtual-list.d.ts.map +1 -0
- package/dist/core/accessibility/index.d.ts +96 -0
- package/dist/core/accessibility/index.d.ts.map +1 -0
- package/dist/core/accessibility/skip-link.d.ts +31 -0
- package/dist/core/accessibility/skip-link.d.ts.map +1 -0
- package/dist/core/context.d.ts +99 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/hooks/use-boolean.d.ts +54 -0
- package/dist/core/hooks/use-boolean.d.ts.map +1 -0
- package/dist/core/hooks/use-breakpoints.d.ts +87 -0
- package/dist/core/hooks/use-breakpoints.d.ts.map +1 -0
- package/dist/core/hooks/use-click-outside.d.ts +26 -0
- package/dist/core/hooks/use-click-outside.d.ts.map +1 -0
- package/dist/core/hooks/use-copy-to-clipboard.d.ts +66 -0
- package/dist/core/hooks/use-copy-to-clipboard.d.ts.map +1 -0
- package/dist/core/hooks/use-countdown.d.ts +105 -0
- package/dist/core/hooks/use-countdown.d.ts.map +1 -0
- package/dist/core/hooks/use-debounce.d.ts +64 -0
- package/dist/core/hooks/use-debounce.d.ts.map +1 -0
- package/dist/core/hooks/use-event-listener.d.ts +37 -0
- package/dist/core/hooks/use-event-listener.d.ts.map +1 -0
- package/dist/core/hooks/use-interval.d.ts +30 -0
- package/dist/core/hooks/use-interval.d.ts.map +1 -0
- package/dist/core/hooks/use-is-client.d.ts +24 -0
- package/dist/core/hooks/use-is-client.d.ts.map +1 -0
- package/dist/core/hooks/use-local-storage.d.ts +61 -0
- package/dist/core/hooks/use-local-storage.d.ts.map +1 -0
- package/dist/core/hooks/use-media-query.d.ts +107 -0
- package/dist/core/hooks/use-media-query.d.ts.map +1 -0
- package/dist/core/hooks/use-mounted.d.ts +33 -0
- package/dist/core/hooks/use-mounted.d.ts.map +1 -0
- package/dist/core/hooks/use-multi-select.d.ts +113 -0
- package/dist/core/hooks/use-multi-select.d.ts.map +1 -0
- package/dist/core/hooks/use-previous.d.ts +23 -0
- package/dist/core/hooks/use-previous.d.ts.map +1 -0
- package/dist/core/hooks/use-set-state.d.ts +56 -0
- package/dist/core/hooks/use-set-state.d.ts.map +1 -0
- package/dist/core/hooks/use-tabs.d.ts +74 -0
- package/dist/core/hooks/use-tabs.d.ts.map +1 -0
- package/dist/core/hooks/use-timeout.d.ts +37 -0
- package/dist/core/hooks/use-timeout.d.ts.map +1 -0
- package/dist/core/index.d.ts +36 -453
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -7
- package/dist/core/provider-stack.d.ts +181 -0
- package/dist/core/provider-stack.d.ts.map +1 -0
- package/dist/core/provider.d.ts +67 -0
- package/dist/core/provider.d.ts.map +1 -0
- package/dist/forms/index.d.ts +6 -557
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +0 -1
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/schema-provider.d.ts +282 -0
- package/dist/forms/schema-provider.d.ts.map +1 -0
- package/dist/forms/schema-utils.d.ts +286 -0
- package/dist/forms/schema-utils.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +38 -7
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +8 -8
- package/dist/hooks/use-array.d.ts +126 -0
- package/dist/hooks/use-array.d.ts.map +1 -0
- package/dist/hooks/use-async.d.ts +88 -0
- package/dist/hooks/use-async.d.ts.map +1 -0
- package/dist/hooks/use-back-to-top.d.ts +57 -0
- package/dist/hooks/use-back-to-top.d.ts.map +1 -0
- package/dist/hooks/use-client-rect.d.ts +67 -0
- package/dist/hooks/use-client-rect.d.ts.map +1 -0
- package/dist/hooks/use-config-from-query.d.ts +98 -0
- package/dist/hooks/use-config-from-query.d.ts.map +1 -0
- package/dist/hooks/use-cookies.d.ts +62 -0
- package/dist/hooks/use-cookies.d.ts.map +1 -0
- package/dist/hooks/use-countdown-date.d.ts +47 -0
- package/dist/hooks/use-countdown-date.d.ts.map +1 -0
- package/dist/hooks/use-countdown-seconds.d.ts +83 -0
- package/dist/hooks/use-countdown-seconds.d.ts.map +1 -0
- package/dist/hooks/use-double-click.d.ts +67 -0
- package/dist/hooks/use-double-click.d.ts.map +1 -0
- package/dist/hooks/use-focus-trap.d.ts +66 -0
- package/dist/hooks/use-focus-trap.d.ts.map +1 -0
- package/dist/hooks/use-image-dimensions.d.ts +124 -0
- package/dist/hooks/use-image-dimensions.d.ts.map +1 -0
- package/dist/hooks/use-infinite-scroll.d.ts +204 -0
- package/dist/hooks/use-infinite-scroll.d.ts.map +1 -0
- package/dist/hooks/use-intersection-observer.d.ts +93 -0
- package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +34 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/hooks/use-keyboard-shortcut.d.ts +112 -0
- package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -0
- package/dist/hooks/use-lazy-query.d.ts +132 -0
- package/dist/hooks/use-lazy-query.d.ts.map +1 -0
- package/dist/hooks/use-mutation.d.ts +141 -0
- package/dist/hooks/use-mutation.d.ts.map +1 -0
- package/dist/hooks/use-online-status.d.ts +56 -0
- package/dist/hooks/use-online-status.d.ts.map +1 -0
- package/dist/hooks/use-password-visibility.d.ts +83 -0
- package/dist/hooks/use-password-visibility.d.ts.map +1 -0
- package/dist/hooks/use-popover-hover.d.ts +78 -0
- package/dist/hooks/use-popover-hover.d.ts.map +1 -0
- package/dist/hooks/use-scroll-offset-top.d.ts +69 -0
- package/dist/hooks/use-scroll-offset-top.d.ts.map +1 -0
- package/dist/hooks/use-scroll-position.d.ts +96 -0
- package/dist/hooks/use-scroll-position.d.ts.map +1 -0
- package/dist/hooks/use-session-storage.d.ts +66 -0
- package/dist/hooks/use-session-storage.d.ts.map +1 -0
- package/dist/hooks/use-throttle.d.ts +67 -0
- package/dist/hooks/use-throttle.d.ts.map +1 -0
- package/dist/hooks/use-update-effect.d.ts +53 -0
- package/dist/hooks/use-update-effect.d.ts.map +1 -0
- package/dist/hooks/use-window-size.d.ts +132 -0
- package/dist/hooks/use-window-size.d.ts.map +1 -0
- package/dist/http/client.d.ts +74 -0
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/index.d.ts +6 -229
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +0 -2
- package/dist/http/index.js.map +1 -1
- package/dist/http/types.d.ts +158 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/index.d.ts +19 -9108
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -11678
- package/dist/index.js.map +1 -1
- package/dist/layouts/auth/centered.d.ts +49 -0
- package/dist/layouts/auth/centered.d.ts.map +1 -0
- package/dist/layouts/auth/index.d.ts +12 -0
- package/dist/layouts/auth/index.d.ts.map +1 -0
- package/dist/layouts/auth/simple.d.ts +58 -0
- package/dist/layouts/auth/simple.d.ts.map +1 -0
- package/dist/layouts/auth/split.d.ts +81 -0
- package/dist/layouts/auth/split.d.ts.map +1 -0
- package/dist/layouts/core/context.d.ts +102 -0
- package/dist/layouts/core/context.d.ts.map +1 -0
- package/dist/layouts/core/css-vars.d.ts +43 -0
- package/dist/layouts/core/css-vars.d.ts.map +1 -0
- package/dist/layouts/core/header-section.d.ts +79 -0
- package/dist/layouts/core/header-section.d.ts.map +1 -0
- package/dist/layouts/core/index.d.ts +18 -0
- package/dist/layouts/core/index.d.ts.map +1 -0
- package/dist/layouts/core/layout-section.d.ts +64 -0
- package/dist/layouts/core/layout-section.d.ts.map +1 -0
- package/dist/layouts/core/user-menu.d.ts +88 -0
- package/dist/layouts/core/user-menu.d.ts.map +1 -0
- package/dist/layouts/dashboard/index.d.ts +10 -0
- package/dist/layouts/dashboard/index.d.ts.map +1 -0
- package/dist/layouts/dashboard/layout.d.ts +90 -0
- package/dist/layouts/dashboard/layout.d.ts.map +1 -0
- package/dist/layouts/dashboard/sidenav.d.ts +58 -0
- package/dist/layouts/dashboard/sidenav.d.ts.map +1 -0
- package/dist/layouts/dashboard/topnav.d.ts +41 -0
- package/dist/layouts/dashboard/topnav.d.ts.map +1 -0
- package/dist/layouts/index.d.ts +27 -850
- package/dist/layouts/index.d.ts.map +1 -0
- package/dist/layouts/index.js +3 -4
- package/dist/layouts/types.d.ts +317 -0
- package/dist/layouts/types.d.ts.map +1 -0
- package/dist/netron/context.d.ts +18 -0
- package/dist/netron/context.d.ts.map +1 -0
- package/dist/netron/hooks.d.ts +10 -0
- package/dist/netron/hooks.d.ts.map +1 -0
- package/dist/netron/index.d.ts +47 -4
- package/dist/netron/index.d.ts.map +1 -0
- package/dist/netron/index.js +1 -2
- package/dist/netron/types.d.ts +12 -0
- package/dist/netron/types.d.ts.map +1 -0
- package/dist/registry/index.d.ts +8 -341
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +1 -2
- package/dist/registry/installer.d.ts +137 -0
- package/dist/registry/installer.d.ts.map +1 -0
- package/dist/registry/manager.d.ts +196 -0
- package/dist/registry/manager.d.ts.map +1 -0
- package/dist/state/create-store.d.ts +164 -0
- package/dist/state/create-store.d.ts.map +1 -0
- package/dist/state/index.d.ts +12 -969
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +2 -3
- package/dist/state/settings-version.d.ts +255 -0
- package/dist/state/settings-version.d.ts.map +1 -0
- package/dist/state/stores/auth.d.ts +155 -0
- package/dist/state/stores/auth.d.ts.map +1 -0
- package/dist/state/stores/index.d.ts +10 -0
- package/dist/state/stores/index.d.ts.map +1 -0
- package/dist/state/stores/settings.d.ts +151 -0
- package/dist/state/stores/settings.d.ts.map +1 -0
- package/dist/state/stores/theme.d.ts +87 -0
- package/dist/state/stores/theme.d.ts.map +1 -0
- package/dist/state/stores/ui.d.ts +204 -0
- package/dist/state/stores/ui.d.ts.map +1 -0
- package/dist/theme/colors/base.d.ts +61 -0
- package/dist/theme/colors/base.d.ts.map +1 -0
- package/dist/theme/colors/index.d.ts +10 -0
- package/dist/theme/colors/index.d.ts.map +1 -0
- package/dist/theme/colors/luxury.d.ts +49 -0
- package/dist/theme/colors/luxury.d.ts.map +1 -0
- package/dist/theme/components/Autocomplete.d.ts +9 -0
- package/dist/theme/components/Autocomplete.d.ts.map +1 -0
- package/dist/theme/components/Button.d.ts +33 -0
- package/dist/theme/components/Button.d.ts.map +1 -0
- package/dist/theme/components/Card.d.ts +20 -0
- package/dist/theme/components/Card.d.ts.map +1 -0
- package/dist/theme/components/Chip.d.ts +29 -0
- package/dist/theme/components/Chip.d.ts.map +1 -0
- package/dist/theme/components/DataGrid.d.ts +15 -0
- package/dist/theme/components/DataGrid.d.ts.map +1 -0
- package/dist/theme/components/DatePicker.d.ts +19 -0
- package/dist/theme/components/DatePicker.d.ts.map +1 -0
- package/dist/theme/components/Dialog.d.ts +23 -0
- package/dist/theme/components/Dialog.d.ts.map +1 -0
- package/dist/theme/components/FormControls.d.ts +53 -0
- package/dist/theme/components/FormControls.d.ts.map +1 -0
- package/dist/theme/components/Tabs.d.ts +21 -0
- package/dist/theme/components/Tabs.d.ts.map +1 -0
- package/dist/theme/components/TextField.d.ts +87 -0
- package/dist/theme/components/TextField.d.ts.map +1 -0
- package/dist/theme/components/index.d.ts +27 -0
- package/dist/theme/components/index.d.ts.map +1 -0
- package/dist/theme/components/theme-utils.d.ts +42 -0
- package/dist/theme/components/theme-utils.d.ts.map +1 -0
- package/dist/theme/create-theme.d.ts +131 -0
- package/dist/theme/create-theme.d.ts.map +1 -0
- package/dist/theme/css-variables.d.ts +42 -0
- package/dist/theme/css-variables.d.ts.map +1 -0
- package/dist/theme/custom-shadows.d.ts +58 -0
- package/dist/theme/custom-shadows.d.ts.map +1 -0
- package/dist/theme/index.d.ts +23 -1045
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +2 -3
- package/dist/theme/mixins.d.ts +332 -0
- package/dist/theme/mixins.d.ts.map +1 -0
- package/dist/theme/opacity.d.ts +51 -0
- package/dist/theme/opacity.d.ts.map +1 -0
- package/dist/theme/palette/builder.d.ts +138 -0
- package/dist/theme/palette/builder.d.ts.map +1 -0
- package/dist/theme/palette/index.d.ts +7 -0
- package/dist/theme/palette/index.d.ts.map +1 -0
- package/dist/theme/palette.d.ts +43 -0
- package/dist/theme/palette.d.ts.map +1 -0
- package/dist/theme/presets/arctic.d.ts +13 -0
- package/dist/theme/presets/arctic.d.ts.map +1 -0
- package/dist/theme/presets/default.d.ts +13 -0
- package/dist/theme/presets/default.d.ts.map +1 -0
- package/dist/theme/presets/dracula.d.ts +27 -0
- package/dist/theme/presets/dracula.d.ts.map +1 -0
- package/dist/theme/presets/ember.d.ts +23 -0
- package/dist/theme/presets/ember.d.ts.map +1 -0
- package/dist/theme/presets/index.d.ts +39 -0
- package/dist/theme/presets/index.d.ts.map +1 -0
- package/dist/theme/presets/luxury.d.ts +13 -0
- package/dist/theme/presets/luxury.d.ts.map +1 -0
- package/dist/theme/presets/midnight.d.ts +23 -0
- package/dist/theme/presets/midnight.d.ts.map +1 -0
- package/dist/theme/presets/minimal.d.ts +23 -0
- package/dist/theme/presets/minimal.d.ts.map +1 -0
- package/dist/theme/presets/nature.d.ts +14 -0
- package/dist/theme/presets/nature.d.ts.map +1 -0
- package/dist/theme/presets/retro.d.ts +23 -0
- package/dist/theme/presets/retro.d.ts.map +1 -0
- package/dist/theme/shadows.d.ts +61 -0
- package/dist/theme/shadows.d.ts.map +1 -0
- package/dist/theme/typography.d.ts +24 -0
- package/dist/theme/typography.d.ts.map +1 -0
- package/dist/theme/utils/color.d.ts +295 -0
- package/dist/theme/utils/color.d.ts.map +1 -0
- package/dist/theme/utils/index.d.ts +7 -0
- package/dist/theme/utils/index.d.ts.map +1 -0
- package/dist/{registry-BrDNftd5.d.ts → types/blocks.d.ts} +30 -191
- package/dist/types/blocks.d.ts.map +1 -0
- package/dist/types/components.d.ts +139 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/{config-BA6IeTq9.d.ts → types/config.d.ts} +14 -16
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/index.d.ts +11 -144
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -2
- package/dist/types/registry.d.ts +158 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/{theme-CrXLfP1c.d.ts → types/theme.d.ts} +31 -34
- package/dist/types/theme.d.ts.map +1 -0
- package/dist/utils/async-lock.d.ts +169 -0
- package/dist/utils/async-lock.d.ts.map +1 -0
- package/dist/utils/cn.d.ts +80 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cookies.d.ts +68 -0
- package/dist/utils/cookies.d.ts.map +1 -0
- package/dist/utils/create-classes.d.ts +90 -0
- package/dist/utils/create-classes.d.ts.map +1 -0
- package/dist/utils/errors.d.ts +201 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/fetch-interceptor.d.ts +230 -0
- package/dist/utils/fetch-interceptor.d.ts.map +1 -0
- package/dist/utils/font.d.ts +65 -0
- package/dist/utils/font.d.ts.map +1 -0
- package/dist/utils/format-crypto.d.ts +312 -0
- package/dist/utils/format-crypto.d.ts.map +1 -0
- package/dist/utils/format-date.d.ts +240 -0
- package/dist/utils/format-date.d.ts.map +1 -0
- package/dist/utils/format-number.d.ts +245 -0
- package/dist/utils/format-number.d.ts.map +1 -0
- package/dist/utils/i18n-text.d.ts +68 -0
- package/dist/utils/i18n-text.d.ts.map +1 -0
- package/dist/utils/index.d.ts +30 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/jwt.d.ts +227 -0
- package/dist/utils/jwt.d.ts.map +1 -0
- package/dist/utils/object.d.ts +96 -0
- package/dist/utils/object.d.ts.map +1 -0
- package/dist/utils/refs.d.ts +60 -0
- package/dist/utils/refs.d.ts.map +1 -0
- package/dist/utils/rtl.d.ts +75 -0
- package/dist/utils/rtl.d.ts.map +1 -0
- package/dist/utils/storage.d.ts +190 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/string.d.ts +216 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/template-resolver.d.ts +12 -0
- package/dist/utils/template-resolver.d.ts.map +1 -0
- package/dist/utils/toast.d.ts +25 -0
- package/dist/utils/toast.d.ts.map +1 -0
- package/dist/utils/transform-number.d.ts +108 -0
- package/dist/utils/transform-number.d.ts.map +1 -0
- package/dist/utils/url.d.ts +198 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/package.json +77 -61
- package/dist/chunk-77KIJLPP.js +0 -37
- package/dist/chunk-77KIJLPP.js.map +0 -1
- package/dist/chunk-BTIT7WYH.js.map +0 -1
- package/dist/chunk-BV32OJ2A.js.map +0 -1
- package/dist/chunk-DDY7TLUI.js.map +0 -1
- package/dist/chunk-DXXZ3ITR.js.map +0 -1
- package/dist/chunk-E3XANPTO.js.map +0 -1
- package/dist/chunk-GYDT5EKX.js +0 -16505
- package/dist/chunk-GYDT5EKX.js.map +0 -1
- package/dist/chunk-HO2GKTWJ.js.map +0 -1
- package/dist/chunk-JDTC2SBY.js.map +0 -1
- package/dist/chunk-LAEY5USO.js.map +0 -1
- package/dist/chunk-UR6X3W5I.js.map +0 -1
- package/dist/chunk-WC2WM2JD.js.map +0 -1
- package/dist/chunk-XWL6J6IO.js.map +0 -1
- package/dist/index-odhPSv9I.d.ts +0 -2491
- package/dist/settings-plpR26Xk.d.ts +0 -455
- package/dist/use-timeout-D7U3EAtH.d.ts +0 -808
package/dist/forms/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/forms/schema-utils.ts","../../src/forms/schema-provider.tsx"],"names":["z","date"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Schema Utilities\n *\n * Pre-built Zod schema helpers for common form field validations.\n * Designed to work seamlessly with React Hook Form + Zod resolver.\n *\n * Features:\n * - Type-safe schema builders\n * - Customizable error messages with i18n support\n * - Common field validations (email, phone, date, file, etc.)\n * - Nullable input handling\n * - Slider range validation\n * - Rich text editor validation\n *\n * @module @omnitron-dev/prism/forms\n */\n\nimport * as z from 'zod';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Common error message configuration.\n */\nexport interface SchemaErrorMessages {\n /** Error message when field is required but empty */\n required?: string;\n /** Error message when field format is invalid */\n invalid?: string;\n}\n\n/**\n * Options for file validation.\n */\nexport interface FileSchemaOptions extends SchemaErrorMessages {\n /** Maximum file size in bytes */\n maxSize?: number;\n /** Allowed MIME types */\n accept?: string[];\n}\n\n/**\n * Options for slider range validation.\n */\nexport interface SliderRangeOptions extends SchemaErrorMessages {\n /** Minimum value */\n min: number;\n /** Maximum value */\n max: number;\n}\n\n// =============================================================================\n// DEFAULT ERROR MESSAGES\n// =============================================================================\n\nconst DEFAULT_ERRORS = {\n email: {\n required: 'Email is required',\n invalid: 'Email must be a valid email address',\n },\n phone: {\n required: 'Phone number is required',\n invalid: 'Invalid phone number',\n },\n date: {\n required: 'Date is required',\n invalid: 'Invalid date',\n },\n file: {\n required: 'File is required',\n invalid: 'Invalid file',\n tooLarge: 'File is too large',\n invalidType: 'File type not allowed',\n },\n boolean: {\n required: 'This field is required',\n },\n editor: {\n required: 'Content is required',\n },\n nullable: {\n required: 'This field is required',\n },\n} as const;\n\n// =============================================================================\n// SCHEMA UTILS\n// =============================================================================\n\n/**\n * Pre-built Zod schema helpers for common form validations.\n *\n * @example\n * ```tsx\n * import { z } from 'zod';\n * import { schemaUtils } from '@omnitron-dev/prism/forms';\n *\n * // Define form schema\n * const UserSchema = z.object({\n * email: schemaUtils.email(),\n * phone: schemaUtils.phone(),\n * birthDate: schemaUtils.date(),\n * avatar: schemaUtils.file(),\n * agreeToTerms: schemaUtils.boolean({ error: 'You must accept the terms' }),\n * bio: schemaUtils.editor(),\n * });\n *\n * // With custom error messages\n * const CustomSchema = z.object({\n * email: schemaUtils.email({\n * required: 'Please enter your email',\n * invalid: 'That email doesn\\'t look right',\n * }),\n * });\n * ```\n */\nexport const schemaUtils = {\n /**\n * Email validation schema.\n * Validates format and provides clear error messages.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * email: schemaUtils.email(),\n * });\n * ```\n */\n email: (errors?: SchemaErrorMessages) =>\n z\n .string()\n .min(1, { message: errors?.required ?? DEFAULT_ERRORS.email.required })\n .max(320, { message: 'Email address is too long' })\n .email({ message: errors?.invalid ?? DEFAULT_ERRORS.email.invalid }),\n\n /**\n * Phone number validation schema.\n * Basic validation with optional custom validator.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * phone: schemaUtils.phone({\n * isValid: (val) => /^\\+?[1-9]\\d{1,14}$/.test(val),\n * }),\n * });\n * ```\n */\n phone: (options?: SchemaErrorMessages & { isValid?: (val: string) => boolean }) => {\n let schema = z.string().min(1, { message: options?.required ?? DEFAULT_ERRORS.phone.required });\n\n if (options?.isValid) {\n schema = schema.refine(options.isValid, {\n message: options?.invalid ?? DEFAULT_ERRORS.phone.invalid,\n });\n }\n\n return schema;\n },\n\n /**\n * Date validation schema.\n * Works with Date objects, timestamps, and ISO strings.\n * Compatible with date pickers.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * birthDate: schemaUtils.date(),\n * appointmentTime: schemaUtils.date({ required: 'Please select a time' }),\n * });\n * ```\n */\n date: (errors?: SchemaErrorMessages) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine((val) => val !== null && val !== '' && val !== undefined, {\n message: errors?.required ?? DEFAULT_ERRORS.date.required,\n })\n .refine(\n (val) => {\n // At this point, val passed the required check (non-null, non-empty, defined)\n if (val instanceof Date) return Number.isFinite(val.getTime());\n const date = new Date(val as string | number);\n return Number.isFinite(date.getTime());\n },\n { message: errors?.invalid ?? DEFAULT_ERRORS.date.invalid }\n ),\n\n /**\n * Optional date schema (nullable).\n * For date fields that aren't required.\n */\n dateOptional: (errors?: SchemaErrorMessages) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === '' || val === undefined) return true;\n if (val instanceof Date) return Number.isFinite(val.getTime());\n const date = new Date(val as string | number);\n return Number.isFinite(date.getTime());\n },\n { message: errors?.invalid ?? DEFAULT_ERRORS.date.invalid }\n )\n .nullable(),\n\n /**\n * Rich text editor validation schema.\n * Treats empty paragraphs as empty content.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * description: schemaUtils.editor(),\n * });\n * ```\n */\n editor: (error?: string) =>\n z.string().refine(\n (val) => {\n const cleaned = val.trim();\n // Common empty editor states\n return cleaned !== '' && cleaned !== '<p></p>' && cleaned !== '<p><br></p>' && cleaned !== '<p><br/></p>';\n },\n { message: error ?? DEFAULT_ERRORS.editor.required }\n ),\n\n /**\n * Boolean validation schema.\n * For checkboxes/switches that must be true (e.g., terms acceptance).\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * agreeToTerms: schemaUtils.boolean({ error: 'You must accept the terms' }),\n * });\n * ```\n */\n boolean: (options?: { error?: string }) =>\n z.boolean().refine((val) => val === true, {\n message: options?.error ?? DEFAULT_ERRORS.boolean.required,\n }),\n\n /**\n * Optional boolean schema.\n * For optional checkboxes.\n */\n booleanOptional: () => z.boolean().optional(),\n\n /**\n * Nullable input wrapper.\n * Wraps any schema to handle null values as required errors.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * country: schemaUtils.nullableInput(\n * z.string().min(1),\n * { error: 'Please select a country' }\n * ),\n * });\n * ```\n */\n nullableInput: <T extends z.ZodTypeAny>(schema: T, options?: { error?: string }) =>\n schema.nullable().refine((val) => val !== null && val !== undefined, {\n message: options?.error ?? DEFAULT_ERRORS.nullable.required,\n }),\n\n /**\n * Single file upload validation.\n * Supports File objects and URL strings (for existing files).\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * avatar: schemaUtils.file(),\n * document: schemaUtils.file({\n * maxSize: 5 * 1024 * 1024, // 5MB\n * accept: ['application/pdf'],\n * }),\n * });\n * ```\n */\n file: (options?: FileSchemaOptions) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === undefined) return false;\n if (typeof val === 'string') return val.length > 0;\n return true;\n },\n { message: options?.required ?? DEFAULT_ERRORS.file.required }\n )\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.tooLarge }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.invalidType }\n ),\n\n /**\n * Optional single file upload.\n */\n fileOptional: (options?: Omit<FileSchemaOptions, 'required'>) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null || val === undefined) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.tooLarge }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null || val === undefined) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.invalidType }\n )\n .nullable(),\n\n /**\n * Multiple file upload validation.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * images: schemaUtils.files({ minFiles: 1, error: 'Upload at least one image' }),\n * });\n * ```\n */\n files: (options?: { error?: string; minFiles?: number }) =>\n z\n .array(z.union([z.instanceof(File), z.string()]))\n .min(options?.minFiles ?? 1, { message: options?.error ?? DEFAULT_ERRORS.file.required }),\n\n /**\n * Slider range validation.\n * For dual-thumb sliders with [min, max] value.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * priceRange: schemaUtils.sliderRange({ min: 0, max: 1000 }),\n * });\n * ```\n */\n sliderRange: (options: SliderRangeOptions) =>\n z.tuple([z.number(), z.number()]).refine(([min, max]) => min >= options.min && max <= options.max && min <= max, {\n message: options?.invalid ?? `Range must be between ${options.min} and ${options.max}`,\n }),\n\n /**\n * URL validation schema.\n */\n url: (errors?: SchemaErrorMessages) =>\n z\n .string()\n .min(1, { message: errors?.required ?? 'URL is required' })\n .url({ message: errors?.invalid ?? 'Invalid URL' }),\n\n /**\n * Optional URL schema.\n */\n urlOptional: (errors?: SchemaErrorMessages) =>\n z\n .string()\n .url({ message: errors?.invalid ?? 'Invalid URL' })\n .optional()\n .or(z.literal('')),\n\n /**\n * Password validation with strength requirements.\n */\n password: (options?: {\n minLength?: number;\n requireUppercase?: boolean;\n requireLowercase?: boolean;\n requireNumber?: boolean;\n requireSpecial?: boolean;\n error?: string;\n }) => {\n const {\n minLength = 8,\n requireUppercase = true,\n requireLowercase = true,\n requireNumber = true,\n requireSpecial = false,\n } = options ?? {};\n\n return z\n .string()\n .min(minLength, { message: `Password must be at least ${minLength} characters` })\n .refine((val) => val.trim().length > 0, {\n message: 'Password must not be only whitespace',\n })\n .refine((val) => !requireUppercase || /[A-Z]/.test(val), {\n message: 'Password must contain at least one uppercase letter',\n })\n .refine((val) => !requireLowercase || /[a-z]/.test(val), {\n message: 'Password must contain at least one lowercase letter',\n })\n .refine((val) => !requireNumber || /[0-9]/.test(val), {\n message: 'Password must contain at least one number',\n })\n .refine((val) => !requireSpecial || /[!@#$%^&*(),.?\":{}|<>]/.test(val), {\n message: 'Password must contain at least one special character',\n });\n },\n\n /**\n * Confirmation field (e.g., confirm password).\n * Use with z.object().refine() for cross-field validation.\n */\n confirm: (fieldName: string, error?: string) => ({\n message: error ?? `${fieldName} does not match`,\n path: ['confirm'],\n }),\n};\n\n// =============================================================================\n// TESTING UTILITY\n// =============================================================================\n\n/**\n * Test schema validation with multiple values.\n * Useful for development and debugging.\n *\n * @example\n * ```ts\n * testSchema(schemaUtils.email(), [\n * 'valid@email.com',\n * 'invalid-email',\n * '',\n * null,\n * ]);\n * ```\n */\n/**\n * Test results from schema validation.\n */\nexport interface SchemaTestResult {\n value: unknown;\n success: boolean;\n data?: unknown;\n errors?: string[];\n}\n\n/**\n * Test a schema against multiple values.\n * Returns structured results instead of logging to console.\n * Use testSchemaDebug for console output during development.\n */\nexport function testSchema<T extends z.ZodTypeAny>(schema: T, values: unknown[]): SchemaTestResult[] {\n return values.map((value) => {\n const result = schema.safeParse(value);\n if (result.success) {\n return { value, success: true, data: result.data };\n }\n return {\n value,\n success: false,\n errors: result.error.issues.map((issue) => issue.message),\n };\n });\n}\n\n/**\n * Test a schema with console output (development only).\n * This function does nothing in production builds.\n *\n * @example\n * ```ts\n * testSchemaDebug(schemaUtils.email(), [\n * 'valid@email.com',\n * 'invalid-email',\n * '',\n * null,\n * ]);\n * ```\n */\nexport function testSchemaDebug<T extends z.ZodTypeAny>(schema: T, values: unknown[]): void {\n // Only run in development\n if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'production') {\n return;\n }\n\n const colors = {\n green: (txt: string) => `\\x1b[32m${txt}\\x1b[0m`,\n red: (txt: string) => `\\x1b[31m${txt}\\x1b[0m`,\n gray: (txt: string) => `\\x1b[90m${txt}\\x1b[0m`,\n };\n\n console.log('\\n--- Schema Test Results ---\\n');\n\n values.forEach((value) => {\n const result = schema.safeParse(value);\n const type = colors.gray(`(${typeof value})`);\n const serialized = JSON.stringify(value);\n\n if (result.success) {\n console.log(`${colors.green('✓')} ${serialized} ${type}`);\n\n console.log(` Result: ${JSON.stringify(result.data)}`);\n } else {\n console.log(`${colors.red('✗')} ${serialized} ${type}`);\n result.error.issues.forEach((issue) => {\n console.log(` Error: ${issue.message}`);\n });\n }\n\n console.log('');\n });\n}\n","'use client';\n\n/**\n * Schema Provider\n *\n * Provides i18n-aware schema validation with customizable error messages.\n * Integrates with any i18n library (i18next, react-intl, etc.).\n *\n * @module @omnitron-dev/prism/forms\n */\n\nimport { createContext, useContext, useMemo, type ReactNode } from 'react';\nimport * as z from 'zod';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Translation function type.\n * Compatible with i18next t() function signature.\n */\nexport type TranslateFunction = (key: string, options?: Record<string, unknown>) => string;\n\n/**\n * Default translation keys for schema error messages.\n */\nexport interface SchemaTranslationKeys {\n // Required fields\n 'validation.required': string;\n 'validation.email.required': string;\n 'validation.email.invalid': string;\n 'validation.phone.required': string;\n 'validation.phone.invalid': string;\n 'validation.date.required': string;\n 'validation.date.invalid': string;\n 'validation.file.required': string;\n 'validation.file.tooLarge': string;\n 'validation.file.invalidType': string;\n 'validation.boolean.required': string;\n 'validation.editor.required': string;\n 'validation.url.required': string;\n 'validation.url.invalid': string;\n 'validation.password.minLength': string;\n 'validation.password.uppercase': string;\n 'validation.password.lowercase': string;\n 'validation.password.number': string;\n 'validation.password.special': string;\n 'validation.confirm.mismatch': string;\n // Array of all keys\n [key: string]: string;\n}\n\n/**\n * Schema provider configuration.\n */\nexport interface SchemaProviderConfig {\n /**\n * Translation function from your i18n library.\n * If not provided, keys will be used as-is.\n */\n t?: TranslateFunction;\n /**\n * Default locale for error messages.\n * @default 'en'\n */\n locale?: string;\n /**\n * Custom error message overrides.\n */\n messages?: Partial<SchemaTranslationKeys>;\n}\n\n/**\n * Schema context value.\n */\nexport interface SchemaContextValue {\n /**\n * Translate a validation key.\n */\n t: TranslateFunction;\n /**\n * Current locale.\n */\n locale: string;\n /**\n * Get schema helpers with translated messages.\n */\n schema: ReturnType<typeof createTranslatedSchemaUtils>;\n}\n\n// =============================================================================\n// DEFAULT MESSAGES\n// =============================================================================\n\n/**\n * Default English error messages.\n */\nconst DEFAULT_MESSAGES: SchemaTranslationKeys = {\n 'validation.required': 'This field is required',\n 'validation.email.required': 'Email is required',\n 'validation.email.invalid': 'Please enter a valid email address',\n 'validation.phone.required': 'Phone number is required',\n 'validation.phone.invalid': 'Please enter a valid phone number',\n 'validation.date.required': 'Date is required',\n 'validation.date.invalid': 'Please enter a valid date',\n 'validation.file.required': 'File is required',\n 'validation.file.tooLarge': 'File size exceeds the maximum allowed',\n 'validation.file.invalidType': 'File type is not supported',\n 'validation.boolean.required': 'This field must be accepted',\n 'validation.editor.required': 'Content is required',\n 'validation.url.required': 'URL is required',\n 'validation.url.invalid': 'Please enter a valid URL',\n 'validation.password.minLength': 'Password must be at least {{minLength}} characters',\n 'validation.password.uppercase': 'Password must contain at least one uppercase letter',\n 'validation.password.lowercase': 'Password must contain at least one lowercase letter',\n 'validation.password.number': 'Password must contain at least one number',\n 'validation.password.special': 'Password must contain at least one special character',\n 'validation.confirm.mismatch': '{{fieldName}} does not match',\n};\n\n// =============================================================================\n// CONTEXT\n// =============================================================================\n\nconst SchemaContext = createContext<SchemaContextValue | null>(null);\n\n// =============================================================================\n// TRANSLATED SCHEMA UTILS FACTORY\n// =============================================================================\n\n/**\n * Create schema utilities with translated error messages.\n */\nfunction createTranslatedSchemaUtils(t: TranslateFunction) {\n return {\n /**\n * Email validation with i18n messages.\n */\n email: (options?: { required?: string; invalid?: string }) =>\n z\n .string()\n .min(1, { message: options?.required ?? t('validation.email.required') })\n .email({ message: options?.invalid ?? t('validation.email.invalid') }),\n\n /**\n * Phone validation with i18n messages.\n */\n phone: (options?: { required?: string; invalid?: string; isValid?: (val: string) => boolean }) => {\n let schema = z.string().min(1, { message: options?.required ?? t('validation.phone.required') });\n\n if (options?.isValid) {\n schema = schema.refine(options.isValid, {\n message: options?.invalid ?? t('validation.phone.invalid'),\n });\n }\n\n return schema;\n },\n\n /**\n * Date validation with i18n messages.\n */\n date: (options?: { required?: string; invalid?: string }) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine((val) => val !== null && val !== '' && val !== undefined, {\n message: options?.required ?? t('validation.date.required'),\n })\n .refine(\n (val) => {\n if (val === null || val === '' || val === undefined) return true;\n const date = new Date(val as string | number | Date);\n return !isNaN(date.getTime());\n },\n { message: options?.invalid ?? t('validation.date.invalid') }\n ),\n\n /**\n * Optional date schema.\n */\n dateOptional: (options?: { invalid?: string }) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === '' || val === undefined) return true;\n const date = new Date(val as string | number | Date);\n return !isNaN(date.getTime());\n },\n { message: options?.invalid ?? t('validation.date.invalid') }\n )\n .nullable(),\n\n /**\n * Boolean (checkbox) validation with i18n messages.\n */\n boolean: (options?: { error?: string }) =>\n z.boolean().refine((val) => val === true, {\n message: options?.error ?? t('validation.boolean.required'),\n }),\n\n /**\n * Optional boolean schema.\n */\n booleanOptional: () => z.boolean().optional(),\n\n /**\n * Rich text editor validation with i18n messages.\n */\n editor: (options?: { error?: string }) =>\n z.string().refine(\n (val) => {\n const cleaned = val.trim();\n return cleaned !== '' && cleaned !== '<p></p>' && cleaned !== '<p><br></p>' && cleaned !== '<p><br/></p>';\n },\n { message: options?.error ?? t('validation.editor.required') }\n ),\n\n /**\n * File validation with i18n messages.\n */\n file: (options?: {\n required?: string;\n tooLarge?: string;\n invalidType?: string;\n maxSize?: number;\n accept?: string[];\n }) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === undefined) return false;\n if (typeof val === 'string') return val.length > 0;\n return true;\n },\n { message: options?.required ?? t('validation.file.required') }\n )\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.tooLarge ?? t('validation.file.tooLarge') }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalidType ?? t('validation.file.invalidType') }\n ),\n\n /**\n * Optional file schema.\n */\n fileOptional: (options?: { tooLarge?: string; invalidType?: string; maxSize?: number; accept?: string[] }) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null || val === undefined) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.tooLarge ?? t('validation.file.tooLarge') }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null || val === undefined) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalidType ?? t('validation.file.invalidType') }\n )\n .nullable(),\n\n /**\n * Multiple files validation.\n */\n files: (options?: { error?: string; minFiles?: number }) =>\n z\n .array(z.union([z.instanceof(File), z.string()]))\n .min(options?.minFiles ?? 1, { message: options?.error ?? t('validation.file.required') }),\n\n /**\n * URL validation with i18n messages.\n */\n url: (options?: { required?: string; invalid?: string }) =>\n z\n .string()\n .min(1, { message: options?.required ?? t('validation.url.required') })\n .url({ message: options?.invalid ?? t('validation.url.invalid') }),\n\n /**\n * Optional URL schema.\n */\n urlOptional: (options?: { invalid?: string }) =>\n z\n .string()\n .url({ message: options?.invalid ?? t('validation.url.invalid') })\n .optional()\n .or(z.literal('')),\n\n /**\n * Password validation with strength requirements.\n */\n password: (options?: {\n minLength?: number;\n requireUppercase?: boolean;\n requireLowercase?: boolean;\n requireNumber?: boolean;\n requireSpecial?: boolean;\n }) => {\n const {\n minLength = 8,\n requireUppercase = true,\n requireLowercase = true,\n requireNumber = true,\n requireSpecial = false,\n } = options ?? {};\n\n return z\n .string()\n .min(minLength, { message: t('validation.password.minLength', { minLength }) })\n .refine((val) => !requireUppercase || /[A-Z]/.test(val), {\n message: t('validation.password.uppercase'),\n })\n .refine((val) => !requireLowercase || /[a-z]/.test(val), {\n message: t('validation.password.lowercase'),\n })\n .refine((val) => !requireNumber || /[0-9]/.test(val), {\n message: t('validation.password.number'),\n })\n .refine((val) => !requireSpecial || /[!@#$%^&*(),.?\":{}|<>]/.test(val), {\n message: t('validation.password.special'),\n });\n },\n\n /**\n * Nullable input wrapper.\n */\n nullableInput: <T extends z.ZodTypeAny>(schema: T, options?: { error?: string }) =>\n schema\n .nullable()\n .refine((val) => val !== null && val !== undefined, { message: options?.error ?? t('validation.required') }),\n\n /**\n * Slider range validation.\n */\n sliderRange: (options: { min: number; max: number; invalid?: string }) =>\n z.tuple([z.number(), z.number()]).refine(([min, max]) => min >= options.min && max <= options.max && min <= max, {\n message: options?.invalid ?? `Range must be between ${options.min} and ${options.max}`,\n }),\n\n /**\n * Required string with i18n message.\n */\n required: (options?: { error?: string }) =>\n z.string().min(1, { message: options?.error ?? t('validation.required') }),\n\n /**\n * Confirmation field helper.\n */\n confirm: (fieldName: string, error?: string) => ({\n message: error ?? t('validation.confirm.mismatch', { fieldName }),\n path: ['confirm'],\n }),\n };\n}\n\n// =============================================================================\n// PROVIDER COMPONENT\n// =============================================================================\n\n/**\n * Provider props.\n */\nexport interface SchemaProviderProps extends SchemaProviderConfig {\n children: ReactNode;\n}\n\n/**\n * SchemaProvider - Provides i18n-aware schema validation context.\n *\n * @example\n * ```tsx\n * // With i18next\n * import { useTranslation } from 'react-i18next';\n *\n * function App() {\n * const { t, i18n } = useTranslation();\n *\n * return (\n * <SchemaProvider t={t} locale={i18n.language}>\n * <MyForm />\n * </SchemaProvider>\n * );\n * }\n *\n * // In form component\n * function MyForm() {\n * const { schema } = useSchema();\n *\n * const formSchema = z.object({\n * email: schema.email(),\n * password: schema.password(),\n * });\n *\n * // ... form implementation\n * }\n * ```\n */\nexport function SchemaProvider({ children, t: providedT, locale = 'en', messages = {} }: SchemaProviderProps) {\n // Create translation function with fallbacks\n const t: TranslateFunction = useMemo(() => {\n if (providedT) {\n // Wrap provided t() to include custom messages as fallback\n return (key: string, options?: Record<string, unknown>) => {\n const result = providedT(key, options);\n // If translation returns the key (not found), use custom messages or defaults\n if (result === key) {\n const customMessage = messages[key];\n if (customMessage) {\n return interpolate(customMessage, options);\n }\n const defaultMessage = DEFAULT_MESSAGES[key];\n if (defaultMessage) {\n return interpolate(defaultMessage, options);\n }\n }\n return result;\n };\n }\n\n // No i18n library provided - use custom messages or defaults\n return (key: string, options?: Record<string, unknown>) => {\n const message = messages[key] ?? DEFAULT_MESSAGES[key] ?? key;\n return interpolate(message, options);\n };\n }, [providedT, messages]);\n\n // Create schema utilities with translated messages\n const schema = useMemo(() => createTranslatedSchemaUtils(t), [t]);\n\n const value = useMemo<SchemaContextValue>(() => ({ t, locale, schema }), [t, locale, schema]);\n\n return <SchemaContext.Provider value={value}>{children}</SchemaContext.Provider>;\n}\n\n// =============================================================================\n// HOOK\n// =============================================================================\n\n/**\n * Hook to access schema context.\n *\n * @throws Error if used outside SchemaProvider\n *\n * @example\n * ```tsx\n * function MyForm() {\n * const { schema, t } = useSchema();\n *\n * const formSchema = z.object({\n * email: schema.email(),\n * name: z.string().min(1, { message: t('validation.required') }),\n * });\n *\n * // ... use formSchema with react-hook-form\n * }\n * ```\n */\nexport function useSchema(): SchemaContextValue {\n const context = useContext(SchemaContext);\n\n if (!context) {\n throw new Error('useSchema must be used within a SchemaProvider');\n }\n\n return context;\n}\n\n/**\n * Hook to access schema context safely (returns null if not in provider).\n */\nexport function useSchemaOptional(): SchemaContextValue | null {\n return useContext(SchemaContext);\n}\n\n// =============================================================================\n// UTILITIES\n// =============================================================================\n\n/**\n * Simple string interpolation for error messages.\n * Replaces {{key}} with values from options.\n */\nfunction interpolate(message: string, options?: Record<string, unknown>): string {\n if (!options) return message;\n\n return message.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key) => {\n const value = options[key];\n return value !== undefined ? String(value) : `{{${key}}}`;\n });\n}\n\n// =============================================================================\n// STANDALONE FACTORY (for use without provider)\n// =============================================================================\n\n/**\n * Create translated schema utilities without provider.\n * Useful for server-side validation or standalone usage.\n *\n * @example\n * ```ts\n * // Server-side validation\n * const t = (key: string) => translations[key] ?? key;\n * const schema = createSchemaUtils(t);\n *\n * const userSchema = z.object({\n * email: schema.email(),\n * });\n * ```\n */\nexport function createSchemaUtils(t?: TranslateFunction): ReturnType<typeof createTranslatedSchemaUtils> {\n const translateFn: TranslateFunction = t ?? ((key) => DEFAULT_MESSAGES[key] ?? key);\n return createTranslatedSchemaUtils(translateFn);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/forms/schema-utils.ts","../../src/forms/schema-provider.tsx"],"names":["z","date"],"mappings":";;;;AAyDA,IAAM,cAAA,GAAiB;AAAA,EACrB,KAAA,EAAO;AAAA,IACL,QAAA,EAAU,mBAAA;AAAA,IACV,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,QAAA,EAAU,0BAAA;AAAA,IACV,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,kBAAA;AAAA,IACV,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,kBAAA;AAAA,IAEV,QAAA,EAAU,mBAAA;AAAA,IACV,WAAA,EAAa;AAAA,GACf;AAAA,EACA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,QAAA,EAAU;AAAA,IACR,QAAA,EAAU;AAAA;AAEd,CAAA;AAiCO,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYzB,KAAA,EAAO,CAAC,MAAA,KAEHA,EAAA,CAAA,MAAA,EAAO,CACP,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,MAAA,EAAQ,QAAA,IAAY,cAAA,CAAe,MAAM,QAAA,EAAU,CAAA,CACrE,GAAA,CAAI,GAAA,EAAK,EAAE,OAAA,EAAS,2BAAA,EAA6B,CAAA,CACjD,KAAA,CAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,OAAA,IAAW,cAAA,CAAe,KAAA,CAAM,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAevE,KAAA,EAAO,CAAC,OAAA,KAA2E;AACjF,IAAA,IAAI,MAAA,GAAWA,EAAA,CAAA,MAAA,EAAO,CAAE,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,cAAA,CAAe,KAAA,CAAM,QAAA,EAAU,CAAA;AAE9F,IAAA,IAAI,SAAS,OAAA,EAAS;AACpB,MAAA,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAS;AAAA,QACtC,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,cAAA,CAAe,KAAA,CAAM;AAAA,OACnD,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,IAAA,EAAM,CAAC,MAAA,KAEFA,EAAA,CAAA,KAAA,CAAM,CAAGA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,IAAA,EAAK,EAAKA,SAAM,CAAC,CAAA,CAClD,MAAA,CAAO,CAAC,GAAA,KAAQ,QAAQ,IAAA,IAAQ,GAAA,KAAQ,EAAA,IAAM,GAAA,KAAQ,MAAA,EAAW;AAAA,IAChE,OAAA,EAAS,MAAA,EAAQ,QAAA,IAAY,cAAA,CAAe,IAAA,CAAK;AAAA,GAClD,CAAA,CACA,MAAA;AAAA,IACC,CAAC,GAAA,KAAQ;AAEP,MAAA,IAAI,eAAe,IAAA,EAAM,OAAO,OAAO,QAAA,CAAS,GAAA,CAAI,SAAS,CAAA;AAC7D,MAAA,MAAMC,KAAAA,GAAO,IAAI,IAAA,CAAK,GAAsB,CAAA;AAC5C,MAAA,OAAO,MAAA,CAAO,QAAA,CAASA,KAAAA,CAAK,OAAA,EAAS,CAAA;AAAA,IACvC,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,MAAA,EAAQ,OAAA,IAAW,cAAA,CAAe,KAAK,OAAA;AAAQ,GAC5D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMJ,YAAA,EAAc,CAAC,MAAA,KAEVD,EAAA,CAAA,KAAA,CAAM,CAAGA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,IAAA,EAAK,EAAKA,EAAA,CAAA,IAAA,EAAM,CAAC,CAAA,CAClD,MAAA;AAAA,IACC,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,QAAQ,IAAA,IAAQ,GAAA,KAAQ,EAAA,IAAM,GAAA,KAAQ,QAAW,OAAO,IAAA;AAC5D,MAAA,IAAI,eAAe,IAAA,EAAM,OAAO,OAAO,QAAA,CAAS,GAAA,CAAI,SAAS,CAAA;AAC7D,MAAA,MAAMC,KAAAA,GAAO,IAAI,IAAA,CAAK,GAAsB,CAAA;AAC5C,MAAA,OAAO,MAAA,CAAO,QAAA,CAASA,KAAAA,CAAK,OAAA,EAAS,CAAA;AAAA,IACvC,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,MAAA,EAAQ,OAAA,IAAW,cAAA,CAAe,KAAK,OAAA;AAAQ,IAE3D,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAad,MAAA,EAAQ,CAAC,KAAA,KACLD,EAAA,CAAA,MAAA,EAAO,CAAE,MAAA;AAAA,IACT,CAAC,GAAA,KAAQ;AACP,MAAA,MAAM,OAAA,GAAU,IAAI,IAAA,EAAK;AAEzB,MAAA,OAAO,YAAY,EAAA,IAAM,OAAA,KAAY,SAAA,IAAa,OAAA,KAAY,iBAAiB,OAAA,KAAY,cAAA;AAAA,IAC7F,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,KAAA,IAAS,cAAA,CAAe,OAAO,QAAA;AAAS,GACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaF,OAAA,EAAS,CAAC,OAAA,KACNA,EAAA,CAAA,OAAA,GAAU,MAAA,CAAO,CAAC,GAAA,KAAQ,GAAA,KAAQ,IAAA,EAAM;AAAA,IACxC,OAAA,EAAS,OAAA,EAAS,KAAA,IAAS,cAAA,CAAe,OAAA,CAAQ;AAAA,GACnD,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,eAAA,EAAiB,MAAQA,EAAA,CAAA,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB5C,aAAA,EAAe,CAAyB,MAAA,EAAW,OAAA,KACjD,MAAA,CAAO,QAAA,EAAS,CAAE,MAAA,CAAO,CAAC,GAAA,KAAQ,GAAA,KAAQ,IAAA,IAAQ,QAAQ,MAAA,EAAW;AAAA,IACnE,OAAA,EAAS,OAAA,EAAS,KAAA,IAAS,cAAA,CAAe,QAAA,CAAS;AAAA,GACpD,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBH,IAAA,EAAM,CAAC,OAAA,KAEFA,EAAA,CAAA,KAAA,CAAM,CAAGA,EAAA,CAAA,UAAA,CAAW,IAAI,CAAA,EAAKA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,IAAA,EAAM,CAAC,CAAA,CAChD,MAAA;AAAA,IACC,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW,OAAO,KAAA;AAC9C,MAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,OAAO,IAAI,MAAA,GAAS,CAAA;AACjD,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,cAAA,CAAe,KAAK,QAAA;AAAS,GAC/D,CACC,MAAA;AAAA,IACC,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,CAAC,SAAS,OAAA,IAAW,OAAO,QAAQ,QAAA,IAAY,GAAA,KAAQ,MAAM,OAAO,IAAA;AACzE,MAAA,OAAQ,GAAA,CAAa,QAAQ,OAAA,CAAQ,OAAA;AAAA,IACvC,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,cAAA,CAAe,KAAK,QAAA;AAAS,GAC9D,CACC,MAAA;AAAA,IACC,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,CAAC,SAAS,MAAA,IAAU,OAAO,QAAQ,QAAA,IAAY,GAAA,KAAQ,MAAM,OAAO,IAAA;AACxE,MAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,QAAA,CAAU,GAAA,CAAa,IAAI,CAAA;AAAA,IACnD,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,cAAA,CAAe,KAAK,WAAA;AAAY,GACjE;AAAA;AAAA;AAAA;AAAA,EAKJ,YAAA,EAAc,CAAC,OAAA,KAEVA,EAAA,CAAA,KAAA,CAAM,CAAGA,EAAA,CAAA,UAAA,CAAW,IAAI,CAAA,EAAKA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,IAAA,EAAM,CAAC,CAAA,CAChD,MAAA;AAAA,IACC,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,CAAC,OAAA,EAAS,OAAA,IAAW,OAAO,GAAA,KAAQ,YAAY,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW,OAAO,IAAA;AAC9F,MAAA,OAAQ,GAAA,CAAa,QAAQ,OAAA,CAAQ,OAAA;AAAA,IACvC,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,cAAA,CAAe,KAAK,QAAA;AAAS,GAC9D,CACC,MAAA;AAAA,IACC,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,CAAC,OAAA,EAAS,MAAA,IAAU,OAAO,GAAA,KAAQ,YAAY,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW,OAAO,IAAA;AAC7F,MAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,QAAA,CAAU,GAAA,CAAa,IAAI,CAAA;AAAA,IACnD,CAAA;AAAA,IACA,EAAE,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,cAAA,CAAe,KAAK,WAAA;AAAY,IAEhE,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYd,KAAA,EAAO,CAAC,OAAA,KAEHA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,KAAA,CAAM,CAAGA,EAAA,CAAA,UAAA,CAAW,IAAI,CAAA,EAAKA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAA,CAC/C,GAAA,CAAI,OAAA,EAAS,QAAA,IAAY,CAAA,EAAG,EAAE,OAAA,EAAS,OAAA,EAAS,KAAA,IAAS,cAAA,CAAe,IAAA,CAAK,QAAA,EAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa5F,WAAA,EAAa,CAAC,OAAA,KACVA,EAAA,CAAA,KAAA,CAAM,CAAGA,WAAO,EAAKA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,CAAC,GAAA,EAAK,GAAG,CAAA,KAAM,GAAA,IAAO,OAAA,CAAQ,OAAO,GAAA,IAAO,OAAA,CAAQ,GAAA,IAAO,GAAA,IAAO,GAAA,EAAK;AAAA,IAC/G,OAAA,EAAS,SAAS,OAAA,IAAW,CAAA,sBAAA,EAAyB,QAAQ,GAAG,CAAA,KAAA,EAAQ,QAAQ,GAAG,CAAA;AAAA,GACrF,CAAA;AAAA;AAAA;AAAA;AAAA,EAKH,GAAA,EAAK,CAAC,MAAA,KAEDA,EAAA,CAAA,MAAA,GACA,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,iBAAA,EAAmB,EACzD,GAAA,CAAI,EAAE,SAAS,MAAA,EAAQ,OAAA,IAAW,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,EAKtD,aAAa,CAAC,MAAA,KAETA,WAAO,CACP,GAAA,CAAI,EAAE,OAAA,EAAS,MAAA,EAAQ,OAAA,IAAW,aAAA,EAAe,CAAA,CACjD,QAAA,GACA,EAAA,CAAKA,EAAA,CAAA,OAAA,CAAQ,EAAE,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,QAAA,EAAU,CAAC,OAAA,KAOL;AACJ,IAAA,MAAM;AAAA,MACJ,SAAA,GAAY,CAAA;AAAA,MACZ,gBAAA,GAAmB,IAAA;AAAA,MACnB,gBAAA,GAAmB,IAAA;AAAA,MACnB,aAAA,GAAgB,IAAA;AAAA,MAChB,cAAA,GAAiB;AAAA,KACnB,GAAI,WAAW,EAAC;AAEhB,IAAA,OACGA,WAAO,CACP,GAAA,CAAI,WAAW,EAAE,OAAA,EAAS,6BAA6B,SAAS,CAAA,WAAA,CAAA,EAAe,CAAA,CAC/E,OAAO,CAAC,GAAA,KAAQ,IAAI,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG;AAAA,MACtC,OAAA,EAAS;AAAA,KACV,CAAA,CACA,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,gBAAA,IAAoB,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,MACvD,OAAA,EAAS;AAAA,KACV,CAAA,CACA,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,gBAAA,IAAoB,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,MACvD,OAAA,EAAS;AAAA,KACV,CAAA,CACA,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,aAAA,IAAiB,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,MACpD,OAAA,EAAS;AAAA,KACV,CAAA,CACA,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,cAAA,IAAkB,wBAAA,CAAyB,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,MACtE,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACL,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAA,EAAS,CAAC,SAAA,EAAmB,KAAA,MAAoB;AAAA,IAC/C,OAAA,EAAS,KAAA,IAAS,CAAA,EAAG,SAAS,CAAA,eAAA,CAAA;AAAA,IAC9B,IAAA,EAAM,CAAC,SAAS;AAAA,GAClB;AACF;AAmCO,SAAS,UAAA,CAAmC,QAAW,MAAA,EAAuC;AACnG,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AAC3B,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA;AACrC,IAAA,IAAI,OAAO,OAAA,EAAS;AAClB,MAAA,OAAO,EAAE,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,IAAA,EAAK;AAAA,IACnD;AACA,IAAA,OAAO;AAAA,MACL,KAAA;AAAA,MACA,OAAA,EAAS,KAAA;AAAA,MACT,MAAA,EAAQ,OAAO,KAAA,CAAM,MAAA,CAAO,IAAI,CAAC,KAAA,KAAU,MAAM,OAAO;AAAA,KAC1D;AAAA,EACF,CAAC,CAAA;AACH;AAgBO,SAAS,eAAA,CAAwC,QAAW,MAAA,EAAyB;AAE1F,EAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,CAAQ,GAAA,EAAK,aAAa,YAAA,EAAc;AAC5E,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,KAAA,EAAO,CAAC,GAAA,KAAgB,CAAA,QAAA,EAAW,GAAG,CAAA,OAAA,CAAA;AAAA,IACtC,GAAA,EAAK,CAAC,GAAA,KAAgB,CAAA,QAAA,EAAW,GAAG,CAAA,OAAA,CAAA;AAAA,IACpC,IAAA,EAAM,CAAC,GAAA,KAAgB,CAAA,QAAA,EAAW,GAAG,CAAA,OAAA;AAAA,GACvC;AAEA,EAAA,OAAA,CAAQ,IAAI,iCAAiC,CAAA;AAE7C,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,KAAU;AACxB,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA;AACrC,IAAA,MAAM,OAAO,MAAA,CAAO,IAAA,CAAK,CAAA,CAAA,EAAI,OAAO,KAAK,CAAA,CAAA,CAAG,CAAA;AAC5C,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AAEvC,IAAA,IAAI,OAAO,OAAA,EAAS;AAClB,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,QAAG,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAExD,MAAA,OAAA,CAAQ,IAAI,CAAA,UAAA,EAAa,IAAA,CAAK,UAAU,MAAA,CAAO,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,IACxD,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,MAAA,CAAO,GAAA,CAAI,QAAG,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AACtD,MAAA,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,KAAU;AACrC,QAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAY,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,MACzC,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,OAAA,CAAQ,IAAI,EAAE,CAAA;AAAA,EAChB,CAAC,CAAA;AACH;AC5aA,IAAM,gBAAA,GAA0C;AAAA,EAC9C,qBAAA,EAAuB,wBAAA;AAAA,EACvB,2BAAA,EAA6B,mBAAA;AAAA,EAC7B,0BAAA,EAA4B,oCAAA;AAAA,EAC5B,2BAAA,EAA6B,0BAAA;AAAA,EAC7B,0BAAA,EAA4B,mCAAA;AAAA,EAC5B,0BAAA,EAA4B,kBAAA;AAAA,EAC5B,yBAAA,EAA2B,2BAAA;AAAA,EAC3B,0BAAA,EAA4B,kBAAA;AAAA,EAC5B,0BAAA,EAA4B,uCAAA;AAAA,EAC5B,6BAAA,EAA+B,4BAAA;AAAA,EAC/B,6BAAA,EAA+B,6BAAA;AAAA,EAC/B,4BAAA,EAA8B,qBAAA;AAAA,EAC9B,yBAAA,EAA2B,iBAAA;AAAA,EAC3B,wBAAA,EAA0B,0BAAA;AAAA,EAC1B,+BAAA,EAAiC,oDAAA;AAAA,EACjC,+BAAA,EAAiC,qDAAA;AAAA,EACjC,+BAAA,EAAiC,qDAAA;AAAA,EACjC,4BAAA,EAA8B,2CAAA;AAAA,EAC9B,6BAAA,EAA+B,sDAAA;AAAA,EAC/B,6BAAA,EAA+B;AACjC,CAAA;AAMA,IAAM,aAAA,GAAgB,cAAyC,IAAI,CAAA;AASnE,SAAS,4BAA4B,CAAA,EAAsB;AACzD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,KAAA,EAAO,CAAC,OAAA,KAEH,EAAA,CAAA,MAAA,EAAO,CACP,IAAI,CAAA,EAAG,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,2BAA2B,CAAA,EAAG,CAAA,CACvE,KAAA,CAAM,EAAE,OAAA,EAAS,SAAS,OAAA,IAAW,CAAA,CAAE,0BAA0B,CAAA,EAAG,CAAA;AAAA;AAAA;AAAA;AAAA,IAKzE,KAAA,EAAO,CAAC,OAAA,KAA0F;AAChG,MAAA,IAAI,MAAA,GAAW,EAAA,CAAA,MAAA,EAAO,CAAE,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,2BAA2B,CAAA,EAAG,CAAA;AAE/F,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAS;AAAA,UACtC,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,CAAA,CAAE,0BAA0B;AAAA,SAC1D,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,IAAA,EAAM,CAAC,OAAA,KAEF,EAAA,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,MAAA,EAAO,EAAK,EAAA,CAAA,MAAA,EAAO,EAAK,EAAA,CAAA,IAAA,EAAK,EAAK,SAAM,CAAC,CAAA,CAClD,MAAA,CAAO,CAAC,GAAA,KAAQ,QAAQ,IAAA,IAAQ,GAAA,KAAQ,EAAA,IAAM,GAAA,KAAQ,MAAA,EAAW;AAAA,MAChE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,0BAA0B;AAAA,KAC3D,CAAA,CACA,MAAA;AAAA,MACC,CAAC,GAAA,KAAQ;AACP,QAAA,IAAI,QAAQ,IAAA,IAAQ,GAAA,KAAQ,EAAA,IAAM,GAAA,KAAQ,QAAW,OAAO,IAAA;AAC5D,QAAA,MAAMC,KAAAA,GAAO,IAAI,IAAA,CAAK,GAA6B,CAAA;AACnD,QAAA,OAAO,CAAC,KAAA,CAAMA,KAAAA,CAAK,OAAA,EAAS,CAAA;AAAA,MAC9B,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,CAAA,CAAE,yBAAyB,CAAA;AAAE,KAC9D;AAAA;AAAA;AAAA;AAAA,IAKJ,YAAA,EAAc,CAAC,OAAA,KAEV,EAAA,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,MAAA,EAAO,EAAK,EAAA,CAAA,MAAA,EAAO,EAAK,EAAA,CAAA,IAAA,EAAK,EAAK,EAAA,CAAA,IAAA,EAAM,CAAC,CAAA,CAClD,MAAA;AAAA,MACC,CAAC,GAAA,KAAQ;AACP,QAAA,IAAI,QAAQ,IAAA,IAAQ,GAAA,KAAQ,EAAA,IAAM,GAAA,KAAQ,QAAW,OAAO,IAAA;AAC5D,QAAA,MAAMA,KAAAA,GAAO,IAAI,IAAA,CAAK,GAA6B,CAAA;AACnD,QAAA,OAAO,CAAC,KAAA,CAAMA,KAAAA,CAAK,OAAA,EAAS,CAAA;AAAA,MAC9B,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,OAAA,IAAW,CAAA,CAAE,yBAAyB,CAAA;AAAE,MAE7D,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA,IAKd,OAAA,EAAS,CAAC,OAAA,KACN,EAAA,CAAA,OAAA,GAAU,MAAA,CAAO,CAAC,GAAA,KAAQ,GAAA,KAAQ,IAAA,EAAM;AAAA,MACxC,OAAA,EAAS,OAAA,EAAS,KAAA,IAAS,CAAA,CAAE,6BAA6B;AAAA,KAC3D,CAAA;AAAA;AAAA;AAAA;AAAA,IAKH,eAAA,EAAiB,MAAQ,EAAA,CAAA,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA,IAK5C,MAAA,EAAQ,CAAC,OAAA,KACL,EAAA,CAAA,MAAA,EAAO,CAAE,MAAA;AAAA,MACT,CAAC,GAAA,KAAQ;AACP,QAAA,MAAM,OAAA,GAAU,IAAI,IAAA,EAAK;AACzB,QAAA,OAAO,YAAY,EAAA,IAAM,OAAA,KAAY,SAAA,IAAa,OAAA,KAAY,iBAAiB,OAAA,KAAY,cAAA;AAAA,MAC7F,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,KAAA,IAAS,CAAA,CAAE,4BAA4B,CAAA;AAAE,KAC/D;AAAA;AAAA;AAAA;AAAA,IAKF,IAAA,EAAM,CAAC,OAAA,KAQF,EAAA,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,UAAA,CAAW,IAAI,CAAA,EAAK,EAAA,CAAA,MAAA,EAAO,EAAK,EAAA,CAAA,IAAA,EAAM,CAAC,CAAA,CAChD,MAAA;AAAA,MACC,CAAC,GAAA,KAAQ;AACP,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW,OAAO,KAAA;AAC9C,QAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,OAAO,IAAI,MAAA,GAAS,CAAA;AACjD,QAAA,OAAO,IAAA;AAAA,MACT,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,0BAA0B,CAAA;AAAE,KAChE,CACC,MAAA;AAAA,MACC,CAAC,GAAA,KAAQ;AACP,QAAA,IAAI,CAAC,SAAS,OAAA,IAAW,OAAO,QAAQ,QAAA,IAAY,GAAA,KAAQ,MAAM,OAAO,IAAA;AACzE,QAAA,OAAQ,GAAA,CAAa,QAAQ,OAAA,CAAQ,OAAA;AAAA,MACvC,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,0BAA0B,CAAA;AAAE,KAChE,CACC,MAAA;AAAA,MACC,CAAC,GAAA,KAAQ;AACP,QAAA,IAAI,CAAC,SAAS,MAAA,IAAU,OAAO,QAAQ,QAAA,IAAY,GAAA,KAAQ,MAAM,OAAO,IAAA;AACxE,QAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,QAAA,CAAU,GAAA,CAAa,IAAI,CAAA;AAAA,MACnD,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,WAAA,IAAe,CAAA,CAAE,6BAA6B,CAAA;AAAE,KACtE;AAAA;AAAA;AAAA;AAAA,IAKJ,YAAA,EAAc,CAAC,OAAA,KAEV,EAAA,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,UAAA,CAAW,IAAI,CAAA,EAAK,EAAA,CAAA,MAAA,EAAO,EAAK,EAAA,CAAA,IAAA,EAAM,CAAC,CAAA,CAChD,MAAA;AAAA,MACC,CAAC,GAAA,KAAQ;AACP,QAAA,IAAI,CAAC,OAAA,EAAS,OAAA,IAAW,OAAO,GAAA,KAAQ,YAAY,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW,OAAO,IAAA;AAC9F,QAAA,OAAQ,GAAA,CAAa,QAAQ,OAAA,CAAQ,OAAA;AAAA,MACvC,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,0BAA0B,CAAA;AAAE,KAChE,CACC,MAAA;AAAA,MACC,CAAC,GAAA,KAAQ;AACP,QAAA,IAAI,CAAC,OAAA,EAAS,MAAA,IAAU,OAAO,GAAA,KAAQ,YAAY,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW,OAAO,IAAA;AAC7F,QAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,QAAA,CAAU,GAAA,CAAa,IAAI,CAAA;AAAA,MACnD,CAAA;AAAA,MACA,EAAE,OAAA,EAAS,OAAA,EAAS,WAAA,IAAe,CAAA,CAAE,6BAA6B,CAAA;AAAE,MAErE,QAAA,EAAS;AAAA;AAAA;AAAA;AAAA,IAKd,KAAA,EAAO,CAAC,OAAA,KAEH,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,UAAA,CAAW,IAAI,CAAA,EAAK,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAA,CAC/C,GAAA,CAAI,OAAA,EAAS,QAAA,IAAY,CAAA,EAAG,EAAE,OAAA,EAAS,OAAA,EAAS,KAAA,IAAS,CAAA,CAAE,0BAA0B,CAAA,EAAG,CAAA;AAAA;AAAA;AAAA;AAAA,IAK7F,GAAA,EAAK,CAAC,OAAA,KAED,EAAA,CAAA,MAAA,EAAO,CACP,IAAI,CAAA,EAAG,EAAE,OAAA,EAAS,OAAA,EAAS,QAAA,IAAY,CAAA,CAAE,yBAAyB,CAAA,EAAG,CAAA,CACrE,GAAA,CAAI,EAAE,OAAA,EAAS,SAAS,OAAA,IAAW,CAAA,CAAE,wBAAwB,CAAA,EAAG,CAAA;AAAA;AAAA;AAAA;AAAA,IAKrE,WAAA,EAAa,CAAC,OAAA,KAET,EAAA,CAAA,MAAA,GACA,GAAA,CAAI,EAAE,SAAS,OAAA,EAAS,OAAA,IAAW,EAAE,wBAAwB,CAAA,EAAG,CAAA,CAChE,QAAA,GACA,EAAA,CAAK,EAAA,CAAA,OAAA,CAAQ,EAAE,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKrB,QAAA,EAAU,CAAC,OAAA,KAML;AACJ,MAAA,MAAM;AAAA,QACJ,SAAA,GAAY,CAAA;AAAA,QACZ,gBAAA,GAAmB,IAAA;AAAA,QACnB,gBAAA,GAAmB,IAAA;AAAA,QACnB,aAAA,GAAgB,IAAA;AAAA,QAChB,cAAA,GAAiB;AAAA,OACnB,GAAI,WAAW,EAAC;AAEhB,MAAA,OACG,EAAA,CAAA,MAAA,GACA,GAAA,CAAI,SAAA,EAAW,EAAE,OAAA,EAAS,CAAA,CAAE,+BAAA,EAAiC,EAAE,SAAA,EAAW,GAAG,CAAA,CAC7E,OAAO,CAAC,GAAA,KAAQ,CAAC,gBAAA,IAAoB,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,QACvD,OAAA,EAAS,EAAE,+BAA+B;AAAA,OAC3C,CAAA,CACA,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,gBAAA,IAAoB,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,QACvD,OAAA,EAAS,EAAE,+BAA+B;AAAA,OAC3C,CAAA,CACA,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,aAAA,IAAiB,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,QACpD,OAAA,EAAS,EAAE,4BAA4B;AAAA,OACxC,CAAA,CACA,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,cAAA,IAAkB,wBAAA,CAAyB,IAAA,CAAK,GAAG,CAAA,EAAG;AAAA,QACtE,OAAA,EAAS,EAAE,6BAA6B;AAAA,OACzC,CAAA;AAAA,IACL,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA,EAAe,CAAyB,MAAA,EAAW,OAAA,KACjD,OACG,QAAA,EAAS,CACT,OAAO,CAAC,GAAA,KAAQ,QAAQ,IAAA,IAAQ,GAAA,KAAQ,QAAW,EAAE,OAAA,EAAS,SAAS,KAAA,IAAS,CAAA,CAAE,qBAAqB,CAAA,EAAG,CAAA;AAAA;AAAA;AAAA;AAAA,IAK/G,WAAA,EAAa,CAAC,OAAA,KACV,EAAA,CAAA,KAAA,CAAM,CAAG,WAAO,EAAK,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,CAAC,GAAA,EAAK,GAAG,CAAA,KAAM,GAAA,IAAO,OAAA,CAAQ,OAAO,GAAA,IAAO,OAAA,CAAQ,GAAA,IAAO,GAAA,IAAO,GAAA,EAAK;AAAA,MAC/G,OAAA,EAAS,SAAS,OAAA,IAAW,CAAA,sBAAA,EAAyB,QAAQ,GAAG,CAAA,KAAA,EAAQ,QAAQ,GAAG,CAAA;AAAA,KACrF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKH,QAAA,EAAU,CAAC,OAAA,KACP,EAAA,CAAA,MAAA,GAAS,GAAA,CAAI,CAAA,EAAG,EAAE,OAAA,EAAS,OAAA,EAAS,KAAA,IAAS,CAAA,CAAE,qBAAqB,GAAG,CAAA;AAAA;AAAA;AAAA;AAAA,IAK3E,OAAA,EAAS,CAAC,SAAA,EAAmB,KAAA,MAAoB;AAAA,MAC/C,SAAS,KAAA,IAAS,CAAA,CAAE,6BAAA,EAA+B,EAAE,WAAW,CAAA;AAAA,MAChE,IAAA,EAAM,CAAC,SAAS;AAAA,KAClB;AAAA,GACF;AACF;AA4CO,SAAS,cAAA,CAAe,EAAE,QAAA,EAAU,CAAA,EAAG,SAAA,EAAW,SAAS,IAAA,EAAM,QAAA,GAAW,EAAC,EAAE,EAAwB;AAE5G,EAAA,MAAM,CAAA,GAAuB,QAAQ,MAAM;AACzC,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,OAAO,CAAC,KAAa,OAAA,KAAsC;AACzD,QAAA,MAAM,MAAA,GAAS,SAAA,CAAU,GAAA,EAAK,OAAO,CAAA;AAErC,QAAA,IAAI,WAAW,GAAA,EAAK;AAClB,UAAA,MAAM,aAAA,GAAgB,SAAS,GAAG,CAAA;AAClC,UAAA,IAAI,aAAA,EAAe;AACjB,YAAA,OAAO,WAAA,CAAY,eAAe,OAAO,CAAA;AAAA,UAC3C;AACA,UAAA,MAAM,cAAA,GAAiB,iBAAiB,GAAG,CAAA;AAC3C,UAAA,IAAI,cAAA,EAAgB;AAClB,YAAA,OAAO,WAAA,CAAY,gBAAgB,OAAO,CAAA;AAAA,UAC5C;AAAA,QACF;AACA,QAAA,OAAO,MAAA;AAAA,MACT,CAAA;AAAA,IACF;AAGA,IAAA,OAAO,CAAC,KAAa,OAAA,KAAsC;AACzD,MAAA,MAAM,UAAU,QAAA,CAAS,GAAG,CAAA,IAAK,gBAAA,CAAiB,GAAG,CAAA,IAAK,GAAA;AAC1D,MAAA,OAAO,WAAA,CAAY,SAAS,OAAO,CAAA;AAAA,IACrC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,QAAQ,CAAC,CAAA;AAGxB,EAAA,MAAM,MAAA,GAAS,QAAQ,MAAM,2BAAA,CAA4B,CAAC,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA;AAEhE,EAAA,MAAM,KAAA,GAAQ,OAAA,CAA4B,OAAO,EAAE,CAAA,EAAG,MAAA,EAAQ,MAAA,EAAO,CAAA,EAAI,CAAC,CAAA,EAAG,MAAA,EAAQ,MAAM,CAAC,CAAA;AAE5F,EAAA,uBAAO,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,OAAe,QAAA,EAAS,CAAA;AACzD;AAyBO,SAAS,SAAA,GAAgC;AAC9C,EAAA,MAAM,OAAA,GAAU,WAAW,aAAa,CAAA;AAExC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AAEA,EAAA,OAAO,OAAA;AACT;AAKO,SAAS,iBAAA,GAA+C;AAC7D,EAAA,OAAO,WAAW,aAAa,CAAA;AACjC;AAUA,SAAS,WAAA,CAAY,SAAiB,OAAA,EAA2C;AAC/E,EAAA,IAAI,CAAC,SAAS,OAAO,OAAA;AAErB,EAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,gBAAA,EAAkB,CAAC,GAAG,GAAA,KAAQ;AACnD,IAAA,MAAM,KAAA,GAAQ,QAAQ,GAAG,CAAA;AACzB,IAAA,OAAO,UAAU,MAAA,GAAY,MAAA,CAAO,KAAK,CAAA,GAAI,KAAK,GAAG,CAAA,EAAA,CAAA;AAAA,EACvD,CAAC,CAAA;AACH;AAqBO,SAAS,kBAAkB,CAAA,EAAuE;AACvG,EAAA,MAAM,cAAiC,CAAA,KAAM,CAAC,GAAA,KAAQ,gBAAA,CAAiB,GAAG,CAAA,IAAK,GAAA,CAAA;AAC/E,EAAA,OAAO,4BAA4B,WAAW,CAAA;AAChD","file":"index.js","sourcesContent":["/**\n * Schema Utilities\n *\n * Pre-built Zod schema helpers for common form field validations.\n * Designed to work seamlessly with React Hook Form + Zod resolver.\n *\n * Features:\n * - Type-safe schema builders\n * - Customizable error messages with i18n support\n * - Common field validations (email, phone, date, file, etc.)\n * - Nullable input handling\n * - Slider range validation\n * - Rich text editor validation\n *\n * @module @omnitron-dev/prism/forms\n */\n\nimport * as z from 'zod';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Common error message configuration.\n */\nexport interface SchemaErrorMessages {\n /** Error message when field is required but empty */\n required?: string;\n /** Error message when field format is invalid */\n invalid?: string;\n}\n\n/**\n * Options for file validation.\n */\nexport interface FileSchemaOptions extends SchemaErrorMessages {\n /** Maximum file size in bytes */\n maxSize?: number;\n /** Allowed MIME types */\n accept?: string[];\n}\n\n/**\n * Options for slider range validation.\n */\nexport interface SliderRangeOptions extends SchemaErrorMessages {\n /** Minimum value */\n min: number;\n /** Maximum value */\n max: number;\n}\n\n// =============================================================================\n// DEFAULT ERROR MESSAGES\n// =============================================================================\n\nconst DEFAULT_ERRORS = {\n email: {\n required: 'Email is required',\n invalid: 'Email must be a valid email address',\n },\n phone: {\n required: 'Phone number is required',\n invalid: 'Invalid phone number',\n },\n date: {\n required: 'Date is required',\n invalid: 'Invalid date',\n },\n file: {\n required: 'File is required',\n invalid: 'Invalid file',\n tooLarge: 'File is too large',\n invalidType: 'File type not allowed',\n },\n boolean: {\n required: 'This field is required',\n },\n editor: {\n required: 'Content is required',\n },\n nullable: {\n required: 'This field is required',\n },\n} as const;\n\n// =============================================================================\n// SCHEMA UTILS\n// =============================================================================\n\n/**\n * Pre-built Zod schema helpers for common form validations.\n *\n * @example\n * ```tsx\n * import { z } from 'zod';\n * import { schemaUtils } from '@omnitron-dev/prism/forms';\n *\n * // Define form schema\n * const UserSchema = z.object({\n * email: schemaUtils.email(),\n * phone: schemaUtils.phone(),\n * birthDate: schemaUtils.date(),\n * avatar: schemaUtils.file(),\n * agreeToTerms: schemaUtils.boolean({ error: 'You must accept the terms' }),\n * bio: schemaUtils.editor(),\n * });\n *\n * // With custom error messages\n * const CustomSchema = z.object({\n * email: schemaUtils.email({\n * required: 'Please enter your email',\n * invalid: 'That email doesn\\'t look right',\n * }),\n * });\n * ```\n */\nexport const schemaUtils = {\n /**\n * Email validation schema.\n * Validates format and provides clear error messages.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * email: schemaUtils.email(),\n * });\n * ```\n */\n email: (errors?: SchemaErrorMessages) =>\n z\n .string()\n .min(1, { message: errors?.required ?? DEFAULT_ERRORS.email.required })\n .max(320, { message: 'Email address is too long' })\n .email({ message: errors?.invalid ?? DEFAULT_ERRORS.email.invalid }),\n\n /**\n * Phone number validation schema.\n * Basic validation with optional custom validator.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * phone: schemaUtils.phone({\n * isValid: (val) => /^\\+?[1-9]\\d{1,14}$/.test(val),\n * }),\n * });\n * ```\n */\n phone: (options?: SchemaErrorMessages & { isValid?: (val: string) => boolean }) => {\n let schema = z.string().min(1, { message: options?.required ?? DEFAULT_ERRORS.phone.required });\n\n if (options?.isValid) {\n schema = schema.refine(options.isValid, {\n message: options?.invalid ?? DEFAULT_ERRORS.phone.invalid,\n });\n }\n\n return schema;\n },\n\n /**\n * Date validation schema.\n * Works with Date objects, timestamps, and ISO strings.\n * Compatible with date pickers.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * birthDate: schemaUtils.date(),\n * appointmentTime: schemaUtils.date({ required: 'Please select a time' }),\n * });\n * ```\n */\n date: (errors?: SchemaErrorMessages) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine((val) => val !== null && val !== '' && val !== undefined, {\n message: errors?.required ?? DEFAULT_ERRORS.date.required,\n })\n .refine(\n (val) => {\n // At this point, val passed the required check (non-null, non-empty, defined)\n if (val instanceof Date) return Number.isFinite(val.getTime());\n const date = new Date(val as string | number);\n return Number.isFinite(date.getTime());\n },\n { message: errors?.invalid ?? DEFAULT_ERRORS.date.invalid }\n ),\n\n /**\n * Optional date schema (nullable).\n * For date fields that aren't required.\n */\n dateOptional: (errors?: SchemaErrorMessages) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === '' || val === undefined) return true;\n if (val instanceof Date) return Number.isFinite(val.getTime());\n const date = new Date(val as string | number);\n return Number.isFinite(date.getTime());\n },\n { message: errors?.invalid ?? DEFAULT_ERRORS.date.invalid }\n )\n .nullable(),\n\n /**\n * Rich text editor validation schema.\n * Treats empty paragraphs as empty content.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * description: schemaUtils.editor(),\n * });\n * ```\n */\n editor: (error?: string) =>\n z.string().refine(\n (val) => {\n const cleaned = val.trim();\n // Common empty editor states\n return cleaned !== '' && cleaned !== '<p></p>' && cleaned !== '<p><br></p>' && cleaned !== '<p><br/></p>';\n },\n { message: error ?? DEFAULT_ERRORS.editor.required }\n ),\n\n /**\n * Boolean validation schema.\n * For checkboxes/switches that must be true (e.g., terms acceptance).\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * agreeToTerms: schemaUtils.boolean({ error: 'You must accept the terms' }),\n * });\n * ```\n */\n boolean: (options?: { error?: string }) =>\n z.boolean().refine((val) => val === true, {\n message: options?.error ?? DEFAULT_ERRORS.boolean.required,\n }),\n\n /**\n * Optional boolean schema.\n * For optional checkboxes.\n */\n booleanOptional: () => z.boolean().optional(),\n\n /**\n * Nullable input wrapper.\n * Wraps any schema to handle null values as required errors.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * country: schemaUtils.nullableInput(\n * z.string().min(1),\n * { error: 'Please select a country' }\n * ),\n * });\n * ```\n */\n nullableInput: <T extends z.ZodTypeAny>(schema: T, options?: { error?: string }) =>\n schema.nullable().refine((val) => val !== null && val !== undefined, {\n message: options?.error ?? DEFAULT_ERRORS.nullable.required,\n }),\n\n /**\n * Single file upload validation.\n * Supports File objects and URL strings (for existing files).\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * avatar: schemaUtils.file(),\n * document: schemaUtils.file({\n * maxSize: 5 * 1024 * 1024, // 5MB\n * accept: ['application/pdf'],\n * }),\n * });\n * ```\n */\n file: (options?: FileSchemaOptions) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === undefined) return false;\n if (typeof val === 'string') return val.length > 0;\n return true;\n },\n { message: options?.required ?? DEFAULT_ERRORS.file.required }\n )\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.tooLarge }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.invalidType }\n ),\n\n /**\n * Optional single file upload.\n */\n fileOptional: (options?: Omit<FileSchemaOptions, 'required'>) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null || val === undefined) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.tooLarge }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null || val === undefined) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalid ?? DEFAULT_ERRORS.file.invalidType }\n )\n .nullable(),\n\n /**\n * Multiple file upload validation.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * images: schemaUtils.files({ minFiles: 1, error: 'Upload at least one image' }),\n * });\n * ```\n */\n files: (options?: { error?: string; minFiles?: number }) =>\n z\n .array(z.union([z.instanceof(File), z.string()]))\n .min(options?.minFiles ?? 1, { message: options?.error ?? DEFAULT_ERRORS.file.required }),\n\n /**\n * Slider range validation.\n * For dual-thumb sliders with [min, max] value.\n *\n * @example\n * ```tsx\n * const schema = z.object({\n * priceRange: schemaUtils.sliderRange({ min: 0, max: 1000 }),\n * });\n * ```\n */\n sliderRange: (options: SliderRangeOptions) =>\n z.tuple([z.number(), z.number()]).refine(([min, max]) => min >= options.min && max <= options.max && min <= max, {\n message: options?.invalid ?? `Range must be between ${options.min} and ${options.max}`,\n }),\n\n /**\n * URL validation schema.\n */\n url: (errors?: SchemaErrorMessages) =>\n z\n .string()\n .min(1, { message: errors?.required ?? 'URL is required' })\n .url({ message: errors?.invalid ?? 'Invalid URL' }),\n\n /**\n * Optional URL schema.\n */\n urlOptional: (errors?: SchemaErrorMessages) =>\n z\n .string()\n .url({ message: errors?.invalid ?? 'Invalid URL' })\n .optional()\n .or(z.literal('')),\n\n /**\n * Password validation with strength requirements.\n */\n password: (options?: {\n minLength?: number;\n requireUppercase?: boolean;\n requireLowercase?: boolean;\n requireNumber?: boolean;\n requireSpecial?: boolean;\n error?: string;\n }) => {\n const {\n minLength = 8,\n requireUppercase = true,\n requireLowercase = true,\n requireNumber = true,\n requireSpecial = false,\n } = options ?? {};\n\n return z\n .string()\n .min(minLength, { message: `Password must be at least ${minLength} characters` })\n .refine((val) => val.trim().length > 0, {\n message: 'Password must not be only whitespace',\n })\n .refine((val) => !requireUppercase || /[A-Z]/.test(val), {\n message: 'Password must contain at least one uppercase letter',\n })\n .refine((val) => !requireLowercase || /[a-z]/.test(val), {\n message: 'Password must contain at least one lowercase letter',\n })\n .refine((val) => !requireNumber || /[0-9]/.test(val), {\n message: 'Password must contain at least one number',\n })\n .refine((val) => !requireSpecial || /[!@#$%^&*(),.?\":{}|<>]/.test(val), {\n message: 'Password must contain at least one special character',\n });\n },\n\n /**\n * Confirmation field (e.g., confirm password).\n * Use with z.object().refine() for cross-field validation.\n */\n confirm: (fieldName: string, error?: string) => ({\n message: error ?? `${fieldName} does not match`,\n path: ['confirm'],\n }),\n};\n\n// =============================================================================\n// TESTING UTILITY\n// =============================================================================\n\n/**\n * Test schema validation with multiple values.\n * Useful for development and debugging.\n *\n * @example\n * ```ts\n * testSchema(schemaUtils.email(), [\n * 'valid@email.com',\n * 'invalid-email',\n * '',\n * null,\n * ]);\n * ```\n */\n/**\n * Test results from schema validation.\n */\nexport interface SchemaTestResult {\n value: unknown;\n success: boolean;\n data?: unknown;\n errors?: string[];\n}\n\n/**\n * Test a schema against multiple values.\n * Returns structured results instead of logging to console.\n * Use testSchemaDebug for console output during development.\n */\nexport function testSchema<T extends z.ZodTypeAny>(schema: T, values: unknown[]): SchemaTestResult[] {\n return values.map((value) => {\n const result = schema.safeParse(value);\n if (result.success) {\n return { value, success: true, data: result.data };\n }\n return {\n value,\n success: false,\n errors: result.error.issues.map((issue) => issue.message),\n };\n });\n}\n\n/**\n * Test a schema with console output (development only).\n * This function does nothing in production builds.\n *\n * @example\n * ```ts\n * testSchemaDebug(schemaUtils.email(), [\n * 'valid@email.com',\n * 'invalid-email',\n * '',\n * null,\n * ]);\n * ```\n */\nexport function testSchemaDebug<T extends z.ZodTypeAny>(schema: T, values: unknown[]): void {\n // Only run in development\n if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'production') {\n return;\n }\n\n const colors = {\n green: (txt: string) => `\\x1b[32m${txt}\\x1b[0m`,\n red: (txt: string) => `\\x1b[31m${txt}\\x1b[0m`,\n gray: (txt: string) => `\\x1b[90m${txt}\\x1b[0m`,\n };\n\n console.log('\\n--- Schema Test Results ---\\n');\n\n values.forEach((value) => {\n const result = schema.safeParse(value);\n const type = colors.gray(`(${typeof value})`);\n const serialized = JSON.stringify(value);\n\n if (result.success) {\n console.log(`${colors.green('✓')} ${serialized} ${type}`);\n\n console.log(` Result: ${JSON.stringify(result.data)}`);\n } else {\n console.log(`${colors.red('✗')} ${serialized} ${type}`);\n result.error.issues.forEach((issue) => {\n console.log(` Error: ${issue.message}`);\n });\n }\n\n console.log('');\n });\n}\n","'use client';\n\n/**\n * Schema Provider\n *\n * Provides i18n-aware schema validation with customizable error messages.\n * Integrates with any i18n library (i18next, react-intl, etc.).\n *\n * @module @omnitron-dev/prism/forms\n */\n\nimport { createContext, useContext, useMemo, type ReactNode } from 'react';\nimport * as z from 'zod';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Translation function type.\n * Compatible with i18next t() function signature.\n */\nexport type TranslateFunction = (key: string, options?: Record<string, unknown>) => string;\n\n/**\n * Default translation keys for schema error messages.\n */\nexport interface SchemaTranslationKeys {\n // Required fields\n 'validation.required': string;\n 'validation.email.required': string;\n 'validation.email.invalid': string;\n 'validation.phone.required': string;\n 'validation.phone.invalid': string;\n 'validation.date.required': string;\n 'validation.date.invalid': string;\n 'validation.file.required': string;\n 'validation.file.tooLarge': string;\n 'validation.file.invalidType': string;\n 'validation.boolean.required': string;\n 'validation.editor.required': string;\n 'validation.url.required': string;\n 'validation.url.invalid': string;\n 'validation.password.minLength': string;\n 'validation.password.uppercase': string;\n 'validation.password.lowercase': string;\n 'validation.password.number': string;\n 'validation.password.special': string;\n 'validation.confirm.mismatch': string;\n // Array of all keys\n [key: string]: string;\n}\n\n/**\n * Schema provider configuration.\n */\nexport interface SchemaProviderConfig {\n /**\n * Translation function from your i18n library.\n * If not provided, keys will be used as-is.\n */\n t?: TranslateFunction;\n /**\n * Default locale for error messages.\n * @default 'en'\n */\n locale?: string;\n /**\n * Custom error message overrides.\n */\n messages?: Partial<SchemaTranslationKeys>;\n}\n\n/**\n * Schema context value.\n */\nexport interface SchemaContextValue {\n /**\n * Translate a validation key.\n */\n t: TranslateFunction;\n /**\n * Current locale.\n */\n locale: string;\n /**\n * Get schema helpers with translated messages.\n */\n schema: ReturnType<typeof createTranslatedSchemaUtils>;\n}\n\n// =============================================================================\n// DEFAULT MESSAGES\n// =============================================================================\n\n/**\n * Default English error messages.\n */\nconst DEFAULT_MESSAGES: SchemaTranslationKeys = {\n 'validation.required': 'This field is required',\n 'validation.email.required': 'Email is required',\n 'validation.email.invalid': 'Please enter a valid email address',\n 'validation.phone.required': 'Phone number is required',\n 'validation.phone.invalid': 'Please enter a valid phone number',\n 'validation.date.required': 'Date is required',\n 'validation.date.invalid': 'Please enter a valid date',\n 'validation.file.required': 'File is required',\n 'validation.file.tooLarge': 'File size exceeds the maximum allowed',\n 'validation.file.invalidType': 'File type is not supported',\n 'validation.boolean.required': 'This field must be accepted',\n 'validation.editor.required': 'Content is required',\n 'validation.url.required': 'URL is required',\n 'validation.url.invalid': 'Please enter a valid URL',\n 'validation.password.minLength': 'Password must be at least {{minLength}} characters',\n 'validation.password.uppercase': 'Password must contain at least one uppercase letter',\n 'validation.password.lowercase': 'Password must contain at least one lowercase letter',\n 'validation.password.number': 'Password must contain at least one number',\n 'validation.password.special': 'Password must contain at least one special character',\n 'validation.confirm.mismatch': '{{fieldName}} does not match',\n};\n\n// =============================================================================\n// CONTEXT\n// =============================================================================\n\nconst SchemaContext = createContext<SchemaContextValue | null>(null);\n\n// =============================================================================\n// TRANSLATED SCHEMA UTILS FACTORY\n// =============================================================================\n\n/**\n * Create schema utilities with translated error messages.\n */\nfunction createTranslatedSchemaUtils(t: TranslateFunction) {\n return {\n /**\n * Email validation with i18n messages.\n */\n email: (options?: { required?: string; invalid?: string }) =>\n z\n .string()\n .min(1, { message: options?.required ?? t('validation.email.required') })\n .email({ message: options?.invalid ?? t('validation.email.invalid') }),\n\n /**\n * Phone validation with i18n messages.\n */\n phone: (options?: { required?: string; invalid?: string; isValid?: (val: string) => boolean }) => {\n let schema = z.string().min(1, { message: options?.required ?? t('validation.phone.required') });\n\n if (options?.isValid) {\n schema = schema.refine(options.isValid, {\n message: options?.invalid ?? t('validation.phone.invalid'),\n });\n }\n\n return schema;\n },\n\n /**\n * Date validation with i18n messages.\n */\n date: (options?: { required?: string; invalid?: string }) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine((val) => val !== null && val !== '' && val !== undefined, {\n message: options?.required ?? t('validation.date.required'),\n })\n .refine(\n (val) => {\n if (val === null || val === '' || val === undefined) return true;\n const date = new Date(val as string | number | Date);\n return !isNaN(date.getTime());\n },\n { message: options?.invalid ?? t('validation.date.invalid') }\n ),\n\n /**\n * Optional date schema.\n */\n dateOptional: (options?: { invalid?: string }) =>\n z\n .union([z.string(), z.number(), z.date(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === '' || val === undefined) return true;\n const date = new Date(val as string | number | Date);\n return !isNaN(date.getTime());\n },\n { message: options?.invalid ?? t('validation.date.invalid') }\n )\n .nullable(),\n\n /**\n * Boolean (checkbox) validation with i18n messages.\n */\n boolean: (options?: { error?: string }) =>\n z.boolean().refine((val) => val === true, {\n message: options?.error ?? t('validation.boolean.required'),\n }),\n\n /**\n * Optional boolean schema.\n */\n booleanOptional: () => z.boolean().optional(),\n\n /**\n * Rich text editor validation with i18n messages.\n */\n editor: (options?: { error?: string }) =>\n z.string().refine(\n (val) => {\n const cleaned = val.trim();\n return cleaned !== '' && cleaned !== '<p></p>' && cleaned !== '<p><br></p>' && cleaned !== '<p><br/></p>';\n },\n { message: options?.error ?? t('validation.editor.required') }\n ),\n\n /**\n * File validation with i18n messages.\n */\n file: (options?: {\n required?: string;\n tooLarge?: string;\n invalidType?: string;\n maxSize?: number;\n accept?: string[];\n }) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (val === null || val === undefined) return false;\n if (typeof val === 'string') return val.length > 0;\n return true;\n },\n { message: options?.required ?? t('validation.file.required') }\n )\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.tooLarge ?? t('validation.file.tooLarge') }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalidType ?? t('validation.file.invalidType') }\n ),\n\n /**\n * Optional file schema.\n */\n fileOptional: (options?: { tooLarge?: string; invalidType?: string; maxSize?: number; accept?: string[] }) =>\n z\n .union([z.instanceof(File), z.string(), z.null()])\n .refine(\n (val) => {\n if (!options?.maxSize || typeof val === 'string' || val === null || val === undefined) return true;\n return (val as File).size <= options.maxSize;\n },\n { message: options?.tooLarge ?? t('validation.file.tooLarge') }\n )\n .refine(\n (val) => {\n if (!options?.accept || typeof val === 'string' || val === null || val === undefined) return true;\n return options.accept.includes((val as File).type);\n },\n { message: options?.invalidType ?? t('validation.file.invalidType') }\n )\n .nullable(),\n\n /**\n * Multiple files validation.\n */\n files: (options?: { error?: string; minFiles?: number }) =>\n z\n .array(z.union([z.instanceof(File), z.string()]))\n .min(options?.minFiles ?? 1, { message: options?.error ?? t('validation.file.required') }),\n\n /**\n * URL validation with i18n messages.\n */\n url: (options?: { required?: string; invalid?: string }) =>\n z\n .string()\n .min(1, { message: options?.required ?? t('validation.url.required') })\n .url({ message: options?.invalid ?? t('validation.url.invalid') }),\n\n /**\n * Optional URL schema.\n */\n urlOptional: (options?: { invalid?: string }) =>\n z\n .string()\n .url({ message: options?.invalid ?? t('validation.url.invalid') })\n .optional()\n .or(z.literal('')),\n\n /**\n * Password validation with strength requirements.\n */\n password: (options?: {\n minLength?: number;\n requireUppercase?: boolean;\n requireLowercase?: boolean;\n requireNumber?: boolean;\n requireSpecial?: boolean;\n }) => {\n const {\n minLength = 8,\n requireUppercase = true,\n requireLowercase = true,\n requireNumber = true,\n requireSpecial = false,\n } = options ?? {};\n\n return z\n .string()\n .min(minLength, { message: t('validation.password.minLength', { minLength }) })\n .refine((val) => !requireUppercase || /[A-Z]/.test(val), {\n message: t('validation.password.uppercase'),\n })\n .refine((val) => !requireLowercase || /[a-z]/.test(val), {\n message: t('validation.password.lowercase'),\n })\n .refine((val) => !requireNumber || /[0-9]/.test(val), {\n message: t('validation.password.number'),\n })\n .refine((val) => !requireSpecial || /[!@#$%^&*(),.?\":{}|<>]/.test(val), {\n message: t('validation.password.special'),\n });\n },\n\n /**\n * Nullable input wrapper.\n */\n nullableInput: <T extends z.ZodTypeAny>(schema: T, options?: { error?: string }) =>\n schema\n .nullable()\n .refine((val) => val !== null && val !== undefined, { message: options?.error ?? t('validation.required') }),\n\n /**\n * Slider range validation.\n */\n sliderRange: (options: { min: number; max: number; invalid?: string }) =>\n z.tuple([z.number(), z.number()]).refine(([min, max]) => min >= options.min && max <= options.max && min <= max, {\n message: options?.invalid ?? `Range must be between ${options.min} and ${options.max}`,\n }),\n\n /**\n * Required string with i18n message.\n */\n required: (options?: { error?: string }) =>\n z.string().min(1, { message: options?.error ?? t('validation.required') }),\n\n /**\n * Confirmation field helper.\n */\n confirm: (fieldName: string, error?: string) => ({\n message: error ?? t('validation.confirm.mismatch', { fieldName }),\n path: ['confirm'],\n }),\n };\n}\n\n// =============================================================================\n// PROVIDER COMPONENT\n// =============================================================================\n\n/**\n * Provider props.\n */\nexport interface SchemaProviderProps extends SchemaProviderConfig {\n children: ReactNode;\n}\n\n/**\n * SchemaProvider - Provides i18n-aware schema validation context.\n *\n * @example\n * ```tsx\n * // With i18next\n * import { useTranslation } from 'react-i18next';\n *\n * function App() {\n * const { t, i18n } = useTranslation();\n *\n * return (\n * <SchemaProvider t={t} locale={i18n.language}>\n * <MyForm />\n * </SchemaProvider>\n * );\n * }\n *\n * // In form component\n * function MyForm() {\n * const { schema } = useSchema();\n *\n * const formSchema = z.object({\n * email: schema.email(),\n * password: schema.password(),\n * });\n *\n * // ... form implementation\n * }\n * ```\n */\nexport function SchemaProvider({ children, t: providedT, locale = 'en', messages = {} }: SchemaProviderProps) {\n // Create translation function with fallbacks\n const t: TranslateFunction = useMemo(() => {\n if (providedT) {\n // Wrap provided t() to include custom messages as fallback\n return (key: string, options?: Record<string, unknown>) => {\n const result = providedT(key, options);\n // If translation returns the key (not found), use custom messages or defaults\n if (result === key) {\n const customMessage = messages[key];\n if (customMessage) {\n return interpolate(customMessage, options);\n }\n const defaultMessage = DEFAULT_MESSAGES[key];\n if (defaultMessage) {\n return interpolate(defaultMessage, options);\n }\n }\n return result;\n };\n }\n\n // No i18n library provided - use custom messages or defaults\n return (key: string, options?: Record<string, unknown>) => {\n const message = messages[key] ?? DEFAULT_MESSAGES[key] ?? key;\n return interpolate(message, options);\n };\n }, [providedT, messages]);\n\n // Create schema utilities with translated messages\n const schema = useMemo(() => createTranslatedSchemaUtils(t), [t]);\n\n const value = useMemo<SchemaContextValue>(() => ({ t, locale, schema }), [t, locale, schema]);\n\n return <SchemaContext.Provider value={value}>{children}</SchemaContext.Provider>;\n}\n\n// =============================================================================\n// HOOK\n// =============================================================================\n\n/**\n * Hook to access schema context.\n *\n * @throws Error if used outside SchemaProvider\n *\n * @example\n * ```tsx\n * function MyForm() {\n * const { schema, t } = useSchema();\n *\n * const formSchema = z.object({\n * email: schema.email(),\n * name: z.string().min(1, { message: t('validation.required') }),\n * });\n *\n * // ... use formSchema with react-hook-form\n * }\n * ```\n */\nexport function useSchema(): SchemaContextValue {\n const context = useContext(SchemaContext);\n\n if (!context) {\n throw new Error('useSchema must be used within a SchemaProvider');\n }\n\n return context;\n}\n\n/**\n * Hook to access schema context safely (returns null if not in provider).\n */\nexport function useSchemaOptional(): SchemaContextValue | null {\n return useContext(SchemaContext);\n}\n\n// =============================================================================\n// UTILITIES\n// =============================================================================\n\n/**\n * Simple string interpolation for error messages.\n * Replaces {{key}} with values from options.\n */\nfunction interpolate(message: string, options?: Record<string, unknown>): string {\n if (!options) return message;\n\n return message.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key) => {\n const value = options[key];\n return value !== undefined ? String(value) : `{{${key}}}`;\n });\n}\n\n// =============================================================================\n// STANDALONE FACTORY (for use without provider)\n// =============================================================================\n\n/**\n * Create translated schema utilities without provider.\n * Useful for server-side validation or standalone usage.\n *\n * @example\n * ```ts\n * // Server-side validation\n * const t = (key: string) => translations[key] ?? key;\n * const schema = createSchemaUtils(t);\n *\n * const userSchema = z.object({\n * email: schema.email(),\n * });\n * ```\n */\nexport function createSchemaUtils(t?: TranslateFunction): ReturnType<typeof createTranslatedSchemaUtils> {\n const translateFn: TranslateFunction = t ?? ((key) => DEFAULT_MESSAGES[key] ?? key);\n return createTranslatedSchemaUtils(translateFn);\n}\n"]}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Provider
|
|
3
|
+
*
|
|
4
|
+
* Provides i18n-aware schema validation with customizable error messages.
|
|
5
|
+
* Integrates with any i18n library (i18next, react-intl, etc.).
|
|
6
|
+
*
|
|
7
|
+
* @module @omnitron-dev/prism/forms
|
|
8
|
+
*/
|
|
9
|
+
import { type ReactNode } from 'react';
|
|
10
|
+
import * as z from 'zod';
|
|
11
|
+
/**
|
|
12
|
+
* Translation function type.
|
|
13
|
+
* Compatible with i18next t() function signature.
|
|
14
|
+
*/
|
|
15
|
+
export type TranslateFunction = (key: string, options?: Record<string, unknown>) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Default translation keys for schema error messages.
|
|
18
|
+
*/
|
|
19
|
+
export interface SchemaTranslationKeys {
|
|
20
|
+
'validation.required': string;
|
|
21
|
+
'validation.email.required': string;
|
|
22
|
+
'validation.email.invalid': string;
|
|
23
|
+
'validation.phone.required': string;
|
|
24
|
+
'validation.phone.invalid': string;
|
|
25
|
+
'validation.date.required': string;
|
|
26
|
+
'validation.date.invalid': string;
|
|
27
|
+
'validation.file.required': string;
|
|
28
|
+
'validation.file.tooLarge': string;
|
|
29
|
+
'validation.file.invalidType': string;
|
|
30
|
+
'validation.boolean.required': string;
|
|
31
|
+
'validation.editor.required': string;
|
|
32
|
+
'validation.url.required': string;
|
|
33
|
+
'validation.url.invalid': string;
|
|
34
|
+
'validation.password.minLength': string;
|
|
35
|
+
'validation.password.uppercase': string;
|
|
36
|
+
'validation.password.lowercase': string;
|
|
37
|
+
'validation.password.number': string;
|
|
38
|
+
'validation.password.special': string;
|
|
39
|
+
'validation.confirm.mismatch': string;
|
|
40
|
+
[key: string]: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Schema provider configuration.
|
|
44
|
+
*/
|
|
45
|
+
export interface SchemaProviderConfig {
|
|
46
|
+
/**
|
|
47
|
+
* Translation function from your i18n library.
|
|
48
|
+
* If not provided, keys will be used as-is.
|
|
49
|
+
*/
|
|
50
|
+
t?: TranslateFunction;
|
|
51
|
+
/**
|
|
52
|
+
* Default locale for error messages.
|
|
53
|
+
* @default 'en'
|
|
54
|
+
*/
|
|
55
|
+
locale?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Custom error message overrides.
|
|
58
|
+
*/
|
|
59
|
+
messages?: Partial<SchemaTranslationKeys>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Schema context value.
|
|
63
|
+
*/
|
|
64
|
+
export interface SchemaContextValue {
|
|
65
|
+
/**
|
|
66
|
+
* Translate a validation key.
|
|
67
|
+
*/
|
|
68
|
+
t: TranslateFunction;
|
|
69
|
+
/**
|
|
70
|
+
* Current locale.
|
|
71
|
+
*/
|
|
72
|
+
locale: string;
|
|
73
|
+
/**
|
|
74
|
+
* Get schema helpers with translated messages.
|
|
75
|
+
*/
|
|
76
|
+
schema: ReturnType<typeof createTranslatedSchemaUtils>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create schema utilities with translated error messages.
|
|
80
|
+
*/
|
|
81
|
+
declare function createTranslatedSchemaUtils(t: TranslateFunction): {
|
|
82
|
+
/**
|
|
83
|
+
* Email validation with i18n messages.
|
|
84
|
+
*/
|
|
85
|
+
email: (options?: {
|
|
86
|
+
required?: string;
|
|
87
|
+
invalid?: string;
|
|
88
|
+
}) => z.ZodString;
|
|
89
|
+
/**
|
|
90
|
+
* Phone validation with i18n messages.
|
|
91
|
+
*/
|
|
92
|
+
phone: (options?: {
|
|
93
|
+
required?: string;
|
|
94
|
+
invalid?: string;
|
|
95
|
+
isValid?: (val: string) => boolean;
|
|
96
|
+
}) => z.ZodString;
|
|
97
|
+
/**
|
|
98
|
+
* Date validation with i18n messages.
|
|
99
|
+
*/
|
|
100
|
+
date: (options?: {
|
|
101
|
+
required?: string;
|
|
102
|
+
invalid?: string;
|
|
103
|
+
}) => z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodDate, z.ZodNull]>;
|
|
104
|
+
/**
|
|
105
|
+
* Optional date schema.
|
|
106
|
+
*/
|
|
107
|
+
dateOptional: (options?: {
|
|
108
|
+
invalid?: string;
|
|
109
|
+
}) => z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodDate, z.ZodNull]>>;
|
|
110
|
+
/**
|
|
111
|
+
* Boolean (checkbox) validation with i18n messages.
|
|
112
|
+
*/
|
|
113
|
+
boolean: (options?: {
|
|
114
|
+
error?: string;
|
|
115
|
+
}) => z.ZodBoolean;
|
|
116
|
+
/**
|
|
117
|
+
* Optional boolean schema.
|
|
118
|
+
*/
|
|
119
|
+
booleanOptional: () => z.ZodOptional<z.ZodBoolean>;
|
|
120
|
+
/**
|
|
121
|
+
* Rich text editor validation with i18n messages.
|
|
122
|
+
*/
|
|
123
|
+
editor: (options?: {
|
|
124
|
+
error?: string;
|
|
125
|
+
}) => z.ZodString;
|
|
126
|
+
/**
|
|
127
|
+
* File validation with i18n messages.
|
|
128
|
+
*/
|
|
129
|
+
file: (options?: {
|
|
130
|
+
required?: string;
|
|
131
|
+
tooLarge?: string;
|
|
132
|
+
invalidType?: string;
|
|
133
|
+
maxSize?: number;
|
|
134
|
+
accept?: string[];
|
|
135
|
+
}) => z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodString, z.ZodNull]>;
|
|
136
|
+
/**
|
|
137
|
+
* Optional file schema.
|
|
138
|
+
*/
|
|
139
|
+
fileOptional: (options?: {
|
|
140
|
+
tooLarge?: string;
|
|
141
|
+
invalidType?: string;
|
|
142
|
+
maxSize?: number;
|
|
143
|
+
accept?: string[];
|
|
144
|
+
}) => z.ZodNullable<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodString, z.ZodNull]>>;
|
|
145
|
+
/**
|
|
146
|
+
* Multiple files validation.
|
|
147
|
+
*/
|
|
148
|
+
files: (options?: {
|
|
149
|
+
error?: string;
|
|
150
|
+
minFiles?: number;
|
|
151
|
+
}) => z.ZodArray<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodString]>>;
|
|
152
|
+
/**
|
|
153
|
+
* URL validation with i18n messages.
|
|
154
|
+
*/
|
|
155
|
+
url: (options?: {
|
|
156
|
+
required?: string;
|
|
157
|
+
invalid?: string;
|
|
158
|
+
}) => z.ZodString;
|
|
159
|
+
/**
|
|
160
|
+
* Optional URL schema.
|
|
161
|
+
*/
|
|
162
|
+
urlOptional: (options?: {
|
|
163
|
+
invalid?: string;
|
|
164
|
+
}) => z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
165
|
+
/**
|
|
166
|
+
* Password validation with strength requirements.
|
|
167
|
+
*/
|
|
168
|
+
password: (options?: {
|
|
169
|
+
minLength?: number;
|
|
170
|
+
requireUppercase?: boolean;
|
|
171
|
+
requireLowercase?: boolean;
|
|
172
|
+
requireNumber?: boolean;
|
|
173
|
+
requireSpecial?: boolean;
|
|
174
|
+
}) => z.ZodString;
|
|
175
|
+
/**
|
|
176
|
+
* Nullable input wrapper.
|
|
177
|
+
*/
|
|
178
|
+
nullableInput: <T extends z.ZodTypeAny>(schema: T, options?: {
|
|
179
|
+
error?: string;
|
|
180
|
+
}) => z.ZodNullable<T> & z.ZodType<z.infer<T> & {}, z.core.input<T> | null, z.core.$ZodTypeInternals<z.infer<T> & {}, z.core.input<T> | null>>;
|
|
181
|
+
/**
|
|
182
|
+
* Slider range validation.
|
|
183
|
+
*/
|
|
184
|
+
sliderRange: (options: {
|
|
185
|
+
min: number;
|
|
186
|
+
max: number;
|
|
187
|
+
invalid?: string;
|
|
188
|
+
}) => z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
189
|
+
/**
|
|
190
|
+
* Required string with i18n message.
|
|
191
|
+
*/
|
|
192
|
+
required: (options?: {
|
|
193
|
+
error?: string;
|
|
194
|
+
}) => z.ZodString;
|
|
195
|
+
/**
|
|
196
|
+
* Confirmation field helper.
|
|
197
|
+
*/
|
|
198
|
+
confirm: (fieldName: string, error?: string) => {
|
|
199
|
+
message: string;
|
|
200
|
+
path: string[];
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Provider props.
|
|
205
|
+
*/
|
|
206
|
+
export interface SchemaProviderProps extends SchemaProviderConfig {
|
|
207
|
+
children: ReactNode;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* SchemaProvider - Provides i18n-aware schema validation context.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```tsx
|
|
214
|
+
* // With i18next
|
|
215
|
+
* import { useTranslation } from 'react-i18next';
|
|
216
|
+
*
|
|
217
|
+
* function App() {
|
|
218
|
+
* const { t, i18n } = useTranslation();
|
|
219
|
+
*
|
|
220
|
+
* return (
|
|
221
|
+
* <SchemaProvider t={t} locale={i18n.language}>
|
|
222
|
+
* <MyForm />
|
|
223
|
+
* </SchemaProvider>
|
|
224
|
+
* );
|
|
225
|
+
* }
|
|
226
|
+
*
|
|
227
|
+
* // In form component
|
|
228
|
+
* function MyForm() {
|
|
229
|
+
* const { schema } = useSchema();
|
|
230
|
+
*
|
|
231
|
+
* const formSchema = z.object({
|
|
232
|
+
* email: schema.email(),
|
|
233
|
+
* password: schema.password(),
|
|
234
|
+
* });
|
|
235
|
+
*
|
|
236
|
+
* // ... form implementation
|
|
237
|
+
* }
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
export declare function SchemaProvider({ children, t: providedT, locale, messages }: SchemaProviderProps): import("react").JSX.Element;
|
|
241
|
+
/**
|
|
242
|
+
* Hook to access schema context.
|
|
243
|
+
*
|
|
244
|
+
* @throws Error if used outside SchemaProvider
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```tsx
|
|
248
|
+
* function MyForm() {
|
|
249
|
+
* const { schema, t } = useSchema();
|
|
250
|
+
*
|
|
251
|
+
* const formSchema = z.object({
|
|
252
|
+
* email: schema.email(),
|
|
253
|
+
* name: z.string().min(1, { message: t('validation.required') }),
|
|
254
|
+
* });
|
|
255
|
+
*
|
|
256
|
+
* // ... use formSchema with react-hook-form
|
|
257
|
+
* }
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
export declare function useSchema(): SchemaContextValue;
|
|
261
|
+
/**
|
|
262
|
+
* Hook to access schema context safely (returns null if not in provider).
|
|
263
|
+
*/
|
|
264
|
+
export declare function useSchemaOptional(): SchemaContextValue | null;
|
|
265
|
+
/**
|
|
266
|
+
* Create translated schema utilities without provider.
|
|
267
|
+
* Useful for server-side validation or standalone usage.
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```ts
|
|
271
|
+
* // Server-side validation
|
|
272
|
+
* const t = (key: string) => translations[key] ?? key;
|
|
273
|
+
* const schema = createSchemaUtils(t);
|
|
274
|
+
*
|
|
275
|
+
* const userSchema = z.object({
|
|
276
|
+
* email: schema.email(),
|
|
277
|
+
* });
|
|
278
|
+
* ```
|
|
279
|
+
*/
|
|
280
|
+
export declare function createSchemaUtils(t?: TranslateFunction): ReturnType<typeof createTranslatedSchemaUtils>;
|
|
281
|
+
export {};
|
|
282
|
+
//# sourceMappingURL=schema-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-provider.d.ts","sourceRoot":"","sources":["../../src/forms/schema-provider.tsx"],"names":[],"mappings":"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"}
|