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/form/FormInput.tsx
CHANGED
|
@@ -3,15 +3,34 @@ import { requireForm, useField } from "./FormContext.js";
|
|
|
3
3
|
import type { InputProps } from "./Input.js";
|
|
4
4
|
import { SchemaInput } from "./SchemaInput.js";
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Props for `FormInput`, a bare `SchemaInput` bound to a named form field.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormInput/FormInputProps
|
|
10
|
+
*/
|
|
6
11
|
export interface FormInputProps extends InputProps {}
|
|
7
12
|
|
|
8
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Show a `SchemaInput` for a single named property of the current form.
|
|
15
|
+
* - Reads the field's value, schema, and message from the form context via `useField()`.
|
|
16
|
+
*
|
|
17
|
+
* @param props Input props including the field `name`.
|
|
18
|
+
* @returns A `SchemaInput` bound to the named field.
|
|
19
|
+
* @example <FormInput name="email" />
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormInput/FormInput
|
|
21
|
+
*/
|
|
9
22
|
export function FormInput({ name, ...props }: FormInputProps): ReactElement {
|
|
10
23
|
const field = useField(name);
|
|
11
24
|
return <SchemaInput {...field} {...props} />;
|
|
12
25
|
}
|
|
13
26
|
|
|
14
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Show a `SchemaInput` for every property in the current form's schema.
|
|
29
|
+
*
|
|
30
|
+
* @returns A fragment of `FormInput` elements, one per schema property.
|
|
31
|
+
* @example <FormInputs />
|
|
32
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormInput/FormInputs
|
|
33
|
+
*/
|
|
15
34
|
export function FormInputs(): ReactElement {
|
|
16
35
|
return (
|
|
17
36
|
<>
|
package/ui/form/FormMessage.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import { type MessageProps } from "../notice/Message.js";
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Show the current form's "main" (unnamed) message as a `<Message>`, or render nothing when there is no message.
|
|
5
|
+
*
|
|
6
|
+
* @param props Message props (excluding `children`) forwarded to the underlying `<Message>`.
|
|
7
|
+
* @returns A `<Message status="error">` containing the message, or `null` when empty.
|
|
8
|
+
* @example <FormMessage />
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormMessage/FormMessage
|
|
10
|
+
*/
|
|
4
11
|
export declare function FormMessage(props: Omit<MessageProps, "children">): ReactElement | null;
|
package/ui/form/FormMessage.js
CHANGED
|
@@ -2,7 +2,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useStore } from "../../react/useStore.js";
|
|
3
3
|
import { Message } from "../notice/Message.js";
|
|
4
4
|
import { requireForm } from "./FormContext.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Show the current form's "main" (unnamed) message as a `<Message>`, or render nothing when there is no message.
|
|
7
|
+
*
|
|
8
|
+
* @param props Message props (excluding `children`) forwarded to the underlying `<Message>`.
|
|
9
|
+
* @returns A `<Message status="error">` containing the message, or `null` when empty.
|
|
10
|
+
* @example <FormMessage />
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormMessage/FormMessage
|
|
12
|
+
*/
|
|
6
13
|
export function FormMessage(props) {
|
|
7
14
|
const message = useStore(requireForm().messages).get("");
|
|
8
15
|
if (!message)
|
package/ui/form/FormMessage.tsx
CHANGED
|
@@ -3,8 +3,14 @@ import { useStore } from "../../react/useStore.js";
|
|
|
3
3
|
import { Message, type MessageProps } from "../notice/Message.js";
|
|
4
4
|
import { requireForm } from "./FormContext.js";
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Show the current form's "main" (unnamed) message as a `<Message>`, or render nothing when there is no message.
|
|
8
|
+
*
|
|
9
|
+
* @param props Message props (excluding `children`) forwarded to the underlying `<Message>`.
|
|
10
|
+
* @returns A `<Message status="error">` containing the message, or `null` when empty.
|
|
11
|
+
* @example <FormMessage />
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormMessage/FormMessage
|
|
13
|
+
*/
|
|
8
14
|
export function FormMessage(props: Omit<MessageProps, "children">): ReactElement | null {
|
|
9
15
|
const message = useStore(requireForm().messages).get("");
|
|
10
16
|
if (!message) return null;
|
package/ui/form/FormNotice.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import { type NoticeProps } from "../notice/Notice.js";
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Show the current form's "main" (unnamed) message as a `<Notice>`, or render nothing when there is no message.
|
|
5
|
+
*
|
|
6
|
+
* @param props Notice props (excluding `children`) forwarded to the underlying `<Notice>`.
|
|
7
|
+
* @returns A `<Notice status="error">` containing the message, or `null` when empty.
|
|
8
|
+
* @example <FormNotice />
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormNotice/FormNotice
|
|
10
|
+
*/
|
|
4
11
|
export declare function FormNotice(props: Omit<NoticeProps, "children">): ReactElement | null;
|
package/ui/form/FormNotice.js
CHANGED
|
@@ -2,7 +2,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useStore } from "../../react/useStore.js";
|
|
3
3
|
import { Notice } from "../notice/Notice.js";
|
|
4
4
|
import { requireForm } from "./FormContext.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Show the current form's "main" (unnamed) message as a `<Notice>`, or render nothing when there is no message.
|
|
7
|
+
*
|
|
8
|
+
* @param props Notice props (excluding `children`) forwarded to the underlying `<Notice>`.
|
|
9
|
+
* @returns A `<Notice status="error">` containing the message, or `null` when empty.
|
|
10
|
+
* @example <FormNotice />
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormNotice/FormNotice
|
|
12
|
+
*/
|
|
6
13
|
export function FormNotice(props) {
|
|
7
14
|
const message = useStore(requireForm().messages).get("");
|
|
8
15
|
if (!message)
|
package/ui/form/FormNotice.tsx
CHANGED
|
@@ -3,8 +3,14 @@ import { useStore } from "../../react/useStore.js";
|
|
|
3
3
|
import { Notice, type NoticeProps } from "../notice/Notice.js";
|
|
4
4
|
import { requireForm } from "./FormContext.js";
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Show the current form's "main" (unnamed) message as a `<Notice>`, or render nothing when there is no message.
|
|
8
|
+
*
|
|
9
|
+
* @param props Notice props (excluding `children`) forwarded to the underlying `<Notice>`.
|
|
10
|
+
* @returns A `<Notice status="error">` containing the message, or `null` when empty.
|
|
11
|
+
* @example <FormNotice />
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormNotice/FormNotice
|
|
13
|
+
*/
|
|
8
14
|
export function FormNotice(props: Omit<NoticeProps, "children">): ReactElement | null {
|
|
9
15
|
const message = useStore(requireForm().messages).get("");
|
|
10
16
|
if (!message) return null;
|
package/ui/form/FormNotify.d.ts
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Publish the current form's "main" (unnamed) message as a global success notice whenever it changes.
|
|
3
|
+
* - Renders nothing; mount it inside a `Form` to surface the message globally.
|
|
4
|
+
*
|
|
5
|
+
* @returns Nothing — this component only triggers a side effect.
|
|
6
|
+
* @example <FormNotify />
|
|
7
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormNotify/FormNotify
|
|
8
|
+
*/
|
|
2
9
|
export declare function FormNotify(): void;
|
package/ui/form/FormNotify.js
CHANGED
|
@@ -2,7 +2,14 @@ import { useEffect } from "react";
|
|
|
2
2
|
import { useStore } from "../../react/useStore.js";
|
|
3
3
|
import { notifySuccess } from "../util/notice.js";
|
|
4
4
|
import { requireForm } from "./FormContext.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Publish the current form's "main" (unnamed) message as a global success notice whenever it changes.
|
|
7
|
+
* - Renders nothing; mount it inside a `Form` to surface the message globally.
|
|
8
|
+
*
|
|
9
|
+
* @returns Nothing — this component only triggers a side effect.
|
|
10
|
+
* @example <FormNotify />
|
|
11
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormNotify/FormNotify
|
|
12
|
+
*/
|
|
6
13
|
export function FormNotify() {
|
|
7
14
|
const message = useStore(requireForm().messages).get("");
|
|
8
15
|
useEffect(() => {
|
package/ui/form/FormNotify.tsx
CHANGED
|
@@ -3,8 +3,14 @@ import { useStore } from "../../react/useStore.js";
|
|
|
3
3
|
import { notifySuccess } from "../util/notice.js";
|
|
4
4
|
import { requireForm } from "./FormContext.js";
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Publish the current form's "main" (unnamed) message as a global success notice whenever it changes.
|
|
8
|
+
* - Renders nothing; mount it inside a `Form` to surface the message globally.
|
|
9
|
+
*
|
|
10
|
+
* @returns Nothing — this component only triggers a side effect.
|
|
11
|
+
* @example <FormNotify />
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormNotify/FormNotify
|
|
13
|
+
*/
|
|
8
14
|
export function FormNotify(): void {
|
|
9
15
|
const message = useStore(requireForm().messages).get("");
|
|
10
16
|
useEffect(() => {
|
package/ui/form/FormStore.d.ts
CHANGED
|
@@ -5,7 +5,14 @@ import { DictionaryStore } from "../../store/DictionaryStore.js";
|
|
|
5
5
|
import type { Data, DataKey } from "../../util/data.js";
|
|
6
6
|
import type { ImmutableDictionary } from "../../util/dictionary.js";
|
|
7
7
|
import type { Arguments } from "../../util/function.js";
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Reactive store holding the current (possibly partial and invalid) value of a form, plus its field messages.
|
|
10
|
+
* - Extends `DataStore` with the form's `schema`, per-field error `messages`, and validate/submit helpers.
|
|
11
|
+
* - Assigning a string `reason` splits it into per-field messages rather than a global failure.
|
|
12
|
+
*
|
|
13
|
+
* @example const store = new FormStore(USER_SCHEMA, { name: "Dave" });
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore
|
|
15
|
+
*/
|
|
9
16
|
export declare class FormStore<T extends Data> extends DataStore<Partial<T>> implements AsyncDisposable {
|
|
10
17
|
/** Unique ID for the form. */
|
|
11
18
|
readonly id: string;
|
|
@@ -20,19 +27,56 @@ export declare class FormStore<T extends Data> extends DataStore<Partial<T>> imp
|
|
|
20
27
|
* - See `splitMessages()` in `shelving` for more information.
|
|
21
28
|
*/
|
|
22
29
|
readonly messages: DictionaryStore<string>;
|
|
23
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* The current value validated against the schema, also written back to `this.value`.
|
|
32
|
+
*
|
|
33
|
+
* @throws A `string` validation message if the current value is invalid.
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/validated
|
|
35
|
+
*/
|
|
24
36
|
get validated(): T;
|
|
25
37
|
get reason(): unknown;
|
|
26
38
|
set reason(reason: unknown);
|
|
39
|
+
/**
|
|
40
|
+
* Create a new `FormStore` for a schema, with optional initial data and messages.
|
|
41
|
+
*
|
|
42
|
+
* @param schema Schema describing the form's fields.
|
|
43
|
+
* @param partialData Initial (possibly partial) data for the form.
|
|
44
|
+
* @param messages Initial messages as a dictionary, or a string with `fieldName:` style lines.
|
|
45
|
+
* @example new FormStore(USER_SCHEMA, { name: "Dave" })
|
|
46
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/constructor
|
|
47
|
+
*/
|
|
27
48
|
constructor(schema: DataSchema<T>, partialData?: Partial<T>, messages?: ImmutableDictionary<string> | string | undefined);
|
|
28
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Get the `Schema` for a named field of this form.
|
|
51
|
+
*
|
|
52
|
+
* @param name Name of the field to look up.
|
|
53
|
+
* @returns The `Schema` for that field.
|
|
54
|
+
* @throws `RequiredError` if no schema exists for the named field.
|
|
55
|
+
* @example store.requireSchema("email")
|
|
56
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/requireSchema
|
|
57
|
+
*/
|
|
29
58
|
requireSchema<K extends DataKey<T>>(name: K): Schema<T[K]>;
|
|
30
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Validate and set a value for a named field of this form.
|
|
61
|
+
* - Clears the main and field messages, then validates and stores the value.
|
|
62
|
+
* - On a string validation error the message is recorded and the raw value is still persisted.
|
|
63
|
+
*
|
|
64
|
+
* @param name Name of the field to update.
|
|
65
|
+
* @param unsafeValue The unvalidated value to store for the field.
|
|
66
|
+
* @returns Nothing.
|
|
67
|
+
* @example store.publish("email", "dave@shax.com")
|
|
68
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/publish
|
|
69
|
+
*/
|
|
31
70
|
publish<K extends DataKey<T>>(name: K, unsafeValue: T[K]): void;
|
|
32
71
|
/**
|
|
33
|
-
* Validate and
|
|
72
|
+
* Validate the current form value and run an optional submit callback with it.
|
|
73
|
+
* - On a validation failure the error is stored as the `reason` and `false` is returned.
|
|
34
74
|
*
|
|
35
|
-
* @param callback Optional callback that takes the
|
|
75
|
+
* @param callback Optional callback that takes the validated value, processes it (possibly asynchronously) and returns any new values.
|
|
76
|
+
* @param args Additional arguments forwarded to the callback.
|
|
77
|
+
* @returns `true` on success, `false` on validation failure (or a `Promise` resolving to one).
|
|
78
|
+
* @example store.submit(saveUser)
|
|
79
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/submit
|
|
36
80
|
*/
|
|
37
81
|
submit<A extends Arguments>(callback?: ((value: T, ...args: A) => void) | undefined, ...args: A): boolean | Promise<boolean>;
|
|
38
82
|
[Symbol.asyncDispose](): Promise<void>;
|
package/ui/form/FormStore.js
CHANGED
|
@@ -5,7 +5,14 @@ import { DictionaryStore } from "../../store/DictionaryStore.js";
|
|
|
5
5
|
import { awaitDispose } from "../../util/dispose.js";
|
|
6
6
|
import { splitMessage } from "../../util/error.js";
|
|
7
7
|
import { getRandomKey } from "../../util/random.js";
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Reactive store holding the current (possibly partial and invalid) value of a form, plus its field messages.
|
|
10
|
+
* - Extends `DataStore` with the form's `schema`, per-field error `messages`, and validate/submit helpers.
|
|
11
|
+
* - Assigning a string `reason` splits it into per-field messages rather than a global failure.
|
|
12
|
+
*
|
|
13
|
+
* @example const store = new FormStore(USER_SCHEMA, { name: "Dave" });
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore
|
|
15
|
+
*/
|
|
9
16
|
export class FormStore extends DataStore {
|
|
10
17
|
/** Unique ID for the form. */
|
|
11
18
|
id = getRandomKey();
|
|
@@ -20,7 +27,12 @@ export class FormStore extends DataStore {
|
|
|
20
27
|
* - See `splitMessages()` in `shelving` for more information.
|
|
21
28
|
*/
|
|
22
29
|
messages = new DictionaryStore();
|
|
23
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* The current value validated against the schema, also written back to `this.value`.
|
|
32
|
+
*
|
|
33
|
+
* @throws A `string` validation message if the current value is invalid.
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/validated
|
|
35
|
+
*/
|
|
24
36
|
get validated() {
|
|
25
37
|
return (this.value = this.schema.validate(this.value));
|
|
26
38
|
}
|
|
@@ -36,6 +48,15 @@ export class FormStore extends DataStore {
|
|
|
36
48
|
super.reason = reason;
|
|
37
49
|
}
|
|
38
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a new `FormStore` for a schema, with optional initial data and messages.
|
|
53
|
+
*
|
|
54
|
+
* @param schema Schema describing the form's fields.
|
|
55
|
+
* @param partialData Initial (possibly partial) data for the form.
|
|
56
|
+
* @param messages Initial messages as a dictionary, or a string with `fieldName:` style lines.
|
|
57
|
+
* @example new FormStore(USER_SCHEMA, { name: "Dave" })
|
|
58
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/constructor
|
|
59
|
+
*/
|
|
39
60
|
constructor(schema, partialData = {}, messages) {
|
|
40
61
|
super(partialData);
|
|
41
62
|
this.key = `${this.id}:${JSON.stringify(partialData)}`;
|
|
@@ -43,14 +64,32 @@ export class FormStore extends DataStore {
|
|
|
43
64
|
if (messages)
|
|
44
65
|
this.messages.value = typeof messages === "string" ? splitMessage(messages) : messages;
|
|
45
66
|
}
|
|
46
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* Get the `Schema` for a named field of this form.
|
|
69
|
+
*
|
|
70
|
+
* @param name Name of the field to look up.
|
|
71
|
+
* @returns The `Schema` for that field.
|
|
72
|
+
* @throws `RequiredError` if no schema exists for the named field.
|
|
73
|
+
* @example store.requireSchema("email")
|
|
74
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/requireSchema
|
|
75
|
+
*/
|
|
47
76
|
requireSchema(name) {
|
|
48
77
|
const schema = this.schema.props[name];
|
|
49
78
|
if (schema instanceof Schema)
|
|
50
79
|
return schema;
|
|
51
80
|
throw new RequiredError(`Schema "${name}" does not exist in form`, { received: name, caller: this.requireSchema });
|
|
52
81
|
}
|
|
53
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* Validate and set a value for a named field of this form.
|
|
84
|
+
* - Clears the main and field messages, then validates and stores the value.
|
|
85
|
+
* - On a string validation error the message is recorded and the raw value is still persisted.
|
|
86
|
+
*
|
|
87
|
+
* @param name Name of the field to update.
|
|
88
|
+
* @param unsafeValue The unvalidated value to store for the field.
|
|
89
|
+
* @returns Nothing.
|
|
90
|
+
* @example store.publish("email", "dave@shax.com")
|
|
91
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/publish
|
|
92
|
+
*/
|
|
54
93
|
publish(name, unsafeValue) {
|
|
55
94
|
this.abort();
|
|
56
95
|
// Clear main message and this named message.
|
|
@@ -71,9 +110,14 @@ export class FormStore extends DataStore {
|
|
|
71
110
|
}
|
|
72
111
|
}
|
|
73
112
|
/**
|
|
74
|
-
* Validate and
|
|
113
|
+
* Validate the current form value and run an optional submit callback with it.
|
|
114
|
+
* - On a validation failure the error is stored as the `reason` and `false` is returned.
|
|
75
115
|
*
|
|
76
|
-
* @param callback Optional callback that takes the
|
|
116
|
+
* @param callback Optional callback that takes the validated value, processes it (possibly asynchronously) and returns any new values.
|
|
117
|
+
* @param args Additional arguments forwarded to the callback.
|
|
118
|
+
* @returns `true` on success, `false` on validation failure (or a `Promise` resolving to one).
|
|
119
|
+
* @example store.submit(saveUser)
|
|
120
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/submit
|
|
77
121
|
*/
|
|
78
122
|
submit(callback, ...args) {
|
|
79
123
|
try {
|
package/ui/form/FormStore.tsx
CHANGED
|
@@ -10,7 +10,14 @@ import { splitMessage } from "../../util/error.js";
|
|
|
10
10
|
import type { Arguments } from "../../util/function.js";
|
|
11
11
|
import { getRandomKey } from "../../util/random.js";
|
|
12
12
|
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Reactive store holding the current (possibly partial and invalid) value of a form, plus its field messages.
|
|
15
|
+
* - Extends `DataStore` with the form's `schema`, per-field error `messages`, and validate/submit helpers.
|
|
16
|
+
* - Assigning a string `reason` splits it into per-field messages rather than a global failure.
|
|
17
|
+
*
|
|
18
|
+
* @example const store = new FormStore(USER_SCHEMA, { name: "Dave" });
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore
|
|
20
|
+
*/
|
|
14
21
|
export class FormStore<T extends Data> extends DataStore<Partial<T>> implements AsyncDisposable {
|
|
15
22
|
/** Unique ID for the form. */
|
|
16
23
|
readonly id = getRandomKey();
|
|
@@ -29,7 +36,12 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
|
|
|
29
36
|
*/
|
|
30
37
|
readonly messages = new DictionaryStore<string>();
|
|
31
38
|
|
|
32
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* The current value validated against the schema, also written back to `this.value`.
|
|
41
|
+
*
|
|
42
|
+
* @throws A `string` validation message if the current value is invalid.
|
|
43
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/validated
|
|
44
|
+
*/
|
|
33
45
|
get validated(): T {
|
|
34
46
|
return (this.value = this.schema.validate(this.value));
|
|
35
47
|
}
|
|
@@ -46,6 +58,15 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
|
|
|
46
58
|
}
|
|
47
59
|
}
|
|
48
60
|
|
|
61
|
+
/**
|
|
62
|
+
* Create a new `FormStore` for a schema, with optional initial data and messages.
|
|
63
|
+
*
|
|
64
|
+
* @param schema Schema describing the form's fields.
|
|
65
|
+
* @param partialData Initial (possibly partial) data for the form.
|
|
66
|
+
* @param messages Initial messages as a dictionary, or a string with `fieldName:` style lines.
|
|
67
|
+
* @example new FormStore(USER_SCHEMA, { name: "Dave" })
|
|
68
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/constructor
|
|
69
|
+
*/
|
|
49
70
|
constructor(schema: DataSchema<T>, partialData: Partial<T> = {}, messages?: ImmutableDictionary<string> | string | undefined) {
|
|
50
71
|
super(partialData);
|
|
51
72
|
this.key = `${this.id}:${JSON.stringify(partialData)}`;
|
|
@@ -53,14 +74,32 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
|
|
|
53
74
|
if (messages) this.messages.value = typeof messages === "string" ? splitMessage(messages) : messages;
|
|
54
75
|
}
|
|
55
76
|
|
|
56
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Get the `Schema` for a named field of this form.
|
|
79
|
+
*
|
|
80
|
+
* @param name Name of the field to look up.
|
|
81
|
+
* @returns The `Schema` for that field.
|
|
82
|
+
* @throws `RequiredError` if no schema exists for the named field.
|
|
83
|
+
* @example store.requireSchema("email")
|
|
84
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/requireSchema
|
|
85
|
+
*/
|
|
57
86
|
requireSchema<K extends DataKey<T>>(name: K): Schema<T[K]> {
|
|
58
87
|
const schema = this.schema.props[name];
|
|
59
88
|
if (schema instanceof Schema) return schema as Schema<T[K]>;
|
|
60
89
|
throw new RequiredError(`Schema "${name}" does not exist in form`, { received: name, caller: this.requireSchema });
|
|
61
90
|
}
|
|
62
91
|
|
|
63
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* Validate and set a value for a named field of this form.
|
|
94
|
+
* - Clears the main and field messages, then validates and stores the value.
|
|
95
|
+
* - On a string validation error the message is recorded and the raw value is still persisted.
|
|
96
|
+
*
|
|
97
|
+
* @param name Name of the field to update.
|
|
98
|
+
* @param unsafeValue The unvalidated value to store for the field.
|
|
99
|
+
* @returns Nothing.
|
|
100
|
+
* @example store.publish("email", "dave@shax.com")
|
|
101
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/publish
|
|
102
|
+
*/
|
|
64
103
|
publish<K extends DataKey<T>>(name: K, unsafeValue: T[K]): void {
|
|
65
104
|
this.abort();
|
|
66
105
|
|
|
@@ -82,9 +121,14 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
|
|
|
82
121
|
}
|
|
83
122
|
|
|
84
123
|
/**
|
|
85
|
-
* Validate and
|
|
124
|
+
* Validate the current form value and run an optional submit callback with it.
|
|
125
|
+
* - On a validation failure the error is stored as the `reason` and `false` is returned.
|
|
86
126
|
*
|
|
87
|
-
* @param callback Optional callback that takes the
|
|
127
|
+
* @param callback Optional callback that takes the validated value, processes it (possibly asynchronously) and returns any new values.
|
|
128
|
+
* @param args Additional arguments forwarded to the callback.
|
|
129
|
+
* @returns `true` on success, `false` on validation failure (or a `Promise` resolving to one).
|
|
130
|
+
* @example store.submit(saveUser)
|
|
131
|
+
* @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/submit
|
|
88
132
|
*/
|
|
89
133
|
submit<A extends Arguments>(callback?: ((value: T, ...args: A) => void) | undefined, ...args: A): boolean | Promise<boolean> {
|
|
90
134
|
try {
|
package/ui/form/Input.d.ts
CHANGED
|
@@ -1,18 +1,82 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import type { ChildProps } from "../util/props.js";
|
|
3
|
+
/**
|
|
4
|
+
* `className` for a `<input type="radio">` element.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/RADIO_CLASS
|
|
7
|
+
*/
|
|
3
8
|
export declare const RADIO_CLASS: any;
|
|
9
|
+
/**
|
|
10
|
+
* `className` for a `<input type="checkbox">` element.
|
|
11
|
+
*
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/CHECKBOX_CLASS
|
|
13
|
+
*/
|
|
4
14
|
export declare const CHECKBOX_CLASS: any;
|
|
15
|
+
/**
|
|
16
|
+
* Base `className` shared by all input elements.
|
|
17
|
+
*
|
|
18
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/INPUT_CLASS
|
|
19
|
+
*/
|
|
5
20
|
export declare const INPUT_CLASS: any;
|
|
21
|
+
/**
|
|
22
|
+
* `className` applied to an input when it's showing placeholder content.
|
|
23
|
+
*
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/PLACEHOLDER_CLASS
|
|
25
|
+
*/
|
|
6
26
|
export declare const PLACEHOLDER_CLASS: any;
|
|
27
|
+
/**
|
|
28
|
+
* `className` for the empty/placeholder `<option>` of a `<select>`.
|
|
29
|
+
*
|
|
30
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/EMPTY_OPTION_CLASS
|
|
31
|
+
*/
|
|
7
32
|
export declare const EMPTY_OPTION_CLASS: any;
|
|
33
|
+
/**
|
|
34
|
+
* `className` for a value-bearing `<option>` of a `<select>`.
|
|
35
|
+
*
|
|
36
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/VALUE_OPTION_CLASS
|
|
37
|
+
*/
|
|
8
38
|
export declare const VALUE_OPTION_CLASS: any;
|
|
39
|
+
/**
|
|
40
|
+
* Precomposed `className` for a single-line text `<input>`.
|
|
41
|
+
*
|
|
42
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/TEXT_INPUT_CLASS
|
|
43
|
+
*/
|
|
9
44
|
export declare const TEXT_INPUT_CLASS: string;
|
|
45
|
+
/**
|
|
46
|
+
* Precomposed `className` for a multiline `<textarea>`.
|
|
47
|
+
*
|
|
48
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/MULTILINE_TEXT_INPUT_CLASS
|
|
49
|
+
*/
|
|
10
50
|
export declare const MULTILINE_TEXT_INPUT_CLASS: string;
|
|
51
|
+
/**
|
|
52
|
+
* Precomposed `className` for an input wrapper that hosts `data-slot` icon elements.
|
|
53
|
+
*
|
|
54
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/WRAPPER_INPUT_CLASS
|
|
55
|
+
*/
|
|
11
56
|
export declare const WRAPPER_INPUT_CLASS: string;
|
|
57
|
+
/**
|
|
58
|
+
* Precomposed `className` for a `<select>` input.
|
|
59
|
+
*
|
|
60
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/SELECT_INPUT_CLASS
|
|
61
|
+
*/
|
|
12
62
|
export declare const SELECT_INPUT_CLASS: string;
|
|
63
|
+
/**
|
|
64
|
+
* Precomposed `className` for a button styled as an input.
|
|
65
|
+
*
|
|
66
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/BUTTON_INPUT_CLASS
|
|
67
|
+
*/
|
|
13
68
|
export declare const BUTTON_INPUT_CLASS: string;
|
|
69
|
+
/**
|
|
70
|
+
* Precomposed `className` for a `<label>` styled as an input (e.g. checkbox/radio wrappers).
|
|
71
|
+
*
|
|
72
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/LABEL_INPUT_CLASS
|
|
73
|
+
*/
|
|
14
74
|
export declare const LABEL_INPUT_CLASS: string;
|
|
15
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Base props shared by every form input (name, title, placeholder, required/disabled state, and error message).
|
|
77
|
+
*
|
|
78
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/InputProps
|
|
79
|
+
*/
|
|
16
80
|
export interface InputProps {
|
|
17
81
|
/** The `name=""` prop of the input. */
|
|
18
82
|
name: string;
|
package/ui/form/Input.js
CHANGED
|
@@ -4,18 +4,78 @@ import { getFlexClass } from "../style/Flex.js";
|
|
|
4
4
|
import { getClass } from "../util/css.js";
|
|
5
5
|
import INPUT_CSS from "./Input.module.css";
|
|
6
6
|
// Classes.
|
|
7
|
+
/**
|
|
8
|
+
* `className` for a `<input type="radio">` element.
|
|
9
|
+
*
|
|
10
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/RADIO_CLASS
|
|
11
|
+
*/
|
|
7
12
|
export const RADIO_CLASS = INPUT_CSS.radio;
|
|
13
|
+
/**
|
|
14
|
+
* `className` for a `<input type="checkbox">` element.
|
|
15
|
+
*
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/CHECKBOX_CLASS
|
|
17
|
+
*/
|
|
8
18
|
export const CHECKBOX_CLASS = INPUT_CSS.radio;
|
|
19
|
+
/**
|
|
20
|
+
* Base `className` shared by all input elements.
|
|
21
|
+
*
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/INPUT_CLASS
|
|
23
|
+
*/
|
|
9
24
|
export const INPUT_CLASS = INPUT_CSS.input;
|
|
25
|
+
/**
|
|
26
|
+
* `className` applied to an input when it's showing placeholder content.
|
|
27
|
+
*
|
|
28
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/PLACEHOLDER_CLASS
|
|
29
|
+
*/
|
|
10
30
|
export const PLACEHOLDER_CLASS = INPUT_CSS.placeholder;
|
|
31
|
+
/**
|
|
32
|
+
* `className` for the empty/placeholder `<option>` of a `<select>`.
|
|
33
|
+
*
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/EMPTY_OPTION_CLASS
|
|
35
|
+
*/
|
|
11
36
|
export const EMPTY_OPTION_CLASS = INPUT_CSS.empty;
|
|
37
|
+
/**
|
|
38
|
+
* `className` for a value-bearing `<option>` of a `<select>`.
|
|
39
|
+
*
|
|
40
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/VALUE_OPTION_CLASS
|
|
41
|
+
*/
|
|
12
42
|
export const VALUE_OPTION_CLASS = INPUT_CSS.value;
|
|
13
43
|
// Precomposed classes.
|
|
44
|
+
/**
|
|
45
|
+
* Precomposed `className` for a single-line text `<input>`.
|
|
46
|
+
*
|
|
47
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/TEXT_INPUT_CLASS
|
|
48
|
+
*/
|
|
14
49
|
export const TEXT_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.text);
|
|
50
|
+
/**
|
|
51
|
+
* Precomposed `className` for a multiline `<textarea>`.
|
|
52
|
+
*
|
|
53
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/MULTILINE_TEXT_INPUT_CLASS
|
|
54
|
+
*/
|
|
15
55
|
export const MULTILINE_TEXT_INPUT_CLASS = getClass(TEXT_INPUT_CLASS, INPUT_CSS.multiline);
|
|
56
|
+
/**
|
|
57
|
+
* Precomposed `className` for an input wrapper that hosts `data-slot` icon elements.
|
|
58
|
+
*
|
|
59
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/WRAPPER_INPUT_CLASS
|
|
60
|
+
*/
|
|
16
61
|
export const WRAPPER_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.wrapper);
|
|
62
|
+
/**
|
|
63
|
+
* Precomposed `className` for a `<select>` input.
|
|
64
|
+
*
|
|
65
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/SELECT_INPUT_CLASS
|
|
66
|
+
*/
|
|
17
67
|
export const SELECT_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.select);
|
|
68
|
+
/**
|
|
69
|
+
* Precomposed `className` for a button styled as an input.
|
|
70
|
+
*
|
|
71
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/BUTTON_INPUT_CLASS
|
|
72
|
+
*/
|
|
18
73
|
export const BUTTON_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.button);
|
|
74
|
+
/**
|
|
75
|
+
* Precomposed `className` for a `<label>` styled as an input (e.g. checkbox/radio wrappers).
|
|
76
|
+
*
|
|
77
|
+
* @see https://dhoulb.github.io/shelving/ui/form/Input/LABEL_INPUT_CLASS
|
|
78
|
+
*/
|
|
19
79
|
export const LABEL_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.label);
|
|
20
80
|
/** Input that is loading. */
|
|
21
81
|
export const LOADING_INPUT = _jsx("div", { className: getClass(INPUT_CLASS, getFlexClass({})), children: LOADING });
|