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/test/basics.js
CHANGED
|
@@ -4,6 +4,11 @@ import { CHOICE } from "../schema/ChoiceSchema.js";
|
|
|
4
4
|
import { DATA } from "../schema/DataSchema.js";
|
|
5
5
|
import { NUMBER } from "../schema/NumberSchema.js";
|
|
6
6
|
import { STRING } from "../schema/StringSchema.js";
|
|
7
|
+
/**
|
|
8
|
+
* Schema for a test "basic" fixture, exercising string, number, choice, array, boolean, and nested-data props.
|
|
9
|
+
*
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/test/basics/BASIC_SCHEMA
|
|
11
|
+
*/
|
|
7
12
|
export const BASIC_SCHEMA = DATA({
|
|
8
13
|
str: STRING,
|
|
9
14
|
num: NUMBER,
|
|
@@ -13,6 +18,11 @@ export const BASIC_SCHEMA = DATA({
|
|
|
13
18
|
even: BOOLEAN,
|
|
14
19
|
sub: DATA({ str: STRING, num: NUMBER, odd: BOOLEAN, even: BOOLEAN }),
|
|
15
20
|
});
|
|
21
|
+
/**
|
|
22
|
+
* Test basic fixture: `str: "aaa"`, `num: 100`, group `a`, odd.
|
|
23
|
+
*
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic1
|
|
25
|
+
*/
|
|
16
26
|
export const basic1 = {
|
|
17
27
|
id: "basic1",
|
|
18
28
|
str: "aaa",
|
|
@@ -23,6 +33,11 @@ export const basic1 = {
|
|
|
23
33
|
tags: ["odd", "prime"],
|
|
24
34
|
sub: { str: "aaa", num: 100, even: false, odd: true },
|
|
25
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Test basic fixture: `str: "bbb"`, `num: 200`, group `a`, even.
|
|
38
|
+
*
|
|
39
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic2
|
|
40
|
+
*/
|
|
26
41
|
export const basic2 = {
|
|
27
42
|
id: "basic2",
|
|
28
43
|
str: "bbb",
|
|
@@ -33,6 +48,11 @@ export const basic2 = {
|
|
|
33
48
|
tags: ["even", "prime"],
|
|
34
49
|
sub: { str: "bbb", num: 200, even: true, odd: false },
|
|
35
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Test basic fixture: `str: "ccc"`, `num: 300`, group `a`, odd.
|
|
53
|
+
*
|
|
54
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic3
|
|
55
|
+
*/
|
|
36
56
|
export const basic3 = {
|
|
37
57
|
id: "basic3",
|
|
38
58
|
str: "ccc",
|
|
@@ -43,6 +63,11 @@ export const basic3 = {
|
|
|
43
63
|
tags: ["odd", "prime"],
|
|
44
64
|
sub: { str: "ccc", num: 300, even: false, odd: true },
|
|
45
65
|
};
|
|
66
|
+
/**
|
|
67
|
+
* Test basic fixture: `str: "ddd"`, `num: 400`, group `b`, even.
|
|
68
|
+
*
|
|
69
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic4
|
|
70
|
+
*/
|
|
46
71
|
export const basic4 = {
|
|
47
72
|
id: "basic4",
|
|
48
73
|
str: "ddd",
|
|
@@ -53,6 +78,11 @@ export const basic4 = {
|
|
|
53
78
|
tags: ["even"],
|
|
54
79
|
sub: { str: "ddd", num: 400, even: true, odd: false },
|
|
55
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* Test basic fixture: `str: "eee"`, `num: 500`, group `b`, odd.
|
|
83
|
+
*
|
|
84
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic5
|
|
85
|
+
*/
|
|
56
86
|
export const basic5 = {
|
|
57
87
|
id: "basic5",
|
|
58
88
|
str: "eee",
|
|
@@ -63,6 +93,11 @@ export const basic5 = {
|
|
|
63
93
|
tags: ["odd", "prime"],
|
|
64
94
|
sub: { str: "eee", num: 500, even: false, odd: true },
|
|
65
95
|
};
|
|
96
|
+
/**
|
|
97
|
+
* Test basic fixture: `str: "fff"`, `num: 600`, group `b`, even.
|
|
98
|
+
*
|
|
99
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic6
|
|
100
|
+
*/
|
|
66
101
|
export const basic6 = {
|
|
67
102
|
id: "basic6",
|
|
68
103
|
str: "fff",
|
|
@@ -73,6 +108,11 @@ export const basic6 = {
|
|
|
73
108
|
tags: ["even"],
|
|
74
109
|
sub: { str: "fff", num: 600, even: true, odd: false },
|
|
75
110
|
};
|
|
111
|
+
/**
|
|
112
|
+
* Test basic fixture: `str: "ggg"`, `num: 700`, group `c`, odd.
|
|
113
|
+
*
|
|
114
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic7
|
|
115
|
+
*/
|
|
76
116
|
export const basic7 = {
|
|
77
117
|
id: "basic7",
|
|
78
118
|
str: "ggg",
|
|
@@ -83,6 +123,11 @@ export const basic7 = {
|
|
|
83
123
|
tags: ["odd", "prime"],
|
|
84
124
|
sub: { str: "ggg", num: 700, even: false, odd: true },
|
|
85
125
|
};
|
|
126
|
+
/**
|
|
127
|
+
* Test basic fixture: `str: "hhh"`, `num: 800`, group `c`, even.
|
|
128
|
+
*
|
|
129
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic8
|
|
130
|
+
*/
|
|
86
131
|
export const basic8 = {
|
|
87
132
|
id: "basic8",
|
|
88
133
|
str: "hhh",
|
|
@@ -93,6 +138,11 @@ export const basic8 = {
|
|
|
93
138
|
tags: ["even"],
|
|
94
139
|
sub: { str: "hhh", num: 800, even: true, odd: false },
|
|
95
140
|
};
|
|
141
|
+
/**
|
|
142
|
+
* Test basic fixture: `str: "iii"`, `num: 900`, group `c`, odd.
|
|
143
|
+
*
|
|
144
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic9
|
|
145
|
+
*/
|
|
96
146
|
export const basic9 = {
|
|
97
147
|
id: "basic9",
|
|
98
148
|
str: "iii",
|
|
@@ -103,7 +153,17 @@ export const basic9 = {
|
|
|
103
153
|
tags: ["odd"],
|
|
104
154
|
sub: { str: "iii", num: 900, even: false, odd: true },
|
|
105
155
|
};
|
|
156
|
+
/**
|
|
157
|
+
* Array of all nine test basic fixtures in a deliberately shuffled order, for exercising sort/query behaviour.
|
|
158
|
+
*
|
|
159
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basics
|
|
160
|
+
*/
|
|
106
161
|
export const basics = [basic3, basic5, basic7, basic4, basic1, basic2, basic8, basic6, basic9];
|
|
162
|
+
/**
|
|
163
|
+
* Standalone test basic data (no `id`): `str: "zzz"`, `num: 999`, for use as new/unsaved data.
|
|
164
|
+
*
|
|
165
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic999
|
|
166
|
+
*/
|
|
107
167
|
export const basic999 = {
|
|
108
168
|
str: "zzz",
|
|
109
169
|
num: 999,
|
package/test/people.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Item } from "../util/item.js";
|
|
2
2
|
import type { ValidatorType } from "../util/validate.js";
|
|
3
|
+
/**
|
|
4
|
+
* Schema for a test "person" fixture, with a nested `name` and a nullable `birthday`.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/test/people/PERSON_SCHEMA
|
|
7
|
+
*/
|
|
3
8
|
export declare const PERSON_SCHEMA: import("../schema/DataSchema.js").DataSchema<{
|
|
4
9
|
name: {
|
|
5
10
|
first: /*elided*/ any;
|
|
@@ -7,11 +12,51 @@ export declare const PERSON_SCHEMA: import("../schema/DataSchema.js").DataSchema
|
|
|
7
12
|
};
|
|
8
13
|
birthday: string | null;
|
|
9
14
|
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Validated data shape of a test person, inferred from `PERSON_SCHEMA`.
|
|
17
|
+
*
|
|
18
|
+
* @see https://dhoulb.github.io/shelving/test/people/PersonData
|
|
19
|
+
*/
|
|
10
20
|
export type PersonData = ValidatorType<typeof PERSON_SCHEMA>;
|
|
21
|
+
/**
|
|
22
|
+
* A test person as a stored `Item` — `PersonData` plus a string `id`.
|
|
23
|
+
*
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/test/people/PersonItem
|
|
25
|
+
*/
|
|
11
26
|
export type PersonItem = Item<string, PersonData>;
|
|
27
|
+
/**
|
|
28
|
+
* Test person fixture: Dave Brook, born 1985-12-06.
|
|
29
|
+
*
|
|
30
|
+
* @see https://dhoulb.github.io/shelving/test/people/person1
|
|
31
|
+
*/
|
|
12
32
|
export declare const person1: PersonItem;
|
|
33
|
+
/**
|
|
34
|
+
* Test person fixture: Sally Callister, born 1973-11-19.
|
|
35
|
+
*
|
|
36
|
+
* @see https://dhoulb.github.io/shelving/test/people/person2
|
|
37
|
+
*/
|
|
13
38
|
export declare const person2: PersonItem;
|
|
39
|
+
/**
|
|
40
|
+
* Test person fixture: Sammy Canister, with no birthday (`null`).
|
|
41
|
+
*
|
|
42
|
+
* @see https://dhoulb.github.io/shelving/test/people/person3
|
|
43
|
+
*/
|
|
14
44
|
export declare const person3: PersonItem;
|
|
45
|
+
/**
|
|
46
|
+
* Test person fixture: Jilly Jones, with no birthday (`null`).
|
|
47
|
+
*
|
|
48
|
+
* @see https://dhoulb.github.io/shelving/test/people/person4
|
|
49
|
+
*/
|
|
15
50
|
export declare const person4: PersonItem;
|
|
51
|
+
/**
|
|
52
|
+
* Test person fixture: Terry Times, born 1964-08-01.
|
|
53
|
+
*
|
|
54
|
+
* @see https://dhoulb.github.io/shelving/test/people/person5
|
|
55
|
+
*/
|
|
16
56
|
export declare const person5: PersonItem;
|
|
57
|
+
/**
|
|
58
|
+
* Ordered array of all five test person fixtures (`person1` through `person5`).
|
|
59
|
+
*
|
|
60
|
+
* @see https://dhoulb.github.io/shelving/test/people/people
|
|
61
|
+
*/
|
|
17
62
|
export declare const people: ReadonlyArray<PersonItem>;
|
package/test/people.js
CHANGED
|
@@ -1,13 +1,48 @@
|
|
|
1
1
|
import { DATA } from "../schema/DataSchema.js";
|
|
2
2
|
import { NULLABLE_DATE } from "../schema/DateSchema.js";
|
|
3
3
|
import { REQUIRED_STRING } from "../schema/StringSchema.js";
|
|
4
|
+
/**
|
|
5
|
+
* Schema for a test "person" fixture, with a nested `name` and a nullable `birthday`.
|
|
6
|
+
*
|
|
7
|
+
* @see https://dhoulb.github.io/shelving/test/people/PERSON_SCHEMA
|
|
8
|
+
*/
|
|
4
9
|
export const PERSON_SCHEMA = DATA({
|
|
5
10
|
name: DATA({ first: REQUIRED_STRING, last: REQUIRED_STRING }),
|
|
6
11
|
birthday: NULLABLE_DATE,
|
|
7
12
|
});
|
|
13
|
+
/**
|
|
14
|
+
* Test person fixture: Dave Brook, born 1985-12-06.
|
|
15
|
+
*
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/test/people/person1
|
|
17
|
+
*/
|
|
8
18
|
export const person1 = { id: "person1", name: { first: "Dave", last: "Brook" }, birthday: "1985-12-06" };
|
|
19
|
+
/**
|
|
20
|
+
* Test person fixture: Sally Callister, born 1973-11-19.
|
|
21
|
+
*
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/test/people/person2
|
|
23
|
+
*/
|
|
9
24
|
export const person2 = { id: "person2", name: { first: "Sally", last: "Callister" }, birthday: "1973-11-19" };
|
|
25
|
+
/**
|
|
26
|
+
* Test person fixture: Sammy Canister, with no birthday (`null`).
|
|
27
|
+
*
|
|
28
|
+
* @see https://dhoulb.github.io/shelving/test/people/person3
|
|
29
|
+
*/
|
|
10
30
|
export const person3 = { id: "person3", name: { first: "Sammy", last: "Canister" }, birthday: null };
|
|
31
|
+
/**
|
|
32
|
+
* Test person fixture: Jilly Jones, with no birthday (`null`).
|
|
33
|
+
*
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/test/people/person4
|
|
35
|
+
*/
|
|
11
36
|
export const person4 = { id: "person4", name: { first: "Jilly", last: "Jones" }, birthday: null };
|
|
37
|
+
/**
|
|
38
|
+
* Test person fixture: Terry Times, born 1964-08-01.
|
|
39
|
+
*
|
|
40
|
+
* @see https://dhoulb.github.io/shelving/test/people/person5
|
|
41
|
+
*/
|
|
12
42
|
export const person5 = { id: "person5", name: { first: "Terry", last: "Times" }, birthday: "1964-08-01" };
|
|
43
|
+
/**
|
|
44
|
+
* Ordered array of all five test person fixtures (`person1` through `person5`).
|
|
45
|
+
*
|
|
46
|
+
* @see https://dhoulb.github.io/shelving/test/people/people
|
|
47
|
+
*/
|
|
13
48
|
export const people = [person1, person2, person3, person4, person5];
|
package/test/util.d.ts
CHANGED
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
import type { Data } from "../util/data.js";
|
|
2
2
|
import type { Identifier, Item } from "../util/item.js";
|
|
3
3
|
import type { NotString } from "../util/string.js";
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Asymmetric matcher that expects an object matching `PromiseLike` (i.e. has a `.then()` method).
|
|
6
|
+
*
|
|
7
|
+
* @example expect(value).toEqual(EXPECT_PROMISELIKE)
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/test/util/EXPECT_PROMISELIKE
|
|
9
|
+
*/
|
|
5
10
|
export declare const EXPECT_PROMISELIKE: any;
|
|
6
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Assert that a set of `Item` objects has exactly the expected `.id` values, in any order.
|
|
13
|
+
*
|
|
14
|
+
* - Sorts both sides before comparing, so iteration order is ignored.
|
|
15
|
+
* - On failure, rewrites the stack trace to point at the call site.
|
|
16
|
+
*
|
|
17
|
+
* @param items The items to check, each carrying an `.id` prop.
|
|
18
|
+
* @param keys The exact set of `.id` values expected (order ignored).
|
|
19
|
+
* @throws {Error} If the items' ids don't match `keys`.
|
|
20
|
+
* @example expectUnorderedItems(results, ["person1", "person2"])
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/test/util/expectUnorderedItems
|
|
22
|
+
*/
|
|
7
23
|
export declare function expectUnorderedItems<I extends Identifier, T extends Data>(items: Iterable<Item<I, T>>, keys: Iterable<string> & NotString): void;
|
|
8
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Assert that a set of `Item` objects has exactly the expected `.id` values, in the exact given order.
|
|
26
|
+
*
|
|
27
|
+
* - Compares ids positionally, so order is significant.
|
|
28
|
+
* - On failure, rewrites the stack trace to point at the call site.
|
|
29
|
+
*
|
|
30
|
+
* @param items The items to check, each carrying an `.id` prop.
|
|
31
|
+
* @param keys The exact ordered sequence of `.id` values expected.
|
|
32
|
+
* @throws {Error} If the items' ids don't match `keys` in order.
|
|
33
|
+
* @example expectOrderedItems(results, ["person1", "person2"])
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/test/util/expectOrderedItems
|
|
35
|
+
*/
|
|
9
36
|
export declare function expectOrderedItems<I extends Identifier, T extends Data>(items: Iterable<Item<I, T>>, keys: Iterable<string> & NotString): void;
|
package/test/util.js
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
import { expect } from "bun:test";
|
|
2
2
|
import { getIdentifiers } from "../util/item.js";
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Asymmetric matcher that expects an object matching `PromiseLike` (i.e. has a `.then()` method).
|
|
5
|
+
*
|
|
6
|
+
* @example expect(value).toEqual(EXPECT_PROMISELIKE)
|
|
7
|
+
* @see https://dhoulb.github.io/shelving/test/util/EXPECT_PROMISELIKE
|
|
8
|
+
*/
|
|
4
9
|
export const EXPECT_PROMISELIKE = expect.objectContaining({
|
|
5
10
|
then: expect.any(Function),
|
|
6
11
|
});
|
|
7
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Assert that a set of `Item` objects has exactly the expected `.id` values, in any order.
|
|
14
|
+
*
|
|
15
|
+
* - Sorts both sides before comparing, so iteration order is ignored.
|
|
16
|
+
* - On failure, rewrites the stack trace to point at the call site.
|
|
17
|
+
*
|
|
18
|
+
* @param items The items to check, each carrying an `.id` prop.
|
|
19
|
+
* @param keys The exact set of `.id` values expected (order ignored).
|
|
20
|
+
* @throws {Error} If the items' ids don't match `keys`.
|
|
21
|
+
* @example expectUnorderedItems(results, ["person1", "person2"])
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/test/util/expectUnorderedItems
|
|
23
|
+
*/
|
|
8
24
|
export function expectUnorderedItems(items, keys) {
|
|
9
25
|
try {
|
|
10
26
|
expect(items).toBeInstanceOf(Object);
|
|
@@ -16,7 +32,18 @@ export function expectUnorderedItems(items, keys) {
|
|
|
16
32
|
throw thrown;
|
|
17
33
|
}
|
|
18
34
|
}
|
|
19
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Assert that a set of `Item` objects has exactly the expected `.id` values, in the exact given order.
|
|
37
|
+
*
|
|
38
|
+
* - Compares ids positionally, so order is significant.
|
|
39
|
+
* - On failure, rewrites the stack trace to point at the call site.
|
|
40
|
+
*
|
|
41
|
+
* @param items The items to check, each carrying an `.id` prop.
|
|
42
|
+
* @param keys The exact ordered sequence of `.id` values expected.
|
|
43
|
+
* @throws {Error} If the items' ids don't match `keys` in order.
|
|
44
|
+
* @example expectOrderedItems(results, ["person1", "person2"])
|
|
45
|
+
* @see https://dhoulb.github.io/shelving/test/util/expectOrderedItems
|
|
46
|
+
*/
|
|
20
47
|
export function expectOrderedItems(items, keys) {
|
|
21
48
|
try {
|
|
22
49
|
expect(items).toBeInstanceOf(Object);
|
package/ui/app/App.d.ts
CHANGED
|
@@ -2,10 +2,22 @@ import type { ReactElement } from "react";
|
|
|
2
2
|
import "../style/base.css";
|
|
3
3
|
import type { PossibleMeta } from "../util/index.js";
|
|
4
4
|
import type { ChildProps } from "../util/props.js";
|
|
5
|
+
/**
|
|
6
|
+
* Props for `<App>` — the root `Meta` plus the application `children`.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/ui/app/App/AppProps
|
|
9
|
+
*/
|
|
5
10
|
export interface AppProps extends PossibleMeta, ChildProps {
|
|
6
11
|
}
|
|
7
12
|
/**
|
|
8
|
-
* Root component for an application
|
|
9
|
-
*
|
|
13
|
+
* Root component for an application, providing the top-level `Meta` context and global styles.
|
|
14
|
+
* - Descendants can read or update metadata via the provided `<Meta>` context.
|
|
15
|
+
* - Design tokens and body baseline typography are set globally via `style/base.css`.
|
|
16
|
+
*
|
|
17
|
+
* @param children The application content.
|
|
18
|
+
* @param meta The root meta (app name, root URL, language, etc.).
|
|
19
|
+
* @returns The app root element wrapping `children`.
|
|
20
|
+
* @example <App app="My App" root="https://example.com/"><Navigation>…</Navigation></App>
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/ui/app/App/App
|
|
10
22
|
*/
|
|
11
23
|
export declare function App({ children, ...meta }: AppProps): ReactElement;
|
package/ui/app/App.js
CHANGED
|
@@ -2,8 +2,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { MetaContext, requireMeta } from "../misc/MetaContext.js";
|
|
3
3
|
import "../style/base.css";
|
|
4
4
|
/**
|
|
5
|
-
* Root component for an application
|
|
6
|
-
*
|
|
5
|
+
* Root component for an application, providing the top-level `Meta` context and global styles.
|
|
6
|
+
* - Descendants can read or update metadata via the provided `<Meta>` context.
|
|
7
|
+
* - Design tokens and body baseline typography are set globally via `style/base.css`.
|
|
8
|
+
*
|
|
9
|
+
* @param children The application content.
|
|
10
|
+
* @param meta The root meta (app name, root URL, language, etc.).
|
|
11
|
+
* @returns The app root element wrapping `children`.
|
|
12
|
+
* @example <App app="My App" root="https://example.com/"><Navigation>…</Navigation></App>
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/ui/app/App/App
|
|
7
14
|
*/
|
|
8
15
|
export function App({ children, ...meta }) {
|
|
9
16
|
return _jsx(MetaContext, { value: requireMeta(meta), children: children });
|
package/ui/app/App.tsx
CHANGED
|
@@ -4,11 +4,23 @@ import "../style/base.css";
|
|
|
4
4
|
import type { PossibleMeta } from "../util/index.js";
|
|
5
5
|
import type { ChildProps } from "../util/props.js";
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Props for `<App>` — the root `Meta` plus the application `children`.
|
|
9
|
+
*
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/app/App/AppProps
|
|
11
|
+
*/
|
|
7
12
|
export interface AppProps extends PossibleMeta, ChildProps {}
|
|
8
13
|
|
|
9
14
|
/**
|
|
10
|
-
* Root component for an application
|
|
11
|
-
*
|
|
15
|
+
* Root component for an application, providing the top-level `Meta` context and global styles.
|
|
16
|
+
* - Descendants can read or update metadata via the provided `<Meta>` context.
|
|
17
|
+
* - Design tokens and body baseline typography are set globally via `style/base.css`.
|
|
18
|
+
*
|
|
19
|
+
* @param children The application content.
|
|
20
|
+
* @param meta The root meta (app name, root URL, language, etc.).
|
|
21
|
+
* @returns The app root element wrapping `children`.
|
|
22
|
+
* @example <App app="My App" root="https://example.com/"><Navigation>…</Navigation></App>
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/ui/app/App/App
|
|
12
24
|
*/
|
|
13
25
|
export function App({ children, ...meta }: AppProps): ReactElement {
|
|
14
26
|
return <MetaContext value={requireMeta(meta)}>{children}</MetaContext>;
|
package/ui/block/Address.d.ts
CHANGED
|
@@ -5,21 +5,63 @@ import { type ColorVariants } from "../style/Color.js";
|
|
|
5
5
|
import { type SpaceVariants } from "../style/Space.js";
|
|
6
6
|
import { type TypographyVariants } from "../style/Typography.js";
|
|
7
7
|
import type { ChildProps } from "../util/props.js";
|
|
8
|
+
/**
|
|
9
|
+
* CSS class applied to the root `<address>` element of every `Address`.
|
|
10
|
+
*
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/ADDRESS_CLASS
|
|
12
|
+
*/
|
|
8
13
|
export declare const ADDRESS_CLASS: string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* CSS class that styles `<address>` elements when they appear inside `Prose`.
|
|
16
|
+
*
|
|
17
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/ADDRESS_PROSE_CLASS
|
|
18
|
+
*/
|
|
9
19
|
export declare const ADDRESS_PROSE_CLASS: string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Props for `Address` — colour, space, and typography variants plus required children.
|
|
22
|
+
*
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/AddressProps
|
|
24
|
+
*/
|
|
10
25
|
export interface AddressProps extends ColorVariants, SpaceVariants, TypographyVariants, ChildProps {
|
|
11
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Props for `PhysicalAddress` — an optional name and a nullable `AddressData` object.
|
|
29
|
+
*
|
|
30
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/PhysicalAddressProps
|
|
31
|
+
*/
|
|
12
32
|
export interface PhysicalAddressProps {
|
|
13
33
|
name?: Nullish<string>;
|
|
14
34
|
address: Nullish<AddressData>;
|
|
15
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Props for `EmailAddress` — an optional name and a nullable email string.
|
|
38
|
+
*
|
|
39
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/EmailAddressProps
|
|
40
|
+
*/
|
|
16
41
|
export interface EmailAddressProps {
|
|
17
42
|
name?: Nullish<string>;
|
|
18
43
|
email: Nullish<string>;
|
|
19
44
|
}
|
|
20
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Show any kind of contact data, rendered as an `<address>`.
|
|
47
|
+
*
|
|
48
|
+
* @example <Address><Strong>Acme</Strong>{"\n"}1 Example St</Address>
|
|
49
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/Address
|
|
50
|
+
*/
|
|
21
51
|
export declare function Address({ children, ...props }: AddressProps): import("react").JSX.Element;
|
|
22
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Show an optional `AddressData` object correctly on screen.
|
|
54
|
+
* - Renders an optional `name` in bold, followed by the formatted address; shows "No address" when `address` is empty.
|
|
55
|
+
*
|
|
56
|
+
* @example <PhysicalAddress name="Acme" address={addressData} />
|
|
57
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/PhysicalAddress
|
|
58
|
+
*/
|
|
23
59
|
export declare function PhysicalAddress({ name, address }: PhysicalAddressProps): ReactElement;
|
|
24
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Show an optional email address string correctly on screen.
|
|
62
|
+
* - Renders an optional `name` in bold, followed by a `mailto:` link; shows "No email" when `email` is empty.
|
|
63
|
+
*
|
|
64
|
+
* @example <EmailAddress name="Acme" email="hi@example.com" />
|
|
65
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/EmailAddress
|
|
66
|
+
*/
|
|
25
67
|
export declare function EmailAddress({ name, email }: EmailAddressProps): ReactElement;
|
package/ui/block/Address.js
CHANGED
|
@@ -8,18 +8,45 @@ import { TINT_CLASS } from "../style/Tint.js";
|
|
|
8
8
|
import { getTypographyClass } from "../style/Typography.js";
|
|
9
9
|
import { getClass, getModuleClass } from "../util/css.js";
|
|
10
10
|
import ADDRESS_CSS from "./Address.module.css";
|
|
11
|
+
/**
|
|
12
|
+
* CSS class applied to the root `<address>` element of every `Address`.
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/ADDRESS_CLASS
|
|
15
|
+
*/
|
|
11
16
|
export const ADDRESS_CLASS = getModuleClass(ADDRESS_CSS, "address");
|
|
17
|
+
/**
|
|
18
|
+
* CSS class that styles `<address>` elements when they appear inside `Prose`.
|
|
19
|
+
*
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/ADDRESS_PROSE_CLASS
|
|
21
|
+
*/
|
|
12
22
|
export const ADDRESS_PROSE_CLASS = getModuleClass(ADDRESS_CSS, "prose");
|
|
13
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Show any kind of contact data, rendered as an `<address>`.
|
|
25
|
+
*
|
|
26
|
+
* @example <Address><Strong>Acme</Strong>{"\n"}1 Example St</Address>
|
|
27
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/Address
|
|
28
|
+
*/
|
|
14
29
|
export function Address({ children, ...props }) {
|
|
15
30
|
return (_jsx("address", { className: getClass(ADDRESS_CLASS, //
|
|
16
31
|
TINT_CLASS, getColorClass(props), getSpaceClass(props), getTypographyClass(props)), children: children }));
|
|
17
32
|
}
|
|
18
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Show an optional `AddressData` object correctly on screen.
|
|
35
|
+
* - Renders an optional `name` in bold, followed by the formatted address; shows "No address" when `address` is empty.
|
|
36
|
+
*
|
|
37
|
+
* @example <PhysicalAddress name="Acme" address={addressData} />
|
|
38
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/PhysicalAddress
|
|
39
|
+
*/
|
|
19
40
|
export function PhysicalAddress({ name, address }) {
|
|
20
41
|
return (_jsxs(Address, { children: [name && _jsx(Strong, { children: name }), name && "\n", address ? formatAddress(address) : _jsx(Small, { children: "No address" })] }));
|
|
21
42
|
}
|
|
22
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Show an optional email address string correctly on screen.
|
|
45
|
+
* - Renders an optional `name` in bold, followed by a `mailto:` link; shows "No email" when `email` is empty.
|
|
46
|
+
*
|
|
47
|
+
* @example <EmailAddress name="Acme" email="hi@example.com" />
|
|
48
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/EmailAddress
|
|
49
|
+
*/
|
|
23
50
|
export function EmailAddress({ name, email }) {
|
|
24
51
|
return (_jsxs(Address, { children: [name && _jsx(Strong, { children: name }), name && "\n", email ? _jsx("a", { href: `mailto:${email}`, children: email }) : _jsx(Small, { children: "No email" })] }));
|
|
25
52
|
}
|
package/ui/block/Address.tsx
CHANGED
|
@@ -11,22 +11,53 @@ import { getClass, getModuleClass } from "../util/css.js";
|
|
|
11
11
|
import type { ChildProps } from "../util/props.js";
|
|
12
12
|
import ADDRESS_CSS from "./Address.module.css";
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* CSS class applied to the root `<address>` element of every `Address`.
|
|
16
|
+
*
|
|
17
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/ADDRESS_CLASS
|
|
18
|
+
*/
|
|
14
19
|
export const ADDRESS_CLASS = getModuleClass(ADDRESS_CSS, "address");
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* CSS class that styles `<address>` elements when they appear inside `Prose`.
|
|
23
|
+
*
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/ADDRESS_PROSE_CLASS
|
|
25
|
+
*/
|
|
15
26
|
export const ADDRESS_PROSE_CLASS = getModuleClass(ADDRESS_CSS, "prose");
|
|
16
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Props for `Address` — colour, space, and typography variants plus required children.
|
|
30
|
+
*
|
|
31
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/AddressProps
|
|
32
|
+
*/
|
|
17
33
|
export interface AddressProps extends ColorVariants, SpaceVariants, TypographyVariants, ChildProps {}
|
|
18
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Props for `PhysicalAddress` — an optional name and a nullable `AddressData` object.
|
|
37
|
+
*
|
|
38
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/PhysicalAddressProps
|
|
39
|
+
*/
|
|
19
40
|
export interface PhysicalAddressProps {
|
|
20
41
|
name?: Nullish<string>;
|
|
21
42
|
address: Nullish<AddressData>;
|
|
22
43
|
}
|
|
23
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Props for `EmailAddress` — an optional name and a nullable email string.
|
|
47
|
+
*
|
|
48
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/EmailAddressProps
|
|
49
|
+
*/
|
|
24
50
|
export interface EmailAddressProps {
|
|
25
51
|
name?: Nullish<string>;
|
|
26
52
|
email: Nullish<string>;
|
|
27
53
|
}
|
|
28
54
|
|
|
29
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Show any kind of contact data, rendered as an `<address>`.
|
|
57
|
+
*
|
|
58
|
+
* @example <Address><Strong>Acme</Strong>{"\n"}1 Example St</Address>
|
|
59
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/Address
|
|
60
|
+
*/
|
|
30
61
|
export function Address({ children, ...props }: AddressProps) {
|
|
31
62
|
return (
|
|
32
63
|
<address
|
|
@@ -43,7 +74,13 @@ export function Address({ children, ...props }: AddressProps) {
|
|
|
43
74
|
);
|
|
44
75
|
}
|
|
45
76
|
|
|
46
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Show an optional `AddressData` object correctly on screen.
|
|
79
|
+
* - Renders an optional `name` in bold, followed by the formatted address; shows "No address" when `address` is empty.
|
|
80
|
+
*
|
|
81
|
+
* @example <PhysicalAddress name="Acme" address={addressData} />
|
|
82
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/PhysicalAddress
|
|
83
|
+
*/
|
|
47
84
|
export function PhysicalAddress({ name, address }: PhysicalAddressProps): ReactElement {
|
|
48
85
|
return (
|
|
49
86
|
<Address>
|
|
@@ -54,7 +91,13 @@ export function PhysicalAddress({ name, address }: PhysicalAddressProps): ReactE
|
|
|
54
91
|
);
|
|
55
92
|
}
|
|
56
93
|
|
|
57
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* Show an optional email address string correctly on screen.
|
|
96
|
+
* - Renders an optional `name` in bold, followed by a `mailto:` link; shows "No email" when `email` is empty.
|
|
97
|
+
*
|
|
98
|
+
* @example <EmailAddress name="Acme" email="hi@example.com" />
|
|
99
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Address/EmailAddress
|
|
100
|
+
*/
|
|
58
101
|
export function EmailAddress({ name, email }: EmailAddressProps): ReactElement {
|
|
59
102
|
return (
|
|
60
103
|
<Address>
|
package/ui/block/Block.d.ts
CHANGED
|
@@ -4,10 +4,32 @@ import { type SpaceVariants } from "../style/Space.js";
|
|
|
4
4
|
import { type TypographyVariants } from "../style/Typography.js";
|
|
5
5
|
import { type WidthVariants } from "../style/Width.js";
|
|
6
6
|
import type { OptionalChildProps } from "../util/props.js";
|
|
7
|
+
/**
|
|
8
|
+
* CSS class applied to the root element of every `Block`.
|
|
9
|
+
*
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Block/BLOCK_CLASS
|
|
11
|
+
*/
|
|
7
12
|
export declare const BLOCK_CLASS: string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Semantic element names a `Block` may render as via its `as` prop.
|
|
15
|
+
*
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Block/BlockElement
|
|
17
|
+
*/
|
|
8
18
|
export type BlockElement = "div" | "section" | "header" | "footer" | "nav" | "aside" | "figure";
|
|
19
|
+
/**
|
|
20
|
+
* Props for `Block` — colour, space, typography, and width variants plus an optional `as` element override.
|
|
21
|
+
*
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Block/BlockProps
|
|
23
|
+
*/
|
|
9
24
|
export interface BlockProps extends ColorVariants, SpaceVariants, TypographyVariants, WidthVariants, OptionalChildProps {
|
|
10
25
|
as?: BlockElement | undefined;
|
|
11
26
|
}
|
|
12
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Plain `<div>` block with block-level spacing.
|
|
29
|
+
* - Pass `as` to render a different semantic element (`section`, `header`, `footer`, `nav`, `aside`, `figure`).
|
|
30
|
+
*
|
|
31
|
+
* @example <Block><Paragraph>Hello</Paragraph></Block>
|
|
32
|
+
* @example <Block as="aside" narrow><Paragraph>Sidebar</Paragraph></Block>
|
|
33
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Block/Block
|
|
34
|
+
*/
|
|
13
35
|
export declare function Block({ as: Component, children, ...props }: BlockProps): ReactElement;
|
package/ui/block/Block.js
CHANGED
|
@@ -6,8 +6,20 @@ import { getTypographyClass } from "../style/Typography.js";
|
|
|
6
6
|
import { getWidthClass } from "../style/Width.js";
|
|
7
7
|
import { getClass, getModuleClass } from "../util/css.js";
|
|
8
8
|
import BLOCK_CSS from "./Block.module.css";
|
|
9
|
+
/**
|
|
10
|
+
* CSS class applied to the root element of every `Block`.
|
|
11
|
+
*
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Block/BLOCK_CLASS
|
|
13
|
+
*/
|
|
9
14
|
export const BLOCK_CLASS = getModuleClass(BLOCK_CSS, "block");
|
|
10
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Plain `<div>` block with block-level spacing.
|
|
17
|
+
* - Pass `as` to render a different semantic element (`section`, `header`, `footer`, `nav`, `aside`, `figure`).
|
|
18
|
+
*
|
|
19
|
+
* @example <Block><Paragraph>Hello</Paragraph></Block>
|
|
20
|
+
* @example <Block as="aside" narrow><Paragraph>Sidebar</Paragraph></Block>
|
|
21
|
+
* @see https://dhoulb.github.io/shelving/ui/block/Block/Block
|
|
22
|
+
*/
|
|
11
23
|
export function Block({ as: Component = "div", children, ...props }) {
|
|
12
24
|
return (_jsx(Component, { className: getClass(BLOCK_CLASS, TINT_CLASS, getColorClass(props), getSpaceClass(props), getTypographyClass(props), getWidthClass(props)), children: children }));
|
|
13
25
|
}
|