@health-samurai/react-components 0.0.0-alpha.2 → 0.0.0-alpha.21
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/LICENSE +21 -0
- package/README.md +102 -1
- package/dist/bundle.css +2349 -754
- package/dist/src/components/button-dropdown.d.ts +10 -0
- package/dist/src/components/button-dropdown.d.ts.map +1 -0
- package/dist/src/components/button-dropdown.js +70 -0
- package/dist/src/components/button-dropdown.js.map +1 -0
- package/dist/src/components/button-dropdown.stories.js +48 -0
- package/dist/src/components/button-dropdown.stories.js.map +1 -0
- package/dist/src/components/code-editor/fhir-autocomplete.d.ts +70 -0
- package/dist/src/components/code-editor/fhir-autocomplete.d.ts.map +1 -0
- package/dist/src/components/code-editor/fhir-autocomplete.js +1850 -0
- package/dist/src/components/code-editor/fhir-autocomplete.js.map +1 -0
- package/dist/src/components/code-editor/fhir-autocomplete.test.js +1099 -0
- package/dist/src/components/code-editor/fhir-autocomplete.test.js.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.d.ts +3 -0
- package/dist/src/components/code-editor/http/grammar/http.d.ts.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.grammar +74 -0
- package/dist/src/components/code-editor/http/grammar/http.js +38 -0
- package/dist/src/components/code-editor/http/grammar/http.js.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.d.ts +2 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.d.ts.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.js +4 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.js.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.test.js +80 -0
- package/dist/src/components/code-editor/http/grammar/http.test.js.map +1 -0
- package/dist/src/components/code-editor/http/index.d.ts +12 -0
- package/dist/src/components/code-editor/http/index.d.ts.map +1 -0
- package/dist/src/components/code-editor/http/index.js +486 -0
- package/dist/src/components/code-editor/http/index.js.map +1 -0
- package/dist/src/components/code-editor/index.d.ts +39 -1
- package/dist/src/components/code-editor/index.d.ts.map +1 -1
- package/dist/src/components/code-editor/index.js +1792 -45
- package/dist/src/components/code-editor/index.js.map +1 -1
- package/dist/src/components/code-editor/json-ast.d.ts +46 -0
- package/dist/src/components/code-editor/json-ast.d.ts.map +1 -0
- package/dist/src/components/code-editor/json-ast.js +465 -0
- package/dist/src/components/code-editor/json-ast.js.map +1 -0
- package/dist/src/components/code-editor/json-ast.test.js +206 -0
- package/dist/src/components/code-editor/json-ast.test.js.map +1 -0
- package/dist/src/components/code-editor/sql-completion.d.ts +22 -0
- package/dist/src/components/code-editor/sql-completion.d.ts.map +1 -0
- package/dist/src/components/code-editor/sql-completion.js +897 -0
- package/dist/src/components/code-editor/sql-completion.js.map +1 -0
- package/dist/src/components/code-editor.stories.js +280 -3
- package/dist/src/components/code-editor.stories.js.map +1 -1
- package/dist/src/components/copy-icon.d.ts +5 -1
- package/dist/src/components/copy-icon.d.ts.map +1 -1
- package/dist/src/components/copy-icon.js +41 -3
- package/dist/src/components/copy-icon.js.map +1 -1
- package/dist/src/components/data-table.d.ts +9 -0
- package/dist/src/components/data-table.d.ts.map +1 -0
- package/dist/src/components/data-table.js +66 -0
- package/dist/src/components/data-table.js.map +1 -0
- package/dist/src/components/data-table.stories.js +240 -0
- package/dist/src/components/data-table.stories.js.map +1 -0
- package/dist/src/components/date-picker-input.d.ts +10 -0
- package/dist/src/components/date-picker-input.d.ts.map +1 -0
- package/dist/src/components/date-picker-input.js +90 -0
- package/dist/src/components/date-picker-input.js.map +1 -0
- package/dist/src/components/date-picker-input.stories.js +76 -0
- package/dist/src/components/date-picker-input.stories.js.map +1 -0
- package/dist/src/components/fhir-structure-view.d.ts +34 -0
- package/dist/src/components/fhir-structure-view.d.ts.map +1 -0
- package/dist/src/components/fhir-structure-view.js +230 -0
- package/dist/src/components/fhir-structure-view.js.map +1 -0
- package/dist/src/components/fhir-structure-view.stories.js +447 -0
- package/dist/src/components/fhir-structure-view.stories.js.map +1 -0
- package/dist/src/components/icon-button.d.ts +12 -0
- package/dist/src/components/icon-button.d.ts.map +1 -0
- package/dist/src/components/icon-button.js +41 -0
- package/dist/src/components/icon-button.js.map +1 -0
- package/dist/src/components/icon-button.stories.js +157 -0
- package/dist/src/components/icon-button.stories.js.map +1 -0
- package/dist/src/components/operation-outcome-view.d.ts +27 -0
- package/dist/src/components/operation-outcome-view.d.ts.map +1 -0
- package/dist/src/components/operation-outcome-view.js +198 -0
- package/dist/src/components/operation-outcome-view.js.map +1 -0
- package/dist/src/components/operation-outcome-view.stories.js +207 -0
- package/dist/src/components/operation-outcome-view.stories.js.map +1 -0
- package/dist/src/components/request-line-editor.d.ts +13 -35
- package/dist/src/components/request-line-editor.d.ts.map +1 -1
- package/dist/src/components/request-line-editor.js +73 -49
- package/dist/src/components/request-line-editor.js.map +1 -1
- package/dist/src/components/request-line-editor.stories.js +17 -53
- package/dist/src/components/request-line-editor.stories.js.map +1 -1
- package/dist/src/components/sandbox.d.ts +13 -0
- package/dist/src/components/sandbox.d.ts.map +1 -0
- package/dist/src/components/sandbox.js +107 -0
- package/dist/src/components/sandbox.js.map +1 -0
- package/dist/src/components/sandbox.stories.js +126 -0
- package/dist/src/components/sandbox.stories.js.map +1 -0
- package/dist/src/components/segment-control.d.ts +13 -0
- package/dist/src/components/segment-control.d.ts.map +1 -0
- package/dist/src/components/segment-control.js +33 -0
- package/dist/src/components/segment-control.js.map +1 -0
- package/dist/src/components/segment-control.stories.js +68 -0
- package/dist/src/components/segment-control.stories.js.map +1 -0
- package/dist/src/components/split-button.d.ts +12 -0
- package/dist/src/components/split-button.d.ts.map +1 -0
- package/dist/src/components/split-button.js +33 -0
- package/dist/src/components/split-button.js.map +1 -0
- package/dist/src/components/split-button.stories.js +84 -0
- package/dist/src/components/split-button.stories.js.map +1 -0
- package/dist/src/components/tag.d.ts +16 -0
- package/dist/src/components/tag.d.ts.map +1 -0
- package/dist/src/components/tag.js +198 -0
- package/dist/src/components/tag.js.map +1 -0
- package/dist/src/components/tag.stories.js +459 -0
- package/dist/src/components/tag.stories.js.map +1 -0
- package/dist/src/components/tile.d.ts +15 -0
- package/dist/src/components/tile.d.ts.map +1 -0
- package/dist/src/components/tile.js +76 -0
- package/dist/src/components/tile.js.map +1 -0
- package/dist/src/components/tile.stories.js +167 -0
- package/dist/src/components/tile.stories.js.map +1 -0
- package/dist/src/components/toolbar.d.ts +18 -0
- package/dist/src/components/toolbar.d.ts.map +1 -0
- package/dist/src/components/toolbar.js +61 -0
- package/dist/src/components/toolbar.js.map +1 -0
- package/dist/src/components/toolbar.stories.js +69 -0
- package/dist/src/components/toolbar.stories.js.map +1 -0
- package/dist/src/components/tree-view.d.ts +47 -0
- package/dist/src/components/tree-view.d.ts.map +1 -0
- package/dist/src/components/tree-view.js +122 -0
- package/dist/src/components/tree-view.js.map +1 -0
- package/dist/src/components/tree-view.stories.js +283 -0
- package/dist/src/components/tree-view.stories.js.map +1 -0
- package/dist/src/icons.d.ts +11 -0
- package/dist/src/icons.d.ts.map +1 -0
- package/dist/src/icons.js +328 -0
- package/dist/src/icons.js.map +1 -0
- package/dist/src/index.css +358 -74
- package/dist/src/index.d.ts +17 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +17 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.d.ts +2 -2
- package/dist/src/shadcn/components/ui/accordion.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.js +35 -9
- package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.d.ts +12 -4
- package/dist/src/shadcn/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.js +128 -18
- package/dist/src/shadcn/components/ui/alert-dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js +269 -19
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.d.ts +29 -6
- package/dist/src/shadcn/components/ui/alert.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/alert.js +50 -19
- package/dist/src/shadcn/components/ui/alert.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.stories.js +140 -36
- package/dist/src/shadcn/components/ui/alert.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.js +1 -0
- package/dist/src/shadcn/components/ui/aspect-ratio.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.js +4 -3
- package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.stories.js +68 -2
- package/dist/src/shadcn/components/ui/avatar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/badge.d.ts +1 -1
- package/dist/src/shadcn/components/ui/badge.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/badge.js +16 -5
- package/dist/src/shadcn/components/ui/badge.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.d.ts +5 -2
- package/dist/src/shadcn/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.js +98 -13
- package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js +205 -45
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/button.js +65 -11
- package/dist/src/shadcn/components/ui/button.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.stories.js +99 -17
- package/dist/src/shadcn/components/ui/button.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.d.ts +1 -1
- package/dist/src/shadcn/components/ui/calendar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.js +1 -0
- package/dist/src/shadcn/components/ui/calendar.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.d.ts +5 -1
- package/dist/src/shadcn/components/ui/card.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/card.js +28 -7
- package/dist/src/shadcn/components/ui/card.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.stories.js +23 -2
- package/dist/src/shadcn/components/ui/card.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.d.ts +1 -1
- package/dist/src/shadcn/components/ui/carousel.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.js +1 -0
- package/dist/src/shadcn/components/ui/carousel.js.map +1 -1
- package/dist/src/shadcn/components/ui/chart.d.ts +5 -5
- package/dist/src/shadcn/components/ui/chart.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/chart.js +4 -3
- package/dist/src/shadcn/components/ui/chart.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.d.ts +5 -1
- package/dist/src/shadcn/components/ui/checkbox.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.js +46 -6
- package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.stories.js +156 -46
- package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/combobox.d.ts +29 -0
- package/dist/src/shadcn/components/ui/combobox.d.ts.map +1 -0
- package/dist/src/shadcn/components/ui/combobox.js +226 -0
- package/dist/src/shadcn/components/ui/combobox.js.map +1 -0
- package/dist/src/shadcn/components/ui/combobox.stories.js +167 -0
- package/dist/src/shadcn/components/ui/combobox.stories.js.map +1 -0
- package/dist/src/shadcn/components/ui/command.d.ts +4 -2
- package/dist/src/shadcn/components/ui/command.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/command.js +75 -13
- package/dist/src/shadcn/components/ui/command.js.map +1 -1
- package/dist/src/shadcn/components/ui/command.stories.js +277 -57
- package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.d.ts +7 -3
- package/dist/src/shadcn/components/ui/context-menu.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.js +120 -13
- package/dist/src/shadcn/components/ui/context-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.js +35 -7
- package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.js +27 -5
- package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.d.ts +7 -3
- package/dist/src/shadcn/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.js +122 -14
- package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js +22 -5
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/form.d.ts +2 -2
- package/dist/src/shadcn/components/ui/form.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/form.js +17 -8
- package/dist/src/shadcn/components/ui/form.js.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.js +2 -1
- package/dist/src/shadcn/components/ui/hover-card.js.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.js +1 -0
- package/dist/src/shadcn/components/ui/input-otp.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.d.ts +3 -1
- package/dist/src/shadcn/components/ui/input.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/input.js +126 -17
- package/dist/src/shadcn/components/ui/input.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.stories.js +218 -29
- package/dist/src/shadcn/components/ui/input.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/label.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/label.js +9 -1
- package/dist/src/shadcn/components/ui/label.js.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.js +35 -13
- package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.d.ts +9 -2
- package/dist/src/shadcn/components/ui/pagination.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.js +41 -24
- package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.stories.js +44 -37
- package/dist/src/shadcn/components/ui/pagination.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/popover.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/popover.js +13 -1
- package/dist/src/shadcn/components/ui/popover.js.map +1 -1
- package/dist/src/shadcn/components/ui/progress.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/progress.js +6 -2
- package/dist/src/shadcn/components/ui/progress.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-button-group.d.ts +21 -0
- package/dist/src/shadcn/components/ui/radio-button-group.d.ts.map +1 -0
- package/dist/src/shadcn/components/ui/radio-button-group.js +148 -0
- package/dist/src/shadcn/components/ui/radio-button-group.js.map +1 -0
- package/dist/src/shadcn/components/ui/radio-button-group.stories.js +283 -0
- package/dist/src/shadcn/components/ui/radio-button-group.stories.js.map +1 -0
- package/dist/src/shadcn/components/ui/radio-group.d.ts +5 -1
- package/dist/src/shadcn/components/ui/radio-group.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.js +40 -7
- package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.stories.js +107 -32
- package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.js +2 -1
- package/dist/src/shadcn/components/ui/resizable.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.stories.js +2 -2
- package/dist/src/shadcn/components/ui/resizable.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.js +10 -3
- package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.d.ts +1 -2
- package/dist/src/shadcn/components/ui/select.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/select.js +49 -19
- package/dist/src/shadcn/components/ui/select.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.stories.js +193 -70
- package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/separator.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/separator.js +8 -1
- package/dist/src/shadcn/components/ui/separator.js.map +1 -1
- package/dist/src/shadcn/components/ui/sheet.js +1 -1
- package/dist/src/shadcn/components/ui/sheet.js.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.d.ts +4 -4
- package/dist/src/shadcn/components/ui/sidebar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.js +21 -6
- package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.js +3 -1
- package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
- package/dist/src/shadcn/components/ui/slider.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/slider.js +35 -4
- package/dist/src/shadcn/components/ui/slider.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.d.ts +24 -2
- package/dist/src/shadcn/components/ui/sonner.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.js +127 -9
- package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.stories.js +251 -12
- package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.d.ts +7 -1
- package/dist/src/shadcn/components/ui/switch.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/switch.js +55 -3
- package/dist/src/shadcn/components/ui/switch.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.stories.js +84 -9
- package/dist/src/shadcn/components/ui/switch.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.d.ts +23 -6
- package/dist/src/shadcn/components/ui/table.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/table.js +65 -20
- package/dist/src/shadcn/components/ui/table.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.stories.js +217 -97
- package/dist/src/shadcn/components/ui/table.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.d.ts +30 -5
- package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.js +470 -23
- package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.stories.js +405 -181
- package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.d.ts +8 -1
- package/dist/src/shadcn/components/ui/textarea.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.js +30 -2
- package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.stories.js +85 -4
- package/dist/src/shadcn/components/ui/textarea.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.d.ts +3 -3
- package/dist/src/shadcn/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.js +14 -12
- package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.d.ts +3 -4
- package/dist/src/shadcn/components/ui/toggle.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.js +44 -16
- package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.stories.js +130 -7
- package/dist/src/shadcn/components/ui/toggle.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.js +12 -1
- package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
- package/dist/src/shadcn/components/ui/tree.d.ts +29 -0
- package/dist/src/shadcn/components/ui/tree.d.ts.map +1 -0
- package/dist/src/shadcn/components/ui/tree.js +135 -0
- package/dist/src/shadcn/components/ui/tree.js.map +1 -0
- package/dist/src/shadcn/shadcn.css +4 -4
- package/dist/src/tokens.css +50 -20
- package/dist/src/typography.css +78 -15
- package/package.json +84 -64
- package/src/components/button-dropdown.stories.tsx +41 -0
- package/src/components/button-dropdown.tsx +97 -0
- package/src/components/code-editor/fhir-autocomplete.test.ts +993 -0
- package/src/components/code-editor/fhir-autocomplete.ts +2322 -0
- package/src/components/code-editor/http/grammar/http.grammar +74 -0
- package/src/components/code-editor/http/grammar/http.terms.ts +9 -0
- package/src/components/code-editor/http/grammar/http.test.ts +110 -0
- package/src/components/code-editor/http/grammar/http.ts +21 -0
- package/src/components/code-editor/http/index.ts +424 -0
- package/src/components/code-editor/index.tsx +1944 -42
- package/src/components/code-editor/json-ast.test.ts +230 -0
- package/src/components/code-editor/json-ast.ts +590 -0
- package/src/components/code-editor/sql-completion.ts +1112 -0
- package/src/components/code-editor.stories.tsx +325 -2
- package/src/components/copy-icon.tsx +57 -3
- package/src/components/data-table.stories.tsx +91 -0
- package/src/components/data-table.tsx +126 -0
- package/src/components/date-picker-input.stories.tsx +79 -0
- package/src/components/date-picker-input.tsx +104 -0
- package/src/components/fhir-structure-view.stories.tsx +439 -0
- package/src/components/fhir-structure-view.tsx +233 -0
- package/src/components/icon-button.stories.tsx +86 -0
- package/src/components/icon-button.tsx +57 -0
- package/src/components/operation-outcome-view.stories.tsx +163 -0
- package/src/components/operation-outcome-view.tsx +254 -0
- package/src/components/request-line-editor.stories.tsx +17 -27
- package/src/components/request-line-editor.tsx +103 -61
- package/src/components/sandbox.stories.tsx +131 -0
- package/src/components/sandbox.tsx +191 -0
- package/src/components/segment-control.stories.tsx +61 -0
- package/src/components/segment-control.tsx +83 -0
- package/src/components/split-button.stories.tsx +68 -0
- package/src/components/split-button.tsx +74 -0
- package/src/components/tag.stories.tsx +371 -0
- package/src/components/tag.tsx +236 -0
- package/src/components/tile.stories.tsx +149 -0
- package/src/components/tile.tsx +105 -0
- package/src/components/toolbar.stories.tsx +64 -0
- package/src/components/toolbar.tsx +98 -0
- package/src/components/tree-view.stories.tsx +265 -0
- package/src/components/tree-view.tsx +246 -0
- package/src/icons.tsx +331 -0
- package/src/index.css +358 -74
- package/src/index.tsx +17 -3
- package/src/shadcn/components/ui/accordion.tsx +91 -10
- package/src/shadcn/components/ui/alert-dialog.stories.tsx +209 -15
- package/src/shadcn/components/ui/alert-dialog.tsx +236 -26
- package/src/shadcn/components/ui/alert.stories.tsx +120 -21
- package/src/shadcn/components/ui/alert.tsx +125 -28
- package/src/shadcn/components/ui/aspect-ratio.tsx +1 -0
- package/src/shadcn/components/ui/avatar.stories.tsx +74 -1
- package/src/shadcn/components/ui/avatar.tsx +22 -6
- package/src/shadcn/components/ui/badge.tsx +67 -18
- package/src/shadcn/components/ui/breadcrumb.stories.tsx +161 -41
- package/src/shadcn/components/ui/breadcrumb.tsx +172 -23
- package/src/shadcn/components/ui/button.stories.tsx +106 -18
- package/src/shadcn/components/ui/button.tsx +151 -55
- package/src/shadcn/components/ui/calendar.tsx +1 -0
- package/src/shadcn/components/ui/card.stories.tsx +17 -3
- package/src/shadcn/components/ui/card.tsx +89 -14
- package/src/shadcn/components/ui/carousel.tsx +1 -0
- package/src/shadcn/components/ui/chart.tsx +9 -5
- package/src/shadcn/components/ui/checkbox.stories.tsx +78 -30
- package/src/shadcn/components/ui/checkbox.tsx +91 -8
- package/src/shadcn/components/ui/combobox.stories.tsx +148 -0
- package/src/shadcn/components/ui/combobox.tsx +324 -0
- package/src/shadcn/components/ui/command.stories.tsx +184 -39
- package/src/shadcn/components/ui/command.tsx +218 -37
- package/src/shadcn/components/ui/context-menu.tsx +333 -40
- package/src/shadcn/components/ui/dialog.tsx +101 -13
- package/src/shadcn/components/ui/drawer.tsx +94 -18
- package/src/shadcn/components/ui/dropdown-menu.stories.tsx +18 -2
- package/src/shadcn/components/ui/dropdown-menu.tsx +334 -68
- package/src/shadcn/components/ui/form.tsx +22 -11
- package/src/shadcn/components/ui/hover-card.tsx +2 -1
- package/src/shadcn/components/ui/input-otp.tsx +1 -0
- package/src/shadcn/components/ui/input.stories.tsx +235 -27
- package/src/shadcn/components/ui/input.tsx +400 -29
- package/src/shadcn/components/ui/label.tsx +22 -4
- package/src/shadcn/components/ui/menubar.tsx +188 -43
- package/src/shadcn/components/ui/pagination.stories.tsx +8 -2
- package/src/shadcn/components/ui/pagination.tsx +65 -8
- package/src/shadcn/components/ui/popover.tsx +36 -4
- package/src/shadcn/components/ui/progress.tsx +21 -5
- package/src/shadcn/components/ui/radio-button-group.stories.tsx +247 -0
- package/src/shadcn/components/ui/radio-button-group.tsx +188 -0
- package/src/shadcn/components/ui/radio-group.stories.tsx +70 -14
- package/src/shadcn/components/ui/radio-group.tsx +85 -9
- package/src/shadcn/components/ui/resizable.stories.tsx +2 -2
- package/src/shadcn/components/ui/resizable.tsx +2 -1
- package/src/shadcn/components/ui/scroll-area.tsx +34 -5
- package/src/shadcn/components/ui/select.stories.tsx +108 -32
- package/src/shadcn/components/ui/select.tsx +182 -36
- package/src/shadcn/components/ui/separator.tsx +16 -5
- package/src/shadcn/components/ui/sheet.tsx +1 -1
- package/src/shadcn/components/ui/sidebar.tsx +69 -26
- package/src/shadcn/components/ui/skeleton.tsx +4 -1
- package/src/shadcn/components/ui/slider.tsx +83 -11
- package/src/shadcn/components/ui/sonner.stories.tsx +238 -17
- package/src/shadcn/components/ui/sonner.tsx +254 -11
- package/src/shadcn/components/ui/switch.stories.tsx +52 -5
- package/src/shadcn/components/ui/switch.tsx +92 -7
- package/src/shadcn/components/ui/table.stories.tsx +252 -72
- package/src/shadcn/components/ui/table.tsx +204 -26
- package/src/shadcn/components/ui/tabs.stories.tsx +235 -123
- package/src/shadcn/components/ui/tabs.tsx +694 -36
- package/src/shadcn/components/ui/textarea.stories.tsx +94 -2
- package/src/shadcn/components/ui/textarea.tsx +70 -5
- package/src/shadcn/components/ui/toggle-group.tsx +35 -13
- package/src/shadcn/components/ui/toggle.stories.tsx +92 -5
- package/src/shadcn/components/ui/toggle.tsx +96 -23
- package/src/shadcn/components/ui/tooltip.tsx +34 -8
- package/src/shadcn/components/ui/tree.tsx +257 -0
- package/src/shadcn/shadcn.css +4 -4
- package/src/tokens.css +50 -20
- package/src/typography.css +78 -15
- package/dist/src/components/code-editor.stories.d.ts +0 -7
- package/dist/src/components/code-editor.stories.d.ts.map +0 -1
- package/dist/src/components/request-line-editor.stories.d.ts +0 -11
- package/dist/src/components/request-line-editor.stories.d.ts.map +0 -1
- package/dist/src/index.stories.d.ts +0 -14
- package/dist/src/index.stories.d.ts.map +0 -1
- package/dist/src/index.stories.js +0 -19
- package/dist/src/index.stories.js.map +0 -1
- package/dist/src/shadcn/components/ui/accordion.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/accordion.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/alert-dialog.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/alert-dialog.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/alert.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/alert.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/avatar.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/avatar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/badge.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/badge.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/breadcrumb.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/breadcrumb.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/button.stories.d.ts +0 -23
- package/dist/src/shadcn/components/ui/button.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/calendar.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/calendar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/card.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/card.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/carousel.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/carousel.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/chart.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/chart.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/checkbox.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/checkbox.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/collapsible.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/collapsible.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/command.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/command.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/context-menu.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/context-menu.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/dialog.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/dialog.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/drawer.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/drawer.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/form.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/form.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/hover-card.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/hover-card.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/input-otp.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/input-otp.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/input.stories.d.ts +0 -18
- package/dist/src/shadcn/components/ui/input.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/label.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/label.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/menubar.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/menubar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/navigation-menu.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/navigation-menu.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/pagination.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/pagination.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/popover.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/popover.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/progress.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/progress.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/radio-group.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/radio-group.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/resizable.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/resizable.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/scroll-area.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/scroll-area.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/select.stories.d.ts +0 -11
- package/dist/src/shadcn/components/ui/select.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/separator.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/separator.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/sheet.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/sheet.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/sidebar.stories.d.ts +0 -11
- package/dist/src/shadcn/components/ui/sidebar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/skeleton.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/skeleton.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/slider.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/slider.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/sonner.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/sonner.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/switch.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/switch.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/table.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/table.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts +0 -32
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/textarea.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/textarea.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/toggle-group.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/toggle-group.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/toggle.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/toggle.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/tooltip.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/tooltip.stories.d.ts.map +0 -1
- package/src/index.stories.tsx +0 -21
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
import { foldInside, foldNodeProp, LanguageSupport, LRLanguage, syntaxTree } from "@codemirror/language";
|
|
2
|
+
import { RangeSetBuilder } from "@codemirror/state";
|
|
3
|
+
import { Decoration, EditorView, ViewPlugin } from "@codemirror/view";
|
|
4
|
+
import { parseMixed } from "@lezer/common";
|
|
5
|
+
import { styleTags, tags } from "@lezer/highlight";
|
|
6
|
+
import { parser } from "./grammar/http.js";
|
|
7
|
+
import { HttpRequestMethod } from "./grammar/http.terms.js";
|
|
8
|
+
function makeParser(bodyLanguages) {
|
|
9
|
+
return parser.configure({
|
|
10
|
+
props: [
|
|
11
|
+
styleTags({
|
|
12
|
+
HttpHeaderName: tags.variableName,
|
|
13
|
+
HttpHeaderValue: tags.attributeValue
|
|
14
|
+
}),
|
|
15
|
+
foldNodeProp.add({
|
|
16
|
+
HttpHeaders: foldInside
|
|
17
|
+
})
|
|
18
|
+
],
|
|
19
|
+
wrap: parseMixed((node, input)=>{
|
|
20
|
+
if (node.name !== "HttpBody") {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const headers = node.node.prevSibling;
|
|
24
|
+
if (headers?.name !== "HttpHeaders") {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
let contentType = null;
|
|
28
|
+
for(let child = headers.firstChild; child !== null; child = child.nextSibling){
|
|
29
|
+
const headerNameNode = child.getChild("HttpHeaderName");
|
|
30
|
+
if (headerNameNode === null) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const headerName = input.read(headerNameNode.from, headerNameNode.to);
|
|
34
|
+
if (headerName.toLowerCase() !== "content-type") {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (contentType !== null) {
|
|
38
|
+
// Disallow multiple content types
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const headerValueNode = child.getChild("HttpHeaderValue");
|
|
42
|
+
if (headerValueNode === null) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
contentType = input.read(headerValueNode.from, headerValueNode.to);
|
|
46
|
+
}
|
|
47
|
+
if (contentType === null) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const language = bodyLanguages(contentType);
|
|
51
|
+
if (language === null) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
parser: language.parser
|
|
56
|
+
};
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const methodDecorations = {
|
|
61
|
+
GET: Decoration.mark({
|
|
62
|
+
class: "cm-http-method-get"
|
|
63
|
+
}),
|
|
64
|
+
POST: Decoration.mark({
|
|
65
|
+
class: "cm-http-method-post"
|
|
66
|
+
}),
|
|
67
|
+
PUT: Decoration.mark({
|
|
68
|
+
class: "cm-http-method-put"
|
|
69
|
+
}),
|
|
70
|
+
PATCH: Decoration.mark({
|
|
71
|
+
class: "cm-http-method-patch"
|
|
72
|
+
}),
|
|
73
|
+
DELETE: Decoration.mark({
|
|
74
|
+
class: "cm-http-method-delete"
|
|
75
|
+
})
|
|
76
|
+
};
|
|
77
|
+
function buildMethodDecorations(view) {
|
|
78
|
+
const builder = new RangeSetBuilder();
|
|
79
|
+
const tree = syntaxTree(view.state);
|
|
80
|
+
tree.iterate({
|
|
81
|
+
enter (node) {
|
|
82
|
+
if (node.type.id === HttpRequestMethod) {
|
|
83
|
+
const text = view.state.sliceDoc(node.from, node.to).toUpperCase();
|
|
84
|
+
const deco = methodDecorations[text];
|
|
85
|
+
if (deco) {
|
|
86
|
+
builder.add(node.from, node.to, deco);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return builder.finish();
|
|
92
|
+
}
|
|
93
|
+
const httpMethodHighlighter = ViewPlugin.fromClass(class {
|
|
94
|
+
decorations;
|
|
95
|
+
constructor(view){
|
|
96
|
+
this.decorations = buildMethodDecorations(view);
|
|
97
|
+
}
|
|
98
|
+
update(update) {
|
|
99
|
+
if (update.docChanged || update.viewportChanged) {
|
|
100
|
+
this.decorations = buildMethodDecorations(update.view);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}, {
|
|
104
|
+
decorations: (v)=>v.decorations
|
|
105
|
+
});
|
|
106
|
+
const httpMethodTheme = EditorView.baseTheme({
|
|
107
|
+
".cm-http-method-get": {
|
|
108
|
+
color: "var(--color-utility-green)"
|
|
109
|
+
},
|
|
110
|
+
".cm-http-method-post": {
|
|
111
|
+
color: "var(--color-utility-yellow)"
|
|
112
|
+
},
|
|
113
|
+
".cm-http-method-put": {
|
|
114
|
+
color: "var(--color-utility-blue)"
|
|
115
|
+
},
|
|
116
|
+
".cm-http-method-patch": {
|
|
117
|
+
color: "var(--color-utility-violet)"
|
|
118
|
+
},
|
|
119
|
+
".cm-http-method-delete": {
|
|
120
|
+
color: "var(--color-utility-red)"
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
import { HttpHeaderName, HttpHeaders, HttpHeaderValue, HttpRequestPath } from "./grammar/http.terms.js";
|
|
124
|
+
const COMMON_HEADERS = [
|
|
125
|
+
// Standard HTTP
|
|
126
|
+
{
|
|
127
|
+
label: "Accept",
|
|
128
|
+
type: "header",
|
|
129
|
+
apply: "Accept: "
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
label: "Accept-Encoding",
|
|
133
|
+
type: "header",
|
|
134
|
+
apply: "Accept-Encoding: "
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
label: "Accept-Language",
|
|
138
|
+
type: "header",
|
|
139
|
+
apply: "Accept-Language: "
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
label: "Authorization",
|
|
143
|
+
type: "header",
|
|
144
|
+
apply: "Authorization: "
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
label: "Cache-Control",
|
|
148
|
+
type: "header",
|
|
149
|
+
apply: "Cache-Control: "
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
label: "Content-Type",
|
|
153
|
+
type: "header",
|
|
154
|
+
apply: "Content-Type: "
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
label: "Cookie",
|
|
158
|
+
type: "header",
|
|
159
|
+
apply: "Cookie: "
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
label: "Host",
|
|
163
|
+
type: "header",
|
|
164
|
+
apply: "Host: "
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
label: "If-Match",
|
|
168
|
+
type: "header",
|
|
169
|
+
apply: "If-Match: "
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
label: "If-Modified-Since",
|
|
173
|
+
type: "header",
|
|
174
|
+
apply: "If-Modified-Since: "
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
label: "If-None-Match",
|
|
178
|
+
type: "header",
|
|
179
|
+
apply: "If-None-Match: "
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
label: "Origin",
|
|
183
|
+
type: "header",
|
|
184
|
+
apply: "Origin: "
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
label: "Prefer",
|
|
188
|
+
type: "header",
|
|
189
|
+
apply: "Prefer: "
|
|
190
|
+
},
|
|
191
|
+
// Aidbox-specific
|
|
192
|
+
{
|
|
193
|
+
label: "x-audit",
|
|
194
|
+
type: "header",
|
|
195
|
+
apply: "x-audit: "
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
label: "x-correlation-id",
|
|
199
|
+
type: "header",
|
|
200
|
+
apply: "x-correlation-id: "
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
label: "x-debug",
|
|
204
|
+
type: "header",
|
|
205
|
+
apply: "x-debug: "
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
label: "x-external-user-id",
|
|
209
|
+
type: "header",
|
|
210
|
+
apply: "x-external-user-id: "
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
label: "x-max-isolation-level",
|
|
214
|
+
type: "header",
|
|
215
|
+
apply: "x-max-isolation-level: "
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
label: "x-original-uri",
|
|
219
|
+
type: "header",
|
|
220
|
+
apply: "x-original-uri: "
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
label: "x-request-id",
|
|
224
|
+
type: "header",
|
|
225
|
+
apply: "x-request-id: "
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
label: "x-use-ro-replica",
|
|
229
|
+
type: "header",
|
|
230
|
+
apply: "x-use-ro-replica: "
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
label: "su",
|
|
234
|
+
type: "header",
|
|
235
|
+
apply: "su: "
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
label: "traceparent",
|
|
239
|
+
type: "header",
|
|
240
|
+
apply: "traceparent: "
|
|
241
|
+
}
|
|
242
|
+
];
|
|
243
|
+
// Header value completions by header name
|
|
244
|
+
const HEADER_VALUES = {
|
|
245
|
+
"content-type": [
|
|
246
|
+
{
|
|
247
|
+
label: "application/json",
|
|
248
|
+
type: "text"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
label: "application/fhir+json",
|
|
252
|
+
type: "text"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
label: "text/yaml",
|
|
256
|
+
type: "text"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
label: "application/ndjson",
|
|
260
|
+
type: "text"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
label: "application/gzip",
|
|
264
|
+
type: "text"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
label: "text/csv",
|
|
268
|
+
type: "text"
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
accept: [
|
|
272
|
+
{
|
|
273
|
+
label: "application/json",
|
|
274
|
+
type: "text"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
label: "application/yaml",
|
|
278
|
+
type: "text"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
label: "text/yaml",
|
|
282
|
+
type: "text"
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
prefer: [
|
|
286
|
+
{
|
|
287
|
+
label: "respond-async",
|
|
288
|
+
type: "text"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
label: "return=minimal",
|
|
292
|
+
type: "text"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
label: "return=representation",
|
|
296
|
+
type: "text"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
label: "return=OperationOutcome",
|
|
300
|
+
type: "text"
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
"x-debug": [
|
|
304
|
+
{
|
|
305
|
+
label: "policy",
|
|
306
|
+
type: "text"
|
|
307
|
+
}
|
|
308
|
+
],
|
|
309
|
+
"x-max-isolation-level": [
|
|
310
|
+
{
|
|
311
|
+
label: "read-committed",
|
|
312
|
+
type: "text"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
label: "repeatable-read",
|
|
316
|
+
type: "text"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
label: "serializable",
|
|
320
|
+
type: "text"
|
|
321
|
+
}
|
|
322
|
+
],
|
|
323
|
+
"cache-control": [
|
|
324
|
+
{
|
|
325
|
+
label: "no-cache",
|
|
326
|
+
type: "text"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
label: "no-store",
|
|
330
|
+
type: "text"
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
label: "max-age=0",
|
|
334
|
+
type: "text"
|
|
335
|
+
}
|
|
336
|
+
],
|
|
337
|
+
authorization: [
|
|
338
|
+
{
|
|
339
|
+
label: "Bearer ",
|
|
340
|
+
type: "text"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
label: "Basic ",
|
|
344
|
+
type: "text"
|
|
345
|
+
}
|
|
346
|
+
]
|
|
347
|
+
};
|
|
348
|
+
const HTTP_METHODS = [
|
|
349
|
+
"GET",
|
|
350
|
+
"POST",
|
|
351
|
+
"PUT",
|
|
352
|
+
"PATCH",
|
|
353
|
+
"DELETE"
|
|
354
|
+
].map((method)=>({
|
|
355
|
+
label: method,
|
|
356
|
+
type: "keyword",
|
|
357
|
+
apply: (view, _c, from, to)=>{
|
|
358
|
+
const line = view.state.doc.lineAt(from);
|
|
359
|
+
const afterTo = line.text.slice(to - line.from);
|
|
360
|
+
// Skip whitespace after the method word to avoid double spaces
|
|
361
|
+
const wsMatch = afterTo.match(/^(\s*)/);
|
|
362
|
+
const actualTo = to + (wsMatch?.[1]?.length ?? 0);
|
|
363
|
+
const rest = line.text.slice(actualTo - line.from);
|
|
364
|
+
const insert = rest.startsWith("/") ? `${method} ` : `${method} /`;
|
|
365
|
+
view.dispatch({
|
|
366
|
+
changes: {
|
|
367
|
+
from,
|
|
368
|
+
to: actualTo,
|
|
369
|
+
insert
|
|
370
|
+
},
|
|
371
|
+
selection: {
|
|
372
|
+
anchor: from + insert.length
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
}));
|
|
377
|
+
function httpCompletionSource(context) {
|
|
378
|
+
const { state, pos } = context;
|
|
379
|
+
const tree = syntaxTree(state);
|
|
380
|
+
const node = tree.resolveInner(pos, -1);
|
|
381
|
+
const line = state.doc.lineAt(pos);
|
|
382
|
+
const beforeCursor = line.text.slice(0, pos - line.from);
|
|
383
|
+
// Request method completion — first line, typing method
|
|
384
|
+
if (node.type.id === HttpRequestMethod || line.number === 1 && /^\s*[a-zA-Z]*$/.test(beforeCursor)) {
|
|
385
|
+
const word = context.matchBefore(/[a-zA-Z]*/);
|
|
386
|
+
return {
|
|
387
|
+
from: word?.from ?? pos,
|
|
388
|
+
options: HTTP_METHODS,
|
|
389
|
+
validFor: /^[a-zA-Z]*$/i
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
// Header value completion — after colon
|
|
393
|
+
const colonIdx = beforeCursor.indexOf(":");
|
|
394
|
+
if (colonIdx >= 0) {
|
|
395
|
+
const inHeaderValue = node.type.id === HttpHeaderValue;
|
|
396
|
+
const parentIsHeaders = node.parent?.type.id === HttpHeaders;
|
|
397
|
+
if (!inHeaderValue && !parentIsHeaders && node.parent?.parent?.type.id !== HttpHeaders) return null;
|
|
398
|
+
const headerName = beforeCursor.slice(0, colonIdx).trim().toLowerCase();
|
|
399
|
+
const values = HEADER_VALUES[headerName];
|
|
400
|
+
if (!values) return null;
|
|
401
|
+
const word = context.matchBefore(/\S*/);
|
|
402
|
+
return {
|
|
403
|
+
from: word?.from ?? pos,
|
|
404
|
+
options: values,
|
|
405
|
+
validFor: /^\S*$/
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
// Header name completion — before colon
|
|
409
|
+
const inHeaderName = node.type.id === HttpHeaderName;
|
|
410
|
+
const inHeaders = node.type.id === HttpHeaders;
|
|
411
|
+
const parentIsHeaders = node.parent?.type.id === HttpHeaders;
|
|
412
|
+
if (!inHeaderName && !inHeaders && !parentIsHeaders) return null;
|
|
413
|
+
const word = context.matchBefore(/[\w-]+/);
|
|
414
|
+
if (!word) return null;
|
|
415
|
+
return {
|
|
416
|
+
from: word.from,
|
|
417
|
+
options: COMMON_HEADERS,
|
|
418
|
+
validFor: /^[\w-]+$/
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
function httpUrlCompletionSource(getUrlSuggestions) {
|
|
422
|
+
return async (context)=>{
|
|
423
|
+
const { state, pos } = context;
|
|
424
|
+
const tree = syntaxTree(state);
|
|
425
|
+
const node = tree.resolveInner(pos, -1);
|
|
426
|
+
if (node.type.id !== HttpRequestPath) return null;
|
|
427
|
+
const line = state.doc.lineAt(pos);
|
|
428
|
+
const lineText = line.text;
|
|
429
|
+
// Extract method from the beginning of the line
|
|
430
|
+
const methodMatch = lineText.match(/^\s*(\w+)\s+/);
|
|
431
|
+
if (!methodMatch?.[1]) return null;
|
|
432
|
+
const method = methodMatch[1].toUpperCase();
|
|
433
|
+
const pathStart = line.from + methodMatch[0].length;
|
|
434
|
+
const currentPath = state.sliceDoc(pathStart, pos);
|
|
435
|
+
const suggestions = await getUrlSuggestions(currentPath, method);
|
|
436
|
+
if (suggestions.length === 0) return null;
|
|
437
|
+
const options = suggestions.map((s)=>{
|
|
438
|
+
const c = {
|
|
439
|
+
label: s.label,
|
|
440
|
+
type: s.type === "resource-type" ? "type" : s.type === "operation" ? "function" : s.type === "search-param" ? "search-param" : "text"
|
|
441
|
+
};
|
|
442
|
+
if (s.type === "search-param") c.apply = `${s.label}=`;
|
|
443
|
+
else if (s.type === "path" && s.label === "fhir") c.apply = `${s.label}/`;
|
|
444
|
+
if (s.description) c.detail = s.description.toUpperCase();
|
|
445
|
+
if (s.expression) c.info = s.expression;
|
|
446
|
+
return c;
|
|
447
|
+
});
|
|
448
|
+
// Match from the last segment separator (/ or ? or &)
|
|
449
|
+
const hasQuery = currentPath.includes("?");
|
|
450
|
+
let from;
|
|
451
|
+
if (hasQuery) {
|
|
452
|
+
const lastSep = Math.max(currentPath.lastIndexOf("?"), currentPath.lastIndexOf("&"));
|
|
453
|
+
from = pathStart + lastSep + 1;
|
|
454
|
+
} else {
|
|
455
|
+
const lastSlash = currentPath.lastIndexOf("/");
|
|
456
|
+
from = pathStart + lastSlash + 1;
|
|
457
|
+
}
|
|
458
|
+
return {
|
|
459
|
+
from,
|
|
460
|
+
options,
|
|
461
|
+
validFor: /^[^\s&=]*/
|
|
462
|
+
};
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
function http(bodyLanguages, getUrlSuggestions) {
|
|
466
|
+
const parser = makeParser(bodyLanguages);
|
|
467
|
+
const language = LRLanguage.define({
|
|
468
|
+
parser: parser
|
|
469
|
+
});
|
|
470
|
+
const extensions = [
|
|
471
|
+
httpMethodHighlighter,
|
|
472
|
+
httpMethodTheme,
|
|
473
|
+
language.data.of({
|
|
474
|
+
autocomplete: httpCompletionSource
|
|
475
|
+
})
|
|
476
|
+
];
|
|
477
|
+
if (getUrlSuggestions) {
|
|
478
|
+
extensions.push(language.data.of({
|
|
479
|
+
autocomplete: httpUrlCompletionSource(getUrlSuggestions)
|
|
480
|
+
}));
|
|
481
|
+
}
|
|
482
|
+
return new LanguageSupport(language, extensions);
|
|
483
|
+
}
|
|
484
|
+
export { http };
|
|
485
|
+
|
|
486
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/code-editor/http/index.ts"],"sourcesContent":["import {\n\tfoldInside,\n\tfoldNodeProp,\n\ttype Language,\n\tLanguageSupport,\n\tLRLanguage,\n\tsyntaxTree,\n} from \"@codemirror/language\";\nimport { RangeSetBuilder } from \"@codemirror/state\";\nimport {\n\tDecoration,\n\ttype DecorationSet,\n\tEditorView,\n\tViewPlugin,\n\ttype ViewUpdate,\n} from \"@codemirror/view\";\nimport { parseMixed } from \"@lezer/common\";\nimport { styleTags, tags } from \"@lezer/highlight\";\nimport type { LRParser } from \"@lezer/lr\";\nimport { parser } from \"./grammar/http\";\nimport { HttpRequestMethod } from \"./grammar/http.terms\";\n\nfunction makeParser(\n\tbodyLanguages: (contentType: string) => Language | null,\n): LRParser {\n\treturn parser.configure({\n\t\tprops: [\n\t\t\tstyleTags({\n\t\t\t\tHttpHeaderName: tags.variableName,\n\t\t\t\tHttpHeaderValue: tags.attributeValue,\n\t\t\t}),\n\n\t\t\tfoldNodeProp.add({\n\t\t\t\tHttpHeaders: foldInside,\n\t\t\t}),\n\t\t],\n\t\twrap: parseMixed((node, input) => {\n\t\t\tif (node.name !== \"HttpBody\") {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst headers = node.node.prevSibling;\n\t\t\tif (headers?.name !== \"HttpHeaders\") {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet contentType: string | null = null;\n\n\t\t\tfor (\n\t\t\t\tlet child = headers.firstChild;\n\t\t\t\tchild !== null;\n\t\t\t\tchild = child.nextSibling\n\t\t\t) {\n\t\t\t\tconst headerNameNode = child.getChild(\"HttpHeaderName\");\n\t\t\t\tif (headerNameNode === null) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst headerName = input.read(headerNameNode.from, headerNameNode.to);\n\t\t\t\tif (headerName.toLowerCase() !== \"content-type\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (contentType !== null) {\n\t\t\t\t\t// Disallow multiple content types\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst headerValueNode = child.getChild(\"HttpHeaderValue\");\n\t\t\t\tif (headerValueNode === null) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcontentType = input.read(headerValueNode.from, headerValueNode.to);\n\t\t\t}\n\n\t\t\tif (contentType === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst language = bodyLanguages(contentType);\n\t\t\tif (language === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn { parser: language.parser };\n\t\t}),\n\t});\n}\n\nconst methodDecorations: Record<string, Decoration> = {\n\tGET: Decoration.mark({ class: \"cm-http-method-get\" }),\n\tPOST: Decoration.mark({ class: \"cm-http-method-post\" }),\n\tPUT: Decoration.mark({ class: \"cm-http-method-put\" }),\n\tPATCH: Decoration.mark({ class: \"cm-http-method-patch\" }),\n\tDELETE: Decoration.mark({ class: \"cm-http-method-delete\" }),\n};\n\nfunction buildMethodDecorations(view: EditorView): DecorationSet {\n\tconst builder = new RangeSetBuilder<Decoration>();\n\tconst tree = syntaxTree(view.state);\n\ttree.iterate({\n\t\tenter(node) {\n\t\t\tif (node.type.id === HttpRequestMethod) {\n\t\t\t\tconst text = view.state.sliceDoc(node.from, node.to).toUpperCase();\n\t\t\t\tconst deco = methodDecorations[text];\n\t\t\t\tif (deco) {\n\t\t\t\t\tbuilder.add(node.from, node.to, deco);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\treturn builder.finish();\n}\n\nconst httpMethodHighlighter = ViewPlugin.fromClass(\n\tclass {\n\t\tdecorations: DecorationSet;\n\t\tconstructor(view: EditorView) {\n\t\t\tthis.decorations = buildMethodDecorations(view);\n\t\t}\n\t\tupdate(update: ViewUpdate) {\n\t\t\tif (update.docChanged || update.viewportChanged) {\n\t\t\t\tthis.decorations = buildMethodDecorations(update.view);\n\t\t\t}\n\t\t}\n\t},\n\t{ decorations: (v) => v.decorations },\n);\n\nconst httpMethodTheme = EditorView.baseTheme({\n\t\".cm-http-method-get\": {\n\t\tcolor: \"var(--color-utility-green)\",\n\t},\n\t\".cm-http-method-post\": {\n\t\tcolor: \"var(--color-utility-yellow)\",\n\t},\n\t\".cm-http-method-put\": {\n\t\tcolor: \"var(--color-utility-blue)\",\n\t},\n\t\".cm-http-method-patch\": {\n\t\tcolor: \"var(--color-utility-violet)\",\n\t},\n\t\".cm-http-method-delete\": {\n\t\tcolor: \"var(--color-utility-red)\",\n\t},\n});\n\n// ── HTTP header autocomplete ────────────────────────────────────────────\n\nimport type {\n\tCompletion,\n\tCompletionContext,\n\tCompletionResult,\n} from \"@codemirror/autocomplete\";\nimport {\n\tHttpHeaderName,\n\tHttpHeaders,\n\tHttpHeaderValue,\n\tHttpRequestPath,\n} from \"./grammar/http.terms\";\n\nconst COMMON_HEADERS: Completion[] = [\n\t// Standard HTTP\n\t{ label: \"Accept\", type: \"header\", apply: \"Accept: \" },\n\t{ label: \"Accept-Encoding\", type: \"header\", apply: \"Accept-Encoding: \" },\n\t{ label: \"Accept-Language\", type: \"header\", apply: \"Accept-Language: \" },\n\t{ label: \"Authorization\", type: \"header\", apply: \"Authorization: \" },\n\t{ label: \"Cache-Control\", type: \"header\", apply: \"Cache-Control: \" },\n\t{ label: \"Content-Type\", type: \"header\", apply: \"Content-Type: \" },\n\t{ label: \"Cookie\", type: \"header\", apply: \"Cookie: \" },\n\t{ label: \"Host\", type: \"header\", apply: \"Host: \" },\n\t{ label: \"If-Match\", type: \"header\", apply: \"If-Match: \" },\n\t{ label: \"If-Modified-Since\", type: \"header\", apply: \"If-Modified-Since: \" },\n\t{ label: \"If-None-Match\", type: \"header\", apply: \"If-None-Match: \" },\n\t{ label: \"Origin\", type: \"header\", apply: \"Origin: \" },\n\t{ label: \"Prefer\", type: \"header\", apply: \"Prefer: \" },\n\t// Aidbox-specific\n\t{ label: \"x-audit\", type: \"header\", apply: \"x-audit: \" },\n\t{ label: \"x-correlation-id\", type: \"header\", apply: \"x-correlation-id: \" },\n\t{ label: \"x-debug\", type: \"header\", apply: \"x-debug: \" },\n\t{\n\t\tlabel: \"x-external-user-id\",\n\t\ttype: \"header\",\n\t\tapply: \"x-external-user-id: \",\n\t},\n\t{\n\t\tlabel: \"x-max-isolation-level\",\n\t\ttype: \"header\",\n\t\tapply: \"x-max-isolation-level: \",\n\t},\n\t{ label: \"x-original-uri\", type: \"header\", apply: \"x-original-uri: \" },\n\t{ label: \"x-request-id\", type: \"header\", apply: \"x-request-id: \" },\n\t{ label: \"x-use-ro-replica\", type: \"header\", apply: \"x-use-ro-replica: \" },\n\t{ label: \"su\", type: \"header\", apply: \"su: \" },\n\t{ label: \"traceparent\", type: \"header\", apply: \"traceparent: \" },\n];\n\n// Header value completions by header name\nconst HEADER_VALUES: Record<string, Completion[]> = {\n\t\"content-type\": [\n\t\t{ label: \"application/json\", type: \"text\" },\n\t\t{ label: \"application/fhir+json\", type: \"text\" },\n\t\t{ label: \"text/yaml\", type: \"text\" },\n\t\t{ label: \"application/ndjson\", type: \"text\" },\n\t\t{ label: \"application/gzip\", type: \"text\" },\n\t\t{ label: \"text/csv\", type: \"text\" },\n\t],\n\taccept: [\n\t\t{ label: \"application/json\", type: \"text\" },\n\t\t{ label: \"application/yaml\", type: \"text\" },\n\t\t{ label: \"text/yaml\", type: \"text\" },\n\t],\n\tprefer: [\n\t\t{ label: \"respond-async\", type: \"text\" },\n\t\t{ label: \"return=minimal\", type: \"text\" },\n\t\t{ label: \"return=representation\", type: \"text\" },\n\t\t{ label: \"return=OperationOutcome\", type: \"text\" },\n\t],\n\t\"x-debug\": [{ label: \"policy\", type: \"text\" }],\n\t\"x-max-isolation-level\": [\n\t\t{ label: \"read-committed\", type: \"text\" },\n\t\t{ label: \"repeatable-read\", type: \"text\" },\n\t\t{ label: \"serializable\", type: \"text\" },\n\t],\n\t\"cache-control\": [\n\t\t{ label: \"no-cache\", type: \"text\" },\n\t\t{ label: \"no-store\", type: \"text\" },\n\t\t{ label: \"max-age=0\", type: \"text\" },\n\t],\n\tauthorization: [\n\t\t{ label: \"Bearer \", type: \"text\" },\n\t\t{ label: \"Basic \", type: \"text\" },\n\t],\n};\n\nconst HTTP_METHODS: Completion[] = [\n\t\"GET\",\n\t\"POST\",\n\t\"PUT\",\n\t\"PATCH\",\n\t\"DELETE\",\n].map((method) => ({\n\tlabel: method,\n\ttype: \"keyword\" as const,\n\tapply: (view: EditorView, _c: Completion, from: number, to: number) => {\n\t\tconst line = view.state.doc.lineAt(from);\n\t\tconst afterTo = line.text.slice(to - line.from);\n\t\t// Skip whitespace after the method word to avoid double spaces\n\t\tconst wsMatch = afterTo.match(/^(\\s*)/);\n\t\tconst actualTo = to + (wsMatch?.[1]?.length ?? 0);\n\t\tconst rest = line.text.slice(actualTo - line.from);\n\t\tconst insert = rest.startsWith(\"/\") ? `${method} ` : `${method} /`;\n\t\tview.dispatch({\n\t\t\tchanges: { from, to: actualTo, insert },\n\t\t\tselection: { anchor: from + insert.length },\n\t\t});\n\t},\n}));\n\nfunction httpCompletionSource(\n\tcontext: CompletionContext,\n): CompletionResult | null {\n\tconst { state, pos } = context;\n\tconst tree = syntaxTree(state);\n\tconst node = tree.resolveInner(pos, -1);\n\n\tconst line = state.doc.lineAt(pos);\n\tconst beforeCursor = line.text.slice(0, pos - line.from);\n\n\t// Request method completion — first line, typing method\n\tif (\n\t\tnode.type.id === HttpRequestMethod ||\n\t\t(line.number === 1 && /^\\s*[a-zA-Z]*$/.test(beforeCursor))\n\t) {\n\t\tconst word = context.matchBefore(/[a-zA-Z]*/);\n\t\treturn {\n\t\t\tfrom: word?.from ?? pos,\n\t\t\toptions: HTTP_METHODS,\n\t\t\tvalidFor: /^[a-zA-Z]*$/i,\n\t\t};\n\t}\n\n\t// Header value completion — after colon\n\tconst colonIdx = beforeCursor.indexOf(\":\");\n\tif (colonIdx >= 0) {\n\t\tconst inHeaderValue = node.type.id === HttpHeaderValue;\n\t\tconst parentIsHeaders = node.parent?.type.id === HttpHeaders;\n\t\tif (\n\t\t\t!inHeaderValue &&\n\t\t\t!parentIsHeaders &&\n\t\t\tnode.parent?.parent?.type.id !== HttpHeaders\n\t\t)\n\t\t\treturn null;\n\n\t\tconst headerName = beforeCursor.slice(0, colonIdx).trim().toLowerCase();\n\t\tconst values = HEADER_VALUES[headerName];\n\t\tif (!values) return null;\n\n\t\tconst word = context.matchBefore(/\\S*/);\n\t\treturn {\n\t\t\tfrom: word?.from ?? pos,\n\t\t\toptions: values,\n\t\t\tvalidFor: /^\\S*$/,\n\t\t};\n\t}\n\n\t// Header name completion — before colon\n\tconst inHeaderName = node.type.id === HttpHeaderName;\n\tconst inHeaders = node.type.id === HttpHeaders;\n\tconst parentIsHeaders = node.parent?.type.id === HttpHeaders;\n\n\tif (!inHeaderName && !inHeaders && !parentIsHeaders) return null;\n\n\tconst word = context.matchBefore(/[\\w-]+/);\n\tif (!word) return null;\n\treturn {\n\t\tfrom: word.from,\n\t\toptions: COMMON_HEADERS,\n\t\tvalidFor: /^[\\w-]+$/,\n\t};\n}\n\nexport interface UrlSuggestion {\n\tlabel: string;\n\tvalue: string;\n\ttype?: string;\n\tdescription?: string;\n\texpression?: string;\n}\n\nexport type GetUrlSuggestions = (\n\tpath: string,\n\tmethod: string,\n) => UrlSuggestion[] | Promise<UrlSuggestion[]>;\n\nfunction httpUrlCompletionSource(\n\tgetUrlSuggestions: GetUrlSuggestions,\n): (context: CompletionContext) => Promise<CompletionResult | null> {\n\treturn async (\n\t\tcontext: CompletionContext,\n\t): Promise<CompletionResult | null> => {\n\t\tconst { state, pos } = context;\n\t\tconst tree = syntaxTree(state);\n\t\tconst node = tree.resolveInner(pos, -1);\n\n\t\tif (node.type.id !== HttpRequestPath) return null;\n\n\t\tconst line = state.doc.lineAt(pos);\n\t\tconst lineText = line.text;\n\t\t// Extract method from the beginning of the line\n\t\tconst methodMatch = lineText.match(/^\\s*(\\w+)\\s+/);\n\t\tif (!methodMatch?.[1]) return null;\n\t\tconst method = methodMatch[1].toUpperCase();\n\n\t\tconst pathStart = line.from + methodMatch[0].length;\n\t\tconst currentPath = state.sliceDoc(pathStart, pos);\n\n\t\tconst suggestions = await getUrlSuggestions(currentPath, method);\n\t\tif (suggestions.length === 0) return null;\n\n\t\tconst options: Completion[] = suggestions.map((s) => {\n\t\t\tconst c: Completion = {\n\t\t\t\tlabel: s.label,\n\t\t\t\ttype:\n\t\t\t\t\ts.type === \"resource-type\"\n\t\t\t\t\t\t? \"type\"\n\t\t\t\t\t\t: s.type === \"operation\"\n\t\t\t\t\t\t\t? \"function\"\n\t\t\t\t\t\t\t: s.type === \"search-param\"\n\t\t\t\t\t\t\t\t? \"search-param\"\n\t\t\t\t\t\t\t\t: \"text\",\n\t\t\t};\n\t\t\tif (s.type === \"search-param\") c.apply = `${s.label}=`;\n\t\t\telse if (s.type === \"path\" && s.label === \"fhir\") c.apply = `${s.label}/`;\n\t\t\tif (s.description) c.detail = s.description.toUpperCase();\n\t\t\tif (s.expression) c.info = s.expression;\n\t\t\treturn c;\n\t\t});\n\n\t\t// Match from the last segment separator (/ or ? or &)\n\t\tconst hasQuery = currentPath.includes(\"?\");\n\t\tlet from: number;\n\t\tif (hasQuery) {\n\t\t\tconst lastSep = Math.max(\n\t\t\t\tcurrentPath.lastIndexOf(\"?\"),\n\t\t\t\tcurrentPath.lastIndexOf(\"&\"),\n\t\t\t);\n\t\t\tfrom = pathStart + lastSep + 1;\n\t\t} else {\n\t\t\tconst lastSlash = currentPath.lastIndexOf(\"/\");\n\t\t\tfrom = pathStart + lastSlash + 1;\n\t\t}\n\n\t\treturn {\n\t\t\tfrom,\n\t\t\toptions,\n\t\t\tvalidFor: /^[^\\s&=]*/,\n\t\t};\n\t};\n}\n\nfunction http(\n\tbodyLanguages: (contentType: string) => Language | null,\n\tgetUrlSuggestions?: GetUrlSuggestions,\n) {\n\tconst parser = makeParser(bodyLanguages);\n\tconst language = LRLanguage.define({ parser: parser });\n\tconst extensions = [\n\t\thttpMethodHighlighter,\n\t\thttpMethodTheme,\n\t\tlanguage.data.of({ autocomplete: httpCompletionSource }),\n\t];\n\tif (getUrlSuggestions) {\n\t\textensions.push(\n\t\t\tlanguage.data.of({\n\t\t\t\tautocomplete: httpUrlCompletionSource(getUrlSuggestions),\n\t\t\t}),\n\t\t);\n\t}\n\treturn new LanguageSupport(language, extensions);\n}\n\nexport { http };\n"],"names":["foldInside","foldNodeProp","LanguageSupport","LRLanguage","syntaxTree","RangeSetBuilder","Decoration","EditorView","ViewPlugin","parseMixed","styleTags","tags","parser","HttpRequestMethod","makeParser","bodyLanguages","configure","props","HttpHeaderName","variableName","HttpHeaderValue","attributeValue","add","HttpHeaders","wrap","node","input","name","headers","prevSibling","contentType","child","firstChild","nextSibling","headerNameNode","getChild","headerName","read","from","to","toLowerCase","headerValueNode","language","methodDecorations","GET","mark","class","POST","PUT","PATCH","DELETE","buildMethodDecorations","view","builder","tree","state","iterate","enter","type","id","text","sliceDoc","toUpperCase","deco","finish","httpMethodHighlighter","fromClass","decorations","update","docChanged","viewportChanged","v","httpMethodTheme","baseTheme","color","HttpRequestPath","COMMON_HEADERS","label","apply","HEADER_VALUES","accept","prefer","authorization","HTTP_METHODS","map","method","_c","line","doc","lineAt","afterTo","slice","wsMatch","match","actualTo","length","rest","insert","startsWith","dispatch","changes","selection","anchor","httpCompletionSource","context","pos","resolveInner","beforeCursor","number","test","word","matchBefore","options","validFor","colonIdx","indexOf","inHeaderValue","parentIsHeaders","parent","trim","values","inHeaderName","inHeaders","httpUrlCompletionSource","getUrlSuggestions","lineText","methodMatch","pathStart","currentPath","suggestions","s","c","description","detail","expression","info","hasQuery","includes","lastSep","Math","max","lastIndexOf","lastSlash","http","define","extensions","data","of","autocomplete","push"],"mappings":"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"}
|
|
@@ -1,5 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
import { type Extension } from "@codemirror/state";
|
|
2
|
+
import { EditorView, type ViewUpdate } from "@codemirror/view";
|
|
3
|
+
import { type ExpandValueSet, type GetStructureDefinitions } from "./fhir-autocomplete";
|
|
4
|
+
import { type GetUrlSuggestions } from "./http";
|
|
5
|
+
import { type SqlConfig } from "./sql-completion";
|
|
6
|
+
type LanguageMode = "json" | "http" | "sql" | "yaml";
|
|
7
|
+
type CodeEditorProps = {
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
isReadOnlyTheme?: boolean;
|
|
2
10
|
defaultValue?: string;
|
|
11
|
+
currentValue?: string;
|
|
12
|
+
onChange?: (value: string) => void;
|
|
13
|
+
onUpdate?: (update: ViewUpdate) => void;
|
|
14
|
+
id?: string;
|
|
15
|
+
mode?: LanguageMode;
|
|
16
|
+
viewCallback?: (view: EditorView) => void;
|
|
17
|
+
additionalExtensions?: Extension[];
|
|
18
|
+
issueLineNumbers?: {
|
|
19
|
+
line: number;
|
|
20
|
+
message?: string;
|
|
21
|
+
}[];
|
|
22
|
+
foldGutter?: boolean;
|
|
23
|
+
lineNumbers?: boolean;
|
|
24
|
+
sql?: SqlConfig;
|
|
25
|
+
getStructureDefinitions?: GetStructureDefinitions;
|
|
26
|
+
resourceTypeHint?: string;
|
|
27
|
+
expandValueSet?: ExpandValueSet;
|
|
28
|
+
getUrlSuggestions?: GetUrlSuggestions;
|
|
29
|
+
vimMode?: boolean;
|
|
30
|
+
};
|
|
31
|
+
export type CodeEditorView = EditorView;
|
|
32
|
+
export type { ExpandValueSet, GetStructureDefinitions, } from "./fhir-autocomplete";
|
|
33
|
+
export type { GetUrlSuggestions } from "./http";
|
|
34
|
+
export type { SqlConfig, SqlMetadata, SqlQueryType, } from "./sql-completion";
|
|
35
|
+
export declare function CodeEditor({ defaultValue, currentValue, onChange, onUpdate, viewCallback, readOnly, id, mode, isReadOnlyTheme, additionalExtensions, issueLineNumbers, foldGutter: enableFoldGutter, lineNumbers: enableLineNumbers, sql, getStructureDefinitions, resourceTypeHint, expandValueSet, getUrlSuggestions, vimMode, }: CodeEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export declare function EditorInput({ additionalExtensions, id, defaultValue, currentValue, onChange, }: {
|
|
37
|
+
additionalExtensions?: Extension[];
|
|
38
|
+
id: string;
|
|
39
|
+
defaultValue?: string;
|
|
40
|
+
currentValue?: string;
|
|
3
41
|
onChange?: (value: string) => void;
|
|
4
42
|
}): import("react/jsx-runtime").JSX.Element;
|
|
5
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/code-editor/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/code-editor/index.tsx"],"names":[],"mappings":"AAmCA,OAAO,EAGN,KAAK,SAAS,EAKd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAKN,UAAU,EAOV,KAAK,UAAU,EACf,MAAM,kBAAkB,CAAC;AAsB1B,OAAO,EAEN,KAAK,cAAc,EAEnB,KAAK,uBAAuB,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,iBAAiB,EAAQ,MAAM,QAAQ,CAAC;AACtD,OAAO,EAGN,KAAK,SAAS,EACd,MAAM,kBAAkB,CAAC;AAsoC1B,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AA+GrD,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,YAAY,EACX,cAAc,EACd,uBAAuB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,YAAY,EACX,SAAS,EACT,WAAW,EACX,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,UAAU,CAAC,EAC1B,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,QAAgB,EAChB,EAAE,EACF,IAAa,EACb,eAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EAAE,gBAAuB,EACnC,WAAW,EAAE,iBAAwB,EACrC,GAAG,EACH,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,OAAe,GACf,EAAE,eAAe,2CAqVjB;AAyKD,wBAAgB,WAAW,CAAC,EAC3B,oBAAoB,EACpB,EAAE,EACF,YAAY,EACZ,YAAY,EACZ,QAAQ,GACR,EAAE;IACF,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,2CA4GA"}
|