shelving 1.236.0 → 1.236.2
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/api/cache/APICache.d.ts +69 -6
- package/api/cache/APICache.js +61 -5
- package/api/cache/EndpointCache.d.ts +75 -7
- package/api/cache/EndpointCache.js +75 -7
- package/api/endpoint/Endpoint.d.ts +141 -25
- package/api/endpoint/Endpoint.js +55 -9
- package/api/endpoint/util.d.ts +28 -6
- package/api/provider/APIProvider.d.ts +58 -14
- package/api/provider/APIProvider.js +24 -2
- package/api/provider/CachedAPIProvider.d.ts +58 -5
- package/api/provider/CachedAPIProvider.js +58 -6
- package/api/provider/ClientAPIProvider.d.ts +80 -4
- package/api/provider/ClientAPIProvider.js +75 -4
- package/api/provider/DebugAPIProvider.d.ts +40 -1
- package/api/provider/DebugAPIProvider.js +40 -1
- package/api/provider/JSONAPIProvider.d.ts +18 -2
- package/api/provider/JSONAPIProvider.js +18 -2
- package/api/provider/LoggingAPIProvider.d.ts +25 -2
- package/api/provider/LoggingAPIProvider.js +25 -2
- package/api/provider/MockAPIProvider.d.ts +72 -1
- package/api/provider/MockAPIProvider.js +60 -4
- package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
- package/api/provider/MockEndpointAPIProvider.js +9 -0
- package/api/provider/ThroughAPIProvider.d.ts +67 -1
- package/api/provider/ThroughAPIProvider.js +67 -1
- package/api/provider/ValidationAPIProvider.d.ts +32 -1
- package/api/provider/ValidationAPIProvider.js +32 -1
- package/api/provider/XMLAPIProvider.d.ts +18 -2
- package/api/provider/XMLAPIProvider.js +18 -2
- package/api/store/EndpointStore.d.ts +24 -1
- package/api/store/EndpointStore.js +24 -1
- package/bun/BunPostgreSQLProvider.d.ts +38 -0
- package/bun/BunPostgreSQLProvider.js +38 -2
- package/cloudflare/CloudflareD1Provider.d.ts +29 -2
- package/cloudflare/CloudflareD1Provider.js +29 -2
- package/cloudflare/CloudflareKVProvider.d.ts +115 -0
- package/cloudflare/CloudflareKVProvider.js +115 -0
- package/cloudflare/types.d.ts +41 -7
- package/db/cache/CollectionCache.d.ts +83 -7
- package/db/cache/CollectionCache.js +83 -7
- package/db/cache/DBCache.d.ts +93 -8
- package/db/cache/DBCache.js +85 -7
- package/db/collection/Collection.d.ts +103 -15
- package/db/collection/Collection.js +58 -6
- package/db/migrate/DBMigrator.d.ts +29 -1
- package/db/migrate/DBMigrator.js +20 -1
- package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
- package/db/migrate/PostgreSQLMigrator.js +8 -1
- package/db/migrate/SQLMigrator.d.ts +63 -4
- package/db/migrate/SQLMigrator.js +51 -1
- package/db/migrate/SQLiteMigrator.d.ts +8 -1
- package/db/migrate/SQLiteMigrator.js +8 -1
- package/db/provider/CacheDBProvider.d.ts +135 -1
- package/db/provider/CacheDBProvider.js +135 -1
- package/db/provider/ChangesDBProvider.d.ts +84 -3
- package/db/provider/ChangesDBProvider.js +77 -2
- package/db/provider/DBProvider.d.ts +148 -1
- package/db/provider/DBProvider.js +51 -1
- package/db/provider/DebugDBProvider.d.ts +118 -1
- package/db/provider/DebugDBProvider.js +118 -1
- package/db/provider/MemoryDBProvider.d.ts +262 -7
- package/db/provider/MemoryDBProvider.js +262 -7
- package/db/provider/MockDBProvider.d.ts +113 -2
- package/db/provider/MockDBProvider.js +106 -1
- package/db/provider/PostgreSQLProvider.d.ts +34 -2
- package/db/provider/PostgreSQLProvider.js +34 -4
- package/db/provider/SQLProvider.d.ts +250 -14
- package/db/provider/SQLProvider.js +237 -13
- package/db/provider/SQLiteProvider.d.ts +41 -1
- package/db/provider/SQLiteProvider.js +41 -4
- package/db/provider/ThroughDBProvider.d.ts +156 -1
- package/db/provider/ThroughDBProvider.js +156 -1
- package/db/provider/ValidationDBProvider.d.ts +120 -1
- package/db/provider/ValidationDBProvider.js +120 -1
- package/db/store/ItemStore.d.ts +38 -2
- package/db/store/ItemStore.js +38 -2
- package/db/store/QueryStore.d.ts +64 -6
- package/db/store/QueryStore.js +64 -6
- package/error/BaseError.d.ts +27 -2
- package/error/BaseError.js +14 -0
- package/error/Errors.d.ts +12 -1
- package/error/Errors.js +12 -1
- package/error/NetworkError.d.ts +13 -1
- package/error/NetworkError.js +13 -1
- package/error/RequestError.d.ts +90 -7
- package/error/RequestError.js +90 -7
- package/error/RequiredError.d.ts +11 -1
- package/error/RequiredError.js +11 -1
- package/error/ResponseError.d.ts +19 -2
- package/error/ResponseError.js +19 -2
- package/error/UnexpectedError.d.ts +14 -1
- package/error/UnexpectedError.js +14 -1
- package/error/UnimplementedError.d.ts +13 -1
- package/error/UnimplementedError.js +13 -1
- package/error/ValueError.d.ts +14 -1
- package/error/ValueError.js +14 -1
- package/extract/DirectoryExtractor.d.ts +35 -1
- package/extract/DirectoryExtractor.js +30 -0
- package/extract/Extractor.d.ts +21 -2
- package/extract/Extractor.js +7 -1
- package/extract/FileExtractor.d.ts +18 -0
- package/extract/FileExtractor.js +18 -0
- package/extract/IndexExtractor.d.ts +36 -1
- package/extract/IndexExtractor.js +31 -0
- package/extract/MarkupExtractor.d.ts +15 -0
- package/extract/MarkupExtractor.js +15 -0
- package/extract/MergingExtractor.d.ts +36 -1
- package/extract/MergingExtractor.js +31 -0
- package/extract/ModuleExtractor.d.ts +25 -1
- package/extract/ModuleExtractor.js +20 -0
- package/extract/PackageExtractor.d.ts +36 -1
- package/extract/PackageExtractor.js +31 -0
- package/extract/ThroughExtractor.d.ts +22 -1
- package/extract/ThroughExtractor.js +22 -1
- package/extract/TypescriptExtractor.d.ts +21 -0
- package/extract/TypescriptExtractor.js +28 -3
- package/firestore/client/FirestoreClientProvider.d.ts +129 -4
- package/firestore/client/FirestoreClientProvider.js +129 -4
- package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
- package/firestore/lite/FirestoreLiteProvider.js +128 -3
- package/firestore/server/FirestoreServerProvider.d.ts +129 -2
- package/firestore/server/FirestoreServerProvider.js +129 -2
- package/markup/MarkupParser.d.ts +57 -10
- package/markup/MarkupParser.js +50 -9
- package/markup/MarkupRule.d.ts +34 -1
- package/markup/Parser.d.ts +18 -0
- package/markup/Parser.js +11 -0
- package/markup/rule/blockquote.d.ts +3 -0
- package/markup/rule/blockquote.js +3 -0
- package/markup/rule/code.d.ts +3 -0
- package/markup/rule/code.js +3 -0
- package/markup/rule/fenced.d.ts +3 -0
- package/markup/rule/fenced.js +3 -0
- package/markup/rule/heading.d.ts +3 -0
- package/markup/rule/heading.js +3 -0
- package/markup/rule/index.d.ts +16 -3
- package/markup/rule/index.js +16 -3
- package/markup/rule/inline.d.ts +4 -1
- package/markup/rule/inline.js +5 -2
- package/markup/rule/linebreak.d.ts +3 -0
- package/markup/rule/linebreak.js +3 -0
- package/markup/rule/link.d.ts +6 -0
- package/markup/rule/link.js +6 -0
- package/markup/rule/ordered.d.ts +3 -0
- package/markup/rule/ordered.js +3 -0
- package/markup/rule/paragraph.d.ts +3 -0
- package/markup/rule/paragraph.js +3 -0
- package/markup/rule/separator.d.ts +3 -0
- package/markup/rule/separator.js +3 -0
- package/markup/rule/table.d.ts +3 -0
- package/markup/rule/table.js +3 -0
- package/markup/rule/unordered.d.ts +3 -0
- package/markup/rule/unordered.js +3 -0
- package/markup/util/regexp.d.ts +80 -3
- package/markup/util/regexp.js +44 -0
- package/package.json +1 -1
- package/react/createAPIContext.d.ts +15 -0
- package/react/createAPIContext.js +10 -0
- package/react/createDBContext.d.ts +15 -0
- package/react/createDBContext.js +10 -0
- package/react/useInstance.d.ts +11 -0
- package/react/useInstance.js +11 -0
- package/react/useLazy.d.ts +11 -0
- package/react/useMap.d.ts +14 -1
- package/react/useMap.js +14 -1
- package/react/useReduce.d.ts +12 -0
- package/react/useSequence.d.ts +10 -0
- package/react/useSequence.js +10 -0
- package/react/useStore.d.ts +16 -1
- package/schema/AddressSchema.d.ts +41 -4
- package/schema/AddressSchema.js +36 -3
- package/schema/ArraySchema.d.ts +48 -6
- package/schema/ArraySchema.js +40 -5
- package/schema/BooleanSchema.d.ts +59 -3
- package/schema/BooleanSchema.js +51 -2
- package/schema/ChoiceSchema.d.ts +61 -7
- package/schema/ChoiceSchema.js +44 -2
- package/schema/ColorSchema.d.ts +41 -8
- package/schema/ColorSchema.js +36 -7
- package/schema/CountrySchema.d.ts +44 -4
- package/schema/CountrySchema.js +39 -3
- package/schema/CurrencyAmountSchema.d.ts +104 -8
- package/schema/CurrencyAmountSchema.js +91 -4
- package/schema/CurrencyCodeSchema.d.ts +56 -4
- package/schema/CurrencyCodeSchema.js +49 -3
- package/schema/DataSchema.d.ts +101 -10
- package/schema/DataSchema.js +87 -8
- package/schema/DateSchema.d.ts +73 -4
- package/schema/DateSchema.js +57 -2
- package/schema/DateTimeSchema.d.ts +40 -3
- package/schema/DateTimeSchema.js +40 -3
- package/schema/DictionarySchema.d.ts +54 -4
- package/schema/DictionarySchema.js +47 -3
- package/schema/EmailSchema.d.ts +34 -3
- package/schema/EmailSchema.js +34 -3
- package/schema/EntitySchema.d.ts +45 -4
- package/schema/EntitySchema.js +38 -3
- package/schema/FileSchema.d.ts +45 -4
- package/schema/FileSchema.js +39 -3
- package/schema/KeySchema.d.ts +32 -3
- package/schema/KeySchema.js +32 -3
- package/schema/NullableSchema.d.ts +64 -4
- package/schema/NullableSchema.js +59 -3
- package/schema/NumberSchema.d.ts +137 -12
- package/schema/NumberSchema.js +127 -11
- package/schema/OptionalSchema.d.ts +61 -4
- package/schema/OptionalSchema.js +56 -4
- package/schema/PasswordSchema.d.ts +37 -1
- package/schema/PasswordSchema.js +32 -1
- package/schema/PhoneSchema.d.ts +40 -4
- package/schema/PhoneSchema.js +35 -3
- package/schema/RequiredSchema.d.ts +39 -3
- package/schema/RequiredSchema.js +41 -3
- package/schema/Schema.d.ts +67 -7
- package/schema/Schema.js +42 -6
- package/schema/SlugSchema.d.ts +37 -5
- package/schema/SlugSchema.js +37 -5
- package/schema/StringSchema.d.ts +124 -19
- package/schema/StringSchema.js +107 -17
- package/schema/ThroughSchema.d.ts +35 -2
- package/schema/ThroughSchema.js +30 -1
- package/schema/TimeSchema.d.ts +43 -3
- package/schema/TimeSchema.js +43 -3
- package/schema/URISchema.d.ts +67 -6
- package/schema/URISchema.js +60 -6
- package/schema/URLSchema.d.ts +69 -6
- package/schema/URLSchema.js +61 -6
- package/schema/UUIDSchema.d.ts +37 -4
- package/schema/UUIDSchema.js +37 -4
- package/sequence/DeferredSequence.d.ts +49 -3
- package/sequence/DeferredSequence.js +39 -3
- package/sequence/InspectSequence.d.ts +59 -5
- package/sequence/InspectSequence.js +59 -5
- package/sequence/LazySequence.d.ts +30 -2
- package/sequence/LazySequence.js +30 -2
- package/sequence/Sequence.d.ts +11 -0
- package/sequence/Sequence.js +10 -0
- package/sequence/ThroughSequence.d.ts +15 -0
- package/sequence/ThroughSequence.js +15 -0
- package/store/ArrayStore.d.ts +74 -11
- package/store/ArrayStore.js +74 -11
- package/store/BooleanStore.d.ts +19 -2
- package/store/BooleanStore.js +19 -2
- package/store/BusyStore.d.ts +13 -1
- package/store/BusyStore.js +13 -1
- package/store/DataStore.d.ts +118 -15
- package/store/DataStore.js +118 -15
- package/store/DictionaryStore.d.ts +66 -8
- package/store/DictionaryStore.js +66 -8
- package/store/FetchStore.d.ts +43 -6
- package/store/FetchStore.js +36 -5
- package/store/PathStore.d.ts +44 -5
- package/store/PathStore.js +44 -5
- package/store/PayloadFetchStore.d.ts +16 -1
- package/store/PayloadFetchStore.js +9 -1
- package/store/Store.d.ts +85 -16
- package/store/Store.js +52 -10
- package/store/URLStore.d.ts +173 -15
- package/store/URLStore.js +173 -15
- package/test/basics.d.ts +70 -0
- package/test/basics.js +60 -0
- package/test/people.d.ts +45 -0
- package/test/people.js +35 -0
- package/test/util.d.ts +30 -3
- package/test/util.js +30 -3
- package/ui/app/App.d.ts +14 -2
- package/ui/app/App.js +9 -2
- package/ui/app/App.tsx +14 -2
- package/ui/block/Address.d.ts +45 -3
- package/ui/block/Address.js +30 -3
- package/ui/block/Address.tsx +46 -3
- package/ui/block/Block.d.ts +23 -1
- package/ui/block/Block.js +13 -1
- package/ui/block/Block.tsx +23 -1
- package/ui/block/Blockquote.d.ts +21 -0
- package/ui/block/Blockquote.js +16 -0
- package/ui/block/Blockquote.tsx +22 -0
- package/ui/block/Caption.d.ts +21 -1
- package/ui/block/Caption.js +16 -1
- package/ui/block/Caption.tsx +22 -1
- package/ui/block/Card.d.ts +6 -0
- package/ui/block/Card.js +1 -0
- package/ui/block/Card.tsx +6 -0
- package/ui/block/Definitions.d.ts +18 -0
- package/ui/block/Definitions.js +13 -0
- package/ui/block/Definitions.tsx +19 -0
- package/ui/block/Divider.d.ts +21 -0
- package/ui/block/Divider.js +16 -0
- package/ui/block/Divider.tsx +22 -0
- package/ui/block/Heading.d.ts +20 -1
- package/ui/block/Heading.js +15 -0
- package/ui/block/Heading.tsx +21 -1
- package/ui/block/Image.d.ts +23 -0
- package/ui/block/Image.js +18 -0
- package/ui/block/Image.tsx +24 -0
- package/ui/block/Label.d.ts +18 -3
- package/ui/block/Label.js +13 -3
- package/ui/block/Label.tsx +18 -3
- package/ui/block/List.d.ts +30 -0
- package/ui/block/List.js +25 -0
- package/ui/block/List.tsx +32 -0
- package/ui/block/Panel.d.ts +13 -1
- package/ui/block/Panel.js +3 -0
- package/ui/block/Panel.tsx +13 -1
- package/ui/block/Paragraph.d.ts +23 -0
- package/ui/block/Paragraph.js +18 -0
- package/ui/block/Paragraph.tsx +24 -0
- package/ui/block/Preformatted.d.ts +20 -0
- package/ui/block/Preformatted.js +15 -0
- package/ui/block/Preformatted.tsx +21 -0
- package/ui/block/Prose.d.ts +14 -1
- package/ui/block/Prose.js +9 -1
- package/ui/block/Prose.tsx +14 -1
- package/ui/block/Section.d.ts +69 -6
- package/ui/block/Section.js +59 -6
- package/ui/block/Section.tsx +70 -6
- package/ui/block/Subheading.d.ts +20 -1
- package/ui/block/Subheading.js +15 -0
- package/ui/block/Subheading.tsx +21 -1
- package/ui/block/Table.d.ts +20 -0
- package/ui/block/Table.js +15 -0
- package/ui/block/Table.tsx +21 -0
- package/ui/block/Title.d.ts +20 -1
- package/ui/block/Title.js +15 -0
- package/ui/block/Title.tsx +21 -1
- package/ui/block/Video.d.ts +50 -3
- package/ui/block/Video.js +30 -3
- package/ui/block/Video.tsx +50 -3
- package/ui/dialog/Dialog.d.ts +28 -1
- package/ui/dialog/Dialog.js +18 -1
- package/ui/dialog/Dialog.tsx +28 -1
- package/ui/dialog/Dialogs.d.ts +53 -6
- package/ui/dialog/Dialogs.js +43 -6
- package/ui/dialog/Dialogs.tsx +53 -6
- package/ui/dialog/Modal.d.ts +13 -0
- package/ui/dialog/Modal.js +8 -0
- package/ui/dialog/Modal.tsx +13 -0
- package/ui/docs/DocumentationButtons.d.ts +5 -1
- package/ui/docs/DocumentationButtons.tsx +5 -1
- package/ui/docs/DocumentationCard.d.ts +6 -1
- package/ui/docs/DocumentationCard.js +6 -1
- package/ui/docs/DocumentationCard.tsx +6 -1
- package/ui/docs/DocumentationKind.d.ts +13 -1
- package/ui/docs/DocumentationKind.js +8 -0
- package/ui/docs/DocumentationKind.tsx +13 -1
- package/ui/docs/DocumentationPage.d.ts +6 -1
- package/ui/docs/DocumentationPage.js +6 -1
- package/ui/docs/DocumentationPage.tsx +6 -1
- package/ui/docs/DocumentationSignatures.d.ts +10 -1
- package/ui/docs/DocumentationSignatures.js +5 -0
- package/ui/docs/DocumentationSignatures.tsx +10 -1
- package/ui/form/ArrayInput.d.ts +15 -0
- package/ui/form/ArrayInput.tsx +15 -0
- package/ui/form/ArrayRadioInputs.d.ts +10 -0
- package/ui/form/ArrayRadioInputs.js +5 -0
- package/ui/form/ArrayRadioInputs.tsx +10 -0
- package/ui/form/Button.d.ts +19 -3
- package/ui/form/Button.js +14 -2
- package/ui/form/Button.tsx +19 -3
- package/ui/form/ButtonInput.d.ts +14 -1
- package/ui/form/ButtonInput.js +9 -1
- package/ui/form/ButtonInput.tsx +14 -1
- package/ui/form/ButtonInputPopover.d.ts +10 -0
- package/ui/form/ButtonInputPopover.js +5 -0
- package/ui/form/ButtonInputPopover.tsx +10 -0
- package/ui/form/ButtonPopover.d.ts +11 -1
- package/ui/form/ButtonPopover.js +6 -1
- package/ui/form/ButtonPopover.tsx +11 -1
- package/ui/form/CheckboxInput.d.ts +14 -1
- package/ui/form/CheckboxInput.js +9 -1
- package/ui/form/CheckboxInput.tsx +14 -1
- package/ui/form/ChoiceRadioInputs.d.ts +10 -0
- package/ui/form/ChoiceRadioInputs.tsx +10 -0
- package/ui/form/Clickable.d.ts +45 -5
- package/ui/form/Clickable.js +30 -3
- package/ui/form/Clickable.tsx +45 -5
- package/ui/form/DataInput.d.ts +14 -0
- package/ui/form/DataInput.tsx +14 -0
- package/ui/form/DateInput.d.ts +14 -0
- package/ui/form/DateInput.js +9 -0
- package/ui/form/DateInput.tsx +14 -0
- package/ui/form/DictionaryInput.d.ts +15 -0
- package/ui/form/DictionaryInput.tsx +15 -0
- package/ui/form/Field.d.ts +5 -0
- package/ui/form/Field.tsx +5 -0
- package/ui/form/FileInput.d.ts +14 -0
- package/ui/form/FileInput.js +9 -0
- package/ui/form/FileInput.tsx +14 -0
- package/ui/form/Form.d.ts +55 -6
- package/ui/form/Form.js +35 -3
- package/ui/form/Form.tsx +55 -6
- package/ui/form/FormContext.d.ts +24 -3
- package/ui/form/FormContext.js +5 -1
- package/ui/form/FormContext.tsx +24 -3
- package/ui/form/FormFields.d.ts +15 -2
- package/ui/form/FormFields.js +15 -2
- package/ui/form/FormFields.tsx +15 -2
- package/ui/form/FormFooter.d.ts +13 -3
- package/ui/form/FormFooter.js +8 -3
- package/ui/form/FormFooter.tsx +13 -3
- package/ui/form/FormInput.d.ts +21 -2
- package/ui/form/FormInput.js +16 -2
- package/ui/form/FormInput.tsx +21 -2
- package/ui/form/FormMessage.d.ts +8 -1
- package/ui/form/FormMessage.js +8 -1
- package/ui/form/FormMessage.tsx +8 -2
- package/ui/form/FormNotice.d.ts +8 -1
- package/ui/form/FormNotice.js +8 -1
- package/ui/form/FormNotice.tsx +8 -2
- package/ui/form/FormNotify.d.ts +8 -1
- package/ui/form/FormNotify.js +8 -1
- package/ui/form/FormNotify.tsx +8 -2
- package/ui/form/FormStore.d.ts +50 -6
- package/ui/form/FormStore.js +50 -6
- package/ui/form/FormStore.tsx +50 -6
- package/ui/form/Input.d.ts +65 -1
- package/ui/form/Input.js +60 -0
- package/ui/form/Input.tsx +77 -1
- package/ui/form/NumberInput.d.ts +14 -0
- package/ui/form/NumberInput.js +9 -0
- package/ui/form/NumberInput.tsx +14 -0
- package/ui/form/OutputInput.d.ts +13 -1
- package/ui/form/OutputInput.js +8 -1
- package/ui/form/OutputInput.tsx +13 -1
- package/ui/form/Popover.d.ts +18 -2
- package/ui/form/Popover.js +8 -2
- package/ui/form/Popover.tsx +18 -2
- package/ui/form/Progress.d.ts +26 -2
- package/ui/form/Progress.js +16 -2
- package/ui/form/Progress.tsx +26 -2
- package/ui/form/QueryInput.d.ts +14 -5
- package/ui/form/QueryInput.js +9 -5
- package/ui/form/QueryInput.tsx +14 -5
- package/ui/form/RadioInput.d.ts +14 -1
- package/ui/form/RadioInput.js +9 -1
- package/ui/form/RadioInput.tsx +14 -1
- package/ui/form/SchemaInput.d.ts +138 -7
- package/ui/form/SchemaInput.js +79 -4
- package/ui/form/SchemaInput.tsx +138 -7
- package/ui/form/SelectInput.d.ts +14 -0
- package/ui/form/SelectInput.tsx +14 -0
- package/ui/form/SubmitButton.d.ts +14 -1
- package/ui/form/SubmitButton.js +9 -1
- package/ui/form/SubmitButton.tsx +14 -1
- package/ui/form/TextInput.d.ts +15 -0
- package/ui/form/TextInput.js +10 -0
- package/ui/form/TextInput.tsx +15 -0
- package/ui/inline/Code.d.ts +29 -0
- package/ui/inline/Code.js +24 -0
- package/ui/inline/Code.tsx +31 -0
- package/ui/inline/Deleted.d.ts +23 -0
- package/ui/inline/Deleted.js +18 -0
- package/ui/inline/Deleted.tsx +24 -0
- package/ui/inline/Emphasis.d.ts +23 -0
- package/ui/inline/Emphasis.js +18 -0
- package/ui/inline/Emphasis.tsx +24 -0
- package/ui/inline/Inserted.d.ts +23 -0
- package/ui/inline/Inserted.js +18 -0
- package/ui/inline/Inserted.tsx +24 -0
- package/ui/inline/Link.d.ts +23 -0
- package/ui/inline/Link.js +18 -0
- package/ui/inline/Link.tsx +24 -0
- package/ui/inline/Mark.d.ts +23 -0
- package/ui/inline/Mark.js +18 -0
- package/ui/inline/Mark.tsx +24 -0
- package/ui/inline/Small.d.ts +23 -0
- package/ui/inline/Small.js +18 -0
- package/ui/inline/Small.tsx +24 -0
- package/ui/inline/Strong.d.ts +23 -0
- package/ui/inline/Strong.js +18 -0
- package/ui/inline/Strong.tsx +24 -0
- package/ui/inline/Subscript.d.ts +23 -0
- package/ui/inline/Subscript.js +18 -0
- package/ui/inline/Subscript.tsx +24 -0
- package/ui/inline/Superscript.d.ts +23 -0
- package/ui/inline/Superscript.js +18 -0
- package/ui/inline/Superscript.tsx +24 -0
- package/ui/inline/When.d.ts +42 -3
- package/ui/inline/When.js +27 -3
- package/ui/inline/When.tsx +42 -3
- package/ui/layout/CenteredLayout.d.ts +12 -1
- package/ui/layout/CenteredLayout.js +7 -1
- package/ui/layout/CenteredLayout.tsx +12 -1
- package/ui/layout/Layout.d.ts +12 -3
- package/ui/layout/Layout.js +12 -3
- package/ui/layout/Layout.ts +12 -3
- package/ui/layout/SidebarLayout.d.ts +12 -0
- package/ui/layout/SidebarLayout.js +7 -0
- package/ui/layout/SidebarLayout.tsx +12 -0
- package/ui/menu/Menu.d.ts +22 -0
- package/ui/menu/Menu.js +12 -0
- package/ui/menu/Menu.tsx +22 -0
- package/ui/misc/Catcher.d.ts +77 -5
- package/ui/misc/Catcher.js +47 -5
- package/ui/misc/Catcher.tsx +77 -5
- package/ui/misc/Loading.d.ts +20 -0
- package/ui/misc/Loading.js +15 -0
- package/ui/misc/Loading.tsx +20 -0
- package/ui/misc/Mapper.d.ts +13 -1
- package/ui/misc/Mapper.js +4 -0
- package/ui/misc/Mapper.tsx +13 -1
- package/ui/misc/Markup.d.ts +9 -1
- package/ui/misc/Markup.js +4 -0
- package/ui/misc/Markup.tsx +9 -1
- package/ui/misc/MetaContext.d.ts +24 -7
- package/ui/misc/MetaContext.js +19 -6
- package/ui/misc/MetaContext.tsx +24 -7
- package/ui/misc/StatusIcon.d.ts +16 -1
- package/ui/misc/StatusIcon.js +11 -1
- package/ui/misc/StatusIcon.tsx +16 -1
- package/ui/misc/Tag.d.ts +21 -0
- package/ui/misc/Tag.js +11 -0
- package/ui/misc/Tag.tsx +21 -0
- package/ui/notice/Message.d.ts +27 -1
- package/ui/notice/Message.js +22 -1
- package/ui/notice/Message.tsx +27 -1
- package/ui/notice/Notice.d.ts +24 -0
- package/ui/notice/Notice.js +19 -0
- package/ui/notice/Notice.tsx +24 -0
- package/ui/notice/NoticeStore.d.ts +30 -2
- package/ui/notice/NoticeStore.js +30 -2
- package/ui/notice/NoticeStore.ts +30 -2
- package/ui/notice/Notices.d.ts +11 -1
- package/ui/notice/Notices.js +6 -1
- package/ui/notice/Notices.tsx +11 -1
- package/ui/notice/NoticesStore.d.ts +23 -3
- package/ui/notice/NoticesStore.js +23 -3
- package/ui/notice/NoticesStore.ts +23 -3
- package/ui/page/HTML.d.ts +13 -2
- package/ui/page/HTML.js +8 -2
- package/ui/page/HTML.tsx +13 -2
- package/ui/page/Head.d.ts +5 -1
- package/ui/page/Head.js +5 -1
- package/ui/page/Head.tsx +5 -1
- package/ui/page/Page.d.ts +12 -1
- package/ui/page/Page.js +7 -1
- package/ui/page/Page.tsx +12 -1
- package/ui/router/Navigation.d.ts +11 -0
- package/ui/router/Navigation.js +6 -0
- package/ui/router/Navigation.tsx +11 -0
- package/ui/router/NavigationContext.d.ts +14 -2
- package/ui/router/NavigationContext.js +14 -2
- package/ui/router/NavigationContext.tsx +14 -2
- package/ui/router/NavigationStore.d.ts +29 -1
- package/ui/router/NavigationStore.js +29 -1
- package/ui/router/NavigationStore.tsx +29 -1
- package/ui/router/Router.d.ts +12 -1
- package/ui/router/Router.js +7 -1
- package/ui/router/Router.tsx +12 -1
- package/ui/router/Routes.d.ts +14 -4
- package/ui/router/Routes.tsx +14 -4
- package/ui/style/Color.d.ts +15 -2
- package/ui/style/Color.js +5 -0
- package/ui/style/Color.tsx +15 -2
- package/ui/style/Flex.d.ts +41 -4
- package/ui/style/Flex.js +26 -3
- package/ui/style/Flex.tsx +41 -4
- package/ui/style/Gap.d.ts +18 -3
- package/ui/style/Gap.js +8 -1
- package/ui/style/Gap.tsx +18 -3
- package/ui/style/Padding.d.ts +18 -3
- package/ui/style/Padding.js +8 -1
- package/ui/style/Padding.tsx +18 -3
- package/ui/style/Scroll.d.ts +36 -1
- package/ui/style/Scroll.js +26 -1
- package/ui/style/Scroll.tsx +37 -1
- package/ui/style/Space.d.ts +18 -3
- package/ui/style/Space.js +8 -1
- package/ui/style/Space.tsx +18 -3
- package/ui/style/Status.d.ts +23 -7
- package/ui/style/Status.js +13 -5
- package/ui/style/Status.tsx +23 -7
- package/ui/style/Tint.d.ts +7 -1
- package/ui/style/Tint.js +7 -1
- package/ui/style/Tint.tsx +7 -1
- package/ui/style/Typography.d.ts +38 -6
- package/ui/style/Typography.js +8 -0
- package/ui/style/Typography.tsx +38 -6
- package/ui/style/Width.d.ts +18 -1
- package/ui/style/Width.js +8 -0
- package/ui/style/Width.tsx +18 -1
- package/ui/transition/CollapseTransition.d.ts +13 -0
- package/ui/transition/CollapseTransition.js +8 -0
- package/ui/transition/CollapseTransition.tsx +13 -0
- package/ui/transition/FadeTransition.d.ts +13 -0
- package/ui/transition/FadeTransition.js +8 -0
- package/ui/transition/FadeTransition.tsx +13 -0
- package/ui/transition/HorizontalTransition.d.ts +13 -0
- package/ui/transition/HorizontalTransition.js +8 -0
- package/ui/transition/HorizontalTransition.tsx +13 -0
- package/ui/transition/Transition.d.ts +12 -4
- package/ui/transition/Transition.js +7 -3
- package/ui/transition/Transition.tsx +12 -4
- package/ui/transition/VerticalTransition.d.ts +13 -0
- package/ui/transition/VerticalTransition.js +8 -0
- package/ui/transition/VerticalTransition.tsx +13 -0
- package/ui/transition/util.d.ts +16 -6
- package/ui/transition/util.js +7 -1
- package/ui/transition/util.tsx +16 -6
- package/ui/tree/TreeApp.d.ts +11 -0
- package/ui/tree/TreeApp.js +6 -0
- package/ui/tree/TreeApp.tsx +11 -0
- package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
- package/ui/tree/TreeBreadcrumbs.js +6 -0
- package/ui/tree/TreeBreadcrumbs.tsx +11 -0
- package/ui/tree/TreeButton.d.ts +9 -1
- package/ui/tree/TreeButton.js +4 -0
- package/ui/tree/TreeButton.tsx +9 -1
- package/ui/tree/TreeCard.d.ts +8 -1
- package/ui/tree/TreeCard.js +8 -1
- package/ui/tree/TreeCard.tsx +8 -1
- package/ui/tree/TreeCards.d.ts +16 -1
- package/ui/tree/TreeCards.js +11 -1
- package/ui/tree/TreeCards.tsx +16 -1
- package/ui/tree/TreeContext.d.ts +18 -1
- package/ui/tree/TreeContext.js +18 -1
- package/ui/tree/TreeContext.tsx +18 -1
- package/ui/tree/TreeMenu.d.ts +28 -1
- package/ui/tree/TreeMenu.js +23 -1
- package/ui/tree/TreeMenu.tsx +28 -1
- package/ui/tree/TreePage.d.ts +6 -0
- package/ui/tree/TreePage.js +6 -0
- package/ui/tree/TreePage.tsx +6 -0
- package/ui/tree/TreeRouter.d.ts +17 -2
- package/ui/tree/TreeRouter.js +12 -2
- package/ui/tree/TreeRouter.tsx +17 -2
- package/ui/tree/TreeSidebar.d.ts +11 -0
- package/ui/tree/TreeSidebar.js +6 -0
- package/ui/tree/TreeSidebar.tsx +11 -0
- package/ui/util/context.d.ts +13 -1
- package/ui/util/context.ts +13 -1
- package/ui/util/css.d.ts +17 -4
- package/ui/util/css.js +5 -1
- package/ui/util/css.ts +17 -4
- package/ui/util/event.d.ts +9 -1
- package/ui/util/event.js +9 -1
- package/ui/util/event.ts +9 -1
- package/ui/util/focus.d.ts +24 -5
- package/ui/util/focus.js +24 -5
- package/ui/util/focus.ts +24 -5
- package/ui/util/meta.d.ts +113 -21
- package/ui/util/meta.js +73 -13
- package/ui/util/meta.ts +113 -21
- package/ui/util/notice.d.ts +98 -10
- package/ui/util/notice.js +93 -9
- package/ui/util/notice.ts +98 -10
- package/ui/util/props.d.ts +10 -2
- package/ui/util/props.ts +10 -2
- package/ui/util/refresh.d.ts +10 -1
- package/ui/util/refresh.js +10 -1
- package/ui/util/refresh.ts +10 -1
- package/ui/util/scroll.d.ts +20 -4
- package/ui/util/scroll.js +20 -4
- package/ui/util/scroll.ts +20 -4
- package/ui/util/state.d.ts +19 -5
- package/ui/util/state.js +19 -5
- package/ui/util/state.ts +19 -5
- package/util/ansi.d.ts +118 -0
- package/util/ansi.js +116 -0
- package/util/array.d.ts +349 -33
- package/util/array.js +284 -27
- package/util/async.d.ts +87 -9
- package/util/async.js +80 -8
- package/util/base64.d.ts +56 -6
- package/util/base64.js +56 -6
- package/util/boolean.d.ts +75 -10
- package/util/boolean.js +75 -10
- package/util/buffer.d.ts +26 -3
- package/util/buffer.js +21 -3
- package/util/bytes.d.ts +42 -4
- package/util/bytes.js +32 -2
- package/util/class.d.ts +59 -8
- package/util/class.js +44 -5
- package/util/color.d.ts +131 -13
- package/util/color.js +126 -12
- package/util/constants.d.ts +132 -19
- package/util/constants.js +132 -19
- package/util/crypto.d.ts +17 -1
- package/util/crypto.js +17 -1
- package/util/currency.d.ts +38 -4
- package/util/currency.js +33 -3
- package/util/data.d.ts +139 -24
- package/util/data.js +39 -5
- package/util/date.d.ts +152 -18
- package/util/date.js +147 -17
- package/util/debug.d.ts +112 -11
- package/util/debug.js +114 -11
- package/util/dictionary.d.ts +205 -24
- package/util/dictionary.js +162 -17
- package/util/diff.d.ts +22 -3
- package/util/diff.js +11 -1
- package/util/dispose.d.ts +74 -2
- package/util/dispose.js +74 -2
- package/util/duration.d.ts +278 -16
- package/util/duration.js +267 -15
- package/util/element.d.ts +59 -6
- package/util/element.js +32 -3
- package/util/entity.d.ts +39 -6
- package/util/entity.js +5 -1
- package/util/entry.d.ts +56 -9
- package/util/entry.js +32 -4
- package/util/env.d.ts +26 -4
- package/util/env.js +26 -4
- package/util/equal.d.ts +181 -17
- package/util/equal.js +181 -17
- package/util/error.d.ts +57 -5
- package/util/error.js +52 -4
- package/util/file.d.ts +30 -7
- package/util/file.js +25 -6
- package/util/filter.d.ts +36 -4
- package/util/filter.js +31 -3
- package/util/focus.d.ts +9 -1
- package/util/focus.js +9 -1
- package/util/format.d.ts +186 -22
- package/util/format.js +135 -14
- package/util/function.d.ts +66 -11
- package/util/function.js +31 -4
- package/util/geo.d.ts +60 -8
- package/util/geo.js +45 -5
- package/util/hash.d.ts +21 -2
- package/util/hash.js +21 -2
- package/util/http.d.ts +134 -19
- package/util/http.js +94 -11
- package/util/hydrate.d.ts +19 -2
- package/util/hydrate.js +12 -1
- package/util/item.d.ts +70 -11
- package/util/item.js +35 -4
- package/util/iterate.d.ts +109 -13
- package/util/iterate.js +86 -10
- package/util/jwt.d.ts +47 -13
- package/util/jwt.js +36 -12
- package/util/lazy.d.ts +9 -6
- package/util/link.d.ts +10 -3
- package/util/link.js +5 -2
- package/util/log.d.ts +26 -3
- package/util/log.js +26 -3
- package/util/map.d.ts +144 -19
- package/util/map.js +101 -11
- package/util/merge.d.ts +23 -1
- package/util/merge.js +6 -0
- package/util/null.d.ts +102 -13
- package/util/null.js +92 -11
- package/util/number.d.ts +125 -8
- package/util/number.js +120 -7
- package/util/object.d.ts +263 -31
- package/util/object.js +154 -17
- package/util/path.d.ts +91 -15
- package/util/path.js +60 -9
- package/util/query.d.ts +78 -9
- package/util/query.js +58 -6
- package/util/random.d.ts +67 -4
- package/util/random.js +67 -4
- package/util/regexp.d.ts +201 -24
- package/util/regexp.js +106 -11
- package/util/sequence.d.ts +66 -8
- package/util/sequence.js +52 -7
- package/util/serialise.d.ts +7 -1
- package/util/serialise.js +7 -1
- package/util/set.d.ts +103 -13
- package/util/set.js +83 -9
- package/util/sort.d.ts +32 -7
- package/util/sort.js +26 -6
- package/util/source.d.ts +28 -3
- package/util/source.js +22 -2
- package/util/start.d.ts +62 -5
- package/util/start.js +47 -2
- package/util/string.d.ts +209 -25
- package/util/string.js +188 -21
- package/util/template.d.ts +58 -9
- package/util/template.js +45 -6
- package/util/timeout.d.ts +35 -11
- package/util/timeout.js +35 -11
- package/util/transform.d.ts +87 -8
- package/util/transform.js +75 -7
- package/util/tree.d.ts +39 -6
- package/util/tree.js +3 -0
- package/util/types.d.ts +8 -2
- package/util/undefined.d.ts +47 -6
- package/util/undefined.js +47 -6
- package/util/units.d.ts +107 -12
- package/util/units.js +97 -12
- package/util/update.d.ts +36 -4
- package/util/update.js +24 -2
- package/util/uri.d.ts +138 -6
- package/util/uri.js +44 -3
- package/util/url.d.ts +152 -7
- package/util/url.js +136 -5
- package/util/uuid.d.ts +28 -3
- package/util/uuid.js +28 -3
- package/util/validate.d.ts +85 -20
- package/util/validate.js +61 -12
- package/util/xml.d.ts +9 -10
- package/util/xml.js +9 -10
|
@@ -2,7 +2,11 @@ import type { ReactElement } from "react";
|
|
|
2
2
|
import type { DocumentationElementProps } from "../../util/tree.js";
|
|
3
3
|
import { type FlexVariants } from "../style/Flex.js";
|
|
4
4
|
import { type SpaceVariants } from "../style/Space.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Props for `DocumentationButtons` — the relational metadata of a documented symbol (`class`, `extends`, `implements`), plus block-space and flex overrides.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationButtons/DocumentationButtonsProps
|
|
9
|
+
*/
|
|
6
10
|
export interface DocumentationButtonsProps extends Pick<DocumentationElementProps, "class" | "extends" | "implements">, SpaceVariants, FlexVariants {
|
|
7
11
|
}
|
|
8
12
|
/**
|
|
@@ -6,7 +6,11 @@ import { getSpaceClass, type SpaceVariants } from "../style/Space.js";
|
|
|
6
6
|
import { TreeButton } from "../tree/TreeButton.js";
|
|
7
7
|
import { getClass } from "../util/css.js";
|
|
8
8
|
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Props for `DocumentationButtons` — the relational metadata of a documented symbol (`class`, `extends`, `implements`), plus block-space and flex overrides.
|
|
11
|
+
*
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationButtons/DocumentationButtonsProps
|
|
13
|
+
*/
|
|
10
14
|
export interface DocumentationButtonsProps
|
|
11
15
|
extends Pick<DocumentationElementProps, "class" | "extends" | "implements">,
|
|
12
16
|
SpaceVariants,
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { DocumentationElementProps } from "../../util/tree.js";
|
|
3
3
|
/**
|
|
4
|
-
* Card renderer for a `tree-documentation` element — a summary card.
|
|
4
|
+
* Card renderer for a `tree-documentation` element — a compact summary card linking to the symbol's detail page.
|
|
5
5
|
* - Leads with the symbol's signature(s) as calm code blocks (`<DocumentationSignatures>`, same as the detail page), which already carry the name; falls back to the bare name for symbols with no signature (classes, interfaces, modules).
|
|
6
6
|
* - The card is tinted by `kind` (colour carries the method/property/etc. distinction — no separate tag).
|
|
7
|
+
*
|
|
8
|
+
* @param props The documentation element's flattened props (`path`, `title`, `name`, `kind`, `description`, `signatures`, plus relational metadata); the `class` relation is dropped so member cards omit the redundant "member of" link.
|
|
9
|
+
* @returns A `<Card>` linking to the symbol's own page.
|
|
10
|
+
* @example <DocumentationCard {...element.props} />
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationCard/DocumentationCard
|
|
7
12
|
*/
|
|
8
13
|
export declare function DocumentationCard({ path, title, name, kind, description, signatures, class: _memberOf, ...props }: DocumentationElementProps): ReactNode;
|
|
@@ -7,9 +7,14 @@ import { DocumentationButtons } from "./DocumentationButtons.js";
|
|
|
7
7
|
import { DocumentationKind, getDocumentationKindColor } from "./DocumentationKind.js";
|
|
8
8
|
import { DocumentationSignatures } from "./DocumentationSignatures.js";
|
|
9
9
|
/**
|
|
10
|
-
* Card renderer for a `tree-documentation` element — a summary card.
|
|
10
|
+
* Card renderer for a `tree-documentation` element — a compact summary card linking to the symbol's detail page.
|
|
11
11
|
* - Leads with the symbol's signature(s) as calm code blocks (`<DocumentationSignatures>`, same as the detail page), which already carry the name; falls back to the bare name for symbols with no signature (classes, interfaces, modules).
|
|
12
12
|
* - The card is tinted by `kind` (colour carries the method/property/etc. distinction — no separate tag).
|
|
13
|
+
*
|
|
14
|
+
* @param props The documentation element's flattened props (`path`, `title`, `name`, `kind`, `description`, `signatures`, plus relational metadata); the `class` relation is dropped so member cards omit the redundant "member of" link.
|
|
15
|
+
* @returns A `<Card>` linking to the symbol's own page.
|
|
16
|
+
* @example <DocumentationCard {...element.props} />
|
|
17
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationCard/DocumentationCard
|
|
13
18
|
*/
|
|
14
19
|
export function DocumentationCard({ path, title, name, kind, description, signatures,
|
|
15
20
|
// Drop `class` so cards omit the "member of" relation — a member card almost always sits on its own class's page already.
|
|
@@ -9,9 +9,14 @@ import { DocumentationKind, getDocumentationKindColor } from "./DocumentationKin
|
|
|
9
9
|
import { DocumentationSignatures } from "./DocumentationSignatures.js";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Card renderer for a `tree-documentation` element — a summary card.
|
|
12
|
+
* Card renderer for a `tree-documentation` element — a compact summary card linking to the symbol's detail page.
|
|
13
13
|
* - Leads with the symbol's signature(s) as calm code blocks (`<DocumentationSignatures>`, same as the detail page), which already carry the name; falls back to the bare name for symbols with no signature (classes, interfaces, modules).
|
|
14
14
|
* - The card is tinted by `kind` (colour carries the method/property/etc. distinction — no separate tag).
|
|
15
|
+
*
|
|
16
|
+
* @param props The documentation element's flattened props (`path`, `title`, `name`, `kind`, `description`, `signatures`, plus relational metadata); the `class` relation is dropped so member cards omit the redundant "member of" link.
|
|
17
|
+
* @returns A `<Card>` linking to the symbol's own page.
|
|
18
|
+
* @example <DocumentationCard {...element.props} />
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationCard/DocumentationCard
|
|
15
20
|
*/
|
|
16
21
|
export function DocumentationCard({
|
|
17
22
|
path,
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import { type TagProps } from "../misc/Tag.js";
|
|
3
3
|
import type { UIColor } from "../style/Color.js";
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Props for `DocumentationKind` — a `TagProps` plus the documented symbol's `kind`.
|
|
6
|
+
*
|
|
7
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKindProps
|
|
8
|
+
*/
|
|
5
9
|
export interface DocumentationKindProps extends TagProps {
|
|
6
10
|
/** The documentation kind (e.g. `"function"`, `"class"`, `"interface"`, `"type"`, `"constant"`, `"method"`, `"property"`). */
|
|
7
11
|
readonly kind: string;
|
|
@@ -9,12 +13,20 @@ export interface DocumentationKindProps extends TagProps {
|
|
|
9
13
|
/**
|
|
10
14
|
* Get the raw colour variant for a documented symbol's `kind`, or `undefined` for an unknown kind.
|
|
11
15
|
* - Shared source of truth so the kind tag and its surrounding card pick the same hue.
|
|
16
|
+
*
|
|
17
|
+
* @param kind The documented symbol's kind (e.g. `"function"`, `"class"`, `"method"`).
|
|
18
|
+
* @returns The matching `UIColor`, or `undefined` when the kind is unrecognised.
|
|
19
|
+
* @example getDocumentationKindColor("class") // "purple"
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/getDocumentationKindColor
|
|
12
21
|
*/
|
|
13
22
|
export declare function getDocumentationKindColor(kind: string): UIColor | undefined;
|
|
14
23
|
/**
|
|
15
24
|
* Colour-coded tag for a documented symbol's kind.
|
|
16
25
|
* - Thin wrapper over `<Tag>` that maps the kind string to a raw colour variant.
|
|
17
26
|
*
|
|
27
|
+
* @param props The kind to label plus any `TagProps` to forward to the underlying `<Tag>`.
|
|
28
|
+
* @returns A `<Tag>` showing the kind, tinted by its colour.
|
|
18
29
|
* @example <DocumentationKind kind="function" />
|
|
30
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKind
|
|
19
31
|
*/
|
|
20
32
|
export declare function DocumentationKind({ kind, ...props }: DocumentationKindProps): ReactElement;
|
|
@@ -14,6 +14,11 @@ const KIND_COLOR = {
|
|
|
14
14
|
/**
|
|
15
15
|
* Get the raw colour variant for a documented symbol's `kind`, or `undefined` for an unknown kind.
|
|
16
16
|
* - Shared source of truth so the kind tag and its surrounding card pick the same hue.
|
|
17
|
+
*
|
|
18
|
+
* @param kind The documented symbol's kind (e.g. `"function"`, `"class"`, `"method"`).
|
|
19
|
+
* @returns The matching `UIColor`, or `undefined` when the kind is unrecognised.
|
|
20
|
+
* @example getDocumentationKindColor("class") // "purple"
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/getDocumentationKindColor
|
|
17
22
|
*/
|
|
18
23
|
export function getDocumentationKindColor(kind) {
|
|
19
24
|
return KIND_COLOR[kind];
|
|
@@ -22,7 +27,10 @@ export function getDocumentationKindColor(kind) {
|
|
|
22
27
|
* Colour-coded tag for a documented symbol's kind.
|
|
23
28
|
* - Thin wrapper over `<Tag>` that maps the kind string to a raw colour variant.
|
|
24
29
|
*
|
|
30
|
+
* @param props The kind to label plus any `TagProps` to forward to the underlying `<Tag>`.
|
|
31
|
+
* @returns A `<Tag>` showing the kind, tinted by its colour.
|
|
25
32
|
* @example <DocumentationKind kind="function" />
|
|
33
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKind
|
|
26
34
|
*/
|
|
27
35
|
export function DocumentationKind({ kind = "unknown", ...props }) {
|
|
28
36
|
return (_jsx(Tag, { color: getDocumentationKindColor(kind), ...props, children: kind }));
|
|
@@ -2,7 +2,11 @@ import type { ReactElement } from "react";
|
|
|
2
2
|
import { Tag, type TagProps } from "../misc/Tag.js";
|
|
3
3
|
import type { UIColor } from "../style/Color.js";
|
|
4
4
|
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Props for `DocumentationKind` — a `TagProps` plus the documented symbol's `kind`.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKindProps
|
|
9
|
+
*/
|
|
6
10
|
export interface DocumentationKindProps extends TagProps {
|
|
7
11
|
/** The documentation kind (e.g. `"function"`, `"class"`, `"interface"`, `"type"`, `"constant"`, `"method"`, `"property"`). */
|
|
8
12
|
readonly kind: string;
|
|
@@ -23,6 +27,11 @@ const KIND_COLOR: { readonly [K in string]?: UIColor } = {
|
|
|
23
27
|
/**
|
|
24
28
|
* Get the raw colour variant for a documented symbol's `kind`, or `undefined` for an unknown kind.
|
|
25
29
|
* - Shared source of truth so the kind tag and its surrounding card pick the same hue.
|
|
30
|
+
*
|
|
31
|
+
* @param kind The documented symbol's kind (e.g. `"function"`, `"class"`, `"method"`).
|
|
32
|
+
* @returns The matching `UIColor`, or `undefined` when the kind is unrecognised.
|
|
33
|
+
* @example getDocumentationKindColor("class") // "purple"
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/getDocumentationKindColor
|
|
26
35
|
*/
|
|
27
36
|
export function getDocumentationKindColor(kind: string): UIColor | undefined {
|
|
28
37
|
return KIND_COLOR[kind];
|
|
@@ -32,7 +41,10 @@ export function getDocumentationKindColor(kind: string): UIColor | undefined {
|
|
|
32
41
|
* Colour-coded tag for a documented symbol's kind.
|
|
33
42
|
* - Thin wrapper over `<Tag>` that maps the kind string to a raw colour variant.
|
|
34
43
|
*
|
|
44
|
+
* @param props The kind to label plus any `TagProps` to forward to the underlying `<Tag>`.
|
|
45
|
+
* @returns A `<Tag>` showing the kind, tinted by its colour.
|
|
35
46
|
* @example <DocumentationKind kind="function" />
|
|
47
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKind
|
|
36
48
|
*/
|
|
37
49
|
export function DocumentationKind({ kind = "unknown", ...props }: DocumentationKindProps): ReactElement {
|
|
38
50
|
return (
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
import type { DocumentationElementProps } from "../../util/tree.js";
|
|
3
3
|
/**
|
|
4
|
-
* Page renderer for a `tree-documentation` element.
|
|
4
|
+
* Page renderer for a `tree-documentation` element — the full detail page for a documented symbol.
|
|
5
5
|
* - Renders breadcrumbs, title (with kind + `readonly` tags), relational links (`member of`, `extends`, `implements`), signatures (one per overload), content, parameters, returns, throws, and examples.
|
|
6
6
|
* - Child symbols are grouped by `kind` into card sections (Functions, Classes, Methods, Properties, …), each under its own heading.
|
|
7
7
|
* - All sections are conditional — only render when they have entries.
|
|
8
|
+
*
|
|
9
|
+
* @param props The documentation element's flattened props (`title`, `name`, `kind`, `description`, `content`, `signatures`, `params`, `returns`, `throws`, `examples`, `children`, plus relational metadata).
|
|
10
|
+
* @returns A `<Page>` containing the symbol's full documentation.
|
|
11
|
+
* @example <DocumentationPage {...element.props} />
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationPage/DocumentationPage
|
|
8
13
|
*/
|
|
9
14
|
export declare function DocumentationPage({ title, name, kind, description, content, signatures, params, returns, throws, examples, children, ...props }: DocumentationElementProps): ReactNode;
|
|
@@ -31,10 +31,15 @@ const KIND_SECTIONS = {
|
|
|
31
31
|
property: "Properties",
|
|
32
32
|
};
|
|
33
33
|
/**
|
|
34
|
-
* Page renderer for a `tree-documentation` element.
|
|
34
|
+
* Page renderer for a `tree-documentation` element — the full detail page for a documented symbol.
|
|
35
35
|
* - Renders breadcrumbs, title (with kind + `readonly` tags), relational links (`member of`, `extends`, `implements`), signatures (one per overload), content, parameters, returns, throws, and examples.
|
|
36
36
|
* - Child symbols are grouped by `kind` into card sections (Functions, Classes, Methods, Properties, …), each under its own heading.
|
|
37
37
|
* - All sections are conditional — only render when they have entries.
|
|
38
|
+
*
|
|
39
|
+
* @param props The documentation element's flattened props (`title`, `name`, `kind`, `description`, `content`, `signatures`, `params`, `returns`, `throws`, `examples`, `children`, plus relational metadata).
|
|
40
|
+
* @returns A `<Page>` containing the symbol's full documentation.
|
|
41
|
+
* @example <DocumentationPage {...element.props} />
|
|
42
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationPage/DocumentationPage
|
|
38
43
|
*/
|
|
39
44
|
export function DocumentationPage({ title, name, kind = "unknown", description, content, signatures, params, returns, throws, examples, children, ...props }) {
|
|
40
45
|
return (_jsx(Page, { title: title ?? name, description: description, children: _jsxs(Block, { color: getDocumentationKindColor(kind), children: [_jsx(Panel, { children: _jsxs(Header, { wide: true, children: [_jsx(TreeBreadcrumbs, {}), _jsx(Title, { children: _jsxs(Row, { left: true, wrap: true, children: [title ?? name, kind && _jsx(DocumentationKind, { kind: kind, size: "normal" })] }) }), _jsx(DocumentationButtons, { ...props })] }) }), signatures?.length || params?.length || returns?.length || throws?.length ? (_jsxs(Section, { wide: true, children: [_jsx(DocumentationSignatures, { signatures: signatures }), params?.length && (_jsxs(Section, { wide: true, children: [_jsx(Label, { children: "Parameters" }), _jsx(Definitions, { children: params.map(({ name, type = DEFAULT_TYPE, description = "", optional }) => (_jsxs(Fragment, { children: [_jsx("dt", { children: _jsxs(Code, { size: "normal", children: [name, optional ? "?" : "", ": ", type] }) }), _jsx("dd", { children: description })] }, `${name}-${type}-${description}`))) })] })), returns?.length && (_jsxs(Section, { wide: true, children: [_jsx(Label, { children: "Returns" }), _jsx(Definitions, { children: returns.map(({ type = DEFAULT_TYPE, description = "" }) => (_jsxs(Fragment, { children: [_jsx("dt", { children: _jsx(Code, { size: "normal", children: type }) }), _jsx("dd", { children: description })] }, `${type}-${description}`))) })] })), throws?.length && (_jsxs(Section, { wide: true, children: [_jsx(Label, { children: "Throws" }), _jsx(Definitions, { children: throws.map(({ type = DEFAULT_TYPE, description = "" }) => (_jsxs(Fragment, { children: [_jsx("dt", { children: _jsx(Code, { size: "normal", children: type }) }), _jsx("dd", { children: description })] }, `${type}-${description}`))) })] }))] })) : null, content && (_jsx(Section, { wide: true, children: _jsx(Prose, { children: _jsx(Markup, { children: content }) }) })), examples?.length && (_jsxs(Section, { wide: true, children: [_jsx(Heading, { children: "Examples" }), examples.map(({ description }) => (_jsx(Preformatted, { children: description }, description)))] })), Object.entries(KIND_SECTIONS).map(([kind, label]) => {
|
|
@@ -35,10 +35,15 @@ const KIND_SECTIONS = {
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
* Page renderer for a `tree-documentation` element.
|
|
38
|
+
* Page renderer for a `tree-documentation` element — the full detail page for a documented symbol.
|
|
39
39
|
* - Renders breadcrumbs, title (with kind + `readonly` tags), relational links (`member of`, `extends`, `implements`), signatures (one per overload), content, parameters, returns, throws, and examples.
|
|
40
40
|
* - Child symbols are grouped by `kind` into card sections (Functions, Classes, Methods, Properties, …), each under its own heading.
|
|
41
41
|
* - All sections are conditional — only render when they have entries.
|
|
42
|
+
*
|
|
43
|
+
* @param props The documentation element's flattened props (`title`, `name`, `kind`, `description`, `content`, `signatures`, `params`, `returns`, `throws`, `examples`, `children`, plus relational metadata).
|
|
44
|
+
* @returns A `<Page>` containing the symbol's full documentation.
|
|
45
|
+
* @example <DocumentationPage {...element.props} />
|
|
46
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationPage/DocumentationPage
|
|
42
47
|
*/
|
|
43
48
|
export function DocumentationPage({
|
|
44
49
|
title,
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { ImmutableArray } from "../../util/array.js";
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Props for `DocumentationSignatures` — the type signatures to render, one block per overload.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignaturesProps
|
|
7
|
+
*/
|
|
4
8
|
export interface DocumentationSignaturesProps {
|
|
5
9
|
/** Type signatures to render — one block per overload. */
|
|
6
10
|
readonly signatures?: ImmutableArray<string> | undefined;
|
|
@@ -10,5 +14,10 @@ export interface DocumentationSignaturesProps {
|
|
|
10
14
|
* - Shared by `DocumentationCard` and `DocumentationPage` so signatures render identically in both (calm code
|
|
11
15
|
* blocks, not a shouty heading).
|
|
12
16
|
* - Renders nothing when there are no signatures.
|
|
17
|
+
*
|
|
18
|
+
* @param props The signatures to render — one block per overload.
|
|
19
|
+
* @returns One `<Preformatted>` block per signature, or `null` when there are none.
|
|
20
|
+
* @example <DocumentationSignatures signatures={["getArray<T>(arr: T[]): T"]} />
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignatures
|
|
13
22
|
*/
|
|
14
23
|
export declare function DocumentationSignatures({ signatures }: DocumentationSignaturesProps): ReactNode;
|
|
@@ -5,6 +5,11 @@ import { Preformatted } from "../block/Preformatted.js";
|
|
|
5
5
|
* - Shared by `DocumentationCard` and `DocumentationPage` so signatures render identically in both (calm code
|
|
6
6
|
* blocks, not a shouty heading).
|
|
7
7
|
* - Renders nothing when there are no signatures.
|
|
8
|
+
*
|
|
9
|
+
* @param props The signatures to render — one block per overload.
|
|
10
|
+
* @returns One `<Preformatted>` block per signature, or `null` when there are none.
|
|
11
|
+
* @example <DocumentationSignatures signatures={["getArray<T>(arr: T[]): T"]} />
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignatures
|
|
8
13
|
*/
|
|
9
14
|
export function DocumentationSignatures({ signatures }) {
|
|
10
15
|
if (!signatures?.length)
|
|
@@ -2,7 +2,11 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import type { ImmutableArray } from "../../util/array.js";
|
|
3
3
|
import { Preformatted } from "../block/Preformatted.js";
|
|
4
4
|
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Props for `DocumentationSignatures` — the type signatures to render, one block per overload.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignaturesProps
|
|
9
|
+
*/
|
|
6
10
|
export interface DocumentationSignaturesProps {
|
|
7
11
|
/** Type signatures to render — one block per overload. */
|
|
8
12
|
readonly signatures?: ImmutableArray<string> | undefined;
|
|
@@ -13,6 +17,11 @@ export interface DocumentationSignaturesProps {
|
|
|
13
17
|
* - Shared by `DocumentationCard` and `DocumentationPage` so signatures render identically in both (calm code
|
|
14
18
|
* blocks, not a shouty heading).
|
|
15
19
|
* - Renders nothing when there are no signatures.
|
|
20
|
+
*
|
|
21
|
+
* @param props The signatures to render — one block per overload.
|
|
22
|
+
* @returns One `<Preformatted>` block per signature, or `null` when there are none.
|
|
23
|
+
* @example <DocumentationSignatures signatures={["getArray<T>(arr: T[]): T"]} />
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignatures
|
|
16
25
|
*/
|
|
17
26
|
export function DocumentationSignatures({ signatures }: DocumentationSignaturesProps): ReactNode {
|
|
18
27
|
if (!signatures?.length) return null;
|
package/ui/form/ArrayInput.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ import type { ReactElement } from "react";
|
|
|
2
2
|
import type { Schema } from "../../schema/Schema.js";
|
|
3
3
|
import { type ImmutableArray } from "../../util/array.js";
|
|
4
4
|
import type { ValueInputProps } from "./Input.js";
|
|
5
|
+
/**
|
|
6
|
+
* Props for `ArrayInput`, a repeating input that edits an array of schema-validated items.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInputProps
|
|
9
|
+
*/
|
|
5
10
|
export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
|
|
6
11
|
one?: string;
|
|
7
12
|
many?: string;
|
|
@@ -10,4 +15,14 @@ export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
|
|
|
10
15
|
/** Schema for the items in the repeater. */
|
|
11
16
|
items: Schema<T>;
|
|
12
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Repeating input that edits an array of items, adding a `SchemaInput` row per item.
|
|
20
|
+
* - Each item is validated and rendered using the supplied `items` schema.
|
|
21
|
+
* - Enforces `min`/`max` length and offers add, remove, and clear controls.
|
|
22
|
+
*
|
|
23
|
+
* @param props Props including `value`, `onValue`, the `items` schema, and `min`/`max` length bounds.
|
|
24
|
+
* @returns Element rendering one input row per array item plus add/clear controls.
|
|
25
|
+
* @example <ArrayInput name="tags" items={STRING} value={tags} onValue={setTags} />
|
|
26
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInput
|
|
27
|
+
*/
|
|
13
28
|
export declare function ArrayInput<T>(props: ArrayInputProps<T>): ReactElement;
|
package/ui/form/ArrayInput.tsx
CHANGED
|
@@ -10,6 +10,11 @@ import { ButtonInput } from "./ButtonInput.js";
|
|
|
10
10
|
import type { ValueInputProps } from "./Input.js";
|
|
11
11
|
import { SchemaInput } from "./SchemaInput.js";
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Props for `ArrayInput`, a repeating input that edits an array of schema-validated items.
|
|
15
|
+
*
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInputProps
|
|
17
|
+
*/
|
|
13
18
|
export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
|
|
14
19
|
one?: string;
|
|
15
20
|
many?: string;
|
|
@@ -19,6 +24,16 @@ export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
|
|
|
19
24
|
items: Schema<T>;
|
|
20
25
|
}
|
|
21
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Repeating input that edits an array of items, adding a `SchemaInput` row per item.
|
|
29
|
+
* - Each item is validated and rendered using the supplied `items` schema.
|
|
30
|
+
* - Enforces `min`/`max` length and offers add, remove, and clear controls.
|
|
31
|
+
*
|
|
32
|
+
* @param props Props including `value`, `onValue`, the `items` schema, and `min`/`max` length bounds.
|
|
33
|
+
* @returns Element rendering one input row per array item plus add/clear controls.
|
|
34
|
+
* @example <ArrayInput name="tags" items={STRING} value={tags} onValue={setTags} />
|
|
35
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInput
|
|
36
|
+
*/
|
|
22
37
|
export function ArrayInput<T>(props: ArrayInputProps<T>): ReactElement;
|
|
23
38
|
export function ArrayInput({
|
|
24
39
|
name,
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { ReactElement, ReactNode } from "react";
|
|
2
2
|
import type { ImmutableArray } from "../../util/array.js";
|
|
3
3
|
import type { ValueInputProps } from "./Input.js";
|
|
4
|
+
/**
|
|
5
|
+
* Props for `ArrayRadioInputs`, which renders a radio for each item in an array of values.
|
|
6
|
+
*
|
|
7
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputsProps
|
|
8
|
+
*/
|
|
4
9
|
export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
|
|
5
10
|
/** Array of values to show in the list of radios. */
|
|
6
11
|
items: ImmutableArray<T>;
|
|
@@ -11,5 +16,10 @@ export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
|
|
|
11
16
|
* Output a list of `<RadioInput>` elements for each item in an array.
|
|
12
17
|
* - The items can be any type, and can be formatted for output through an optional `formatter()` function.
|
|
13
18
|
* - A `placeholder` option is shown at the bottom if `required=false`.
|
|
19
|
+
*
|
|
20
|
+
* @param props Props including the `items` array, current `value`, `onValue`, and an optional `formatter`.
|
|
21
|
+
* @returns Element rendering one radio per item plus an optional empty placeholder radio.
|
|
22
|
+
* @example <ArrayRadioInputs name="size" items={["s", "m", "l"]} value={size} onValue={setSize} />
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputs
|
|
14
24
|
*/
|
|
15
25
|
export declare function ArrayRadioInputs<T>({ value, onValue, required, items, formatter, ...props }: ArrayRadioInputsProps<T>): ReactElement;
|
|
@@ -6,6 +6,11 @@ import { RadioInput } from "./RadioInput.js";
|
|
|
6
6
|
* Output a list of `<RadioInput>` elements for each item in an array.
|
|
7
7
|
* - The items can be any type, and can be formatted for output through an optional `formatter()` function.
|
|
8
8
|
* - A `placeholder` option is shown at the bottom if `required=false`.
|
|
9
|
+
*
|
|
10
|
+
* @param props Props including the `items` array, current `value`, `onValue`, and an optional `formatter`.
|
|
11
|
+
* @returns Element rendering one radio per item plus an optional empty placeholder radio.
|
|
12
|
+
* @example <ArrayRadioInputs name="size" items={["s", "m", "l"]} value={size} onValue={setSize} />
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputs
|
|
9
14
|
*/
|
|
10
15
|
export function ArrayRadioInputs({ value, onValue, required = false, items, formatter = formatValue, ...props }) {
|
|
11
16
|
return (_jsxs(Row, { column: true, children: [items.map((v, i) => {
|
|
@@ -5,6 +5,11 @@ import { Row } from "../style/Flex.js";
|
|
|
5
5
|
import type { ValueInputProps } from "./Input.js";
|
|
6
6
|
import { RadioInput } from "./RadioInput.js";
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Props for `ArrayRadioInputs`, which renders a radio for each item in an array of values.
|
|
10
|
+
*
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputsProps
|
|
12
|
+
*/
|
|
8
13
|
export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
|
|
9
14
|
/** Array of values to show in the list of radios. */
|
|
10
15
|
items: ImmutableArray<T>;
|
|
@@ -16,6 +21,11 @@ export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
|
|
|
16
21
|
* Output a list of `<RadioInput>` elements for each item in an array.
|
|
17
22
|
* - The items can be any type, and can be formatted for output through an optional `formatter()` function.
|
|
18
23
|
* - A `placeholder` option is shown at the bottom if `required=false`.
|
|
24
|
+
*
|
|
25
|
+
* @param props Props including the `items` array, current `value`, `onValue`, and an optional `formatter`.
|
|
26
|
+
* @returns Element rendering one radio per item plus an optional empty placeholder radio.
|
|
27
|
+
* @example <ArrayRadioInputs name="size" items={["s", "m", "l"]} value={size} onValue={setSize} />
|
|
28
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputs
|
|
19
29
|
*/
|
|
20
30
|
export function ArrayRadioInputs<T>({
|
|
21
31
|
value,
|
package/ui/form/Button.d.ts
CHANGED
|
@@ -4,7 +4,11 @@ import { type FlexVariants } from "../style/Flex.js";
|
|
|
4
4
|
import { type StatusVariants } from "../style/Status.js";
|
|
5
5
|
import { type TypographyVariants } from "../style/Typography.js";
|
|
6
6
|
import { type ClickableProps } from "./Clickable.js";
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Styling variants for a `Button`, combining flex, color, status, and typography options with button-specific toggles.
|
|
9
|
+
*
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/ButtonVariants
|
|
11
|
+
*/
|
|
8
12
|
export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVariants, TypographyVariants {
|
|
9
13
|
/** This is the default button in a form and should be displayed stronger. */
|
|
10
14
|
strong?: boolean | undefined;
|
|
@@ -17,13 +21,25 @@ export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVaria
|
|
|
17
21
|
/** Fill the available width instead of sizing to content (buttons are content-width by default). */
|
|
18
22
|
full?: boolean | undefined;
|
|
19
23
|
}
|
|
20
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Get the full combined `className` string for a button from its styling variants.
|
|
26
|
+
*
|
|
27
|
+
* @param variants The button styling variants (flex, color, status, typography, plus button toggles).
|
|
28
|
+
* @returns A space-separated `className` string combining all the resolved variant classes.
|
|
29
|
+
* @example getButtonClass({ color: "primary", small: true }) // "button …"
|
|
30
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/getButtonClass
|
|
31
|
+
*/
|
|
21
32
|
export declare function getButtonClass(variants: ButtonVariants): string;
|
|
22
33
|
interface ButtonProps extends ButtonVariants, ClickableProps {
|
|
23
34
|
}
|
|
24
35
|
/**
|
|
25
|
-
*
|
|
36
|
+
* Render either a `<button>` or an `<a href="">` styled as a button, based on whether an `onClick` or `href` prop is provided.
|
|
26
37
|
* - Content-width by default (never grows); it won't shrink below its label. Pass `full` to fill the available width.
|
|
38
|
+
* - Accepts all `ButtonVariants` styling props plus the `ClickableProps` (`onClick`, `href`, `disabled`, etc.).
|
|
39
|
+
*
|
|
40
|
+
* @example <Button onClick={save} color="primary">Save</Button>
|
|
41
|
+
* @example <Button href="/about">About</Button>
|
|
42
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/Button
|
|
27
43
|
*/
|
|
28
44
|
export declare function Button(props: ButtonProps): ReactElement;
|
|
29
45
|
export {};
|
package/ui/form/Button.js
CHANGED
|
@@ -6,13 +6,25 @@ import { getTypographyClass } from "../style/Typography.js";
|
|
|
6
6
|
import { getClass, getModuleClass } from "../util/css.js";
|
|
7
7
|
import BUTTON_CSS from "./Button.module.css";
|
|
8
8
|
import { Clickable } from "./Clickable.js";
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Get the full combined `className` string for a button from its styling variants.
|
|
11
|
+
*
|
|
12
|
+
* @param variants The button styling variants (flex, color, status, typography, plus button toggles).
|
|
13
|
+
* @returns A space-separated `className` string combining all the resolved variant classes.
|
|
14
|
+
* @example getButtonClass({ color: "primary", small: true }) // "button …"
|
|
15
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/getButtonClass
|
|
16
|
+
*/
|
|
10
17
|
export function getButtonClass(variants) {
|
|
11
18
|
return getClass(getModuleClass(BUTTON_CSS, "button", variants), getFlexClass(variants), getStatusClass(variants), getColorClass(variants), getTypographyClass(variants));
|
|
12
19
|
}
|
|
13
20
|
/**
|
|
14
|
-
*
|
|
21
|
+
* Render either a `<button>` or an `<a href="">` styled as a button, based on whether an `onClick` or `href` prop is provided.
|
|
15
22
|
* - Content-width by default (never grows); it won't shrink below its label. Pass `full` to fill the available width.
|
|
23
|
+
* - Accepts all `ButtonVariants` styling props plus the `ClickableProps` (`onClick`, `href`, `disabled`, etc.).
|
|
24
|
+
*
|
|
25
|
+
* @example <Button onClick={save} color="primary">Save</Button>
|
|
26
|
+
* @example <Button href="/about">About</Button>
|
|
27
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/Button
|
|
16
28
|
*/
|
|
17
29
|
export function Button(props) {
|
|
18
30
|
return _jsx(Clickable, { ...props, className: getButtonClass(props) });
|
package/ui/form/Button.tsx
CHANGED
|
@@ -7,7 +7,11 @@ import { getClass, getModuleClass } from "../util/css.js";
|
|
|
7
7
|
import BUTTON_CSS from "./Button.module.css";
|
|
8
8
|
import { Clickable, type ClickableProps } from "./Clickable.js";
|
|
9
9
|
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Styling variants for a `Button`, combining flex, color, status, and typography options with button-specific toggles.
|
|
12
|
+
*
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/ButtonVariants
|
|
14
|
+
*/
|
|
11
15
|
export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVariants, TypographyVariants {
|
|
12
16
|
/** This is the default button in a form and should be displayed stronger. */
|
|
13
17
|
strong?: boolean | undefined;
|
|
@@ -21,7 +25,14 @@ export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVaria
|
|
|
21
25
|
full?: boolean | undefined;
|
|
22
26
|
}
|
|
23
27
|
|
|
24
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Get the full combined `className` string for a button from its styling variants.
|
|
30
|
+
*
|
|
31
|
+
* @param variants The button styling variants (flex, color, status, typography, plus button toggles).
|
|
32
|
+
* @returns A space-separated `className` string combining all the resolved variant classes.
|
|
33
|
+
* @example getButtonClass({ color: "primary", small: true }) // "button …"
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/getButtonClass
|
|
35
|
+
*/
|
|
25
36
|
export function getButtonClass(variants: ButtonVariants): string {
|
|
26
37
|
return getClass(
|
|
27
38
|
getModuleClass(BUTTON_CSS, "button", variants),
|
|
@@ -35,8 +46,13 @@ export function getButtonClass(variants: ButtonVariants): string {
|
|
|
35
46
|
interface ButtonProps extends ButtonVariants, ClickableProps {}
|
|
36
47
|
|
|
37
48
|
/**
|
|
38
|
-
*
|
|
49
|
+
* Render either a `<button>` or an `<a href="">` styled as a button, based on whether an `onClick` or `href` prop is provided.
|
|
39
50
|
* - Content-width by default (never grows); it won't shrink below its label. Pass `full` to fill the available width.
|
|
51
|
+
* - Accepts all `ButtonVariants` styling props plus the `ClickableProps` (`onClick`, `href`, `disabled`, etc.).
|
|
52
|
+
*
|
|
53
|
+
* @example <Button onClick={save} color="primary">Save</Button>
|
|
54
|
+
* @example <Button href="/about">About</Button>
|
|
55
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Button/Button
|
|
40
56
|
*/
|
|
41
57
|
export function Button(props: ButtonProps): ReactElement {
|
|
42
58
|
return <Clickable {...props} className={getButtonClass(props)} />;
|
package/ui/form/ButtonInput.d.ts
CHANGED
|
@@ -2,7 +2,20 @@ import type { ReactElement } from "react";
|
|
|
2
2
|
import { type FlexVariants } from "../style/Flex.js";
|
|
3
3
|
import { type ClickableProps } from "./Clickable.js";
|
|
4
4
|
import { type InputProps } from "./Input.js";
|
|
5
|
+
/**
|
|
6
|
+
* Props for `ButtonInput`, a clickable element styled to match form inputs.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInputProps
|
|
9
|
+
*/
|
|
5
10
|
export interface ButtonInputProps extends InputProps, ClickableProps, FlexVariants {
|
|
6
11
|
}
|
|
7
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided.
|
|
14
|
+
* - Falls back to rendering the `placeholder` when no `children`/`title` content is supplied.
|
|
15
|
+
*
|
|
16
|
+
* @param props Props including `title`/`placeholder` content plus `Clickable` and `Flex` variants.
|
|
17
|
+
* @returns A `Clickable` element styled with the button-input class.
|
|
18
|
+
* @example <ButtonInput name="choose" onClick={open}>Choose…</ButtonInput>
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInput
|
|
20
|
+
*/
|
|
8
21
|
export declare function ButtonInput({ title, placeholder, children, ...props }: ButtonInputProps): ReactElement;
|
package/ui/form/ButtonInput.js
CHANGED
|
@@ -4,7 +4,15 @@ import { getFlexClass } from "../style/Flex.js";
|
|
|
4
4
|
import { getClass } from "../util/css.js";
|
|
5
5
|
import { Clickable } from "./Clickable.js";
|
|
6
6
|
import { BUTTON_INPUT_CLASS, PLACEHOLDER_CLASS } from "./Input.js";
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided.
|
|
9
|
+
* - Falls back to rendering the `placeholder` when no `children`/`title` content is supplied.
|
|
10
|
+
*
|
|
11
|
+
* @param props Props including `title`/`placeholder` content plus `Clickable` and `Flex` variants.
|
|
12
|
+
* @returns A `Clickable` element styled with the button-input class.
|
|
13
|
+
* @example <ButtonInput name="choose" onClick={open}>Choose…</ButtonInput>
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInput
|
|
15
|
+
*/
|
|
8
16
|
export function ButtonInput({ title, placeholder, children = title, ...props }) {
|
|
9
17
|
const hasChildren = notNullish(children);
|
|
10
18
|
return (_jsx(Clickable, { ...props, className: getClass(BUTTON_INPUT_CLASS, getFlexClass(props), hasChildren && PLACEHOLDER_CLASS), children: hasChildren ? children : placeholder }));
|
package/ui/form/ButtonInput.tsx
CHANGED
|
@@ -5,9 +5,22 @@ import { getClass } from "../util/css.js";
|
|
|
5
5
|
import { Clickable, type ClickableProps } from "./Clickable.js";
|
|
6
6
|
import { BUTTON_INPUT_CLASS, type InputProps, PLACEHOLDER_CLASS } from "./Input.js";
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Props for `ButtonInput`, a clickable element styled to match form inputs.
|
|
10
|
+
*
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInputProps
|
|
12
|
+
*/
|
|
8
13
|
export interface ButtonInputProps extends InputProps, ClickableProps, FlexVariants {}
|
|
9
14
|
|
|
10
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided.
|
|
17
|
+
* - Falls back to rendering the `placeholder` when no `children`/`title` content is supplied.
|
|
18
|
+
*
|
|
19
|
+
* @param props Props including `title`/`placeholder` content plus `Clickable` and `Flex` variants.
|
|
20
|
+
* @returns A `Clickable` element styled with the button-input class.
|
|
21
|
+
* @example <ButtonInput name="choose" onClick={open}>Choose…</ButtonInput>
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInput
|
|
23
|
+
*/
|
|
11
24
|
export function ButtonInput({ title, placeholder, children = title, ...props }: ButtonInputProps): ReactElement {
|
|
12
25
|
const hasChildren = notNullish(children);
|
|
13
26
|
return (
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
import { type ReactElement } from "react";
|
|
4
4
|
import type { InputProps } from "./Input.js";
|
|
5
5
|
import { type PopoverChildren } from "./Popover.js";
|
|
6
|
+
/**
|
|
7
|
+
* Props for `ButtonInputPopover`, an input button that toggles an adjacent popover.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ButtonInputPopover/ButtonInputPopoverProps
|
|
10
|
+
*/
|
|
6
11
|
export interface ButtonInputPopoverProps extends InputProps {
|
|
7
12
|
children: PopoverChildren;
|
|
8
13
|
}
|
|
@@ -11,6 +16,11 @@ export interface ButtonInputPopoverProps extends InputProps {
|
|
|
11
16
|
* - The first element passed to `children` is used as the content for the button, the rest is the content of the popover.
|
|
12
17
|
*
|
|
13
18
|
* DH: Would love to use new HTML `popover="auto"` functionality for this but the anchor positioning it needs is not supported everywhere yet.
|
|
19
|
+
*
|
|
20
|
+
* @param props Props including the input `name` and `children` whose first node is the button and the rest the popover.
|
|
21
|
+
* @returns A `Popover` wrapping a `ButtonInput` that toggles it open and closed.
|
|
22
|
+
* @example <ButtonInputPopover name="filter">{label}{panel}</ButtonInputPopover>
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/ui/form/ButtonInputPopover/ButtonInputPopover
|
|
14
24
|
*/
|
|
15
25
|
export declare function ButtonInputPopover({ children: [buttonChildren, ...popoverChildren], //
|
|
16
26
|
...props }: ButtonInputPopoverProps): ReactElement;
|