@pithyjs/ui-kit 0.1.0-beta.0
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/LICENSE +21 -0
- package/dist/animation/animate-in.d.ts +35 -0
- package/dist/animation/animate-in.d.ts.map +1 -0
- package/dist/animation/animate-in.js +71 -0
- package/dist/animation/animate-in.js.map +1 -0
- package/dist/atoms/actions/_icon-control.scss +53 -0
- package/dist/atoms/actions/button/Button.d.ts +93 -0
- package/dist/atoms/actions/button/Button.d.ts.map +1 -0
- package/dist/atoms/actions/button/Button.js +332 -0
- package/dist/atoms/actions/button/Button.js.map +1 -0
- package/dist/atoms/actions/button/button.scss +342 -0
- package/dist/atoms/actions/icon-button/IconButton.d.ts +47 -0
- package/dist/atoms/actions/icon-button/IconButton.d.ts.map +1 -0
- package/dist/atoms/actions/icon-button/IconButton.js +81 -0
- package/dist/atoms/actions/icon-button/IconButton.js.map +1 -0
- package/dist/atoms/actions/icon-button/icon-button.scss +20 -0
- package/dist/atoms/actions/icon-group/IconGroup.d.ts +60 -0
- package/dist/atoms/actions/icon-group/IconGroup.d.ts.map +1 -0
- package/dist/atoms/actions/icon-group/IconGroup.js +191 -0
- package/dist/atoms/actions/icon-group/IconGroup.js.map +1 -0
- package/dist/atoms/actions/icon-group/icon-group.scss +36 -0
- package/dist/atoms/actions/segmented-control/SegmentedControl.d.ts +49 -0
- package/dist/atoms/actions/segmented-control/SegmentedControl.d.ts.map +1 -0
- package/dist/atoms/actions/segmented-control/SegmentedControl.js +107 -0
- package/dist/atoms/actions/segmented-control/SegmentedControl.js.map +1 -0
- package/dist/atoms/actions/segmented-control/segmented-control.scss +90 -0
- package/dist/atoms/content/_mixins.scss +79 -0
- package/dist/atoms/content/action-tile/ActionTile.d.ts +27 -0
- package/dist/atoms/content/action-tile/ActionTile.d.ts.map +1 -0
- package/dist/atoms/content/action-tile/ActionTile.js +98 -0
- package/dist/atoms/content/action-tile/ActionTile.js.map +1 -0
- package/dist/atoms/content/action-tile/action-tile.scss +150 -0
- package/dist/atoms/content/badge/Badge.d.ts +57 -0
- package/dist/atoms/content/badge/Badge.d.ts.map +1 -0
- package/dist/atoms/content/badge/Badge.js +177 -0
- package/dist/atoms/content/badge/Badge.js.map +1 -0
- package/dist/atoms/content/badge/badge.scss +198 -0
- package/dist/atoms/content/heading/Heading.d.ts +53 -0
- package/dist/atoms/content/heading/Heading.d.ts.map +1 -0
- package/dist/atoms/content/heading/Heading.js +142 -0
- package/dist/atoms/content/heading/Heading.js.map +1 -0
- package/dist/atoms/content/heading/heading.scss +43 -0
- package/dist/atoms/content/icon/Icon.d.ts +68 -0
- package/dist/atoms/content/icon/Icon.d.ts.map +1 -0
- package/dist/atoms/content/icon/Icon.js +137 -0
- package/dist/atoms/content/icon/Icon.js.map +1 -0
- package/dist/atoms/content/icon/icon.scss +66 -0
- package/dist/atoms/content/icon/resolveIconSvg.d.ts +21 -0
- package/dist/atoms/content/icon/resolveIconSvg.d.ts.map +1 -0
- package/dist/atoms/content/icon/resolveIconSvg.js +73 -0
- package/dist/atoms/content/icon/resolveIconSvg.js.map +1 -0
- package/dist/atoms/content/image/Image.d.ts +81 -0
- package/dist/atoms/content/image/Image.d.ts.map +1 -0
- package/dist/atoms/content/image/Image.js +293 -0
- package/dist/atoms/content/image/Image.js.map +1 -0
- package/dist/atoms/content/image/image.scss +77 -0
- package/dist/atoms/content/text/Text.d.ts +58 -0
- package/dist/atoms/content/text/Text.d.ts.map +1 -0
- package/dist/atoms/content/text/Text.js +158 -0
- package/dist/atoms/content/text/Text.js.map +1 -0
- package/dist/atoms/content/text/text.scss +98 -0
- package/dist/atoms/content/tile/Tile.d.ts +66 -0
- package/dist/atoms/content/tile/Tile.d.ts.map +1 -0
- package/dist/atoms/content/tile/Tile.js +125 -0
- package/dist/atoms/content/tile/Tile.js.map +1 -0
- package/dist/atoms/content/tile/tile.scss +122 -0
- package/dist/atoms/feedback/tooltip/Tooltip.d.ts +44 -0
- package/dist/atoms/feedback/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/atoms/feedback/tooltip/Tooltip.js +121 -0
- package/dist/atoms/feedback/tooltip/Tooltip.js.map +1 -0
- package/dist/atoms/feedback/tooltip/tooltip.scss +96 -0
- package/dist/atoms/forms/checkbox/Checkbox.d.ts +49 -0
- package/dist/atoms/forms/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/atoms/forms/checkbox/Checkbox.js +269 -0
- package/dist/atoms/forms/checkbox/Checkbox.js.map +1 -0
- package/dist/atoms/forms/checkbox/CheckboxGroup.d.ts +50 -0
- package/dist/atoms/forms/checkbox/CheckboxGroup.d.ts.map +1 -0
- package/dist/atoms/forms/checkbox/CheckboxGroup.js +132 -0
- package/dist/atoms/forms/checkbox/CheckboxGroup.js.map +1 -0
- package/dist/atoms/forms/checkbox/checkbox.scss +506 -0
- package/dist/atoms/forms/file-picker/FilePicker.d.ts +23 -0
- package/dist/atoms/forms/file-picker/FilePicker.d.ts.map +1 -0
- package/dist/atoms/forms/file-picker/FilePicker.js +103 -0
- package/dist/atoms/forms/file-picker/FilePicker.js.map +1 -0
- package/dist/atoms/forms/file-picker/file-picker.scss +84 -0
- package/dist/atoms/forms/form-field/FormField.d.ts +39 -0
- package/dist/atoms/forms/form-field/FormField.d.ts.map +1 -0
- package/dist/atoms/forms/form-field/FormField.js +139 -0
- package/dist/atoms/forms/form-field/FormField.js.map +1 -0
- package/dist/atoms/forms/form-field/form-field.scss +46 -0
- package/dist/atoms/forms/input/Input.d.ts +81 -0
- package/dist/atoms/forms/input/Input.d.ts.map +1 -0
- package/dist/atoms/forms/input/Input.js +417 -0
- package/dist/atoms/forms/input/Input.js.map +1 -0
- package/dist/atoms/forms/input/input.scss +547 -0
- package/dist/atoms/forms/radio/Radio.d.ts +54 -0
- package/dist/atoms/forms/radio/Radio.d.ts.map +1 -0
- package/dist/atoms/forms/radio/Radio.js +278 -0
- package/dist/atoms/forms/radio/Radio.js.map +1 -0
- package/dist/atoms/forms/radio/RadioGroup.d.ts +54 -0
- package/dist/atoms/forms/radio/RadioGroup.d.ts.map +1 -0
- package/dist/atoms/forms/radio/RadioGroup.js +137 -0
- package/dist/atoms/forms/radio/RadioGroup.js.map +1 -0
- package/dist/atoms/forms/radio/radio.scss +459 -0
- package/dist/atoms/forms/select/Select.d.ts +57 -0
- package/dist/atoms/forms/select/Select.d.ts.map +1 -0
- package/dist/atoms/forms/select/Select.js +457 -0
- package/dist/atoms/forms/select/Select.js.map +1 -0
- package/dist/atoms/forms/select/select-dropdown.d.ts +49 -0
- package/dist/atoms/forms/select/select-dropdown.d.ts.map +1 -0
- package/dist/atoms/forms/select/select-dropdown.js +305 -0
- package/dist/atoms/forms/select/select-dropdown.js.map +1 -0
- package/dist/atoms/forms/select/select-keyboard.d.ts +14 -0
- package/dist/atoms/forms/select/select-keyboard.d.ts.map +1 -0
- package/dist/atoms/forms/select/select-keyboard.js +182 -0
- package/dist/atoms/forms/select/select-keyboard.js.map +1 -0
- package/dist/atoms/forms/select/select.scss +630 -0
- package/dist/atoms/forms/textarea/Textarea.d.ts +69 -0
- package/dist/atoms/forms/textarea/Textarea.d.ts.map +1 -0
- package/dist/atoms/forms/textarea/Textarea.js +394 -0
- package/dist/atoms/forms/textarea/Textarea.js.map +1 -0
- package/dist/atoms/forms/textarea/textarea.scss +486 -0
- package/dist/atoms/forms/toggle/Toggle.d.ts +47 -0
- package/dist/atoms/forms/toggle/Toggle.d.ts.map +1 -0
- package/dist/atoms/forms/toggle/Toggle.js +243 -0
- package/dist/atoms/forms/toggle/Toggle.js.map +1 -0
- package/dist/atoms/forms/toggle/toggle.scss +561 -0
- package/dist/compiler.d.ts +7 -0
- package/dist/compiler.d.ts.map +1 -0
- package/dist/compiler.js +18 -0
- package/dist/compiler.js.map +1 -0
- package/dist/icons/index.d.ts +14 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +14 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/registry.d.ts +65 -0
- package/dist/icons/registry.d.ts.map +1 -0
- package/dist/icons/registry.js +126 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/Grid.d.ts +78 -0
- package/dist/layout/Grid.d.ts.map +1 -0
- package/dist/layout/Grid.js +272 -0
- package/dist/layout/Grid.js.map +1 -0
- package/dist/layout/GridItem.d.ts +52 -0
- package/dist/layout/GridItem.d.ts.map +1 -0
- package/dist/layout/GridItem.js +99 -0
- package/dist/layout/GridItem.js.map +1 -0
- package/dist/layout/PageSection.d.ts +43 -0
- package/dist/layout/PageSection.d.ts.map +1 -0
- package/dist/layout/PageSection.js +75 -0
- package/dist/layout/PageSection.js.map +1 -0
- package/dist/layout/SmartContainer.d.ts +66 -0
- package/dist/layout/SmartContainer.d.ts.map +1 -0
- package/dist/layout/SmartContainer.js +194 -0
- package/dist/layout/SmartContainer.js.map +1 -0
- package/dist/layout/Stack.d.ts +65 -0
- package/dist/layout/Stack.d.ts.map +1 -0
- package/dist/layout/Stack.js +114 -0
- package/dist/layout/Stack.js.map +1 -0
- package/dist/organisms/content/Card.d.ts +93 -0
- package/dist/organisms/content/Card.d.ts.map +1 -0
- package/dist/organisms/content/Card.js +353 -0
- package/dist/organisms/content/Card.js.map +1 -0
- package/dist/organisms/content/_card-horizontal.scss +88 -0
- package/dist/organisms/content/_card-link.scss +49 -0
- package/dist/organisms/content/_card-overlay.scss +91 -0
- package/dist/organisms/content/_card-root.scss +99 -0
- package/dist/organisms/content/_card-slots.scss +143 -0
- package/dist/organisms/content/_card-states.scss +166 -0
- package/dist/organisms/content/_card-tokens.scss +22 -0
- package/dist/organisms/content/_card-variants.scss +31 -0
- package/dist/organisms/content/card.scss +15 -0
- package/dist/organisms/feedback/Modal.d.ts +39 -0
- package/dist/organisms/feedback/Modal.d.ts.map +1 -0
- package/dist/organisms/feedback/Modal.js +120 -0
- package/dist/organisms/feedback/Modal.js.map +1 -0
- package/dist/organisms/feedback/Popover.d.ts +30 -0
- package/dist/organisms/feedback/Popover.d.ts.map +1 -0
- package/dist/organisms/feedback/Popover.js +151 -0
- package/dist/organisms/feedback/Popover.js.map +1 -0
- package/dist/organisms/feedback/modal.scss +66 -0
- package/dist/organisms/feedback/popover.scss +27 -0
- package/dist/organisms/forms/DynamicForm.d.ts +118 -0
- package/dist/organisms/forms/DynamicForm.d.ts.map +1 -0
- package/dist/organisms/forms/DynamicForm.js +546 -0
- package/dist/organisms/forms/DynamicForm.js.map +1 -0
- package/dist/organisms/forms/Form.d.ts +62 -0
- package/dist/organisms/forms/Form.d.ts.map +1 -0
- package/dist/organisms/forms/Form.js +131 -0
- package/dist/organisms/forms/Form.js.map +1 -0
- package/dist/organisms/forms/dynamic-form.scss +91 -0
- package/dist/organisms/forms/form-helpers.d.ts +21 -0
- package/dist/organisms/forms/form-helpers.d.ts.map +1 -0
- package/dist/organisms/forms/form-helpers.js +57 -0
- package/dist/organisms/forms/form-helpers.js.map +1 -0
- package/dist/organisms/forms/form-state.d.ts +66 -0
- package/dist/organisms/forms/form-state.d.ts.map +1 -0
- package/dist/organisms/forms/form-state.js +156 -0
- package/dist/organisms/forms/form-state.js.map +1 -0
- package/dist/organisms/forms/form.scss +23 -0
- package/dist/organisms/forms/validation.d.ts +32 -0
- package/dist/organisms/forms/validation.d.ts.map +1 -0
- package/dist/organisms/forms/validation.js +118 -0
- package/dist/organisms/forms/validation.js.map +1 -0
- package/dist/organisms/navigation/Navbar.d.ts +66 -0
- package/dist/organisms/navigation/Navbar.d.ts.map +1 -0
- package/dist/organisms/navigation/Navbar.js +881 -0
- package/dist/organisms/navigation/Navbar.js.map +1 -0
- package/dist/organisms/navigation/_navbar-announcement.scss +62 -0
- package/dist/organisms/navigation/_navbar-brand.scss +69 -0
- package/dist/organisms/navigation/_navbar-container.scss +37 -0
- package/dist/organisms/navigation/_navbar-desktop.scss +116 -0
- package/dist/organisms/navigation/_navbar-drawer.scss +97 -0
- package/dist/organisms/navigation/_navbar-links.scss +143 -0
- package/dist/organisms/navigation/_navbar-menu.scss +193 -0
- package/dist/organisms/navigation/_navbar-root.scss +107 -0
- package/dist/organisms/navigation/_navbar-search.scss +83 -0
- package/dist/organisms/navigation/_navbar-toggle.scss +91 -0
- package/dist/organisms/navigation/_navbar-tokens.scss +15 -0
- package/dist/organisms/navigation/navbar.scss +17 -0
- package/dist/registry/categories.d.ts +6 -0
- package/dist/registry/categories.d.ts.map +1 -0
- package/dist/registry/categories.js +13 -0
- package/dist/registry/categories.js.map +1 -0
- package/dist/registry/components.d.ts +5 -0
- package/dist/registry/components.d.ts.map +1 -0
- package/dist/registry/components.js +95 -0
- package/dist/registry/components.js.map +1 -0
- package/dist/registry/index.d.ts +59 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +79 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/levels.d.ts +6 -0
- package/dist/registry/levels.d.ts.map +1 -0
- package/dist/registry/levels.js +9 -0
- package/dist/registry/levels.js.map +1 -0
- package/dist/registry/registry-meta-types.d.ts +67 -0
- package/dist/registry/registry-meta-types.d.ts.map +1 -0
- package/dist/registry/registry-meta-types.js +6 -0
- package/dist/registry/registry-meta-types.js.map +1 -0
- package/dist/registry/registry-meta.d.ts +5 -0
- package/dist/registry/registry-meta.d.ts.map +1 -0
- package/dist/registry/registry-meta.js +731 -0
- package/dist/registry/registry-meta.js.map +1 -0
- package/dist/registry/renderer.d.ts +69 -0
- package/dist/registry/renderer.d.ts.map +1 -0
- package/dist/registry/renderer.js +311 -0
- package/dist/registry/renderer.js.map +1 -0
- package/dist/sections/_section-base.scss +204 -0
- package/dist/sections/contact/ContactSection.d.ts +55 -0
- package/dist/sections/contact/ContactSection.d.ts.map +1 -0
- package/dist/sections/contact/ContactSection.js +142 -0
- package/dist/sections/contact/ContactSection.js.map +1 -0
- package/dist/sections/contact/contact-section.scss +142 -0
- package/dist/sections/cta/CTASection.d.ts +52 -0
- package/dist/sections/cta/CTASection.d.ts.map +1 -0
- package/dist/sections/cta/CTASection.js +130 -0
- package/dist/sections/cta/CTASection.js.map +1 -0
- package/dist/sections/cta/cta-section.scss +131 -0
- package/dist/sections/entrance.d.ts +29 -0
- package/dist/sections/entrance.d.ts.map +1 -0
- package/dist/sections/entrance.js +69 -0
- package/dist/sections/entrance.js.map +1 -0
- package/dist/sections/features/FeaturesSection.d.ts +54 -0
- package/dist/sections/features/FeaturesSection.d.ts.map +1 -0
- package/dist/sections/features/FeaturesSection.js +139 -0
- package/dist/sections/features/FeaturesSection.js.map +1 -0
- package/dist/sections/features/features-section.scss +140 -0
- package/dist/sections/footer/FooterSection.d.ts +53 -0
- package/dist/sections/footer/FooterSection.d.ts.map +1 -0
- package/dist/sections/footer/FooterSection.js +147 -0
- package/dist/sections/footer/FooterSection.js.map +1 -0
- package/dist/sections/footer/footer-section.scss +131 -0
- package/dist/sections/hero/HeroSection.d.ts +66 -0
- package/dist/sections/hero/HeroSection.d.ts.map +1 -0
- package/dist/sections/hero/HeroSection.js +156 -0
- package/dist/sections/hero/HeroSection.js.map +1 -0
- package/dist/sections/hero/hero-section.scss +211 -0
- package/dist/shared/_form-animations.scss +283 -0
- package/dist/shared/_media-fit.scss +63 -0
- package/dist/shared/_mixins.scss +69 -0
- package/dist/shared/_tokens.scss +116 -0
- package/dist/shared/badge.d.ts +15 -0
- package/dist/shared/badge.d.ts.map +1 -0
- package/dist/shared/badge.js +15 -0
- package/dist/shared/badge.js.map +1 -0
- package/dist/shared/button.d.ts +22 -0
- package/dist/shared/button.d.ts.map +1 -0
- package/dist/shared/button.js +22 -0
- package/dist/shared/button.js.map +1 -0
- package/dist/shared/card.d.ts +21 -0
- package/dist/shared/card.d.ts.map +1 -0
- package/dist/shared/card.js +38 -0
- package/dist/shared/card.js.map +1 -0
- package/dist/shared/checkbox.d.ts +10 -0
- package/dist/shared/checkbox.d.ts.map +1 -0
- package/dist/shared/checkbox.js +28 -0
- package/dist/shared/checkbox.js.map +1 -0
- package/dist/shared/clickable.d.ts +34 -0
- package/dist/shared/clickable.d.ts.map +1 -0
- package/dist/shared/clickable.js +54 -0
- package/dist/shared/clickable.js.map +1 -0
- package/dist/shared/common.d.ts +31 -0
- package/dist/shared/common.d.ts.map +1 -0
- package/dist/shared/common.js +92 -0
- package/dist/shared/common.js.map +1 -0
- package/dist/shared/entrance-config.d.ts +46 -0
- package/dist/shared/entrance-config.d.ts.map +1 -0
- package/dist/shared/entrance-config.js +54 -0
- package/dist/shared/entrance-config.js.map +1 -0
- package/dist/shared/focusable.d.ts +8 -0
- package/dist/shared/focusable.d.ts.map +1 -0
- package/dist/shared/focusable.js +17 -0
- package/dist/shared/focusable.js.map +1 -0
- package/dist/shared/form-elements.d.ts +57 -0
- package/dist/shared/form-elements.d.ts.map +1 -0
- package/dist/shared/form-elements.js +95 -0
- package/dist/shared/form-elements.js.map +1 -0
- package/dist/shared/form-state.d.ts +52 -0
- package/dist/shared/form-state.d.ts.map +1 -0
- package/dist/shared/form-state.js +151 -0
- package/dist/shared/form-state.js.map +1 -0
- package/dist/shared/grid.d.ts +21 -0
- package/dist/shared/grid.d.ts.map +1 -0
- package/dist/shared/grid.js +187 -0
- package/dist/shared/grid.js.map +1 -0
- package/dist/shared/icon-slot.d.ts +22 -0
- package/dist/shared/icon-slot.d.ts.map +1 -0
- package/dist/shared/icon-slot.js +38 -0
- package/dist/shared/icon-slot.js.map +1 -0
- package/dist/shared/icon.d.ts +17 -0
- package/dist/shared/icon.d.ts.map +1 -0
- package/dist/shared/icon.js +18 -0
- package/dist/shared/icon.js.map +1 -0
- package/dist/shared/icons.d.ts +19 -0
- package/dist/shared/icons.d.ts.map +1 -0
- package/dist/shared/icons.js +22 -0
- package/dist/shared/icons.js.map +1 -0
- package/dist/shared/image.d.ts +35 -0
- package/dist/shared/image.d.ts.map +1 -0
- package/dist/shared/image.js +46 -0
- package/dist/shared/image.js.map +1 -0
- package/dist/shared/input.d.ts +12 -0
- package/dist/shared/input.d.ts.map +1 -0
- package/dist/shared/input.js +29 -0
- package/dist/shared/input.js.map +1 -0
- package/dist/shared/radio.d.ts +10 -0
- package/dist/shared/radio.d.ts.map +1 -0
- package/dist/shared/radio.js +29 -0
- package/dist/shared/radio.js.map +1 -0
- package/dist/shared/reconcile-list.d.ts +37 -0
- package/dist/shared/reconcile-list.d.ts.map +1 -0
- package/dist/shared/reconcile-list.js +95 -0
- package/dist/shared/reconcile-list.js.map +1 -0
- package/dist/shared/section.d.ts +23 -0
- package/dist/shared/section.d.ts.map +1 -0
- package/dist/shared/section.js +65 -0
- package/dist/shared/section.js.map +1 -0
- package/dist/shared/segmented.d.ts +17 -0
- package/dist/shared/segmented.d.ts.map +1 -0
- package/dist/shared/segmented.js +53 -0
- package/dist/shared/segmented.js.map +1 -0
- package/dist/shared/select.d.ts +18 -0
- package/dist/shared/select.d.ts.map +1 -0
- package/dist/shared/select.js +14 -0
- package/dist/shared/select.js.map +1 -0
- package/dist/shared/slots.d.ts +11 -0
- package/dist/shared/slots.d.ts.map +1 -0
- package/dist/shared/slots.js +33 -0
- package/dist/shared/slots.js.map +1 -0
- package/dist/shared/smart-container.d.ts +19 -0
- package/dist/shared/smart-container.d.ts.map +1 -0
- package/dist/shared/smart-container.js +29 -0
- package/dist/shared/smart-container.js.map +1 -0
- package/dist/shared/text.d.ts +29 -0
- package/dist/shared/text.d.ts.map +1 -0
- package/dist/shared/text.js +72 -0
- package/dist/shared/text.js.map +1 -0
- package/dist/shared/textarea.d.ts +6 -0
- package/dist/shared/textarea.d.ts.map +1 -0
- package/dist/shared/textarea.js +18 -0
- package/dist/shared/textarea.js.map +1 -0
- package/dist/shared/toggle.d.ts +6 -0
- package/dist/shared/toggle.d.ts.map +1 -0
- package/dist/shared/toggle.js +19 -0
- package/dist/shared/toggle.js.map +1 -0
- package/dist/shared/types.d.ts +41 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +20 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/structural/ErrorBoundary.d.ts +18 -0
- package/dist/structural/ErrorBoundary.d.ts.map +1 -0
- package/dist/structural/ErrorBoundary.js +119 -0
- package/dist/structural/ErrorBoundary.js.map +1 -0
- package/dist/structural/For.d.ts +37 -0
- package/dist/structural/For.d.ts.map +1 -0
- package/dist/structural/For.js +129 -0
- package/dist/structural/For.js.map +1 -0
- package/dist/structural/Lazy.d.ts +43 -0
- package/dist/structural/Lazy.d.ts.map +1 -0
- package/dist/structural/Lazy.js +47 -0
- package/dist/structural/Lazy.js.map +1 -0
- package/dist/structural/NavLink.d.ts +45 -0
- package/dist/structural/NavLink.d.ts.map +1 -0
- package/dist/structural/NavLink.js +37 -0
- package/dist/structural/NavLink.js.map +1 -0
- package/dist/structural/Show.d.ts +35 -0
- package/dist/structural/Show.d.ts.map +1 -0
- package/dist/structural/Show.js +34 -0
- package/dist/structural/Show.js.map +1 -0
- package/dist/structural/nav-link.scss +54 -0
- package/dist/styles/index.scss +58 -0
- package/package.json +64 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/// Slot media sizing — resolves the `data-media-fit` the renderer stamps from a
|
|
2
|
+
/// slot's PIDL `media` field. Geometry lives here (fluid, token-driven); the
|
|
3
|
+
/// Image's own `fit` prop controls pixel-fill within that geometry.
|
|
4
|
+
/// @group shared
|
|
5
|
+
|
|
6
|
+
@mixin _img-fill($object-fit) {
|
|
7
|
+
inline-size: 100%;
|
|
8
|
+
block-size: 100%;
|
|
9
|
+
object-fit: $object-fit;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
[data-media-fit='fill'] {
|
|
13
|
+
&.ui-image,
|
|
14
|
+
.ui-image {
|
|
15
|
+
inline-size: 100%;
|
|
16
|
+
block-size: 100%;
|
|
17
|
+
}
|
|
18
|
+
&.ui-image .ui-image-img,
|
|
19
|
+
.ui-image .ui-image-img {
|
|
20
|
+
@include _img-fill(cover);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
[data-media-fit='fit'] {
|
|
25
|
+
&.ui-image,
|
|
26
|
+
.ui-image {
|
|
27
|
+
inline-size: 100%;
|
|
28
|
+
block-size: 100%;
|
|
29
|
+
}
|
|
30
|
+
&.ui-image .ui-image-img,
|
|
31
|
+
.ui-image .ui-image-img {
|
|
32
|
+
@include _img-fill(contain);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
[data-media-fit='logo'] {
|
|
37
|
+
&.ui-image,
|
|
38
|
+
.ui-image {
|
|
39
|
+
block-size: var(--icon-size-lg);
|
|
40
|
+
inline-size: auto;
|
|
41
|
+
max-inline-size: 100%;
|
|
42
|
+
flex-shrink: 0;
|
|
43
|
+
}
|
|
44
|
+
&.ui-image .ui-image-img,
|
|
45
|
+
.ui-image .ui-image-img {
|
|
46
|
+
block-size: 100%;
|
|
47
|
+
inline-size: auto;
|
|
48
|
+
object-fit: contain;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
[data-media-fit='avatar'] {
|
|
53
|
+
&.ui-image,
|
|
54
|
+
.ui-image {
|
|
55
|
+
aspect-ratio: 1;
|
|
56
|
+
inline-size: 100%;
|
|
57
|
+
block-size: auto;
|
|
58
|
+
}
|
|
59
|
+
&.ui-image .ui-image-img,
|
|
60
|
+
.ui-image .ui-image-img {
|
|
61
|
+
@include _img-fill(cover);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/// Shared layout mixins for UI Kit components.
|
|
2
|
+
///
|
|
3
|
+
/// @group shared
|
|
4
|
+
|
|
5
|
+
@use 'tokens' as *;
|
|
6
|
+
|
|
7
|
+
// ============================================
|
|
8
|
+
// Fluid center
|
|
9
|
+
// ============================================
|
|
10
|
+
|
|
11
|
+
// Breakpoint at which two $min-column children + a typical gap no longer fit
|
|
12
|
+
// side-by-side. Below this the layout stacks and we switch to centered text.
|
|
13
|
+
// 2 × 18rem + ~4rem gap ≈ 40rem.
|
|
14
|
+
$_stacking-threshold: $min-column * 2 + 4rem;
|
|
15
|
+
|
|
16
|
+
/// Centre a flex child that may wrap to full width — **parent-side** mixin.
|
|
17
|
+
///
|
|
18
|
+
/// Apply this to the `flex-wrap: wrap` **container**, not the child.
|
|
19
|
+
///
|
|
20
|
+
/// **Problem:** In a two-column `flex-wrap: wrap` layout, each side is
|
|
21
|
+
/// start-aligned. When the container narrows and children wrap to their own
|
|
22
|
+
/// line, they stretch to full width — but their content sits flush-start,
|
|
23
|
+
/// leaving an awkward void on the inline-end side.
|
|
24
|
+
///
|
|
25
|
+
/// **Why not `margin-inline: auto` on the child?** In flexbox, `flex-grow`
|
|
26
|
+
/// consumes free space *before* auto margins can claim it. Even after
|
|
27
|
+
/// `max-inline-size` clamps the item, browsers do not redistribute the
|
|
28
|
+
/// clamped-off space to auto margins — they resolve to 0.
|
|
29
|
+
///
|
|
30
|
+
/// **Solution:** Set `justify-content: center` on the **parent** and make it
|
|
31
|
+
/// an inline-size container. `justify-content` positions items within whatever
|
|
32
|
+
/// free space remains *after* flex sizing + max clamping. When two items share
|
|
33
|
+
/// a line and flex-grow fills it, free space = 0 and centering has no visible
|
|
34
|
+
/// effect. When one item wraps to its own line and gets clamped by
|
|
35
|
+
/// `max-inline-size`, the remaining space is distributed equally → the item
|
|
36
|
+
/// centres. A `@container` query on the child switches `text-align` to
|
|
37
|
+
/// `center` only when the parent is narrow enough for stacking — layout
|
|
38
|
+
/// itself stays intrinsically fluid (no breakpoints for stacking).
|
|
39
|
+
///
|
|
40
|
+
/// Pair with `fluid-center-child($max)` on the item that should cap + center.
|
|
41
|
+
///
|
|
42
|
+
/// @access public
|
|
43
|
+
@mixin fluid-center-parent {
|
|
44
|
+
justify-content: center;
|
|
45
|
+
container-type: inline-size;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/// Cap a flex child's inline size so it centres when wrapped.
|
|
49
|
+
///
|
|
50
|
+
/// Apply to individual children inside a `fluid-center-parent` container.
|
|
51
|
+
/// The cap has no visual effect in two-column mode (the item is narrower
|
|
52
|
+
/// than `$max` anyway); when the child wraps to its own line, the cap
|
|
53
|
+
/// limits its width and the parent's `justify-content: center` centres it.
|
|
54
|
+
/// Text alignment switches to `center` only when the parent container is
|
|
55
|
+
/// narrow enough that children stack (below `$_stacking-threshold`).
|
|
56
|
+
///
|
|
57
|
+
/// @param {Length} $max [$measure-half] - Maximum inline size of the block
|
|
58
|
+
/// @access public
|
|
59
|
+
@mixin fluid-center-child($max: $measure-half) {
|
|
60
|
+
max-inline-size: $max;
|
|
61
|
+
|
|
62
|
+
// Default: left-aligned text (two-column mode)
|
|
63
|
+
text-align: start;
|
|
64
|
+
|
|
65
|
+
// When parent is narrow → children stacked → centre text
|
|
66
|
+
@container (max-width: #{$_stacking-threshold}) {
|
|
67
|
+
text-align: center;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/// Shared SCSS tokens for UI Kit components.
|
|
2
|
+
/// Single source of truth for color scheme lists, fluid layout constraints,
|
|
3
|
+
/// and content measures.
|
|
4
|
+
///
|
|
5
|
+
/// @group shared
|
|
6
|
+
|
|
7
|
+
$semantic-colors: (
|
|
8
|
+
primary,
|
|
9
|
+
secondary,
|
|
10
|
+
tertiary,
|
|
11
|
+
success,
|
|
12
|
+
info,
|
|
13
|
+
warning,
|
|
14
|
+
danger
|
|
15
|
+
) !default;
|
|
16
|
+
$control-sizes: (sm, md, lg) !default;
|
|
17
|
+
|
|
18
|
+
// -- Control font-size map ----------------------------------------------------
|
|
19
|
+
// Controls use one font-size step below the control size for compact text.
|
|
20
|
+
$control-font-sizes: (
|
|
21
|
+
sm: var(--font-size-xs),
|
|
22
|
+
md: var(--font-size-sm),
|
|
23
|
+
lg: var(--font-size-body),
|
|
24
|
+
) !default;
|
|
25
|
+
|
|
26
|
+
// -- Control icon-size map ----------------------------------------------------
|
|
27
|
+
// Icons inside controls scale with the control size.
|
|
28
|
+
$control-icon-sizes: (
|
|
29
|
+
sm: var(--icon-size-xs),
|
|
30
|
+
md: var(--icon-size-sm),
|
|
31
|
+
lg: var(--icon-size-md),
|
|
32
|
+
) !default;
|
|
33
|
+
|
|
34
|
+
// -- Control indicator size map -----------------------------------------------
|
|
35
|
+
// Visual indicators rendered inline with control labels (checkbox box, radio
|
|
36
|
+
// dot, toggle thumb). Derived from font-size tokens so indicators scale
|
|
37
|
+
// proportionally when the site builder theme changes typography — slightly
|
|
38
|
+
// smaller than --icon-size-* so the indicator reads as part of the text run.
|
|
39
|
+
$control-indicator-sizes: (
|
|
40
|
+
sm: calc(var(--font-size-xs) * 1.25),
|
|
41
|
+
md: calc(var(--font-size-sm) * 1.25),
|
|
42
|
+
lg: calc(var(--font-size-body) * 1.25),
|
|
43
|
+
) !default;
|
|
44
|
+
|
|
45
|
+
// -- Control inline-button size map -------------------------------------------
|
|
46
|
+
// Interactive buttons inside form controls (clear ×, password toggle) need
|
|
47
|
+
// a visible hit area slightly larger than the icon itself. The invisible 44×44
|
|
48
|
+
// touch target (in the form-inline-button mixin) handles WCAG 2.5.8 AAA.
|
|
49
|
+
$control-btn-sizes: (
|
|
50
|
+
sm: 1.25rem,
|
|
51
|
+
md: 1.5rem,
|
|
52
|
+
lg: 1.75rem,
|
|
53
|
+
) !default;
|
|
54
|
+
|
|
55
|
+
// -- Label letter-spacing -----------------------------------------------------
|
|
56
|
+
// Slight positive tracking for compact label text (badges, tags) at small sizes.
|
|
57
|
+
// Sits between the design-system "normal" (0) and "wide" (0.025em) scale steps;
|
|
58
|
+
// --body-letter-spacing (0.02em) is too wide for single-word badge labels.
|
|
59
|
+
$label-letter-spacing: 0.01em !default;
|
|
60
|
+
|
|
61
|
+
// -- Checked-glow shadow opacity ----------------------------------------------
|
|
62
|
+
// When a form control (checkbox, radio, toggle) is checked, the box-shadow is
|
|
63
|
+
// tinted with the accent color at this opacity. Kept as a SCSS variable so all
|
|
64
|
+
// form atoms share a single source of truth; the value is baked into the
|
|
65
|
+
// `color-mix()` call at build time.
|
|
66
|
+
$checked-glow-opacity: 45% !default;
|
|
67
|
+
|
|
68
|
+
// -- Spinner layout -----------------------------------------------------------
|
|
69
|
+
// Inset for the loading spinner ring inside square indicators (checkbox, radio).
|
|
70
|
+
// Toggle uses explicit sizing instead because its pill-shaped track would create
|
|
71
|
+
// an oval with a percentage inset.
|
|
72
|
+
$spinner-inset: 15% !default;
|
|
73
|
+
|
|
74
|
+
// Opacity for the spinner's reduced-motion fallback (full ring, dimmed).
|
|
75
|
+
// Shared across all form atoms that render a loading spinner.
|
|
76
|
+
$spinner-reduced-opacity: 0.5 !default;
|
|
77
|
+
|
|
78
|
+
// -- Ghost dot preview --------------------------------------------------------
|
|
79
|
+
// When hovering an unchecked radio, a faint ghost of the inner dot appears to
|
|
80
|
+
// preview what the checked state will look like. These tokens control its
|
|
81
|
+
// opacity and scale. Kept here so all radio-like controls share the same
|
|
82
|
+
// preview affordance values.
|
|
83
|
+
$ghost-dot-opacity: 0.25 !default;
|
|
84
|
+
$ghost-dot-scale: 0.6 !default;
|
|
85
|
+
|
|
86
|
+
// -- Focus ring offset --------------------------------------------------------
|
|
87
|
+
// Offset between the control indicator border and the focus ring. Shared across
|
|
88
|
+
// form atoms that render a custom focus ring via borders.ring().
|
|
89
|
+
$focus-ring-offset: 2px !default;
|
|
90
|
+
|
|
91
|
+
// -- Disabled desaturation ----------------------------------------------------
|
|
92
|
+
// Disabled form controls are dimmed (via --state-disabled-opacity) *and*
|
|
93
|
+
// desaturated so colors look properly deactivated, not just transparent.
|
|
94
|
+
$disabled-saturation: 0.4 !default;
|
|
95
|
+
|
|
96
|
+
// -- Form control placeholder opacity -----------------------------------------
|
|
97
|
+
// Placeholder text is subtler than input text — shared across Input, Select, etc.
|
|
98
|
+
$placeholder-opacity: 0.8 !default;
|
|
99
|
+
|
|
100
|
+
// -- Scrollbar thumb width ----------------------------------------------------
|
|
101
|
+
// Thin scrollbar for scrollable form controls (Textarea, Select listbox).
|
|
102
|
+
// Derived from spacing tokens so scrollbar sizing stays design-system driven.
|
|
103
|
+
$scrollbar-thumb-size: calc(var(--space-sm) * 0.75) !default;
|
|
104
|
+
|
|
105
|
+
// -- Fluid layout constraints -------------------------------------------------
|
|
106
|
+
// Children use `flex: 1 1 $min-column` so they wrap naturally when the
|
|
107
|
+
// container can no longer fit two columns — no @container breakpoints needed.
|
|
108
|
+
$min-column: 18rem !default; // Min inline-size for a content column (text, info, cards)
|
|
109
|
+
$min-column-wide: 24rem !default; // Min inline-size for wide content (forms with field rows)
|
|
110
|
+
|
|
111
|
+
// -- Content measure constraints ----------------------------------------------
|
|
112
|
+
$measure-content: 48rem !default; // Max inline-size for centered content blocks
|
|
113
|
+
$measure-text: 60ch !default; // Max inline-size for readable text lines
|
|
114
|
+
$measure-half: 24rem !default; // Max inline-size for a "half-column" block (see fluid-center mixin)
|
|
115
|
+
$measure-tooltip: 16rem !default; // Max inline-size for a tooltip / hint bubble
|
|
116
|
+
$card-media-max-block: 18rem !default; // Max block-size for card media so it never dominates a wide card
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.badge-constants",
|
|
4
|
+
"title": "Badge Shared Constants",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Badge-specific constants. Shared types (SemanticColor, CONTROL_SIZES)
|
|
10
|
+
* live in shared/types.ts.
|
|
11
|
+
*/
|
|
12
|
+
/** @codexApi {"parent":"pithy.ui-kit.badge-constants","name":"BADGE_VARIANTS","stability":"stable","signature":"readonly [\"filled\", \"outline\", \"subtle\"]"} */
|
|
13
|
+
export declare const BADGE_VARIANTS: readonly ["filled", "outline", "subtle"];
|
|
14
|
+
export type BadgeVariant = (typeof BADGE_VARIANTS)[number];
|
|
15
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/shared/badge.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF;;;GAGG;AAIH,oKAAoK;AACpK,eAAO,MAAM,cAAc,0CAA2C,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.badge-constants",
|
|
4
|
+
"title": "Badge Shared Constants",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Badge-specific constants. Shared types (SemanticColor, CONTROL_SIZES)
|
|
10
|
+
* live in shared/types.ts.
|
|
11
|
+
*/
|
|
12
|
+
// -- Variants -----------------------------------------------------------------
|
|
13
|
+
/** @codexApi {"parent":"pithy.ui-kit.badge-constants","name":"BADGE_VARIANTS","stability":"stable","signature":"readonly [\"filled\", \"outline\", \"subtle\"]"} */
|
|
14
|
+
export const BADGE_VARIANTS = ['filled', 'outline', 'subtle'];
|
|
15
|
+
//# sourceMappingURL=badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/shared/badge.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF;;;GAGG;AAEH,gFAAgF;AAEhF,oKAAoK;AACpK,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.button-constants",
|
|
4
|
+
"title": "Button Shared Constants",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Button-specific constants. Shared types (SemanticColor, CONTROL_SIZES)
|
|
10
|
+
* live in shared/types.ts; shared class maps (CONTROL_CLASS) live in
|
|
11
|
+
* shared/common.ts.
|
|
12
|
+
*/
|
|
13
|
+
/** @codexApi {"parent":"pithy.ui-kit.button-constants","name":"BUTTON_VARIANTS","stability":"stable","signature":"readonly [\"solid\", \"outline\", \"ghost\", \"link\"]"} */
|
|
14
|
+
export declare const BUTTON_VARIANTS: readonly ["solid", "outline", "ghost", "link"];
|
|
15
|
+
export type ButtonVariant = (typeof BUTTON_VARIANTS)[number];
|
|
16
|
+
/** @codexApi {"parent":"pithy.ui-kit.button-constants","name":"BUTTON_TAGS","stability":"stable","signature":"readonly [\"button\", \"a\"]"} */
|
|
17
|
+
export declare const BUTTON_TAGS: readonly ["button", "a"];
|
|
18
|
+
export type ButtonTag = (typeof BUTTON_TAGS)[number];
|
|
19
|
+
/** @codexApi {"parent":"pithy.ui-kit.button-constants","name":"BUTTON_TYPES","stability":"stable","signature":"readonly [\"button\", \"submit\", \"reset\"]"} */
|
|
20
|
+
export declare const BUTTON_TYPES: readonly ["button", "submit", "reset"];
|
|
21
|
+
export type ButtonType = (typeof BUTTON_TYPES)[number];
|
|
22
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/shared/button.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF;;;;GAIG;AAIH,8KAA8K;AAC9K,eAAO,MAAM,eAAe,gDAAiD,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAI7D,gJAAgJ;AAChJ,eAAO,MAAM,WAAW,0BAA2B,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAIrD,iKAAiK;AACjK,eAAO,MAAM,YAAY,wCAAyC,CAAC;AACnE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.button-constants",
|
|
4
|
+
"title": "Button Shared Constants",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Button-specific constants. Shared types (SemanticColor, CONTROL_SIZES)
|
|
10
|
+
* live in shared/types.ts; shared class maps (CONTROL_CLASS) live in
|
|
11
|
+
* shared/common.ts.
|
|
12
|
+
*/
|
|
13
|
+
// -- Variants -----------------------------------------------------------------
|
|
14
|
+
/** @codexApi {"parent":"pithy.ui-kit.button-constants","name":"BUTTON_VARIANTS","stability":"stable","signature":"readonly [\"solid\", \"outline\", \"ghost\", \"link\"]"} */
|
|
15
|
+
export const BUTTON_VARIANTS = ['solid', 'outline', 'ghost', 'link'];
|
|
16
|
+
// -- Element tags -------------------------------------------------------------
|
|
17
|
+
/** @codexApi {"parent":"pithy.ui-kit.button-constants","name":"BUTTON_TAGS","stability":"stable","signature":"readonly [\"button\", \"a\"]"} */
|
|
18
|
+
export const BUTTON_TAGS = ['button', 'a'];
|
|
19
|
+
// -- HTML button types --------------------------------------------------------
|
|
20
|
+
/** @codexApi {"parent":"pithy.ui-kit.button-constants","name":"BUTTON_TYPES","stability":"stable","signature":"readonly [\"button\", \"submit\", \"reset\"]"} */
|
|
21
|
+
export const BUTTON_TYPES = ['button', 'submit', 'reset'];
|
|
22
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/shared/button.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF;;;;GAIG;AAEH,gFAAgF;AAEhF,8KAA8K;AAC9K,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAG9E,gFAAgF;AAEhF,gJAAgJ;AAChJ,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAU,CAAC;AAGpD,gFAAgF;AAEhF,iKAAiK;AACjK,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.card-constants",
|
|
4
|
+
"title": "Card Shared Constants",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
import type { ControlSize } from '@pithyjs/design-system';
|
|
9
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_VARIANTS","stability":"stable","signature":"readonly [\"default\", \"outlined\", \"elevated\", \"subtle\", \"ghost\"]"} */
|
|
10
|
+
export declare const CARD_VARIANTS: readonly ["default", "outlined", "elevated", "subtle", "ghost"];
|
|
11
|
+
export type CardVariant = (typeof CARD_VARIANTS)[number];
|
|
12
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_PADDINGS","stability":"stable","signature":"readonly [\"none\", ...typeof CONTROL_SIZES]"} */
|
|
13
|
+
export declare const CARD_PADDINGS: readonly ["none", "sm", "md", "lg"];
|
|
14
|
+
export type CardPadding = 'none' | ControlSize;
|
|
15
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_RADII","stability":"stable","signature":"readonly [\"none\", ...typeof CONTROL_SIZES]"} */
|
|
16
|
+
export declare const CARD_RADII: readonly ["none", "sm", "md", "lg"];
|
|
17
|
+
export type CardRadius = 'none' | ControlSize;
|
|
18
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_MEDIA_ASPECTS","stability":"stable","signature":"readonly [\"1/1\", \"4/3\", \"16/9\", \"3/2\", \"21/9\"]"} */
|
|
19
|
+
export declare const CARD_MEDIA_ASPECTS: readonly ["1/1", "4/3", "16/9", "3/2", "21/9"];
|
|
20
|
+
export type CardMediaAspect = (typeof CARD_MEDIA_ASPECTS)[number];
|
|
21
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/shared/card.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AASF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,6LAA6L;AAC7L,eAAO,MAAM,aAAa,iEAMhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAIzD,gKAAgK;AAChK,eAAO,MAAM,aAAa,qCAAsC,CAAC;AACjE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAI/C,6JAA6J;AAC7J,eAAO,MAAM,UAAU,qCAAsC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;AAI9C,iLAAiL;AACjL,eAAO,MAAM,kBAAkB,gDAMrB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.card-constants",
|
|
4
|
+
"title": "Card Shared Constants",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Card-specific constants. Shared types (Orientation, ControlSize) live in
|
|
10
|
+
* shared/types.ts; padding/radius scales mirror CONTROL_SIZES with "none"
|
|
11
|
+
* prepended so the card's size vocabulary tracks the rest of the atoms.
|
|
12
|
+
*/
|
|
13
|
+
import { CONTROL_SIZES } from './types';
|
|
14
|
+
// -- Variants -----------------------------------------------------------------
|
|
15
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_VARIANTS","stability":"stable","signature":"readonly [\"default\", \"outlined\", \"elevated\", \"subtle\", \"ghost\"]"} */
|
|
16
|
+
export const CARD_VARIANTS = [
|
|
17
|
+
'default',
|
|
18
|
+
'outlined',
|
|
19
|
+
'elevated',
|
|
20
|
+
'subtle',
|
|
21
|
+
'ghost',
|
|
22
|
+
];
|
|
23
|
+
// -- Padding (mirrors CONTROL_SIZES + "none") ---------------------------------
|
|
24
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_PADDINGS","stability":"stable","signature":"readonly [\"none\", ...typeof CONTROL_SIZES]"} */
|
|
25
|
+
export const CARD_PADDINGS = ['none', ...CONTROL_SIZES];
|
|
26
|
+
// -- Radius (mirrors CONTROL_SIZES + "none") ----------------------------------
|
|
27
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_RADII","stability":"stable","signature":"readonly [\"none\", ...typeof CONTROL_SIZES]"} */
|
|
28
|
+
export const CARD_RADII = ['none', ...CONTROL_SIZES];
|
|
29
|
+
// -- Media aspect ratios ------------------------------------------------------
|
|
30
|
+
/** @codexApi {"parent":"pithy.ui-kit.card-constants","name":"CARD_MEDIA_ASPECTS","stability":"stable","signature":"readonly [\"1/1\", \"4/3\", \"16/9\", \"3/2\", \"21/9\"]"} */
|
|
31
|
+
export const CARD_MEDIA_ASPECTS = [
|
|
32
|
+
'1/1',
|
|
33
|
+
'4/3',
|
|
34
|
+
'16/9',
|
|
35
|
+
'3/2',
|
|
36
|
+
'21/9',
|
|
37
|
+
];
|
|
38
|
+
//# sourceMappingURL=card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/shared/card.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,gFAAgF;AAEhF,6LAA6L;AAC7L,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,UAAU;IACV,UAAU;IACV,QAAQ;IACR,OAAO;CACC,CAAC;AAGX,gFAAgF;AAEhF,gKAAgK;AAChK,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,GAAG,aAAa,CAAU,CAAC;AAGjE,gFAAgF;AAEhF,6JAA6J;AAC7J,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,GAAG,aAAa,CAAU,CAAC;AAG9D,gFAAgF;AAEhF,iLAAiL;AACjL,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;CACE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @codex { "id": "pithy.ui-kit.shared-checkbox", "title": "Shared Checkbox Constants", "category": "types" } */
|
|
2
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"generateCheckboxId","stability":"stable","signature":"() => string"} */
|
|
3
|
+
export declare function generateCheckboxId(): string;
|
|
4
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"resetCheckboxIdCounter","stability":"stable","signature":"() => void"} */
|
|
5
|
+
export declare function resetCheckboxIdCounter(): void;
|
|
6
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"generateCheckboxGroupId","stability":"stable","signature":"() => string"} */
|
|
7
|
+
export declare function generateCheckboxGroupId(): string;
|
|
8
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"resetCheckboxGroupIdCounter","stability":"stable","signature":"() => void"} */
|
|
9
|
+
export declare function resetCheckboxGroupIdCounter(): void;
|
|
10
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/shared/checkbox.ts"],"names":[],"mappings":"AAAA,iHAAiH;AAajH,sIAAsI;AACtI,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wIAAwI;AACxI,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAID,2IAA2I;AAC3I,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,6IAA6I;AAC7I,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** @codex { "id": "pithy.ui-kit.shared-checkbox", "title": "Shared Checkbox Constants", "category": "types" } */
|
|
2
|
+
/**
|
|
3
|
+
* Shared constants for the Checkbox / CheckboxGroup atoms.
|
|
4
|
+
* Single source of truth for ID generation.
|
|
5
|
+
*
|
|
6
|
+
* **SSR:** Counters are module-level state. Call `resetCheckboxIdCounter()` and
|
|
7
|
+
* `resetCheckboxGroupIdCounter()` between SSR requests to ensure deterministic
|
|
8
|
+
* IDs (same pattern as `resetSectionIdCounter()` in section templates).
|
|
9
|
+
*/
|
|
10
|
+
let checkboxIdCounter = 0;
|
|
11
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"generateCheckboxId","stability":"stable","signature":"() => string"} */
|
|
12
|
+
export function generateCheckboxId() {
|
|
13
|
+
return `ui-checkbox-${++checkboxIdCounter}`;
|
|
14
|
+
}
|
|
15
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"resetCheckboxIdCounter","stability":"stable","signature":"() => void"} */
|
|
16
|
+
export function resetCheckboxIdCounter() {
|
|
17
|
+
checkboxIdCounter = 0;
|
|
18
|
+
}
|
|
19
|
+
let checkboxGroupIdCounter = 0;
|
|
20
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"generateCheckboxGroupId","stability":"stable","signature":"() => string"} */
|
|
21
|
+
export function generateCheckboxGroupId() {
|
|
22
|
+
return `ui-checkbox-group-${++checkboxGroupIdCounter}`;
|
|
23
|
+
}
|
|
24
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-checkbox","name":"resetCheckboxGroupIdCounter","stability":"stable","signature":"() => void"} */
|
|
25
|
+
export function resetCheckboxGroupIdCounter() {
|
|
26
|
+
checkboxGroupIdCounter = 0;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/shared/checkbox.ts"],"names":[],"mappings":"AAAA,iHAAiH;AAEjH;;;;;;;GAOG;AAEH,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B,sIAAsI;AACtI,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,EAAE,iBAAiB,EAAE,CAAC;AAC9C,CAAC;AAED,wIAAwI;AACxI,MAAM,UAAU,sBAAsB;IACpC,iBAAiB,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAE/B,2IAA2I;AAC3I,MAAM,UAAU,uBAAuB;IACrC,OAAO,qBAAqB,EAAE,sBAAsB,EAAE,CAAC;AACzD,CAAC;AAED,6IAA6I;AAC7I,MAAM,UAAU,2BAA2B;IACzC,sBAAsB,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.clickable",
|
|
4
|
+
"title": "Clickable Reactive State Helpers",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
/** A prop that is either a static value or a `() => T` accessor (signal/computed). */
|
|
9
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"Reactive","stability":"stable","signature":"type Reactive<T> = T | (() => T)"} */
|
|
10
|
+
export type Reactive<T> = T | (() => T);
|
|
11
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"ReactiveText","stability":"stable","signature":"type ReactiveText = string | (() => string | undefined)"} */
|
|
12
|
+
export type ReactiveText = string | (() => string | undefined);
|
|
13
|
+
/** Read a `Reactive<T>` — invokes the accessor when given a function, otherwise returns the value. */
|
|
14
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"readReactive","stability":"stable","signature":"<T>(value: Reactive<T>) => T"} */
|
|
15
|
+
export declare function readReactive<T>(value: Reactive<T>): T;
|
|
16
|
+
/** True when at least one of the given values is a function (i.e. a reactive accessor). */
|
|
17
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"hasReactive","stability":"stable","signature":"(...values: ReadonlyArray<unknown>) => boolean"} */
|
|
18
|
+
export declare function hasReactive(...values: ReadonlyArray<unknown>): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Run `apply` either inside a tracked `effect()` (when any source is reactive)
|
|
21
|
+
* or once for the synchronous initial paint. Returns a disposer — a no-op when
|
|
22
|
+
* no effect was created — so callers can push it into their disposers list
|
|
23
|
+
* without branching.
|
|
24
|
+
*/
|
|
25
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"bindReactive","stability":"stable","signature":"(reactive: boolean, apply: () => void) => () => void"} */
|
|
26
|
+
export declare function bindReactive(reactive: boolean, apply: () => void): () => void;
|
|
27
|
+
/**
|
|
28
|
+
* Wrap a click handler so it short-circuits while `isBlocked()` is true.
|
|
29
|
+
* `preventDefault` + `stopImmediatePropagation` mirror the Button pattern —
|
|
30
|
+
* the element stays focusable for screen readers but the click is neutralised.
|
|
31
|
+
*/
|
|
32
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"guardClick","stability":"stable","signature":"(handler: ((e: MouseEvent) => void) | undefined, isBlocked: () => boolean) => (e: MouseEvent) => void"} */
|
|
33
|
+
export declare function guardClick(handler: ((e: MouseEvent) => void) | undefined, isBlocked: () => boolean): (e: MouseEvent) => void;
|
|
34
|
+
//# sourceMappingURL=clickable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clickable.d.ts","sourceRoot":"","sources":["../../src/shared/clickable.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAWF,sFAAsF;AACtF,0IAA0I;AAC1I,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAGxC,qKAAqK;AACrK,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;AAE/D,sGAAsG;AACtG,0IAA0I;AAC1I,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAErD;AAED,2FAA2F;AAC3F,2JAA2J;AAC3J,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAEtE;AAED;;;;;GAKG;AACH,kKAAkK;AAClK,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAI7E;AAED;;;;GAIG;AACH,iNAAiN;AACjN,wBAAgB,UAAU,CACxB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,EAC9C,SAAS,EAAE,MAAM,OAAO,GACvB,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CASzB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** @codex
|
|
2
|
+
{
|
|
3
|
+
"id": "pithy.ui-kit.clickable",
|
|
4
|
+
"title": "Clickable Reactive State Helpers",
|
|
5
|
+
"category": "types"
|
|
6
|
+
}
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Composable primitives for reactive boolean props (disabled / selected /
|
|
10
|
+
* loading) and click-handler guarding. Used by clickable atoms (Tile, …)
|
|
11
|
+
* to avoid duplicating the `typeof === "function"` ternary, the
|
|
12
|
+
* effect-vs-once branch, and the disabled-click guard.
|
|
13
|
+
*/
|
|
14
|
+
import { effect } from '@pithyjs/signals';
|
|
15
|
+
/** Read a `Reactive<T>` — invokes the accessor when given a function, otherwise returns the value. */
|
|
16
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"readReactive","stability":"stable","signature":"<T>(value: Reactive<T>) => T"} */
|
|
17
|
+
export function readReactive(value) {
|
|
18
|
+
return typeof value === 'function' ? value() : value;
|
|
19
|
+
}
|
|
20
|
+
/** True when at least one of the given values is a function (i.e. a reactive accessor). */
|
|
21
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"hasReactive","stability":"stable","signature":"(...values: ReadonlyArray<unknown>) => boolean"} */
|
|
22
|
+
export function hasReactive(...values) {
|
|
23
|
+
return values.some(v => typeof v === 'function');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Run `apply` either inside a tracked `effect()` (when any source is reactive)
|
|
27
|
+
* or once for the synchronous initial paint. Returns a disposer — a no-op when
|
|
28
|
+
* no effect was created — so callers can push it into their disposers list
|
|
29
|
+
* without branching.
|
|
30
|
+
*/
|
|
31
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"bindReactive","stability":"stable","signature":"(reactive: boolean, apply: () => void) => () => void"} */
|
|
32
|
+
export function bindReactive(reactive, apply) {
|
|
33
|
+
if (reactive)
|
|
34
|
+
return effect(apply);
|
|
35
|
+
apply();
|
|
36
|
+
return () => { };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Wrap a click handler so it short-circuits while `isBlocked()` is true.
|
|
40
|
+
* `preventDefault` + `stopImmediatePropagation` mirror the Button pattern —
|
|
41
|
+
* the element stays focusable for screen readers but the click is neutralised.
|
|
42
|
+
*/
|
|
43
|
+
/** @codexApi {"parent":"pithy.ui-kit.clickable","name":"guardClick","stability":"stable","signature":"(handler: ((e: MouseEvent) => void) | undefined, isBlocked: () => boolean) => (e: MouseEvent) => void"} */
|
|
44
|
+
export function guardClick(handler, isBlocked) {
|
|
45
|
+
return (e) => {
|
|
46
|
+
if (isBlocked()) {
|
|
47
|
+
e.preventDefault();
|
|
48
|
+
e.stopImmediatePropagation();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
handler?.(e);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=clickable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clickable.js","sourceRoot":"","sources":["../../src/shared/clickable.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAU1C,sGAAsG;AACtG,0IAA0I;AAC1I,MAAM,UAAU,YAAY,CAAI,KAAkB;IAChD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAiB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACpE,CAAC;AAED,2FAA2F;AAC3F,2JAA2J;AAC3J,MAAM,UAAU,WAAW,CAAC,GAAG,MAA8B;IAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,kKAAkK;AAClK,MAAM,UAAU,YAAY,CAAC,QAAiB,EAAE,KAAiB;IAC/D,IAAI,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,iNAAiN;AACjN,MAAM,UAAU,UAAU,CACxB,OAA8C,EAC9C,SAAwB;IAExB,OAAO,CAAC,CAAa,EAAE,EAAE;QACvB,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** @codex { "id": "pithy.ui-kit.shared-common", "title": "Shared Utility Class Maps", "category": "types" } */
|
|
2
|
+
/**
|
|
3
|
+
* Shared utility class maps for layout and control components.
|
|
4
|
+
*
|
|
5
|
+
* Full class strings are written out explicitly so the design-system JIT
|
|
6
|
+
* scanner detects them on startup — dynamic template literals like
|
|
7
|
+
* `u-gap-${gap}` produce incomplete fragments the scanner can't match.
|
|
8
|
+
*
|
|
9
|
+
* Derived from the design-system spacing tokens and layout SCSS values.
|
|
10
|
+
*/
|
|
11
|
+
import type { ControlSize, SpacingSize } from '@pithyjs/design-system';
|
|
12
|
+
export declare const GAP_CLASS: Record<SpacingSize, string>;
|
|
13
|
+
export declare const ROW_GAP_CLASS: Record<SpacingSize, string>;
|
|
14
|
+
export declare const COL_GAP_CLASS: Record<SpacingSize, string>;
|
|
15
|
+
declare const ALIGN_ITEMS: readonly ["start", "center", "end", "stretch", "baseline"];
|
|
16
|
+
export type AlignItems = (typeof ALIGN_ITEMS)[number];
|
|
17
|
+
export declare const ALIGN_CLASS: Record<AlignItems, string>;
|
|
18
|
+
declare const JUSTIFY_ITEMS: readonly ["start", "end", "center", "between", "around", "evenly"];
|
|
19
|
+
export type JustifyContent = (typeof JUSTIFY_ITEMS)[number];
|
|
20
|
+
export declare const JUSTIFY_CLASS: Record<JustifyContent, string>;
|
|
21
|
+
export declare const PY_CLASS: Record<SpacingSize, string>;
|
|
22
|
+
export declare const SECTION_TAGS: readonly ["section", "article", "aside", "header", "footer", "main"];
|
|
23
|
+
export type SectionTag = (typeof SECTION_TAGS)[number];
|
|
24
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-common","name":"CONTROL_CLASS","stability":"stable","signature":"Record<ControlSize, string>"} */
|
|
25
|
+
export declare const CONTROL_CLASS: Record<ControlSize, string>;
|
|
26
|
+
/** Matches a numeric CSS length value (e.g. "250px", "15rem", "50%"). */
|
|
27
|
+
export declare const CSS_LENGTH_PATTERN: RegExp;
|
|
28
|
+
/** @codexApi {"parent":"pithy.ui-kit.shared-common","name":"nextUid","stability":"internal","signature":"(prefix: string) => string"} */
|
|
29
|
+
export declare function nextUid(prefix: string): string;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/shared/common.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAE/G;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIvE,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOjD,CAAC;AAIF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOrD,CAAC;AAIF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOrD,CAAC;AAIF,QAAA,MAAM,WAAW,4DAA6D,CAAC;AAC/E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAMlD,CAAC;AAIF,QAAA,MAAM,aAAa,oEAOT,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAOxD,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOhD,CAAC;AAIF,eAAO,MAAM,YAAY,sEAOf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAIvD,8IAA8I;AAC9I,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAIrD,CAAC;AAIF,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,QAC0C,CAAC;AAM1E,yIAAyI;AACzI,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI9C"}
|