@lism-css/ui 0.9.2 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/README.ja.md +137 -0
  2. package/README.md +93 -5
  3. package/dist/components/Accordion/getProps.js +53 -0
  4. package/dist/components/Accordion/react/AccIcon.js +9 -0
  5. package/dist/components/Accordion/react/Accordion.d.ts +5 -6
  6. package/dist/components/Accordion/react/Accordion.js +45 -0
  7. package/dist/components/Accordion/react/index.js +6 -0
  8. package/dist/components/Alert/getProps.js +20 -0
  9. package/dist/components/Alert/presets.js +29 -0
  10. package/dist/components/Alert/react/Alert.js +16 -0
  11. package/dist/components/Avatar/react/Avatar.js +8 -0
  12. package/dist/components/Badge/react/Badge.js +12 -0
  13. package/dist/components/Button/react/Button.js +12 -0
  14. package/dist/components/Callout/getProps.js +22 -0
  15. package/dist/components/Callout/presets.js +29 -0
  16. package/dist/components/Callout/react/Callout.js +20 -0
  17. package/dist/components/Chat/getProps.js +47 -0
  18. package/dist/components/Chat/react/Chat.js +22 -0
  19. package/dist/components/Details/getProps.js +15 -0
  20. package/dist/components/Details/react/Details.js +28 -0
  21. package/dist/components/Details/react/index.js +5 -0
  22. package/dist/components/DummyImage/astro/index.d.ts +1 -0
  23. package/dist/components/DummyImage/react/DummyImage.d.ts +2 -0
  24. package/dist/components/DummyImage/react/DummyImage.js +8 -0
  25. package/dist/components/DummyImage/react/index.d.ts +1 -0
  26. package/dist/components/DummyText/astro/index.d.ts +1 -0
  27. package/dist/components/DummyText/getContent.d.ts +11 -0
  28. package/dist/components/DummyText/getContent.js +9 -0
  29. package/dist/components/DummyText/react/DummyText.d.ts +10 -0
  30. package/dist/components/DummyText/react/DummyText.js +10 -0
  31. package/dist/components/DummyText/react/index.d.ts +1 -0
  32. package/dist/components/DummyText/texts.d.ts +22 -0
  33. package/dist/components/DummyText/texts.js +39 -0
  34. package/dist/components/Modal/getProps.js +25 -0
  35. package/dist/components/Modal/react/Body.js +9 -0
  36. package/dist/components/Modal/react/CloseBtn.js +13 -0
  37. package/dist/components/Modal/react/Inner.js +9 -0
  38. package/dist/components/Modal/react/Modal.d.ts +1 -2
  39. package/dist/components/Modal/react/Modal.js +17 -0
  40. package/dist/components/Modal/react/OpenBtn.js +9 -0
  41. package/dist/components/Modal/react/index.js +9 -0
  42. package/dist/components/Modal/setModal.js +16 -17
  43. package/dist/components/NavMenu/getProps.js +40 -0
  44. package/dist/components/NavMenu/react/NavMenu.js +24 -0
  45. package/dist/components/NavMenu/react/index.js +5 -0
  46. package/dist/components/ShapeDivider/getProps.js +22 -0
  47. package/dist/components/ShapeDivider/react/ShapeDivider.js +26 -0
  48. package/dist/components/Tabs/getProps.js +10 -0
  49. package/dist/components/Tabs/react/Tab.js +9 -0
  50. package/dist/components/Tabs/react/TabItem.js +7 -0
  51. package/dist/components/Tabs/react/TabList.js +8 -0
  52. package/dist/components/Tabs/react/TabPanel.js +9 -0
  53. package/dist/components/Tabs/react/Tabs.d.ts +1 -2
  54. package/dist/components/Tabs/react/Tabs.js +48 -0
  55. package/dist/components/Tabs/react/index.js +9 -0
  56. package/dist/components/Tabs/setTabs.js +10 -11
  57. package/dist/components/astro.d.ts +2 -0
  58. package/dist/components/react.d.ts +2 -0
  59. package/dist/components/react.js +30 -0
  60. package/dist/lism-css/dist/components/Center/index.js +8 -0
  61. package/dist/lism-css/dist/components/Flex/index.js +8 -0
  62. package/dist/lism-css/dist/components/Flow/index.js +8 -0
  63. package/dist/lism-css/dist/components/Frame/index.js +8 -0
  64. package/dist/lism-css/dist/components/Grid/index.js +8 -0
  65. package/dist/lism-css/dist/components/Lism/index.js +8 -0
  66. package/dist/lism-css/dist/components/Stack/index.js +8 -0
  67. package/dist/lism-css/dist/components/atomic/Decorator/getProps.js +15 -0
  68. package/dist/lism-css/dist/components/atomic/Decorator/index.js +9 -0
  69. package/dist/lism-css/dist/components/atomic/Icon/SVG.js +22 -0
  70. package/dist/lism-css/dist/components/atomic/Icon/getProps.js +56 -0
  71. package/dist/lism-css/dist/components/atomic/Icon/index.js +12 -0
  72. package/dist/lism-css/dist/components/atomic/Icon/presets.js +276 -0
  73. package/dist/lism-css/dist/config/default-config.js +11 -0
  74. package/dist/lism-css/dist/config/defaults/props.js +340 -0
  75. package/dist/lism-css/dist/config/defaults/states.js +39 -0
  76. package/dist/lism-css/dist/config/defaults/tokens.js +30 -0
  77. package/dist/lism-css/dist/config/helper/getSvgUrl.js +4 -0
  78. package/dist/lism-css/dist/config/helper.js +27 -0
  79. package/dist/lism-css/dist/config/index.js +17 -0
  80. package/dist/lism-css/dist/lib/getBpData.js +19 -0
  81. package/dist/lism-css/dist/lib/getLayoutProps.js +30 -0
  82. package/dist/lism-css/dist/lib/getLismProps.js +188 -0
  83. package/dist/lism-css/dist/lib/getMaybeCssVar.js +42 -0
  84. package/dist/lism-css/dist/lib/getMaybeTokenValue.js +26 -0
  85. package/dist/lism-css/dist/lib/getUtilKey.js +13 -0
  86. package/dist/lism-css/dist/lib/helper/atts.js +11 -0
  87. package/dist/lism-css/dist/lib/helper/filterEmptyObj.js +10 -0
  88. package/dist/lism-css/dist/lib/helper/hasSomeKeys.js +6 -0
  89. package/dist/lism-css/dist/lib/helper/isEmptyObj.js +6 -0
  90. package/dist/lism-css/dist/lib/helper/isNumStr.js +6 -0
  91. package/dist/lism-css/dist/lib/helper/splitWithComma.js +6 -0
  92. package/dist/lism-css/dist/lib/isPresetValue.js +13 -0
  93. package/dist/lism-css/dist/lib/isTokenValue.js +27 -0
  94. package/dist/style.css +1 -1
  95. package/dist/ui.css +1 -0
  96. package/package.json +9 -7
  97. package/src/components/Accordion/_style.css +69 -69
  98. package/src/components/Accordion/astro/Button.astro +2 -2
  99. package/src/components/Accordion/astro/Heading.astro +1 -1
  100. package/src/components/Accordion/astro/Item.astro +7 -7
  101. package/src/components/Accordion/astro/Panel.astro +3 -3
  102. package/src/components/Accordion/astro/Root.astro +3 -3
  103. package/src/components/Accordion/getProps.js +54 -54
  104. package/src/components/Accordion/react/AccIcon.jsx +1 -1
  105. package/src/components/Accordion/react/Accordion.jsx +37 -36
  106. package/src/components/Accordion/script.js +1 -1
  107. package/src/components/Accordion/setAccordion.js +93 -93
  108. package/src/components/Alert/astro/Alert.astro +6 -6
  109. package/src/components/Alert/getProps.ts +22 -22
  110. package/src/components/Alert/presets.ts +26 -26
  111. package/src/components/Alert/react/Alert.tsx +9 -9
  112. package/src/components/Avatar/astro/Avatar.astro +2 -2
  113. package/src/components/Avatar/react/Avatar.jsx +5 -5
  114. package/src/components/Badge/_style.css +14 -14
  115. package/src/components/Badge/astro/Badge.astro +4 -4
  116. package/src/components/Badge/react/Badge.jsx +6 -6
  117. package/src/components/Button/_style.css +29 -29
  118. package/src/components/Button/astro/Button.astro +4 -4
  119. package/src/components/Button/react/Button.jsx +6 -6
  120. package/src/components/Callout/astro/Callout.astro +13 -13
  121. package/src/components/Callout/getProps.ts +24 -24
  122. package/src/components/Callout/presets.ts +26 -26
  123. package/src/components/Callout/react/Callout.tsx +16 -16
  124. package/src/components/Chat/_style.css +49 -49
  125. package/src/components/Chat/astro/Chat.astro +27 -27
  126. package/src/components/Chat/getProps.js +40 -45
  127. package/src/components/Chat/react/Chat.jsx +17 -17
  128. package/src/components/Details/_style.css +39 -39
  129. package/src/components/Details/astro/Content.astro +3 -3
  130. package/src/components/Details/astro/Details.astro +1 -1
  131. package/src/components/Details/astro/Icon.astro +1 -1
  132. package/src/components/Details/astro/Summary.astro +2 -2
  133. package/src/components/Details/astro/Title.astro +1 -1
  134. package/src/components/Details/getProps.js +7 -7
  135. package/src/components/Details/react/Details.jsx +24 -24
  136. package/src/components/DummyImage/astro/DummyImage.astro +7 -0
  137. package/src/components/DummyImage/astro/index.ts +1 -0
  138. package/src/components/DummyImage/react/DummyImage.tsx +5 -0
  139. package/src/components/DummyImage/react/index.ts +1 -0
  140. package/src/components/DummyText/astro/DummyText.astro +9 -0
  141. package/src/components/DummyText/astro/index.ts +1 -0
  142. package/src/components/DummyText/getContent.ts +39 -0
  143. package/src/components/DummyText/react/DummyText.tsx +15 -0
  144. package/src/components/DummyText/react/index.ts +1 -0
  145. package/src/components/DummyText/texts.ts +39 -0
  146. package/src/components/Modal/_style.css +34 -34
  147. package/src/components/Modal/astro/Body.astro +1 -1
  148. package/src/components/Modal/astro/CloseBtn.astro +10 -10
  149. package/src/components/Modal/astro/Inner.astro +1 -1
  150. package/src/components/Modal/astro/Modal.astro +3 -3
  151. package/src/components/Modal/astro/OpenBtn.astro +1 -1
  152. package/src/components/Modal/getProps.js +19 -19
  153. package/src/components/Modal/react/Body.jsx +5 -5
  154. package/src/components/Modal/react/CloseBtn.jsx +13 -13
  155. package/src/components/Modal/react/Inner.jsx +1 -1
  156. package/src/components/Modal/react/Modal.jsx +12 -11
  157. package/src/components/Modal/react/OpenBtn.jsx +5 -5
  158. package/src/components/Modal/script.js +1 -1
  159. package/src/components/Modal/setModal.ts +92 -92
  160. package/src/components/NavMenu/_style.css +17 -17
  161. package/src/components/NavMenu/astro/Item.astro +1 -1
  162. package/src/components/NavMenu/astro/Link.astro +1 -1
  163. package/src/components/NavMenu/astro/Nest.astro +1 -1
  164. package/src/components/NavMenu/astro/Root.astro +1 -1
  165. package/src/components/NavMenu/getProps.js +28 -28
  166. package/src/components/NavMenu/react/NavMenu.jsx +4 -4
  167. package/src/components/ShapeDivider/_style.css +51 -51
  168. package/src/components/ShapeDivider/astro/ShapeDivider.astro +20 -20
  169. package/src/components/ShapeDivider/getProps.js +23 -23
  170. package/src/components/ShapeDivider/react/ShapeDivider.jsx +24 -24
  171. package/src/components/Tabs/_style.css +29 -29
  172. package/src/components/Tabs/astro/Tab.astro +2 -2
  173. package/src/components/Tabs/astro/TabItem.astro +1 -1
  174. package/src/components/Tabs/astro/TabList.astro +2 -2
  175. package/src/components/Tabs/astro/TabPanel.astro +2 -2
  176. package/src/components/Tabs/astro/Tabs.astro +20 -20
  177. package/src/components/Tabs/astro/transformTabitems.js +30 -30
  178. package/src/components/Tabs/getProps.js +4 -4
  179. package/src/components/Tabs/react/Tab.jsx +4 -12
  180. package/src/components/Tabs/react/TabItem.jsx +1 -1
  181. package/src/components/Tabs/react/TabList.jsx +2 -2
  182. package/src/components/Tabs/react/TabPanel.jsx +2 -2
  183. package/src/components/Tabs/react/Tabs.jsx +46 -47
  184. package/src/components/Tabs/script.js +4 -4
  185. package/src/components/Tabs/setTabs.js +70 -70
  186. package/src/components/astro.ts +2 -0
  187. package/src/components/react.ts +2 -0
  188. package/src/helper/animation.ts +10 -10
  189. package/src/helper/uuid.js +3 -3
@@ -3,14 +3,14 @@ import { Flow, Lism, Center, Icon } from 'lism-css/react';
3
3
  import getAlertProps, { type AlertProps } from '../getProps';
4
4
 
5
5
  export default function Alert({ children, ...inputProps }: AlertProps & { children?: ReactNode }) {
6
- const { icon, layout, flow, ...alertProps } = getAlertProps(inputProps);
6
+ const { icon, layout, flow, ...alertProps } = getAlertProps(inputProps);
7
7
 
8
- return (
9
- <Lism layout={layout} {...alertProps}>
10
- <Center isSide={layout === 'sideMain'} c='keycolor' fz='xl' fxsh='0'>
11
- <Icon icon={icon} />
12
- </Center>
13
- <Flow flow={flow}>{children}</Flow>
14
- </Lism>
15
- );
8
+ return (
9
+ <Lism layout={layout} {...alertProps}>
10
+ <Center isSide={layout === 'sideMain'} c="keycolor" fz="xl" fxsh="0">
11
+ <Icon icon={icon} />
12
+ </Center>
13
+ <Flow flow={flow}>{children}</Flow>
14
+ </Lism>
15
+ );
16
16
  }
@@ -4,6 +4,6 @@ import { Frame } from 'lism-css/astro';
4
4
  const { size = '1.5em', src = '', alt = '', ...props } = Astro.props;
5
5
  ---
6
6
 
7
- <Frame lismClass='c--avatar' ar='1/1' w={size} bdrs='99' {...props}>
8
- <img src={src} alt={alt} width='100%' height='100%' decoding='async' />
7
+ <Frame lismClass="c--avatar" ar="1/1" w={size} bdrs="99" {...props}>
8
+ <img src={src} alt={alt} width="100%" height="100%" decoding="async" />
9
9
  </Frame>
@@ -1,9 +1,9 @@
1
1
  import { Frame } from 'lism-css/react';
2
2
 
3
3
  export default function Avatar({ size = '1.5em', src = '', alt = '', ...props }) {
4
- return (
5
- <Frame lismClass='c--avatar' ar='1/1' w={size} bdrs='99' {...props}>
6
- <img src={src} alt={alt} width='100%' height='100%' decoding='async' />
7
- </Frame>
8
- );
4
+ return (
5
+ <Frame lismClass="c--avatar" ar="1/1" w={size} bdrs="99" {...props}>
6
+ <img src={src} alt={alt} width="100%" height="100%" decoding="async" />
7
+ </Frame>
8
+ );
9
9
  }
@@ -1,15 +1,15 @@
1
- @layer lism.modules {
2
- .c--badge {
3
- --c: var(--base);
4
- --bgc: var(--text);
5
- --bdc: transparent;
6
- color: var(--c);
7
- background-color: var(--bgc);
8
- border: solid 1px var(--bdc); /* 異なる variant を並べてもサイズに差が出ないようにborderを常に指定 */
9
- }
10
- .c--badge--outline {
11
- --c: var(--text);
12
- --bgc: transparent;
13
- --bdc: currentColor;
14
- }
1
+ @layer lism-modules {
2
+ .c--badge {
3
+ --c: var(--base);
4
+ --bgc: var(--text);
5
+ --bdc: transparent;
6
+ color: var(--c);
7
+ background-color: var(--bgc);
8
+ border: solid 1px var(--bdc); /* 異なる variant を並べてもサイズに差が出ないようにborderを常に指定 */
9
+ }
10
+ .c--badge--outline {
11
+ --c: var(--text);
12
+ --bgc: transparent;
13
+ --bdc: currentColor;
14
+ }
15
15
  }
@@ -6,11 +6,11 @@ const props = Astro.props;
6
6
 
7
7
  // c--badge では c, bgc は 変数で受け取る
8
8
  const _propConfig = {
9
- c: { isVar: 1 },
10
- bgc: { isVar: 1 },
9
+ c: { isVar: 1 },
10
+ bgc: { isVar: 1 },
11
11
  };
12
12
  ---
13
13
 
14
- <Lism lismClass='c--badge' as='span' d='inline-flex' fz='xs' lh='xs' py='5' px='10' bdrs='10' _propConfig={_propConfig} {...props}>
15
- <slot />
14
+ <Lism lismClass="c--badge" as="span" d="inline-flex" fz="xs" lh="xs" py="5" px="10" bdrs="10" _propConfig={_propConfig} {...props}>
15
+ <slot />
16
16
  </Lism>
@@ -2,11 +2,11 @@ import { Lism } from 'lism-css/react';
2
2
  import '../_style.css';
3
3
 
4
4
  export default function Badge(props) {
5
- // c--badge では c, bgc は 変数で受け取る
6
- const _propConfig = {
7
- c: { isVar: 1 },
8
- bgc: { isVar: 1 },
9
- };
5
+ // c--badge では c, bgc は 変数で受け取る
6
+ const _propConfig = {
7
+ c: { isVar: 1 },
8
+ bgc: { isVar: 1 },
9
+ };
10
10
 
11
- return <Lism lismClass='c--badge' as='span' d='inline-flex' fz='xs' lh='xs' py='5' px='10' bdrs='10' _propConfig={_propConfig} {...props} />;
11
+ return <Lism lismClass="c--badge" as="span" d="inline-flex" fz="xs" lh="xs" py="5" px="10" bdrs="10" _propConfig={_propConfig} {...props} />;
12
12
  }
@@ -1,34 +1,34 @@
1
- @layer lism.modules {
2
- .c--button {
3
- --c: var(--base);
4
- --bgc: var(--text);
5
- --bdc: var(--bgc);
1
+ @layer lism-modules {
2
+ .c--button {
3
+ --c: var(--base);
4
+ --bgc: var(--text);
5
+ --bdc: var(--bgc);
6
6
 
7
- color: var(--c);
8
- background-color: var(--bgc);
9
- border: solid 1px var(--bdc); /* 異なる variant を並べてもサイズに差が出ないようにborderを常に指定 */
7
+ color: var(--c);
8
+ background-color: var(--bgc);
9
+ border: solid 1px var(--bdc); /* 異なる variant を並べてもサイズに差が出ないようにborderを常に指定 */
10
10
 
11
- gap: var(--s10);
12
- text-decoration: none;
13
- place-content: center;
14
- place-items: center;
15
- }
16
- .c--button--outline {
17
- --c: var(--text);
18
- --bgc: transparent;
19
- --bdc: var(--c);
20
- }
11
+ gap: var(--s10);
12
+ text-decoration: none;
13
+ place-content: center;
14
+ place-items: center;
15
+ }
16
+ .c--button--outline {
17
+ --c: var(--text);
18
+ --bgc: transparent;
19
+ --bdc: var(--c);
20
+ }
21
21
 
22
- :where(.c--button) > .a--icon {
23
- scale: 1.05;
24
- }
22
+ :where(.c--button) > .a--icon {
23
+ scale: 1.05;
24
+ }
25
25
 
26
- /* l--gridを使用する場合の追加スタイル */
27
- .c--button:where(.l--grid) {
28
- grid-template-columns: minmax(1em, auto) 1fr minmax(1em, auto);
29
- justify-items: center;
30
- }
31
- .c--button:where(.l--grid) > :not(.a--icon) {
32
- grid-column: 2;
33
- }
26
+ /* l--gridを使用する場合の追加スタイル */
27
+ .c--button:where(.l--grid) {
28
+ grid-template-columns: minmax(1em, auto) 1fr minmax(1em, auto);
29
+ justify-items: center;
30
+ }
31
+ .c--button:where(.l--grid) > :not(.a--icon) {
32
+ grid-column: 2;
33
+ }
34
34
  }
@@ -6,11 +6,11 @@ const props = Astro.props;
6
6
 
7
7
  // c--button では c, bgc は 変数で受け取る
8
8
  const _propConfig = {
9
- c: { isVar: 1 },
10
- bgc: { isVar: 1 },
9
+ c: { isVar: 1 },
10
+ bgc: { isVar: 1 },
11
11
  };
12
12
  ---
13
13
 
14
- <Flex lismClass='c--button' as='a' lh='s' py='10' px='20' hov='o' _propConfig={_propConfig} {...props}>
15
- <slot />
14
+ <Flex lismClass="c--button" as="a" lh="s" py="10" px="20" hov="o" _propConfig={_propConfig} {...props}>
15
+ <slot />
16
16
  </Flex>
@@ -2,11 +2,11 @@ import { Flex } from 'lism-css/react';
2
2
  import '../_style.css';
3
3
 
4
4
  export default function Button(props) {
5
- // c--button では c, bgc は 変数で受け取る
6
- const _propConfig = {
7
- c: { isVar: 1 },
8
- bgc: { isVar: 1 },
9
- };
5
+ // c--button では c, bgc は 変数で受け取る
6
+ const _propConfig = {
7
+ c: { isVar: 1 },
8
+ bgc: { isVar: 1 },
9
+ };
10
10
 
11
- return <Flex lismClass='c--button' as='a' lh='s' py='10' px='20' hov='o' _propConfig={_propConfig} {...props} />;
11
+ return <Flex lismClass="c--button" as="a" lh="s" py="10" px="20" hov="o" _propConfig={_propConfig} {...props} />;
12
12
  }
@@ -8,17 +8,17 @@ const { icon, title, flow, ...calloutProps } = getCalloutProps(Astro.props);
8
8
  ---
9
9
 
10
10
  <Stack {...calloutProps}>
11
- {
12
- title && (
13
- <Flex class='c--callout_head' c='keycolor' fw='bold' ai='center' g='10'>
14
- <Center class='c--callout_icon' fz='xl'>
15
- <Icon icon={icon} />
16
- </Center>
17
- <span class='c--callout_title'>{title}</span>
18
- </Flex>
19
- )
20
- }
21
- <Flow class='c--callout_body' flow={flow}>
22
- <slot />
23
- </Flow>
11
+ {
12
+ title && (
13
+ <Flex class="c--callout_head" c="keycolor" fw="bold" ai="center" g="10">
14
+ <Center class="c--callout_icon" fz="xl">
15
+ <Icon icon={icon} />
16
+ </Center>
17
+ <span class="c--callout_title">{title}</span>
18
+ </Flex>
19
+ )
20
+ }
21
+ <Flow class="c--callout_body" flow={flow}>
22
+ <slot />
23
+ </Flow>
24
24
  </Stack>
@@ -1,32 +1,32 @@
1
1
  import PRESETS from './presets';
2
2
 
3
3
  export type CalloutProps = {
4
- type?: string;
5
- keycolor?: string;
6
- icon?: string;
7
- title?: string;
8
- flow?: string;
9
- [key: string]: unknown;
4
+ type?: string;
5
+ keycolor?: string;
6
+ icon?: string;
7
+ title?: string;
8
+ flow?: string;
9
+ [key: string]: unknown;
10
10
  };
11
11
 
12
12
  export default function getCalloutProps({ type = 'note', keycolor, icon, title, flow = 's', ...props }: CalloutProps) {
13
- const presetData = type ? PRESETS[type] : null;
14
- const _icon = icon || presetData?.icon || 'note';
15
- const _keycolor = keycolor || presetData?.color || null;
13
+ const presetData = type ? PRESETS[type] : null;
14
+ const _icon = icon || presetData?.icon || 'note';
15
+ const _keycolor = keycolor || presetData?.color || null;
16
16
 
17
- return {
18
- icon: _icon,
19
- title,
20
- flow,
21
- lismClass: 'c--callout u--cbox',
22
- keycolor: _keycolor,
23
- p: '20',
24
- g: '10',
25
- bdc: 'keycolor',
26
- 'bd-x-s': '-',
27
- bdw: '4px',
28
- bxsh: '10',
29
- bdrs: '5',
30
- ...props,
31
- };
17
+ return {
18
+ icon: _icon,
19
+ title,
20
+ flow,
21
+ lismClass: 'c--callout u--cbox',
22
+ keycolor: _keycolor,
23
+ p: '20',
24
+ g: '10',
25
+ bdc: 'keycolor',
26
+ 'bd-x-s': '-',
27
+ bdw: '4px',
28
+ bxsh: '10',
29
+ bdrs: '5',
30
+ ...props,
31
+ };
32
32
  }
@@ -1,33 +1,33 @@
1
1
  type PresetData = {
2
- icon: string;
3
- color: string;
2
+ icon: string;
3
+ color: string;
4
4
  };
5
5
 
6
6
  const PRESETS: Record<string, PresetData> = {
7
- alert: {
8
- icon: 'alert',
9
- color: 'red',
10
- },
11
- point: {
12
- icon: 'lightbulb',
13
- color: 'orange',
14
- },
15
- warning: {
16
- icon: 'warning',
17
- color: 'yellow',
18
- },
19
- check: {
20
- icon: 'check-circle',
21
- color: 'green',
22
- },
23
- help: {
24
- icon: 'question',
25
- color: 'purple',
26
- },
27
- note: {
28
- icon: 'note',
29
- color: 'blue',
30
- },
7
+ alert: {
8
+ icon: 'alert',
9
+ color: 'red',
10
+ },
11
+ point: {
12
+ icon: 'lightbulb',
13
+ color: 'orange',
14
+ },
15
+ warning: {
16
+ icon: 'warning',
17
+ color: 'yellow',
18
+ },
19
+ check: {
20
+ icon: 'check-circle',
21
+ color: 'green',
22
+ },
23
+ help: {
24
+ icon: 'question',
25
+ color: 'purple',
26
+ },
27
+ note: {
28
+ icon: 'note',
29
+ color: 'blue',
30
+ },
31
31
  };
32
32
 
33
33
  export default PRESETS;
@@ -3,21 +3,21 @@ import { Flow, Flex, Stack, Icon, Center } from 'lism-css/react';
3
3
  import getCalloutProps, { type CalloutProps } from '../getProps';
4
4
 
5
5
  export default function Callout({ children, ...inputProps }: CalloutProps & { children?: ReactNode }) {
6
- const { icon, title, flow, ...calloutProps } = getCalloutProps(inputProps);
6
+ const { icon, title, flow, ...calloutProps } = getCalloutProps(inputProps);
7
7
 
8
- return (
9
- <Stack {...calloutProps}>
10
- {title && (
11
- <Flex className='c--callout_head' c='keycolor' fw='bold' ai='center' g='10'>
12
- <Center className='c--callout_icon' fz='xl'>
13
- <Icon icon={icon} />
14
- </Center>
15
- <span className='c--callout_title'>{title}</span>
16
- </Flex>
17
- )}
18
- <Flow className='c--callout_body' flow={flow}>
19
- {children}
20
- </Flow>
21
- </Stack>
22
- );
8
+ return (
9
+ <Stack {...calloutProps}>
10
+ {title && (
11
+ <Flex className="c--callout_head" c="keycolor" fw="bold" ai="center" g="10">
12
+ <Center className="c--callout_icon" fz="xl">
13
+ <Icon icon={icon} />
14
+ </Center>
15
+ <span className="c--callout_title">{title}</span>
16
+ </Flex>
17
+ )}
18
+ <Flow className="c--callout_body" flow={flow}>
19
+ {children}
20
+ </Flow>
21
+ </Stack>
22
+ );
23
23
  }
@@ -1,64 +1,64 @@
1
- @layer lism.modules {
2
- .c--chat {
3
- --cbox-bgPct: 8%;
4
- --gta: 'avatar name' 'avatar body';
5
- --gtc: auto 1fr;
6
- --gtr: minmax(1.5rem, auto) auto;
7
- --_avator-size: clamp(48px, 32px + 5cqw, 64px); /* @320px:40px ~ @640:64px */
8
- --_deco-size: calc(min(var(--_avator-size), 80px) / 4 + 0.25rem);
9
- --_deco-mask: none;
10
- --_deco-t: 0;
11
- --_deco-scale: 1;
12
- --_deco-inset-x: 0;
1
+ @layer lism-modules {
2
+ .c--chat {
3
+ --cbox-bgPct: 8%;
4
+ --gta: 'avatar name' 'avatar body';
5
+ --gtc: auto 1fr;
6
+ --gtr: minmax(1.5rem, auto) auto;
7
+ --_avator-size: clamp(48px, 32px + 5cqw, 64px); /* @320px:40px ~ @640:64px */
8
+ --_deco-size: calc(min(var(--_avator-size), 80px) / 4 + 0.25rem);
9
+ --_deco-mask: none;
10
+ --_deco-t: 0;
11
+ --_deco-scale: 1;
12
+ --_deco-inset-x: 0;
13
13
 
14
- gap: 0 calc(var(--_deco-size) + 1px);
15
- }
14
+ gap: 0 calc(var(--_deco-size) + 1px);
15
+ }
16
16
 
17
- .c--chat_avatar {
18
- grid-area: avatar;
19
- width: var(--_avator-size);
20
- }
21
- .c--chat_name {
22
- grid-area: name;
23
- }
24
- .c--chat_body {
25
- grid-area: body;
26
- }
27
- .c--chat_content {
28
- max-width: var(--sz--s);
29
- }
17
+ .c--chat_avatar {
18
+ grid-area: avatar;
19
+ width: var(--_avator-size);
20
+ }
21
+ .c--chat_name {
22
+ grid-area: name;
23
+ }
24
+ .c--chat_body {
25
+ grid-area: body;
26
+ }
27
+ .c--chat_content {
28
+ max-width: var(--sz--s);
29
+ }
30
30
 
31
- .c--chat_deco {
32
- top: var(--_deco-t);
33
- inset-inline: var(--_deco-inset-x);
34
- width: var(--_deco-size);
35
- height: var(--_deco-size);
36
- scale: var(--_deco-scale);
37
- mask: var(--_deco-mask) center / contain no-repeat;
38
- }
39
- .c--chat--speak {
40
- --_deco-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8"><path d="M8,8L8,8C7.4,4.8,5.4,2,2.6,0.4L2,0h6V8z"/></svg>');
41
- }
31
+ .c--chat_deco {
32
+ top: var(--_deco-t);
33
+ inset-inline: var(--_deco-inset-x);
34
+ width: var(--_deco-size);
35
+ height: var(--_deco-size);
36
+ scale: var(--_deco-scale);
37
+ mask: var(--_deco-mask) center / contain no-repeat;
38
+ }
39
+ .c--chat--speak {
40
+ --_deco-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8"><path d="M8,8L8,8C7.4,4.8,5.4,2,2.6,0.4L2,0h6V8z"/></svg>');
41
+ }
42
42
 
43
- [data-chat-dir='start'] {
44
- --_deco-inset-x: auto calc(100% - 1px);
45
- }
46
- [data-chat-dir='end'] {
47
- --_deco-scale: -1 1;
48
- --_deco-inset-x: calc(100% - 1px) auto;
49
- --gta: 'name avatar' 'body avatar';
50
- --gtc: 1fr auto;
51
- }
43
+ [data-chat-dir='start'] {
44
+ --_deco-inset-x: auto calc(100% - 1px);
45
+ }
46
+ [data-chat-dir='end'] {
47
+ --_deco-scale: -1 1;
48
+ --_deco-inset-x: calc(100% - 1px) auto;
49
+ --gta: 'name avatar' 'body avatar';
50
+ --gtc: 1fr auto;
51
+ }
52
52
  }
53
53
 
54
54
  /* NOTE: 以下は @layer 外に配置(セレクタの詳細度を確保するため) */
55
55
 
56
56
  /* speak バリアントの角丸調整: 左側 */
57
57
  .c--chat--speak[data-chat-dir='start'] > div > .c--chat_content {
58
- border-start-start-radius: 0;
58
+ border-start-start-radius: 0;
59
59
  }
60
60
 
61
61
  /* speak バリアントの角丸調整: 右側 */
62
62
  .c--chat--speak[data-chat-dir='end'] > div > .c--chat_content {
63
- border-start-end-radius: 0;
63
+ border-start-end-radius: 0;
64
64
  }
@@ -4,19 +4,19 @@ import getChatProps, { defaultProps } from '../getProps';
4
4
  import '../_style.css';
5
5
 
6
6
  interface Props {
7
- /** 吹き出しスタイル */
8
- variant?: 'speak' | 'think';
9
- /** 吹き出しの方向 */
10
- direction?: 'start' | 'end';
11
- /** 発言者名 */
12
- name?: string;
13
- /** アバター画像URL */
14
- avatar?: string;
15
- /** キーカラー */
16
- keycolor?: string;
17
- /** コンテンツのフロー間隔 */
18
- flow?: string;
19
- [key: string]: unknown;
7
+ /** 吹き出しスタイル */
8
+ variant?: 'speak' | 'think';
9
+ /** 吹き出しの方向 */
10
+ direction?: 'start' | 'end';
11
+ /** 発言者名 */
12
+ name?: string;
13
+ /** アバター画像URL */
14
+ avatar?: string;
15
+ /** キーカラー */
16
+ keycolor?: string;
17
+ /** コンテンツのフロー間隔 */
18
+ flow?: string;
19
+ [key: string]: unknown;
20
20
  }
21
21
 
22
22
  const { name, avatar, flow = 's', ...inputProps } = Astro.props;
@@ -24,18 +24,18 @@ const { 'data-chat-dir': direction, ...chatProps } = getChatProps(inputProps);
24
24
  ---
25
25
 
26
26
  <Grid data-chat-dir={direction} {...chatProps}>
27
- {
28
- avatar && (
29
- <Frame {...defaultProps.avatar} src={avatar} alt=''>
30
- <img src={avatar} alt='' width='60' height='60' decoding='async' />
31
- </Frame>
32
- )
33
- }
34
- {name && <Lism {...defaultProps.name}>{name}</Lism>}
35
- <Lism {...defaultProps.body}>
36
- <Decorator {...defaultProps.deco} class='u--cbox is--skipFlow' />
37
- <Flow {...defaultProps.content} class='u--cbox' flow={flow} jslf={direction}>
38
- <slot />
39
- </Flow>
40
- </Lism>
27
+ {
28
+ avatar && (
29
+ <Frame {...defaultProps.avatar} src={avatar} alt="">
30
+ <img src={avatar} alt="" width="60" height="60" decoding="async" />
31
+ </Frame>
32
+ )
33
+ }
34
+ {name && <Lism {...defaultProps.name}>{name}</Lism>}
35
+ <Lism {...defaultProps.body}>
36
+ <Decorator {...defaultProps.deco} class="u--cbox is--skipFlow" />
37
+ <Flow {...defaultProps.content} class="u--cbox" flow={flow} jslf={direction}>
38
+ <slot />
39
+ </Flow>
40
+ </Lism>
41
41
  </Grid>