sherick-ui 2.6.0 → 2.7.1
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/README.md +3 -3
- package/dist/cjs/components/Accordion.cjs +3 -2
- package/dist/cjs/components/Accordion.cjs.map +1 -1
- package/dist/cjs/components/Alert.cjs +10 -9
- package/dist/cjs/components/Alert.cjs.map +1 -1
- package/dist/cjs/components/Breadcrumb.cjs +3 -2
- package/dist/cjs/components/Breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/Calendar.cjs +3 -2
- package/dist/cjs/components/Calendar.cjs.map +1 -1
- package/dist/cjs/components/Checkbox.cjs +3 -2
- package/dist/cjs/components/Checkbox.cjs.map +1 -1
- package/dist/cjs/components/CheckboxGroup.cjs +3 -2
- package/dist/cjs/components/CheckboxGroup.cjs.map +1 -1
- package/dist/cjs/components/Chip.cjs +3 -2
- package/dist/cjs/components/Chip.cjs.map +1 -1
- package/dist/cjs/components/Collapsible.cjs +3 -2
- package/dist/cjs/components/Collapsible.cjs.map +1 -1
- package/dist/cjs/components/Combobox.cjs +13 -10
- package/dist/cjs/components/Combobox.cjs.map +1 -1
- package/dist/cjs/components/Command.cjs +3 -2
- package/dist/cjs/components/Command.cjs.map +1 -1
- package/dist/cjs/components/DateTimePicker.cjs +3 -2
- package/dist/cjs/components/DateTimePicker.cjs.map +1 -1
- package/dist/cjs/components/DialogSurface.cjs +3 -2
- package/dist/cjs/components/DialogSurface.cjs.map +1 -1
- package/dist/cjs/components/FileUpload.cjs +6 -5
- package/dist/cjs/components/FileUpload.cjs.map +1 -1
- package/dist/cjs/components/NumberField.cjs +5 -4
- package/dist/cjs/components/NumberField.cjs.map +1 -1
- package/dist/cjs/components/Pagination.cjs +3 -2
- package/dist/cjs/components/Pagination.cjs.map +1 -1
- package/dist/cjs/components/Search.cjs +4 -3
- package/dist/cjs/components/Search.cjs.map +1 -1
- package/dist/cjs/components/Select.cjs +4 -3
- package/dist/cjs/components/Select.cjs.map +1 -1
- package/dist/cjs/components/Spinner.cjs +3 -2
- package/dist/cjs/components/Spinner.cjs.map +1 -1
- package/dist/cjs/components/Stepper.cjs +3 -2
- package/dist/cjs/components/Stepper.cjs.map +1 -1
- package/dist/cjs/components/Tabs.cjs +1 -1
- package/dist/cjs/components/Tabs.cjs.map +1 -1
- package/dist/cjs/components/Toast.cjs +8 -7
- package/dist/cjs/components/Toast.cjs.map +1 -1
- package/dist/cjs/components/ToggleGroup.cjs +1 -1
- package/dist/cjs/components/ToggleGroup.cjs.map +1 -1
- package/dist/cjs/components/TreeView.cjs +3 -2
- package/dist/cjs/components/TreeView.cjs.map +1 -1
- package/dist/cjs/components/date-field.cjs +6 -5
- package/dist/cjs/components/date-field.cjs.map +1 -1
- package/dist/cjs/components/ui.common.cjs +91 -54
- package/dist/cjs/components/ui.common.cjs.map +1 -1
- package/dist/cjs/dev.cjs +1 -0
- package/dist/cjs/dev.cjs.map +1 -1
- package/dist/esm/components/Accordion.js +3 -2
- package/dist/esm/components/Accordion.js.map +1 -1
- package/dist/esm/components/Alert.js +10 -9
- package/dist/esm/components/Alert.js.map +1 -1
- package/dist/esm/components/Breadcrumb.js +3 -2
- package/dist/esm/components/Breadcrumb.js.map +1 -1
- package/dist/esm/components/Calendar.js +3 -2
- package/dist/esm/components/Calendar.js.map +1 -1
- package/dist/esm/components/Checkbox.js +3 -2
- package/dist/esm/components/Checkbox.js.map +1 -1
- package/dist/esm/components/CheckboxGroup.js +3 -2
- package/dist/esm/components/CheckboxGroup.js.map +1 -1
- package/dist/esm/components/Chip.js +3 -2
- package/dist/esm/components/Chip.js.map +1 -1
- package/dist/esm/components/CodeBlock.js +3 -2
- package/dist/esm/components/CodeBlock.js.map +1 -1
- package/dist/esm/components/Collapsible.js +3 -2
- package/dist/esm/components/Collapsible.js.map +1 -1
- package/dist/esm/components/Combobox.js +14 -11
- package/dist/esm/components/Combobox.js.map +1 -1
- package/dist/esm/components/Command.js +3 -2
- package/dist/esm/components/Command.js.map +1 -1
- package/dist/esm/components/DateTimePicker.js +3 -2
- package/dist/esm/components/DateTimePicker.js.map +1 -1
- package/dist/esm/components/DialogSurface.js +3 -2
- package/dist/esm/components/DialogSurface.js.map +1 -1
- package/dist/esm/components/FileUpload.js +6 -5
- package/dist/esm/components/FileUpload.js.map +1 -1
- package/dist/esm/components/NumberField.js +5 -4
- package/dist/esm/components/NumberField.js.map +1 -1
- package/dist/esm/components/Pagination.js +3 -2
- package/dist/esm/components/Pagination.js.map +1 -1
- package/dist/esm/components/Search.js +4 -3
- package/dist/esm/components/Search.js.map +1 -1
- package/dist/esm/components/Select.js +4 -3
- package/dist/esm/components/Select.js.map +1 -1
- package/dist/esm/components/Spinner.js +3 -2
- package/dist/esm/components/Spinner.js.map +1 -1
- package/dist/esm/components/Stepper.js +3 -2
- package/dist/esm/components/Stepper.js.map +1 -1
- package/dist/esm/components/Tabs.js +2 -2
- package/dist/esm/components/Tabs.js.map +1 -1
- package/dist/esm/components/Toast.js +8 -7
- package/dist/esm/components/Toast.js.map +1 -1
- package/dist/esm/components/ToggleGroup.js +2 -2
- package/dist/esm/components/ToggleGroup.js.map +1 -1
- package/dist/esm/components/TreeView.js +3 -2
- package/dist/esm/components/TreeView.js.map +1 -1
- package/dist/esm/components/date-field.js +6 -5
- package/dist/esm/components/date-field.js.map +1 -1
- package/dist/esm/components/ui.common.js +91 -55
- package/dist/esm/components/ui.common.js.map +1 -1
- package/dist/esm/dev.js +1 -1
- package/dist/styles.css +240 -205
- package/dist/theme.css +160 -157
- package/dist/types/dev.d.cts +29 -25
- package/dist/types/dev.d.ts +29 -25
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Sherick UI
|
|
2
2
|
|
|
3
|
-
A React 18/19 component library
|
|
4
|
-
and restrained motion. `2.0.0` established the stable line; `1.x` is frozen.
|
|
5
|
-
This package source is `2.
|
|
3
|
+
A React 18/19 component library in graphite and iris, with deliberate
|
|
4
|
+
shape contrast and restrained motion. `2.0.0` established the stable line; `1.x` is frozen.
|
|
5
|
+
This package source is `2.7.0`; verified `main` stages new versions via npm trusted
|
|
6
6
|
publishing for maintainer approval. Check the installed version for availability.
|
|
7
7
|
|
|
8
8
|
## Install and style
|
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
var accordion = require('@base-ui/react/accordion');
|
|
8
8
|
var React = require('react');
|
|
9
|
-
var
|
|
9
|
+
var react = require('@hugeicons/react');
|
|
10
|
+
var coreFreeIcons = require('@hugeicons/core-free-icons');
|
|
10
11
|
var utils = require('../libs/utils.cjs');
|
|
11
12
|
var Divider = require('./Divider.cjs');
|
|
12
13
|
var ui_common = require('./ui.common.cjs');
|
|
@@ -26,7 +27,7 @@ const AccordionTrigger = ({ children, className }) => {
|
|
|
26
27
|
/* The heading is the item's own, so a consumer never writes the accessible accordion
|
|
27
28
|
structure by hand; `render` replaces the element rather than adding a wrapper, so the
|
|
28
29
|
level follows the document instead of being fixed at Base's default. */
|
|
29
|
-
jsxRuntime.jsx(accordion.Accordion.Header, { render: headingRender(headingLevel), className: utils.cn("m-0"), children: jsxRuntime.jsxs(accordion.Accordion.Trigger, { className: utils.cn(ui_common.disclosure.trigger, className), children: [jsxRuntime.jsx("span", { className: utils.cn("min-w-0 flex-1"), children: children }), jsxRuntime.jsx(
|
|
30
|
+
jsxRuntime.jsx(accordion.Accordion.Header, { render: headingRender(headingLevel), className: utils.cn("m-0"), children: jsxRuntime.jsxs(accordion.Accordion.Trigger, { className: utils.cn(ui_common.disclosure.trigger, className), children: [jsxRuntime.jsx("span", { className: utils.cn("min-w-0 flex-1"), children: children }), jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.ArrowDown01Icon, "aria-hidden": "true", className: utils.cn("size-4 shrink-0", ui_motion.motionOrient, "group-data-[panel-open]:rotate-180") })] }) }));
|
|
30
31
|
};
|
|
31
32
|
/* The measured region. Base publishes the panel's open height as its own variable, and the
|
|
32
33
|
disclosure recipe reads `--sui-disclose-height`, so the panel maps the two rather than the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.cjs","sources":["../../../src/components/Accordion.tsx"],"sourcesContent":["\"use client\";\n\nimport { Accordion as BaseAccordion } from \"@base-ui/react/accordion\";\nimport React, { createContext, useContext, type ReactNode } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/libs/utils\";\nimport Divider from \"./Divider\";\nimport { disclosure } from \"./ui.common\";\nimport { motionFeedback, motionOrient } from \"./ui.motion\";\n\n/** A heading level for the groups of an `Accordion`. Base renders a heading around every panel\n * trigger, because that is what makes the group navigable as a set of sections; which level it\n * is depends on where the accordion sits in the document. */\nexport type AccordionHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface AccordionProps {\n children: ReactNode;\n /**\n * Whether more than one panel can be open at once. A group that answers a question is single:\n * opening one section closes the one before it.\n */\n multiple?: boolean;\n /** The item(s) that are expanded, when the application owns the state. */\n value?: BaseAccordion.Root.Props[\"value\"];\n /** The item(s) that start expanded, for an accordion that owns its own state. */\n defaultValue?: BaseAccordion.Root.Props[\"defaultValue\"];\n /** Base's own value-change callback, event details included. */\n onValueChange?: BaseAccordion.Root.Props[\"onValueChange\"];\n /** Whether the whole group is inert. */\n disabled?: boolean;\n /** The heading level the group labels its sections with. */\n headingLevel?: AccordionHeadingLevel;\n /** Adds to the group's own column. The rows and panels style themselves. */\n className?: string;\n}\n\nexport interface AccordionItemProps {\n children: ReactNode;\n /**\n * Identifies the item. A controlled accordion expands its items by value, so an item without\n * one can still be opened but not addressed from outside.\n */\n value?: BaseAccordion.Item.Props[\"value\"];\n /** Whether this item alone is inert. */\n disabled?: boolean;\n /** Adds to the item's own column. */\n className?: string;\n}\n\nexport interface AccordionTriggerProps {\n children: ReactNode;\n /** Adds to the row. The row's shape, tone and states are the disclosure recipe's. */\n className?: string;\n}\n\nexport interface AccordionPanelProps {\n children: ReactNode;\n /** Adds to the measured region. The region's height and clipping are the recipe's. */\n className?: string;\n}\n\n/* One section of an `Accordion`. The trigger and the panel it opens are `Accordion.Trigger` and\n `Accordion.Panel`; the heading that labels them is the trigger's own, so a consumer never has\n to build an accessible accordion structure by hand. */\nconst AccordionItem = ({ children, className, ...props }: AccordionItemProps) => (\n <BaseAccordion.Item {...props} className={cn(\"min-w-0\", className)}>\n {children}\n </BaseAccordion.Item>\n);\n\ntype AccordionComponent = ((props: AccordionProps) => React.JSX.Element) & {\n Item: typeof AccordionItem;\n Trigger: typeof AccordionTrigger;\n Panel: typeof AccordionPanel;\n};\n\nconst HeadingLevelContext = createContext<AccordionHeadingLevel>(3);\n\n/* The heading element Base wraps each trigger in. `render` replaces the element rather than\n adding one, so the level changes without a second wrapper. */\nconst headingRender = (level: AccordionHeadingLevel) => React.createElement(`h${level}`);\n\nconst AccordionTrigger = ({ children, className }: AccordionTriggerProps) => {\n const headingLevel = useContext(HeadingLevelContext);\n\n return (\n /* The heading is the item's own, so a consumer never writes the accessible accordion\n structure by hand; `render` replaces the element rather than adding a wrapper, so the\n level follows the document instead of being fixed at Base's default. */\n <BaseAccordion.Header render={headingRender(headingLevel)} className={cn(\"m-0\")}>\n <BaseAccordion.Trigger className={cn(disclosure.trigger, className)}>\n <span className={cn(\"min-w-0 flex-1\")}>{children}</span>\n {/* The affordance turns in place, so it takes `orient`: it is the same object before\n and after, and only its direction changes. */}\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\"size-4 shrink-0\", motionOrient, \"group-data-[panel-open]:rotate-180\")}\n />\n </BaseAccordion.Trigger>\n </BaseAccordion.Header>\n );\n};\n\n/* The measured region. Base publishes the panel's open height as its own variable, and the\n disclosure recipe reads `--sui-disclose-height`, so the panel maps the two rather than the\n recipe knowing which primitive it belongs to. */\nconst AccordionPanel = ({ children, className }: AccordionPanelProps) => (\n <BaseAccordion.Panel\n className={cn(\n \"[--sui-disclose-height:var(--accordion-panel-height)]\",\n disclosure.panel,\n className\n )}\n >\n <div className={cn(\"px-4 pb-4 pt-1\")}>{children}</div>\n </BaseAccordion.Panel>\n);\n\n\n/* One hairline where two sections meet. The line belongs to the group rather than to a section,\n so a section never draws its own edge, and it is the public `Divider` at its lightest role —\n the line between the rows of one stacked list.\n\n Three of its properties are the accordion's own anatomy: it is inset to the band the trigger and\n the panel content share, so it marks the join between two sections rather than the width of the\n surface; it keeps air above and below, so the hover tint never sits on a rule; and it yields\n while either section beside it is hovered, so the boundary reads when the group is scanned\n without competing with the row the pointer is on. A section that is already open is excluded\n from the yield, because the line beneath expanded content is what keeps the expanded section\n reading as one unit. */\nconst withDividers = (children: ReactNode) =>\n React.Children.toArray(children).flatMap((child, index) =>\n index === 0\n ? [child]\n : [\n <Divider\n key={`divider-${index}`}\n weight=\"row\"\n className={cn(\n /* `w-auto` in place of the shared full width: the column stretches it across the\n band the margins leave, so the inset is real geometry rather than a full-width\n line that overshoots its own margins. */\n \"w-auto mx-4 my-2\",\n motionFeedback,\n \"[&:has(+div:not([data-open]):hover)]:opacity-0\",\n \"[div:not([data-open]):hover+&]:opacity-0\"\n )}\n />,\n child,\n ]\n );\n\nconst Accordion = (({\n children,\n multiple = false,\n disabled = false,\n headingLevel = 3,\n className,\n ...props\n}: AccordionProps) => {\n return (\n <HeadingLevelContext.Provider value={headingLevel}>\n <BaseAccordion.Root\n {...props}\n multiple={multiple}\n disabled={disabled}\n className={cn(\"flex min-w-0 flex-col\", className)}\n >\n {withDividers(children)}\n </BaseAccordion.Root>\n </HeadingLevelContext.Provider>\n );\n}) as AccordionComponent;\n\nAccordion.Item = AccordionItem;\nAccordion.Trigger = AccordionTrigger;\nAccordion.Panel = AccordionPanel;\n\nexport default Accordion;\n"],"names":["_jsx","BaseAccordion","cn","createContext","useContext","_jsxs","disclosure","ChevronDown","motionOrient","Divider","motionFeedback"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Accordion.cjs","sources":["../../../src/components/Accordion.tsx"],"sourcesContent":["\"use client\";\n\nimport { Accordion as BaseAccordion } from \"@base-ui/react/accordion\";\nimport React, { createContext, useContext, type ReactNode } from \"react\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { ArrowDown01Icon } from \"@hugeicons/core-free-icons\";\nimport { cn } from \"@/libs/utils\";\nimport Divider from \"./Divider\";\nimport { disclosure } from \"./ui.common\";\nimport { motionFeedback, motionOrient } from \"./ui.motion\";\n\n/** A heading level for the groups of an `Accordion`. Base renders a heading around every panel\n * trigger, because that is what makes the group navigable as a set of sections; which level it\n * is depends on where the accordion sits in the document. */\nexport type AccordionHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface AccordionProps {\n children: ReactNode;\n /**\n * Whether more than one panel can be open at once. A group that answers a question is single:\n * opening one section closes the one before it.\n */\n multiple?: boolean;\n /** The item(s) that are expanded, when the application owns the state. */\n value?: BaseAccordion.Root.Props[\"value\"];\n /** The item(s) that start expanded, for an accordion that owns its own state. */\n defaultValue?: BaseAccordion.Root.Props[\"defaultValue\"];\n /** Base's own value-change callback, event details included. */\n onValueChange?: BaseAccordion.Root.Props[\"onValueChange\"];\n /** Whether the whole group is inert. */\n disabled?: boolean;\n /** The heading level the group labels its sections with. */\n headingLevel?: AccordionHeadingLevel;\n /** Adds to the group's own column. The rows and panels style themselves. */\n className?: string;\n}\n\nexport interface AccordionItemProps {\n children: ReactNode;\n /**\n * Identifies the item. A controlled accordion expands its items by value, so an item without\n * one can still be opened but not addressed from outside.\n */\n value?: BaseAccordion.Item.Props[\"value\"];\n /** Whether this item alone is inert. */\n disabled?: boolean;\n /** Adds to the item's own column. */\n className?: string;\n}\n\nexport interface AccordionTriggerProps {\n children: ReactNode;\n /** Adds to the row. The row's shape, tone and states are the disclosure recipe's. */\n className?: string;\n}\n\nexport interface AccordionPanelProps {\n children: ReactNode;\n /** Adds to the measured region. The region's height and clipping are the recipe's. */\n className?: string;\n}\n\n/* One section of an `Accordion`. The trigger and the panel it opens are `Accordion.Trigger` and\n `Accordion.Panel`; the heading that labels them is the trigger's own, so a consumer never has\n to build an accessible accordion structure by hand. */\nconst AccordionItem = ({ children, className, ...props }: AccordionItemProps) => (\n <BaseAccordion.Item {...props} className={cn(\"min-w-0\", className)}>\n {children}\n </BaseAccordion.Item>\n);\n\ntype AccordionComponent = ((props: AccordionProps) => React.JSX.Element) & {\n Item: typeof AccordionItem;\n Trigger: typeof AccordionTrigger;\n Panel: typeof AccordionPanel;\n};\n\nconst HeadingLevelContext = createContext<AccordionHeadingLevel>(3);\n\n/* The heading element Base wraps each trigger in. `render` replaces the element rather than\n adding one, so the level changes without a second wrapper. */\nconst headingRender = (level: AccordionHeadingLevel) => React.createElement(`h${level}`);\n\nconst AccordionTrigger = ({ children, className }: AccordionTriggerProps) => {\n const headingLevel = useContext(HeadingLevelContext);\n\n return (\n /* The heading is the item's own, so a consumer never writes the accessible accordion\n structure by hand; `render` replaces the element rather than adding a wrapper, so the\n level follows the document instead of being fixed at Base's default. */\n <BaseAccordion.Header render={headingRender(headingLevel)} className={cn(\"m-0\")}>\n <BaseAccordion.Trigger className={cn(disclosure.trigger, className)}>\n <span className={cn(\"min-w-0 flex-1\")}>{children}</span>\n {/* The affordance turns in place, so it takes `orient`: it is the same object before\n and after, and only its direction changes. */}\n <HugeiconsIcon icon={ArrowDown01Icon}\n aria-hidden=\"true\"\n className={cn(\"size-4 shrink-0\", motionOrient, \"group-data-[panel-open]:rotate-180\")}\n />\n </BaseAccordion.Trigger>\n </BaseAccordion.Header>\n );\n};\n\n/* The measured region. Base publishes the panel's open height as its own variable, and the\n disclosure recipe reads `--sui-disclose-height`, so the panel maps the two rather than the\n recipe knowing which primitive it belongs to. */\nconst AccordionPanel = ({ children, className }: AccordionPanelProps) => (\n <BaseAccordion.Panel\n className={cn(\n \"[--sui-disclose-height:var(--accordion-panel-height)]\",\n disclosure.panel,\n className\n )}\n >\n <div className={cn(\"px-4 pb-4 pt-1\")}>{children}</div>\n </BaseAccordion.Panel>\n);\n\n\n/* One hairline where two sections meet. The line belongs to the group rather than to a section,\n so a section never draws its own edge, and it is the public `Divider` at its lightest role —\n the line between the rows of one stacked list.\n\n Three of its properties are the accordion's own anatomy: it is inset to the band the trigger and\n the panel content share, so it marks the join between two sections rather than the width of the\n surface; it keeps air above and below, so the hover tint never sits on a rule; and it yields\n while either section beside it is hovered, so the boundary reads when the group is scanned\n without competing with the row the pointer is on. A section that is already open is excluded\n from the yield, because the line beneath expanded content is what keeps the expanded section\n reading as one unit. */\nconst withDividers = (children: ReactNode) =>\n React.Children.toArray(children).flatMap((child, index) =>\n index === 0\n ? [child]\n : [\n <Divider\n key={`divider-${index}`}\n weight=\"row\"\n className={cn(\n /* `w-auto` in place of the shared full width: the column stretches it across the\n band the margins leave, so the inset is real geometry rather than a full-width\n line that overshoots its own margins. */\n \"w-auto mx-4 my-2\",\n motionFeedback,\n \"[&:has(+div:not([data-open]):hover)]:opacity-0\",\n \"[div:not([data-open]):hover+&]:opacity-0\"\n )}\n />,\n child,\n ]\n );\n\nconst Accordion = (({\n children,\n multiple = false,\n disabled = false,\n headingLevel = 3,\n className,\n ...props\n}: AccordionProps) => {\n return (\n <HeadingLevelContext.Provider value={headingLevel}>\n <BaseAccordion.Root\n {...props}\n multiple={multiple}\n disabled={disabled}\n className={cn(\"flex min-w-0 flex-col\", className)}\n >\n {withDividers(children)}\n </BaseAccordion.Root>\n </HeadingLevelContext.Provider>\n );\n}) as AccordionComponent;\n\nAccordion.Item = AccordionItem;\nAccordion.Trigger = AccordionTrigger;\nAccordion.Panel = AccordionPanel;\n\nexport default Accordion;\n"],"names":["_jsx","BaseAccordion","cn","createContext","useContext","_jsxs","disclosure","HugeiconsIcon","ArrowDown01Icon","motionOrient","Divider","motionFeedback"],"mappings":"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"}
|
|
@@ -4,27 +4,28 @@
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var button = require('@base-ui/react/button');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var
|
|
7
|
+
var react = require('@hugeicons/react');
|
|
8
|
+
var coreFreeIcons = require('@hugeicons/core-free-icons');
|
|
8
9
|
var utils = require('../libs/utils.cjs');
|
|
9
10
|
var ui_common = require('./ui.common.cjs');
|
|
10
11
|
var ui_motion = require('./ui.motion.cjs');
|
|
11
12
|
|
|
12
13
|
const iconMap = {
|
|
13
|
-
primary:
|
|
14
|
-
secondary:
|
|
15
|
-
danger:
|
|
16
|
-
warning:
|
|
17
|
-
success:
|
|
14
|
+
primary: coreFreeIcons.InformationCircleIcon,
|
|
15
|
+
secondary: coreFreeIcons.InformationCircleIcon,
|
|
16
|
+
danger: coreFreeIcons.CancelCircleIcon,
|
|
17
|
+
warning: coreFreeIcons.AlertCircleIcon,
|
|
18
|
+
success: coreFreeIcons.CheckmarkCircle02Icon,
|
|
18
19
|
};
|
|
19
20
|
const Alert = ({ children, variant = "primary", className, closeable = false, onDismiss, }) => {
|
|
20
21
|
const [isVisible, setIsVisible] = React.useState(true);
|
|
21
|
-
const
|
|
22
|
+
const icon = iconMap[variant];
|
|
22
23
|
if (!isVisible)
|
|
23
24
|
return null;
|
|
24
|
-
return (jsxRuntime.jsxs("div", { role: variant === "danger" || variant === "warning" ? "alert" : "status", className: utils.cn("flex min-w-0 items-start gap-3 px-4 py-3.5 [overflow-wrap:anywhere]", ui_common.shape.control, ui_common.tone.soft[variant], ui_common.text.high, className), children: [jsxRuntime.jsx("span", { className: utils.cn("flex h-6 shrink-0 items-center"), "aria-hidden": "true", children: jsxRuntime.jsx(
|
|
25
|
+
return (jsxRuntime.jsxs("div", { role: variant === "danger" || variant === "warning" ? "alert" : "status", className: utils.cn("flex min-w-0 items-start gap-3 px-4 py-3.5 [overflow-wrap:anywhere]", ui_common.shape.control, ui_common.tone.soft[variant], ui_common.text.high, className), children: [jsxRuntime.jsx("span", { className: utils.cn("flex h-6 shrink-0 items-center"), "aria-hidden": "true", children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: icon, "aria-hidden": "true", className: utils.cn("size-5", ui_common.tone.text[variant]) }) }), jsxRuntime.jsx("div", { className: utils.cn("min-w-0 flex-1 text-sm leading-6"), children: children }), closeable && (jsxRuntime.jsx(button.Button, { type: "button", "aria-label": "Dismiss alert", onClick: () => {
|
|
25
26
|
onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
|
26
27
|
setIsVisible(false);
|
|
27
|
-
}, className: utils.cn("group -me-2 -my-2.5 inline-flex shrink-0 items-center justify-center", ui_common.density.target, ui_common.shape.circle, ui_common.focusRingInset, ui_motion.motionFeedback, ui_common.stateLayer.quiet, ui_common.state.enabled), children: jsxRuntime.jsx("span", { className: utils.cn("inline-flex items-center justify-center", ui_motion.motionInkPress), children: jsxRuntime.jsx(
|
|
28
|
+
}, className: utils.cn("group -me-2 -my-2.5 inline-flex shrink-0 items-center justify-center", ui_common.density.target, ui_common.shape.circle, ui_common.focusRingInset, ui_motion.motionFeedback, ui_common.stateLayer.quiet, ui_common.state.enabled), children: jsxRuntime.jsx("span", { className: utils.cn("inline-flex items-center justify-center", ui_motion.motionInkPress), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.Cancel01Icon, "aria-hidden": "true", className: utils.cn("size-4") }) }) }))] }));
|
|
28
29
|
};
|
|
29
30
|
|
|
30
31
|
exports.Alert = Alert;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.cjs","sources":["../../../src/components/Alert.tsx"],"sourcesContent":["\"use client\";\n\nimport { Button } from \"@base-ui/react/button\";\nimport React, { type ReactNode, useState } from \"react\";\nimport { AlertCircle, CheckCircle, Info, X, XCircle } from \"lucide-react\";\nimport { cn } from \"@/libs/utils\";\nimport {\n density,\n focusRingInset,\n shape,\n state,\n stateLayer,\n text,\n tone,\n} from \"./ui.common\";\nimport { motionFeedback, motionInkPress } from \"./ui.motion\";\nimport { Variant } from \"./ui.types\";\n\nconst iconMap = {\n primary: Info,\n secondary: Info,\n danger: XCircle,\n warning: AlertCircle,\n success: CheckCircle,\n};\n\nexport interface AlertProps {\n children: ReactNode;\n variant?: Variant;\n className?: string;\n closeable?: boolean;\n onDismiss?: () => void;\n}\n\nexport const Alert = ({\n children,\n variant = \"primary\",\n className,\n closeable = false,\n onDismiss,\n}: AlertProps) => {\n const [isVisible, setIsVisible] = useState(true);\n const Icon = iconMap[variant];\n\n if (!isVisible) return null;\n\n return (\n <div\n role={variant === \"danger\" || variant === \"warning\" ? \"alert\" : \"status\"}\n className={cn(\n \"flex min-w-0 items-start gap-3 px-4 py-3.5 [overflow-wrap:anywhere]\",\n shape.control,\n tone.soft[variant],\n text.high,\n className\n )}\n >\n {/* The status mark is a **first-line** mark: an alert's copy wraps, and a mark centred on the\n whole block would drift to the middle of it. The slot takes the first line's own height\n (`leading-6`), so the icon is centred on the line it belongs to with no offset. */}\n <span className={cn(\"flex h-6 shrink-0 items-center\")} aria-hidden=\"true\">\n <Icon className={cn(\"size-5\", tone.text[variant])} />\n </span>\n <div className={cn(\"min-w-0 flex-1 text-sm leading-6\")}>{children}</div>\n {/* The dismissal is a first-line affordance too: a 44px target is taller than the line it belongs\n to, so it is offset to that line and gives its excess back on **both** vertical edges — a\n top-only offset would leave the target's remaining 10px as extra space under a single line of\n copy, letting the target rather than the copy size the surface. Its target padding is\n likewise pulled back at the surface's end edge: that padding exists to make the target big,\n and it is not allowed to read as a trailing void. The target keeps the geometry the pointer\n found. */}\n {closeable && (\n <Button\n type=\"button\"\n aria-label=\"Dismiss alert\"\n onClick={() => {\n onDismiss?.();\n setIsVisible(false);\n }}\n className={cn(\n \"group -me-2 -my-2.5 inline-flex shrink-0 items-center justify-center\",\n density.target,\n shape.circle,\n focusRingInset,\n motionFeedback,\n stateLayer.quiet,\n state.enabled\n )}\n >\n {/* The target stays exactly where the pointer found it; the mark inside it carries the\n press. */}\n <span className={cn(\"inline-flex items-center justify-center\", motionInkPress)}>\n <X aria-hidden=\"true\" className={cn(\"size-4\")} />\n </span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["Info","XCircle","AlertCircle","CheckCircle","useState","_jsxs","cn","shape","tone","text","_jsx","Button","density","focusRingInset","motionFeedback","stateLayer","state","motionInkPress","X"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Alert.cjs","sources":["../../../src/components/Alert.tsx"],"sourcesContent":["\"use client\";\n\nimport { Button } from \"@base-ui/react/button\";\nimport React, { type ReactNode, useState } from \"react\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { AlertCircleIcon, Cancel01Icon, CancelCircleIcon, CheckmarkCircle02Icon, InformationCircleIcon } from \"@hugeicons/core-free-icons\";\nimport { cn } from \"@/libs/utils\";\nimport {\n density,\n focusRingInset,\n shape,\n state,\n stateLayer,\n text,\n tone,\n} from \"./ui.common\";\nimport { motionFeedback, motionInkPress } from \"./ui.motion\";\nimport { Variant } from \"./ui.types\";\n\nconst iconMap = {\n primary: InformationCircleIcon,\n secondary: InformationCircleIcon,\n danger: CancelCircleIcon,\n warning: AlertCircleIcon,\n success: CheckmarkCircle02Icon,\n};\n\nexport interface AlertProps {\n children: ReactNode;\n variant?: Variant;\n className?: string;\n closeable?: boolean;\n onDismiss?: () => void;\n}\n\nexport const Alert = ({\n children,\n variant = \"primary\",\n className,\n closeable = false,\n onDismiss,\n}: AlertProps) => {\n const [isVisible, setIsVisible] = useState(true);\n const icon = iconMap[variant];\n\n if (!isVisible) return null;\n\n return (\n <div\n role={variant === \"danger\" || variant === \"warning\" ? \"alert\" : \"status\"}\n className={cn(\n \"flex min-w-0 items-start gap-3 px-4 py-3.5 [overflow-wrap:anywhere]\",\n shape.control,\n tone.soft[variant],\n text.high,\n className\n )}\n >\n {/* The status mark is a **first-line** mark: an alert's copy wraps, and a mark centred on the\n whole block would drift to the middle of it. The slot takes the first line's own height\n (`leading-6`), so the icon is centred on the line it belongs to with no offset. */}\n <span className={cn(\"flex h-6 shrink-0 items-center\")} aria-hidden=\"true\">\n <HugeiconsIcon icon={icon} aria-hidden=\"true\" className={cn(\"size-5\", tone.text[variant])} />\n </span>\n <div className={cn(\"min-w-0 flex-1 text-sm leading-6\")}>{children}</div>\n {/* The dismissal is a first-line affordance too: a 44px target is taller than the line it belongs\n to, so it is offset to that line and gives its excess back on **both** vertical edges — a\n top-only offset would leave the target's remaining 10px as extra space under a single line of\n copy, letting the target rather than the copy size the surface. Its target padding is\n likewise pulled back at the surface's end edge: that padding exists to make the target big,\n and it is not allowed to read as a trailing void. The target keeps the geometry the pointer\n found. */}\n {closeable && (\n <Button\n type=\"button\"\n aria-label=\"Dismiss alert\"\n onClick={() => {\n onDismiss?.();\n setIsVisible(false);\n }}\n className={cn(\n \"group -me-2 -my-2.5 inline-flex shrink-0 items-center justify-center\",\n density.target,\n shape.circle,\n focusRingInset,\n motionFeedback,\n stateLayer.quiet,\n state.enabled\n )}\n >\n {/* The target stays exactly where the pointer found it; the mark inside it carries the\n press. */}\n <span className={cn(\"inline-flex items-center justify-center\", motionInkPress)}>\n <HugeiconsIcon icon={Cancel01Icon} aria-hidden=\"true\" className={cn(\"size-4\")} />\n </span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["InformationCircleIcon","CancelCircleIcon","AlertCircleIcon","CheckmarkCircle02Icon","useState","_jsxs","cn","shape","tone","text","_jsx","HugeiconsIcon","Button","density","focusRingInset","motionFeedback","stateLayer","state","motionInkPress","Cancel01Icon"],"mappings":";;;;;;;;;;;;AAmBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAA,CAAA,CAAG;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB;CAC/B;MAUY,KAAK,CAAA,CAAA,CAAG,CAAC,EACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CACR,OAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,KAAK,CAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GACE,CAAA,CAAA,CAAA,CAAA,CAAI;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;AAChD,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,OAAO,CAAC;AAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAI;IAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WACE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqE,CAAA,CACrEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,OAAO,CAAA,CACbC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAClBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAKDC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAEJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvEI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAEL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAEE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA,CAAA,CAAI,CAAA,CAAA,CACxF,CAAA,CACPE,wBAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAEJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAC,CAAA,WAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAO,EAQvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CACRI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAACE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAI,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAI;oBACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;gBACrB,CAAC,CAAA,CACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAEN,QAAE,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsE,CAAA,CACtEO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CACdN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,MAAM,CAAA,CACZO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAChBC,eAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACd,CAAA,CAAA,QAAA,CAAA,CAIDP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAEJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyC,CAAA,CAAEY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5ER,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAACC,mBAAa,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAEQ,0BAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAEb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAI,CAAA,CAAA,CAC5E,CAAA,CAAA,CACA,CACV,CAAA,EAAA,CACG,CAAA;AAEV,CAAA;;"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var
|
|
6
|
+
var react = require('@hugeicons/react');
|
|
7
|
+
var coreFreeIcons = require('@hugeicons/core-free-icons');
|
|
7
8
|
var React = require('react');
|
|
8
9
|
var utils = require('../libs/utils.cjs');
|
|
9
10
|
var ui_common = require('./ui.common.cjs');
|
|
@@ -38,7 +39,7 @@ const Breadcrumb = React.forwardRef(({ items, renderLink, className, "aria-label
|
|
|
38
39
|
return (jsxRuntime.jsxs("li", { className: utils.cn("flex min-w-0 items-start gap-x-2"), children: [index > 0 && (
|
|
39
40
|
/* One inherited line box centers the glyph on the label's first line, even when
|
|
40
41
|
the label wraps or a consumer changes the trail's line-height. */
|
|
41
|
-
jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn("inline-flex h-[1lh] w-4 shrink-0 items-center"), children: jsxRuntime.jsx(
|
|
42
|
+
jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn("inline-flex h-[1lh] w-4 shrink-0 items-center"), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.ArrowRight01Icon, "aria-hidden": "true", className: utils.cn("size-4 rtl:-scale-x-100") }) })), isCurrent ? (jsxRuntime.jsx("span", { "aria-current": "page", className: utils.cn("min-w-0 font-medium [overflow-wrap:anywhere]", ui_common.text.high), children: item.label })) : item.href !== undefined ? (renderLink ? (renderLink(item, linkProps(item))) : (jsxRuntime.jsx("a", { ...linkProps(item) }))) : (jsxRuntime.jsx("span", { className: utils.cn("min-w-0 [overflow-wrap:anywhere]"), children: item.label }))] }, index));
|
|
42
43
|
}) }) }));
|
|
43
44
|
});
|
|
44
45
|
Breadcrumb.displayName = "Breadcrumb";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.cjs","sources":["../../../src/components/Breadcrumb.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Breadcrumb.cjs","sources":["../../../src/components/Breadcrumb.tsx"],"sourcesContent":["import { HugeiconsIcon } from \"@hugeicons/react\";\nimport { ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport {\n forwardRef,\n type AnchorHTMLAttributes,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport { focusRing, text } from \"./ui.common\";\n\nexport interface BreadcrumbItem {\n label: ReactNode;\n href?: string;\n}\n\nexport interface BreadcrumbProps extends Omit<ComponentPropsWithoutRef<\"nav\">, \"children\"> {\n items: BreadcrumbItem[];\n /**\n * How an intermediate destination is rendered — the escape hatch for a router link. The supplied\n * props carry the destination, the shared classes and the item's own content, and the renderer\n * spreads them onto its element.\n */\n renderLink?: (item: BreadcrumbItem, props: AnchorHTMLAttributes<HTMLAnchorElement>) => ReactNode;\n}\n\n/* The trail of places a reader came through. It is **passive**: links and text, no state, no effect\n and no client directive, so a server component renders it and a page that only reads it ships no\n behaviour.\n\n The last item is the page the reader is on, and it is text even when the caller supplies an href\n for it — a link to where you already are is a control with nothing left to do, and `aria-current`\n is what says which one it is. Every intermediate destination is a real anchor, so an ordinary\n click, a modified click and every browser affordance work the way they do everywhere else on the\n web: no router is required and none is assumed. `renderLink` is the caller's way to substitute its\n own link component, and it receives the href, the accessible relationship and the shared classes\n the plain anchor would have been given.\n\n Separators are decorative chevrons: they mirror with the writing direction and are hidden from\n assistive technology. Long labels wrap and the trail yields to a narrow parent instead of\n collapsing, truncating or hiding a place — which places are behind the reader is information, and a\n breadcrumb that hides one is a breadcrumb that lies. */\nconst Breadcrumb = forwardRef<HTMLElement, BreadcrumbProps>(\n ({ items, renderLink, className, \"aria-label\": ariaLabel, ...props }, ref) => {\n /* The props an intermediate destination is rendered from, composed once so the caller's own link\n and the default anchor are the same object: the same destination, the same content and the same\n shared classes — including the focus ring the keyboard needs to see. */\n const linkProps = (item: BreadcrumbItem): AnchorHTMLAttributes<HTMLAnchorElement> => ({\n href: item.href,\n className: cn(\"min-w-0 no-underline [overflow-wrap:anywhere]\", focusRing, text.medium, \"hover:text-sherick-ink\"),\n children: item.label,\n });\n\n return (\n <nav\n {...props}\n ref={ref}\n aria-label={ariaLabel ?? \"Breadcrumb\"}\n className={cn(\"min-w-0 text-sm leading-6\", className)}\n >\n {/* A native ordered list: the trail has an order, and the order is the information. The row\n wraps rather than overflowing, so a long trail stays inside its column. `role=\"list\"`\n restates the element's own role rather than adding one, because `list-none` — which removes\n the marker a breadcrumb does not want — is also what makes Safari drop the semantics. */}\n <ol\n role=\"list\"\n className={cn(\n \"m-0 flex min-w-0 list-none flex-wrap items-start gap-x-2 gap-y-1 p-0\",\n text.medium\n )}\n >\n {items.map((item, index) => {\n const isCurrent = index === items.length - 1;\n\n return (\n <li key={index} className={cn(\"flex min-w-0 items-start gap-x-2\")}>\n {index > 0 && (\n /* One inherited line box centers the glyph on the label's first line, even when\n the label wraps or a consumer changes the trail's line-height. */\n <span aria-hidden=\"true\" className={cn(\"inline-flex h-[1lh] w-4 shrink-0 items-center\")}>\n <HugeiconsIcon icon={ArrowRight01Icon} aria-hidden=\"true\" className={cn(\"size-4 rtl:-scale-x-100\")} />\n </span>\n )}\n {isCurrent ? (\n <span\n aria-current=\"page\"\n className={cn(\"min-w-0 font-medium [overflow-wrap:anywhere]\", text.high)}\n >\n {item.label}\n </span>\n ) : item.href !== undefined ? (\n renderLink ? (\n renderLink(item, linkProps(item))\n ) : (\n <a {...linkProps(item)} />\n )\n ) : (\n <span className={cn(\"min-w-0 [overflow-wrap:anywhere]\")}>{item.label}</span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\n\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport default Breadcrumb;\n"],"names":["forwardRef","cn","focusRing","text","_jsx","_jsxs","HugeiconsIcon","ArrowRight01Icon"],"mappings":";;;;;;;;;;;AA0BA;;;;;;;;;;;;;;;AAe0D;AAC1D,MAAM,UAAU,GAAGA,gBAAU,CAC3B,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC3E;;AAE0E;AAC1E,IAAA,MAAM,SAAS,GAAG,CAAC,IAAoB,MAA+C;QACpF,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,QAAA,SAAS,EAAEC,QAAE,CAAC,+CAA+C,EAAEC,mBAAS,EAAEC,cAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC;QAChH,QAAQ,EAAE,IAAI,CAAC,KAAK;AACrB,KAAA,CAAC;IAEF,QACEC,2BACM,KAAK,EACT,GAAG,EAAE,GAAG,EAAA,YAAA,EACI,SAAS,KAAA,IAAA,IAAT,SAAS,cAAT,SAAS,GAAI,YAAY,EACrC,SAAS,EAAEH,QAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,EAAA,QAAA,EAMrDG,uBACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEH,QAAE,CACX,sEAAsE,EACtEE,cAAI,CAAC,MAAM,CACZ,EAAA,QAAA,EAEA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBACzB,MAAM,SAAS,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;AAE5C,gBAAA,QACEE,eAAA,CAAA,IAAA,EAAA,EAAgB,SAAS,EAAEJ,QAAE,CAAC,kCAAkC,CAAC,EAAA,QAAA,EAAA,CAC9D,KAAK,GAAG,CAAC;AACR;AACoE;wBACpEG,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAEH,QAAE,CAAC,+CAA+C,CAAC,EAAA,QAAA,EACrFG,cAAA,CAACE,mBAAa,EAAA,EAAC,IAAI,EAAEC,8BAAgB,EAAA,aAAA,EAAc,MAAM,EAAC,SAAS,EAAEN,QAAE,CAAC,yBAAyB,CAAC,EAAA,CAAI,EAAA,CACjG,CACR,EACA,SAAS,IACRG,cAAA,CAAA,MAAA,EAAA,EAAA,cAAA,EACe,MAAM,EACnB,SAAS,EAAEH,QAAE,CAAC,8CAA8C,EAAEE,cAAI,CAAC,IAAI,CAAC,EAAA,QAAA,EAEvE,IAAI,CAAC,KAAK,EAAA,CACN,IACL,IAAI,CAAC,IAAI,KAAK,SAAS,IACzB,UAAU,IACR,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,KAEjCC,cAAA,CAAA,GAAA,EAAA,EAAA,GAAO,SAAS,CAAC,IAAI,CAAC,EAAA,CAAI,CAC3B,KAEDA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAE,CAAC,kCAAkC,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,CAC7E,CAAA,EAAA,EAvBM,KAAK,CAwBT;AAET,YAAA,CAAC,CAAC,EAAA,CACC,EAAA,CACD;AAEV,CAAC;AAGH,UAAU,CAAC,WAAW,GAAG,YAAY;;"}
|
|
@@ -5,7 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
var directionProvider = require('@base-ui/react/direction-provider');
|
|
8
|
-
var
|
|
8
|
+
var react = require('@hugeicons/react');
|
|
9
|
+
var coreFreeIcons = require('@hugeicons/core-free-icons');
|
|
9
10
|
var React = require('react');
|
|
10
11
|
var utils = require('../libs/utils.cjs');
|
|
11
12
|
var ui_common = require('./ui.common.cjs');
|
|
@@ -259,7 +260,7 @@ const Calendar = React.forwardRef((props, ref) => {
|
|
|
259
260
|
const hintId = React.useId();
|
|
260
261
|
return (jsxRuntime.jsxs("div", { ...divProps, ref: ref,
|
|
261
262
|
/* Seven equal columns yield together in a narrow panel; no weekday is hidden offscreen. */
|
|
262
|
-
className: utils.cn("inline-flex w-[17.5rem] min-w-0 max-w-full flex-col", disabled && ui_common.state.disabled, className), children: [jsxRuntime.jsxs("div", { className: utils.cn("mb-2 flex items-center justify-between gap-2"), children: [jsxRuntime.jsx("button", { type: "button", "aria-label": labels.previousMonth, disabled: disabled || atFirstMonth, onClick: () => walkMonth(-1), className: utils.cn(navigationButtonClassName, disabled ? ui_common.state.disabledDescendant : atFirstMonth ? ui_common.state.disabled : ui_common.state.enabled), children: jsxRuntime.jsx("span", { className: utils.cn("inline-flex", !disabled && !atFirstMonth && ui_motion.motionInkPress), children: jsxRuntime.jsx(
|
|
263
|
+
className: utils.cn("inline-flex w-[17.5rem] min-w-0 max-w-full flex-col", disabled && ui_common.state.disabled, className), children: [jsxRuntime.jsxs("div", { className: utils.cn("mb-2 flex items-center justify-between gap-2"), children: [jsxRuntime.jsx("button", { type: "button", "aria-label": labels.previousMonth, disabled: disabled || atFirstMonth, onClick: () => walkMonth(-1), className: utils.cn(navigationButtonClassName, disabled ? ui_common.state.disabledDescendant : atFirstMonth ? ui_common.state.disabled : ui_common.state.enabled), children: jsxRuntime.jsx("span", { className: utils.cn("inline-flex", !disabled && !atFirstMonth && ui_motion.motionInkPress), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.ArrowLeft02Icon, "aria-hidden": "true", className: utils.cn("size-5 rtl:-scale-x-100") }) }) }), jsxRuntime.jsx("div", { id: captionId, "aria-live": "polite", className: utils.cn("min-w-0 flex-1 truncate text-center text-sm font-medium", ui_common.text.high), children: format.formatMonthYear(view) }), jsxRuntime.jsx("button", { type: "button", "aria-label": labels.nextMonth, disabled: disabled || atLastMonth, onClick: () => walkMonth(1), className: utils.cn(navigationButtonClassName, disabled ? ui_common.state.disabledDescendant : atLastMonth ? ui_common.state.disabled : ui_common.state.enabled), children: jsxRuntime.jsx("span", { className: utils.cn("inline-flex", !disabled && !atLastMonth && ui_motion.motionInkPress), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.ArrowRight02Icon, "aria-hidden": "true", className: utils.cn("size-5 rtl:-scale-x-100") }) }) })] }), jsxRuntime.jsxs("table", { ref: gridRef, role: "grid", "aria-label": ariaLabel, "aria-labelledby": ariaLabel ? undefined : ariaLabelledBy !== null && ariaLabelledBy !== void 0 ? ariaLabelledBy : captionId, "aria-describedby": hintId, "aria-multiselectable": isRange ? true : undefined, "aria-invalid": invalid || undefined, "aria-disabled": disabled || undefined, onKeyDown: handleGridKeyDown, onBlur: (event) => {
|
|
263
264
|
/* A day is no longer the focus, so a pending refocus must not claim it later. */
|
|
264
265
|
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
265
266
|
setPendingDayFocus(null);
|