@kushagradhawan/kookie-ui 0.1.29 → 0.1.30
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/components.css +4083 -2224
- package/dist/cjs/components/_internal/base-button.d.ts +36 -0
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +3 -3
- package/dist/cjs/components/_internal/base-button.props.d.ts +61 -0
- package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.props.js +1 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +6 -1
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-menu.props.d.ts +8 -0
- package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-radio.props.d.ts +6 -1
- package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +3 -3
- package/dist/cjs/components/accordion.d.ts.map +1 -1
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +3 -3
- package/dist/cjs/components/accordion.props.d.ts +9 -0
- package/dist/cjs/components/accordion.props.d.ts.map +1 -1
- package/dist/cjs/components/accordion.props.js +1 -1
- package/dist/cjs/components/accordion.props.js.map +2 -2
- package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +3 -3
- package/dist/cjs/components/alert-dialog.props.d.ts +69 -2
- package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
- package/dist/cjs/components/alert-dialog.props.js +1 -1
- package/dist/cjs/components/alert-dialog.props.js.map +3 -3
- package/dist/cjs/components/avatar.d.ts.map +1 -1
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +3 -3
- package/dist/cjs/components/avatar.props.d.ts +9 -1
- package/dist/cjs/components/avatar.props.d.ts.map +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +3 -3
- package/dist/cjs/components/badge.d.ts +8 -1
- package/dist/cjs/components/badge.d.ts.map +1 -1
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +3 -3
- package/dist/cjs/components/badge.props.d.ts +14 -6
- package/dist/cjs/components/badge.props.d.ts.map +1 -1
- package/dist/cjs/components/badge.props.js +1 -1
- package/dist/cjs/components/badge.props.js.map +3 -3
- package/dist/cjs/components/blockquote.props.d.ts +1 -1
- package/dist/cjs/components/button.d.ts +53 -1
- package/dist/cjs/components/button.d.ts.map +1 -1
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +3 -3
- package/dist/cjs/components/button.props.d.ts +17 -0
- package/dist/cjs/components/button.props.d.ts.map +1 -1
- package/dist/cjs/components/button.props.js.map +2 -2
- package/dist/cjs/components/callout.d.ts +4 -0
- package/dist/cjs/components/callout.d.ts.map +1 -1
- package/dist/cjs/components/callout.js +1 -1
- package/dist/cjs/components/callout.js.map +3 -3
- package/dist/cjs/components/callout.props.d.ts +9 -1
- package/dist/cjs/components/callout.props.d.ts.map +1 -1
- package/dist/cjs/components/callout.props.js +1 -1
- package/dist/cjs/components/callout.props.js.map +3 -3
- package/dist/cjs/components/card.d.ts.map +1 -1
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +3 -3
- package/dist/cjs/components/card.props.d.ts +5 -0
- package/dist/cjs/components/card.props.d.ts.map +1 -1
- package/dist/cjs/components/card.props.js +1 -1
- package/dist/cjs/components/card.props.js.map +3 -3
- package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-cards.js +1 -1
- package/dist/cjs/components/checkbox-cards.js.map +3 -3
- package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
- package/dist/cjs/components/checkbox-cards.props.js +1 -1
- package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
- package/dist/cjs/components/checkbox-group.props.d.ts +6 -1
- package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox.d.ts.map +1 -1
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +3 -3
- package/dist/cjs/components/code.js.map +1 -1
- package/dist/cjs/components/code.props.d.ts +1 -1
- package/dist/cjs/components/context-menu.d.ts +1 -1
- package/dist/cjs/components/context-menu.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +3 -3
- package/dist/cjs/components/dialog.d.ts.map +1 -1
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +3 -3
- package/dist/cjs/components/dialog.props.d.ts +5 -0
- package/dist/cjs/components/dialog.props.d.ts.map +1 -1
- package/dist/cjs/components/dialog.props.js +1 -1
- package/dist/cjs/components/dialog.props.js.map +3 -3
- package/dist/cjs/components/dropdown-menu.d.ts +1 -1
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +3 -3
- package/dist/cjs/components/heading.props.d.ts +1 -1
- package/dist/cjs/components/icon-button.d.ts +79 -1
- package/dist/cjs/components/icon-button.d.ts.map +1 -1
- package/dist/cjs/components/icon-button.js +4 -1
- package/dist/cjs/components/icon-button.js.map +3 -3
- package/dist/cjs/components/image.d.ts +131 -12
- package/dist/cjs/components/image.d.ts.map +1 -1
- package/dist/cjs/components/image.js +1 -1
- package/dist/cjs/components/image.js.map +3 -3
- package/dist/cjs/components/image.props.d.ts +136 -21
- package/dist/cjs/components/image.props.d.ts.map +1 -1
- package/dist/cjs/components/image.props.js +1 -1
- package/dist/cjs/components/image.props.js.map +3 -3
- package/dist/cjs/components/link.props.d.ts +1 -1
- package/dist/cjs/components/progress.props.d.ts +2 -2
- package/dist/cjs/components/progress.props.js +1 -1
- package/dist/cjs/components/progress.props.js.map +2 -2
- package/dist/cjs/components/radio-cards.d.ts.map +1 -1
- package/dist/cjs/components/radio-cards.js +1 -1
- package/dist/cjs/components/radio-cards.js.map +3 -3
- package/dist/cjs/components/radio-cards.props.d.ts +2 -2
- package/dist/cjs/components/radio-cards.props.js +1 -1
- package/dist/cjs/components/radio-cards.props.js.map +2 -2
- package/dist/cjs/components/radio.d.ts.map +1 -1
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +3 -3
- package/dist/cjs/components/segmented-control.props.d.ts +3 -3
- package/dist/cjs/components/segmented-control.props.js +1 -1
- package/dist/cjs/components/segmented-control.props.js.map +2 -2
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +3 -3
- package/dist/cjs/components/select.props.d.ts +12 -0
- package/dist/cjs/components/select.props.d.ts.map +1 -1
- package/dist/cjs/components/select.props.js +1 -1
- package/dist/cjs/components/select.props.js.map +2 -2
- package/dist/cjs/components/sidebar.d.ts +5 -0
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +3 -3
- package/dist/cjs/components/slider.d.ts +5 -0
- package/dist/cjs/components/slider.d.ts.map +1 -1
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +3 -3
- package/dist/cjs/components/slider.props.d.ts +10 -2
- package/dist/cjs/components/slider.props.d.ts.map +1 -1
- package/dist/cjs/components/slider.props.js +1 -1
- package/dist/cjs/components/slider.props.js.map +2 -2
- package/dist/cjs/components/switch.d.ts.map +1 -1
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +3 -3
- package/dist/cjs/components/switch.props.d.ts +17 -4
- package/dist/cjs/components/switch.props.d.ts.map +1 -1
- package/dist/cjs/components/switch.props.js +1 -1
- package/dist/cjs/components/switch.props.js.map +3 -3
- package/dist/cjs/components/tab-nav.d.ts.map +1 -1
- package/dist/cjs/components/tab-nav.js +1 -1
- package/dist/cjs/components/tab-nav.js.map +3 -3
- package/dist/cjs/components/tabs.d.ts.map +1 -1
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +2 -2
- package/dist/cjs/components/text-area.d.ts.map +1 -1
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +3 -3
- package/dist/cjs/components/text-area.props.d.ts +29 -0
- package/dist/cjs/components/text-area.props.d.ts.map +1 -1
- package/dist/cjs/components/text-area.props.js +1 -1
- package/dist/cjs/components/text-area.props.js.map +3 -3
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +4 -4
- package/dist/cjs/components/text-field.js.map +3 -3
- package/dist/cjs/components/text-field.props.d.ts +29 -0
- package/dist/cjs/components/text-field.props.d.ts.map +1 -1
- package/dist/cjs/components/text-field.props.js +1 -1
- package/dist/cjs/components/text-field.props.js.map +3 -3
- package/dist/cjs/components/text.props.d.ts +1 -1
- package/dist/cjs/components/theme.d.ts +3 -0
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +3 -3
- package/dist/cjs/components/theme.props.d.ts +14 -0
- package/dist/cjs/components/theme.props.d.ts.map +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +3 -3
- package/dist/cjs/components/toggle-button.d.ts +52 -0
- package/dist/cjs/components/toggle-button.d.ts.map +1 -1
- package/dist/cjs/components/toggle-button.js +1 -1
- package/dist/cjs/components/toggle-button.js.map +3 -3
- package/dist/cjs/components/toggle-icon-button.d.ts +84 -2
- package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
- package/dist/cjs/components/toggle-icon-button.js +1 -1
- package/dist/cjs/components/toggle-icon-button.js.map +3 -3
- package/dist/cjs/hooks/index.d.ts +2 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -0
- package/dist/cjs/hooks/index.js +2 -0
- package/dist/cjs/hooks/index.js.map +7 -0
- package/dist/cjs/hooks/use-live-announcer.d.ts +6 -0
- package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -0
- package/dist/cjs/hooks/use-live-announcer.js +10 -0
- package/dist/cjs/hooks/use-live-announcer.js.map +7 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/props/weight.prop.d.ts +1 -1
- package/dist/cjs/props/weight.prop.js +1 -1
- package/dist/cjs/props/weight.prop.js.map +2 -2
- package/dist/esm/components/_internal/base-button.d.ts +36 -0
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.js.map +3 -3
- package/dist/esm/components/_internal/base-button.props.d.ts +61 -0
- package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-button.props.js.map +3 -3
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +6 -1
- package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js.map +3 -3
- package/dist/esm/components/_internal/base-menu.props.d.ts +8 -0
- package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
- package/dist/esm/components/_internal/base-radio.props.d.ts +6 -1
- package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.js.map +3 -3
- package/dist/esm/components/accordion.d.ts.map +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.js.map +3 -3
- package/dist/esm/components/accordion.props.d.ts +9 -0
- package/dist/esm/components/accordion.props.d.ts.map +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/accordion.props.js.map +2 -2
- package/dist/esm/components/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.js.map +3 -3
- package/dist/esm/components/alert-dialog.props.d.ts +69 -2
- package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
- package/dist/esm/components/alert-dialog.props.js +1 -1
- package/dist/esm/components/alert-dialog.props.js.map +3 -3
- package/dist/esm/components/avatar.d.ts.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.js.map +3 -3
- package/dist/esm/components/avatar.props.d.ts +9 -1
- package/dist/esm/components/avatar.props.d.ts.map +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/avatar.props.js.map +3 -3
- package/dist/esm/components/badge.d.ts +8 -1
- package/dist/esm/components/badge.d.ts.map +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.js.map +3 -3
- package/dist/esm/components/badge.props.d.ts +14 -6
- package/dist/esm/components/badge.props.d.ts.map +1 -1
- package/dist/esm/components/badge.props.js +1 -1
- package/dist/esm/components/badge.props.js.map +3 -3
- package/dist/esm/components/blockquote.props.d.ts +1 -1
- package/dist/esm/components/button.d.ts +53 -1
- package/dist/esm/components/button.d.ts.map +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.js.map +3 -3
- package/dist/esm/components/button.props.d.ts +17 -0
- package/dist/esm/components/button.props.d.ts.map +1 -1
- package/dist/esm/components/button.props.js.map +2 -2
- package/dist/esm/components/callout.d.ts +4 -0
- package/dist/esm/components/callout.d.ts.map +1 -1
- package/dist/esm/components/callout.js +1 -1
- package/dist/esm/components/callout.js.map +3 -3
- package/dist/esm/components/callout.props.d.ts +9 -1
- package/dist/esm/components/callout.props.d.ts.map +1 -1
- package/dist/esm/components/callout.props.js +1 -1
- package/dist/esm/components/callout.props.js.map +3 -3
- package/dist/esm/components/card.d.ts.map +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.js.map +3 -3
- package/dist/esm/components/card.props.d.ts +5 -0
- package/dist/esm/components/card.props.d.ts.map +1 -1
- package/dist/esm/components/card.props.js +1 -1
- package/dist/esm/components/card.props.js.map +3 -3
- package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
- package/dist/esm/components/checkbox-cards.js +1 -1
- package/dist/esm/components/checkbox-cards.js.map +3 -3
- package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
- package/dist/esm/components/checkbox-cards.props.js +1 -1
- package/dist/esm/components/checkbox-cards.props.js.map +2 -2
- package/dist/esm/components/checkbox-group.props.d.ts +6 -1
- package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox.d.ts.map +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.js.map +3 -3
- package/dist/esm/components/code.js.map +1 -1
- package/dist/esm/components/code.props.d.ts +1 -1
- package/dist/esm/components/context-menu.d.ts +1 -1
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.js.map +3 -3
- package/dist/esm/components/dialog.d.ts.map +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.js.map +3 -3
- package/dist/esm/components/dialog.props.d.ts +5 -0
- package/dist/esm/components/dialog.props.d.ts.map +1 -1
- package/dist/esm/components/dialog.props.js +1 -1
- package/dist/esm/components/dialog.props.js.map +3 -3
- package/dist/esm/components/dropdown-menu.d.ts +1 -1
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.js.map +3 -3
- package/dist/esm/components/heading.props.d.ts +1 -1
- package/dist/esm/components/icon-button.d.ts +79 -1
- package/dist/esm/components/icon-button.d.ts.map +1 -1
- package/dist/esm/components/icon-button.js +4 -1
- package/dist/esm/components/icon-button.js.map +3 -3
- package/dist/esm/components/image.d.ts +131 -12
- package/dist/esm/components/image.d.ts.map +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/image.js.map +3 -3
- package/dist/esm/components/image.props.d.ts +136 -21
- package/dist/esm/components/image.props.d.ts.map +1 -1
- package/dist/esm/components/image.props.js +1 -1
- package/dist/esm/components/image.props.js.map +3 -3
- package/dist/esm/components/link.props.d.ts +1 -1
- package/dist/esm/components/progress.props.d.ts +2 -2
- package/dist/esm/components/progress.props.js +1 -1
- package/dist/esm/components/progress.props.js.map +2 -2
- package/dist/esm/components/radio-cards.d.ts.map +1 -1
- package/dist/esm/components/radio-cards.js +1 -1
- package/dist/esm/components/radio-cards.js.map +3 -3
- package/dist/esm/components/radio-cards.props.d.ts +2 -2
- package/dist/esm/components/radio-cards.props.js +1 -1
- package/dist/esm/components/radio-cards.props.js.map +2 -2
- package/dist/esm/components/radio.d.ts.map +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.js.map +3 -3
- package/dist/esm/components/segmented-control.props.d.ts +3 -3
- package/dist/esm/components/segmented-control.props.js +1 -1
- package/dist/esm/components/segmented-control.props.js.map +2 -2
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.js.map +3 -3
- package/dist/esm/components/select.props.d.ts +12 -0
- package/dist/esm/components/select.props.d.ts.map +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/select.props.js.map +2 -2
- package/dist/esm/components/sidebar.d.ts +5 -0
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/sidebar.js.map +3 -3
- package/dist/esm/components/slider.d.ts +5 -0
- package/dist/esm/components/slider.d.ts.map +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.js.map +3 -3
- package/dist/esm/components/slider.props.d.ts +10 -2
- package/dist/esm/components/slider.props.d.ts.map +1 -1
- package/dist/esm/components/slider.props.js +1 -1
- package/dist/esm/components/slider.props.js.map +2 -2
- package/dist/esm/components/switch.d.ts.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.js.map +3 -3
- package/dist/esm/components/switch.props.d.ts +17 -4
- package/dist/esm/components/switch.props.d.ts.map +1 -1
- package/dist/esm/components/switch.props.js +1 -1
- package/dist/esm/components/switch.props.js.map +3 -3
- package/dist/esm/components/tab-nav.d.ts.map +1 -1
- package/dist/esm/components/tab-nav.js +1 -1
- package/dist/esm/components/tab-nav.js.map +3 -3
- package/dist/esm/components/tabs.d.ts.map +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.js.map +2 -2
- package/dist/esm/components/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.js.map +3 -3
- package/dist/esm/components/text-area.props.d.ts +29 -0
- package/dist/esm/components/text-area.props.d.ts.map +1 -1
- package/dist/esm/components/text-area.props.js +1 -1
- package/dist/esm/components/text-area.props.js.map +3 -3
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +4 -4
- package/dist/esm/components/text-field.js.map +3 -3
- package/dist/esm/components/text-field.props.d.ts +29 -0
- package/dist/esm/components/text-field.props.d.ts.map +1 -1
- package/dist/esm/components/text-field.props.js +1 -1
- package/dist/esm/components/text-field.props.js.map +3 -3
- package/dist/esm/components/text.props.d.ts +1 -1
- package/dist/esm/components/theme.d.ts +3 -0
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.js.map +3 -3
- package/dist/esm/components/theme.props.d.ts +14 -0
- package/dist/esm/components/theme.props.d.ts.map +1 -1
- package/dist/esm/components/theme.props.js +1 -1
- package/dist/esm/components/theme.props.js.map +3 -3
- package/dist/esm/components/toggle-button.d.ts +52 -0
- package/dist/esm/components/toggle-button.d.ts.map +1 -1
- package/dist/esm/components/toggle-button.js +1 -1
- package/dist/esm/components/toggle-button.js.map +3 -3
- package/dist/esm/components/toggle-icon-button.d.ts +84 -2
- package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
- package/dist/esm/components/toggle-icon-button.js +1 -1
- package/dist/esm/components/toggle-icon-button.js.map +3 -3
- package/dist/esm/hooks/index.d.ts +2 -0
- package/dist/esm/hooks/index.d.ts.map +1 -0
- package/dist/esm/hooks/index.js +2 -0
- package/dist/esm/hooks/index.js.map +7 -0
- package/dist/esm/hooks/use-live-announcer.d.ts +6 -0
- package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -0
- package/dist/esm/hooks/use-live-announcer.js +10 -0
- package/dist/esm/hooks/use-live-announcer.js.map +7 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/props/weight.prop.d.ts +1 -1
- package/dist/esm/props/weight.prop.js +1 -1
- package/dist/esm/props/weight.prop.js.map +2 -2
- package/layout/components.css +1 -0
- package/layout.css +1 -0
- package/package.json +2 -1
- package/src/components/_internal/base-button.css +483 -284
- package/src/components/_internal/base-button.props.ts +87 -0
- package/src/components/_internal/base-button.tsx +127 -10
- package/src/components/_internal/base-card.css +866 -83
- package/src/components/_internal/base-checkbox.css +252 -52
- package/src/components/_internal/base-checkbox.props.ts +4 -1
- package/src/components/_internal/base-dialog.css +39 -8
- package/src/components/_internal/base-menu.css +55 -32
- package/src/components/_internal/base-menu.props.ts +10 -0
- package/src/components/_internal/base-radio.css +222 -52
- package/src/components/_internal/base-radio.props.ts +4 -1
- package/src/components/_internal/base-tab-list.css +16 -0
- package/src/components/accordion.css +465 -62
- package/src/components/accordion.props.tsx +6 -0
- package/src/components/accordion.tsx +54 -7
- package/src/components/alert-dialog.props.tsx +22 -2
- package/src/components/alert-dialog.tsx +94 -3
- package/src/components/avatar.css +294 -152
- package/src/components/avatar.props.tsx +7 -1
- package/src/components/avatar.tsx +12 -2
- package/src/components/badge.css +160 -138
- package/src/components/badge.props.tsx +10 -3
- package/src/components/badge.tsx +71 -9
- package/src/components/button.css +88 -0
- package/src/components/button.props.tsx +17 -0
- package/src/components/button.tsx +107 -5
- package/src/components/callout.css +122 -35
- package/src/components/callout.props.tsx +7 -1
- package/src/components/callout.tsx +32 -9
- package/src/components/card.css +0 -597
- package/src/components/card.props.tsx +3 -0
- package/src/components/card.tsx +4 -2
- package/src/components/checkbox-cards.css +27 -104
- package/src/components/checkbox-cards.props.tsx +2 -2
- package/src/components/checkbox-cards.tsx +21 -3
- package/src/components/checkbox.tsx +2 -0
- package/src/components/code.css +1 -1
- package/src/components/code.tsx +1 -1
- package/src/components/container.css +1 -0
- package/src/components/context-menu.tsx +54 -12
- package/src/components/dialog.props.tsx +3 -0
- package/src/components/dialog.tsx +93 -3
- package/src/components/dropdown-menu.tsx +49 -12
- package/src/components/icon-button.css +73 -4
- package/src/components/icon-button.tsx +125 -19
- package/src/components/image.css +160 -91
- package/src/components/image.props.ts +152 -15
- package/src/components/image.tsx +290 -247
- package/src/components/kbd.css +23 -44
- package/src/components/progress.css +130 -149
- package/src/components/progress.props.tsx +2 -2
- package/src/components/radio-cards.css +23 -113
- package/src/components/radio-cards.props.tsx +2 -2
- package/src/components/radio-cards.tsx +45 -18
- package/src/components/radio.tsx +4 -3
- package/src/components/scroll-area.css +1 -1
- package/src/components/segmented-control.css +83 -64
- package/src/components/segmented-control.props.tsx +3 -3
- package/src/components/select.css +502 -224
- package/src/components/select.props.tsx +8 -0
- package/src/components/select.tsx +45 -2
- package/src/components/sidebar.css +17 -6
- package/src/components/sidebar.tsx +61 -5
- package/src/components/slider.css +228 -88
- package/src/components/slider.props.tsx +6 -2
- package/src/components/slider.tsx +201 -24
- package/src/components/spinner.css +12 -0
- package/src/components/switch.css +135 -216
- package/src/components/switch.props.tsx +16 -4
- package/src/components/switch.tsx +5 -3
- package/src/components/tab-nav.tsx +6 -3
- package/src/components/tabs.tsx +2 -0
- package/src/components/text-area.css +222 -140
- package/src/components/text-area.props.tsx +18 -1
- package/src/components/text-area.tsx +58 -7
- package/src/components/text-field.css +214 -131
- package/src/components/text-field.props.tsx +17 -0
- package/src/components/text-field.tsx +79 -28
- package/src/components/theme.props.tsx +12 -0
- package/src/components/theme.tsx +31 -1
- package/src/components/toggle-button.tsx +102 -3
- package/src/components/toggle-icon-button.tsx +150 -7
- package/src/components/tooltip.css +3 -3
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-live-announcer.ts +52 -0
- package/src/index.ts +1 -0
- package/src/props/weight.prop.ts +1 -1
- package/src/styles/fonts.css +27 -13
- package/src/styles/index.css +1 -1
- package/src/styles/tokens/base.css +2 -0
- package/src/styles/tokens/blur.css +32 -0
- package/src/styles/tokens/color.css +9 -9
- package/src/styles/tokens/constants.css +88 -140
- package/src/styles/tokens/index.css +2 -0
- package/src/styles/tokens/opacity.css +32 -0
- package/src/styles/tokens/radius.css +6 -10
- package/src/styles/tokens/shadow.css +25 -25
- package/src/styles/tokens/transition.css +49 -13
- package/src/styles/tokens/typography.css +7 -3
- package/src/styles/utilities/font-weight.css +16 -0
- package/styles.css +10689 -8708
- package/tokens/base.css +127 -49
- package/tokens.css +158 -114
- package/utilities.css +72 -0
|
@@ -5,26 +5,113 @@ import { radiusPropDef } from '../../props/radius.prop.js';
|
|
|
5
5
|
|
|
6
6
|
import type { PropDef } from '../../props/prop-def.js';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Available button sizes for responsive design
|
|
10
|
+
* Size 1: 24px - Compact for toolbars and dense interfaces
|
|
11
|
+
* Size 2: 32px - Standard for most interface contexts
|
|
12
|
+
* Size 3: 40px - Large for important actions and mobile touch targets
|
|
13
|
+
* Size 4: 48px - Extra large for hero sections and maximum impact
|
|
14
|
+
*/
|
|
8
15
|
const sizes = ['1', '2', '3', '4'] as const;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Available button variants for different visual contexts
|
|
19
|
+
* - classic: Premium, sophisticated appearance
|
|
20
|
+
* - solid: Primary actions that should be noticed first
|
|
21
|
+
* - soft: Content-heavy interfaces, natural integration
|
|
22
|
+
* - surface: Elevated appearance with subtle depth
|
|
23
|
+
* - outline: Secondary actions that support primary actions
|
|
24
|
+
* - ghost: Utility functions that don't compete for attention
|
|
25
|
+
*/
|
|
9
26
|
const variants = ['classic', 'solid', 'soft', 'surface', 'outline', 'ghost'] as const;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Available panel background options (deprecated)
|
|
30
|
+
* @deprecated Use `materials` instead
|
|
31
|
+
*/
|
|
10
32
|
const panelBackgrounds = ['solid', 'translucent'] as const;
|
|
11
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Available material options for visual rendering
|
|
36
|
+
* - solid: Opaque backgrounds and borders
|
|
37
|
+
* - translucent: Elevated effects with depth and visual separation
|
|
38
|
+
*/
|
|
39
|
+
const materials = ['solid', 'translucent'] as const;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Base button prop definitions that define the component's API
|
|
43
|
+
*
|
|
44
|
+
* These props are used by all button variants (Button, IconButton, etc.)
|
|
45
|
+
* to ensure consistent behavior and styling across the design system.
|
|
46
|
+
*
|
|
47
|
+
* Key features:
|
|
48
|
+
* - Responsive sizing with mobile-first approach
|
|
49
|
+
* - Six visual variants for different interface contexts
|
|
50
|
+
* - Comprehensive color system with semantic meanings
|
|
51
|
+
* - Loading states with automatic accessibility
|
|
52
|
+
* - Material system for visual depth and elevation
|
|
53
|
+
* - Polymorphic rendering support via asChild
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```tsx
|
|
57
|
+
* // Basic button with default props
|
|
58
|
+
* <BaseButton>Click me</BaseButton>
|
|
59
|
+
*
|
|
60
|
+
* // Button with custom size and variant
|
|
61
|
+
* <BaseButton size="3" variant="solid">Primary Action</BaseButton>
|
|
62
|
+
*
|
|
63
|
+
* // Button with loading state
|
|
64
|
+
* <BaseButton loading>Processing...</BaseButton>
|
|
65
|
+
*
|
|
66
|
+
* // Button with material and high contrast
|
|
67
|
+
* <BaseButton material="translucent" highContrast>Elevated Button</BaseButton>
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
12
70
|
const baseButtonPropDefs = {
|
|
13
71
|
...asChildPropDef,
|
|
72
|
+
/**
|
|
73
|
+
* Button size for responsive design and interface density
|
|
74
|
+
* Supports responsive objects: { initial: '1', sm: '2', md: '3', lg: '4' }
|
|
75
|
+
*/
|
|
14
76
|
size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },
|
|
77
|
+
/**
|
|
78
|
+
* Visual variant that determines the button's appearance and context
|
|
79
|
+
*/
|
|
15
80
|
variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'solid' },
|
|
16
81
|
...accentColorPropDef,
|
|
17
82
|
...highContrastPropDef,
|
|
18
83
|
...radiusPropDef,
|
|
84
|
+
/**
|
|
85
|
+
* Loading state that shows a spinner and disables interaction
|
|
86
|
+
* Automatically sets disabled=true and provides accessibility announcements
|
|
87
|
+
*/
|
|
19
88
|
loading: { type: 'boolean', className: 'rt-loading', default: false },
|
|
89
|
+
/**
|
|
90
|
+
* Full width mode that expands the button to fill its container
|
|
91
|
+
* Useful for mobile layouts and form submissions
|
|
92
|
+
*/
|
|
20
93
|
fullWidth: { type: 'boolean', className: 'rt-full-width', default: false },
|
|
94
|
+
/**
|
|
95
|
+
* Material type for visual rendering and depth effects
|
|
96
|
+
* Controls how the button renders its visual elements
|
|
97
|
+
*/
|
|
98
|
+
material: { type: 'enum', values: materials, default: undefined },
|
|
99
|
+
/**
|
|
100
|
+
* Panel background type (deprecated)
|
|
101
|
+
* @deprecated Use `material` prop instead. This prop will be removed in a future version.
|
|
102
|
+
*/
|
|
21
103
|
panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },
|
|
104
|
+
/**
|
|
105
|
+
* Flush mode that removes visual padding for seamless text integration
|
|
106
|
+
* Only effective with ghost variant
|
|
107
|
+
*/
|
|
22
108
|
flush: { type: 'boolean', default: false },
|
|
23
109
|
} satisfies {
|
|
24
110
|
size: PropDef<(typeof sizes)[number]>;
|
|
25
111
|
variant: PropDef<(typeof variants)[number]>;
|
|
26
112
|
loading: PropDef<boolean>;
|
|
27
113
|
fullWidth: PropDef<boolean>;
|
|
114
|
+
material: PropDef<(typeof materials)[number] | undefined>;
|
|
28
115
|
panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;
|
|
29
116
|
flush: PropDef<boolean>;
|
|
30
117
|
};
|
|
@@ -17,17 +17,54 @@ import type { GetPropDefTypes } from '../../props/prop-def.js';
|
|
|
17
17
|
type BaseButtonElement = React.ElementRef<'button'>;
|
|
18
18
|
type BaseButtonOwnProps = GetPropDefTypes<typeof baseButtonPropDefs>;
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Polymorphic BaseButton props that support rendering as different HTML elements
|
|
22
|
+
* Uses the proper ComponentPropsWithout pattern for type safety
|
|
23
|
+
* @template C - The element type to render as (defaults to 'button')
|
|
24
|
+
*/
|
|
21
25
|
type PolymorphicBaseButtonProps<C extends React.ElementType = 'button'> = {
|
|
26
|
+
/** Element type to render as (e.g., 'a', 'span', etc.) */
|
|
22
27
|
as?: C;
|
|
23
28
|
} & BaseButtonOwnProps &
|
|
24
29
|
MarginProps &
|
|
25
30
|
ComponentPropsWithout<C, RemovedProps | keyof BaseButtonOwnProps | keyof MarginProps | 'as'>;
|
|
26
31
|
|
|
32
|
+
/**
|
|
33
|
+
* BaseButton props interface that combines all available props
|
|
34
|
+
*/
|
|
27
35
|
interface BaseButtonProps extends PolymorphicBaseButtonProps {}
|
|
28
36
|
|
|
37
|
+
/**
|
|
38
|
+
* BaseButton component that provides the core button functionality
|
|
39
|
+
*
|
|
40
|
+
* This is the foundational button component that handles all the complex logic
|
|
41
|
+
* including loading states, accessibility, performance optimizations, and
|
|
42
|
+
* polymorphic rendering. It's used by Button, IconButton, and other button
|
|
43
|
+
* variants to ensure consistent behavior across the design system.
|
|
44
|
+
*
|
|
45
|
+
* Key features:
|
|
46
|
+
* - Loading state with spinner and accessibility announcements
|
|
47
|
+
* - Performance optimizations for backdrop-filter effects
|
|
48
|
+
* - Comprehensive accessibility support
|
|
49
|
+
* - Polymorphic rendering support
|
|
50
|
+
* - Material/panel background handling
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* // Basic usage
|
|
55
|
+
* <BaseButton>Click me</BaseButton>
|
|
56
|
+
*
|
|
57
|
+
* // With loading state
|
|
58
|
+
* <BaseButton loading>Processing...</BaseButton>
|
|
59
|
+
*
|
|
60
|
+
* // Polymorphic rendering
|
|
61
|
+
* <BaseButton as="a" href="/link">Link Button</BaseButton>
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
29
64
|
const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props, forwardedRef) => {
|
|
30
65
|
const { size = baseButtonPropDefs.size.default } = props;
|
|
66
|
+
|
|
67
|
+
// Extract button-specific props from the combined props object
|
|
31
68
|
const {
|
|
32
69
|
className,
|
|
33
70
|
children,
|
|
@@ -35,16 +72,72 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
35
72
|
as,
|
|
36
73
|
color,
|
|
37
74
|
radius,
|
|
75
|
+
material,
|
|
38
76
|
panelBackground,
|
|
39
77
|
flush,
|
|
40
|
-
disabled = props.loading,
|
|
78
|
+
disabled = props.loading, // Loading state automatically disables the button
|
|
41
79
|
...baseButtonProps
|
|
42
80
|
} = extractProps(props, baseButtonPropDefs, marginPropDefs);
|
|
43
81
|
|
|
44
|
-
//
|
|
82
|
+
// Show deprecation warning for panelBackground when used
|
|
83
|
+
// This helps developers migrate to the new material prop
|
|
84
|
+
React.useEffect(() => {
|
|
85
|
+
if (props.panelBackground !== undefined) {
|
|
86
|
+
console.warn(
|
|
87
|
+
'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}, [props.panelBackground]);
|
|
91
|
+
|
|
92
|
+
// Material takes precedence over panelBackground for backward compatibility
|
|
93
|
+
const effectiveMaterial = material ?? panelBackground;
|
|
94
|
+
|
|
95
|
+
// Will-change cleanup for backdrop-filter performance optimization
|
|
96
|
+
// This prevents layout thrashing when using translucent materials
|
|
97
|
+
const buttonRef = React.useRef<HTMLElement>(null);
|
|
98
|
+
|
|
99
|
+
React.useEffect(() => {
|
|
100
|
+
const button = buttonRef.current;
|
|
101
|
+
if (!button) return;
|
|
102
|
+
|
|
103
|
+
const hasTranslucentMaterial = effectiveMaterial === 'translucent';
|
|
104
|
+
|
|
105
|
+
if (hasTranslucentMaterial) {
|
|
106
|
+
// Add will-change when material is translucent to optimize rendering
|
|
107
|
+
button.style.setProperty('will-change', 'backdrop-filter');
|
|
108
|
+
|
|
109
|
+
// Clean up will-change after transition completes to prevent memory leaks
|
|
110
|
+
const cleanup = () => {
|
|
111
|
+
const transitionDuration =
|
|
112
|
+
getComputedStyle(button).getPropertyValue('--duration-2') || '75ms';
|
|
113
|
+
const duration = parseInt(transitionDuration) || 75;
|
|
114
|
+
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
if (button && effectiveMaterial !== 'translucent') {
|
|
117
|
+
button.style.setProperty('will-change', 'auto');
|
|
118
|
+
}
|
|
119
|
+
}, duration);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
// Listen for material changes to clean up will-change property
|
|
123
|
+
const observer = new MutationObserver(cleanup);
|
|
124
|
+
observer.observe(button, { attributes: true, attributeFilter: ['data-material'] });
|
|
125
|
+
|
|
126
|
+
return () => {
|
|
127
|
+
observer.disconnect();
|
|
128
|
+
button.style.setProperty('will-change', 'auto');
|
|
129
|
+
};
|
|
130
|
+
} else {
|
|
131
|
+
// Remove will-change when material is not translucent
|
|
132
|
+
button.style.setProperty('will-change', 'auto');
|
|
133
|
+
}
|
|
134
|
+
}, [effectiveMaterial]);
|
|
135
|
+
|
|
136
|
+
// asChild takes precedence over as prop for Radix Slot integration
|
|
45
137
|
const Comp = asChild ? Slot.Root : as || 'button';
|
|
46
138
|
|
|
47
139
|
// Only pass disabled for elements that support it
|
|
140
|
+
// This prevents invalid HTML attributes on unsupported elements
|
|
48
141
|
const shouldPassDisabled =
|
|
49
142
|
asChild || !as || ['button', 'input', 'textarea', 'select'].includes(as);
|
|
50
143
|
|
|
@@ -52,14 +145,28 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
52
145
|
const loadingId = React.useId();
|
|
53
146
|
const describedById = props.loading ? `${loadingId}-loading` : undefined;
|
|
54
147
|
|
|
148
|
+
// Extract button text for accessibility announcements
|
|
149
|
+
const buttonText = React.useMemo(() => {
|
|
150
|
+
if (typeof children === 'string') return children;
|
|
151
|
+
if (React.isValidElement(children) && typeof (children.props as any)?.children === 'string') {
|
|
152
|
+
return (children.props as any).children;
|
|
153
|
+
}
|
|
154
|
+
return 'button';
|
|
155
|
+
}, [children]);
|
|
156
|
+
|
|
55
157
|
// Enhanced accessibility props for loading state
|
|
56
|
-
|
|
57
|
-
|
|
158
|
+
// These ensure screen readers announce the loading state properly
|
|
159
|
+
const accessibilityProps = React.useMemo(() => {
|
|
160
|
+
if (props.loading) {
|
|
161
|
+
return {
|
|
58
162
|
'aria-busy': true,
|
|
59
163
|
'aria-disabled': true,
|
|
60
164
|
'aria-describedby': describedById,
|
|
61
|
-
|
|
62
|
-
|
|
165
|
+
'aria-label': `${buttonText} (loading)`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return {};
|
|
169
|
+
}, [props.loading, describedById, buttonText]);
|
|
63
170
|
|
|
64
171
|
return (
|
|
65
172
|
<Comp
|
|
@@ -67,11 +174,20 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
67
174
|
data-disabled={disabled || undefined}
|
|
68
175
|
data-accent-color={color}
|
|
69
176
|
data-radius={radius}
|
|
70
|
-
data-
|
|
177
|
+
data-material={effectiveMaterial}
|
|
178
|
+
data-panel-background={effectiveMaterial}
|
|
71
179
|
data-flush={flush ? 'true' : undefined}
|
|
72
180
|
{...baseButtonProps}
|
|
73
181
|
{...accessibilityProps}
|
|
74
|
-
ref={
|
|
182
|
+
ref={(node) => {
|
|
183
|
+
// Handle both forwarded ref and internal ref for performance optimization
|
|
184
|
+
if (typeof forwardedRef === 'function') {
|
|
185
|
+
forwardedRef(node);
|
|
186
|
+
} else if (forwardedRef) {
|
|
187
|
+
forwardedRef.current = node;
|
|
188
|
+
}
|
|
189
|
+
buttonRef.current = node;
|
|
190
|
+
}}
|
|
75
191
|
className={classNames('rt-reset', 'rt-BaseButton', className)}
|
|
76
192
|
{...(shouldPassDisabled && { disabled })}
|
|
77
193
|
>
|
|
@@ -90,10 +206,11 @@ const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((props,
|
|
|
90
206
|
|
|
91
207
|
{/* Enhanced accessibility for loading state */}
|
|
92
208
|
<VisuallyHidden>
|
|
93
|
-
<span id={describedById}>
|
|
209
|
+
<span id={describedById}>{buttonText} is loading, please wait...</span>
|
|
94
210
|
{children}
|
|
95
211
|
</VisuallyHidden>
|
|
96
212
|
|
|
213
|
+
{/* Centered spinner overlay during loading state */}
|
|
97
214
|
<Flex asChild align="center" justify="center" position="absolute" inset="0">
|
|
98
215
|
<span>
|
|
99
216
|
<Spinner
|