@cloudraker/reki 2.6.1
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/CHANGELOG.md +1892 -0
- package/README.md +525 -0
- package/ai/USAGE.md +201 -0
- package/ai/component-registry.json +6707 -0
- package/ai/component-registry.md +8346 -0
- package/ai/schemas.ts +955 -0
- package/bin/reki.js +36 -0
- package/dist/.build-complete +1 -0
- package/dist/ai/schemas.d.ts +2514 -0
- package/dist/ai/schemas.d.ts.map +1 -0
- package/dist/ai/schemas.js +3985 -0
- package/dist/ai/schemas.js.map +1 -0
- package/dist/blocks-source/delete-resource/delete-resource.tsx +213 -0
- package/dist/blocks-source/page-header/page-header.tsx +99 -0
- package/dist/blocks-source/resource-list/resource-list.test.tsx +28 -0
- package/dist/blocks-source/resource-list/resource-list.tsx +69 -0
- package/dist/catalog.js +229 -0
- package/dist/catalog.js.map +1 -0
- package/dist/chunks/SankeyChart-jwwpwps4npqzbrvn.js +890 -0
- package/dist/chunks/SankeyChart-jwwpwps4npqzbrvn.js.map +1 -0
- package/dist/chunks/autocomplete-f4vetako14h2aqsw.js +193 -0
- package/dist/chunks/autocomplete-f4vetako14h2aqsw.js.map +1 -0
- package/dist/chunks/badge-pc33c5ir7muabgfh.js +163 -0
- package/dist/chunks/badge-pc33c5ir7muabgfh.js.map +1 -0
- package/dist/chunks/banner-kis9h1yq636liunc.js +120 -0
- package/dist/chunks/banner-kis9h1yq636liunc.js.map +1 -0
- package/dist/chunks/bash-g5z23u7me5rx7bzt.js +15 -0
- package/dist/chunks/bash-g5z23u7me5rx7bzt.js.map +1 -0
- package/dist/chunks/breadcrumbs-d6149hyct4puz3x4.js +169 -0
- package/dist/chunks/breadcrumbs-d6149hyct4puz3x4.js.map +1 -0
- package/dist/chunks/button-nc5p1h28cwes0tjw.js +237 -0
- package/dist/chunks/button-nc5p1h28cwes0tjw.js.map +1 -0
- package/dist/chunks/checkbox-g2661n3eodgoispq.js +216 -0
- package/dist/chunks/checkbox-g2661n3eodgoispq.js.map +1 -0
- package/dist/chunks/clipboard-text-g3659lejx2d7i93e.js +191 -0
- package/dist/chunks/clipboard-text-g3659lejx2d7i93e.js.map +1 -0
- package/dist/chunks/cloudflare-logo-k0f07zztsda8m4ca.js +175 -0
- package/dist/chunks/cloudflare-logo-k0f07zztsda8m4ca.js.map +1 -0
- package/dist/chunks/cn-ct4n7r74mh8y0f48.js +26 -0
- package/dist/chunks/cn-ct4n7r74mh8y0f48.js.map +1 -0
- package/dist/chunks/code-fm5rpi47v6cj9o8o.js +61 -0
- package/dist/chunks/code-fm5rpi47v6cj9o8o.js.map +1 -0
- package/dist/chunks/collapsible-ndvmgo29s5iqfcor.js +76 -0
- package/dist/chunks/collapsible-ndvmgo29s5iqfcor.js.map +1 -0
- package/dist/chunks/combobox-i38w67netm8ukw4f.js +408 -0
- package/dist/chunks/combobox-i38w67netm8ukw4f.js.map +1 -0
- package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js +403 -0
- package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js.map +1 -0
- package/dist/chunks/core-oowp00biqxe3hvjc.js +5806 -0
- package/dist/chunks/core-oowp00biqxe3hvjc.js.map +1 -0
- package/dist/chunks/css-d1mi3wy1sl3fzekh.js +8 -0
- package/dist/chunks/css-d1mi3wy1sl3fzekh.js.map +1 -0
- package/dist/chunks/date-picker-81mc3zrsmobm3ydm.js +2921 -0
- package/dist/chunks/date-picker-81mc3zrsmobm3ydm.js.map +1 -0
- package/dist/chunks/date-range-picker-c8ttrfaos9mb1w5n.js +408 -0
- package/dist/chunks/date-range-picker-c8ttrfaos9mb1w5n.js.map +1 -0
- package/dist/chunks/dialog-m4go8xof25fospqo.js +134 -0
- package/dist/chunks/dialog-m4go8xof25fospqo.js.map +1 -0
- package/dist/chunks/diff-cpj1h9lg0bw716mj.js +8 -0
- package/dist/chunks/diff-cpj1h9lg0bw716mj.js.map +1 -0
- package/dist/chunks/dropdown-j5uht8mn4z7xc9fc.js +313 -0
- package/dist/chunks/dropdown-j5uht8mn4z7xc9fc.js.map +1 -0
- package/dist/chunks/empty-kazxr0248zjemw6n.js +94 -0
- package/dist/chunks/empty-kazxr0248zjemw6n.js.map +1 -0
- package/dist/chunks/engine-javascript-iqcmg6wi2pjun29k.js +2637 -0
- package/dist/chunks/engine-javascript-iqcmg6wi2pjun29k.js.map +1 -0
- package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js +295 -0
- package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js.map +1 -0
- package/dist/chunks/field-fe5m8z3vbpvtctbe.js +77 -0
- package/dist/chunks/field-fe5m8z3vbpvtctbe.js.map +1 -0
- package/dist/chunks/github-light-ulev8flhimfg79ob.js +6 -0
- package/dist/chunks/github-light-ulev8flhimfg79ob.js.map +1 -0
- package/dist/chunks/graphql-ft2h47erta7isqn4.js +16 -0
- package/dist/chunks/graphql-ft2h47erta7isqn4.js.map +1 -0
- package/dist/chunks/grid-enlbb88vucgeq1np.js +128 -0
- package/dist/chunks/grid-enlbb88vucgeq1np.js.map +1 -0
- package/dist/chunks/hcl-hcu7d6ja6t540ijn.js +8 -0
- package/dist/chunks/hcl-hcu7d6ja6t540ijn.js.map +1 -0
- package/dist/chunks/html-kl304jmqj4jxj777.js +12 -0
- package/dist/chunks/html-kl304jmqj4jxj777.js.map +1 -0
- package/dist/chunks/input-area-ciw85g3fno06t4tw.js +78 -0
- package/dist/chunks/input-area-ciw85g3fno06t4tw.js.map +1 -0
- package/dist/chunks/input-group-mo7tq7jr19hmgor5.js +505 -0
- package/dist/chunks/input-group-mo7tq7jr19hmgor5.js.map +1 -0
- package/dist/chunks/input-i5nefqk213n4z7pr.js +130 -0
- package/dist/chunks/input-i5nefqk213n4z7pr.js.map +1 -0
- package/dist/chunks/javascript-hhx3avh9uv2o27ay.js +8 -0
- package/dist/chunks/javascript-hhx3avh9uv2o27ay.js.map +1 -0
- package/dist/chunks/json-jovp9qemdkp5cziz.js +8 -0
- package/dist/chunks/json-jovp9qemdkp5cziz.js.map +1 -0
- package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js +8 -0
- package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js.map +1 -0
- package/dist/chunks/jsx-ij885l2li2lzfoss.js +8 -0
- package/dist/chunks/jsx-ij885l2li2lzfoss.js.map +1 -0
- package/dist/chunks/label-fcho4757rbdess0c.js +68 -0
- package/dist/chunks/label-fcho4757rbdess0c.js.map +1 -0
- package/dist/chunks/layer-card-kzu48dhzxm3e9p4u.js +47 -0
- package/dist/chunks/layer-card-kzu48dhzxm3e9p4u.js.map +1 -0
- package/dist/chunks/link-j2gu5dr3nr4i4yf0.js +95 -0
- package/dist/chunks/link-j2gu5dr3nr4i4yf0.js.map +1 -0
- package/dist/chunks/link-provider-bgljdgs4hs438h0u.js +22 -0
- package/dist/chunks/link-provider-bgljdgs4hs438h0u.js.map +1 -0
- package/dist/chunks/loader-cxzp72mn53lzbv9c.js +109 -0
- package/dist/chunks/loader-cxzp72mn53lzbv9c.js.map +1 -0
- package/dist/chunks/markdown-n2vyyq7l68fy32wc.js +8 -0
- package/dist/chunks/markdown-n2vyyq7l68fy32wc.js.map +1 -0
- package/dist/chunks/menubar-ir5gbjmsizsddz7g.js +98 -0
- package/dist/chunks/menubar-ir5gbjmsizsddz7g.js.map +1 -0
- package/dist/chunks/meter-o5yd7ctjf80vvyjx.js +51 -0
- package/dist/chunks/meter-o5yd7ctjf80vvyjx.js.map +1 -0
- package/dist/chunks/pagination-bryw6rohfr7mm3km.js +266 -0
- package/dist/chunks/pagination-bryw6rohfr7mm3km.js.map +1 -0
- package/dist/chunks/popover-elxcmvv7mu7m7uk4.js +181 -0
- package/dist/chunks/popover-elxcmvv7mu7m7uk4.js.map +1 -0
- package/dist/chunks/portal-provider-off76og7tjyz96ys.js +18 -0
- package/dist/chunks/portal-provider-off76og7tjyz96ys.js.map +1 -0
- package/dist/chunks/python-gg755pb8oe9ra1d1.js +8 -0
- package/dist/chunks/python-gg755pb8oe9ra1d1.js.map +1 -0
- package/dist/chunks/radio-newyq331uk4lltr6.js +226 -0
- package/dist/chunks/radio-newyq331uk4lltr6.js.map +1 -0
- package/dist/chunks/resolve-variant-t8jcltsizeg29ege.js +11 -0
- package/dist/chunks/resolve-variant-t8jcltsizeg29ege.js.map +1 -0
- package/dist/chunks/select-h5480mbro0ypxu0b.js +237 -0
- package/dist/chunks/select-h5480mbro0ypxu0b.js.map +1 -0
- package/dist/chunks/sensitive-input-lqugq6uvx0lkpu0u.js +273 -0
- package/dist/chunks/sensitive-input-lqugq6uvx0lkpu0u.js.map +1 -0
- package/dist/chunks/sidebar-noz668nhdu2gso12.js +1144 -0
- package/dist/chunks/sidebar-noz668nhdu2gso12.js.map +1 -0
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js +33 -0
- package/dist/chunks/skeleton-line-epxenksfesr2fkcv.js.map +1 -0
- package/dist/chunks/sql-ovukp5mrfunfk5tv.js +8 -0
- package/dist/chunks/sql-ovukp5mrfunfk5tv.js.map +1 -0
- package/dist/chunks/surface-cyxme7mlr49l33f8.js +29 -0
- package/dist/chunks/surface-cyxme7mlr49l33f8.js.map +1 -0
- package/dist/chunks/switch-bigo96fyjlh7ivbi.js +256 -0
- package/dist/chunks/switch-bigo96fyjlh7ivbi.js.map +1 -0
- package/dist/chunks/table-mwcmwp6a80zvyrxw.js +208 -0
- package/dist/chunks/table-mwcmwp6a80zvyrxw.js.map +1 -0
- package/dist/chunks/table-of-contents-gkuvkr2w6lbhi7wt.js +106 -0
- package/dist/chunks/table-of-contents-gkuvkr2w6lbhi7wt.js.map +1 -0
- package/dist/chunks/tabs-e4pcjkw94kpe35x0.js +177 -0
- package/dist/chunks/tabs-e4pcjkw94kpe35x0.js.map +1 -0
- package/dist/chunks/text-oxsrbmjmfq99ue85.js +103 -0
- package/dist/chunks/text-oxsrbmjmfq99ue85.js.map +1 -0
- package/dist/chunks/toast-ivr4097bstjcjotf.js +370 -0
- package/dist/chunks/toast-ivr4097bstjcjotf.js.map +1 -0
- package/dist/chunks/toml-nczb2z9n0o23o3ci.js +8 -0
- package/dist/chunks/toml-nczb2z9n0o23o3ci.js.map +1 -0
- package/dist/chunks/tooltip-ncaia8n1lavkyw8n.js +103 -0
- package/dist/chunks/tooltip-ncaia8n1lavkyw8n.js.map +1 -0
- package/dist/chunks/tsx-ehy8lrzet6v54zur.js +8 -0
- package/dist/chunks/tsx-ehy8lrzet6v54zur.js.map +1 -0
- package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js +8 -0
- package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js.map +1 -0
- package/dist/chunks/vendor-base-ui-bgl9g5nkvqy3tn36.js +24690 -0
- package/dist/chunks/vendor-base-ui-bgl9g5nkvqy3tn36.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-dn8xswn8036udsqq.js +1311 -0
- package/dist/chunks/vendor-floating-ui-dn8xswn8036udsqq.js.map +1 -0
- package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js +2775 -0
- package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js.map +1 -0
- package/dist/chunks/vendor-utils-m5h2xu7s2rs3pgk5.js +217 -0
- package/dist/chunks/vendor-utils-m5h2xu7s2rs3pgk5.js.map +1 -0
- package/dist/chunks/vesper-ebfu9ns65f2v830s.js +6 -0
- package/dist/chunks/vesper-ebfu9ns65f2v830s.js.map +1 -0
- package/dist/chunks/wasm-oj22f8usru9h7dzg.js +9 -0
- package/dist/chunks/wasm-oj22f8usru9h7dzg.js.map +1 -0
- package/dist/chunks/yaml-e2v22lr79tss2brj.js +8 -0
- package/dist/chunks/yaml-e2v22lr79tss2brj.js.map +1 -0
- package/dist/code/server.js +88 -0
- package/dist/code/server.js.map +1 -0
- package/dist/code.js +256 -0
- package/dist/code.js.map +1 -0
- package/dist/command-line/cli.js +850 -0
- package/dist/command-line/commands/add.js +282 -0
- package/dist/command-line/commands/ai.js +22 -0
- package/dist/command-line/commands/blocks.js +61 -0
- package/dist/command-line/commands/doc.js +167 -0
- package/dist/command-line/commands/init.js +95 -0
- package/dist/command-line/commands/ls.js +53 -0
- package/dist/components/autocomplete.js +9 -0
- package/dist/components/autocomplete.js.map +1 -0
- package/dist/components/badge.js +7 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/banner.js +7 -0
- package/dist/components/banner.js.map +1 -0
- package/dist/components/breadcrumbs.js +9 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/components/button.js +9 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/chart.js +10 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.js +8 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/clipboard-text.js +6 -0
- package/dist/components/clipboard-text.js.map +1 -0
- package/dist/components/cloudflare-logo.js +10 -0
- package/dist/components/cloudflare-logo.js.map +1 -0
- package/dist/components/code.js +7 -0
- package/dist/components/code.js.map +1 -0
- package/dist/components/collapsible.js +6 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +6 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command-palette.js +8 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/date-picker.js +6 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/date-range-picker.js +6 -0
- package/dist/components/date-range-picker.js.map +1 -0
- package/dist/components/dialog.js +11 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown.js +6 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/empty.js +9 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.js +10 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/flow.js +5831 -0
- package/dist/components/flow.js.map +1 -0
- package/dist/components/grid.js +11 -0
- package/dist/components/grid.js.map +1 -0
- package/dist/components/input-group.js +8 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input.js +14 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.js +10 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layer-card.js +6 -0
- package/dist/components/layer-card.js.map +1 -0
- package/dist/components/link.js +9 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/loader.js +8 -0
- package/dist/components/loader.js.map +1 -0
- package/dist/components/menubar.js +7 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/meter.js +6 -0
- package/dist/components/meter.js.map +1 -0
- package/dist/components/pagination.js +6 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.js +14 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/radio.js +10 -0
- package/dist/components/radio.js.map +1 -0
- package/dist/components/select.js +6 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/sensitive-input.js +8 -0
- package/dist/components/sensitive-input.js.map +1 -0
- package/dist/components/sidebar.js +34 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/surface.js +6 -0
- package/dist/components/surface.js.map +1 -0
- package/dist/components/switch.js +8 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table-of-contents.js +8 -0
- package/dist/components/table-of-contents.js.map +1 -0
- package/dist/components/table.js +8 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.js +6 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text.js +6 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/toast.js +11 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.js +7 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/index.js +344 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives/accordion.js +6 -0
- package/dist/primitives/accordion.js.map +1 -0
- package/dist/primitives/alert-dialog.js +6 -0
- package/dist/primitives/alert-dialog.js.map +1 -0
- package/dist/primitives/autocomplete.js +6 -0
- package/dist/primitives/autocomplete.js.map +1 -0
- package/dist/primitives/avatar.js +6 -0
- package/dist/primitives/avatar.js.map +1 -0
- package/dist/primitives/button.js +6 -0
- package/dist/primitives/button.js.map +1 -0
- package/dist/primitives/checkbox-group.js +6 -0
- package/dist/primitives/checkbox-group.js.map +1 -0
- package/dist/primitives/checkbox.js +6 -0
- package/dist/primitives/checkbox.js.map +1 -0
- package/dist/primitives/collapsible.js +6 -0
- package/dist/primitives/collapsible.js.map +1 -0
- package/dist/primitives/combobox.js +6 -0
- package/dist/primitives/combobox.js.map +1 -0
- package/dist/primitives/context-menu.js +6 -0
- package/dist/primitives/context-menu.js.map +1 -0
- package/dist/primitives/csp-provider.js +6 -0
- package/dist/primitives/csp-provider.js.map +1 -0
- package/dist/primitives/dialog.js +6 -0
- package/dist/primitives/dialog.js.map +1 -0
- package/dist/primitives/direction-provider.js +7 -0
- package/dist/primitives/direction-provider.js.map +1 -0
- package/dist/primitives/drawer.js +6 -0
- package/dist/primitives/drawer.js.map +1 -0
- package/dist/primitives/field.js +6 -0
- package/dist/primitives/field.js.map +1 -0
- package/dist/primitives/fieldset.js +6 -0
- package/dist/primitives/fieldset.js.map +1 -0
- package/dist/primitives/form.js +6 -0
- package/dist/primitives/form.js.map +1 -0
- package/dist/primitives/input.js +6 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/menu.js +6 -0
- package/dist/primitives/menu.js.map +1 -0
- package/dist/primitives/menubar.js +6 -0
- package/dist/primitives/menubar.js.map +1 -0
- package/dist/primitives/meter.js +6 -0
- package/dist/primitives/meter.js.map +1 -0
- package/dist/primitives/navigation-menu.js +6 -0
- package/dist/primitives/navigation-menu.js.map +1 -0
- package/dist/primitives/number-field.js +6 -0
- package/dist/primitives/number-field.js.map +1 -0
- package/dist/primitives/otp-field.js +6 -0
- package/dist/primitives/otp-field.js.map +1 -0
- package/dist/primitives/popover.js +6 -0
- package/dist/primitives/popover.js.map +1 -0
- package/dist/primitives/preview-card.js +6 -0
- package/dist/primitives/preview-card.js.map +1 -0
- package/dist/primitives/progress.js +6 -0
- package/dist/primitives/progress.js.map +1 -0
- package/dist/primitives/radio-group.js +6 -0
- package/dist/primitives/radio-group.js.map +1 -0
- package/dist/primitives/radio.js +6 -0
- package/dist/primitives/radio.js.map +1 -0
- package/dist/primitives/scroll-area.js +6 -0
- package/dist/primitives/scroll-area.js.map +1 -0
- package/dist/primitives/select.js +6 -0
- package/dist/primitives/select.js.map +1 -0
- package/dist/primitives/separator.js +6 -0
- package/dist/primitives/separator.js.map +1 -0
- package/dist/primitives/slider.js +6 -0
- package/dist/primitives/slider.js.map +1 -0
- package/dist/primitives/switch.js +6 -0
- package/dist/primitives/switch.js.map +1 -0
- package/dist/primitives/tabs.js +6 -0
- package/dist/primitives/tabs.js.map +1 -0
- package/dist/primitives/toast.js +6 -0
- package/dist/primitives/toast.js.map +1 -0
- package/dist/primitives/toggle-group.js +6 -0
- package/dist/primitives/toggle-group.js.map +1 -0
- package/dist/primitives/toggle.js +6 -0
- package/dist/primitives/toggle.js.map +1 -0
- package/dist/primitives/toolbar.js +6 -0
- package/dist/primitives/toolbar.js.map +1 -0
- package/dist/primitives/tooltip.js +6 -0
- package/dist/primitives/tooltip.js.map +1 -0
- package/dist/primitives.js +46 -0
- package/dist/primitives.js.map +1 -0
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -0
- package/dist/scripts/theme-generator/config.d.ts +6 -0
- package/dist/scripts/theme-generator/config.d.ts.map +1 -0
- package/dist/scripts/theme-generator/config.js +629 -0
- package/dist/scripts/theme-generator/config.js.map +1 -0
- package/dist/scripts/theme-generator/generate-css.d.ts +31 -0
- package/dist/scripts/theme-generator/generate-css.d.ts.map +1 -0
- package/dist/scripts/theme-generator/index.d.ts +13 -0
- package/dist/scripts/theme-generator/index.d.ts.map +1 -0
- package/dist/scripts/theme-generator/migrate.d.ts +56 -0
- package/dist/scripts/theme-generator/migrate.d.ts.map +1 -0
- package/dist/scripts/theme-generator/types.d.ts +82 -0
- package/dist/scripts/theme-generator/types.d.ts.map +1 -0
- package/dist/scripts/theme-generator/types.js +2 -0
- package/dist/scripts/theme-generator/types.js.map +1 -0
- package/dist/src/blocks/delete-resource/delete-resource.d.ts +46 -0
- package/dist/src/blocks/delete-resource/delete-resource.d.ts.map +1 -0
- package/dist/src/blocks/delete-resource/index.d.ts +2 -0
- package/dist/src/blocks/delete-resource/index.d.ts.map +1 -0
- package/dist/src/blocks/page-header/index.d.ts +2 -0
- package/dist/src/blocks/page-header/index.d.ts.map +1 -0
- package/dist/src/blocks/page-header/page-header.d.ts +38 -0
- package/dist/src/blocks/page-header/page-header.d.ts.map +1 -0
- package/dist/src/blocks/resource-list/index.d.ts +2 -0
- package/dist/src/blocks/resource-list/index.d.ts.map +1 -0
- package/dist/src/blocks/resource-list/resource-list.d.ts +18 -0
- package/dist/src/blocks/resource-list/resource-list.d.ts.map +1 -0
- package/dist/src/catalog/catalog.d.ts +75 -0
- package/dist/src/catalog/catalog.d.ts.map +1 -0
- package/dist/src/catalog/data.d.ts +44 -0
- package/dist/src/catalog/data.d.ts.map +1 -0
- package/dist/src/catalog/index.d.ts +39 -0
- package/dist/src/catalog/index.d.ts.map +1 -0
- package/dist/src/catalog/types.d.ts +226 -0
- package/dist/src/catalog/types.d.ts.map +1 -0
- package/dist/src/catalog/visibility.d.ts +37 -0
- package/dist/src/catalog/visibility.d.ts.map +1 -0
- package/dist/src/code/code-highlighted.d.ts +32 -0
- package/dist/src/code/code-highlighted.d.ts.map +1 -0
- package/dist/src/code/context.d.ts +16 -0
- package/dist/src/code/context.d.ts.map +1 -0
- package/dist/src/code/index.d.ts +32 -0
- package/dist/src/code/index.d.ts.map +1 -0
- package/dist/src/code/provider.d.ts +13 -0
- package/dist/src/code/provider.d.ts.map +1 -0
- package/dist/src/code/server.d.ts +95 -0
- package/dist/src/code/server.d.ts.map +1 -0
- package/dist/src/code/types.d.ts +130 -0
- package/dist/src/code/types.d.ts.map +1 -0
- package/dist/src/code/use-shiki-highlighter.d.ts +36 -0
- package/dist/src/code/use-shiki-highlighter.d.ts.map +1 -0
- package/dist/src/command-line/build-cli.d.ts +7 -0
- package/dist/src/command-line/build-cli.d.ts.map +1 -0
- package/dist/src/command-line/cli.d.ts +13 -0
- package/dist/src/command-line/cli.d.ts.map +1 -0
- package/dist/src/command-line/commands/add.d.ts +10 -0
- package/dist/src/command-line/commands/add.d.ts.map +1 -0
- package/dist/src/command-line/commands/ai.d.ts +10 -0
- package/dist/src/command-line/commands/ai.d.ts.map +1 -0
- package/dist/src/command-line/commands/blocks.d.ts +10 -0
- package/dist/src/command-line/commands/blocks.d.ts.map +1 -0
- package/dist/src/command-line/commands/doc.d.ts +14 -0
- package/dist/src/command-line/commands/doc.d.ts.map +1 -0
- package/dist/src/command-line/commands/init.d.ts +18 -0
- package/dist/src/command-line/commands/init.d.ts.map +1 -0
- package/dist/src/command-line/commands/ls.d.ts +10 -0
- package/dist/src/command-line/commands/ls.d.ts.map +1 -0
- package/dist/src/command-line/commands/migrate.d.ts +10 -0
- package/dist/src/command-line/commands/migrate.d.ts.map +1 -0
- package/dist/src/command-line/utils/config.d.ts +42 -0
- package/dist/src/command-line/utils/config.d.ts.map +1 -0
- package/dist/src/command-line/utils/transformer.d.ts +21 -0
- package/dist/src/command-line/utils/transformer.d.ts.map +1 -0
- package/dist/src/components/autocomplete/autocomplete.d.ts +181 -0
- package/dist/src/components/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/src/components/autocomplete/index.d.ts +3 -0
- package/dist/src/components/autocomplete/index.d.ts.map +1 -0
- package/dist/src/components/badge/badge.d.ts +180 -0
- package/dist/src/components/badge/badge.d.ts.map +1 -0
- package/dist/src/components/badge/index.d.ts +2 -0
- package/dist/src/components/badge/index.d.ts.map +1 -0
- package/dist/src/components/banner/banner.d.ts +106 -0
- package/dist/src/components/banner/banner.d.ts.map +1 -0
- package/dist/src/components/banner/index.d.ts +2 -0
- package/dist/src/components/banner/index.d.ts.map +1 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +78 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/src/components/breadcrumbs/index.d.ts +2 -0
- package/dist/src/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/src/components/button/button.d.ts +214 -0
- package/dist/src/components/button/button.d.ts.map +1 -0
- package/dist/src/components/button/index.d.ts +2 -0
- package/dist/src/components/button/index.d.ts.map +1 -0
- package/dist/src/components/chart/Color.d.ts +91 -0
- package/dist/src/components/chart/Color.d.ts.map +1 -0
- package/dist/src/components/chart/EChart.d.ts +159 -0
- package/dist/src/components/chart/EChart.d.ts.map +1 -0
- package/dist/src/components/chart/Legend.d.ts +51 -0
- package/dist/src/components/chart/Legend.d.ts.map +1 -0
- package/dist/src/components/chart/SankeyChart.d.ts +98 -0
- package/dist/src/components/chart/SankeyChart.d.ts.map +1 -0
- package/dist/src/components/chart/TimeseriesChart.d.ts +181 -0
- package/dist/src/components/chart/TimeseriesChart.d.ts.map +1 -0
- package/dist/src/components/chart/index.d.ts +6 -0
- package/dist/src/components/chart/index.d.ts.map +1 -0
- package/dist/src/components/checkbox/checkbox.d.ts +197 -0
- package/dist/src/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/src/components/checkbox/index.d.ts +2 -0
- package/dist/src/components/checkbox/index.d.ts.map +1 -0
- package/dist/src/components/clipboard-text/clipboard-text.d.ts +88 -0
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -0
- package/dist/src/components/clipboard-text/index.d.ts +2 -0
- package/dist/src/components/clipboard-text/index.d.ts.map +1 -0
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts +133 -0
- package/dist/src/components/cloudflare-logo/cloudflare-logo.d.ts.map +1 -0
- package/dist/src/components/cloudflare-logo/index.d.ts +2 -0
- package/dist/src/components/cloudflare-logo/index.d.ts.map +1 -0
- package/dist/src/components/code/code.d.ts +189 -0
- package/dist/src/components/code/code.d.ts.map +1 -0
- package/dist/src/components/code/index.d.ts +4 -0
- package/dist/src/components/code/index.d.ts.map +1 -0
- package/dist/src/components/collapsible/collapsible.d.ts +109 -0
- package/dist/src/components/collapsible/collapsible.d.ts.map +1 -0
- package/dist/src/components/collapsible/index.d.ts +2 -0
- package/dist/src/components/collapsible/index.d.ts.map +1 -0
- package/dist/src/components/combobox/combobox.d.ts +246 -0
- package/dist/src/components/combobox/combobox.d.ts.map +1 -0
- package/dist/src/components/combobox/index.d.ts +3 -0
- package/dist/src/components/combobox/index.d.ts.map +1 -0
- package/dist/src/components/command-palette/command-palette.d.ts +258 -0
- package/dist/src/components/command-palette/command-palette.d.ts.map +1 -0
- package/dist/src/components/command-palette/index.d.ts +3 -0
- package/dist/src/components/command-palette/index.d.ts.map +1 -0
- package/dist/src/components/command-palette/types.d.ts +168 -0
- package/dist/src/components/command-palette/types.d.ts.map +1 -0
- package/dist/src/components/date-picker/date-picker.d.ts +65 -0
- package/dist/src/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/src/components/date-picker/index.d.ts +4 -0
- package/dist/src/components/date-picker/index.d.ts.map +1 -0
- package/dist/src/components/date-range-picker/date-range-picker.d.ts +125 -0
- package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -0
- package/dist/src/components/date-range-picker/index.d.ts +5 -0
- package/dist/src/components/date-range-picker/index.d.ts.map +1 -0
- package/dist/src/components/dialog/dialog.d.ts +242 -0
- package/dist/src/components/dialog/dialog.d.ts.map +1 -0
- package/dist/src/components/dialog/index.d.ts +2 -0
- package/dist/src/components/dialog/index.d.ts.map +1 -0
- package/dist/src/components/dropdown/dropdown.d.ts +116 -0
- package/dist/src/components/dropdown/dropdown.d.ts.map +1 -0
- package/dist/src/components/dropdown/index.d.ts +2 -0
- package/dist/src/components/dropdown/index.d.ts.map +1 -0
- package/dist/src/components/empty/empty.d.ts +69 -0
- package/dist/src/components/empty/empty.d.ts.map +1 -0
- package/dist/src/components/empty/index.d.ts +2 -0
- package/dist/src/components/empty/index.d.ts.map +1 -0
- package/dist/src/components/field/field.d.ts +89 -0
- package/dist/src/components/field/field.d.ts.map +1 -0
- package/dist/src/components/field/index.d.ts +2 -0
- package/dist/src/components/field/index.d.ts.map +1 -0
- package/dist/src/components/flow/connectors.d.ts +41 -0
- package/dist/src/components/flow/connectors.d.ts.map +1 -0
- package/dist/src/components/flow/diagram.d.ts +96 -0
- package/dist/src/components/flow/diagram.d.ts.map +1 -0
- package/dist/src/components/flow/index.d.ts +26 -0
- package/dist/src/components/flow/index.d.ts.map +1 -0
- package/dist/src/components/flow/node.d.ts +61 -0
- package/dist/src/components/flow/node.d.ts.map +1 -0
- package/dist/src/components/flow/parallel.d.ts +13 -0
- package/dist/src/components/flow/parallel.d.ts.map +1 -0
- package/dist/src/components/flow/use-children.d.ts +87 -0
- package/dist/src/components/flow/use-children.d.ts.map +1 -0
- package/dist/src/components/grid/grid.d.ts +135 -0
- package/dist/src/components/grid/grid.d.ts.map +1 -0
- package/dist/src/components/grid/index.d.ts +2 -0
- package/dist/src/components/grid/index.d.ts.map +1 -0
- package/dist/src/components/input/index.d.ts +19 -0
- package/dist/src/components/input/index.d.ts.map +1 -0
- package/dist/src/components/input/input-area.d.ts +65 -0
- package/dist/src/components/input/input-area.d.ts.map +1 -0
- package/dist/src/components/input/input.d.ts +175 -0
- package/dist/src/components/input/input.d.ts.map +1 -0
- package/dist/src/components/input-group/context.d.ts +96 -0
- package/dist/src/components/input-group/context.d.ts.map +1 -0
- package/dist/src/components/input-group/index.d.ts +2 -0
- package/dist/src/components/input-group/index.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-addon.d.ts +15 -0
- package/dist/src/components/input-group/input-group-addon.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-button.d.ts +36 -0
- package/dist/src/components/input-group/input-group-button.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-input.d.ts +9 -0
- package/dist/src/components/input-group/input-group-input.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group-suffix.d.ts +13 -0
- package/dist/src/components/input-group/input-group-suffix.d.ts.map +1 -0
- package/dist/src/components/input-group/input-group.d.ts +43 -0
- package/dist/src/components/input-group/input-group.d.ts.map +1 -0
- package/dist/src/components/label/index.d.ts +2 -0
- package/dist/src/components/label/index.d.ts.map +1 -0
- package/dist/src/components/label/label.d.ts +67 -0
- package/dist/src/components/label/label.d.ts.map +1 -0
- package/dist/src/components/layer-card/index.d.ts +2 -0
- package/dist/src/components/layer-card/index.d.ts.map +1 -0
- package/dist/src/components/layer-card/layer-card.d.ts +60 -0
- package/dist/src/components/layer-card/layer-card.d.ts.map +1 -0
- package/dist/src/components/link/index.d.ts +2 -0
- package/dist/src/components/link/index.d.ts.map +1 -0
- package/dist/src/components/link/link.d.ts +66 -0
- package/dist/src/components/link/link.d.ts.map +1 -0
- package/dist/src/components/loader/index.d.ts +3 -0
- package/dist/src/components/loader/index.d.ts.map +1 -0
- package/dist/src/components/loader/loader.d.ts +70 -0
- package/dist/src/components/loader/loader.d.ts.map +1 -0
- package/dist/src/components/loader/skeleton-line.d.ts +11 -0
- package/dist/src/components/loader/skeleton-line.d.ts.map +1 -0
- package/dist/src/components/menubar/index.d.ts +3 -0
- package/dist/src/components/menubar/index.d.ts.map +1 -0
- package/dist/src/components/menubar/menubar.d.ts +66 -0
- package/dist/src/components/menubar/menubar.d.ts.map +1 -0
- package/dist/src/components/menubar/use-menu-navigation.d.ts +8 -0
- package/dist/src/components/menubar/use-menu-navigation.d.ts.map +1 -0
- package/dist/src/components/meter/index.d.ts +2 -0
- package/dist/src/components/meter/index.d.ts.map +1 -0
- package/dist/src/components/meter/meter.d.ts +44 -0
- package/dist/src/components/meter/meter.d.ts.map +1 -0
- package/dist/src/components/pagination/index.d.ts +2 -0
- package/dist/src/components/pagination/index.d.ts.map +1 -0
- package/dist/src/components/pagination/pagination.d.ts +241 -0
- package/dist/src/components/pagination/pagination.d.ts.map +1 -0
- package/dist/src/components/popover/index.d.ts +3 -0
- package/dist/src/components/popover/index.d.ts.map +1 -0
- package/dist/src/components/popover/popover.d.ts +178 -0
- package/dist/src/components/popover/popover.d.ts.map +1 -0
- package/dist/src/components/radio/index.d.ts +2 -0
- package/dist/src/components/radio/index.d.ts.map +1 -0
- package/dist/src/components/radio/radio.d.ts +277 -0
- package/dist/src/components/radio/radio.d.ts.map +1 -0
- package/dist/src/components/radio/radio.type-spec.d.ts +12 -0
- package/dist/src/components/radio/radio.type-spec.d.ts.map +1 -0
- package/dist/src/components/select/index.d.ts +2 -0
- package/dist/src/components/select/index.d.ts.map +1 -0
- package/dist/src/components/select/select.d.ts +288 -0
- package/dist/src/components/select/select.d.ts.map +1 -0
- package/dist/src/components/sensitive-input/index.d.ts +2 -0
- package/dist/src/components/sensitive-input/index.d.ts.map +1 -0
- package/dist/src/components/sensitive-input/sensitive-input.d.ts +94 -0
- package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -0
- package/dist/src/components/sidebar/index.d.ts +2 -0
- package/dist/src/components/sidebar/index.d.ts.map +1 -0
- package/dist/src/components/sidebar/sidebar.d.ts +581 -0
- package/dist/src/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/src/components/surface/index.d.ts +5 -0
- package/dist/src/components/surface/index.d.ts.map +1 -0
- package/dist/src/components/surface/surface.d.ts +64 -0
- package/dist/src/components/surface/surface.d.ts.map +1 -0
- package/dist/src/components/switch/index.d.ts +2 -0
- package/dist/src/components/switch/index.d.ts.map +1 -0
- package/dist/src/components/switch/switch.d.ts +197 -0
- package/dist/src/components/switch/switch.d.ts.map +1 -0
- package/dist/src/components/table/index.d.ts +2 -0
- package/dist/src/components/table/index.d.ts.map +1 -0
- package/dist/src/components/table/table.d.ts +138 -0
- package/dist/src/components/table/table.d.ts.map +1 -0
- package/dist/src/components/table-of-contents/index.d.ts +2 -0
- package/dist/src/components/table-of-contents/index.d.ts.map +1 -0
- package/dist/src/components/table-of-contents/table-of-contents.d.ts +72 -0
- package/dist/src/components/table-of-contents/table-of-contents.d.ts.map +1 -0
- package/dist/src/components/tabs/index.d.ts +3 -0
- package/dist/src/components/tabs/index.d.ts.map +1 -0
- package/dist/src/components/tabs/tabs.d.ts +116 -0
- package/dist/src/components/tabs/tabs.d.ts.map +1 -0
- package/dist/src/components/text/index.d.ts +2 -0
- package/dist/src/components/text/index.d.ts.map +1 -0
- package/dist/src/components/text/text.d.ts +214 -0
- package/dist/src/components/text/text.d.ts.map +1 -0
- package/dist/src/components/text/text.type-spec.d.ts +44 -0
- package/dist/src/components/text/text.type-spec.d.ts.map +1 -0
- package/dist/src/components/toast/index.d.ts +5 -0
- package/dist/src/components/toast/index.d.ts.map +1 -0
- package/dist/src/components/toast/toast.d.ts +197 -0
- package/dist/src/components/toast/toast.d.ts.map +1 -0
- package/dist/src/components/tooltip/index.d.ts +2 -0
- package/dist/src/components/tooltip/index.d.ts.map +1 -0
- package/dist/src/components/tooltip/tooltip.d.ts +108 -0
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/src/index.d.ts +84 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/primitives/accordion.d.ts +13 -0
- package/dist/src/primitives/accordion.d.ts.map +1 -0
- package/dist/src/primitives/alert-dialog.d.ts +13 -0
- package/dist/src/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/src/primitives/autocomplete.d.ts +13 -0
- package/dist/src/primitives/autocomplete.d.ts.map +1 -0
- package/dist/src/primitives/avatar.d.ts +13 -0
- package/dist/src/primitives/avatar.d.ts.map +1 -0
- package/dist/src/primitives/button.d.ts +13 -0
- package/dist/src/primitives/button.d.ts.map +1 -0
- package/dist/src/primitives/checkbox-group.d.ts +13 -0
- package/dist/src/primitives/checkbox-group.d.ts.map +1 -0
- package/dist/src/primitives/checkbox.d.ts +13 -0
- package/dist/src/primitives/checkbox.d.ts.map +1 -0
- package/dist/src/primitives/collapsible.d.ts +13 -0
- package/dist/src/primitives/collapsible.d.ts.map +1 -0
- package/dist/src/primitives/combobox.d.ts +13 -0
- package/dist/src/primitives/combobox.d.ts.map +1 -0
- package/dist/src/primitives/context-menu.d.ts +13 -0
- package/dist/src/primitives/context-menu.d.ts.map +1 -0
- package/dist/src/primitives/csp-provider.d.ts +13 -0
- package/dist/src/primitives/csp-provider.d.ts.map +1 -0
- package/dist/src/primitives/dialog.d.ts +13 -0
- package/dist/src/primitives/dialog.d.ts.map +1 -0
- package/dist/src/primitives/direction-provider.d.ts +13 -0
- package/dist/src/primitives/direction-provider.d.ts.map +1 -0
- package/dist/src/primitives/drawer.d.ts +13 -0
- package/dist/src/primitives/drawer.d.ts.map +1 -0
- package/dist/src/primitives/field.d.ts +13 -0
- package/dist/src/primitives/field.d.ts.map +1 -0
- package/dist/src/primitives/fieldset.d.ts +13 -0
- package/dist/src/primitives/fieldset.d.ts.map +1 -0
- package/dist/src/primitives/form.d.ts +13 -0
- package/dist/src/primitives/form.d.ts.map +1 -0
- package/dist/src/primitives/index.d.ts +55 -0
- package/dist/src/primitives/index.d.ts.map +1 -0
- package/dist/src/primitives/input.d.ts +13 -0
- package/dist/src/primitives/input.d.ts.map +1 -0
- package/dist/src/primitives/menu.d.ts +13 -0
- package/dist/src/primitives/menu.d.ts.map +1 -0
- package/dist/src/primitives/menubar.d.ts +13 -0
- package/dist/src/primitives/menubar.d.ts.map +1 -0
- package/dist/src/primitives/meter.d.ts +13 -0
- package/dist/src/primitives/meter.d.ts.map +1 -0
- package/dist/src/primitives/navigation-menu.d.ts +13 -0
- package/dist/src/primitives/navigation-menu.d.ts.map +1 -0
- package/dist/src/primitives/number-field.d.ts +13 -0
- package/dist/src/primitives/number-field.d.ts.map +1 -0
- package/dist/src/primitives/otp-field.d.ts +13 -0
- package/dist/src/primitives/otp-field.d.ts.map +1 -0
- package/dist/src/primitives/popover.d.ts +13 -0
- package/dist/src/primitives/popover.d.ts.map +1 -0
- package/dist/src/primitives/preview-card.d.ts +13 -0
- package/dist/src/primitives/preview-card.d.ts.map +1 -0
- package/dist/src/primitives/progress.d.ts +13 -0
- package/dist/src/primitives/progress.d.ts.map +1 -0
- package/dist/src/primitives/radio-group.d.ts +13 -0
- package/dist/src/primitives/radio-group.d.ts.map +1 -0
- package/dist/src/primitives/radio.d.ts +13 -0
- package/dist/src/primitives/radio.d.ts.map +1 -0
- package/dist/src/primitives/scroll-area.d.ts +13 -0
- package/dist/src/primitives/scroll-area.d.ts.map +1 -0
- package/dist/src/primitives/select.d.ts +13 -0
- package/dist/src/primitives/select.d.ts.map +1 -0
- package/dist/src/primitives/separator.d.ts +13 -0
- package/dist/src/primitives/separator.d.ts.map +1 -0
- package/dist/src/primitives/slider.d.ts +13 -0
- package/dist/src/primitives/slider.d.ts.map +1 -0
- package/dist/src/primitives/switch.d.ts +13 -0
- package/dist/src/primitives/switch.d.ts.map +1 -0
- package/dist/src/primitives/tabs.d.ts +13 -0
- package/dist/src/primitives/tabs.d.ts.map +1 -0
- package/dist/src/primitives/toast.d.ts +13 -0
- package/dist/src/primitives/toast.d.ts.map +1 -0
- package/dist/src/primitives/toggle-group.d.ts +13 -0
- package/dist/src/primitives/toggle-group.d.ts.map +1 -0
- package/dist/src/primitives/toggle.d.ts +13 -0
- package/dist/src/primitives/toggle.d.ts.map +1 -0
- package/dist/src/primitives/toolbar.d.ts +13 -0
- package/dist/src/primitives/toolbar.d.ts.map +1 -0
- package/dist/src/primitives/tooltip.d.ts +13 -0
- package/dist/src/primitives/tooltip.d.ts.map +1 -0
- package/dist/src/registry/index.d.ts +8 -0
- package/dist/src/registry/index.d.ts.map +1 -0
- package/dist/src/registry/types.d.ts +191 -0
- package/dist/src/registry/types.d.ts.map +1 -0
- package/dist/src/utils/cn.d.ts +4 -0
- package/dist/src/utils/cn.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +4 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/link-provider.d.ts +66 -0
- package/dist/src/utils/link-provider.d.ts.map +1 -0
- package/dist/src/utils/portal-provider.d.ts +56 -0
- package/dist/src/utils/portal-provider.d.ts.map +1 -0
- package/dist/src/utils/prop-examples.d.ts +36 -0
- package/dist/src/utils/prop-examples.d.ts.map +1 -0
- package/dist/src/utils/resolve-variant.d.ts +27 -0
- package/dist/src/utils/resolve-variant.d.ts.map +1 -0
- package/dist/styles/reki-binding.css +303 -0
- package/dist/styles/reki-standalone.css +2 -0
- package/dist/styles/reki.css +700 -0
- package/dist/styles/theme-fedramp.css +39 -0
- package/dist/styles/theme-reki.css +412 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- package/package.json +511 -0
- package/scripts/component-registry/cache.ts +123 -0
- package/scripts/component-registry/discovery.ts +469 -0
- package/scripts/component-registry/example-cleanup.ts +168 -0
- package/scripts/component-registry/index.test.ts +987 -0
- package/scripts/component-registry/index.ts +970 -0
- package/scripts/component-registry/markdown-generator.ts +222 -0
- package/scripts/component-registry/metadata.ts +956 -0
- package/scripts/component-registry/props-filter.ts +310 -0
- package/scripts/component-registry/schema-generator.ts +331 -0
- package/scripts/component-registry/sub-components.ts +380 -0
- package/scripts/component-registry/types.ts +158 -0
- package/scripts/component-registry/utils.ts +280 -0
- package/scripts/component-registry/variant-parser.ts +261 -0
- package/scripts/css-build.ts +105 -0
- package/scripts/generate-primitives.ts +183 -0
- package/scripts/theme-generator/config.ts +653 -0
- package/scripts/theme-generator/generate-css.test.ts +30 -0
- package/scripts/theme-generator/generate-css.ts +351 -0
- package/scripts/theme-generator/index.ts +159 -0
- package/scripts/theme-generator/migrate.ts +560 -0
- package/scripts/theme-generator/types.ts +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-noz668nhdu2gso12.js","sources":["../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import React, {\n type ComponentPropsWithoutRef,\n type CSSProperties,\n type ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useId,\n useRef,\n useState,\n} from \"react\";\nimport { ScrollArea as ScrollAreaBase } from \"@base-ui/react/scroll-area\";\n\nimport { CaretRightIcon } from \"@phosphor-icons/react\";\nimport { cn } from \"../../utils/cn\";\nimport { useLinkComponent } from \"../../utils/link-provider\";\nimport { Tooltip, TooltipProvider } from \"../tooltip\";\n\n// ============================================================================\n// Variants (required by Reki convention)\n// ============================================================================\n\n/** Sidebar variant definitions mapping layout, collapse, and side options. */\nexport const REKI_SIDEBAR_VARIANTS = {\n variant: {\n sidebar: {\n classes: \"\",\n description: \"Standard sidebar with border separator\",\n },\n floating: {\n classes: \"\",\n description: \"Floating sidebar with shadow and rounded corners\",\n },\n inset: {\n classes: \"\",\n description: \"Inset sidebar within the content area\",\n },\n },\n collapsible: {\n icon: {\n classes: \"\",\n description: \"Collapses to show icons only\",\n },\n offcanvas: {\n classes: \"\",\n description: \"Slides off screen when collapsed\",\n },\n none: {\n classes: \"\",\n description: \"Cannot be collapsed\",\n },\n },\n side: {\n left: {\n classes: \"\",\n description: \"Left-aligned sidebar\",\n },\n right: {\n classes: \"\",\n description: \"Right-aligned sidebar\",\n },\n },\n} as const;\n\nexport const REKI_SIDEBAR_DEFAULT_VARIANTS = {\n variant: \"sidebar\",\n collapsible: \"icon\",\n side: \"left\",\n} as const;\n\nexport const REKI_SIDEBAR_STYLING = {\n width: {\n expanded: \"16.25rem\",\n icon: \"57px\",\n },\n mobile: {\n breakpoint: 768,\n },\n} as const;\n\nexport type SidebarSide = \"left\" | \"right\";\nexport type SidebarVariant = \"sidebar\" | \"floating\" | \"inset\";\nexport type SidebarCollapsible = \"icon\" | \"offcanvas\" | \"none\";\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst SIDEBAR_WIDTH = \"16.25rem\";\nconst SIDEBAR_WIDTH_ICON = \"57px\";\nconst SIDEBAR_EASING = \"cubic-bezier(0.77, 0, 0.175, 1)\";\nconst SIDEBAR_ANIMATION_DURATION_MS = 250;\nconst MOBILE_BREAKPOINT = 768;\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n// ============================================================================\n// Mobile detection hook\n// ============================================================================\n\nfunction useIsMobile(breakpoint: number = MOBILE_BREAKPOINT) {\n const [isMobile, setIsMobile] = useState(() => {\n if (typeof window === \"undefined\") return false;\n return window.matchMedia(`(max-width: ${breakpoint - 1}px)`).matches;\n });\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);\n const onChange = () => setIsMobile(mql.matches);\n mql.addEventListener(\"change\", onChange);\n setIsMobile(mql.matches);\n return () => mql.removeEventListener(\"change\", onChange);\n }, [breakpoint]);\n\n return isMobile;\n}\n\n// ============================================================================\n// Context\n// ============================================================================\n\nexport type SidebarState = \"expanded\" | \"collapsed\" | \"peeking\";\n\nexport interface SidebarContextValue {\n state: SidebarState;\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n variant: \"sidebar\" | \"floating\" | \"inset\";\n side: \"left\" | \"right\";\n collapsible: \"icon\" | \"offcanvas\" | \"none\";\n width: number;\n resizable: boolean;\n minWidth: number;\n maxWidth: number;\n isResizing: boolean;\n setIsResizing: (resizing: boolean) => void;\n setWidth: (width: number) => void;\n isPeeking: boolean;\n peekable: boolean;\n startPeek: () => void;\n stopPeek: () => void;\n contained: boolean;\n animationDuration: number;\n}\n\nconst SidebarContext = createContext<SidebarContextValue | null>(null);\n\n/**\n * Hook to access sidebar state and actions from any descendant component.\n *\n * @example\n * ```tsx\n * const { state, open, toggleSidebar, isMobile } = useSidebar();\n * ```\n *\n * @throws Error if used outside a `Sidebar.Provider`.\n */\nexport function useSidebar() {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a Sidebar.Provider\");\n }\n return context;\n}\n\n// ============================================================================\n// Provider\n// ============================================================================\n\nexport interface SidebarProviderProps {\n /** Initial open state when uncontrolled. @default true */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Callback when open state changes (controlled mode). */\n onOpenChange?: (open: boolean) => void;\n /** Sidebar layout variant. @default \"sidebar\" */\n variant?: SidebarVariant;\n /** Which side the sidebar is on. @default \"left\" */\n side?: SidebarSide;\n collapsible?: \"icon\" | \"offcanvas\" | \"none\";\n /** Enable drag-to-resize on the sidebar edge. @default false */\n resizable?: boolean;\n /** Initial width in pixels when resizable. @default 256 */\n defaultWidth?: number;\n /** Minimum width in pixels when resizing. @default 200 */\n minWidth?: number;\n /** Maximum width in pixels when resizing. @default 480 */\n maxWidth?: number;\n /** Callback when width changes during resize. */\n onWidthChange?: (width: number) => void;\n /**\n * When true, the collapsed sidebar uses absolute positioning instead of fixed,\n * keeping it scoped inside a bounded parent. Useful for demos and embedded sidebars.\n * @default false\n */\n contained?: boolean;\n /**\n * When true, hovering or focusing the collapsed sidebar temporarily expands it.\n * The `state` will be `\"peeking\"` during the peek. Moving away collapses it back.\n * @default false\n */\n peekable?: boolean;\n /**\n * Duration of sidebar expand/collapse animation in milliseconds.\n * @default 250\n */\n animationDuration?: number;\n /**\n * Viewport width (in px) below which the sidebar renders as a mobile dialog\n * sheet instead of the desktop aside rail.\n * @default 768\n */\n mobileBreakpoint?: number;\n /** Content — typically `<Sidebar>` + main content. */\n children: ReactNode;\n /** Additional CSS classes for the wrapper div. */\n className?: string;\n /** Inline styles for the wrapper div. */\n style?: CSSProperties;\n}\n\n/**\n * Sidebar context provider. Manages expand/collapse state and mobile detection.\n * Renders a flex wrapper div with CSS custom properties for sidebar width.\n *\n * @example\n * ```tsx\n * <Sidebar.Provider defaultOpen>\n * <Sidebar>{...}</Sidebar>\n * <main className=\"flex-1\">{...}</main>\n * </Sidebar.Provider>\n * ```\n */\nconst DEFAULT_WIDTH_PX = 256;\nconst MIN_WIDTH_PX = 200;\nconst MAX_WIDTH_PX = 480;\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n variant = REKI_SIDEBAR_DEFAULT_VARIANTS.variant,\n side = REKI_SIDEBAR_DEFAULT_VARIANTS.side,\n collapsible = REKI_SIDEBAR_DEFAULT_VARIANTS.collapsible,\n resizable = false,\n defaultWidth = DEFAULT_WIDTH_PX,\n minWidth = MIN_WIDTH_PX,\n maxWidth = MAX_WIDTH_PX,\n onWidthChange,\n contained = false,\n peekable = false,\n animationDuration = SIDEBAR_ANIMATION_DURATION_MS,\n mobileBreakpoint,\n children,\n className,\n style,\n}: SidebarProviderProps) {\n const isMobile = useIsMobile(mobileBreakpoint);\n const [_openMobile, _setOpenMobile] = useState(false);\n const [width, setWidthState] = useState(defaultWidth);\n const [isResizing, setIsResizing] = useState(false);\n const [isPeeking, setIsPeeking] = useState(false);\n\n // When controlled (`openProp` provided), use it directly for mobile too.\n // When uncontrolled, use internal `_openMobile` state.\n const openMobile =\n isMobile && openProp !== undefined ? openProp : _openMobile;\n\n const setOpenMobile = useCallback(\n (next: boolean) => {\n _setOpenMobile(next);\n // In controlled mode on mobile, notify the consumer\n if (isMobile && openProp !== undefined) {\n setOpenProp?.(next);\n }\n },\n [isMobile, openProp, setOpenProp],\n );\n\n const setWidth = useCallback(\n (newWidth: number) => {\n const clamped = Math.min(maxWidth, Math.max(minWidth, newWidth));\n setWidthState(clamped);\n onWidthChange?.(clamped);\n },\n [minWidth, maxWidth, onWidthChange],\n );\n\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = useCallback(\n (value: boolean | ((prev: boolean) => boolean)) => {\n const next = typeof value === \"function\" ? value(open) : value;\n setOpenProp?.(next);\n _setOpen(next);\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile(!openMobile);\n } else {\n setIsPeeking(false);\n setOpen((prev: boolean) => !prev);\n }\n }, [isMobile, openMobile, setOpenMobile, setOpen]);\n\n const startPeek = useCallback(() => {\n if (peekable && !open && !isMobile) {\n setIsPeeking(true);\n }\n }, [peekable, open, isMobile]);\n\n const stopPeek = useCallback(() => {\n setIsPeeking(false);\n }, []);\n\n const state: SidebarState = isPeeking\n ? \"peeking\"\n : open\n ? \"expanded\"\n : \"collapsed\";\n\n const sidebarWidthValue = resizable ? `${width}px` : SIDEBAR_WIDTH;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps -- all values are\n // either stable (props, setters) or derived from state that triggers re-render\n const contextValue = useMemo<SidebarContextValue>(\n () => ({\n state,\n open,\n setOpen,\n openMobile,\n setOpenMobile,\n isMobile,\n toggleSidebar,\n variant,\n side,\n collapsible,\n width,\n resizable,\n minWidth,\n maxWidth,\n isResizing,\n setIsResizing,\n setWidth,\n isPeeking,\n peekable,\n startPeek,\n stopPeek,\n contained,\n animationDuration,\n }),\n [state, open, openMobile, isMobile, width, isResizing, isPeeking],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-sidebar-wrapper=\"\"\n data-state={state}\n data-side={side}\n style={\n {\n \"--sidebar-width\": sidebarWidthValue,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n \"--sidebar-animation-duration\": `${animationDuration}ms`,\n \"--sidebar-easing\": SIDEBAR_EASING,\n ...style,\n } as CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper relative isolate flex w-full [--sidebar-bg:var(--color-reki-canvas)] [--sidebar-active-bg:var(--color-reki-tint)]\",\n !contained && !isMobile && \"min-h-svh\",\n \"has-data-[variant=inset]:bg-reki-recessed\",\n isResizing && \"select-none\",\n className,\n )}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n}\n\nSidebarProvider.displayName = \"Sidebar.Provider\";\n\n// ============================================================================\n// Sidebar Root\n// ============================================================================\n\nexport interface SidebarRootProps extends ComponentPropsWithoutRef<\"aside\"> {\n /** Additional CSS classes for the sidebar element. */\n className?: string;\n /** Additional CSS classes for the inner content container. */\n contentClassName?: string;\n /** Sidebar content — Header, Content, Footer, etc. */\n children: ReactNode;\n}\n\n/**\n * Main sidebar container. Renders as `<aside>` on desktop, modal sidebar sheet on mobile.\n * Must be used inside `Sidebar.Provider`.\n *\n * @example\n * ```tsx\n * <Sidebar.Provider>\n * <Sidebar>\n * <Sidebar.Header>...</Sidebar.Header>\n * <Sidebar.Content>...</Sidebar.Content>\n * <Sidebar.Footer>...</Sidebar.Footer>\n * </Sidebar>\n * </Sidebar.Provider>\n * ```\n */\nconst SidebarRoot = forwardRef<HTMLElement, SidebarRootProps>(\n ({ className, contentClassName, children, ...props }, ref) => {\n const {\n state,\n open,\n isMobile,\n openMobile,\n setOpenMobile,\n side,\n variant,\n collapsible,\n isResizing,\n resizable,\n width,\n isPeeking,\n startPeek,\n stopPeek,\n contained,\n } = useSidebar();\n\n // --- Mobile a11y hooks (must be before early returns) ---\n\n // Imperatively set inert on the mobile sidebar — React 18 doesn't\n // reliably forward the inert attribute as a JSX prop on initial mount.\n const mobileAsideRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n if (!openMobile) {\n node.setAttribute(\"inert\", \"\");\n } else {\n node.removeAttribute(\"inert\");\n }\n }\n },\n [openMobile],\n );\n\n // Merge forwarded ref with inert ref for the mobile aside\n const mergedMobileRef = useCallback(\n (node: HTMLElement | null) => {\n mobileAsideRef(node);\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLElement | null>).current = node;\n }\n },\n [ref, mobileAsideRef],\n );\n\n // Refs for mobile focus management (declared before effects that use them)\n const triggerRef = useRef<Element | null>(null);\n const mobileNodeRef = useRef<HTMLElement | null>(null);\n const shouldRestoreFocusRef = useRef(false);\n\n // Escape key and focus-leave close the mobile sidebar\n useEffect(() => {\n if (!isMobile || !openMobile) return;\n const node = mobileNodeRef.current;\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n shouldRestoreFocusRef.current = true;\n setOpenMobile(false);\n }\n };\n const handleFocusOut = (e: FocusEvent) => {\n if (node && !node.contains(e.relatedTarget as Node)) {\n shouldRestoreFocusRef.current = false;\n setOpenMobile(false);\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n node?.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n node?.removeEventListener(\"focusout\", handleFocusOut);\n };\n }, [isMobile, openMobile, setOpenMobile]);\n\n // When the mobile sidebar opens, move focus into it;\n // when it closes, return focus to the element that opened it.\n useEffect(() => {\n if (!isMobile) return;\n if (openMobile) {\n triggerRef.current = document.activeElement;\n shouldRestoreFocusRef.current = false;\n // Wait a frame so the aside is no longer inert before focusing\n requestAnimationFrame(() => {\n const firstFocusable = mobileNodeRef.current?.querySelector<HTMLElement>(\n FOCUSABLE_SELECTOR,\n );\n (firstFocusable ?? mobileNodeRef.current)?.focus();\n });\n } else if (\n shouldRestoreFocusRef.current &&\n triggerRef.current instanceof HTMLElement\n ) {\n triggerRef.current.focus();\n shouldRestoreFocusRef.current = false;\n triggerRef.current = null;\n }\n }, [isMobile, openMobile]);\n\n const handlePeekBlur = useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node)) {\n stopPeek();\n }\n },\n [stopPeek],\n );\n\n if (collapsible === \"none\") {\n return (\n <aside\n ref={ref}\n data-state=\"expanded\"\n data-side={side}\n data-variant={variant}\n data-sidebar=\"sidebar\"\n style={{\n width: \"var(--sidebar-width)\",\n minWidth: \"var(--sidebar-width)\",\n maxWidth: \"var(--sidebar-width)\",\n }}\n className={cn(\n \"relative flex h-full shrink-0 grow-0 flex-col overflow-hidden bg-(--sidebar-bg) text-reki-default\",\n variant === \"sidebar\" &&\n (side === \"left\"\n ? \"border-r border-reki-line\"\n : \"border-l border-reki-line\"),\n variant === \"floating\" &&\n \"m-2 rounded-lg border border-reki-line shadow-lg\",\n className,\n )}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n if (isMobile) {\n return (\n <>\n {/* Backdrop — click to close */}\n <div\n data-sidebar-backdrop=\"\"\n className={cn(\n contained ? \"absolute inset-0 z-40 bg-reki-recessed\" : \"fixed inset-0 z-40 bg-reki-recessed\",\n \"transition-opacity duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n \"motion-reduce:transition-none\",\n openMobile ? \"opacity-80\" : \"opacity-0 pointer-events-none\",\n )}\n onClick={() => {\n shouldRestoreFocusRef.current = true;\n setOpenMobile(false);\n }}\n aria-hidden=\"true\"\n />\n\n {/* Mobile sidebar — navigation landmark with focus management */}\n <nav\n ref={(node) => {\n mergedMobileRef(node);\n mobileNodeRef.current = node;\n }}\n tabIndex={-1}\n aria-label=\"Navigation\"\n aria-hidden={!openMobile}\n data-state={openMobile ? \"expanded\" : \"collapsed\"}\n data-side={side}\n data-variant={variant}\n data-collapsible={collapsible}\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className={cn(\n contained\n ? \"group/sidebar absolute inset-y-0 z-50 flex w-(--sidebar-width) flex-col overflow-hidden\"\n : \"group/sidebar fixed inset-y-0 z-50 flex w-(--sidebar-width) flex-col overflow-hidden\",\n \"border-r border-reki-line bg-(--sidebar-bg) text-reki-default\",\n \"transition-transform duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n \"motion-reduce:transition-none\",\n side === \"left\" && \"left-0\",\n side === \"right\" && \"right-0\",\n side === \"left\" &&\n (openMobile ? \"translate-x-0\" : \"-translate-x-full\"),\n side === \"right\" &&\n (openMobile ? \"translate-x-0\" : \"translate-x-full\"),\n className,\n )}\n {...props}\n >\n {children}\n </nav>\n </>\n );\n }\n\n // --- Desktop two-layer architecture ---\n // Rail: the <aside> whose width drives layout (stays collapsed during peek).\n // Content container: holds actual sidebar content, can overlay when peeking.\n\n // Rail width: based on open state only (not peeking)\n const collapsedWidth =\n collapsible === \"icon\" ? \"var(--sidebar-width-icon)\" : \"0px\";\n const expandedWidth = resizable ? `${width}px` : \"var(--sidebar-width)\";\n const railWidth = open ? expandedWidth : collapsedWidth;\n\n // Content container width: expanded during peek\n const contentExpanded = open || isPeeking;\n const contentWidth = contentExpanded ? expandedWidth : collapsedWidth;\n\n const borderClasses =\n variant === \"sidebar\"\n ? side === \"left\"\n ? \"border-r border-reki-line\"\n : \"border-l border-reki-line\"\n : variant === \"floating\"\n ? \"border border-reki-line\"\n : \"\";\n\n return (\n <aside\n ref={ref}\n data-state={state}\n data-side={side}\n data-variant={variant}\n data-collapsible={collapsible}\n data-sidebar=\"sidebar\"\n style={{ width: railWidth }}\n className={cn(\n \"group/sidebar relative h-full shrink-0 grow-0\",\n \"overflow-visible\", // allow content container to overlay when peeking\n \"transition-[width] duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n \"motion-reduce:transition-none\",\n isResizing && \"transition-none!\",\n variant === \"floating\" && \"m-2 rounded-lg shadow-lg\",\n className,\n )}\n {...props}\n >\n <TooltipProvider>\n {(() => {\n // Separate footer children from the rest so hovering the footer\n // doesn't trigger peeking. Footer is rendered outside the peek zone.\n const childArray = React.Children.toArray(children);\n const footerChildren = childArray.filter(\n (child) =>\n React.isValidElement(child) &&\n (child.type as { displayName?: string })?.displayName ===\n \"Sidebar.Footer\",\n );\n const nonFooterChildren = childArray.filter(\n (child) =>\n !React.isValidElement(child) ||\n (child.type as { displayName?: string })?.displayName !==\n \"Sidebar.Footer\",\n );\n\n return (\n <div\n data-sidebar=\"content-container\"\n style={{ width: contentWidth }}\n className={cn(\n \"flex h-full flex-col\",\n \"min-w-0 overflow-hidden whitespace-nowrap\",\n \"bg-(--sidebar-bg) text-reki-default\",\n borderClasses,\n \"transition-[width] duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n \"motion-reduce:transition-none\",\n isResizing && \"transition-none!\",\n !open &&\n cn(\n contained ? \"absolute\" : \"fixed\",\n \"inset-y-0 z-40\",\n side === \"left\" && \"left-0\",\n side === \"right\" && \"right-0\",\n ),\n open && \"relative\",\n contentClassName,\n )}\n >\n {/* Peek zone — header + content (not footer) */}\n <div\n data-sidebar=\"peek-zone\"\n className=\"flex flex-1 flex-col min-h-0\"\n onMouseEnter={startPeek}\n onMouseLeave={stopPeek}\n onFocus={startPeek}\n onBlur={handlePeekBlur}\n >\n {nonFooterChildren}\n </div>\n {/* Footer — outside peek zone */}\n {footerChildren}\n </div>\n );\n })()}\n </TooltipProvider>\n </aside>\n );\n },\n);\n\nSidebarRoot.displayName = \"Sidebar\";\n\n// ============================================================================\n// Sidebar Header\n// ============================================================================\n\n/**\n * Top section of the sidebar. Typically contains a logo, title, and action button.\n *\n * @example\n * ```tsx\n * <Sidebar.Header>\n * <CloudflareLogo />\n * <span>Design Engineering</span>\n * <Button shape=\"square\" icon={CaretUpDownIcon} aria-label=\"Switch\" />\n * </Sidebar.Header>\n * ```\n */\nconst SidebarHeader = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\n \"flex h-[58px] shrink-0 items-center gap-1 border-b border-reki-line\",\n \"px-3 overflow-hidden\",\n className,\n )}\n {...props}\n />\n));\n\nSidebarHeader.displayName = \"Sidebar.Header\";\n\n// ============================================================================\n// Sidebar Content\n// ============================================================================\n\n/**\n * Scrollable middle section of the sidebar. Contains nav groups and menus.\n *\n * @example\n * ```tsx\n * <Sidebar.Content>\n * <Sidebar.Group>...</Sidebar.Group>\n * </Sidebar.Content>\n * ```\n */\nconst SidebarContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaBase.Root\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\"relative min-w-0 flex-1 overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaBase.Viewport\n tabIndex={-1}\n className={cn(\n \"h-full px-[11px] py-3 group-not-data-[state=collapsed]/sidebar:px-3.5\",\n \"transition-[padding] duration-(--sidebar-animation-duration)\",\n \"overflow-x-hidden!\",\n // Scroll fade via CSS mask driven by Base UI overflow CSS variables\n \"[mask-image:linear-gradient(to_bottom,transparent_0,black_min(24px,var(--scroll-area-overflow-y-start,24px)),black_calc(100%-min(24px,var(--scroll-area-overflow-y-end,24px))),transparent_100%)]\",\n )}\n >\n <ScrollAreaBase.Content className=\"flex min-w-0! flex-col\">\n {children}\n </ScrollAreaBase.Content>\n </ScrollAreaBase.Viewport>\n <ScrollAreaBase.Scrollbar\n orientation=\"vertical\"\n className={cn(\n \"flex w-1.5 touch-none select-none p-px\",\n \"opacity-0 transition-opacity duration-150\",\n \"data-[scrolling]:opacity-100 data-[hovering]:opacity-100\",\n )}\n >\n <ScrollAreaBase.Thumb className=\"flex-1 rounded-full bg-reki-line\" />\n </ScrollAreaBase.Scrollbar>\n </ScrollAreaBase.Root>\n));\n\nSidebarContent.displayName = \"Sidebar.Content\";\n\n// ============================================================================\n// Sidebar Footer\n// ============================================================================\n\n/**\n * Bottom-pinned section of the sidebar. Rendered outside the peek zone\n * so hovering the footer doesn't trigger a peek. Tracks sidebar width\n * to stay aligned with the content container.\n *\n * @example\n * ```tsx\n * <Sidebar.Footer>\n * <Sidebar.Trigger />\n * </Sidebar.Footer>\n * ```\n */\nconst SidebarFooter = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\n \"flex h-12 shrink-0 items-center gap-4 overflow-hidden whitespace-nowrap border-t border-reki-line\",\n \"px-[11px] group-not-data-[state=collapsed]/sidebar:px-4\",\n \"bg-(--sidebar-bg)\",\n \"w-(--sidebar-width)\",\n \"transition-[width,padding] duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n \"motion-reduce:transition-none\",\n \"sticky bottom-0\",\n \"group-data-[state=collapsed]/sidebar:w-(--sidebar-width-icon) bg-clip-padding\",\n \"group-data-[state=collapsed]/sidebar:border-r group-data-[state=collapsed]/sidebar:border-reki-line\",\n className,\n )}\n {...props}\n />\n));\n\nSidebarFooter.displayName = \"Sidebar.Footer\";\n\n// ============================================================================\n// Sidebar Group\n// ============================================================================\n\n/**\n * Groups related menu items with an optional label.\n *\n * @example\n * ```tsx\n * <Sidebar.Group>\n * <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n * <Sidebar.Menu>...</Sidebar.Menu>\n * </Sidebar.Group>\n * ```\n */\nconst SidebarGroup = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"flex min-w-0 flex-col gap-y-px\", className)}\n {...props}\n >\n {children}\n </div>\n));\n\nSidebarGroup.displayName = \"Sidebar.Group\";\n\n// ============================================================================\n// Sidebar GroupLabel\n// ============================================================================\n\n/**\n * Section label for a sidebar group (e.g., \"Build\", \"Protect & Connect\").\n * When the sidebar is collapsed, renders as a thin horizontal divider.\n * When it's the first group, the divider is hidden (nothing above to separate from).\n *\n * @example\n * ```tsx\n * <Sidebar.GroupLabel>Build</Sidebar.GroupLabel>\n * ```\n */\nconst SidebarGroupLabel = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n // Grid-rows for smooth collapse animation\n \"grid overflow-hidden\",\n \"transition-[grid-template-rows,margin,border-color] duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n // Mobile: no collapse animation — sidebar is always expanded\n \"group-data-[mobile=true]/sidebar:transition-none\",\n // Collapsed: spacer with divider line between icon groups\n \"grid-rows-[0fr] my-3 border-b border-reki-line\",\n // First group: no spacer or divider needed\n \"[[data-sidebar=group]:first-child_&]:my-0 [[data-sidebar=group]:first-child_&]:border-transparent\",\n // Expanded: reveal the label text\n \"group-not-data-[state=collapsed]/sidebar:grid-rows-[1fr] group-not-data-[state=collapsed]/sidebar:my-0 group-not-data-[state=collapsed]/sidebar:border-transparent\",\n // Mobile: always show labels (sidebar content is always expanded on mobile)\n \"group-data-[mobile=true]/sidebar:grid-rows-[1fr] group-data-[mobile=true]/sidebar:my-0 group-data-[mobile=true]/sidebar:border-transparent\",\n className,\n )}\n {...props}\n >\n <div className=\"min-h-0 min-w-0\">\n <div\n className={cn(\n \"truncate px-3 mt-4 mb-2 text-sm font-medium text-reki-subtle\",\n // First group: less top margin\n \"[[data-sidebar=group]:first-child_&]:mt-2\",\n )}\n >\n {children}\n </div>\n </div>\n </div>\n));\n\nSidebarGroupLabel.displayName = \"Sidebar.GroupLabel\";\n\n// ============================================================================\n// MenuItem / MenuSubItem auto-wrap contexts\n// ============================================================================\n\n/**\n * When `true`, indicates the component is already wrapped in a `MenuItem` `<li>`.\n * `MenuButton` checks this: if `false`, it auto-wraps itself in an `<li>`.\n */\nconst MenuItemContext = createContext(false);\n\n/**\n * When `true`, indicates the component is already wrapped in a `MenuSubItem` `<li>`.\n * `MenuSubButton` checks this: if `false`, it auto-wraps itself in an `<li>`.\n */\nconst MenuSubItemContext = createContext(false);\n\n// ============================================================================\n// Sidebar Menu\n// ============================================================================\n\n/**\n * Navigation menu list. Renders as `<ul>`.\n *\n * `MenuButton` auto-wraps in `<li>` so `MenuItem` is optional for simple items.\n *\n * @example Simple usage\n * ```tsx\n * <Sidebar.Menu>\n * <Sidebar.MenuButton icon={HouseIcon} active>Account home</Sidebar.MenuButton>\n * <Sidebar.MenuButton icon={GlobeIcon}>Domains</Sidebar.MenuButton>\n * </Sidebar.Menu>\n * ```\n *\n * @example With explicit MenuItem (needed for Collapsible wrapper)\n * ```tsx\n * <Sidebar.Menu>\n * <Sidebar.MenuItem>\n * <Sidebar.Collapsible>...</Sidebar.Collapsible>\n * </Sidebar.MenuItem>\n * </Sidebar.Menu>\n * ```\n */\nconst SidebarMenu = forwardRef<\n HTMLUListElement,\n ComponentPropsWithoutRef<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\n \"m-0 flex min-w-0 list-none flex-col items-stretch gap-y-px p-0\",\n className,\n )}\n {...props}\n />\n));\n\nSidebarMenu.displayName = \"Sidebar.Menu\";\n\n// ============================================================================\n// Sidebar MenuItem\n// ============================================================================\n\n/**\n * Individual menu list item. Renders as `<li>`.\n *\n * **Optional when using `MenuButton` directly** — `MenuButton` auto-wraps\n * itself in a `<li>` when not already inside a `MenuItem`. Use `MenuItem`\n * explicitly when wrapping a `Collapsible`.\n *\n * @example Explicit usage (wrapping a Collapsible)\n * ```tsx\n * <Sidebar.MenuItem>\n * <Sidebar.Collapsible>...</Sidebar.Collapsible>\n * </Sidebar.MenuItem>\n * ```\n */\nconst SidebarMenuItem = forwardRef<\n HTMLLIElement,\n ComponentPropsWithoutRef<\"li\">\n>(({ className, children, ...props }, ref) => (\n <MenuItemContext.Provider value={true}>\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\n \"relative group-data-[state=collapsed]/sidebar:overflow-hidden\",\n className,\n )}\n {...props}\n >\n {children}\n </li>\n </MenuItemContext.Provider>\n));\n\nSidebarMenuItem.displayName = \"Sidebar.MenuItem\";\n\n// ============================================================================\n// Sidebar MenuButton\n// ============================================================================\n\nexport type SidebarMenuButtonSize = \"base\" | \"sm\";\n\nexport interface SidebarMenuButtonProps\n extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"className\" | \"children\"\n > {\n icon?: React.ComponentType<{ className?: string }> | React.ReactNode;\n active?: boolean;\n /**\n * Button size.\n * - `\"base\"` — Standard nav item\n * - `\"sm\"` — Compact nav item\n * @default \"base\"\n */\n size?: SidebarMenuButtonSize;\n href?: string;\n /** Link target — only meaningful when `href` is provided. */\n target?: React.HTMLAttributeAnchorTarget;\n tooltip?: string;\n className?: string;\n children?: ReactNode;\n}\n\n/**\n * Primary interactive element inside a menu item. Renders as a `<button>` or link.\n * Supports icons, active state, and auto-tooltip when the sidebar is collapsed.\n *\n * **Auto-wraps in `<li>`** when not already inside a `Sidebar.MenuItem`.\n * Use `MenuItem` explicitly only when wrapping a `Collapsible`.\n *\n * @example Simple usage (auto-wrapped in `<li>`)\n * ```tsx\n * <Sidebar.Menu>\n * <Sidebar.MenuButton icon={GlobeIcon} active>Domains</Sidebar.MenuButton>\n * <Sidebar.MenuButton icon={ClockIcon} href=\"/recents\">Recents</Sidebar.MenuButton>\n * </Sidebar.Menu>\n * ```\n *\n * @example With Collapsible (explicit MenuItem needed)\n * ```tsx\n * <Sidebar.MenuItem>\n * <Sidebar.Collapsible>\n * <Sidebar.CollapsibleTrigger render={<Sidebar.MenuButton icon={CodeIcon}>Compute<Sidebar.MenuChevron /></Sidebar.MenuButton>} />\n * <Sidebar.CollapsibleContent>...</Sidebar.CollapsibleContent>\n * </Sidebar.Collapsible>\n * </Sidebar.MenuItem>\n * ```\n */\nconst SidebarMenuButton = forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n (\n {\n className,\n icon: IconProp,\n active = false,\n size = \"base\",\n href,\n target,\n tooltip,\n children,\n ...props\n },\n ref,\n ) => {\n const { state, peekable } = useSidebar();\n const LinkComponent = useLinkComponent();\n const isInsideMenuItem = useContext(MenuItemContext);\n\n // Render icon — supports both component types and React elements\n const iconNode = (() => {\n if (!IconProp) return null;\n if (React.isValidElement(IconProp)) return IconProp;\n const Comp = IconProp as React.ComponentType<{ className?: string }>;\n return (\n <Comp\n className={cn(\n \"shrink-0 opacity-40\",\n size === \"base\" ? \"size-4\" : \"size-3.5\",\n )}\n />\n );\n })();\n\n const content = (\n <div\n className={cn(\n \"flex flex-1 items-center min-w-0 gap-3\",\n \"translate-x-[-3px] group-not-data-[state=collapsed]/sidebar:translate-x-0\",\n \"transition-transform duration-(--sidebar-animation-duration)\",\n )}\n >\n {iconNode}\n <span\n className={cn(\n \"flex flex-1 items-center gap-2 min-w-0 text-left overflow-hidden\",\n )}\n >\n {React.Children.map(children, (child) =>\n typeof child === \"string\" || typeof child === \"number\" ? (\n <span className=\"truncate\">{child}</span>\n ) : (\n child\n ),\n )}\n </span>\n </div>\n );\n\n const buttonClasses = cn(\n // Layout\n \"group/menu-button relative flex w-full min-w-0 items-center gap-2.5 rounded-lg outline-none cursor-pointer\",\n \"before:absolute before:inset-x-0 before:-inset-y-px\",\n // Sizing\n size === \"base\" && \"min-h-8.5 px-3 py-0 text-sm font-medium\",\n size === \"sm\" && \"min-h-7 px-2 py-0 text-sm\",\n \"text-reki-default\",\n \"transition-[color,box-shadow,outline] duration-(--sidebar-animation-duration)\",\n !active && \"hover:bg-(--sidebar-active-bg)\",\n // Active state\n active && \"bg-(--sidebar-active-bg)\",\n // When a child sub-button is active, don't show active styling on the parent trigger\n \"has-[[data-active]]:bg-transparent has-[[data-active]]:hover:bg-(--sidebar-active-bg)\",\n // Focus\n \"focus:outline-none focus-visible:text-reki-strong focus-visible:bg-(--sidebar-active-bg)\",\n className,\n );\n\n let button: React.ReactNode;\n\n if (href) {\n button = (\n <LinkComponent\n ref={ref as React.Ref<HTMLAnchorElement>}\n className={cn(buttonClasses, \"no-underline!\")}\n href={href}\n to={href}\n target={target}\n data-active={active || undefined}\n data-sidebar=\"menu-button\"\n data-reki-component=\"Sidebar\"\n data-reki-part=\"menu-button-link\"\n data-size={size}\n onClick={\n props.onClick as unknown as React.MouseEventHandler<HTMLAnchorElement>\n }\n >\n {content}\n </LinkComponent>\n );\n } else {\n button = (\n <button\n ref={ref}\n type=\"button\"\n className={buttonClasses}\n data-active={active || undefined}\n data-sidebar=\"menu-button\"\n data-reki-component=\"Sidebar\"\n data-reki-part=\"menu-button\"\n data-size={size}\n {...props}\n >\n {content}\n </button>\n );\n }\n\n // Always wrap in Tooltip when tooltip text is provided so the DOM\n // structure stays stable across expand/collapse — preventing React from\n // remounting the button (which would kill CSS transitions).\n // The tooltip popup only shows when collapsed and peeking is disabled —\n // when peekable, hovering reveals the full sidebar so tooltips are redundant.\n const showTooltip = state === \"collapsed\" && !peekable;\n if (tooltip) {\n button = (\n <Tooltip\n content={showTooltip ? tooltip : null}\n side=\"right\"\n render={button}\n />\n );\n }\n\n // Auto-wrap in <li> when not already inside a MenuItem\n if (!isInsideMenuItem) {\n return (\n <li\n data-sidebar=\"menu-item\"\n className=\"relative group-data-[state=collapsed]/sidebar:overflow-hidden\"\n >\n {button}\n </li>\n );\n }\n\n return button;\n },\n);\n\nSidebarMenuButton.displayName = \"Sidebar.MenuButton\";\n\n// ============================================================================\n// Sidebar MenuBadge\n// ============================================================================\n\n/**\n * Badge pill displayed inside a menu button (e.g., \"Beta\", \"New\").\n * Uses dashed border styling matching the Cloudflare design system.\n *\n * @example\n * ```tsx\n * <Sidebar.MenuSubButton>\n * Containers\n * <Sidebar.MenuBadge>Beta</Sidebar.MenuBadge>\n * </Sidebar.MenuSubButton>\n * ```\n */\nconst SidebarMenuBadge = forwardRef<\n HTMLSpanElement,\n ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"inline-flex shrink-0 items-center rounded-full border border-dashed border-reki-line\",\n \"select-none px-1.5 py-0.5 text-[11px]/none font-medium text-reki-strong\",\n // Hidden when collapsed\n \"group-data-[state=collapsed]/sidebar:hidden\",\n className,\n )}\n {...props}\n />\n));\n\nSidebarMenuBadge.displayName = \"Sidebar.MenuBadge\";\n\n// ============================================================================\n// Sidebar MenuSub\n// ============================================================================\n\n/**\n * Indented sub-menu container for child navigation items. Renders as `<ul>` with\n * a left border accent for visual hierarchy.\n *\n * `MenuSubButton` auto-wraps in `<li>` so `MenuSubItem` is optional.\n *\n * @example\n * ```tsx\n * <Sidebar.MenuSub>\n * <Sidebar.MenuSubButton active>Workers & Pages</Sidebar.MenuSubButton>\n * <Sidebar.MenuSubButton>Durable Objects</Sidebar.MenuSubButton>\n * </Sidebar.MenuSub>\n * ```\n */\nconst SidebarMenuSub = forwardRef<\n HTMLUListElement,\n ComponentPropsWithoutRef<\"ul\">\n>(({ className, children, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"relative m-0 flex min-w-0 list-none flex-col gap-y-px p-0 pl-7 pr-0 overflow-hidden\",\n className,\n )}\n {...props}\n >\n <div className=\"absolute left-[19px] inset-y-px w-px bg-reki-line z-10\" />\n {children}\n </ul>\n));\n\nSidebarMenuSub.displayName = \"Sidebar.MenuSub\";\n\n// ============================================================================\n// Sidebar MenuSubItem\n// ============================================================================\n\n/**\n * Individual item inside a sub-menu. Renders as `<li>`.\n *\n * **Optional when using `MenuSubButton` directly** — `MenuSubButton` auto-wraps\n * itself in a `<li>` when not already inside a `MenuSubItem`.\n */\nconst SidebarMenuSubItem = forwardRef<\n HTMLLIElement,\n ComponentPropsWithoutRef<\"li\">\n>(({ className, children, ...props }, ref) => (\n <MenuSubItemContext.Provider value={true}>\n <li\n ref={ref}\n data-sidebar=\"menu-sub-item\"\n className={cn(\"relative\", className)}\n {...props}\n >\n {children}\n </li>\n </MenuSubItemContext.Provider>\n));\n\nSidebarMenuSubItem.displayName = \"Sidebar.MenuSubItem\";\n\n// ============================================================================\n// Sidebar MenuSubButton\n// ============================================================================\n\nexport interface SidebarMenuSubButtonProps\n extends ComponentPropsWithoutRef<\"button\"> {\n /** Marks this sub-item as currently active/selected. @default false */\n active?: boolean;\n /** Navigation URL. When set, renders as a link via LinkProvider. */\n href?: string;\n}\n\n/**\n * Button inside a sub-menu item. Does not render an icon (sub-items are\n * indented instead). Supports active state and link rendering.\n *\n * **Auto-wraps in `<li>`** when not already inside a `Sidebar.MenuSubItem`.\n *\n * @example Simple usage (auto-wrapped in `<li>`)\n * ```tsx\n * <Sidebar.MenuSub>\n * <Sidebar.MenuSubButton active>Workers & Pages</Sidebar.MenuSubButton>\n * <Sidebar.MenuSubButton href=\"/observability\">Observability</Sidebar.MenuSubButton>\n * </Sidebar.MenuSub>\n * ```\n */\nconst SidebarMenuSubButton = forwardRef<\n HTMLButtonElement,\n SidebarMenuSubButtonProps\n>(({ className, active = false, href, children, ...props }, ref) => {\n const LinkComponent = useLinkComponent();\n const isInsideMenuSubItem = useContext(MenuSubItemContext);\n\n const buttonClasses = cn(\n \"group/menu-button relative flex w-full min-w-0 items-center gap-2 rounded-lg min-h-8.5 px-3 py-0 text-sm font-medium outline-none cursor-pointer\",\n \"before:absolute before:inset-x-0 before:-inset-y-px\",\n \"text-reki-default transition-[color] duration-150\",\n !active && \"hover:bg-(--sidebar-active-bg)\",\n active && \"bg-(--sidebar-active-bg)\",\n \"focus:outline-none focus-visible:text-reki-strong focus-visible:bg-(--sidebar-active-bg)\",\n className,\n );\n\n const content = (\n <span className=\"flex flex-1 items-center gap-2 min-w-0 text-left overflow-hidden\">\n {React.Children.map(children, (child) =>\n typeof child === \"string\" || typeof child === \"number\" ? (\n <span className=\"truncate\">{child}</span>\n ) : (\n child\n ),\n )}\n </span>\n );\n\n let button: React.ReactNode;\n\n if (href) {\n button = (\n <LinkComponent\n ref={ref as React.Ref<HTMLAnchorElement>}\n className={cn(buttonClasses, \"no-underline!\")}\n href={href}\n to={href}\n data-active={active || undefined}\n data-sidebar=\"menu-sub-button\"\n data-reki-component=\"Sidebar\"\n data-reki-part=\"menu-sub-button-link\"\n onClick={\n props.onClick as unknown as React.MouseEventHandler<HTMLAnchorElement>\n }\n >\n {content}\n </LinkComponent>\n );\n } else {\n button = (\n <button\n ref={ref}\n type=\"button\"\n className={buttonClasses}\n data-active={active || undefined}\n data-sidebar=\"menu-sub-button\"\n data-reki-component=\"Sidebar\"\n data-reki-part=\"menu-sub-button\"\n {...props}\n >\n {content}\n </button>\n );\n }\n\n // Auto-wrap in <li> when not already inside a MenuSubItem\n if (!isInsideMenuSubItem) {\n return (\n <li data-sidebar=\"menu-sub-item\" className=\"relative\">\n {button}\n </li>\n );\n }\n\n return button;\n});\n\nSidebarMenuSubButton.displayName = \"Sidebar.MenuSubButton\";\n\n// ============================================================================\n// Sidebar Separator\n// ============================================================================\n\n/**\n * Horizontal divider line between sidebar sections.\n */\nconst SidebarSeparator = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"my-3 px-2\", className)}\n {...props}\n >\n <div className=\"border-b border-reki-line\" />\n </div>\n));\n\nSidebarSeparator.displayName = \"Sidebar.Separator\";\n\n// ============================================================================\n// Sidebar Trigger\n// ============================================================================\n\n// ============================================================================\n// Sidebar PanelIcon\n// ============================================================================\n\n/**\n * Animated sidebar panel icon. The vertical divider line slides based\n * on the sidebar's open/closed state.\n */\nfunction SidebarPanelIcon({ className }: { className?: string }) {\n const { open } = useSidebar();\n\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n focusable=\"false\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n className={cn(\"shrink-0\", className)}\n >\n <path d=\"M21.25 6.72v10.56a2.97 2.97 0 0 1-2.97 2.97H5.72a2.97 2.97 0 0 1-2.97-2.97V6.72a2.97 2.97 0 0 1 2.97-2.97h12.56a2.97 2.97 0 0 1 2.97 2.97\" />\n <path\n d=\"M6.25 7.25v9.5\"\n className={cn(\n \"transition-transform duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n open ? \"translate-x-px\" : \"translate-x-[10.5px]\",\n )}\n />\n </svg>\n );\n}\n\nSidebarPanelIcon.displayName = \"Sidebar.PanelIcon\";\n\n/**\n * Button that toggles the sidebar open/collapsed. Uses `toggleSidebar()` from context.\n * Defaults to an animated `SidebarPanelIcon`.\n *\n * @example\n * ```tsx\n * <Sidebar.Trigger />\n * ```\n */\nconst SidebarTrigger = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<\"button\">\n>(({ className, children, onClick, ...props }, ref) => {\n const { open, toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n data-sidebar=\"trigger\"\n data-reki-component=\"Sidebar\"\n data-reki-part=\"trigger\"\n aria-expanded={open}\n aria-label={open ? \"Collapse sidebar\" : \"Expand sidebar\"}\n className={cn(\n \"flex shrink-0 size-8.5 justify-center items-center rounded-lg cursor-pointer\",\n \"text-reki-subtle hover:text-reki-default hover:bg-(--sidebar-active-bg)\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-reki-brand\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n toggleSidebar();\n }}\n {...props}\n >\n {children ?? <SidebarPanelIcon />}\n </button>\n );\n});\n\nSidebarTrigger.displayName = \"Sidebar.Trigger\";\n\n// ============================================================================\n// Sidebar Rail\n// ============================================================================\n\n/**\n * Invisible interaction strip at the sidebar edge for click-to-toggle.\n * Renders a thin hover-sensitive area between the sidebar and main content.\n */\nconst SidebarRail = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n data-sidebar=\"rail\"\n data-reki-component=\"Sidebar\"\n data-reki-part=\"rail\"\n aria-label=\"Toggle sidebar\"\n tabIndex={-1}\n className={cn(\n \"absolute inset-y-0 z-1 hidden w-4 -translate-x-1/2 cursor-pointer transition-all\",\n \"after:absolute after:inset-y-0 after:left-1/2 after:w-0.5\",\n \"hover:after:bg-reki-brand/20\",\n \"group-data-[side=left]/sidebar-wrapper:right-0\",\n \"group-data-[side=right]/sidebar-wrapper:left-0\",\n \"sm:flex\",\n className,\n )}\n onClick={toggleSidebar}\n {...props}\n />\n );\n});\n\nSidebarRail.displayName = \"Sidebar.Rail\";\n\n// ============================================================================\n// Sidebar ResizeHandle\n// ============================================================================\n\n/**\n * Drag handle for resizing the sidebar. Renders when `resizable` is true in\n * both expanded and collapsed states.\n *\n * - **Expanded → drag inward past `minWidth`**: auto-collapses to icon-only.\n * - **Collapsed → drag outward past `minWidth`**: auto-expands and begins\n * tracking width from `minWidth`.\n */\nconst SidebarResizeHandle = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<\"button\">\n>(({ className, ...props }, ref) => {\n const {\n side,\n resizable,\n setIsResizing,\n setWidth,\n setOpen,\n open,\n minWidth,\n width: currentWidth,\n maxWidth,\n } = useSidebar();\n const startX = useRef(0);\n const startWidth = useRef(0);\n const wasCollapsed = useRef(false);\n\n if (!resizable) return null;\n\n const KEYBOARD_STEP = 10;\n\n const handlePointerDown = (e: React.PointerEvent<HTMLButtonElement>) => {\n e.preventDefault();\n setIsResizing(true);\n startX.current = e.clientX;\n wasCollapsed.current = !open;\n\n const wrapper = (e.currentTarget as HTMLElement).closest(\n \"[data-sidebar-wrapper]\",\n );\n const sidebar = wrapper?.querySelector(\"[data-sidebar='sidebar']\");\n startWidth.current = sidebar?.getBoundingClientRect().width ?? 0;\n\n const cleanup = () => {\n setIsResizing(false);\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp);\n };\n\n const handlePointerMove = (moveEvent: PointerEvent) => {\n const delta =\n side === \"left\"\n ? moveEvent.clientX - startX.current\n : startX.current - moveEvent.clientX;\n const rawWidth = startWidth.current + delta;\n\n if (wasCollapsed.current) {\n // Dragging outward from collapsed — expand once past minWidth\n if (rawWidth >= minWidth) {\n wasCollapsed.current = false;\n setOpen(true);\n setWidth(rawWidth);\n }\n return;\n }\n\n // Dragging inward while expanded — collapse when below minWidth\n if (rawWidth < minWidth) {\n setOpen(false);\n wasCollapsed.current = true;\n return;\n }\n\n setWidth(rawWidth);\n };\n\n const handlePointerUp = () => {\n cleanup();\n };\n\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n const grow = side === \"left\" ? \"ArrowRight\" : \"ArrowLeft\";\n const shrink = side === \"left\" ? \"ArrowLeft\" : \"ArrowRight\";\n\n if (e.key === grow) {\n e.preventDefault();\n if (!open) {\n setOpen(true);\n setWidth(minWidth);\n } else {\n setWidth(Math.min(currentWidth + KEYBOARD_STEP, maxWidth));\n }\n } else if (e.key === shrink) {\n e.preventDefault();\n const next = currentWidth - KEYBOARD_STEP;\n if (next < minWidth) {\n setOpen(false);\n } else {\n setWidth(next);\n }\n } else if (e.key === \"Home\") {\n e.preventDefault();\n setOpen(false);\n } else if (e.key === \"End\") {\n e.preventDefault();\n setOpen(true);\n setWidth(maxWidth);\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label=\"Resize sidebar\"\n tabIndex={0}\n data-sidebar=\"resize-handle\"\n className={cn(\n // Hit area inside the sidebar edge; thin visual line pinned to the edge via ::after\n \"absolute inset-y-0 z-2 hidden w-3 cursor-col-resize sm:block\",\n \"after:absolute after:inset-y-0 after:w-0.5\",\n \"after:bg-transparent after:transition-colors\",\n \"hover:after:bg-reki-hairline active:after:bg-reki-hairline focus-visible:after:bg-reki-hairline\",\n \"focus:outline-none\",\n side === \"left\" && \"right-0 after:right-0\",\n side === \"right\" && \"left-0 after:left-0\",\n className,\n )}\n onPointerDown={handlePointerDown}\n onKeyDown={handleKeyDown}\n {...props}\n />\n );\n});\n\nSidebarResizeHandle.displayName = \"Sidebar.ResizeHandle\";\n\n// ============================================================================\n// Collapsible context + components (custom implementation, no Base UI dep)\n// ============================================================================\n\ninterface SidebarCollapseContextValue {\n contentId: string;\n isOpen: boolean;\n isCollapsible: boolean;\n autoScrollOnOpen: boolean;\n toggle: () => void;\n}\n\nconst SidebarCollapseContext = createContext<SidebarCollapseContextValue>({\n contentId: \"\",\n isOpen: true,\n isCollapsible: false,\n autoScrollOnOpen: false,\n toggle: () => {},\n});\n\nexport interface SidebarCollapsibleProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /** Initial open state (uncontrolled). @default false */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Callback when open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Scroll the expanded content into view after opening. @default false */\n autoScrollOnOpen?: boolean;\n}\n\n/**\n * Collapsible wrapper for sidebar sub-menu expand/collapse.\n * Manages open/close state and provides context to Trigger and Content children.\n *\n * Keyboard behaviour: when a child receives keyboard focus (`focus-visible`)\n * while collapsed, the section auto-expands. It collapses again on blur\n * unless it was explicitly opened via click or a child has `data-active`.\n *\n * @example\n * ```tsx\n * <Sidebar.MenuItem>\n * <Sidebar.Collapsible defaultOpen>\n * <Sidebar.CollapsibleTrigger\n * render={<Sidebar.MenuButton icon={CodeIcon}>Compute<Sidebar.MenuChevron /></Sidebar.MenuButton>}\n * />\n * <Sidebar.CollapsibleContent>\n * <Sidebar.MenuSub>...</Sidebar.MenuSub>\n * </Sidebar.CollapsibleContent>\n * </Sidebar.Collapsible>\n * </Sidebar.MenuItem>\n * ```\n */\nconst SidebarCollapsible = forwardRef<HTMLDivElement, SidebarCollapsibleProps>(\n (\n {\n defaultOpen = false,\n open: openProp,\n onOpenChange,\n autoScrollOnOpen = false,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isOpen = openProp ?? internalOpen;\n const contentId = useId();\n const keyboardExpandedRef = useRef(false);\n\n const toggle = useCallback(() => {\n const next = !isOpen;\n setInternalOpen(next);\n onOpenChange?.(next);\n // If user explicitly clicks, clear the keyboard-expanded flag\n keyboardExpandedRef.current = false;\n }, [isOpen, onOpenChange]);\n\n const contextValue = useMemo<SidebarCollapseContextValue>(\n () => ({\n contentId,\n isOpen,\n isCollapsible: true,\n autoScrollOnOpen,\n toggle,\n }),\n [contentId, isOpen, autoScrollOnOpen, toggle],\n );\n\n const handleFocusIn = useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => {\n // Auto-expand on keyboard focus (focus-visible) when collapsed\n if (!isOpen && (e.target as HTMLElement).matches(\":focus-visible\")) {\n keyboardExpandedRef.current = true;\n setInternalOpen(true);\n onOpenChange?.(true);\n }\n },\n [isOpen, onOpenChange],\n );\n\n const handleFocusOut = useCallback(\n (e: React.FocusEvent<HTMLDivElement>) => {\n // Auto-collapse on blur if it was keyboard-expanded (not click-expanded)\n // and no child has data-active\n if (\n keyboardExpandedRef.current &&\n !e.currentTarget.contains(e.relatedTarget as Node) &&\n !e.currentTarget.querySelector(\"[data-active]\")\n ) {\n keyboardExpandedRef.current = false;\n setInternalOpen(false);\n onOpenChange?.(false);\n }\n },\n [onOpenChange],\n );\n\n return (\n <SidebarCollapseContext.Provider value={contextValue}>\n <div\n ref={ref}\n data-open={isOpen || undefined}\n className={cn(\"min-w-0\", className)}\n onFocus={handleFocusIn}\n onBlur={handleFocusOut}\n {...props}\n >\n {children}\n </div>\n </SidebarCollapseContext.Provider>\n );\n },\n);\n\nSidebarCollapsible.displayName = \"Sidebar.Collapsible\";\n\nexport interface SidebarCollapsibleTriggerProps {\n /** Element to render as the trigger. Gets aria-expanded, aria-controls, and onClick merged. */\n render: React.ReactElement;\n}\n\n/**\n * Trigger for a sidebar collapsible section. Uses `render` prop to compose\n * with `Sidebar.MenuButton` or `Sidebar.MenuSubButton`.\n *\n * @example\n * ```tsx\n * <Sidebar.CollapsibleTrigger\n * render={\n * <Sidebar.MenuButton icon={CodeIcon}>\n * Compute\n * <Sidebar.MenuChevron />\n * </Sidebar.MenuButton>\n * }\n * />\n * ```\n */\nfunction SidebarCollapsibleTrigger({ render }: SidebarCollapsibleTriggerProps) {\n const { contentId, isOpen, toggle } = useContext(SidebarCollapseContext);\n\n return React.cloneElement(render, {\n \"aria-expanded\": isOpen,\n \"aria-controls\": contentId,\n \"data-open\": isOpen || undefined,\n onClick: (e: React.MouseEvent) => {\n // Call any existing onClick on the render element\n const existingOnClick = (\n render.props as { onClick?: (e: React.MouseEvent) => void }\n ).onClick;\n existingOnClick?.(e);\n toggle();\n },\n } as Record<string, unknown>);\n}\n\nSidebarCollapsibleTrigger.displayName = \"Sidebar.CollapsibleTrigger\";\n\n/**\n * Animated collapsible content panel. Uses CSS grid-rows for smooth\n * height transitions without measuring DOM height.\n *\n * Always mounted (no unmount on close) so exit animations play.\n */\nconst SidebarCollapsibleContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>(({ className, children, ...props }, ref) => {\n const { contentId, isOpen: isCollapsibleOpen } = useContext(\n SidebarCollapseContext,\n );\n const { state, animationDuration } = useSidebar();\n const { autoScrollOnOpen } = useContext(SidebarCollapseContext);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const isOpen = isCollapsibleOpen && state !== \"collapsed\";\n\n useEffect(() => {\n if (!isOpen || !autoScrollOnOpen) return;\n\n const timeout = window.setTimeout(() => {\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\",\n ).matches;\n contentRef.current?.scrollIntoView({\n block: \"nearest\",\n behavior: prefersReducedMotion ? \"auto\" : \"smooth\",\n });\n }, animationDuration);\n\n return () => window.clearTimeout(timeout);\n }, [isOpen, autoScrollOnOpen, animationDuration]);\n\n // Imperatively set inert — React 18 doesn't reliably forward\n // the inert attribute as a JSX prop on initial mount.\n const inertRef = useCallback(\n (node: HTMLDivElement | null) => {\n if (node) {\n if (!isOpen) {\n node.setAttribute(\"inert\", \"\");\n } else {\n node.removeAttribute(\"inert\");\n }\n }\n },\n [isOpen],\n );\n\n const mergedRef = useCallback(\n (node: HTMLDivElement | null) => {\n contentRef.current = node;\n inertRef(node);\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [ref, inertRef],\n );\n\n return (\n <div\n ref={mergedRef}\n id={contentId}\n role=\"region\"\n aria-hidden={!isOpen}\n className={cn(\n \"grid\",\n \"transition-[grid-template-rows] duration-(--sidebar-animation-duration) ease-(--sidebar-easing)\",\n \"motion-reduce:transition-none\",\n isOpen ? \"grid-rows-[1fr]\" : \"grid-rows-[0fr]\",\n className,\n )}\n {...props}\n >\n <div className=\"overflow-hidden\">{children}</div>\n </div>\n );\n});\n\nSidebarCollapsibleContent.displayName = \"Sidebar.CollapsibleContent\";\n\n// ============================================================================\n// Sidebar MenuChevron\n// ============================================================================\n\n/**\n * Auto-rotating chevron for collapsible menu items. Reads open state from\n * the nearest `SidebarCollapseContext` and rotates accordingly.\n *\n * @example\n * ```tsx\n * <Sidebar.CollapsibleTrigger\n * render={<Sidebar.MenuButton icon={CodeIcon}>Compute<Sidebar.MenuChevron /></Sidebar.MenuButton>}\n * />\n * ```\n */\nfunction SidebarMenuChevron({ className }: { className?: string }) {\n const { isOpen, isCollapsible } = useContext(SidebarCollapseContext);\n\n return (\n <CaretRightIcon\n size={12}\n weight=\"bold\"\n className={cn(\n \"ml-auto shrink-0 opacity-40 group-hover/menu-button:opacity-100 transition-[transform,rotate,opacity] duration-200\",\n isCollapsible && isOpen && \"rotate-90\",\n // Hidden when sidebar is collapsed\n \"group-data-[state=collapsed]/sidebar:hidden\",\n className,\n )}\n />\n );\n}\n\nSidebarMenuChevron.displayName = \"Sidebar.MenuChevron\";\n\n// ============================================================================\n// SlidingViews — animated horizontal transitions between navigation surfaces\n// ============================================================================\n\nconst SlidingViewActiveContext = createContext<string>(\"\");\n\nexport interface SidebarSlidingViewsProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /** Key of the currently active view. Must match a child `SlidingView` value. */\n activeKey: string;\n /**\n * Slide direction for the transition.\n * - `\"left\"`: new view slides in from the right\n * - `\"right\"`: new view slides in from the left\n * @default \"left\"\n */\n direction?: \"left\" | \"right\";\n}\n\n/**\n * Container for animated horizontal transitions between navigation surfaces\n * (e.g., account ↔ zone). Inactive views are marked `aria-hidden` and `inert`.\n *\n * Animation respects `prefers-reduced-motion`.\n *\n * @example\n * ```tsx\n * <Sidebar.SlidingViews activeKey={surface} direction=\"left\">\n * <Sidebar.SlidingView value=\"account\">\n * <Sidebar.Content>...account nav...</Sidebar.Content>\n * </Sidebar.SlidingView>\n * <Sidebar.SlidingView value=\"zone\">\n * <Sidebar.Content>...zone nav...</Sidebar.Content>\n * </Sidebar.SlidingView>\n * </Sidebar.SlidingViews>\n * ```\n */\nconst SidebarSlidingViews = forwardRef<\n HTMLDivElement,\n SidebarSlidingViewsProps\n>(\n (\n {\n activeKey,\n direction: _direction = \"left\",\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const childArray = React.Children.toArray(children);\n const activeIndex = childArray.findIndex(\n (child) =>\n React.isValidElement(child) &&\n (child.props as { value?: string }).value === activeKey,\n );\n const prefersReducedMotion =\n typeof window !== \"undefined\" &&\n window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n const translateX = activeIndex > 0 ? `-${activeIndex * 100}%` : \"0%\";\n\n return (\n <SlidingViewActiveContext.Provider value={activeKey}>\n <div\n ref={ref}\n data-sidebar=\"sliding-views\"\n className={cn(\n \"flex flex-1 min-h-0 max-w-(--sidebar-width) overflow-hidden\",\n className,\n )}\n {...props}\n >\n <div\n className=\"flex min-h-0 w-full shrink-0\"\n style={{\n transform: `translateX(${translateX})`,\n transition: prefersReducedMotion\n ? \"none\"\n : `transform var(--sidebar-animation-duration) var(--sidebar-easing)`,\n }}\n >\n {children}\n </div>\n </div>\n </SlidingViewActiveContext.Provider>\n );\n },\n);\n\nSidebarSlidingViews.displayName = \"Sidebar.SlidingViews\";\n\nexport interface SidebarSlidingViewProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /** Unique key matching this view. Must correspond to `activeKey` on `SlidingViews`. */\n value: string;\n}\n\n/**\n * Individual panel inside `SlidingViews`. Inactive views are automatically\n * marked `aria-hidden` and `inert` so they're unreachable by keyboard/screen readers.\n */\nconst SidebarSlidingView = forwardRef<HTMLDivElement, SidebarSlidingViewProps>(\n ({ value, className, children, ...props }, ref) => {\n const activeKey = useContext(SlidingViewActiveContext);\n const isActive = activeKey === value;\n\n // Imperatively set inert — React 18.2 doesn't reliably forward the inert\n // attribute to the DOM when set as a JSX prop on initial mount.\n const inertRef = useCallback(\n (node: HTMLDivElement | null) => {\n if (node) {\n if (!isActive) {\n node.setAttribute(\"inert\", \"\");\n } else {\n node.removeAttribute(\"inert\");\n }\n }\n },\n [isActive],\n );\n\n // Merge forwarded ref with inert ref\n const mergedRef = useCallback(\n (node: HTMLDivElement | null) => {\n inertRef(node);\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [ref, inertRef],\n );\n\n return (\n <div\n ref={mergedRef}\n data-sidebar=\"sliding-view\"\n data-value={value}\n aria-hidden={!isActive}\n className={cn(\n \"flex w-full shrink-0 flex-col min-h-0\",\n !isActive && \"pointer-events-none\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nSidebarSlidingView.displayName = \"Sidebar.SlidingView\";\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\n/**\n * Sidebar — responsive navigation panel with expand/collapse support.\n *\n * Compound component: `Sidebar` (root `<aside>`), `.Provider`, `.Header`,\n * `.Content`, `.Footer`, `.Group`, `.GroupLabel`,\n * `.Menu`, `.MenuItem`, `.MenuButton`, `.MenuBadge`,\n * `.MenuSub`, `.MenuSubItem`, `.MenuSubButton`, `.Separator`,\n * `.Trigger`, `.Rail`, `.MenuChevron`,\n * `.Collapsible`, `.CollapsibleTrigger`, `.CollapsibleContent`.\n *\n * @example\n * ```tsx\n * <Sidebar.Provider defaultOpen>\n * <Sidebar>\n * <Sidebar.Content>\n * <Sidebar.Group>\n * <Sidebar.GroupLabel>Overview</Sidebar.GroupLabel>\n * <Sidebar.Menu>\n * <Sidebar.MenuButton icon={HouseIcon} active>Home</Sidebar.MenuButton>\n * <Sidebar.MenuButton icon={GlobeIcon}>Domains</Sidebar.MenuButton>\n * </Sidebar.Menu>\n * </Sidebar.Group>\n * </Sidebar.Content>\n * <Sidebar.Footer>\n * <Sidebar.Trigger />\n * </Sidebar.Footer>\n * </Sidebar>\n * </Sidebar.Provider>\n * ```\n */\nexport const Sidebar = Object.assign(SidebarRoot, {\n Provider: SidebarProvider,\n Header: SidebarHeader,\n Content: SidebarContent,\n Footer: SidebarFooter,\n Group: SidebarGroup,\n GroupLabel: SidebarGroupLabel,\n Menu: SidebarMenu,\n MenuItem: SidebarMenuItem,\n MenuButton: SidebarMenuButton,\n MenuBadge: SidebarMenuBadge,\n MenuSub: SidebarMenuSub,\n MenuSubItem: SidebarMenuSubItem,\n MenuSubButton: SidebarMenuSubButton,\n Separator: SidebarSeparator,\n Trigger: SidebarTrigger,\n Rail: SidebarRail,\n ResizeHandle: SidebarResizeHandle,\n MenuChevron: SidebarMenuChevron,\n Collapsible: SidebarCollapsible,\n CollapsibleTrigger: SidebarCollapsibleTrigger,\n CollapsibleContent: SidebarCollapsibleContent,\n SlidingViews: SidebarSlidingViews,\n SlidingView: SidebarSlidingView,\n});\n\nexport {\n SidebarProvider,\n SidebarRoot,\n SidebarHeader,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuButton,\n SidebarMenuBadge,\n SidebarMenuSub,\n SidebarMenuSubItem,\n SidebarMenuSubButton,\n SidebarSeparator,\n SidebarTrigger,\n SidebarRail,\n SidebarResizeHandle,\n SidebarMenuChevron,\n SidebarCollapsible,\n SidebarCollapsibleTrigger,\n SidebarCollapsibleContent,\n SidebarSlidingViews,\n SidebarSlidingView,\n};\n"],"names":["REKI_SIDEBAR_VARIANTS","REKI_SIDEBAR_DEFAULT_VARIANTS","REKI_SIDEBAR_STYLING","SIDEBAR_WIDTH","SIDEBAR_WIDTH_ICON","SIDEBAR_EASING","SIDEBAR_ANIMATION_DURATION_MS","MOBILE_BREAKPOINT","FOCUSABLE_SELECTOR","useIsMobile","breakpoint","isMobile","setIsMobile","useState","useEffect","mql","onChange","SidebarContext","createContext","useSidebar","context","useContext","DEFAULT_WIDTH_PX","MIN_WIDTH_PX","MAX_WIDTH_PX","SidebarProvider","defaultOpen","openProp","setOpenProp","variant","side","collapsible","resizable","defaultWidth","minWidth","maxWidth","onWidthChange","contained","peekable","animationDuration","mobileBreakpoint","children","className","style","_openMobile","_setOpenMobile","width","setWidthState","isResizing","setIsResizing","isPeeking","setIsPeeking","openMobile","setOpenMobile","useCallback","next","setWidth","newWidth","clamped","_open","_setOpen","open","setOpen","value","toggleSidebar","prev","startPeek","stopPeek","state","sidebarWidthValue","contextValue","useMemo","jsx","cn","SidebarRoot","forwardRef","contentClassName","props","ref","mobileAsideRef","node","mergedMobileRef","triggerRef","useRef","mobileNodeRef","shouldRestoreFocusRef","handleKeyDown","e","handleFocusOut","handlePeekBlur","jsxs","Fragment","collapsedWidth","expandedWidth","railWidth","contentWidth","borderClasses","TooltipProvider","childArray","React","footerChildren","child","nonFooterChildren","SidebarHeader","SidebarContent","ScrollAreaBase.Root","ScrollAreaBase.Viewport","ScrollAreaBase.Content","ScrollAreaBase.Scrollbar","ScrollAreaBase.Thumb","SidebarFooter","SidebarGroup","SidebarGroupLabel","MenuItemContext","MenuSubItemContext","SidebarMenu","SidebarMenuItem","SidebarMenuButton","IconProp","active","size","href","target","tooltip","LinkComponent","useLinkComponent","isInsideMenuItem","iconNode","content","buttonClasses","button","Tooltip","SidebarMenuBadge","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","isInsideMenuSubItem","SidebarSeparator","SidebarPanelIcon","SidebarTrigger","onClick","SidebarRail","SidebarResizeHandle","currentWidth","startX","startWidth","wasCollapsed","KEYBOARD_STEP","handlePointerDown","sidebar","cleanup","handlePointerMove","handlePointerUp","moveEvent","delta","rawWidth","grow","shrink","SidebarCollapseContext","SidebarCollapsible","onOpenChange","autoScrollOnOpen","internalOpen","setInternalOpen","isOpen","contentId","useId","keyboardExpandedRef","toggle","handleFocusIn","SidebarCollapsibleTrigger","render","existingOnClick","SidebarCollapsibleContent","isCollapsibleOpen","contentRef","timeout","prefersReducedMotion","inertRef","mergedRef","SidebarMenuChevron","isCollapsible","CaretRightIcon","SlidingViewActiveContext","SidebarSlidingViews","activeKey","_direction","activeIndex","translateX","SidebarSlidingView","isActive","Sidebar"],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo as y } from "react";
|
|
4
|
+
import { c as M } from "./cn-ct4n7r74mh8y0f48.js";
|
|
5
|
+
const $ = (e, t) => Math.floor(Math.random() * (t - e + 1) + e), i = (e, t) => (Math.random() * (t - e) + e).toFixed(2), x = ({
|
|
6
|
+
minWidth: e = 30,
|
|
7
|
+
maxWidth: t = 100,
|
|
8
|
+
minDuration: s = 1.3,
|
|
9
|
+
maxDuration: n = 1.7,
|
|
10
|
+
minDelay: r = 0,
|
|
11
|
+
maxDelay: d = 0.5,
|
|
12
|
+
blockHeight: o,
|
|
13
|
+
className: c
|
|
14
|
+
}) => {
|
|
15
|
+
const { width: m, duration: f, delay: h } = y(() => ({
|
|
16
|
+
width: $(e, t),
|
|
17
|
+
duration: i(s, n),
|
|
18
|
+
delay: i(r, d)
|
|
19
|
+
}), [e, t, s, n, r, d]), u = {
|
|
20
|
+
"--skeleton-width": `${m}%`,
|
|
21
|
+
"--shimmer-duration": `${f}s`,
|
|
22
|
+
"--shimmer-delay": `${h}s`
|
|
23
|
+
}, l = /* @__PURE__ */ a("div", { className: M("skeleton-line", c), style: u });
|
|
24
|
+
if (o !== void 0) {
|
|
25
|
+
const p = typeof o == "number" ? `${o}px` : o;
|
|
26
|
+
return /* @__PURE__ */ a("div", { className: "flex items-center", style: { height: p }, children: l });
|
|
27
|
+
}
|
|
28
|
+
return l;
|
|
29
|
+
};
|
|
30
|
+
export {
|
|
31
|
+
x as S
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=skeleton-line-epxenksfesr2fkcv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton-line-epxenksfesr2fkcv.js","sources":["../../src/components/loader/skeleton-line.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useMemo } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nconst getRandomWidth = (min: number, max: number) =>\n Math.floor(Math.random() * (max - min + 1) + min);\n\nconst getRandomFloat = (min: number, max: number) =>\n (Math.random() * (max - min) + min).toFixed(2);\n\nexport const SkeletonLine = ({\n minWidth = 30,\n maxWidth = 100,\n minDuration = 1.3,\n maxDuration = 1.7,\n minDelay = 0,\n maxDelay = 0.5,\n blockHeight,\n className,\n}: {\n minWidth?: number;\n maxWidth?: number;\n minDuration?: number;\n maxDuration?: number;\n minDelay?: number;\n maxDelay?: number;\n blockHeight?: string | number;\n className?: string;\n}) => {\n const { width, duration, delay } = useMemo(() => {\n return {\n width: getRandomWidth(minWidth, maxWidth),\n duration: getRandomFloat(minDuration, maxDuration),\n delay: getRandomFloat(minDelay, maxDelay),\n };\n }, [minWidth, maxWidth, minDuration, maxDuration, minDelay, maxDelay]);\n\n const lineStyle: React.CSSProperties & { [key: string]: string } = {\n \"--skeleton-width\": `${width}%`,\n \"--shimmer-duration\": `${duration}s`,\n \"--shimmer-delay\": `${delay}s`,\n };\n\n const line = (\n <div className={cn(\"skeleton-line\", className)} style={lineStyle}></div>\n );\n\n if (blockHeight !== undefined) {\n const height =\n typeof blockHeight === \"number\" ? `${blockHeight}px` : blockHeight;\n return (\n <div className=\"flex items-center\" style={{ height }}>\n {line}\n </div>\n );\n }\n\n return line;\n};\n"],"names":["getRandomWidth","min","max","getRandomFloat","SkeletonLine","minWidth","maxWidth","minDuration","maxDuration","minDelay","maxDelay","blockHeight","className","width","duration","delay","useMemo","lineStyle","line","cn","height","jsx"],"mappings":";;;;AAKA,MAAMA,IAAiB,CAACC,GAAaC,MACnC,KAAK,MAAM,KAAK,OAAA,KAAYA,IAAMD,IAAM,KAAKA,CAAG,GAE5CE,IAAiB,CAACF,GAAaC,OAClC,KAAK,YAAYA,IAAMD,KAAOA,GAAK,QAAQ,CAAC,GAElCG,IAAe,CAAC;AAAA,EAC3B,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,aAAAC,IAAc;AAAA,EACd,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,aAAAC;AAAA,EACA,WAAAC;AACF,MASM;AACJ,QAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,OAAAC,EAAA,IAAUC,EAAQ,OAClC;AAAA,IACL,OAAOhB,EAAeK,GAAUC,CAAQ;AAAA,IACxC,UAAUH,EAAeI,GAAaC,CAAW;AAAA,IACjD,OAAOL,EAAeM,GAAUC,CAAQ;AAAA,EAAA,IAEzC,CAACL,GAAUC,GAAUC,GAAaC,GAAaC,GAAUC,CAAQ,CAAC,GAE/DO,IAA6D;AAAA,IACjE,oBAAoB,GAAGJ,CAAK;AAAA,IAC5B,sBAAsB,GAAGC,CAAQ;AAAA,IACjC,mBAAmB,GAAGC,CAAK;AAAA,EAAA,GAGvBG,sBACH,OAAA,EAAI,WAAWC,EAAG,iBAAiBP,CAAS,GAAG,OAAOK,EAAA,CAAW;AAGpE,MAAIN,MAAgB,QAAW;AAC7B,UAAMS,IACJ,OAAOT,KAAgB,WAAW,GAAGA,CAAW,OAAOA;AACzD,WACE,gBAAAU,EAAC,SAAI,WAAU,qBAAoB,OAAO,EAAE,QAAAD,EAAA,GACzC,UAAAF,GACH;AAAA,EAEJ;AAEA,SAAOA;AACT;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const e = Object.freeze(JSON.parse('{"displayName":"SQL","name":"sql","patterns":[{"match":"((?<!@)@)\\\\b(\\\\w+)\\\\b","name":"text.variable"},{"match":"(\\\\[)[^]]*(])","name":"text.bracketed"},{"include":"#comments"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.sql"},"5":{"name":"entity.name.function.sql"}},"match":"(?i:^\\\\s*(create(?:\\\\s+or\\\\s+replace)?)\\\\s+(aggregate|conversion|database|domain|function|group|(unique\\\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\s+)([\\"\'`]?)(\\\\w+)\\\\4","name":"meta.create.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.sql"}},"match":"(?i:^\\\\s*(drop)\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))","name":"meta.drop.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.table.sql"},"3":{"name":"entity.name.function.sql"},"4":{"name":"keyword.other.cascade.sql"}},"match":"(?i:\\\\s*(drop)\\\\s+(table)\\\\s+(\\\\w+)(\\\\s+cascade)?\\\\b)","name":"meta.drop.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.table.sql"}},"match":"(?i:^\\\\s*(alter)\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\s+)","name":"meta.alter.sql"},{"captures":{"1":{"name":"storage.type.sql"},"2":{"name":"storage.type.sql"},"3":{"name":"constant.numeric.sql"},"4":{"name":"storage.type.sql"},"5":{"name":"constant.numeric.sql"},"6":{"name":"storage.type.sql"},"7":{"name":"constant.numeric.sql"},"8":{"name":"constant.numeric.sql"},"9":{"name":"storage.type.sql"},"10":{"name":"constant.numeric.sql"},"11":{"name":"storage.type.sql"},"12":{"name":"storage.type.sql"},"13":{"name":"storage.type.sql"},"14":{"name":"constant.numeric.sql"},"15":{"name":"storage.type.sql"}},"match":"(?i)\\\\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\\\b|\\\\b(bit\\\\svarying|character\\\\s(?:varying)?|tinyint|var\\\\schar|float|interval)\\\\((\\\\d+)\\\\)|\\\\b(char|number|varchar\\\\d?)\\\\b(?:\\\\((\\\\d+)\\\\))?|\\\\b(numeric|decimal)\\\\b(?:\\\\((\\\\d+),(\\\\d+)\\\\))?|\\\\b(times?)\\\\b(?:\\\\((\\\\d+)\\\\))?(\\\\swith(?:out)?\\\\stime\\\\szone\\\\b)?|\\\\b(timestamp)(s|tz)?\\\\b(?:\\\\((\\\\d+)\\\\))?(\\\\s(with(?:|out))\\\\stime\\\\szone\\\\b)?"},{"match":"(?i:\\\\b((?:primary|foreign)\\\\s+key|references|on\\\\s+(delete|update)(\\\\s+cascade)?|nocheck|check|constraint|collate|default)\\\\b)","name":"storage.modifier.sql"},{"match":"\\\\b\\\\d+\\\\b","name":"constant.numeric.sql"},{"match":"(?i:\\\\b(select(\\\\s+(all|distinct))?|insert\\\\s+(ignore\\\\s+)?into|update|delete|from|set|where|group\\\\s+by|or|like|and|union(\\\\s+all)?|having|order\\\\s+by|limit|cross\\\\s+join|join|straight_join|(inner|(left|right|full)(\\\\s+outer)?)\\\\s+join|natural(\\\\s+(inner|(left|right|full)(\\\\s+outer)?))?\\\\s+join)\\\\b)","name":"keyword.other.DML.sql"},{"match":"(?i:\\\\b(on|off|((is\\\\s+)?not\\\\s+)?null)\\\\b)","name":"keyword.other.DDL.create.II.sql"},{"match":"(?i:\\\\bvalues\\\\b)","name":"keyword.other.DML.II.sql"},{"match":"(?i:\\\\b(begin(\\\\s+work)?|start\\\\s+transaction|commit(\\\\s+work)?|rollback(\\\\s+work)?)\\\\b)","name":"keyword.other.LUW.sql"},{"match":"(?i:\\\\b(grant(\\\\swith\\\\sgrant\\\\soption)?|revoke)\\\\b)","name":"keyword.other.authorization.sql"},{"match":"(?i:\\\\bin\\\\b)","name":"keyword.other.data-integrity.sql"},{"match":"(?i:^\\\\s*(comment\\\\s+on\\\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\\\s+)","name":"keyword.other.object-comments.sql"},{"match":"(?i)\\\\bAS\\\\b","name":"keyword.other.alias.sql"},{"match":"(?i)\\\\b(DESC|ASC)\\\\b","name":"keyword.other.order.sql"},{"match":"\\\\*","name":"keyword.operator.star.sql"},{"match":"[!<>]?=|<>|[<>]","name":"keyword.operator.comparison.sql"},{"match":"[-+/]","name":"keyword.operator.math.sql"},{"match":"\\\\|\\\\|","name":"keyword.operator.concatenator.sql"},{"captures":{"1":{"name":"support.function.aggregate.sql"}},"match":"(?i)\\\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdevp??|varp??)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.analytic.sql"}},"match":"(?i)\\\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.bitmanipulation.sql"}},"match":"(?i)\\\\b((?:bit_coun|get_bi|left_shif|right_shif|set_bi)t)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.conversion.sql"}},"match":"(?i)\\\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.collation.sql"}},"match":"(?i)\\\\b(collationproperty|tertiary_weights)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.cryptographic.sql"}},"match":"(?i)\\\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.cursor.sql"}},"match":"(?i)\\\\b(cursor_status)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.datetime.sql"}},"match":"(?i)\\\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.datatype.sql"}},"match":"(?i)\\\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.expression.sql"}},"match":"(?i)\\\\b(coalesce|nullif)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.globalvar.sql"}},"match":"(?<!@)@@(?i)\\\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.json.sql"}},"match":"(?i)\\\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.logical.sql"}},"match":"(?i)\\\\b(choose|iif|greatest|least)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.mathematical.sql"}},"match":"(?i)\\\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.metadata.sql"}},"match":"(?i)\\\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.ranking.sql"}},"match":"(?i)\\\\b(rank|dense_rank|ntile|row_number)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.rowset.sql"}},"match":"(?i)\\\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.security.sql"}},"match":"(?i)\\\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.string.sql"}},"match":"(?i)\\\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.system.sql"}},"match":"(?i)\\\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.textimage.sql"}},"match":"(?i)\\\\b(patindex|textptr|textvalid)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.vector.sql"}},"match":"(?i)\\\\b(vector_(?:distance|norm|normalize))\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"constant.other.database-name.sql"},"2":{"name":"constant.other.table-name.sql"}},"match":"(\\\\w+?)\\\\.(\\\\w+)"},{"include":"#strings"},{"include":"#regexps"},{"match":"\\\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\\\\\s+or\\\\\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime2??|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|sessions??|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablockx??|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|top??|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|values??|varbinary|varchar|vector|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|windows??|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\\\b","name":"keyword.other.sql"},{"captures":{"1":{"name":"punctuation.section.scope.begin.sql"},"2":{"name":"punctuation.section.scope.end.sql"}},"match":"(\\\\()(\\\\))","name":"meta.block.sql"}],"repository":{"comment-block":{"begin":"/\\\\*","captures":{"0":{"name":"punctuation.definition.comment.sql"}},"end":"\\\\*/","name":"comment.block","patterns":[{"include":"#comment-block"}]},"comments":{"patterns":[{"begin":"(^[\\\\t ]+)?(?=--)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.sql"}},"end":"(?!\\\\G)","patterns":[{"begin":"--","beginCaptures":{"0":{"name":"punctuation.definition.comment.sql"}},"end":"\\\\n","name":"comment.line.double-dash.sql"}]},{"begin":"(^[\\\\t ]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.sql"}},"end":"(?!\\\\G)","patterns":[]},{"include":"#comment-block"}]},"regexps":{"patterns":[{"begin":"/(?=\\\\S.*/)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"/","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.regexp.sql","patterns":[{"include":"#string_interpolation"},{"match":"\\\\\\\\/","name":"constant.character.escape.slash.sql"}]},{"begin":"%r\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.regexp.modr.sql","patterns":[{"include":"#string_interpolation"}]}]},"string_escape":{"match":"\\\\\\\\.","name":"constant.character.escape.sql"},"string_interpolation":{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"3":{"name":"punctuation.definition.string.end.sql"}},"match":"(#\\\\{)([^}]*)(})","name":"string.interpolated.sql"},"strings":{"patterns":[{"captures":{"2":{"name":"punctuation.definition.string.begin.sql"},"3":{"name":"punctuation.definition.string.end.sql"}},"match":"(N)?(\')[^\']*(\')","name":"string.quoted.single.sql"},{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"\'","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.single.sql","patterns":[{"include":"#string_escape"}]},{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"2":{"name":"punctuation.definition.string.end.sql"}},"match":"(`)[^\\\\\\\\`]*(`)","name":"string.quoted.other.backtick.sql"},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.other.backtick.sql","patterns":[{"include":"#string_escape"}]},{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"2":{"name":"punctuation.definition.string.end.sql"}},"match":"(\\")[^\\"#]*(\\")","name":"string.quoted.double.sql"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.double.sql","patterns":[{"include":"#string_interpolation"}]},{"begin":"%\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.other.quoted.brackets.sql","patterns":[{"include":"#string_interpolation"}]}]}},"scopeName":"source.sql"}')), t = [
|
|
3
|
+
e
|
|
4
|
+
];
|
|
5
|
+
export {
|
|
6
|
+
t as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=sql-ovukp5mrfunfk5tv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-ovukp5mrfunfk5tv.js","sources":["../../../../node_modules/.pnpm/@shikijs+langs@4.0.0/node_modules/@shikijs/langs/dist/sql.mjs"],"sourcesContent":["const lang = Object.freeze(JSON.parse(\"{\\\"displayName\\\":\\\"SQL\\\",\\\"name\\\":\\\"sql\\\",\\\"patterns\\\":[{\\\"match\\\":\\\"((?<!@)@)\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\\\",\\\"name\\\":\\\"text.variable\\\"},{\\\"match\\\":\\\"(\\\\\\\\[)[^]]*(])\\\",\\\"name\\\":\\\"text.bracketed\\\"},{\\\"include\\\":\\\"#comments\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.other.create.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.other.sql\\\"},\\\"5\\\":{\\\"name\\\":\\\"entity.name.function.sql\\\"}},\\\"match\\\":\\\"(?i:^\\\\\\\\s*(create(?:\\\\\\\\s+or\\\\\\\\s+replace)?)\\\\\\\\s+(aggregate|conversion|database|domain|function|group|(unique\\\\\\\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\\\\\s+)([\\\\\\\"'`]?)(\\\\\\\\w+)\\\\\\\\4\\\",\\\"name\\\":\\\"meta.create.sql\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.other.create.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.other.sql\\\"}},\\\"match\\\":\\\"(?i:^\\\\\\\\s*(drop)\\\\\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))\\\",\\\"name\\\":\\\"meta.drop.sql\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.other.create.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.other.table.sql\\\"},\\\"3\\\":{\\\"name\\\":\\\"entity.name.function.sql\\\"},\\\"4\\\":{\\\"name\\\":\\\"keyword.other.cascade.sql\\\"}},\\\"match\\\":\\\"(?i:\\\\\\\\s*(drop)\\\\\\\\s+(table)\\\\\\\\s+(\\\\\\\\w+)(\\\\\\\\s+cascade)?\\\\\\\\b)\\\",\\\"name\\\":\\\"meta.drop.sql\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.other.create.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.other.table.sql\\\"}},\\\"match\\\":\\\"(?i:^\\\\\\\\s*(alter)\\\\\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\\\\\s+)\\\",\\\"name\\\":\\\"meta.alter.sql\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.numeric.sql\\\"},\\\"4\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"5\\\":{\\\"name\\\":\\\"constant.numeric.sql\\\"},\\\"6\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"7\\\":{\\\"name\\\":\\\"constant.numeric.sql\\\"},\\\"8\\\":{\\\"name\\\":\\\"constant.numeric.sql\\\"},\\\"9\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"10\\\":{\\\"name\\\":\\\"constant.numeric.sql\\\"},\\\"11\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"12\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"13\\\":{\\\"name\\\":\\\"storage.type.sql\\\"},\\\"14\\\":{\\\"name\\\":\\\"constant.numeric.sql\\\"},\\\"15\\\":{\\\"name\\\":\\\"storage.type.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\\\\\\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\\\\\\\b|\\\\\\\\b(bit\\\\\\\\svarying|character\\\\\\\\s(?:varying)?|tinyint|var\\\\\\\\schar|float|interval)\\\\\\\\((\\\\\\\\d+)\\\\\\\\)|\\\\\\\\b(char|number|varchar\\\\\\\\d?)\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+)\\\\\\\\))?|\\\\\\\\b(numeric|decimal)\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+),(\\\\\\\\d+)\\\\\\\\))?|\\\\\\\\b(times?)\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+)\\\\\\\\))?(\\\\\\\\swith(?:out)?\\\\\\\\stime\\\\\\\\szone\\\\\\\\b)?|\\\\\\\\b(timestamp)(s|tz)?\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+)\\\\\\\\))?(\\\\\\\\s(with(?:|out))\\\\\\\\stime\\\\\\\\szone\\\\\\\\b)?\\\"},{\\\"match\\\":\\\"(?i:\\\\\\\\b((?:primary|foreign)\\\\\\\\s+key|references|on\\\\\\\\s+(delete|update)(\\\\\\\\s+cascade)?|nocheck|check|constraint|collate|default)\\\\\\\\b)\\\",\\\"name\\\":\\\"storage.modifier.sql\\\"},{\\\"match\\\":\\\"\\\\\\\\b\\\\\\\\d+\\\\\\\\b\\\",\\\"name\\\":\\\"constant.numeric.sql\\\"},{\\\"match\\\":\\\"(?i:\\\\\\\\b(select(\\\\\\\\s+(all|distinct))?|insert\\\\\\\\s+(ignore\\\\\\\\s+)?into|update|delete|from|set|where|group\\\\\\\\s+by|or|like|and|union(\\\\\\\\s+all)?|having|order\\\\\\\\s+by|limit|cross\\\\\\\\s+join|join|straight_join|(inner|(left|right|full)(\\\\\\\\s+outer)?)\\\\\\\\s+join|natural(\\\\\\\\s+(inner|(left|right|full)(\\\\\\\\s+outer)?))?\\\\\\\\s+join)\\\\\\\\b)\\\",\\\"name\\\":\\\"keyword.other.DML.sql\\\"},{\\\"match\\\":\\\"(?i:\\\\\\\\b(on|off|((is\\\\\\\\s+)?not\\\\\\\\s+)?null)\\\\\\\\b)\\\",\\\"name\\\":\\\"keyword.other.DDL.create.II.sql\\\"},{\\\"match\\\":\\\"(?i:\\\\\\\\bvalues\\\\\\\\b)\\\",\\\"name\\\":\\\"keyword.other.DML.II.sql\\\"},{\\\"match\\\":\\\"(?i:\\\\\\\\b(begin(\\\\\\\\s+work)?|start\\\\\\\\s+transaction|commit(\\\\\\\\s+work)?|rollback(\\\\\\\\s+work)?)\\\\\\\\b)\\\",\\\"name\\\":\\\"keyword.other.LUW.sql\\\"},{\\\"match\\\":\\\"(?i:\\\\\\\\b(grant(\\\\\\\\swith\\\\\\\\sgrant\\\\\\\\soption)?|revoke)\\\\\\\\b)\\\",\\\"name\\\":\\\"keyword.other.authorization.sql\\\"},{\\\"match\\\":\\\"(?i:\\\\\\\\bin\\\\\\\\b)\\\",\\\"name\\\":\\\"keyword.other.data-integrity.sql\\\"},{\\\"match\\\":\\\"(?i:^\\\\\\\\s*(comment\\\\\\\\s+on\\\\\\\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\\\\\\\s+)\\\",\\\"name\\\":\\\"keyword.other.object-comments.sql\\\"},{\\\"match\\\":\\\"(?i)\\\\\\\\bAS\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.other.alias.sql\\\"},{\\\"match\\\":\\\"(?i)\\\\\\\\b(DESC|ASC)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.other.order.sql\\\"},{\\\"match\\\":\\\"\\\\\\\\*\\\",\\\"name\\\":\\\"keyword.operator.star.sql\\\"},{\\\"match\\\":\\\"[!<>]?=|<>|[<>]\\\",\\\"name\\\":\\\"keyword.operator.comparison.sql\\\"},{\\\"match\\\":\\\"[-+/]\\\",\\\"name\\\":\\\"keyword.operator.math.sql\\\"},{\\\"match\\\":\\\"\\\\\\\\|\\\\\\\\|\\\",\\\"name\\\":\\\"keyword.operator.concatenator.sql\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.aggregate.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdevp??|varp??)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.analytic.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.bitmanipulation.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b((?:bit_coun|get_bi|left_shif|right_shif|set_bi)t)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.conversion.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.collation.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(collationproperty|tertiary_weights)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.cryptographic.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.cursor.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(cursor_status)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.datetime.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.datatype.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.expression.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(coalesce|nullif)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.globalvar.sql\\\"}},\\\"match\\\":\\\"(?<!@)@@(?i)\\\\\\\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.json.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.logical.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(choose|iif|greatest|least)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.mathematical.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.metadata.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.ranking.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(rank|dense_rank|ntile|row_number)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.rowset.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.security.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.string.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.system.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.textimage.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(patindex|textptr|textvalid)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"support.function.vector.sql\\\"}},\\\"match\\\":\\\"(?i)\\\\\\\\b(vector_(?:distance|norm|normalize))\\\\\\\\b\\\\\\\\s*\\\\\\\\(\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"constant.other.database-name.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"constant.other.table-name.sql\\\"}},\\\"match\\\":\\\"(\\\\\\\\w+?)\\\\\\\\.(\\\\\\\\w+)\\\"},{\\\"include\\\":\\\"#strings\\\"},{\\\"include\\\":\\\"#regexps\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\\\\\\\\\\\\\s+or\\\\\\\\\\\\\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime2??|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|sessions??|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablockx??|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|top??|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|values??|varbinary|varchar|vector|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|windows??|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.other.sql\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.section.scope.begin.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"punctuation.section.scope.end.sql\\\"}},\\\"match\\\":\\\"(\\\\\\\\()(\\\\\\\\))\\\",\\\"name\\\":\\\"meta.block.sql\\\"}],\\\"repository\\\":{\\\"comment-block\\\":{\\\"begin\\\":\\\"/\\\\\\\\*\\\",\\\"captures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.sql\\\"}},\\\"end\\\":\\\"\\\\\\\\*/\\\",\\\"name\\\":\\\"comment.block\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#comment-block\\\"}]},\\\"comments\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(^[\\\\\\\\t ]+)?(?=--)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.whitespace.comment.leading.sql\\\"}},\\\"end\\\":\\\"(?!\\\\\\\\G)\\\",\\\"patterns\\\":[{\\\"begin\\\":\\\"--\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.sql\\\"}},\\\"end\\\":\\\"\\\\\\\\n\\\",\\\"name\\\":\\\"comment.line.double-dash.sql\\\"}]},{\\\"begin\\\":\\\"(^[\\\\\\\\t ]+)?(?=#)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.whitespace.comment.leading.sql\\\"}},\\\"end\\\":\\\"(?!\\\\\\\\G)\\\",\\\"patterns\\\":[]},{\\\"include\\\":\\\"#comment-block\\\"}]},\\\"regexps\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"/(?=\\\\\\\\S.*/)\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"}},\\\"end\\\":\\\"/\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"name\\\":\\\"string.regexp.sql\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#string_interpolation\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\/\\\",\\\"name\\\":\\\"constant.character.escape.slash.sql\\\"}]},{\\\"begin\\\":\\\"%r\\\\\\\\{\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"name\\\":\\\"string.regexp.modr.sql\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#string_interpolation\\\"}]}]},\\\"string_escape\\\":{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\.\\\",\\\"name\\\":\\\"constant.character.escape.sql\\\"},\\\"string_interpolation\\\":{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"},\\\"3\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"match\\\":\\\"(#\\\\\\\\{)([^}]*)(})\\\",\\\"name\\\":\\\"string.interpolated.sql\\\"},\\\"strings\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"2\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"},\\\"3\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"match\\\":\\\"(N)?(')[^']*(')\\\",\\\"name\\\":\\\"string.quoted.single.sql\\\"},{\\\"begin\\\":\\\"'\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"}},\\\"end\\\":\\\"'\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"name\\\":\\\"string.quoted.single.sql\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#string_escape\\\"}]},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"match\\\":\\\"(`)[^\\\\\\\\\\\\\\\\`]*(`)\\\",\\\"name\\\":\\\"string.quoted.other.backtick.sql\\\"},{\\\"begin\\\":\\\"`\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"}},\\\"end\\\":\\\"`\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"name\\\":\\\"string.quoted.other.backtick.sql\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#string_escape\\\"}]},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"},\\\"2\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"match\\\":\\\"(\\\\\\\")[^\\\\\\\"#]*(\\\\\\\")\\\",\\\"name\\\":\\\"string.quoted.double.sql\\\"},{\\\"begin\\\":\\\"\\\\\\\"\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"}},\\\"end\\\":\\\"\\\\\\\"\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"name\\\":\\\"string.quoted.double.sql\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#string_interpolation\\\"}]},{\\\"begin\\\":\\\"%\\\\\\\\{\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.sql\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.sql\\\"}},\\\"name\\\":\\\"string.other.quoted.brackets.sql\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#string_interpolation\\\"}]}]}},\\\"scopeName\\\":\\\"source.sql\\\"}\"))\n\nexport default [\nlang\n]\n"],"names":["lang","sql"],"mappings":";AAAA,MAAMA,IAAO,OAAO,OAAO,KAAK,MAAM,+ytBAAi3vB,CAAC,GAEx5vBC,IAAe;AAAA,EACfD;AACA;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { createElement as s } from "react";
|
|
4
|
+
import { c as d } from "./cn-ct4n7r74mh8y0f48.js";
|
|
5
|
+
import { L as m } from "./layer-card-kzu48dhzxm3e9p4u.js";
|
|
6
|
+
const f = function({
|
|
7
|
+
color: r = "primary",
|
|
8
|
+
className: a,
|
|
9
|
+
render: o,
|
|
10
|
+
as: e,
|
|
11
|
+
...c
|
|
12
|
+
}) {
|
|
13
|
+
const t = o ?? (e ? s(e) : void 0);
|
|
14
|
+
return /* @__PURE__ */ n(
|
|
15
|
+
m,
|
|
16
|
+
{
|
|
17
|
+
className: d("overflow-visible rounded-none", a),
|
|
18
|
+
render: t,
|
|
19
|
+
...c,
|
|
20
|
+
"data-surface-color": r,
|
|
21
|
+
"data-deprecated": "surface"
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
f.displayName = "Surface";
|
|
26
|
+
export {
|
|
27
|
+
f as S
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=surface-cyxme7mlr49l33f8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-cyxme7mlr49l33f8.js","sources":["../../src/components/surface/surface.tsx"],"sourcesContent":["import { createElement, type ElementType } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { resolveVariant } from \"../../utils/resolve-variant\";\nimport { LayerCard, type LayerCardProps } from \"../layer-card/layer-card\";\n\n/** Surface color variant definitions. */\nexport const REKI_SURFACE_VARIANTS = {\n color: {\n primary: {\n classes: \"\",\n description: \"Primary surface color\",\n },\n secondary: {\n classes: \"\",\n description: \"Secondary surface color\",\n },\n },\n} as const;\n\nexport const REKI_SURFACE_DEFAULT_VARIANTS = {\n color: \"primary\",\n} as const;\n\n// Derived types from REKI_SURFACE_VARIANTS\nexport type RekiSurfaceColor = keyof typeof REKI_SURFACE_VARIANTS.color;\n\nexport interface RekiSurfaceVariantsProps {\n /**\n * Surface color variant.\n * - `\"primary\"` — Primary surface color\n * - `\"secondary\"` — Secondary surface color\n * @default \"primary\"\n */\n color?: RekiSurfaceColor;\n}\n\nexport function surfaceVariants({\n color = REKI_SURFACE_DEFAULT_VARIANTS.color,\n}: RekiSurfaceVariantsProps = {}) {\n return resolveVariant(REKI_SURFACE_VARIANTS.color, color, REKI_SURFACE_DEFAULT_VARIANTS.color).classes;\n}\n\n/**\n * Surface component props.\n *\n * @deprecated Use `LayerCard` instead. `Surface` is now a compatibility wrapper\n * around `LayerCard` for simple one-layer card containers.\n *\n * @example\n * ```tsx\n * <Surface className=\"rounded-lg p-4\">Card content</Surface>\n * <Surface render={<section />} className=\"rounded-lg p-6\">Section content</Surface>\n * ```\n */\nexport type SurfaceProps = LayerCardProps &\n RekiSurfaceVariantsProps & {\n /**\n * @deprecated Use the `render` prop instead.\n * @example `<Surface render={<section />}>` instead of `<Surface as=\"section\">`\n */\n as?: ElementType;\n };\n\n/**\n * @deprecated Use `LayerCard` instead.\n *\n * Polymorphic compatibility wrapper that preserves the `Surface` API while\n * delegating rendering and styling to `LayerCard`.\n *\n * @example\n * ```tsx\n * <LayerCard className=\"rounded-lg p-4\">Card content</LayerCard>\n * ```\n */\nexport const Surface = function Surface({\n color = \"primary\",\n className,\n render,\n as,\n ...props\n}: SurfaceProps) {\n const resolvedRender = render ?? (as ? createElement(as) : undefined);\n return (\n <LayerCard\n className={cn(\"overflow-visible rounded-none\", className)}\n render={resolvedRender}\n {...props}\n data-surface-color={color}\n data-deprecated=\"surface\"\n />\n );\n};\n\nSurface.displayName = \"Surface\";\n"],"names":["Surface","color","className","render","as","props","resolvedRender","createElement","jsx","LayerCard","cn"],"mappings":";;;;;AA0EO,MAAMA,IAAU,SAAiB;AAAA,EACtC,OAAAC,IAAQ;AAAA,EACR,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,IAAAC;AAAA,EACA,GAAGC;AACL,GAAiB;AACf,QAAMC,IAAiBH,MAAWC,IAAKG,EAAcH,CAAE,IAAI;AAC3D,SACE,gBAAAI;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAG,iCAAiCR,CAAS;AAAA,MACxD,QAAQI;AAAA,MACP,GAAGD;AAAA,MACJ,sBAAoBJ;AAAA,MACpB,mBAAgB;AAAA,IAAA;AAAA,EAAA;AAGtB;AAEAD,EAAQ,cAAc;"}
|