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/notice/Message.js
CHANGED
|
@@ -5,11 +5,32 @@ import { getColorClass } from "../style/Color.js";
|
|
|
5
5
|
import { getStatusClass } from "../style/Status.js";
|
|
6
6
|
import { getClass } from "../util/css.js";
|
|
7
7
|
import MESSAGE_CSS from "./Message.module.css";
|
|
8
|
+
/**
|
|
9
|
+
* Base `className` applied to every `<Message>` paragraph.
|
|
10
|
+
*
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/MESSAGE_CLASS
|
|
12
|
+
*/
|
|
8
13
|
export const MESSAGE_CLASS = getClass(MESSAGE_CSS.message);
|
|
9
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Status-coloured paragraph used for inline feedback messages.
|
|
16
|
+
*
|
|
17
|
+
* - Sets an ARIA `role` of `"alert"` for error/danger statuses, otherwise `"status"`.
|
|
18
|
+
*
|
|
19
|
+
* @param children The message content.
|
|
20
|
+
* @param props Paragraph, colour, and status styling variants.
|
|
21
|
+
* @returns The message paragraph element.
|
|
22
|
+
* @example <Message status="error">Something went wrong</Message>
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/Message
|
|
24
|
+
*/
|
|
10
25
|
export function Message({ children, ...props }) {
|
|
11
26
|
const { status } = props;
|
|
12
27
|
return (_jsx("p", { role: status === "error" || status === "danger" ? "alert" : "status", className: getClass(PARAGRAPH_CLASS, //
|
|
13
28
|
MESSAGE_CLASS, getStatusClass(props), getColorClass(props)), children: children }));
|
|
14
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Shared loading `<Message>` element containing the `<Loading>` spinner.
|
|
32
|
+
*
|
|
33
|
+
* @example return isLoading ? LOADING_MESSAGE : <Message>{text}</Message>;
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/LOADING_MESSAGE
|
|
35
|
+
*/
|
|
15
36
|
export const LOADING_MESSAGE = _jsx(Message, { status: "loading", children: LOADING });
|
package/ui/notice/Message.tsx
CHANGED
|
@@ -5,11 +5,31 @@ import { getStatusClass, type StatusVariants } from "../style/Status.js";
|
|
|
5
5
|
import { getClass } from "../util/css.js";
|
|
6
6
|
import MESSAGE_CSS from "./Message.module.css";
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Base `className` applied to every `<Message>` paragraph.
|
|
10
|
+
*
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/MESSAGE_CLASS
|
|
12
|
+
*/
|
|
8
13
|
export const MESSAGE_CLASS = getClass(MESSAGE_CSS.message);
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Props for `<Message>` — paragraph props plus colour and status styling variants.
|
|
17
|
+
*
|
|
18
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/MessageProps
|
|
19
|
+
*/
|
|
10
20
|
export interface MessageProps extends ParagraphProps, ColorVariants, StatusVariants {}
|
|
11
21
|
|
|
12
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Status-coloured paragraph used for inline feedback messages.
|
|
24
|
+
*
|
|
25
|
+
* - Sets an ARIA `role` of `"alert"` for error/danger statuses, otherwise `"status"`.
|
|
26
|
+
*
|
|
27
|
+
* @param children The message content.
|
|
28
|
+
* @param props Paragraph, colour, and status styling variants.
|
|
29
|
+
* @returns The message paragraph element.
|
|
30
|
+
* @example <Message status="error">Something went wrong</Message>
|
|
31
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/Message
|
|
32
|
+
*/
|
|
13
33
|
export function Message({ children, ...props }: MessageProps) {
|
|
14
34
|
const { status } = props;
|
|
15
35
|
return (
|
|
@@ -27,4 +47,10 @@ export function Message({ children, ...props }: MessageProps) {
|
|
|
27
47
|
);
|
|
28
48
|
}
|
|
29
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Shared loading `<Message>` element containing the `<Loading>` spinner.
|
|
52
|
+
*
|
|
53
|
+
* @example return isLoading ? LOADING_MESSAGE : <Message>{text}</Message>;
|
|
54
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Message/LOADING_MESSAGE
|
|
55
|
+
*/
|
|
30
56
|
export const LOADING_MESSAGE = <Message status="loading">{LOADING}</Message>;
|
package/ui/notice/Notice.d.ts
CHANGED
|
@@ -3,10 +3,34 @@ import { type ColorVariants } from "../style/Color.js";
|
|
|
3
3
|
import { type FlexVariants } from "../style/Flex.js";
|
|
4
4
|
import { type StatusVariants } from "../style/Status.js";
|
|
5
5
|
import type { OptionalChildProps } from "../util/props.js";
|
|
6
|
+
/**
|
|
7
|
+
* Props for `<Notice>` — flex/colour/status styling variants, optional `children`, and an optional `icon`.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/NoticeProps
|
|
10
|
+
*/
|
|
6
11
|
export interface NoticeProps extends FlexVariants, ColorVariants, StatusVariants, OptionalChildProps {
|
|
7
12
|
/** Icon for the notice (or `null` or `false` to hide the icon, defaults to `<StatusIcon>`). */
|
|
8
13
|
icon?: ReactElement | false | undefined;
|
|
9
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Block-level status callout with an icon and message, used to highlight feedback.
|
|
17
|
+
*
|
|
18
|
+
* - Shows a `<StatusIcon>` for the current `status` by default; pass `icon` to override, or `false`/`null` to hide it.
|
|
19
|
+
* - Sets an ARIA `role` of `"alert"` for error/danger statuses, otherwise `"status"`.
|
|
20
|
+
*
|
|
21
|
+
* @param children The notice content.
|
|
22
|
+
* @param icon Optional icon override (`false`/`null` hides it; defaults to the matching `<StatusIcon>`).
|
|
23
|
+
* @param props Flex, colour, and status styling variants.
|
|
24
|
+
* @returns The notice callout element.
|
|
25
|
+
* @example <Notice status="success">Saved your changes</Notice>
|
|
26
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/Notice
|
|
27
|
+
*/
|
|
10
28
|
export declare function Notice({ children, //
|
|
11
29
|
icon, ...props }: NoticeProps): import("react").JSX.Element;
|
|
30
|
+
/**
|
|
31
|
+
* Shared loading `<Notice>` element showing the loading spinner.
|
|
32
|
+
*
|
|
33
|
+
* @example <Suspense fallback={LOADING_NOTICE}>…</Suspense>
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/LOADING_NOTICE
|
|
35
|
+
*/
|
|
12
36
|
export declare const LOADING_NOTICE: import("react").JSX.Element;
|
package/ui/notice/Notice.js
CHANGED
|
@@ -6,9 +6,28 @@ import { getFlexClass } from "../style/Flex.js";
|
|
|
6
6
|
import { getStatusClass } from "../style/Status.js";
|
|
7
7
|
import { getClass, getModuleClass } from "../util/css.js";
|
|
8
8
|
import NOTICE_CSS from "./Notice.module.css";
|
|
9
|
+
/**
|
|
10
|
+
* Block-level status callout with an icon and message, used to highlight feedback.
|
|
11
|
+
*
|
|
12
|
+
* - Shows a `<StatusIcon>` for the current `status` by default; pass `icon` to override, or `false`/`null` to hide it.
|
|
13
|
+
* - Sets an ARIA `role` of `"alert"` for error/danger statuses, otherwise `"status"`.
|
|
14
|
+
*
|
|
15
|
+
* @param children The notice content.
|
|
16
|
+
* @param icon Optional icon override (`false`/`null` hides it; defaults to the matching `<StatusIcon>`).
|
|
17
|
+
* @param props Flex, colour, and status styling variants.
|
|
18
|
+
* @returns The notice callout element.
|
|
19
|
+
* @example <Notice status="success">Saved your changes</Notice>
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/Notice
|
|
21
|
+
*/
|
|
9
22
|
export function Notice({ children, //
|
|
10
23
|
icon, ...props }) {
|
|
11
24
|
const { status } = props;
|
|
12
25
|
return (_jsxs("aside", { role: status === "danger" || status === "error" ? "alert" : "status", className: getClass(BLOCK_CLASS, getModuleClass(NOTICE_CSS, "notice", props), getFlexClass(props), getStatusClass(props), getColorClass(props)), children: [icon !== undefined ? icon : status && _jsx(StatusIcon, { status: status }), children] }));
|
|
13
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Shared loading `<Notice>` element showing the loading spinner.
|
|
29
|
+
*
|
|
30
|
+
* @example <Suspense fallback={LOADING_NOTICE}>…</Suspense>
|
|
31
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/LOADING_NOTICE
|
|
32
|
+
*/
|
|
14
33
|
export const LOADING_NOTICE = _jsx(Notice, { status: "loading" });
|
package/ui/notice/Notice.tsx
CHANGED
|
@@ -8,11 +8,29 @@ import { getClass, getModuleClass } from "../util/css.js";
|
|
|
8
8
|
import type { OptionalChildProps } from "../util/props.js";
|
|
9
9
|
import NOTICE_CSS from "./Notice.module.css";
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Props for `<Notice>` — flex/colour/status styling variants, optional `children`, and an optional `icon`.
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/NoticeProps
|
|
15
|
+
*/
|
|
11
16
|
export interface NoticeProps extends FlexVariants, ColorVariants, StatusVariants, OptionalChildProps {
|
|
12
17
|
/** Icon for the notice (or `null` or `false` to hide the icon, defaults to `<StatusIcon>`). */
|
|
13
18
|
icon?: ReactElement | false | undefined;
|
|
14
19
|
}
|
|
15
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Block-level status callout with an icon and message, used to highlight feedback.
|
|
23
|
+
*
|
|
24
|
+
* - Shows a `<StatusIcon>` for the current `status` by default; pass `icon` to override, or `false`/`null` to hide it.
|
|
25
|
+
* - Sets an ARIA `role` of `"alert"` for error/danger statuses, otherwise `"status"`.
|
|
26
|
+
*
|
|
27
|
+
* @param children The notice content.
|
|
28
|
+
* @param icon Optional icon override (`false`/`null` hides it; defaults to the matching `<StatusIcon>`).
|
|
29
|
+
* @param props Flex, colour, and status styling variants.
|
|
30
|
+
* @returns The notice callout element.
|
|
31
|
+
* @example <Notice status="success">Saved your changes</Notice>
|
|
32
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/Notice
|
|
33
|
+
*/
|
|
16
34
|
export function Notice({
|
|
17
35
|
children, //
|
|
18
36
|
icon,
|
|
@@ -36,4 +54,10 @@ export function Notice({
|
|
|
36
54
|
);
|
|
37
55
|
}
|
|
38
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Shared loading `<Notice>` element showing the loading spinner.
|
|
59
|
+
*
|
|
60
|
+
* @example <Suspense fallback={LOADING_NOTICE}>…</Suspense>
|
|
61
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notice/LOADING_NOTICE
|
|
62
|
+
*/
|
|
39
63
|
export const LOADING_NOTICE = <Notice status="loading" />;
|
|
@@ -5,13 +5,41 @@ type NoticeData<S extends string> = {
|
|
|
5
5
|
readonly status?: S | undefined;
|
|
6
6
|
readonly children?: ReactNode | undefined;
|
|
7
7
|
};
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Store holding a single notice's content and status, owned by a `NoticesStore`.
|
|
10
|
+
*
|
|
11
|
+
* - Auto-closes itself a few seconds after opening unless its status is `"loading"`.
|
|
12
|
+
* - Adds itself to its parent `NoticesStore` on construction and removes itself on `close()` or disposal.
|
|
13
|
+
*
|
|
14
|
+
* @example const notice = notices.show("Saved", "success"); notice.close();
|
|
15
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore
|
|
16
|
+
*/
|
|
9
17
|
export declare class NoticeStore<S extends string> extends DataStore<NoticeData<S>> {
|
|
10
18
|
private _notices;
|
|
11
19
|
readonly key: string;
|
|
20
|
+
/**
|
|
21
|
+
* Create a notice and register it with its parent `NoticesStore`.
|
|
22
|
+
*
|
|
23
|
+
* @param notices The parent store to add this notice to.
|
|
24
|
+
* @param children The notice content (optional).
|
|
25
|
+
* @param status The notice status (optional).
|
|
26
|
+
*/
|
|
12
27
|
constructor(notices: NoticesStore<S>, children?: ReactNode | null, status?: S | undefined);
|
|
28
|
+
/**
|
|
29
|
+
* Update the notice's content and status, resetting its auto-close timer.
|
|
30
|
+
*
|
|
31
|
+
* @param children The new notice content.
|
|
32
|
+
* @param status The new status (defaults to the current status).
|
|
33
|
+
* @example notice.show("Updating…", "loading");
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore/show
|
|
35
|
+
*/
|
|
13
36
|
show(children?: ReactNode | undefined, status?: S | undefined): void;
|
|
14
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Close this notice permanently, removing it from its parent `NoticesStore`.
|
|
39
|
+
*
|
|
40
|
+
* @example notice.close();
|
|
41
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore/close
|
|
42
|
+
*/
|
|
15
43
|
close(): void;
|
|
16
44
|
write(data: NoticeData<S>): void;
|
|
17
45
|
protected _autoclose(): void;
|
package/ui/notice/NoticeStore.js
CHANGED
|
@@ -5,20 +5,48 @@ import { getRandomKey } from "../../util/random.js";
|
|
|
5
5
|
import { Timeout } from "../../util/timeout.js";
|
|
6
6
|
// Constants.
|
|
7
7
|
const TEMPORARY_NOTICE_MS = 5 * SECOND; // How long before notices hide themselves.
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Store holding a single notice's content and status, owned by a `NoticesStore`.
|
|
10
|
+
*
|
|
11
|
+
* - Auto-closes itself a few seconds after opening unless its status is `"loading"`.
|
|
12
|
+
* - Adds itself to its parent `NoticesStore` on construction and removes itself on `close()` or disposal.
|
|
13
|
+
*
|
|
14
|
+
* @example const notice = notices.show("Saved", "success"); notice.close();
|
|
15
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore
|
|
16
|
+
*/
|
|
9
17
|
export class NoticeStore extends DataStore {
|
|
10
18
|
_notices;
|
|
11
19
|
key = getRandomKey();
|
|
20
|
+
/**
|
|
21
|
+
* Create a notice and register it with its parent `NoticesStore`.
|
|
22
|
+
*
|
|
23
|
+
* @param notices The parent store to add this notice to.
|
|
24
|
+
* @param children The notice content (optional).
|
|
25
|
+
* @param status The notice status (optional).
|
|
26
|
+
*/
|
|
12
27
|
constructor(notices, children, status) {
|
|
13
28
|
super({ status, children });
|
|
14
29
|
this._notices = notices;
|
|
15
30
|
notices.add(this);
|
|
16
31
|
this._autoclose();
|
|
17
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Update the notice's content and status, resetting its auto-close timer.
|
|
35
|
+
*
|
|
36
|
+
* @param children The new notice content.
|
|
37
|
+
* @param status The new status (defaults to the current status).
|
|
38
|
+
* @example notice.show("Updating…", "loading");
|
|
39
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore/show
|
|
40
|
+
*/
|
|
18
41
|
show(children, status = this.value.status) {
|
|
19
42
|
this.value = { children, status };
|
|
20
43
|
}
|
|
21
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Close this notice permanently, removing it from its parent `NoticesStore`.
|
|
46
|
+
*
|
|
47
|
+
* @example notice.close();
|
|
48
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore/close
|
|
49
|
+
*/
|
|
22
50
|
close() {
|
|
23
51
|
this._notices.delete(this);
|
|
24
52
|
}
|
package/ui/notice/NoticeStore.ts
CHANGED
|
@@ -14,12 +14,27 @@ type NoticeData<S extends string> = {
|
|
|
14
14
|
readonly children?: ReactNode | undefined;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Store holding a single notice's content and status, owned by a `NoticesStore`.
|
|
19
|
+
*
|
|
20
|
+
* - Auto-closes itself a few seconds after opening unless its status is `"loading"`.
|
|
21
|
+
* - Adds itself to its parent `NoticesStore` on construction and removes itself on `close()` or disposal.
|
|
22
|
+
*
|
|
23
|
+
* @example const notice = notices.show("Saved", "success"); notice.close();
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore
|
|
25
|
+
*/
|
|
18
26
|
export class NoticeStore<S extends string> extends DataStore<NoticeData<S>> {
|
|
19
27
|
private _notices: NoticesStore<S>;
|
|
20
28
|
|
|
21
29
|
readonly key = getRandomKey();
|
|
22
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Create a notice and register it with its parent `NoticesStore`.
|
|
33
|
+
*
|
|
34
|
+
* @param notices The parent store to add this notice to.
|
|
35
|
+
* @param children The notice content (optional).
|
|
36
|
+
* @param status The notice status (optional).
|
|
37
|
+
*/
|
|
23
38
|
constructor(notices: NoticesStore<S>, children?: ReactNode | null, status?: S | undefined) {
|
|
24
39
|
super({ status, children });
|
|
25
40
|
this._notices = notices;
|
|
@@ -27,11 +42,24 @@ export class NoticeStore<S extends string> extends DataStore<NoticeData<S>> {
|
|
|
27
42
|
this._autoclose();
|
|
28
43
|
}
|
|
29
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Update the notice's content and status, resetting its auto-close timer.
|
|
47
|
+
*
|
|
48
|
+
* @param children The new notice content.
|
|
49
|
+
* @param status The new status (defaults to the current status).
|
|
50
|
+
* @example notice.show("Updating…", "loading");
|
|
51
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore/show
|
|
52
|
+
*/
|
|
30
53
|
show(children?: ReactNode | undefined, status: S | undefined = this.value.status): void {
|
|
31
54
|
this.value = { children, status };
|
|
32
55
|
}
|
|
33
56
|
|
|
34
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Close this notice permanently, removing it from its parent `NoticesStore`.
|
|
59
|
+
*
|
|
60
|
+
* @example notice.close();
|
|
61
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticeStore/NoticeStore/close
|
|
62
|
+
*/
|
|
35
63
|
close() {
|
|
36
64
|
this._notices.delete(this);
|
|
37
65
|
}
|
package/ui/notice/Notices.d.ts
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { type FlexVariants } from "../style/Flex.js";
|
|
3
|
+
/**
|
|
4
|
+
* Props for `<Notices>` — flex styling variants for the notices container.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notices/NoticesProps
|
|
7
|
+
*/
|
|
3
8
|
export interface NoticesProps extends FlexVariants {
|
|
4
9
|
}
|
|
5
10
|
/**
|
|
6
|
-
*
|
|
11
|
+
* Render the global list of notices and subscribe to incoming `"notice"` events.
|
|
7
12
|
* - Listens for `"notice"` events on `window` (or that bubble up to `window`) and shows them in the global notice list.
|
|
8
13
|
* - This is how e.g. `<Button>` and `<FormNotify>` components send notices into the global list.
|
|
14
|
+
*
|
|
15
|
+
* @param props Flex styling variants for the container.
|
|
16
|
+
* @returns The notices container element.
|
|
17
|
+
* @example <Notices column />
|
|
18
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notices/Notices
|
|
9
19
|
*/
|
|
10
20
|
export declare function Notices(props: NoticesProps): ReactElement;
|
package/ui/notice/Notices.js
CHANGED
|
@@ -9,9 +9,14 @@ import NOTICES_CSS from "./Notices.module.css";
|
|
|
9
9
|
import { NOTICES } from "./NoticesStore.js";
|
|
10
10
|
const NOTICES_CLASS = getModuleClass(NOTICES_CSS, "notices");
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Render the global list of notices and subscribe to incoming `"notice"` events.
|
|
13
13
|
* - Listens for `"notice"` events on `window` (or that bubble up to `window`) and shows them in the global notice list.
|
|
14
14
|
* - This is how e.g. `<Button>` and `<FormNotify>` components send notices into the global list.
|
|
15
|
+
*
|
|
16
|
+
* @param props Flex styling variants for the container.
|
|
17
|
+
* @returns The notices container element.
|
|
18
|
+
* @example <Notices column />
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notices/Notices
|
|
15
20
|
*/
|
|
16
21
|
export function Notices(props) {
|
|
17
22
|
const notices = useStore(NOTICES).value;
|
package/ui/notice/Notices.tsx
CHANGED
|
@@ -9,12 +9,22 @@ import { NOTICES } from "./NoticesStore.js";
|
|
|
9
9
|
|
|
10
10
|
const NOTICES_CLASS = getModuleClass(NOTICES_CSS, "notices");
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Props for `<Notices>` — flex styling variants for the notices container.
|
|
14
|
+
*
|
|
15
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notices/NoticesProps
|
|
16
|
+
*/
|
|
12
17
|
export interface NoticesProps extends FlexVariants {}
|
|
13
18
|
|
|
14
19
|
/**
|
|
15
|
-
*
|
|
20
|
+
* Render the global list of notices and subscribe to incoming `"notice"` events.
|
|
16
21
|
* - Listens for `"notice"` events on `window` (or that bubble up to `window`) and shows them in the global notice list.
|
|
17
22
|
* - This is how e.g. `<Button>` and `<FormNotify>` components send notices into the global list.
|
|
23
|
+
*
|
|
24
|
+
* @param props Flex styling variants for the container.
|
|
25
|
+
* @returns The notices container element.
|
|
26
|
+
* @example <Notices column />
|
|
27
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/Notices/Notices
|
|
18
28
|
*/
|
|
19
29
|
export function Notices(props: NoticesProps): ReactElement {
|
|
20
30
|
const notices = useStore(NOTICES).value;
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import { ArrayStore } from "../../store/ArrayStore.js";
|
|
3
3
|
import { NoticeStore } from "./NoticeStore.js";
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Store holding the live list of `NoticeStore` notices currently shown.
|
|
6
|
+
*
|
|
7
|
+
* - Disposing the store disposes (and closes) every notice it contains.
|
|
8
|
+
*
|
|
9
|
+
* @example const notices = new NoticesStore(); notices.show("Hello");
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NoticesStore
|
|
11
|
+
*/
|
|
5
12
|
export declare class NoticesStore<S extends string> extends ArrayStore<NoticeStore<S>> {
|
|
6
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Create and show a new notice, adding it to this list.
|
|
15
|
+
*
|
|
16
|
+
* @param children The notice content (optional).
|
|
17
|
+
* @param status The notice status (optional).
|
|
18
|
+
* @returns The newly created `NoticeStore`.
|
|
19
|
+
* @example notices.show("Saved your changes", "success");
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NoticesStore/show
|
|
21
|
+
*/
|
|
7
22
|
show(children?: ReactNode | undefined, status?: S | undefined): NoticeStore<S>;
|
|
8
23
|
[Symbol.asyncDispose](): Promise<void>;
|
|
9
24
|
}
|
|
10
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Global `NoticesStore` shown by `<Notices>`, accepting any of the default statuses.
|
|
27
|
+
*
|
|
28
|
+
* @example NOTICES.show("Saved your changes", "success");
|
|
29
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NOTICES
|
|
30
|
+
*/
|
|
11
31
|
export declare const NOTICES: NoticesStore<"danger" | "error" | "info" | "loading" | "success" | "warning">;
|
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
import { ArrayStore } from "../../store/ArrayStore.js";
|
|
2
2
|
import { awaitDispose } from "../../util/dispose.js";
|
|
3
3
|
import { NoticeStore } from "./NoticeStore.js";
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Store holding the live list of `NoticeStore` notices currently shown.
|
|
6
|
+
*
|
|
7
|
+
* - Disposing the store disposes (and closes) every notice it contains.
|
|
8
|
+
*
|
|
9
|
+
* @example const notices = new NoticesStore(); notices.show("Hello");
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NoticesStore
|
|
11
|
+
*/
|
|
5
12
|
export class NoticesStore extends ArrayStore {
|
|
6
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Create and show a new notice, adding it to this list.
|
|
15
|
+
*
|
|
16
|
+
* @param children The notice content (optional).
|
|
17
|
+
* @param status The notice status (optional).
|
|
18
|
+
* @returns The newly created `NoticeStore`.
|
|
19
|
+
* @example notices.show("Saved your changes", "success");
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NoticesStore/show
|
|
21
|
+
*/
|
|
7
22
|
show(children, status) {
|
|
8
23
|
return new NoticeStore(this, children, status);
|
|
9
24
|
}
|
|
@@ -12,5 +27,10 @@ export class NoticesStore extends ArrayStore {
|
|
|
12
27
|
super[Symbol.asyncDispose]());
|
|
13
28
|
}
|
|
14
29
|
}
|
|
15
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Global `NoticesStore` shown by `<Notices>`, accepting any of the default statuses.
|
|
32
|
+
*
|
|
33
|
+
* @example NOTICES.show("Saved your changes", "success");
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NOTICES
|
|
35
|
+
*/
|
|
16
36
|
export const NOTICES = new NoticesStore();
|
|
@@ -4,9 +4,24 @@ import { awaitDispose } from "../../util/dispose.js";
|
|
|
4
4
|
import type { Status } from "../style/Status.js";
|
|
5
5
|
import { NoticeStore } from "./NoticeStore.js";
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Store holding the live list of `NoticeStore` notices currently shown.
|
|
9
|
+
*
|
|
10
|
+
* - Disposing the store disposes (and closes) every notice it contains.
|
|
11
|
+
*
|
|
12
|
+
* @example const notices = new NoticesStore(); notices.show("Hello");
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NoticesStore
|
|
14
|
+
*/
|
|
8
15
|
export class NoticesStore<S extends string> extends ArrayStore<NoticeStore<S>> {
|
|
9
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Create and show a new notice, adding it to this list.
|
|
18
|
+
*
|
|
19
|
+
* @param children The notice content (optional).
|
|
20
|
+
* @param status The notice status (optional).
|
|
21
|
+
* @returns The newly created `NoticeStore`.
|
|
22
|
+
* @example notices.show("Saved your changes", "success");
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NoticesStore/show
|
|
24
|
+
*/
|
|
10
25
|
show(children?: ReactNode | undefined, status?: S | undefined): NoticeStore<S> {
|
|
11
26
|
return new NoticeStore(this, children, status);
|
|
12
27
|
}
|
|
@@ -19,5 +34,10 @@ export class NoticesStore<S extends string> extends ArrayStore<NoticeStore<S>> {
|
|
|
19
34
|
}
|
|
20
35
|
}
|
|
21
36
|
|
|
22
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Global `NoticesStore` shown by `<Notices>`, accepting any of the default statuses.
|
|
39
|
+
*
|
|
40
|
+
* @example NOTICES.show("Saved your changes", "success");
|
|
41
|
+
* @see https://dhoulb.github.io/shelving/ui/notice/NoticesStore/NOTICES
|
|
42
|
+
*/
|
|
23
43
|
export const NOTICES = new NoticesStore<Status>();
|
package/ui/page/HTML.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import type { PossibleMeta } from "../util/index.js";
|
|
3
3
|
import type { ChildProps } from "../util/props.js";
|
|
4
|
+
/**
|
|
5
|
+
* Props for `<HTML>` — initial `Meta` (language/root/app) plus the page `children`.
|
|
6
|
+
*
|
|
7
|
+
* @see https://dhoulb.github.io/shelving/ui/page/HTML/HTMLProps
|
|
8
|
+
*/
|
|
4
9
|
export interface HTMLProps extends PossibleMeta, ChildProps {
|
|
5
10
|
}
|
|
6
11
|
/**
|
|
7
|
-
*
|
|
8
|
-
* -
|
|
12
|
+
* Render the full `<html>` document shell wrapping `<head>` and `<body>`.
|
|
13
|
+
* - Emits the literal `<head>` with `<base>` and other shell-level metadata; per-page hoistable elements (title, meta, links, stylesheets, scripts) come from `<Head>` inside `<Page>` and are hoisted into this `<head>` by React 19.
|
|
14
|
+
*
|
|
15
|
+
* @param children The document body content.
|
|
16
|
+
* @param meta Initial meta (language/root/app) merged with the surrounding `<Meta>` context.
|
|
17
|
+
* @returns The `<html>` document element.
|
|
18
|
+
* @example <HTML app="My App" root="https://example.com/"><App /></HTML>
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/ui/page/HTML/HTML
|
|
9
20
|
*/
|
|
10
21
|
export declare function HTML({ children, ...meta }: HTMLProps): ReactElement;
|
package/ui/page/HTML.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { MetaContext, requireMeta } from "../misc/MetaContext.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
4
|
+
* Render the full `<html>` document shell wrapping `<head>` and `<body>`.
|
|
5
|
+
* - Emits the literal `<head>` with `<base>` and other shell-level metadata; per-page hoistable elements (title, meta, links, stylesheets, scripts) come from `<Head>` inside `<Page>` and are hoisted into this `<head>` by React 19.
|
|
6
|
+
*
|
|
7
|
+
* @param children The document body content.
|
|
8
|
+
* @param meta Initial meta (language/root/app) merged with the surrounding `<Meta>` context.
|
|
9
|
+
* @returns The `<html>` document element.
|
|
10
|
+
* @example <HTML app="My App" root="https://example.com/"><App /></HTML>
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/page/HTML/HTML
|
|
6
12
|
*/
|
|
7
13
|
export function HTML({ children, ...meta }) {
|
|
8
14
|
const merged = requireMeta(meta);
|
package/ui/page/HTML.tsx
CHANGED
|
@@ -3,11 +3,22 @@ import { MetaContext, requireMeta } from "../misc/MetaContext.js";
|
|
|
3
3
|
import type { PossibleMeta } from "../util/index.js";
|
|
4
4
|
import type { ChildProps } from "../util/props.js";
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Props for `<HTML>` — initial `Meta` (language/root/app) plus the page `children`.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/page/HTML/HTMLProps
|
|
10
|
+
*/
|
|
6
11
|
export interface HTMLProps extends PossibleMeta, ChildProps {}
|
|
7
12
|
|
|
8
13
|
/**
|
|
9
|
-
*
|
|
10
|
-
* -
|
|
14
|
+
* Render the full `<html>` document shell wrapping `<head>` and `<body>`.
|
|
15
|
+
* - Emits the literal `<head>` with `<base>` and other shell-level metadata; per-page hoistable elements (title, meta, links, stylesheets, scripts) come from `<Head>` inside `<Page>` and are hoisted into this `<head>` by React 19.
|
|
16
|
+
*
|
|
17
|
+
* @param children The document body content.
|
|
18
|
+
* @param meta Initial meta (language/root/app) merged with the surrounding `<Meta>` context.
|
|
19
|
+
* @returns The `<html>` document element.
|
|
20
|
+
* @example <HTML app="My App" root="https://example.com/"><App /></HTML>
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/ui/page/HTML/HTML
|
|
11
22
|
*/
|
|
12
23
|
export function HTML({ children, ...meta }: HTMLProps): ReactElement {
|
|
13
24
|
const merged = requireMeta(meta);
|
package/ui/page/Head.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Emit the current page's head metadata and sync browser history to its URL.
|
|
4
4
|
* - Emits hoistable head elements (title, meta, links, stylesheets, scripts) inline; React 19 hoists each one into the document `<head>`.
|
|
5
5
|
* - Does not render `<base>` (not hoistable — that lives in `<Head>` in the `<HTML>` shell component).
|
|
6
6
|
* - Updates `window.history` to match the page URL.
|
|
7
|
+
*
|
|
8
|
+
* @returns The hoistable head elements derived from the current `<Meta>` context.
|
|
9
|
+
* @example <Page title="Settings"><Head />…</Page>
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/page/Head/Head
|
|
7
11
|
*/
|
|
8
12
|
export declare function Head(): ReactElement;
|
package/ui/page/Head.js
CHANGED
|
@@ -6,10 +6,14 @@ import { joinTitles } from "../util/meta.js";
|
|
|
6
6
|
/** Meta tags with a capital first letter and hyphens, e.g. `Content-Security-Policy` or `Accept`, are `http-equiv=""` tags. */
|
|
7
7
|
const R_HTTP_EQUIV = /^[A-Z][a-zA-Z0-9]*(-[A-Z][a-zA-Z0-9]*)*$/;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Emit the current page's head metadata and sync browser history to its URL.
|
|
10
10
|
* - Emits hoistable head elements (title, meta, links, stylesheets, scripts) inline; React 19 hoists each one into the document `<head>`.
|
|
11
11
|
* - Does not render `<base>` (not hoistable — that lives in `<Head>` in the `<HTML>` shell component).
|
|
12
12
|
* - Updates `window.history` to match the page URL.
|
|
13
|
+
*
|
|
14
|
+
* @returns The hoistable head elements derived from the current `<Meta>` context.
|
|
15
|
+
* @example <Page title="Settings"><Head />…</Page>
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/ui/page/Head/Head
|
|
13
17
|
*/
|
|
14
18
|
export function Head() {
|
|
15
19
|
const meta = requireMeta();
|
package/ui/page/Head.tsx
CHANGED
|
@@ -8,10 +8,14 @@ import { joinTitles, type MetaAssets, type MetaLinks, type MetaTags } from "../u
|
|
|
8
8
|
const R_HTTP_EQUIV = /^[A-Z][a-zA-Z0-9]*(-[A-Z][a-zA-Z0-9]*)*$/;
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Emit the current page's head metadata and sync browser history to its URL.
|
|
12
12
|
* - Emits hoistable head elements (title, meta, links, stylesheets, scripts) inline; React 19 hoists each one into the document `<head>`.
|
|
13
13
|
* - Does not render `<base>` (not hoistable — that lives in `<Head>` in the `<HTML>` shell component).
|
|
14
14
|
* - Updates `window.history` to match the page URL.
|
|
15
|
+
*
|
|
16
|
+
* @returns The hoistable head elements derived from the current `<Meta>` context.
|
|
17
|
+
* @example <Page title="Settings"><Head />…</Page>
|
|
18
|
+
* @see https://dhoulb.github.io/shelving/ui/page/Head/Head
|
|
15
19
|
*/
|
|
16
20
|
export function Head(): ReactElement {
|
|
17
21
|
const meta = requireMeta();
|