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
package/ui/misc/Loading.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import styles from "./Loading.module.css";
|
|
3
|
+
/**
|
|
4
|
+
* Animated spinner SVG used as a loading indicator.
|
|
5
|
+
*
|
|
6
|
+
* - Self-contained inline SVG with a rotating indicator arc; inherits its colour and size from the surrounding text.
|
|
7
|
+
*
|
|
8
|
+
* @returns The spinner element.
|
|
9
|
+
* @example <Loading />
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Loading/Loading
|
|
11
|
+
*/
|
|
3
12
|
export function Loading() {
|
|
4
13
|
return (_jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", className: styles.spinner, "data-slot": "icon", children: [_jsx("title", { children: "Loading..." }), _jsx("circle", { className: styles.track, cx: "12", cy: "12", r: "9", pathLength: "100" }), _jsxs("g", { children: [_jsx("animateTransform", { attributeName: "transform", attributeType: "xml", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.5s", repeatCount: "indefinite" }), _jsx("circle", { className: styles.indicator, cx: "12", cy: "12", r: "9", pathLength: "100" })] })] }));
|
|
5
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Shared `<Loading>` element with a stable `key`, ready to drop into `Suspense` fallbacks and lists.
|
|
17
|
+
*
|
|
18
|
+
* @example <Suspense fallback={LOADING}>…</Suspense>
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Loading/LOADING
|
|
20
|
+
*/
|
|
6
21
|
export const LOADING = _jsx(Loading, {}, "loading");
|
package/ui/misc/Loading.tsx
CHANGED
|
@@ -3,10 +3,24 @@ import styles from "./Loading.module.css";
|
|
|
3
3
|
|
|
4
4
|
declare const _componentProps: unique symbol;
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Props for `<Loading>` — takes no props (branded empty interface).
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Loading/LoadingProps
|
|
10
|
+
*/
|
|
6
11
|
export interface LoadingProps {
|
|
7
12
|
readonly [_componentProps]?: never;
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Animated spinner SVG used as a loading indicator.
|
|
17
|
+
*
|
|
18
|
+
* - Self-contained inline SVG with a rotating indicator arc; inherits its colour and size from the surrounding text.
|
|
19
|
+
*
|
|
20
|
+
* @returns The spinner element.
|
|
21
|
+
* @example <Loading />
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Loading/Loading
|
|
23
|
+
*/
|
|
10
24
|
export function Loading(): ReactElement {
|
|
11
25
|
return (
|
|
12
26
|
<svg aria-hidden="true" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" className={styles.spinner} data-slot="icon">
|
|
@@ -28,4 +42,10 @@ export function Loading(): ReactElement {
|
|
|
28
42
|
);
|
|
29
43
|
}
|
|
30
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Shared `<Loading>` element with a stable `key`, ready to drop into `Suspense` fallbacks and lists.
|
|
47
|
+
*
|
|
48
|
+
* @example <Suspense fallback={LOADING}>…</Suspense>
|
|
49
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Loading/LOADING
|
|
50
|
+
*/
|
|
31
51
|
export const LOADING = <Loading key="loading" />;
|
package/ui/misc/Mapper.d.ts
CHANGED
|
@@ -5,11 +5,17 @@ import type { ChildProps } from "../util/props.js";
|
|
|
5
5
|
* Dispatch table from a `JSX.IntrinsicElements` key to a renderer component.
|
|
6
6
|
* - Each entry is optional — unmapped elements fall through and render as themselves (e.g. an unmapped `<tree-foo>` appears as a raw `<tree-foo>` HTML element).
|
|
7
7
|
* - Per-entry component receives `JSX.IntrinsicElements[K] & E` — the declared props for that element type, plus any extra props `E` the mapper is configured to thread through.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/Mapping
|
|
8
10
|
*/
|
|
9
11
|
export type Mapping<E = unknown> = {
|
|
10
12
|
[K in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[K] & E>;
|
|
11
13
|
};
|
|
12
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Props for the `Mapping` component returned by `createMapper()`.
|
|
16
|
+
*
|
|
17
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MappingProps
|
|
18
|
+
*/
|
|
13
19
|
export interface MappingProps<E = unknown> extends ChildProps {
|
|
14
20
|
/** Mapping entries that extend or override the inherited mapping inside this subtree. */
|
|
15
21
|
readonly mapping: Mapping<E>;
|
|
@@ -18,6 +24,8 @@ export interface MappingProps<E = unknown> extends ChildProps {
|
|
|
18
24
|
* Props for the `Mapper` component returned by `createMapper()`.
|
|
19
25
|
* - `children` holds the pre-walked elements to dispatch.
|
|
20
26
|
* - All other props are spread onto every mapped child as additional props (`E`).
|
|
27
|
+
*
|
|
28
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MapperProps
|
|
21
29
|
*/
|
|
22
30
|
export type MapperProps<E = unknown> = E & {
|
|
23
31
|
readonly children?: Elements;
|
|
@@ -31,6 +39,8 @@ export type MapperProps<E = unknown> = E & {
|
|
|
31
39
|
* Each call creates its own context — independent mappers don't interfere with each other.
|
|
32
40
|
*
|
|
33
41
|
* @typeParam E The shape of any extra props the mapper threads through to every dispatched child. Defaults to `unknown` (no extras).
|
|
42
|
+
* @param defaults The initial mapping of element types to renderer components.
|
|
43
|
+
* @returns A `[Mapping, Mapper]` tuple of components sharing a private context.
|
|
34
44
|
*
|
|
35
45
|
* @example
|
|
36
46
|
* // No extras:
|
|
@@ -45,5 +55,7 @@ export type MapperProps<E = unknown> = E & {
|
|
|
45
55
|
* "tree-element": TreeMenuItem,
|
|
46
56
|
* });
|
|
47
57
|
* <TreeMenuMapper path="/foo">{queryElements(children, query)}</TreeMenuMapper>
|
|
58
|
+
*
|
|
59
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/createMapper
|
|
48
60
|
*/
|
|
49
61
|
export declare function createMapper<E = unknown>(defaults?: Mapping<E>): [Mapping: FunctionComponent<MappingProps<E>>, Mapper: FunctionComponent<MapperProps<E>>];
|
package/ui/misc/Mapper.js
CHANGED
|
@@ -10,6 +10,8 @@ import { walkElements } from "../../util/element.js";
|
|
|
10
10
|
* Each call creates its own context — independent mappers don't interfere with each other.
|
|
11
11
|
*
|
|
12
12
|
* @typeParam E The shape of any extra props the mapper threads through to every dispatched child. Defaults to `unknown` (no extras).
|
|
13
|
+
* @param defaults The initial mapping of element types to renderer components.
|
|
14
|
+
* @returns A `[Mapping, Mapper]` tuple of components sharing a private context.
|
|
13
15
|
*
|
|
14
16
|
* @example
|
|
15
17
|
* // No extras:
|
|
@@ -24,6 +26,8 @@ import { walkElements } from "../../util/element.js";
|
|
|
24
26
|
* "tree-element": TreeMenuItem,
|
|
25
27
|
* });
|
|
26
28
|
* <TreeMenuMapper path="/foo">{queryElements(children, query)}</TreeMenuMapper>
|
|
29
|
+
*
|
|
30
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/createMapper
|
|
27
31
|
*/
|
|
28
32
|
export function createMapper(defaults = {}) {
|
|
29
33
|
const Context = createContext(defaults);
|
package/ui/misc/Mapper.tsx
CHANGED
|
@@ -7,12 +7,18 @@ import type { ChildProps } from "../util/props.js";
|
|
|
7
7
|
* Dispatch table from a `JSX.IntrinsicElements` key to a renderer component.
|
|
8
8
|
* - Each entry is optional — unmapped elements fall through and render as themselves (e.g. an unmapped `<tree-foo>` appears as a raw `<tree-foo>` HTML element).
|
|
9
9
|
* - Per-entry component receives `JSX.IntrinsicElements[K] & E` — the declared props for that element type, plus any extra props `E` the mapper is configured to thread through.
|
|
10
|
+
*
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/Mapping
|
|
10
12
|
*/
|
|
11
13
|
export type Mapping<E = unknown> = {
|
|
12
14
|
[K in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[K] & E>;
|
|
13
15
|
};
|
|
14
16
|
|
|
15
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Props for the `Mapping` component returned by `createMapper()`.
|
|
19
|
+
*
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MappingProps
|
|
21
|
+
*/
|
|
16
22
|
export interface MappingProps<E = unknown> extends ChildProps {
|
|
17
23
|
/** Mapping entries that extend or override the inherited mapping inside this subtree. */
|
|
18
24
|
readonly mapping: Mapping<E>;
|
|
@@ -22,6 +28,8 @@ export interface MappingProps<E = unknown> extends ChildProps {
|
|
|
22
28
|
* Props for the `Mapper` component returned by `createMapper()`.
|
|
23
29
|
* - `children` holds the pre-walked elements to dispatch.
|
|
24
30
|
* - All other props are spread onto every mapped child as additional props (`E`).
|
|
31
|
+
*
|
|
32
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MapperProps
|
|
25
33
|
*/
|
|
26
34
|
export type MapperProps<E = unknown> = E & {
|
|
27
35
|
readonly children?: Elements;
|
|
@@ -40,6 +48,8 @@ type AnyMapping = Record<string, ComponentType<any> | undefined>;
|
|
|
40
48
|
* Each call creates its own context — independent mappers don't interfere with each other.
|
|
41
49
|
*
|
|
42
50
|
* @typeParam E The shape of any extra props the mapper threads through to every dispatched child. Defaults to `unknown` (no extras).
|
|
51
|
+
* @param defaults The initial mapping of element types to renderer components.
|
|
52
|
+
* @returns A `[Mapping, Mapper]` tuple of components sharing a private context.
|
|
43
53
|
*
|
|
44
54
|
* @example
|
|
45
55
|
* // No extras:
|
|
@@ -54,6 +64,8 @@ type AnyMapping = Record<string, ComponentType<any> | undefined>;
|
|
|
54
64
|
* "tree-element": TreeMenuItem,
|
|
55
65
|
* });
|
|
56
66
|
* <TreeMenuMapper path="/foo">{queryElements(children, query)}</TreeMenuMapper>
|
|
67
|
+
*
|
|
68
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Mapper/createMapper
|
|
57
69
|
*/
|
|
58
70
|
export function createMapper<E = unknown>(
|
|
59
71
|
defaults: Mapping<E> = {},
|
package/ui/misc/Markup.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import { type MarkupOptions } from "../../markup/MarkupParser.js";
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Props for `<Markup>` — extends `MarkupOptions` so callers can override `rules`, `rel`, `url`, `root`, or `schemes` directly.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Markup/MarkupProps
|
|
7
|
+
*/
|
|
4
8
|
export interface MarkupProps extends Partial<MarkupOptions> {
|
|
5
9
|
/** The source string to parse and render. */
|
|
6
10
|
children?: string | undefined;
|
|
@@ -11,6 +15,10 @@ export interface MarkupProps extends Partial<MarkupOptions> {
|
|
|
11
15
|
* - `url`/`root` default to the current `<Meta>` context so link rules resolve site-absolute and relative hrefs.
|
|
12
16
|
* - Renders inside whatever ancestor element the caller provides — wrap in `<Prose>` to get the standard prose typography for the produced `<p>` / `<ul>` / `<pre>` / etc.
|
|
13
17
|
*
|
|
18
|
+
* @param children The source markup string to parse and render (renders `null` when empty).
|
|
19
|
+
* @param options Optional `MarkupOptions` overrides (`rules`, `rel`, `url`, `root`, `schemes`).
|
|
20
|
+
* @returns The parsed markup as React nodes, or `null` when `children` is empty.
|
|
14
21
|
* @example <Prose><Markup>{`A *bold* word with \`code\`.`}</Markup></Prose>
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Markup/Markup
|
|
15
23
|
*/
|
|
16
24
|
export declare function Markup({ children, ...options }: MarkupProps): ReactNode;
|
package/ui/misc/Markup.js
CHANGED
|
@@ -6,7 +6,11 @@ import { requireMeta } from "./MetaContext.js";
|
|
|
6
6
|
* - `url`/`root` default to the current `<Meta>` context so link rules resolve site-absolute and relative hrefs.
|
|
7
7
|
* - Renders inside whatever ancestor element the caller provides — wrap in `<Prose>` to get the standard prose typography for the produced `<p>` / `<ul>` / `<pre>` / etc.
|
|
8
8
|
*
|
|
9
|
+
* @param children The source markup string to parse and render (renders `null` when empty).
|
|
10
|
+
* @param options Optional `MarkupOptions` overrides (`rules`, `rel`, `url`, `root`, `schemes`).
|
|
11
|
+
* @returns The parsed markup as React nodes, or `null` when `children` is empty.
|
|
9
12
|
* @example <Prose><Markup>{`A *bold* word with \`code\`.`}</Markup></Prose>
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Markup/Markup
|
|
10
14
|
*/
|
|
11
15
|
export function Markup({ children, ...options }) {
|
|
12
16
|
if (!children)
|
package/ui/misc/Markup.tsx
CHANGED
|
@@ -2,7 +2,11 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import { type MarkupOptions, MarkupParser } from "../../markup/MarkupParser.js";
|
|
3
3
|
import { requireMeta } from "./MetaContext.js";
|
|
4
4
|
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Props for `<Markup>` — extends `MarkupOptions` so callers can override `rules`, `rel`, `url`, `root`, or `schemes` directly.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Markup/MarkupProps
|
|
9
|
+
*/
|
|
6
10
|
export interface MarkupProps extends Partial<MarkupOptions> {
|
|
7
11
|
/** The source string to parse and render. */
|
|
8
12
|
children?: string | undefined;
|
|
@@ -14,7 +18,11 @@ export interface MarkupProps extends Partial<MarkupOptions> {
|
|
|
14
18
|
* - `url`/`root` default to the current `<Meta>` context so link rules resolve site-absolute and relative hrefs.
|
|
15
19
|
* - Renders inside whatever ancestor element the caller provides — wrap in `<Prose>` to get the standard prose typography for the produced `<p>` / `<ul>` / `<pre>` / etc.
|
|
16
20
|
*
|
|
21
|
+
* @param children The source markup string to parse and render (renders `null` when empty).
|
|
22
|
+
* @param options Optional `MarkupOptions` overrides (`rules`, `rel`, `url`, `root`, `schemes`).
|
|
23
|
+
* @returns The parsed markup as React nodes, or `null` when `children` is empty.
|
|
17
24
|
* @example <Prose><Markup>{`A *bold* word with \`code\`.`}</Markup></Prose>
|
|
25
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Markup/Markup
|
|
18
26
|
*/
|
|
19
27
|
export function Markup({ children, ...options }: MarkupProps): ReactNode {
|
|
20
28
|
if (!children) return null;
|
package/ui/misc/MetaContext.d.ts
CHANGED
|
@@ -3,15 +3,29 @@ import type { AbsolutePath } from "../../util/path.js";
|
|
|
3
3
|
import { type URIParams } from "../../util/uri.js";
|
|
4
4
|
import { type ImmutableURL } from "../../util/url.js";
|
|
5
5
|
import { type Meta, type PossibleMeta } from "../util/meta.js";
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* React context holding the current `Meta` object (page URL, site root, title, etc.).
|
|
8
|
+
*
|
|
9
|
+
* @example <MetaContext value={meta}>…</MetaContext>
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaContext
|
|
11
|
+
*/
|
|
7
12
|
export declare const MetaContext: import("react").Context<Meta>;
|
|
8
13
|
/**
|
|
9
|
-
*
|
|
14
|
+
* Read the current `Meta` context, optionally merging in additional meta data.
|
|
15
|
+
*
|
|
16
|
+
* - Must be called inside a component or hook (reads context via React's `use()`).
|
|
10
17
|
*
|
|
11
18
|
* @param meta A set of new possible meta data to combine into the current meta context.
|
|
19
|
+
* @returns The current `Meta`, with `meta` merged in when provided.
|
|
20
|
+
* @example const { title, url } = requireMeta();
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMeta
|
|
12
22
|
*/
|
|
13
23
|
export declare function requireMeta(meta?: PossibleMeta): Meta;
|
|
14
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* A `Meta` object with a guaranteed `url`, plus derived `path` and `params` properties.
|
|
26
|
+
*
|
|
27
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaURL
|
|
28
|
+
*/
|
|
15
29
|
export interface MetaURL extends Meta {
|
|
16
30
|
url: ImmutableURL;
|
|
17
31
|
/** The path of `url` relative to `meta.root` (i.e. the _site-root-relative_ path). */
|
|
@@ -20,11 +34,14 @@ export interface MetaURL extends Meta {
|
|
|
20
34
|
params: URIParams;
|
|
21
35
|
}
|
|
22
36
|
/**
|
|
23
|
-
*
|
|
37
|
+
* Read the current `Meta` context and derive URL helpers (`path` and `params`) from its `url`.
|
|
24
38
|
*
|
|
25
39
|
* @param meta A set of new possible meta data to combine into the current meta context.
|
|
26
|
-
* @
|
|
27
|
-
* @
|
|
28
|
-
* @throws
|
|
40
|
+
* @param caller Function to attribute thrown `RequiredError`s to (defaults to `requireMetaURL`).
|
|
41
|
+
* @returns A `Meta` object with a defined `url`, plus `path` and `params` properties combined in.
|
|
42
|
+
* @throws RequiredError If the current meta has no `url`.
|
|
43
|
+
* @throws RequiredError If the current meta `url` does not share an origin with the meta `root`.
|
|
44
|
+
* @example const { path, params } = requireMetaURL();
|
|
45
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMetaURL
|
|
29
46
|
*/
|
|
30
47
|
export declare function requireMetaURL(meta?: PossibleMeta, caller?: AnyCaller): MetaURL;
|
package/ui/misc/MetaContext.js
CHANGED
|
@@ -3,25 +3,38 @@ import { RequiredError } from "../../error/RequiredError.js";
|
|
|
3
3
|
import { getURIParams } from "../../util/uri.js";
|
|
4
4
|
import { matchURLPrefix } from "../../util/url.js";
|
|
5
5
|
import { mergeMeta } from "../util/meta.js";
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* React context holding the current `Meta` object (page URL, site root, title, etc.).
|
|
8
|
+
*
|
|
9
|
+
* @example <MetaContext value={meta}>…</MetaContext>
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaContext
|
|
11
|
+
*/
|
|
7
12
|
export const MetaContext = createContext({});
|
|
8
13
|
MetaContext.displayName = "MetaContext";
|
|
9
14
|
/**
|
|
10
|
-
*
|
|
15
|
+
* Read the current `Meta` context, optionally merging in additional meta data.
|
|
16
|
+
*
|
|
17
|
+
* - Must be called inside a component or hook (reads context via React's `use()`).
|
|
11
18
|
*
|
|
12
19
|
* @param meta A set of new possible meta data to combine into the current meta context.
|
|
20
|
+
* @returns The current `Meta`, with `meta` merged in when provided.
|
|
21
|
+
* @example const { title, url } = requireMeta();
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMeta
|
|
13
23
|
*/
|
|
14
24
|
export function requireMeta(meta) {
|
|
15
25
|
const current = use(MetaContext);
|
|
16
26
|
return meta ? mergeMeta(current, meta) : current;
|
|
17
27
|
}
|
|
18
28
|
/**
|
|
19
|
-
*
|
|
29
|
+
* Read the current `Meta` context and derive URL helpers (`path` and `params`) from its `url`.
|
|
20
30
|
*
|
|
21
31
|
* @param meta A set of new possible meta data to combine into the current meta context.
|
|
22
|
-
* @
|
|
23
|
-
* @
|
|
24
|
-
* @throws
|
|
32
|
+
* @param caller Function to attribute thrown `RequiredError`s to (defaults to `requireMetaURL`).
|
|
33
|
+
* @returns A `Meta` object with a defined `url`, plus `path` and `params` properties combined in.
|
|
34
|
+
* @throws RequiredError If the current meta has no `url`.
|
|
35
|
+
* @throws RequiredError If the current meta `url` does not share an origin with the meta `root`.
|
|
36
|
+
* @example const { path, params } = requireMetaURL();
|
|
37
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMetaURL
|
|
25
38
|
*/
|
|
26
39
|
export function requireMetaURL(meta, caller = requireMetaURL) {
|
|
27
40
|
const { url, root, ...combined } = requireMeta(meta);
|
package/ui/misc/MetaContext.tsx
CHANGED
|
@@ -6,21 +6,35 @@ import { getURIParams, type URIParams } from "../../util/uri.js";
|
|
|
6
6
|
import { type ImmutableURL, matchURLPrefix } from "../../util/url.js";
|
|
7
7
|
import { type Meta, mergeMeta, type PossibleMeta } from "../util/meta.js";
|
|
8
8
|
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* React context holding the current `Meta` object (page URL, site root, title, etc.).
|
|
11
|
+
*
|
|
12
|
+
* @example <MetaContext value={meta}>…</MetaContext>
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaContext
|
|
14
|
+
*/
|
|
10
15
|
export const MetaContext = createContext<Meta>({});
|
|
11
16
|
MetaContext.displayName = "MetaContext";
|
|
12
17
|
|
|
13
18
|
/**
|
|
14
|
-
*
|
|
19
|
+
* Read the current `Meta` context, optionally merging in additional meta data.
|
|
20
|
+
*
|
|
21
|
+
* - Must be called inside a component or hook (reads context via React's `use()`).
|
|
15
22
|
*
|
|
16
23
|
* @param meta A set of new possible meta data to combine into the current meta context.
|
|
24
|
+
* @returns The current `Meta`, with `meta` merged in when provided.
|
|
25
|
+
* @example const { title, url } = requireMeta();
|
|
26
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMeta
|
|
17
27
|
*/
|
|
18
28
|
export function requireMeta(meta?: PossibleMeta): Meta {
|
|
19
29
|
const current = use(MetaContext);
|
|
20
30
|
return meta ? mergeMeta(current, meta) : current;
|
|
21
31
|
}
|
|
22
32
|
|
|
23
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* A `Meta` object with a guaranteed `url`, plus derived `path` and `params` properties.
|
|
35
|
+
*
|
|
36
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaURL
|
|
37
|
+
*/
|
|
24
38
|
export interface MetaURL extends Meta {
|
|
25
39
|
url: ImmutableURL;
|
|
26
40
|
/** The path of `url` relative to `meta.root` (i.e. the _site-root-relative_ path). */
|
|
@@ -30,12 +44,15 @@ export interface MetaURL extends Meta {
|
|
|
30
44
|
}
|
|
31
45
|
|
|
32
46
|
/**
|
|
33
|
-
*
|
|
47
|
+
* Read the current `Meta` context and derive URL helpers (`path` and `params`) from its `url`.
|
|
34
48
|
*
|
|
35
49
|
* @param meta A set of new possible meta data to combine into the current meta context.
|
|
36
|
-
* @
|
|
37
|
-
* @
|
|
38
|
-
* @throws
|
|
50
|
+
* @param caller Function to attribute thrown `RequiredError`s to (defaults to `requireMetaURL`).
|
|
51
|
+
* @returns A `Meta` object with a defined `url`, plus `path` and `params` properties combined in.
|
|
52
|
+
* @throws RequiredError If the current meta has no `url`.
|
|
53
|
+
* @throws RequiredError If the current meta `url` does not share an origin with the meta `root`.
|
|
54
|
+
* @example const { path, params } = requireMetaURL();
|
|
55
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMetaURL
|
|
39
56
|
*/
|
|
40
57
|
export function requireMetaURL(meta?: PossibleMeta, caller: AnyCaller = requireMetaURL): MetaURL {
|
|
41
58
|
const { url, root, ...combined } = requireMeta(meta);
|
package/ui/misc/StatusIcon.d.ts
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import type { Status } from "../style/Status.js";
|
|
3
|
+
/**
|
|
4
|
+
* Props for `<StatusIcon>` — the `status` to represent and optional icon `size`.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIconProps
|
|
7
|
+
*/
|
|
3
8
|
export interface StatusIconProps {
|
|
4
9
|
status?: Status;
|
|
5
10
|
/** Size of the icon (defaults to the current line height). */
|
|
6
11
|
size?: "small" | "normal" | "large" | "xlarge" | "xxlarge" | undefined;
|
|
7
12
|
}
|
|
8
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Render the icon for a given status, coloured to match.
|
|
15
|
+
*
|
|
16
|
+
* - Picks a heroicon per status (`success`, `error`, `warning`, etc.), falling back to an info icon, and uses the animated `<Loading>` spinner for `"loading"`.
|
|
17
|
+
*
|
|
18
|
+
* @param status The status to represent (defaults to `"info"`).
|
|
19
|
+
* @param size Optional icon size (defaults to the current line height).
|
|
20
|
+
* @returns The status icon element.
|
|
21
|
+
* @example <StatusIcon status="error" size="large" />
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIcon
|
|
23
|
+
*/
|
|
9
24
|
export declare function StatusIcon({ status, size }: StatusIconProps): ReactElement;
|
package/ui/misc/StatusIcon.js
CHANGED
|
@@ -11,7 +11,17 @@ const STATUS_ICONS = {
|
|
|
11
11
|
warning: ExclamationTriangleIcon,
|
|
12
12
|
danger: ExclamationTriangleIcon,
|
|
13
13
|
};
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Render the icon for a given status, coloured to match.
|
|
16
|
+
*
|
|
17
|
+
* - Picks a heroicon per status (`success`, `error`, `warning`, etc.), falling back to an info icon, and uses the animated `<Loading>` spinner for `"loading"`.
|
|
18
|
+
*
|
|
19
|
+
* @param status The status to represent (defaults to `"info"`).
|
|
20
|
+
* @param size Optional icon size (defaults to the current line height).
|
|
21
|
+
* @returns The status icon element.
|
|
22
|
+
* @example <StatusIcon status="error" size="large" />
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIcon
|
|
24
|
+
*/
|
|
15
25
|
export function StatusIcon({ status = "info", size }) {
|
|
16
26
|
const Icon = STATUS_ICONS[status] ?? InformationCircleIcon;
|
|
17
27
|
return _jsx(Icon, { className: `${getModuleClass(styles, "icon", size)} ${getModuleClass(statusStyles, status)}` });
|
package/ui/misc/StatusIcon.tsx
CHANGED
|
@@ -16,13 +16,28 @@ const STATUS_ICONS: {
|
|
|
16
16
|
danger: ExclamationTriangleIcon,
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Props for `<StatusIcon>` — the `status` to represent and optional icon `size`.
|
|
21
|
+
*
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIconProps
|
|
23
|
+
*/
|
|
19
24
|
export interface StatusIconProps {
|
|
20
25
|
status?: Status;
|
|
21
26
|
/** Size of the icon (defaults to the current line height). */
|
|
22
27
|
size?: "small" | "normal" | "large" | "xlarge" | "xxlarge" | undefined;
|
|
23
28
|
}
|
|
24
29
|
|
|
25
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Render the icon for a given status, coloured to match.
|
|
32
|
+
*
|
|
33
|
+
* - Picks a heroicon per status (`success`, `error`, `warning`, etc.), falling back to an info icon, and uses the animated `<Loading>` spinner for `"loading"`.
|
|
34
|
+
*
|
|
35
|
+
* @param status The status to represent (defaults to `"info"`).
|
|
36
|
+
* @param size Optional icon size (defaults to the current line height).
|
|
37
|
+
* @returns The status icon element.
|
|
38
|
+
* @example <StatusIcon status="error" size="large" />
|
|
39
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIcon
|
|
40
|
+
*/
|
|
26
41
|
export function StatusIcon({ status = "info", size }: StatusIconProps): ReactElement {
|
|
27
42
|
const Icon = STATUS_ICONS[status] ?? InformationCircleIcon;
|
|
28
43
|
return <Icon className={`${getModuleClass(styles, "icon", size)} ${getModuleClass(statusStyles, status)}`} />;
|
package/ui/misc/Tag.d.ts
CHANGED
|
@@ -3,9 +3,27 @@ import { type ClickableProps } from "../form/Clickable.js";
|
|
|
3
3
|
import { type ColorVariants } from "../style/Color.js";
|
|
4
4
|
import { type StatusVariants } from "../style/Status.js";
|
|
5
5
|
import { type TypographyVariants } from "../style/Typography.js";
|
|
6
|
+
/**
|
|
7
|
+
* Styling variants accepted by `<Tag>` — status, colour, and typography options.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagVariants
|
|
10
|
+
*/
|
|
6
11
|
export interface TagVariants extends StatusVariants, ColorVariants, TypographyVariants {
|
|
7
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Build the combined `className` string for a `<Tag>` from its styling variants.
|
|
15
|
+
*
|
|
16
|
+
* @param variants The status, colour, and typography variants to apply.
|
|
17
|
+
* @returns The merged tag `className` string.
|
|
18
|
+
* @example getTagClass({ success: true }) // "tag … status-success"
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/getTagClass
|
|
20
|
+
*/
|
|
8
21
|
export declare function getTagClass(variants: TagVariants): string;
|
|
22
|
+
/**
|
|
23
|
+
* Props for `<Tag>` — `TagVariants` styling options plus `<Clickable>` props (`href`, `onClick`, `children`, etc.).
|
|
24
|
+
*
|
|
25
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagProps
|
|
26
|
+
*/
|
|
9
27
|
export interface TagProps extends TagVariants, ClickableProps {
|
|
10
28
|
}
|
|
11
29
|
/**
|
|
@@ -13,7 +31,10 @@ export interface TagProps extends TagVariants, ClickableProps {
|
|
|
13
31
|
* - Delegates to `getClickable()` — renders as `<a>` when `href` is set, otherwise `<button>`.
|
|
14
32
|
* - Accepts a status variant (`success`, `info`, `error`, etc.) _or_ a raw colour (`color="red"`, `color="purple"`, etc.).
|
|
15
33
|
*
|
|
34
|
+
* @param props Tag styling variants and clickable props.
|
|
35
|
+
* @returns The tag element.
|
|
16
36
|
* @example <Tag success>Active</Tag>
|
|
17
37
|
* @example <Tag color="purple" href="/beta">Beta</Tag>
|
|
38
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/Tag
|
|
18
39
|
*/
|
|
19
40
|
export declare function Tag(props: TagProps): ReactElement;
|
package/ui/misc/Tag.js
CHANGED
|
@@ -6,6 +6,14 @@ import { getTypographyClass } from "../style/Typography.js";
|
|
|
6
6
|
import { getClass, getModuleClass } from "../util/css.js";
|
|
7
7
|
import TAG_CSS from "./Tag.module.css";
|
|
8
8
|
const TAG_CLASS = getModuleClass(TAG_CSS, "tag");
|
|
9
|
+
/**
|
|
10
|
+
* Build the combined `className` string for a `<Tag>` from its styling variants.
|
|
11
|
+
*
|
|
12
|
+
* @param variants The status, colour, and typography variants to apply.
|
|
13
|
+
* @returns The merged tag `className` string.
|
|
14
|
+
* @example getTagClass({ success: true }) // "tag … status-success"
|
|
15
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/getTagClass
|
|
16
|
+
*/
|
|
9
17
|
export function getTagClass(variants) {
|
|
10
18
|
return getClass(TAG_CLASS, //
|
|
11
19
|
getStatusClass(variants), getColorClass(variants), getTypographyClass(variants));
|
|
@@ -15,8 +23,11 @@ export function getTagClass(variants) {
|
|
|
15
23
|
* - Delegates to `getClickable()` — renders as `<a>` when `href` is set, otherwise `<button>`.
|
|
16
24
|
* - Accepts a status variant (`success`, `info`, `error`, etc.) _or_ a raw colour (`color="red"`, `color="purple"`, etc.).
|
|
17
25
|
*
|
|
26
|
+
* @param props Tag styling variants and clickable props.
|
|
27
|
+
* @returns The tag element.
|
|
18
28
|
* @example <Tag success>Active</Tag>
|
|
19
29
|
* @example <Tag color="purple" href="/beta">Beta</Tag>
|
|
30
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/Tag
|
|
20
31
|
*/
|
|
21
32
|
export function Tag(props) {
|
|
22
33
|
return _jsx(Clickable, { ...props, className: getTagClass(props) });
|
package/ui/misc/Tag.tsx
CHANGED
|
@@ -8,8 +8,21 @@ import TAG_CSS from "./Tag.module.css";
|
|
|
8
8
|
|
|
9
9
|
const TAG_CLASS = getModuleClass(TAG_CSS, "tag");
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Styling variants accepted by `<Tag>` — status, colour, and typography options.
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagVariants
|
|
15
|
+
*/
|
|
11
16
|
export interface TagVariants extends StatusVariants, ColorVariants, TypographyVariants {}
|
|
12
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Build the combined `className` string for a `<Tag>` from its styling variants.
|
|
20
|
+
*
|
|
21
|
+
* @param variants The status, colour, and typography variants to apply.
|
|
22
|
+
* @returns The merged tag `className` string.
|
|
23
|
+
* @example getTagClass({ success: true }) // "tag … status-success"
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/getTagClass
|
|
25
|
+
*/
|
|
13
26
|
export function getTagClass(variants: TagVariants) {
|
|
14
27
|
return getClass(
|
|
15
28
|
TAG_CLASS, //
|
|
@@ -19,6 +32,11 @@ export function getTagClass(variants: TagVariants) {
|
|
|
19
32
|
);
|
|
20
33
|
}
|
|
21
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Props for `<Tag>` — `TagVariants` styling options plus `<Clickable>` props (`href`, `onClick`, `children`, etc.).
|
|
37
|
+
*
|
|
38
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagProps
|
|
39
|
+
*/
|
|
22
40
|
export interface TagProps extends TagVariants, ClickableProps {}
|
|
23
41
|
|
|
24
42
|
/**
|
|
@@ -26,8 +44,11 @@ export interface TagProps extends TagVariants, ClickableProps {}
|
|
|
26
44
|
* - Delegates to `getClickable()` — renders as `<a>` when `href` is set, otherwise `<button>`.
|
|
27
45
|
* - Accepts a status variant (`success`, `info`, `error`, etc.) _or_ a raw colour (`color="red"`, `color="purple"`, etc.).
|
|
28
46
|
*
|
|
47
|
+
* @param props Tag styling variants and clickable props.
|
|
48
|
+
* @returns The tag element.
|
|
29
49
|
* @example <Tag success>Active</Tag>
|
|
30
50
|
* @example <Tag color="purple" href="/beta">Beta</Tag>
|
|
51
|
+
* @see https://dhoulb.github.io/shelving/ui/misc/Tag/Tag
|
|
31
52
|
*/
|
|
32
53
|
export function Tag(props: TagProps): ReactElement {
|
|
33
54
|
return <Clickable {...props} className={getTagClass(props)} />;
|
package/ui/notice/Message.d.ts
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
import { type ParagraphProps } from "../block/Paragraph.js";
|
|
2
2
|
import { type ColorVariants } from "../style/Color.js";
|
|
3
3
|
import { type StatusVariants } from "../style/Status.js";
|
|
4
|
+
/**
|
|
5
|
+
* Base `className` applied to every `<Message>` paragraph.
|
|
6
|
+
*
|
|
7
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/MESSAGE_CLASS
|
|
8
|
+
*/
|
|
4
9
|
export declare const MESSAGE_CLASS: string;
|
|
10
|
+
/**
|
|
11
|
+
* Props for `<Message>` — paragraph props plus colour and status styling variants.
|
|
12
|
+
*
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/MessageProps
|
|
14
|
+
*/
|
|
5
15
|
export interface MessageProps extends ParagraphProps, ColorVariants, StatusVariants {
|
|
6
16
|
}
|
|
7
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Status-coloured paragraph used for inline feedback messages.
|
|
19
|
+
*
|
|
20
|
+
* - Sets an ARIA `role` of `"alert"` for error/danger statuses, otherwise `"status"`.
|
|
21
|
+
*
|
|
22
|
+
* @param children The message content.
|
|
23
|
+
* @param props Paragraph, colour, and status styling variants.
|
|
24
|
+
* @returns The message paragraph element.
|
|
25
|
+
* @example <Message status="error">Something went wrong</Message>
|
|
26
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/Message
|
|
27
|
+
*/
|
|
8
28
|
export declare function Message({ children, ...props }: MessageProps): import("react").JSX.Element;
|
|
29
|
+
/**
|
|
30
|
+
* Shared loading `<Message>` element containing the `<Loading>` spinner.
|
|
31
|
+
*
|
|
32
|
+
* @example return isLoading ? LOADING_MESSAGE : <Message>{text}</Message>;
|
|
33
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/LOADING_MESSAGE
|
|
34
|
+
*/
|
|
9
35
|
export declare const LOADING_MESSAGE: import("react").JSX.Element;
|